@webiny/api-core 0.0.0-unstable.e622468070 → 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 +8 -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/{buildParams.d.ts → build-params.d.ts} +1 -0
- package/exports/api/build-params.js +4 -0
- package/exports/api/build-params.js.map +1 -0
- package/exports/api/{eventPublisher.js → event-publisher.d.ts} +1 -2
- package/exports/api/event-publisher.js +4 -0
- package/exports/api/event-publisher.js.map +1 -0
- package/exports/api/{keyValueStore.d.ts → key-value-store.d.ts} +1 -0
- package/exports/api/key-value-store.js +4 -0
- package/exports/api/key-value-store.js.map +1 -0
- 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 +7 -0
- package/exports/api/security/api-key.js +9 -0
- package/exports/api/security/api-key.js.map +1 -0
- 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/FeatureFlags.d.ts +12 -0
- package/features/featureFlags/FeatureFlags.js +18 -0
- package/features/featureFlags/FeatureFlags.js.map +1 -0
- package/features/featureFlags/abstractions.d.ts +8 -0
- package/features/featureFlags/abstractions.js +4 -0
- package/features/featureFlags/abstractions.js.map +1 -0
- package/features/featureFlags/feature.d.ts +5 -0
- package/features/featureFlags/feature.js +10 -0
- package/features/featureFlags/feature.js.map +1 -0
- 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/IdentityContext.js +1 -1
- package/features/security/IdentityContext/IdentityContext.js.map +1 -1
- 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 +8 -0
- package/features/security/permissions/createPermissions.js +250 -0
- package/features/security/permissions/createPermissions.js.map +1 -0
- package/features/security/permissions/index.d.ts +3 -0
- package/features/security/permissions/index.js +4 -0
- package/features/security/permissions/index.js.map +1 -0
- package/features/security/permissions/types.d.ts +137 -0
- package/features/security/permissions/types.js +3 -0
- package/features/security/permissions/types.js.map +1 -0
- 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 +5 -0
- package/features/wcp/WcpContext/WcpContext.js +15 -0
- package/features/wcp/WcpContext/WcpContext.js.map +1 -1
- package/features/wcp/WcpContext/abstractions.d.ts +1 -0
- package/features/wcp/WcpContext/abstractions.js.map +1 -1
- package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.d.ts +94 -0
- package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +142 -0
- package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -0
- package/features/wcp/WcpContext/feature.d.ts +5 -1
- package/features/wcp/WcpFeature.d.ts +4 -1
- package/features/wcp/WcpFeature.js +2 -0
- 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 +2 -1
- 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 +5 -0
- package/legacy/wcp/LegacyWcpContext.js +15 -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 +4 -3
- package/models/cms/FieldBuilder.js +17 -22
- 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 +6 -4
- package/models/cms/types.d.ts +2 -2
- package/models/cms/types.js.map +1 -1
- package/models/simple/Page/abstractions.d.ts +1 -11
- package/package.json +28 -70
- package/types/security.d.ts +13 -10
- package/types/security.js.map +1 -1
- package/exports/api/buildParams.js +0 -3
- package/exports/api/buildParams.js.map +0 -1
- package/exports/api/eventPublisher.d.ts +0 -1
- package/exports/api/eventPublisher.js.map +0 -1
- package/exports/api/keyValueStore.js +0 -3
- package/exports/api/keyValueStore.js.map +0 -1
- package/exports/api/security/apiKey.d.ts +0 -7
- package/exports/api/security/apiKey.js +0 -9
- package/exports/api/security/apiKey.js.map +0 -1
- package/extensions/BuildParam.d.ts +0 -11
- package/extensions/BuildParam.js +0 -119
- package/extensions/BuildParam.js.map +0 -1
- package/extensions/GenericExtension.d.ts +0 -10
- package/extensions/GenericExtension.js +0 -7
- package/extensions/GenericExtension.js.map +0 -1
- package/extensions/eventHandlers/AfterAuthentication.d.ts +0 -10
- package/extensions/eventHandlers/AfterAuthentication.js +0 -9
- package/extensions/eventHandlers/AfterAuthentication.js.map +0 -1
- package/extensions/eventHandlers/ApiKeyAfterCreate.d.ts +0 -10
- package/extensions/eventHandlers/ApiKeyAfterCreate.js +0 -9
- package/extensions/eventHandlers/ApiKeyAfterCreate.js.map +0 -1
- package/extensions/eventHandlers/ApiKeyAfterDelete.d.ts +0 -10
- package/extensions/eventHandlers/ApiKeyAfterDelete.js +0 -9
- package/extensions/eventHandlers/ApiKeyAfterDelete.js.map +0 -1
- package/extensions/eventHandlers/ApiKeyAfterUpdate.d.ts +0 -10
- package/extensions/eventHandlers/ApiKeyAfterUpdate.js +0 -9
- package/extensions/eventHandlers/ApiKeyAfterUpdate.js.map +0 -1
- package/extensions/eventHandlers/ApiKeyBeforeCreate.d.ts +0 -10
- package/extensions/eventHandlers/ApiKeyBeforeCreate.js +0 -9
- package/extensions/eventHandlers/ApiKeyBeforeCreate.js.map +0 -1
- package/extensions/eventHandlers/ApiKeyBeforeDelete.d.ts +0 -10
- package/extensions/eventHandlers/ApiKeyBeforeDelete.js +0 -9
- package/extensions/eventHandlers/ApiKeyBeforeDelete.js.map +0 -1
- package/extensions/eventHandlers/ApiKeyBeforeUpdate.d.ts +0 -10
- package/extensions/eventHandlers/ApiKeyBeforeUpdate.js +0 -9
- package/extensions/eventHandlers/ApiKeyBeforeUpdate.js.map +0 -1
- package/extensions/eventHandlers/BeforeAuthentication.d.ts +0 -10
- package/extensions/eventHandlers/BeforeAuthentication.js +0 -9
- package/extensions/eventHandlers/BeforeAuthentication.js.map +0 -1
- package/extensions/eventHandlers/RoleAfterCreate.d.ts +0 -10
- package/extensions/eventHandlers/RoleAfterCreate.js +0 -9
- package/extensions/eventHandlers/RoleAfterCreate.js.map +0 -1
- package/extensions/eventHandlers/RoleAfterDelete.d.ts +0 -10
- package/extensions/eventHandlers/RoleAfterDelete.js +0 -9
- package/extensions/eventHandlers/RoleAfterDelete.js.map +0 -1
- package/extensions/eventHandlers/RoleAfterUpdate.d.ts +0 -10
- package/extensions/eventHandlers/RoleAfterUpdate.js +0 -9
- package/extensions/eventHandlers/RoleAfterUpdate.js.map +0 -1
- package/extensions/eventHandlers/RoleBeforeCreate.d.ts +0 -10
- package/extensions/eventHandlers/RoleBeforeCreate.js +0 -9
- package/extensions/eventHandlers/RoleBeforeCreate.js.map +0 -1
- package/extensions/eventHandlers/RoleBeforeDelete.d.ts +0 -10
- package/extensions/eventHandlers/RoleBeforeDelete.js +0 -9
- package/extensions/eventHandlers/RoleBeforeDelete.js.map +0 -1
- package/extensions/eventHandlers/RoleBeforeUpdate.d.ts +0 -10
- package/extensions/eventHandlers/RoleBeforeUpdate.js +0 -9
- package/extensions/eventHandlers/RoleBeforeUpdate.js.map +0 -1
- package/extensions/eventHandlers/SystemInstalled.d.ts +0 -10
- package/extensions/eventHandlers/SystemInstalled.js +0 -9
- package/extensions/eventHandlers/SystemInstalled.js.map +0 -1
- package/extensions/eventHandlers/TeamAfterCreate.d.ts +0 -10
- package/extensions/eventHandlers/TeamAfterCreate.js +0 -9
- package/extensions/eventHandlers/TeamAfterCreate.js.map +0 -1
- package/extensions/eventHandlers/TeamAfterDelete.d.ts +0 -10
- package/extensions/eventHandlers/TeamAfterDelete.js +0 -9
- package/extensions/eventHandlers/TeamAfterDelete.js.map +0 -1
- package/extensions/eventHandlers/TeamAfterUpdate.d.ts +0 -10
- package/extensions/eventHandlers/TeamAfterUpdate.js +0 -9
- package/extensions/eventHandlers/TeamAfterUpdate.js.map +0 -1
- package/extensions/eventHandlers/TeamBeforeCreate.d.ts +0 -10
- package/extensions/eventHandlers/TeamBeforeCreate.js +0 -9
- package/extensions/eventHandlers/TeamBeforeCreate.js.map +0 -1
- package/extensions/eventHandlers/TeamBeforeDelete.d.ts +0 -10
- package/extensions/eventHandlers/TeamBeforeDelete.js +0 -9
- package/extensions/eventHandlers/TeamBeforeDelete.js.map +0 -1
- package/extensions/eventHandlers/TeamBeforeUpdate.d.ts +0 -10
- package/extensions/eventHandlers/TeamBeforeUpdate.js +0 -9
- package/extensions/eventHandlers/TeamBeforeUpdate.js.map +0 -1
- package/extensions/eventHandlers/TenantAfterCreate.d.ts +0 -10
- package/extensions/eventHandlers/TenantAfterCreate.js +0 -9
- package/extensions/eventHandlers/TenantAfterCreate.js.map +0 -1
- package/extensions/eventHandlers/TenantAfterDelete.d.ts +0 -10
- package/extensions/eventHandlers/TenantAfterDelete.js +0 -9
- package/extensions/eventHandlers/TenantAfterDelete.js.map +0 -1
- package/extensions/eventHandlers/TenantAfterUpdate.d.ts +0 -10
- package/extensions/eventHandlers/TenantAfterUpdate.js +0 -9
- package/extensions/eventHandlers/TenantAfterUpdate.js.map +0 -1
- package/extensions/eventHandlers/TenantBeforeCreate.d.ts +0 -10
- package/extensions/eventHandlers/TenantBeforeCreate.js +0 -9
- package/extensions/eventHandlers/TenantBeforeCreate.js.map +0 -1
- package/extensions/eventHandlers/TenantBeforeDelete.d.ts +0 -10
- package/extensions/eventHandlers/TenantBeforeDelete.js +0 -9
- package/extensions/eventHandlers/TenantBeforeDelete.js.map +0 -1
- package/extensions/eventHandlers/TenantBeforeUpdate.d.ts +0 -10
- package/extensions/eventHandlers/TenantBeforeUpdate.js +0 -9
- package/extensions/eventHandlers/TenantBeforeUpdate.js.map +0 -1
- package/extensions/eventHandlers/TenantInstalled.d.ts +0 -10
- package/extensions/eventHandlers/TenantInstalled.js +0 -9
- package/extensions/eventHandlers/TenantInstalled.js.map +0 -1
- package/extensions/eventHandlers/UserAfterCreate.d.ts +0 -10
- package/extensions/eventHandlers/UserAfterCreate.js +0 -9
- package/extensions/eventHandlers/UserAfterCreate.js.map +0 -1
- package/extensions/eventHandlers/UserAfterDelete.d.ts +0 -10
- package/extensions/eventHandlers/UserAfterDelete.js +0 -9
- package/extensions/eventHandlers/UserAfterDelete.js.map +0 -1
- package/extensions/eventHandlers/UserAfterUpdate.d.ts +0 -10
- package/extensions/eventHandlers/UserAfterUpdate.js +0 -9
- package/extensions/eventHandlers/UserAfterUpdate.js.map +0 -1
- package/extensions/eventHandlers/UserBeforeCreate.d.ts +0 -10
- package/extensions/eventHandlers/UserBeforeCreate.js +0 -9
- package/extensions/eventHandlers/UserBeforeCreate.js.map +0 -1
- package/extensions/eventHandlers/UserBeforeDelete.d.ts +0 -10
- package/extensions/eventHandlers/UserBeforeDelete.js +0 -9
- package/extensions/eventHandlers/UserBeforeDelete.js.map +0 -1
- package/extensions/eventHandlers/UserBeforeUpdate.d.ts +0 -10
- package/extensions/eventHandlers/UserBeforeUpdate.js +0 -9
- package/extensions/eventHandlers/UserBeforeUpdate.js.map +0 -1
- package/extensions/eventHandlers/index.d.ts +0 -34
- package/extensions/eventHandlers/index.js +0 -49
- package/extensions/eventHandlers/index.js.map +0 -1
- package/extensions/index.d.ts +0 -58
- package/extensions/index.js +0 -49
- package/extensions/index.js.map +0 -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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AsyncLocalStorage","minimatch","createImplementation","IdentityContext","Abstraction","AnonymousIdentity","AuthorizationContext","filterOutCustomWbyAppsPermissions","WcpContext","identityStorage","IdentityContextImpl","identity","constructor","authorizationContext","wcpContext","getIdentity","override","getStore","undefined","setIdentity","clearPermissionsCache","withIdentity","cb","run","withoutAuthorization","isAuthorizationEnabled","getPermission","name","permissions","listPermissions","exactMatch","find","p","patternMatch","getPermissions","filter","loadPermissions","applyAaclLogic","hasFullAccess","some","aaclEnabled","canUseAacl","teamsEnabled","canUseTeams","teams","abstraction","implementation","dependencies"],"sources":["IdentityContext.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"async_hooks\";\nimport minimatch from \"minimatch\";\nimport { createImplementation } from \"@webiny/di\";\nimport { IdentityContext as Abstraction } from \"./abstractions.js\";\nimport { Identity } from \"./Identity.js\";\nimport { AnonymousIdentity } from \"./AnonymousIdentity.js\";\nimport { AuthorizationContext } from \"../authorization/AuthorizationContext/index.js\";\nimport { filterOutCustomWbyAppsPermissions } from \"../utils/filterOutCustomWbyAppsPermissions.js\";\nimport type { SecurityPermission } from \"~/types/security.js\";\nimport type { AaclPermission } from \"../../wcp/WcpContext/types.js\";\nimport { WcpContext } from \"../../wcp/WcpContext/index.js\";\n\nconst identityStorage = new AsyncLocalStorage<Identity | undefined>();\n\nclass IdentityContextImpl implements Abstraction.Interface {\n private identity: Identity = new AnonymousIdentity();\n\n constructor(\n private authorizationContext: AuthorizationContext.Interface,\n private wcpContext: WcpContext.Interface\n ) {}\n\n // ========================================================================\n // Identity Methods\n // ========================================================================\n\n getIdentity(): Identity {\n // Check for identity override first (from withIdentity())\n const override = identityStorage.getStore();\n if (override !== undefined) {\n return override;\n }\n return this.identity;\n }\n\n setIdentity(identity: Identity | undefined): void {\n // If undefined, set to anonymous identity\n this.identity = identity ?? new AnonymousIdentity();\n\n // Clear permissions cache when identity changes\n this.authorizationContext.clearPermissionsCache();\n }\n\n withIdentity<T>(identity: Identity | undefined, cb: () => Promise<T>): Promise<T> {\n return identityStorage.run(identity, cb);\n }\n\n // ========================================================================\n // Authorization State Methods\n // ========================================================================\n\n withoutAuthorization<T>(cb: () => Promise<T>): Promise<T> {\n return this.authorizationContext.withoutAuthorization(cb);\n }\n\n isAuthorizationEnabled(): boolean {\n return this.authorizationContext.isAuthorizationEnabled();\n }\n\n // ========================================================================\n // Permission Methods\n // ========================================================================\n\n async getPermission<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission | null> {\n if (!this.isAuthorizationEnabled()) {\n return { name: \"*\" } as TPermission;\n }\n\n const permissions = await this.listPermissions();\n\n // Try exact match first\n const exactMatch = permissions.find(p => p.name === name);\n if (exactMatch) {\n return exactMatch as TPermission;\n }\n\n // Try pattern matching\n const patternMatch = permissions.find(p => minimatch(name, p.name));\n if (patternMatch) {\n return patternMatch as TPermission;\n }\n\n return null;\n }\n\n async getPermissions<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission[]> {\n if (!this.isAuthorizationEnabled()) {\n return [{ name: \"*\" }] as TPermission[];\n }\n\n const permissions = await this.listPermissions();\n\n return permissions.filter(p => {\n if (p.name === name) {\n return true;\n }\n return minimatch(name, p.name);\n }) as TPermission[];\n }\n\n async listPermissions(): Promise<SecurityPermission[]> {\n const permissions = await this.authorizationContext.loadPermissions(this.getIdentity());\n // TODO: extract this into a decorator\n return this.applyAaclLogic(permissions);\n }\n\n async hasFullAccess(): Promise<boolean> {\n const permissions = await this.listPermissions();\n return permissions.some(p => p.name === \"*\");\n }\n\n // ========================================================================\n // Private Helper Methods\n // ========================================================================\n\n private applyAaclLogic(permissions: SecurityPermission[]): SecurityPermission[] {\n const aaclEnabled = this.wcpContext.canUseAacl();\n const teamsEnabled = this.wcpContext.canUseTeams();\n\n if (aaclEnabled) {\n // Add AACL metadata permission\n return [\n ...permissions,\n {\n name: \"aacl\",\n teams: teamsEnabled\n } as AaclPermission\n ];\n }\n\n // If AACL is not enabled, filter out custom Webiny apps permissions\n return filterOutCustomWbyAppsPermissions(permissions);\n }\n}\n\nexport const IdentityContext = createImplementation({\n abstraction: Abstraction,\n implementation: IdentityContextImpl,\n dependencies: [AuthorizationContext, WcpContext]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,aAAa;AAC/C,
|
|
1
|
+
{"version":3,"names":["AsyncLocalStorage","minimatch","createImplementation","IdentityContext","Abstraction","AnonymousIdentity","AuthorizationContext","filterOutCustomWbyAppsPermissions","WcpContext","identityStorage","IdentityContextImpl","identity","constructor","authorizationContext","wcpContext","getIdentity","override","getStore","undefined","setIdentity","clearPermissionsCache","withIdentity","cb","run","withoutAuthorization","isAuthorizationEnabled","getPermission","name","permissions","listPermissions","exactMatch","find","p","patternMatch","getPermissions","filter","loadPermissions","applyAaclLogic","hasFullAccess","some","aaclEnabled","canUseAacl","teamsEnabled","canUseTeams","teams","abstraction","implementation","dependencies"],"sources":["IdentityContext.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"async_hooks\";\nimport { minimatch } from \"minimatch\";\nimport { createImplementation } from \"@webiny/di\";\nimport { IdentityContext as Abstraction } from \"./abstractions.js\";\nimport { Identity } from \"./Identity.js\";\nimport { AnonymousIdentity } from \"./AnonymousIdentity.js\";\nimport { AuthorizationContext } from \"../authorization/AuthorizationContext/index.js\";\nimport { filterOutCustomWbyAppsPermissions } from \"../utils/filterOutCustomWbyAppsPermissions.js\";\nimport type { SecurityPermission } from \"~/types/security.js\";\nimport type { AaclPermission } from \"../../wcp/WcpContext/types.js\";\nimport { WcpContext } from \"../../wcp/WcpContext/index.js\";\n\nconst identityStorage = new AsyncLocalStorage<Identity | undefined>();\n\nclass IdentityContextImpl implements Abstraction.Interface {\n private identity: Identity = new AnonymousIdentity();\n\n constructor(\n private authorizationContext: AuthorizationContext.Interface,\n private wcpContext: WcpContext.Interface\n ) {}\n\n // ========================================================================\n // Identity Methods\n // ========================================================================\n\n getIdentity(): Identity {\n // Check for identity override first (from withIdentity())\n const override = identityStorage.getStore();\n if (override !== undefined) {\n return override;\n }\n return this.identity;\n }\n\n setIdentity(identity: Identity | undefined): void {\n // If undefined, set to anonymous identity\n this.identity = identity ?? new AnonymousIdentity();\n\n // Clear permissions cache when identity changes\n this.authorizationContext.clearPermissionsCache();\n }\n\n withIdentity<T>(identity: Identity | undefined, cb: () => Promise<T>): Promise<T> {\n return identityStorage.run(identity, cb);\n }\n\n // ========================================================================\n // Authorization State Methods\n // ========================================================================\n\n withoutAuthorization<T>(cb: () => Promise<T>): Promise<T> {\n return this.authorizationContext.withoutAuthorization(cb);\n }\n\n isAuthorizationEnabled(): boolean {\n return this.authorizationContext.isAuthorizationEnabled();\n }\n\n // ========================================================================\n // Permission Methods\n // ========================================================================\n\n async getPermission<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission | null> {\n if (!this.isAuthorizationEnabled()) {\n return { name: \"*\" } as TPermission;\n }\n\n const permissions = await this.listPermissions();\n\n // Try exact match first\n const exactMatch = permissions.find(p => p.name === name);\n if (exactMatch) {\n return exactMatch as TPermission;\n }\n\n // Try pattern matching\n const patternMatch = permissions.find(p => minimatch(name, p.name));\n if (patternMatch) {\n return patternMatch as TPermission;\n }\n\n return null;\n }\n\n async getPermissions<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission[]> {\n if (!this.isAuthorizationEnabled()) {\n return [{ name: \"*\" }] as TPermission[];\n }\n\n const permissions = await this.listPermissions();\n\n return permissions.filter(p => {\n if (p.name === name) {\n return true;\n }\n return minimatch(name, p.name);\n }) as TPermission[];\n }\n\n async listPermissions(): Promise<SecurityPermission[]> {\n const permissions = await this.authorizationContext.loadPermissions(this.getIdentity());\n // TODO: extract this into a decorator\n return this.applyAaclLogic(permissions);\n }\n\n async hasFullAccess(): Promise<boolean> {\n const permissions = await this.listPermissions();\n return permissions.some(p => p.name === \"*\");\n }\n\n // ========================================================================\n // Private Helper Methods\n // ========================================================================\n\n private applyAaclLogic(permissions: SecurityPermission[]): SecurityPermission[] {\n const aaclEnabled = this.wcpContext.canUseAacl();\n const teamsEnabled = this.wcpContext.canUseTeams();\n\n if (aaclEnabled) {\n // Add AACL metadata permission\n return [\n ...permissions,\n {\n name: \"aacl\",\n teams: teamsEnabled\n } as AaclPermission\n ];\n }\n\n // If AACL is not enabled, filter out custom Webiny apps permissions\n return filterOutCustomWbyAppsPermissions(permissions);\n }\n}\n\nexport const IdentityContext = createImplementation({\n abstraction: Abstraction,\n implementation: IdentityContextImpl,\n dependencies: [AuthorizationContext, WcpContext]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ export interface IIdentityContext {
|
|
|
11
11
|
withoutAuthorization<T>(cb: () => Promise<T>): Promise<T>;
|
|
12
12
|
isAuthorizationEnabled(): boolean;
|
|
13
13
|
}
|
|
14
|
+
/** Provides access to the current identity and its permissions. */
|
|
14
15
|
export declare const IdentityContext: import("@webiny/di").Abstraction<IIdentityContext>;
|
|
15
16
|
export declare namespace IdentityContext {
|
|
16
17
|
type Interface = IIdentityContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","IdentityContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Identity } from \"./Identity.js\";\nimport type { SecurityPermission } from \"~/types/security.js\";\n\nexport interface IIdentityContext {\n // Identity methods\n getIdentity(): Identity;\n setIdentity(identity: Identity | undefined): void;\n withIdentity<T>(identity: Identity | undefined, cb: () => Promise<T>): Promise<T>;\n\n // Permission methods\n getPermission<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission | null>;\n\n getPermissions<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission[]>;\n\n listPermissions(): Promise<SecurityPermission[]>;\n\n hasFullAccess(): Promise<boolean>;\n\n // Authorization context methods\n withoutAuthorization<T>(cb: () => Promise<T>): Promise<T>;\n isAuthorizationEnabled(): boolean;\n}\n\nexport const IdentityContext = createAbstraction<IIdentityContext>(\"IdentityContext\");\n\nexport namespace IdentityContext {\n export type Interface = IIdentityContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AA4BvD,OAAO,MAAMC,eAAe,GAAGD,iBAAiB,CAAmB,iBAAiB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","IdentityContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Identity } from \"./Identity.js\";\nimport type { SecurityPermission } from \"~/types/security.js\";\n\nexport interface IIdentityContext {\n // Identity methods\n getIdentity(): Identity;\n setIdentity(identity: Identity | undefined): void;\n withIdentity<T>(identity: Identity | undefined, cb: () => Promise<T>): Promise<T>;\n\n // Permission methods\n getPermission<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission | null>;\n\n getPermissions<TPermission extends SecurityPermission = SecurityPermission>(\n name: string\n ): Promise<TPermission[]>;\n\n listPermissions(): Promise<SecurityPermission[]>;\n\n hasFullAccess(): Promise<boolean>;\n\n // Authorization context methods\n withoutAuthorization<T>(cb: () => Promise<T>): Promise<T>;\n isAuthorizationEnabled(): boolean;\n}\n\n/** Provides access to the current identity and its permissions. */\nexport const IdentityContext = createAbstraction<IIdentityContext>(\"IdentityContext\");\n\nexport namespace IdentityContext {\n export type Interface = IIdentityContext;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AA4BvD;AACA,OAAO,MAAMC,eAAe,GAAGD,iBAAiB,CAAmB,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Container } from "@webiny/di";
|
|
1
2
|
import type { SecurityStorageOperations as ISecurityStorageOperations } from "../../types/security.js";
|
|
2
3
|
/**
|
|
3
4
|
* Setup all security features in the DI container.
|
|
@@ -6,4 +7,7 @@ import type { SecurityStorageOperations as ISecurityStorageOperations } from "..
|
|
|
6
7
|
* @param container - DI container instance
|
|
7
8
|
* @param storageOperations - Storage operations implementation
|
|
8
9
|
*/
|
|
9
|
-
export declare const SecurityFeature:
|
|
10
|
+
export declare const SecurityFeature: {
|
|
11
|
+
name: string;
|
|
12
|
+
register(container: Container, context: ISecurityStorageOperations): void;
|
|
13
|
+
};
|
|
@@ -21,7 +21,7 @@ class CreateApiKeyUseCaseImpl {
|
|
|
21
21
|
}
|
|
22
22
|
const validation = createApiKeyInputSchema.safeParse(input);
|
|
23
23
|
if (!validation.success) {
|
|
24
|
-
return Result.fail(new ApiKeyValidationError(validation.error.
|
|
24
|
+
return Result.fail(new ApiKeyValidationError(validation.error.issues[0].message));
|
|
25
25
|
}
|
|
26
26
|
const token = generateToken();
|
|
27
27
|
const identity = this.identityContext.getIdentity();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mdbid","Result","EventPublisher","CreateApiKeyUseCase","CreateApiKeyUseCaseAbstraction","ApiKeysRepository","IdentityContext","createApiKeyInputSchema","ApiKeyBeforeCreateEvent","ApiKeyAfterCreateEvent","generateToken","ApiKeyValidationError","ApiKeyNotAuthorizedError","CreateApiKeyUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","hasPermission","getPermission","fail","validation","safeParse","success","error","
|
|
1
|
+
{"version":3,"names":["mdbid","Result","EventPublisher","CreateApiKeyUseCase","CreateApiKeyUseCaseAbstraction","ApiKeysRepository","IdentityContext","createApiKeyInputSchema","ApiKeyBeforeCreateEvent","ApiKeyAfterCreateEvent","generateToken","ApiKeyValidationError","ApiKeyNotAuthorizedError","CreateApiKeyUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","hasPermission","getPermission","fail","validation","safeParse","success","error","issues","message","token","identity","getIdentity","data","apiKey","id","name","slug","description","permissions","createdOn","Date","toISOString","createdBy","displayName","type","publish","result","create","isFail","ok","createImplementation","implementation","dependencies"],"sources":["CreateApiKeyUseCase.ts"],"sourcesContent":["import { mdbid } from \"@webiny/utils\";\nimport { Result } from \"@webiny/feature/api\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { CreateApiKeyUseCase as CreateApiKeyUseCaseAbstraction } from \"./abstractions.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { IdentityContext } from \"../../IdentityContext/abstractions.js\";\nimport { createApiKeyInputSchema } from \"../shared/schemas.js\";\nimport { ApiKeyBeforeCreateEvent, ApiKeyAfterCreateEvent } from \"./events.js\";\nimport type { ApiKey, CreateApiKeyInput } from \"../shared/types.js\";\nimport type { ApiKeyPermission } from \"~/types/security.js\";\nimport { generateToken } from \"../shared/generateToken.js\";\nimport { ApiKeyValidationError, ApiKeyNotAuthorizedError } from \"../shared/errors.js\";\n\nclass CreateApiKeyUseCaseImpl implements CreateApiKeyUseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: ApiKeysRepository.Interface\n ) {}\n\n async execute(\n input: CreateApiKeyInput\n ): Promise<Result<ApiKey, CreateApiKeyUseCaseAbstraction.Error>> {\n const hasPermission =\n await this.identityContext.getPermission<ApiKeyPermission>(\"security.apiKey\");\n\n if (!hasPermission) {\n return Result.fail(new ApiKeyNotAuthorizedError());\n }\n\n const validation = createApiKeyInputSchema.safeParse(input);\n if (!validation.success) {\n return Result.fail(new ApiKeyValidationError(validation.error.issues[0].message));\n }\n\n const token = generateToken();\n const identity = this.identityContext.getIdentity();\n const data = validation.data;\n\n const apiKey: ApiKey = {\n id: mdbid(),\n name: data.name,\n slug: data.slug,\n description: data.description,\n token,\n permissions: data.permissions,\n createdOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n }\n };\n\n await this.eventPublisher.publish(\n new ApiKeyBeforeCreateEvent({ apiKey, input: validation.data })\n );\n\n const result = await this.repository.create(apiKey);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n await this.eventPublisher.publish(\n new ApiKeyAfterCreateEvent({ apiKey, input: validation.data })\n );\n\n return Result.ok(apiKey);\n }\n}\n\nexport const CreateApiKeyUseCase = CreateApiKeyUseCaseAbstraction.createImplementation({\n implementation: CreateApiKeyUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, ApiKeysRepository]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ type CreateApiKeyError = ICreateApiKeyErrors[keyof ICreateApiKeyErrors] | ApiKey
|
|
|
10
10
|
export interface ICreateApiKey {
|
|
11
11
|
execute(input: CreateApiKeyInput): Promise<Result<ApiKey, CreateApiKeyError>>;
|
|
12
12
|
}
|
|
13
|
+
/** Create a new API key. */
|
|
13
14
|
export declare const CreateApiKeyUseCase: import("@webiny/di").Abstraction<ICreateApiKey>;
|
|
14
15
|
export declare namespace CreateApiKeyUseCase {
|
|
15
16
|
type Interface = ICreateApiKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","CreateApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey, CreateApiKeyInput } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nexport interface ICreateApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n validation: ApiKeyValidationError;\n}\n\ntype CreateApiKeyError = ICreateApiKeyErrors[keyof ICreateApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface ICreateApiKey {\n execute(input: CreateApiKeyInput): Promise<Result<ApiKey, CreateApiKeyError>>;\n}\n\nexport const CreateApiKeyUseCase = createAbstraction<ICreateApiKey>(\"CreateApiKeyUseCase\");\n\nexport namespace CreateApiKeyUseCase {\n export type Interface = ICreateApiKey;\n export type Error = CreateApiKeyError;\n}\n\nexport interface ApiKeyBeforeCreatePayload {\n apiKey: ApiKey;\n input: CreateApiKeyInput;\n}\n\nexport interface ApiKeyAfterCreatePayload {\n apiKey: ApiKey;\n input: CreateApiKeyInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAgB,qBAAqB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","CreateApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey, CreateApiKeyInput } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nexport interface ICreateApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n validation: ApiKeyValidationError;\n}\n\ntype CreateApiKeyError = ICreateApiKeyErrors[keyof ICreateApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface ICreateApiKey {\n execute(input: CreateApiKeyInput): Promise<Result<ApiKey, CreateApiKeyError>>;\n}\n\n/** Create a new API key. */\nexport const CreateApiKeyUseCase = createAbstraction<ICreateApiKey>(\"CreateApiKeyUseCase\");\n\nexport namespace CreateApiKeyUseCase {\n export type Interface = ICreateApiKey;\n export type Error = CreateApiKeyError;\n}\n\nexport interface ApiKeyBeforeCreatePayload {\n apiKey: ApiKey;\n input: CreateApiKeyInput;\n}\n\nexport interface ApiKeyAfterCreatePayload {\n apiKey: ApiKey;\n input: CreateApiKeyInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD;AACA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAgB,qBAAqB,CAAC","ignoreList":[]}
|
|
@@ -5,8 +5,9 @@ export declare class ApiKeyBeforeCreateEvent extends DomainEvent<ApiKeyBeforeCre
|
|
|
5
5
|
eventType: "apiKey.beforeCreate";
|
|
6
6
|
getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<ApiKeyBeforeCreateEvent>>;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
export declare
|
|
8
|
+
/** Hook into API key lifecycle before an API key is created. */
|
|
9
|
+
export declare const ApiKeyBeforeCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<ApiKeyBeforeCreateEvent>>;
|
|
10
|
+
export declare namespace ApiKeyBeforeCreateEventHandler {
|
|
10
11
|
type Interface = IEventHandler<ApiKeyBeforeCreateEvent>;
|
|
11
12
|
type Event = ApiKeyBeforeCreateEvent;
|
|
12
13
|
}
|
|
@@ -14,8 +15,9 @@ export declare class ApiKeyAfterCreateEvent extends DomainEvent<ApiKeyAfterCreat
|
|
|
14
15
|
eventType: "apiKey.afterCreate";
|
|
15
16
|
getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<ApiKeyAfterCreateEvent>>;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
export declare
|
|
18
|
+
/** Hook into API key lifecycle after an API key is created. */
|
|
19
|
+
export declare const ApiKeyAfterCreateEventHandler: import("@webiny/di").Abstraction<IEventHandler<ApiKeyAfterCreateEvent>>;
|
|
20
|
+
export declare namespace ApiKeyAfterCreateEventHandler {
|
|
19
21
|
type Interface = IEventHandler<ApiKeyAfterCreateEvent>;
|
|
20
22
|
type Event = ApiKeyAfterCreateEvent;
|
|
21
23
|
}
|
|
@@ -3,16 +3,20 @@ import { DomainEvent } from "../../../eventPublisher/index.js";
|
|
|
3
3
|
export class ApiKeyBeforeCreateEvent extends DomainEvent {
|
|
4
4
|
eventType = "apiKey.beforeCreate";
|
|
5
5
|
getHandlerAbstraction() {
|
|
6
|
-
return
|
|
6
|
+
return ApiKeyBeforeCreateEventHandler;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
/** Hook into API key lifecycle before an API key is created. */
|
|
11
|
+
export const ApiKeyBeforeCreateEventHandler = createAbstraction("ApiKeyBeforeCreateEventHandler");
|
|
10
12
|
export class ApiKeyAfterCreateEvent extends DomainEvent {
|
|
11
13
|
eventType = "apiKey.afterCreate";
|
|
12
14
|
getHandlerAbstraction() {
|
|
13
|
-
return
|
|
15
|
+
return ApiKeyAfterCreateEventHandler;
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
|
|
19
|
+
/** Hook into API key lifecycle after an API key is created. */
|
|
20
|
+
export const ApiKeyAfterCreateEventHandler = createAbstraction("ApiKeyAfterCreateEventHandler");
|
|
17
21
|
|
|
18
22
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","DomainEvent","ApiKeyBeforeCreateEvent","eventType","getHandlerAbstraction","
|
|
1
|
+
{"version":3,"names":["createAbstraction","DomainEvent","ApiKeyBeforeCreateEvent","eventType","getHandlerAbstraction","ApiKeyBeforeCreateEventHandler","ApiKeyAfterCreateEvent","ApiKeyAfterCreateEventHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport type { ApiKeyBeforeCreatePayload, ApiKeyAfterCreatePayload } from \"./abstractions.js\";\n\nexport class ApiKeyBeforeCreateEvent extends DomainEvent<ApiKeyBeforeCreatePayload> {\n eventType = \"apiKey.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return ApiKeyBeforeCreateEventHandler;\n }\n}\n\n/** Hook into API key lifecycle before an API key is created. */\nexport const ApiKeyBeforeCreateEventHandler = createAbstraction<\n IEventHandler<ApiKeyBeforeCreateEvent>\n>(\"ApiKeyBeforeCreateEventHandler\");\n\nexport namespace ApiKeyBeforeCreateEventHandler {\n export type Interface = IEventHandler<ApiKeyBeforeCreateEvent>;\n export type Event = ApiKeyBeforeCreateEvent;\n}\n\nexport class ApiKeyAfterCreateEvent extends DomainEvent<ApiKeyAfterCreatePayload> {\n eventType = \"apiKey.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return ApiKeyAfterCreateEventHandler;\n }\n}\n\n/** Hook into API key lifecycle after an API key is created. */\nexport const ApiKeyAfterCreateEventHandler = createAbstraction<\n IEventHandler<ApiKeyAfterCreateEvent>\n>(\"ApiKeyAfterCreateEventHandler\");\n\nexport namespace ApiKeyAfterCreateEventHandler {\n export type Interface = IEventHandler<ApiKeyAfterCreateEvent>;\n export type Event = ApiKeyAfterCreateEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW;AAIpB,OAAO,MAAMC,uBAAuB,SAASD,WAAW,CAA4B;EAChFE,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,8BAA8B;EACzC;AACJ;;AAEA;AACA,OAAO,MAAMA,8BAA8B,GAAGL,iBAAiB,CAE7D,gCAAgC,CAAC;AAOnC,OAAO,MAAMM,sBAAsB,SAASL,WAAW,CAA2B;EAC9EE,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMA,6BAA6B,GAAGP,iBAAiB,CAE5D,+BAA+B,CAAC","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ type DeleteApiKeyError = IDeleteApiKeyErrors[keyof IDeleteApiKeyErrors] | ApiKey
|
|
|
9
9
|
export interface IDeleteApiKey {
|
|
10
10
|
execute(id: string): Promise<Result<void, DeleteApiKeyError>>;
|
|
11
11
|
}
|
|
12
|
+
/** Delete an API key. */
|
|
12
13
|
export declare const DeleteApiKeyUseCase: import("@webiny/di").Abstraction<IDeleteApiKey>;
|
|
13
14
|
export declare namespace DeleteApiKeyUseCase {
|
|
14
15
|
type Interface = IDeleteApiKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","DeleteApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError } from \"../shared/errors.js\";\nimport type { ApiKey } from \"../shared/types.js\";\n\nexport interface IDeleteApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n}\n\ntype DeleteApiKeyError = IDeleteApiKeyErrors[keyof IDeleteApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface IDeleteApiKey {\n execute(id: string): Promise<Result<void, DeleteApiKeyError>>;\n}\n\nexport const DeleteApiKeyUseCase = createAbstraction<IDeleteApiKey>(\"DeleteApiKeyUseCase\");\n\nexport namespace DeleteApiKeyUseCase {\n export type Interface = IDeleteApiKey;\n export type Error = DeleteApiKeyError;\n}\n\nexport interface ApiKeyBeforeDeletePayload {\n apiKey: ApiKey;\n}\n\nexport interface ApiKeyAfterDeletePayload {\n apiKey: ApiKey;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAgBvD,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAgB,qBAAqB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","DeleteApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError } from \"../shared/errors.js\";\nimport type { ApiKey } from \"../shared/types.js\";\n\nexport interface IDeleteApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n}\n\ntype DeleteApiKeyError = IDeleteApiKeyErrors[keyof IDeleteApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface IDeleteApiKey {\n execute(id: string): Promise<Result<void, DeleteApiKeyError>>;\n}\n\n/** Delete an API key. */\nexport const DeleteApiKeyUseCase = createAbstraction<IDeleteApiKey>(\"DeleteApiKeyUseCase\");\n\nexport namespace DeleteApiKeyUseCase {\n export type Interface = IDeleteApiKey;\n export type Error = DeleteApiKeyError;\n}\n\nexport interface ApiKeyBeforeDeletePayload {\n apiKey: ApiKey;\n}\n\nexport interface ApiKeyAfterDeletePayload {\n apiKey: ApiKey;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAgBvD;AACA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAgB,qBAAqB,CAAC","ignoreList":[]}
|
|
@@ -5,8 +5,9 @@ export declare class ApiKeyBeforeDeleteEvent extends DomainEvent<ApiKeyBeforeDel
|
|
|
5
5
|
eventType: "apiKey.beforeDelete";
|
|
6
6
|
getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<ApiKeyBeforeDeleteEvent>>;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
export declare
|
|
8
|
+
/** Hook into API key lifecycle before an API key is deleted. */
|
|
9
|
+
export declare const ApiKeyBeforeDeleteEventHandler: import("@webiny/di").Abstraction<IEventHandler<ApiKeyBeforeDeleteEvent>>;
|
|
10
|
+
export declare namespace ApiKeyBeforeDeleteEventHandler {
|
|
10
11
|
type Interface = IEventHandler<ApiKeyBeforeDeleteEvent>;
|
|
11
12
|
type Event = ApiKeyBeforeDeleteEvent;
|
|
12
13
|
}
|
|
@@ -14,8 +15,9 @@ export declare class ApiKeyAfterDeleteEvent extends DomainEvent<ApiKeyAfterDelet
|
|
|
14
15
|
eventType: "apiKey.afterDelete";
|
|
15
16
|
getHandlerAbstraction(): import("@webiny/di").Abstraction<IEventHandler<ApiKeyAfterDeleteEvent>>;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
export declare
|
|
18
|
+
/** Hook into API key lifecycle after an API key is deleted. */
|
|
19
|
+
export declare const ApiKeyAfterDeleteEventHandler: import("@webiny/di").Abstraction<IEventHandler<ApiKeyAfterDeleteEvent>>;
|
|
20
|
+
export declare namespace ApiKeyAfterDeleteEventHandler {
|
|
19
21
|
type Interface = IEventHandler<ApiKeyAfterDeleteEvent>;
|
|
20
22
|
type Event = ApiKeyAfterDeleteEvent;
|
|
21
23
|
}
|
|
@@ -3,16 +3,20 @@ import { DomainEvent } from "../../../eventPublisher/index.js";
|
|
|
3
3
|
export class ApiKeyBeforeDeleteEvent extends DomainEvent {
|
|
4
4
|
eventType = "apiKey.beforeDelete";
|
|
5
5
|
getHandlerAbstraction() {
|
|
6
|
-
return
|
|
6
|
+
return ApiKeyBeforeDeleteEventHandler;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
/** Hook into API key lifecycle before an API key is deleted. */
|
|
11
|
+
export const ApiKeyBeforeDeleteEventHandler = createAbstraction("ApiKeyBeforeDeleteEventHandler");
|
|
10
12
|
export class ApiKeyAfterDeleteEvent extends DomainEvent {
|
|
11
13
|
eventType = "apiKey.afterDelete";
|
|
12
14
|
getHandlerAbstraction() {
|
|
13
|
-
return
|
|
15
|
+
return ApiKeyAfterDeleteEventHandler;
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
|
|
19
|
+
/** Hook into API key lifecycle after an API key is deleted. */
|
|
20
|
+
export const ApiKeyAfterDeleteEventHandler = createAbstraction("ApiKeyAfterDeleteEventHandler");
|
|
17
21
|
|
|
18
22
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","DomainEvent","ApiKeyBeforeDeleteEvent","eventType","getHandlerAbstraction","
|
|
1
|
+
{"version":3,"names":["createAbstraction","DomainEvent","ApiKeyBeforeDeleteEvent","eventType","getHandlerAbstraction","ApiKeyBeforeDeleteEventHandler","ApiKeyAfterDeleteEvent","ApiKeyAfterDeleteEventHandler"],"sources":["events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"~/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"~/features/eventPublisher/index.js\";\nimport type { ApiKeyBeforeDeletePayload, ApiKeyAfterDeletePayload } from \"./abstractions.js\";\n\nexport class ApiKeyBeforeDeleteEvent extends DomainEvent<ApiKeyBeforeDeletePayload> {\n eventType = \"apiKey.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return ApiKeyBeforeDeleteEventHandler;\n }\n}\n\n/** Hook into API key lifecycle before an API key is deleted. */\nexport const ApiKeyBeforeDeleteEventHandler = createAbstraction<\n IEventHandler<ApiKeyBeforeDeleteEvent>\n>(\"ApiKeyBeforeDeleteEventHandler\");\n\nexport namespace ApiKeyBeforeDeleteEventHandler {\n export type Interface = IEventHandler<ApiKeyBeforeDeleteEvent>;\n export type Event = ApiKeyBeforeDeleteEvent;\n}\n\nexport class ApiKeyAfterDeleteEvent extends DomainEvent<ApiKeyAfterDeletePayload> {\n eventType = \"apiKey.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return ApiKeyAfterDeleteEventHandler;\n }\n}\n\n/** Hook into API key lifecycle after an API key is deleted. */\nexport const ApiKeyAfterDeleteEventHandler = createAbstraction<\n IEventHandler<ApiKeyAfterDeleteEvent>\n>(\"ApiKeyAfterDeleteEventHandler\");\n\nexport namespace ApiKeyAfterDeleteEventHandler {\n export type Interface = IEventHandler<ApiKeyAfterDeleteEvent>;\n export type Event = ApiKeyAfterDeleteEvent;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW;AAIpB,OAAO,MAAMC,uBAAuB,SAASD,WAAW,CAA4B;EAChFE,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOC,8BAA8B;EACzC;AACJ;;AAEA;AACA,OAAO,MAAMA,8BAA8B,GAAGL,iBAAiB,CAE7D,gCAAgC,CAAC;AAOnC,OAAO,MAAMM,sBAAsB,SAASL,WAAW,CAA2B;EAC9EE,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOG,6BAA6B;EACxC;AACJ;;AAEA;AACA,OAAO,MAAMA,6BAA6B,GAAGP,iBAAiB,CAE5D,+BAA+B,CAAC","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ type GetApiKeyError = IGetApiKeyErrors[keyof IGetApiKeyErrors] | ApiKeysReposito
|
|
|
9
9
|
export interface IGetApiKey {
|
|
10
10
|
execute(id: string): Promise<Result<ApiKey | null, GetApiKeyError>>;
|
|
11
11
|
}
|
|
12
|
+
/** Retrieve an API key by ID. */
|
|
12
13
|
export declare const GetApiKeyUseCase: import("@webiny/di").Abstraction<IGetApiKey>;
|
|
13
14
|
export declare namespace GetApiKeyUseCase {
|
|
14
15
|
type Interface = IGetApiKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport type { ApiKeyNotAuthorizedError } from \"~/features/security/apiKeys/shared/errors.js\";\n\nexport interface IGetApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n}\n\ntype GetApiKeyError = IGetApiKeyErrors[keyof IGetApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface IGetApiKey {\n execute(id: string): Promise<Result<ApiKey | null, GetApiKeyError>>;\n}\n\nexport const GetApiKeyUseCase = createAbstraction<IGetApiKey>(\"GetApiKeyUseCase\");\n\nexport namespace GetApiKeyUseCase {\n export type Interface = IGetApiKey;\n export type Error = GetApiKeyError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAgBvD,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAa,kBAAkB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport type { ApiKeyNotAuthorizedError } from \"~/features/security/apiKeys/shared/errors.js\";\n\nexport interface IGetApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n}\n\ntype GetApiKeyError = IGetApiKeyErrors[keyof IGetApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface IGetApiKey {\n execute(id: string): Promise<Result<ApiKey | null, GetApiKeyError>>;\n}\n\n/** Retrieve an API key by ID. */\nexport const GetApiKeyUseCase = createAbstraction<IGetApiKey>(\"GetApiKeyUseCase\");\n\nexport namespace GetApiKeyUseCase {\n export type Interface = IGetApiKey;\n export type Error = GetApiKeyError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAgBvD;AACA,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAa,kBAAkB,CAAC","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ type GetApiKeyBySlugError = IGetApiKeyBySlugErrors[keyof IGetApiKeyBySlugErrors]
|
|
|
7
7
|
export interface IGetApiKeyBySlug {
|
|
8
8
|
execute(slug: string): Promise<Result<ApiKey | null, GetApiKeyBySlugError>>;
|
|
9
9
|
}
|
|
10
|
+
/** Retrieve an API key by its slug. */
|
|
10
11
|
export declare const GetApiKeyBySlugUseCase: import("@webiny/di").Abstraction<IGetApiKeyBySlug>;
|
|
11
12
|
export declare namespace GetApiKeyBySlugUseCase {
|
|
12
13
|
type Interface = IGetApiKeyBySlug;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetApiKeyBySlugUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\n\nexport interface IGetApiKeyBySlugErrors {\n // No use-case specific errors - only repository errors can occur\n}\n\ntype GetApiKeyBySlugError =\n | IGetApiKeyBySlugErrors[keyof IGetApiKeyBySlugErrors]\n | ApiKeysRepository.Error;\n\nexport interface IGetApiKeyBySlug {\n execute(slug: string): Promise<Result<ApiKey | null, GetApiKeyBySlugError>>;\n}\n\nexport const GetApiKeyBySlugUseCase = createAbstraction<IGetApiKeyBySlug>(\"GetApiKeyBySlugUseCase\");\n\nexport namespace GetApiKeyBySlugUseCase {\n export type Interface = IGetApiKeyBySlug;\n export type Error = GetApiKeyBySlugError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD,OAAO,MAAMC,sBAAsB,GAAGD,iBAAiB,CAAmB,wBAAwB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetApiKeyBySlugUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\n\nexport interface IGetApiKeyBySlugErrors {\n // No use-case specific errors - only repository errors can occur\n}\n\ntype GetApiKeyBySlugError =\n | IGetApiKeyBySlugErrors[keyof IGetApiKeyBySlugErrors]\n | ApiKeysRepository.Error;\n\nexport interface IGetApiKeyBySlug {\n execute(slug: string): Promise<Result<ApiKey | null, GetApiKeyBySlugError>>;\n}\n\n/** Retrieve an API key by its slug. */\nexport const GetApiKeyBySlugUseCase = createAbstraction<IGetApiKeyBySlug>(\"GetApiKeyBySlugUseCase\");\n\nexport namespace GetApiKeyBySlugUseCase {\n export type Interface = IGetApiKeyBySlug;\n export type Error = GetApiKeyBySlugError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD;AACA,OAAO,MAAMC,sBAAsB,GAAGD,iBAAiB,CAAmB,wBAAwB,CAAC","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ type GetApiKeyByTokenError = IGetApiKeyByTokenErrors[keyof IGetApiKeyByTokenErro
|
|
|
7
7
|
export interface IGetApiKeyByToken {
|
|
8
8
|
execute(token: string): Promise<Result<ApiKey | null, GetApiKeyByTokenError>>;
|
|
9
9
|
}
|
|
10
|
+
/** Retrieve an API key by its token value. */
|
|
10
11
|
export declare const GetApiKeyByTokenUseCase: import("@webiny/di").Abstraction<IGetApiKeyByToken>;
|
|
11
12
|
export declare namespace GetApiKeyByTokenUseCase {
|
|
12
13
|
type Interface = IGetApiKeyByToken;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetApiKeyByTokenUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\n\nexport interface IGetApiKeyByTokenErrors {\n // No use-case specific errors - only repository errors can occur\n}\n\ntype GetApiKeyByTokenError =\n | IGetApiKeyByTokenErrors[keyof IGetApiKeyByTokenErrors]\n | ApiKeysRepository.Error;\n\nexport interface IGetApiKeyByToken {\n execute(token: string): Promise<Result<ApiKey | null, GetApiKeyByTokenError>>;\n}\n\nexport const GetApiKeyByTokenUseCase =\n createAbstraction<IGetApiKeyByToken>(\"GetApiKeyByTokenUseCase\");\n\nexport namespace GetApiKeyByTokenUseCase {\n export type Interface = IGetApiKeyByToken;\n export type Error = GetApiKeyByTokenError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD,OAAO,MAAMC,uBAAuB,GAChCD,iBAAiB,CAAoB,yBAAyB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetApiKeyByTokenUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\n\nexport interface IGetApiKeyByTokenErrors {\n // No use-case specific errors - only repository errors can occur\n}\n\ntype GetApiKeyByTokenError =\n | IGetApiKeyByTokenErrors[keyof IGetApiKeyByTokenErrors]\n | ApiKeysRepository.Error;\n\nexport interface IGetApiKeyByToken {\n execute(token: string): Promise<Result<ApiKey | null, GetApiKeyByTokenError>>;\n}\n\n/** Retrieve an API key by its token value. */\nexport const GetApiKeyByTokenUseCase =\n createAbstraction<IGetApiKeyByToken>(\"GetApiKeyByTokenUseCase\");\n\nexport namespace GetApiKeyByTokenUseCase {\n export type Interface = IGetApiKeyByToken;\n export type Error = GetApiKeyByTokenError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD;AACA,OAAO,MAAMC,uBAAuB,GAChCD,iBAAiB,CAAoB,yBAAyB,CAAC","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ class ListApiKeysUseCaseImpl {
|
|
|
16
16
|
}
|
|
17
17
|
const validation = listApiKeysInputSchema.safeParse(params);
|
|
18
18
|
if (!validation.success) {
|
|
19
|
-
return Result.fail(new ApiKeyValidationError(validation.error.
|
|
19
|
+
return Result.fail(new ApiKeyValidationError(validation.error.issues[0].message));
|
|
20
20
|
}
|
|
21
21
|
return this.repository.list(validation.data);
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","ListApiKeysUseCase","ListApiKeysUseCaseAbstraction","ApiKeysRepository","IdentityContext","listApiKeysInputSchema","ApiKeyNotAuthorizedError","ApiKeyValidationError","ListApiKeysUseCaseImpl","constructor","repository","identityContext","execute","params","hasPermission","getPermission","fail","validation","safeParse","success","error","
|
|
1
|
+
{"version":3,"names":["Result","ListApiKeysUseCase","ListApiKeysUseCaseAbstraction","ApiKeysRepository","IdentityContext","listApiKeysInputSchema","ApiKeyNotAuthorizedError","ApiKeyValidationError","ListApiKeysUseCaseImpl","constructor","repository","identityContext","execute","params","hasPermission","getPermission","fail","validation","safeParse","success","error","issues","message","list","data","createImplementation","implementation","dependencies"],"sources":["ListApiKeysUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListApiKeysUseCase as ListApiKeysUseCaseAbstraction } from \"./abstractions.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { IdentityContext } from \"../../IdentityContext/abstractions.js\";\nimport { listApiKeysInputSchema } from \"../shared/schemas.js\";\nimport type { ApiKey, ListApiKeysInput } from \"../shared/types.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nclass ListApiKeysUseCaseImpl implements ListApiKeysUseCaseAbstraction.Interface {\n private repository: ApiKeysRepository.Interface;\n private identityContext: IdentityContext.Interface;\n\n constructor(\n repository: ApiKeysRepository.Interface,\n identityContext: IdentityContext.Interface\n ) {\n this.repository = repository;\n this.identityContext = identityContext;\n }\n\n async execute(\n params: ListApiKeysInput = {}\n ): Promise<Result<ApiKey[], ListApiKeysUseCaseAbstraction.Error>> {\n const hasPermission = await this.identityContext.getPermission(\"security.apiKey\");\n if (!hasPermission) {\n return Result.fail(new ApiKeyNotAuthorizedError());\n }\n\n const validation = listApiKeysInputSchema.safeParse(params);\n if (!validation.success) {\n return Result.fail(new ApiKeyValidationError(validation.error.issues[0].message));\n }\n\n return this.repository.list(validation.data);\n }\n}\n\nexport const ListApiKeysUseCase = ListApiKeysUseCaseAbstraction.createImplementation({\n implementation: ListApiKeysUseCaseImpl,\n dependencies: [ApiKeysRepository, IdentityContext]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,kBAAkB,IAAIC,6BAA6B;AAC5D,SAASC,iBAAiB;AAC1B,SAASC,eAAe;AACxB,SAASC,sBAAsB;AAE/B,SAASC,wBAAwB,EAAEC,qBAAqB;AAExD,MAAMC,sBAAsB,CAAoD;EAI5EC,WAAWA,CACPC,UAAuC,EACvCC,eAA0C,EAC5C;IACE,IAAI,CAACD,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,eAAe,GAAGA,eAAe;EAC1C;EAEA,MAAMC,OAAOA,CACTC,MAAwB,GAAG,CAAC,CAAC,EACiC;IAC9D,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACH,eAAe,CAACI,aAAa,CAAC,iBAAiB,CAAC;IACjF,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIV,wBAAwB,CAAC,CAAC,CAAC;IACtD;IAEA,MAAMW,UAAU,GAAGZ,sBAAsB,CAACa,SAAS,CAACL,MAAM,CAAC;IAC3D,IAAI,CAACI,UAAU,CAACE,OAAO,EAAE;MACrB,OAAOnB,MAAM,CAACgB,IAAI,CAAC,IAAIT,qBAAqB,CAACU,UAAU,CAACG,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IACrF;IAEA,OAAO,IAAI,CAACZ,UAAU,CAACa,IAAI,CAACN,UAAU,CAACO,IAAI,CAAC;EAChD;AACJ;AAEA,OAAO,MAAMvB,kBAAkB,GAAGC,6BAA6B,CAACuB,oBAAoB,CAAC;EACjFC,cAAc,EAAElB,sBAAsB;EACtCmB,YAAY,EAAE,CAACxB,iBAAiB,EAAEC,eAAe;AACrD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ type ListApiKeysError = IListApiKeysErrors[keyof IListApiKeysErrors] | ApiKeysRe
|
|
|
11
11
|
export interface IListApiKeys {
|
|
12
12
|
execute(params?: ListApiKeysInput): Promise<Result<ApiKey[], ListApiKeysError>>;
|
|
13
13
|
}
|
|
14
|
+
/** List all API keys. */
|
|
14
15
|
export declare const ListApiKeysUseCase: import("@webiny/di").Abstraction<IListApiKeys>;
|
|
15
16
|
export declare namespace ListApiKeysUseCase {
|
|
16
17
|
type Interface = IListApiKeys;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","ListApiKeysUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ListApiKeysInput } from \"../shared/types.js\";\nimport type { ApiKey } from \"~/types/security.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nexport interface IListApiKeysErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n validation: ApiKeyValidationError;\n}\n\ntype ListApiKeysError = IListApiKeysErrors[keyof IListApiKeysErrors] | ApiKeysRepository.Error;\n\nexport interface IListApiKeys {\n execute(params?: ListApiKeysInput): Promise<Result<ApiKey[], ListApiKeysError>>;\n}\n\nexport const ListApiKeysUseCase = createAbstraction<IListApiKeys>(\"ListApiKeysUseCase\");\n\nexport namespace ListApiKeysUseCase {\n export type Interface = IListApiKeys;\n export type Error = ListApiKeysError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAkBvD,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAe,oBAAoB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","ListApiKeysUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ListApiKeysInput } from \"../shared/types.js\";\nimport type { ApiKey } from \"~/types/security.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nexport interface IListApiKeysErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n validation: ApiKeyValidationError;\n}\n\ntype ListApiKeysError = IListApiKeysErrors[keyof IListApiKeysErrors] | ApiKeysRepository.Error;\n\nexport interface IListApiKeys {\n execute(params?: ListApiKeysInput): Promise<Result<ApiKey[], ListApiKeysError>>;\n}\n\n/** List all API keys. */\nexport const ListApiKeysUseCase = createAbstraction<IListApiKeys>(\"ListApiKeysUseCase\");\n\nexport namespace ListApiKeysUseCase {\n export type Interface = IListApiKeys;\n export type Error = ListApiKeysError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAkBvD;AACA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAe,oBAAoB,CAAC","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ class UpdateApiKeyUseCaseImpl {
|
|
|
19
19
|
}
|
|
20
20
|
const validation = updateApiKeyInputSchema.safeParse(input);
|
|
21
21
|
if (!validation.success) {
|
|
22
|
-
return Result.fail(new ApiKeyValidationError(validation.error.
|
|
22
|
+
return Result.fail(new ApiKeyValidationError(validation.error.issues[0].message));
|
|
23
23
|
}
|
|
24
24
|
const existingResult = await this.repository.get(id);
|
|
25
25
|
if (existingResult.isFail()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","UpdateApiKeyUseCase","UpdateApiKeyUseCaseAbstraction","ApiKeysRepository","IdentityContext","EventPublisher","updateApiKeyInputSchema","ApiKeyBeforeUpdateEvent","ApiKeyAfterUpdateEvent","ApiKeyNotAuthorizedError","ApiKeyValidationError","UpdateApiKeyUseCaseImpl","constructor","repository","identityContext","eventPublisher","execute","id","input","hasPermission","getPermission","fail","validation","safeParse","success","error","
|
|
1
|
+
{"version":3,"names":["Result","UpdateApiKeyUseCase","UpdateApiKeyUseCaseAbstraction","ApiKeysRepository","IdentityContext","EventPublisher","updateApiKeyInputSchema","ApiKeyBeforeUpdateEvent","ApiKeyAfterUpdateEvent","ApiKeyNotAuthorizedError","ApiKeyValidationError","UpdateApiKeyUseCaseImpl","constructor","repository","identityContext","eventPublisher","execute","id","input","hasPermission","getPermission","fail","validation","safeParse","success","error","issues","message","existingResult","get","isFail","existingApiKey","value","updatedApiKey","data","publish","original","updated","result","update","ok","createImplementation","implementation","dependencies"],"sources":["UpdateApiKeyUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UpdateApiKeyUseCase as UpdateApiKeyUseCaseAbstraction } from \"./abstractions.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { IdentityContext } from \"../../IdentityContext/abstractions.js\";\nimport { EventPublisher } from \"~/features/eventPublisher/index.js\";\nimport { updateApiKeyInputSchema } from \"../shared/schemas.js\";\nimport { ApiKeyBeforeUpdateEvent, ApiKeyAfterUpdateEvent } from \"./events.js\";\nimport type { ApiKey, UpdateApiKeyInput } from \"../shared/types.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nclass UpdateApiKeyUseCaseImpl implements UpdateApiKeyUseCaseAbstraction.Interface {\n private repository: ApiKeysRepository.Interface;\n private identityContext: IdentityContext.Interface;\n private eventPublisher: EventPublisher.Interface;\n\n constructor(\n repository: ApiKeysRepository.Interface,\n identityContext: IdentityContext.Interface,\n eventPublisher: EventPublisher.Interface\n ) {\n this.repository = repository;\n this.identityContext = identityContext;\n this.eventPublisher = eventPublisher;\n }\n\n async execute(\n id: string,\n input: UpdateApiKeyInput\n ): Promise<Result<ApiKey, UpdateApiKeyUseCaseAbstraction.Error>> {\n const hasPermission = await this.identityContext.getPermission(\"security.apiKey\");\n if (!hasPermission) {\n return Result.fail(new ApiKeyNotAuthorizedError());\n }\n\n const validation = updateApiKeyInputSchema.safeParse(input);\n if (!validation.success) {\n return Result.fail(new ApiKeyValidationError(validation.error.issues[0].message));\n }\n\n const existingResult = await this.repository.get(id);\n if (existingResult.isFail()) {\n return Result.fail(existingResult.error);\n }\n\n const existingApiKey = existingResult.value;\n\n const updatedApiKey: ApiKey = {\n ...existingApiKey,\n ...validation.data\n };\n\n await this.eventPublisher.publish(\n new ApiKeyBeforeUpdateEvent({\n original: existingApiKey,\n updated: updatedApiKey,\n input: validation.data\n })\n );\n\n const result = await this.repository.update(updatedApiKey);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n await this.eventPublisher.publish(\n new ApiKeyAfterUpdateEvent({\n original: existingApiKey,\n updated: updatedApiKey,\n input: validation.data\n })\n );\n\n return Result.ok(updatedApiKey);\n }\n}\n\nexport const UpdateApiKeyUseCase = UpdateApiKeyUseCaseAbstraction.createImplementation({\n implementation: UpdateApiKeyUseCaseImpl,\n dependencies: [ApiKeysRepository, IdentityContext, EventPublisher]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,mBAAmB,IAAIC,8BAA8B;AAC9D,SAASC,iBAAiB;AAC1B,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,uBAAuB;AAChC,SAASC,uBAAuB,EAAEC,sBAAsB;AAExD,SAASC,wBAAwB,EAAEC,qBAAqB;AAExD,MAAMC,uBAAuB,CAAqD;EAK9EC,WAAWA,CACPC,UAAuC,EACvCC,eAA0C,EAC1CC,cAAwC,EAC1C;IACE,IAAI,CAACF,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACC,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CACTC,EAAU,EACVC,KAAwB,EACqC;IAC7D,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,eAAe,CAACM,aAAa,CAAC,iBAAiB,CAAC;IACjF,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOnB,MAAM,CAACqB,IAAI,CAAC,IAAIZ,wBAAwB,CAAC,CAAC,CAAC;IACtD;IAEA,MAAMa,UAAU,GAAGhB,uBAAuB,CAACiB,SAAS,CAACL,KAAK,CAAC;IAC3D,IAAI,CAACI,UAAU,CAACE,OAAO,EAAE;MACrB,OAAOxB,MAAM,CAACqB,IAAI,CAAC,IAAIX,qBAAqB,CAACY,UAAU,CAACG,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IACrF;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACf,UAAU,CAACgB,GAAG,CAACZ,EAAE,CAAC;IACpD,IAAIW,cAAc,CAACE,MAAM,CAAC,CAAC,EAAE;MACzB,OAAO9B,MAAM,CAACqB,IAAI,CAACO,cAAc,CAACH,KAAK,CAAC;IAC5C;IAEA,MAAMM,cAAc,GAAGH,cAAc,CAACI,KAAK;IAE3C,MAAMC,aAAqB,GAAG;MAC1B,GAAGF,cAAc;MACjB,GAAGT,UAAU,CAACY;IAClB,CAAC;IAED,MAAM,IAAI,CAACnB,cAAc,CAACoB,OAAO,CAC7B,IAAI5B,uBAAuB,CAAC;MACxB6B,QAAQ,EAAEL,cAAc;MACxBM,OAAO,EAAEJ,aAAa;MACtBf,KAAK,EAAEI,UAAU,CAACY;IACtB,CAAC,CACL,CAAC;IAED,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACzB,UAAU,CAAC0B,MAAM,CAACN,aAAa,CAAC;IAE1D,IAAIK,MAAM,CAACR,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO9B,MAAM,CAACqB,IAAI,CAACiB,MAAM,CAACb,KAAK,CAAC;IACpC;IAEA,MAAM,IAAI,CAACV,cAAc,CAACoB,OAAO,CAC7B,IAAI3B,sBAAsB,CAAC;MACvB4B,QAAQ,EAAEL,cAAc;MACxBM,OAAO,EAAEJ,aAAa;MACtBf,KAAK,EAAEI,UAAU,CAACY;IACtB,CAAC,CACL,CAAC;IAED,OAAOlC,MAAM,CAACwC,EAAE,CAACP,aAAa,CAAC;EACnC;AACJ;AAEA,OAAO,MAAMhC,mBAAmB,GAAGC,8BAA8B,CAACuC,oBAAoB,CAAC;EACnFC,cAAc,EAAE/B,uBAAuB;EACvCgC,YAAY,EAAE,CAACxC,iBAAiB,EAAEC,eAAe,EAAEC,cAAc;AACrE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ type UpdateApiKeyError = IUpdateApiKeyErrors[keyof IUpdateApiKeyErrors] | ApiKey
|
|
|
10
10
|
export interface IUpdateApiKey {
|
|
11
11
|
execute(id: string, input: UpdateApiKeyInput): Promise<Result<ApiKey, UpdateApiKeyError>>;
|
|
12
12
|
}
|
|
13
|
+
/** Update an existing API key. */
|
|
13
14
|
export declare const UpdateApiKeyUseCase: import("@webiny/di").Abstraction<IUpdateApiKey>;
|
|
14
15
|
export declare namespace UpdateApiKeyUseCase {
|
|
15
16
|
type Interface = IUpdateApiKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","UpdateApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey, UpdateApiKeyInput } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nexport interface IUpdateApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n validation: ApiKeyValidationError;\n}\n\ntype UpdateApiKeyError = IUpdateApiKeyErrors[keyof IUpdateApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface IUpdateApiKey {\n execute(id: string, input: UpdateApiKeyInput): Promise<Result<ApiKey, UpdateApiKeyError>>;\n}\n\nexport const UpdateApiKeyUseCase = createAbstraction<IUpdateApiKey>(\"UpdateApiKeyUseCase\");\n\nexport namespace UpdateApiKeyUseCase {\n export type Interface = IUpdateApiKey;\n export type Error = UpdateApiKeyError;\n}\n\nexport interface ApiKeyBeforeUpdatePayload {\n original: ApiKey;\n updated: ApiKey;\n input: UpdateApiKeyInput;\n}\n\nexport interface ApiKeyAfterUpdatePayload {\n original: ApiKey;\n updated: ApiKey;\n input: UpdateApiKeyInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAgB,qBAAqB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","UpdateApiKeyUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport type { ApiKey, UpdateApiKeyInput } from \"../shared/types.js\";\nimport { ApiKeysRepository } from \"../shared/abstractions.js\";\nimport { ApiKeyNotAuthorizedError, ApiKeyValidationError } from \"../shared/errors.js\";\n\nexport interface IUpdateApiKeyErrors {\n notAuthorized: ApiKeyNotAuthorizedError;\n validation: ApiKeyValidationError;\n}\n\ntype UpdateApiKeyError = IUpdateApiKeyErrors[keyof IUpdateApiKeyErrors] | ApiKeysRepository.Error;\n\nexport interface IUpdateApiKey {\n execute(id: string, input: UpdateApiKeyInput): Promise<Result<ApiKey, UpdateApiKeyError>>;\n}\n\n/** Update an existing API key. */\nexport const UpdateApiKeyUseCase = createAbstraction<IUpdateApiKey>(\"UpdateApiKeyUseCase\");\n\nexport namespace UpdateApiKeyUseCase {\n export type Interface = IUpdateApiKey;\n export type Error = UpdateApiKeyError;\n}\n\nexport interface ApiKeyBeforeUpdatePayload {\n original: ApiKey;\n updated: ApiKey;\n input: UpdateApiKeyInput;\n}\n\nexport interface ApiKeyAfterUpdatePayload {\n original: ApiKey;\n updated: ApiKey;\n input: UpdateApiKeyInput;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAiBvD;AACA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAgB,qBAAqB,CAAC","ignoreList":[]}
|