@authup/server-core 1.0.0-beta.55 → 1.0.0-beta.57
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/domains/role/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/role/entity.mjs +2 -1
- package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.d.ts +25 -0
- package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.mjs +60 -0
- package/dist/adapters/database/migrations/mysql/1784970000000-RoleClientForeignKey.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.d.ts +25 -0
- package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.mjs +60 -0
- package/dist/adapters/database/migrations/postgres/1784970000000-RoleClientForeignKey.mjs.map +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs +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 +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 +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client/module.d.ts +6 -6
- package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client/module.mjs +30 -7
- package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-permission/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/client-permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client-permission/module.mjs +23 -5
- package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-role/module.d.ts +4 -4
- package/dist/adapters/http/controllers/entities/client-role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client-role/module.mjs +19 -4
- package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-scope/module.d.ts +4 -4
- package/dist/adapters/http/controllers/entities/client-scope/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client-scope/module.mjs +19 -4
- package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/consent/module.d.ts +3 -3
- package/dist/adapters/http/controllers/entities/consent/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/consent/module.mjs +15 -3
- package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/event/module.d.ts +2 -2
- package/dist/adapters/http/controllers/entities/event/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/event/module.mjs +11 -2
- package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +23 -5
- 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 +6 -6
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +23 -7
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/key/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/key/module.mjs +23 -5
- package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.d.ts +6 -6
- package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.mjs +27 -6
- package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts +4 -4
- package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +19 -4
- package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.d.ts +7 -7
- package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.mjs +27 -6
- package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts +6 -6
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +29 -8
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role/module.d.ts +6 -6
- package/dist/adapters/http/controllers/entities/role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/role/module.mjs +27 -6
- package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +23 -5
- package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-permission/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/role-permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/role-permission/module.mjs +23 -5
- package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/scope/module.d.ts +6 -6
- package/dist/adapters/http/controllers/entities/scope/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/scope/module.mjs +27 -6
- package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.d.ts +3 -3
- package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.mjs +15 -3
- package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +23 -5
- package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user/module.d.ts +6 -6
- package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user/module.mjs +27 -6
- package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +23 -5
- package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts +4 -4
- package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +19 -4
- package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-permission/module.d.ts +5 -5
- package/dist/adapters/http/controllers/entities/user-permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user-permission/module.mjs +23 -5
- package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-role/module.d.ts +4 -4
- package/dist/adapters/http/controllers/entities/user-role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user-role/module.mjs +19 -4
- package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/index.mjs +2 -1
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/logout/module.mjs +5 -1
- package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/userinfo/index.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/userinfo/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/userinfo/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts +18 -0
- package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/userinfo/module.mjs +53 -0
- package/dist/adapters/http/controllers/workflows/userinfo/module.mjs.map +1 -0
- package/dist/adapters/http/index.mjs +2 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +8 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs +2 -0
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
- package/dist/adapters/http/request/event-context.mjs +1 -1
- package/dist/adapters/http/request/event-context.mjs.map +1 -1
- package/dist/app/factory.d.ts +2 -1
- package/dist/app/factory.d.ts.map +1 -1
- package/dist/app/factory.mjs +2 -2
- package/dist/app/factory.mjs.map +1 -1
- package/dist/app/index.d.ts +1 -0
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.mjs +5 -1
- package/dist/app/modules/authentication/repositories/session.mjs +2 -2
- package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
- package/dist/app/modules/components/module.d.ts +3 -0
- package/dist/app/modules/components/module.d.ts.map +1 -1
- package/dist/app/modules/components/module.mjs +17 -2
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/config/constants.d.ts +1 -0
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +1 -0
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/helpers.d.ts +9 -0
- package/dist/app/modules/config/helpers.d.ts.map +1 -0
- package/dist/app/modules/config/helpers.mjs +21 -0
- package/dist/app/modules/config/helpers.mjs.map +1 -0
- package/dist/app/modules/config/index.d.ts +2 -0
- package/dist/app/modules/config/index.d.ts.map +1 -1
- package/dist/app/modules/config/index.mjs +6 -1
- package/dist/app/modules/config/module.d.ts.map +1 -1
- package/dist/app/modules/config/module.mjs +2 -7
- package/dist/app/modules/config/module.mjs.map +1 -1
- package/dist/app/modules/config/normalize.d.ts.map +1 -1
- package/dist/app/modules/config/normalize.mjs +4 -0
- package/dist/app/modules/config/normalize.mjs.map +1 -1
- package/dist/app/modules/config/read/env.d.ts.map +1 -1
- package/dist/app/modules/config/read/env.mjs +2 -0
- package/dist/app/modules/config/read/env.mjs.map +1 -1
- package/dist/app/modules/config/read/fs.d.ts.map +1 -1
- package/dist/app/modules/config/read/fs.mjs +31 -8
- package/dist/app/modules/config/read/fs.mjs.map +1 -1
- package/dist/app/modules/config/trust-proxy.d.ts +28 -0
- package/dist/app/modules/config/trust-proxy.d.ts.map +1 -0
- package/dist/app/modules/config/trust-proxy.mjs +64 -0
- package/dist/app/modules/config/trust-proxy.mjs.map +1 -0
- package/dist/app/modules/config/types.d.ts +18 -0
- package/dist/app/modules/config/types.d.ts.map +1 -1
- package/dist/app/modules/config/validator.d.ts.map +1 -1
- package/dist/app/modules/config/validator.mjs +7 -0
- package/dist/app/modules/config/validator.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs +3 -4
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-permission/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-role/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-scope/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.mjs +4 -3
- package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/key/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission-policy/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/policy/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/query.d.ts +20 -0
- package/dist/app/modules/database/repositories/query.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/query.mjs +26 -3
- package/dist/app/modules/database/repositories/query.mjs.map +1 -1
- package/dist/app/modules/database/repositories/realm/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role-permission/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/schema-validation.d.ts +17 -3
- package/dist/app/modules/database/repositories/schema-validation.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/schema-validation.mjs +29 -5
- package/dist/app/modules/database/repositories/schema-validation.mjs.map +1 -1
- package/dist/app/modules/database/repositories/scope/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-permission/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-role/repository.mjs +2 -2
- package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
- package/dist/app/modules/http/constants.d.ts +2 -13
- package/dist/app/modules/http/constants.d.ts.map +1 -1
- package/dist/app/modules/http/constants.mjs.map +1 -1
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +7 -1
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +4 -2
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +16 -3
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/index.mjs +5 -1
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs +2 -2
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +12 -4
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/types.d.ts +5 -0
- package/dist/app/types.d.ts.map +1 -0
- package/dist/app/types.mjs +4 -0
- package/dist/cli/commands/healthcheck.d.ts +2 -1
- package/dist/cli/commands/healthcheck.d.ts.map +1 -1
- package/dist/cli/commands/healthcheck.mjs +3 -2
- package/dist/cli/commands/healthcheck.mjs.map +1 -1
- package/dist/cli/commands/index.d.ts +0 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.mjs +1 -2
- package/dist/cli/commands/migration.d.ts +2 -1
- package/dist/cli/commands/migration.d.ts.map +1 -1
- package/dist/cli/commands/migration.mjs +3 -2
- package/dist/cli/commands/migration.mjs.map +1 -1
- package/dist/cli/commands/start.d.ts +2 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.mjs +3 -2
- package/dist/cli/commands/start.mjs.map +1 -1
- package/dist/cli/config.d.ts +18 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.mjs +34 -0
- package/dist/cli/config.mjs.map +1 -0
- package/dist/cli/module.d.ts +8 -8
- package/dist/cli/module.d.ts.map +1 -1
- package/dist/cli/module.mjs +8 -28
- package/dist/cli/module.mjs.map +1 -1
- package/dist/cli/types.d.ts +5 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.mjs +4 -0
- package/dist/components/event-cleaner/module.d.ts.map +1 -1
- package/dist/components/event-cleaner/module.mjs +26 -14
- package/dist/components/event-cleaner/module.mjs.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.mjs +1 -4
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs +29 -17
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/components/types.d.ts +1 -0
- package/dist/components/types.d.ts.map +1 -1
- package/dist/core/authentication/login-throttle/service.d.ts.map +1 -1
- package/dist/core/authentication/login-throttle/service.mjs +2 -1
- package/dist/core/authentication/login-throttle/service.mjs.map +1 -1
- package/dist/core/entities/client/constants.d.ts +10 -0
- package/dist/core/entities/client/constants.d.ts.map +1 -0
- package/dist/core/entities/client/constants.mjs +20 -0
- package/dist/core/entities/client/constants.mjs.map +1 -0
- package/dist/core/entities/client/index.d.ts +1 -0
- package/dist/core/entities/client/index.d.ts.map +1 -1
- package/dist/core/entities/client/index.mjs +3 -2
- package/dist/core/entities/client/schema.d.ts.map +1 -1
- package/dist/core/entities/client/schema.mjs +40 -3
- package/dist/core/entities/client/schema.mjs.map +1 -1
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +8 -60
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/web-client.d.ts +39 -3
- package/dist/core/entities/client/web-client.d.ts.map +1 -1
- package/dist/core/entities/client/web-client.mjs +68 -12
- package/dist/core/entities/client/web-client.mjs.map +1 -1
- package/dist/core/entities/client-scope/schema.d.ts.map +1 -1
- package/dist/core/entities/client-scope/schema.mjs +3 -1
- package/dist/core/entities/client-scope/schema.mjs.map +1 -1
- package/dist/core/entities/event/constants.d.ts +7 -0
- package/dist/core/entities/event/constants.d.ts.map +1 -1
- package/dist/core/entities/event/constants.mjs +7 -1
- package/dist/core/entities/event/constants.mjs.map +1 -1
- package/dist/core/entities/event/index.mjs +2 -2
- package/dist/core/entities/event/service.mjs +1 -1
- package/dist/core/entities/event/service.mjs.map +1 -1
- package/dist/core/entities/index.mjs +4 -3
- package/dist/core/entities/role/schema.d.ts.map +1 -1
- package/dist/core/entities/role/schema.mjs +4 -0
- package/dist/core/entities/role/schema.mjs.map +1 -1
- package/dist/core/entities/session/schema.d.ts.map +1 -1
- package/dist/core/entities/session/schema.mjs +2 -0
- package/dist/core/entities/session/schema.mjs.map +1 -1
- package/dist/core/entities/user/schema.d.ts.map +1 -1
- package/dist/core/entities/user/schema.mjs +2 -0
- package/dist/core/entities/user/schema.mjs.map +1 -1
- package/dist/core/identity/password-recovery/check.mjs +4 -4
- package/dist/core/identity/password-recovery/check.mjs.map +1 -1
- package/dist/core/identity/registration/check.mjs +2 -2
- package/dist/core/identity/registration/check.mjs.map +1 -1
- package/dist/core/index.mjs +5 -3
- package/dist/core/key/check.mjs +2 -2
- package/dist/core/key/check.mjs.map +1 -1
- package/dist/core/provisioning/entities/client/relations-validator.d.ts.map +1 -1
- package/dist/core/provisioning/entities/client/relations-validator.mjs +2 -0
- package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/client/types.d.ts +8 -0
- package/dist/core/provisioning/entities/client/types.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/client/module.d.ts +3 -1
- package/dist/core/provisioning/synchronizer/client/module.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/client/module.mjs +10 -0
- package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/client/types.d.ts +3 -1
- package/dist/core/provisioning/synchronizer/client/types.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.d.ts +4 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.mjs +14 -29
- package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/index.d.ts +1 -0
- package/dist/core/provisioning/synchronizer/index.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/realm/module.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/realm/module.mjs +8 -8
- package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/types.d.ts +11 -0
- package/dist/core/provisioning/synchronizer/types.d.ts.map +1 -0
- package/dist/core/provisioning/synchronizer/types.mjs +4 -0
- package/dist/core/query/describe.d.ts +25 -0
- package/dist/core/query/describe.d.ts.map +1 -0
- package/dist/core/query/describe.mjs +50 -0
- package/dist/core/query/describe.mjs.map +1 -0
- package/dist/core/query/fields.d.ts +44 -0
- package/dist/core/query/fields.d.ts.map +1 -0
- package/dist/core/query/fields.mjs +46 -0
- package/dist/core/query/fields.mjs.map +1 -0
- package/dist/core/query/index.d.ts +1 -0
- package/dist/core/query/index.d.ts.map +1 -1
- package/dist/core/query/index.mjs +2 -1
- package/dist/core/query/module.d.ts +1 -1
- package/dist/core/query/module.mjs +1 -1
- package/dist/core/query/module.mjs.map +1 -1
- package/dist/index.mjs +6 -2
- package/dist/swagger.json +852 -145
- package/dist/ui/client/.vite/ssr-manifest.json +862 -754
- package/dist/ui/client/assets/index-Bk6-OZy9.css +2 -0
- package/dist/ui/client/assets/index-DO6_7NTJ.js +106 -0
- package/dist/ui/client/index.html +2 -2
- package/dist/ui/server/server.js +152569 -156411
- package/package.json +40 -40
- package/dist/cli/commands/reset.d.ts +0 -2
- package/dist/cli/commands/reset.d.ts.map +0 -1
- package/dist/cli/commands/reset.mjs +0 -23
- package/dist/cli/commands/reset.mjs.map +0 -1
- package/dist/components/database/index.d.ts +0 -2
- package/dist/components/database/index.d.ts.map +0 -1
- package/dist/components/database/index.mjs +0 -7
- package/dist/components/database/unique-entries/factory.d.ts +0 -4
- package/dist/components/database/unique-entries/factory.d.ts.map +0 -1
- package/dist/components/database/unique-entries/factory.mjs +0 -12
- package/dist/components/database/unique-entries/factory.mjs.map +0 -1
- package/dist/components/database/unique-entries/index.d.ts +0 -3
- package/dist/components/database/unique-entries/index.d.ts.map +0 -1
- package/dist/components/database/unique-entries/index.mjs +0 -6
- package/dist/components/database/unique-entries/module.d.ts +0 -15
- package/dist/components/database/unique-entries/module.d.ts.map +0 -1
- package/dist/components/database/unique-entries/module.mjs +0 -69
- package/dist/components/database/unique-entries/module.mjs.map +0 -1
- package/dist/ui/client/assets/index-CiHrf73J.css +0 -2
- package/dist/ui/client/assets/index-mtJngmng.js +0 -131
|
@@ -4,15 +4,16 @@ import.meta.url;
|
|
|
4
4
|
import { ConfigInjectionKey } from "../../app/modules/config/constants.mjs";
|
|
5
5
|
import { ApplicationBuilder } from "../../app/builder.mjs";
|
|
6
6
|
import "../../app/index.mjs";
|
|
7
|
+
import { createCLIConfigModule } from "../config.mjs";
|
|
7
8
|
import process from "node:process";
|
|
8
9
|
import { defineCommand } from "citty";
|
|
9
10
|
import http from "node:http";
|
|
10
11
|
//#region src/cli/commands/healthcheck.ts
|
|
11
|
-
function defineCLIHealthCheckCommand() {
|
|
12
|
+
function defineCLIHealthCheckCommand(configFs = {}) {
|
|
12
13
|
return defineCommand({
|
|
13
14
|
meta: { name: "healthcheck" },
|
|
14
15
|
async setup() {
|
|
15
|
-
const app = new ApplicationBuilder().withConfig().build();
|
|
16
|
+
const app = new ApplicationBuilder().withConfig(createCLIConfigModule(configFs)).build();
|
|
16
17
|
await app.setup();
|
|
17
18
|
const config = app.container.resolve(ConfigInjectionKey);
|
|
18
19
|
const healthCheck = http.request({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.mjs","names":["defineCommand","http","process","ApplicationBuilder","ConfigInjectionKey","defineCLIHealthCheckCommand","meta","name","setup","app","withConfig","build","config","container","resolve","healthCheck","request","path","host","port","timeout","res","statusCode","exit","on","end"],"sources":["../../../src/cli/commands/healthcheck.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport http from 'node:http';\nimport process from 'node:process';\nimport { ApplicationBuilder, ConfigInjectionKey } from '../../app/index.ts';\n\nexport function defineCLIHealthCheckCommand() {\n return defineCommand({\n meta: { name: 'healthcheck' },\n async setup() {\n const app = new ApplicationBuilder()\n .withConfig()\n .build();\n\n await app.setup();\n\n const config = app.container.resolve(ConfigInjectionKey);\n\n const healthCheck = http.request(\n {\n path: '/metrics',\n host: '0.0.0.0',\n port: config.port,\n timeout: 2000,\n },\n (res) => {\n if (res.statusCode === 200) {\n process.exit(0);\n } else {\n process.exit(1);\n }\n },\n );\n\n healthCheck.on('error', () => {\n process.exit(1);\n });\n\n healthCheck.end();\n },\n });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"healthcheck.mjs","names":["defineCommand","http","process","ApplicationBuilder","ConfigInjectionKey","createCLIConfigModule","defineCLIHealthCheckCommand","configFs","meta","name","setup","app","withConfig","build","config","container","resolve","healthCheck","request","path","host","port","timeout","res","statusCode","exit","on","end"],"sources":["../../../src/cli/commands/healthcheck.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport http from 'node:http';\nimport process from 'node:process';\nimport type { ConfigReadFsOptions } from '../../app/index.ts';\nimport { ApplicationBuilder, ConfigInjectionKey } from '../../app/index.ts';\nimport { createCLIConfigModule } from '../config.ts';\n\nexport function defineCLIHealthCheckCommand(configFs: ConfigReadFsOptions = {}) {\n return defineCommand({\n meta: { name: 'healthcheck' },\n async setup() {\n const app = new ApplicationBuilder()\n .withConfig(createCLIConfigModule(configFs))\n .build();\n\n await app.setup();\n\n const config = app.container.resolve(ConfigInjectionKey);\n\n const healthCheck = http.request(\n {\n path: '/metrics',\n host: '0.0.0.0',\n port: config.port,\n timeout: 2000,\n },\n (res) => {\n if (res.statusCode === 200) {\n process.exit(0);\n } else {\n process.exit(1);\n }\n },\n );\n\n healthCheck.on('error', () => {\n process.exit(1);\n });\n\n healthCheck.end();\n },\n });\n}\n"],"mappings":";;;;;;;;;;;AAcA,SAAgBM,4BAA4BC,WAAgC,CAAC,GAAC;CAC1E,OAAOP,cAAc;EACjBQ,MAAM,EAAEC,MAAM,cAAc;EAC5B,MAAMC,QAAAA;GACF,MAAMC,MAAM,IAAIR,mBAAAA,CAAAA,CACXS,WAAWP,sBAAsBE,QAAAA,CAAAA,CAAAA,CACjCM,MAAK;GAEV,MAAMF,IAAID,MAAK;GAEf,MAAMI,SAASH,IAAII,UAAUC,QAAQZ,kBAAAA;GAErC,MAAMa,cAAchB,KAAKiB,QACrB;IACIC,MAAM;IACNC,MAAM;IACNC,MAAMP,OAAOO;IACbC,SAAS;GACb,IACCC,QAAAA;IACG,IAAIA,IAAIC,eAAe,KACnBtB,QAAQuB,KAAK,CAAA;SAEbvB,QAAQuB,KAAK,CAAA;GAErB,CAAA;GAGJR,YAAYS,GAAG,eAAS;IACpBxB,QAAQuB,KAAK,CAAA;GACjB,CAAA;GAEAR,YAAYU,IAAG;EACnB;CACJ,CAAA;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAOA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAOA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
@@ -3,6 +3,5 @@ import "node:url";
|
|
|
3
3
|
import.meta.url;
|
|
4
4
|
import { defineCLIHealthCheckCommand } from "./healthcheck.mjs";
|
|
5
5
|
import { defineCLIMigrationCommand } from "./migration.mjs";
|
|
6
|
-
import { defineCLIResetCommand } from "./reset.mjs";
|
|
7
6
|
import { defineCLIStartCommand } from "./start.mjs";
|
|
8
|
-
export { defineCLIHealthCheckCommand, defineCLIMigrationCommand,
|
|
7
|
+
export { defineCLIHealthCheckCommand, defineCLIMigrationCommand, defineCLIStartCommand };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { ConfigReadFsOptions } from '../../app/index.ts';
|
|
1
2
|
declare enum MigrationOperation {
|
|
2
3
|
GENERATE = "generate",
|
|
3
4
|
REVERT = "revert",
|
|
4
5
|
STATUS = "status",
|
|
5
6
|
RUN = "run"
|
|
6
7
|
}
|
|
7
|
-
export declare function defineCLIMigrationCommand(): import("citty").CommandDef<{
|
|
8
|
+
export declare function defineCLIMigrationCommand(configFs?: ConfigReadFsOptions): import("citty").CommandDef<{
|
|
8
9
|
readonly operation: {
|
|
9
10
|
readonly required: true;
|
|
10
11
|
readonly type: "positional";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migration.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAW9D,aAAK,kBAAkB;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,QAAQ;CACd;AAsID,wBAAgB,yBAAyB,CAAC,QAAQ,GAAE,mBAAwB;;;;;;;GAyC3E"}
|
|
@@ -9,6 +9,7 @@ import { LoggerInjectionKey } from "../../app/modules/logger/constants.mjs";
|
|
|
9
9
|
import { CODE_PATH } from "../../path.mjs";
|
|
10
10
|
import { ApplicationBuilder } from "../../app/builder.mjs";
|
|
11
11
|
import "../../app/index.mjs";
|
|
12
|
+
import { createCLIConfigModule } from "../config.mjs";
|
|
12
13
|
import { DataSource } from "typeorm";
|
|
13
14
|
import path from "node:path";
|
|
14
15
|
import process from "node:process";
|
|
@@ -107,7 +108,7 @@ async function generateMigrations() {
|
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
|
-
function defineCLIMigrationCommand() {
|
|
111
|
+
function defineCLIMigrationCommand(configFs = {}) {
|
|
111
112
|
return defineCommand({
|
|
112
113
|
meta: { name: "migration" },
|
|
113
114
|
args: { operation: {
|
|
@@ -120,7 +121,7 @@ function defineCLIMigrationCommand() {
|
|
|
120
121
|
try {
|
|
121
122
|
if (context.args.operation === "generate") await generateMigrations();
|
|
122
123
|
else {
|
|
123
|
-
const app = new ApplicationBuilder().withConfig().withLogger().build();
|
|
124
|
+
const app = new ApplicationBuilder().withConfig(createCLIConfigModule(configFs)).withLogger().build();
|
|
124
125
|
app.addModule({
|
|
125
126
|
name: ModuleName.DATABASE,
|
|
126
127
|
dependencies: [ModuleName.CONFIG, ModuleName.LOGGER],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.mjs","names":["defineCommand","path","process","checkDatabase","createDatabase","dropDatabase","generateMigration","transformFilePath","DataSource","DataSourceOptionsBuilder","ApplicationBuilder","ConfigInjectionKey","LoggerInjectionKey","ModuleName","CODE_PATH","MigrationOperation","runMigrationOperation","container","operation","config","resolve","logger","optionsBuilder","options","db","buildWith","buildWithEnv","debug","type","database","Array","isArray","migrations","i","length","check","exists","synchronize","ifNotExist","dataSource","logging","initialize","undoLastMigration","showMigrations","runMigrations","isInitialized","destroy","e","error","generateMigrations","connections","host","port","username","password","baseDirectory","join","timestamp","Date","now","connection","dataSourceOptions","directoryPath","name","prettify","console","defineCLIMigrationCommand","meta","args","required","Object","values","valueHint","setup","context","app","withConfig","withLogger","build","addModule","DATABASE","dependencies","CONFIG","LOGGER","exit"],"sources":["../../../src/cli/commands/migration.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport path from 'node:path';\nimport process from 'node:process';\nimport {\n checkDatabase,\n createDatabase, \n dropDatabase, \n generateMigration, \n transformFilePath,\n} from 'typeorm-extension';\nimport { DataSource, type DataSourceOptions } from 'typeorm';\nimport { DataSourceOptionsBuilder } from '../../adapters/database/index.ts';\nimport {\n ApplicationBuilder, \n ConfigInjectionKey, \n LoggerInjectionKey, \n ModuleName,\n} from '../../app/index.ts';\nimport type { IContainer } from 'eldin';\nimport { CODE_PATH } from '../../path.ts';\n\nenum MigrationOperation {\n GENERATE = 'generate',\n REVERT = 'revert',\n STATUS = 'status',\n RUN = 'run',\n}\n\nasync function runMigrationOperation(\n container: IContainer,\n operation: string,\n): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n let options: DataSourceOptions;\n if (config.db) {\n options = optionsBuilder.buildWith(config.db);\n } else {\n options = optionsBuilder.buildWithEnv();\n }\n\n logger.debug(`Type: ${options.type}`);\n logger.debug(`Database: ${options.database}`);\n\n if (Array.isArray(options.migrations)) {\n for (let i = 0; i < options.migrations.length; i++) {\n if (typeof options.migrations[i] === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations[i]}`);\n }\n }\n } else if (typeof options.migrations === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations}`);\n }\n\n const check = await checkDatabase({ options });\n\n if (!check.exists) {\n await createDatabase({\n options,\n synchronize: false,\n ifNotExist: true, \n });\n }\n\n const dataSource = new DataSource({\n ...options,\n logging: ['error', 'schema', 'migration'],\n });\n\n try {\n await dataSource.initialize();\n\n if (operation === MigrationOperation.REVERT) {\n await dataSource.undoLastMigration();\n } else if (operation === MigrationOperation.STATUS) {\n await dataSource.showMigrations();\n } else {\n await dataSource.runMigrations();\n }\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n logger.error(`Failed to destroy data source after migration operation: ${e}`);\n }\n }\n }\n}\n\nasync function generateMigrations(): Promise<void> {\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n const connections: DataSourceOptions[] = [\n {\n type: 'postgres',\n database: 'migrations',\n host: 'localhost',\n port: 5432,\n username: 'postgres',\n password: 'start123',\n },\n {\n type: 'mysql',\n database: 'migrations',\n host: 'localhost',\n port: 3306,\n username: 'root',\n password: 'start123',\n },\n ];\n\n const baseDirectory = transformFilePath(\n path.join(CODE_PATH, 'adapters', 'database', 'migrations'),\n './src',\n './dist',\n );\n\n const timestamp = Date.now();\n\n for (const connection of connections) {\n const dataSourceOptions = optionsBuilder.buildWith(connection);\n const directoryPath = path.join(baseDirectory, dataSourceOptions.type);\n\n await dropDatabase({ options: dataSourceOptions });\n await createDatabase({\n options: dataSourceOptions,\n synchronize: false, \n });\n\n const dataSource = new DataSource(dataSourceOptions);\n\n try {\n await dataSource.initialize();\n\n await dataSource.runMigrations();\n\n await generateMigration({\n dataSource,\n name: 'Default',\n directoryPath,\n timestamp,\n prettify: true,\n });\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }\n }\n }\n}\n\nexport function defineCLIMigrationCommand() {\n return defineCommand({\n meta: { name: 'migration' },\n args: {\n operation: {\n required: true,\n type: 'positional',\n options: Object.values(MigrationOperation),\n valueHint: Object.values(MigrationOperation).join('|'),\n },\n },\n async setup(context) {\n try {\n if (context.args.operation === MigrationOperation.GENERATE) {\n await generateMigrations();\n } else {\n const app = new ApplicationBuilder()\n .withConfig()\n .withLogger()\n .build();\n\n app.addModule({\n name: ModuleName.DATABASE,\n dependencies: [ModuleName.CONFIG, ModuleName.LOGGER],\n async setup(container: IContainer): Promise<void> {\n await runMigrationOperation(container, context.args.operation);\n },\n });\n\n await app.setup();\n }\n\n process.exit(0);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n\n process.exit(1);\n }\n },\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migration.mjs","names":["defineCommand","path","process","checkDatabase","createDatabase","dropDatabase","generateMigration","transformFilePath","DataSource","DataSourceOptionsBuilder","ApplicationBuilder","ConfigInjectionKey","LoggerInjectionKey","ModuleName","CODE_PATH","createCLIConfigModule","MigrationOperation","runMigrationOperation","container","operation","config","resolve","logger","optionsBuilder","options","db","buildWith","buildWithEnv","debug","type","database","Array","isArray","migrations","i","length","check","exists","synchronize","ifNotExist","dataSource","logging","initialize","undoLastMigration","showMigrations","runMigrations","isInitialized","destroy","e","error","generateMigrations","connections","host","port","username","password","baseDirectory","join","timestamp","Date","now","connection","dataSourceOptions","directoryPath","name","prettify","console","defineCLIMigrationCommand","configFs","meta","args","required","Object","values","valueHint","setup","context","app","withConfig","withLogger","build","addModule","DATABASE","dependencies","CONFIG","LOGGER","exit"],"sources":["../../../src/cli/commands/migration.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport path from 'node:path';\nimport process from 'node:process';\nimport {\n checkDatabase,\n createDatabase, \n dropDatabase, \n generateMigration, \n transformFilePath,\n} from 'typeorm-extension';\nimport { DataSource, type DataSourceOptions } from 'typeorm';\nimport { DataSourceOptionsBuilder } from '../../adapters/database/index.ts';\nimport type { ConfigReadFsOptions } from '../../app/index.ts';\nimport {\n ApplicationBuilder,\n ConfigInjectionKey,\n LoggerInjectionKey,\n ModuleName,\n} from '../../app/index.ts';\nimport type { IContainer } from 'eldin';\nimport { CODE_PATH } from '../../path.ts';\nimport { createCLIConfigModule } from '../config.ts';\n\nenum MigrationOperation {\n GENERATE = 'generate',\n REVERT = 'revert',\n STATUS = 'status',\n RUN = 'run',\n}\n\nasync function runMigrationOperation(\n container: IContainer,\n operation: string,\n): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n let options: DataSourceOptions;\n if (config.db) {\n options = optionsBuilder.buildWith(config.db);\n } else {\n options = optionsBuilder.buildWithEnv();\n }\n\n logger.debug(`Type: ${options.type}`);\n logger.debug(`Database: ${options.database}`);\n\n if (Array.isArray(options.migrations)) {\n for (let i = 0; i < options.migrations.length; i++) {\n if (typeof options.migrations[i] === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations[i]}`);\n }\n }\n } else if (typeof options.migrations === 'string') {\n logger.debug(`Migration-Directory: ${options.migrations}`);\n }\n\n const check = await checkDatabase({ options });\n\n if (!check.exists) {\n await createDatabase({\n options,\n synchronize: false,\n ifNotExist: true, \n });\n }\n\n const dataSource = new DataSource({\n ...options,\n logging: ['error', 'schema', 'migration'],\n });\n\n try {\n await dataSource.initialize();\n\n if (operation === MigrationOperation.REVERT) {\n await dataSource.undoLastMigration();\n } else if (operation === MigrationOperation.STATUS) {\n await dataSource.showMigrations();\n } else {\n await dataSource.runMigrations();\n }\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n logger.error(`Failed to destroy data source after migration operation: ${e}`);\n }\n }\n }\n}\n\nasync function generateMigrations(): Promise<void> {\n const optionsBuilder = new DataSourceOptionsBuilder();\n\n const connections: DataSourceOptions[] = [\n {\n type: 'postgres',\n database: 'migrations',\n host: 'localhost',\n port: 5432,\n username: 'postgres',\n password: 'start123',\n },\n {\n type: 'mysql',\n database: 'migrations',\n host: 'localhost',\n port: 3306,\n username: 'root',\n password: 'start123',\n },\n ];\n\n const baseDirectory = transformFilePath(\n path.join(CODE_PATH, 'adapters', 'database', 'migrations'),\n './src',\n './dist',\n );\n\n const timestamp = Date.now();\n\n for (const connection of connections) {\n const dataSourceOptions = optionsBuilder.buildWith(connection);\n const directoryPath = path.join(baseDirectory, dataSourceOptions.type);\n\n await dropDatabase({ options: dataSourceOptions });\n await createDatabase({\n options: dataSourceOptions,\n synchronize: false, \n });\n\n const dataSource = new DataSource(dataSourceOptions);\n\n try {\n await dataSource.initialize();\n\n await dataSource.runMigrations();\n\n await generateMigration({\n dataSource,\n name: 'Default',\n directoryPath,\n timestamp,\n prettify: true,\n });\n } finally {\n if (dataSource.isInitialized) {\n try {\n await dataSource.destroy();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }\n }\n }\n}\n\nexport function defineCLIMigrationCommand(configFs: ConfigReadFsOptions = {}) {\n return defineCommand({\n meta: { name: 'migration' },\n args: {\n operation: {\n required: true,\n type: 'positional',\n options: Object.values(MigrationOperation),\n valueHint: Object.values(MigrationOperation).join('|'),\n },\n },\n async setup(context) {\n try {\n if (context.args.operation === MigrationOperation.GENERATE) {\n await generateMigrations();\n } else {\n const app = new ApplicationBuilder()\n .withConfig(createCLIConfigModule(configFs))\n .withLogger()\n .build();\n\n app.addModule({\n name: ModuleName.DATABASE,\n dependencies: [ModuleName.CONFIG, ModuleName.LOGGER],\n async setup(container: IContainer): Promise<void> {\n await runMigrationOperation(container, context.args.operation);\n },\n });\n\n await app.setup();\n }\n\n process.exit(0);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n\n process.exit(1);\n }\n },\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ConfigReadFsOptions } from '../../app/index.ts';
|
|
2
|
+
export declare function defineCLIStartCommand(configFs?: ConfigReadFsOptions): import("citty").CommandDef<import("citty").ArgsDef>;
|
|
2
3
|
//# sourceMappingURL=start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,mBAAwB,uDAkCvE"}
|
|
@@ -3,15 +3,16 @@ import "node:url";
|
|
|
3
3
|
import.meta.url;
|
|
4
4
|
import { createApplication } from "../../app/factory.mjs";
|
|
5
5
|
import "../../app/index.mjs";
|
|
6
|
+
import { createCLIConfigModule } from "../config.mjs";
|
|
6
7
|
import process from "node:process";
|
|
7
8
|
import { defineCommand } from "citty";
|
|
8
9
|
//#region src/cli/commands/start.ts
|
|
9
10
|
const FORCE_EXIT_TIMEOUT_MS = 1e4;
|
|
10
|
-
function defineCLIStartCommand() {
|
|
11
|
+
function defineCLIStartCommand(configFs = {}) {
|
|
11
12
|
return defineCommand({
|
|
12
13
|
meta: { name: "start" },
|
|
13
14
|
async setup() {
|
|
14
|
-
const app = createApplication();
|
|
15
|
+
const app = createApplication({ config: createCLIConfigModule(configFs) });
|
|
15
16
|
await app.setup();
|
|
16
17
|
let shuttingDown = false;
|
|
17
18
|
const shutdown = async (signal) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.mjs","names":["defineCommand","process","createApplication","FORCE_EXIT_TIMEOUT_MS","defineCLIStartCommand","meta","name","setup","app","shuttingDown","shutdown","signal","exit","force","setTimeout","stderr","write","unref","teardown","err","stack","String","on"],"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport process from 'node:process';\nimport { createApplication } from '../../app/index.ts';\n\nconst FORCE_EXIT_TIMEOUT_MS = 10_000;\n\nexport function defineCLIStartCommand() {\n return defineCommand({\n meta: { name: 'start' },\n async setup() {\n const app = createApplication();\n\n await app.setup();\n\n let shuttingDown = false;\n const shutdown = async (signal: NodeJS.Signals) => {\n if (shuttingDown) {\n process.exit(1);\n }\n shuttingDown = true;\n\n const force = setTimeout(() => {\n process.stderr.write(`\\n${signal} teardown timed out after ${FORCE_EXIT_TIMEOUT_MS}ms — forcing exit.\\n`);\n process.exit(1);\n }, FORCE_EXIT_TIMEOUT_MS);\n force.unref();\n\n try {\n await app.teardown();\n process.exit(0);\n } catch (err) {\n process.stderr.write(`Error during ${signal} teardown: ${(err as Error).stack ?? String(err)}\\n`);\n process.exit(1);\n }\n };\n\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n },\n });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.mjs","names":["defineCommand","process","createApplication","createCLIConfigModule","FORCE_EXIT_TIMEOUT_MS","defineCLIStartCommand","configFs","meta","name","setup","app","config","shuttingDown","shutdown","signal","exit","force","setTimeout","stderr","write","unref","teardown","err","stack","String","on"],"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport process from 'node:process';\nimport type { ConfigReadFsOptions } from '../../app/index.ts';\nimport { createApplication } from '../../app/index.ts';\nimport { createCLIConfigModule } from '../config.ts';\n\nconst FORCE_EXIT_TIMEOUT_MS = 10_000;\n\nexport function defineCLIStartCommand(configFs: ConfigReadFsOptions = {}) {\n return defineCommand({\n meta: { name: 'start' },\n async setup() {\n const app = createApplication({ config: createCLIConfigModule(configFs) });\n\n await app.setup();\n\n let shuttingDown = false;\n const shutdown = async (signal: NodeJS.Signals) => {\n if (shuttingDown) {\n process.exit(1);\n }\n shuttingDown = true;\n\n const force = setTimeout(() => {\n process.stderr.write(`\\n${signal} teardown timed out after ${FORCE_EXIT_TIMEOUT_MS}ms — forcing exit.\\n`);\n process.exit(1);\n }, FORCE_EXIT_TIMEOUT_MS);\n force.unref();\n\n try {\n await app.teardown();\n process.exit(0);\n } catch (err) {\n process.stderr.write(`Error during ${signal} teardown: ${(err as Error).stack ?? String(err)}\\n`);\n process.exit(1);\n }\n };\n\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n },\n });\n}\n"],"mappings":";;;;;;;;;AAaA,MAAMI,wBAAwB;AAE9B,SAAgBC,sBAAsBC,WAAgC,CAAC,GAAC;CACpE,OAAON,cAAc;EACjBO,MAAM,EAAEC,MAAM,QAAQ;EACtB,MAAMC,QAAAA;GACF,MAAMC,MAAMR,kBAAkB,EAAES,QAAQR,sBAAsBG,QAAAA,EAAU,CAAA;GAExE,MAAMI,IAAID,MAAK;GAEf,IAAIG,eAAe;GACnB,MAAMC,WAAW,OAAOC,WAAAA;IACpB,IAAIF,cACAX,QAAQc,KAAK,CAAA;IAEjBH,eAAe;IAMfI,iBAJyB;KACrBf,QAAQiB,OAAOC,MAAM,KAAKL,OAAO,4BAA4BV,sBAAsB,qBAAqB;KACxGH,QAAQc,KAAK,CAAA;IACjB,GAAGX,qBACHY,CAAAA,CAAMI,MAAK;IAEX,IAAI;KACA,MAAMV,IAAIW,SAAQ;KAClBpB,QAAQc,KAAK,CAAA;IACjB,SAASO,KAAK;KACVrB,QAAQiB,OAAOC,MAAM,gBAAgBL,OAAO,aAAa,IAAeS,SAASC,OAAOF,GAAAA,EAAK,GAAG;KAChGrB,QAAQc,KAAK,CAAA;IACjB;GACJ;GAEAd,QAAQwB,GAAG,UAAUZ,QAAAA;GACrBZ,QAAQwB,GAAG,WAAWZ,QAAAA;EAC1B;CACJ,CAAA;AACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ConfigReadFsOptions } from '../app/index.ts';
|
|
2
|
+
import { ConfigModule } from '../app/index.ts';
|
|
3
|
+
import type { CLIConfigArgs } from './types.ts';
|
|
4
|
+
export declare const CLI_CONFIG_ARGS: {
|
|
5
|
+
configDirectory: {
|
|
6
|
+
type: "string";
|
|
7
|
+
description: string;
|
|
8
|
+
alias: string;
|
|
9
|
+
};
|
|
10
|
+
configFile: {
|
|
11
|
+
type: "string";
|
|
12
|
+
description: string;
|
|
13
|
+
alias: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function applyCLIConfigArgs(options: ConfigReadFsOptions, args: CLIConfigArgs): ConfigReadFsOptions;
|
|
17
|
+
export declare function createCLIConfigModule(options?: ConfigReadFsOptions): ConfigModule;
|
|
18
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,eAAe;;;;;;;;;;;CAWT,CAAC;AAEpB,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,aAAa,GACnB,mBAAmB,CAUtB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,GAAI,YAAY,CAKtF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { readConfig } from "../app/modules/config/helpers.mjs";
|
|
5
|
+
import { ConfigModule } from "../app/modules/config/module.mjs";
|
|
6
|
+
import "../app/index.mjs";
|
|
7
|
+
//#region src/cli/config.ts
|
|
8
|
+
const CLI_CONFIG_ARGS = {
|
|
9
|
+
configDirectory: {
|
|
10
|
+
type: "string",
|
|
11
|
+
description: "Config directory path",
|
|
12
|
+
alias: "cD"
|
|
13
|
+
},
|
|
14
|
+
configFile: {
|
|
15
|
+
type: "string",
|
|
16
|
+
description: "Name of one or more configuration files.",
|
|
17
|
+
alias: "cF"
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
function applyCLIConfigArgs(options, args) {
|
|
21
|
+
if (args.configDirectory) options.cwd = args.configDirectory;
|
|
22
|
+
if (args.configFile) options.file = args.configFile;
|
|
23
|
+
return options;
|
|
24
|
+
}
|
|
25
|
+
function createCLIConfigModule(options = {}) {
|
|
26
|
+
return new ConfigModule(() => readConfig({
|
|
27
|
+
env: true,
|
|
28
|
+
fs: options
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { CLI_CONFIG_ARGS, applyCLIConfigArgs, createCLIConfigModule };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.mjs","names":["ConfigModule","readConfig","CLI_CONFIG_ARGS","configDirectory","type","description","alias","configFile","applyCLIConfigArgs","options","args","cwd","file","createCLIConfigModule","env","fs"],"sources":["../../src/cli/config.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ArgsDef } from 'citty';\nimport type { ConfigReadFsOptions } from '../app/index.ts';\nimport { ConfigModule, readConfig } from '../app/index.ts';\nimport type { CLIConfigArgs } from './types.ts';\n\nexport const CLI_CONFIG_ARGS = {\n configDirectory: {\n type: 'string',\n description: 'Config directory path',\n alias: 'cD',\n },\n configFile: {\n type: 'string',\n description: 'Name of one or more configuration files.',\n alias: 'cF',\n },\n} satisfies ArgsDef;\n\nexport function applyCLIConfigArgs(\n options: ConfigReadFsOptions,\n args: CLIConfigArgs,\n) : ConfigReadFsOptions {\n if (args.configDirectory) {\n options.cwd = args.configDirectory;\n }\n\n if (args.configFile) {\n options.file = args.configFile;\n }\n\n return options;\n}\n\nexport function createCLIConfigModule(options: ConfigReadFsOptions = {}) : ConfigModule {\n return new ConfigModule(() => readConfig({\n env: true,\n fs: options,\n }));\n}\n"],"mappings":";;;;;;;AAYA,MAAaE,kBAAkB;CAC3BC,iBAAiB;EACbC,MAAM;EACNC,aAAa;EACbC,OAAO;CACX;CACAC,YAAY;EACRH,MAAM;EACNC,aAAa;EACbC,OAAO;CACX;AACJ;AAEA,SAAgBE,mBACZC,SACAC,MAAmB;CAEnB,IAAIA,KAAKP,iBACLM,QAAQE,MAAMD,KAAKP;CAGvB,IAAIO,KAAKH,YACLE,QAAQG,OAAOF,KAAKH;CAGxB,OAAOE;AACX;AAEA,SAAgBI,sBAAsBJ,UAA+B,CAAC,GAAC;CACnE,OAAO,IAAIT,mBAAmBC,WAAW;EACrCa,KAAK;EACLC,IAAIN;CACR,CAAA,CAAA;AACJ"}
|
package/dist/cli/module.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export declare function createCLIEntryPointCommand(): Promise<import("citty").CommandDef<{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
configDirectory: {
|
|
3
|
+
type: "string";
|
|
4
|
+
description: string;
|
|
5
|
+
alias: string;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
configFile: {
|
|
8
|
+
type: "string";
|
|
9
|
+
description: string;
|
|
10
|
+
alias: string;
|
|
11
11
|
};
|
|
12
12
|
}>>;
|
|
13
13
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/cli/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/cli/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/cli/module.ts"],"names":[],"mappings":"AAmBA,wBAAsB,0BAA0B;;;;;;;;;;;IAyB/C"}
|
package/dist/cli/module.mjs
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
-
import {
|
|
5
|
-
import { readConfigRaw } from "../app/modules/config/read/module.mjs";
|
|
6
|
-
import "../app/modules/config/read/index.mjs";
|
|
4
|
+
import { CLI_CONFIG_ARGS, applyCLIConfigArgs } from "./config.mjs";
|
|
7
5
|
import { defineCLIHealthCheckCommand } from "./commands/healthcheck.mjs";
|
|
8
6
|
import { defineCLIMigrationCommand } from "./commands/migration.mjs";
|
|
9
|
-
import { defineCLIResetCommand } from "./commands/reset.mjs";
|
|
10
7
|
import { defineCLIStartCommand } from "./commands/start.mjs";
|
|
11
8
|
import "./commands/index.mjs";
|
|
12
9
|
import path from "node:path";
|
|
@@ -17,6 +14,7 @@ import { defineCommand } from "citty";
|
|
|
17
14
|
async function createCLIEntryPointCommand() {
|
|
18
15
|
const pkgRaw = await fs.promises.readFile(path.join(process.cwd(), "package.json"), { encoding: "utf8" });
|
|
19
16
|
const pkg = JSON.parse(pkgRaw);
|
|
17
|
+
const configFs = {};
|
|
20
18
|
return defineCommand({
|
|
21
19
|
meta: {
|
|
22
20
|
name: pkg.name,
|
|
@@ -24,31 +22,13 @@ async function createCLIEntryPointCommand() {
|
|
|
24
22
|
description: pkg.description
|
|
25
23
|
},
|
|
26
24
|
subCommands: {
|
|
27
|
-
healthcheck: defineCLIHealthCheckCommand(),
|
|
28
|
-
migration: defineCLIMigrationCommand(),
|
|
29
|
-
|
|
30
|
-
start: defineCLIStartCommand()
|
|
25
|
+
healthcheck: defineCLIHealthCheckCommand(configFs),
|
|
26
|
+
migration: defineCLIMigrationCommand(configFs),
|
|
27
|
+
start: defineCLIStartCommand(configFs)
|
|
31
28
|
},
|
|
32
|
-
args:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
description: "Config directory path",
|
|
36
|
-
alias: "cD"
|
|
37
|
-
},
|
|
38
|
-
configFile: {
|
|
39
|
-
type: "string",
|
|
40
|
-
description: "Name of one or more configuration files.",
|
|
41
|
-
alias: "cF"
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
async setup(context) {
|
|
45
|
-
await normalizeConfig(await readConfigRaw({
|
|
46
|
-
env: true,
|
|
47
|
-
fs: {
|
|
48
|
-
cwd: context.args.configDirectory,
|
|
49
|
-
file: context.args.configFile
|
|
50
|
-
}
|
|
51
|
-
}));
|
|
29
|
+
args: CLI_CONFIG_ARGS,
|
|
30
|
+
setup(context) {
|
|
31
|
+
applyCLIConfigArgs(configFs, context.args);
|
|
52
32
|
}
|
|
53
33
|
});
|
|
54
34
|
}
|
package/dist/cli/module.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["defineCommand","fs","path","process","
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["defineCommand","fs","path","process","CLI_CONFIG_ARGS","applyCLIConfigArgs","defineCLIHealthCheckCommand","defineCLIMigrationCommand","defineCLIStartCommand","createCLIEntryPointCommand","pkgRaw","promises","readFile","join","cwd","encoding","pkg","JSON","parse","configFs","meta","name","version","description","subCommands","healthcheck","migration","start","args","setup","context"],"sources":["../../src/cli/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { defineCommand } from 'citty';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport type { ConfigReadFsOptions } from '../app/index.ts';\nimport { CLI_CONFIG_ARGS, applyCLIConfigArgs } from './config.ts';\nimport {\n defineCLIHealthCheckCommand,\n defineCLIMigrationCommand,\n defineCLIStartCommand,\n} from './commands/index.ts';\n\nexport async function createCLIEntryPointCommand() {\n const pkgRaw = await fs.promises.readFile(\n path.join(process.cwd(), 'package.json'),\n { encoding: 'utf8' },\n );\n const pkg = JSON.parse(pkgRaw);\n\n const configFs : ConfigReadFsOptions = {};\n\n return defineCommand({\n meta: {\n name: pkg.name,\n version: pkg.version,\n description: pkg.description,\n },\n subCommands: {\n healthcheck: defineCLIHealthCheckCommand(configFs),\n migration: defineCLIMigrationCommand(configFs),\n start: defineCLIStartCommand(configFs),\n },\n args: CLI_CONFIG_ARGS,\n setup(context) {\n applyCLIConfigArgs(configFs, context.args);\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,eAAsBS,6BAAAA;CAClB,MAAMC,SAAS,MAAMT,GAAGU,SAASC,SAC7BV,KAAKW,KAAKV,QAAQW,IAAG,GAAI,cAAA,GACzB,EAAEC,UAAU,OAAO,CAAA;CAEvB,MAAMC,MAAMC,KAAKC,MAAMR,MAAAA;CAEvB,MAAMS,WAAiC,CAAC;CAExC,OAAOnB,cAAc;EACjBoB,MAAM;GACFC,MAAML,IAAIK;GACVC,SAASN,IAAIM;GACbC,aAAaP,IAAIO;EACrB;EACAC,aAAa;GACTC,aAAanB,4BAA4Ba,QAAAA;GACzCO,WAAWnB,0BAA0BY,QAAAA;GACrCQ,OAAOnB,sBAAsBW,QAAAA;EACjC;EACAS,MAAMxB;EACNyB,MAAMC,SAAO;GACTzB,mBAAmBc,UAAUW,QAAQF,IAAI;EAC7C;CACJ,CAAA;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,aAAa,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/event-cleaner/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/event-cleaner/module.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACf,SAAS,CA2CZ"}
|
|
@@ -8,21 +8,33 @@ import "../../app/modules/database/repositories/index.mjs";
|
|
|
8
8
|
import cron from "node-cron";
|
|
9
9
|
//#region src/components/event-cleaner/module.ts
|
|
10
10
|
function createEventCleanerComponent(dataSource, logger) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
let task;
|
|
12
|
+
let stopped = false;
|
|
13
|
+
return {
|
|
14
|
+
async start() {
|
|
15
|
+
const repository = new EventRepositoryAdapter(dataSource.getRepository(EventEntity));
|
|
16
|
+
const execute = async () => {
|
|
17
|
+
try {
|
|
18
|
+
await repository.deleteExpired((/* @__PURE__ */ new Date()).toISOString());
|
|
19
|
+
} catch (e) {
|
|
20
|
+
logger?.warn("Sweeping expired audit events failed.");
|
|
21
|
+
logger?.warn(e);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
23
24
|
await execute();
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
if (stopped) return;
|
|
26
|
+
task = cron.schedule("* * * * *", async () => {
|
|
27
|
+
await execute();
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
async stop() {
|
|
31
|
+
stopped = true;
|
|
32
|
+
if (task) {
|
|
33
|
+
await task.stop();
|
|
34
|
+
task = void 0;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
26
38
|
}
|
|
27
39
|
//#endregion
|
|
28
40
|
export { createEventCleanerComponent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["cron","EventEntity","EventRepositoryAdapter","createEventCleanerComponent","dataSource","logger","start","repository","getRepository","execute","deleteExpired","Date","toISOString","e","warn","schedule"],"sources":["../../../src/components/event-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cron from 'node-cron';\nimport type { Event } from '@authup/core-kit';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { EventEntity } from '../../adapters/database/domains/index.ts';\nimport { EventRepositoryAdapter } from '../../app/modules/database/repositories/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createEventCleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n return {\n async start() {\n const repository = new EventRepositoryAdapter(\n dataSource.getRepository<Event>(EventEntity),\n );\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n // Rows carry a per-row expires_at stamped at write time from\n // eventLogRetentionDays; null = keep forever.\n await repository.deleteExpired(new Date().toISOString());\n } catch (e) {\n logger?.warn('Sweeping expired audit events failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n };\n}\n"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["cron","EventEntity","EventRepositoryAdapter","createEventCleanerComponent","dataSource","logger","task","stopped","start","repository","getRepository","execute","deleteExpired","Date","toISOString","e","warn","schedule","stop","undefined"],"sources":["../../../src/components/event-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ScheduledTask } from 'node-cron';\nimport cron from 'node-cron';\nimport type { Event } from '@authup/core-kit';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { EventEntity } from '../../adapters/database/domains/index.ts';\nimport { EventRepositoryAdapter } from '../../app/modules/database/repositories/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createEventCleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n let task : ScheduledTask | undefined;\n let stopped = false;\n\n return {\n async start() {\n const repository = new EventRepositoryAdapter(\n dataSource.getRepository<Event>(EventEntity),\n );\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n // Rows carry a per-row expires_at stamped at write time from\n // eventLogRetentionDays; null = keep forever.\n await repository.deleteExpired(new Date().toISOString());\n } catch (e) {\n logger?.warn('Sweeping expired audit events failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n if (stopped) {\n return;\n }\n\n task = cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n async stop() {\n stopped = true;\n\n if (task) {\n await task.stop();\n task = undefined;\n }\n },\n };\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgBG,4BACZC,YACAC,QAAe;CAEf,IAAIC;CACJ,IAAIC,UAAU;CAEd,OAAO;EACH,MAAMC,QAAAA;GACF,MAAMC,aAAa,IAAIP,uBACnBE,WAAWM,cAAqBT,WAAAA,CAAAA;GAMpC,MAAMU,UAAU,YAAA;IACZ,IAAI;KAGA,MAAMF,WAAWG,+BAAc,IAAIC,KAAAA,EAAAA,CAAOC,YAAW,CAAA;IACzD,SAASC,GAAG;KACRV,QAAQW,KAAK,uCAAA;KACbX,QAAQW,KAAKD,CAAAA;IACjB;GACJ;GAEA,MAAMJ,QAAAA;GAEN,IAAIJ,SACA;GAGJD,OAAON,KAAKiB,SAAS,aAAa,YAAA;IAC9B,MAAMN,QAAAA;GACV,CAAA;EACJ;EACA,MAAMO,OAAAA;GACFX,UAAU;GAEV,IAAID,MAAM;IACN,MAAMA,KAAKY,KAAI;IACfZ,OAAOa,KAAAA;GACX;EACJ;CACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAOA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAOA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
-
import { DatabaseUniqueEntriesComponent } from "./database/unique-entries/module.mjs";
|
|
5
|
-
import { createDatabaseUniqueEntriesComponent } from "./database/unique-entries/factory.mjs";
|
|
6
|
-
import "./database/index.mjs";
|
|
7
4
|
import { createEventCleanerComponent } from "./event-cleaner/module.mjs";
|
|
8
5
|
import "./event-cleaner/index.mjs";
|
|
9
6
|
import { createOAuth2CleanerComponent } from "./oauth2-cleaner/module.mjs";
|
|
10
7
|
import "./oauth2-cleaner/index.mjs";
|
|
11
|
-
export {
|
|
8
|
+
export { createEventCleanerComponent, createOAuth2CleanerComponent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/oauth2-cleaner/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/components/oauth2-cleaner/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,4BAA4B,CACxC,UAAU,EAAE,UAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACf,SAAS,CAiDZ"}
|
|
@@ -8,24 +8,36 @@ import { LessThan } from "typeorm";
|
|
|
8
8
|
import cron from "node-cron";
|
|
9
9
|
//#region src/components/oauth2-cleaner/module.ts
|
|
10
10
|
function createOAuth2CleanerComponent(dataSource, logger) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
11
|
+
let task;
|
|
12
|
+
let stopped = false;
|
|
13
|
+
return {
|
|
14
|
+
async start() {
|
|
15
|
+
const sessionRepository = dataSource.getRepository(SessionEntity);
|
|
16
|
+
const sessionTokenRepository = dataSource.getRepository(SessionTokenEntity);
|
|
17
|
+
const execute = async () => {
|
|
18
|
+
try {
|
|
19
|
+
const isoDate = (/* @__PURE__ */ new Date()).toISOString();
|
|
20
|
+
await sessionTokenRepository.delete({ expiresAt: LessThan(isoDate) });
|
|
21
|
+
await sessionRepository.delete({ expiresAt: LessThan(isoDate) });
|
|
22
|
+
} catch (e) {
|
|
23
|
+
logger?.warn("Sweeping expired sessions failed.");
|
|
24
|
+
logger?.warn(e);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
26
27
|
await execute();
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
if (stopped) return;
|
|
29
|
+
task = cron.schedule("* * * * *", async () => {
|
|
30
|
+
await execute();
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
async stop() {
|
|
34
|
+
stopped = true;
|
|
35
|
+
if (task) {
|
|
36
|
+
await task.stop();
|
|
37
|
+
task = void 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
29
41
|
}
|
|
30
42
|
//#endregion
|
|
31
43
|
export { createOAuth2CleanerComponent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["cron","LessThan","SessionEntity","SessionTokenEntity","createOAuth2CleanerComponent","dataSource","logger","start","sessionRepository","getRepository","sessionTokenRepository","execute","isoDate","Date","toISOString","delete","expiresAt","e","warn","schedule"],"sources":["../../../src/components/oauth2-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cron from 'node-cron';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { LessThan } from 'typeorm';\nimport { SessionEntity, SessionTokenEntity } from '../../adapters/database/domains/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createOAuth2CleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n return {\n async start() {\n const sessionRepository = dataSource.getRepository(SessionEntity);\n const sessionTokenRepository = dataSource.getRepository(SessionTokenEntity);\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n const isoDate = new Date().toISOString();\n\n // Sweep expired session-token rows first: the auth_session_tokens\n // volume dominates (one row per access token, ~15min TTL) and a\n // deleted session cascade-drops its remaining rows anyway.\n await sessionTokenRepository\n .delete({ expiresAt: LessThan(isoDate) });\n\n await sessionRepository\n .delete({ expiresAt: LessThan(isoDate) });\n } catch (e) {\n logger?.warn('Sweeping expired sessions failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n };\n}\n"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["cron","LessThan","SessionEntity","SessionTokenEntity","createOAuth2CleanerComponent","dataSource","logger","task","stopped","start","sessionRepository","getRepository","sessionTokenRepository","execute","isoDate","Date","toISOString","delete","expiresAt","e","warn","schedule","stop","undefined"],"sources":["../../../src/components/oauth2-cleaner/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ScheduledTask } from 'node-cron';\nimport cron from 'node-cron';\nimport type { Logger } from '@authup/server-kit';\nimport type { DataSource } from 'typeorm';\nimport { LessThan } from 'typeorm';\nimport { SessionEntity, SessionTokenEntity } from '../../adapters/database/domains/index.ts';\nimport type { Component } from '../types.ts';\n\nexport function createOAuth2CleanerComponent(\n dataSource: DataSource,\n logger?: Logger,\n) : Component {\n let task : ScheduledTask | undefined;\n let stopped = false;\n\n return {\n async start() {\n const sessionRepository = dataSource.getRepository(SessionEntity);\n const sessionTokenRepository = dataSource.getRepository(SessionTokenEntity);\n\n // A failed sweep must never take the process down (start() is\n // fire-and-forget → an uncaught rejection is fatal on modern\n // node); the next tick simply retries.\n const execute = async () => {\n try {\n const isoDate = new Date().toISOString();\n\n // Sweep expired session-token rows first: the auth_session_tokens\n // volume dominates (one row per access token, ~15min TTL) and a\n // deleted session cascade-drops its remaining rows anyway.\n await sessionTokenRepository\n .delete({ expiresAt: LessThan(isoDate) });\n\n await sessionRepository\n .delete({ expiresAt: LessThan(isoDate) });\n } catch (e) {\n logger?.warn('Sweeping expired sessions failed.');\n logger?.warn(e);\n }\n };\n\n await execute();\n\n if (stopped) {\n return;\n }\n\n task = cron.schedule('* * * * *', async () => {\n await execute();\n });\n },\n async stop() {\n stopped = true;\n\n if (task) {\n await task.stop();\n task = undefined;\n }\n },\n };\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgBI,6BACZC,YACAC,QAAe;CAEf,IAAIC;CACJ,IAAIC,UAAU;CAEd,OAAO;EACH,MAAMC,QAAAA;GACF,MAAMC,oBAAoBL,WAAWM,cAAcT,aAAAA;GACnD,MAAMU,yBAAyBP,WAAWM,cAAcR,kBAAAA;GAKxD,MAAMU,UAAU,YAAA;IACZ,IAAI;KACA,MAAMC,2BAAU,IAAIC,KAAAA,EAAAA,CAAOC,YAAW;KAKtC,MAAMJ,uBACDK,OAAO,EAAEC,WAAWjB,SAASa,OAAAA,EAAS,CAAA;KAE3C,MAAMJ,kBACDO,OAAO,EAAEC,WAAWjB,SAASa,OAAAA,EAAS,CAAA;IAC/C,SAASK,GAAG;KACRb,QAAQc,KAAK,mCAAA;KACbd,QAAQc,KAAKD,CAAAA;IACjB;GACJ;GAEA,MAAMN,QAAAA;GAEN,IAAIL,SACA;GAGJD,OAAOP,KAAKqB,SAAS,aAAa,YAAA;IAC9B,MAAMR,QAAAA;GACV,CAAA;EACJ;EACA,MAAMS,OAAAA;GACFd,UAAU;GAEV,IAAID,MAAM;IACN,MAAMA,KAAKe,KAAI;IACff,OAAOgB,KAAAA;GACX;EACJ;CACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,SAAS,GAAG;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,SAAS,GAAG;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/authentication/login-throttle/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/authentication/login-throttle/service.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,oBAAqB,YAAW,qBAAqB;IAC9D,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEvC,SAAS,CAAC,OAAO,EAAE,2BAA2B,CAAC;gBAEnC,GAAG,EAAE,2BAA2B;IAKtC,kBAAkB,CACpB,GAAG,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC1B,GACF,OAAO,CAAC,IAAI,CAAC;CA+BnB"}
|