@authup/server-core 1.0.0-beta.62 → 1.0.0-beta.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/database/data-source/options/module.d.ts +1 -0
- package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs +33 -4
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.d.ts +1 -2
- package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs +7 -14
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts +9 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs +14 -0
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/session/entity.d.ts +8 -0
- package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs +19 -0
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/entity.d.ts +1 -0
- package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user/entity.mjs +6 -0
- package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs +4 -2
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
- package/dist/adapters/database/index.mjs +3 -3
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs +105 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs +104 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
- package/dist/adapters/database/subscriber/module.d.ts +6 -2
- package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
- package/dist/adapters/database/subscriber/module.mjs +9 -5
- package/dist/adapters/database/subscriber/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +8 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
- package/dist/adapters/http/constants.d.ts +18 -0
- package/dist/adapters/http/constants.d.ts.map +1 -0
- package/dist/adapters/http/constants.mjs +23 -0
- package/dist/adapters/http/constants.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/client/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +23 -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 +86 -47
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +6 -0
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +2 -0
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.d.ts +33 -1
- package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.mjs +74 -0
- package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/account/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/module.d.ts +25 -16
- package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/module.mjs +40 -17
- package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/types.d.ts +33 -0
- package/dist/adapters/http/controllers/workflows/account/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/activate/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/admin/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/admin/module.d.ts +30 -0
- package/dist/adapters/http/controllers/workflows/admin/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/module.mjs +88 -0
- package/dist/adapters/http/controllers/workflows/admin/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/types.d.ts +14 -0
- package/dist/adapters/http/controllers/workflows/admin/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/auth-console.d.ts +16 -0
- package/dist/adapters/http/controllers/workflows/auth-console.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/auth-console.mjs +32 -0
- package/dist/adapters/http/controllers/workflows/auth-console.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +21 -3
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +16 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +44 -21
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +5 -0
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/console-login/index.d.ts +3 -0
- package/dist/adapters/http/controllers/workflows/console-login/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.d.ts +83 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.mjs +230 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/types.d.ts +58 -0
- package/dist/adapters/http/controllers/workflows/console-login/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +5 -1
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts +32 -3
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/logout/module.mjs +48 -24
- package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts +1 -1
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -10
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/status/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts +45 -2
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +117 -26
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/cookie/index.d.ts +2 -0
- package/dist/adapters/http/cookie/index.d.ts.map +1 -0
- package/dist/adapters/http/cookie/index.mjs +5 -0
- package/dist/adapters/http/cookie/session.d.ts +35 -0
- package/dist/adapters/http/cookie/session.d.ts.map +1 -0
- package/dist/adapters/http/cookie/session.mjs +62 -0
- package/dist/adapters/http/cookie/session.mjs.map +1 -0
- package/dist/adapters/http/index.d.ts +2 -0
- package/dist/adapters/http/index.d.ts.map +1 -1
- package/dist/adapters/http/index.mjs +20 -16
- package/dist/adapters/http/internal-client/index.d.ts +3 -0
- package/dist/adapters/http/internal-client/index.d.ts.map +1 -0
- package/dist/adapters/http/internal-client/index.mjs +5 -0
- package/dist/adapters/http/internal-client/module.d.ts +21 -0
- package/dist/adapters/http/internal-client/module.d.ts.map +1 -0
- package/dist/adapters/http/{ui/auth-console/http-client.mjs → internal-client/module.mjs} +16 -15
- package/dist/adapters/http/internal-client/module.mjs.map +1 -0
- package/dist/adapters/http/internal-client/types.d.ts +13 -0
- package/dist/adapters/http/internal-client/types.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/index.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/index.mjs +2 -1
- package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts +45 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs +61 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +26 -2
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +67 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +21 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/basic.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.d.ts +8 -2
- package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.mjs +20 -3
- package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.mjs +10 -1
- package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.d.ts +1 -4
- package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +3 -4
- package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts +17 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.mjs +27 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/logger.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts +6 -5
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs +3 -2
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs +15 -0
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +3 -4
- package/dist/adapters/http/request/constants.d.ts +1 -1
- package/dist/adapters/http/request/constants.d.ts.map +1 -1
- package/dist/adapters/http/request/constants.mjs +1 -5
- package/dist/adapters/http/request/constants.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +2 -2
- package/dist/adapters/http/request/helpers/locale.d.ts +2 -1
- package/dist/adapters/http/request/helpers/locale.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/locale.mjs +1 -1
- package/dist/adapters/http/request/helpers/locale.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/same-origin.d.ts +38 -0
- package/dist/adapters/http/request/helpers/same-origin.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/same-origin.mjs +68 -0
- package/dist/adapters/http/request/helpers/same-origin.mjs.map +1 -0
- package/dist/adapters/http/request/index.mjs +2 -2
- package/dist/adapters/http/request/permission/module.mjs +1 -1
- package/dist/adapters/http/request/permission/module.mjs.map +1 -1
- package/dist/adapters/http/request/types.d.ts +1 -2
- package/dist/adapters/http/request/types.d.ts.map +1 -1
- package/dist/adapters/shared/ldap/module.d.ts.map +1 -1
- package/dist/adapters/shared/ldap/module.mjs +4 -1
- package/dist/adapters/shared/ldap/module.mjs.map +1 -1
- package/dist/app/builder.d.ts +4 -4
- package/dist/app/builder.d.ts.map +1 -1
- package/dist/app/builder.mjs +7 -4
- package/dist/app/builder.mjs.map +1 -1
- package/dist/app/factory.d.ts +10 -0
- package/dist/app/factory.d.ts.map +1 -1
- package/dist/app/factory.mjs +26 -2
- package/dist/app/factory.mjs.map +1 -1
- package/dist/app/index.mjs +17 -19
- package/dist/app/modules/authentication/module.d.ts.map +1 -1
- package/dist/app/modules/authentication/module.mjs +15 -2
- package/dist/app/modules/authentication/module.mjs.map +1 -1
- package/dist/app/modules/authentication/repositories/session.d.ts +4 -1
- package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
- package/dist/app/modules/authentication/repositories/session.mjs +20 -3
- package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
- package/dist/app/modules/components/index.d.ts +1 -0
- package/dist/app/modules/components/index.d.ts.map +1 -1
- package/dist/app/modules/components/module.d.ts +3 -1
- package/dist/app/modules/components/module.d.ts.map +1 -1
- package/dist/app/modules/components/module.mjs +26 -7
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/components/types.d.ts +11 -0
- package/dist/app/modules/components/types.d.ts.map +1 -0
- package/dist/app/modules/config/app-origins.d.ts +10 -0
- package/dist/app/modules/config/app-origins.d.ts.map +1 -0
- package/dist/app/modules/config/app-origins.mjs +21 -0
- package/dist/app/modules/config/app-origins.mjs.map +1 -0
- package/dist/app/modules/config/constants.d.ts +23 -50
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +34 -51
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/index.d.ts +2 -3
- package/dist/app/modules/config/index.d.ts.map +1 -1
- package/dist/app/modules/config/index.mjs +4 -8
- package/dist/app/modules/config/module.d.ts +2 -2
- package/dist/app/modules/config/module.d.ts.map +1 -1
- package/dist/app/modules/config/module.mjs +1 -1
- package/dist/app/modules/config/module.mjs.map +1 -1
- package/dist/app/modules/config/read.d.ts +29 -0
- package/dist/app/modules/config/read.d.ts.map +1 -0
- package/dist/app/modules/config/read.mjs +65 -0
- package/dist/app/modules/config/read.mjs.map +1 -0
- package/dist/app/modules/config/types.d.ts +30 -397
- package/dist/app/modules/config/types.d.ts.map +1 -1
- package/dist/app/modules/config/validator.d.ts.map +1 -1
- package/dist/app/modules/config/validator.mjs +3 -87
- package/dist/app/modules/config/validator.mjs.map +1 -1
- package/dist/app/modules/database/index.d.ts +1 -0
- package/dist/app/modules/database/index.d.ts.map +1 -1
- package/dist/app/modules/database/index.mjs +2 -1
- package/dist/app/modules/database/migration.d.ts +33 -0
- package/dist/app/modules/database/migration.d.ts.map +1 -0
- package/dist/app/modules/database/migration.mjs +52 -0
- package/dist/app/modules/database/migration.mjs.map +1 -0
- package/dist/app/modules/database/module.d.ts.map +1 -1
- package/dist/app/modules/database/module.mjs +12 -6
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts +6 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs +21 -4
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.d.ts +29 -2
- package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.mjs +42 -24
- package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/helpers.d.ts +24 -1
- package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs +38 -1
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +3 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs +3 -3
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +4 -2
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/key/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/permission/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/policy/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/role/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/scope/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts +7 -2
- package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.mjs +21 -4
- package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
- package/dist/app/modules/http/constants.d.ts +3 -1
- package/dist/app/modules/http/constants.d.ts.map +1 -1
- package/dist/app/modules/http/constants.mjs +3 -2
- package/dist/app/modules/http/constants.mjs.map +1 -1
- package/dist/app/modules/http/module.d.ts +30 -9
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +31 -33
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +4 -3
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +70 -38
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts +13 -22
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +20 -36
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs +4 -4
- package/dist/app/modules/identity/repositories/client.mjs +4 -2
- package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/user.mjs +4 -2
- package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
- package/dist/app/modules/index.mjs +21 -23
- package/dist/app/modules/logger/module.mjs +1 -1
- package/dist/app/modules/logger/module.mjs.map +1 -1
- package/dist/app/modules/mail/module.d.ts.map +1 -1
- package/dist/app/modules/mail/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/constants.d.ts +3 -1
- package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/constants.mjs +2 -0
- package/dist/app/modules/oauth2/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/module.d.ts.map +1 -1
- package/dist/app/modules/oauth2/module.mjs +14 -4
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/client/repository.mjs +4 -2
- package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs +3 -2
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/console-login/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/console-login/index.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/console-login/index.mjs +5 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.d.ts +19 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.mjs +47 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.mjs.map +1 -0
- package/dist/app/modules/oauth2/repositories/constants.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/constants.mjs +2 -0
- package/dist/app/modules/oauth2/repositories/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/federated-login/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/federated-login/index.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/federated-login/index.mjs +5 -0
- package/dist/app/modules/oauth2/repositories/federated-login/store.d.ts +9 -0
- package/dist/app/modules/oauth2/repositories/federated-login/store.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/federated-login/store.mjs +33 -0
- package/dist/app/modules/oauth2/repositories/federated-login/store.mjs.map +1 -0
- package/dist/app/modules/oauth2/repositories/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/index.mjs +5 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +2 -2
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +5 -3
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +5 -6
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs +2 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs +2 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/runtime/module.d.ts.map +1 -1
- package/dist/app/modules/runtime/module.mjs +2 -1
- package/dist/app/modules/runtime/module.mjs.map +1 -1
- package/dist/app/types.d.ts +16 -0
- package/dist/app/types.d.ts.map +1 -1
- package/dist/cli/commands/config.d.ts +40 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.mjs +65 -0
- package/dist/cli/commands/config.mjs.map +1 -0
- package/dist/cli/commands/healthcheck.d.ts +3 -2
- package/dist/cli/commands/healthcheck.d.ts.map +1 -1
- package/dist/cli/commands/healthcheck.mjs +6 -3
- package/dist/cli/commands/healthcheck.mjs.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.mjs +3 -1
- package/dist/cli/commands/migration.d.ts +3 -10
- package/dist/cli/commands/migration.d.ts.map +1 -1
- package/dist/cli/commands/migration.mjs +17 -9
- package/dist/cli/commands/migration.mjs.map +1 -1
- package/dist/cli/commands/shutdown.d.ts +16 -0
- package/dist/cli/commands/shutdown.d.ts.map +1 -0
- package/dist/cli/commands/shutdown.mjs +41 -0
- package/dist/cli/commands/shutdown.mjs.map +1 -0
- package/dist/cli/commands/start.d.ts +3 -2
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.mjs +3 -21
- package/dist/cli/commands/start.mjs.map +1 -1
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/module.d.ts +0 -2
- package/dist/cli/module.d.ts.map +1 -1
- package/dist/cli/module.mjs +4 -3
- package/dist/cli/module.mjs.map +1 -1
- package/dist/components/oauth2-cleaner/module.d.ts +2 -2
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs +10 -7
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/index.mjs +2 -1
- package/dist/core/authentication/session/constants.d.ts +10 -0
- package/dist/core/authentication/session/constants.d.ts.map +1 -0
- package/dist/core/authentication/session/constants.mjs +16 -0
- package/dist/core/authentication/session/constants.mjs.map +1 -0
- package/dist/core/authentication/session/index.d.ts +1 -0
- package/dist/core/authentication/session/index.d.ts.map +1 -1
- package/dist/core/authentication/session/index.mjs +2 -1
- package/dist/core/authentication/session/module.d.ts +2 -1
- package/dist/core/authentication/session/module.d.ts.map +1 -1
- package/dist/core/authentication/session/module.mjs +7 -1
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/authentication/session/types.d.ts +70 -1
- package/dist/core/authentication/session/types.d.ts.map +1 -1
- package/dist/core/authentication/session/types.mjs.map +1 -1
- package/dist/core/entities/client/schema.d.ts.map +1 -1
- package/dist/core/entities/client/schema.mjs +1 -2
- package/dist/core/entities/client/schema.mjs.map +1 -1
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +15 -1
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/system-clients.d.ts +0 -5
- package/dist/core/entities/client/system-clients.d.ts.map +1 -1
- package/dist/core/entities/client/system-clients.mjs +0 -6
- package/dist/core/entities/client/system-clients.mjs.map +1 -1
- package/dist/core/entities/client/types.d.ts +12 -0
- package/dist/core/entities/client/types.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.mjs +1 -1
- package/dist/core/entities/client-permission/service.mjs.map +1 -1
- package/dist/core/entities/event/constants.d.ts +1 -6
- package/dist/core/entities/event/constants.d.ts.map +1 -1
- package/dist/core/entities/event/constants.mjs +1 -5
- package/dist/core/entities/event/constants.mjs.map +1 -1
- package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
- package/dist/core/entities/event/entity-event-handler.mjs +17 -3
- package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
- package/dist/core/entities/event/service.d.ts.map +1 -1
- package/dist/core/entities/event/service.mjs +3 -3
- package/dist/core/entities/event/service.mjs.map +1 -1
- package/dist/core/entities/event/types.d.ts +15 -1
- package/dist/core/entities/event/types.d.ts.map +1 -1
- package/dist/core/entities/identity-provider/types.d.ts +9 -1
- package/dist/core/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/core/entities/permission/service.mjs +1 -2
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/role-permission/service.mjs +1 -1
- package/dist/core/entities/role-permission/service.mjs.map +1 -1
- package/dist/core/entities/session/service.d.ts +13 -1
- package/dist/core/entities/session/service.d.ts.map +1 -1
- package/dist/core/entities/session/service.mjs +19 -16
- package/dist/core/entities/session/service.mjs.map +1 -1
- package/dist/core/entities/user/schema.d.ts.map +1 -1
- package/dist/core/entities/user/schema.mjs +1 -0
- package/dist/core/entities/user/schema.mjs.map +1 -1
- package/dist/core/entities/user/service.d.ts.map +1 -1
- package/dist/core/entities/user/service.mjs +21 -1
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user/types.d.ts +12 -0
- package/dist/core/entities/user/types.d.ts.map +1 -1
- package/dist/core/entities/user-permission/service.mjs +1 -1
- package/dist/core/entities/user-permission/service.mjs.map +1 -1
- package/dist/core/identity/index.mjs +2 -1
- package/dist/core/identity/permission/junction-grant.mjs +1 -1
- package/dist/core/identity/permission/junction-grant.mjs.map +1 -1
- package/dist/core/identity/provider/account/module.mjs +2 -2
- package/dist/core/identity/provider/account/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/index.mjs +2 -1
- package/dist/core/identity/provider/authentication/protocols/index.mjs +2 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.d.ts +46 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.d.ts.map +1 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs +89 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs.map +1 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/index.d.ts +1 -0
- package/dist/core/identity/provider/authentication/protocols/oauth2/index.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/index.mjs +2 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +9 -2
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/provider/index.mjs +2 -1
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +2 -1
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/index.mjs +14 -4
- package/dist/core/oauth2/authorization/helpers.d.ts +14 -0
- package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs +15 -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.map +1 -1
- package/dist/core/oauth2/authorization/module.mjs +6 -4
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/state/types.d.ts +8 -0
- package/dist/core/oauth2/authorization/state/types.d.ts.map +1 -1
- package/dist/core/oauth2/backchannel-logout/constants.d.ts +16 -0
- package/dist/core/oauth2/backchannel-logout/constants.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/constants.mjs +20 -0
- package/dist/core/oauth2/backchannel-logout/constants.mjs.map +1 -0
- package/dist/core/oauth2/backchannel-logout/index.d.ts +4 -0
- package/dist/core/oauth2/backchannel-logout/index.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/index.mjs +6 -0
- package/dist/core/oauth2/backchannel-logout/module.d.ts +26 -0
- package/dist/core/oauth2/backchannel-logout/module.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/module.mjs +78 -0
- package/dist/core/oauth2/backchannel-logout/module.mjs.map +1 -0
- package/dist/core/oauth2/backchannel-logout/types.d.ts +29 -0
- package/dist/core/oauth2/backchannel-logout/types.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/constants.d.ts +19 -0
- package/dist/core/oauth2/console-login/constants.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/constants.mjs +24 -0
- package/dist/core/oauth2/console-login/constants.mjs.map +1 -0
- package/dist/core/oauth2/console-login/index.d.ts +3 -0
- package/dist/core/oauth2/console-login/index.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/index.mjs +5 -0
- package/dist/core/oauth2/console-login/types.d.ts +53 -0
- package/dist/core/oauth2/console-login/types.d.ts.map +1 -0
- package/dist/core/oauth2/end-session/service.mjs +1 -1
- package/dist/core/oauth2/end-session/service.mjs.map +1 -1
- package/dist/core/oauth2/federated-login/constants.d.ts +22 -0
- package/dist/core/oauth2/federated-login/constants.d.ts.map +1 -0
- package/dist/core/oauth2/federated-login/constants.mjs +27 -0
- package/dist/core/oauth2/federated-login/constants.mjs.map +1 -0
- package/dist/core/oauth2/federated-login/index.d.ts +1 -0
- package/dist/core/oauth2/federated-login/index.d.ts.map +1 -1
- package/dist/core/oauth2/federated-login/index.mjs +2 -1
- package/dist/core/oauth2/federated-login/module.d.ts +12 -3
- package/dist/core/oauth2/federated-login/module.d.ts.map +1 -1
- package/dist/core/oauth2/federated-login/module.mjs +98 -42
- package/dist/core/oauth2/federated-login/module.mjs.map +1 -1
- package/dist/core/oauth2/federated-login/types.d.ts +82 -24
- package/dist/core/oauth2/federated-login/types.d.ts.map +1 -1
- package/dist/core/oauth2/federated-login/types.mjs +5 -0
- package/dist/core/oauth2/federated-login/types.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.mjs +1 -1
- package/dist/core/oauth2/grant-types/client-credentials.mjs +1 -1
- package/dist/core/oauth2/grant-types/identity.mjs +1 -1
- package/dist/core/oauth2/grant-types/password.mjs +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs +1 -1
- package/dist/core/oauth2/index.d.ts +4 -0
- package/dist/core/oauth2/index.d.ts.map +1 -1
- package/dist/core/oauth2/index.mjs +15 -4
- package/dist/core/oauth2/introspection/index.d.ts +3 -0
- package/dist/core/oauth2/introspection/index.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/index.mjs +5 -0
- package/dist/core/oauth2/introspection/module.d.ts +14 -0
- package/dist/core/oauth2/introspection/module.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/module.mjs +49 -0
- package/dist/core/oauth2/introspection/module.mjs.map +1 -0
- package/dist/core/oauth2/introspection/types.d.ts +45 -0
- package/dist/core/oauth2/introspection/types.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/types.mjs +4 -0
- package/dist/core/oauth2/openid/claims.d.ts +20 -2
- package/dist/core/oauth2/openid/claims.d.ts.map +1 -1
- package/dist/core/oauth2/openid/claims.mjs +18 -4
- package/dist/core/oauth2/openid/claims.mjs.map +1 -1
- package/dist/core/oauth2/session-credential/constants.d.ts +30 -0
- package/dist/core/oauth2/session-credential/constants.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/constants.mjs +34 -0
- package/dist/core/oauth2/session-credential/constants.mjs.map +1 -0
- package/dist/core/oauth2/session-credential/index.d.ts +3 -0
- package/dist/core/oauth2/session-credential/index.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/index.mjs +6 -0
- package/dist/core/oauth2/session-credential/module.d.ts +31 -0
- package/dist/core/oauth2/session-credential/module.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/module.mjs +43 -0
- package/dist/core/oauth2/session-credential/module.mjs.map +1 -0
- package/dist/core/oauth2/session-token/constants.d.ts +10 -0
- package/dist/core/oauth2/session-token/constants.d.ts.map +1 -0
- package/dist/core/oauth2/session-token/constants.mjs +16 -0
- package/dist/core/oauth2/session-token/constants.mjs.map +1 -0
- package/dist/core/oauth2/session-token/index.d.ts +1 -0
- package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
- package/dist/core/oauth2/session-token/index.mjs +2 -1
- package/dist/core/oauth2/session-token/types.d.ts +13 -2
- package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
- package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/verifier/module.mjs +3 -3
- package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
- package/dist/core/provisioning/merge/module.mjs +5 -3
- package/dist/core/provisioning/merge/module.mjs.map +1 -1
- package/dist/core/query/module.mjs +1 -1
- package/dist/core/query/module.mjs.map +1 -1
- package/dist/core/security/policy/evaluator.mjs +1 -1
- package/dist/core/security/policy/evaluator.mjs.map +1 -1
- package/dist/index.mjs +62 -59
- package/dist/path.mjs +1 -1
- package/dist/swagger.json +573 -163
- package/dist/utils/error.d.ts +6 -0
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.mjs +6 -2
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/index.mjs +2 -2
- package/package.json +32 -26
- package/dist/adapters/http/middleware/built-in/assets.d.ts +0 -11
- package/dist/adapters/http/middleware/built-in/assets.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/assets.mjs +0 -91
- package/dist/adapters/http/middleware/built-in/assets.mjs.map +0 -1
- package/dist/adapters/http/middleware/built-in/theme.d.ts +0 -15
- package/dist/adapters/http/middleware/built-in/theme.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/theme.mjs +0 -27
- package/dist/adapters/http/middleware/built-in/theme.mjs.map +0 -1
- package/dist/adapters/http/middleware/built-in/types.d.ts +0 -14
- package/dist/adapters/http/middleware/built-in/types.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +0 -15
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +0 -25
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +0 -1
- package/dist/adapters/http/request/helpers/redirect.d.ts +0 -14
- package/dist/adapters/http/request/helpers/redirect.d.ts.map +0 -1
- package/dist/adapters/http/request/helpers/redirect.mjs +0 -36
- package/dist/adapters/http/request/helpers/redirect.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/index.d.ts +0 -4
- package/dist/adapters/http/ui/account-console/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/index.mjs +0 -6
- package/dist/adapters/http/ui/account-console/module.d.ts +0 -28
- package/dist/adapters/http/ui/account-console/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/module.mjs +0 -80
- package/dist/adapters/http/ui/account-console/module.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/ref.d.ts +0 -30
- package/dist/adapters/http/ui/account-console/ref.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/ref.mjs +0 -50
- package/dist/adapters/http/ui/account-console/ref.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/types.d.ts +0 -11
- package/dist/adapters/http/ui/account-console/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/http-client.d.ts +0 -22
- package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/http-client.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/index.d.ts +0 -6
- package/dist/adapters/http/ui/auth-console/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/index.mjs +0 -8
- package/dist/adapters/http/ui/auth-console/module.d.ts +0 -4
- package/dist/adapters/http/ui/auth-console/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/module.mjs +0 -73
- package/dist/adapters/http/ui/auth-console/module.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/resolve.d.ts +0 -21
- package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/resolve.mjs +0 -53
- package/dist/adapters/http/ui/auth-console/resolve.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/serve.d.ts +0 -9
- package/dist/adapters/http/ui/auth-console/serve.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/serve.mjs +0 -35
- package/dist/adapters/http/ui/auth-console/serve.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/types.d.ts +0 -26
- package/dist/adapters/http/ui/auth-console/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/index.mjs +0 -5
- package/dist/adapters/http/ui/console-packages/module.d.ts +0 -33
- package/dist/adapters/http/ui/console-packages/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/module.mjs +0 -70
- package/dist/adapters/http/ui/console-packages/module.mjs.map +0 -1
- package/dist/adapters/http/ui/console-packages/types.d.ts +0 -12
- package/dist/adapters/http/ui/console-packages/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/index.d.ts +0 -6
- package/dist/adapters/http/ui/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/index.mjs +0 -25
- package/dist/adapters/http/ui/shared/html.d.ts +0 -76
- package/dist/adapters/http/ui/shared/html.d.ts.map +0 -1
- package/dist/adapters/http/ui/shared/html.mjs +0 -104
- package/dist/adapters/http/ui/shared/html.mjs.map +0 -1
- package/dist/adapters/http/ui/shared/index.d.ts +0 -2
- package/dist/adapters/http/ui/shared/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/shared/index.mjs +0 -5
- package/dist/adapters/http/ui/theme/apply.d.ts +0 -12
- package/dist/adapters/http/ui/theme/apply.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/apply.mjs +0 -29
- package/dist/adapters/http/ui/theme/apply.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/assets.d.ts +0 -20
- package/dist/adapters/http/ui/theme/assets.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/assets.mjs +0 -86
- package/dist/adapters/http/ui/theme/assets.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/constants.d.ts +0 -16
- package/dist/adapters/http/ui/theme/constants.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/constants.mjs +0 -20
- package/dist/adapters/http/ui/theme/constants.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/constants.d.ts +0 -120
- package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/constants.mjs +0 -136
- package/dist/adapters/http/ui/theme/contract/constants.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/head.d.ts +0 -12
- package/dist/adapters/http/ui/theme/contract/head.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/head.mjs +0 -61
- package/dist/adapters/http/ui/theme/contract/head.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/index.d.ts +0 -6
- package/dist/adapters/http/ui/theme/contract/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/index.mjs +0 -8
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts +0 -25
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/manifest.mjs +0 -77
- package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/types.d.ts +0 -26
- package/dist/adapters/http/ui/theme/contract/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/utils.d.ts +0 -11
- package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/utils.mjs +0 -22
- package/dist/adapters/http/ui/theme/contract/utils.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/index.d.ts +0 -7
- package/dist/adapters/http/ui/theme/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/index.mjs +0 -13
- package/dist/adapters/http/ui/theme/module.d.ts +0 -79
- package/dist/adapters/http/ui/theme/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/module.mjs +0 -206
- package/dist/adapters/http/ui/theme/module.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/types.d.ts +0 -42
- package/dist/adapters/http/ui/theme/types.d.ts.map +0 -1
- package/dist/app/modules/config/helpers.d.ts +0 -9
- package/dist/app/modules/config/helpers.d.ts.map +0 -1
- package/dist/app/modules/config/helpers.mjs +0 -22
- package/dist/app/modules/config/helpers.mjs.map +0 -1
- package/dist/app/modules/config/normalize.d.ts +0 -3
- package/dist/app/modules/config/normalize.d.ts.map +0 -1
- package/dist/app/modules/config/normalize.mjs +0 -117
- package/dist/app/modules/config/normalize.mjs.map +0 -1
- package/dist/app/modules/config/origins.d.ts +0 -25
- package/dist/app/modules/config/origins.d.ts.map +0 -1
- package/dist/app/modules/config/origins.mjs +0 -46
- package/dist/app/modules/config/origins.mjs.map +0 -1
- package/dist/app/modules/config/read/env.d.ts +0 -3
- package/dist/app/modules/config/read/env.d.ts.map +0 -1
- package/dist/app/modules/config/read/env.mjs +0 -139
- package/dist/app/modules/config/read/env.mjs.map +0 -1
- package/dist/app/modules/config/read/fs.d.ts +0 -3
- package/dist/app/modules/config/read/fs.d.ts.map +0 -1
- package/dist/app/modules/config/read/fs.mjs +0 -60
- package/dist/app/modules/config/read/fs.mjs.map +0 -1
- package/dist/app/modules/config/read/index.d.ts +0 -5
- package/dist/app/modules/config/read/index.d.ts.map +0 -1
- package/dist/app/modules/config/read/index.mjs +0 -7
- package/dist/app/modules/config/read/module.d.ts +0 -4
- package/dist/app/modules/config/read/module.d.ts.map +0 -1
- package/dist/app/modules/config/read/module.mjs +0 -29
- package/dist/app/modules/config/read/module.mjs.map +0 -1
- package/dist/app/modules/config/read/types.d.ts +0 -9
- package/dist/app/modules/config/read/types.d.ts.map +0 -1
- package/dist/app/modules/config/trust-proxy.d.ts +0 -28
- package/dist/app/modules/config/trust-proxy.d.ts.map +0 -1
- package/dist/app/modules/config/trust-proxy.mjs +0 -64
- package/dist/app/modules/config/trust-proxy.mjs.map +0 -1
- package/dist/cli/config.d.ts +0 -18
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.mjs +0 -34
- package/dist/cli/config.mjs.map +0 -1
- package/dist/cli/types.d.ts.map +0 -1
- package/dist/utils/host.d.ts +0 -2
- package/dist/utils/host.d.ts.map +0 -1
- package/dist/utils/host.mjs +0 -12
- package/dist/utils/host.mjs.map +0 -1
- /package/dist/adapters/http/{middleware/built-in → controllers/workflows/account}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/console-packages → controllers/workflows/admin}/index.d.ts +0 -0
- /package/dist/adapters/http/{ui/account-console → controllers/workflows/admin}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/auth-console → controllers/workflows/console-login}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/console-packages → internal-client}/types.mjs +0 -0
- /package/dist/{adapters/http/ui/theme/contract → app/modules/components}/types.mjs +0 -0
- /package/dist/cli/{types.d.ts → commands/types.d.ts} +0 -0
- /package/dist/{adapters/http/ui/theme → cli/commands}/types.mjs +0 -0
- /package/dist/{app/modules/config/read → core/oauth2/backchannel-logout}/types.mjs +0 -0
- /package/dist/{cli → core/oauth2/console-login}/types.mjs +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mjs","names":["FindOptionsUtils","InstanceChecker","TreeRepository","TreeRepositoryUtils","ExtraAttributesTreeRepositoryAdapter","EATreeRepository","adapter","options","instance","entity","attributeEntity","ctx","isDataSource","manager","repository","attributeRepository","getRepository","create","entityLike","Array","isArray","map","i","preserveExtraAttributes","source","columns","Set","col","metadata","add","propertyName","rel","relations","key","Object","keys","has","saveOneWithEA","input","attributes","saveWithEA","findOneWithEA","extraOptions","findOneWithEAByPrimaryColumn","value","findManyWithEA","findWithEA","extendOneWithEA","output","extendManyWithEA","entities","findRoots","findDescendantsTree","qb","createDescendantsQueryBuilder","applyOptionsToTreeQueryBuilder","getRawAndEntities","relationMaps","createRelationMaps","raw","buildChildrenEntityTree","depth","findAncestors","findAncestorsTree","createAncestorsQueryBuilder","buildParentEntityTree","updateClosureTable","primaryKeyValue","primaryColumns","getEntityValue","closureTable","closureJunctionTable","executeClosureTableUpdate","connection","transaction","tableName","ancestorColumn","ancestorColumns","descendantColumn","descendantColumns","param","index","driver","createParameter","ancestors","query","databasePath","treeParentRelation","parentId","joinColumns","ancestorIds","filter","ancestor","length","descendants","descendantIds","descendant","placeholders","_","join","ancestorsOfDescendants","acc","reduce","curr","push","ancestorsOfDescendent","ancestorId","indexOf","descendantId"],"sources":["../../../../../src/adapters/database/extra-attribute-repository/tree/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2024-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n DataSource, \n DeepPartial, \n EntityManager, \n FindManyOptions, \n FindOneOptions, \n FindTreeOptions,\n SelectQueryBuilder,\n} from 'typeorm';\nimport {\n FindOptionsUtils,\n InstanceChecker,\n TreeRepository, \n TreeRepositoryUtils,\n} from 'typeorm';\nimport type { ObjectLiteral } from '@authup/kit';\nimport type { ExtraAttributesRepositoryAdapter } from '../adapter.ts';\nimport type {\n EARepositoryEntityBase, \n EARepositoryFindOptions, \n EARepositoryOptions, \n EARepositorySaveOptions, \n IEARepository,\n} from '../types.ts';\nimport { ExtraAttributesTreeRepositoryAdapter } from './adapter.ts';\n\n/**\n * @see https://github.com/typeorm/typeorm/blob/master/src/repository/TreeRepository.ts\n */\nexport class EATreeRepository<\n T extends ObjectLiteral = ObjectLiteral,\n A extends EARepositoryEntityBase = EARepositoryEntityBase,\n> extends TreeRepository<T> implements IEARepository<T> {\n protected adapter: ExtraAttributesRepositoryAdapter<T, A>;\n\n protected options: EARepositoryOptions<T, A>;\n\n constructor(\n instance: DataSource | EntityManager,\n options: EARepositoryOptions<T, A>,\n ) {\n const {\n entity,\n attributeEntity,\n ...ctx\n } = options;\n\n super(\n entity,\n InstanceChecker.isDataSource(instance) ? instance.manager : instance,\n );\n\n this.options = options;\n this.adapter = new ExtraAttributesTreeRepositoryAdapter<T, A>({\n ...ctx,\n repository: this,\n attributeRepository: this.manager.getRepository(attributeEntity),\n });\n }\n\n // ------------------------------------------------------------------------------\n\n override create(): T;\n\n override create(entityLikeArray: DeepPartial<T>[]): T[];\n\n override create(entityLike: DeepPartial<T>): T;\n\n override create(entityLike?: DeepPartial<T> | DeepPartial<T>[]): T | T[] {\n if (!entityLike) {\n return super.create();\n }\n\n if (Array.isArray(entityLike)) {\n return super.create(entityLike).map((entity, i) => {\n this.preserveExtraAttributes(entity, entityLike[i]);\n return entity;\n });\n }\n\n const entity = super.create(entityLike);\n this.preserveExtraAttributes(entity, entityLike);\n return entity;\n }\n\n private preserveExtraAttributes(entity: T, source: DeepPartial<T>): void {\n const columns = new Set<string>();\n for (const col of this.metadata.columns) {\n columns.add(col.propertyName);\n }\n for (const rel of this.metadata.relations) {\n columns.add(rel.propertyName);\n }\n\n for (const key of Object.keys(source)) {\n if (!columns.has(key) && !(key in entity)) {\n (entity as Record<string, any>)[key] = (source as Record<string, any>)[key];\n }\n }\n }\n\n // ------------------------------------------------------------------------------\n\n async saveOneWithEA<E extends Record<string, any>>(\n input: T & E,\n attributes?: E,\n options?: EARepositorySaveOptions<T>,\n ): Promise<T & E> {\n return this.adapter.saveWithEA(input, attributes, options);\n }\n\n // ------------------------------------------------------------------------------\n\n async findOneWithEA(\n options: FindOneOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<T | undefined> {\n return this.adapter.findOneWithEA(options, extraOptions);\n }\n\n async findOneWithEAByPrimaryColumn<E extends Record<string, any>>(\n value: T[keyof T],\n extraOptions?: EARepositoryFindOptions,\n ): Promise<E> {\n return this.adapter.findOneWithEAByPrimaryColumn(value, extraOptions);\n }\n\n async findManyWithEA<\n E extends Record<string, any>,\n >(\n options: FindManyOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<(T & E)[]> {\n return this.adapter.findWithEA(options, extraOptions);\n }\n\n // ------------------------------------------------------------------------------\n\n async extendOneWithEA<E extends Record<string, any>>(\n entity: T,\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<T & E> {\n const [output] = await this.extendManyWithEA([entity], extraOptions);\n\n return output as (T & E);\n }\n\n async extendManyWithEA<E extends Record<string, any>>(\n entities: T[],\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<(T & E)[]> {\n return this.adapter.extendManyWithEA(entities, extraOptions);\n }\n\n // -------------------------------------------------------------------------------\n\n async findRoots(options?: FindTreeOptions): Promise<T[]> {\n const entities = await super.findRoots(options);\n\n await this.extendManyWithEA(entities);\n\n return entities;\n }\n\n async findDescendantsTree(\n entity: T,\n options?: FindTreeOptions,\n ): Promise<T> {\n const qb: SelectQueryBuilder<T> = this.createDescendantsQueryBuilder(\n 'treeEntity',\n 'treeClosure',\n entity,\n );\n FindOptionsUtils.applyOptionsToTreeQueryBuilder(qb, options);\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = TreeRepositoryUtils.createRelationMaps(\n this.manager,\n this.metadata,\n 'treeEntity',\n entities.raw,\n );\n\n await this.extendManyWithEA(entities.entities);\n\n TreeRepositoryUtils.buildChildrenEntityTree(\n this.metadata,\n entity,\n entities.entities,\n relationMaps,\n {\n depth: -1,\n ...options,\n },\n );\n\n // The descendants closure may include the root, but `entity` here is a\n // different reference than the one in `entities.entities`, so its own EA\n // fields are not populated. Load them explicitly so leaf-as-root callers\n // (e.g. policies bound directly to permissions/junctions) see EA.\n await this.extendOneWithEA(entity);\n\n return entity;\n }\n\n async findAncestors(\n entity: T,\n options?: FindTreeOptions,\n ): Promise<T[]> {\n const entities = await super.findAncestors(entity, options);\n\n await this.extendManyWithEA(entities);\n\n return entities;\n }\n\n // -------------------------------------------------------------------------------\n\n async findAncestorsTree(\n entity: T,\n options?: FindTreeOptions,\n ): Promise<T> {\n const qb = this.createAncestorsQueryBuilder(\n 'treeEntity',\n 'treeClosure',\n entity,\n );\n FindOptionsUtils.applyOptionsToTreeQueryBuilder(qb, options);\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = TreeRepositoryUtils.createRelationMaps(\n this.manager,\n this.metadata,\n 'treeEntity',\n entities.raw,\n );\n\n await this.extendManyWithEA(entities.entities);\n\n TreeRepositoryUtils.buildParentEntityTree(\n this.metadata,\n entity,\n entities.entities,\n relationMaps,\n );\n return entity;\n }\n\n // -------------------------------------------------------------------------------\n\n async updateClosureTable(entity: T, manager?: EntityManager) {\n const primaryKeyValue = this.metadata.primaryColumns[0].getEntityValue(entity);\n if (!primaryKeyValue) {\n return;\n }\n\n const closureTable = this.metadata.closureJunctionTable;\n if (!closureTable) {\n return;\n }\n\n if (manager) {\n await this.executeClosureTableUpdate(entity, manager);\n } else {\n await this.manager.connection.transaction(async (manager) => {\n await this.executeClosureTableUpdate(entity, manager);\n });\n }\n }\n\n private async executeClosureTableUpdate(entity: T, manager: EntityManager) {\n const primaryKeyValue = this.metadata.primaryColumns[0].getEntityValue(entity);\n\n const { tableName } = this.metadata.closureJunctionTable;\n const ancestorColumn = this.metadata.closureJunctionTable.ancestorColumns[0];\n const descendantColumn = this.metadata.closureJunctionTable.descendantColumns[0];\n\n const param = (index: number) => manager.connection.driver.createParameter(`p${index}`, index);\n\n // 1. Get All ancestors of current entity\n const ancestors = await manager.query<Record<string, any>[]>(\n `SELECT *\n FROM ${tableName}\n WHERE ${ancestorColumn.databasePath} != ${descendantColumn.databasePath} AND\n ${descendantColumn.databasePath} = ${param(0)} AND\n ${ancestorColumn.databasePath} != ${param(1)}`,\n [primaryKeyValue, primaryKeyValue],\n );\n\n if (!this.metadata.treeParentRelation) {\n return;\n }\n\n const parentId = this.metadata.treeParentRelation.joinColumns[0].getEntityValue(entity);\n\n let ancestorIds : string[];\n if (parentId) {\n ancestorIds = [\n parentId,\n ...ancestors\n .filter((ancestor) => ancestor[ancestorColumn.databasePath] !== parentId)\n .map((ancestor) => ancestor[ancestorColumn.databasePath]),\n ];\n } else {\n ancestorIds = ancestors.map((ancestor) => ancestor[ancestorColumn.databasePath]);\n }\n\n if (ancestorIds.length === 0) {\n return;\n }\n\n // 2. Get All descendants of current entity.\n const descendants = await manager.query<Record<string, any>[]>(\n `SELECT *\n FROM ${tableName}\n WHERE ${ancestorColumn.databasePath} != ${descendantColumn.databasePath} AND\n ${ancestorColumn.databasePath} = ${param(0)} AND\n ${descendantColumn.databasePath} != ${param(1)}`,\n [primaryKeyValue, primaryKeyValue],\n );\n\n if (parentId) {\n // 3. get all descendant\n const descendantIds = descendants\n .map((descendant) => descendant[descendantColumn.databasePath]);\n\n if (descendantIds.length > 0) {\n // 4. get all ancestors of each descendant\n const placeholders = descendantIds.map((_, i) => param(i + 1)).join(',');\n const ancestorsOfDescendants = await manager.query<Record<string, any>[]>(\n `SELECT *\n FROM ${tableName}\n WHERE\n ${ancestorColumn.databasePath} != ${param(0)} AND\n ${ancestorColumn.databasePath} != ${descendantColumn.databasePath} AND\n ${descendantColumn.databasePath} IN (${placeholders})`,\n [primaryKeyValue, ...descendantIds],\n );\n\n const acc = ancestorsOfDescendants.reduce((acc, curr) => {\n if (!acc[curr[descendantColumn.databasePath]]) {\n acc[curr[descendantColumn.databasePath]] = [];\n }\n\n acc[curr[descendantColumn.databasePath]].push(curr[ancestorColumn.databasePath]);\n return acc;\n }, {} as Record<string, string[]>);\n\n // 5. Check if for each child a relation exists with each ancestor (create if not exist)\n for (const descendant of descendantIds) {\n const ancestorsOfDescendent = acc[descendant] ?? [];\n\n for (const ancestorId of ancestorIds) {\n const index = ancestorsOfDescendent.indexOf(ancestorId);\n if (index === -1) {\n await manager.query(\n `INSERT INTO ${tableName}\n (${ancestorColumn.databasePath}, ${descendantColumn.databasePath})\n VALUES (${param(0)}, ${param(1)})`,\n [ancestorId, descendant],\n );\n }\n }\n }\n }\n } else {\n const descendantIds = [\n primaryKeyValue,\n ...descendants.map((descendant) => descendant[descendantColumn.databasePath]),\n ];\n\n for (const ancestorId of ancestorIds) {\n for (const descendantId of descendantIds) {\n await manager.query(\n `DELETE FROM ${tableName}\n WHERE ${ancestorColumn.databasePath} = ${param(0)}\n AND ${descendantColumn.databasePath} = ${param(1)}`,\n [ancestorId, descendantId],\n );\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repository.mjs","names":["FindOptionsUtils","InstanceChecker","TreeRepository","TreeRepositoryUtils","ExtraAttributesTreeRepositoryAdapter","EATreeRepository","adapter","options","instance","entity","attributeEntity","ctx","isDataSource","manager","repository","attributeRepository","getRepository","create","entityLike","Array","isArray","map","i","preserveExtraAttributes","source","columns","Set","col","metadata","add","propertyName","rel","relations","key","value","Object","entries","has","saveOneWithEA","input","attributes","saveWithEA","findOneWithEA","extraOptions","findOneWithEAByPrimaryColumn","findManyWithEA","findWithEA","extendOneWithEA","output","extendManyWithEA","entities","findRoots","findDescendantsTree","qb","createDescendantsQueryBuilder","applyOptionsToTreeQueryBuilder","getRawAndEntities","relationMaps","createRelationMaps","raw","buildChildrenEntityTree","depth","findAncestors","findAncestorsTree","createAncestorsQueryBuilder","buildParentEntityTree","updateClosureTable","primaryKeyValue","primaryColumns","getEntityValue","closureTable","closureJunctionTable","executeClosureTableUpdate","connection","transaction","tableName","ancestorColumn","ancestorColumns","descendantColumn","descendantColumns","param","index","driver","createParameter","ancestors","query","databasePath","treeParentRelation","parentId","joinColumns","ancestorIds","filter","ancestor","length","descendants","descendantIds","descendant","placeholders","_","join","ancestorsOfDescendants","acc","reduce","curr","push","ancestorsOfDescendent","ancestorId","indexOf","descendantId"],"sources":["../../../../../src/adapters/database/extra-attribute-repository/tree/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2024-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n DataSource, \n DeepPartial, \n EntityManager, \n FindManyOptions, \n FindOneOptions, \n FindTreeOptions,\n SelectQueryBuilder,\n} from 'typeorm';\nimport {\n FindOptionsUtils,\n InstanceChecker,\n TreeRepository, \n TreeRepositoryUtils,\n} from 'typeorm';\nimport type { ObjectLiteral } from '@authup/kit';\nimport type { ExtraAttributesRepositoryAdapter } from '../adapter.ts';\nimport type {\n EARepositoryEntityBase, \n EARepositoryFindOptions, \n EARepositoryOptions, \n EARepositorySaveOptions, \n IEARepository,\n} from '../types.ts';\nimport { ExtraAttributesTreeRepositoryAdapter } from './adapter.ts';\n\n/**\n * @see https://github.com/typeorm/typeorm/blob/master/src/repository/TreeRepository.ts\n */\nexport class EATreeRepository<\n T extends ObjectLiteral = ObjectLiteral,\n A extends EARepositoryEntityBase = EARepositoryEntityBase,\n> extends TreeRepository<T> implements IEARepository<T> {\n protected adapter: ExtraAttributesRepositoryAdapter<T, A>;\n\n protected options: EARepositoryOptions<T, A>;\n\n constructor(\n instance: DataSource | EntityManager,\n options: EARepositoryOptions<T, A>,\n ) {\n const {\n entity,\n attributeEntity,\n ...ctx\n } = options;\n\n super(\n entity,\n InstanceChecker.isDataSource(instance) ? instance.manager : instance,\n );\n\n this.options = options;\n this.adapter = new ExtraAttributesTreeRepositoryAdapter<T, A>({\n ...ctx,\n repository: this,\n attributeRepository: this.manager.getRepository(attributeEntity),\n });\n }\n\n // ------------------------------------------------------------------------------\n\n override create(): T;\n\n override create(entityLikeArray: DeepPartial<T>[]): T[];\n\n override create(entityLike: DeepPartial<T>): T;\n\n override create(entityLike?: DeepPartial<T> | DeepPartial<T>[]): T | T[] {\n if (!entityLike) {\n return super.create();\n }\n\n if (Array.isArray(entityLike)) {\n return super.create(entityLike).map((entity, i) => {\n this.preserveExtraAttributes(entity, entityLike[i]);\n return entity;\n });\n }\n\n const entity = super.create(entityLike);\n this.preserveExtraAttributes(entity, entityLike);\n return entity;\n }\n\n private preserveExtraAttributes(entity: T, source: DeepPartial<T>): void {\n const columns = new Set<string>();\n for (const col of this.metadata.columns) {\n columns.add(col.propertyName);\n }\n for (const rel of this.metadata.relations) {\n columns.add(rel.propertyName);\n }\n\n for (const [key, value] of Object.entries(source as Record<string, any>)) {\n if (!columns.has(key) && !(key in entity)) {\n (entity as Record<string, any>)[key] = value;\n }\n }\n }\n\n // ------------------------------------------------------------------------------\n\n async saveOneWithEA<E extends Record<string, any>>(\n input: T & E,\n attributes?: E,\n options?: EARepositorySaveOptions<T>,\n ): Promise<T & E> {\n return this.adapter.saveWithEA(input, attributes, options);\n }\n\n // ------------------------------------------------------------------------------\n\n async findOneWithEA(\n options: FindOneOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<T | undefined> {\n return this.adapter.findOneWithEA(options, extraOptions);\n }\n\n async findOneWithEAByPrimaryColumn<E extends Record<string, any>>(\n value: T[keyof T],\n extraOptions?: EARepositoryFindOptions,\n ): Promise<E> {\n return this.adapter.findOneWithEAByPrimaryColumn(value, extraOptions);\n }\n\n async findManyWithEA<\n E extends Record<string, any>,\n >(\n options: FindManyOptions<T>,\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<(T & E)[]> {\n return this.adapter.findWithEA(options, extraOptions);\n }\n\n // ------------------------------------------------------------------------------\n\n async extendOneWithEA<E extends Record<string, any>>(\n entity: T,\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<T & E> {\n const [output] = await this.extendManyWithEA([entity], extraOptions);\n\n return output as (T & E);\n }\n\n async extendManyWithEA<E extends Record<string, any>>(\n entities: T[],\n extraOptions: EARepositoryFindOptions = {},\n ): Promise<(T & E)[]> {\n return this.adapter.extendManyWithEA(entities, extraOptions);\n }\n\n // -------------------------------------------------------------------------------\n\n async findRoots(options?: FindTreeOptions): Promise<T[]> {\n const entities = await super.findRoots(options);\n\n await this.extendManyWithEA(entities);\n\n return entities;\n }\n\n async findDescendantsTree(\n entity: T,\n options?: FindTreeOptions,\n ): Promise<T> {\n const qb: SelectQueryBuilder<T> = this.createDescendantsQueryBuilder(\n 'treeEntity',\n 'treeClosure',\n entity,\n );\n FindOptionsUtils.applyOptionsToTreeQueryBuilder(qb, options);\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = TreeRepositoryUtils.createRelationMaps(\n this.manager,\n this.metadata,\n 'treeEntity',\n entities.raw,\n );\n\n await this.extendManyWithEA(entities.entities);\n\n TreeRepositoryUtils.buildChildrenEntityTree(\n this.metadata,\n entity,\n entities.entities,\n relationMaps,\n {\n depth: -1,\n ...options,\n },\n );\n\n // The descendants closure may include the root, but `entity` here is a\n // different reference than the one in `entities.entities`, so its own EA\n // fields are not populated. Load them explicitly so leaf-as-root callers\n // (e.g. policies bound directly to permissions/junctions) see EA.\n await this.extendOneWithEA(entity);\n\n return entity;\n }\n\n async findAncestors(\n entity: T,\n options?: FindTreeOptions,\n ): Promise<T[]> {\n const entities = await super.findAncestors(entity, options);\n\n await this.extendManyWithEA(entities);\n\n return entities;\n }\n\n // -------------------------------------------------------------------------------\n\n async findAncestorsTree(\n entity: T,\n options?: FindTreeOptions,\n ): Promise<T> {\n const qb = this.createAncestorsQueryBuilder(\n 'treeEntity',\n 'treeClosure',\n entity,\n );\n FindOptionsUtils.applyOptionsToTreeQueryBuilder(qb, options);\n\n const entities = await qb.getRawAndEntities();\n const relationMaps = TreeRepositoryUtils.createRelationMaps(\n this.manager,\n this.metadata,\n 'treeEntity',\n entities.raw,\n );\n\n await this.extendManyWithEA(entities.entities);\n\n TreeRepositoryUtils.buildParentEntityTree(\n this.metadata,\n entity,\n entities.entities,\n relationMaps,\n );\n return entity;\n }\n\n // -------------------------------------------------------------------------------\n\n async updateClosureTable(entity: T, manager?: EntityManager) {\n const primaryKeyValue = this.metadata.primaryColumns[0].getEntityValue(entity);\n if (!primaryKeyValue) {\n return;\n }\n\n const closureTable = this.metadata.closureJunctionTable;\n if (!closureTable) {\n return;\n }\n\n if (manager) {\n await this.executeClosureTableUpdate(entity, manager);\n } else {\n await this.manager.connection.transaction(async (manager) => {\n await this.executeClosureTableUpdate(entity, manager);\n });\n }\n }\n\n private async executeClosureTableUpdate(entity: T, manager: EntityManager) {\n const primaryKeyValue = this.metadata.primaryColumns[0].getEntityValue(entity);\n\n const { tableName } = this.metadata.closureJunctionTable;\n const ancestorColumn = this.metadata.closureJunctionTable.ancestorColumns[0];\n const descendantColumn = this.metadata.closureJunctionTable.descendantColumns[0];\n\n const param = (index: number) => manager.connection.driver.createParameter(`p${index}`, index);\n\n // 1. Get All ancestors of current entity\n const ancestors = await manager.query<Record<string, any>[]>(\n `SELECT *\n FROM ${tableName}\n WHERE ${ancestorColumn.databasePath} != ${descendantColumn.databasePath} AND\n ${descendantColumn.databasePath} = ${param(0)} AND\n ${ancestorColumn.databasePath} != ${param(1)}`,\n [primaryKeyValue, primaryKeyValue],\n );\n\n if (!this.metadata.treeParentRelation) {\n return;\n }\n\n const parentId = this.metadata.treeParentRelation.joinColumns[0].getEntityValue(entity);\n\n let ancestorIds : string[];\n if (parentId) {\n ancestorIds = [\n parentId,\n ...ancestors\n .filter((ancestor) => ancestor[ancestorColumn.databasePath] !== parentId)\n .map((ancestor) => ancestor[ancestorColumn.databasePath]),\n ];\n } else {\n ancestorIds = ancestors.map((ancestor) => ancestor[ancestorColumn.databasePath]);\n }\n\n if (ancestorIds.length === 0) {\n return;\n }\n\n // 2. Get All descendants of current entity.\n const descendants = await manager.query<Record<string, any>[]>(\n `SELECT *\n FROM ${tableName}\n WHERE ${ancestorColumn.databasePath} != ${descendantColumn.databasePath} AND\n ${ancestorColumn.databasePath} = ${param(0)} AND\n ${descendantColumn.databasePath} != ${param(1)}`,\n [primaryKeyValue, primaryKeyValue],\n );\n\n if (parentId) {\n // 3. get all descendant\n const descendantIds = descendants\n .map((descendant) => descendant[descendantColumn.databasePath]);\n\n if (descendantIds.length > 0) {\n // 4. get all ancestors of each descendant\n const placeholders = descendantIds.map((_, i) => param(i + 1)).join(',');\n const ancestorsOfDescendants = await manager.query<Record<string, any>[]>(\n `SELECT *\n FROM ${tableName}\n WHERE\n ${ancestorColumn.databasePath} != ${param(0)} AND\n ${ancestorColumn.databasePath} != ${descendantColumn.databasePath} AND\n ${descendantColumn.databasePath} IN (${placeholders})`,\n [primaryKeyValue, ...descendantIds],\n );\n\n const acc = ancestorsOfDescendants.reduce((acc, curr) => {\n if (!acc[curr[descendantColumn.databasePath]]) {\n acc[curr[descendantColumn.databasePath]] = [];\n }\n\n acc[curr[descendantColumn.databasePath]].push(curr[ancestorColumn.databasePath]);\n return acc;\n }, {} as Record<string, string[]>);\n\n // 5. Check if for each child a relation exists with each ancestor (create if not exist)\n for (const descendant of descendantIds) {\n const ancestorsOfDescendent = acc[descendant] ?? [];\n\n for (const ancestorId of ancestorIds) {\n const index = ancestorsOfDescendent.indexOf(ancestorId);\n if (index === -1) {\n await manager.query(\n `INSERT INTO ${tableName}\n (${ancestorColumn.databasePath}, ${descendantColumn.databasePath})\n VALUES (${param(0)}, ${param(1)})`,\n [ancestorId, descendant],\n );\n }\n }\n }\n }\n } else {\n const descendantIds = [\n primaryKeyValue,\n ...descendants.map((descendant) => descendant[descendantColumn.databasePath]),\n ];\n\n for (const ancestorId of ancestorIds) {\n for (const descendantId of descendantIds) {\n await manager.query(\n `DELETE FROM ${tableName}\n WHERE ${ancestorColumn.databasePath} = ${param(0)}\n AND ${descendantColumn.databasePath} = ${param(1)}`,\n [ancestorId, descendantId],\n );\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -64,11 +64,11 @@ import { UserPermissionSubscriber } from "./domains/user-permission/subscriber.m
|
|
|
64
64
|
import { UserRoleEntity } from "./domains/user-role/entity.mjs";
|
|
65
65
|
import { UserRoleSubscriber } from "./domains/user-role/subscriber.mjs";
|
|
66
66
|
import "./domains/index.mjs";
|
|
67
|
+
import { DatabaseConflictError } from "./errors/conflict.mjs";
|
|
68
|
+
import { getDatabaseDriverErrorCode, isForeignKeyConstraintDatabaseError, isUniqueConstraintDatabaseError } from "./errors/driver.mjs";
|
|
69
|
+
import "./errors/index.mjs";
|
|
67
70
|
import { DatabaseQueryResultCache } from "./cache/module.mjs";
|
|
68
71
|
import "./cache/index.mjs";
|
|
69
72
|
import { DataSourceOptionsBuilder } from "./data-source/options/module.mjs";
|
|
70
73
|
import "./data-source/index.mjs";
|
|
71
|
-
import { DatabaseConflictError } from "./errors/conflict.mjs";
|
|
72
|
-
import { getDatabaseDriverErrorCode, isForeignKeyConstraintDatabaseError, isUniqueConstraintDatabaseError } from "./errors/driver.mjs";
|
|
73
|
-
import "./errors/index.mjs";
|
|
74
74
|
export { CachePrefix, ClientEntity, ClientPermissionEntity, ClientPermissionSubscriber, ClientRoleEntity, ClientRoleSubscriber, ClientScopeEntity, ClientScopeSubscriber, ClientSubscriber, ConsentEntity, ConsentEntitySubscriber, DataSourceOptionsBuilder, DatabaseConflictError, DatabaseQueryResultCache, EntitySubscriber, EventEntity, IdentityProviderAccountEntity, IdentityProviderAccountSubscriber, IdentityProviderAttributeEntity, IdentityProviderAttributeMappingEntity, IdentityProviderAttributeSubscriber, IdentityProviderEntity, IdentityProviderPermissionMappingEntity, IdentityProviderRepository, IdentityProviderRoleMappingEntity, IdentityProviderRoleSubscriber, IdentityProviderSubscriber, KeyEntity, PermissionEntity, PermissionPolicyEntity, PermissionSubscriber, PolicyAttributeEntity, PolicyAttributeSubscriber, PolicyEntity, PolicyRepository, PolicySubscriber, RealmEntity, RealmRepository, RealmSubscriber, RoleAttributeEntity, RoleAttributeSubscriber, RoleEntity, RolePermissionEntity, RolePermissionSubscriber, RoleRepository, RoleSubscriber, ScopeEntity, ScopeSubscriber, SessionEntity, SessionTokenEntity, TrustAnchorEntity, UserAttributeEntity, UserAttributeSubscriber, UserAuthenticatorEntity, UserEntity, UserPermissionEntity, UserPermissionSubscriber, UserRepository, UserRoleEntity, UserRoleSubscriber, UserSubscriber, buildEntityDestinations, dateToISOStringTransformer, getDatabaseDriverErrorCode, isDatabaseTypeRowLockable, isDatabaseTypeSupported, isDatabaseTypeSupportedForEnvironment, isForeignKeyConstraintDatabaseError, isUniqueConstraintDatabaseError };
|
package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The beta.64 release window, folded into one migration per dialect.
|
|
3
|
+
*
|
|
4
|
+
* ## `auth_sessions.secret` (plan 088 Stage 1: the console session credential)
|
|
5
|
+
*
|
|
6
|
+
* The opaque value a console browser presents in the `authup_session` cookie.
|
|
7
|
+
* It is NOT the session id: that id is published as the `sid` claim in every
|
|
8
|
+
* id_token and in every `/sessions` row, so it is a public identifier and
|
|
9
|
+
* cannot double as a credential. This column is the secret half.
|
|
10
|
+
*
|
|
11
|
+
* Nullable because every bearer-mode session has none, and unique so one value
|
|
12
|
+
* resolves at most one session. The entity additionally marks it
|
|
13
|
+
* `select: false`, so it is re-selected only by `findOneBySecret` and never on
|
|
14
|
+
* an ordinary session read.
|
|
15
|
+
*
|
|
16
|
+
* ## `auth_users.email_verified` (issue #3519: the OIDC claim gets a column)
|
|
17
|
+
*
|
|
18
|
+
* The claim was mapped onto `auth_users.active`, which is the account's
|
|
19
|
+
* enable flag and carries no statement about the address. It was wrong in
|
|
20
|
+
* both directions: registration sets `active` outright when email
|
|
21
|
+
* verification is off (the default), and a federated or provisioned user is
|
|
22
|
+
* created active with a synthesized `<name>@example.com`, so authup asserted
|
|
23
|
+
* a verified address nobody had ever received mail at; conversely an admin
|
|
24
|
+
* deactivating a user who DID complete activation flipped the claim back to
|
|
25
|
+
* false.
|
|
26
|
+
*
|
|
27
|
+
* NOT NULL DEFAULT false, so the ALTER backfills every existing row itself.
|
|
28
|
+
* False is the only safe backfill: `activate_hash` is null both after a
|
|
29
|
+
* completed activation and for a user who was never asked to verify, so the
|
|
30
|
+
* two states are indistinguishable and no row can be proven verified. An
|
|
31
|
+
* operator repairs a known-good address through the API. The column is
|
|
32
|
+
* admin-settable, and denied on the self-edit path by
|
|
33
|
+
* `system.user-names-self-manage`.
|
|
34
|
+
*
|
|
35
|
+
* ## `auth_clients` columns (issue #3355 and plan 064 Stage 1)
|
|
36
|
+
*
|
|
37
|
+
* `scope` was a text copy of the client's scope list that nothing has read
|
|
38
|
+
* since #3354: `/authorize` grants exactly the scopes bound in
|
|
39
|
+
* `auth_client_scopes`, so a value here never granted anything. `root_url`
|
|
40
|
+
* was stored and never resolved against anything. Both drop WITH their data;
|
|
41
|
+
* the generated down() re-adds them empty, and
|
|
42
|
+
* `docs/src/guide/deployment/upgrading.md` carries the export query for an
|
|
43
|
+
* operator who set either.
|
|
44
|
+
*
|
|
45
|
+
* `backchannel_logout_uri` is the one absolute http(s) URL Authup POSTs a
|
|
46
|
+
* signed `logout_token` to when a session the client received tokens for is
|
|
47
|
+
* revoked (OIDC Back-Channel Logout 1.0). Nullable with no default, so every
|
|
48
|
+
* existing row and every provisioned system client starts with no push.
|
|
49
|
+
*/
|
|
50
|
+
import type { MigrationInterface, QueryRunner } from 'typeorm';
|
|
51
|
+
export declare class SessionUserAndClientColumns1787571998009 implements MigrationInterface {
|
|
52
|
+
name: string;
|
|
53
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
54
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=1787571998009-SessionUserAndClientColumns.d.ts.map
|
package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1787571998009-SessionUserAndClientColumns.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,wCAAyC,YAAW,kBAAkB;IAC/E,IAAI,SAA8C;IAErC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB7D"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
//#region src/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.ts
|
|
5
|
+
/**
|
|
6
|
+
* The beta.64 release window, folded into one migration per dialect.
|
|
7
|
+
*
|
|
8
|
+
* ## `auth_sessions.secret` (plan 088 Stage 1: the console session credential)
|
|
9
|
+
*
|
|
10
|
+
* The opaque value a console browser presents in the `authup_session` cookie.
|
|
11
|
+
* It is NOT the session id: that id is published as the `sid` claim in every
|
|
12
|
+
* id_token and in every `/sessions` row, so it is a public identifier and
|
|
13
|
+
* cannot double as a credential. This column is the secret half.
|
|
14
|
+
*
|
|
15
|
+
* Nullable because every bearer-mode session has none, and unique so one value
|
|
16
|
+
* resolves at most one session. The entity additionally marks it
|
|
17
|
+
* `select: false`, so it is re-selected only by `findOneBySecret` and never on
|
|
18
|
+
* an ordinary session read.
|
|
19
|
+
*
|
|
20
|
+
* ## `auth_users.email_verified` (issue #3519: the OIDC claim gets a column)
|
|
21
|
+
*
|
|
22
|
+
* The claim was mapped onto `auth_users.active`, which is the account's
|
|
23
|
+
* enable flag and carries no statement about the address. It was wrong in
|
|
24
|
+
* both directions: registration sets `active` outright when email
|
|
25
|
+
* verification is off (the default), and a federated or provisioned user is
|
|
26
|
+
* created active with a synthesized `<name>@example.com`, so authup asserted
|
|
27
|
+
* a verified address nobody had ever received mail at; conversely an admin
|
|
28
|
+
* deactivating a user who DID complete activation flipped the claim back to
|
|
29
|
+
* false.
|
|
30
|
+
*
|
|
31
|
+
* NOT NULL DEFAULT false, so the ALTER backfills every existing row itself.
|
|
32
|
+
* False is the only safe backfill: `activate_hash` is null both after a
|
|
33
|
+
* completed activation and for a user who was never asked to verify, so the
|
|
34
|
+
* two states are indistinguishable and no row can be proven verified. An
|
|
35
|
+
* operator repairs a known-good address through the API. The column is
|
|
36
|
+
* admin-settable, and denied on the self-edit path by
|
|
37
|
+
* `system.user-names-self-manage`.
|
|
38
|
+
*
|
|
39
|
+
* ## `auth_clients` columns (issue #3355 and plan 064 Stage 1)
|
|
40
|
+
*
|
|
41
|
+
* `scope` was a text copy of the client's scope list that nothing has read
|
|
42
|
+
* since #3354: `/authorize` grants exactly the scopes bound in
|
|
43
|
+
* `auth_client_scopes`, so a value here never granted anything. `root_url`
|
|
44
|
+
* was stored and never resolved against anything. Both drop WITH their data;
|
|
45
|
+
* the generated down() re-adds them empty, and
|
|
46
|
+
* `docs/src/guide/deployment/upgrading.md` carries the export query for an
|
|
47
|
+
* operator who set either.
|
|
48
|
+
*
|
|
49
|
+
* `backchannel_logout_uri` is the one absolute http(s) URL Authup POSTs a
|
|
50
|
+
* signed `logout_token` to when a session the client received tokens for is
|
|
51
|
+
* revoked (OIDC Back-Channel Logout 1.0). Nullable with no default, so every
|
|
52
|
+
* existing row and every provisioned system client starts with no push.
|
|
53
|
+
*/ var SessionUserAndClientColumns1787571998009 = class {
|
|
54
|
+
name = "SessionUserAndClientColumns1787571998009";
|
|
55
|
+
async up(queryRunner) {
|
|
56
|
+
await queryRunner.query(`
|
|
57
|
+
ALTER TABLE \`auth_sessions\`
|
|
58
|
+
ADD \`secret\` varchar(64) NULL
|
|
59
|
+
`);
|
|
60
|
+
await queryRunner.query(`
|
|
61
|
+
ALTER TABLE \`auth_sessions\`
|
|
62
|
+
ADD UNIQUE INDEX \`IDX_833c743f7cd787dfc8b70ba400\` (\`secret\`)
|
|
63
|
+
`);
|
|
64
|
+
await queryRunner.query(`
|
|
65
|
+
ALTER TABLE \`auth_users\`
|
|
66
|
+
ADD \`email_verified\` tinyint NOT NULL DEFAULT 0
|
|
67
|
+
`);
|
|
68
|
+
await queryRunner.query(`
|
|
69
|
+
ALTER TABLE \`auth_clients\` DROP COLUMN \`root_url\`
|
|
70
|
+
`);
|
|
71
|
+
await queryRunner.query(`
|
|
72
|
+
ALTER TABLE \`auth_clients\` DROP COLUMN \`scope\`
|
|
73
|
+
`);
|
|
74
|
+
await queryRunner.query(`
|
|
75
|
+
ALTER TABLE \`auth_clients\`
|
|
76
|
+
ADD \`backchannel_logout_uri\` varchar(2000) NULL
|
|
77
|
+
`);
|
|
78
|
+
}
|
|
79
|
+
async down(queryRunner) {
|
|
80
|
+
await queryRunner.query(`
|
|
81
|
+
ALTER TABLE \`auth_clients\` DROP COLUMN \`backchannel_logout_uri\`
|
|
82
|
+
`);
|
|
83
|
+
await queryRunner.query(`
|
|
84
|
+
ALTER TABLE \`auth_clients\`
|
|
85
|
+
ADD \`scope\` varchar(512) NULL
|
|
86
|
+
`);
|
|
87
|
+
await queryRunner.query(`
|
|
88
|
+
ALTER TABLE \`auth_clients\`
|
|
89
|
+
ADD \`root_url\` varchar(2000) NULL
|
|
90
|
+
`);
|
|
91
|
+
await queryRunner.query(`
|
|
92
|
+
ALTER TABLE \`auth_users\` DROP COLUMN \`email_verified\`
|
|
93
|
+
`);
|
|
94
|
+
await queryRunner.query(`
|
|
95
|
+
ALTER TABLE \`auth_sessions\` DROP INDEX \`IDX_833c743f7cd787dfc8b70ba400\`
|
|
96
|
+
`);
|
|
97
|
+
await queryRunner.query(`
|
|
98
|
+
ALTER TABLE \`auth_sessions\` DROP COLUMN \`secret\`
|
|
99
|
+
`);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
//#endregion
|
|
103
|
+
export { SessionUserAndClientColumns1787571998009 };
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=1787571998009-SessionUserAndClientColumns.mjs.map
|
package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1787571998009-SessionUserAndClientColumns.mjs","names":["SessionUserAndClientColumns1787571998009","name","up","queryRunner","query","down"],"sources":["../../../../../src/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.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 * The beta.64 release window, folded into one migration per dialect.\n *\n * ## `auth_sessions.secret` (plan 088 Stage 1: the console session credential)\n *\n * The opaque value a console browser presents in the `authup_session` cookie.\n * It is NOT the session id: that id is published as the `sid` claim in every\n * id_token and in every `/sessions` row, so it is a public identifier and\n * cannot double as a credential. This column is the secret half.\n *\n * Nullable because every bearer-mode session has none, and unique so one value\n * resolves at most one session. The entity additionally marks it\n * `select: false`, so it is re-selected only by `findOneBySecret` and never on\n * an ordinary session read.\n *\n * ## `auth_users.email_verified` (issue #3519: the OIDC claim gets a column)\n *\n * The claim was mapped onto `auth_users.active`, which is the account's\n * enable flag and carries no statement about the address. It was wrong in\n * both directions: registration sets `active` outright when email\n * verification is off (the default), and a federated or provisioned user is\n * created active with a synthesized `<name>@example.com`, so authup asserted\n * a verified address nobody had ever received mail at; conversely an admin\n * deactivating a user who DID complete activation flipped the claim back to\n * false.\n *\n * NOT NULL DEFAULT false, so the ALTER backfills every existing row itself.\n * False is the only safe backfill: `activate_hash` is null both after a\n * completed activation and for a user who was never asked to verify, so the\n * two states are indistinguishable and no row can be proven verified. An\n * operator repairs a known-good address through the API. The column is\n * admin-settable, and denied on the self-edit path by\n * `system.user-names-self-manage`.\n *\n * ## `auth_clients` columns (issue #3355 and plan 064 Stage 1)\n *\n * `scope` was a text copy of the client's scope list that nothing has read\n * since #3354: `/authorize` grants exactly the scopes bound in\n * `auth_client_scopes`, so a value here never granted anything. `root_url`\n * was stored and never resolved against anything. Both drop WITH their data;\n * the generated down() re-adds them empty, and\n * `docs/src/guide/deployment/upgrading.md` carries the export query for an\n * operator who set either.\n *\n * `backchannel_logout_uri` is the one absolute http(s) URL Authup POSTs a\n * signed `logout_token` to when a session the client received tokens for is\n * revoked (OIDC Back-Channel Logout 1.0). Nullable with no default, so every\n * existing row and every provisioned system client starts with no push.\n */\nimport type { MigrationInterface, QueryRunner } from 'typeorm';\n\nexport class SessionUserAndClientColumns1787571998009 implements MigrationInterface {\n name = 'SessionUserAndClientColumns1787571998009';\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n ALTER TABLE \\`auth_sessions\\`\n ADD \\`secret\\` varchar(64) NULL\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_sessions\\`\n ADD UNIQUE INDEX \\`IDX_833c743f7cd787dfc8b70ba400\\` (\\`secret\\`)\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_users\\`\n ADD \\`email_verified\\` tinyint NOT NULL DEFAULT 0\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_clients\\` DROP COLUMN \\`root_url\\`\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_clients\\` DROP COLUMN \\`scope\\`\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_clients\\`\n ADD \\`backchannel_logout_uri\\` varchar(2000) NULL\n `);\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n ALTER TABLE \\`auth_clients\\` DROP COLUMN \\`backchannel_logout_uri\\`\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_clients\\`\n ADD \\`scope\\` varchar(512) NULL\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_clients\\`\n ADD \\`root_url\\` varchar(2000) NULL\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_users\\` DROP COLUMN \\`email_verified\\`\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_sessions\\` DROP INDEX \\`IDX_833c743f7cd787dfc8b70ba400\\`\n `);\n await queryRunner.query(`\n ALTER TABLE \\`auth_sessions\\` DROP COLUMN \\`secret\\`\n `);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DA,IAAaA,2CAAb,MAAaA;CACTC,OAAO;CAEP,MAAaC,GAAGC,aAAyC;EACrD,MAAMA,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;CACL;CAEA,MAAaC,KAAKF,aAAyC;EACvD,MAAMA,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;CACL;AACJ"}
|
package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The beta.64 release window, folded into one migration per dialect.
|
|
3
|
+
*
|
|
4
|
+
* ## `auth_sessions.secret` (plan 088 Stage 1: the console session credential)
|
|
5
|
+
*
|
|
6
|
+
* The opaque value a console browser presents in the `authup_session` cookie.
|
|
7
|
+
* It is NOT the session id: that id is published as the `sid` claim in every
|
|
8
|
+
* id_token and in every `/sessions` row, so it is a public identifier and
|
|
9
|
+
* cannot double as a credential. This column is the secret half.
|
|
10
|
+
*
|
|
11
|
+
* Nullable because every bearer-mode session has none, and unique so one value
|
|
12
|
+
* resolves at most one session. The entity additionally marks it
|
|
13
|
+
* `select: false`, so it is re-selected only by `findOneBySecret` and never on
|
|
14
|
+
* an ordinary session read.
|
|
15
|
+
*
|
|
16
|
+
* ## `auth_users.email_verified` (issue #3519: the OIDC claim gets a column)
|
|
17
|
+
*
|
|
18
|
+
* The claim was mapped onto `auth_users.active`, which is the account's
|
|
19
|
+
* enable flag and carries no statement about the address. It was wrong in
|
|
20
|
+
* both directions: registration sets `active` outright when email
|
|
21
|
+
* verification is off (the default), and a federated or provisioned user is
|
|
22
|
+
* created active with a synthesized `<name>@example.com`, so authup asserted
|
|
23
|
+
* a verified address nobody had ever received mail at; conversely an admin
|
|
24
|
+
* deactivating a user who DID complete activation flipped the claim back to
|
|
25
|
+
* false.
|
|
26
|
+
*
|
|
27
|
+
* NOT NULL DEFAULT false, so the ALTER backfills every existing row itself.
|
|
28
|
+
* False is the only safe backfill: `activate_hash` is null both after a
|
|
29
|
+
* completed activation and for a user who was never asked to verify, so the
|
|
30
|
+
* two states are indistinguishable and no row can be proven verified. An
|
|
31
|
+
* operator repairs a known-good address through the API. The column is
|
|
32
|
+
* admin-settable, and denied on the self-edit path by
|
|
33
|
+
* `system.user-names-self-manage`.
|
|
34
|
+
*
|
|
35
|
+
* ## `auth_clients` columns (issue #3355 and plan 064 Stage 1)
|
|
36
|
+
*
|
|
37
|
+
* `scope` was a text copy of the client's scope list that nothing has read
|
|
38
|
+
* since #3354: `/authorize` grants exactly the scopes bound in
|
|
39
|
+
* `auth_client_scopes`, so a value here never granted anything. `root_url`
|
|
40
|
+
* was stored and never resolved against anything. Both drop WITH their data;
|
|
41
|
+
* the generated down() re-adds them empty, and
|
|
42
|
+
* `docs/src/guide/deployment/upgrading.md` carries the export query for an
|
|
43
|
+
* operator who set either.
|
|
44
|
+
*
|
|
45
|
+
* `backchannel_logout_uri` is the one absolute http(s) URL Authup POSTs a
|
|
46
|
+
* signed `logout_token` to when a session the client received tokens for is
|
|
47
|
+
* revoked (OIDC Back-Channel Logout 1.0). Nullable with no default, so every
|
|
48
|
+
* existing row and every provisioned system client starts with no push.
|
|
49
|
+
*/
|
|
50
|
+
import type { MigrationInterface, QueryRunner } from 'typeorm';
|
|
51
|
+
export declare class SessionUserAndClientColumns1787571998009 implements MigrationInterface {
|
|
52
|
+
name: string;
|
|
53
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
54
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=1787571998009-SessionUserAndClientColumns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1787571998009-SessionUserAndClientColumns.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,wCAAyC,YAAW,kBAAkB;IAC/E,IAAI,SAA8C;IAErC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB7D"}
|
package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
//#region src/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.ts
|
|
5
|
+
/**
|
|
6
|
+
* The beta.64 release window, folded into one migration per dialect.
|
|
7
|
+
*
|
|
8
|
+
* ## `auth_sessions.secret` (plan 088 Stage 1: the console session credential)
|
|
9
|
+
*
|
|
10
|
+
* The opaque value a console browser presents in the `authup_session` cookie.
|
|
11
|
+
* It is NOT the session id: that id is published as the `sid` claim in every
|
|
12
|
+
* id_token and in every `/sessions` row, so it is a public identifier and
|
|
13
|
+
* cannot double as a credential. This column is the secret half.
|
|
14
|
+
*
|
|
15
|
+
* Nullable because every bearer-mode session has none, and unique so one value
|
|
16
|
+
* resolves at most one session. The entity additionally marks it
|
|
17
|
+
* `select: false`, so it is re-selected only by `findOneBySecret` and never on
|
|
18
|
+
* an ordinary session read.
|
|
19
|
+
*
|
|
20
|
+
* ## `auth_users.email_verified` (issue #3519: the OIDC claim gets a column)
|
|
21
|
+
*
|
|
22
|
+
* The claim was mapped onto `auth_users.active`, which is the account's
|
|
23
|
+
* enable flag and carries no statement about the address. It was wrong in
|
|
24
|
+
* both directions: registration sets `active` outright when email
|
|
25
|
+
* verification is off (the default), and a federated or provisioned user is
|
|
26
|
+
* created active with a synthesized `<name>@example.com`, so authup asserted
|
|
27
|
+
* a verified address nobody had ever received mail at; conversely an admin
|
|
28
|
+
* deactivating a user who DID complete activation flipped the claim back to
|
|
29
|
+
* false.
|
|
30
|
+
*
|
|
31
|
+
* NOT NULL DEFAULT false, so the ALTER backfills every existing row itself.
|
|
32
|
+
* False is the only safe backfill: `activate_hash` is null both after a
|
|
33
|
+
* completed activation and for a user who was never asked to verify, so the
|
|
34
|
+
* two states are indistinguishable and no row can be proven verified. An
|
|
35
|
+
* operator repairs a known-good address through the API. The column is
|
|
36
|
+
* admin-settable, and denied on the self-edit path by
|
|
37
|
+
* `system.user-names-self-manage`.
|
|
38
|
+
*
|
|
39
|
+
* ## `auth_clients` columns (issue #3355 and plan 064 Stage 1)
|
|
40
|
+
*
|
|
41
|
+
* `scope` was a text copy of the client's scope list that nothing has read
|
|
42
|
+
* since #3354: `/authorize` grants exactly the scopes bound in
|
|
43
|
+
* `auth_client_scopes`, so a value here never granted anything. `root_url`
|
|
44
|
+
* was stored and never resolved against anything. Both drop WITH their data;
|
|
45
|
+
* the generated down() re-adds them empty, and
|
|
46
|
+
* `docs/src/guide/deployment/upgrading.md` carries the export query for an
|
|
47
|
+
* operator who set either.
|
|
48
|
+
*
|
|
49
|
+
* `backchannel_logout_uri` is the one absolute http(s) URL Authup POSTs a
|
|
50
|
+
* signed `logout_token` to when a session the client received tokens for is
|
|
51
|
+
* revoked (OIDC Back-Channel Logout 1.0). Nullable with no default, so every
|
|
52
|
+
* existing row and every provisioned system client starts with no push.
|
|
53
|
+
*/ var SessionUserAndClientColumns1787571998009 = class {
|
|
54
|
+
name = "SessionUserAndClientColumns1787571998009";
|
|
55
|
+
async up(queryRunner) {
|
|
56
|
+
await queryRunner.query(`
|
|
57
|
+
ALTER TABLE "auth_sessions"
|
|
58
|
+
ADD "secret" character varying(64)
|
|
59
|
+
`);
|
|
60
|
+
await queryRunner.query(`
|
|
61
|
+
CREATE UNIQUE INDEX "IDX_833c743f7cd787dfc8b70ba400" ON "auth_sessions" ("secret")
|
|
62
|
+
`);
|
|
63
|
+
await queryRunner.query(`
|
|
64
|
+
ALTER TABLE "auth_users"
|
|
65
|
+
ADD "email_verified" boolean NOT NULL DEFAULT false
|
|
66
|
+
`);
|
|
67
|
+
await queryRunner.query(`
|
|
68
|
+
ALTER TABLE "auth_clients" DROP COLUMN "scope"
|
|
69
|
+
`);
|
|
70
|
+
await queryRunner.query(`
|
|
71
|
+
ALTER TABLE "auth_clients" DROP COLUMN "root_url"
|
|
72
|
+
`);
|
|
73
|
+
await queryRunner.query(`
|
|
74
|
+
ALTER TABLE "auth_clients"
|
|
75
|
+
ADD "backchannel_logout_uri" character varying(2000)
|
|
76
|
+
`);
|
|
77
|
+
}
|
|
78
|
+
async down(queryRunner) {
|
|
79
|
+
await queryRunner.query(`
|
|
80
|
+
ALTER TABLE "auth_clients" DROP COLUMN "backchannel_logout_uri"
|
|
81
|
+
`);
|
|
82
|
+
await queryRunner.query(`
|
|
83
|
+
ALTER TABLE "auth_clients"
|
|
84
|
+
ADD "root_url" character varying(2000)
|
|
85
|
+
`);
|
|
86
|
+
await queryRunner.query(`
|
|
87
|
+
ALTER TABLE "auth_clients"
|
|
88
|
+
ADD "scope" character varying(512)
|
|
89
|
+
`);
|
|
90
|
+
await queryRunner.query(`
|
|
91
|
+
ALTER TABLE "auth_users" DROP COLUMN "email_verified"
|
|
92
|
+
`);
|
|
93
|
+
await queryRunner.query(`
|
|
94
|
+
DROP INDEX "public"."IDX_833c743f7cd787dfc8b70ba400"
|
|
95
|
+
`);
|
|
96
|
+
await queryRunner.query(`
|
|
97
|
+
ALTER TABLE "auth_sessions" DROP COLUMN "secret"
|
|
98
|
+
`);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
export { SessionUserAndClientColumns1787571998009 };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=1787571998009-SessionUserAndClientColumns.mjs.map
|
package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1787571998009-SessionUserAndClientColumns.mjs","names":["SessionUserAndClientColumns1787571998009","name","up","queryRunner","query","down"],"sources":["../../../../../src/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.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 * The beta.64 release window, folded into one migration per dialect.\n *\n * ## `auth_sessions.secret` (plan 088 Stage 1: the console session credential)\n *\n * The opaque value a console browser presents in the `authup_session` cookie.\n * It is NOT the session id: that id is published as the `sid` claim in every\n * id_token and in every `/sessions` row, so it is a public identifier and\n * cannot double as a credential. This column is the secret half.\n *\n * Nullable because every bearer-mode session has none, and unique so one value\n * resolves at most one session. The entity additionally marks it\n * `select: false`, so it is re-selected only by `findOneBySecret` and never on\n * an ordinary session read.\n *\n * ## `auth_users.email_verified` (issue #3519: the OIDC claim gets a column)\n *\n * The claim was mapped onto `auth_users.active`, which is the account's\n * enable flag and carries no statement about the address. It was wrong in\n * both directions: registration sets `active` outright when email\n * verification is off (the default), and a federated or provisioned user is\n * created active with a synthesized `<name>@example.com`, so authup asserted\n * a verified address nobody had ever received mail at; conversely an admin\n * deactivating a user who DID complete activation flipped the claim back to\n * false.\n *\n * NOT NULL DEFAULT false, so the ALTER backfills every existing row itself.\n * False is the only safe backfill: `activate_hash` is null both after a\n * completed activation and for a user who was never asked to verify, so the\n * two states are indistinguishable and no row can be proven verified. An\n * operator repairs a known-good address through the API. The column is\n * admin-settable, and denied on the self-edit path by\n * `system.user-names-self-manage`.\n *\n * ## `auth_clients` columns (issue #3355 and plan 064 Stage 1)\n *\n * `scope` was a text copy of the client's scope list that nothing has read\n * since #3354: `/authorize` grants exactly the scopes bound in\n * `auth_client_scopes`, so a value here never granted anything. `root_url`\n * was stored and never resolved against anything. Both drop WITH their data;\n * the generated down() re-adds them empty, and\n * `docs/src/guide/deployment/upgrading.md` carries the export query for an\n * operator who set either.\n *\n * `backchannel_logout_uri` is the one absolute http(s) URL Authup POSTs a\n * signed `logout_token` to when a session the client received tokens for is\n * revoked (OIDC Back-Channel Logout 1.0). Nullable with no default, so every\n * existing row and every provisioned system client starts with no push.\n */\nimport type { MigrationInterface, QueryRunner } from 'typeorm';\n\nexport class SessionUserAndClientColumns1787571998009 implements MigrationInterface {\n name = 'SessionUserAndClientColumns1787571998009';\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n ALTER TABLE \"auth_sessions\"\n ADD \"secret\" character varying(64)\n `);\n await queryRunner.query(`\n CREATE UNIQUE INDEX \"IDX_833c743f7cd787dfc8b70ba400\" ON \"auth_sessions\" (\"secret\")\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_users\"\n ADD \"email_verified\" boolean NOT NULL DEFAULT false\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP COLUMN \"scope\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP COLUMN \"root_url\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\"\n ADD \"backchannel_logout_uri\" character varying(2000)\n `);\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\" DROP COLUMN \"backchannel_logout_uri\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\"\n ADD \"root_url\" character varying(2000)\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_clients\"\n ADD \"scope\" character varying(512)\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_users\" DROP COLUMN \"email_verified\"\n `);\n await queryRunner.query(`\n DROP INDEX \"public\".\"IDX_833c743f7cd787dfc8b70ba400\"\n `);\n await queryRunner.query(`\n ALTER TABLE \"auth_sessions\" DROP COLUMN \"secret\"\n `);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DA,IAAaA,2CAAb,MAAaA;CACTC,OAAO;CAEP,MAAaC,GAAGC,aAAyC;EACrD,MAAMA,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;CACL;CAEA,MAAaC,KAAKF,aAAyC;EACvD,MAAMA,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;;SAGvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;EACD,MAAMD,YAAYC,MAAM;;SAEvB;CACL;AACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { EntityType } from '@authup/core-kit';
|
|
2
2
|
import { EntityDefaultEventName } from '@authup/core-kit';
|
|
3
3
|
import type { DomainEventDestinations, IDomainEventPublisher } from '@authup/server-kit';
|
|
4
|
-
import type { DataSource, EntitySubscriberInterface, InsertEvent, ObjectLiteral, RemoveEvent, UpdateEvent } from 'typeorm';
|
|
4
|
+
import type { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, ObjectLiteral, RemoveEvent, UpdateEvent } from 'typeorm';
|
|
5
5
|
import type { EntitySubscriberContext } from './types.ts';
|
|
6
6
|
export declare function buildEntityDestinations<T extends ObjectLiteral>(type: `${EntityType}`, realmIds?: (data: T) => (string | null | undefined)[]): (data: T) => DomainEventDestinations;
|
|
7
7
|
export declare class EntitySubscriber<T extends ObjectLiteral> implements EntitySubscriberInterface<T> {
|
|
@@ -14,6 +14,10 @@ export declare class EntitySubscriber<T extends ObjectLiteral> implements Entity
|
|
|
14
14
|
afterUpdate(event: UpdateEvent<T>): Promise<any>;
|
|
15
15
|
afterRemove(event: RemoveEvent<T>): Promise<any>;
|
|
16
16
|
protected dropCacheKeys(connection: DataSource, data: T): Promise<void>;
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* `transaction` is the hook's `event.manager`: the after* hooks run inside
|
|
19
|
+
* the persist transaction, so a handler that persists rides it (#3539).
|
|
20
|
+
*/
|
|
21
|
+
protected publish(event: `${EntityDefaultEventName}`, data: T, dataPrevious?: T, transaction?: EntityManager): Promise<void>;
|
|
18
22
|
}
|
|
19
23
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/adapters/database/subscriber/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACH,sBAAsB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EACR,UAAU,EACV,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAC3D,IAAI,EAAE,GAAG,UAAU,EAAE,EACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GACrD,CAAC,IAAI,EAAE,CAAC,KAAK,uBAAuB,CAsBvC;AAED,qBAAa,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAE,YAAW,yBAAyB,CAAC,CAAC,CAAC;IAC1F,SAAS,CAAC,GAAG,EAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,SAAS,CAAC,EAAG,qBAAqB,CAAC;gBAEjC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAK3C,YAAY,CAAC,SAAS,EAAE,qBAAqB,GAAI,IAAI;IAKrD,QAAQ,IAAK,QAAQ,GAAG,MAAM;IAIxB,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAYhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAUhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;cActC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/adapters/database/subscriber/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACH,sBAAsB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EACR,UAAU,EACV,aAAa,EACb,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAC3D,IAAI,EAAE,GAAG,UAAU,EAAE,EACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GACrD,CAAC,IAAI,EAAE,CAAC,KAAK,uBAAuB,CAsBvC;AAED,qBAAa,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAE,YAAW,yBAAyB,CAAC,CAAC,CAAC;IAC1F,SAAS,CAAC,GAAG,EAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,SAAS,CAAC,EAAG,qBAAqB,CAAC;gBAEjC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAK3C,YAAY,CAAC,SAAS,EAAE,qBAAqB,GAAI,IAAI;IAKrD,QAAQ,IAAK,QAAQ,GAAG,MAAM;IAIxB,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAYhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAUhD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;cActC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAI,OAAO,CAAC,IAAI,CAAC;IAQ9E;;;OAGG;cACa,OAAO,CACnB,KAAK,EAAE,GAAG,sBAAsB,EAAE,EAClC,IAAI,EAAE,CAAC,EACP,YAAY,CAAC,EAAE,CAAC,EAChB,WAAW,CAAC,EAAE,aAAa,GAC3B,OAAO,CAAC,IAAI,CAAC;CAgBpB"}
|
|
@@ -36,24 +36,27 @@ var EntitySubscriber = class {
|
|
|
36
36
|
async afterInsert(event) {
|
|
37
37
|
if (!event.entity) return;
|
|
38
38
|
if (this.ctx.cache && this.ctx.cache.onInsert) await this.dropCacheKeys(event.connection, event.entity);
|
|
39
|
-
await this.publish(EntityDefaultEventName.CREATED, event.entity);
|
|
39
|
+
await this.publish(EntityDefaultEventName.CREATED, event.entity, void 0, event.manager);
|
|
40
40
|
}
|
|
41
41
|
async afterUpdate(event) {
|
|
42
42
|
if (!event.entity) return;
|
|
43
43
|
await this.dropCacheKeys(event.connection, event.entity);
|
|
44
|
-
await this.publish(EntityDefaultEventName.UPDATED, event.entity, event.databaseEntity);
|
|
44
|
+
await this.publish(EntityDefaultEventName.UPDATED, event.entity, event.databaseEntity, event.manager);
|
|
45
45
|
}
|
|
46
46
|
async afterRemove(event) {
|
|
47
47
|
const entity = event.databaseEntity ?? event.entity;
|
|
48
48
|
if (!entity) return;
|
|
49
49
|
await this.dropCacheKeys(event.connection, entity);
|
|
50
|
-
await this.publish(EntityDefaultEventName.DELETED, entity);
|
|
50
|
+
await this.publish(EntityDefaultEventName.DELETED, entity, void 0, event.manager);
|
|
51
51
|
}
|
|
52
52
|
async dropCacheKeys(connection, data) {
|
|
53
53
|
if (!this.ctx.cache || !connection.queryResultCache) return;
|
|
54
54
|
await connection.queryResultCache.remove(this.ctx.cache.keys(data));
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
/**
|
|
57
|
+
* `transaction` is the hook's `event.manager`: the after* hooks run inside
|
|
58
|
+
* the persist transaction, so a handler that persists rides it (#3539).
|
|
59
|
+
*/ async publish(event, data, dataPrevious, transaction) {
|
|
57
60
|
if (!this.publisher) return;
|
|
58
61
|
await this.publisher.safePublish({
|
|
59
62
|
content: {
|
|
@@ -62,7 +65,8 @@ var EntitySubscriber = class {
|
|
|
62
65
|
data
|
|
63
66
|
},
|
|
64
67
|
destinations: this.ctx.destinations(data),
|
|
65
|
-
...dataPrevious ? { dataPrevious } : {}
|
|
68
|
+
...dataPrevious ? { dataPrevious } : {},
|
|
69
|
+
transaction
|
|
66
70
|
});
|
|
67
71
|
}
|
|
68
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["EntityDefaultEventName","buildEntityChannelName","buildEntityNamespaceName","buildEntityDestinations","type","realmIds","data","destinations","channel","id","items","seen","Set","realmId","has","add","push","namespace","EntitySubscriber","ctx","publisher","setPublisher","listenTo","target","afterInsert","event","entity","cache","onInsert","dropCacheKeys","connection","publish","CREATED","afterUpdate","UPDATED","databaseEntity","afterRemove","DELETED","queryResultCache","remove","keys","dataPrevious","safePublish","content"],"sources":["../../../../src/adapters/database/subscriber/module.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 { EntityType } from '@authup/core-kit';\nimport {\n EntityDefaultEventName,\n buildEntityChannelName,\n buildEntityNamespaceName,\n} from '@authup/core-kit';\nimport type { DomainEventDestinations, IDomainEventPublisher } from '@authup/server-kit';\nimport type {\n DataSource,\n EntitySubscriberInterface,\n InsertEvent,\n ObjectLiteral,\n RemoveEvent,\n UpdateEvent,\n} from 'typeorm';\nimport type { EntitySubscriberContext } from './types.ts';\n\nexport function buildEntityDestinations<T extends ObjectLiteral>(\n type: `${EntityType}`,\n realmIds?: (data: T) => (string | null | undefined)[],\n) : (data: T) => DomainEventDestinations {\n return (data) => {\n const destinations : DomainEventDestinations = [\n { channel: (id) => buildEntityChannelName(type, id) },\n ];\n\n if (realmIds) {\n const items = realmIds(data);\n const seen = new Set<string>();\n for (const realmId of items) {\n if (realmId && !seen.has(realmId)) {\n seen.add(realmId);\n destinations.push({\n channel: (id) => buildEntityChannelName(type, id),\n namespace: buildEntityNamespaceName(realmId),\n });\n }\n }\n }\n\n return destinations;\n };\n}\n\nexport class EntitySubscriber<T extends ObjectLiteral> implements EntitySubscriberInterface<T> {\n protected ctx : EntitySubscriberContext<T>;\n\n protected publisher? : IDomainEventPublisher;\n\n constructor(ctx: EntitySubscriberContext<T>) {\n this.ctx = ctx;\n this.publisher = ctx.publisher;\n }\n\n setPublisher(publisher: IDomainEventPublisher) : void {\n this.publisher = publisher;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n listenTo() : Function | string {\n return this.ctx.target;\n }\n\n async afterInsert(event: InsertEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n if (this.ctx.cache && this.ctx.cache.onInsert) {\n await this.dropCacheKeys(event.connection, event.entity);\n }\n\n await this.publish(EntityDefaultEventName.CREATED, event.entity);\n }\n\n async afterUpdate(event: UpdateEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, event.entity as T);\n\n await this.publish(EntityDefaultEventName.UPDATED, event.entity as T, event.databaseEntity);\n }\n\n async afterRemove(event: RemoveEvent<T>): Promise<any> {\n // remove() strips the primary key from event.entity before the\n // subscriber runs — databaseEntity is the pre-removal row and keeps\n // the id-keyed cache invalidation (and the DELETED payload) intact.\n const entity = event.databaseEntity ?? event.entity;\n if (!entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, entity);\n\n await this.publish(EntityDefaultEventName.DELETED, entity);\n }\n\n protected async dropCacheKeys(connection: DataSource, data: T) : Promise<void> {\n if (!this.ctx.cache || !connection.queryResultCache) {\n return;\n }\n\n await connection.queryResultCache.remove(this.ctx.cache.keys(data));\n }\n\n protected async publish(\n event: `${EntityDefaultEventName}`,\n data: T,\n dataPrevious?: T,\n ) : Promise<void> {\n if (!this.publisher) {\n return;\n }\n\n await this.publisher.safePublish({\n content: {\n type: this.ctx.type,\n event,\n data,\n },\n destinations: this.ctx.destinations(data),\n ...(dataPrevious ? { dataPrevious } : {}),\n });\n }\n}\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["EntityDefaultEventName","buildEntityChannelName","buildEntityNamespaceName","buildEntityDestinations","type","realmIds","data","destinations","channel","id","items","seen","Set","realmId","has","add","push","namespace","EntitySubscriber","ctx","publisher","setPublisher","listenTo","target","afterInsert","event","entity","cache","onInsert","dropCacheKeys","connection","publish","CREATED","undefined","manager","afterUpdate","UPDATED","databaseEntity","afterRemove","DELETED","queryResultCache","remove","keys","dataPrevious","transaction","safePublish","content"],"sources":["../../../../src/adapters/database/subscriber/module.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 { EntityType } from '@authup/core-kit';\nimport {\n EntityDefaultEventName,\n buildEntityChannelName,\n buildEntityNamespaceName,\n} from '@authup/core-kit';\nimport type { DomainEventDestinations, IDomainEventPublisher } from '@authup/server-kit';\nimport type {\n DataSource,\n EntityManager,\n EntitySubscriberInterface,\n InsertEvent,\n ObjectLiteral,\n RemoveEvent,\n UpdateEvent,\n} from 'typeorm';\nimport type { EntitySubscriberContext } from './types.ts';\n\nexport function buildEntityDestinations<T extends ObjectLiteral>(\n type: `${EntityType}`,\n realmIds?: (data: T) => (string | null | undefined)[],\n) : (data: T) => DomainEventDestinations {\n return (data) => {\n const destinations : DomainEventDestinations = [\n { channel: (id) => buildEntityChannelName(type, id) },\n ];\n\n if (realmIds) {\n const items = realmIds(data);\n const seen = new Set<string>();\n for (const realmId of items) {\n if (realmId && !seen.has(realmId)) {\n seen.add(realmId);\n destinations.push({\n channel: (id) => buildEntityChannelName(type, id),\n namespace: buildEntityNamespaceName(realmId),\n });\n }\n }\n }\n\n return destinations;\n };\n}\n\nexport class EntitySubscriber<T extends ObjectLiteral> implements EntitySubscriberInterface<T> {\n protected ctx : EntitySubscriberContext<T>;\n\n protected publisher? : IDomainEventPublisher;\n\n constructor(ctx: EntitySubscriberContext<T>) {\n this.ctx = ctx;\n this.publisher = ctx.publisher;\n }\n\n setPublisher(publisher: IDomainEventPublisher) : void {\n this.publisher = publisher;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n listenTo() : Function | string {\n return this.ctx.target;\n }\n\n async afterInsert(event: InsertEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n if (this.ctx.cache && this.ctx.cache.onInsert) {\n await this.dropCacheKeys(event.connection, event.entity);\n }\n\n await this.publish(EntityDefaultEventName.CREATED, event.entity, undefined, event.manager);\n }\n\n async afterUpdate(event: UpdateEvent<T>): Promise<any> {\n if (!event.entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, event.entity as T);\n\n await this.publish(EntityDefaultEventName.UPDATED, event.entity as T, event.databaseEntity, event.manager);\n }\n\n async afterRemove(event: RemoveEvent<T>): Promise<any> {\n // remove() strips the primary key from event.entity before the\n // subscriber runs — databaseEntity is the pre-removal row and keeps\n // the id-keyed cache invalidation (and the DELETED payload) intact.\n const entity = event.databaseEntity ?? event.entity;\n if (!entity) {\n return;\n }\n\n await this.dropCacheKeys(event.connection, entity);\n\n await this.publish(EntityDefaultEventName.DELETED, entity, undefined, event.manager);\n }\n\n protected async dropCacheKeys(connection: DataSource, data: T) : Promise<void> {\n if (!this.ctx.cache || !connection.queryResultCache) {\n return;\n }\n\n await connection.queryResultCache.remove(this.ctx.cache.keys(data));\n }\n\n /**\n * `transaction` is the hook's `event.manager`: the after* hooks run inside\n * the persist transaction, so a handler that persists rides it (#3539).\n */\n protected async publish(\n event: `${EntityDefaultEventName}`,\n data: T,\n dataPrevious?: T,\n transaction?: EntityManager,\n ) : Promise<void> {\n if (!this.publisher) {\n return;\n }\n\n await this.publisher.safePublish({\n content: {\n type: this.ctx.type,\n event,\n data,\n },\n destinations: this.ctx.destinations(data),\n ...(dataPrevious ? { dataPrevious } : {}),\n transaction,\n });\n }\n}\n"],"mappings":";;;;;AAyBA,SAAgBG,wBACZC,MACAC,UAAqD;CAErD,QAAQC,SAAAA;EACJ,MAAMC,eAAyC,CAC3C,EAAEC,UAAUC,OAAOR,uBAAuBG,MAAMK,EAAAA,EAAI,CACvD;EAED,IAAIJ,UAAU;GACV,MAAMK,QAAQL,SAASC,IAAAA;GACvB,MAAMK,uBAAO,IAAIC,IAAAA;GACjB,KAAK,MAAMC,WAAWH,OAClB,IAAIG,WAAW,CAACF,KAAKG,IAAID,OAAAA,GAAU;IAC/BF,KAAKI,IAAIF,OAAAA;IACTN,aAAaS,KAAK;KACdR,UAAUC,OAAOR,uBAAuBG,MAAMK,EAAAA;KAC9CQ,WAAWf,yBAAyBW,OAAAA;IACxC,CAAA;GACJ;EAER;EAEA,OAAON;CACX;AACJ;AAEA,IAAaW,mBAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYD,KAAiC;EACzC,KAAKA,MAAMA;EACX,KAAKC,YAAYD,IAAIC;CACzB;CAEAC,aAAaD,WAAyC;EAClD,KAAKA,YAAYA;CACrB;CAGAE,WAA+B;EAC3B,OAAO,KAAKH,IAAII;CACpB;CAEA,MAAMC,YAAYC,OAAqC;EACnD,IAAI,CAACA,MAAMC,QACP;EAGJ,IAAI,KAAKP,IAAIQ,SAAS,KAAKR,IAAIQ,MAAMC,UACjC,MAAM,KAAKC,cAAcJ,MAAMK,YAAYL,MAAMC,MAAM;EAG3D,MAAM,KAAKK,QAAQ/B,uBAAuBgC,SAASP,MAAMC,QAAQO,KAAAA,GAAWR,MAAMS,OAAO;CAC7F;CAEA,MAAMC,YAAYV,OAAqC;EACnD,IAAI,CAACA,MAAMC,QACP;EAGJ,MAAM,KAAKG,cAAcJ,MAAMK,YAAYL,MAAMC,MAAM;EAEvD,MAAM,KAAKK,QAAQ/B,uBAAuBoC,SAASX,MAAMC,QAAaD,MAAMY,gBAAgBZ,MAAMS,OAAO;CAC7G;CAEA,MAAMI,YAAYb,OAAqC;EAInD,MAAMC,SAASD,MAAMY,kBAAkBZ,MAAMC;EAC7C,IAAI,CAACA,QACD;EAGJ,MAAM,KAAKG,cAAcJ,MAAMK,YAAYJ,MAAAA;EAE3C,MAAM,KAAKK,QAAQ/B,uBAAuBuC,SAASb,QAAQO,KAAAA,GAAWR,MAAMS,OAAO;CACvF;CAEA,MAAgBL,cAAcC,YAAwBxB,MAAyB;EAC3E,IAAI,CAAC,KAAKa,IAAIQ,SAAS,CAACG,WAAWU,kBAC/B;EAGJ,MAAMV,WAAWU,iBAAiBC,OAAO,KAAKtB,IAAIQ,MAAMe,KAAKpC,IAAAA,CAAAA;CACjE;;;;IAMA,MAAgByB,QACZN,OACAnB,MACAqC,cACAC,aACc;EACd,IAAI,CAAC,KAAKxB,WACN;EAGJ,MAAM,KAAKA,UAAUyB,YAAY;GAC7BC,SAAS;IACL1C,MAAM,KAAKe,IAAIf;IACfqB;IACAnB;GACJ;GACAC,cAAc,KAAKY,IAAIZ,aAAaD,IAAAA;GACpC,GAAIqC,eAAe,EAAEA,aAAa,IAAI,CAAC;GACvCC;EACJ,CAAA;CACJ;AACJ"}
|
|
@@ -30,7 +30,7 @@ var HTTPOAuth2Authorizer = class extends OAuth2Authorization {
|
|
|
30
30
|
client,
|
|
31
31
|
redirectUriVerified
|
|
32
32
|
});
|
|
33
|
-
if (this.consentService &&
|
|
33
|
+
if (client && this.consentService && !client.builtIn) try {
|
|
34
34
|
await this.consentService.record({
|
|
35
35
|
clientId: client.id,
|
|
36
36
|
realmId: client.realmId,
|