@authup/server-core 1.0.0-beta.52 → 1.0.0-beta.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs +18 -8
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.d.ts +5 -2
- package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs +28 -4
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-permission/entity.mjs +2 -2
- package/dist/adapters/database/domains/consent/entity.d.ts +20 -0
- package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/consent/entity.mjs +110 -0
- package/dist/adapters/database/domains/consent/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/consent/index.d.ts +3 -0
- package/dist/adapters/database/domains/consent/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/consent/index.mjs +6 -0
- package/dist/adapters/database/domains/consent/subscriber.d.ts +6 -0
- package/dist/adapters/database/domains/consent/subscriber.d.ts.map +1 -0
- package/dist/adapters/database/domains/consent/subscriber.mjs +45 -0
- package/dist/adapters/database/domains/consent/subscriber.mjs.map +1 -0
- package/dist/adapters/database/domains/constants.d.ts +1 -0
- package/dist/adapters/database/domains/constants.d.ts.map +1 -1
- package/dist/adapters/database/domains/constants.mjs +1 -0
- package/dist/adapters/database/domains/constants.mjs.map +1 -1
- package/dist/adapters/database/domains/event/entity.d.ts +22 -0
- package/dist/adapters/database/domains/event/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/event/entity.mjs +174 -0
- package/dist/adapters/database/domains/event/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/event/index.d.ts +2 -0
- package/dist/adapters/database/domains/event/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/event/index.mjs +5 -0
- package/dist/adapters/database/domains/identity-provider-account/entity.mjs +2 -2
- package/dist/adapters/database/domains/index.d.ts +4 -0
- package/dist/adapters/database/domains/index.d.ts.map +1 -1
- package/dist/adapters/database/domains/index.mjs +24 -15
- package/dist/adapters/database/domains/key/entity.d.ts +7 -3
- package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/key/entity.mjs +35 -10
- package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission-policy/entity.mjs +2 -2
- package/dist/adapters/database/domains/policy/repository.d.ts.map +1 -1
- package/dist/adapters/database/domains/policy/repository.mjs +3 -3
- package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-permission/entity.mjs +2 -2
- package/dist/adapters/database/domains/role/repository.mjs +1 -1
- package/dist/adapters/database/domains/role-permission/entity.mjs +2 -2
- package/dist/adapters/database/domains/session/entity.d.ts +3 -1
- package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs +12 -0
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/trust-anchor/entity.d.ts +13 -0
- package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/trust-anchor/entity.mjs +55 -0
- package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/trust-anchor/index.d.ts +2 -0
- package/dist/adapters/database/domains/trust-anchor/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/trust-anchor/index.mjs +5 -0
- package/dist/adapters/database/domains/user-authenticator/entity.d.ts +20 -0
- package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/user-authenticator/entity.mjs +98 -0
- package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/user-authenticator/index.d.ts +2 -0
- package/dist/adapters/database/domains/user-authenticator/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/user-authenticator/index.mjs +5 -0
- package/dist/adapters/database/domains/user-permission/entity.mjs +1 -1
- package/dist/adapters/database/errors/driver.d.ts +14 -0
- package/dist/adapters/database/errors/driver.d.ts.map +1 -0
- package/dist/adapters/database/errors/driver.mjs +32 -0
- package/dist/adapters/database/errors/driver.mjs.map +1 -0
- package/dist/adapters/database/errors/index.d.ts +1 -0
- package/dist/adapters/database/errors/index.d.ts.map +1 -1
- package/dist/adapters/database/errors/index.mjs +2 -1
- package/dist/adapters/database/index.mjs +17 -11
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts +50 -0
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs +320 -0
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts +50 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs +310 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs.map +1 -0
- package/dist/adapters/database/subscriber/module.d.ts +1 -1
- package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
- package/dist/adapters/database/subscriber/module.mjs +4 -3
- package/dist/adapters/database/subscriber/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +4 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +27 -2
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts +9 -1
- package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +4 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +23 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts +4 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +13 -6
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +38 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +119 -6
- package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +16 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +14 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts +5 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts.map +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs +18 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs.map +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/index.mjs +2 -1
- package/dist/adapters/http/controllers/entities/consent/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/consent/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/consent/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/consent/module.d.ts +15 -0
- package/dist/adapters/http/controllers/entities/consent/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/consent/module.mjs +82 -0
- package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/event/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/event/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/event/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/event/module.d.ts +14 -0
- package/dist/adapters/http/controllers/entities/event/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/event/module.mjs +68 -0
- package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +4 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +38 -10
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +3 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/index.d.ts +5 -0
- package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/index.mjs +11 -1
- package/dist/adapters/http/controllers/entities/key/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/key/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/key/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/key/module.d.ts +17 -0
- package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/key/module.mjs +122 -0
- package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +16 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts +17 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +120 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts +21 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +154 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/index.mjs +7 -1
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts +46 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +132 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +34 -6
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +17 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +28 -14
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs +28 -14
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts +2 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +28 -8
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/types.d.ts +11 -4
- package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
- package/dist/adapters/http/index.mjs +13 -3
- package/dist/adapters/http/middleware/built-in/assets.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +13 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +52 -2
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +2 -0
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts +12 -1
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs +75 -6
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +2 -2
- package/dist/adapters/http/request/client-certificate.d.ts +5 -0
- package/dist/adapters/http/request/client-certificate.d.ts.map +1 -0
- package/dist/adapters/http/request/client-certificate.mjs +88 -0
- package/dist/adapters/http/request/client-certificate.mjs.map +1 -0
- package/dist/adapters/http/request/constants.d.ts +1 -0
- package/dist/adapters/http/request/constants.d.ts.map +1 -1
- package/dist/adapters/http/request/constants.mjs +6 -1
- package/dist/adapters/http/request/constants.mjs.map +1 -1
- package/dist/adapters/http/request/event-context.d.ts +19 -0
- package/dist/adapters/http/request/event-context.d.ts.map +1 -0
- package/dist/adapters/http/request/event-context.mjs +37 -0
- package/dist/adapters/http/request/event-context.mjs.map +1 -0
- package/dist/adapters/http/request/helpers/index.d.ts +1 -0
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +2 -1
- package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts +16 -0
- package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs +15 -0
- package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs.map +1 -0
- package/dist/adapters/http/request/index.d.ts +3 -0
- package/dist/adapters/http/request/index.d.ts.map +1 -1
- package/dist/adapters/http/request/index.mjs +5 -2
- package/dist/adapters/http/request/types.d.ts +3 -0
- package/dist/adapters/http/request/types.d.ts.map +1 -0
- package/dist/adapters/http/ui/render.mjs +2 -2
- package/dist/app/index.mjs +11 -5
- package/dist/app/modules/components/module.d.ts.map +1 -1
- package/dist/app/modules/components/module.mjs +22 -2
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/config/constants.d.ts +14 -0
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +14 -0
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/normalize.d.ts.map +1 -1
- package/dist/app/modules/config/normalize.mjs +30 -2
- package/dist/app/modules/config/normalize.mjs.map +1 -1
- package/dist/app/modules/config/read/env.d.ts.map +1 -1
- package/dist/app/modules/config/read/env.mjs +57 -0
- package/dist/app/modules/config/read/env.mjs.map +1 -1
- package/dist/app/modules/config/types.d.ts +101 -0
- 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 +16 -0
- package/dist/app/modules/config/validator.mjs.map +1 -1
- package/dist/app/modules/database/constants.d.ts +3 -0
- package/dist/app/modules/database/constants.d.ts.map +1 -1
- package/dist/app/modules/database/constants.mjs +3 -1
- package/dist/app/modules/database/constants.mjs.map +1 -1
- package/dist/app/modules/database/index.mjs +7 -3
- package/dist/app/modules/database/module.d.ts +1 -0
- package/dist/app/modules/database/module.d.ts.map +1 -1
- package/dist/app/modules/database/module.mjs +32 -1
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs +8 -4
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/event/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/event/index.mjs +5 -0
- package/dist/app/modules/database/repositories/event/repository.d.ts +15 -0
- package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/event/repository.mjs +113 -0
- package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -0
- package/dist/app/modules/database/repositories/helpers.d.ts +4 -2
- package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs +7 -3
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/index.d.ts +4 -0
- package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/index.mjs +9 -1
- package/dist/app/modules/database/repositories/key/index.d.ts +2 -0
- package/dist/app/modules/database/repositories/key/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/key/index.mjs +5 -0
- package/dist/app/modules/database/repositories/key/repository.d.ts +50 -0
- package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/key/repository.mjs +273 -0
- package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -0
- package/dist/app/modules/database/repositories/permission-provider/module.mjs +1 -1
- package/dist/app/modules/database/repositories/trust-anchor/index.d.ts +2 -0
- package/dist/app/modules/database/repositories/trust-anchor/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/trust-anchor/index.mjs +5 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts +24 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +113 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -0
- package/dist/app/modules/database/repositories/user-authenticator/index.d.ts +2 -0
- package/dist/app/modules/database/repositories/user-authenticator/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/user-authenticator/index.mjs +5 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts +19 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +92 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -0
- package/dist/app/modules/http/module.d.ts +8 -0
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +19 -1
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +16 -3
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +186 -15
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts +1 -0
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +10 -4
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs +2 -2
- package/dist/app/modules/index.d.ts +1 -0
- package/dist/app/modules/index.d.ts.map +1 -1
- package/dist/app/modules/index.mjs +13 -6
- package/dist/app/modules/mail/module.d.ts.map +1 -1
- package/dist/app/modules/mail/module.mjs +2 -1
- package/dist/app/modules/mail/module.mjs.map +1 -1
- package/dist/app/modules/metrics/constants.d.ts +4 -0
- package/dist/app/modules/metrics/constants.d.ts.map +1 -0
- package/dist/app/modules/metrics/constants.mjs +10 -0
- package/dist/app/modules/metrics/constants.mjs.map +1 -0
- package/dist/app/modules/metrics/index.d.ts +3 -0
- package/dist/app/modules/metrics/index.d.ts.map +1 -0
- package/dist/app/modules/metrics/index.mjs +6 -0
- package/dist/app/modules/metrics/prom.d.ts +15 -0
- package/dist/app/modules/metrics/prom.d.ts.map +1 -0
- package/dist/app/modules/metrics/prom.mjs +42 -0
- package/dist/app/modules/metrics/prom.mjs.map +1 -0
- package/dist/app/modules/oauth2/constants.d.ts +9 -2
- package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/constants.mjs +7 -1
- 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 +23 -4
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/consent/index.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/consent/index.mjs +5 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.d.ts +20 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs +116 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -0
- package/dist/app/modules/oauth2/repositories/index.d.ts +1 -1
- package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/index.mjs +3 -3
- package/dist/app/modules/oauth2/repositories/token/repository.d.ts +1 -0
- package/dist/app/modules/oauth2/repositories/token/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/token/repository.mjs +8 -0
- package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +16 -5
- package/dist/app/modules/provisioning/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 +22 -7
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.mjs +12 -2
- package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
- package/dist/components/event-cleaner/index.d.ts +2 -0
- package/dist/components/event-cleaner/index.d.ts.map +1 -0
- package/dist/components/event-cleaner/index.mjs +5 -0
- package/dist/components/event-cleaner/module.d.ts +5 -0
- package/dist/components/event-cleaner/module.d.ts.map +1 -0
- package/dist/components/event-cleaner/module.mjs +30 -0
- package/dist/components/event-cleaner/module.mjs.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.mjs +3 -1
- package/dist/components/oauth2-cleaner/module.d.ts +2 -1
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs +9 -4
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/client/module.d.ts +1 -1
- package/dist/core/authentication/credential/entities/client/module.d.ts.map +1 -1
- package/dist/core/authentication/credential/entities/client/module.mjs +2 -1
- package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/entities/client/module.mjs +2 -2
- package/dist/core/authentication/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/index.d.ts +1 -0
- package/dist/core/authentication/index.d.ts.map +1 -1
- package/dist/core/authentication/index.mjs +3 -1
- package/dist/core/authentication/login-throttle/index.d.ts +3 -0
- package/dist/core/authentication/login-throttle/index.d.ts.map +1 -0
- package/dist/core/authentication/login-throttle/index.mjs +5 -0
- package/dist/core/authentication/login-throttle/service.d.ts +13 -0
- package/dist/core/authentication/login-throttle/service.d.ts.map +1 -0
- package/dist/core/authentication/login-throttle/service.mjs +33 -0
- package/dist/core/authentication/login-throttle/service.mjs.map +1 -0
- package/dist/core/authentication/login-throttle/types.d.ts +34 -0
- package/dist/core/authentication/login-throttle/types.d.ts.map +1 -0
- package/dist/core/authentication/session/module.d.ts +1 -0
- package/dist/core/authentication/session/module.d.ts.map +1 -1
- package/dist/core/authentication/session/module.mjs +4 -0
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/authentication/session/types.d.ts +6 -0
- package/dist/core/authentication/session/types.d.ts.map +1 -1
- package/dist/core/authentication/session/types.mjs.map +1 -1
- package/dist/core/client-certificate/index.d.ts +3 -0
- package/dist/core/client-certificate/index.d.ts.map +1 -0
- package/dist/core/client-certificate/index.mjs +5 -0
- package/dist/core/client-certificate/module.d.ts +18 -0
- package/dist/core/client-certificate/module.d.ts.map +1 -0
- package/dist/core/client-certificate/module.mjs +195 -0
- package/dist/core/client-certificate/module.mjs.map +1 -0
- package/dist/core/client-certificate/types.d.ts +22 -0
- package/dist/core/client-certificate/types.d.ts.map +1 -0
- package/dist/core/client-certificate/types.mjs +4 -0
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +15 -7
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/web-client.d.ts.map +1 -1
- package/dist/core/entities/client/web-client.mjs +3 -2
- package/dist/core/entities/client/web-client.mjs.map +1 -1
- package/dist/core/entities/consent/index.d.ts +3 -0
- package/dist/core/entities/consent/index.d.ts.map +1 -0
- package/dist/core/entities/consent/index.mjs +6 -0
- package/dist/core/entities/consent/service.d.ts +19 -0
- package/dist/core/entities/consent/service.d.ts.map +1 -0
- package/dist/core/entities/consent/service.mjs +122 -0
- package/dist/core/entities/consent/service.mjs.map +1 -0
- package/dist/core/entities/consent/types.d.ts +97 -0
- package/dist/core/entities/consent/types.d.ts.map +1 -0
- package/dist/core/entities/consent/types.mjs +25 -0
- package/dist/core/entities/consent/types.mjs.map +1 -0
- package/dist/core/entities/event/constants.d.ts +7 -0
- package/dist/core/entities/event/constants.d.ts.map +1 -0
- package/dist/core/entities/event/constants.mjs +13 -0
- package/dist/core/entities/event/constants.mjs.map +1 -0
- package/dist/core/entities/event/diff.d.ts +20 -0
- package/dist/core/entities/event/diff.d.ts.map +1 -0
- package/dist/core/entities/event/diff.mjs +45 -0
- package/dist/core/entities/event/diff.mjs.map +1 -0
- package/dist/core/entities/event/entity-event-handler.d.ts +19 -0
- package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -0
- package/dist/core/entities/event/entity-event-handler.mjs +100 -0
- package/dist/core/entities/event/entity-event-handler.mjs.map +1 -0
- package/dist/core/entities/event/index.d.ts +7 -0
- package/dist/core/entities/event/index.d.ts.map +1 -0
- package/dist/core/entities/event/index.mjs +9 -0
- package/dist/core/entities/event/sanitize.d.ts +2 -0
- package/dist/core/entities/event/sanitize.d.ts.map +1 -0
- package/dist/core/entities/event/sanitize.mjs +83 -0
- package/dist/core/entities/event/sanitize.mjs.map +1 -0
- package/dist/core/entities/event/service.d.ts +22 -0
- package/dist/core/entities/event/service.d.ts.map +1 -0
- package/dist/core/entities/event/service.mjs +169 -0
- package/dist/core/entities/event/service.mjs.map +1 -0
- package/dist/core/entities/event/types.d.ts +124 -0
- package/dist/core/entities/event/types.d.ts.map +1 -0
- package/dist/core/entities/event/types.mjs +4 -0
- package/dist/core/entities/identity-provider-role-mapping/service.mjs +2 -2
- package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
- package/dist/core/entities/index.d.ts +5 -0
- package/dist/core/entities/index.d.ts.map +1 -1
- package/dist/core/entities/index.mjs +20 -1
- package/dist/core/entities/key/index.d.ts +3 -0
- package/dist/core/entities/key/index.d.ts.map +1 -0
- package/dist/core/entities/key/index.mjs +5 -0
- package/dist/core/entities/key/service.d.ts +55 -0
- package/dist/core/entities/key/service.d.ts.map +1 -0
- package/dist/core/entities/key/service.mjs +301 -0
- package/dist/core/entities/key/service.mjs.map +1 -0
- package/dist/core/entities/key/types.d.ts +33 -0
- package/dist/core/entities/key/types.d.ts.map +1 -0
- package/dist/core/entities/key/types.mjs +4 -0
- package/dist/core/entities/permission/service.mjs +3 -3
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/policy/service.mjs +4 -4
- package/dist/core/entities/policy/service.mjs.map +1 -1
- package/dist/core/entities/realm/service.d.ts +3 -0
- package/dist/core/entities/realm/service.d.ts.map +1 -1
- package/dist/core/entities/realm/service.mjs +6 -3
- package/dist/core/entities/realm/service.mjs.map +1 -1
- package/dist/core/entities/role/service.mjs +2 -2
- package/dist/core/entities/role/service.mjs.map +1 -1
- package/dist/core/entities/role-attribute/service.mjs +3 -3
- package/dist/core/entities/role-attribute/service.mjs.map +1 -1
- package/dist/core/entities/session/service.mjs +5 -2
- package/dist/core/entities/session/service.mjs.map +1 -1
- package/dist/core/entities/trust-anchor/index.d.ts +3 -0
- package/dist/core/entities/trust-anchor/index.d.ts.map +1 -0
- package/dist/core/entities/trust-anchor/index.mjs +5 -0
- package/dist/core/entities/trust-anchor/service.d.ts +33 -0
- package/dist/core/entities/trust-anchor/service.d.ts.map +1 -0
- package/dist/core/entities/trust-anchor/service.mjs +175 -0
- package/dist/core/entities/trust-anchor/service.mjs.map +1 -0
- package/dist/core/entities/trust-anchor/types.d.ts +14 -0
- package/dist/core/entities/trust-anchor/types.d.ts.map +1 -0
- package/dist/core/entities/trust-anchor/types.mjs +4 -0
- package/dist/core/entities/user/service.mjs +2 -2
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user-attribute/service.mjs +4 -4
- package/dist/core/entities/user-attribute/service.mjs.map +1 -1
- package/dist/core/entities/user-authenticator/constants.d.ts +26 -0
- package/dist/core/entities/user-authenticator/constants.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/constants.mjs +32 -0
- package/dist/core/entities/user-authenticator/constants.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/helpers.d.ts +10 -0
- package/dist/core/entities/user-authenticator/helpers.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/helpers.mjs +35 -0
- package/dist/core/entities/user-authenticator/helpers.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/index.d.ts +6 -0
- package/dist/core/entities/user-authenticator/index.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/index.mjs +9 -0
- package/dist/core/entities/user-authenticator/service.d.ts +89 -0
- package/dist/core/entities/user-authenticator/service.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/service.mjs +709 -0
- package/dist/core/entities/user-authenticator/service.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/types.d.ts +221 -0
- package/dist/core/entities/user-authenticator/types.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/types.mjs +15 -0
- package/dist/core/entities/user-authenticator/types.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/webauthn.d.ts +28 -0
- package/dist/core/entities/user-authenticator/webauthn.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/webauthn.mjs +88 -0
- package/dist/core/entities/user-authenticator/webauthn.mjs.map +1 -0
- package/dist/core/identity/index.mjs +2 -1
- package/dist/core/identity/password-recovery/disabled.d.ts +2 -2
- package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/disabled.mjs +2 -2
- package/dist/core/identity/password-recovery/disabled.mjs.map +1 -1
- package/dist/core/identity/password-recovery/email-verification-required.d.ts +2 -2
- package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/email-verification-required.mjs +2 -2
- package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -1
- package/dist/core/identity/password-recovery/service.d.ts +2 -1
- package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/service.mjs +26 -4
- package/dist/core/identity/password-recovery/service.mjs.map +1 -1
- package/dist/core/identity/password-recovery/token-expired.d.ts +2 -2
- package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/token-expired.mjs +2 -2
- package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -1
- package/dist/core/identity/password-recovery/types.d.ts +2 -1
- package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
- package/dist/core/identity/permission/index.d.ts +1 -0
- package/dist/core/identity/permission/index.d.ts.map +1 -1
- package/dist/core/identity/permission/index.mjs +2 -1
- package/dist/core/identity/policy/checker/service.mjs +1 -1
- package/dist/core/identity/policy/checker/service.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +2 -2
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/registration/error.d.ts +2 -2
- package/dist/core/identity/registration/error.d.ts.map +1 -1
- package/dist/core/identity/registration/error.mjs +2 -2
- package/dist/core/identity/registration/error.mjs.map +1 -1
- package/dist/core/identity/registration/service.d.ts +2 -1
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +26 -4
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/identity/registration/types.d.ts +2 -1
- package/dist/core/identity/registration/types.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.mjs +39 -8
- package/dist/core/key/certificate-error.d.ts +10 -0
- package/dist/core/key/certificate-error.d.ts.map +1 -0
- package/dist/core/key/certificate-error.mjs +19 -0
- package/dist/core/key/certificate-error.mjs.map +1 -0
- package/dist/core/key/certificate.d.ts +15 -0
- package/dist/core/key/certificate.d.ts.map +1 -0
- package/dist/core/key/certificate.mjs +72 -0
- package/dist/core/key/certificate.mjs.map +1 -0
- package/dist/core/key/check.d.ts +3 -0
- package/dist/core/key/check.d.ts.map +1 -0
- package/dist/core/key/check.mjs +13 -0
- package/dist/core/key/check.mjs.map +1 -0
- package/dist/core/key/constants.d.ts +10 -0
- package/dist/core/key/constants.d.ts.map +1 -0
- package/dist/core/key/constants.mjs +15 -0
- package/dist/core/key/constants.mjs.map +1 -0
- package/dist/core/key/error.d.ts +14 -0
- package/dist/core/key/error.d.ts.map +1 -0
- package/dist/core/key/error.mjs +23 -0
- package/dist/core/key/error.mjs.map +1 -0
- package/dist/core/key/index.d.ts +10 -0
- package/dist/core/key/index.d.ts.map +1 -0
- package/dist/core/key/index.mjs +12 -0
- package/dist/core/key/provisioner.d.ts +22 -0
- package/dist/core/key/provisioner.d.ts.map +1 -0
- package/dist/core/key/provisioner.mjs +30 -0
- package/dist/core/key/provisioner.mjs.map +1 -0
- package/dist/core/key/realm-cipher.d.ts +20 -0
- package/dist/core/key/realm-cipher.d.ts.map +1 -0
- package/dist/core/key/realm-cipher.mjs +60 -0
- package/dist/core/key/realm-cipher.mjs.map +1 -0
- package/dist/core/key/types.d.ts +59 -0
- package/dist/core/key/types.d.ts.map +1 -0
- package/dist/core/key/types.mjs +4 -0
- package/dist/core/key/wrap.d.ts +5 -0
- package/dist/core/key/wrap.d.ts.map +1 -0
- package/dist/core/key/wrap.mjs +21 -0
- package/dist/core/key/wrap.mjs.map +1 -0
- package/dist/core/mail/template/registry.d.ts.map +1 -1
- package/dist/core/mail/template/registry.mjs +3 -1
- package/dist/core/mail/template/registry.mjs.map +1 -1
- package/dist/core/mail/template/templates/mfa-email-otp.d.ts +3 -0
- package/dist/core/mail/template/templates/mfa-email-otp.d.ts.map +1 -0
- package/dist/core/mail/template/templates/mfa-email-otp.mjs +34 -0
- package/dist/core/mail/template/templates/mfa-email-otp.mjs.map +1 -0
- package/dist/core/mail/template/types.d.ts +6 -1
- package/dist/core/mail/template/types.d.ts.map +1 -1
- package/dist/core/mail/template/types.mjs +1 -0
- package/dist/core/mail/template/types.mjs.map +1 -1
- package/dist/core/metrics/index.d.ts +3 -0
- package/dist/core/metrics/index.d.ts.map +1 -0
- package/dist/core/metrics/index.mjs +5 -0
- package/dist/core/metrics/noop.d.ts +8 -0
- package/dist/core/metrics/noop.d.ts.map +1 -0
- package/dist/core/metrics/noop.mjs +14 -0
- package/dist/core/metrics/noop.mjs.map +1 -0
- package/dist/core/metrics/types.d.ts +19 -0
- package/dist/core/metrics/types.d.ts.map +1 -0
- package/dist/core/metrics/types.mjs +4 -0
- package/dist/core/oauth2/access-policy/index.d.ts +3 -0
- package/dist/core/oauth2/access-policy/index.d.ts.map +1 -0
- package/dist/core/oauth2/access-policy/index.mjs +5 -0
- package/dist/core/oauth2/access-policy/module.d.ts +12 -0
- package/dist/core/oauth2/access-policy/module.d.ts.map +1 -0
- package/dist/core/oauth2/access-policy/module.mjs +32 -0
- package/dist/core/oauth2/access-policy/module.mjs.map +1 -0
- package/dist/core/oauth2/access-policy/types.d.ts +19 -0
- package/dist/core/oauth2/access-policy/types.d.ts.map +1 -0
- package/dist/core/oauth2/access-policy/types.mjs +4 -0
- package/dist/core/oauth2/authorization/code/issuer/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code/issuer/module.mjs +2 -0
- package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code/issuer/types.d.ts +6 -1
- package/dist/core/oauth2/authorization/code/issuer/types.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.mjs +1 -0
- package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +3 -3
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/helpers.d.ts +10 -1
- package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs +28 -2
- 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.d.ts +9 -0
- package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/module.mjs +80 -3
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/types.d.ts +36 -0
- package/dist/core/oauth2/authorization/types.d.ts.map +1 -1
- package/dist/core/oauth2/client/authenticator.d.ts +16 -7
- package/dist/core/oauth2/client/authenticator.d.ts.map +1 -1
- package/dist/core/oauth2/client/authenticator.mjs +49 -12
- package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
- package/dist/core/oauth2/end-session/service.d.ts +2 -1
- package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
- package/dist/core/oauth2/end-session/service.mjs +13 -0
- package/dist/core/oauth2/end-session/service.mjs.map +1 -1
- package/dist/core/oauth2/end-session/types.d.ts +2 -1
- package/dist/core/oauth2/end-session/types.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.d.ts +2 -2
- package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.mjs +12 -8
- package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/client-credentials.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/client-credentials.mjs +5 -3
- package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/identity.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/identity.mjs +10 -3
- package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/password.d.ts +9 -0
- package/dist/core/oauth2/grant-types/password.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/password.mjs +32 -4
- package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.d.ts +4 -0
- package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs +17 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/robot-credentials.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/robot-credentials.mjs +3 -2
- package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/types.d.ts +10 -3
- package/dist/core/oauth2/grant-types/types.d.ts.map +1 -1
- package/dist/core/oauth2/index.d.ts +2 -1
- package/dist/core/oauth2/index.d.ts.map +1 -1
- package/dist/core/oauth2/index.mjs +7 -2
- package/dist/core/oauth2/mfa-login/index.d.ts +3 -0
- package/dist/core/oauth2/mfa-login/index.d.ts.map +1 -0
- package/dist/core/oauth2/mfa-login/index.mjs +5 -0
- package/dist/core/oauth2/mfa-login/module.d.ts +19 -0
- package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -0
- package/dist/core/oauth2/mfa-login/module.mjs +109 -0
- package/dist/core/oauth2/mfa-login/module.mjs.map +1 -0
- package/dist/core/oauth2/mfa-login/types.d.ts +64 -0
- package/dist/core/oauth2/mfa-login/types.d.ts.map +1 -0
- package/dist/core/oauth2/mfa-login/types.mjs +4 -0
- package/dist/core/oauth2/token/index.mjs +2 -1
- package/dist/core/oauth2/token/issuer/index.d.ts +1 -0
- package/dist/core/oauth2/token/issuer/index.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/index.mjs +3 -1
- package/dist/core/oauth2/token/issuer/mfa/index.d.ts +2 -0
- package/dist/core/oauth2/token/issuer/mfa/index.d.ts.map +1 -0
- package/dist/core/oauth2/token/issuer/mfa/index.mjs +5 -0
- package/dist/core/oauth2/token/issuer/mfa/module.d.ts +18 -0
- package/dist/core/oauth2/token/issuer/mfa/module.d.ts.map +1 -0
- package/dist/core/oauth2/token/issuer/mfa/module.mjs +36 -0
- package/dist/core/oauth2/token/issuer/mfa/module.mjs.map +1 -0
- package/dist/core/oauth2/token/repository/types.d.ts +10 -0
- package/dist/core/oauth2/token/repository/types.d.ts.map +1 -1
- package/dist/core/oauth2/token/revoker/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/revoker/module.mjs +1 -0
- package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
- package/dist/core/oauth2/token/signer/module.d.ts +3 -3
- package/dist/core/oauth2/token/signer/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/signer/module.mjs +5 -6
- package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
- package/dist/core/oauth2/token/verifier/module.d.ts +3 -3
- package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/verifier/module.mjs +8 -5
- package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
- package/dist/index.mjs +52 -30
- package/dist/swagger.json +5431 -2952
- package/dist/ui/client/.vite/ssr-manifest.json +3888 -864
- package/dist/ui/client/assets/index-BmWsoQro.css +2 -0
- package/dist/ui/client/assets/{index-CP9HCHoS.js → index-CT0Nq5pA.js} +18 -17
- package/dist/ui/client/index.html +2 -2
- package/dist/ui/server/server.js +19470 -18436
- package/package.json +22 -16
- package/dist/app/modules/oauth2/repositories/key/index.d.ts.map +0 -1
- package/dist/app/modules/oauth2/repositories/key/index.mjs +0 -5
- package/dist/app/modules/oauth2/repositories/key/repository.d.ts +0 -14
- package/dist/app/modules/oauth2/repositories/key/repository.d.ts.map +0 -1
- package/dist/app/modules/oauth2/repositories/key/repository.mjs +0 -51
- package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +0 -1
- package/dist/core/oauth2/key/index.d.ts +0 -2
- package/dist/core/oauth2/key/index.d.ts.map +0 -1
- package/dist/core/oauth2/key/types.d.ts +0 -16
- package/dist/core/oauth2/key/types.d.ts.map +0 -1
- package/dist/ui/client/assets/index-VM4JXBXw.css +0 -2
- /package/dist/{core/oauth2/key → adapters/http/request}/types.mjs +0 -0
- /package/dist/app/modules/{oauth2/repositories/key → database/repositories/event}/index.d.ts +0 -0
- /package/dist/core/{oauth2/key/index.mjs → authentication/login-throttle/types.mjs} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IMailClient, IMailTemplateRenderer } from '../../mail/types.ts';
|
|
2
|
-
import type { IRealmRepository, IUserRepository } from '../../entities/index.ts';
|
|
2
|
+
import type { IEventService, IRealmRepository, IUserRepository } from '../../entities/index.ts';
|
|
3
3
|
import type { IdentityWorkflowContext } from '../types.ts';
|
|
4
4
|
export type RegistrationServiceOptions = {
|
|
5
5
|
registrationEnabled?: boolean;
|
|
@@ -13,6 +13,7 @@ export type RegistrationServiceContext = {
|
|
|
13
13
|
mailTemplateRenderer: IMailTemplateRenderer;
|
|
14
14
|
repository: IUserRepository;
|
|
15
15
|
realmRepository: IRealmRepository;
|
|
16
|
+
eventService?: IEventService;
|
|
16
17
|
};
|
|
17
18
|
export type RegistrationResult = {
|
|
18
19
|
active: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/registration/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/registration/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,0BAA0B,GAAG;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACrC,OAAO,EAAE,0BAA0B,CAAC;IACpC,UAAU,EAAE,WAAW,CAAC;IACxB,oBAAoB,EAAE,qBAAqB,CAAC;IAC5C,UAAU,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,YAAY,CAAC,EAAE,aAAa,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpG,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export * from './authentication/index.ts';
|
|
2
|
+
export * from './client-certificate/index.ts';
|
|
2
3
|
export * from './entities/index.ts';
|
|
4
|
+
export * from './key/index.ts';
|
|
3
5
|
export * from './mail/index.ts';
|
|
6
|
+
export * from './metrics/index.ts';
|
|
4
7
|
export * from './oauth2/index.ts';
|
|
5
8
|
export * from './identity/index.ts';
|
|
6
9
|
export * from './ldap/index.ts';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAOA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAOA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC"}
|
package/dist/core/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
+
import { CONSENT_FILTER_KEYS, CONSENT_SCOPE_MAX_LENGTH } from "./entities/consent/types.mjs";
|
|
4
5
|
import { ClientCredentialsService } from "./authentication/credential/entities/client/module.mjs";
|
|
5
6
|
import { RobotCredentialsService } from "./authentication/credential/entities/robot/module.mjs";
|
|
6
7
|
import { UserCredentialsService } from "./authentication/credential/entities/user/module.mjs";
|
|
@@ -8,16 +9,35 @@ import { BaseCredentialsAuthenticator } from "./authentication/base.mjs";
|
|
|
8
9
|
import { ClientAuthenticator } from "./authentication/entities/client/module.mjs";
|
|
9
10
|
import { RobotAuthenticator } from "./authentication/entities/robot/module.mjs";
|
|
10
11
|
import { UserAuthenticator } from "./authentication/entities/user/module.mjs";
|
|
12
|
+
import { LoginThrottleService } from "./authentication/login-throttle/service.mjs";
|
|
11
13
|
import { CredentialsAuthenticator } from "./authentication/module.mjs";
|
|
12
14
|
import { SessionManager } from "./authentication/session/module.mjs";
|
|
13
15
|
import { SESSION_FILTER_KEYS } from "./authentication/session/types.mjs";
|
|
14
16
|
import "./authentication/index.mjs";
|
|
17
|
+
import { ClientCertificateValidator, assertClientCertificateEvidenceValidForBinding, buildClientCertificateThumbprint, parseClientCertificateChain } from "./client-certificate/module.mjs";
|
|
18
|
+
import "./client-certificate/index.mjs";
|
|
15
19
|
import { ClientService } from "./entities/client/service.mjs";
|
|
16
20
|
import { WebClientProvisioner, buildWebClientAttributes } from "./entities/client/web-client.mjs";
|
|
17
21
|
import { applyJunctionCreateGrant, buildJunctionUpdateData } from "./identity/permission/junction-grant.mjs";
|
|
18
22
|
import { ClientPermissionService } from "./entities/client-permission/service.mjs";
|
|
19
23
|
import { ClientRoleService } from "./entities/client-role/service.mjs";
|
|
20
24
|
import { ClientScopeService } from "./entities/client-scope/service.mjs";
|
|
25
|
+
import { ConsentService } from "./entities/consent/service.mjs";
|
|
26
|
+
import { EVENT_LOG_RETENTION_DAYS_DEFAULT } from "./entities/event/constants.mjs";
|
|
27
|
+
import { EVENT_DIFF_SECRET_KEY_REGEX, EVENT_DIFF_VALUE_MAX_LENGTH, buildEntityDiff } from "./entities/event/diff.mjs";
|
|
28
|
+
import { EntityEventHandler } from "./entities/event/entity-event-handler.mjs";
|
|
29
|
+
import { sanitizeEventData } from "./entities/event/sanitize.mjs";
|
|
30
|
+
import { EventService } from "./entities/event/service.mjs";
|
|
31
|
+
import { REALM_CIPHER_BLOB_ERROR_INSTANCE, RealmCipherBlobError } from "./key/error.mjs";
|
|
32
|
+
import { isRealmCipherBlobError } from "./key/check.mjs";
|
|
33
|
+
import { KEY_CERTIFICATE_ERROR_INSTANCE, KeyCertificateError } from "./key/certificate-error.mjs";
|
|
34
|
+
import { assertCertificateMatchesKey, buildCertificateJwkFields, buildX5c, buildX5tS256, parseCertificateChain } from "./key/certificate.mjs";
|
|
35
|
+
import { REALM_CIPHER_BLOB_VERSION, WRAPPED_KEY_MATERIAL_PREFIX } from "./key/constants.mjs";
|
|
36
|
+
import { KeyProvisioner } from "./key/provisioner.mjs";
|
|
37
|
+
import { RealmCipher } from "./key/realm-cipher.mjs";
|
|
38
|
+
import { isWrappedKeyMaterial, unwrapKeyMaterial, wrapKeyMaterial } from "./key/wrap.mjs";
|
|
39
|
+
import "./key/index.mjs";
|
|
40
|
+
import { KeyService } from "./entities/key/service.mjs";
|
|
21
41
|
import { PermissionService } from "./entities/permission/service.mjs";
|
|
22
42
|
import { PermissionPolicyService } from "./entities/permission-policy/service.mjs";
|
|
23
43
|
import { PolicyService } from "./entities/policy/service.mjs";
|
|
@@ -30,25 +50,36 @@ import { RoleAttributeService } from "./entities/role-attribute/service.mjs";
|
|
|
30
50
|
import { RolePermissionService } from "./entities/role-permission/service.mjs";
|
|
31
51
|
import { ScopeService } from "./entities/scope/service.mjs";
|
|
32
52
|
import { SessionService } from "./entities/session/service.mjs";
|
|
53
|
+
import { TrustAnchorService } from "./entities/trust-anchor/service.mjs";
|
|
33
54
|
import { UserService } from "./entities/user/service.mjs";
|
|
34
55
|
import { UserAttributeService } from "./entities/user-attribute/service.mjs";
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import { IdentityProviderRoleMappingService } from "./entities/identity-provider-role-mapping/service.mjs";
|
|
38
|
-
import "./entities/index.mjs";
|
|
56
|
+
import { USER_AUTHENTICATOR_ATTEMPT_CACHE_PREFIX, USER_AUTHENTICATOR_ATTEMPT_LOCK_FACTOR, USER_AUTHENTICATOR_ATTEMPT_LOCK_MAX, USER_AUTHENTICATOR_ATTEMPT_WINDOW, USER_AUTHENTICATOR_EMAIL_CODE_CACHE_PREFIX, USER_AUTHENTICATOR_EMAIL_CODE_EXPIRES_IN_MINUTES, USER_AUTHENTICATOR_EMAIL_CODE_LENGTH, USER_AUTHENTICATOR_EMAIL_SEND_CACHE_PREFIX, USER_AUTHENTICATOR_EMAIL_SEND_COOLDOWN, USER_AUTHENTICATOR_RECOVERY_CODE_COUNT, USER_AUTHENTICATOR_THROTTLE_CACHE_PREFIX, USER_AUTHENTICATOR_TOTP_ALGORITHM, USER_AUTHENTICATOR_TOTP_DIGITS, USER_AUTHENTICATOR_TOTP_PERIOD, USER_AUTHENTICATOR_VERIFY_LOCK_CACHE_PREFIX, USER_AUTHENTICATOR_VERIFY_LOCK_RENEW_INTERVAL, USER_AUTHENTICATOR_VERIFY_LOCK_TTL, USER_AUTHENTICATOR_WEBAUTHN_AUTH_CACHE_PREFIX, USER_AUTHENTICATOR_WEBAUTHN_CHALLENGE_WINDOW, USER_AUTHENTICATOR_WEBAUTHN_REG_CACHE_PREFIX } from "./entities/user-authenticator/constants.mjs";
|
|
57
|
+
import { generateNumericCode, generateRecoveryCode, guessUserAuthenticatorKindByResponse } from "./entities/user-authenticator/helpers.mjs";
|
|
39
58
|
import { defineMailTemplate } from "./mail/template/define.mjs";
|
|
40
59
|
import { MailTemplateName } from "./mail/template/types.mjs";
|
|
41
60
|
import { MAIL_TEMPLATE_REGISTRY } from "./mail/template/registry.mjs";
|
|
42
61
|
import { MailTemplateRenderer } from "./mail/renderer.mjs";
|
|
43
62
|
import "./mail/index.mjs";
|
|
63
|
+
import { buildWebauthnAuthenticationOptions, buildWebauthnRegistrationOptions, verifyWebauthnAuthentication, verifyWebauthnRegistration } from "./entities/user-authenticator/webauthn.mjs";
|
|
64
|
+
import { UserAuthenticatorService } from "./entities/user-authenticator/service.mjs";
|
|
65
|
+
import { USER_AUTHENTICATOR_FILTER_KEYS } from "./entities/user-authenticator/types.mjs";
|
|
66
|
+
import { UserPermissionService } from "./entities/user-permission/service.mjs";
|
|
67
|
+
import { UserRoleService } from "./entities/user-role/service.mjs";
|
|
68
|
+
import { IdentityProviderRoleMappingService } from "./entities/identity-provider-role-mapping/service.mjs";
|
|
69
|
+
import "./entities/index.mjs";
|
|
70
|
+
import { NoopAuthFlowMetrics } from "./metrics/noop.mjs";
|
|
71
|
+
import { PermissionBindingPolicyEvaluator } from "./security/policy/evaluator.mjs";
|
|
72
|
+
import { PolicyEngine } from "./security/policy/engine.mjs";
|
|
73
|
+
import { OAuth2AccessPolicyEvaluator } from "./oauth2/access-policy/module.mjs";
|
|
44
74
|
import { OAuth2AuthorizationCodeIssuer } from "./oauth2/authorization/code/issuer/module.mjs";
|
|
45
|
-
import { base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, generateOAuth2CodeVerifier } from "./oauth2/authorization/helpers.mjs";
|
|
75
|
+
import { base64URLEncode, buildOAuth2CodeChallenge, buildOAuth2TokenHash, deriveAmrAcr, generateOAuth2CodeVerifier } from "./oauth2/authorization/helpers.mjs";
|
|
46
76
|
import { OAuth2AuthorizationCodeVerifier } from "./oauth2/authorization/code/verifier/module.mjs";
|
|
47
77
|
import { OAuth2ClientAuthenticator } from "./oauth2/client/authenticator.mjs";
|
|
48
78
|
import { assertClientGrantAllowed } from "./oauth2/client/grant-type.mjs";
|
|
49
79
|
import { OAuth2AuthorizationCodeRequestVerifier } from "./oauth2/authorization/code-request/verifier/module.mjs";
|
|
50
80
|
import { OAuth2AuthorizationCodeRequestValidator } from "./oauth2/authorization/code-request/validator.mjs";
|
|
51
81
|
import { OAuth2AuthorizationStateManager } from "./oauth2/authorization/state/module.mjs";
|
|
82
|
+
import { toIdentityPolicyData } from "./identity/permission/identity-policy-data.mjs";
|
|
52
83
|
import { OAuth2Authorization } from "./oauth2/authorization/module.mjs";
|
|
53
84
|
import { OAuth2EndSessionService } from "./oauth2/end-session/service.mjs";
|
|
54
85
|
import { OAuth2EndSessionRequestValidator } from "./oauth2/end-session/validator.mjs";
|
|
@@ -59,9 +90,11 @@ import { IdentityGrantType } from "./oauth2/grant-types/identity.mjs";
|
|
|
59
90
|
import { PasswordGrantType } from "./oauth2/grant-types/password.mjs";
|
|
60
91
|
import { OAuth2RefreshTokenGrant } from "./oauth2/grant-types/refresh-token.mjs";
|
|
61
92
|
import { RobotCredentialsGrant } from "./oauth2/grant-types/robot-credentials.mjs";
|
|
93
|
+
import { OAuth2MfaLoginService } from "./oauth2/mfa-login/module.mjs";
|
|
62
94
|
import { OAuth2OpenIDClaimsBuilder } from "./oauth2/openid/claims.mjs";
|
|
63
95
|
import { OAuth2ScopeAttributesResolver } from "./oauth2/scope/resolver.mjs";
|
|
64
96
|
import { OAuth2AccessTokenIssuer } from "./oauth2/token/issuer/access/module.mjs";
|
|
97
|
+
import { OAuth2MfaTokenIssuer } from "./oauth2/token/issuer/mfa/module.mjs";
|
|
65
98
|
import { OAuth2OpenIDTokenIssuer } from "./oauth2/token/issuer/open-id/module.mjs";
|
|
66
99
|
import { OAuth2RefreshTokenIssuer } from "./oauth2/token/issuer/refresh/module.mjs";
|
|
67
100
|
import { OAuth2TokenRevoker } from "./oauth2/token/revoker/module.mjs";
|
|
@@ -70,8 +103,6 @@ import { OAuth2TokenVerifier } from "./oauth2/token/verifier/module.mjs";
|
|
|
70
103
|
import "./oauth2/index.mjs";
|
|
71
104
|
import { PASSWORD_RESET_EXPIRES_IN_MINUTES } from "./identity/password-recovery/constants.mjs";
|
|
72
105
|
import { PasswordRecoveryService } from "./identity/password-recovery/service.mjs";
|
|
73
|
-
import { PermissionBindingPolicyEvaluator } from "./security/policy/evaluator.mjs";
|
|
74
|
-
import { PolicyEngine } from "./security/policy/engine.mjs";
|
|
75
106
|
import { PermissionCheckerService } from "./identity/permission/checker/service.mjs";
|
|
76
107
|
import { IdentityPermissionProvider } from "./identity/permission/module.mjs";
|
|
77
108
|
import { PolicyCheckerService } from "./identity/policy/checker/service.mjs";
|
|
@@ -123,4 +154,4 @@ import { ScopeProvisioningSynchronizer } from "./provisioning/synchronizer/scope
|
|
|
123
154
|
import { UserProvisioningSynchronizer } from "./provisioning/synchronizer/user/module.mjs";
|
|
124
155
|
import "./provisioning/index.mjs";
|
|
125
156
|
import "./security/index.mjs";
|
|
126
|
-
export { BaseCredentialsAuthenticator, ClientAuthenticator, ClientCredentialsGrant, ClientCredentialsService, ClientPermissionService, ClientProvisioningSynchronizer, ClientProvisioningValidator, ClientRoleService, ClientScopeService, ClientService, CredentialsAuthenticator, GraphProvisioningSynchronizer, IDENTITY_PROVIDER_LDAP_COLLECTION_AUTHENTICATOR_TOKEN, IdentityGrantType, IdentityPermissionProvider, IdentityProviderAccountBaseMapper, IdentityProviderAccountManager, IdentityProviderAttributeMapper, IdentityProviderFacebookAuthenticator, IdentityProviderGithubAuthenticator, IdentityProviderGoogleAuthenticator, IdentityProviderInstagramAuthenticator, IdentityProviderLdapAuthenticator, IdentityProviderLdapCollectionAuthenticator, IdentityProviderMapperOperation, IdentityProviderOAuth2Authenticator, IdentityProviderOpenIDAuthenticator, IdentityProviderPaypalAuthenticator, IdentityProviderPermissionMapper, IdentityProviderRoleMapper, IdentityProviderRoleMappingService, IdentityResolver, IdentityRoleProvider, MAIL_TEMPLATE_REGISTRY, MailTemplateName, MailTemplateRenderer, OAuth2AccessTokenIssuer, OAuth2Authorization, OAuth2AuthorizationCodeIssuer, OAuth2AuthorizationCodeRequestValidator, OAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationCodeVerifier, OAuth2AuthorizationStateManager, OAuth2AuthorizeGrant, OAuth2ClientAuthenticator, OAuth2EndSessionRequestValidator, OAuth2EndSessionService, OAuth2OpenIDClaimsBuilder, OAuth2OpenIDTokenIssuer, OAuth2RefreshTokenGrant, OAuth2RefreshTokenIssuer, OAuth2ScopeAttributesResolver, OAuth2TokenRevoker, OAuth2TokenSigner, OAuth2TokenVerifier, PASSWORD_RESET_EXPIRES_IN_MINUTES, PasswordGrantType, PasswordRecoveryService, PermissionBindingPolicyEvaluator, PermissionCheckerService, PermissionPolicyService, PermissionProvisioningRelationsValidator, PermissionProvisioningSynchronizer, PermissionProvisioningValidator, PermissionService, PolicyCheckerService, PolicyEngine, PolicyProvisioningSynchronizer, PolicyProvisioningValidator, PolicyService, ProvisioningEntityResolver, ProvisioningEntityStrategyType, ProvisioningJunctionSynchronizer, ProvisioningStrategyValidator, RealmProvisioningSynchronizer, RealmProvisioningValidator, RealmService, RegistrationService, RobotAuthenticator, RobotCredentialsGrant, RobotCredentialsService, RobotPermissionService, RobotProvisioningSynchronizer, RobotProvisioningValidator, RobotRoleService, RobotService, RoleAttributeService, RolePermissionService, RoleProvisioningSynchronizer, RoleProvisioningValidator, RoleService, RootProvisioningValidator, SESSION_FILTER_KEYS, ScopeProvisioningSynchronizer, ScopeProvisioningValidator, ScopeService, SessionManager, SessionService, UserAttributeService, UserAuthenticator, UserCredentialsService, UserPermissionService, UserProvisioningSynchronizer, UserProvisioningValidator, UserRoleService, UserService, WebClientProvisioner, applyJunctionCreateGrant, assertClientGrantAllowed, base64URLEncode, buildJunctionUpdateData, buildOAuth2BearerTokenResponse, buildOAuth2CodeChallenge, buildOAuth2TokenHash, buildWebClientAttributes, createIdentityProviderOAuth2Authenticator, createProvisioningEntitiesValidator, defineMailTemplate, generateOAuth2CodeVerifier, normalizeEntityProvisioningStrategy };
|
|
157
|
+
export { BaseCredentialsAuthenticator, CONSENT_FILTER_KEYS, CONSENT_SCOPE_MAX_LENGTH, ClientAuthenticator, ClientCertificateValidator, ClientCredentialsGrant, ClientCredentialsService, ClientPermissionService, ClientProvisioningSynchronizer, ClientProvisioningValidator, ClientRoleService, ClientScopeService, ClientService, ConsentService, CredentialsAuthenticator, EVENT_DIFF_SECRET_KEY_REGEX, EVENT_DIFF_VALUE_MAX_LENGTH, EVENT_LOG_RETENTION_DAYS_DEFAULT, EntityEventHandler, EventService, GraphProvisioningSynchronizer, IDENTITY_PROVIDER_LDAP_COLLECTION_AUTHENTICATOR_TOKEN, IdentityGrantType, IdentityPermissionProvider, IdentityProviderAccountBaseMapper, IdentityProviderAccountManager, IdentityProviderAttributeMapper, IdentityProviderFacebookAuthenticator, IdentityProviderGithubAuthenticator, IdentityProviderGoogleAuthenticator, IdentityProviderInstagramAuthenticator, IdentityProviderLdapAuthenticator, IdentityProviderLdapCollectionAuthenticator, IdentityProviderMapperOperation, IdentityProviderOAuth2Authenticator, IdentityProviderOpenIDAuthenticator, IdentityProviderPaypalAuthenticator, IdentityProviderPermissionMapper, IdentityProviderRoleMapper, IdentityProviderRoleMappingService, IdentityResolver, IdentityRoleProvider, KEY_CERTIFICATE_ERROR_INSTANCE, KeyCertificateError, KeyProvisioner, KeyService, LoginThrottleService, MAIL_TEMPLATE_REGISTRY, MailTemplateName, MailTemplateRenderer, NoopAuthFlowMetrics, OAuth2AccessPolicyEvaluator, OAuth2AccessTokenIssuer, OAuth2Authorization, OAuth2AuthorizationCodeIssuer, OAuth2AuthorizationCodeRequestValidator, OAuth2AuthorizationCodeRequestVerifier, OAuth2AuthorizationCodeVerifier, OAuth2AuthorizationStateManager, OAuth2AuthorizeGrant, OAuth2ClientAuthenticator, OAuth2EndSessionRequestValidator, OAuth2EndSessionService, OAuth2MfaLoginService, OAuth2MfaTokenIssuer, OAuth2OpenIDClaimsBuilder, OAuth2OpenIDTokenIssuer, OAuth2RefreshTokenGrant, OAuth2RefreshTokenIssuer, OAuth2ScopeAttributesResolver, OAuth2TokenRevoker, OAuth2TokenSigner, OAuth2TokenVerifier, PASSWORD_RESET_EXPIRES_IN_MINUTES, PasswordGrantType, PasswordRecoveryService, PermissionBindingPolicyEvaluator, PermissionCheckerService, PermissionPolicyService, PermissionProvisioningRelationsValidator, PermissionProvisioningSynchronizer, PermissionProvisioningValidator, PermissionService, PolicyCheckerService, PolicyEngine, PolicyProvisioningSynchronizer, PolicyProvisioningValidator, PolicyService, ProvisioningEntityResolver, ProvisioningEntityStrategyType, ProvisioningJunctionSynchronizer, ProvisioningStrategyValidator, REALM_CIPHER_BLOB_ERROR_INSTANCE, REALM_CIPHER_BLOB_VERSION, RealmCipher, RealmCipherBlobError, RealmProvisioningSynchronizer, RealmProvisioningValidator, RealmService, RegistrationService, RobotAuthenticator, RobotCredentialsGrant, RobotCredentialsService, RobotPermissionService, RobotProvisioningSynchronizer, RobotProvisioningValidator, RobotRoleService, RobotService, RoleAttributeService, RolePermissionService, RoleProvisioningSynchronizer, RoleProvisioningValidator, RoleService, RootProvisioningValidator, SESSION_FILTER_KEYS, ScopeProvisioningSynchronizer, ScopeProvisioningValidator, ScopeService, SessionManager, SessionService, TrustAnchorService, USER_AUTHENTICATOR_ATTEMPT_CACHE_PREFIX, USER_AUTHENTICATOR_ATTEMPT_LOCK_FACTOR, USER_AUTHENTICATOR_ATTEMPT_LOCK_MAX, USER_AUTHENTICATOR_ATTEMPT_WINDOW, USER_AUTHENTICATOR_EMAIL_CODE_CACHE_PREFIX, USER_AUTHENTICATOR_EMAIL_CODE_EXPIRES_IN_MINUTES, USER_AUTHENTICATOR_EMAIL_CODE_LENGTH, USER_AUTHENTICATOR_EMAIL_SEND_CACHE_PREFIX, USER_AUTHENTICATOR_EMAIL_SEND_COOLDOWN, USER_AUTHENTICATOR_FILTER_KEYS, USER_AUTHENTICATOR_RECOVERY_CODE_COUNT, USER_AUTHENTICATOR_THROTTLE_CACHE_PREFIX, USER_AUTHENTICATOR_TOTP_ALGORITHM, USER_AUTHENTICATOR_TOTP_DIGITS, USER_AUTHENTICATOR_TOTP_PERIOD, USER_AUTHENTICATOR_VERIFY_LOCK_CACHE_PREFIX, USER_AUTHENTICATOR_VERIFY_LOCK_RENEW_INTERVAL, USER_AUTHENTICATOR_VERIFY_LOCK_TTL, USER_AUTHENTICATOR_WEBAUTHN_AUTH_CACHE_PREFIX, USER_AUTHENTICATOR_WEBAUTHN_CHALLENGE_WINDOW, USER_AUTHENTICATOR_WEBAUTHN_REG_CACHE_PREFIX, UserAttributeService, UserAuthenticator, UserAuthenticatorService, UserCredentialsService, UserPermissionService, UserProvisioningSynchronizer, UserProvisioningValidator, UserRoleService, UserService, WRAPPED_KEY_MATERIAL_PREFIX, WebClientProvisioner, applyJunctionCreateGrant, assertCertificateMatchesKey, assertClientCertificateEvidenceValidForBinding, assertClientGrantAllowed, base64URLEncode, buildCertificateJwkFields, buildClientCertificateThumbprint, buildEntityDiff, buildJunctionUpdateData, buildOAuth2BearerTokenResponse, buildOAuth2CodeChallenge, buildOAuth2TokenHash, buildWebClientAttributes, buildWebauthnAuthenticationOptions, buildWebauthnRegistrationOptions, buildX5c, buildX5tS256, createIdentityProviderOAuth2Authenticator, createProvisioningEntitiesValidator, defineMailTemplate, deriveAmrAcr, generateNumericCode, generateOAuth2CodeVerifier, generateRecoveryCode, guessUserAuthenticatorKindByResponse, isRealmCipherBlobError, isWrappedKeyMaterial, normalizeEntityProvisioningStrategy, parseCertificateChain, parseClientCertificateChain, sanitizeEventData, toIdentityPolicyData, unwrapKeyMaterial, verifyWebauthnAuthentication, verifyWebauthnRegistration, wrapKeyMaterial };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AuthupError } from '@authup/errors';
|
|
2
|
+
export declare const KEY_CERTIFICATE_ERROR_INSTANCE: unique symbol;
|
|
3
|
+
/**
|
|
4
|
+
* Certificate parsing/key-association failure independent of any transport.
|
|
5
|
+
* API-facing services may translate this to their own boundary error.
|
|
6
|
+
*/
|
|
7
|
+
export declare class KeyCertificateError extends AuthupError {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=certificate-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificate-error.d.ts","sourceRoot":"","sources":["../../../src/core/key/certificate-error.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAE7D,eAAO,MAAM,8BAA8B,eAAwD,CAAC;AAEpG;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI9B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { AuthupError, markInstanceof } from "@authup/errors";
|
|
5
|
+
//#region src/core/key/certificate-error.ts
|
|
6
|
+
const KEY_CERTIFICATE_ERROR_INSTANCE = Symbol.for("@authup/server-core/KeyCertificateError");
|
|
7
|
+
/**
|
|
8
|
+
* Certificate parsing/key-association failure independent of any transport.
|
|
9
|
+
* API-facing services may translate this to their own boundary error.
|
|
10
|
+
*/ var KeyCertificateError = class extends AuthupError {
|
|
11
|
+
constructor(message) {
|
|
12
|
+
super({ message });
|
|
13
|
+
markInstanceof(this, KEY_CERTIFICATE_ERROR_INSTANCE);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { KEY_CERTIFICATE_ERROR_INSTANCE, KeyCertificateError };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=certificate-error.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificate-error.mjs","names":["AuthupError","markInstanceof","KEY_CERTIFICATE_ERROR_INSTANCE","Symbol","for","KeyCertificateError","message"],"sources":["../../../src/core/key/certificate-error.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 { AuthupError, markInstanceof } from '@authup/errors';\n\nexport const KEY_CERTIFICATE_ERROR_INSTANCE = Symbol.for('@authup/server-core/KeyCertificateError');\n\n/**\n * Certificate parsing/key-association failure independent of any transport.\n * API-facing services may translate this to their own boundary error.\n */\nexport class KeyCertificateError extends AuthupError {\n constructor(message: string) {\n super({ message });\n markInstanceof(this, KEY_CERTIFICATE_ERROR_INSTANCE);\n }\n}\n"],"mappings":";;;;;AASA,MAAaE,iCAAiCC,OAAOC,IAAI,yCAAA;;;;GAMzD,IAAaC,sBAAb,cAAyCL,YAAAA;CACrC,YAAYM,SAAiB;EACzB,MAAM,EAAEA,QAAQ,CAAA;EAChBL,eAAe,MAAMC,8BAAAA;CACzB;AACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { X509Certificate } from 'node:crypto';
|
|
2
|
+
import type { OAuth2JsonWebKey } from '@authup/specs';
|
|
3
|
+
export declare function parseCertificateChain(pem: string): X509Certificate[];
|
|
4
|
+
export declare function assertCertificateMatchesKey(chain: X509Certificate[], spkiBase64: string): void;
|
|
5
|
+
export declare function buildX5c(chain: X509Certificate[]): string[];
|
|
6
|
+
export declare function buildX5tS256(chain: X509Certificate[]): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Derive the RFC 7517 x5c / x5t#S256 JWK members from a stored PEM chain.
|
|
9
|
+
*
|
|
10
|
+
* Fail-open by design: one malformed legacy/database row must not take down
|
|
11
|
+
* the whole realm's JWKS — the usable public key is still published, just
|
|
12
|
+
* without the certificate members.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildCertificateJwkFields(certificate: string | null): Promise<Partial<Pick<OAuth2JsonWebKey, 'x5c' | 'x5t#S256'>>>;
|
|
15
|
+
//# sourceMappingURL=certificate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificate.d.ts","sourceRoot":"","sources":["../../../src/core/key/certificate.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,eAAe,EAElB,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAWpE;AAED,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,eAAe,EAAE,EACxB,UAAU,EAAE,MAAM,GACnB,IAAI,CA4BN;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAE3D;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5E;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,GAC3B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAc9D"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { KeyCertificateError } from "./certificate-error.mjs";
|
|
5
|
+
import { base64URLEncode } from "@authup/kit";
|
|
6
|
+
import { ValidationError } from "@authup/errors";
|
|
7
|
+
import { X509Certificate, createPublicKey } from "node:crypto";
|
|
8
|
+
import { subtle } from "uncrypto";
|
|
9
|
+
//#region src/core/key/certificate.ts
|
|
10
|
+
const CERTIFICATE_BLOCK_PATTERN = /-----BEGIN CERTIFICATE-----[\s\S]*?-----END CERTIFICATE-----/g;
|
|
11
|
+
function parseCertificateChain(pem) {
|
|
12
|
+
const blocks = pem.match(CERTIFICATE_BLOCK_PATTERN);
|
|
13
|
+
if (!blocks || blocks.length === 0) throw new ValidationError("The certificate chain could not be parsed.");
|
|
14
|
+
try {
|
|
15
|
+
return blocks.map((block) => new X509Certificate(block));
|
|
16
|
+
} catch {
|
|
17
|
+
throw new ValidationError("The certificate chain could not be parsed.");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function assertCertificateMatchesKey(chain, spkiBase64) {
|
|
21
|
+
const certificate = chain[0];
|
|
22
|
+
if (!certificate) throw new KeyCertificateError("The certificate chain is empty.");
|
|
23
|
+
const certificateKey = certificate.publicKey.export({
|
|
24
|
+
type: "spki",
|
|
25
|
+
format: "der"
|
|
26
|
+
});
|
|
27
|
+
let importedKey;
|
|
28
|
+
try {
|
|
29
|
+
importedKey = createPublicKey({
|
|
30
|
+
key: Buffer.from(spkiBase64, "base64"),
|
|
31
|
+
type: "spki",
|
|
32
|
+
format: "der"
|
|
33
|
+
}).export({
|
|
34
|
+
type: "spki",
|
|
35
|
+
format: "der"
|
|
36
|
+
});
|
|
37
|
+
} catch {
|
|
38
|
+
throw new KeyCertificateError("The imported public key material is invalid.");
|
|
39
|
+
}
|
|
40
|
+
if (Buffer.compare(certificateKey, importedKey) !== 0) throw new KeyCertificateError("The certificate does not match the key material.");
|
|
41
|
+
}
|
|
42
|
+
function buildX5c(chain) {
|
|
43
|
+
return chain.map((certificate) => certificate.raw.toString("base64"));
|
|
44
|
+
}
|
|
45
|
+
async function buildX5tS256(chain) {
|
|
46
|
+
const certificate = chain[0];
|
|
47
|
+
if (!certificate) throw new KeyCertificateError("The certificate chain is empty.");
|
|
48
|
+
const digest = await subtle.digest("SHA-256", certificate.raw);
|
|
49
|
+
return base64URLEncode(String.fromCharCode(...new Uint8Array(digest)));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Derive the RFC 7517 x5c / x5t#S256 JWK members from a stored PEM chain.
|
|
53
|
+
*
|
|
54
|
+
* Fail-open by design: one malformed legacy/database row must not take down
|
|
55
|
+
* the whole realm's JWKS — the usable public key is still published, just
|
|
56
|
+
* without the certificate members.
|
|
57
|
+
*/ async function buildCertificateJwkFields(certificate) {
|
|
58
|
+
if (!certificate) return {};
|
|
59
|
+
try {
|
|
60
|
+
const chain = parseCertificateChain(certificate);
|
|
61
|
+
return {
|
|
62
|
+
x5c: buildX5c(chain),
|
|
63
|
+
"x5t#S256": await buildX5tS256(chain)
|
|
64
|
+
};
|
|
65
|
+
} catch {
|
|
66
|
+
return {};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
export { assertCertificateMatchesKey, buildCertificateJwkFields, buildX5c, buildX5tS256, parseCertificateChain };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=certificate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificate.mjs","names":["X509Certificate","createPublicKey","ValidationError","base64URLEncode","subtle","KeyCertificateError","CERTIFICATE_BLOCK_PATTERN","parseCertificateChain","pem","blocks","match","length","map","block","assertCertificateMatchesKey","chain","spkiBase64","certificate","certificateKey","publicKey","export","type","format","importedKey","key","Buffer","from","compare","buildX5c","raw","toString","buildX5tS256","digest","String","fromCharCode","Uint8Array","buildCertificateJwkFields","x5c"],"sources":["../../../src/core/key/certificate.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 {\n X509Certificate,\n createPublicKey,\n} from 'node:crypto';\nimport { ValidationError } from '@authup/errors';\nimport { base64URLEncode } from '@authup/kit';\nimport type { OAuth2JsonWebKey } from '@authup/specs';\nimport { subtle } from 'uncrypto';\nimport { KeyCertificateError } from './certificate-error.ts';\n\nconst CERTIFICATE_BLOCK_PATTERN = /-----BEGIN CERTIFICATE-----[\\s\\S]*?-----END CERTIFICATE-----/g;\n\nexport function parseCertificateChain(pem: string): X509Certificate[] {\n const blocks = pem.match(CERTIFICATE_BLOCK_PATTERN);\n if (!blocks || blocks.length === 0) {\n throw new ValidationError('The certificate chain could not be parsed.');\n }\n\n try {\n return blocks.map((block) => new X509Certificate(block));\n } catch {\n throw new ValidationError('The certificate chain could not be parsed.');\n }\n}\n\nexport function assertCertificateMatchesKey(\n chain: X509Certificate[],\n spkiBase64: string,\n): void {\n const certificate = chain[0];\n if (!certificate) {\n throw new KeyCertificateError('The certificate chain is empty.');\n }\n\n const certificateKey = certificate.publicKey.export({\n type: 'spki',\n format: 'der',\n });\n\n let importedKey : Buffer;\n try {\n importedKey = createPublicKey({\n key: Buffer.from(spkiBase64, 'base64'),\n type: 'spki',\n format: 'der',\n }).export({\n type: 'spki',\n format: 'der',\n });\n } catch {\n throw new KeyCertificateError('The imported public key material is invalid.');\n }\n\n if (Buffer.compare(certificateKey, importedKey) !== 0) {\n throw new KeyCertificateError('The certificate does not match the key material.');\n }\n}\n\nexport function buildX5c(chain: X509Certificate[]): string[] {\n return chain.map((certificate) => certificate.raw.toString('base64'));\n}\n\nexport async function buildX5tS256(chain: X509Certificate[]): Promise<string> {\n const certificate = chain[0];\n if (!certificate) {\n throw new KeyCertificateError('The certificate chain is empty.');\n }\n\n const digest = await subtle.digest('SHA-256', certificate.raw);\n\n return base64URLEncode(\n String.fromCharCode(...new Uint8Array(digest)),\n );\n}\n\n/**\n * Derive the RFC 7517 x5c / x5t#S256 JWK members from a stored PEM chain.\n *\n * Fail-open by design: one malformed legacy/database row must not take down\n * the whole realm's JWKS — the usable public key is still published, just\n * without the certificate members.\n */\nexport async function buildCertificateJwkFields(\n certificate: string | null,\n): Promise<Partial<Pick<OAuth2JsonWebKey, 'x5c' | 'x5t#S256'>>> {\n if (!certificate) {\n return {};\n }\n\n try {\n const chain = parseCertificateChain(certificate);\n return {\n x5c: buildX5c(chain),\n 'x5t#S256': await buildX5tS256(chain),\n };\n } catch {\n return {};\n }\n}\n"],"mappings":";;;;;;;;;AAiBA,MAAMM,4BAA4B;AAElC,SAAgBC,sBAAsBC,KAAW;CAC7C,MAAMC,SAASD,IAAIE,MAAMJ,yBAAAA;CACzB,IAAI,CAACG,UAAUA,OAAOE,WAAW,GAC7B,MAAM,IAAIT,gBAAgB,4CAAA;CAG9B,IAAI;EACA,OAAOO,OAAOG,KAAKC,UAAU,IAAIb,gBAAgBa,KAAAA,CAAAA;CACrD,QAAQ;EACJ,MAAM,IAAIX,gBAAgB,4CAAA;CAC9B;AACJ;AAEA,SAAgBY,4BACZC,OACAC,YAAkB;CAElB,MAAMC,cAAcF,MAAM;CAC1B,IAAI,CAACE,aACD,MAAM,IAAIZ,oBAAoB,iCAAA;CAGlC,MAAMa,iBAAiBD,YAAYE,UAAUC,OAAO;EAChDC,MAAM;EACNC,QAAQ;CACZ,CAAA;CAEA,IAAIC;CACJ,IAAI;EACAA,cAActB,gBAAgB;GAC1BuB,KAAKC,OAAOC,KAAKV,YAAY,QAAA;GAC7BK,MAAM;GACNC,QAAQ;EACZ,CAAA,CAAA,CAAGF,OAAO;GACNC,MAAM;GACNC,QAAQ;EACZ,CAAA;CACJ,QAAQ;EACJ,MAAM,IAAIjB,oBAAoB,8CAAA;CAClC;CAEA,IAAIoB,OAAOE,QAAQT,gBAAgBK,WAAAA,MAAiB,GAChD,MAAM,IAAIlB,oBAAoB,kDAAA;AAEtC;AAEA,SAAgBuB,SAASb,OAAwB;CAC7C,OAAOA,MAAMH,KAAKK,gBAAgBA,YAAYY,IAAIC,SAAS,QAAA,CAAA;AAC/D;AAEA,eAAsBC,aAAahB,OAAwB;CACvD,MAAME,cAAcF,MAAM;CAC1B,IAAI,CAACE,aACD,MAAM,IAAIZ,oBAAoB,iCAAA;CAGlC,MAAM2B,SAAS,MAAM5B,OAAO4B,OAAO,WAAWf,YAAYY,GAAG;CAE7D,OAAO1B,gBACH8B,OAAOC,aAAY,GAAI,IAAIC,WAAWH,MAAAA,CAAAA,CAAAA;AAE9C;;;;;;;GASA,eAAsBI,0BAClBnB,aAA0B;CAE1B,IAAI,CAACA,aACD,OAAO,CAAC;CAGZ,IAAI;EACA,MAAMF,QAAQR,sBAAsBU,WAAAA;EACpC,OAAO;GACHoB,KAAKT,SAASb,KAAAA;GACd,YAAY,MAAMgB,aAAahB,KAAAA;EACnC;CACJ,QAAQ;EACJ,OAAO,CAAC;CACZ;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/key/check.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoC,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAEpF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { REALM_CIPHER_BLOB_ERROR_INSTANCE } from "./error.mjs";
|
|
5
|
+
import { hasInstanceof } from "@authup/errors";
|
|
6
|
+
//#region src/core/key/check.ts
|
|
7
|
+
function isRealmCipherBlobError(input) {
|
|
8
|
+
return hasInstanceof(input, REALM_CIPHER_BLOB_ERROR_INSTANCE);
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { isRealmCipherBlobError };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=check.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.mjs","names":["hasInstanceof","REALM_CIPHER_BLOB_ERROR_INSTANCE","isRealmCipherBlobError","input"],"sources":["../../../src/core/key/check.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 { hasInstanceof } from '@authup/errors';\nimport { REALM_CIPHER_BLOB_ERROR_INSTANCE, type RealmCipherBlobError } from './error.ts';\n\nexport function isRealmCipherBlobError(input: unknown): input is RealmCipherBlobError {\n return hasInstanceof(input, REALM_CIPHER_BLOB_ERROR_INSTANCE);\n}\n"],"mappings":";;;;;;AAUA,SAAgBE,uBAAuBC,OAAc;CACjD,OAAOH,cAAcG,OAAOF,gCAAAA;AAChC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version tag leading a realm-cipher blob (v1.<key_id>.<payload>).
|
|
3
|
+
*/
|
|
4
|
+
export declare const REALM_CIPHER_BLOB_VERSION = "v1";
|
|
5
|
+
/**
|
|
6
|
+
* Marker prefixing key material stored KEK-wrapped in the key store
|
|
7
|
+
* (config secretsEncryptionKey). Unprefixed material is plaintext.
|
|
8
|
+
*/
|
|
9
|
+
export declare const WRAPPED_KEY_MATERIAL_PREFIX = "wrapped.v1.";
|
|
10
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/key/constants.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
//#region src/core/key/constants.ts
|
|
5
|
+
/**
|
|
6
|
+
* Version tag leading a realm-cipher blob (v1.<key_id>.<payload>).
|
|
7
|
+
*/ const REALM_CIPHER_BLOB_VERSION = "v1";
|
|
8
|
+
/**
|
|
9
|
+
* Marker prefixing key material stored KEK-wrapped in the key store
|
|
10
|
+
* (config secretsEncryptionKey). Unprefixed material is plaintext.
|
|
11
|
+
*/ const WRAPPED_KEY_MATERIAL_PREFIX = "wrapped.v1.";
|
|
12
|
+
//#endregion
|
|
13
|
+
export { REALM_CIPHER_BLOB_VERSION, WRAPPED_KEY_MATERIAL_PREFIX };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["REALM_CIPHER_BLOB_VERSION","WRAPPED_KEY_MATERIAL_PREFIX"],"sources":["../../../src/core/key/constants.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\n/**\n * Version tag leading a realm-cipher blob (v1.<key_id>.<payload>).\n */\nexport const REALM_CIPHER_BLOB_VERSION = 'v1';\n\n/**\n * Marker prefixing key material stored KEK-wrapped in the key store\n * (config secretsEncryptionKey). Unprefixed material is plaintext.\n */\nexport const WRAPPED_KEY_MATERIAL_PREFIX = 'wrapped.v1.';\n"],"mappings":";;;;;;GAUA,MAAaA,4BAA4B;;;;GAMzC,MAAaC,8BAA8B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthupError } from '@authup/errors';
|
|
2
|
+
export declare const REALM_CIPHER_BLOB_ERROR_INSTANCE: unique symbol;
|
|
3
|
+
/**
|
|
4
|
+
* A blob-semantics decryption failure — malformed blob, unknown / foreign /
|
|
5
|
+
* non-enc key reference, or failed GCM authentication. This is the expected
|
|
6
|
+
* fail-closed class consumers map to a plain verification failure.
|
|
7
|
+
* Infrastructure errors (database outage, KEK misconfiguration) are
|
|
8
|
+
* deliberately NOT of this type — they must bubble instead of silently
|
|
9
|
+
* burning a verification attempt.
|
|
10
|
+
*/
|
|
11
|
+
export declare class RealmCipherBlobError extends AuthupError {
|
|
12
|
+
constructor(message: string);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/core/key/error.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAE7D,eAAO,MAAM,gCAAgC,eAAyD,CAAC;AAEvG;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM;CAI9B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { AuthupError, markInstanceof } from "@authup/errors";
|
|
5
|
+
//#region src/core/key/error.ts
|
|
6
|
+
const REALM_CIPHER_BLOB_ERROR_INSTANCE = Symbol.for("@authup/server-core/RealmCipherBlobError");
|
|
7
|
+
/**
|
|
8
|
+
* A blob-semantics decryption failure — malformed blob, unknown / foreign /
|
|
9
|
+
* non-enc key reference, or failed GCM authentication. This is the expected
|
|
10
|
+
* fail-closed class consumers map to a plain verification failure.
|
|
11
|
+
* Infrastructure errors (database outage, KEK misconfiguration) are
|
|
12
|
+
* deliberately NOT of this type — they must bubble instead of silently
|
|
13
|
+
* burning a verification attempt.
|
|
14
|
+
*/ var RealmCipherBlobError = class extends AuthupError {
|
|
15
|
+
constructor(message) {
|
|
16
|
+
super({ message });
|
|
17
|
+
markInstanceof(this, REALM_CIPHER_BLOB_ERROR_INSTANCE);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
export { REALM_CIPHER_BLOB_ERROR_INSTANCE, RealmCipherBlobError };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=error.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.mjs","names":["AuthupError","markInstanceof","REALM_CIPHER_BLOB_ERROR_INSTANCE","Symbol","for","RealmCipherBlobError","message"],"sources":["../../../src/core/key/error.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 { AuthupError, markInstanceof } from '@authup/errors';\n\nexport const REALM_CIPHER_BLOB_ERROR_INSTANCE = Symbol.for('@authup/server-core/RealmCipherBlobError');\n\n/**\n * A blob-semantics decryption failure — malformed blob, unknown / foreign /\n * non-enc key reference, or failed GCM authentication. This is the expected\n * fail-closed class consumers map to a plain verification failure.\n * Infrastructure errors (database outage, KEK misconfiguration) are\n * deliberately NOT of this type — they must bubble instead of silently\n * burning a verification attempt.\n */\nexport class RealmCipherBlobError extends AuthupError {\n constructor(message: string) {\n super({ message });\n markInstanceof(this, REALM_CIPHER_BLOB_ERROR_INSTANCE);\n }\n}\n"],"mappings":";;;;;AASA,MAAaE,mCAAmCC,OAAOC,IAAI,0CAAA;;;;;;;;GAU3D,IAAaC,uBAAb,cAA0CL,YAAAA;CACtC,YAAYM,SAAiB;EACzB,MAAM,EAAEA,QAAQ,CAAA;EAChBL,eAAe,MAAMC,gCAAAA;CACzB;AACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './check.ts';
|
|
2
|
+
export * from './certificate-error.ts';
|
|
3
|
+
export * from './certificate.ts';
|
|
4
|
+
export * from './constants.ts';
|
|
5
|
+
export * from './error.ts';
|
|
6
|
+
export * from './provisioner.ts';
|
|
7
|
+
export * from './realm-cipher.ts';
|
|
8
|
+
export * from './types.ts';
|
|
9
|
+
export * from './wrap.ts';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/key/index.ts"],"names":[],"mappings":"AAOA,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { REALM_CIPHER_BLOB_ERROR_INSTANCE, RealmCipherBlobError } from "./error.mjs";
|
|
5
|
+
import { isRealmCipherBlobError } from "./check.mjs";
|
|
6
|
+
import { KEY_CERTIFICATE_ERROR_INSTANCE, KeyCertificateError } from "./certificate-error.mjs";
|
|
7
|
+
import { assertCertificateMatchesKey, buildCertificateJwkFields, buildX5c, buildX5tS256, parseCertificateChain } from "./certificate.mjs";
|
|
8
|
+
import { REALM_CIPHER_BLOB_VERSION, WRAPPED_KEY_MATERIAL_PREFIX } from "./constants.mjs";
|
|
9
|
+
import { KeyProvisioner } from "./provisioner.mjs";
|
|
10
|
+
import { RealmCipher } from "./realm-cipher.mjs";
|
|
11
|
+
import { isWrappedKeyMaterial, unwrapKeyMaterial, wrapKeyMaterial } from "./wrap.mjs";
|
|
12
|
+
export { KEY_CERTIFICATE_ERROR_INSTANCE, KeyCertificateError, KeyProvisioner, REALM_CIPHER_BLOB_ERROR_INSTANCE, REALM_CIPHER_BLOB_VERSION, RealmCipher, RealmCipherBlobError, WRAPPED_KEY_MATERIAL_PREFIX, assertCertificateMatchesKey, buildCertificateJwkFields, buildX5c, buildX5tS256, isRealmCipherBlobError, isWrappedKeyMaterial, parseCertificateChain, unwrapKeyMaterial, wrapKeyMaterial };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Realm } from '@authup/core-kit';
|
|
2
|
+
import type { Logger } from '@authup/server-kit';
|
|
3
|
+
import type { IKeyProvisioner, IKeyStore } from './types.ts';
|
|
4
|
+
export type KeyProvisionerContext = {
|
|
5
|
+
keyStore: IKeyStore;
|
|
6
|
+
logger?: Logger;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Eagerly mints a realm's sig + enc keys (plan 071 hybrid model): run at
|
|
10
|
+
* realm creation and as a startup backfill, so keys are visible in the
|
|
11
|
+
* management API from the moment a realm exists instead of appearing on
|
|
12
|
+
* first use. resolveOrCreate stays as the zero-rows self-healing backstop.
|
|
13
|
+
*/
|
|
14
|
+
export declare class KeyProvisioner implements IKeyProvisioner {
|
|
15
|
+
protected keyStore: IKeyStore;
|
|
16
|
+
protected logger?: Logger;
|
|
17
|
+
constructor(ctx: KeyProvisionerContext);
|
|
18
|
+
ensureForRealm(realm: Realm | {
|
|
19
|
+
id: string;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=provisioner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioner.d.ts","sourceRoot":"","sources":["../../../src/core/key/provisioner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,eAAe;IAClD,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE9B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEd,GAAG,EAAE,qBAAqB;IAKhC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBrE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { JWKUse } from "@authup/specs";
|
|
5
|
+
//#region src/core/key/provisioner.ts
|
|
6
|
+
/**
|
|
7
|
+
* Eagerly mints a realm's sig + enc keys (plan 071 hybrid model): run at
|
|
8
|
+
* realm creation and as a startup backfill, so keys are visible in the
|
|
9
|
+
* management API from the moment a realm exists instead of appearing on
|
|
10
|
+
* first use. resolveOrCreate stays as the zero-rows self-healing backstop.
|
|
11
|
+
*/ var KeyProvisioner = class {
|
|
12
|
+
keyStore;
|
|
13
|
+
logger;
|
|
14
|
+
constructor(ctx) {
|
|
15
|
+
this.keyStore = ctx.keyStore;
|
|
16
|
+
this.logger = ctx.logger;
|
|
17
|
+
}
|
|
18
|
+
async ensureForRealm(realm) {
|
|
19
|
+
const uses = [JWKUse.SIGNATURE, JWKUse.ENCRYPTION];
|
|
20
|
+
for (const use of uses) try {
|
|
21
|
+
await this.keyStore.resolveOrCreate(realm.id, use);
|
|
22
|
+
} catch (e) {
|
|
23
|
+
if (this.logger) this.logger.warn(`Failed to provision ${use} key for realm ${realm.id}: ${e instanceof Error ? e.message : String(e)}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { KeyProvisioner };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=provisioner.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioner.mjs","names":["JWKUse","KeyProvisioner","keyStore","logger","ctx","ensureForRealm","realm","uses","SIGNATURE","ENCRYPTION","use","resolveOrCreate","id","e","warn","Error","message","String"],"sources":["../../../src/core/key/provisioner.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 { Realm } from '@authup/core-kit';\nimport type { Logger } from '@authup/server-kit';\nimport { JWKUse } from '@authup/specs';\nimport type { IKeyProvisioner, IKeyStore } from './types.ts';\n\nexport type KeyProvisionerContext = {\n keyStore: IKeyStore,\n logger?: Logger,\n};\n\n/**\n * Eagerly mints a realm's sig + enc keys (plan 071 hybrid model): run at\n * realm creation and as a startup backfill, so keys are visible in the\n * management API from the moment a realm exists instead of appearing on\n * first use. resolveOrCreate stays as the zero-rows self-healing backstop.\n */\nexport class KeyProvisioner implements IKeyProvisioner {\n protected keyStore: IKeyStore;\n\n protected logger?: Logger;\n\n constructor(ctx: KeyProvisionerContext) {\n this.keyStore = ctx.keyStore;\n this.logger = ctx.logger;\n }\n\n async ensureForRealm(realm: Realm | { id: string }): Promise<void> {\n const uses : `${JWKUse}`[] = [JWKUse.SIGNATURE, JWKUse.ENCRYPTION];\n\n for (const use of uses) {\n try {\n await this.keyStore.resolveOrCreate(realm.id, use);\n } catch (e) {\n // rows-exist-but-none-active throws by design (a deliberate\n // admin kill switch) — the provisioning guarantee is only\n // \"at least one row exists\", so log and continue.\n if (this.logger) {\n this.logger.warn(\n `Failed to provision ${use} key for realm ${realm.id}: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;GAuBA,IAAaC,iBAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYC,KAA4B;EACpC,KAAKF,WAAWE,IAAIF;EACpB,KAAKC,SAASC,IAAID;CACtB;CAEA,MAAME,eAAeC,OAA8C;EAC/D,MAAMC,OAAuB,CAACP,OAAOQ,WAAWR,OAAOS,UAAAA;EAEvD,KAAK,MAAMC,OAAOH,MACd,IAAI;GACA,MAAM,KAAKL,SAASS,gBAAgBL,MAAMM,IAAIF,GAAAA;EAClD,SAASG,GAAG;GAIR,IAAI,KAAKV,QACL,KAAKA,OAAOW,KACR,uBAAuBJ,IAAI,iBAAiBJ,MAAMM,GAAG,IAAIC,aAAaE,QAAQF,EAAEG,UAAUC,OAAOJ,CAAAA,GAAI;EAGjH;CAER;AACJ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ISymmetricCipher } from '@authup/server-kit';
|
|
2
|
+
import type { IKeyStore, IRealmCipher } from './types.ts';
|
|
3
|
+
export type RealmCipherContext = {
|
|
4
|
+
keyStore: IKeyStore;
|
|
5
|
+
};
|
|
6
|
+
export declare class RealmCipher implements IRealmCipher {
|
|
7
|
+
protected keyStore: IKeyStore;
|
|
8
|
+
/**
|
|
9
|
+
* Imported ciphers by key id — key MATERIAL is immutable, so entries
|
|
10
|
+
* never invalidate. Status and realm binding are deliberately NOT
|
|
11
|
+
* cached: decrypt re-resolves the key row every call so disabling a
|
|
12
|
+
* key acts as an immediate, reversible kill switch.
|
|
13
|
+
*/
|
|
14
|
+
protected ciphers: Map<string, ISymmetricCipher>;
|
|
15
|
+
constructor(ctx: RealmCipherContext);
|
|
16
|
+
encrypt(plain: string, realmId: string): Promise<string>;
|
|
17
|
+
decrypt(blob: string, realmId: string): Promise<string>;
|
|
18
|
+
protected resolveCipher(keyId: string, material: string): ISymmetricCipher;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=realm-cipher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realm-cipher.d.ts","sourceRoot":"","sources":["../../../src/core/key/realm-cipher.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,qBAAa,WAAY,YAAW,YAAY;IAC5C,SAAS,CAAC,QAAQ,EAAG,SAAS,CAAC;IAE/B;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAEtC,GAAG,EAAE,kBAAkB;IAK7B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAI,OAAO,CAAC,MAAM,CAAC;IAezD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAI,OAAO,CAAC,MAAM,CAAC;IAoC9D,SAAS,CAAC,aAAa,CACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GAChB,gBAAgB;CASvB"}
|