@webiny/api-core 0.0.0-unstable.e2758ee1cf → 0.0.0-unstable.e6f0dc8ca7
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/ApiCoreFeature.d.ts +5 -1
- package/ApiCoreFeature.js +6 -0
- package/ApiCoreFeature.js.map +1 -1
- package/createApiCore.d.ts +1 -1
- package/createApiCore.js +2 -3
- package/createApiCore.js.map +1 -1
- package/domain/security/ApiToken.d.ts +1 -0
- package/domain/security/ApiToken.js +1 -0
- package/domain/security/ApiToken.js.map +1 -1
- package/exports/api/build-params.d.ts +1 -0
- package/exports/api/build-params.js +1 -0
- package/exports/api/build-params.js.map +1 -1
- package/exports/api/event-publisher.d.ts +1 -0
- package/exports/api/event-publisher.js +1 -0
- package/exports/api/event-publisher.js.map +1 -1
- package/exports/api/key-value-store.d.ts +1 -0
- package/exports/api/key-value-store.js +1 -0
- package/exports/api/key-value-store.js.map +1 -1
- package/exports/api/logger.d.ts +1 -0
- package/exports/api/logger.js +1 -0
- package/exports/api/logger.js.map +1 -1
- package/exports/api/security/api-key.d.ts +3 -3
- package/exports/api/security/api-key.js +3 -3
- package/exports/api/security/api-key.js.map +1 -1
- package/exports/api/security/authentication.d.ts +1 -1
- package/exports/api/security/authentication.js +1 -1
- package/exports/api/security/authentication.js.map +1 -1
- package/exports/api/security/role.d.ts +3 -3
- package/exports/api/security/role.js +3 -3
- package/exports/api/security/role.js.map +1 -1
- package/exports/api/security/user.d.ts +3 -3
- package/exports/api/security/user.js +3 -3
- package/exports/api/security/user.js.map +1 -1
- package/exports/api/security.d.ts +6 -0
- package/exports/api/security.js +5 -0
- package/exports/api/security.js.map +1 -1
- package/exports/api/system.d.ts +1 -1
- package/exports/api/system.js +1 -1
- package/exports/api/system.js.map +1 -1
- package/exports/api/tenancy.d.ts +4 -4
- package/exports/api/tenancy.js +4 -4
- package/exports/api/tenancy.js.map +1 -1
- package/exports/api.d.ts +7 -0
- package/exports/api.js +8 -0
- package/exports/api.js.map +1 -0
- package/features/ai/Ai.d.ts +26 -0
- package/features/ai/Ai.js +133 -0
- package/features/ai/Ai.js.map +1 -0
- package/features/ai/AiSdkTools.d.ts +11 -0
- package/features/ai/AiSdkTools.js +25 -0
- package/features/ai/AiSdkTools.js.map +1 -0
- package/features/ai/AnthropicSdkFactory.d.ts +10 -0
- package/features/ai/AnthropicSdkFactory.js +71 -0
- package/features/ai/AnthropicSdkFactory.js.map +1 -0
- package/features/ai/OpenAiSdkFactory.d.ts +10 -0
- package/features/ai/OpenAiSdkFactory.js +187 -0
- package/features/ai/OpenAiSdkFactory.js.map +1 -0
- package/features/ai/abstractions.d.ts +92 -0
- package/features/ai/abstractions.js +35 -0
- package/features/ai/abstractions.js.map +1 -0
- package/features/ai/feature.d.ts +4 -0
- package/features/ai/feature.js +16 -0
- package/features/ai/feature.js.map +1 -0
- package/features/ai/index.d.ts +3 -0
- package/features/ai/index.js +4 -0
- package/features/ai/index.js.map +1 -0
- package/features/buildParams/abstractions.d.ts +2 -0
- package/features/buildParams/abstractions.js +2 -0
- package/features/buildParams/abstractions.js.map +1 -1
- package/features/buildParams/feature.d.ts +5 -1
- package/features/encryption/EncryptionService.d.ts +10 -0
- package/features/encryption/EncryptionService.js +58 -0
- package/features/encryption/EncryptionService.js.map +1 -0
- package/features/encryption/abstractions.d.ts +9 -0
- package/features/encryption/abstractions.js +5 -0
- package/features/encryption/abstractions.js.map +1 -0
- package/features/encryption/feature.d.ts +4 -0
- package/features/encryption/feature.js +10 -0
- package/features/encryption/feature.js.map +1 -0
- package/features/encryption/index.d.ts +1 -0
- package/features/encryption/index.js +3 -0
- package/features/encryption/index.js.map +1 -0
- package/features/eventPublisher/abstractions.d.ts +2 -0
- package/features/eventPublisher/abstractions.js +3 -0
- package/features/eventPublisher/abstractions.js.map +1 -1
- package/features/eventPublisher/feature.d.ts +5 -1
- package/features/featureFlags/feature.d.ts +5 -1
- package/features/keyValueStore/GlobalKeyValueStore.js +3 -1
- package/features/keyValueStore/GlobalKeyValueStore.js.map +1 -1
- package/features/keyValueStore/KeyValueStoreRepository.d.ts +2 -2
- package/features/keyValueStore/KeyValueStoreRepository.js +2 -2
- package/features/keyValueStore/KeyValueStoreRepository.js.map +1 -1
- package/features/keyValueStore/abstractions.d.ts +10 -2
- package/features/keyValueStore/abstractions.js +4 -0
- package/features/keyValueStore/abstractions.js.map +1 -1
- package/features/keyValueStore/feature.d.ts +4 -1
- package/features/keyValueStore/feature.js.map +1 -1
- package/features/logger/abstractions.d.ts +1 -0
- package/features/logger/abstractions.js +1 -0
- package/features/logger/abstractions.js.map +1 -1
- package/features/logger/feature.d.ts +4 -1
- package/features/masker/Masker.d.ts +8 -0
- package/features/masker/Masker.js +21 -0
- package/features/masker/Masker.js.map +1 -0
- package/features/masker/abstractions.d.ts +11 -0
- package/features/masker/abstractions.js +4 -0
- package/features/masker/abstractions.js.map +1 -0
- package/features/masker/feature.d.ts +4 -0
- package/features/masker/feature.js +10 -0
- package/features/masker/feature.js.map +1 -0
- package/features/masker/index.d.ts +1 -0
- package/features/masker/index.js +3 -0
- package/features/masker/index.js.map +1 -0
- package/features/security/IdentityContext/abstractions.d.ts +1 -0
- package/features/security/IdentityContext/abstractions.js +1 -0
- package/features/security/IdentityContext/abstractions.js.map +1 -1
- package/features/security/IdentityContext/feature.d.ts +4 -1
- package/features/security/SecurityFeature.d.ts +5 -1
- package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +1 -1
- package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
- package/features/security/apiKeys/CreateApiKey/abstractions.d.ts +1 -0
- package/features/security/apiKeys/CreateApiKey/abstractions.js +1 -0
- package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
- package/features/security/apiKeys/CreateApiKey/events.d.ts +6 -4
- package/features/security/apiKeys/CreateApiKey/events.js +8 -4
- package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
- package/features/security/apiKeys/CreateApiKey/feature.d.ts +4 -1
- package/features/security/apiKeys/DeleteApiKey/abstractions.d.ts +1 -0
- package/features/security/apiKeys/DeleteApiKey/abstractions.js +1 -0
- package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
- package/features/security/apiKeys/DeleteApiKey/events.d.ts +6 -4
- package/features/security/apiKeys/DeleteApiKey/events.js +8 -4
- package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
- package/features/security/apiKeys/DeleteApiKey/feature.d.ts +4 -1
- package/features/security/apiKeys/GetApiKey/abstractions.d.ts +1 -0
- package/features/security/apiKeys/GetApiKey/abstractions.js +1 -0
- package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
- package/features/security/apiKeys/GetApiKey/feature.d.ts +4 -1
- package/features/security/apiKeys/GetApiKeyBySlug/abstractions.d.ts +1 -0
- package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +1 -0
- package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
- package/features/security/apiKeys/GetApiKeyBySlug/feature.d.ts +4 -1
- package/features/security/apiKeys/GetApiKeyByToken/abstractions.d.ts +1 -0
- package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +1 -0
- package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
- package/features/security/apiKeys/GetApiKeyByToken/feature.d.ts +4 -1
- package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +1 -1
- package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
- package/features/security/apiKeys/ListApiKeys/abstractions.d.ts +1 -0
- package/features/security/apiKeys/ListApiKeys/abstractions.js +1 -0
- package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
- package/features/security/apiKeys/ListApiKeys/feature.d.ts +4 -1
- package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +1 -1
- package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
- package/features/security/apiKeys/UpdateApiKey/abstractions.d.ts +1 -0
- package/features/security/apiKeys/UpdateApiKey/abstractions.js +1 -0
- package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
- package/features/security/apiKeys/UpdateApiKey/events.d.ts +6 -4
- package/features/security/apiKeys/UpdateApiKey/events.js +8 -4
- package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
- package/features/security/apiKeys/UpdateApiKey/feature.d.ts +4 -1
- package/features/security/apiKeys/feature.d.ts +4 -1
- package/features/security/apiKeys/shared/abstractions.d.ts +5 -2
- package/features/security/apiKeys/shared/abstractions.js +3 -0
- package/features/security/apiKeys/shared/abstractions.js.map +1 -1
- package/features/security/apiKeys/shared/schemas.d.ts +10 -71
- package/features/security/apiKeys/shared/schemas.js +4 -4
- package/features/security/apiKeys/shared/schemas.js.map +1 -1
- package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.d.ts +2 -2
- package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js +2 -2
- package/features/security/authentication/AuthenticationContext/SetIdTokenCookie.js.map +1 -1
- package/features/security/authentication/AuthenticationContext/abstractions.d.ts +1 -0
- package/features/security/authentication/AuthenticationContext/abstractions.js +1 -0
- package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
- package/features/security/authentication/AuthenticationContext/events.d.ts +6 -4
- package/features/security/authentication/AuthenticationContext/events.js +8 -4
- package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
- package/features/security/authentication/AuthenticationContext/feature.d.ts +4 -1
- package/features/security/authentication/Authenticator/abstractions.d.ts +1 -0
- package/features/security/authentication/Authenticator/abstractions.js +1 -0
- package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
- package/features/security/authorization/AuthorizationContext/AuthorizationContext.d.ts +1 -0
- package/features/security/authorization/AuthorizationContext/AuthorizationContext.js +14 -2
- package/features/security/authorization/AuthorizationContext/AuthorizationContext.js.map +1 -1
- package/features/security/authorization/AuthorizationContext/abstractions.d.ts +2 -0
- package/features/security/authorization/AuthorizationContext/abstractions.js +2 -0
- package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
- package/features/security/authorization/AuthorizationContext/feature.d.ts +4 -1
- package/features/security/authorization/Authorizer/abstractions.d.ts +1 -0
- package/features/security/authorization/Authorizer/abstractions.js +1 -0
- package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
- package/features/security/authorization/GroupsTeamsAuthorizer/feature.d.ts +4 -1
- package/features/security/login/abstractions.d.ts +3 -2
- package/features/security/login/abstractions.js +4 -2
- package/features/security/login/abstractions.js.map +1 -1
- package/features/security/permissions/createPermissionSchema.d.ts +2 -0
- package/features/security/permissions/createPermissionSchema.js +8 -0
- package/features/security/permissions/createPermissionSchema.js.map +1 -0
- package/features/security/permissions/createPermissions.d.ts +5 -5
- package/features/security/permissions/createPermissions.js +198 -188
- package/features/security/permissions/createPermissions.js.map +1 -1
- package/features/security/permissions/index.d.ts +2 -1
- package/features/security/permissions/index.js +2 -1
- package/features/security/permissions/index.js.map +1 -1
- package/features/security/roles/CreateRole/CreateRoleUseCase.d.ts +1 -3
- package/features/security/roles/CreateRole/CreateRoleUseCase.js +3 -7
- package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
- package/features/security/roles/CreateRole/abstractions.d.ts +1 -0
- package/features/security/roles/CreateRole/abstractions.js +1 -0
- package/features/security/roles/CreateRole/abstractions.js.map +1 -1
- package/features/security/roles/CreateRole/events.d.ts +6 -4
- package/features/security/roles/CreateRole/events.js +8 -4
- package/features/security/roles/CreateRole/events.js.map +1 -1
- package/features/security/roles/CreateRole/feature.d.ts +4 -1
- package/features/security/roles/CreateRole/schema.d.ts +2 -20
- package/features/security/roles/CreateRole/schema.js +2 -2
- package/features/security/roles/CreateRole/schema.js.map +1 -1
- package/features/security/roles/DeleteRole/abstractions.d.ts +1 -0
- package/features/security/roles/DeleteRole/abstractions.js +1 -0
- package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
- package/features/security/roles/DeleteRole/events.d.ts +6 -4
- package/features/security/roles/DeleteRole/events.js +8 -4
- package/features/security/roles/DeleteRole/events.js.map +1 -1
- package/features/security/roles/DeleteRole/feature.d.ts +4 -1
- package/features/security/roles/GetRole/abstractions.d.ts +1 -0
- package/features/security/roles/GetRole/abstractions.js +1 -0
- package/features/security/roles/GetRole/abstractions.js.map +1 -1
- package/features/security/roles/GetRole/feature.d.ts +4 -1
- package/features/security/roles/ListRoles/abstractions.d.ts +1 -0
- package/features/security/roles/ListRoles/abstractions.js +1 -0
- package/features/security/roles/ListRoles/abstractions.js.map +1 -1
- package/features/security/roles/ListRoles/feature.d.ts +4 -1
- package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +1 -1
- package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
- package/features/security/roles/UpdateRole/abstractions.d.ts +1 -0
- package/features/security/roles/UpdateRole/abstractions.js +1 -0
- package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
- package/features/security/roles/UpdateRole/events.d.ts +6 -4
- package/features/security/roles/UpdateRole/events.js +8 -4
- package/features/security/roles/UpdateRole/events.js.map +1 -1
- package/features/security/roles/UpdateRole/feature.d.ts +4 -1
- package/features/security/roles/UpdateRole/schema.d.ts +2 -18
- package/features/security/roles/UpdateRole/schema.js +2 -2
- package/features/security/roles/UpdateRole/schema.js.map +1 -1
- package/features/security/roles/feature.d.ts +4 -1
- package/features/security/roles/feature.js +2 -0
- package/features/security/roles/feature.js.map +1 -1
- package/features/security/roles/shared/RoleProvider.d.ts +13 -0
- package/features/security/roles/shared/RoleProvider.js +29 -0
- package/features/security/roles/shared/RoleProvider.js.map +1 -0
- package/features/security/roles/shared/RolesRepository.d.ts +3 -1
- package/features/security/roles/shared/RolesRepository.js +19 -18
- package/features/security/roles/shared/RolesRepository.js.map +1 -1
- package/features/security/roles/shared/abstractions.d.ts +19 -0
- package/features/security/roles/shared/abstractions.js +3 -0
- package/features/security/roles/shared/abstractions.js.map +1 -1
- package/features/security/shared/abstractions.d.ts +5 -14
- package/features/security/shared/abstractions.js +3 -16
- package/features/security/shared/abstractions.js.map +1 -1
- package/features/security/teams/CreateTeam/CreateTeamUseCase.d.ts +1 -3
- package/features/security/teams/CreateTeam/CreateTeamUseCase.js +3 -7
- package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
- package/features/security/teams/CreateTeam/abstractions.d.ts +1 -0
- package/features/security/teams/CreateTeam/abstractions.js +1 -0
- package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
- package/features/security/teams/CreateTeam/events.d.ts +6 -4
- package/features/security/teams/CreateTeam/events.js +8 -4
- package/features/security/teams/CreateTeam/events.js.map +1 -1
- package/features/security/teams/CreateTeam/feature.d.ts +4 -1
- package/features/security/teams/CreateTeam/index.d.ts +1 -1
- package/features/security/teams/CreateTeam/index.js +1 -1
- package/features/security/teams/CreateTeam/index.js.map +1 -1
- package/features/security/teams/CreateTeam/schema.d.ts +2 -12
- package/features/security/teams/DeleteTeam/abstractions.d.ts +1 -0
- package/features/security/teams/DeleteTeam/abstractions.js +1 -0
- package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
- package/features/security/teams/DeleteTeam/events.d.ts +6 -4
- package/features/security/teams/DeleteTeam/events.js +8 -4
- package/features/security/teams/DeleteTeam/events.js.map +1 -1
- package/features/security/teams/DeleteTeam/feature.d.ts +4 -1
- package/features/security/teams/GetTeam/abstractions.d.ts +1 -0
- package/features/security/teams/GetTeam/abstractions.js +1 -0
- package/features/security/teams/GetTeam/abstractions.js.map +1 -1
- package/features/security/teams/GetTeam/feature.d.ts +4 -1
- package/features/security/teams/ListTeams/abstractions.d.ts +1 -0
- package/features/security/teams/ListTeams/abstractions.js +1 -0
- package/features/security/teams/ListTeams/abstractions.js.map +1 -1
- package/features/security/teams/ListTeams/feature.d.ts +4 -1
- package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +1 -1
- package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
- package/features/security/teams/UpdateTeam/abstractions.d.ts +1 -0
- package/features/security/teams/UpdateTeam/abstractions.js +1 -0
- package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
- package/features/security/teams/UpdateTeam/events.d.ts +6 -4
- package/features/security/teams/UpdateTeam/events.js +8 -4
- package/features/security/teams/UpdateTeam/events.js.map +1 -1
- package/features/security/teams/UpdateTeam/feature.d.ts +4 -1
- package/features/security/teams/UpdateTeam/schema.d.ts +2 -10
- package/features/security/teams/feature.d.ts +4 -1
- package/features/security/teams/feature.js +6 -0
- package/features/security/teams/feature.js.map +1 -1
- package/features/security/teams/shared/TeamProvider.d.ts +13 -0
- package/features/security/teams/shared/TeamProvider.js +29 -0
- package/features/security/teams/shared/TeamProvider.js.map +1 -0
- package/features/security/teams/shared/TeamsRepository.js +20 -18
- package/features/security/teams/shared/TeamsRepository.js.map +1 -1
- package/features/security/teams/shared/abstractions.d.ts +18 -0
- package/features/security/teams/shared/abstractions.js +3 -0
- package/features/security/teams/shared/abstractions.js.map +1 -1
- package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.d.ts +17 -0
- package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +76 -0
- package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -0
- package/features/security/utils/verifyJwtUsingJwk.d.ts +2 -4
- package/features/security/utils/verifyJwtUsingJwk.js +1 -1
- package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
- package/features/system/InstallSystem/abstractions.d.ts +4 -5
- package/features/system/InstallSystem/abstractions.js +3 -4
- package/features/system/InstallSystem/abstractions.js.map +1 -1
- package/features/system/InstallSystem/events.js +2 -2
- package/features/system/InstallSystem/events.js.map +1 -1
- package/features/system/InstallSystem/feature.d.ts +5 -1
- package/features/system/InstallSystem/index.d.ts +1 -1
- package/features/system/InstallSystem/index.js +1 -1
- package/features/system/InstallSystem/index.js.map +1 -1
- package/features/system/SystemFeature.d.ts +4 -1
- package/features/task/TaskController/abstractions.d.ts +1 -0
- package/features/task/TaskController/abstractions.js +1 -0
- package/features/task/TaskController/abstractions.js.map +1 -1
- package/features/task/TaskDefinition/abstractions.d.ts +7 -1
- package/features/task/TaskDefinition/abstractions.js +1 -0
- package/features/task/TaskDefinition/abstractions.js.map +1 -1
- package/features/task/TaskService/abstractions.d.ts +1 -0
- package/features/task/TaskService/abstractions.js +1 -0
- package/features/task/TaskService/abstractions.js.map +1 -1
- package/features/tenancy/CreateTenant/abstractions.d.ts +9 -7
- package/features/tenancy/CreateTenant/abstractions.js +7 -5
- package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
- package/features/tenancy/CreateTenant/events.js +3 -3
- package/features/tenancy/CreateTenant/events.js.map +1 -1
- package/features/tenancy/CreateTenant/feature.d.ts +5 -1
- package/features/tenancy/CreateTenant/index.d.ts +1 -1
- package/features/tenancy/CreateTenant/index.js +1 -1
- package/features/tenancy/CreateTenant/index.js.map +1 -1
- package/features/tenancy/DeleteTenant/abstractions.d.ts +9 -4
- package/features/tenancy/DeleteTenant/abstractions.js +7 -2
- package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
- package/features/tenancy/DeleteTenant/events.js +3 -3
- package/features/tenancy/DeleteTenant/events.js.map +1 -1
- package/features/tenancy/DeleteTenant/feature.d.ts +5 -1
- package/features/tenancy/DeleteTenant/index.d.ts +1 -1
- package/features/tenancy/DeleteTenant/index.js +1 -1
- package/features/tenancy/DeleteTenant/index.js.map +1 -1
- package/features/tenancy/GetRootTenant/feature.d.ts +5 -1
- package/features/tenancy/GetTenantById/abstractions.d.ts +3 -0
- package/features/tenancy/GetTenantById/abstractions.js +3 -9
- package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
- package/features/tenancy/GetTenantById/feature.d.ts +5 -1
- package/features/tenancy/InstallTenant/abstractions.d.ts +5 -11
- package/features/tenancy/InstallTenant/abstractions.js +4 -13
- package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
- package/features/tenancy/InstallTenant/events.js +2 -2
- package/features/tenancy/InstallTenant/events.js.map +1 -1
- package/features/tenancy/InstallTenant/feature.d.ts +5 -1
- package/features/tenancy/InstallTenant/index.d.ts +1 -1
- package/features/tenancy/InstallTenant/index.js +1 -1
- package/features/tenancy/InstallTenant/index.js.map +1 -1
- package/features/tenancy/ListTenants/feature.d.ts +5 -1
- package/features/tenancy/TenancyFeature.d.ts +4 -1
- package/features/tenancy/TenancyFeature.js.map +1 -1
- package/features/tenancy/TenantContext/abstractions.d.ts +1 -0
- package/features/tenancy/TenantContext/abstractions.js +1 -0
- package/features/tenancy/TenantContext/abstractions.js.map +1 -1
- package/features/tenancy/TenantContext/feature.d.ts +4 -1
- package/features/tenancy/UpdateTenant/abstractions.d.ts +9 -4
- package/features/tenancy/UpdateTenant/abstractions.js +7 -2
- package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
- package/features/tenancy/UpdateTenant/events.js +3 -3
- package/features/tenancy/UpdateTenant/events.js.map +1 -1
- package/features/tenancy/UpdateTenant/feature.d.ts +5 -1
- package/features/tenancy/UpdateTenant/index.d.ts +1 -1
- package/features/tenancy/UpdateTenant/index.js +1 -1
- package/features/tenancy/UpdateTenant/index.js.map +1 -1
- package/features/users/AdminUsersFeature.d.ts +4 -1
- package/features/users/AdminUsersFeature.js.map +1 -1
- package/features/users/CreateUser/CreateUserUseCase.js +1 -1
- package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
- package/features/users/CreateUser/abstractions.d.ts +1 -0
- package/features/users/CreateUser/abstractions.js +1 -1
- package/features/users/CreateUser/abstractions.js.map +1 -1
- package/features/users/CreateUser/events.d.ts +6 -4
- package/features/users/CreateUser/events.js +8 -4
- package/features/users/CreateUser/events.js.map +1 -1
- package/features/users/CreateUser/feature.d.ts +4 -1
- package/features/users/CreateUser/schema.d.ts +4 -36
- package/features/users/DeleteUser/abstractions.d.ts +1 -0
- package/features/users/DeleteUser/abstractions.js +1 -1
- package/features/users/DeleteUser/abstractions.js.map +1 -1
- package/features/users/DeleteUser/events.d.ts +6 -4
- package/features/users/DeleteUser/events.js +8 -4
- package/features/users/DeleteUser/events.js.map +1 -1
- package/features/users/DeleteUser/feature.d.ts +4 -1
- package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.d.ts +3 -3
- package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js +2 -2
- package/features/users/ExternalIdpUserSync/ExternalIdpUserSyncHandler.js.map +1 -1
- package/features/users/ExternalIdpUserSync/feature.d.ts +4 -1
- package/features/users/GetIdentityProfile/feature.d.ts +4 -1
- package/features/users/GetUser/abstractions.d.ts +1 -0
- package/features/users/GetUser/abstractions.js +1 -1
- package/features/users/GetUser/abstractions.js.map +1 -1
- package/features/users/GetUser/feature.d.ts +4 -1
- package/features/users/ListUserTeams/abstractions.d.ts +1 -0
- package/features/users/ListUserTeams/abstractions.js +1 -1
- package/features/users/ListUserTeams/abstractions.js.map +1 -1
- package/features/users/ListUserTeams/feature.d.ts +4 -1
- package/features/users/ListUsers/abstractions.d.ts +1 -0
- package/features/users/ListUsers/abstractions.js +1 -1
- package/features/users/ListUsers/abstractions.js.map +1 -1
- package/features/users/ListUsers/feature.d.ts +4 -1
- package/features/users/UpdateUser/UpdateUserUseCase.js +1 -1
- package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
- package/features/users/UpdateUser/abstractions.d.ts +1 -0
- package/features/users/UpdateUser/abstractions.js +1 -1
- package/features/users/UpdateUser/abstractions.js.map +1 -1
- package/features/users/UpdateUser/events.d.ts +6 -4
- package/features/users/UpdateUser/events.js +8 -4
- package/features/users/UpdateUser/events.js.map +1 -1
- package/features/users/UpdateUser/feature.d.ts +4 -1
- package/features/users/UpdateUser/schema.d.ts +4 -30
- package/features/users/shared/abstractions.d.ts +1 -0
- package/features/users/shared/abstractions.js +1 -1
- package/features/users/shared/abstractions.js.map +1 -1
- package/features/wcp/WcpContext/WcpContext.d.ts +3 -0
- package/features/wcp/WcpContext/WcpContext.js +9 -0
- package/features/wcp/WcpContext/WcpContext.js.map +1 -1
- package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +15 -0
- package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +24 -3
- package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
- package/features/wcp/WcpContext/feature.d.ts +5 -1
- package/features/wcp/WcpFeature.d.ts +4 -1
- package/features/wcp/WcpFeature.js.map +1 -1
- package/graphql/security/NotAuthorizedResponse.d.ts +1 -0
- package/graphql/security/NotAuthorizedResponse.js +1 -0
- package/graphql/security/NotAuthorizedResponse.js.map +1 -1
- package/graphql/wcp/graphql.js +1 -0
- package/graphql/wcp/graphql.js.map +1 -1
- package/idp/abstractions.d.ts +4 -0
- package/idp/abstractions.js +4 -0
- package/idp/abstractions.js.map +1 -1
- package/idp/feature.d.ts +4 -1
- package/legacy/security/createSecurityContext.js +0 -11
- package/legacy/security/createSecurityContext.js.map +1 -1
- package/legacy/security/plugins/authenticateUsingHttpHeader.d.ts +1 -1
- package/legacy/wcp/LegacyWcpContext.d.ts +3 -0
- package/legacy/wcp/LegacyWcpContext.js +9 -0
- package/legacy/wcp/LegacyWcpContext.js.map +1 -1
- package/legacy/wcp/context.d.ts +1 -3
- package/legacy/wcp/context.js +4 -2
- package/legacy/wcp/context.js.map +1 -1
- package/models/base/BaseModel.js +2 -2
- package/models/base/BaseModel.js.map +1 -1
- package/models/base/ModelBuilder.d.ts +2 -2
- package/models/base/ModelBuilder.js +21 -2
- package/models/base/ModelBuilder.js.map +1 -1
- package/models/cms/FieldBuilder.d.ts +3 -2
- package/models/cms/FieldBuilder.js +12 -17
- package/models/cms/FieldBuilder.js.map +1 -1
- package/models/cms/FieldBuilderRegistry.d.ts +1 -1
- package/models/cms/FieldBuilderRegistry.js.map +1 -1
- package/models/cms/FieldDefinitionsBuilder.d.ts +1 -0
- package/models/cms/FieldDefinitionsBuilder.js +15 -17
- package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
- package/models/cms/PrivateCmsModelBuilder.js +1 -1
- package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
- package/models/cms/abstractions.d.ts +1 -1
- package/models/cms/abstractions.js.map +1 -1
- package/models/cms/fieldsBuilder.md +4 -2
- package/models/simple/Page/abstractions.d.ts +1 -11
- package/package.json +27 -68
- package/types/security.d.ts +13 -10
- package/types/security.js.map +1 -1
- package/features/security/shared/abstractions.ts.bak +0 -52
- package/legacy/security/plugins/SecurityRolePlugin.d.ts +0 -16
- package/legacy/security/plugins/SecurityRolePlugin.js +0 -33
- package/legacy/security/plugins/SecurityRolePlugin.js.map +0 -1
- package/legacy/security/plugins/SecurityTeamPlugin.d.ts +0 -16
- package/legacy/security/plugins/SecurityTeamPlugin.js +0 -33
- package/legacy/security/plugins/SecurityTeamPlugin.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { DeleteTenantFeature } from "./feature.js";
|
|
2
|
-
export { DeleteTenantUseCase, DeleteTenantRepository, DeleteTenantGateway,
|
|
2
|
+
export { DeleteTenantUseCase, DeleteTenantRepository, DeleteTenantGateway, TenantBeforeDeleteEventHandler, TenantAfterDeleteEventHandler } from "./abstractions.js";
|
|
3
3
|
export { TenantBeforeDeleteEvent, TenantAfterDeleteEvent } from "./events.js";
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DeleteTenantFeature","DeleteTenantUseCase","DeleteTenantRepository","DeleteTenantGateway","
|
|
1
|
+
{"version":3,"names":["DeleteTenantFeature","DeleteTenantUseCase","DeleteTenantRepository","DeleteTenantGateway","TenantBeforeDeleteEventHandler","TenantAfterDeleteEventHandler","TenantBeforeDeleteEvent","TenantAfterDeleteEvent"],"sources":["index.ts"],"sourcesContent":["export { DeleteTenantFeature } from \"./feature.js\";\nexport {\n DeleteTenantUseCase,\n DeleteTenantRepository,\n DeleteTenantGateway,\n TenantBeforeDeleteEventHandler,\n TenantAfterDeleteEventHandler\n} from \"./abstractions.js\";\nexport { TenantBeforeDeleteEvent, TenantAfterDeleteEvent } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,mBAAmB,EACnBC,sBAAsB,EACtBC,mBAAmB,EACnBC,8BAA8B,EAC9BC,6BAA6B;AAEjC,SAASC,uBAAuB,EAAEC,sBAAsB","ignoreList":[]}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Container } from "@webiny/di";
|
|
2
|
+
export declare const GetRootTenantFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: Container): void;
|
|
5
|
+
};
|
|
@@ -9,6 +9,7 @@ export type GetTenantByIdError = {
|
|
|
9
9
|
export interface IGetTenantByIdUseCase {
|
|
10
10
|
execute(id: string): Promise<Result<Tenant, GetTenantByIdError>>;
|
|
11
11
|
}
|
|
12
|
+
/** Retrieve a tenant by its ID. */
|
|
12
13
|
export declare const GetTenantByIdUseCase: import("@webiny/di").Abstraction<IGetTenantByIdUseCase>;
|
|
13
14
|
export declare namespace GetTenantByIdUseCase {
|
|
14
15
|
type Interface = IGetTenantByIdUseCase;
|
|
@@ -18,6 +19,7 @@ export declare namespace GetTenantByIdUseCase {
|
|
|
18
19
|
export interface IGetTenantByIdRepository {
|
|
19
20
|
getById(id: string): Promise<Tenant | null>;
|
|
20
21
|
}
|
|
22
|
+
/** Fetch a tenant by ID from storage. */
|
|
21
23
|
export declare const GetTenantByIdRepository: import("@webiny/di").Abstraction<IGetTenantByIdRepository>;
|
|
22
24
|
export declare namespace GetTenantByIdRepository {
|
|
23
25
|
type Interface = IGetTenantByIdRepository;
|
|
@@ -25,6 +27,7 @@ export declare namespace GetTenantByIdRepository {
|
|
|
25
27
|
export interface IGetTenantByIdGateway {
|
|
26
28
|
getTenantById(id: string): Promise<Tenant | null>;
|
|
27
29
|
}
|
|
30
|
+
/** Storage gateway for tenant retrieval by ID. */
|
|
28
31
|
export declare const GetTenantByIdGateway: import("@webiny/di").Abstraction<IGetTenantByIdGateway>;
|
|
29
32
|
export declare namespace GetTenantByIdGateway {
|
|
30
33
|
type Interface = IGetTenantByIdGateway;
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
// Use Case Abstraction
|
|
4
|
-
|
|
2
|
+
/** Retrieve a tenant by its ID. */
|
|
5
3
|
export const GetTenantByIdUseCase = createAbstraction("Tenancy/GetTenantByIdUseCase");
|
|
6
|
-
|
|
7
|
-
// Repository Abstraction
|
|
8
|
-
|
|
4
|
+
/** Fetch a tenant by ID from storage. */
|
|
9
5
|
export const GetTenantByIdRepository = createAbstraction("Tenancy/GetTenantByIdRepository");
|
|
10
|
-
|
|
11
|
-
// Gateway Abstraction
|
|
12
|
-
|
|
6
|
+
/** Storage gateway for tenant retrieval by ID. */
|
|
13
7
|
export const GetTenantByIdGateway = createAbstraction("Tenancy/GetTenantByIdGateway");
|
|
14
8
|
|
|
15
9
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetTenantByIdUseCase","GetTenantByIdRepository","GetTenantByIdGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { type Result, createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport type GetTenantByIdError = { type: \"NOT_FOUND\" } | { type: \"UNKNOWN\"; cause: Error };\n\
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetTenantByIdUseCase","GetTenantByIdRepository","GetTenantByIdGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { type Result, createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport type GetTenantByIdError = { type: \"NOT_FOUND\" } | { type: \"UNKNOWN\"; cause: Error };\n\nexport interface IGetTenantByIdUseCase {\n execute(id: string): Promise<Result<Tenant, GetTenantByIdError>>;\n}\n\n/** Retrieve a tenant by its ID. */\nexport const GetTenantByIdUseCase = createAbstraction<IGetTenantByIdUseCase>(\n \"Tenancy/GetTenantByIdUseCase\"\n);\n\nexport namespace GetTenantByIdUseCase {\n export type Interface = IGetTenantByIdUseCase;\n export type Error = GetTenantByIdError;\n export type Result = ReturnType<IGetTenantByIdUseCase[\"execute\"]>;\n}\n\nexport interface IGetTenantByIdRepository {\n getById(id: string): Promise<Tenant | null>;\n}\n\n/** Fetch a tenant by ID from storage. */\nexport const GetTenantByIdRepository = createAbstraction<IGetTenantByIdRepository>(\n \"Tenancy/GetTenantByIdRepository\"\n);\n\nexport namespace GetTenantByIdRepository {\n export type Interface = IGetTenantByIdRepository;\n}\n\nexport interface IGetTenantByIdGateway {\n getTenantById(id: string): Promise<Tenant | null>;\n}\n\n/** Storage gateway for tenant retrieval by ID. */\nexport const GetTenantByIdGateway = createAbstraction<IGetTenantByIdGateway>(\n \"Tenancy/GetTenantByIdGateway\"\n);\n\nexport namespace GetTenantByIdGateway {\n export type Interface = IGetTenantByIdGateway;\n}\n"],"mappings":"AAAA,SAAsBA,iBAAiB,QAAQ,qBAAqB;AASpE;AACA,OAAO,MAAMC,oBAAoB,GAAGD,iBAAiB,CACjD,8BACJ,CAAC;AAYD;AACA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,iCACJ,CAAC;AAUD;AACA,OAAO,MAAMG,oBAAoB,GAAGH,iBAAiB,CACjD,8BACJ,CAAC","ignoreList":[]}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Container } from "@webiny/di";
|
|
2
|
+
export declare const GetTenantByIdFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: Container): void;
|
|
5
|
+
};
|
|
@@ -22,9 +22,6 @@ export interface TenantInstallationInput {
|
|
|
22
22
|
tenant: Tenant;
|
|
23
23
|
installationInput: AppInstallationData[];
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
26
|
-
* App Installer Abstraction
|
|
27
|
-
*/
|
|
28
25
|
export interface IAppInstaller<TData = Record<string, any>> {
|
|
29
26
|
readonly alwaysRun?: boolean;
|
|
30
27
|
readonly appName: string;
|
|
@@ -40,27 +37,24 @@ export interface IAppInstaller<TData = Record<string, any>> {
|
|
|
40
37
|
*/
|
|
41
38
|
uninstall(tenant: Tenant): Promise<void>;
|
|
42
39
|
}
|
|
40
|
+
/** Install an application on a tenant with rollback support. */
|
|
43
41
|
export declare const AppInstaller: import("@webiny/di").Abstraction<IAppInstaller<Record<string, any>>>;
|
|
44
42
|
export declare namespace AppInstaller {
|
|
45
43
|
type Interface<T = any> = IAppInstaller<T>;
|
|
46
44
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Use Case Abstraction
|
|
49
|
-
*/
|
|
50
45
|
export interface IInstallTenantUseCase {
|
|
51
46
|
execute(input: TenantInstallationInput): Promise<Result<void, IInstallTenantErrors[keyof IInstallTenantErrors]>>;
|
|
52
47
|
}
|
|
48
|
+
/** Run all app installers for a tenant. */
|
|
53
49
|
export declare const InstallTenantUseCase: import("@webiny/di").Abstraction<IInstallTenantUseCase>;
|
|
54
50
|
export declare namespace InstallTenantUseCase {
|
|
55
51
|
type Interface = IInstallTenantUseCase;
|
|
56
52
|
type Input = TenantInstallationInput;
|
|
57
53
|
type Errors = IInstallTenantErrors[keyof IInstallTenantErrors];
|
|
58
54
|
}
|
|
59
|
-
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
export declare const TenantInstalledHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantInstalledPayload>>>;
|
|
63
|
-
export declare namespace TenantInstalledHandler {
|
|
55
|
+
/** Hook into tenant lifecycle after a tenant is installed. */
|
|
56
|
+
export declare const TenantInstalledEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantInstalledPayload>>>;
|
|
57
|
+
export declare namespace TenantInstalledEventHandler {
|
|
64
58
|
type Interface = IEventHandler<DomainEvent<TenantInstalledPayload>>;
|
|
65
59
|
type Event = DomainEvent<TenantInstalledPayload>;
|
|
66
60
|
}
|
|
@@ -8,20 +8,11 @@ import { createAbstraction } from "@webiny/feature/api";
|
|
|
8
8
|
* Types
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* App Installer Abstraction
|
|
13
|
-
*/
|
|
14
|
-
|
|
11
|
+
/** Install an application on a tenant with rollback support. */
|
|
15
12
|
export const AppInstaller = createAbstraction("AppInstaller");
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Use Case Abstraction
|
|
19
|
-
*/
|
|
20
|
-
|
|
13
|
+
/** Run all app installers for a tenant. */
|
|
21
14
|
export const InstallTenantUseCase = createAbstraction("InstallTenantUseCase");
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
*/
|
|
25
|
-
export const TenantInstalledHandler = createAbstraction("TenantInstalledHandler");
|
|
15
|
+
/** Hook into tenant lifecycle after a tenant is installed. */
|
|
16
|
+
export const TenantInstalledEventHandler = createAbstraction("TenantInstalledEventHandler");
|
|
26
17
|
|
|
27
18
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","AppInstaller","InstallTenantUseCase","
|
|
1
|
+
{"version":3,"names":["createAbstraction","AppInstaller","InstallTenantUseCase","TenantInstalledEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { IEventHandler, DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport type { TenantInstalledPayload } from \"./events.js\";\nimport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\n\nexport type { Tenant };\n\n/**\n * Errors\n */\nexport interface IInstallTenantErrors {\n base: InstallTenantError;\n dependency: InstallationDependencyError;\n}\n\n/**\n * Types\n */\nexport interface AppInstallationData {\n app: string;\n data: Record<string, any>;\n}\n\nexport interface TenantInstallationInput {\n tenant: Tenant;\n installationInput: AppInstallationData[];\n}\n\nexport interface IAppInstaller<TData = Record<string, any>> {\n readonly alwaysRun?: boolean;\n readonly appName: string;\n readonly dependsOn: string[];\n\n /**\n * Perform the installation\n * If this succeeds, uninstall() MUST be able to revert it\n */\n install(tenant: Tenant, data: TData): Promise<void>;\n\n /**\n * Revert the installation\n * Called if any subsequent installer fails\n */\n uninstall(tenant: Tenant): Promise<void>;\n}\n\n/** Install an application on a tenant with rollback support. */\nexport const AppInstaller = createAbstraction<IAppInstaller>(\"AppInstaller\");\n\nexport namespace AppInstaller {\n export type Interface<T = any> = IAppInstaller<T>;\n}\n\nexport interface IInstallTenantUseCase {\n execute(\n input: TenantInstallationInput\n ): Promise<Result<void, IInstallTenantErrors[keyof IInstallTenantErrors]>>;\n}\n\n/** Run all app installers for a tenant. */\nexport const InstallTenantUseCase =\n createAbstraction<IInstallTenantUseCase>(\"InstallTenantUseCase\");\n\nexport namespace InstallTenantUseCase {\n export type Interface = IInstallTenantUseCase;\n export type Input = TenantInstallationInput;\n export type Errors = IInstallTenantErrors[keyof IInstallTenantErrors];\n}\n\n/** Hook into tenant lifecycle after a tenant is installed. */\nexport const TenantInstalledEventHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantInstalledPayload>>\n>(\"TenantInstalledEventHandler\");\n\nexport namespace TenantInstalledEventHandler {\n export type Interface = IEventHandler<DomainEvent<TenantInstalledPayload>>;\n export type Event = DomainEvent<TenantInstalledPayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;;AAQ/D;AACA;AACA;;AAMA;AACA;AACA;;AA6BA;AACA,OAAO,MAAMC,YAAY,GAAGD,iBAAiB,CAAgB,cAAc,CAAC;AAY5E;AACA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,sBAAsB,CAAC;AAQpE;AACA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,6BAA6B,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DomainEvent } from "../../eventPublisher/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { TenantInstalledEventHandler } from "./abstractions.js";
|
|
3
3
|
export class TenantInstalledEvent extends DomainEvent {
|
|
4
4
|
eventType = "tenant.installed";
|
|
5
5
|
getHandlerAbstraction() {
|
|
6
|
-
return
|
|
6
|
+
return TenantInstalledEventHandler;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DomainEvent","
|
|
1
|
+
{"version":3,"names":["DomainEvent","TenantInstalledEventHandler","TenantInstalledEvent","eventType","getHandlerAbstraction"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport { TenantInstalledEventHandler } from \"./abstractions.js\";\n\nexport interface TenantInstalledPayload {\n tenant: Tenant;\n installedApps: string[];\n}\n\nexport class TenantInstalledEvent extends DomainEvent<TenantInstalledPayload> {\n eventType = \"tenant.installed\" as const;\n\n getHandlerAbstraction() {\n return TenantInstalledEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,SAASC,2BAA2B;AAOpC,OAAO,MAAMC,oBAAoB,SAASF,WAAW,CAAyB;EAC1EG,SAAS,GAAG,kBAAkB;EAE9BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Container } from "@webiny/di";
|
|
2
|
+
export declare const InstallTenantFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: Container): void;
|
|
5
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { InstallTenantFeature } from "./feature.js";
|
|
2
|
-
export { InstallTenantUseCase, AppInstaller,
|
|
2
|
+
export { InstallTenantUseCase, AppInstaller, TenantInstalledEventHandler, type AppInstallationData, type TenantInstallationInput } from "./abstractions.js";
|
|
3
3
|
export { DependencyResolver } from "./DependencyResolver.js";
|
|
4
4
|
export { InstallTenantError, InstallationDependencyError } from "./errors.js";
|
|
5
5
|
export { TenantInstalledEvent, type TenantInstalledPayload } from "./events.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { InstallTenantFeature } from "./feature.js";
|
|
2
|
-
export { InstallTenantUseCase, AppInstaller,
|
|
2
|
+
export { InstallTenantUseCase, AppInstaller, TenantInstalledEventHandler } from "./abstractions.js";
|
|
3
3
|
export { DependencyResolver } from "./DependencyResolver.js";
|
|
4
4
|
export { InstallTenantError, InstallationDependencyError } from "./errors.js";
|
|
5
5
|
export { TenantInstalledEvent } from "./events.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InstallTenantFeature","InstallTenantUseCase","AppInstaller","
|
|
1
|
+
{"version":3,"names":["InstallTenantFeature","InstallTenantUseCase","AppInstaller","TenantInstalledEventHandler","DependencyResolver","InstallTenantError","InstallationDependencyError","TenantInstalledEvent"],"sources":["index.ts"],"sourcesContent":["export { InstallTenantFeature } from \"./feature.js\";\nexport {\n InstallTenantUseCase,\n AppInstaller,\n TenantInstalledEventHandler,\n type AppInstallationData,\n type TenantInstallationInput\n} from \"./abstractions.js\";\nexport { DependencyResolver } from \"./DependencyResolver.js\";\nexport { InstallTenantError, InstallationDependencyError } from \"./errors.js\";\nexport { TenantInstalledEvent, type TenantInstalledPayload } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SACIC,oBAAoB,EACpBC,YAAY,EACZC,2BAA2B;AAI/B,SAASC,kBAAkB;AAC3B,SAASC,kBAAkB,EAAEC,2BAA2B;AACxD,SAASC,oBAAoB","ignoreList":[]}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { TenancyStorageOperations as ITenancyStorageOperations } from "../../types/tenancy.js";
|
|
2
|
-
export declare const TenancyFeature:
|
|
2
|
+
export declare const TenancyFeature: {
|
|
3
|
+
name: string;
|
|
4
|
+
register(container: import("@webiny/di").Container, context: ITenancyStorageOperations): void;
|
|
5
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createFeature","TenantCache","TenantCacheImpl","TenancyStorageOperations","GetRootTenantFeature","ListTenantsFeature","CreateTenantFeature","UpdateTenantFeature","DeleteTenantFeature","GetTenantByIdFeature","TenantContextFeature","InstallTenantFeature","TenancyFeature","name","register","container","storageOperations","registerInstance","ids","length","tenants","getTenantsByIds","map","_","index"],"sources":["TenancyFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { TenancyStorageOperations as ITenancyStorageOperations } from \"~/types/tenancy.js\";\nimport { TenantCache } from \"./shared/abstractions.js\";\nimport { TenantCache as TenantCacheImpl } from \"./shared/TenantCache.js\";\nimport { TenancyStorageOperations } from \"./shared/storageOperations.js\";\nimport { GetRootTenantFeature } from \"./GetRootTenant/feature.js\";\nimport { ListTenantsFeature } from \"./ListTenants/feature.js\";\nimport { CreateTenantFeature } from \"./CreateTenant/feature.js\";\nimport { UpdateTenantFeature } from \"./UpdateTenant/feature.js\";\nimport { DeleteTenantFeature } from \"./DeleteTenant/feature.js\";\nimport { GetTenantByIdFeature } from \"./GetTenantById/feature.js\";\nimport { TenantContextFeature } from \"./TenantContext/feature.js\";\nimport { InstallTenantFeature } from \"./InstallTenant/index.js\";\n\nexport const TenancyFeature = createFeature({\n name: \"TenancyFeature\",\n register: (container, storageOperations
|
|
1
|
+
{"version":3,"names":["createFeature","TenantCache","TenantCacheImpl","TenancyStorageOperations","GetRootTenantFeature","ListTenantsFeature","CreateTenantFeature","UpdateTenantFeature","DeleteTenantFeature","GetTenantByIdFeature","TenantContextFeature","InstallTenantFeature","TenancyFeature","name","register","container","storageOperations","registerInstance","ids","length","tenants","getTenantsByIds","map","_","index"],"sources":["TenancyFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { TenancyStorageOperations as ITenancyStorageOperations } from \"~/types/tenancy.js\";\nimport { TenantCache } from \"./shared/abstractions.js\";\nimport { TenantCache as TenantCacheImpl } from \"./shared/TenantCache.js\";\nimport { TenancyStorageOperations } from \"./shared/storageOperations.js\";\nimport { GetRootTenantFeature } from \"./GetRootTenant/feature.js\";\nimport { ListTenantsFeature } from \"./ListTenants/feature.js\";\nimport { CreateTenantFeature } from \"./CreateTenant/feature.js\";\nimport { UpdateTenantFeature } from \"./UpdateTenant/feature.js\";\nimport { DeleteTenantFeature } from \"./DeleteTenant/feature.js\";\nimport { GetTenantByIdFeature } from \"./GetTenantById/feature.js\";\nimport { TenantContextFeature } from \"./TenantContext/feature.js\";\nimport { InstallTenantFeature } from \"./InstallTenant/index.js\";\n\nexport const TenancyFeature = createFeature<ITenancyStorageOperations>({\n name: \"TenancyFeature\",\n register: (container, storageOperations) => {\n // Register storage operations abstraction (singleton)\n container.registerInstance(TenancyStorageOperations, storageOperations);\n\n // Register shared cache (singleton) - batch loader provided here\n container.registerInstance(\n TenantCache,\n new TenantCacheImpl(async (ids: readonly string[]) => {\n if (ids.length === 0) {\n return [];\n }\n const tenants = await storageOperations.getTenantsByIds(ids);\n return ids.map((_, index) => tenants[index]);\n })\n );\n\n // Register all features - they will auto-wire their dependencies from the container\n CreateTenantFeature.register(container);\n DeleteTenantFeature.register(container);\n GetRootTenantFeature.register(container);\n GetTenantByIdFeature.register(container);\n ListTenantsFeature.register(container);\n UpdateTenantFeature.register(container);\n TenantContextFeature.register(container);\n InstallTenantFeature.register(container);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,WAAW;AACpB,SAASA,WAAW,IAAIC,eAAe;AACvC,SAASC,wBAAwB;AACjC,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,cAAc,GAAGZ,aAAa,CAA4B;EACnEa,IAAI,EAAE,gBAAgB;EACtBC,QAAQ,EAAEA,CAACC,SAAS,EAAEC,iBAAiB,KAAK;IACxC;IACAD,SAAS,CAACE,gBAAgB,CAACd,wBAAwB,EAAEa,iBAAiB,CAAC;;IAEvE;IACAD,SAAS,CAACE,gBAAgB,CACtBhB,WAAW,EACX,IAAIC,eAAe,CAAC,MAAOgB,GAAsB,IAAK;MAClD,IAAIA,GAAG,CAACC,MAAM,KAAK,CAAC,EAAE;QAClB,OAAO,EAAE;MACb;MACA,MAAMC,OAAO,GAAG,MAAMJ,iBAAiB,CAACK,eAAe,CAACH,GAAG,CAAC;MAC5D,OAAOA,GAAG,CAACI,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAKJ,OAAO,CAACI,KAAK,CAAC,CAAC;IAChD,CAAC,CACL,CAAC;;IAED;IACAlB,mBAAmB,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACvCP,mBAAmB,CAACM,QAAQ,CAACC,SAAS,CAAC;IACvCX,oBAAoB,CAACU,QAAQ,CAACC,SAAS,CAAC;IACxCN,oBAAoB,CAACK,QAAQ,CAACC,SAAS,CAAC;IACxCV,kBAAkB,CAACS,QAAQ,CAACC,SAAS,CAAC;IACtCR,mBAAmB,CAACO,QAAQ,CAACC,SAAS,CAAC;IACvCL,oBAAoB,CAACI,QAAQ,CAACC,SAAS,CAAC;IACxCJ,oBAAoB,CAACG,QAAQ,CAACC,SAAS,CAAC;EAC5C;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ export interface ITenantContext {
|
|
|
6
6
|
withEachTenant<TReturn>(tenants: Tenant[], cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn[]>;
|
|
7
7
|
withTenant<TReturn>(tenant: Tenant, cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn>;
|
|
8
8
|
}
|
|
9
|
+
/** Provides access to the current tenant and tenant-scoped execution. */
|
|
9
10
|
export declare const TenantContext: import("@webiny/di").Abstraction<ITenantContext>;
|
|
10
11
|
export declare namespace TenantContext {
|
|
11
12
|
type Interface = ITenantContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","TenantContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport interface ITenantContext {\n setTenant(tenant: Tenant): void;\n getTenant(): Tenant;\n withRootTenant<T>(cb: () => T): Promise<T>;\n withEachTenant<TReturn>(\n tenants: Tenant[],\n cb: (tenant: Tenant) => Promise<TReturn>\n ): Promise<TReturn[]>;\n withTenant<TReturn>(tenant: Tenant, cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn>;\n}\n\nexport const TenantContext = createAbstraction<ITenantContext>(\"TenantContext\");\n\nexport namespace TenantContext {\n export type Interface = ITenantContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAcvD,OAAO,MAAMC,aAAa,GAAGD,iBAAiB,CAAiB,eAAe,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","TenantContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Tenant } from \"~/types/tenancy.js\";\n\nexport interface ITenantContext {\n setTenant(tenant: Tenant): void;\n getTenant(): Tenant;\n withRootTenant<T>(cb: () => T): Promise<T>;\n withEachTenant<TReturn>(\n tenants: Tenant[],\n cb: (tenant: Tenant) => Promise<TReturn>\n ): Promise<TReturn[]>;\n withTenant<TReturn>(tenant: Tenant, cb: (tenant: Tenant) => Promise<TReturn>): Promise<TReturn>;\n}\n\n/** Provides access to the current tenant and tenant-scoped execution. */\nexport const TenantContext = createAbstraction<ITenantContext>(\"TenantContext\");\n\nexport namespace TenantContext {\n export type Interface = ITenantContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAcvD;AACA,OAAO,MAAMC,aAAa,GAAGD,iBAAiB,CAAiB,eAAe,CAAC","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ export type UpdateTenantError = {
|
|
|
11
11
|
export interface IUpdateTenantUseCase {
|
|
12
12
|
execute(id: string, data: Partial<Tenant>): Promise<Result<Tenant, UpdateTenantError>>;
|
|
13
13
|
}
|
|
14
|
+
/** Update an existing tenant. */
|
|
14
15
|
export declare const UpdateTenantUseCase: import("@webiny/di").Abstraction<IUpdateTenantUseCase>;
|
|
15
16
|
export declare namespace UpdateTenantUseCase {
|
|
16
17
|
type Interface = IUpdateTenantUseCase;
|
|
@@ -18,6 +19,7 @@ export declare namespace UpdateTenantUseCase {
|
|
|
18
19
|
export interface IUpdateTenantRepository {
|
|
19
20
|
update(tenant: Tenant): Promise<Tenant>;
|
|
20
21
|
}
|
|
22
|
+
/** Persist tenant updates. */
|
|
21
23
|
export declare const UpdateTenantRepository: import("@webiny/di").Abstraction<IUpdateTenantRepository>;
|
|
22
24
|
export declare namespace UpdateTenantRepository {
|
|
23
25
|
type Interface = IUpdateTenantRepository;
|
|
@@ -25,17 +27,20 @@ export declare namespace UpdateTenantRepository {
|
|
|
25
27
|
export interface IUpdateTenantGateway {
|
|
26
28
|
updateTenant(data: Tenant): Promise<Tenant>;
|
|
27
29
|
}
|
|
30
|
+
/** Storage gateway for tenant updates. */
|
|
28
31
|
export declare const UpdateTenantGateway: import("@webiny/di").Abstraction<IUpdateTenantGateway>;
|
|
29
32
|
export declare namespace UpdateTenantGateway {
|
|
30
33
|
type Interface = IUpdateTenantGateway;
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
export declare
|
|
35
|
+
/** Hook into tenant lifecycle before a tenant is updated. */
|
|
36
|
+
export declare const TenantBeforeUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>>;
|
|
37
|
+
export declare namespace TenantBeforeUpdateEventHandler {
|
|
34
38
|
type Interface = IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>;
|
|
35
39
|
type Event = DomainEvent<TenantBeforeUpdatePayload>;
|
|
36
40
|
}
|
|
37
|
-
|
|
38
|
-
export declare
|
|
41
|
+
/** Hook into tenant lifecycle after a tenant is updated. */
|
|
42
|
+
export declare const TenantAfterUpdateEventHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<TenantAfterUpdatePayload>>>;
|
|
43
|
+
export declare namespace TenantAfterUpdateEventHandler {
|
|
39
44
|
type Interface = IEventHandler<DomainEvent<TenantAfterUpdatePayload>>;
|
|
40
45
|
type Event = DomainEvent<TenantAfterUpdatePayload>;
|
|
41
46
|
}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
/** Update an existing tenant. */
|
|
2
3
|
export const UpdateTenantUseCase = createAbstraction("UpdateTenantUseCase");
|
|
4
|
+
/** Persist tenant updates. */
|
|
3
5
|
export const UpdateTenantRepository = createAbstraction("UpdateTenantRepository");
|
|
6
|
+
/** Storage gateway for tenant updates. */
|
|
4
7
|
export const UpdateTenantGateway = createAbstraction("UpdateTenantGateway");
|
|
5
|
-
|
|
6
|
-
export const
|
|
8
|
+
/** Hook into tenant lifecycle before a tenant is updated. */
|
|
9
|
+
export const TenantBeforeUpdateEventHandler = createAbstraction("TenantBeforeUpdateEventHandler");
|
|
10
|
+
/** Hook into tenant lifecycle after a tenant is updated. */
|
|
11
|
+
export const TenantAfterUpdateEventHandler = createAbstraction("TenantAfterUpdateEventHandler");
|
|
7
12
|
|
|
8
13
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","
|
|
1
|
+
{"version":3,"names":["createAbstraction","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","TenantBeforeUpdateEventHandler","TenantAfterUpdateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler, DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport type { TenantBeforeUpdatePayload, TenantAfterUpdatePayload } from \"./events.js\";\n\nexport type UpdateTenantError = { type: \"NOT_FOUND\" } | { type: \"UNKNOWN\"; cause: Error };\n\nexport interface IUpdateTenantUseCase {\n execute(id: string, data: Partial<Tenant>): Promise<Result<Tenant, UpdateTenantError>>;\n}\n\n/** Update an existing tenant. */\nexport const UpdateTenantUseCase = createAbstraction<IUpdateTenantUseCase>(\"UpdateTenantUseCase\");\n\nexport namespace UpdateTenantUseCase {\n export type Interface = IUpdateTenantUseCase;\n}\n\nexport interface IUpdateTenantRepository {\n update(tenant: Tenant): Promise<Tenant>;\n}\n\n/** Persist tenant updates. */\nexport const UpdateTenantRepository =\n createAbstraction<IUpdateTenantRepository>(\"UpdateTenantRepository\");\n\nexport namespace UpdateTenantRepository {\n export type Interface = IUpdateTenantRepository;\n}\n\nexport interface IUpdateTenantGateway {\n updateTenant(data: Tenant): Promise<Tenant>;\n}\n\n/** Storage gateway for tenant updates. */\nexport const UpdateTenantGateway = createAbstraction<IUpdateTenantGateway>(\"UpdateTenantGateway\");\n\nexport namespace UpdateTenantGateway {\n export type Interface = IUpdateTenantGateway;\n}\n\n/** Hook into tenant lifecycle before a tenant is updated. */\nexport const TenantBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>\n>(\"TenantBeforeUpdateEventHandler\");\n\nexport namespace TenantBeforeUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<TenantBeforeUpdatePayload>>;\n export type Event = DomainEvent<TenantBeforeUpdatePayload>;\n}\n\n/** Hook into tenant lifecycle after a tenant is updated. */\nexport const TenantAfterUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<TenantAfterUpdatePayload>>\n>(\"TenantAfterUpdateEventHandler\");\n\nexport namespace TenantAfterUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<TenantAfterUpdatePayload>>;\n export type Event = DomainEvent<TenantAfterUpdatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;AAWpE;AACA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;AAUjG;AACA,OAAO,MAAME,sBAAsB,GAC/BF,iBAAiB,CAA0B,wBAAwB,CAAC;AAUxE;AACA,OAAO,MAAMG,mBAAmB,GAAGH,iBAAiB,CAAuB,qBAAqB,CAAC;AAMjG;AACA,OAAO,MAAMI,8BAA8B,GAAGJ,iBAAiB,CAE7D,gCAAgC,CAAC;AAOnC;AACA,OAAO,MAAMK,6BAA6B,GAAGL,iBAAiB,CAE5D,+BAA+B,CAAC","ignoreList":[]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { DomainEvent } from "../../eventPublisher/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from "./abstractions.js";
|
|
3
3
|
export class TenantBeforeUpdateEvent extends DomainEvent {
|
|
4
4
|
eventType = "tenant.beforeUpdate";
|
|
5
5
|
getHandlerAbstraction() {
|
|
6
|
-
return
|
|
6
|
+
return TenantBeforeUpdateEventHandler;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
export class TenantAfterUpdateEvent extends DomainEvent {
|
|
10
10
|
eventType = "tenant.afterUpdate";
|
|
11
11
|
getHandlerAbstraction() {
|
|
12
|
-
return
|
|
12
|
+
return TenantAfterUpdateEventHandler;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DomainEvent","
|
|
1
|
+
{"version":3,"names":["DomainEvent","TenantBeforeUpdateEventHandler","TenantAfterUpdateEventHandler","TenantBeforeUpdateEvent","eventType","getHandlerAbstraction","TenantAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { Tenant } from \"~/types/tenancy.js\";\nimport { TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from \"./abstractions.js\";\n\nexport interface TenantBeforeUpdatePayload {\n tenant: Tenant;\n inputData: Record<string, any>;\n updateData: Partial<Tenant>;\n}\n\nexport interface TenantAfterUpdatePayload {\n tenant: Tenant;\n inputData: Record<string, any>;\n}\n\nexport class TenantBeforeUpdateEvent extends DomainEvent<TenantBeforeUpdatePayload> {\n eventType = \"tenant.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return TenantBeforeUpdateEventHandler;\n }\n}\n\nexport class TenantAfterUpdateEvent extends DomainEvent<TenantAfterUpdatePayload> {\n eventType = \"tenant.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return TenantAfterUpdateEventHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,SAASC,8BAA8B,EAAEC,6BAA6B;AAatE,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,8BAA8B;EACzC;AACJ;AAEA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,6BAA6B;EACxC;AACJ","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { UpdateTenantFeature } from "./feature.js";
|
|
2
|
-
export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway,
|
|
2
|
+
export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway, TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from "./abstractions.js";
|
|
3
3
|
export { TenantBeforeUpdateEvent, TenantAfterUpdateEvent } from "./events.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { UpdateTenantFeature } from "./feature.js";
|
|
2
|
-
export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway,
|
|
2
|
+
export { UpdateTenantUseCase, UpdateTenantRepository, UpdateTenantGateway, TenantBeforeUpdateEventHandler, TenantAfterUpdateEventHandler } from "./abstractions.js";
|
|
3
3
|
export { TenantBeforeUpdateEvent, TenantAfterUpdateEvent } from "./events.js";
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UpdateTenantFeature","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","
|
|
1
|
+
{"version":3,"names":["UpdateTenantFeature","UpdateTenantUseCase","UpdateTenantRepository","UpdateTenantGateway","TenantBeforeUpdateEventHandler","TenantAfterUpdateEventHandler","TenantBeforeUpdateEvent","TenantAfterUpdateEvent"],"sources":["index.ts"],"sourcesContent":["export { UpdateTenantFeature } from \"./feature.js\";\nexport {\n UpdateTenantUseCase,\n UpdateTenantRepository,\n UpdateTenantGateway,\n TenantBeforeUpdateEventHandler,\n TenantAfterUpdateEventHandler\n} from \"./abstractions.js\";\nexport { TenantBeforeUpdateEvent, TenantAfterUpdateEvent } from \"./events.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,mBAAmB,EACnBC,sBAAsB,EACtBC,mBAAmB,EACnBC,8BAA8B,EAC9BC,6BAA6B;AAEjC,SAASC,uBAAuB,EAAEC,sBAAsB","ignoreList":[]}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
export declare const AdminUsersFeature:
|
|
1
|
+
export declare const AdminUsersFeature: {
|
|
2
|
+
name: string;
|
|
3
|
+
register(container: import("@webiny/di").Container, context: import("../../types/users.js").AdminUsersStorageOperations): void;
|
|
4
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createFeature","AdminUsersRepository","GetUserFeature","GetIdentityProfileFeature","ListUsersFeature","CreateUserFeature","UpdateUserFeature","DeleteUserFeature","ListUserTeamsFeature","AdminUsersStorageOperations","ExternalIdpUserSyncFeature","AdminUsersFeature","name","register","container","storageOperations","inSingletonScope","registerInstance"],"sources":["AdminUsersFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { AdminUsersRepository } from \"./shared/AdminUsersRepository.js\";\nimport { GetUserFeature } from \"./GetUser/feature.js\";\nimport { GetIdentityProfileFeature } from \"./GetIdentityProfile/feature.js\";\nimport { ListUsersFeature } from \"./ListUsers/feature.js\";\nimport { CreateUserFeature } from \"./CreateUser/feature.js\";\nimport { UpdateUserFeature } from \"./UpdateUser/feature.js\";\nimport { DeleteUserFeature } from \"./DeleteUser/feature.js\";\nimport { ListUserTeamsFeature } from \"./ListUserTeams/feature.js\";\nimport { AdminUsersStorageOperations } from \"./shared/storageAbstractions.js\";\nimport { ExternalIdpUserSyncFeature } from \"./ExternalIdpUserSync/index.js\";\n\nexport const AdminUsersFeature = createFeature({\n name: \"AdminUsers\",\n register(container, storageOperations
|
|
1
|
+
{"version":3,"names":["createFeature","AdminUsersRepository","GetUserFeature","GetIdentityProfileFeature","ListUsersFeature","CreateUserFeature","UpdateUserFeature","DeleteUserFeature","ListUserTeamsFeature","AdminUsersStorageOperations","ExternalIdpUserSyncFeature","AdminUsersFeature","name","register","container","storageOperations","inSingletonScope","registerInstance"],"sources":["AdminUsersFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { AdminUsersRepository } from \"./shared/AdminUsersRepository.js\";\nimport { GetUserFeature } from \"./GetUser/feature.js\";\nimport { GetIdentityProfileFeature } from \"./GetIdentityProfile/feature.js\";\nimport { ListUsersFeature } from \"./ListUsers/feature.js\";\nimport { CreateUserFeature } from \"./CreateUser/feature.js\";\nimport { UpdateUserFeature } from \"./UpdateUser/feature.js\";\nimport { DeleteUserFeature } from \"./DeleteUser/feature.js\";\nimport { ListUserTeamsFeature } from \"./ListUserTeams/feature.js\";\nimport { AdminUsersStorageOperations } from \"./shared/storageAbstractions.js\";\nimport { ExternalIdpUserSyncFeature } from \"./ExternalIdpUserSync/index.js\";\n\nexport const AdminUsersFeature = createFeature<AdminUsersStorageOperations.Interface>({\n name: \"AdminUsers\",\n register(container, storageOperations) {\n // Register repository in singleton scope\n container.register(AdminUsersRepository).inSingletonScope();\n\n // Register all use cases\n GetUserFeature.register(container);\n GetIdentityProfileFeature.register(container);\n ListUsersFeature.register(container);\n ListUserTeamsFeature.register(container);\n CreateUserFeature.register(container);\n UpdateUserFeature.register(container);\n DeleteUserFeature.register(container);\n ExternalIdpUserSyncFeature.register(container);\n\n // Legacy storage ops\n container.registerInstance(AdminUsersStorageOperations, storageOperations);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAC7B,SAASC,cAAc;AACvB,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,2BAA2B;AACpC,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,iBAAiB,GAAGX,aAAa,CAAwC;EAClFY,IAAI,EAAE,YAAY;EAClBC,QAAQA,CAACC,SAAS,EAAEC,iBAAiB,EAAE;IACnC;IACAD,SAAS,CAACD,QAAQ,CAACZ,oBAAoB,CAAC,CAACe,gBAAgB,CAAC,CAAC;;IAE3D;IACAd,cAAc,CAACW,QAAQ,CAACC,SAAS,CAAC;IAClCX,yBAAyB,CAACU,QAAQ,CAACC,SAAS,CAAC;IAC7CV,gBAAgB,CAACS,QAAQ,CAACC,SAAS,CAAC;IACpCN,oBAAoB,CAACK,QAAQ,CAACC,SAAS,CAAC;IACxCT,iBAAiB,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACrCR,iBAAiB,CAACO,QAAQ,CAACC,SAAS,CAAC;IACrCP,iBAAiB,CAACM,QAAQ,CAACC,SAAS,CAAC;IACrCJ,0BAA0B,CAACG,QAAQ,CAACC,SAAS,CAAC;;IAE9C;IACAA,SAAS,CAACG,gBAAgB,CAACR,2BAA2B,EAAEM,iBAAiB,CAAC;EAC9E;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@ class CreateUserUseCaseImpl {
|
|
|
26
26
|
// 2. Validate input
|
|
27
27
|
const validation = createUserValidation.safeParse(input);
|
|
28
28
|
if (!validation.success) {
|
|
29
|
-
return Result.fail(new UserValidationError(validation.error.
|
|
29
|
+
return Result.fail(new UserValidationError(validation.error.issues[0].message));
|
|
30
30
|
}
|
|
31
31
|
const data = validation.data;
|
|
32
32
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mdbid","createImplementation","Result","TenantContext","IdentityContext","EventPublisher","CreateUserUseCase","UseCaseAbstraction","AdminUsersRepository","createUserValidation","NotAuthorizedError","EmailTakenError","UserValidationError","UserBeforeCreateEvent","UserAfterCreateEvent","CreateUserUseCaseImpl","constructor","tenantContext","identityContext","eventPublisher","repository","execute","input","permission","getPermission","fail","validation","safeParse","success","error","
|
|
1
|
+
{"version":3,"names":["mdbid","createImplementation","Result","TenantContext","IdentityContext","EventPublisher","CreateUserUseCase","UseCaseAbstraction","AdminUsersRepository","createUserValidation","NotAuthorizedError","EmailTakenError","UserValidationError","UserBeforeCreateEvent","UserAfterCreateEvent","CreateUserUseCaseImpl","constructor","tenantContext","identityContext","eventPublisher","repository","execute","input","permission","getPermission","fail","validation","safeParse","success","error","issues","message","data","existingUserResult","get","email","isOk","code","id","displayName","getDisplayName","tenant","getTenant","identity","getIdentity","createdBy","type","user","createdOn","Date","toISOString","publish","result","create","isFail","value","ok","firstName","lastName","trim","abstraction","implementation","dependencies"],"sources":["CreateUserUseCase.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { TenantContext } from \"~/features/tenancy/TenantContext/index.js\";\nimport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { CreateUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport { createUserValidation } from \"./schema.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\nimport { UserBeforeCreateEvent, UserAfterCreateEvent } from \"./events.js\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { CreateUserInput } from \"~/features/users/shared/types.js\";\nimport type { CreatedBy } from \"~/types/users.js\";\n\nclass CreateUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private tenantContext: TenantContext.Interface,\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: AdminUsersRepository.Interface\n ) {}\n\n async execute(input: CreateUserInput): Promise<Result<AdminUser, UseCaseAbstraction.Error>> {\n // 1. Check permission\n const permission = await this.identityContext.getPermission(\"adminUsers.user\");\n if (!permission) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // 2. Validate input\n const validation = createUserValidation.safeParse(input);\n if (!validation.success) {\n return Result.fail(new UserValidationError(validation.error.issues[0].message));\n }\n\n const data = validation.data;\n\n // 3. Check email uniqueness\n const existingUserResult = await this.repository.get({ email: data.email });\n if (existingUserResult.isOk()) {\n // This means the email is taken!\n return Result.fail(new EmailTakenError(data.email));\n }\n\n if (existingUserResult.error.code !== \"AdminUser/NotFound\") {\n return Result.fail(existingUserResult.error);\n }\n\n // 4. Generate ID if not provided\n const id = data.id || mdbid();\n\n // 5. Generate display name\n const displayName = this.getDisplayName(data);\n\n // 6. Get tenant and identity\n const tenant = this.tenantContext.getTenant().id;\n const identity = this.identityContext.getIdentity();\n\n let createdBy: CreatedBy | null = null;\n if (identity) {\n createdBy = {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n };\n }\n\n // 7. Create user entity\n const user: AdminUser = {\n ...data,\n id,\n email: data.email,\n displayName,\n createdOn: new Date().toISOString(),\n createdBy,\n tenant\n };\n\n // 8. Publish before event\n await this.eventPublisher.publish(new UserBeforeCreateEvent({ user, input: data }));\n\n // 10. Create user via repository\n const result = await this.repository.create(user);\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n // 11. Publish after event\n await this.eventPublisher.publish(\n new UserAfterCreateEvent({ user: result.value, input: data })\n );\n\n return Result.ok(result.value);\n }\n\n private getDisplayName(data: CreateUserInput): string {\n // If display name is not set, try to get it from the first name and last name.\n // If first name and last name are not set, use the e-mail address.\n if (data.displayName) {\n return data.displayName;\n }\n\n if (data.firstName || data.lastName) {\n return `${data.firstName || \"\"} ${data.lastName || \"\"}`.trim();\n }\n\n if (data.email) {\n return data.email;\n }\n\n return \"Missing display name\";\n }\n}\n\nexport const CreateUserUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: CreateUserUseCaseImpl,\n dependencies: [TenantContext, IdentityContext, EventPublisher, AdminUsersRepository]\n});\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,eAAe;AACrC,SAASC,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,aAAa;AACtB,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,iBAAiB,IAAIC,kBAAkB;AAChD,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SACIC,kBAAkB,EAClBC,eAAe,EACfC,mBAAmB;AAEvB,SAASC,qBAAqB,EAAEC,oBAAoB;AAKpD,MAAMC,qBAAqB,CAAyC;EAChEC,WAAWA,CACCC,aAAsC,EACtCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA0C,EACpD;IAAA,KAJUH,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA0C,GAA1CA,UAA0C;EACnD;EAEH,MAAMC,OAAOA,CAACC,KAAsB,EAAwD;IACxF;IACA,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACL,eAAe,CAACM,aAAa,CAAC,iBAAiB,CAAC;IAC9E,IAAI,CAACD,UAAU,EAAE;MACb,OAAOrB,MAAM,CAACuB,IAAI,CAAC,IAAIf,kBAAkB,CAAC,CAAC,CAAC;IAChD;;IAEA;IACA,MAAMgB,UAAU,GAAGjB,oBAAoB,CAACkB,SAAS,CAACL,KAAK,CAAC;IACxD,IAAI,CAACI,UAAU,CAACE,OAAO,EAAE;MACrB,OAAO1B,MAAM,CAACuB,IAAI,CAAC,IAAIb,mBAAmB,CAACc,UAAU,CAACG,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IACnF;IAEA,MAAMC,IAAI,GAAGN,UAAU,CAACM,IAAI;;IAE5B;IACA,MAAMC,kBAAkB,GAAG,MAAM,IAAI,CAACb,UAAU,CAACc,GAAG,CAAC;MAAEC,KAAK,EAAEH,IAAI,CAACG;IAAM,CAAC,CAAC;IAC3E,IAAIF,kBAAkB,CAACG,IAAI,CAAC,CAAC,EAAE;MAC3B;MACA,OAAOlC,MAAM,CAACuB,IAAI,CAAC,IAAId,eAAe,CAACqB,IAAI,CAACG,KAAK,CAAC,CAAC;IACvD;IAEA,IAAIF,kBAAkB,CAACJ,KAAK,CAACQ,IAAI,KAAK,oBAAoB,EAAE;MACxD,OAAOnC,MAAM,CAACuB,IAAI,CAACQ,kBAAkB,CAACJ,KAAK,CAAC;IAChD;;IAEA;IACA,MAAMS,EAAE,GAAGN,IAAI,CAACM,EAAE,IAAItC,KAAK,CAAC,CAAC;;IAE7B;IACA,MAAMuC,WAAW,GAAG,IAAI,CAACC,cAAc,CAACR,IAAI,CAAC;;IAE7C;IACA,MAAMS,MAAM,GAAG,IAAI,CAACxB,aAAa,CAACyB,SAAS,CAAC,CAAC,CAACJ,EAAE;IAChD,MAAMK,QAAQ,GAAG,IAAI,CAACzB,eAAe,CAAC0B,WAAW,CAAC,CAAC;IAEnD,IAAIC,SAA2B,GAAG,IAAI;IACtC,IAAIF,QAAQ,EAAE;MACVE,SAAS,GAAG;QACRP,EAAE,EAAEK,QAAQ,CAACL,EAAE;QACfC,WAAW,EAAEI,QAAQ,CAACJ,WAAW;QACjCO,IAAI,EAAEH,QAAQ,CAACG;MACnB,CAAC;IACL;;IAEA;IACA,MAAMC,IAAe,GAAG;MACpB,GAAGf,IAAI;MACPM,EAAE;MACFH,KAAK,EAAEH,IAAI,CAACG,KAAK;MACjBI,WAAW;MACXS,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACnCL,SAAS;MACTJ;IACJ,CAAC;;IAED;IACA,MAAM,IAAI,CAACtB,cAAc,CAACgC,OAAO,CAAC,IAAItC,qBAAqB,CAAC;MAAEkC,IAAI;MAAEzB,KAAK,EAAEU;IAAK,CAAC,CAAC,CAAC;;IAEnF;IACA,MAAMoB,MAAM,GAAG,MAAM,IAAI,CAAChC,UAAU,CAACiC,MAAM,CAACN,IAAI,CAAC;IACjD,IAAIK,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOpD,MAAM,CAACuB,IAAI,CAAC2B,MAAM,CAACvB,KAAK,CAAC;IACpC;;IAEA;IACA,MAAM,IAAI,CAACV,cAAc,CAACgC,OAAO,CAC7B,IAAIrC,oBAAoB,CAAC;MAAEiC,IAAI,EAAEK,MAAM,CAACG,KAAK;MAAEjC,KAAK,EAAEU;IAAK,CAAC,CAChE,CAAC;IAED,OAAO9B,MAAM,CAACsD,EAAE,CAACJ,MAAM,CAACG,KAAK,CAAC;EAClC;EAEQf,cAAcA,CAACR,IAAqB,EAAU;IAClD;IACA;IACA,IAAIA,IAAI,CAACO,WAAW,EAAE;MAClB,OAAOP,IAAI,CAACO,WAAW;IAC3B;IAEA,IAAIP,IAAI,CAACyB,SAAS,IAAIzB,IAAI,CAAC0B,QAAQ,EAAE;MACjC,OAAO,GAAG1B,IAAI,CAACyB,SAAS,IAAI,EAAE,IAAIzB,IAAI,CAAC0B,QAAQ,IAAI,EAAE,EAAE,CAACC,IAAI,CAAC,CAAC;IAClE;IAEA,IAAI3B,IAAI,CAACG,KAAK,EAAE;MACZ,OAAOH,IAAI,CAACG,KAAK;IACrB;IAEA,OAAO,sBAAsB;EACjC;AACJ;AAEA,OAAO,MAAM7B,iBAAiB,GAAGL,oBAAoB,CAAC;EAClD2D,WAAW,EAAErD,kBAAkB;EAC/BsD,cAAc,EAAE9C,qBAAqB;EACrC+C,YAAY,EAAE,CAAC3D,aAAa,EAAEC,eAAe,EAAEC,cAAc,EAAEG,oBAAoB;AACvF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ type CreateUserError = ICreateUserErrors[keyof ICreateUserErrors] | AdminUsersRe
|
|
|
12
12
|
export interface ICreateUser {
|
|
13
13
|
execute(input: CreateUserInput): Promise<Result<AdminUser, CreateUserError>>;
|
|
14
14
|
}
|
|
15
|
+
/** Create a new admin user. */
|
|
15
16
|
export declare const CreateUserUseCase: import("@webiny/di").Abstraction<ICreateUser>;
|
|
16
17
|
export declare namespace CreateUserUseCase {
|
|
17
18
|
type Interface = ICreateUser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","CreateUserUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { CreateUserInput } from \"~/features/users/shared/types.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\n\n// Use case specific errors\nexport interface ICreateUserErrors {\n notAuthorized: NotAuthorizedError;\n userExists: EmailTakenError;\n validation: UserValidationError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype CreateUserError = ICreateUserErrors[keyof ICreateUserErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface ICreateUser {\n execute(input: CreateUserInput): Promise<Result<AdminUser, CreateUserError>>;\n}\n\n
|
|
1
|
+
{"version":3,"names":["createAbstraction","CreateUserUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"~/features/users/shared/types.js\";\nimport type { CreateUserInput } from \"~/features/users/shared/types.js\";\nimport { AdminUsersRepository } from \"~/features/users/shared/abstractions.js\";\nimport {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"~/features/users/shared/errors.js\";\n\n// Use case specific errors\nexport interface ICreateUserErrors {\n notAuthorized: NotAuthorizedError;\n userExists: EmailTakenError;\n validation: UserValidationError;\n}\n\n// Combined error type (use case errors + repository errors)\ntype CreateUserError = ICreateUserErrors[keyof ICreateUserErrors] | AdminUsersRepository.Error;\n\n// Use case interface\nexport interface ICreateUser {\n execute(input: CreateUserInput): Promise<Result<AdminUser, CreateUserError>>;\n}\n\n/** Create a new admin user. */\nexport const CreateUserUseCase = createAbstraction<ICreateUser>(\"CreateUserUseCase\");\n\n// Namespace exports\nexport namespace CreateUserUseCase {\n export type Interface = ICreateUser;\n export type Input = CreateUserInput;\n export type Error = CreateUserError;\n}\n\n// Event payload types\nexport interface UserBeforeCreatePayload {\n user: AdminUser;\n input: CreateUserInput;\n}\n\nexport interface UserAfterCreatePayload {\n user: AdminUser;\n input: CreateUserInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAWvD;;AAOA;;AAGA;;AAKA;AACA,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAc,mBAAmB,CAAC;;AAEpF;;AAOA","ignoreList":[]}
|
|
@@ -5,8 +5,9 @@ export declare class UserBeforeCreateEvent extends DomainEvent<UserBeforeCreateP
|
|
|
5
5
|
eventType: "user.beforeCreate";
|
|
6
6
|
getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<UserBeforeCreateEvent>>;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
export declare
|
|
8
|
+
/** Hook into user lifecycle before a user is created. */
|
|
9
|
+
export declare const UserBeforeCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<UserBeforeCreateEvent>>;
|
|
10
|
+
export declare namespace UserBeforeCreateEventHandler {
|
|
10
11
|
type Interface = IEventHandler<UserBeforeCreateEvent>;
|
|
11
12
|
type Event = UserBeforeCreateEvent;
|
|
12
13
|
}
|
|
@@ -14,8 +15,9 @@ export declare class UserAfterCreateEvent extends DomainEvent<UserAfterCreatePay
|
|
|
14
15
|
eventType: "user.afterCreate";
|
|
15
16
|
getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<UserAfterCreateEvent>>;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
export declare
|
|
18
|
+
/** Hook into user lifecycle after a user is created. */
|
|
19
|
+
export declare const UserAfterCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<UserAfterCreateEvent>>;
|
|
20
|
+
export declare namespace UserAfterCreateEventHandler {
|
|
19
21
|
type Interface = IEventHandler<UserAfterCreateEvent>;
|
|
20
22
|
type Event = UserAfterCreateEvent;
|
|
21
23
|
}
|