@authup/server-core 1.0.0-beta.41 → 1.0.0-beta.42
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/cache/module.mjs.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/data-source/singleton.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-scope/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-account/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/policy/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/realm/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/realm/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/robot/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/robot/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/scope/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/user/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/errors/conflict.d.ts +2 -2
- package/dist/adapters/database/errors/conflict.d.ts.map +1 -1
- package/dist/adapters/database/errors/conflict.mjs +6 -3
- package/dist/adapters/database/errors/conflict.mjs.map +1 -1
- package/dist/adapters/database/event-publisher/module.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/adapter.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
- package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
- package/dist/adapters/database/logger/module.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1673449341125-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1689597906910-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1718790373914-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1722673916392-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1740991051622-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1766830857009-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1774800953474-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1673449341125-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1689597906910-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1718790373914-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1722673916392-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1740991051622-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1766830857009-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1774800953474-Default.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +4 -4
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +4 -4
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client/module.mjs +10 -6
- package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -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 +19 -17
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.d.ts +3 -10
- package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.mjs +16 -49
- package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.d.ts +3 -7
- package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.mjs +16 -39
- package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/utils/attributes-validator.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs.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 +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/robot/module.mjs +11 -7
- package/dist/adapters/http/controllers/entities/robot/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user/module.mjs +7 -3
- package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/activate/validator.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +2 -2
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +3 -4
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs +3 -4
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/openid/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +6 -6
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/utils/validator.mjs.map +1 -1
- package/dist/adapters/http/index.mjs +4 -1
- package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/factory.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.mjs +5 -3
- package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +4 -1
- package/dist/adapters/http/middleware/built-in/loggedin/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/loggedin/user.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/loggedin/user.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/realm-resolver/factory.d.ts +4 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/factory.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs +14 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts +4 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/index.mjs +3 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts +9 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs +26 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts +5 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/swagger.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +3 -1
- package/dist/adapters/http/request/helpers/actor.d.ts +1 -1
- package/dist/adapters/http/request/helpers/actor.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/actor.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/identity.mjs +1 -1
- package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts +1 -0
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +2 -1
- package/dist/adapters/http/request/helpers/locations.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/param-id.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/realm-id.d.ts +5 -0
- package/dist/adapters/http/request/helpers/realm-id.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/realm-id.mjs +19 -0
- package/dist/adapters/http/request/helpers/realm-id.mjs.map +1 -0
- package/dist/adapters/http/request/helpers/scopes.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/token.mjs.map +1 -1
- package/dist/adapters/http/request/index.mjs +2 -1
- package/dist/adapters/http/request/permission/helper.mjs.map +1 -1
- package/dist/adapters/http/request/permission/module.mjs.map +1 -1
- package/dist/adapters/shared/ldap/factory.mjs.map +1 -1
- package/dist/adapters/shared/ldap/module.mjs.map +1 -1
- package/dist/app/builder.mjs.map +1 -1
- package/dist/app/factory.mjs.map +1 -1
- package/dist/app/modules/authentication/constants.mjs.map +1 -1
- package/dist/app/modules/authentication/module.mjs.map +1 -1
- package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
- package/dist/app/modules/cache/constants.mjs.map +1 -1
- package/dist/app/modules/cache/module.mjs.map +1 -1
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/module.mjs.map +1 -1
- package/dist/app/modules/config/normalize.mjs.map +1 -1
- package/dist/app/modules/config/parse.mjs.map +1 -1
- package/dist/app/modules/config/read/env.mjs.map +1 -1
- package/dist/app/modules/config/read/fs.mjs.map +1 -1
- package/dist/app/modules/config/read/module.mjs.map +1 -1
- package/dist/app/modules/constants.mjs.map +1 -1
- package/dist/app/modules/database/constants.mjs.map +1 -1
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-permission/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/client-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-role/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/client-role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-scope/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/client-scope/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +2 -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.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission-policy/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/permission-policy/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/policy/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/realm/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/robot/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/robot/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/robot/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/robot-permission/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/robot-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/robot-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/robot-role/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/robot-role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/robot-role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role-permission/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/role-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/scope/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-permission/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-role/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user-role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
- package/dist/app/modules/http/constants.mjs.map +1 -1
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +27 -19
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts +1 -0
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +10 -0
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/constants.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/mapper/role.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/robot.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
- package/dist/app/modules/ldap/constants.mjs.map +1 -1
- package/dist/app/modules/ldap/module.mjs.map +1 -1
- package/dist/app/modules/logger/constants.mjs.map +1 -1
- package/dist/app/modules/logger/module.mjs.map +1 -1
- package/dist/app/modules/mail/adapter/smtp/module.mjs.map +1 -1
- package/dist/app/modules/mail/adapter/smtp/smtp.mjs.map +1 -1
- package/dist/app/modules/mail/adapter/void.mjs.map +1 -1
- package/dist/app/modules/mail/constants.mjs.map +1 -1
- package/dist/app/modules/mail/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/authorize/code/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/scope/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
- package/dist/app/modules/runtime/module.mjs.map +1 -1
- package/dist/cli/commands/healthcheck.mjs.map +1 -1
- package/dist/cli/commands/migration.mjs.map +1 -1
- package/dist/cli/commands/reset.mjs.map +1 -1
- package/dist/cli/commands/start.mjs.map +1 -1
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/module.mjs.map +1 -1
- package/dist/components/database/unique-entries/factory.mjs.map +1 -1
- package/dist/components/database/unique-entries/module.mjs.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/base.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/robot/module.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/user/module.mjs.map +1 -1
- package/dist/core/authentication/entities/client/module.d.ts.map +1 -1
- package/dist/core/authentication/entities/client/module.mjs +7 -5
- package/dist/core/authentication/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/entities/robot/module.d.ts.map +1 -1
- package/dist/core/authentication/entities/robot/module.mjs +5 -4
- package/dist/core/authentication/entities/robot/module.mjs.map +1 -1
- package/dist/core/authentication/entities/user/module.d.ts.map +1 -1
- package/dist/core/authentication/entities/user/module.mjs +5 -4
- package/dist/core/authentication/entities/user/module.mjs.map +1 -1
- package/dist/core/authentication/module.mjs.map +1 -1
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/entities/client/service.d.ts +2 -3
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +8 -8
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/types.d.ts +1 -2
- package/dist/core/entities/client/types.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.d.ts +2 -3
- package/dist/core/entities/client-permission/service.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.mjs +8 -7
- package/dist/core/entities/client-permission/service.mjs.map +1 -1
- package/dist/core/entities/client-permission/types.d.ts +1 -2
- package/dist/core/entities/client-permission/types.d.ts.map +1 -1
- package/dist/core/entities/client-role/service.d.ts +2 -3
- package/dist/core/entities/client-role/service.d.ts.map +1 -1
- package/dist/core/entities/client-role/service.mjs +9 -8
- package/dist/core/entities/client-role/service.mjs.map +1 -1
- package/dist/core/entities/client-role/types.d.ts +1 -2
- package/dist/core/entities/client-role/types.d.ts.map +1 -1
- package/dist/core/entities/client-scope/service.d.ts +2 -3
- package/dist/core/entities/client-scope/service.d.ts.map +1 -1
- package/dist/core/entities/client-scope/service.mjs +7 -6
- package/dist/core/entities/client-scope/service.mjs.map +1 -1
- package/dist/core/entities/client-scope/types.d.ts +1 -2
- package/dist/core/entities/client-scope/types.d.ts.map +1 -1
- package/dist/core/entities/identity-provider/types.d.ts +1 -1
- package/dist/core/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/core/entities/identity-provider-role-mapping/service.d.ts +2 -3
- package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
- package/dist/core/entities/identity-provider-role-mapping/service.mjs +10 -9
- package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
- package/dist/core/entities/identity-provider-role-mapping/types.d.ts +1 -2
- package/dist/core/entities/identity-provider-role-mapping/types.d.ts.map +1 -1
- package/dist/core/entities/index.d.ts +0 -3
- package/dist/core/entities/index.d.ts.map +1 -1
- package/dist/core/entities/index.mjs +1 -2
- package/dist/core/entities/permission/service.d.ts +2 -3
- package/dist/core/entities/permission/service.d.ts.map +1 -1
- package/dist/core/entities/permission/service.mjs +8 -9
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/permission/types.d.ts +1 -2
- package/dist/core/entities/permission/types.d.ts.map +1 -1
- package/dist/core/entities/permission-policy/service.d.ts +2 -3
- package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
- package/dist/core/entities/permission-policy/service.mjs +7 -6
- package/dist/core/entities/permission-policy/service.mjs.map +1 -1
- package/dist/core/entities/permission-policy/types.d.ts +1 -2
- package/dist/core/entities/permission-policy/types.d.ts.map +1 -1
- package/dist/core/entities/policy/attributes-validator.mjs.map +1 -1
- package/dist/core/entities/policy/service.d.ts +2 -3
- package/dist/core/entities/policy/service.d.ts.map +1 -1
- package/dist/core/entities/policy/service.mjs +8 -8
- package/dist/core/entities/policy/service.mjs.map +1 -1
- package/dist/core/entities/policy/types.d.ts +1 -2
- package/dist/core/entities/policy/types.d.ts.map +1 -1
- package/dist/core/entities/realm/service.d.ts +2 -3
- package/dist/core/entities/realm/service.d.ts.map +1 -1
- package/dist/core/entities/realm/service.mjs +8 -8
- package/dist/core/entities/realm/service.mjs.map +1 -1
- package/dist/core/entities/realm/types.d.ts +1 -2
- package/dist/core/entities/realm/types.d.ts.map +1 -1
- package/dist/core/entities/robot/service.d.ts +2 -3
- package/dist/core/entities/robot/service.d.ts.map +1 -1
- package/dist/core/entities/robot/service.mjs +8 -8
- package/dist/core/entities/robot/service.mjs.map +1 -1
- package/dist/core/entities/robot/types.d.ts +1 -2
- package/dist/core/entities/robot/types.d.ts.map +1 -1
- package/dist/core/entities/robot-permission/service.d.ts +2 -3
- package/dist/core/entities/robot-permission/service.d.ts.map +1 -1
- package/dist/core/entities/robot-permission/service.mjs +8 -7
- package/dist/core/entities/robot-permission/service.mjs.map +1 -1
- package/dist/core/entities/robot-permission/types.d.ts +1 -2
- package/dist/core/entities/robot-permission/types.d.ts.map +1 -1
- package/dist/core/entities/robot-role/service.d.ts +2 -3
- package/dist/core/entities/robot-role/service.d.ts.map +1 -1
- package/dist/core/entities/robot-role/service.mjs +9 -8
- package/dist/core/entities/robot-role/service.mjs.map +1 -1
- package/dist/core/entities/robot-role/types.d.ts +1 -2
- package/dist/core/entities/robot-role/types.d.ts.map +1 -1
- package/dist/core/entities/role/service.d.ts +2 -3
- package/dist/core/entities/role/service.d.ts.map +1 -1
- package/dist/core/entities/role/service.mjs +8 -8
- package/dist/core/entities/role/service.mjs.map +1 -1
- package/dist/core/entities/role/types.d.ts +1 -2
- package/dist/core/entities/role/types.d.ts.map +1 -1
- package/dist/core/entities/role-attribute/service.d.ts +2 -3
- package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
- package/dist/core/entities/role-attribute/service.mjs +5 -5
- package/dist/core/entities/role-attribute/service.mjs.map +1 -1
- package/dist/core/entities/role-attribute/types.d.ts +1 -2
- package/dist/core/entities/role-attribute/types.d.ts.map +1 -1
- package/dist/core/entities/role-permission/service.d.ts +2 -3
- package/dist/core/entities/role-permission/service.d.ts.map +1 -1
- package/dist/core/entities/role-permission/service.mjs +8 -7
- package/dist/core/entities/role-permission/service.mjs.map +1 -1
- package/dist/core/entities/role-permission/types.d.ts +1 -2
- package/dist/core/entities/role-permission/types.d.ts.map +1 -1
- package/dist/core/entities/scope/service.d.ts +2 -3
- package/dist/core/entities/scope/service.d.ts.map +1 -1
- package/dist/core/entities/scope/service.mjs +8 -8
- package/dist/core/entities/scope/service.mjs.map +1 -1
- package/dist/core/entities/scope/types.d.ts +1 -2
- package/dist/core/entities/scope/types.d.ts.map +1 -1
- package/dist/core/entities/user/service.d.ts +2 -3
- package/dist/core/entities/user/service.d.ts.map +1 -1
- package/dist/core/entities/user/service.mjs +8 -8
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user/types.d.ts +1 -2
- package/dist/core/entities/user/types.d.ts.map +1 -1
- package/dist/core/entities/user-attribute/service.d.ts +2 -3
- package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
- package/dist/core/entities/user-attribute/service.mjs +8 -8
- package/dist/core/entities/user-attribute/service.mjs.map +1 -1
- package/dist/core/entities/user-attribute/types.d.ts +1 -2
- package/dist/core/entities/user-attribute/types.d.ts.map +1 -1
- package/dist/core/entities/user-permission/service.d.ts +2 -3
- package/dist/core/entities/user-permission/service.d.ts.map +1 -1
- package/dist/core/entities/user-permission/service.mjs +8 -7
- package/dist/core/entities/user-permission/service.mjs.map +1 -1
- package/dist/core/entities/user-permission/types.d.ts +1 -2
- package/dist/core/entities/user-permission/types.d.ts.map +1 -1
- package/dist/core/entities/user-role/service.d.ts +2 -3
- package/dist/core/entities/user-role/service.d.ts.map +1 -1
- package/dist/core/entities/user-role/service.mjs +9 -8
- package/dist/core/entities/user-role/service.mjs.map +1 -1
- package/dist/core/entities/user-role/types.d.ts +1 -2
- package/dist/core/entities/user-role/types.d.ts.map +1 -1
- package/dist/core/identity/index.d.ts +1 -0
- package/dist/core/identity/index.d.ts.map +1 -1
- package/dist/core/identity/index.mjs +4 -1
- package/dist/core/identity/password-recovery/check.d.ts +7 -0
- package/dist/core/identity/password-recovery/check.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/check.mjs +24 -0
- package/dist/core/identity/password-recovery/check.mjs.map +1 -0
- package/dist/core/identity/password-recovery/disabled.d.ts +6 -0
- package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/disabled.mjs +16 -0
- package/dist/core/identity/password-recovery/disabled.mjs.map +1 -0
- package/dist/core/identity/password-recovery/email-verification-required.d.ts +6 -0
- package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/email-verification-required.mjs +16 -0
- package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -0
- package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/service.mjs +10 -7
- package/dist/core/identity/password-recovery/service.mjs.map +1 -1
- package/dist/core/identity/password-recovery/token-expired.d.ts +6 -0
- package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/token-expired.mjs +16 -0
- package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -0
- package/dist/core/identity/permission/checker/index.d.ts +3 -0
- package/dist/core/identity/permission/checker/index.d.ts.map +1 -0
- package/dist/core/identity/permission/checker/index.mjs +2 -0
- package/dist/core/identity/permission/checker/service.d.ts +10 -0
- package/dist/core/identity/permission/checker/service.d.ts.map +1 -0
- package/dist/core/identity/permission/checker/service.mjs +55 -0
- package/dist/core/identity/permission/checker/service.mjs.map +1 -0
- package/dist/core/identity/permission/checker/types.d.ts +42 -0
- package/dist/core/identity/permission/checker/types.d.ts.map +1 -0
- package/dist/core/identity/permission/identity-policy-data.d.ts +4 -0
- package/dist/core/identity/permission/identity-policy-data.d.ts.map +1 -0
- package/dist/core/identity/permission/identity-policy-data.mjs +23 -0
- package/dist/core/identity/permission/identity-policy-data.mjs.map +1 -0
- package/dist/core/identity/permission/index.d.ts +1 -0
- package/dist/core/identity/permission/index.d.ts.map +1 -1
- package/dist/core/identity/permission/index.mjs +3 -1
- package/dist/core/identity/permission/module.mjs.map +1 -1
- package/dist/core/identity/policy/checker/index.d.ts +3 -0
- package/dist/core/identity/policy/checker/index.d.ts.map +1 -0
- package/dist/core/identity/policy/checker/index.mjs +2 -0
- package/dist/core/identity/policy/checker/service.d.ts +10 -0
- package/dist/core/identity/policy/checker/service.d.ts.map +1 -0
- package/dist/core/identity/policy/checker/service.mjs +46 -0
- package/dist/core/identity/policy/checker/service.mjs.map +1 -0
- package/dist/core/identity/policy/checker/types.d.ts +40 -0
- package/dist/core/identity/policy/checker/types.d.ts.map +1 -0
- package/dist/core/identity/policy/index.d.ts +2 -0
- package/dist/core/identity/policy/index.d.ts.map +1 -0
- package/dist/core/identity/policy/index.mjs +3 -0
- package/dist/core/identity/provider/account/module.d.ts.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/constants.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/factory.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/collection.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs +3 -2
- package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/module.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs +7 -4
- package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/attributes/module.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/base.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/permission/module.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/role/module.mjs.map +1 -1
- package/dist/core/identity/registration/check.d.ts +3 -0
- package/dist/core/identity/registration/check.d.ts.map +1 -0
- package/dist/core/identity/registration/check.mjs +12 -0
- package/dist/core/identity/registration/check.mjs.map +1 -0
- package/dist/core/identity/registration/error.d.ts +6 -0
- package/dist/core/identity/registration/error.d.ts.map +1 -0
- package/dist/core/identity/registration/error.mjs +16 -0
- package/dist/core/identity/registration/error.mjs.map +1 -0
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +4 -3
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/identity/resolver/entities/ldap/module.mjs.map +1 -1
- package/dist/core/identity/resolver/module.mjs.map +1 -1
- package/dist/core/identity/role/module.mjs.map +1 -1
- package/dist/core/index.mjs +5 -4
- package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code/verifier/module.mjs +8 -8
- package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.mjs +2 -2
- package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +8 -8
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
- package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/module.mjs +4 -4
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/state/module.mjs +4 -4
- package/dist/core/oauth2/authorization/state/module.mjs.map +1 -1
- package/dist/core/oauth2/client/authenticator.mjs +6 -6
- package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/base.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +1 -1
- package/dist/core/oauth2/helpers/{erorr.d.ts → error.d.ts} +1 -1
- package/dist/core/oauth2/helpers/error.d.ts.map +1 -0
- package/dist/core/oauth2/helpers/{erorr.mjs → error.mjs} +6 -7
- package/dist/core/oauth2/helpers/error.mjs.map +1 -0
- package/dist/core/oauth2/helpers/index.d.ts +1 -1
- package/dist/core/oauth2/helpers/index.mjs +1 -1
- package/dist/core/oauth2/openid/claims.mjs.map +1 -1
- package/dist/core/oauth2/response/bearer.mjs.map +1 -1
- package/dist/core/oauth2/scope/resolver.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
- package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
- package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
- package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
- package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/client/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/permission/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/robot/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/robot/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/role/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/role/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/root/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/scope/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/user/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/user/validator.mjs.map +1 -1
- package/dist/core/provisioning/strategy/normalize.mjs.map +1 -1
- package/dist/core/provisioning/strategy/validator.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/base.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.d.ts +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts +1 -1
- package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/robot/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/root/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
- package/dist/core/security/policy/engine.mjs.map +1 -1
- package/dist/core/security/policy/evaluator.mjs.map +1 -1
- package/dist/index.mjs +4 -1
- package/dist/path.mjs.map +1 -1
- package/dist/swagger.json +3125 -1269
- package/dist/ui/client/.vite/ssr-manifest.json +30 -35
- package/dist/ui/client/assets/index-BdPtpN2t.js +66 -0
- package/dist/ui/client/index.html +1 -1
- package/dist/ui/server/server.js +24261 -972
- package/dist/utils/error.d.ts +13 -0
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.mjs +26 -23
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/host.mjs.map +1 -1
- package/dist/utils/self-id.mjs.map +1 -1
- package/dist/utils/url.mjs.map +1 -1
- package/package.json +26 -27
- package/dist/core/entities/actor/index.d.ts +0 -2
- package/dist/core/entities/actor/index.d.ts.map +0 -1
- package/dist/core/entities/actor/types.d.ts +0 -7
- package/dist/core/entities/actor/types.d.ts.map +0 -1
- package/dist/core/entities/service.d.ts +0 -6
- package/dist/core/entities/service.d.ts.map +0 -1
- package/dist/core/entities/service.mjs +0 -21
- package/dist/core/entities/service.mjs.map +0 -1
- package/dist/core/entities/types.d.ts +0 -22
- package/dist/core/entities/types.d.ts.map +0 -1
- package/dist/core/oauth2/helpers/erorr.d.ts.map +0 -1
- package/dist/core/oauth2/helpers/erorr.mjs.map +0 -1
- package/dist/ui/client/assets/index-DJBdH-x_.js +0 -64
- /package/dist/{core/entities/actor → adapters/http/middleware/built-in/realm-resolver}/types.mjs +0 -0
- /package/dist/core/{entities → identity/permission/checker}/types.mjs +0 -0
- /package/dist/core/{entities/actor/index.mjs → identity/policy/checker/types.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["TypedToken","IdentityInjectionKey","Resolver","PermissionProvider","RoleProvider","ProviderAccountManager","ProviderLdapCollectionAuthenticator"],"sources":["../../../../src/app/modules/identity/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type {\n IIdentityPermissionProvider,\n IIdentityProviderAccountManager,\n IIdentityResolver,\n IIdentityRoleProvider,\n IdentityProviderLdapCollectionAuthenticator,\n} from '../../../core/index.ts';\n\nexport const IdentityInjectionKey = {\n Resolver: new TypedToken<IIdentityResolver>('Resolver'),\n PermissionProvider: new TypedToken<IIdentityPermissionProvider>('IdentityPermissionProvider'),\n RoleProvider: new TypedToken<IIdentityRoleProvider>('IdentityRoleProvider'),\n ProviderAccountManager: new TypedToken<IIdentityProviderAccountManager>('AccountManager'),\n ProviderLdapCollectionAuthenticator: new TypedToken<IdentityProviderLdapCollectionAuthenticator>('ProviderLdapCollectionAuthenticator'),\n} as const;\n"],"mappings":";;AAgBA,MAAaC,uBAAuB;CAChCC,UAAU,IAAIF,WAA8B,
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["TypedToken","IdentityInjectionKey","Resolver","PermissionProvider","RoleProvider","ProviderAccountManager","ProviderLdapCollectionAuthenticator"],"sources":["../../../../src/app/modules/identity/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type {\n IIdentityPermissionProvider,\n IIdentityProviderAccountManager,\n IIdentityResolver,\n IIdentityRoleProvider,\n IdentityProviderLdapCollectionAuthenticator,\n} from '../../../core/index.ts';\n\nexport const IdentityInjectionKey = {\n Resolver: new TypedToken<IIdentityResolver>('Resolver'),\n PermissionProvider: new TypedToken<IIdentityPermissionProvider>('IdentityPermissionProvider'),\n RoleProvider: new TypedToken<IIdentityRoleProvider>('IdentityRoleProvider'),\n ProviderAccountManager: new TypedToken<IIdentityProviderAccountManager>('AccountManager'),\n ProviderLdapCollectionAuthenticator: new TypedToken<IdentityProviderLdapCollectionAuthenticator>('ProviderLdapCollectionAuthenticator'),\n} as const;\n"],"mappings":";;AAgBA,MAAaC,uBAAuB;CAChCC,UAAU,IAAIF,WAA8B,UAAA;CAC5CG,oBAAoB,IAAIH,WAAwC,4BAAA;CAChEI,cAAc,IAAIJ,WAAkC,sBAAA;CACpDK,wBAAwB,IAAIL,WAA4C,gBAAA;CACxEM,qCAAqC,IAAIN,WAAwD,qCAAA;AACrG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["ClientIdentityRepository","IdentityProviderAccountRepository","IdentityProviderAttributeMappingRepository","IdentityProviderPermissionMappingRepository","IdentityProviderRoleMappingRepository","RobotIdentityRepository","UserIdentityRepository","DatabaseInjectionKey","IdentityProviderRepositoryAdapter","ClientEntity","IdentityProviderRepository","RealmEntity","RobotEntity","RoleEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientRepositoryAdapter","RobotRepositoryAdapter","RoleRepositoryAdapter","UserRepositoryAdapter","IdentityPermissionProvider","IdentityProviderAccountManager","IdentityProviderAttributeMapper","IdentityProviderLdapCollectionAuthenticator","IdentityProviderPermissionMapper","IdentityProviderRoleMapper","IdentityResolver","IdentityRoleProvider","LDAPInjectionKey","ModuleName","IdentityInjectionKey","IdentityModule","name","dependencies","IDENTITY","DATABASE","setup","container","dataSource","resolve","DataSource","realmRepository","clientRepository","robotRepository","userRepository","repository","userPermissionRepository","userRoleRepository","register","Resolver","useFactory","clientRepositoryAdapter","userRepositoryAdapter","robotRepositoryAdapter","roleRepositoryAdapter","RoleProvider","PermissionProvider","c","roleRepository","roleProvider","attributeMapperRepository","attributeMapper","roleMapperFinder","roleMapper","permissionMapperRepository","permissionMapper","providerAccountRepository","ProviderAccountManager","identityProviderRepository","ProviderLdapCollectionAuthenticator","accountManager","clientFactory","ClientFactory"],"sources":["../../../../src/app/modules/identity/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Client,\n Realm,\n Robot,\n Role,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientIdentityRepository,\n IdentityProviderAccountRepository,\n IdentityProviderAttributeMappingRepository,\n IdentityProviderPermissionMappingRepository,\n IdentityProviderRoleMappingRepository,\n RobotIdentityRepository,\n UserIdentityRepository,\n} from './repositories/index.ts';\nimport { DatabaseInjectionKey, IdentityProviderRepositoryAdapter } from '../database/index.ts';\nimport {\n ClientEntity,\n IdentityProviderRepository,\n RealmEntity,\n RobotEntity,\n RoleEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../adapters/database/domains/index.ts';\nimport {\n ClientRepositoryAdapter,\n RobotRepositoryAdapter,\n RoleRepositoryAdapter,\n UserRepositoryAdapter,\n} from '../database/repositories/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n IdentityPermissionProvider,\n IdentityProviderAccountManager,\n IdentityProviderAttributeMapper,\n IdentityProviderLdapCollectionAuthenticator,\n IdentityProviderPermissionMapper,\n IdentityProviderRoleMapper,\n IdentityResolver,\n IdentityRoleProvider,\n} from '../../../core/index.ts';\nimport { LDAPInjectionKey } from '../ldap/index.ts';\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { IdentityInjectionKey } from './constants.ts';\n\nexport class IdentityModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.IDENTITY;\n this.dependencies = [ModuleName.DATABASE];\n }\n\n async setup(container: IContainer): Promise<void> {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const clientRepository = new ClientIdentityRepository(\n container.resolve<Repository<Client>>(ClientEntity),\n );\n const robotRepository = new RobotIdentityRepository(\n container.resolve<Repository<Robot>>(RobotEntity),\n );\n const userRepository = new UserIdentityRepository({\n repository: new UserRepository(dataSource),\n userPermissionRepository: container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n userRoleRepository: container.resolve<Repository<UserRole>>(UserRoleEntity),\n });\n\n container.register(IdentityInjectionKey.Resolver, {\n useFactory: () => new IdentityResolver({\n clientRepository,\n robotRepository,\n userRepository,\n }),\n });\n\n // ---------------------------------------------\n\n const clientRepositoryAdapter = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const userRepositoryAdapter = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const robotRepositoryAdapter = new RobotRepositoryAdapter({\n repository: container.resolve<Repository<Robot>>(RobotEntity),\n realmRepository,\n });\n const roleRepositoryAdapter = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n\n container.register(IdentityInjectionKey.RoleProvider, {\n useFactory: () => new IdentityRoleProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n robotRepository: robotRepositoryAdapter,\n }),\n });\n\n container.register(IdentityInjectionKey.PermissionProvider, {\n useFactory: (c) => new IdentityPermissionProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n robotRepository: robotRepositoryAdapter,\n roleRepository: roleRepositoryAdapter,\n roleProvider: c.resolve(IdentityInjectionKey.RoleProvider),\n }),\n });\n\n // ---------------------------------------------\n\n const attributeMapperRepository = new IdentityProviderAttributeMappingRepository();\n const attributeMapper = new IdentityProviderAttributeMapper(attributeMapperRepository);\n\n const roleMapperFinder = new IdentityProviderRoleMappingRepository();\n const roleMapper = new IdentityProviderRoleMapper(roleMapperFinder);\n\n const permissionMapperRepository = new IdentityProviderPermissionMappingRepository();\n const permissionMapper = new IdentityProviderPermissionMapper(permissionMapperRepository);\n\n const providerAccountRepository = new IdentityProviderAccountRepository();\n\n container.register(IdentityInjectionKey.ProviderAccountManager, {\n useFactory: () => new IdentityProviderAccountManager({\n repository: providerAccountRepository,\n userRepository,\n attributeMapper,\n roleMapper,\n permissionMapper,\n }),\n });\n\n // ---------------------------------------------\n\n const identityProviderRepository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n container.register(IdentityInjectionKey.ProviderLdapCollectionAuthenticator, {\n useFactory: (c) => new IdentityProviderLdapCollectionAuthenticator({\n repository: identityProviderRepository,\n accountManager: c.resolve(IdentityInjectionKey.ProviderAccountManager),\n clientFactory: c.resolve(LDAPInjectionKey.ClientFactory),\n }),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,IAAagC,iBAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;AACV,OAAKD,OAAOH,WAAWK;AACvB,OAAKD,eAAe,CAACJ,WAAWM,SAAS;;CAG7C,MAAMC,MAAMC,WAAsC;EAC9C,MAAMC,aAAaD,UAAUE,QAAQjC,qBAAqBkC,WAAU;EACpE,MAAMC,kBAAkBJ,UAAUE,QAA2B7B,YAAAA;EAE7D,MAAMgC,mBAAmB,IAAI3C,yBACzBsC,UAAUE,QAA4B/B,aAAAA,CAAAA;EAE1C,MAAMmC,kBAAkB,IAAIvC,wBACxBiC,UAAUE,QAA2B5B,YAAAA,CAAAA;EAEzC,MAAMiC,iBAAiB,IAAIvC,uBAAuB;GAC9CwC,YAAY,IAAI/B,eAAewB,WAAAA;GAC/BQ,0BAA0BT,UAAUE,QAAoC1B,qBAAAA;GACxEkC,oBAAoBV,UAAUE,QAA8BxB,eAAAA;GAChE,CAAA;AAEAsB,YAAUW,SAASlB,qBAAqBmB,UAAU,EAC9CC,kBAAkB,IAAIxB,iBAAiB;GACnCgB;GACAC;GACAC;GACJ,CAAA,EACJ,CAAA;EAIA,MAAMO,0BAA0B,IAAInC,wBAAwB;GACxD6B,YAAYR,UAAUE,QAA4B/B,aAAAA;GAClDiC;GACJ,CAAA;EACA,MAAMW,wBAAwB,IAAIjC,sBAAsB;GACpD0B,YAAY,IAAI/B,eAAewB,WAAAA;GAC/BG;GACJ,CAAA;EACA,MAAMY,yBAAyB,IAAIpC,uBAAuB;GACtD4B,YAAYR,UAAUE,QAA2B5B,YAAAA;GACjD8B;GACJ,CAAA;EACA,MAAMa,wBAAwB,IAAIpC,sBAAsB;GACpD2B,YAAYR,UAAUE,QAA0B3B,WAAAA;GAChD6B;GACJ,CAAA;AAEAJ,YAAUW,SAASlB,qBAAqByB,cAAc,EAClDL,kBAAkB,IAAIvB,qBAAqB;GACvCe,kBAAkBS;GAClBP,gBAAgBQ;GAChBT,iBAAiBU;GACrB,CAAA,EACJ,CAAA;AAEAhB,YAAUW,SAASlB,qBAAqB0B,oBAAoB,EACxDN,aAAaO,MAAM,IAAIrC,2BAA2B;GAC9CsB,kBAAkBS;GAClBP,gBAAgBQ;GAChBT,iBAAiBU;GACjBK,gBAAgBJ;GAChBK,cAAcF,EAAElB,QAAQT,qBAAqByB,aAAY;GAC7D,CAAA,EACJ,CAAA;EAKA,MAAMM,kBAAkB,IAAIvC,gCAAgCsC,IADtB3D,4CACsB2D,CAAAA;EAG5D,MAAMG,aAAa,IAAItC,2BAA2BqC,IADrB3D,uCACqB2D,CAAAA;EAGlD,MAAMG,mBAAmB,IAAIzC,iCAAiCwC,IADvB9D,6CACuB8D,CAAAA;EAE9D,MAAME,4BAA4B,IAAIlE,mCAAAA;AAEtCqC,YAAUW,SAASlB,qBAAqBqC,wBAAwB,EAC5DjB,kBAAkB,IAAI7B,+BAA+B;GACjDwB,YAAYqB;GACZtB;GACAiB;GACAE;GACAE;GACJ,CAAA,EACJ,CAAA;EAIA,MAAMG,6BAA6B,IAAI7D,kCAAkC;GACrEsC,YAAY,IAAIpC,2BAA2B6B,WAAAA;GAC3CG,iBAAiBJ,UAAUE,QAA2B7B,YAAAA;GAC1D,CAAA;AACA2B,YAAUW,SAASlB,qBAAqBuC,qCAAqC,EACzEnB,aAAaO,MAAM,IAAIlC,4CAA4C;GAC/DsB,YAAYuB;GACZE,gBAAgBb,EAAElB,QAAQT,qBAAqBqC,uBAAsB;GACrEI,eAAed,EAAElB,QAAQX,iBAAiB4C,cAAa;GAC3D,CAAA,EACJ,CAAA"}
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["ClientIdentityRepository","IdentityProviderAccountRepository","IdentityProviderAttributeMappingRepository","IdentityProviderPermissionMappingRepository","IdentityProviderRoleMappingRepository","RobotIdentityRepository","UserIdentityRepository","DatabaseInjectionKey","IdentityProviderRepositoryAdapter","ClientEntity","IdentityProviderRepository","RealmEntity","RobotEntity","RoleEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientRepositoryAdapter","RobotRepositoryAdapter","RoleRepositoryAdapter","UserRepositoryAdapter","IdentityPermissionProvider","IdentityProviderAccountManager","IdentityProviderAttributeMapper","IdentityProviderLdapCollectionAuthenticator","IdentityProviderPermissionMapper","IdentityProviderRoleMapper","IdentityResolver","IdentityRoleProvider","LDAPInjectionKey","ModuleName","IdentityInjectionKey","IdentityModule","name","dependencies","IDENTITY","DATABASE","setup","container","dataSource","resolve","DataSource","realmRepository","clientRepository","robotRepository","userRepository","repository","userPermissionRepository","userRoleRepository","register","Resolver","useFactory","clientRepositoryAdapter","userRepositoryAdapter","robotRepositoryAdapter","roleRepositoryAdapter","RoleProvider","PermissionProvider","c","roleRepository","roleProvider","attributeMapperRepository","attributeMapper","roleMapperFinder","roleMapper","permissionMapperRepository","permissionMapper","providerAccountRepository","ProviderAccountManager","identityProviderRepository","ProviderLdapCollectionAuthenticator","accountManager","clientFactory","ClientFactory"],"sources":["../../../../src/app/modules/identity/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Client,\n Realm,\n Robot,\n Role,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientIdentityRepository,\n IdentityProviderAccountRepository,\n IdentityProviderAttributeMappingRepository,\n IdentityProviderPermissionMappingRepository,\n IdentityProviderRoleMappingRepository,\n RobotIdentityRepository,\n UserIdentityRepository,\n} from './repositories/index.ts';\nimport { DatabaseInjectionKey, IdentityProviderRepositoryAdapter } from '../database/index.ts';\nimport {\n ClientEntity,\n IdentityProviderRepository,\n RealmEntity,\n RobotEntity,\n RoleEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../adapters/database/domains/index.ts';\nimport {\n ClientRepositoryAdapter,\n RobotRepositoryAdapter,\n RoleRepositoryAdapter,\n UserRepositoryAdapter,\n} from '../database/repositories/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n IdentityPermissionProvider,\n IdentityProviderAccountManager,\n IdentityProviderAttributeMapper,\n IdentityProviderLdapCollectionAuthenticator,\n IdentityProviderPermissionMapper,\n IdentityProviderRoleMapper,\n IdentityResolver,\n IdentityRoleProvider,\n} from '../../../core/index.ts';\nimport { LDAPInjectionKey } from '../ldap/index.ts';\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { IdentityInjectionKey } from './constants.ts';\n\nexport class IdentityModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.IDENTITY;\n this.dependencies = [ModuleName.DATABASE];\n }\n\n async setup(container: IContainer): Promise<void> {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const clientRepository = new ClientIdentityRepository(\n container.resolve<Repository<Client>>(ClientEntity),\n );\n const robotRepository = new RobotIdentityRepository(\n container.resolve<Repository<Robot>>(RobotEntity),\n );\n const userRepository = new UserIdentityRepository({\n repository: new UserRepository(dataSource),\n userPermissionRepository: container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n userRoleRepository: container.resolve<Repository<UserRole>>(UserRoleEntity),\n });\n\n container.register(IdentityInjectionKey.Resolver, {\n useFactory: () => new IdentityResolver({\n clientRepository,\n robotRepository,\n userRepository,\n }),\n });\n\n // ---------------------------------------------\n\n const clientRepositoryAdapter = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const userRepositoryAdapter = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const robotRepositoryAdapter = new RobotRepositoryAdapter({\n repository: container.resolve<Repository<Robot>>(RobotEntity),\n realmRepository,\n });\n const roleRepositoryAdapter = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n\n container.register(IdentityInjectionKey.RoleProvider, {\n useFactory: () => new IdentityRoleProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n robotRepository: robotRepositoryAdapter,\n }),\n });\n\n container.register(IdentityInjectionKey.PermissionProvider, {\n useFactory: (c) => new IdentityPermissionProvider({\n clientRepository: clientRepositoryAdapter,\n userRepository: userRepositoryAdapter,\n robotRepository: robotRepositoryAdapter,\n roleRepository: roleRepositoryAdapter,\n roleProvider: c.resolve(IdentityInjectionKey.RoleProvider),\n }),\n });\n\n // ---------------------------------------------\n\n const attributeMapperRepository = new IdentityProviderAttributeMappingRepository();\n const attributeMapper = new IdentityProviderAttributeMapper(attributeMapperRepository);\n\n const roleMapperFinder = new IdentityProviderRoleMappingRepository();\n const roleMapper = new IdentityProviderRoleMapper(roleMapperFinder);\n\n const permissionMapperRepository = new IdentityProviderPermissionMappingRepository();\n const permissionMapper = new IdentityProviderPermissionMapper(permissionMapperRepository);\n\n const providerAccountRepository = new IdentityProviderAccountRepository();\n\n container.register(IdentityInjectionKey.ProviderAccountManager, {\n useFactory: () => new IdentityProviderAccountManager({\n repository: providerAccountRepository,\n userRepository,\n attributeMapper,\n roleMapper,\n permissionMapper,\n }),\n });\n\n // ---------------------------------------------\n\n const identityProviderRepository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n container.register(IdentityInjectionKey.ProviderLdapCollectionAuthenticator, {\n useFactory: (c) => new IdentityProviderLdapCollectionAuthenticator({\n repository: identityProviderRepository,\n accountManager: c.resolve(IdentityInjectionKey.ProviderAccountManager),\n clientFactory: c.resolve(LDAPInjectionKey.ClientFactory),\n }),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,IAAagC,iBAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAOH,WAAWK;EACvB,KAAKD,eAAe,CAACJ,WAAWM,QAAAA;CACpC;CAEA,MAAMC,MAAMC,WAAsC;EAC9C,MAAMC,aAAaD,UAAUE,QAAQjC,qBAAqBkC,UAAU;EACpE,MAAMC,kBAAkBJ,UAAUE,QAA2B7B,WAAAA;EAE7D,MAAMgC,mBAAmB,IAAI3C,yBACzBsC,UAAUE,QAA4B/B,YAAAA,CAAAA;EAE1C,MAAMmC,kBAAkB,IAAIvC,wBACxBiC,UAAUE,QAA2B5B,WAAAA,CAAAA;EAEzC,MAAMiC,iBAAiB,IAAIvC,uBAAuB;GAC9CwC,YAAY,IAAI/B,eAAewB,UAAAA;GAC/BQ,0BAA0BT,UAAUE,QAAoC1B,oBAAAA;GACxEkC,oBAAoBV,UAAUE,QAA8BxB,cAAAA;EAChE,CAAA;EAEAsB,UAAUW,SAASlB,qBAAqBmB,UAAU,EAC9CC,kBAAkB,IAAIxB,iBAAiB;GACnCgB;GACAC;GACAC;EACJ,CAAA,EACJ,CAAA;EAIA,MAAMO,0BAA0B,IAAInC,wBAAwB;GACxD6B,YAAYR,UAAUE,QAA4B/B,YAAAA;GAClDiC;EACJ,CAAA;EACA,MAAMW,wBAAwB,IAAIjC,sBAAsB;GACpD0B,YAAY,IAAI/B,eAAewB,UAAAA;GAC/BG;EACJ,CAAA;EACA,MAAMY,yBAAyB,IAAIpC,uBAAuB;GACtD4B,YAAYR,UAAUE,QAA2B5B,WAAAA;GACjD8B;EACJ,CAAA;EACA,MAAMa,wBAAwB,IAAIpC,sBAAsB;GACpD2B,YAAYR,UAAUE,QAA0B3B,UAAAA;GAChD6B;EACJ,CAAA;EAEAJ,UAAUW,SAASlB,qBAAqByB,cAAc,EAClDL,kBAAkB,IAAIvB,qBAAqB;GACvCe,kBAAkBS;GAClBP,gBAAgBQ;GAChBT,iBAAiBU;EACrB,CAAA,EACJ,CAAA;EAEAhB,UAAUW,SAASlB,qBAAqB0B,oBAAoB,EACxDN,aAAaO,MAAM,IAAIrC,2BAA2B;GAC9CsB,kBAAkBS;GAClBP,gBAAgBQ;GAChBT,iBAAiBU;GACjBK,gBAAgBJ;GAChBK,cAAcF,EAAElB,QAAQT,qBAAqByB,YAAY;EAC7D,CAAA,EACJ,CAAA;EAKA,MAAMM,kBAAkB,IAAIvC,gCAAgCsC,IADtB3D,2CACsB2D,CAAAA;EAG5D,MAAMG,aAAa,IAAItC,2BAA2BqC,IADrB3D,sCACqB2D,CAAAA;EAGlD,MAAMG,mBAAmB,IAAIzC,iCAAiCwC,IADvB9D,4CACuB8D,CAAAA;EAE9D,MAAME,4BAA4B,IAAIlE,kCAAAA;EAEtCqC,UAAUW,SAASlB,qBAAqBqC,wBAAwB,EAC5DjB,kBAAkB,IAAI7B,+BAA+B;GACjDwB,YAAYqB;GACZtB;GACAiB;GACAE;GACAE;EACJ,CAAA,EACJ,CAAA;EAIA,MAAMG,6BAA6B,IAAI7D,kCAAkC;GACrEsC,YAAY,IAAIpC,2BAA2B6B,UAAAA;GAC3CG,iBAAiBJ,UAAUE,QAA2B7B,WAAAA;EAC1D,CAAA;EACA2B,UAAUW,SAASlB,qBAAqBuC,qCAAqC,EACzEnB,aAAaO,MAAM,IAAIlC,4CAA4C;GAC/DsB,YAAYuB;GACZE,gBAAgBb,EAAElB,QAAQT,qBAAqBqC,sBAAsB;GACrEI,eAAed,EAAElB,QAAQX,iBAAiB4C,aAAa;EAC3D,CAAA,EACJ,CAAA;CACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","ClientIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","CLIENT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/client.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Client } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IClientIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class ClientIdentityRepository implements IClientIdentityRepository {\n private readonly repository: Repository<Client>;\n\n constructor(repository: Repository<Client>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Client | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Client | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Client | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Client | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Client | null> {\n const query = this.repository.createQueryBuilder('client')\n .leftJoinAndSelect('client.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('client.id = :id', { id: key });\n } else {\n query.where('client.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('client.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`client.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.CLIENT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;AAcA,IAAaG,2BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAAgC;
|
|
1
|
+
{"version":3,"file":"client.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","ClientIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","CLIENT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/client.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Client } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IClientIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class ClientIdentityRepository implements IClientIdentityRepository {\n private readonly repository: Repository<Client>;\n\n constructor(repository: Repository<Client>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Client | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Client | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Client | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Client | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Client | null> {\n const query = this.repository.createQueryBuilder('client')\n .leftJoinAndSelect('client.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('client.id = :id', { id: key });\n } else {\n query.where('client.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('client.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`client.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.CLIENT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;AAcA,IAAaG,2BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAAgC;EACxC,KAAKA,aAAaA;CACtB;CAEA,MAAMC,YAAYC,IAAoC;EAClD,OAAO,KAAKC,KAAKD,EAAAA;CACrB;CAEA,MAAME,cAAcF,IAAYG,OAAwC;EACpE,OAAO,KAAKF,KAAKD,IAAIG,KAAAA;CACzB;CAEA,MAAMC,kBAAkBC,UAAkBF,OAAwC;EAC9E,OAAO,KAAKF,KAAKI,UAAUF,KAAAA;CAC/B;CAEA,MAAMG,UAAUC,OAAoD;EAChE,OAAO,KAAKT,WAAWQ,UAAUC,KAAAA;CACrC;CAEA,MAAcN,KAAKO,KAAaC,UAA4C;EACxE,MAAMC,QAAQ,KAAKZ,WAAWa,mBAAmB,QAAA,EAC5CC,kBAAkB,gBAAgB,OAAA;EAEvC,MAAMC,OAAOlB,OAAOa,GAAAA;EACpB,IAAIK,MACAH,MAAMH,MAAM,mBAAmB,EAAEP,IAAIQ,IAAI,CAAA;OACtC;GACHE,MAAMH,MAAM,uBAAuB,EAAEO,MAAMN,IAAI,CAAA;GAE/C,IAAIC,UACA,IAAId,OAAOc,QAAAA,GACPC,MAAMK,SAAS,8BAA8B,EAAEC,SAASP,SAAS,CAAA;QAEjEC,MAAMK,SAAS,2BAA2B,EAAEE,WAAWR,SAAS,CAAA;EAG5E;EACA,MAAM,EAAES,YAAY,KAAKpB,WAAWqB;EACpC,KAAK,MAAMC,UAAUF,SACjB,IAAI,CAACE,OAAOC,UACRX,MAAMY,UAAU,UAAUF,OAAOG,cAAc;EAIvD,IAAIV,MACAH,MAAMc,MACF9B,kBAAkB;GACd+B,QAAQ7B,YAAY8B;GACpBlB;EACJ,CAAA,GACA,GAAA;EAIR,OAAOE,MAAMiB,OAAM;CACvB;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["useDataSource","IdentityProviderAccountEntity","IdentityProviderAccountRepository","findOneByProviderIdentity","identity","dataSource","repository","getRepository","findOne","where","provider_user_id","id","provider_id","provider","relations","save","entity"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/account/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderAccount } from '@authup/core-kit';\nimport type { DeepPartial } from 'typeorm';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderAccountRepository, IdentityProviderIdentity } from '../../../../../../core/index.ts';\nimport { IdentityProviderAccountEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderAccountRepository implements IIdentityProviderAccountRepository {\n async findOneByProviderIdentity(identity: IdentityProviderIdentity): Promise<IdentityProviderAccount | null> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderAccountEntity);\n\n return repository.findOne({\n where: {\n provider_user_id: identity.id,\n provider_id: identity.provider.id,\n },\n relations: ['user'],\n });\n }\n\n async save(entity: DeepPartial<IdentityProviderAccount>): Promise<IdentityProviderAccount> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderAccountEntity);\n\n return repository.save(entity);\n }\n}\n"],"mappings":";;;;AAaA,IAAaE,oCAAb,MAAaA;CACT,MAAMC,0BAA0BC,UAA6E;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["useDataSource","IdentityProviderAccountEntity","IdentityProviderAccountRepository","findOneByProviderIdentity","identity","dataSource","repository","getRepository","findOne","where","provider_user_id","id","provider_id","provider","relations","save","entity"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/account/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderAccount } from '@authup/core-kit';\nimport type { DeepPartial } from 'typeorm';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderAccountRepository, IdentityProviderIdentity } from '../../../../../../core/index.ts';\nimport { IdentityProviderAccountEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderAccountRepository implements IIdentityProviderAccountRepository {\n async findOneByProviderIdentity(identity: IdentityProviderIdentity): Promise<IdentityProviderAccount | null> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderAccountEntity);\n\n return repository.findOne({\n where: {\n provider_user_id: identity.id,\n provider_id: identity.provider.id,\n },\n relations: ['user'],\n });\n }\n\n async save(entity: DeepPartial<IdentityProviderAccount>): Promise<IdentityProviderAccount> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderAccountEntity);\n\n return repository.save(entity);\n }\n}\n"],"mappings":";;;;AAaA,IAAaE,oCAAb,MAAaA;CACT,MAAMC,0BAA0BC,UAA6E;EAIzG,QAFmBC,MADML,cAAAA,GACKO,cAAcN,6BAErCK,EAAWE,QAAQ;GACtBC,OAAO;IACHC,kBAAkBN,SAASO;IAC3BC,aAAaR,SAASS,SAASF;GACnC;GACAG,WAAW,CAAC,MAAA;EAChB,CAAA;CACJ;CAEA,MAAMC,KAAKC,QAAgF;EAIvF,QAFmBX,MADML,cAAAA,GACKO,cAAcN,6BAErCK,EAAWS,KAAKC,MAAAA;CAC3B;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute.mjs","names":["useDataSource","IdentityProviderAttributeMappingEntity","IdentityProviderAttributeMappingRepository","findByProviderId","providerId","dataSource","repository","getRepository","findBy","provider_id"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/mapper/attribute.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderAttributeMapping } from '@authup/core-kit';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderAttributeMappingRepository } from '../../../../../../core/index.ts';\nimport { IdentityProviderAttributeMappingEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderAttributeMappingRepository implements IIdentityProviderAttributeMappingRepository {\n async findByProviderId(providerId: string): Promise<IdentityProviderAttributeMapping[]> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderAttributeMappingEntity);\n\n return repository.findBy({ provider_id: providerId });\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,6CAAb,MAAaA;CACT,MAAMC,iBAAiBC,YAAiE;
|
|
1
|
+
{"version":3,"file":"attribute.mjs","names":["useDataSource","IdentityProviderAttributeMappingEntity","IdentityProviderAttributeMappingRepository","findByProviderId","providerId","dataSource","repository","getRepository","findBy","provider_id"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/mapper/attribute.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderAttributeMapping } from '@authup/core-kit';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderAttributeMappingRepository } from '../../../../../../core/index.ts';\nimport { IdentityProviderAttributeMappingEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderAttributeMappingRepository implements IIdentityProviderAttributeMappingRepository {\n async findByProviderId(providerId: string): Promise<IdentityProviderAttributeMapping[]> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderAttributeMappingEntity);\n\n return repository.findBy({ provider_id: providerId });\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,6CAAb,MAAaA;CACT,MAAMC,iBAAiBC,YAAiE;EAIpF,QAFmBC,MADML,cAAAA,GACKO,cAAcN,sCAErCK,EAAWE,OAAO,EAAEC,aAAaL,WAAW,CAAA;CACvD;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.mjs","names":["useDataSource","IdentityProviderPermissionMappingEntity","IdentityProviderPermissionMappingRepository","findByProviderId","providerId","dataSource","repository","getRepository","findBy","provider_id"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/mapper/permission.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderPermissionMapping } from '@authup/core-kit';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderPermissionMappingRepository } from '../../../../../../core/index.ts';\nimport { IdentityProviderPermissionMappingEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderPermissionMappingRepository implements IIdentityProviderPermissionMappingRepository {\n async findByProviderId(providerId: string): Promise<IdentityProviderPermissionMapping[]> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderPermissionMappingEntity);\n\n return repository.findBy({ provider_id: providerId });\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,8CAAb,MAAaA;CACT,MAAMC,iBAAiBC,YAAkE;
|
|
1
|
+
{"version":3,"file":"permission.mjs","names":["useDataSource","IdentityProviderPermissionMappingEntity","IdentityProviderPermissionMappingRepository","findByProviderId","providerId","dataSource","repository","getRepository","findBy","provider_id"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/mapper/permission.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderPermissionMapping } from '@authup/core-kit';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderPermissionMappingRepository } from '../../../../../../core/index.ts';\nimport { IdentityProviderPermissionMappingEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderPermissionMappingRepository implements IIdentityProviderPermissionMappingRepository {\n async findByProviderId(providerId: string): Promise<IdentityProviderPermissionMapping[]> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderPermissionMappingEntity);\n\n return repository.findBy({ provider_id: providerId });\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,8CAAb,MAAaA;CACT,MAAMC,iBAAiBC,YAAkE;EAIrF,QAFmBC,MADML,cAAAA,GACKO,cAAcN,uCAErCK,EAAWE,OAAO,EAAEC,aAAaL,WAAW,CAAA;CACvD;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.mjs","names":["useDataSource","IdentityProviderRoleMappingEntity","IdentityProviderRoleMappingRepository","findByProviderId","providerId","dataSource","repository","getRepository","findBy","provider_id"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/mapper/role.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderRoleMapping } from '@authup/core-kit';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderRoleMappingFinder } from '../../../../../../core/index.ts';\nimport { IdentityProviderRoleMappingEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderRoleMappingRepository implements IIdentityProviderRoleMappingFinder {\n async findByProviderId(providerId: string): Promise<IdentityProviderRoleMapping[]> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderRoleMappingEntity);\n\n return repository.findBy({ provider_id: providerId });\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,wCAAb,MAAaA;CACT,MAAMC,iBAAiBC,YAA4D;
|
|
1
|
+
{"version":3,"file":"role.mjs","names":["useDataSource","IdentityProviderRoleMappingEntity","IdentityProviderRoleMappingRepository","findByProviderId","providerId","dataSource","repository","getRepository","findBy","provider_id"],"sources":["../../../../../../../src/app/modules/identity/repositories/provider/mapper/role.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IdentityProviderRoleMapping } from '@authup/core-kit';\nimport { useDataSource } from 'typeorm-extension';\nimport type { IIdentityProviderRoleMappingFinder } from '../../../../../../core/index.ts';\nimport { IdentityProviderRoleMappingEntity } from '../../../../../../adapters/database/domains/index.ts';\n\nexport class IdentityProviderRoleMappingRepository implements IIdentityProviderRoleMappingFinder {\n async findByProviderId(providerId: string): Promise<IdentityProviderRoleMapping[]> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(IdentityProviderRoleMappingEntity);\n\n return repository.findBy({ provider_id: providerId });\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,wCAAb,MAAaA;CACT,MAAMC,iBAAiBC,YAA4D;EAI/E,QAFmBC,MADML,cAAAA,GACKO,cAAcN,iCAErCK,EAAWE,OAAO,EAAEC,aAAaL,WAAW,CAAA;CACvD;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"robot.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","RobotIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","ROBOT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/robot.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Robot } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IRobotIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class RobotIdentityRepository implements IRobotIdentityRepository {\n private readonly repository: Repository<Robot>;\n\n constructor(repository: Repository<Robot>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Robot | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Robot | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Robot | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Robot | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Robot | null> {\n const query = this.repository.createQueryBuilder('robot')\n .leftJoinAndSelect('robot.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('robot.id = :id', { id: key });\n } else {\n query.where('robot.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('robot.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`robot.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.ROBOT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;AAcA,IAAaG,0BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAA+B;
|
|
1
|
+
{"version":3,"file":"robot.mjs","names":["buildRedisKeyPath","isUUID","CachePrefix","RobotIdentityRepository","repository","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","ROBOT","getOne"],"sources":["../../../../../src/app/modules/identity/repositories/robot.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Robot } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IRobotIdentityRepository } from '../../../../core/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport class RobotIdentityRepository implements IRobotIdentityRepository {\n private readonly repository: Repository<Robot>;\n\n constructor(repository: Repository<Robot>) {\n this.repository = repository;\n }\n\n async findOneById(id: string): Promise<Robot | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<Robot | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<Robot | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<Robot | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<Robot | null> {\n const query = this.repository.createQueryBuilder('robot')\n .leftJoinAndSelect('robot.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('robot.id = :id', { id: key });\n } else {\n query.where('robot.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('robot.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`robot.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.ROBOT,\n key,\n }),\n 60_000,\n );\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;;;;AAcA,IAAaG,0BAAb,MAAaA;CACQC;CAEjB,YAAYA,YAA+B;EACvC,KAAKA,aAAaA;CACtB;CAEA,MAAMC,YAAYC,IAAmC;EACjD,OAAO,KAAKC,KAAKD,EAAAA;CACrB;CAEA,MAAME,cAAcF,IAAYG,OAAuC;EACnE,OAAO,KAAKF,KAAKD,IAAIG,KAAAA;CACzB;CAEA,MAAMC,kBAAkBC,UAAkBF,OAAuC;EAC7E,OAAO,KAAKF,KAAKI,UAAUF,KAAAA;CAC/B;CAEA,MAAMG,UAAUC,OAAmD;EAC/D,OAAO,KAAKT,WAAWQ,UAAUC,KAAAA;CACrC;CAEA,MAAcN,KAAKO,KAAaC,UAA2C;EACvE,MAAMC,QAAQ,KAAKZ,WAAWa,mBAAmB,OAAA,EAC5CC,kBAAkB,eAAe,OAAA;EAEtC,MAAMC,OAAOlB,OAAOa,GAAAA;EACpB,IAAIK,MACAH,MAAMH,MAAM,kBAAkB,EAAEP,IAAIQ,IAAI,CAAA;OACrC;GACHE,MAAMH,MAAM,sBAAsB,EAAEO,MAAMN,IAAI,CAAA;GAE9C,IAAIC,UACA,IAAId,OAAOc,QAAAA,GACPC,MAAMK,SAAS,6BAA6B,EAAEC,SAASP,SAAS,CAAA;QAEhEC,MAAMK,SAAS,2BAA2B,EAAEE,WAAWR,SAAS,CAAA;EAG5E;EAEA,MAAM,EAAES,YAAY,KAAKpB,WAAWqB;EACpC,KAAK,MAAMC,UAAUF,SACjB,IAAI,CAACE,OAAOC,UACRX,MAAMY,UAAU,SAASF,OAAOG,cAAc;EAItD,IAAIV,MACAH,MAAMc,MACF9B,kBAAkB;GACd+B,QAAQ7B,YAAY8B;GACpBlB;EACJ,CAAA,GACA,GAAA;EAIR,OAAOE,MAAMiB,OAAM;CACvB;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.mjs","names":["isUUID","buildRedisKeyPath","In","IdentityProviderMapperOperation","CachePrefix","UserIdentityRepository","repository","userPermissionRepository","userRoleRepository","ctx","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","USER","entity","getOne","extendOneWithEA","saveOneWithEA","user","extraAttributes","create","savePermissions","items","ids","map","item","value","idsToDelete","filter","operation","DELETE","entities","findBy","user_id","permission_id","entitiesToDelete","index","indexOf","push","length","remove","entitiesToCreate","CREATE","findIndex","user_realm_id","realm_id","permission_realm_id","save","saveRoles","role_id","role_realm_id"],"sources":["../../../../../src/app/modules/identity/repositories/user.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { User, UserPermission, UserRole } from '@authup/core-kit';\nimport { isUUID } from '@authup/kit';\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport type { Repository } from 'typeorm';\nimport { In } from 'typeorm';\nimport type { IUserIdentityRepository, IdentityProviderMapperElement } from '../../../../core/index.ts';\nimport { IdentityProviderMapperOperation } from '../../../../core/index.ts';\nimport type { UserRepository } from '../../../../adapters/database/domains/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport type UserIdentityRepositoryContext = {\n repository: UserRepository,\n userPermissionRepository: Repository<UserPermission>,\n userRoleRepository: Repository<UserRole>,\n};\n\nexport class UserIdentityRepository implements IUserIdentityRepository {\n private readonly repository: UserRepository;\n\n private readonly userPermissionRepository: Repository<UserPermission>;\n\n private readonly userRoleRepository: Repository<UserRole>;\n\n constructor(ctx: UserIdentityRepositoryContext) {\n this.repository = ctx.repository;\n this.userPermissionRepository = ctx.userPermissionRepository;\n this.userRoleRepository = ctx.userRoleRepository;\n }\n\n async findOneById(id: string): Promise<User | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<User | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<User | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<User | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<User | null> {\n const query = this.repository.createQueryBuilder('user')\n .leftJoinAndSelect('user.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('user.id = :id', { id: key });\n } else {\n query.where('user.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('user.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`user.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.USER,\n key,\n }),\n 60_000,\n );\n }\n\n const entity = await query.getOne();\n if (entity) {\n return this.repository.extendOneWithEA(entity);\n }\n\n return null;\n }\n\n async saveOneWithEA(user: Partial<User>, extraAttributes: Record<string, any>): Promise<User> {\n const entity = this.repository.create(user);\n return this.repository.saveOneWithEA(entity, extraAttributes);\n }\n\n async savePermissions(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userPermissionRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n permission_id: In(ids),\n });\n\n const entitiesToDelete : UserPermission[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.permission_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserPermission[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex(\n (entity) => entity.permission_id === item.value,\n );\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n permission_id: item.value as string,\n permission_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n\n async saveRoles(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userRoleRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n role_id: In(ids),\n });\n\n const entitiesToDelete : UserRole[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.role_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserRole[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex((entity) => entity.role_id === item.value);\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n role_id: item.value as string,\n role_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user.mjs","names":["isUUID","buildRedisKeyPath","In","IdentityProviderMapperOperation","CachePrefix","UserIdentityRepository","repository","userPermissionRepository","userRoleRepository","ctx","findOneById","id","find","findOneByName","realm","findOneByIdOrName","idOrName","findOneBy","where","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","isId","name","andWhere","realmId","realmName","columns","metadata","column","isSelect","addSelect","databaseName","cache","prefix","USER","entity","getOne","extendOneWithEA","saveOneWithEA","user","extraAttributes","create","savePermissions","items","ids","map","item","value","idsToDelete","filter","operation","DELETE","entities","findBy","user_id","permission_id","entitiesToDelete","index","indexOf","push","length","remove","entitiesToCreate","CREATE","findIndex","user_realm_id","realm_id","permission_realm_id","save","saveRoles","role_id","role_realm_id"],"sources":["../../../../../src/app/modules/identity/repositories/user.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { User, UserPermission, UserRole } from '@authup/core-kit';\nimport { isUUID } from '@authup/kit';\nimport { buildRedisKeyPath } from '@authup/server-kit';\nimport type { Repository } from 'typeorm';\nimport { In } from 'typeorm';\nimport type { IUserIdentityRepository, IdentityProviderMapperElement } from '../../../../core/index.ts';\nimport { IdentityProviderMapperOperation } from '../../../../core/index.ts';\nimport type { UserRepository } from '../../../../adapters/database/domains/index.ts';\nimport { CachePrefix } from '../../../../adapters/database/domains/index.ts';\n\nexport type UserIdentityRepositoryContext = {\n repository: UserRepository,\n userPermissionRepository: Repository<UserPermission>,\n userRoleRepository: Repository<UserRole>,\n};\n\nexport class UserIdentityRepository implements IUserIdentityRepository {\n private readonly repository: UserRepository;\n\n private readonly userPermissionRepository: Repository<UserPermission>;\n\n private readonly userRoleRepository: Repository<UserRole>;\n\n constructor(ctx: UserIdentityRepositoryContext) {\n this.repository = ctx.repository;\n this.userPermissionRepository = ctx.userPermissionRepository;\n this.userRoleRepository = ctx.userRoleRepository;\n }\n\n async findOneById(id: string): Promise<User | null> {\n return this.find(id);\n }\n\n async findOneByName(id: string, realm?: string): Promise<User | null> {\n return this.find(id, realm);\n }\n\n async findOneByIdOrName(idOrName: string, realm?: string): Promise<User | null> {\n return this.find(idOrName, realm);\n }\n\n async findOneBy(where: Record<string, any>): Promise<User | null> {\n return this.repository.findOneBy(where);\n }\n\n private async find(key: string, realmKey?: string) : Promise<User | null> {\n const query = this.repository.createQueryBuilder('user')\n .leftJoinAndSelect('user.realm', 'realm');\n\n const isId = isUUID(key);\n if (isId) {\n query.where('user.id = :id', { id: key });\n } else {\n query.where('user.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('user.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n const { columns } = this.repository.metadata;\n for (const column of columns) {\n if (!column.isSelect) {\n query.addSelect(`user.${column.databaseName}`);\n }\n }\n\n if (isId) {\n query.cache(\n buildRedisKeyPath({\n prefix: CachePrefix.USER,\n key,\n }),\n 60_000,\n );\n }\n\n const entity = await query.getOne();\n if (entity) {\n return this.repository.extendOneWithEA(entity);\n }\n\n return null;\n }\n\n async saveOneWithEA(user: Partial<User>, extraAttributes: Record<string, any>): Promise<User> {\n const entity = this.repository.create(user);\n return this.repository.saveOneWithEA(entity, extraAttributes);\n }\n\n async savePermissions(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userPermissionRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n permission_id: In(ids),\n });\n\n const entitiesToDelete : UserPermission[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.permission_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserPermission[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex(\n (entity) => entity.permission_id === item.value,\n );\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n permission_id: item.value as string,\n permission_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n\n async saveRoles(user: User, items: IdentityProviderMapperElement[]): Promise<void> {\n const { userRoleRepository: repository } = this;\n\n const ids = items.map((item) => item.value);\n\n const idsToDelete = items\n .filter((item) => item.operation === IdentityProviderMapperOperation.DELETE)\n .map((item) => item.value);\n\n const entities = await repository.findBy({\n user_id: user.id,\n role_id: In(ids),\n });\n\n const entitiesToDelete : UserRole[] = [];\n for (const entity of entities) {\n const index = idsToDelete.indexOf(entity.role_id);\n if (index === -1) {\n continue;\n }\n\n entitiesToDelete.push(entity);\n }\n\n if (entitiesToDelete.length > 0) {\n await repository.remove(entitiesToDelete);\n }\n\n const entitiesToCreate : UserRole[] = [];\n for (const item of items) {\n if (item.operation !== IdentityProviderMapperOperation.CREATE) {\n continue;\n }\n\n const index = entities.findIndex((entity) => entity.role_id === item.value);\n if (index !== -1) {\n continue;\n }\n\n const entity = repository.create({\n user_id: user.id,\n user_realm_id: user.realm_id,\n role_id: item.value as string,\n role_realm_id: item.realmId as string,\n });\n\n entitiesToCreate.push(entity);\n }\n\n if (entitiesToCreate.length > 0) {\n await repository.save(entitiesToCreate);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["TypedToken","LDAPInjectionKey","ClientFactory"],"sources":["../../../../src/app/modules/ldap/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type { ILdapClientFactory } from '../../../core/index.ts';\n\nexport const LDAPInjectionKey = { ClientFactory: new TypedToken<ILdapClientFactory>('ClientFactory') } as const;\n"],"mappings":";;AAUA,MAAaC,mBAAmB,EAAEC,eAAe,IAAIF,WAA+B,
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["TypedToken","LDAPInjectionKey","ClientFactory"],"sources":["../../../../src/app/modules/ldap/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type { ILdapClientFactory } from '../../../core/index.ts';\n\nexport const LDAPInjectionKey = { ClientFactory: new TypedToken<ILdapClientFactory>('ClientFactory') } as const;\n"],"mappings":";;AAUA,MAAaC,mBAAmB,EAAEC,eAAe,IAAIF,WAA+B,eAAA,EAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["LdapClientFactory","ModuleName","LDAPInjectionKey","LdapModule","name","LDAP","setup","container","register","ClientFactory","useFactory"],"sources":["../../../../src/app/modules/ldap/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { LdapClientFactory } from '../../../adapters/shared/ldap/index.ts';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { LDAPInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\n\nexport class LdapModule implements IModule {\n readonly name: string;\n\n constructor() {\n this.name = ModuleName.LDAP;\n }\n\n async setup(container: IContainer): Promise<void> {\n container.register(LDAPInjectionKey.ClientFactory, { useFactory: () => new LdapClientFactory() });\n }\n}\n"],"mappings":";;;;;AAaA,IAAaG,aAAb,MAAaA;CACAC;CAET,cAAc;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["LdapClientFactory","ModuleName","LDAPInjectionKey","LdapModule","name","LDAP","setup","container","register","ClientFactory","useFactory"],"sources":["../../../../src/app/modules/ldap/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { LdapClientFactory } from '../../../adapters/shared/ldap/index.ts';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { LDAPInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\n\nexport class LdapModule implements IModule {\n readonly name: string;\n\n constructor() {\n this.name = ModuleName.LDAP;\n }\n\n async setup(container: IContainer): Promise<void> {\n container.register(LDAPInjectionKey.ClientFactory, { useFactory: () => new LdapClientFactory() });\n }\n}\n"],"mappings":";;;;;AAaA,IAAaG,aAAb,MAAaA;CACAC;CAET,cAAc;EACV,KAAKA,OAAOH,WAAWI;CAC3B;CAEA,MAAMC,MAAMC,WAAsC;EAC9CA,UAAUC,SAASN,iBAAiBO,eAAe,EAAEC,kBAAkB,IAAIV,kBAAAA,EAAoB,CAAA;CACnG;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["TypedToken","LoggerInjectionKey"],"sources":["../../../../src/app/modules/logger/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Logger } from '@authup/server-kit';\nimport { TypedToken } from 'eldin';\n\nexport const LoggerInjectionKey = new TypedToken<Logger>('Logger');\n"],"mappings":";;AAUA,MAAaC,qBAAqB,IAAID,WAAmB,
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["TypedToken","LoggerInjectionKey"],"sources":["../../../../src/app/modules/logger/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Logger } from '@authup/server-kit';\nimport { TypedToken } from 'eldin';\n\nexport const LoggerInjectionKey = new TypedToken<Logger>('Logger');\n"],"mappings":";;AAUA,MAAaC,qBAAqB,IAAID,WAAmB,QAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["createLogger","createNoopLogger","setLoggerFactory","ModuleName","ConfigInjectionKey","LoggerInjectionKey","LoggerModule","name","dependencies","LOGGER","CONFIG","setup","container","result","tryResolve","success","data","logger","register","useFactory","env","directory","writableDirectoryPath"],"sources":["../../../../src/app/modules/logger/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createLogger, createNoopLogger, setLoggerFactory } from '@authup/server-kit';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport { LoggerInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\n\nexport class LoggerModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.LOGGER;\n this.dependencies = [ModuleName.CONFIG];\n }\n\n async setup(container: IContainer): Promise<void> {\n const result = container.tryResolve(ConfigInjectionKey);\n if (!result.success || !result.data.logger) {\n container.register(LoggerInjectionKey, { useFactory: createNoopLogger });\n\n return;\n }\n\n container.register(LoggerInjectionKey, {\n useFactory: () => createLogger({\n env: result.data.env,\n directory: result.data.writableDirectoryPath,\n }),\n });\n\n // todo: remove this\n setLoggerFactory(() => createLogger({\n env: result.data.env,\n directory: result.data.writableDirectoryPath,\n }));\n }\n\n // ----------------------------------------------------\n}\n"],"mappings":";;;;;;AAcA,IAAaM,eAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["createLogger","createNoopLogger","setLoggerFactory","ModuleName","ConfigInjectionKey","LoggerInjectionKey","LoggerModule","name","dependencies","LOGGER","CONFIG","setup","container","result","tryResolve","success","data","logger","register","useFactory","env","directory","writableDirectoryPath"],"sources":["../../../../src/app/modules/logger/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createLogger, createNoopLogger, setLoggerFactory } from '@authup/server-kit';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport { LoggerInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\n\nexport class LoggerModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.LOGGER;\n this.dependencies = [ModuleName.CONFIG];\n }\n\n async setup(container: IContainer): Promise<void> {\n const result = container.tryResolve(ConfigInjectionKey);\n if (!result.success || !result.data.logger) {\n container.register(LoggerInjectionKey, { useFactory: createNoopLogger });\n\n return;\n }\n\n container.register(LoggerInjectionKey, {\n useFactory: () => createLogger({\n env: result.data.env,\n directory: result.data.writableDirectoryPath,\n }),\n });\n\n // todo: remove this\n setLoggerFactory(() => createLogger({\n env: result.data.env,\n directory: result.data.writableDirectoryPath,\n }));\n }\n\n // ----------------------------------------------------\n}\n"],"mappings":";;;;;;AAcA,IAAaM,eAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAOJ,WAAWM;EACvB,KAAKD,eAAe,CAACL,WAAWO,MAAAA;CACpC;CAEA,MAAMC,MAAMC,WAAsC;EAC9C,MAAMC,SAASD,UAAUE,WAAWV,kBAAAA;EACpC,IAAI,CAACS,OAAOE,WAAW,CAACF,OAAOG,KAAKC,QAAQ;GACxCL,UAAUM,SAASb,oBAAoB,EAAEc,YAAYlB,iBAAiB,CAAA;GAEtE;EACJ;EAEAW,UAAUM,SAASb,oBAAoB,EACnCc,kBAAkBnB,aAAa;GAC3BoB,KAAKP,OAAOG,KAAKI;GACjBC,WAAWR,OAAOG,KAAKM;EAC3B,CAAA,EACJ,CAAA;EAGApB,uBAAuBF,aAAa;GAChCoB,KAAKP,OAAOG,KAAKI;GACjBC,WAAWR,OAAOG,KAAKM;EAC3B,CAAA,CAAA;CACJ;AAGJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["createTransport","createSMTPClient","options","transport","connectionString","auth","user","password","type","pass","host","port","secure","ssl","opportunisticTLS","starttls","tls","rejectUnauthorized"],"sources":["../../../../../../src/app/modules/mail/adapter/smtp/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createTransport } from 'nodemailer';\nimport type { SMTPClient, SMTPOptions } from './types.ts';\n\nexport function createSMTPClient(options?: SMTPOptions | string) : SMTPClient {\n let transport : SMTPClient;\n\n options = options || {};\n\n if (typeof options === 'string') {\n transport = createTransport(options);\n } else if (options.connectionString) {\n transport = createTransport(options.connectionString);\n } else {\n let auth: Record<string, any> | undefined;\n if (options.user && options.password) {\n auth = {\n type: 'login',\n user: options.user,\n pass: options.password,\n };\n }\n\n transport = createTransport({\n host: options.host,\n port: options.port,\n auth,\n secure: options.ssl,\n opportunisticTLS: options.starttls,\n tls: { rejectUnauthorized: false },\n });\n }\n\n return transport;\n}\n"],"mappings":";;AAUA,SAAgBC,iBAAiBC,SAA8B;CAC3D,IAAIC;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["createTransport","createSMTPClient","options","transport","connectionString","auth","user","password","type","pass","host","port","secure","ssl","opportunisticTLS","starttls","tls","rejectUnauthorized"],"sources":["../../../../../../src/app/modules/mail/adapter/smtp/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createTransport } from 'nodemailer';\nimport type { SMTPClient, SMTPOptions } from './types.ts';\n\nexport function createSMTPClient(options?: SMTPOptions | string) : SMTPClient {\n let transport : SMTPClient;\n\n options = options || {};\n\n if (typeof options === 'string') {\n transport = createTransport(options);\n } else if (options.connectionString) {\n transport = createTransport(options.connectionString);\n } else {\n let auth: Record<string, any> | undefined;\n if (options.user && options.password) {\n auth = {\n type: 'login',\n user: options.user,\n pass: options.password,\n };\n }\n\n transport = createTransport({\n host: options.host,\n port: options.port,\n auth,\n secure: options.ssl,\n opportunisticTLS: options.starttls,\n tls: { rejectUnauthorized: false },\n });\n }\n\n return transport;\n}\n"],"mappings":";;AAUA,SAAgBC,iBAAiBC,SAA8B;CAC3D,IAAIC;CAEJD,UAAUA,WAAW,CAAC;CAEtB,IAAI,OAAOA,YAAY,UACnBC,YAAYH,gBAAgBE,OAAAA;MACzB,IAAIA,QAAQE,kBACfD,YAAYH,gBAAgBE,QAAQE,gBAAgB;MACjD;EACH,IAAIC;EACJ,IAAIH,QAAQI,QAAQJ,QAAQK,UACxBF,OAAO;GACHG,MAAM;GACNF,MAAMJ,QAAQI;GACdG,MAAMP,QAAQK;EAClB;EAGJJ,YAAYH,gBAAgB;GACxBU,MAAMR,QAAQQ;GACdC,MAAMT,QAAQS;GACdN;GACAO,QAAQV,QAAQW;GAChBC,kBAAkBZ,QAAQa;GAC1BC,KAAK,EAAEC,oBAAoB,MAAM;EACrC,CAAA;CACJ;CAEA,OAAOd;AACX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smtp.mjs","names":["createSMTPClient","SMTPMailClientAdapter","transporter","input","createDriver","connectionString","send","options","sendMail"],"sources":["../../../../../../src/app/modules/mail/adapter/smtp/smtp.ts"],"sourcesContent":["/*\n * Copyright (c) 2025-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport type { IMailClient, MailSendOptions } from '../../../../../core/index.ts';\nimport { createSMTPClient } from './module.ts';\nimport type { SMTPOptions } from './types.ts';\n\nexport class SMTPMailClientAdapter implements IMailClient {\n protected transporter : Transporter;\n\n constructor(input: string | boolean | SMTPOptions) {\n this.transporter = this.createDriver(input);\n }\n\n protected createDriver(input: string | boolean | SMTPOptions) : Transporter {\n if (typeof input === 'boolean') {\n return createSMTPClient();\n }\n\n if (typeof input === 'string') {\n return createSMTPClient({ connectionString: input });\n }\n\n return createSMTPClient(input);\n }\n\n async send(options: MailSendOptions): Promise<any> {\n return this.transporter.sendMail(options);\n }\n}\n"],"mappings":";;AAYA,IAAaC,wBAAb,MAAaA;CACCC;CAEV,YAAYC,OAAuC;
|
|
1
|
+
{"version":3,"file":"smtp.mjs","names":["createSMTPClient","SMTPMailClientAdapter","transporter","input","createDriver","connectionString","send","options","sendMail"],"sources":["../../../../../../src/app/modules/mail/adapter/smtp/smtp.ts"],"sourcesContent":["/*\n * Copyright (c) 2025-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport type { IMailClient, MailSendOptions } from '../../../../../core/index.ts';\nimport { createSMTPClient } from './module.ts';\nimport type { SMTPOptions } from './types.ts';\n\nexport class SMTPMailClientAdapter implements IMailClient {\n protected transporter : Transporter;\n\n constructor(input: string | boolean | SMTPOptions) {\n this.transporter = this.createDriver(input);\n }\n\n protected createDriver(input: string | boolean | SMTPOptions) : Transporter {\n if (typeof input === 'boolean') {\n return createSMTPClient();\n }\n\n if (typeof input === 'string') {\n return createSMTPClient({ connectionString: input });\n }\n\n return createSMTPClient(input);\n }\n\n async send(options: MailSendOptions): Promise<any> {\n return this.transporter.sendMail(options);\n }\n}\n"],"mappings":";;AAYA,IAAaC,wBAAb,MAAaA;CACCC;CAEV,YAAYC,OAAuC;EAC/C,KAAKD,cAAc,KAAKE,aAAaD,KAAAA;CACzC;CAEUC,aAAaD,OAAqD;EACxE,IAAI,OAAOA,UAAU,WACjB,OAAOH,iBAAAA;EAGX,IAAI,OAAOG,UAAU,UACjB,OAAOH,iBAAiB,EAAEK,kBAAkBF,MAAM,CAAA;EAGtD,OAAOH,iBAAiBG,KAAAA;CAC5B;CAEA,MAAMG,KAAKC,SAAwC;EAC/C,OAAO,KAAKL,YAAYM,SAASD,OAAAA;CACrC;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"void.mjs","names":["VoidMailClientAdapter","send","_options","Promise","resolve","undefined"],"sources":["../../../../../src/app/modules/mail/adapter/void.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IMailClient, MailSendOptions } from '../../../../core/index.ts';\n\nexport class VoidMailClientAdapter implements IMailClient {\n send(_options: MailSendOptions): Promise<void> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";AASA,IAAaA,wBAAb,MAAaA;CACTC,KAAKC,UAA0C;
|
|
1
|
+
{"version":3,"file":"void.mjs","names":["VoidMailClientAdapter","send","_options","Promise","resolve","undefined"],"sources":["../../../../../src/app/modules/mail/adapter/void.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IMailClient, MailSendOptions } from '../../../../core/index.ts';\n\nexport class VoidMailClientAdapter implements IMailClient {\n send(_options: MailSendOptions): Promise<void> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";AASA,IAAaA,wBAAb,MAAaA;CACTC,KAAKC,UAA0C;EAC3C,OAAOC,QAAQC,QAAQC,KAAAA,CAAAA;CAC3B;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["TypedToken","MailInjectionKey"],"sources":["../../../../src/app/modules/mail/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type { IMailClient } from '../../../core/index.ts';\n\nexport const MailInjectionKey = new TypedToken<IMailClient>('Mail');\n"],"mappings":";;AAUA,MAAaC,mBAAmB,IAAID,WAAwB,
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["TypedToken","MailInjectionKey"],"sources":["../../../../src/app/modules/mail/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type { IMailClient } from '../../../core/index.ts';\n\nexport const MailInjectionKey = new TypedToken<IMailClient>('Mail');\n"],"mappings":";;AAUA,MAAaC,mBAAmB,IAAID,WAAwB,MAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["ModuleName","SMTPMailClientAdapter","VoidMailClientAdapter","MailInjectionKey","ConfigInjectionKey","MailModule","name","dependencies","MAIL","CONFIG","setup","container","result","tryResolve","success","data","smtp","register","useFactory"],"sources":["../../../../src/app/modules/mail/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { SMTPMailClientAdapter, VoidMailClientAdapter } from './adapter/index.ts';\nimport { MailInjectionKey } from './constants.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport type { IContainer } from 'eldin';\n\nexport class MailModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.MAIL;\n this.dependencies = [ModuleName.CONFIG];\n }\n\n async setup(container: IContainer): Promise<void> {\n const result = container.tryResolve(ConfigInjectionKey);\n if (!result.success || !result.data.smtp) {\n container.register(MailInjectionKey, { useFactory: () => new VoidMailClientAdapter() });\n\n return;\n }\n\n container.register(MailInjectionKey, { useFactory: () => new SMTPMailClientAdapter(result.data.smtp) });\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAaK,aAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["ModuleName","SMTPMailClientAdapter","VoidMailClientAdapter","MailInjectionKey","ConfigInjectionKey","MailModule","name","dependencies","MAIL","CONFIG","setup","container","result","tryResolve","success","data","smtp","register","useFactory"],"sources":["../../../../src/app/modules/mail/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { SMTPMailClientAdapter, VoidMailClientAdapter } from './adapter/index.ts';\nimport { MailInjectionKey } from './constants.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport type { IContainer } from 'eldin';\n\nexport class MailModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.MAIL;\n this.dependencies = [ModuleName.CONFIG];\n }\n\n async setup(container: IContainer): Promise<void> {\n const result = container.tryResolve(ConfigInjectionKey);\n if (!result.success || !result.data.smtp) {\n container.register(MailInjectionKey, { useFactory: () => new VoidMailClientAdapter() });\n\n return;\n }\n\n container.register(MailInjectionKey, { useFactory: () => new SMTPMailClientAdapter(result.data.smtp) });\n }\n}\n"],"mappings":";;;;;;;;AAcA,IAAaK,aAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAON,WAAWQ;EACvB,KAAKD,eAAe,CAACP,WAAWS,MAAAA;CACpC;CAEA,MAAMC,MAAMC,WAAsC;EAC9C,MAAMC,SAASD,UAAUE,WAAWT,kBAAAA;EACpC,IAAI,CAACQ,OAAOE,WAAW,CAACF,OAAOG,KAAKC,MAAM;GACtCL,UAAUM,SAASd,kBAAkB,EAAEe,kBAAkB,IAAIhB,sBAAAA,EAAwB,CAAA;GAErF;EACJ;EAEAS,UAAUM,SAASd,kBAAkB,EAAEe,kBAAkB,IAAIjB,sBAAsBW,OAAOG,KAAKC,IAAI,EAAE,CAAA;CACzG;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["TypedToken","OAuth2InjectionToken","ClientRepository","ScopeRepository","AuthorizationCodeIssuer","AuthorizationCodeRepository","AuthorizationCodeVerifier","AuthorizationStateManager","AuthorizationCodeRequestVerifier","AuthorizationStateRepository","KeyRepository","AccessTokenIssuer","OpenIDTokenIssuer","RefreshTokenIssuer","TokenRepository","TokenRevoker","TokenSigner","TokenVerifier"],"sources":["../../../../src/app/modules/oauth2/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type {\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRepository,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationCodeVerifier,\n IOAuth2AuthorizationStateManager,\n IOAuth2AuthorizeStateRepository,\n IOAuth2ClientRepository,\n IOAuth2KeyRepository,\n IOAuth2OpenIDTokenIssuer,\n IOAuth2ScopeRepository,\n IOAuth2TokenIssuer,\n IOAuth2TokenRepository,\n IOAuth2TokenRevoker,\n IOAuth2TokenSigner,\n IOAuth2TokenVerifier,\n} from '../../../core/index.ts';\n\nexport const OAuth2InjectionToken = {\n ClientRepository: new TypedToken<IOAuth2ClientRepository>('ClientRepository'),\n ScopeRepository: new TypedToken<IOAuth2ScopeRepository>('ScopeRepository'),\n\n AuthorizationCodeIssuer: new TypedToken<IOAuth2AuthorizationCodeIssuer>('AuthorizationCodeIssuer'),\n AuthorizationCodeRepository: new TypedToken<IOAuth2AuthorizationCodeRepository>('AuthorizationCodeRepository'),\n AuthorizationCodeVerifier: new TypedToken<IOAuth2AuthorizationCodeVerifier>('AuthorizationCodeVerifier'),\n AuthorizationStateManager: new TypedToken<IOAuth2AuthorizationStateManager>('AuthorizationStateManager'),\n AuthorizationCodeRequestVerifier: new TypedToken<IOAuth2AuthorizationCodeRequestVerifier>('AuthorizationCodeRequestVerifier'),\n\n AuthorizationStateRepository: new TypedToken<IOAuth2AuthorizeStateRepository>('AuthorizationStateRepository'),\n\n KeyRepository: new TypedToken<IOAuth2KeyRepository>('KeyRepository'),\n\n AccessTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('AccessTokenIssuer'),\n OpenIDTokenIssuer: new TypedToken<IOAuth2OpenIDTokenIssuer>('OpenIDTokenIssuer'),\n RefreshTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('RefreshTokenIssuer'),\n\n TokenRepository: new TypedToken<IOAuth2TokenRepository>('TokenRepository'),\n TokenRevoker: new TypedToken<IOAuth2TokenRevoker>('TokenRevoker'),\n TokenSigner: new TypedToken<IOAuth2TokenSigner>('TokenSigner'),\n TokenVerifier: new TypedToken<IOAuth2TokenVerifier>('TokenVerifier'),\n} as const;\n"],"mappings":";;AA0BA,MAAaC,uBAAuB;CAChCC,kBAAkB,IAAIF,WAAoC,
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["TypedToken","OAuth2InjectionToken","ClientRepository","ScopeRepository","AuthorizationCodeIssuer","AuthorizationCodeRepository","AuthorizationCodeVerifier","AuthorizationStateManager","AuthorizationCodeRequestVerifier","AuthorizationStateRepository","KeyRepository","AccessTokenIssuer","OpenIDTokenIssuer","RefreshTokenIssuer","TokenRepository","TokenRevoker","TokenSigner","TokenVerifier"],"sources":["../../../../src/app/modules/oauth2/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TypedToken } from 'eldin';\nimport type {\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRepository,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationCodeVerifier,\n IOAuth2AuthorizationStateManager,\n IOAuth2AuthorizeStateRepository,\n IOAuth2ClientRepository,\n IOAuth2KeyRepository,\n IOAuth2OpenIDTokenIssuer,\n IOAuth2ScopeRepository,\n IOAuth2TokenIssuer,\n IOAuth2TokenRepository,\n IOAuth2TokenRevoker,\n IOAuth2TokenSigner,\n IOAuth2TokenVerifier,\n} from '../../../core/index.ts';\n\nexport const OAuth2InjectionToken = {\n ClientRepository: new TypedToken<IOAuth2ClientRepository>('ClientRepository'),\n ScopeRepository: new TypedToken<IOAuth2ScopeRepository>('ScopeRepository'),\n\n AuthorizationCodeIssuer: new TypedToken<IOAuth2AuthorizationCodeIssuer>('AuthorizationCodeIssuer'),\n AuthorizationCodeRepository: new TypedToken<IOAuth2AuthorizationCodeRepository>('AuthorizationCodeRepository'),\n AuthorizationCodeVerifier: new TypedToken<IOAuth2AuthorizationCodeVerifier>('AuthorizationCodeVerifier'),\n AuthorizationStateManager: new TypedToken<IOAuth2AuthorizationStateManager>('AuthorizationStateManager'),\n AuthorizationCodeRequestVerifier: new TypedToken<IOAuth2AuthorizationCodeRequestVerifier>('AuthorizationCodeRequestVerifier'),\n\n AuthorizationStateRepository: new TypedToken<IOAuth2AuthorizeStateRepository>('AuthorizationStateRepository'),\n\n KeyRepository: new TypedToken<IOAuth2KeyRepository>('KeyRepository'),\n\n AccessTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('AccessTokenIssuer'),\n OpenIDTokenIssuer: new TypedToken<IOAuth2OpenIDTokenIssuer>('OpenIDTokenIssuer'),\n RefreshTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('RefreshTokenIssuer'),\n\n TokenRepository: new TypedToken<IOAuth2TokenRepository>('TokenRepository'),\n TokenRevoker: new TypedToken<IOAuth2TokenRevoker>('TokenRevoker'),\n TokenSigner: new TypedToken<IOAuth2TokenSigner>('TokenSigner'),\n TokenVerifier: new TypedToken<IOAuth2TokenVerifier>('TokenVerifier'),\n} as const;\n"],"mappings":";;AA0BA,MAAaC,uBAAuB;CAChCC,kBAAkB,IAAIF,WAAoC,kBAAA;CAC1DG,iBAAiB,IAAIH,WAAmC,iBAAA;CAExDI,yBAAyB,IAAIJ,WAA2C,yBAAA;CACxEK,6BAA6B,IAAIL,WAA+C,6BAAA;CAChFM,2BAA2B,IAAIN,WAA6C,2BAAA;CAC5EO,2BAA2B,IAAIP,WAA6C,2BAAA;CAC5EQ,kCAAkC,IAAIR,WAAoD,kCAAA;CAE1FS,8BAA8B,IAAIT,WAA4C,8BAAA;CAE9EU,eAAe,IAAIV,WAAiC,eAAA;CAEpDW,mBAAmB,IAAIX,WAA+B,mBAAA;CACtDY,mBAAmB,IAAIZ,WAAqC,mBAAA;CAC5Da,oBAAoB,IAAIb,WAA+B,oBAAA;CAEvDc,iBAAiB,IAAId,WAAmC,iBAAA;CACxDe,cAAc,IAAIf,WAAgC,cAAA;CAClDgB,aAAa,IAAIhB,WAA+B,aAAA;CAChDiB,eAAe,IAAIjB,WAAiC,eAAA;AACxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["CacheInjectionKey","ModuleName","OAuth2AuthorizationCodeRepository","OAuth2AuthorizationStateRepository","OAuth2ClientRepository","OAuth2KeyRepository","OAuth2ScopeRepository","OAuth2TokenRepository","OAuth2AccessTokenIssuer","OAuth2AuthorizationCodeIssuer","OAuth2AuthorizationCodeRequestVerifier","OAuth2AuthorizationCodeVerifier","OAuth2AuthorizationStateManager","OAuth2OpenIDTokenIssuer","OAuth2RefreshTokenIssuer","OAuth2TokenRevoker","OAuth2TokenSigner","OAuth2TokenVerifier","OAuth2InjectionToken","IdentityInjectionKey","ClientEntity","ClientScopeEntity","ConfigInjectionKey","OAuth2Module","name","dependencies","OAUTH2","DATABASE","CACHE","CONFIG","IDENTITY","setup","container","config","resolve","register","ClientRepository","useFactory","c","repository","ScopeRepository","AuthorizationCodeRepository","cache","AuthorizationStateRepository","TokenRepository","KeyRepository","TokenSigner","keyRepository","AuthorizationCodeIssuer","codeRepository","maxAge","tokenAccessMaxAge","AuthorizationCodeVerifier","AuthorizationCodeRequestVerifier","clientRepository","clientScopeRepository","scopeRepository","AuthorizationStateManager","stateRepository","TokenRevoker","tokenRepository","TokenVerifier","AccessTokenIssuer","tokenSigner","identityRoleProvider","RoleProvider","issuer","publicUrl","RefreshTokenIssuer","tokenRefreshMaxAge","OpenIDTokenIssuer","signer","identityResolver","Resolver","options"],"sources":["../../../../src/app/modules/oauth2/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Repository } from 'typeorm';\nimport { CacheInjectionKey } from '../cache/index.ts';\nimport type { IContainer } from 'eldin';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\n\nimport {\n OAuth2AuthorizationCodeRepository,\n OAuth2AuthorizationStateRepository,\n OAuth2ClientRepository,\n OAuth2KeyRepository,\n OAuth2ScopeRepository,\n OAuth2TokenRepository,\n} from './repositories/index.ts';\nimport {\n OAuth2AccessTokenIssuer,\n OAuth2AuthorizationCodeIssuer,\n OAuth2AuthorizationCodeRequestVerifier,\n OAuth2AuthorizationCodeVerifier,\n OAuth2AuthorizationStateManager,\n OAuth2OpenIDTokenIssuer,\n OAuth2RefreshTokenIssuer,\n OAuth2TokenRevoker,\n OAuth2TokenSigner,\n OAuth2TokenVerifier,\n} from '../../../core/index.ts';\nimport { OAuth2InjectionToken } from './constants.ts';\nimport { IdentityInjectionKey } from '../identity/index.ts';\nimport { ClientEntity, ClientScopeEntity } from '../../../adapters/database/domains/index.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\n\nexport class OAuth2Module implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.OAUTH2;\n this.dependencies = [ModuleName.DATABASE, ModuleName.CACHE, ModuleName.CONFIG, ModuleName.IDENTITY];\n }\n\n async setup(container: IContainer) : Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n container.register(OAuth2InjectionToken.ClientRepository, {\n useFactory: (c) => {\n const repository = c.resolve<Repository<ClientEntity>>(ClientEntity);\n return new OAuth2ClientRepository(repository);\n },\n });\n\n container.register(OAuth2InjectionToken.ScopeRepository, {\n useFactory: (c) => {\n const repository = c.resolve<Repository<ClientScopeEntity>>(ClientScopeEntity);\n return new OAuth2ScopeRepository(repository);\n },\n });\n\n container.register(OAuth2InjectionToken.AuthorizationCodeRepository, {\n useFactory: (c) => {\n const cache = c.resolve(CacheInjectionKey);\n return new OAuth2AuthorizationCodeRepository(cache);\n },\n });\n\n container.register(OAuth2InjectionToken.AuthorizationStateRepository, {\n useFactory: (c) => {\n const cache = c.resolve(CacheInjectionKey);\n return new OAuth2AuthorizationStateRepository(cache);\n },\n });\n\n container.register(OAuth2InjectionToken.TokenRepository, {\n useFactory: (c) => {\n const cache = c.resolve(CacheInjectionKey);\n return new OAuth2TokenRepository(cache);\n },\n });\n\n container.register(OAuth2InjectionToken.KeyRepository, {\n // todo: cache use here\n useFactory: () => new OAuth2KeyRepository(),\n });\n\n container.register(OAuth2InjectionToken.TokenSigner, {\n useFactory: (c) => {\n const keyRepository = c.resolve(OAuth2InjectionToken.KeyRepository);\n return new OAuth2TokenSigner(keyRepository);\n },\n });\n\n // authorization code issuer\n container.register(OAuth2InjectionToken.AuthorizationCodeIssuer, {\n useFactory: (c) => {\n const codeRepository = c.resolve(OAuth2InjectionToken.AuthorizationCodeRepository);\n\n return new OAuth2AuthorizationCodeIssuer(\n codeRepository,\n {\n // todo: own constant here\n maxAge: config.tokenAccessMaxAge,\n },\n );\n },\n });\n container.register(OAuth2InjectionToken.AuthorizationCodeVerifier, {\n useFactory: (c) => {\n const codeRepository = c.resolve(OAuth2InjectionToken.AuthorizationCodeRepository);\n\n return new OAuth2AuthorizationCodeVerifier(codeRepository);\n },\n });\n\n // authorization code request verifier\n container.register(OAuth2InjectionToken.AuthorizationCodeRequestVerifier, {\n useFactory: (c) => {\n const clientRepository = c.resolve(OAuth2InjectionToken.ClientRepository);\n const clientScopeRepository = c.resolve(OAuth2InjectionToken.ScopeRepository);\n\n return new OAuth2AuthorizationCodeRequestVerifier({\n clientRepository,\n scopeRepository: clientScopeRepository,\n });\n },\n });\n\n container.register(OAuth2InjectionToken.AuthorizationStateManager, {\n useFactory: (c) => {\n const stateRepository = c.resolve(OAuth2InjectionToken.AuthorizationStateRepository);\n\n return new OAuth2AuthorizationStateManager(stateRepository);\n },\n });\n\n // token revoker\n container.register(OAuth2InjectionToken.TokenRevoker, {\n useFactory: (c) => {\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n return new OAuth2TokenRevoker(tokenRepository);\n },\n });\n\n // token verifier\n container.register(OAuth2InjectionToken.TokenVerifier, {\n useFactory: (c) => {\n const keyRepository = c.resolve(OAuth2InjectionToken.KeyRepository);\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n\n return new OAuth2TokenVerifier(keyRepository, tokenRepository);\n },\n });\n\n // access token issuer\n container.register(OAuth2InjectionToken.AccessTokenIssuer, {\n useFactory: (c) => {\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);\n const identityRoleProvider = c.resolve(IdentityInjectionKey.RoleProvider);\n return new OAuth2AccessTokenIssuer(\n tokenRepository,\n tokenSigner,\n {\n maxAge: config.tokenAccessMaxAge,\n issuer: config.publicUrl,\n },\n identityRoleProvider,\n );\n },\n });\n\n // refresh token issuer\n container.register(OAuth2InjectionToken.RefreshTokenIssuer, {\n useFactory: (c) => {\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);\n\n return new OAuth2RefreshTokenIssuer(\n tokenRepository,\n tokenSigner,\n {\n maxAge: config.tokenRefreshMaxAge,\n issuer: config.publicUrl,\n },\n );\n },\n });\n\n // open-id token issuer\n container.register(OAuth2InjectionToken.OpenIDTokenIssuer, {\n useFactory: (c) => {\n const repository = c.resolve(OAuth2InjectionToken.TokenRepository);\n const signer = c.resolve(OAuth2InjectionToken.TokenSigner);\n const identityResolver = c.resolve(IdentityInjectionKey.Resolver);\n\n return new OAuth2OpenIDTokenIssuer({\n repository,\n signer,\n\n identityResolver,\n\n options: {\n // todo: own constant here\n maxAge: config.tokenAccessMaxAge,\n issuer: config.publicUrl,\n },\n });\n },\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["CacheInjectionKey","ModuleName","OAuth2AuthorizationCodeRepository","OAuth2AuthorizationStateRepository","OAuth2ClientRepository","OAuth2KeyRepository","OAuth2ScopeRepository","OAuth2TokenRepository","OAuth2AccessTokenIssuer","OAuth2AuthorizationCodeIssuer","OAuth2AuthorizationCodeRequestVerifier","OAuth2AuthorizationCodeVerifier","OAuth2AuthorizationStateManager","OAuth2OpenIDTokenIssuer","OAuth2RefreshTokenIssuer","OAuth2TokenRevoker","OAuth2TokenSigner","OAuth2TokenVerifier","OAuth2InjectionToken","IdentityInjectionKey","ClientEntity","ClientScopeEntity","ConfigInjectionKey","OAuth2Module","name","dependencies","OAUTH2","DATABASE","CACHE","CONFIG","IDENTITY","setup","container","config","resolve","register","ClientRepository","useFactory","c","repository","ScopeRepository","AuthorizationCodeRepository","cache","AuthorizationStateRepository","TokenRepository","KeyRepository","TokenSigner","keyRepository","AuthorizationCodeIssuer","codeRepository","maxAge","tokenAccessMaxAge","AuthorizationCodeVerifier","AuthorizationCodeRequestVerifier","clientRepository","clientScopeRepository","scopeRepository","AuthorizationStateManager","stateRepository","TokenRevoker","tokenRepository","TokenVerifier","AccessTokenIssuer","tokenSigner","identityRoleProvider","RoleProvider","issuer","publicUrl","RefreshTokenIssuer","tokenRefreshMaxAge","OpenIDTokenIssuer","signer","identityResolver","Resolver","options"],"sources":["../../../../src/app/modules/oauth2/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Repository } from 'typeorm';\nimport { CacheInjectionKey } from '../cache/index.ts';\nimport type { IContainer } from 'eldin';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\n\nimport {\n OAuth2AuthorizationCodeRepository,\n OAuth2AuthorizationStateRepository,\n OAuth2ClientRepository,\n OAuth2KeyRepository,\n OAuth2ScopeRepository,\n OAuth2TokenRepository,\n} from './repositories/index.ts';\nimport {\n OAuth2AccessTokenIssuer,\n OAuth2AuthorizationCodeIssuer,\n OAuth2AuthorizationCodeRequestVerifier,\n OAuth2AuthorizationCodeVerifier,\n OAuth2AuthorizationStateManager,\n OAuth2OpenIDTokenIssuer,\n OAuth2RefreshTokenIssuer,\n OAuth2TokenRevoker,\n OAuth2TokenSigner,\n OAuth2TokenVerifier,\n} from '../../../core/index.ts';\nimport { OAuth2InjectionToken } from './constants.ts';\nimport { IdentityInjectionKey } from '../identity/index.ts';\nimport { ClientEntity, ClientScopeEntity } from '../../../adapters/database/domains/index.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\n\nexport class OAuth2Module implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.OAUTH2;\n this.dependencies = [ModuleName.DATABASE, ModuleName.CACHE, ModuleName.CONFIG, ModuleName.IDENTITY];\n }\n\n async setup(container: IContainer) : Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n container.register(OAuth2InjectionToken.ClientRepository, {\n useFactory: (c) => {\n const repository = c.resolve<Repository<ClientEntity>>(ClientEntity);\n return new OAuth2ClientRepository(repository);\n },\n });\n\n container.register(OAuth2InjectionToken.ScopeRepository, {\n useFactory: (c) => {\n const repository = c.resolve<Repository<ClientScopeEntity>>(ClientScopeEntity);\n return new OAuth2ScopeRepository(repository);\n },\n });\n\n container.register(OAuth2InjectionToken.AuthorizationCodeRepository, {\n useFactory: (c) => {\n const cache = c.resolve(CacheInjectionKey);\n return new OAuth2AuthorizationCodeRepository(cache);\n },\n });\n\n container.register(OAuth2InjectionToken.AuthorizationStateRepository, {\n useFactory: (c) => {\n const cache = c.resolve(CacheInjectionKey);\n return new OAuth2AuthorizationStateRepository(cache);\n },\n });\n\n container.register(OAuth2InjectionToken.TokenRepository, {\n useFactory: (c) => {\n const cache = c.resolve(CacheInjectionKey);\n return new OAuth2TokenRepository(cache);\n },\n });\n\n container.register(OAuth2InjectionToken.KeyRepository, {\n // todo: cache use here\n useFactory: () => new OAuth2KeyRepository(),\n });\n\n container.register(OAuth2InjectionToken.TokenSigner, {\n useFactory: (c) => {\n const keyRepository = c.resolve(OAuth2InjectionToken.KeyRepository);\n return new OAuth2TokenSigner(keyRepository);\n },\n });\n\n // authorization code issuer\n container.register(OAuth2InjectionToken.AuthorizationCodeIssuer, {\n useFactory: (c) => {\n const codeRepository = c.resolve(OAuth2InjectionToken.AuthorizationCodeRepository);\n\n return new OAuth2AuthorizationCodeIssuer(\n codeRepository,\n {\n // todo: own constant here\n maxAge: config.tokenAccessMaxAge,\n },\n );\n },\n });\n container.register(OAuth2InjectionToken.AuthorizationCodeVerifier, {\n useFactory: (c) => {\n const codeRepository = c.resolve(OAuth2InjectionToken.AuthorizationCodeRepository);\n\n return new OAuth2AuthorizationCodeVerifier(codeRepository);\n },\n });\n\n // authorization code request verifier\n container.register(OAuth2InjectionToken.AuthorizationCodeRequestVerifier, {\n useFactory: (c) => {\n const clientRepository = c.resolve(OAuth2InjectionToken.ClientRepository);\n const clientScopeRepository = c.resolve(OAuth2InjectionToken.ScopeRepository);\n\n return new OAuth2AuthorizationCodeRequestVerifier({\n clientRepository,\n scopeRepository: clientScopeRepository,\n });\n },\n });\n\n container.register(OAuth2InjectionToken.AuthorizationStateManager, {\n useFactory: (c) => {\n const stateRepository = c.resolve(OAuth2InjectionToken.AuthorizationStateRepository);\n\n return new OAuth2AuthorizationStateManager(stateRepository);\n },\n });\n\n // token revoker\n container.register(OAuth2InjectionToken.TokenRevoker, {\n useFactory: (c) => {\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n return new OAuth2TokenRevoker(tokenRepository);\n },\n });\n\n // token verifier\n container.register(OAuth2InjectionToken.TokenVerifier, {\n useFactory: (c) => {\n const keyRepository = c.resolve(OAuth2InjectionToken.KeyRepository);\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n\n return new OAuth2TokenVerifier(keyRepository, tokenRepository);\n },\n });\n\n // access token issuer\n container.register(OAuth2InjectionToken.AccessTokenIssuer, {\n useFactory: (c) => {\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);\n const identityRoleProvider = c.resolve(IdentityInjectionKey.RoleProvider);\n return new OAuth2AccessTokenIssuer(\n tokenRepository,\n tokenSigner,\n {\n maxAge: config.tokenAccessMaxAge,\n issuer: config.publicUrl,\n },\n identityRoleProvider,\n );\n },\n });\n\n // refresh token issuer\n container.register(OAuth2InjectionToken.RefreshTokenIssuer, {\n useFactory: (c) => {\n const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);\n const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);\n\n return new OAuth2RefreshTokenIssuer(\n tokenRepository,\n tokenSigner,\n {\n maxAge: config.tokenRefreshMaxAge,\n issuer: config.publicUrl,\n },\n );\n },\n });\n\n // open-id token issuer\n container.register(OAuth2InjectionToken.OpenIDTokenIssuer, {\n useFactory: (c) => {\n const repository = c.resolve(OAuth2InjectionToken.TokenRepository);\n const signer = c.resolve(OAuth2InjectionToken.TokenSigner);\n const identityResolver = c.resolve(IdentityInjectionKey.Resolver);\n\n return new OAuth2OpenIDTokenIssuer({\n repository,\n signer,\n\n identityResolver,\n\n options: {\n // todo: own constant here\n maxAge: config.tokenAccessMaxAge,\n issuer: config.publicUrl,\n },\n });\n },\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mjs","names":["buildCacheKey","randomBytes","CacheOAuth2Prefix","OAuth2AuthorizationCodeRepository","cache","findOneById","id","entity","get","prefix","AUTHORIZATION_CODE","key","popOneById","pop","save","input","options","ttl","maxAge","toString","set","remove","removeById","drop"],"sources":["../../../../../../../src/app/modules/oauth2/repositories/authorize/code/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2024-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OAuth2AuthorizationCode } from '@authup/core-kit';\nimport type { ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport { randomBytes } from 'node:crypto';\nimport { CacheOAuth2Prefix } from '../../constants.ts';\nimport type {\n IOAuth2AuthorizationCodeRepository,\n OAuth2AuthorizationCodeInput,\n OAuth2AuthorizationCodeRepositorySaveOptions,\n} from '../../../../../../core/index.ts';\n\nexport class OAuth2AuthorizationCodeRepository implements IOAuth2AuthorizationCodeRepository {\n protected cache : ICache;\n\n constructor(cache: ICache) {\n this.cache = cache;\n }\n\n async findOneById(id: string): Promise<OAuth2AuthorizationCode | null> {\n const entity = await this.cache.get<OAuth2AuthorizationCode>(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: id,\n }));\n\n if (entity) {\n return entity;\n }\n\n return null;\n }\n\n async popOneById(id: string): Promise<OAuth2AuthorizationCode | null> {\n return this.cache.pop<OAuth2AuthorizationCode>(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: id,\n }));\n }\n\n async save(\n input: OAuth2AuthorizationCodeInput,\n options: OAuth2AuthorizationCodeRepositorySaveOptions = {},\n ): Promise<OAuth2AuthorizationCode> {\n const ttl = (options.maxAge || 300) * 1_000;\n\n if (!input.id) {\n input.id = randomBytes(10).toString('hex');\n }\n\n await this.cache.set(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: input.id,\n }), input, { ttl });\n\n return input as OAuth2AuthorizationCode;\n }\n\n async remove(entity: OAuth2AuthorizationCode): Promise<void> {\n return this.removeById(entity.id);\n }\n\n async removeById(id: string): Promise<void> {\n await this.cache.drop(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: id,\n }));\n }\n}\n"],"mappings":";;;;AAkBA,IAAaG,oCAAb,MAAaA;CACCC;CAEV,YAAYA,OAAe;
|
|
1
|
+
{"version":3,"file":"repository.mjs","names":["buildCacheKey","randomBytes","CacheOAuth2Prefix","OAuth2AuthorizationCodeRepository","cache","findOneById","id","entity","get","prefix","AUTHORIZATION_CODE","key","popOneById","pop","save","input","options","ttl","maxAge","toString","set","remove","removeById","drop"],"sources":["../../../../../../../src/app/modules/oauth2/repositories/authorize/code/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2024-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { OAuth2AuthorizationCode } from '@authup/core-kit';\nimport type { ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport { randomBytes } from 'node:crypto';\nimport { CacheOAuth2Prefix } from '../../constants.ts';\nimport type {\n IOAuth2AuthorizationCodeRepository,\n OAuth2AuthorizationCodeInput,\n OAuth2AuthorizationCodeRepositorySaveOptions,\n} from '../../../../../../core/index.ts';\n\nexport class OAuth2AuthorizationCodeRepository implements IOAuth2AuthorizationCodeRepository {\n protected cache : ICache;\n\n constructor(cache: ICache) {\n this.cache = cache;\n }\n\n async findOneById(id: string): Promise<OAuth2AuthorizationCode | null> {\n const entity = await this.cache.get<OAuth2AuthorizationCode>(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: id,\n }));\n\n if (entity) {\n return entity;\n }\n\n return null;\n }\n\n async popOneById(id: string): Promise<OAuth2AuthorizationCode | null> {\n return this.cache.pop<OAuth2AuthorizationCode>(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: id,\n }));\n }\n\n async save(\n input: OAuth2AuthorizationCodeInput,\n options: OAuth2AuthorizationCodeRepositorySaveOptions = {},\n ): Promise<OAuth2AuthorizationCode> {\n const ttl = (options.maxAge || 300) * 1_000;\n\n if (!input.id) {\n input.id = randomBytes(10).toString('hex');\n }\n\n await this.cache.set(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: input.id,\n }), input, { ttl });\n\n return input as OAuth2AuthorizationCode;\n }\n\n async remove(entity: OAuth2AuthorizationCode): Promise<void> {\n return this.removeById(entity.id);\n }\n\n async removeById(id: string): Promise<void> {\n await this.cache.drop(buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: id,\n }));\n }\n}\n"],"mappings":";;;;AAkBA,IAAaG,oCAAb,MAAaA;CACCC;CAEV,YAAYA,OAAe;EACvB,KAAKA,QAAQA;CACjB;CAEA,MAAMC,YAAYC,IAAqD;EACnE,MAAMC,SAAS,MAAM,KAAKH,MAAMI,IAA6BR,cAAc;GACvES,QAAQP,kBAAkBQ;GAC1BC,KAAKL;EACT,CAAA,CAAA;EAEA,IAAIC,QACA,OAAOA;EAGX,OAAO;CACX;CAEA,MAAMK,WAAWN,IAAqD;EAClE,OAAO,KAAKF,MAAMS,IAA6Bb,cAAc;GACzDS,QAAQP,kBAAkBQ;GAC1BC,KAAKL;EACT,CAAA,CAAA;CACJ;CAEA,MAAMQ,KACFC,OACAC,UAAwD,CAAC,GACzB;EAChC,MAAMC,OAAOD,QAAQE,UAAU,OAAO;EAEtC,IAAI,CAACH,MAAMT,IACPS,MAAMT,KAAKL,YAAY,EAAA,EAAIkB,SAAS,KAAA;EAGxC,MAAM,KAAKf,MAAMgB,IAAIpB,cAAc;GAC/BS,QAAQP,kBAAkBQ;GAC1BC,KAAKI,MAAMT;EACf,CAAA,GAAIS,OAAO,EAAEE,IAAI,CAAA;EAEjB,OAAOF;CACX;CAEA,MAAMM,OAAOd,QAAgD;EACzD,OAAO,KAAKe,WAAWf,OAAOD,EAAE;CACpC;CAEA,MAAMgB,WAAWhB,IAA2B;EACxC,MAAM,KAAKF,MAAMmB,KAAKvB,cAAc;GAChCS,QAAQP,kBAAkBQ;GAC1BC,KAAKL;EACT,CAAA,CAAA;CACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mjs","names":["createNanoID","buildCacheKey","CacheOAuth2Prefix","OAuth2AuthorizationStateRepository","cache","findOneById","key","id","prefix","AUTHORIZATION_CODE","payload","get","remove","drop","insert","data","state","set","ttl"],"sources":["../../../../../../../src/app/modules/oauth2/repositories/authorize/state/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createNanoID } from '@authup/kit';\nimport type { ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport type { IOAuth2AuthorizeStateRepository, OAuth2AuthorizationState } from '../../../../../../core/index.ts';\nimport { CacheOAuth2Prefix } from '../../constants.ts';\n\nexport class OAuth2AuthorizationStateRepository implements IOAuth2AuthorizeStateRepository {\n protected cache : ICache;\n\n constructor(cache: ICache) {\n this.cache = cache;\n }\n\n async findOneById(key: string): Promise<OAuth2AuthorizationState | null> {\n const id = buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key, \n });\n const payload = await this.cache.get<OAuth2AuthorizationState>(id);\n if (payload) {\n return payload;\n }\n\n return null;\n }\n\n async remove(key: string): Promise<void> {\n await this.cache.drop(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key, \n }),\n );\n }\n\n async insert(data: OAuth2AuthorizationState): Promise<string> {\n const state = createNanoID();\n\n await this.cache.set(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: state, \n }),\n data,\n { ttl: 1000 * 60 * 30 }, // 30 min\n );\n\n return state;\n }\n}\n"],"mappings":";;;;AAaA,IAAaG,qCAAb,MAAaA;CACCC;CAEV,YAAYA,OAAe;
|
|
1
|
+
{"version":3,"file":"repository.mjs","names":["createNanoID","buildCacheKey","CacheOAuth2Prefix","OAuth2AuthorizationStateRepository","cache","findOneById","key","id","prefix","AUTHORIZATION_CODE","payload","get","remove","drop","insert","data","state","set","ttl"],"sources":["../../../../../../../src/app/modules/oauth2/repositories/authorize/state/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createNanoID } from '@authup/kit';\nimport type { ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport type { IOAuth2AuthorizeStateRepository, OAuth2AuthorizationState } from '../../../../../../core/index.ts';\nimport { CacheOAuth2Prefix } from '../../constants.ts';\n\nexport class OAuth2AuthorizationStateRepository implements IOAuth2AuthorizeStateRepository {\n protected cache : ICache;\n\n constructor(cache: ICache) {\n this.cache = cache;\n }\n\n async findOneById(key: string): Promise<OAuth2AuthorizationState | null> {\n const id = buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key, \n });\n const payload = await this.cache.get<OAuth2AuthorizationState>(id);\n if (payload) {\n return payload;\n }\n\n return null;\n }\n\n async remove(key: string): Promise<void> {\n await this.cache.drop(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key, \n }),\n );\n }\n\n async insert(data: OAuth2AuthorizationState): Promise<string> {\n const state = createNanoID();\n\n await this.cache.set(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.AUTHORIZATION_CODE,\n key: state, \n }),\n data,\n { ttl: 1000 * 60 * 30 }, // 30 min\n );\n\n return state;\n }\n}\n"],"mappings":";;;;AAaA,IAAaG,qCAAb,MAAaA;CACCC;CAEV,YAAYA,OAAe;EACvB,KAAKA,QAAQA;CACjB;CAEA,MAAMC,YAAYC,KAAuD;EACrE,MAAMC,KAAKN,cAAc;GACrBO,QAAQN,kBAAkBO;GAC1BH;EACJ,CAAA;EACA,MAAMI,UAAU,MAAM,KAAKN,MAAMO,IAA8BJ,EAAAA;EAC/D,IAAIG,SACA,OAAOA;EAGX,OAAO;CACX;CAEA,MAAME,OAAON,KAA4B;EACrC,MAAM,KAAKF,MAAMS,KACbZ,cAAc;GACVO,QAAQN,kBAAkBO;GAC1BH;EACJ,CAAA,CAAA;CAER;CAEA,MAAMQ,OAAOC,MAAiD;EAC1D,MAAMC,QAAQhB,aAAAA;EAEd,MAAM,KAAKI,MAAMa,IACbhB,cAAc;GACVO,QAAQN,kBAAkBO;GAC1BH,KAAKU;EACT,CAAA,GACAD,MACA,EAAEG,KAAK,MAAO,KAAK,GAAG,CAAA;EAG1B,OAAOF;CACX;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mjs","names":["isUUID","OAuth2ClientRepository","repository","findOneByIdOrName","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","where","id","name","andWhere","realmId","realmName","getOne"],"sources":["../../../../../../src/app/modules/oauth2/repositories/client/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Client } from '@authup/core-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Repository } from 'typeorm';\nimport type { IOAuth2ClientRepository } from '../../../../../core/index.ts';\n\nexport class OAuth2ClientRepository implements IOAuth2ClientRepository {\n private readonly repository: Repository<Client>;\n\n constructor(\n repository: Repository<Client>,\n ) {\n this.repository = repository;\n }\n\n async findOneByIdOrName(key: string, realmKey?: string): Promise<Client | null> {\n const query = this.repository.createQueryBuilder('client')\n .leftJoinAndSelect('client.realm', 'realm');\n\n if (isUUID(key)) {\n query.where('client.id = :id', { id: key });\n } else {\n query.where('client.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('client.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;AAYA,IAAaC,yBAAb,MAAaA;CACQC;CAEjB,YACIA,YACF;
|
|
1
|
+
{"version":3,"file":"repository.mjs","names":["isUUID","OAuth2ClientRepository","repository","findOneByIdOrName","key","realmKey","query","createQueryBuilder","leftJoinAndSelect","where","id","name","andWhere","realmId","realmName","getOne"],"sources":["../../../../../../src/app/modules/oauth2/repositories/client/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Client } from '@authup/core-kit';\nimport { isUUID } from '@authup/kit';\nimport type { Repository } from 'typeorm';\nimport type { IOAuth2ClientRepository } from '../../../../../core/index.ts';\n\nexport class OAuth2ClientRepository implements IOAuth2ClientRepository {\n private readonly repository: Repository<Client>;\n\n constructor(\n repository: Repository<Client>,\n ) {\n this.repository = repository;\n }\n\n async findOneByIdOrName(key: string, realmKey?: string): Promise<Client | null> {\n const query = this.repository.createQueryBuilder('client')\n .leftJoinAndSelect('client.realm', 'realm');\n\n if (isUUID(key)) {\n query.where('client.id = :id', { id: key });\n } else {\n query.where('client.name = :name', { name: key });\n\n if (realmKey) {\n if (isUUID(realmKey)) {\n query.andWhere('client.realm_id = :realmId', { realmId: realmKey });\n } else {\n query.andWhere('realm.name = :realmName', { realmName: realmKey });\n }\n }\n }\n\n return query.getOne();\n }\n}\n"],"mappings":";;AAYA,IAAaC,yBAAb,MAAaA;CACQC;CAEjB,YACIA,YACF;EACE,KAAKA,aAAaA;CACtB;CAEA,MAAMC,kBAAkBC,KAAaC,UAA2C;EAC5E,MAAMC,QAAQ,KAAKJ,WAAWK,mBAAmB,QAAA,EAC5CC,kBAAkB,gBAAgB,OAAA;EAEvC,IAAIR,OAAOI,GAAAA,GACPE,MAAMG,MAAM,mBAAmB,EAAEC,IAAIN,IAAI,CAAA;OACtC;GACHE,MAAMG,MAAM,uBAAuB,EAAEE,MAAMP,IAAI,CAAA;GAE/C,IAAIC,UACA,IAAIL,OAAOK,QAAAA,GACPC,MAAMM,SAAS,8BAA8B,EAAEC,SAASR,SAAS,CAAA;QAEjEC,MAAMM,SAAS,2BAA2B,EAAEE,WAAWT,SAAS,CAAA;EAG5E;EAEA,OAAOC,MAAMS,OAAM;CACvB;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mjs","names":["AsymmetricKey","CryptoAsymmetricAlgorithm","createAsymmetricKeyPair","JWKType","JWTAlgorithm","useDataSource","KeyEntity","OAuth2KeyRepository","findByRealmId","realmId","createOrGet","realm_id","findById","id","where","dataSource","repository","getRepository","entity","findOne","select","type","signature_algorithm","encryption_key","decryption_key","keyPair","name","RSASSA_PKCS1_V1_5","privateKeyContainer","privateKey","publicKeyContainer","publicKey","create","RSA","toBase64","RS256","save"],"sources":["../../../../../../src/app/modules/oauth2/repositories/key/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Key } from '@authup/core-kit';\nimport { AsymmetricKey, CryptoAsymmetricAlgorithm, createAsymmetricKeyPair } from '@authup/server-kit';\nimport { JWKType, JWTAlgorithm } from '@authup/specs';\nimport { useDataSource } from 'typeorm-extension';\nimport { KeyEntity } from '../../../../../adapters/database/index.ts';\nimport type { IOAuth2KeyRepository } from '../../../../../core/index.ts';\n\nexport class OAuth2KeyRepository implements IOAuth2KeyRepository {\n async findByRealmId(realmId: string): Promise<Key | null> {\n return this.createOrGet({ realm_id: realmId });\n }\n\n async findById(id: string): Promise<Key | null> {\n return this.createOrGet({ id });\n }\n\n protected async createOrGet(where: {\n realm_id?: string,\n id?: string\n }) : Promise<Key | null> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(KeyEntity);\n\n let entity = await repository.findOne({\n select: {\n id: true,\n type: true,\n signature_algorithm: true,\n encryption_key: true,\n decryption_key: true,\n },\n where,\n });\n\n if (entity) {\n return entity;\n }\n\n if (typeof where.realm_id !== 'string') {\n return null;\n }\n\n const keyPair = await createAsymmetricKeyPair({ name: CryptoAsymmetricAlgorithm.RSASSA_PKCS1_V1_5 });\n\n const privateKeyContainer = new AsymmetricKey(keyPair.privateKey);\n const publicKeyContainer = new AsymmetricKey(keyPair.publicKey);\n\n entity = repository.create({\n type: JWKType.RSA,\n decryption_key: await privateKeyContainer.toBase64(),\n encryption_key: await publicKeyContainer.toBase64(),\n realm_id: where.realm_id,\n signature_algorithm: `${JWTAlgorithm.RS256}`,\n });\n\n await repository.save(entity);\n\n return entity;\n }\n}\n"],"mappings":";;;;;;AAcA,IAAaO,sBAAb,MAAaA;CACT,MAAMC,cAAcC,SAAsC;
|
|
1
|
+
{"version":3,"file":"repository.mjs","names":["AsymmetricKey","CryptoAsymmetricAlgorithm","createAsymmetricKeyPair","JWKType","JWTAlgorithm","useDataSource","KeyEntity","OAuth2KeyRepository","findByRealmId","realmId","createOrGet","realm_id","findById","id","where","dataSource","repository","getRepository","entity","findOne","select","type","signature_algorithm","encryption_key","decryption_key","keyPair","name","RSASSA_PKCS1_V1_5","privateKeyContainer","privateKey","publicKeyContainer","publicKey","create","RSA","toBase64","RS256","save"],"sources":["../../../../../../src/app/modules/oauth2/repositories/key/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Key } from '@authup/core-kit';\nimport { AsymmetricKey, CryptoAsymmetricAlgorithm, createAsymmetricKeyPair } from '@authup/server-kit';\nimport { JWKType, JWTAlgorithm } from '@authup/specs';\nimport { useDataSource } from 'typeorm-extension';\nimport { KeyEntity } from '../../../../../adapters/database/index.ts';\nimport type { IOAuth2KeyRepository } from '../../../../../core/index.ts';\n\nexport class OAuth2KeyRepository implements IOAuth2KeyRepository {\n async findByRealmId(realmId: string): Promise<Key | null> {\n return this.createOrGet({ realm_id: realmId });\n }\n\n async findById(id: string): Promise<Key | null> {\n return this.createOrGet({ id });\n }\n\n protected async createOrGet(where: {\n realm_id?: string,\n id?: string\n }) : Promise<Key | null> {\n const dataSource = await useDataSource();\n const repository = dataSource.getRepository(KeyEntity);\n\n let entity = await repository.findOne({\n select: {\n id: true,\n type: true,\n signature_algorithm: true,\n encryption_key: true,\n decryption_key: true,\n },\n where,\n });\n\n if (entity) {\n return entity;\n }\n\n if (typeof where.realm_id !== 'string') {\n return null;\n }\n\n const keyPair = await createAsymmetricKeyPair({ name: CryptoAsymmetricAlgorithm.RSASSA_PKCS1_V1_5 });\n\n const privateKeyContainer = new AsymmetricKey(keyPair.privateKey);\n const publicKeyContainer = new AsymmetricKey(keyPair.publicKey);\n\n entity = repository.create({\n type: JWKType.RSA,\n decryption_key: await privateKeyContainer.toBase64(),\n encryption_key: await publicKeyContainer.toBase64(),\n realm_id: where.realm_id,\n signature_algorithm: `${JWTAlgorithm.RS256}`,\n });\n\n await repository.save(entity);\n\n return entity;\n }\n}\n"],"mappings":";;;;;;AAcA,IAAaO,sBAAb,MAAaA;CACT,MAAMC,cAAcC,SAAsC;EACtD,OAAO,KAAKC,YAAY,EAAEC,UAAUF,QAAQ,CAAA;CAChD;CAEA,MAAMG,SAASC,IAAiC;EAC5C,OAAO,KAAKH,YAAY,EAAEG,GAAG,CAAA;CACjC;CAEA,MAAgBH,YAAYI,OAGH;EAErB,MAAME,cAAaD,MADMV,cAAAA,GACKY,cAAcX,SAAAA;EAE5C,IAAIY,SAAS,MAAMF,WAAWG,QAAQ;GAClCC,QAAQ;IACJP,IAAI;IACJQ,MAAM;IACNC,qBAAqB;IACrBC,gBAAgB;IAChBC,gBAAgB;GACpB;GACAV;EACJ,CAAA;EAEA,IAAII,QACA,OAAOA;EAGX,IAAI,OAAOJ,MAAMH,aAAa,UAC1B,OAAO;EAGX,MAAMc,UAAU,MAAMvB,wBAAwB,EAAEwB,MAAMzB,0BAA0B0B,kBAAkB,CAAA;EAElG,MAAMC,sBAAsB,IAAI5B,cAAcyB,QAAQI,UAAU;EAChE,MAAMC,qBAAqB,IAAI9B,cAAcyB,QAAQM,SAAS;EAE9Db,SAASF,WAAWgB,OAAO;GACvBX,MAAMlB,QAAQ8B;GACdT,gBAAgB,MAAMI,oBAAoBM,SAAQ;GAClDX,gBAAgB,MAAMO,mBAAmBI,SAAQ;GACjDvB,UAAUG,MAAMH;GAChBW,qBAAqB,GAAGlB,aAAa+B;EACzC,CAAA;EAEA,MAAMnB,WAAWoB,KAAKlB,MAAAA;EAEtB,OAAOA;CACX;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mjs","names":["OAuth2ScopeRepository","repository","findByClientId","clientId","clientScopes","find","where","client_id","relations","scope","map","clientScope"],"sources":["../../../../../../src/app/modules/oauth2/repositories/scope/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ClientScope, Scope } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IOAuth2ScopeRepository } from '../../../../../core/index.ts';\n\nexport class OAuth2ScopeRepository implements IOAuth2ScopeRepository {\n private readonly repository: Repository<ClientScope>;\n\n constructor(\n repository: Repository<ClientScope>,\n ) {\n this.repository = repository;\n }\n\n async findByClientId(clientId: string): Promise<Scope[]> {\n const clientScopes = await this.repository.find({\n where: { client_id: clientId },\n relations: { scope: true },\n });\n\n return clientScopes.map((clientScope) => clientScope.scope);\n }\n}\n"],"mappings":";AAWA,IAAaA,wBAAb,MAAaA;CACQC;CAEjB,YACIA,YACF;
|
|
1
|
+
{"version":3,"file":"repository.mjs","names":["OAuth2ScopeRepository","repository","findByClientId","clientId","clientScopes","find","where","client_id","relations","scope","map","clientScope"],"sources":["../../../../../../src/app/modules/oauth2/repositories/scope/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ClientScope, Scope } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport type { IOAuth2ScopeRepository } from '../../../../../core/index.ts';\n\nexport class OAuth2ScopeRepository implements IOAuth2ScopeRepository {\n private readonly repository: Repository<ClientScope>;\n\n constructor(\n repository: Repository<ClientScope>,\n ) {\n this.repository = repository;\n }\n\n async findByClientId(clientId: string): Promise<Scope[]> {\n const clientScopes = await this.repository.find({\n where: { client_id: clientId },\n relations: { scope: true },\n });\n\n return clientScopes.map((clientScope) => clientScope.scope);\n }\n}\n"],"mappings":";AAWA,IAAaA,wBAAb,MAAaA;CACQC;CAEjB,YACIA,YACF;EACE,KAAKA,aAAaA;CACtB;CAEA,MAAMC,eAAeC,UAAoC;EAMrD,QAAOC,MALoB,KAAKH,WAAWI,KAAK;GAC5CC,OAAO,EAAEC,WAAWJ,SAAS;GAC7BK,WAAW,EAAEC,OAAO,KAAK;EAC7B,CAAA,GAEoBC,KAAKC,gBAAgBA,YAAYF,KAAK;CAC9D;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mjs","names":["buildCacheKey","randomUUID","CacheOAuth2Prefix","OAuth2TokenRepository","cache","findOneBySignature","signature","get","prefix","TOKEN_CLAIMS","key","findOneById","id","TOKEN","removeById","token","drop","setInactive","exp","insert","payload","jti","set","ttl","buildTTL","save","saveWithSignature","data","normalized","isInactive","cacheKey","TOKEN_INACTIVE","response","utc","Date","now"],"sources":["../../../../../../src/app/modules/oauth2/repositories/token/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport type { OAuth2TokenPayload } from '@authup/specs';\nimport { randomUUID } from 'node:crypto';\nimport type { IOAuth2TokenRepository } from '../../../../../core/index.ts';\nimport { CacheOAuth2Prefix } from '../constants.ts';\n\nexport class OAuth2TokenRepository implements IOAuth2TokenRepository {\n protected cache : ICache;\n\n constructor(cache: ICache) {\n this.cache = cache;\n }\n\n // -----------------------------------------------------\n\n async findOneBySignature(signature: string): Promise<OAuth2TokenPayload | null> {\n return this.cache.get<OAuth2TokenPayload>(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_CLAIMS,\n key: signature, \n }),\n );\n }\n\n async findOneById(id: string): Promise<OAuth2TokenPayload | null> {\n return this.cache.get<OAuth2TokenPayload>(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN,\n key: id, \n }),\n );\n }\n\n // -----------------------------------------------------\n\n async removeById(id: string): Promise<void> {\n const token = await this.findOneById(id);\n if (!token) {\n return;\n }\n\n const key = buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN,\n key: id, \n });\n await this.cache.drop(key);\n\n await this.setInactive(id, token.exp);\n }\n\n // -----------------------------------------------------\n\n async insert(payload: OAuth2TokenPayload): Promise<OAuth2TokenPayload> {\n payload.jti = randomUUID();\n\n await this.cache.set(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN,\n key: payload.jti, \n }),\n payload,\n { ttl: this.buildTTL(payload.exp) },\n );\n\n return payload;\n }\n\n async save(payload: OAuth2TokenPayload): Promise<OAuth2TokenPayload> {\n if (payload.jti) {\n return payload;\n }\n\n return this.insert(payload);\n }\n\n async saveWithSignature(data: OAuth2TokenPayload, signature: string): Promise<OAuth2TokenPayload> {\n const normalized = await this.save(data);\n\n await this.cache.set(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_CLAIMS,\n key: signature, \n }),\n normalized,\n { ttl: this.buildTTL(data.exp) },\n );\n\n return normalized;\n }\n\n // -----------------------------------------------------\n\n async isInactive(key: string): Promise<boolean> {\n const cacheKey = buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_INACTIVE,\n key,\n });\n\n const response = await this.cache.get(cacheKey);\n\n return !!response;\n }\n\n async setInactive(key: string, exp?: number): Promise<void> {\n const ttl = this.buildTTL(exp);\n\n const cacheKey = buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_INACTIVE,\n key,\n });\n\n await this.cache.set(\n cacheKey,\n true,\n { ttl },\n );\n }\n\n // -----------------------------------------------------\n\n /**\n * Transform timestamp in seconds to ttl in ms.\n *\n * @param utc\n * @protected\n */\n protected buildTTL(utc?: number) {\n if (typeof utc === 'number') {\n const ttl = (utc * 1000) - Date.now();\n if (ttl > 0) {\n return ttl;\n }\n }\n\n return 3_600 * 1000;\n }\n}\n"],"mappings":";;;;AAcA,IAAaG,wBAAb,MAAaA;CACCC;CAEV,YAAYA,OAAe;
|
|
1
|
+
{"version":3,"file":"repository.mjs","names":["buildCacheKey","randomUUID","CacheOAuth2Prefix","OAuth2TokenRepository","cache","findOneBySignature","signature","get","prefix","TOKEN_CLAIMS","key","findOneById","id","TOKEN","removeById","token","drop","setInactive","exp","insert","payload","jti","set","ttl","buildTTL","save","saveWithSignature","data","normalized","isInactive","cacheKey","TOKEN_INACTIVE","response","utc","Date","now"],"sources":["../../../../../../src/app/modules/oauth2/repositories/token/repository.ts"],"sourcesContent":["/*\n * Copyright (c) 2025-2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport type { OAuth2TokenPayload } from '@authup/specs';\nimport { randomUUID } from 'node:crypto';\nimport type { IOAuth2TokenRepository } from '../../../../../core/index.ts';\nimport { CacheOAuth2Prefix } from '../constants.ts';\n\nexport class OAuth2TokenRepository implements IOAuth2TokenRepository {\n protected cache : ICache;\n\n constructor(cache: ICache) {\n this.cache = cache;\n }\n\n // -----------------------------------------------------\n\n async findOneBySignature(signature: string): Promise<OAuth2TokenPayload | null> {\n return this.cache.get<OAuth2TokenPayload>(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_CLAIMS,\n key: signature, \n }),\n );\n }\n\n async findOneById(id: string): Promise<OAuth2TokenPayload | null> {\n return this.cache.get<OAuth2TokenPayload>(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN,\n key: id, \n }),\n );\n }\n\n // -----------------------------------------------------\n\n async removeById(id: string): Promise<void> {\n const token = await this.findOneById(id);\n if (!token) {\n return;\n }\n\n const key = buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN,\n key: id, \n });\n await this.cache.drop(key);\n\n await this.setInactive(id, token.exp);\n }\n\n // -----------------------------------------------------\n\n async insert(payload: OAuth2TokenPayload): Promise<OAuth2TokenPayload> {\n payload.jti = randomUUID();\n\n await this.cache.set(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN,\n key: payload.jti, \n }),\n payload,\n { ttl: this.buildTTL(payload.exp) },\n );\n\n return payload;\n }\n\n async save(payload: OAuth2TokenPayload): Promise<OAuth2TokenPayload> {\n if (payload.jti) {\n return payload;\n }\n\n return this.insert(payload);\n }\n\n async saveWithSignature(data: OAuth2TokenPayload, signature: string): Promise<OAuth2TokenPayload> {\n const normalized = await this.save(data);\n\n await this.cache.set(\n buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_CLAIMS,\n key: signature, \n }),\n normalized,\n { ttl: this.buildTTL(data.exp) },\n );\n\n return normalized;\n }\n\n // -----------------------------------------------------\n\n async isInactive(key: string): Promise<boolean> {\n const cacheKey = buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_INACTIVE,\n key,\n });\n\n const response = await this.cache.get(cacheKey);\n\n return !!response;\n }\n\n async setInactive(key: string, exp?: number): Promise<void> {\n const ttl = this.buildTTL(exp);\n\n const cacheKey = buildCacheKey({\n prefix: CacheOAuth2Prefix.TOKEN_INACTIVE,\n key,\n });\n\n await this.cache.set(\n cacheKey,\n true,\n { ttl },\n );\n }\n\n // -----------------------------------------------------\n\n /**\n * Transform timestamp in seconds to ttl in ms.\n *\n * @param utc\n * @protected\n */\n protected buildTTL(utc?: number) {\n if (typeof utc === 'number') {\n const ttl = (utc * 1000) - Date.now();\n if (ttl > 0) {\n return ttl;\n }\n }\n\n return 3_600 * 1000;\n }\n}\n"],"mappings":";;;;AAcA,IAAaG,wBAAb,MAAaA;CACCC;CAEV,YAAYA,OAAe;EACvB,KAAKA,QAAQA;CACjB;CAIA,MAAMC,mBAAmBC,WAAuD;EAC5E,OAAO,KAAKF,MAAMG,IACdP,cAAc;GACVQ,QAAQN,kBAAkBO;GAC1BC,KAAKJ;EACT,CAAA,CAAA;CAER;CAEA,MAAMK,YAAYC,IAAgD;EAC9D,OAAO,KAAKR,MAAMG,IACdP,cAAc;GACVQ,QAAQN,kBAAkBW;GAC1BH,KAAKE;EACT,CAAA,CAAA;CAER;CAIA,MAAME,WAAWF,IAA2B;EACxC,MAAMG,QAAQ,MAAM,KAAKJ,YAAYC,EAAAA;EACrC,IAAI,CAACG,OACD;EAGJ,MAAML,MAAMV,cAAc;GACtBQ,QAAQN,kBAAkBW;GAC1BH,KAAKE;EACT,CAAA;EACA,MAAM,KAAKR,MAAMY,KAAKN,GAAAA;EAEtB,MAAM,KAAKO,YAAYL,IAAIG,MAAMG,GAAG;CACxC;CAIA,MAAMC,OAAOC,SAA0D;EACnEA,QAAQC,MAAMpB,WAAAA;EAEd,MAAM,KAAKG,MAAMkB,IACbtB,cAAc;GACVQ,QAAQN,kBAAkBW;GAC1BH,KAAKU,QAAQC;EACjB,CAAA,GACAD,SACA,EAAEG,KAAK,KAAKC,SAASJ,QAAQF,GAAG,EAAE,CAAA;EAGtC,OAAOE;CACX;CAEA,MAAMK,KAAKL,SAA0D;EACjE,IAAIA,QAAQC,KACR,OAAOD;EAGX,OAAO,KAAKD,OAAOC,OAAAA;CACvB;CAEA,MAAMM,kBAAkBC,MAA0BrB,WAAgD;EAC9F,MAAMsB,aAAa,MAAM,KAAKH,KAAKE,IAAAA;EAEnC,MAAM,KAAKvB,MAAMkB,IACbtB,cAAc;GACVQ,QAAQN,kBAAkBO;GAC1BC,KAAKJ;EACT,CAAA,GACAsB,YACA,EAAEL,KAAK,KAAKC,SAASG,KAAKT,GAAG,EAAE,CAAA;EAGnC,OAAOU;CACX;CAIA,MAAMC,WAAWnB,KAA+B;EAC5C,MAAMoB,WAAW9B,cAAc;GAC3BQ,QAAQN,kBAAkB6B;GAC1BrB;EACJ,CAAA;EAIA,OAAO,CAAC,CAACsB,MAFc,KAAK5B,MAAMG,IAAIuB,QAAAA;CAG1C;CAEA,MAAMb,YAAYP,KAAaQ,KAA6B;EACxD,MAAMK,MAAM,KAAKC,SAASN,GAAAA;EAE1B,MAAMY,WAAW9B,cAAc;GAC3BQ,QAAQN,kBAAkB6B;GAC1BrB;EACJ,CAAA;EAEA,MAAM,KAAKN,MAAMkB,IACbQ,UACA,MACA,EAAEP,IAAI,CAAA;CAEd;;;;;;IAUA,SAAmBU,KAAc;EAC7B,IAAI,OAAOA,QAAQ,UAAU;GACzB,MAAMV,MAAM,MAAO,MAAQW,KAAKC,IAAG;GACnC,IAAIZ,MAAM,GACN,OAAOA;EAEf;EAEA,OAAO,OAAQ;CACnB;AACJ"}
|