@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,70 +0,0 @@
|
|
|
1
|
-
import "node:path";
|
|
2
|
-
import "node:url";
|
|
3
|
-
import.meta.url;
|
|
4
|
-
import { resolveAuthConsoleDistPath, setAuthConsolePackagePath } from "../auth-console/resolve.mjs";
|
|
5
|
-
import "../auth-console/index.mjs";
|
|
6
|
-
import { resolveAccountConsoleDistPath, setAccountConsolePackagePath } from "../account-console/module.mjs";
|
|
7
|
-
import "../account-console/index.mjs";
|
|
8
|
-
import { AuthupError, normalizeError } from "@authup/errors";
|
|
9
|
-
import path from "node:path";
|
|
10
|
-
import { read } from "locter";
|
|
11
|
-
import fs from "node:fs";
|
|
12
|
-
//#region src/adapters/http/ui/console-packages/module.ts
|
|
13
|
-
/**
|
|
14
|
-
* The render-contract version server-core compiles against. Must match the
|
|
15
|
-
* `CONTRACT_VERSION` the auth console bundle exports.
|
|
16
|
-
*
|
|
17
|
-
* Bump alongside `apps/client-auth-console/src/contract.ts` whenever a
|
|
18
|
-
* change breaks a package built against the previous shape.
|
|
19
|
-
*/ const AUTH_CONSOLE_CONTRACT_VERSION = 2;
|
|
20
|
-
/**
|
|
21
|
-
* The marker the account console's index.html must carry. It is that
|
|
22
|
-
* console's entire runtime contract: without it the injected
|
|
23
|
-
* `window.__AUTHUP__` never lands and the SPA silently falls back to
|
|
24
|
-
* deriving its API URL from the origin.
|
|
25
|
-
*/ const ACCOUNT_CONSOLE_CONFIG_MARKER = "<!--account-config-->";
|
|
26
|
-
/**
|
|
27
|
-
* Bind the substituted console packages and verify they still fulfill the
|
|
28
|
-
* contracts, before the first request rather than per render.
|
|
29
|
-
*
|
|
30
|
-
* Only runs for a package the operator actually substituted. With the
|
|
31
|
-
* default resolution the console packages ship from this repo with linked
|
|
32
|
-
* versions, so the assert would compare a constant against itself, and
|
|
33
|
-
* loading the SSR bundle at boot would turn a missing build into a failed
|
|
34
|
-
* start instead of an actionable error on the page.
|
|
35
|
-
*
|
|
36
|
-
* Fail-closed on a mismatch: the operator replaced the login and consent
|
|
37
|
-
* IMPLEMENTATION (the prompt ladder, PKCE and state handling, MFA
|
|
38
|
-
* ordering, redirect gating), so a contract drift must stop the container
|
|
39
|
-
* rather than render subtly wrong auth pages.
|
|
40
|
-
*/ async function bindConsolePackages(options = {}) {
|
|
41
|
-
setAuthConsolePackagePath(options.authConsolePath);
|
|
42
|
-
setAccountConsolePackagePath(options.accountConsolePath);
|
|
43
|
-
if (options.authConsolePath) await assertAuthConsoleContract(options.authConsolePath);
|
|
44
|
-
if (options.accountConsolePath) assertAccountConsoleContract(options.accountConsolePath);
|
|
45
|
-
}
|
|
46
|
-
async function assertAuthConsoleContract(packagePath) {
|
|
47
|
-
const distPath = resolveAuthConsoleDistPath();
|
|
48
|
-
if (!distPath) throw new AuthupError(`The auth console package at "${packagePath}" carries no built bundle (expected dist/client/index.html).`);
|
|
49
|
-
const entry = path.join(distPath, "server", "server.js");
|
|
50
|
-
let module;
|
|
51
|
-
try {
|
|
52
|
-
module = await read(entry);
|
|
53
|
-
} catch (e) {
|
|
54
|
-
const reason = normalizeError(e).message;
|
|
55
|
-
throw new AuthupError(`The auth console render entry "${entry}" could not be loaded.\n ${reason}`);
|
|
56
|
-
}
|
|
57
|
-
if (typeof module.render !== "function") throw new AuthupError(`The auth console bundle "${entry}" does not export a render() function.`);
|
|
58
|
-
const version = typeof module.CONTRACT_VERSION === "undefined" ? 1 : module.CONTRACT_VERSION;
|
|
59
|
-
if (version !== 2) throw new AuthupError(`The auth console package at "${packagePath}" implements render-contract version ${version}, but this authup requires 2. Rebuild it against the current @authup/client-auth-console contract.`);
|
|
60
|
-
}
|
|
61
|
-
function assertAccountConsoleContract(packagePath) {
|
|
62
|
-
const distPath = resolveAccountConsoleDistPath();
|
|
63
|
-
if (!distPath) throw new AuthupError(`The account console package at "${packagePath}" carries no built bundle (expected dist/index.html).`);
|
|
64
|
-
const entry = path.join(distPath, "index.html");
|
|
65
|
-
if (!fs.readFileSync(entry, "utf-8").includes("<!--account-config-->")) throw new AuthupError(`The account console shell "${entry}" carries no ${ACCOUNT_CONSOLE_CONFIG_MARKER} marker, so its runtime configuration cannot be injected.`);
|
|
66
|
-
}
|
|
67
|
-
//#endregion
|
|
68
|
-
export { ACCOUNT_CONSOLE_CONFIG_MARKER, AUTH_CONSOLE_CONTRACT_VERSION, bindConsolePackages };
|
|
69
|
-
|
|
70
|
-
//# sourceMappingURL=module.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["AuthupError","normalizeError","read","fs","path","resolveAccountConsoleDistPath","setAccountConsolePackagePath","resolveAuthConsoleDistPath","setAuthConsolePackagePath","AUTH_CONSOLE_CONTRACT_VERSION","AUTH_CONSOLE_CONTRACT_VERSION_IN_SYNC","ACCOUNT_CONSOLE_CONFIG_MARKER","bindConsolePackages","options","authConsolePath","accountConsolePath","assertAuthConsoleContract","assertAccountConsoleContract","packagePath","distPath","entry","join","module","e","reason","message","render","version","CONTRACT_VERSION","html","readFileSync","includes"],"sources":["../../../../../src/adapters/http/ui/console-packages/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 { AuthupError, normalizeError } from '@authup/errors';\nimport { read } from 'locter';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport {\n resolveAccountConsoleDistPath,\n setAccountConsolePackagePath,\n} from '../account-console/index.ts';\nimport { resolveAuthConsoleDistPath, setAuthConsolePackagePath } from '../auth-console/index.ts';\n// Type position only (see AUTH_CONSOLE_CONTRACT_VERSION_IN_SYNC below), so\n// the runtime stays a dist-file read and the layering rule holds.\nimport type { CONTRACT_VERSION as AuthConsoleContractVersion } from '@authup/client-auth-console';\nimport type { ConsolePackageOptions } from './types.ts';\n\n/**\n * The render-contract version server-core compiles against. Must match the\n * `CONTRACT_VERSION` the auth console bundle exports.\n *\n * Bump alongside `apps/client-auth-console/src/contract.ts` whenever a\n * change breaks a package built against the previous shape.\n */\nexport const AUTH_CONSOLE_CONTRACT_VERSION = 2;\n\n/**\n * Compile-time link to the value this constant mirrors.\n *\n * The runtime assert below only fires for a SUBSTITUTED package, so a bump\n * on one side and not the other would otherwise go unnoticed until a\n * substituted console failed at boot in someone else's deployment. The\n * annotation costs nothing at runtime (types are erased) and fails this\n * package's build the moment the two drift.\n */\ntype AuthConsoleContractVersionInSync = typeof AuthConsoleContractVersion extends typeof AUTH_CONSOLE_CONTRACT_VERSION ?\n true :\n never;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst AUTH_CONSOLE_CONTRACT_VERSION_IN_SYNC : AuthConsoleContractVersionInSync = true;\n\n/**\n * The marker the account console's index.html must carry. It is that\n * console's entire runtime contract: without it the injected\n * `window.__AUTHUP__` never lands and the SPA silently falls back to\n * deriving its API URL from the origin.\n */\nexport const ACCOUNT_CONSOLE_CONFIG_MARKER = '<!--account-config-->';\n\n/**\n * Bind the substituted console packages and verify they still fulfill the\n * contracts, before the first request rather than per render.\n *\n * Only runs for a package the operator actually substituted. With the\n * default resolution the console packages ship from this repo with linked\n * versions, so the assert would compare a constant against itself, and\n * loading the SSR bundle at boot would turn a missing build into a failed\n * start instead of an actionable error on the page.\n *\n * Fail-closed on a mismatch: the operator replaced the login and consent\n * IMPLEMENTATION (the prompt ladder, PKCE and state handling, MFA\n * ordering, redirect gating), so a contract drift must stop the container\n * rather than render subtly wrong auth pages.\n */\nexport async function bindConsolePackages(options: ConsolePackageOptions = {}) : Promise<void> {\n setAuthConsolePackagePath(options.authConsolePath);\n setAccountConsolePackagePath(options.accountConsolePath);\n\n if (options.authConsolePath) {\n await assertAuthConsoleContract(options.authConsolePath);\n }\n\n if (options.accountConsolePath) {\n assertAccountConsoleContract(options.accountConsolePath);\n }\n}\n\nasync function assertAuthConsoleContract(packagePath: string) : Promise<void> {\n const distPath = resolveAuthConsoleDistPath();\n if (!distPath) {\n throw new AuthupError(\n `The auth console package at \"${packagePath}\" carries no built bundle (expected dist/client/index.html).`,\n );\n }\n\n const entry = path.join(distPath, 'server', 'server.js');\n\n let module : Record<string, any>;\n try {\n module = await read(entry) as Record<string, any>;\n } catch (e) {\n const reason = normalizeError(e).message;\n\n throw new AuthupError(`The auth console render entry \"${entry}\" could not be loaded.\\n ${reason}`);\n }\n\n if (typeof module.render !== 'function') {\n throw new AuthupError(`The auth console bundle \"${entry}\" does not export a render() function.`);\n }\n\n // A bundle predating the export counts as version 1, the shape every\n // package built before the constant existed implements.\n const version = typeof module.CONTRACT_VERSION === 'undefined' ?\n 1 :\n module.CONTRACT_VERSION;\n\n if (version !== AUTH_CONSOLE_CONTRACT_VERSION) {\n throw new AuthupError(\n `The auth console package at \"${packagePath}\" implements render-contract version ${version}, but this authup requires ${AUTH_CONSOLE_CONTRACT_VERSION}. Rebuild it against the current @authup/client-auth-console contract.`,\n );\n }\n}\n\nfunction assertAccountConsoleContract(packagePath: string) : void {\n const distPath = resolveAccountConsoleDistPath();\n if (!distPath) {\n throw new AuthupError(\n `The account console package at \"${packagePath}\" carries no built bundle (expected dist/index.html).`,\n );\n }\n\n const entry = path.join(distPath, 'index.html');\n const html = fs.readFileSync(entry, 'utf-8');\n\n if (!html.includes(ACCOUNT_CONSOLE_CONFIG_MARKER)) {\n throw new AuthupError(\n `The account console shell \"${entry}\" carries no ${ACCOUNT_CONSOLE_CONFIG_MARKER} marker, so its runtime configuration cannot be injected.`,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;GA4BA,MAAaS,gCAAgC;;;;;;GAuB7C,MAAaE,gCAAgC;;;;;;;;;;;;;;;GAiB7C,eAAsBC,oBAAoBC,UAAiC,CAAC,GAAC;CACzEL,0BAA0BK,QAAQC,eAAe;CACjDR,6BAA6BO,QAAQE,kBAAkB;CAEvD,IAAIF,QAAQC,iBACR,MAAME,0BAA0BH,QAAQC,eAAe;CAG3D,IAAID,QAAQE,oBACRE,6BAA6BJ,QAAQE,kBAAkB;AAE/D;AAEA,eAAeC,0BAA0BE,aAAmB;CACxD,MAAMC,WAAWZ,2BAAAA;CACjB,IAAI,CAACY,UACD,MAAM,IAAInB,YACN,gCAAgCkB,YAAY,6DAA6D;CAIjH,MAAME,QAAQhB,KAAKiB,KAAKF,UAAU,UAAU,WAAA;CAE5C,IAAIG;CACJ,IAAI;EACAA,SAAS,MAAMpB,KAAKkB,KAAAA;CACxB,SAASG,GAAG;EACR,MAAMC,SAASvB,eAAesB,CAAAA,CAAAA,CAAGE;EAEjC,MAAM,IAAIzB,YAAY,kCAAkCoB,MAAM,4BAA4BI,QAAQ;CACtG;CAEA,IAAI,OAAOF,OAAOI,WAAW,YACzB,MAAM,IAAI1B,YAAY,4BAA4BoB,MAAM,uCAAuC;CAKnG,MAAMO,UAAU,OAAOL,OAAOM,qBAAqB,cAC/C,IACAN,OAAOM;CAEX,IAAID,YAAAA,GACA,MAAM,IAAI3B,YACN,gCAAgCkB,YAAY,uCAAuCS,QAAQ,mGAAkI;AAGzO;AAEA,SAASV,6BAA6BC,aAAmB;CACrD,MAAMC,WAAWd,8BAAAA;CACjB,IAAI,CAACc,UACD,MAAM,IAAInB,YACN,mCAAmCkB,YAAY,sDAAsD;CAI7G,MAAME,QAAQhB,KAAKiB,KAAKF,UAAU,YAAA;CAGlC,IAAI,CAFShB,GAAG2B,aAAaV,OAAO,OAE/BS,CAAAA,CAAKE,SAAAA,uBAASpB,GACf,MAAM,IAAIX,YACN,8BAA8BoB,MAAM,eAAeT,8BAA8B,0DAA0D;AAGvJ"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type ConsolePackageOptions = {
|
|
2
|
-
/**
|
|
3
|
-
* Package directory of a substituted @authup/client-auth-console.
|
|
4
|
-
* Empty resolves the packaged one from node_modules.
|
|
5
|
-
*/
|
|
6
|
-
authConsolePath?: string;
|
|
7
|
-
/**
|
|
8
|
-
* Package directory of a substituted @authup/client-account-console.
|
|
9
|
-
*/
|
|
10
|
-
accountConsolePath?: string;
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/ui/console-packages/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/ui/index.ts"],"names":[],"mappings":"AAOA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import "node:path";
|
|
2
|
-
import "node:url";
|
|
3
|
-
import.meta.url;
|
|
4
|
-
import { createInternalUIHttpClient, createPublicToInternalURLRewriter } from "./auth-console/http-client.mjs";
|
|
5
|
-
import { applyUIPageHeaders, injectHeadContent, readUIClientPreferences, rebaseAssetURLs, replaceTemplateMarker, serializeInlineScriptJSON, stampDocumentTitle, stampHtmlAttributes } from "./shared/html.mjs";
|
|
6
|
-
import "./shared/index.mjs";
|
|
7
|
-
import { THEME_ASSETS_DIRECTORY_NAME, THEME_ASSET_CONTENT_TYPES, THEME_ASSET_EXTENSIONS, THEME_ASSET_MOUNT_PATH, THEME_CSS_LAYER_NAME, THEME_FRAGMENTS_DIRECTORY_NAME, THEME_HEAD_FRAGMENT_FILE_NAME, THEME_HEAD_FRAGMENT_MAX_LENGTH, THEME_IMAGE_EXTENSIONS, THEME_LOGO_TOKENS, THEME_MANIFEST_FILE_NAME, THEME_MANIFEST_VERSION, THEME_TOKEN_NAME_PATTERN, THEME_TOKEN_VALUE_FORBIDDEN_PATTERN, THEME_TOKEN_VALUE_MAX_LENGTH } from "./theme/contract/constants.mjs";
|
|
8
|
-
import { buildThemeHead, escapeHtml } from "./theme/contract/head.mjs";
|
|
9
|
-
import { themeAssetExtension } from "./theme/contract/utils.mjs";
|
|
10
|
-
import { ThemeManifestValidator, parseThemeManifest } from "./theme/contract/manifest.mjs";
|
|
11
|
-
import { applyTheme } from "./theme/apply.mjs";
|
|
12
|
-
import { THEME_ASSET_CSP, THEME_MANIFEST_REVALIDATE_INTERVAL } from "./theme/constants.mjs";
|
|
13
|
-
import { createThemeAssetsHandler } from "./theme/assets.mjs";
|
|
14
|
-
import { ThemeProvider } from "./theme/module.mjs";
|
|
15
|
-
import "./theme/index.mjs";
|
|
16
|
-
import { resolveAuthConsoleDistPath, resolveAuthConsolePackagePath, setAuthConsolePackagePath } from "./auth-console/resolve.mjs";
|
|
17
|
-
import { renderAuthConsolePage } from "./auth-console/module.mjs";
|
|
18
|
-
import { serveWorkflowPage } from "./auth-console/serve.mjs";
|
|
19
|
-
import "./auth-console/index.mjs";
|
|
20
|
-
import { ACCOUNT_CONSOLE_REF_MAX_LENGTH, resolveAccountConsoleRef } from "./account-console/ref.mjs";
|
|
21
|
-
import { resolveAccountConsoleDistPath, serveAccountConsolePage, setAccountConsolePackagePath } from "./account-console/module.mjs";
|
|
22
|
-
import "./account-console/index.mjs";
|
|
23
|
-
import { ACCOUNT_CONSOLE_CONFIG_MARKER, AUTH_CONSOLE_CONTRACT_VERSION, bindConsolePackages } from "./console-packages/module.mjs";
|
|
24
|
-
import "./console-packages/index.mjs";
|
|
25
|
-
export { ACCOUNT_CONSOLE_CONFIG_MARKER, ACCOUNT_CONSOLE_REF_MAX_LENGTH, AUTH_CONSOLE_CONTRACT_VERSION, THEME_ASSETS_DIRECTORY_NAME, THEME_ASSET_CONTENT_TYPES, THEME_ASSET_CSP, THEME_ASSET_EXTENSIONS, THEME_ASSET_MOUNT_PATH, THEME_CSS_LAYER_NAME, THEME_FRAGMENTS_DIRECTORY_NAME, THEME_HEAD_FRAGMENT_FILE_NAME, THEME_HEAD_FRAGMENT_MAX_LENGTH, THEME_IMAGE_EXTENSIONS, THEME_LOGO_TOKENS, THEME_MANIFEST_FILE_NAME, THEME_MANIFEST_REVALIDATE_INTERVAL, THEME_MANIFEST_VERSION, THEME_TOKEN_NAME_PATTERN, THEME_TOKEN_VALUE_FORBIDDEN_PATTERN, THEME_TOKEN_VALUE_MAX_LENGTH, ThemeManifestValidator, ThemeProvider, applyTheme, applyUIPageHeaders, bindConsolePackages, buildThemeHead, createInternalUIHttpClient, createPublicToInternalURLRewriter, createThemeAssetsHandler, escapeHtml, injectHeadContent, parseThemeManifest, readUIClientPreferences, rebaseAssetURLs, renderAuthConsolePage, replaceTemplateMarker, resolveAccountConsoleDistPath, resolveAccountConsoleRef, resolveAuthConsoleDistPath, resolveAuthConsolePackagePath, serializeInlineScriptJSON, serveAccountConsolePage, serveWorkflowPage, setAccountConsolePackagePath, setAuthConsolePackagePath, stampDocumentTitle, stampHtmlAttributes, themeAssetExtension };
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { IAppEvent } from 'routup';
|
|
2
|
-
export type UIClientPreferences = {
|
|
3
|
-
locale?: string;
|
|
4
|
-
colorMode?: string;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Mirror @vuecs/nuxt's SSR plugins: resolve the shared cookies server-side
|
|
8
|
-
* so the HTML shell already carries the `.dark`/`.light` class and lang
|
|
9
|
-
* attribute (no flash) and the client app hydrates from the same values.
|
|
10
|
-
* The cookies are shared between every console on the origin.
|
|
11
|
-
*/
|
|
12
|
-
export declare function readUIClientPreferences(event: IAppEvent): UIClientPreferences;
|
|
13
|
-
/**
|
|
14
|
-
* Stamp the resolved preferences onto the opening `<html>` tag. Matched by
|
|
15
|
-
* pattern rather than an exact literal, so a reformatted tag / dev-mode
|
|
16
|
-
* transformIndexHtml rewrite still gets the lang + color-mode attributes
|
|
17
|
-
* (no silent FOUC).
|
|
18
|
-
*/
|
|
19
|
-
export declare function stampHtmlAttributes(html: string, preferences: UIClientPreferences): string;
|
|
20
|
-
/**
|
|
21
|
-
* Replace a template marker (`<!--app-html-->`, `<!--account-config-->`, ...)
|
|
22
|
-
* with a rendered value.
|
|
23
|
-
*
|
|
24
|
-
* The replacement is passed as a FUNCTION on purpose. A string replacement
|
|
25
|
-
* expands the `$&`, `` $` ``, `$'` and `$$` patterns, so a `$'` anywhere in
|
|
26
|
-
* the value splices the template's own text back into the page. The values
|
|
27
|
-
* spliced here carry raw request input (the SSR hydration payload reflects
|
|
28
|
-
* query parameters), which made `?token=$'` return a page whose inline
|
|
29
|
-
* payload script was no longer valid JavaScript. Escaping cannot prevent
|
|
30
|
-
* this: the expansion happens after the value was built.
|
|
31
|
-
*/
|
|
32
|
-
export declare function replaceTemplateMarker(html: string, marker: string, value: string): string;
|
|
33
|
-
/**
|
|
34
|
-
* Insert markup immediately before `</head>`.
|
|
35
|
-
*
|
|
36
|
-
* Deliberately not a template marker: injecting at the closing tag works
|
|
37
|
-
* against console bundles that were built BEFORE this feature existed, so
|
|
38
|
-
* server-core never silently loses theming when it runs against an older
|
|
39
|
-
* console package. A shell without a `</head>` is returned unchanged.
|
|
40
|
-
*
|
|
41
|
-
* Function-replacement form for the same reason as replaceTemplateMarker.
|
|
42
|
-
*/
|
|
43
|
-
export declare function injectHeadContent(html: string, content: string): string;
|
|
44
|
-
/**
|
|
45
|
-
* Replace the document title. The value must already be HTML-escaped by
|
|
46
|
-
* the caller; matched by pattern so a reformatted tag still hits.
|
|
47
|
-
*/
|
|
48
|
-
export declare function stampDocumentTitle(html: string, title: string): string;
|
|
49
|
-
/**
|
|
50
|
-
* Response headers every served console page shares.
|
|
51
|
-
*
|
|
52
|
-
* Clickjacking guard: the pages mutate state behind explicit clicks and
|
|
53
|
-
* hydrate first-party session state, so framing them would make
|
|
54
|
-
* click-gating defeatable via overlay attacks — deny embedding entirely
|
|
55
|
-
* (iframe-based silent renew is therefore unsupported). The URLs routinely
|
|
56
|
-
* carry sensitive query params (id_token_hint, code, redirect, state) —
|
|
57
|
-
* never leak them via Referer.
|
|
58
|
-
*/
|
|
59
|
-
export declare function applyUIPageHeaders(event: IAppEvent): void;
|
|
60
|
-
/**
|
|
61
|
-
* Rewrite root-absolute asset references (script/link/preload tags emitted
|
|
62
|
-
* with a fixed vite base, e.g. /public/ or /account/) so they carry the
|
|
63
|
-
* path prefix under which authup is publicly served (e.g. /auth/public/...).
|
|
64
|
-
* The reverse proxy is expected to strip the prefix before the request
|
|
65
|
-
* reaches authup, so the assets middleware keeps serving at the fixed base.
|
|
66
|
-
*/
|
|
67
|
-
export declare function rebaseAssetURLs(html: string, basePath: string, viteBase: string): string;
|
|
68
|
-
/**
|
|
69
|
-
* Escape characters that would otherwise let a value break out of an inline
|
|
70
|
-
* `<script>` context (`</script>`) or terminate the JS string literal via
|
|
71
|
-
* the U+2028/U+2029 line separators. Every window-global config/payload a
|
|
72
|
-
* console page inlines must pass through this — never rely on the VALUES
|
|
73
|
-
* staying benign.
|
|
74
|
-
*/
|
|
75
|
-
export declare function serializeInlineScriptJSON(value: unknown): string;
|
|
76
|
-
//# sourceMappingURL=html.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/ui/shared/html.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKxC,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAI,mBAAmB,CAK9E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAI,MAAM,CAU3F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAI,MAAM,CAE1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAI,MAAM,CAWxE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAI,MAAM,CAEvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAI,IAAI,CAW1D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAI,MAAM,CASzF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAI,MAAM,CAMjE"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import "node:path";
|
|
2
|
-
import "node:url";
|
|
3
|
-
import.meta.url;
|
|
4
|
-
import { LOCALE_COOKIE } from "../../request/helpers/locale.mjs";
|
|
5
|
-
import { useRequestCookie } from "@routup/basic/cookie";
|
|
6
|
-
//#region src/adapters/http/ui/shared/html.ts
|
|
7
|
-
const COLOR_MODE_COOKIE = "vc-color-mode";
|
|
8
|
-
/**
|
|
9
|
-
* Mirror @vuecs/nuxt's SSR plugins: resolve the shared cookies server-side
|
|
10
|
-
* so the HTML shell already carries the `.dark`/`.light` class and lang
|
|
11
|
-
* attribute (no flash) and the client app hydrates from the same values.
|
|
12
|
-
* The cookies are shared between every console on the origin.
|
|
13
|
-
*/ function readUIClientPreferences(event) {
|
|
14
|
-
return {
|
|
15
|
-
locale: useRequestCookie(event, LOCALE_COOKIE),
|
|
16
|
-
colorMode: useRequestCookie(event, COLOR_MODE_COOKIE)
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Stamp the resolved preferences onto the opening `<html>` tag. Matched by
|
|
21
|
-
* pattern rather than an exact literal, so a reformatted tag / dev-mode
|
|
22
|
-
* transformIndexHtml rewrite still gets the lang + color-mode attributes
|
|
23
|
-
* (no silent FOUC).
|
|
24
|
-
*/ function stampHtmlAttributes(html, preferences) {
|
|
25
|
-
let htmlAttrs = "lang=\"en\"";
|
|
26
|
-
if (preferences.locale && /^[a-zA-Z]{2,3}(-[a-zA-Z0-9]+)*$/.test(preferences.locale)) htmlAttrs = `lang="${preferences.locale}"`;
|
|
27
|
-
if (preferences.colorMode === "dark" || preferences.colorMode === "light") htmlAttrs += ` class="${preferences.colorMode}"`;
|
|
28
|
-
return html.replace(/<html\b[^>]*>/i, () => `<html ${htmlAttrs}>`);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Replace a template marker (`<!--app-html-->`, `<!--account-config-->`, ...)
|
|
32
|
-
* with a rendered value.
|
|
33
|
-
*
|
|
34
|
-
* The replacement is passed as a FUNCTION on purpose. A string replacement
|
|
35
|
-
* expands the `$&`, `` $` ``, `$'` and `$$` patterns, so a `$'` anywhere in
|
|
36
|
-
* the value splices the template's own text back into the page. The values
|
|
37
|
-
* spliced here carry raw request input (the SSR hydration payload reflects
|
|
38
|
-
* query parameters), which made `?token=$'` return a page whose inline
|
|
39
|
-
* payload script was no longer valid JavaScript. Escaping cannot prevent
|
|
40
|
-
* this: the expansion happens after the value was built.
|
|
41
|
-
*/ function replaceTemplateMarker(html, marker, value) {
|
|
42
|
-
return html.replace(marker, () => value);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Insert markup immediately before `</head>`.
|
|
46
|
-
*
|
|
47
|
-
* Deliberately not a template marker: injecting at the closing tag works
|
|
48
|
-
* against console bundles that were built BEFORE this feature existed, so
|
|
49
|
-
* server-core never silently loses theming when it runs against an older
|
|
50
|
-
* console package. A shell without a `</head>` is returned unchanged.
|
|
51
|
-
*
|
|
52
|
-
* Function-replacement form for the same reason as replaceTemplateMarker.
|
|
53
|
-
*/ function injectHeadContent(html, content) {
|
|
54
|
-
if (!content) return html;
|
|
55
|
-
const index = html.toLowerCase().indexOf("</head>");
|
|
56
|
-
if (index === -1) return html;
|
|
57
|
-
return html.slice(0, index) + content + html.slice(index);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Replace the document title. The value must already be HTML-escaped by
|
|
61
|
-
* the caller; matched by pattern so a reformatted tag still hits.
|
|
62
|
-
*/ function stampDocumentTitle(html, title) {
|
|
63
|
-
return html.replace(/<title\b[^>]*>[\s\S]*?<\/title>/i, () => `<title>${title}</title>`);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Response headers every served console page shares.
|
|
67
|
-
*
|
|
68
|
-
* Clickjacking guard: the pages mutate state behind explicit clicks and
|
|
69
|
-
* hydrate first-party session state, so framing them would make
|
|
70
|
-
* click-gating defeatable via overlay attacks — deny embedding entirely
|
|
71
|
-
* (iframe-based silent renew is therefore unsupported). The URLs routinely
|
|
72
|
-
* carry sensitive query params (id_token_hint, code, redirect, state) —
|
|
73
|
-
* never leak them via Referer.
|
|
74
|
-
*/ function applyUIPageHeaders(event) {
|
|
75
|
-
event.response.headers.set("content-type", "text/html; charset=utf-8");
|
|
76
|
-
event.response.headers.set("vary", "cookie");
|
|
77
|
-
event.response.headers.set("content-security-policy", "frame-ancestors 'none'");
|
|
78
|
-
event.response.headers.set("x-frame-options", "DENY");
|
|
79
|
-
event.response.headers.set("referrer-policy", "no-referrer");
|
|
80
|
-
event.response.headers.set("cache-control", "no-store");
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Rewrite root-absolute asset references (script/link/preload tags emitted
|
|
84
|
-
* with a fixed vite base, e.g. /public/ or /account/) so they carry the
|
|
85
|
-
* path prefix under which authup is publicly served (e.g. /auth/public/...).
|
|
86
|
-
* The reverse proxy is expected to strip the prefix before the request
|
|
87
|
-
* reaches authup, so the assets middleware keeps serving at the fixed base.
|
|
88
|
-
*/ function rebaseAssetURLs(html, basePath, viteBase) {
|
|
89
|
-
if (!basePath) return html;
|
|
90
|
-
return html.replace(new RegExp(`(src|href)="${viteBase.replace(/[.*+?^${}()|[\]\\/]/g, "\\$&")}`, "g"), (_match, attribute) => `${attribute}="${basePath}${viteBase}`);
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Escape characters that would otherwise let a value break out of an inline
|
|
94
|
-
* `<script>` context (`<\/script>`) or terminate the JS string literal via
|
|
95
|
-
* the U+2028/U+2029 line separators. Every window-global config/payload a
|
|
96
|
-
* console page inlines must pass through this — never rely on the VALUES
|
|
97
|
-
* staying benign.
|
|
98
|
-
*/ function serializeInlineScriptJSON(value) {
|
|
99
|
-
return JSON.stringify(value).replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
100
|
-
}
|
|
101
|
-
//#endregion
|
|
102
|
-
export { applyUIPageHeaders, injectHeadContent, readUIClientPreferences, rebaseAssetURLs, replaceTemplateMarker, serializeInlineScriptJSON, stampDocumentTitle, stampHtmlAttributes };
|
|
103
|
-
|
|
104
|
-
//# sourceMappingURL=html.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html.mjs","names":["useRequestCookie","LOCALE_COOKIE","COLOR_MODE_COOKIE","readUIClientPreferences","event","locale","colorMode","stampHtmlAttributes","html","preferences","htmlAttrs","test","replace","replaceTemplateMarker","marker","value","injectHeadContent","content","index","toLowerCase","indexOf","slice","stampDocumentTitle","title","applyUIPageHeaders","response","headers","set","rebaseAssetURLs","basePath","viteBase","RegExp","_match","attribute","serializeInlineScriptJSON","JSON","stringify"],"sources":["../../../../../src/adapters/http/ui/shared/html.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 { useRequestCookie } from '@routup/basic/cookie';\nimport type { IAppEvent } from 'routup';\nimport { LOCALE_COOKIE } from '../../request/helpers/locale.ts';\n\nconst COLOR_MODE_COOKIE = 'vc-color-mode';\n\nexport type UIClientPreferences = {\n locale?: string,\n colorMode?: string,\n};\n\n/**\n * Mirror @vuecs/nuxt's SSR plugins: resolve the shared cookies server-side\n * so the HTML shell already carries the `.dark`/`.light` class and lang\n * attribute (no flash) and the client app hydrates from the same values.\n * The cookies are shared between every console on the origin.\n */\nexport function readUIClientPreferences(event: IAppEvent) : UIClientPreferences {\n return {\n locale: useRequestCookie(event, LOCALE_COOKIE),\n colorMode: useRequestCookie(event, COLOR_MODE_COOKIE),\n };\n}\n\n/**\n * Stamp the resolved preferences onto the opening `<html>` tag. Matched by\n * pattern rather than an exact literal, so a reformatted tag / dev-mode\n * transformIndexHtml rewrite still gets the lang + color-mode attributes\n * (no silent FOUC).\n */\nexport function stampHtmlAttributes(html: string, preferences: UIClientPreferences) : string {\n let htmlAttrs = 'lang=\"en\"';\n if (preferences.locale && /^[a-zA-Z]{2,3}(-[a-zA-Z0-9]+)*$/.test(preferences.locale)) {\n htmlAttrs = `lang=\"${preferences.locale}\"`;\n }\n if (preferences.colorMode === 'dark' || preferences.colorMode === 'light') {\n htmlAttrs += ` class=\"${preferences.colorMode}\"`;\n }\n\n return html.replace(/<html\\b[^>]*>/i, () => `<html ${htmlAttrs}>`);\n}\n\n/**\n * Replace a template marker (`<!--app-html-->`, `<!--account-config-->`, ...)\n * with a rendered value.\n *\n * The replacement is passed as a FUNCTION on purpose. A string replacement\n * expands the `$&`, `` $` ``, `$'` and `$$` patterns, so a `$'` anywhere in\n * the value splices the template's own text back into the page. The values\n * spliced here carry raw request input (the SSR hydration payload reflects\n * query parameters), which made `?token=$'` return a page whose inline\n * payload script was no longer valid JavaScript. Escaping cannot prevent\n * this: the expansion happens after the value was built.\n */\nexport function replaceTemplateMarker(html: string, marker: string, value: string) : string {\n return html.replace(marker, () => value);\n}\n\n/**\n * Insert markup immediately before `</head>`.\n *\n * Deliberately not a template marker: injecting at the closing tag works\n * against console bundles that were built BEFORE this feature existed, so\n * server-core never silently loses theming when it runs against an older\n * console package. A shell without a `</head>` is returned unchanged.\n *\n * Function-replacement form for the same reason as replaceTemplateMarker.\n */\nexport function injectHeadContent(html: string, content: string) : string {\n if (!content) {\n return html;\n }\n\n const index = html.toLowerCase().indexOf('</head>');\n if (index === -1) {\n return html;\n }\n\n return html.slice(0, index) + content + html.slice(index);\n}\n\n/**\n * Replace the document title. The value must already be HTML-escaped by\n * the caller; matched by pattern so a reformatted tag still hits.\n */\nexport function stampDocumentTitle(html: string, title: string) : string {\n return html.replace(/<title\\b[^>]*>[\\s\\S]*?<\\/title>/i, () => `<title>${title}</title>`);\n}\n\n/**\n * Response headers every served console page shares.\n *\n * Clickjacking guard: the pages mutate state behind explicit clicks and\n * hydrate first-party session state, so framing them would make\n * click-gating defeatable via overlay attacks — deny embedding entirely\n * (iframe-based silent renew is therefore unsupported). The URLs routinely\n * carry sensitive query params (id_token_hint, code, redirect, state) —\n * never leak them via Referer.\n */\nexport function applyUIPageHeaders(event: IAppEvent) : void {\n event.response.headers.set('content-type', 'text/html; charset=utf-8');\n // The shell is stamped from the vc-locale / vc-color-mode cookies, so\n // it genuinely varies by them. It carried no Vary header at all.\n event.response.headers.set('vary', 'cookie');\n event.response.headers.set('content-security-policy', \"frame-ancestors 'none'\");\n event.response.headers.set('x-frame-options', 'DENY');\n event.response.headers.set('referrer-policy', 'no-referrer');\n // Login pages, and the federated callback's interstitial carries a\n // fresh authorization code in its payload.\n event.response.headers.set('cache-control', 'no-store');\n}\n\n/**\n * Rewrite root-absolute asset references (script/link/preload tags emitted\n * with a fixed vite base, e.g. /public/ or /account/) so they carry the\n * path prefix under which authup is publicly served (e.g. /auth/public/...).\n * The reverse proxy is expected to strip the prefix before the request\n * reaches authup, so the assets middleware keeps serving at the fixed base.\n */\nexport function rebaseAssetURLs(html: string, basePath: string, viteBase: string) : string {\n if (!basePath) {\n return html;\n }\n\n return html.replace(\n new RegExp(`(src|href)=\"${viteBase.replace(/[.*+?^${}()|[\\]\\\\/]/g, '\\\\$&')}`, 'g'),\n (_match, attribute) => `${attribute}=\"${basePath}${viteBase}`,\n );\n}\n\n/**\n * Escape characters that would otherwise let a value break out of an inline\n * `<script>` context (`</script>`) or terminate the JS string literal via\n * the U+2028/U+2029 line separators. Every window-global config/payload a\n * console page inlines must pass through this — never rely on the VALUES\n * staying benign.\n */\nexport function serializeInlineScriptJSON(value: unknown) : string {\n return JSON.stringify(value)\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029');\n}\n"],"mappings":";;;;;;AAWA,MAAME,oBAAoB;;;;;;GAa1B,SAAgBC,wBAAwBC,OAAgB;CACpD,OAAO;EACHC,QAAQL,iBAAiBI,OAAOH,aAAAA;EAChCK,WAAWN,iBAAiBI,OAAOF,iBAAAA;CACvC;AACJ;;;;;;GAQA,SAAgBK,oBAAoBC,MAAcC,aAAgC;CAC9E,IAAIC,YAAY;CAChB,IAAID,YAAYJ,UAAU,kCAAkCM,KAAKF,YAAYJ,MAAM,GAC/EK,YAAY,SAASD,YAAYJ,OAAO;CAE5C,IAAII,YAAYH,cAAc,UAAUG,YAAYH,cAAc,SAC9DI,aAAa,WAAWD,YAAYH,UAAU;CAGlD,OAAOE,KAAKI,QAAQ,wBAAwB,SAASF,UAAU,EAAE;AACrE;;;;;;;;;;;;GAcA,SAAgBG,sBAAsBL,MAAcM,QAAgBC,OAAa;CAC7E,OAAOP,KAAKI,QAAQE,cAAcC,KAAAA;AACtC;;;;;;;;;;GAYA,SAAgBC,kBAAkBR,MAAcS,SAAe;CAC3D,IAAI,CAACA,SACD,OAAOT;CAGX,MAAMU,QAAQV,KAAKW,YAAW,CAAA,CAAGC,QAAQ,SAAA;CACzC,IAAIF,UAAU,IACV,OAAOV;CAGX,OAAOA,KAAKa,MAAM,GAAGH,KAAAA,IAASD,UAAUT,KAAKa,MAAMH,KAAAA;AACvD;;;;GAMA,SAAgBI,mBAAmBd,MAAce,OAAa;CAC1D,OAAOf,KAAKI,QAAQ,0CAA0C,UAAUW,MAAM,SAAS;AAC3F;;;;;;;;;;GAYA,SAAgBC,mBAAmBpB,OAAgB;CAC/CA,MAAMqB,SAASC,QAAQC,IAAI,gBAAgB,0BAAA;CAG3CvB,MAAMqB,SAASC,QAAQC,IAAI,QAAQ,QAAA;CACnCvB,MAAMqB,SAASC,QAAQC,IAAI,2BAA2B,wBAAA;CACtDvB,MAAMqB,SAASC,QAAQC,IAAI,mBAAmB,MAAA;CAC9CvB,MAAMqB,SAASC,QAAQC,IAAI,mBAAmB,aAAA;CAG9CvB,MAAMqB,SAASC,QAAQC,IAAI,iBAAiB,UAAA;AAChD;;;;;;;GASA,SAAgBC,gBAAgBpB,MAAcqB,UAAkBC,UAAgB;CAC5E,IAAI,CAACD,UACD,OAAOrB;CAGX,OAAOA,KAAKI,QACR,IAAImB,OAAO,eAAeD,SAASlB,QAAQ,wBAAwB,MAAA,KAAW,GAAA,IAC7EoB,QAAQC,cAAc,GAAGA,UAAU,IAAIJ,WAAWC,UAAU;AAErE;;;;;;;GASA,SAAgBI,0BAA0BnB,OAAc;CACpD,OAAOoB,KAAKC,UAAUrB,KAAAA,CAAAA,CACjBH,QAAQ,MAAM,SAAA,CAAA,CACdA,QAAQ,MAAM,SAAA,CAAA,CACdA,QAAQ,WAAW,SAAA,CAAA,CACnBA,QAAQ,WAAW,SAAA;AAC5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/ui/shared/index.ts"],"names":[],"mappings":"AAOA,cAAc,WAAW,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import "node:path";
|
|
2
|
-
import "node:url";
|
|
3
|
-
import.meta.url;
|
|
4
|
-
import { applyUIPageHeaders, injectHeadContent, readUIClientPreferences, rebaseAssetURLs, replaceTemplateMarker, serializeInlineScriptJSON, stampDocumentTitle, stampHtmlAttributes } from "./html.mjs";
|
|
5
|
-
export { applyUIPageHeaders, injectHeadContent, readUIClientPreferences, rebaseAssetURLs, replaceTemplateMarker, serializeInlineScriptJSON, stampDocumentTitle, stampHtmlAttributes };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { IThemeProvider } from './types.ts';
|
|
2
|
-
/**
|
|
3
|
-
* Apply the operator theme to a rendered console shell. A no-op when
|
|
4
|
-
* theming is off or the directory carries no manifest, so both console
|
|
5
|
-
* serve paths can call it unconditionally.
|
|
6
|
-
*
|
|
7
|
-
* Lives outside contract/ because it takes a provider (filesystem-backed)
|
|
8
|
-
* and splices into a served document: contract/ stays a pure description
|
|
9
|
-
* of what a theme IS.
|
|
10
|
-
*/
|
|
11
|
-
export declare function applyTheme(html: string, provider: IThemeProvider | undefined, basePath: string): Promise<string>;
|
|
12
|
-
//# sourceMappingURL=apply.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/ui/theme/apply.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,QAAQ,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAoBlB"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import "node:path";
|
|
2
|
-
import "node:url";
|
|
3
|
-
import.meta.url;
|
|
4
|
-
import { injectHeadContent, stampDocumentTitle } from "../shared/html.mjs";
|
|
5
|
-
import "../shared/index.mjs";
|
|
6
|
-
import { escapeHtml } from "./contract/head.mjs";
|
|
7
|
-
import "./contract/index.mjs";
|
|
8
|
-
//#region src/adapters/http/ui/theme/apply.ts
|
|
9
|
-
/**
|
|
10
|
-
* Apply the operator theme to a rendered console shell. A no-op when
|
|
11
|
-
* theming is off or the directory carries no manifest, so both console
|
|
12
|
-
* serve paths can call it unconditionally.
|
|
13
|
-
*
|
|
14
|
-
* Lives outside contract/ because it takes a provider (filesystem-backed)
|
|
15
|
-
* and splices into a served document: contract/ stays a pure description
|
|
16
|
-
* of what a theme IS.
|
|
17
|
-
*/ async function applyTheme(html, provider, basePath) {
|
|
18
|
-
if (!provider) return html;
|
|
19
|
-
let body = html;
|
|
20
|
-
const manifest = await provider.getManifest();
|
|
21
|
-
if (manifest?.title) body = stampDocumentTitle(body, escapeHtml(manifest.title));
|
|
22
|
-
const head = await provider.getHead(basePath);
|
|
23
|
-
if (head) body = injectHeadContent(body, head);
|
|
24
|
-
return body;
|
|
25
|
-
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { applyTheme };
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=apply.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apply.mjs","names":["injectHeadContent","stampDocumentTitle","escapeHtml","applyTheme","html","provider","basePath","body","manifest","getManifest","title","head","getHead"],"sources":["../../../../../src/adapters/http/ui/theme/apply.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 { injectHeadContent, stampDocumentTitle } from '../shared/index.ts';\nimport { escapeHtml } from './contract/index.ts';\nimport type { IThemeProvider } from './types.ts';\n\n/**\n * Apply the operator theme to a rendered console shell. A no-op when\n * theming is off or the directory carries no manifest, so both console\n * serve paths can call it unconditionally.\n *\n * Lives outside contract/ because it takes a provider (filesystem-backed)\n * and splices into a served document: contract/ stays a pure description\n * of what a theme IS.\n */\nexport async function applyTheme(\n html: string,\n provider: IThemeProvider | undefined,\n basePath: string,\n) : Promise<string> {\n if (!provider) {\n return html;\n }\n\n let body = html;\n\n // A directory may carry only a fragment, or only a stylesheet, so the\n // manifest is not a precondition for applying the theme.\n const manifest = await provider.getManifest();\n if (manifest?.title) {\n body = stampDocumentTitle(body, escapeHtml(manifest.title));\n }\n\n const head = await provider.getHead(basePath);\n if (head) {\n body = injectHeadContent(body, head);\n }\n\n return body;\n}\n"],"mappings":";;;;;;;;;;;;;;;;GAoBA,eAAsBG,WAClBC,MACAC,UACAC,UAAgB;CAEhB,IAAI,CAACD,UACD,OAAOD;CAGX,IAAIG,OAAOH;CAIX,MAAMI,WAAW,MAAMH,SAASI,YAAW;CAC3C,IAAID,UAAUE,OACVH,OAAON,mBAAmBM,MAAML,WAAWM,SAASE,KAAK,CAAA;CAG7D,MAAMC,OAAO,MAAMN,SAASO,QAAQN,QAAAA;CACpC,IAAIK,MACAJ,OAAOP,kBAAkBO,MAAMI,IAAAA;CAGnC,OAAOJ;AACX"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Handler } from 'routup';
|
|
2
|
-
import type { IThemeProvider } from './types.ts';
|
|
3
|
-
/**
|
|
4
|
-
* Serves the operator theme's `assets/` directory.
|
|
5
|
-
*
|
|
6
|
-
* Deliberately NOT `@routup/assets`' createHandler, for three reasons that
|
|
7
|
-
* matter for an operator-supplied root:
|
|
8
|
-
* - its lookup walks PATH SUFFIXES, so `/theme/anything/logo.svg` would
|
|
9
|
-
* serve `/logo.svg`; the same file becomes reachable at unbounded
|
|
10
|
-
* distinct URLs.
|
|
11
|
-
* - it probes `.html` / `index.html` by default, which would make a stray
|
|
12
|
-
* index.html a servable document on the IdP origin.
|
|
13
|
-
* - it performs no realpath containment check, so a symlink inside the
|
|
14
|
-
* mounted directory pointing outside it is served with a 200. A
|
|
15
|
-
* read-only mount does not prevent that, and refusing symlinks outright
|
|
16
|
-
* is not an option: a Kubernetes ConfigMap volume IS a symlink farm
|
|
17
|
-
* (`key -> ..data/key`).
|
|
18
|
-
*/
|
|
19
|
-
export declare function createThemeAssetsHandler(provider: IThemeProvider): Handler;
|
|
20
|
-
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/ui/theme/assets.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAQtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAI,OAAO,CAqG3E"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import "node:path";
|
|
2
|
-
import "node:url";
|
|
3
|
-
import.meta.url;
|
|
4
|
-
import { THEME_ASSET_CONTENT_TYPES, THEME_ASSET_EXTENSIONS } from "./contract/constants.mjs";
|
|
5
|
-
import { themeAssetExtension } from "./contract/utils.mjs";
|
|
6
|
-
import "./contract/index.mjs";
|
|
7
|
-
import { THEME_ASSET_CSP } from "./constants.mjs";
|
|
8
|
-
import path from "node:path";
|
|
9
|
-
import { HeaderName, defineCoreHandler, sendFile } from "routup";
|
|
10
|
-
import fs from "node:fs";
|
|
11
|
-
import { Readable } from "node:stream";
|
|
12
|
-
//#region src/adapters/http/ui/theme/assets.ts
|
|
13
|
-
const REQUEST_PATH_PATTERN = /^[a-z0-9][a-z0-9._/-]*$/i;
|
|
14
|
-
/**
|
|
15
|
-
* Serves the operator theme's `assets/` directory.
|
|
16
|
-
*
|
|
17
|
-
* Deliberately NOT `@routup/assets`' createHandler, for three reasons that
|
|
18
|
-
* matter for an operator-supplied root:
|
|
19
|
-
* - its lookup walks PATH SUFFIXES, so `/theme/anything/logo.svg` would
|
|
20
|
-
* serve `/logo.svg`; the same file becomes reachable at unbounded
|
|
21
|
-
* distinct URLs.
|
|
22
|
-
* - it probes `.html` / `index.html` by default, which would make a stray
|
|
23
|
-
* index.html a servable document on the IdP origin.
|
|
24
|
-
* - it performs no realpath containment check, so a symlink inside the
|
|
25
|
-
* mounted directory pointing outside it is served with a 200. A
|
|
26
|
-
* read-only mount does not prevent that, and refusing symlinks outright
|
|
27
|
-
* is not an option: a Kubernetes ConfigMap volume IS a symlink farm
|
|
28
|
-
* (`key -> ..data/key`).
|
|
29
|
-
*/ function createThemeAssetsHandler(provider) {
|
|
30
|
-
return defineCoreHandler(async (event) => {
|
|
31
|
-
const assetsPath = await provider.getAssetsPath();
|
|
32
|
-
if (!assetsPath) {
|
|
33
|
-
event.response.status = 404;
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
let requestPath = event.path;
|
|
37
|
-
const { mountPath } = event;
|
|
38
|
-
if (requestPath.startsWith(mountPath)) requestPath = requestPath.substring(mountPath.length);
|
|
39
|
-
if (requestPath.includes("%")) try {
|
|
40
|
-
requestPath = decodeURIComponent(requestPath);
|
|
41
|
-
} catch {
|
|
42
|
-
event.response.status = 404;
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
requestPath = requestPath.replace(/^\/+/, "");
|
|
46
|
-
const extension = themeAssetExtension(requestPath);
|
|
47
|
-
if (!requestPath || !REQUEST_PATH_PATTERN.test(requestPath) || requestPath.split("/").includes("..") || !THEME_ASSET_EXTENSIONS.includes(extension)) {
|
|
48
|
-
event.response.status = 404;
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
let root;
|
|
52
|
-
let filePath;
|
|
53
|
-
let stats;
|
|
54
|
-
try {
|
|
55
|
-
root = await fs.promises.realpath(assetsPath);
|
|
56
|
-
filePath = await fs.promises.realpath(path.join(assetsPath, requestPath));
|
|
57
|
-
stats = await fs.promises.stat(filePath);
|
|
58
|
-
} catch {
|
|
59
|
-
event.response.status = 404;
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
if (!stats.isFile() || filePath !== root && !filePath.startsWith(root + path.sep)) {
|
|
63
|
-
event.response.status = 404;
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
const etag = `W/"${stats.size}-${stats.mtime.getTime()}"`;
|
|
67
|
-
event.response.headers.set(HeaderName.CACHE_CONTROL, "public, max-age=0, must-revalidate");
|
|
68
|
-
if (event.headers.get(HeaderName.IF_NONE_MATCH) === etag) {
|
|
69
|
-
event.response.status = 304;
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
const response = await sendFile(event, {
|
|
73
|
-
content: (options) => Readable.toWeb(fs.createReadStream(filePath, options)),
|
|
74
|
-
stats: () => stats,
|
|
75
|
-
name: filePath
|
|
76
|
-
});
|
|
77
|
-
response.headers.set(HeaderName.CONTENT_TYPE, THEME_ASSET_CONTENT_TYPES[extension]);
|
|
78
|
-
response.headers.set("x-content-type-options", "nosniff");
|
|
79
|
-
response.headers.set("content-security-policy", THEME_ASSET_CSP);
|
|
80
|
-
return response;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
//#endregion
|
|
84
|
-
export { createThemeAssetsHandler };
|
|
85
|
-
|
|
86
|
-
//# sourceMappingURL=assets.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets.mjs","names":["fs","path","Readable","HeaderName","defineCoreHandler","sendFile","THEME_ASSET_CSP","THEME_ASSET_CONTENT_TYPES","THEME_ASSET_EXTENSIONS","themeAssetExtension","REQUEST_PATH_PATTERN","createThemeAssetsHandler","provider","event","assetsPath","getAssetsPath","response","status","requestPath","mountPath","startsWith","substring","length","includes","decodeURIComponent","replace","extension","test","split","root","filePath","stats","promises","realpath","join","stat","isFile","sep","etag","size","mtime","getTime","headers","set","CACHE_CONTROL","get","IF_NONE_MATCH","content","options","toWeb","createReadStream","name","CONTENT_TYPE"],"sources":["../../../../../src/adapters/http/ui/theme/assets.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 fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\nimport type { Handler } from 'routup';\nimport { HeaderName, defineCoreHandler, sendFile } from 'routup';\nimport { THEME_ASSET_CSP } from './constants.ts';\nimport {\n THEME_ASSET_CONTENT_TYPES,\n THEME_ASSET_EXTENSIONS,\n themeAssetExtension,\n} from './contract/index.ts';\nimport type { IThemeProvider } from './types.ts';\n\nconst REQUEST_PATH_PATTERN = /^[a-z0-9][a-z0-9._/-]*$/i;\n\n/**\n * Serves the operator theme's `assets/` directory.\n *\n * Deliberately NOT `@routup/assets`' createHandler, for three reasons that\n * matter for an operator-supplied root:\n * - its lookup walks PATH SUFFIXES, so `/theme/anything/logo.svg` would\n * serve `/logo.svg`; the same file becomes reachable at unbounded\n * distinct URLs.\n * - it probes `.html` / `index.html` by default, which would make a stray\n * index.html a servable document on the IdP origin.\n * - it performs no realpath containment check, so a symlink inside the\n * mounted directory pointing outside it is served with a 200. A\n * read-only mount does not prevent that, and refusing symlinks outright\n * is not an option: a Kubernetes ConfigMap volume IS a symlink farm\n * (`key -> ..data/key`).\n */\nexport function createThemeAssetsHandler(provider: IThemeProvider) : Handler {\n return defineCoreHandler(async (event) => {\n const assetsPath = await provider.getAssetsPath();\n if (!assetsPath) {\n event.response.status = 404;\n\n return null;\n }\n\n let requestPath = event.path;\n const { mountPath } = event;\n if (requestPath.startsWith(mountPath)) {\n requestPath = requestPath.substring(mountPath.length);\n }\n\n if (requestPath.includes('%')) {\n try {\n requestPath = decodeURIComponent(requestPath);\n } catch {\n event.response.status = 404;\n\n return null;\n }\n }\n\n requestPath = requestPath.replace(/^\\/+/, '');\n\n // The contract's own parser, so the set the handler serves cannot\n // drift from the set the manifest validator accepts.\n const extension = themeAssetExtension(requestPath);\n\n if (\n !requestPath ||\n !REQUEST_PATH_PATTERN.test(requestPath) ||\n requestPath.split('/').includes('..') ||\n !THEME_ASSET_EXTENSIONS.includes(extension)\n ) {\n event.response.status = 404;\n\n return null;\n }\n\n // Both the root and the file are realpathed HERE, per request, and\n // never cached. A Kubernetes ConfigMap update swaps the `..data`\n // symlink to a new timestamped directory and deletes the old one,\n // so a root realpath captured at boot dangles after the first\n // update and every asset 404s until the pod restarts.\n //\n // The realpath is also the control that survives a symlink pointing\n // out of the mount; the pattern check above is only the cheap first\n // pass. Resolving both within the same request keeps the comparison\n // consistent: a swap landing between the two calls fails closed\n // (a transient 404), never open.\n let root : string;\n let filePath : string;\n let stats : fs.Stats;\n try {\n root = await fs.promises.realpath(assetsPath);\n filePath = await fs.promises.realpath(path.join(assetsPath, requestPath));\n stats = await fs.promises.stat(filePath);\n } catch {\n event.response.status = 404;\n\n return null;\n }\n\n if (\n !stats.isFile() ||\n (filePath !== root && !filePath.startsWith(root + path.sep))\n ) {\n event.response.status = 404;\n\n return null;\n }\n\n const etag = `W/\"${stats.size}-${stats.mtime.getTime()}\"`;\n event.response.headers.set(HeaderName.CACHE_CONTROL, 'public, max-age=0, must-revalidate');\n\n if (event.headers.get(HeaderName.IF_NONE_MATCH) === etag) {\n event.response.status = 304;\n\n return null;\n }\n\n const response = await sendFile(event, {\n content: (options) => Readable.toWeb(\n fs.createReadStream(filePath, options),\n ) as ReadableStream,\n stats: () => stats,\n name: filePath,\n });\n\n // Pin the content type from our own extension map rather than\n // letting it be sniffed or inferred, and neutralize SVG as active\n // content (an SVG navigated to directly executes inline script).\n response.headers.set(HeaderName.CONTENT_TYPE, THEME_ASSET_CONTENT_TYPES[extension]);\n response.headers.set('x-content-type-options', 'nosniff');\n response.headers.set('content-security-policy', THEME_ASSET_CSP);\n\n return response;\n });\n}\n"],"mappings":";;;;;;;;;;;;AAoBA,MAAMU,uBAAuB;;;;;;;;;;;;;;;;GAkB7B,SAAgBC,yBAAyBC,UAAwB;CAC7D,OAAOR,kBAAkB,OAAOS,UAAAA;EAC5B,MAAMC,aAAa,MAAMF,SAASG,cAAa;EAC/C,IAAI,CAACD,YAAY;GACbD,MAAMG,SAASC,SAAS;GAExB,OAAO;EACX;EAEA,IAAIC,cAAcL,MAAMZ;EACxB,MAAM,EAAEkB,cAAcN;EACtB,IAAIK,YAAYE,WAAWD,SAAAA,GACvBD,cAAcA,YAAYG,UAAUF,UAAUG,MAAM;EAGxD,IAAIJ,YAAYK,SAAS,GAAA,GACrB,IAAI;GACAL,cAAcM,mBAAmBN,WAAAA;EACrC,QAAQ;GACJL,MAAMG,SAASC,SAAS;GAExB,OAAO;EACX;EAGJC,cAAcA,YAAYO,QAAQ,QAAQ,EAAA;EAI1C,MAAMC,YAAYjB,oBAAoBS,WAAAA;EAEtC,IACI,CAACA,eACD,CAACR,qBAAqBiB,KAAKT,WAAAA,KAC3BA,YAAYU,MAAM,GAAA,CAAA,CAAKL,SAAS,IAAA,KAChC,CAACf,uBAAuBe,SAASG,SAAAA,GACnC;GACEb,MAAMG,SAASC,SAAS;GAExB,OAAO;EACX;EAaA,IAAIY;EACJ,IAAIC;EACJ,IAAIC;EACJ,IAAI;GACAF,OAAO,MAAM7B,GAAGgC,SAASC,SAASnB,UAAAA;GAClCgB,WAAW,MAAM9B,GAAGgC,SAASC,SAAShC,KAAKiC,KAAKpB,YAAYI,WAAAA,CAAAA;GAC5Da,QAAQ,MAAM/B,GAAGgC,SAASG,KAAKL,QAAAA;EACnC,QAAQ;GACJjB,MAAMG,SAASC,SAAS;GAExB,OAAO;EACX;EAEA,IACI,CAACc,MAAMK,OAAM,KACZN,aAAaD,QAAQ,CAACC,SAASV,WAAWS,OAAO5B,KAAKoC,GAAG,GAC5D;GACExB,MAAMG,SAASC,SAAS;GAExB,OAAO;EACX;EAEA,MAAMqB,OAAO,MAAMP,MAAMQ,KAAK,GAAGR,MAAMS,MAAMC,QAAO,EAAG;EACvD5B,MAAMG,SAAS0B,QAAQC,IAAIxC,WAAWyC,eAAe,oCAAA;EAErD,IAAI/B,MAAM6B,QAAQG,IAAI1C,WAAW2C,aAAa,MAAMR,MAAM;GACtDzB,MAAMG,SAASC,SAAS;GAExB,OAAO;EACX;EAEA,MAAMD,WAAW,MAAMX,SAASQ,OAAO;GACnCkC,UAAUC,YAAY9C,SAAS+C,MAC3BjD,GAAGkD,iBAAiBpB,UAAUkB,OAAAA,CAAAA;GAElCjB,aAAaA;GACboB,MAAMrB;EACV,CAAA;EAKAd,SAAS0B,QAAQC,IAAIxC,WAAWiD,cAAc7C,0BAA0BmB,UAAU;EAClFV,SAAS0B,QAAQC,IAAI,0BAA0B,SAAA;EAC/C3B,SAAS0B,QAAQC,IAAI,2BAA2BrC,eAAAA;EAEhD,OAAOU;CACX,CAAA;AACJ"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SERVING constants. The theme's own vocabulary (layout, manifest, tokens,
|
|
3
|
-
* asset kinds) lives in contract/, which stays portable.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Debounce for the manifest mtime re-check. A burst of renders costs one
|
|
7
|
-
* stat; an edit takes effect on the next render after the window.
|
|
8
|
-
*/
|
|
9
|
-
export declare const THEME_MANIFEST_REVALIDATE_INTERVAL = 1000;
|
|
10
|
-
/**
|
|
11
|
-
* An SVG navigated to directly executes inline script, and a theme
|
|
12
|
-
* directory is exactly where operator SVGs land. This neutralizes that
|
|
13
|
-
* while leaving `<img>` and `background-image` rendering intact.
|
|
14
|
-
*/
|
|
15
|
-
export declare const THEME_ASSET_CSP = "default-src 'none'; style-src 'unsafe-inline'; img-src data:; sandbox";
|
|
16
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/ui/theme/constants.ts"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,eAAe,0EAA0E,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import "node:path";
|
|
2
|
-
import "node:url";
|
|
3
|
-
import.meta.url;
|
|
4
|
-
//#region src/adapters/http/ui/theme/constants.ts
|
|
5
|
-
/**
|
|
6
|
-
* SERVING constants. The theme's own vocabulary (layout, manifest, tokens,
|
|
7
|
-
* asset kinds) lives in contract/, which stays portable.
|
|
8
|
-
*/ /**
|
|
9
|
-
* Debounce for the manifest mtime re-check. A burst of renders costs one
|
|
10
|
-
* stat; an edit takes effect on the next render after the window.
|
|
11
|
-
*/ const THEME_MANIFEST_REVALIDATE_INTERVAL = 1e3;
|
|
12
|
-
/**
|
|
13
|
-
* An SVG navigated to directly executes inline script, and a theme
|
|
14
|
-
* directory is exactly where operator SVGs land. This neutralizes that
|
|
15
|
-
* while leaving `<img>` and `background-image` rendering intact.
|
|
16
|
-
*/ const THEME_ASSET_CSP = "default-src 'none'; style-src 'unsafe-inline'; img-src data:; sandbox";
|
|
17
|
-
//#endregion
|
|
18
|
-
export { THEME_ASSET_CSP, THEME_MANIFEST_REVALIDATE_INTERVAL };
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=constants.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["THEME_MANIFEST_REVALIDATE_INTERVAL","THEME_ASSET_CSP"],"sources":["../../../../../src/adapters/http/ui/theme/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\n/**\n * SERVING constants. The theme's own vocabulary (layout, manifest, tokens,\n * asset kinds) lives in contract/, which stays portable.\n */\n\n/**\n * Debounce for the manifest mtime re-check. A burst of renders costs one\n * stat; an edit takes effect on the next render after the window.\n */\nexport const THEME_MANIFEST_REVALIDATE_INTERVAL = 1_000;\n\n/**\n * An SVG navigated to directly executes inline script, and a theme\n * directory is exactly where operator SVGs land. This neutralizes that\n * while leaving `<img>` and `background-image` rendering intact.\n */\nexport const THEME_ASSET_CSP = \"default-src 'none'; style-src 'unsafe-inline'; img-src data:; sandbox\";\n"],"mappings":";;;;;;;;;;GAgBA,MAAaA,qCAAqC;;;;;GAOlD,MAAaC,kBAAkB"}
|