diff --git a/apps/browser/src/vault/guards/at-risk-passwords.guard.ts b/apps/browser/src/vault/guards/at-risk-passwords.guard.ts index ee991c81239..6bcdddfde81 100644 --- a/apps/browser/src/vault/guards/at-risk-passwords.guard.ts +++ b/apps/browser/src/vault/guards/at-risk-passwords.guard.ts @@ -4,8 +4,9 @@ import { switchMap, tap } from "rxjs"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; +import { TaskService } from "@bitwarden/common/vault/tasks"; +import { filterOutNullish } from "@bitwarden/common/vault/utils/observable-utilities"; import { ToastService } from "@bitwarden/components"; -import { filterOutNullish, TaskService } from "@bitwarden/vault"; export const canAccessAtRiskPasswords: CanActivateFn = () => { const accountService = inject(AccountService); diff --git a/apps/browser/src/vault/popup/components/at-risk-callout/at-risk-password-callout.component.ts b/apps/browser/src/vault/popup/components/at-risk-callout/at-risk-password-callout.component.ts index 5e46f3cd3d9..eb5cd459111 100644 --- a/apps/browser/src/vault/popup/components/at-risk-callout/at-risk-password-callout.component.ts +++ b/apps/browser/src/vault/popup/components/at-risk-callout/at-risk-password-callout.component.ts @@ -4,9 +4,10 @@ import { RouterModule } from "@angular/router"; import { map, switchMap } from "rxjs"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { SecurityTaskType, TaskService } from "@bitwarden/common/vault/tasks"; +import { filterOutNullish } from "@bitwarden/common/vault/utils/observable-utilities"; import { AnchorLinkDirective, CalloutModule } from "@bitwarden/components"; import { I18nPipe } from "@bitwarden/ui-common"; -import { filterOutNullish, SecurityTaskType, TaskService } from "@bitwarden/vault"; // TODO: This component will need to be reworked to use the new EndUserNotificationService in PM-10609 diff --git a/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.spec.ts b/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.spec.ts index 3bf786ad5b7..25bf3ce3716 100644 --- a/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.spec.ts +++ b/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.spec.ts @@ -16,14 +16,12 @@ import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.servic import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { SecurityTask, SecurityTaskType, TaskService } from "@bitwarden/common/vault/tasks"; import { DialogService, ToastService } from "@bitwarden/components"; import { ChangeLoginPasswordService, DefaultChangeLoginPasswordService, PasswordRepromptService, - SecurityTask, - SecurityTaskType, - TaskService, } from "@bitwarden/vault"; import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component"; diff --git a/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.ts b/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.ts index dd3d53fed7d..6711673751c 100644 --- a/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.ts +++ b/apps/browser/src/vault/popup/components/at-risk-passwords/at-risk-passwords.component.ts @@ -15,6 +15,8 @@ import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.servic import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { SecurityTaskType, TaskService } from "@bitwarden/common/vault/tasks"; +import { filterOutNullish } from "@bitwarden/common/vault/utils/observable-utilities"; import { BadgeModule, ButtonModule, @@ -28,10 +30,7 @@ import { import { ChangeLoginPasswordService, DefaultChangeLoginPasswordService, - filterOutNullish, PasswordRepromptService, - SecurityTaskType, - TaskService, VaultCarouselModule, } from "@bitwarden/vault"; diff --git a/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts b/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts index b9eae380ca0..6b64e1191fc 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/view-v2/view-v2.component.ts @@ -33,19 +33,17 @@ import { CipherAuthorizationService } from "@bitwarden/common/vault/services/cip import { AsyncActionsModule, ButtonModule, + CalloutModule, DialogService, IconButtonModule, SearchModule, ToastService, - CalloutModule, } from "@bitwarden/components"; import { ChangeLoginPasswordService, CipherViewComponent, CopyCipherFieldService, DefaultChangeLoginPasswordService, - DefaultTaskService, - TaskService, } from "@bitwarden/vault"; import { BrowserApi } from "../../../../../platform/browser/browser-api"; @@ -95,7 +93,6 @@ type LoadAction = providers: [ { provide: ViewPasswordHistoryService, useClass: BrowserViewPasswordHistoryService }, { provide: PremiumUpgradePromptService, useClass: BrowserPremiumUpgradePromptService }, - { provide: TaskService, useClass: DefaultTaskService }, { provide: ChangeLoginPasswordService, useClass: DefaultChangeLoginPasswordService }, ], }) diff --git a/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.spec.ts b/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.spec.ts index 6e96b357e3e..ed62b94fb73 100644 --- a/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.spec.ts +++ b/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.spec.ts @@ -17,8 +17,9 @@ import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.servi import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; import { CipherType } from "@bitwarden/common/vault/enums"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { TaskService } from "@bitwarden/common/vault/tasks"; import { DialogService } from "@bitwarden/components"; -import { ChangeLoginPasswordService, TaskService } from "@bitwarden/vault"; +import { ChangeLoginPasswordService } from "@bitwarden/vault"; import { EmergencyViewDialogComponent } from "./emergency-view-dialog.component"; @@ -55,6 +56,7 @@ describe("EmergencyViewDialogComponent", () => { { provide: DialogRef, useValue: { close } }, { provide: DIALOG_DATA, useValue: { cipher: mockCipher } }, { provide: AccountService, useValue: accountService }, + { provide: TaskService, useValue: mock() }, ], }) .overrideComponent(EmergencyViewDialogComponent, { @@ -71,10 +73,6 @@ describe("EmergencyViewDialogComponent", () => { }, add: { providers: [ - { - provide: TaskService, - useValue: mock(), - }, { provide: PlatformUtilsService, useValue: mock() }, { provide: ChangeLoginPasswordService, diff --git a/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.ts b/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.ts index d2a6389806d..387d7b5b177 100644 --- a/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.ts +++ b/apps/web/src/app/auth/settings/emergency-access/view/emergency-view-dialog.component.ts @@ -13,8 +13,6 @@ import { ChangeLoginPasswordService, CipherViewComponent, DefaultChangeLoginPasswordService, - DefaultTaskService, - TaskService, } from "@bitwarden/vault"; import { WebViewPasswordHistoryService } from "../../../../vault/services/web-view-password-history.service"; @@ -39,7 +37,6 @@ class PremiumUpgradePromptNoop implements PremiumUpgradePromptService { providers: [ { provide: ViewPasswordHistoryService, useClass: WebViewPasswordHistoryService }, { provide: PremiumUpgradePromptService, useClass: PremiumUpgradePromptNoop }, - { provide: TaskService, useClass: DefaultTaskService }, { provide: ChangeLoginPasswordService, useClass: DefaultChangeLoginPasswordService }, ], }) diff --git a/apps/web/src/app/vault/components/vault-item-dialog/vault-item-dialog.component.ts b/apps/web/src/app/vault/components/vault-item-dialog/vault-item-dialog.component.ts index b2adeecbf69..25ffd677458 100644 --- a/apps/web/src/app/vault/components/vault-item-dialog/vault-item-dialog.component.ts +++ b/apps/web/src/app/vault/components/vault-item-dialog/vault-item-dialog.component.ts @@ -39,7 +39,6 @@ import { } from "@bitwarden/components"; import { ChangeLoginPasswordService, - CipherAttachmentsComponent, CipherFormComponent, CipherFormConfig, CipherFormGenerationService, @@ -47,8 +46,6 @@ import { CipherViewComponent, DecryptionFailureDialogComponent, DefaultChangeLoginPasswordService, - DefaultTaskService, - TaskService, } from "@bitwarden/vault"; import { SharedModule } from "../../../shared/shared.module"; @@ -132,17 +129,14 @@ export enum VaultItemDialogResult { CommonModule, SharedModule, CipherFormModule, - CipherAttachmentsComponent, AsyncActionsModule, ItemModule, - DecryptionFailureDialogComponent, ], providers: [ { provide: PremiumUpgradePromptService, useClass: WebVaultPremiumUpgradePromptService }, { provide: ViewPasswordHistoryService, useClass: WebViewPasswordHistoryService }, { provide: CipherFormGenerationService, useClass: WebCipherFormGenerationService }, RoutedVaultFilterService, - { provide: TaskService, useClass: DefaultTaskService }, { provide: ChangeLoginPasswordService, useClass: DefaultChangeLoginPasswordService }, ], }) diff --git a/apps/web/src/app/vault/individual-vault/view.component.spec.ts b/apps/web/src/app/vault/individual-vault/view.component.spec.ts index d1117258124..c66a951f923 100644 --- a/apps/web/src/app/vault/individual-vault/view.component.spec.ts +++ b/apps/web/src/app/vault/individual-vault/view.component.spec.ts @@ -20,9 +20,10 @@ import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.servi import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { CipherAuthorizationService } from "@bitwarden/common/vault/services/cipher-authorization.service"; +import { TaskService } from "@bitwarden/common/vault/tasks"; import { DialogService, ToastService } from "@bitwarden/components"; import { KeyService } from "@bitwarden/key-management"; -import { ChangeLoginPasswordService, DefaultTaskService, TaskService } from "@bitwarden/vault"; +import { ChangeLoginPasswordService } from "@bitwarden/vault"; import { ViewCipherDialogParams, ViewCipherDialogResult, ViewComponent } from "./view.component"; @@ -83,12 +84,12 @@ describe("ViewComponent", () => { canDeleteCipher$: jest.fn().mockReturnValue(true), }, }, + { provide: TaskService, useValue: mock() }, ], }) .overrideComponent(ViewComponent, { remove: { providers: [ - { provide: TaskService, useClass: DefaultTaskService }, { provide: PlatformUtilsService, useValue: PlatformUtilsService }, { provide: ChangeLoginPasswordService, @@ -98,10 +99,6 @@ describe("ViewComponent", () => { }, add: { providers: [ - { - provide: TaskService, - useValue: mock(), - }, { provide: PlatformUtilsService, useValue: mock() }, { provide: ChangeLoginPasswordService, diff --git a/apps/web/src/app/vault/individual-vault/view.component.ts b/apps/web/src/app/vault/individual-vault/view.component.ts index 7a2cf3bb2f4..7536a5ec5c1 100644 --- a/apps/web/src/app/vault/individual-vault/view.component.ts +++ b/apps/web/src/app/vault/individual-vault/view.component.ts @@ -3,7 +3,7 @@ import { DIALOG_DATA, DialogConfig, DialogRef } from "@angular/cdk/dialog"; import { CommonModule } from "@angular/common"; import { Component, EventEmitter, Inject, OnInit } from "@angular/core"; -import { Observable, firstValueFrom, map } from "rxjs"; +import { firstValueFrom, map, Observable } from "rxjs"; import { CollectionView } from "@bitwarden/admin-console/common"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; @@ -26,7 +26,7 @@ import { DialogService, ToastService, } from "@bitwarden/components"; -import { CipherViewComponent, DefaultTaskService, TaskService } from "@bitwarden/vault"; +import { CipherViewComponent } from "@bitwarden/vault"; import { SharedModule } from "../../shared/shared.module"; import { WebVaultPremiumUpgradePromptService } from "../services/web-premium-upgrade-prompt.service"; @@ -74,7 +74,6 @@ export interface ViewCipherDialogCloseResult { providers: [ { provide: ViewPasswordHistoryService, useClass: WebViewPasswordHistoryService }, { provide: PremiumUpgradePromptService, useClass: WebVaultPremiumUpgradePromptService }, - { provide: TaskService, useClass: DefaultTaskService }, ], }) export class ViewComponent implements OnInit { diff --git a/bitwarden_license/bit-web/src/app/tools/access-intelligence/critical-applications.component.ts b/bitwarden_license/bit-web/src/app/tools/access-intelligence/critical-applications.component.ts index af5c9a90015..ff5a4458a33 100644 --- a/bitwarden_license/bit-web/src/app/tools/access-intelligence/critical-applications.component.ts +++ b/bitwarden_license/bit-web/src/app/tools/access-intelligence/critical-applications.component.ts @@ -19,6 +19,7 @@ import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { CipherId, OrganizationId } from "@bitwarden/common/types/guid"; +import { SecurityTaskType } from "@bitwarden/common/vault/tasks"; import { Icons, NoItemsModule, @@ -27,7 +28,6 @@ import { ToastService, } from "@bitwarden/components"; import { CardComponent } from "@bitwarden/tools-card"; -import { SecurityTaskType } from "@bitwarden/vault"; import { HeaderModule } from "@bitwarden/web-vault/app/layouts/header/header.module"; import { SharedModule } from "@bitwarden/web-vault/app/shared"; import { PipesModule } from "@bitwarden/web-vault/app/vault/individual-vault/pipes/pipes.module"; diff --git a/bitwarden_license/bit-web/src/app/vault/services/abstractions/admin-task.abstraction.ts b/bitwarden_license/bit-web/src/app/vault/services/abstractions/admin-task.abstraction.ts index 014c9daa783..6f5963c3321 100644 --- a/bitwarden_license/bit-web/src/app/vault/services/abstractions/admin-task.abstraction.ts +++ b/bitwarden_license/bit-web/src/app/vault/services/abstractions/admin-task.abstraction.ts @@ -1,5 +1,5 @@ import { CipherId, OrganizationId } from "@bitwarden/common/types/guid"; -import { SecurityTask, SecurityTaskStatus, SecurityTaskType } from "@bitwarden/vault"; +import { SecurityTask, SecurityTaskStatus, SecurityTaskType } from "@bitwarden/common/vault/tasks"; /** * Request type for creating tasks. diff --git a/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.spec.ts b/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.spec.ts index 49a4c16e159..7e1775a31d6 100644 --- a/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.spec.ts +++ b/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.spec.ts @@ -1,8 +1,8 @@ -import { MockProxy, mock } from "jest-mock-extended"; +import { mock, MockProxy } from "jest-mock-extended"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { CipherId, OrganizationId } from "@bitwarden/common/types/guid"; -import { SecurityTaskStatus, SecurityTaskType } from "@bitwarden/vault"; +import { SecurityTaskStatus, SecurityTaskType } from "@bitwarden/common/vault/tasks"; import { CreateTasksRequest } from "./abstractions/admin-task.abstraction"; import { DefaultAdminTaskService } from "./default-admin-task.service"; diff --git a/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.ts b/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.ts index 520fb744486..fb7e5eba450 100644 --- a/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.ts +++ b/bitwarden_license/bit-web/src/app/vault/services/default-admin-task.service.ts @@ -8,7 +8,7 @@ import { SecurityTaskData, SecurityTaskResponse, SecurityTaskStatus, -} from "@bitwarden/vault"; +} from "@bitwarden/common/vault/tasks"; import { AdminTaskService, CreateTasksRequest } from "./abstractions/admin-task.abstraction"; diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts index 6334e5815d6..885b46d0106 100644 --- a/libs/angular/src/services/jslib-services.module.ts +++ b/libs/angular/src/services/jslib-services.module.ts @@ -4,48 +4,48 @@ import { ErrorHandler, LOCALE_ID, NgModule } from "@angular/core"; import { Subject } from "rxjs"; import { - OrganizationUserApiService, - DefaultOrganizationUserApiService, CollectionService, DefaultCollectionService, + DefaultOrganizationUserApiService, + OrganizationUserApiService, } from "@bitwarden/admin-console/common"; import { - SetPasswordJitService, - DefaultSetPasswordJitService, - RegistrationFinishService as RegistrationFinishServiceAbstraction, - DefaultRegistrationFinishService, AnonLayoutWrapperDataService, DefaultAnonLayoutWrapperDataService, - LoginComponentService, + DefaultLoginApprovalComponentService, DefaultLoginComponentService, - LoginDecryptionOptionsService, DefaultLoginDecryptionOptionsService, - TwoFactorAuthComponentService, + DefaultRegistrationFinishService, + DefaultSetPasswordJitService, DefaultTwoFactorAuthComponentService, DefaultTwoFactorAuthEmailComponentService, - TwoFactorAuthEmailComponentService, DefaultTwoFactorAuthWebAuthnComponentService, + LoginComponentService, + LoginDecryptionOptionsService, + RegistrationFinishService as RegistrationFinishServiceAbstraction, + SetPasswordJitService, + TwoFactorAuthComponentService, + TwoFactorAuthEmailComponentService, TwoFactorAuthWebAuthnComponentService, - DefaultLoginApprovalComponentService, } from "@bitwarden/auth/angular"; import { - AuthRequestServiceAbstraction, - AuthRequestService, - PinServiceAbstraction, - PinService, - LoginStrategyServiceAbstraction, - LoginStrategyService, - LoginEmailServiceAbstraction, - LoginEmailService, - InternalUserDecryptionOptionsServiceAbstraction, - UserDecryptionOptionsService, - UserDecryptionOptionsServiceAbstraction, - LogoutReason, AuthRequestApiService, + AuthRequestService, + AuthRequestServiceAbstraction, DefaultAuthRequestApiService, DefaultLoginSuccessHandlerService, - LoginSuccessHandlerService, + InternalUserDecryptionOptionsServiceAbstraction, LoginApprovalComponentServiceAbstraction, + LoginEmailService, + LoginEmailServiceAbstraction, + LoginStrategyService, + LoginStrategyServiceAbstraction, + LoginSuccessHandlerService, + LogoutReason, + PinService, + PinServiceAbstraction, + UserDecryptionOptionsService, + UserDecryptionOptionsServiceAbstraction, } from "@bitwarden/auth/common"; import { ApiService as ApiServiceAbstraction } from "@bitwarden/common/abstractions/api.service"; import { AuditService as AuditServiceAbstraction } from "@bitwarden/common/abstractions/audit.service"; @@ -118,16 +118,16 @@ import { WebAuthnLoginApiService } from "@bitwarden/common/auth/services/webauth import { WebAuthnLoginPrfKeyService } from "@bitwarden/common/auth/services/webauthn-login/webauthn-login-prf-key.service"; import { WebAuthnLoginService } from "@bitwarden/common/auth/services/webauthn-login/webauthn-login.service"; import { - AutofillSettingsServiceAbstraction, AutofillSettingsService, + AutofillSettingsServiceAbstraction, } from "@bitwarden/common/autofill/services/autofill-settings.service"; import { - BadgeSettingsServiceAbstraction, BadgeSettingsService, + BadgeSettingsServiceAbstraction, } from "@bitwarden/common/autofill/services/badge-settings.service"; import { - DomainSettingsService, DefaultDomainSettingsService, + DomainSettingsService, } from "@bitwarden/common/autofill/services/domain-settings.service"; import { BillingApiServiceAbstraction, @@ -200,8 +200,8 @@ import { WebPushNotificationsApiService, } from "@bitwarden/common/platform/notifications/internal"; import { - TaskSchedulerService, DefaultTaskSchedulerService, + TaskSchedulerService, } from "@bitwarden/common/platform/scheduling"; import { AppIdService } from "@bitwarden/common/platform/services/app-id.service"; import { ConfigApiService } from "@bitwarden/common/platform/services/config/config-api.service"; @@ -222,10 +222,10 @@ import { ValidationService } from "@bitwarden/common/platform/services/validatio import { WebCryptoFunctionService } from "@bitwarden/common/platform/services/web-crypto-function.service"; import { ActiveUserStateProvider, + DerivedStateProvider, GlobalStateProvider, SingleUserStateProvider, StateProvider, - DerivedStateProvider, } from "@bitwarden/common/platform/state"; /* eslint-disable import/no-restricted-paths -- We need the implementations to inject, but generally these should not be accessed */ import { DefaultActiveUserStateProvider } from "@bitwarden/common/platform/state/implementations/default-active-user-state.provider"; @@ -280,6 +280,7 @@ import { FolderApiService } from "@bitwarden/common/vault/services/folder/folder import { FolderService } from "@bitwarden/common/vault/services/folder/folder.service"; import { TotpService } from "@bitwarden/common/vault/services/totp.service"; import { VaultSettingsService } from "@bitwarden/common/vault/services/vault-settings/vault-settings.service"; +import { DefaultTaskService, TaskService } from "@bitwarden/common/vault/tasks"; import { ToastService } from "@bitwarden/components"; import { GeneratorHistoryService, @@ -292,34 +293,32 @@ import { UsernameGenerationServiceAbstraction, } from "@bitwarden/generator-legacy"; import { - KeyService, - DefaultKeyService, + BiometricsService, BiometricStateService, DefaultBiometricStateService, - BiometricsService, DefaultKdfConfigService, - KdfConfigService, - UserAsymmetricKeysRegenerationService, - DefaultUserAsymmetricKeysRegenerationService, - UserAsymmetricKeysRegenerationApiService, + DefaultKeyService, DefaultUserAsymmetricKeysRegenerationApiService, + DefaultUserAsymmetricKeysRegenerationService, + KdfConfigService, + KeyService, + UserAsymmetricKeysRegenerationApiService, + UserAsymmetricKeysRegenerationService, } from "@bitwarden/key-management"; import { SafeInjectionToken } from "@bitwarden/ui-common"; import { - DefaultTaskService, DefaultEndUserNotificationService, EndUserNotificationService, NewDeviceVerificationNoticeService, PasswordRepromptService, - TaskService, } from "@bitwarden/vault"; import { - VaultExportService, - VaultExportServiceAbstraction, - OrganizationVaultExportService, - OrganizationVaultExportServiceAbstraction, IndividualVaultExportService, IndividualVaultExportServiceAbstraction, + OrganizationVaultExportService, + OrganizationVaultExportServiceAbstraction, + VaultExportService, + VaultExportServiceAbstraction, } from "@bitwarden/vault-export-core"; import { DeviceTrustToastService as DeviceTrustToastServiceAbstraction } from "../auth/services/device-trust-toast.service.abstraction"; @@ -334,24 +333,24 @@ import { AbstractThemingService } from "../platform/services/theming/theming.ser import { safeProvider, SafeProvider } from "../platform/utils/safe-provider"; import { + CLIENT_TYPE, + DEFAULT_VAULT_TIMEOUT, + ENV_ADDITIONAL_REGIONS, + INTRAPROCESS_MESSAGING_SUBJECT, LOCALES_DIRECTORY, LOCKED_CALLBACK, - LOGOUT_CALLBACK, LOG_MAC_FAILURES, + LOGOUT_CALLBACK, MEMORY_STORAGE, OBSERVABLE_DISK_STORAGE, OBSERVABLE_MEMORY_STORAGE, + REFRESH_ACCESS_TOKEN_ERROR_CALLBACK, SECURE_STORAGE, STATE_FACTORY, SUPPORTS_SECURE_STORAGE, SYSTEM_LANGUAGE, SYSTEM_THEME_OBSERVABLE, WINDOW, - DEFAULT_VAULT_TIMEOUT, - INTRAPROCESS_MESSAGING_SUBJECT, - CLIENT_TYPE, - REFRESH_ACCESS_TOKEN_ERROR_CALLBACK, - ENV_ADDITIONAL_REGIONS, } from "./injection-tokens"; import { ModalService } from "./modal.service"; diff --git a/libs/vault/src/tasks/abstractions/task.service.ts b/libs/common/src/vault/tasks/abstractions/task.service.ts similarity index 96% rename from libs/vault/src/tasks/abstractions/task.service.ts rename to libs/common/src/vault/tasks/abstractions/task.service.ts index 3d6ae72900f..4a0c086330e 100644 --- a/libs/vault/src/tasks/abstractions/task.service.ts +++ b/libs/common/src/vault/tasks/abstractions/task.service.ts @@ -1,7 +1,8 @@ import { Observable } from "rxjs"; import { SecurityTaskId, UserId } from "@bitwarden/common/types/guid"; -import { SecurityTask } from "@bitwarden/vault"; + +import { SecurityTask } from "../models"; export abstract class TaskService { /** diff --git a/libs/vault/src/tasks/enums/index.ts b/libs/common/src/vault/tasks/enums/index.ts similarity index 100% rename from libs/vault/src/tasks/enums/index.ts rename to libs/common/src/vault/tasks/enums/index.ts diff --git a/libs/vault/src/tasks/enums/security-task-status.enum.ts b/libs/common/src/vault/tasks/enums/security-task-status.enum.ts similarity index 100% rename from libs/vault/src/tasks/enums/security-task-status.enum.ts rename to libs/common/src/vault/tasks/enums/security-task-status.enum.ts diff --git a/libs/vault/src/tasks/enums/security-task-type.enum.ts b/libs/common/src/vault/tasks/enums/security-task-type.enum.ts similarity index 100% rename from libs/vault/src/tasks/enums/security-task-type.enum.ts rename to libs/common/src/vault/tasks/enums/security-task-type.enum.ts diff --git a/libs/vault/src/tasks/index.ts b/libs/common/src/vault/tasks/index.ts similarity index 100% rename from libs/vault/src/tasks/index.ts rename to libs/common/src/vault/tasks/index.ts diff --git a/libs/vault/src/tasks/models/index.ts b/libs/common/src/vault/tasks/models/index.ts similarity index 100% rename from libs/vault/src/tasks/models/index.ts rename to libs/common/src/vault/tasks/models/index.ts diff --git a/libs/vault/src/tasks/models/security-task.data.ts b/libs/common/src/vault/tasks/models/security-task.data.ts similarity index 100% rename from libs/vault/src/tasks/models/security-task.data.ts rename to libs/common/src/vault/tasks/models/security-task.data.ts diff --git a/libs/vault/src/tasks/models/security-task.response.ts b/libs/common/src/vault/tasks/models/security-task.response.ts similarity index 100% rename from libs/vault/src/tasks/models/security-task.response.ts rename to libs/common/src/vault/tasks/models/security-task.response.ts diff --git a/libs/vault/src/tasks/models/security-task.ts b/libs/common/src/vault/tasks/models/security-task.ts similarity index 100% rename from libs/vault/src/tasks/models/security-task.ts rename to libs/common/src/vault/tasks/models/security-task.ts diff --git a/libs/vault/src/tasks/services/default-task.service.spec.ts b/libs/common/src/vault/tasks/services/default-task.service.spec.ts similarity index 80% rename from libs/vault/src/tasks/services/default-task.service.spec.ts rename to libs/common/src/vault/tasks/services/default-task.service.spec.ts index c6b74f82909..c38fa0e9e72 100644 --- a/libs/vault/src/tasks/services/default-task.service.spec.ts +++ b/libs/common/src/vault/tasks/services/default-task.service.spec.ts @@ -1,19 +1,18 @@ -import { TestBed } from "@angular/core/testing"; import { BehaviorSubject, firstValueFrom } from "rxjs"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; -import { StateProvider } from "@bitwarden/common/platform/state"; import { SecurityTaskId, UserId } from "@bitwarden/common/types/guid"; -import { DefaultTaskService, SecurityTaskStatus } from "@bitwarden/vault"; -import { FakeStateProvider, mockAccountServiceWith } from "../../../../common/spec"; -import { SecurityTaskData } from "../models/security-task.data"; -import { SecurityTaskResponse } from "../models/security-task.response"; +import { FakeStateProvider, mockAccountServiceWith } from "../../../../spec"; +import { SecurityTaskStatus } from "../enums"; +import { SecurityTaskData, SecurityTaskResponse } from "../models"; import { SECURITY_TASKS } from "../state/security-task.state"; +import { DefaultTaskService } from "./default-task.service"; + describe("Default task service", () => { let fakeStateProvider: FakeStateProvider; @@ -21,7 +20,7 @@ describe("Default task service", () => { const mockGetAllOrgs$ = jest.fn(); const mockGetFeatureFlag$ = jest.fn(); - let testBed: TestBed; + let service: DefaultTaskService; beforeEach(async () => { mockApiSend.mockClear(); @@ -29,34 +28,12 @@ describe("Default task service", () => { mockGetFeatureFlag$.mockClear(); fakeStateProvider = new FakeStateProvider(mockAccountServiceWith("user-id" as UserId)); - testBed = TestBed.configureTestingModule({ - imports: [], - providers: [ - DefaultTaskService, - { - provide: ConfigService, - useValue: { - getFeatureFlag$: mockGetFeatureFlag$, - }, - }, - { - provide: StateProvider, - useValue: fakeStateProvider, - }, - { - provide: ApiService, - useValue: { - send: mockApiSend, - }, - }, - { - provide: OrganizationService, - useValue: { - organizations$: mockGetAllOrgs$, - }, - }, - ], - }); + service = new DefaultTaskService( + fakeStateProvider, + { send: mockApiSend } as unknown as ApiService, + { organizations$: mockGetAllOrgs$ } as unknown as OrganizationService, + { getFeatureFlag$: mockGetFeatureFlag$ } as unknown as ConfigService, + ); }); describe("tasksEnabled$", () => { @@ -73,7 +50,7 @@ describe("Default task service", () => { ] as Organization[]), ); - const { tasksEnabled$ } = testBed.inject(DefaultTaskService); + const { tasksEnabled$ } = service; const result = await firstValueFrom(tasksEnabled$("user-id" as UserId)); @@ -93,7 +70,7 @@ describe("Default task service", () => { ] as Organization[]), ); - const { tasksEnabled$ } = testBed.inject(DefaultTaskService); + const { tasksEnabled$ } = service; const result = await firstValueFrom(tasksEnabled$("user-id" as UserId)); @@ -110,7 +87,7 @@ describe("Default task service", () => { ] as Organization[]), ); - const { tasksEnabled$ } = testBed.inject(DefaultTaskService); + const { tasksEnabled$ } = service; const result = await firstValueFrom(tasksEnabled$("user-id" as UserId)); @@ -130,7 +107,7 @@ describe("Default task service", () => { fakeStateProvider.singleUser.mockFor("user-id" as UserId, SECURITY_TASKS, null as any); - const { tasks$ } = testBed.inject(DefaultTaskService); + const { tasks$ } = service; const result = await firstValueFrom(tasks$("user-id" as UserId)); @@ -145,7 +122,7 @@ describe("Default task service", () => { } as SecurityTaskData, ]); - const { tasks$ } = testBed.inject(DefaultTaskService); + const { tasks$ } = service; const result = await firstValueFrom(tasks$("user-id" as UserId)); @@ -154,7 +131,7 @@ describe("Default task service", () => { }); it("should share the same observable for the same user", async () => { - const { tasks$ } = testBed.inject(DefaultTaskService); + const { tasks$ } = service; const first = tasks$("user-id" as UserId); const second = tasks$("user-id" as UserId); @@ -176,7 +153,7 @@ describe("Default task service", () => { }, ] as SecurityTaskData[]); - const { pendingTasks$ } = testBed.inject(DefaultTaskService); + const { pendingTasks$ } = service; const result = await firstValueFrom(pendingTasks$("user-id" as UserId)); @@ -195,8 +172,6 @@ describe("Default task service", () => { ] as SecurityTaskResponse[], }); - const service = testBed.inject(DefaultTaskService); - await service.refreshTasks("user-id" as UserId); expect(mockApiSend).toHaveBeenCalledWith("GET", "/tasks", null, true, true); @@ -217,8 +192,6 @@ describe("Default task service", () => { null as any, ); - const service = testBed.inject(DefaultTaskService); - await service.refreshTasks("user-id" as UserId); expect(mock.nextMock).toHaveBeenCalledWith([ @@ -237,8 +210,6 @@ describe("Default task service", () => { } as SecurityTaskData, ]); - const service = testBed.inject(DefaultTaskService); - await service.clear("user-id" as UserId); expect(mock.nextMock).toHaveBeenCalledWith([]); @@ -247,8 +218,6 @@ describe("Default task service", () => { describe("markAsComplete()", () => { it("should send an API request to mark the task as complete", async () => { - const service = testBed.inject(DefaultTaskService); - await service.markAsComplete("task-id" as SecurityTaskId, "user-id" as UserId); expect(mockApiSend).toHaveBeenCalledWith( @@ -278,8 +247,6 @@ describe("Default task service", () => { } as SecurityTaskData, ]); - const service = testBed.inject(DefaultTaskService); - await service.markAsComplete("task-id" as SecurityTaskId, "user-id" as UserId); expect(mockApiSend).toHaveBeenCalledWith("GET", "/tasks", null, true, true); diff --git a/libs/vault/src/tasks/services/default-task.service.ts b/libs/common/src/vault/tasks/services/default-task.service.ts similarity index 92% rename from libs/vault/src/tasks/services/default-task.service.ts rename to libs/common/src/vault/tasks/services/default-task.service.ts index b6d0ff77e9d..ff370229663 100644 --- a/libs/vault/src/tasks/services/default-task.service.ts +++ b/libs/common/src/vault/tasks/services/default-task.service.ts @@ -1,4 +1,3 @@ -import { Injectable } from "@angular/core"; import { combineLatest, map, switchMap } from "rxjs"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; @@ -8,14 +7,13 @@ import { ListResponse } from "@bitwarden/common/models/response/list.response"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { StateProvider } from "@bitwarden/common/platform/state"; import { SecurityTaskId, UserId } from "@bitwarden/common/types/guid"; -import { SecurityTask, SecurityTaskStatus, TaskService } from "@bitwarden/vault"; import { filterOutNullish, perUserCache$ } from "../../utils/observable-utilities"; -import { SecurityTaskData } from "../models/security-task.data"; -import { SecurityTaskResponse } from "../models/security-task.response"; +import { TaskService } from "../abstractions/task.service"; +import { SecurityTaskStatus } from "../enums"; +import { SecurityTask, SecurityTaskData, SecurityTaskResponse } from "../models"; import { SECURITY_TASKS } from "../state/security-task.state"; -@Injectable() export class DefaultTaskService implements TaskService { constructor( private stateProvider: StateProvider, diff --git a/libs/vault/src/tasks/state/security-task.state.ts b/libs/common/src/vault/tasks/state/security-task.state.ts similarity index 100% rename from libs/vault/src/tasks/state/security-task.state.ts rename to libs/common/src/vault/tasks/state/security-task.state.ts diff --git a/libs/vault/src/utils/observable-utilities.ts b/libs/common/src/vault/utils/observable-utilities.ts similarity index 100% rename from libs/vault/src/utils/observable-utilities.ts rename to libs/common/src/vault/utils/observable-utilities.ts diff --git a/libs/vault/src/cipher-view/cipher-view.component.ts b/libs/vault/src/cipher-view/cipher-view.component.ts index 57c2b4dbae4..657c0d11527 100644 --- a/libs/vault/src/cipher-view/cipher-view.component.ts +++ b/libs/vault/src/cipher-view/cipher-view.component.ts @@ -20,10 +20,10 @@ import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.servi import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; +import { SecurityTaskType, TaskService } from "@bitwarden/common/vault/tasks"; import { AnchorLinkDirective, CalloutModule, SearchModule } from "@bitwarden/components"; import { ChangeLoginPasswordService } from "../abstractions/change-login-password.service"; -import { TaskService, SecurityTaskType } from "../tasks"; import { AdditionalOptionsComponent } from "./additional-options/additional-options.component"; import { AttachmentsV2ViewComponent } from "./attachments/attachments-v2-view.component"; diff --git a/libs/vault/src/index.ts b/libs/vault/src/index.ts index f359b7289ae..12f3ddbf805 100644 --- a/libs/vault/src/index.ts +++ b/libs/vault/src/index.ts @@ -6,8 +6,6 @@ export { OrgIconDirective } from "./components/org-icon.directive"; export { CanDeleteCipherDirective } from "./components/can-delete-cipher.directive"; export { DarkImageSourceDirective } from "./components/dark-image-source.directive"; -export * from "./utils/observable-utilities"; - export * from "./cipher-view"; export * from "./cipher-form"; export { @@ -25,7 +23,6 @@ export * from "./components/add-edit-folder-dialog/add-edit-folder-dialog.compon export * from "./components/carousel"; export * as VaultIcons from "./icons"; -export * from "./tasks"; export * from "./notifications"; export { DefaultSshImportPromptService } from "./services/default-ssh-import-prompt.service"; diff --git a/libs/vault/src/notifications/services/default-end-user-notification.service.ts b/libs/vault/src/notifications/services/default-end-user-notification.service.ts index 404cb7c75c7..471ed0e5856 100644 --- a/libs/vault/src/notifications/services/default-end-user-notification.service.ts +++ b/libs/vault/src/notifications/services/default-end-user-notification.service.ts @@ -7,8 +7,11 @@ import { ListResponse } from "@bitwarden/common/models/response/list.response"; import { NotificationsService } from "@bitwarden/common/platform/notifications"; import { StateProvider } from "@bitwarden/common/platform/state"; import { UserId } from "@bitwarden/common/types/guid"; +import { + filterOutNullish, + perUserCache$, +} from "@bitwarden/common/vault/utils/observable-utilities"; -import { filterOutNullish, perUserCache$ } from "../../utils/observable-utilities"; import { EndUserNotificationService } from "../abstractions/end-user-notification.service"; import { NotificationView, NotificationViewData, NotificationViewResponse } from "../models"; import { NOTIFICATIONS } from "../state/end-user-notification.state";