@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
|
@@ -52,8 +52,9 @@ function buildRouteTemplates(router) {
|
|
|
52
52
|
* labeled by the registered route template (`/users/:id`), read from the
|
|
53
53
|
* router's own route table (child apps are flattened into the root with full
|
|
54
54
|
* patterns, and all routes are registered before `listen`, so a snapshot at
|
|
55
|
-
* first request is complete). Method-agnostic mounts (`/docs`,
|
|
56
|
-
* label as `<mount>/**`; anything else collapses into
|
|
55
|
+
* first request is complete). Method-agnostic mounts (`/docs`,
|
|
56
|
+
* `/console/auth/assets`) label as `<mount>/**`; anything else collapses into
|
|
57
|
+
* one unmatched bucket.
|
|
57
58
|
*/ function createRouteTemplateNormalizePath(router) {
|
|
58
59
|
let templates;
|
|
59
60
|
return (path, event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prometheus.mjs","names":["prometheus","PATH_LABEL_UNMATCHED","toPathSegments","path","split","filter","segment","length","isParameterSegment","startsWith","matchSegments","templateSegments","segments","prefix","i","templateSegment","entries","buildRouteTemplates","router","exact","seen","Set","route","routes","label","join","key","method","has","add","push","sort","a","b","createRouteTemplateNormalizePath","templates","event","toUpperCase","template","registerPrometheusMiddleware","input","options","normalizePath","skip","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\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 { OptionsInput } from '@routup/prometheus';\nimport { prometheus } from '@routup/prometheus';\nimport type {
|
|
1
|
+
{"version":3,"file":"prometheus.mjs","names":["prometheus","PATH_LABEL_UNMATCHED","toPathSegments","path","split","filter","segment","length","isParameterSegment","startsWith","matchSegments","templateSegments","segments","prefix","i","templateSegment","entries","buildRouteTemplates","router","exact","seen","Set","route","routes","label","join","key","method","has","add","push","sort","a","b","createRouteTemplateNormalizePath","templates","event","toUpperCase","template","registerPrometheusMiddleware","input","options","normalizePath","skip","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\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 { OptionsInput } from '@routup/prometheus';\nimport { prometheus } from '@routup/prometheus';\nimport type { IApp, IAppEvent } from 'routup';\n\nconst PATH_LABEL_UNMATCHED = '/{unmatched}';\n\ntype RouteTemplate = {\n method?: string,\n segments: string[],\n label: string,\n};\n\ntype RouteTemplates = {\n exact: RouteTemplate[],\n prefix: RouteTemplate[],\n};\n\nfunction toPathSegments(path: string): string[] {\n return path.split('/').filter((segment) => segment.length > 0);\n}\n\nfunction isParameterSegment(segment: string): boolean {\n return segment.startsWith(':') || segment === '*';\n}\n\nfunction matchSegments(\n templateSegments: string[],\n segments: string[],\n prefix: boolean,\n): boolean {\n if (\n prefix ?\n segments.length < templateSegments.length :\n segments.length !== templateSegments.length\n ) {\n return false;\n }\n\n for (const [i, templateSegment] of templateSegments.entries()) {\n if (isParameterSegment(templateSegment)) {\n continue;\n }\n\n if (templateSegment !== segments[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction buildRouteTemplates(router: IApp): RouteTemplates {\n const exact: RouteTemplate[] = [];\n const prefix: RouteTemplate[] = [];\n const seen = new Set<string>();\n\n for (const route of router.routes) {\n if (typeof route.path !== 'string') {\n continue;\n }\n\n const segments = toPathSegments(route.path);\n const label = `/${segments.join('/')}`;\n const key = `${route.method || ''} ${label}`;\n if (seen.has(key)) {\n continue;\n }\n seen.add(key);\n\n if (route.method) {\n exact.push({\n method: route.method,\n segments,\n label,\n });\n } else if (segments.length > 0) {\n prefix.push({ segments, label });\n }\n }\n\n prefix.sort((a, b) => b.segments.length - a.segments.length);\n\n return { exact, prefix };\n}\n\n/**\n * The `path` label must stay bounded: labeling by the raw request path lets\n * every probed id (`/users/<random-uuid>`, even on 401/404) mint a new\n * prom-client time-series — unbounded registry growth. Requests are instead\n * labeled by the registered route template (`/users/:id`), read from the\n * router's own route table (child apps are flattened into the root with full\n * patterns, and all routes are registered before `listen`, so a snapshot at\n * first request is complete). Method-agnostic mounts (`/docs`,\n * `/console/auth/assets`) label as `<mount>/**`; anything else collapses into\n * one unmatched bucket.\n */\nexport function createRouteTemplateNormalizePath(\n router: IApp,\n): (path: string, event: IAppEvent) => string {\n let templates : RouteTemplates | undefined;\n\n return (path, event) => {\n if (!templates) {\n templates = buildRouteTemplates(router);\n }\n\n const segments = toPathSegments(path);\n const method = `${event.method}`.toUpperCase();\n\n for (const template of templates.exact) {\n if (\n template.method !== method &&\n !(method === 'HEAD' && template.method === 'GET')\n ) {\n continue;\n }\n\n if (matchSegments(template.segments, segments, false)) {\n return template.label;\n }\n }\n\n for (const template of templates.exact) {\n if (matchSegments(template.segments, segments, false)) {\n return template.label;\n }\n }\n\n for (const template of templates.prefix) {\n if (matchSegments(template.segments, segments, true)) {\n return `${template.label}/**`;\n }\n }\n\n return PATH_LABEL_UNMATCHED;\n };\n}\n\nexport function registerPrometheusMiddleware(router: IApp, input?: OptionsInput) {\n let options : OptionsInput = {\n normalizePath: createRouteTemplateNormalizePath(router),\n skip(event) {\n let { path } = event;\n if (!path.startsWith('/')) {\n path = `/${path}`;\n }\n\n return path.startsWith('/metrics') ||\n path === '/';\n },\n };\n\n if (input) {\n options = {\n ...options,\n ...input,\n };\n }\n\n router.use(prometheus(options));\n}\n"],"mappings":";;;;;AAWA,MAAMC,uBAAuB;AAa7B,SAASC,eAAeC,MAAY;CAChC,OAAOA,KAAKC,MAAM,GAAA,CAAA,CAAKC,QAAQC,YAAYA,QAAQC,SAAS,CAAA;AAChE;AAEA,SAASC,mBAAmBF,SAAe;CACvC,OAAOA,QAAQG,WAAW,GAAA,KAAQH,YAAY;AAClD;AAEA,SAASI,cACLC,kBACAC,UACAC,QAAe;CAEf,IACIA,SACID,SAASL,SAASI,iBAAiBJ,SACnCK,SAASL,WAAWI,iBAAiBJ,QAEzC,OAAO;CAGX,KAAK,MAAM,CAACO,GAAGC,oBAAoBJ,iBAAiBK,QAAO,GAAI;EAC3D,IAAIR,mBAAmBO,eAAAA,GACnB;EAGJ,IAAIA,oBAAoBH,SAASE,IAC7B,OAAO;CAEf;CAEA,OAAO;AACX;AAEA,SAASG,oBAAoBC,QAAY;CACrC,MAAMC,QAAyB,CAAA;CAC/B,MAAMN,SAA0B,CAAA;CAChC,MAAMO,uBAAO,IAAIC,IAAAA;CAEjB,KAAK,MAAMC,SAASJ,OAAOK,QAAQ;EAC/B,IAAI,OAAOD,MAAMnB,SAAS,UACtB;EAGJ,MAAMS,WAAWV,eAAeoB,MAAMnB,IAAI;EAC1C,MAAMqB,QAAQ,IAAIZ,SAASa,KAAK,GAAA;EAChC,MAAMC,MAAM,GAAGJ,MAAMK,UAAU,GAAG,GAAGH;EACrC,IAAIJ,KAAKQ,IAAIF,GAAAA,GACT;EAEJN,KAAKS,IAAIH,GAAAA;EAET,IAAIJ,MAAMK,QACNR,MAAMW,KAAK;GACPH,QAAQL,MAAMK;GACdf;GACAY;EACJ,CAAA;OACG,IAAIZ,SAASL,SAAS,GACzBM,OAAOiB,KAAK;GAAElB;GAAUY;EAAM,CAAA;CAEtC;CAEAX,OAAOkB,MAAMC,GAAGC,MAAMA,EAAErB,SAASL,SAASyB,EAAEpB,SAASL,MAAM;CAE3D,OAAO;EAAEY;EAAON;CAAO;AAC3B;;;;;;;;;;;GAaA,SAAgBqB,iCACZhB,QAAY;CAEZ,IAAIiB;CAEJ,QAAQhC,MAAMiC,UAAAA;EACV,IAAI,CAACD,WACDA,YAAYlB,oBAAoBC,MAAAA;EAGpC,MAAMN,WAAWV,eAAeC,IAAAA;EAChC,MAAMwB,SAAS,GAAGS,MAAMT,SAASU,YAAW;EAE5C,KAAK,MAAMC,YAAYH,UAAUhB,OAAO;GACpC,IACImB,SAASX,WAAWA,UACpB,EAAEA,WAAW,UAAUW,SAASX,WAAW,QAE3C;GAGJ,IAAIjB,cAAc4B,SAAS1B,UAAUA,UAAU,KAAA,GAC3C,OAAO0B,SAASd;EAExB;EAEA,KAAK,MAAMc,YAAYH,UAAUhB,OAC7B,IAAIT,cAAc4B,SAAS1B,UAAUA,UAAU,KAAA,GAC3C,OAAO0B,SAASd;EAIxB,KAAK,MAAMc,YAAYH,UAAUtB,QAC7B,IAAIH,cAAc4B,SAAS1B,UAAUA,UAAU,IAAA,GAC3C,OAAO,GAAG0B,SAASd,MAAM;EAIjC,OAAOvB;CACX;AACJ;AAEA,SAAgBsC,6BAA6BrB,QAAcsB,OAAoB;CAC3E,IAAIC,UAAyB;EACzBC,eAAeR,iCAAiChB,MAAAA;EAChDyB,KAAKP,OAAK;GACN,IAAI,EAAEjC,SAASiC;GACf,IAAI,CAACjC,KAAKM,WAAW,GAAA,GACjBN,OAAO,IAAIA;GAGf,OAAOA,KAAKM,WAAW,UAAA,KACnBN,SAAS;EACjB;CACJ;CAEA,IAAIqC,OACAC,UAAU;EACN,GAAGA;EACH,GAAGD;CACP;CAGJtB,OAAO0B,IAAI5C,WAAWyC,OAAAA,CAAAA;AAC1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { OptionsInput } from '@routup/rate-limit';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function registerRateLimitMiddleware(router:
|
|
2
|
+
import type { IApp } from 'routup';
|
|
3
|
+
export declare function registerRateLimitMiddleware(router: IApp, input?: OptionsInput): void;
|
|
4
4
|
//# sourceMappingURL=rate-limit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAC;AA0B9C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,YAAY,QAmC7E"}
|
|
@@ -7,9 +7,24 @@ import { merge } from "smob";
|
|
|
7
7
|
import { getRequestIP } from "routup";
|
|
8
8
|
import { rateLimit } from "@routup/rate-limit";
|
|
9
9
|
//#region src/adapters/http/middleware/built-in/rate-limit.ts
|
|
10
|
+
const LOOPBACK_IP = /^(?:::1|(?:::ffff:)?127(?:\.(?:25[0-5]|2[0-4]\d|1?\d?\d)){3})$/i;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the request originated inside the deployment itself.
|
|
13
|
+
*
|
|
14
|
+
* BOTH addresses must be loopback, and each rules out the other's failure.
|
|
15
|
+
* The socket address (`trustProxy: false`) cannot be forged by a header, so
|
|
16
|
+
* a directly exposed server cannot be handed `X-Forwarded-For: 127.0.0.1`
|
|
17
|
+
* and skipped. The trust-contract address cannot be assumed loopback just
|
|
18
|
+
* because the connection was: a reverse proxy on the same host reaches the
|
|
19
|
+
* server over loopback for every visitor, and skipping on the socket alone
|
|
20
|
+
* would turn the limiter off deployment-wide there.
|
|
21
|
+
*/ function isLoopbackRequest(event) {
|
|
22
|
+
return LOOPBACK_IP.test(getRequestIP(event, { trustProxy: false }) || "") && LOOPBACK_IP.test(getRequestIP(event) || "");
|
|
23
|
+
}
|
|
10
24
|
function registerRateLimitMiddleware(router, input) {
|
|
11
25
|
let options = {
|
|
12
26
|
keyGenerator: (event) => getRequestIP(event) || "127.0.0.1",
|
|
27
|
+
skip: isLoopbackRequest,
|
|
13
28
|
max(event) {
|
|
14
29
|
const identity = useRequestIdentity(event);
|
|
15
30
|
if (!identity) return 1200;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.mjs","names":["rateLimit","getRequestIP","merge","useRequestIdentity","registerRateLimitMiddleware","router","input","options","keyGenerator","
|
|
1
|
+
{"version":3,"file":"rate-limit.mjs","names":["rateLimit","getRequestIP","merge","useRequestIdentity","LOOPBACK_IP","isLoopbackRequest","event","test","trustProxy","registerRateLimitMiddleware","router","input","options","keyGenerator","skip","max","identity","type","windowMs","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\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 { OptionsInput } from '@routup/rate-limit';\nimport { rateLimit } from '@routup/rate-limit';\nimport type { IApp, IAppEvent } from 'routup';\nimport { getRequestIP } from 'routup';\nimport { merge } from 'smob';\nimport { useRequestIdentity } from '../../request/index.ts';\n\n// IPv4 127.0.0.0/8, `::1`, and the IPv4-mapped form a dual-stack socket\n// reports. Anchored and octet-checked rather than a `127.` prefix test: a\n// sloppy match here is a way past the limiter, not a cosmetic detail.\nconst LOOPBACK_IP = /^(?:::1|(?:::ffff:)?127(?:\\.(?:25[0-5]|2[0-4]\\d|1?\\d?\\d)){3})$/i;\n\n/**\n * Whether the request originated inside the deployment itself.\n *\n * BOTH addresses must be loopback, and each rules out the other's failure.\n * The socket address (`trustProxy: false`) cannot be forged by a header, so\n * a directly exposed server cannot be handed `X-Forwarded-For: 127.0.0.1`\n * and skipped. The trust-contract address cannot be assumed loopback just\n * because the connection was: a reverse proxy on the same host reaches the\n * server over loopback for every visitor, and skipping on the socket alone\n * would turn the limiter off deployment-wide there.\n */\nfunction isLoopbackRequest(event: IAppEvent) : boolean {\n return LOOPBACK_IP.test(getRequestIP(event, { trustProxy: false }) || '') &&\n LOOPBACK_IP.test(getRequestIP(event) || '');\n}\n\nexport function registerRateLimitMiddleware(router: IApp, input?: OptionsInput) {\n let options : OptionsInput = {\n // @routup/rate-limit's default keyGenerator hardcodes\n // `{ trustProxy: true }`; deriving the key here instead lets it\n // follow the app-level trust contract (config `trustProxy`).\n keyGenerator: (event) => getRequestIP(event) || '127.0.0.1',\n // A loopback source is by construction the deployment itself: the\n // hosted auth pages render through the auth console's internal\n // client and server-core's own self-calls ride the same address, so\n // counting them collapses the whole deployment onto one anonymous\n // bucket of 1200/min -- 20 page renders per second, however many\n // distinct visitors there are.\n skip: isLoopbackRequest,\n max(event) {\n const identity = useRequestIdentity(event);\n if (!identity) {\n return 60 * 20; // 20 req. p. sec\n }\n\n switch (identity.type) {\n case 'client': {\n return 60 * 5_000; // 1000 req p. sec\n }\n case 'user':\n default: {\n return 60 * 100; // 100 req p. sec\n }\n }\n },\n windowMs: 60 * 1000, // 60 sec\n };\n\n options = merge(input || {}, options);\n\n router.use(rateLimit(options));\n}\n"],"mappings":";;;;;;;;;AAiBA,MAAMI,cAAc;;;;;;;;;;;GAapB,SAASC,kBAAkBC,OAAgB;CACvC,OAAOF,YAAYG,KAAKN,aAAaK,OAAO,EAAEE,YAAY,MAAM,CAAA,KAAM,EAAA,KAClEJ,YAAYG,KAAKN,aAAaK,KAAAA,KAAU,EAAA;AAChD;AAEA,SAAgBG,4BAA4BC,QAAcC,OAAoB;CAC1E,IAAIC,UAAyB;EAIzBC,eAAeP,UAAUL,aAAaK,KAAAA,KAAU;EAOhDQ,MAAMT;EACNU,IAAIT,OAAK;GACL,MAAMU,WAAWb,mBAAmBG,KAAAA;GACpC,IAAI,CAACU,UACD,OAAO;GAGX,QAAQA,SAASC,MAAjB;IACI,KAAK,UACD,OAAO;IAGX,SACI,OAAO;GAEf;EACJ;EACAC,UAAU;CACd;CAEAN,UAAUV,MAAMS,SAAS,CAAC,GAAGC,OAAAA;CAE7BF,OAAOS,IAAInB,UAAUY,OAAAA,CAAAA;AACzB"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
+
import { OAUTH2_ISSUANCE_PATHS, isOAuth2IssuancePath, normalizeRequestPath } from "./built-in/authorization/issuance.mjs";
|
|
4
5
|
import { AuthorizationMiddleware } from "./built-in/authorization/module.mjs";
|
|
5
6
|
import { createAuthorizationMiddleware } from "./built-in/authorization/factory.mjs";
|
|
6
7
|
import { ForceLoggedInMiddleware } from "./built-in/loggedin/module.mjs";
|
|
7
8
|
import { ForceUserLoggedInMiddleware } from "./built-in/loggedin/user.mjs";
|
|
8
9
|
import { RealmResolverMiddleware } from "./built-in/realm-resolver/module.mjs";
|
|
9
10
|
import { createRealmResolverMiddleware } from "./built-in/realm-resolver/factory.mjs";
|
|
10
|
-
import { THEME_STORE_KEY, registerThemeMiddleware, useRequestTheme } from "./built-in/theme.mjs";
|
|
11
|
-
import { VITE_SERVER_STORE_KEY, registerAssetsMiddleware } from "./built-in/assets.mjs";
|
|
12
11
|
import { registerBasicMiddleware } from "./built-in/basic.mjs";
|
|
13
12
|
import { registerCorsMiddleware } from "./built-in/cors.mjs";
|
|
14
13
|
import { registerErrorMiddleware } from "./built-in/error.mjs";
|
|
@@ -16,6 +15,6 @@ import { createLoggerMiddleware, redactSensitiveURLParams } from "./built-in/log
|
|
|
16
15
|
import { createRouteTemplateNormalizePath, registerPrometheusMiddleware } from "./built-in/prometheus.mjs";
|
|
17
16
|
import { registerRateLimitMiddleware } from "./built-in/rate-limit.mjs";
|
|
18
17
|
import { createSwaggerMiddleware } from "./built-in/swagger.mjs";
|
|
19
|
-
import {
|
|
18
|
+
import { INTERNAL_HTTP_CLIENT_FACTORY_STORE_KEY, registerInternalHttpClientMiddleware } from "./built-in/internal-http-client.mjs";
|
|
20
19
|
import "./built-in/index.mjs";
|
|
21
|
-
export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware,
|
|
20
|
+
export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, INTERNAL_HTTP_CLIENT_FACTORY_STORE_KEY, OAUTH2_ISSUANCE_PATHS, RealmResolverMiddleware, createAuthorizationMiddleware, createLoggerMiddleware, createRealmResolverMiddleware, createRouteTemplateNormalizePath, createSwaggerMiddleware, isOAuth2IssuancePath, normalizeRequestPath, redactSensitiveURLParams, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerInternalHttpClientMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware };
|
|
@@ -5,5 +5,5 @@ export declare enum RequestHandlerOperation {
|
|
|
5
5
|
UPDATE = "update",
|
|
6
6
|
DELETE = "delete"
|
|
7
7
|
}
|
|
8
|
-
export
|
|
8
|
+
export { CERTIFICATE_SOURCES } from '@authup/server-config';
|
|
9
9
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,uBAAuB;IAC/B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,uBAAuB;IAC/B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAMD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
+
import { CERTIFICATE_SOURCES } from "@authup/server-config";
|
|
4
5
|
//#region src/adapters/http/request/constants.ts
|
|
5
6
|
var RequestHandlerOperation = /*#__PURE__*/ function(RequestHandlerOperation) {
|
|
6
7
|
RequestHandlerOperation["COMMAND"] = "command";
|
|
@@ -10,11 +11,6 @@ var RequestHandlerOperation = /*#__PURE__*/ function(RequestHandlerOperation) {
|
|
|
10
11
|
RequestHandlerOperation["DELETE"] = "delete";
|
|
11
12
|
return RequestHandlerOperation;
|
|
12
13
|
}({});
|
|
13
|
-
const CERTIFICATE_SOURCES = [
|
|
14
|
-
"disabled",
|
|
15
|
-
"standard",
|
|
16
|
-
"forwarded"
|
|
17
|
-
];
|
|
18
14
|
//#endregion
|
|
19
15
|
export { CERTIFICATE_SOURCES, RequestHandlerOperation };
|
|
20
16
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["RequestHandlerOperation","CERTIFICATE_SOURCES"],"sources":["../../../../src/adapters/http/request/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RequestHandlerOperation {\n COMMAND = 'command',\n CREATE = 'create',\n READ = 'read',\n UPDATE = 'update',\n DELETE = 'delete',\n}\n\
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["RequestHandlerOperation","CERTIFICATE_SOURCES"],"sources":["../../../../src/adapters/http/request/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RequestHandlerOperation {\n COMMAND = 'command',\n CREATE = 'create',\n READ = 'read',\n UPDATE = 'update',\n DELETE = 'delete',\n}\n\n// The certificate-source vocabulary is declared with the `certificateSource`\n// key it is the vocabulary of (in `@authup/server-config`), because the\n// configuration document has to be describable without importing this\n// service. Re-exported here so the request layer keeps one import path.\nexport { CERTIFICATE_SOURCES } from '@authup/server-config';\n"],"mappings":";;;;;AAOA,IAAO,0BAAKA,uBAAAA,yBAAAA;;;;;;CAAAA,OAAAA;AAMX,EAAA,CAAA,CAAA"}
|
|
@@ -6,7 +6,7 @@ export * from './locations.ts';
|
|
|
6
6
|
export * from './mfa-login-ticket.ts';
|
|
7
7
|
export * from './param-id.ts';
|
|
8
8
|
export * from './realm-id.ts';
|
|
9
|
-
export * from './
|
|
9
|
+
export * from './same-origin.ts';
|
|
10
10
|
export * from './scopes.ts';
|
|
11
11
|
export * from './session-id.ts';
|
|
12
12
|
export * from './token.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/index.ts"],"names":[],"mappings":"AAOA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/index.ts"],"names":[],"mappings":"AAOA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -9,8 +9,8 @@ import { readFromLocations } from "./locations.mjs";
|
|
|
9
9
|
import { setRequestMfaLoginTicket, useRequestMfaLoginTicket } from "./mfa-login-ticket.mjs";
|
|
10
10
|
import { getRequestParamID, getRequestStringParam, getRequestStringParamOrFail, useRequestParamID } from "./param-id.mjs";
|
|
11
11
|
import { applyRouteRealmIDToBody, getRequestRealmID, setRequestRealmID } from "./realm-id.mjs";
|
|
12
|
-
import {
|
|
12
|
+
import { isSameOriginRequest } from "./same-origin.mjs";
|
|
13
13
|
import { setRequestScopes, useRequestScopes } from "./scopes.mjs";
|
|
14
14
|
import { setRequestSessionId, useRequestSessionId } from "./session-id.mjs";
|
|
15
15
|
import { setRequestToken, useRequestToken } from "./token.mjs";
|
|
16
|
-
export { LOCALE_COOKIE, RequestIdentity, applyRouteRealmIDToBody, buildActorContext, getBodyRealmID, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail,
|
|
16
|
+
export { LOCALE_COOKIE, RequestIdentity, applyRouteRealmIDToBody, buildActorContext, getBodyRealmID, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, isSameOriginRequest, readFromLocations, setRequestIdentity, setRequestMfaLoginTicket, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestScopes, useRequestSessionId, useRequestToken };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { LocaleCode } from '@authup/i18n';
|
|
2
|
+
import { LOCALE_COOKIE } from '@authup/server-console-kit';
|
|
2
3
|
import type { IAppEvent } from 'routup';
|
|
3
|
-
export
|
|
4
|
+
export { LOCALE_COOKIE };
|
|
4
5
|
/**
|
|
5
6
|
* Resolve the requester's preferred **authored** locale. The explicit UI
|
|
6
7
|
* locale cookie (`vc-locale`, written by @vuecs/locale) wins when it maps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/locale.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/locale.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAkBzE"}
|
|
@@ -3,9 +3,9 @@ import "node:url";
|
|
|
3
3
|
import.meta.url;
|
|
4
4
|
import { matchLocale } from "@authup/i18n";
|
|
5
5
|
import { getRequestAcceptableLanguages } from "routup";
|
|
6
|
+
import { LOCALE_COOKIE } from "@authup/server-console-kit";
|
|
6
7
|
import { useRequestCookie } from "@routup/basic/cookie";
|
|
7
8
|
//#region src/adapters/http/request/helpers/locale.ts
|
|
8
|
-
const LOCALE_COOKIE = "vc-locale";
|
|
9
9
|
/**
|
|
10
10
|
* Resolve the requester's preferred **authored** locale. The explicit UI
|
|
11
11
|
* locale cookie (`vc-locale`, written by @vuecs/locale) wins when it maps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.mjs","names":["matchLocale","
|
|
1
|
+
{"version":3,"file":"locale.mjs","names":["matchLocale","LOCALE_COOKIE","useRequestCookie","getRequestAcceptableLanguages","useRequestLocale","event","cookie","matched","languages","language","undefined"],"sources":["../../../../../src/adapters/http/request/helpers/locale.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { LocaleCode } from '@authup/i18n';\nimport { matchLocale } from '@authup/i18n';\nimport { LOCALE_COOKIE } from '@authup/server-console-kit';\nimport { useRequestCookie } from '@routup/basic/cookie';\nimport type { IAppEvent } from 'routup';\nimport { getRequestAcceptableLanguages } from 'routup';\n\n// The cookie name is owned by @authup/server-console-kit, which stamps the\n// served shells from it. Re-exported so this module stays the one place\n// server-core reads a request locale from.\nexport { LOCALE_COOKIE };\n\n/**\n * Resolve the requester's preferred **authored** locale. The explicit UI\n * locale cookie (`vc-locale`, written by @vuecs/locale) wins when it maps\n * onto a supported catalog locale; `auto` and unsupported values fall\n * through to the Accept-Language chain (routup-negotiated, q-ordered),\n * which is walked for the first language authup ships — so\n * `pt-BR, de;q=0.8` resolves to `de`, not the default. Returns undefined\n * when nothing matches (callers fall back to the default locale).\n */\nexport function useRequestLocale(event: IAppEvent): LocaleCode | undefined {\n const cookie = useRequestCookie(event, LOCALE_COOKIE);\n if (typeof cookie === 'string') {\n const matched = matchLocale(cookie);\n if (matched) {\n return matched;\n }\n }\n\n const languages = getRequestAcceptableLanguages(event);\n for (const language of languages) {\n const matched = matchLocale(language);\n if (matched) {\n return matched;\n }\n }\n\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;GA4BA,SAAgBI,iBAAiBC,OAAgB;CAC7C,MAAMC,SAASJ,iBAAiBG,OAAOJ,aAAAA;CACvC,IAAI,OAAOK,WAAW,UAAU;EAC5B,MAAMC,UAAUP,YAAYM,MAAAA;EAC5B,IAAIC,SACA,OAAOA;CAEf;CAEA,MAAMC,YAAYL,8BAA8BE,KAAAA;CAChD,KAAK,MAAMI,YAAYD,WAAW;EAC9B,MAAMD,UAAUP,YAAYS,QAAAA;EAC5B,IAAIF,SACA,OAAOA;CAEf;AAGJ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Logger } from '@authup/server-kit';
|
|
2
|
+
import type { IAppEvent } from 'routup';
|
|
3
|
+
export type SameOriginRequestOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* Reports an origin mismatch ONCE per process (see below). Omitted, the
|
|
6
|
+
* predicate is silent.
|
|
7
|
+
*/
|
|
8
|
+
logger?: Logger;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Whether a request demonstrably originates from publicUrl's own origin. This
|
|
12
|
+
* is the gate every cookie-authenticated surface rides on (plan 088), where
|
|
13
|
+
* the credential is ambient and no header proves intent by itself.
|
|
14
|
+
*
|
|
15
|
+
* Three conditions, in order:
|
|
16
|
+
*
|
|
17
|
+
* 1. `Sec-Fetch-Site: same-origin`, **failing closed when the header is
|
|
18
|
+
* absent**. This is the condition `SameSite` cannot carry: the attribute is
|
|
19
|
+
* scoped to the registrable domain, so a hostile sibling subdomain is
|
|
20
|
+
* *same-site* and its requests carry the cookie. A sibling sends
|
|
21
|
+
* `same-site`, never `same-origin`. Fetch Metadata is universal across the
|
|
22
|
+
* consoles' browser baseline (Chrome 111+, Safari 16.4+, Firefox 128+), so
|
|
23
|
+
* an absent header means a non-browser client, which has no business
|
|
24
|
+
* presenting a browser credential.
|
|
25
|
+
* 2. When `Origin` is present it must equal publicUrl's own origin.
|
|
26
|
+
* 3. When it is absent, only a safe method passes.
|
|
27
|
+
*
|
|
28
|
+
* A predicate rather than an assertion: the authorization middleware ignores a
|
|
29
|
+
* cookie that fails this and continues anonymous, while a route that acts on
|
|
30
|
+
* the cookie rejects.
|
|
31
|
+
*
|
|
32
|
+
* The mismatch in (2) is logged once, naming both values, because it is a
|
|
33
|
+
* deployment fault rather than an attack in every case that actually happens:
|
|
34
|
+
* a browser-facing host differing from `publicUrl` otherwise presents as a
|
|
35
|
+
* console that loads and then silently 401s every write.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isSameOriginRequest(event: IAppEvent, baseURL: string, options?: SameOriginRequestOptions): boolean;
|
|
38
|
+
//# sourceMappingURL=same-origin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"same-origin.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/request/helpers/same-origin.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,wBAAwB,GAAG;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAUF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,wBAA6B,GACtC,OAAO,CAuBV"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
//#region src/adapters/http/request/helpers/same-origin.ts
|
|
5
|
+
/**
|
|
6
|
+
* Methods RFC 9110 §9.2.1 defines as safe. A browser omits `Origin` on a
|
|
7
|
+
* same-origin request only for these; `fetch` / XHR set it on every other
|
|
8
|
+
* method, so an absent header on a state-changing request is not a browser
|
|
9
|
+
* doing what browsers do.
|
|
10
|
+
*/ const SAFE_METHODS = /* @__PURE__ */ new Set([
|
|
11
|
+
"GET",
|
|
12
|
+
"HEAD",
|
|
13
|
+
"OPTIONS"
|
|
14
|
+
]);
|
|
15
|
+
/**
|
|
16
|
+
* Whether a request demonstrably originates from publicUrl's own origin. This
|
|
17
|
+
* is the gate every cookie-authenticated surface rides on (plan 088), where
|
|
18
|
+
* the credential is ambient and no header proves intent by itself.
|
|
19
|
+
*
|
|
20
|
+
* Three conditions, in order:
|
|
21
|
+
*
|
|
22
|
+
* 1. `Sec-Fetch-Site: same-origin`, **failing closed when the header is
|
|
23
|
+
* absent**. This is the condition `SameSite` cannot carry: the attribute is
|
|
24
|
+
* scoped to the registrable domain, so a hostile sibling subdomain is
|
|
25
|
+
* *same-site* and its requests carry the cookie. A sibling sends
|
|
26
|
+
* `same-site`, never `same-origin`. Fetch Metadata is universal across the
|
|
27
|
+
* consoles' browser baseline (Chrome 111+, Safari 16.4+, Firefox 128+), so
|
|
28
|
+
* an absent header means a non-browser client, which has no business
|
|
29
|
+
* presenting a browser credential.
|
|
30
|
+
* 2. When `Origin` is present it must equal publicUrl's own origin.
|
|
31
|
+
* 3. When it is absent, only a safe method passes.
|
|
32
|
+
*
|
|
33
|
+
* A predicate rather than an assertion: the authorization middleware ignores a
|
|
34
|
+
* cookie that fails this and continues anonymous, while a route that acts on
|
|
35
|
+
* the cookie rejects.
|
|
36
|
+
*
|
|
37
|
+
* The mismatch in (2) is logged once, naming both values, because it is a
|
|
38
|
+
* deployment fault rather than an attack in every case that actually happens:
|
|
39
|
+
* a browser-facing host differing from `publicUrl` otherwise presents as a
|
|
40
|
+
* console that loads and then silently 401s every write.
|
|
41
|
+
*/ function isSameOriginRequest(event, baseURL, options = {}) {
|
|
42
|
+
if (event.headers.get("sec-fetch-site") !== "same-origin") return false;
|
|
43
|
+
let expected;
|
|
44
|
+
try {
|
|
45
|
+
expected = new URL(baseURL).origin;
|
|
46
|
+
} catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const origin = event.headers.get("origin");
|
|
50
|
+
if (origin) {
|
|
51
|
+
if (origin !== expected) {
|
|
52
|
+
reportOriginMismatch(origin, expected, options.logger);
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return SAFE_METHODS.has(`${event.method}`.toUpperCase());
|
|
58
|
+
}
|
|
59
|
+
let originMismatchReported = false;
|
|
60
|
+
function reportOriginMismatch(origin, expected, logger) {
|
|
61
|
+
if (originMismatchReported || !logger) return;
|
|
62
|
+
originMismatchReported = true;
|
|
63
|
+
logger.warn(`A same-origin request carried the origin ${origin}, but publicUrl resolves to ${expected}. Cookie-authenticated requests from that origin are refused. Set publicUrl to the origin the browser actually reaches.`);
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { isSameOriginRequest };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=same-origin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"same-origin.mjs","names":["SAFE_METHODS","Set","isSameOriginRequest","event","baseURL","options","headers","get","expected","URL","origin","reportOriginMismatch","logger","has","method","toUpperCase","originMismatchReported","warn"],"sources":["../../../../../src/adapters/http/request/helpers/same-origin.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Logger } from '@authup/server-kit';\nimport type { IAppEvent } from 'routup';\n\nexport type SameOriginRequestOptions = {\n /**\n * Reports an origin mismatch ONCE per process (see below). Omitted, the\n * predicate is silent.\n */\n logger?: Logger,\n};\n\n/**\n * Methods RFC 9110 §9.2.1 defines as safe. A browser omits `Origin` on a\n * same-origin request only for these; `fetch` / XHR set it on every other\n * method, so an absent header on a state-changing request is not a browser\n * doing what browsers do.\n */\nconst SAFE_METHODS = new Set(['GET', 'HEAD', 'OPTIONS']);\n\n/**\n * Whether a request demonstrably originates from publicUrl's own origin. This\n * is the gate every cookie-authenticated surface rides on (plan 088), where\n * the credential is ambient and no header proves intent by itself.\n *\n * Three conditions, in order:\n *\n * 1. `Sec-Fetch-Site: same-origin`, **failing closed when the header is\n * absent**. This is the condition `SameSite` cannot carry: the attribute is\n * scoped to the registrable domain, so a hostile sibling subdomain is\n * *same-site* and its requests carry the cookie. A sibling sends\n * `same-site`, never `same-origin`. Fetch Metadata is universal across the\n * consoles' browser baseline (Chrome 111+, Safari 16.4+, Firefox 128+), so\n * an absent header means a non-browser client, which has no business\n * presenting a browser credential.\n * 2. When `Origin` is present it must equal publicUrl's own origin.\n * 3. When it is absent, only a safe method passes.\n *\n * A predicate rather than an assertion: the authorization middleware ignores a\n * cookie that fails this and continues anonymous, while a route that acts on\n * the cookie rejects.\n *\n * The mismatch in (2) is logged once, naming both values, because it is a\n * deployment fault rather than an attack in every case that actually happens:\n * a browser-facing host differing from `publicUrl` otherwise presents as a\n * console that loads and then silently 401s every write.\n */\nexport function isSameOriginRequest(\n event: IAppEvent,\n baseURL: string,\n options: SameOriginRequestOptions = {},\n) : boolean {\n if (event.headers.get('sec-fetch-site') !== 'same-origin') {\n return false;\n }\n\n let expected : string;\n try {\n expected = new URL(baseURL).origin;\n } catch {\n return false;\n }\n\n const origin = event.headers.get('origin');\n if (origin) {\n if (origin !== expected) {\n reportOriginMismatch(origin, expected, options.logger);\n return false;\n }\n\n return true;\n }\n\n return SAFE_METHODS.has(`${event.method}`.toUpperCase());\n}\n\nlet originMismatchReported = false;\n\nfunction reportOriginMismatch(\n origin: string,\n expected: string,\n logger?: Logger,\n) : void {\n if (originMismatchReported || !logger) {\n return;\n }\n\n originMismatchReported = true;\n\n logger.warn(\n `A same-origin request carried the origin ${origin}, but publicUrl resolves to ${expected}. ` +\n 'Cookie-authenticated requests from that origin are refused. ' +\n 'Set publicUrl to the origin the browser actually reaches.',\n );\n}\n"],"mappings":";;;;;;;;;GAwBA,MAAMA,+BAAe,IAAIC,IAAI;CAAC;CAAO;CAAQ;AAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BvD,SAAgBC,oBACZC,OACAC,SACAC,UAAoC,CAAC,GAAC;CAEtC,IAAIF,MAAMG,QAAQC,IAAI,gBAAA,MAAsB,eACxC,OAAO;CAGX,IAAIC;CACJ,IAAI;EACAA,WAAW,IAAIC,IAAIL,OAAAA,CAAAA,CAASM;CAChC,QAAQ;EACJ,OAAO;CACX;CAEA,MAAMA,SAASP,MAAMG,QAAQC,IAAI,QAAA;CACjC,IAAIG,QAAQ;EACR,IAAIA,WAAWF,UAAU;GACrBG,qBAAqBD,QAAQF,UAAUH,QAAQO,MAAM;GACrD,OAAO;EACX;EAEA,OAAO;CACX;CAEA,OAAOZ,aAAaa,IAAI,GAAGV,MAAMW,SAASC,YAAW,CAAA;AACzD;AAEA,IAAIC,yBAAyB;AAE7B,SAASL,qBACLD,QACAF,UACAI,QAAe;CAEf,IAAII,0BAA0B,CAACJ,QAC3B;CAGJI,yBAAyB;CAEzBJ,OAAOK,KACH,4CAA4CP,OAAO,8BAA8BF,SAAS,wHAE1F;AAER"}
|
|
@@ -12,7 +12,7 @@ import { readFromLocations } from "./helpers/locations.mjs";
|
|
|
12
12
|
import { setRequestMfaLoginTicket, useRequestMfaLoginTicket } from "./helpers/mfa-login-ticket.mjs";
|
|
13
13
|
import { getRequestParamID, getRequestStringParam, getRequestStringParamOrFail, useRequestParamID } from "./helpers/param-id.mjs";
|
|
14
14
|
import { applyRouteRealmIDToBody, getRequestRealmID, setRequestRealmID } from "./helpers/realm-id.mjs";
|
|
15
|
-
import {
|
|
15
|
+
import { isSameOriginRequest } from "./helpers/same-origin.mjs";
|
|
16
16
|
import { setRequestScopes, useRequestScopes } from "./helpers/scopes.mjs";
|
|
17
17
|
import { setRequestSessionId, useRequestSessionId } from "./helpers/session-id.mjs";
|
|
18
18
|
import { setRequestToken, useRequestToken } from "./helpers/token.mjs";
|
|
@@ -20,4 +20,4 @@ import "./helpers/index.mjs";
|
|
|
20
20
|
import { createRequestEventContextMiddleware, runWithRequestEventContext, useRequestEventContext } from "./event-context.mjs";
|
|
21
21
|
import { RequestPermissionEvaluator } from "./permission/module.mjs";
|
|
22
22
|
import "./permission/index.mjs";
|
|
23
|
-
export { CERTIFICATE_SOURCES, LOCALE_COOKIE, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, applyRouteRealmIDToBody, buildActorContext, createRequestEventContextMiddleware, extractClientCertificateEvidence, getBodyRealmID, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, readFromLocations, runWithRequestEventContext,
|
|
23
|
+
export { CERTIFICATE_SOURCES, LOCALE_COOKIE, RequestHandlerOperation, RequestIdentity, RequestPermissionEvaluator, applyRouteRealmIDToBody, buildActorContext, createRequestEventContextMiddleware, extractClientCertificateEvidence, getBodyRealmID, getRequestParamID, getRequestRealmID, getRequestStringParam, getRequestStringParamOrFail, isSameOriginRequest, readFromLocations, runWithRequestEventContext, setRequestIdentity, setRequestMfaLoginTicket, setRequestPermissionEvaluator, setRequestRealmID, setRequestScopes, setRequestSessionId, setRequestToken, useRequestEventContext, useRequestIdentity, useRequestIdentityOrFail, useRequestLocale, useRequestMfaLoginTicket, useRequestParamID, useRequestPermissionEvaluator, useRequestScopes, useRequestSessionId, useRequestToken };
|
|
@@ -32,7 +32,7 @@ var RequestPermissionEvaluator = class {
|
|
|
32
32
|
extendContext(ctx) {
|
|
33
33
|
const scopes = useRequestScopes(this.event);
|
|
34
34
|
const identity = useRequestIdentity(this.event);
|
|
35
|
-
if (scopes.includes(ScopeName.GLOBAL)
|
|
35
|
+
if (identity && scopes.includes(ScopeName.GLOBAL)) {
|
|
36
36
|
ctx.data = ctx.data || new PolicyData();
|
|
37
37
|
ctx.data.set(BuiltInPolicyType.IDENTITY, identity);
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["ScopeName","BuiltInPolicyType","PolicyData","useRequestIdentity","useRequestScopes","RequestPermissionEvaluator","event","evaluator","evaluate","ctx","extendContext","preEvaluate","preEvaluateOneOf","evaluateOneOf","compile","scopes","identity","includes","GLOBAL","data","set","IDENTITY"],"sources":["../../../../../src/adapters/http/request/permission/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\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 { ScopeName } from '@authup/core-kit';\nimport type {\n IPermissionEvaluator,\n PermissionCompileContext,\n PermissionCompileResult,\n PermissionEvaluationContext,\n} from '@authup/access';\nimport { BuiltInPolicyType, PolicyData } from '@authup/access';\nimport type { IAppEvent } from 'routup';\nimport { useRequestIdentity, useRequestScopes } from '../helpers/index.ts';\n\nexport class RequestPermissionEvaluator implements IPermissionEvaluator {\n protected event: IAppEvent;\n\n protected evaluator: IPermissionEvaluator;\n\n constructor(event: IAppEvent, evaluator: IPermissionEvaluator) {\n this.event = event;\n this.evaluator = evaluator;\n }\n\n // --------------------------------------------------------------\n\n async evaluate(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.evaluate(this.extendContext(ctx));\n }\n\n async preEvaluate(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.preEvaluate(this.extendContext(ctx));\n }\n\n // --------------------------------------------------------------\n\n async preEvaluateOneOf(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.preEvaluateOneOf(this.extendContext(ctx));\n }\n\n async evaluateOneOf(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.evaluateOneOf(this.extendContext(ctx));\n }\n\n // --------------------------------------------------------------\n\n async compile(ctx: PermissionCompileContext) : Promise<PermissionCompileResult> {\n return this.evaluator.compile(this.extendContext(ctx));\n }\n\n // --------------------------------------------------------------\n\n protected extendContext<T extends PermissionEvaluationContext | PermissionCompileContext>(ctx: T) : T {\n const scopes = useRequestScopes(this.event);\n const identity = useRequestIdentity(this.event);\n\n // Only attach the identity policy data when an identity was actually\n // resolved. Setting it to `undefined` would still make\n // `PolicyData.has('identity')` true (key presence), so the built-in\n // identity evaluator would run its validator against `undefined` and\n // throw an uncaught error instead of a clean permission denial — see\n // the deleted-subject edge case in issue #3184.\n if (scopes.includes(ScopeName.GLOBAL)
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["ScopeName","BuiltInPolicyType","PolicyData","useRequestIdentity","useRequestScopes","RequestPermissionEvaluator","event","evaluator","evaluate","ctx","extendContext","preEvaluate","preEvaluateOneOf","evaluateOneOf","compile","scopes","identity","includes","GLOBAL","data","set","IDENTITY"],"sources":["../../../../../src/adapters/http/request/permission/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\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 { ScopeName } from '@authup/core-kit';\nimport type {\n IPermissionEvaluator,\n PermissionCompileContext,\n PermissionCompileResult,\n PermissionEvaluationContext,\n} from '@authup/access';\nimport { BuiltInPolicyType, PolicyData } from '@authup/access';\nimport type { IAppEvent } from 'routup';\nimport { useRequestIdentity, useRequestScopes } from '../helpers/index.ts';\n\nexport class RequestPermissionEvaluator implements IPermissionEvaluator {\n protected event: IAppEvent;\n\n protected evaluator: IPermissionEvaluator;\n\n constructor(event: IAppEvent, evaluator: IPermissionEvaluator) {\n this.event = event;\n this.evaluator = evaluator;\n }\n\n // --------------------------------------------------------------\n\n async evaluate(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.evaluate(this.extendContext(ctx));\n }\n\n async preEvaluate(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.preEvaluate(this.extendContext(ctx));\n }\n\n // --------------------------------------------------------------\n\n async preEvaluateOneOf(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.preEvaluateOneOf(this.extendContext(ctx));\n }\n\n async evaluateOneOf(ctx: PermissionEvaluationContext) : Promise<void> {\n return this.evaluator.evaluateOneOf(this.extendContext(ctx));\n }\n\n // --------------------------------------------------------------\n\n async compile(ctx: PermissionCompileContext) : Promise<PermissionCompileResult> {\n return this.evaluator.compile(this.extendContext(ctx));\n }\n\n // --------------------------------------------------------------\n\n protected extendContext<T extends PermissionEvaluationContext | PermissionCompileContext>(ctx: T) : T {\n const scopes = useRequestScopes(this.event);\n const identity = useRequestIdentity(this.event);\n\n // Only attach the identity policy data when an identity was actually\n // resolved. Setting it to `undefined` would still make\n // `PolicyData.has('identity')` true (key presence), so the built-in\n // identity evaluator would run its validator against `undefined` and\n // throw an uncaught error instead of a clean permission denial — see\n // the deleted-subject edge case in issue #3184.\n if (identity && scopes.includes(ScopeName.GLOBAL)) {\n ctx.data = ctx.data || new PolicyData();\n ctx.data.set(BuiltInPolicyType.IDENTITY, identity);\n }\n\n return ctx;\n }\n}\n"],"mappings":";;;;;;;;;AAkBA,IAAaK,6BAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYD,OAAkBC,WAAiC;EAC3D,KAAKD,QAAQA;EACb,KAAKC,YAAYA;CACrB;CAIA,MAAMC,SAASC,KAAkD;EAC7D,OAAO,KAAKF,UAAUC,SAAS,KAAKE,cAAcD,GAAAA,CAAAA;CACtD;CAEA,MAAME,YAAYF,KAAkD;EAChE,OAAO,KAAKF,UAAUI,YAAY,KAAKD,cAAcD,GAAAA,CAAAA;CACzD;CAIA,MAAMG,iBAAiBH,KAAkD;EACrE,OAAO,KAAKF,UAAUK,iBAAiB,KAAKF,cAAcD,GAAAA,CAAAA;CAC9D;CAEA,MAAMI,cAAcJ,KAAkD;EAClE,OAAO,KAAKF,UAAUM,cAAc,KAAKH,cAAcD,GAAAA,CAAAA;CAC3D;CAIA,MAAMK,QAAQL,KAAkE;EAC5E,OAAO,KAAKF,UAAUO,QAAQ,KAAKJ,cAAcD,GAAAA,CAAAA;CACrD;CAIUC,cAAgFD,KAAY;EAClG,MAAMM,SAASX,iBAAiB,KAAKE,KAAK;EAC1C,MAAMU,WAAWb,mBAAmB,KAAKG,KAAK;EAQ9C,IAAIU,YAAYD,OAAOE,SAASjB,UAAUkB,MAAM,GAAG;GAC/CT,IAAIU,OAAOV,IAAIU,QAAQ,IAAIjB,WAAAA;GAC3BO,IAAIU,KAAKC,IAAInB,kBAAkBoB,UAAUL,QAAAA;EAC7C;EAEA,OAAOP;CACX;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/request/types.ts"],"names":[],"mappings":"AASA,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/adapters/shared/ldap/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,qBAAa,UAAW,YAAW,WAAW;IAC1C,SAAS,CAAC,OAAO,EAAG,iBAAiB,CAAC;IAEtC,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC;gBAEd,OAAO,EAAE,iBAAiB;IAShC,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/adapters/shared/ldap/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,qBAAa,UAAW,YAAW,WAAW;IAC1C,SAAS,CAAC,OAAO,EAAG,iBAAiB,CAAC;IAEtC,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC;gBAEd,OAAO,EAAE,iBAAiB;IAShC,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IA4C/B,IAAI,SAAS,IAAK,OAAO,CAExB;IAEY,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAgC7D,MAAM,IAAK,OAAO,CAAC,IAAI,CAAC;IAaxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAa3C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAajC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAI,OAAO,CAAC,IAAI,CAAC;IAa/D,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,MAAM,GAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IA8ClF,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,GAAI,MAAM;IA6BvC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,GAAI,OAAO;CAgB1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["ldap","LdapClient","options","driver","createClient","url","tlsOptions","tls","connectTimeout","connect","Promise","resolve","reject","listener","startTLS","starttls","err","connected","errorListener","error","once","bind","user","password","then","Error","catch","e","unbind","add","name","data","del","modify","change","search","dn","resolveDn","baseDn","scope","res","entries","on","searchEntry","entry","pojo","objectName","i","attributes","length","attribute","type","Array","isArray","values","map","el","trim","filter","Boolean","push","searchResult","status","input","output","parseDN","childOf","equals","SyntaxError","isDn","DN","isDN","fromString","test"],"sources":["../../../../src/adapters/shared/ldap/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\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 { Change, Client, SearchOptions } from 'ldapjs';\nimport ldap from 'ldapjs';\nimport type { ILdapClient } from '../../../core/index.ts';\nimport type { LdapClientOptions } from './types.ts';\n\nexport class LdapClient implements ILdapClient {\n protected options : LdapClientOptions;\n\n protected driver : Client;\n\n constructor(options: LdapClientOptions) {\n this.options = options;\n this.driver = ldap.createClient({\n url: options.url,\n tlsOptions: options.tls,\n connectTimeout: 3000,\n });\n }\n\n async connect() : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const listener = () => {\n if (this.options.startTLS) {\n this.driver.starttls(\n this.options.tls || {},\n null,\n (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n },\n );\n } else {\n resolve();\n }\n };\n\n if (this.driver.connected) {\n listener();\n return;\n }\n\n const errorListener = (error?: Error | null) => {\n if (error) {\n reject(error);\n }\n\n resolve();\n };\n\n this.driver.connect();\n this.driver.once('connect', listener);\n this.driver.once('timeout', errorListener);\n this.driver.once('connectTimeout', errorListener);\n this.driver.once('error', errorListener);\n this.driver.once('connectError', errorListener);\n });\n }\n\n get connected() : boolean {\n return this.driver.connected;\n }\n\n public async bind(user?: string, password?: string) : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.connect()\n .then(() => {\n if (!user) {\n user = this.options.user;\n password = this.options.password;\n }\n\n if (!user) {\n reject(new Error('User name not defined.'));\n return;\n }\n\n if (!password) {\n reject(new Error('User password not defined.'));\n return;\n }\n\n this.driver.bind(user, password, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n })\n .catch((e) => reject(e));\n });\n }\n\n async unbind() : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.driver.unbind((err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async add(name: string, data: Record<string, any>) {\n return new Promise<void>((resolve, reject) => {\n this.driver.add(name, data, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async del(name: string) : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.driver.del(name, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async modify(name: string, change: Change | Change[]) : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.driver.modify(name, change, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async search(options: SearchOptions, dn?: string) : Promise<Record<string, any>[]> {\n return new Promise((resolve, reject) => {\n this.driver.search(\n this.resolveDn(dn, this.options.baseDn),\n {\n scope: 'sub',\n ...options,\n },\n (err, res) => {\n if (err) {\n reject(err);\n return;\n }\n\n const entries : Record<string, any>[] = [];\n\n res.on('searchEntry', (searchEntry) => {\n const entry : Record<string, any> = { dn: searchEntry.pojo.objectName };\n\n for (let i = 0; i < searchEntry.attributes.length; i++) {\n const attribute = searchEntry.attributes[i];\n\n entry[attribute.type] = Array.isArray(attribute.values) ?\n attribute.values.map((el: string) => el.trim()).filter(Boolean) :\n attribute.values;\n }\n\n entries.push(entry);\n });\n\n res.on('error', (err) => {\n reject(err);\n });\n\n res.on('end', (searchResult) => {\n if (!searchResult || searchResult.status !== 0) {\n reject(new Error('The ldap search was not successfully'));\n } else {\n resolve(entries);\n }\n });\n },\n );\n });\n }\n\n resolveDn(...input: unknown[]) : string {\n let output : string | undefined;\n\n for (let i = 0; i <= input.length; i++) {\n const el = input[i];\n if (typeof el !== 'string') {\n continue;\n }\n\n if (!output) {\n output = el;\n continue;\n }\n\n const dn = ldap.parseDN(output);\n if (dn.childOf(el) || dn.equals(el)) {\n continue;\n }\n\n output += `,${input[i]}`;\n }\n\n if (!output) {\n throw new SyntaxError('Dn could not be resolved.');\n }\n\n return output;\n }\n\n isDn(input: string | ldap.DN) : boolean {\n try {\n if (typeof input !== 'string') {\n return ldap.DN.isDN(input);\n }\n\n if (typeof (ldap.DN as Record<string, any>).fromString === 'function') {\n const dn = (ldap.DN as Record<string, any>).fromString(input);\n return typeof dn !== 'undefined';\n }\n\n return /^(?:(?:(?:[a-zA-Z0-9]+(?:[-._][a-zA-Z0-9]+)*)=(?:[\\s]*[^,+\\n=]+[\\s]*)*)(?:[,][\\s]*)?)+$/.test(input);\n } catch {\n return false;\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["ldap","LdapClient","options","driver","createClient","url","tlsOptions","tls","connectTimeout","connect","Promise","resolve","reject","listener","startTLS","starttls","err","connected","errorListener","error","once","bind","user","password","then","Error","catch","e","unbind","add","name","data","del","modify","change","search","dn","resolveDn","baseDn","scope","res","entries","on","searchEntry","entry","pojo","objectName","i","attributes","length","attribute","type","Array","isArray","values","map","el","trim","filter","Boolean","push","searchResult","status","input","output","parseDN","childOf","equals","SyntaxError","isDn","DN","isDN","fromString","test"],"sources":["../../../../src/adapters/shared/ldap/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\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 { Change, Client, SearchOptions } from 'ldapjs';\nimport ldap from 'ldapjs';\nimport type { ILdapClient } from '../../../core/index.ts';\nimport type { LdapClientOptions } from './types.ts';\n\nexport class LdapClient implements ILdapClient {\n protected options : LdapClientOptions;\n\n protected driver : Client;\n\n constructor(options: LdapClientOptions) {\n this.options = options;\n this.driver = ldap.createClient({\n url: options.url,\n tlsOptions: options.tls,\n connectTimeout: 3000,\n });\n }\n\n async connect() : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const listener = () => {\n if (this.options.startTLS) {\n this.driver.starttls(\n this.options.tls || {},\n null,\n (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n },\n );\n } else {\n resolve();\n }\n };\n\n if (this.driver.connected) {\n listener();\n return;\n }\n\n const errorListener = (error?: Error | null) => {\n if (error) {\n reject(error);\n return;\n }\n\n resolve();\n };\n\n this.driver.connect();\n this.driver.once('connect', listener);\n this.driver.once('timeout', errorListener);\n this.driver.once('connectTimeout', errorListener);\n this.driver.once('error', errorListener);\n this.driver.once('connectError', errorListener);\n });\n }\n\n get connected() : boolean {\n return this.driver.connected;\n }\n\n public async bind(user?: string, password?: string) : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.connect()\n .then(() => {\n if (!user) {\n user = this.options.user;\n password = this.options.password;\n }\n\n if (!user) {\n reject(new Error('User name not defined.'));\n return;\n }\n\n if (!password) {\n reject(new Error('User password not defined.'));\n return;\n }\n\n this.driver.bind(user, password, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n })\n .catch((e) => reject(e));\n });\n }\n\n async unbind() : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.driver.unbind((err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async add(name: string, data: Record<string, any>) {\n return new Promise<void>((resolve, reject) => {\n this.driver.add(name, data, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async del(name: string) : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.driver.del(name, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async modify(name: string, change: Change | Change[]) : Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.driver.modify(name, change, (err) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve();\n });\n });\n }\n\n async search(options: SearchOptions, dn?: string) : Promise<Record<string, any>[]> {\n return new Promise((resolve, reject) => {\n this.driver.search(\n this.resolveDn(dn, this.options.baseDn),\n {\n scope: 'sub',\n ...options,\n },\n (err, res) => {\n if (err) {\n reject(err);\n return;\n }\n\n const entries : Record<string, any>[] = [];\n\n res.on('searchEntry', (searchEntry) => {\n const entry : Record<string, any> = { dn: searchEntry.pojo.objectName };\n\n for (let i = 0; i < searchEntry.attributes.length; i++) {\n const attribute = searchEntry.attributes[i];\n\n entry[attribute.type] = Array.isArray(attribute.values) ?\n attribute.values.map((el: string) => el.trim()).filter(Boolean) :\n attribute.values;\n }\n\n entries.push(entry);\n });\n\n res.on('error', (err) => {\n reject(err);\n });\n\n res.on('end', (searchResult) => {\n if (!searchResult || searchResult.status !== 0) {\n reject(new Error('The ldap search was not successfully'));\n } else {\n resolve(entries);\n }\n });\n },\n );\n });\n }\n\n resolveDn(...input: unknown[]) : string {\n let output : string | undefined;\n\n for (let i = 0; i <= input.length; i++) {\n const el = input[i];\n if (typeof el !== 'string') {\n continue;\n }\n\n if (!output) {\n output = el;\n continue;\n }\n\n const dn = ldap.parseDN(output);\n if (dn.childOf(el) || dn.equals(el)) {\n continue;\n }\n\n output += `,${input[i]}`;\n }\n\n if (!output) {\n throw new SyntaxError('Dn could not be resolved.');\n }\n\n return output;\n }\n\n isDn(input: string | ldap.DN) : boolean {\n try {\n if (typeof input !== 'string') {\n return ldap.DN.isDN(input);\n }\n\n if (typeof (ldap.DN as Record<string, any>).fromString === 'function') {\n const dn = (ldap.DN as Record<string, any>).fromString(input);\n return typeof dn !== 'undefined';\n }\n\n return /^(?:(?:(?:[a-zA-Z0-9]+(?:[-._][a-zA-Z0-9]+)*)=(?:[\\s]*[^,+\\n=]+[\\s]*)*)(?:[,][\\s]*)?)+$/.test(input);\n } catch {\n return false;\n }\n }\n}\n"],"mappings":";;;;;AAYA,IAAaC,aAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYD,SAA4B;EACpC,KAAKA,UAAUA;EACf,KAAKC,SAASH,KAAKI,aAAa;GAC5BC,KAAKH,QAAQG;GACbC,YAAYJ,QAAQK;GACpBC,gBAAgB;EACpB,CAAA;CACJ;CAEA,MAAMC,UAA0B;EAC5B,OAAO,IAAIC,SAAeC,SAASC,WAAAA;GAC/B,MAAMC,iBAAW;IACb,IAAI,KAAKX,QAAQY,UACb,KAAKX,OAAOY,SACR,KAAKb,QAAQK,OAAO,CAAC,GACrB,OACCS,QAAAA;KACG,IAAIA,KAAK;MACLJ,OAAOI,GAAAA;MACP;KACJ;KAEAL,QAAAA;IACJ,CAAA;SAGJA,QAAAA;GAER;GAEA,IAAI,KAAKR,OAAOc,WAAW;IACvBJ,SAAAA;IACA;GACJ;GAEA,MAAMK,iBAAiBC,UAAAA;IACnB,IAAIA,OAAO;KACPP,OAAOO,KAAAA;KACP;IACJ;IAEAR,QAAAA;GACJ;GAEA,KAAKR,OAAOM,QAAO;GACnB,KAAKN,OAAOiB,KAAK,WAAWP,QAAAA;GAC5B,KAAKV,OAAOiB,KAAK,WAAWF,aAAAA;GAC5B,KAAKf,OAAOiB,KAAK,kBAAkBF,aAAAA;GACnC,KAAKf,OAAOiB,KAAK,SAASF,aAAAA;GAC1B,KAAKf,OAAOiB,KAAK,gBAAgBF,aAAAA;EACrC,CAAA;CACJ;CAEA,IAAID,YAAsB;EACtB,OAAO,KAAKd,OAAOc;CACvB;CAEA,MAAaI,KAAKC,MAAeC,UAAmC;EAChE,OAAO,IAAIb,SAAeC,SAASC,WAAAA;GAC/B,KAAKH,QAAO,CAAA,CACPe,WAAK;IACF,IAAI,CAACF,MAAM;KACPA,OAAO,KAAKpB,QAAQoB;KACpBC,WAAW,KAAKrB,QAAQqB;IAC5B;IAEA,IAAI,CAACD,MAAM;KACPV,uBAAO,IAAIa,MAAM,wBAAA,CAAA;KACjB;IACJ;IAEA,IAAI,CAACF,UAAU;KACXX,uBAAO,IAAIa,MAAM,4BAAA,CAAA;KACjB;IACJ;IAEA,KAAKtB,OAAOkB,KAAKC,MAAMC,WAAWP,QAAAA;KAC9B,IAAIA,KAAK;MACLJ,OAAOI,GAAAA;MACP;KACJ;KAEAL,QAAAA;IACJ,CAAA;GACJ,CAAA,CAAA,CACCe,OAAOC,MAAMf,OAAOe,CAAAA,CAAAA;EAC7B,CAAA;CACJ;CAEA,MAAMC,SAAyB;EAC3B,OAAO,IAAIlB,SAAeC,SAASC,WAAAA;GAC/B,KAAKT,OAAOyB,QAAQZ,QAAAA;IAChB,IAAIA,KAAK;KACLJ,OAAOI,GAAAA;KACP;IACJ;IAEAL,QAAAA;GACJ,CAAA;EACJ,CAAA;CACJ;CAEA,MAAMkB,IAAIC,MAAcC,MAA2B;EAC/C,OAAO,IAAIrB,SAAeC,SAASC,WAAAA;GAC/B,KAAKT,OAAO0B,IAAIC,MAAMC,OAAOf,QAAAA;IACzB,IAAIA,KAAK;KACLJ,OAAOI,GAAAA;KACP;IACJ;IAEAL,QAAAA;GACJ,CAAA;EACJ,CAAA;CACJ;CAEA,MAAMqB,IAAIF,MAA8B;EACpC,OAAO,IAAIpB,SAAeC,SAASC,WAAAA;GAC/B,KAAKT,OAAO6B,IAAIF,OAAOd,QAAAA;IACnB,IAAIA,KAAK;KACLJ,OAAOI,GAAAA;KACP;IACJ;IAEAL,QAAAA;GACJ,CAAA;EACJ,CAAA;CACJ;CAEA,MAAMsB,OAAOH,MAAcI,QAA2C;EAClE,OAAO,IAAIxB,SAAeC,SAASC,WAAAA;GAC/B,KAAKT,OAAO8B,OAAOH,MAAMI,SAASlB,QAAAA;IAC9B,IAAIA,KAAK;KACLJ,OAAOI,GAAAA;KACP;IACJ;IAEAL,QAAAA;GACJ,CAAA;EACJ,CAAA;CACJ;CAEA,MAAMwB,OAAOjC,SAAwBkC,IAA8C;EAC/E,OAAO,IAAI1B,SAASC,SAASC,WAAAA;GACzB,KAAKT,OAAOgC,OACR,KAAKE,UAAUD,IAAI,KAAKlC,QAAQoC,MAAM,GACtC;IACIC,OAAO;IACP,GAAGrC;GACP,IACCc,KAAKwB,QAAAA;IACF,IAAIxB,KAAK;KACLJ,OAAOI,GAAAA;KACP;IACJ;IAEA,MAAMyB,UAAkC,CAAA;IAExCD,IAAIE,GAAG,gBAAgBC,gBAAAA;KACnB,MAAMC,QAA8B,EAAER,IAAIO,YAAYE,KAAKC,WAAW;KAEtE,KAAK,IAAIC,IAAI,GAAGA,IAAIJ,YAAYK,WAAWC,QAAQF,KAAK;MACpD,MAAMG,YAAYP,YAAYK,WAAWD;MAEzCH,MAAMM,UAAUC,QAAQC,MAAMC,QAAQH,UAAUI,MAAM,IAClDJ,UAAUI,OAAOC,KAAKC,OAAeA,GAAGC,KAAI,CAAA,CAAA,CAAIC,OAAOC,OAAAA,IACvDT,UAAUI;KAClB;KAEAb,QAAQmB,KAAKhB,KAAAA;IACjB,CAAA;IAEAJ,IAAIE,GAAG,UAAU1B,QAAAA;KACbJ,OAAOI,GAAAA;IACX,CAAA;IAEAwB,IAAIE,GAAG,QAAQmB,iBAAAA;KACX,IAAI,CAACA,gBAAgBA,aAAaC,WAAW,GACzClD,uBAAO,IAAIa,MAAM,sCAAA,CAAA;UAEjBd,QAAQ8B,OAAAA;IAEhB,CAAA;GACJ,CAAA;EAER,CAAA;CACJ;CAEAJ,UAAU,GAAG0B,OAA2B;EACpC,IAAIC;EAEJ,KAAK,IAAIjB,IAAI,GAAGA,KAAKgB,MAAMd,QAAQF,KAAK;GACpC,MAAMS,KAAKO,MAAMhB;GACjB,IAAI,OAAOS,OAAO,UACd;GAGJ,IAAI,CAACQ,QAAQ;IACTA,SAASR;IACT;GACJ;GAEA,MAAMpB,KAAKpC,KAAKiE,QAAQD,MAAAA;GACxB,IAAI5B,GAAG8B,QAAQV,EAAAA,KAAOpB,GAAG+B,OAAOX,EAAAA,GAC5B;GAGJQ,UAAU,IAAID,MAAMhB;EACxB;EAEA,IAAI,CAACiB,QACD,MAAM,IAAII,YAAY,2BAAA;EAG1B,OAAOJ;CACX;CAEAK,KAAKN,OAAmC;EACpC,IAAI;GACA,IAAI,OAAOA,UAAU,UACjB,OAAO/D,KAAKsE,GAAGC,KAAKR,KAAAA;GAGxB,IAAI,OAAO,KAAMO,GAA2BE,eAAe,YAEvD,OAAO,OADI,KAAMF,GAA2BE,WAAWT,KACzC3B,MAAO;GAGzB,OAAO,0FAA0FqC,KAAKV,KAAAA;EAC1G,QAAQ;GACJ,OAAO;EACX;CACJ;AACJ"}
|
package/dist/app/builder.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AuthenticationModule, CacheModule, ComponentsModule, ConfigModule, DatabaseModule,
|
|
1
|
+
import type { ApplicationContext, IApplication, IModule } from 'orkos';
|
|
2
|
+
import { AuthenticationModule, CacheModule, ComponentsModule, ConfigModule, DatabaseModule, IdentityModule, LdapModule, LoggerModule, MailModule, OAuth2Module, ProvisionerModule, RuntimeModule } from './modules/index.ts';
|
|
3
3
|
type ModuleSlot = IModule | false | undefined;
|
|
4
4
|
export declare class ApplicationBuilder {
|
|
5
5
|
protected slots: Map<string, ModuleSlot>;
|
|
@@ -16,9 +16,9 @@ export declare class ApplicationBuilder {
|
|
|
16
16
|
withIdentity(instance?: IdentityModule | false): this;
|
|
17
17
|
withOAuth2(instance?: OAuth2Module | false): this;
|
|
18
18
|
withComponents(instance?: ComponentsModule | false): this;
|
|
19
|
-
withHTTP(instance?:
|
|
19
|
+
withHTTP(instance?: IModule | false): this;
|
|
20
20
|
buildModules(): IModule[];
|
|
21
|
-
build(): IApplication;
|
|
21
|
+
build(ctx?: ApplicationContext): IApplication;
|
|
22
22
|
protected set(name: string, instance?: IModule | false): this;
|
|
23
23
|
}
|
|
24
24
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/app/builder.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/app/builder.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,EACH,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,cAAc,EAEd,cAAc,EACd,UAAU,EACV,YAAY,EACZ,UAAU,EAEV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAChB,MAAM,oBAAoB,CAAC;AAE5B,KAAK,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AAoB9C,qBAAa,kBAAkB;IAC3B,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;;IAQzC,UAAU,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI;IAIjD,UAAU,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI;IAIjD,SAAS,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,IAAI;IAI/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,IAAI;IAI7C,WAAW,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,IAAI;IAInD,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI;IAIrD,gBAAgB,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,KAAK,GAAG,IAAI;IAI5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,IAAI;IAI7C,kBAAkB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,GAAG,KAAK,GAAG,IAAI;IAIjE,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI;IAIrD,UAAU,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI;IAIjD,cAAc,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,KAAK,GAAG,IAAI;IAIzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI;IAM1C,YAAY,IAAI,OAAO,EAAE;IAsBzB,KAAK,CAAC,GAAG,GAAE,kBAAuB,GAAG,YAAY;IAMjD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI;CAWhE"}
|
package/dist/app/builder.mjs
CHANGED
|
@@ -4,13 +4,13 @@ import.meta.url;
|
|
|
4
4
|
import { ModuleName } from "./modules/constants.mjs";
|
|
5
5
|
import { ConfigModule } from "./modules/config/module.mjs";
|
|
6
6
|
import { CacheModule } from "./modules/cache/module.mjs";
|
|
7
|
-
import { AuthenticationModule } from "./modules/authentication/module.mjs";
|
|
8
7
|
import { LoggerModule } from "./modules/logger/module.mjs";
|
|
9
8
|
import { DatabaseModule } from "./modules/database/module.mjs";
|
|
10
|
-
import { ComponentsModule } from "./modules/components/module.mjs";
|
|
11
9
|
import { LdapModule } from "./modules/ldap/module.mjs";
|
|
12
10
|
import { IdentityModule } from "./modules/identity/module.mjs";
|
|
13
11
|
import { OAuth2Module } from "./modules/oauth2/module.mjs";
|
|
12
|
+
import { AuthenticationModule } from "./modules/authentication/module.mjs";
|
|
13
|
+
import { ComponentsModule } from "./modules/components/module.mjs";
|
|
14
14
|
import { MailModule } from "./modules/mail/module.mjs";
|
|
15
15
|
import { HTTPModule } from "./modules/http/module.mjs";
|
|
16
16
|
import { ProvisionerModule } from "./modules/provisioning/module.mjs";
|
|
@@ -90,8 +90,11 @@ var ApplicationBuilder = class {
|
|
|
90
90
|
});
|
|
91
91
|
return modules;
|
|
92
92
|
}
|
|
93
|
-
build() {
|
|
94
|
-
return new Application({
|
|
93
|
+
build(ctx = {}) {
|
|
94
|
+
return new Application({
|
|
95
|
+
modules: this.buildModules(),
|
|
96
|
+
...ctx
|
|
97
|
+
});
|
|
95
98
|
}
|
|
96
99
|
set(name, instance) {
|
|
97
100
|
if (instance === false) this.slots.set(name, false);
|