From a063717a0b1df6238a3fc4a0ff7bc8070b141adc Mon Sep 17 00:00:00 2001 From: Justin Baur <19896123+justindbaur@users.noreply.github.com> Date: Fri, 16 May 2025 15:29:16 -0400 Subject: [PATCH] Fix all @bitwarden/auth references in libs/common - Imsosorrythiscommitissobigpleaseforgiveme --- .../base-login-via-webauthn.component.ts | 2 +- .../auth/components/set-password.component.ts | 2 +- .../src/auth/components/set-pin.component.ts | 2 +- .../src/auth/guards/active-auth.guard.spec.ts | 2 +- .../src/auth/guards/active-auth.guard.ts | 2 +- ...vice-trust-toast.service.implementation.ts | 2 +- .../device-trust-toast.service.spec.ts | 2 +- libs/angular/src/services/injection-tokens.ts | 2 +- .../src/services/jslib-services.module.ts | 16 ++-- .../new-device-verification.component.ts | 7 +- libs/auth/src/common/abstractions/index.ts | 7 +- libs/auth/src/common/index.ts | 13 +++- libs/auth/src/common/models/domain/index.ts | 3 - libs/auth/src/common/models/index.ts | 2 - libs/auth/src/common/models/spec/index.ts | 1 - .../auth-request/auth-request.service.ts | 3 +- .../login-strategy.service.ts | 60 +++++++------- .../login-strategy.state.spec.ts | 24 +++--- .../login-strategies/login-strategy.state.ts | 20 ++--- .../default-login-success-handler.service.ts | 2 +- .../pin/pin.service.implementation.ts | 14 +--- .../user-decryption-options.service.ts | 5 +- libs/auth/src/common/types/index.ts | 1 - libs/auth/src/common/utilities/index.ts | 1 - libs/auth/tsconfig.json | 11 ++- .../auth-request.service.abstraction.ts | 10 +-- .../abstractions/login-strategy.service.ts | 13 ++-- .../login-success-handler.service.ts | 2 +- .../abstractions/pin.service.abstraction.ts | 15 +++- ...-decryption-options.service.abstraction.ts | 2 +- .../auth-request-login.strategy.spec.ts | 46 +++++------ .../auth-request-login.strategy.ts | 15 ++-- .../src/auth/login-strategies/cache-data.ts | 13 ++++ .../src/auth}/login-strategies/index.ts | 0 .../login-strategies/login.strategy.spec.ts | 78 +++++++++---------- .../auth}/login-strategies/login.strategy.ts | 75 +++++++++--------- .../password-login.strategy.spec.ts | 62 +++++++-------- .../password-login.strategy.ts | 4 +- .../sso-login.strategy.spec.ts | 8 +- .../login-strategies/sso-login.strategy.ts | 4 +- .../user-api-login.strategy.spec.ts | 0 .../user-api-login.strategy.ts | 2 +- .../webauthn-login.strategy.spec.ts | 0 .../webauthn-login.strategy.ts | 2 +- .../auth}/models/domain/login-credentials.ts | 10 +-- .../auth/models/domain/rotatable-key-set.ts} | 7 +- .../models/domain/user-decryption-options.ts | 8 +- .../webauthn-rotate-credential.request.ts | 4 +- .../response/protected-device.response.ts | 3 +- .../auth/services/anonymous-hub.service.ts | 4 +- .../src/auth/services/token.service.spec.ts | 3 +- .../common/src/auth/services/token.service.ts | 4 +- .../user-verification.service.spec.ts | 9 +-- .../user-verification.service.ts | 6 +- .../webauthn-login.service.spec.ts | 4 +- .../webauthn-login/webauthn-login.service.ts | 3 +- .../spec/fake-user-decryption-options.ts | 8 +- .../src/auth}/types/logout-reason.type.ts | 0 .../decode-jwt-token-to-json.utility.spec.ts | 4 +- .../decode-jwt-token-to-json.utility.ts | 2 +- .../device-trust.service.implementation.ts | 3 +- .../services/device-trust.service.spec.ts | 6 +- .../services/key-connector.service.ts | 2 +- .../default-process-reload.service.ts | 2 +- .../vault-timeout-settings.service.spec.ts | 8 +- .../vault-timeout-settings.service.ts | 6 +- .../services/vault-timeout.service.spec.ts | 2 +- .../services/vault-timeout.service.ts | 2 +- .../default-notifications.service.spec.ts | 3 +- .../internal/default-notifications.service.ts | 3 +- .../sync/default-sync.service.spec.ts | 8 +- .../src/platform/sync/default-sync.service.ts | 8 +- libs/common/src/services/api.service.spec.ts | 3 +- libs/common/src/services/api.service.ts | 2 +- libs/key-management/src/key.service.spec.ts | 2 +- libs/key-management/src/key.service.ts | 5 +- 76 files changed, 348 insertions(+), 353 deletions(-) delete mode 100644 libs/auth/src/common/models/domain/index.ts delete mode 100644 libs/auth/src/common/models/index.ts delete mode 100644 libs/auth/src/common/models/spec/index.ts delete mode 100644 libs/auth/src/common/types/index.ts delete mode 100644 libs/auth/src/common/utilities/index.ts rename libs/{auth/src/common => common/src/auth}/abstractions/auth-request.service.abstraction.ts (92%) rename libs/{auth/src/common => common/src/auth}/abstractions/login-strategy.service.ts (88%) rename libs/{auth/src/common => common/src/auth}/abstractions/login-success-handler.service.ts (85%) rename libs/{auth/src/common => common/src/auth}/abstractions/pin.service.abstraction.ts (90%) rename libs/{auth/src/common => common/src/auth}/abstractions/user-decryption-options.service.abstraction.ts (94%) rename libs/{auth/src/common => common/src/auth}/login-strategies/auth-request-login.strategy.spec.ts (79%) rename libs/{auth/src/common => common/src/auth}/login-strategies/auth-request-login.strategy.ts (86%) create mode 100644 libs/common/src/auth/login-strategies/cache-data.ts rename libs/{auth/src/common => common/src/auth}/login-strategies/index.ts (100%) rename libs/{auth/src/common => common/src/auth}/login-strategies/login.strategy.spec.ts (85%) rename libs/{auth/src/common => common/src/auth}/login-strategies/login.strategy.ts (82%) rename libs/{auth/src/common => common/src/auth}/login-strategies/password-login.strategy.spec.ts (81%) rename libs/{auth/src/common => common/src/auth}/login-strategies/password-login.strategy.ts (99%) rename libs/{auth/src/common => common/src/auth}/login-strategies/sso-login.strategy.spec.ts (98%) rename libs/{auth/src/common => common/src/auth}/login-strategies/sso-login.strategy.ts (99%) rename libs/{auth/src/common => common/src/auth}/login-strategies/user-api-login.strategy.spec.ts (100%) rename libs/{auth/src/common => common/src/auth}/login-strategies/user-api-login.strategy.ts (98%) rename libs/{auth/src/common => common/src/auth}/login-strategies/webauthn-login.strategy.spec.ts (100%) rename libs/{auth/src/common => common/src/auth}/login-strategies/webauthn-login.strategy.ts (98%) rename libs/{auth/src/common => common/src/auth}/models/domain/login-credentials.ts (83%) rename libs/{auth/src/common/models/domain/rotateable-key-set.ts => common/src/auth/models/domain/rotatable-key-set.ts} (83%) rename libs/{auth/src/common => common/src/auth}/models/domain/user-decryption-options.ts (93%) rename libs/{auth/src/common/models => common/src/auth}/spec/fake-user-decryption-options.ts (96%) rename libs/{auth/src/common => common/src/auth}/types/logout-reason.type.ts (100%) rename libs/{auth/src/common => common/src/auth}/utilities/decode-jwt-token-to-json.utility.spec.ts (96%) rename libs/{auth/src/common => common/src/auth}/utilities/decode-jwt-token-to-json.utility.ts (94%) diff --git a/libs/angular/src/auth/components/base-login-via-webauthn.component.ts b/libs/angular/src/auth/components/base-login-via-webauthn.component.ts index 5d30fc997dc..effab209c3a 100644 --- a/libs/angular/src/auth/components/base-login-via-webauthn.component.ts +++ b/libs/angular/src/auth/components/base-login-via-webauthn.component.ts @@ -4,7 +4,7 @@ import { Directive, OnInit } from "@angular/core"; import { Router } from "@angular/router"; import { firstValueFrom } from "rxjs"; -import { LoginSuccessHandlerService } from "@bitwarden/auth/common"; +import { LoginSuccessHandlerService } from "@bitwarden/common/auth/abstractions/login-success-handler.service"; import { WebAuthnLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login.service.abstraction"; import { WebAuthnLoginCredentialAssertionView } from "@bitwarden/common/auth/models/view/webauthn-login/webauthn-login-credential-assertion.view"; import { ErrorResponse } from "@bitwarden/common/models/response/error.response"; diff --git a/libs/angular/src/auth/components/set-password.component.ts b/libs/angular/src/auth/components/set-password.component.ts index 230be90b7a4..20701fcc857 100644 --- a/libs/angular/src/auth/components/set-password.component.ts +++ b/libs/angular/src/auth/components/set-password.component.ts @@ -9,7 +9,6 @@ import { OrganizationUserApiService, OrganizationUserResetPasswordEnrollmentRequest, } from "@bitwarden/admin-console/common"; -import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction"; import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction"; @@ -19,6 +18,7 @@ import { OrganizationAutoEnrollStatusResponse } from "@bitwarden/common/admin-co import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { MasterPasswordApiService } from "@bitwarden/common/auth/abstractions/master-password-api.service.abstraction"; import { SsoLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/sso-login.service.abstraction"; +import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/common/auth/abstractions/user-decryption-options.service.abstraction"; import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason"; import { SetPasswordRequest } from "@bitwarden/common/auth/models/request/set-password.request"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; diff --git a/libs/angular/src/auth/components/set-pin.component.ts b/libs/angular/src/auth/components/set-pin.component.ts index d2fceb34bb9..3bbbcc4cb22 100644 --- a/libs/angular/src/auth/components/set-pin.component.ts +++ b/libs/angular/src/auth/components/set-pin.component.ts @@ -4,8 +4,8 @@ import { Directive, OnInit } from "@angular/core"; import { FormBuilder, Validators } from "@angular/forms"; import { firstValueFrom } from "rxjs"; -import { PinServiceAbstraction } from "@bitwarden/auth/common"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { PinServiceAbstraction } from "@bitwarden/common/auth/abstractions/pin.service.abstraction"; import { UserVerificationService } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction"; import { Utils } from "@bitwarden/common/platform/misc/utils"; import { DialogRef } from "@bitwarden/components"; diff --git a/libs/angular/src/auth/guards/active-auth.guard.spec.ts b/libs/angular/src/auth/guards/active-auth.guard.spec.ts index c3417b9d41d..c5e9246d9a1 100644 --- a/libs/angular/src/auth/guards/active-auth.guard.spec.ts +++ b/libs/angular/src/auth/guards/active-auth.guard.spec.ts @@ -5,7 +5,7 @@ import { RouterTestingModule } from "@angular/router/testing"; import { MockProxy, mock } from "jest-mock-extended"; import { BehaviorSubject } from "rxjs"; -import { LoginStrategyServiceAbstraction } from "@bitwarden/auth/common"; +import { LoginStrategyServiceAbstraction } from "@bitwarden/common/auth/abstractions/login-strategy.service"; import { AuthenticationType } from "@bitwarden/common/auth/enums/authentication-type"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; diff --git a/libs/angular/src/auth/guards/active-auth.guard.ts b/libs/angular/src/auth/guards/active-auth.guard.ts index 56213bbd979..3049cf9af21 100644 --- a/libs/angular/src/auth/guards/active-auth.guard.ts +++ b/libs/angular/src/auth/guards/active-auth.guard.ts @@ -2,7 +2,7 @@ import { inject } from "@angular/core"; import { CanActivateFn, Router } from "@angular/router"; import { firstValueFrom } from "rxjs"; -import { LoginStrategyServiceAbstraction } from "@bitwarden/auth/common"; +import { LoginStrategyServiceAbstraction } from "@bitwarden/common/auth/abstractions/login-strategy.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; /** diff --git a/libs/angular/src/auth/services/device-trust-toast.service.implementation.ts b/libs/angular/src/auth/services/device-trust-toast.service.implementation.ts index 4013cf8df96..235eba2d88a 100644 --- a/libs/angular/src/auth/services/device-trust-toast.service.implementation.ts +++ b/libs/angular/src/auth/services/device-trust-toast.service.implementation.ts @@ -1,6 +1,6 @@ import { merge, Observable, tap } from "rxjs"; -import { AuthRequestServiceAbstraction } from "@bitwarden/auth/common"; +import { AuthRequestServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth-request.service.abstraction"; import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/device-trust/abstractions/device-trust.service.abstraction"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { ToastService } from "@bitwarden/components"; diff --git a/libs/angular/src/auth/services/device-trust-toast.service.spec.ts b/libs/angular/src/auth/services/device-trust-toast.service.spec.ts index 96b7db9d0ce..b336c710d9b 100644 --- a/libs/angular/src/auth/services/device-trust-toast.service.spec.ts +++ b/libs/angular/src/auth/services/device-trust-toast.service.spec.ts @@ -1,7 +1,7 @@ import { mock, MockProxy } from "jest-mock-extended"; import { EMPTY, of } from "rxjs"; -import { AuthRequestServiceAbstraction } from "@bitwarden/auth/common"; +import { AuthRequestServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth-request.service.abstraction"; import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/device-trust/abstractions/device-trust.service.abstraction"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { ToastService } from "@bitwarden/components"; diff --git a/libs/angular/src/services/injection-tokens.ts b/libs/angular/src/services/injection-tokens.ts index d82ff021962..f69a7ff32bc 100644 --- a/libs/angular/src/services/injection-tokens.ts +++ b/libs/angular/src/services/injection-tokens.ts @@ -2,7 +2,7 @@ // @ts-strict-ignore import { Observable, Subject } from "rxjs"; -import { LogoutReason } from "@bitwarden/auth/common"; +import { LogoutReason } from "@bitwarden/common/auth/types/logout-reason.type"; import { ClientType } from "@bitwarden/common/enums"; import { VaultTimeout } from "@bitwarden/common/key-management/vault-timeout"; import { RegionConfig } from "@bitwarden/common/platform/abstractions/environment.service"; diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts index a8638efba18..bf46e8037bb 100644 --- a/libs/angular/src/services/jslib-services.module.ts +++ b/libs/angular/src/services/jslib-services.module.ts @@ -33,21 +33,14 @@ import { import { AuthRequestApiService, AuthRequestService, - AuthRequestServiceAbstraction, DefaultAuthRequestApiService, DefaultLoginSuccessHandlerService, - 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"; @@ -88,15 +81,23 @@ import { InternalAccountService, } from "@bitwarden/common/auth/abstractions/account.service"; import { AnonymousHubService as AnonymousHubServiceAbstraction } from "@bitwarden/common/auth/abstractions/anonymous-hub.service"; +import { AuthRequestServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth-request.service.abstraction"; import { AuthService as AuthServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth.service"; import { AvatarService as AvatarServiceAbstraction } from "@bitwarden/common/auth/abstractions/avatar.service"; import { DevicesServiceAbstraction } from "@bitwarden/common/auth/abstractions/devices/devices.service.abstraction"; import { DevicesApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/devices-api.service.abstraction"; +import { LoginStrategyServiceAbstraction } from "@bitwarden/common/auth/abstractions/login-strategy.service"; +import { LoginSuccessHandlerService } from "@bitwarden/common/auth/abstractions/login-success-handler.service"; import { MasterPasswordApiService as MasterPasswordApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/master-password-api.service.abstraction"; import { PasswordResetEnrollmentServiceAbstraction } from "@bitwarden/common/auth/abstractions/password-reset-enrollment.service.abstraction"; +import { PinServiceAbstraction } from "@bitwarden/common/auth/abstractions/pin.service.abstraction"; import { SsoLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/sso-login.service.abstraction"; import { TokenService as TokenServiceAbstraction } from "@bitwarden/common/auth/abstractions/token.service"; import { TwoFactorService as TwoFactorServiceAbstraction } from "@bitwarden/common/auth/abstractions/two-factor.service"; +import { + InternalUserDecryptionOptionsServiceAbstraction, + UserDecryptionOptionsServiceAbstraction, +} from "@bitwarden/common/auth/abstractions/user-decryption-options.service.abstraction"; import { UserVerificationApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/user-verification/user-verification-api.service.abstraction"; import { UserVerificationService as UserVerificationServiceAbstraction } from "@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction"; import { WebAuthnLoginApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/webauthn/webauthn-login-api.service.abstraction"; @@ -119,6 +120,7 @@ import { UserVerificationService } from "@bitwarden/common/auth/services/user-ve import { WebAuthnLoginApiService } from "@bitwarden/common/auth/services/webauthn-login/webauthn-login-api.service"; 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 { LogoutReason } from "@bitwarden/common/auth/types/logout-reason.type"; import { AutofillSettingsService, AutofillSettingsServiceAbstraction, diff --git a/libs/auth/src/angular/new-device-verification/new-device-verification.component.ts b/libs/auth/src/angular/new-device-verification/new-device-verification.component.ts index a2b0b23d05c..a30a808f2b1 100644 --- a/libs/auth/src/angular/new-device-verification/new-device-verification.component.ts +++ b/libs/auth/src/angular/new-device-verification/new-device-verification.component.ts @@ -5,7 +5,10 @@ import { Router } from "@angular/router"; import { Subject, takeUntil } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; -import { LoginSuccessHandlerService } from "@bitwarden/auth/common"; +import { + LoginStrategyServiceAbstraction, + LoginSuccessHandlerService, +} from "@bitwarden/auth/common"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; @@ -17,8 +20,6 @@ import { LinkModule, } from "@bitwarden/components"; -import { LoginStrategyServiceAbstraction } from "../../common/abstractions/login-strategy.service"; - /** * Component for verifying a new device via a one-time password (OTP). */ diff --git a/libs/auth/src/common/abstractions/index.ts b/libs/auth/src/common/abstractions/index.ts index c0dc500ddb9..286875c391f 100644 --- a/libs/auth/src/common/abstractions/index.ts +++ b/libs/auth/src/common/abstractions/index.ts @@ -1,8 +1,5 @@ export * from "./auth-request-api.service"; -export * from "./pin.service.abstraction"; export * from "./login-email.service"; -export * from "./login-strategy.service"; -export * from "./user-decryption-options.service.abstraction"; -export * from "./auth-request.service.abstraction"; export * from "./login-approval-component.service.abstraction"; -export * from "./login-success-handler.service"; +export * from "@bitwarden/common/auth/abstractions/auth-request.service.abstraction"; +export * from "@bitwarden/common/auth/abstractions/login-success-handler.service"; diff --git a/libs/auth/src/common/index.ts b/libs/auth/src/common/index.ts index 97909bdc449..bb8b80ae315 100644 --- a/libs/auth/src/common/index.ts +++ b/libs/auth/src/common/index.ts @@ -2,8 +2,13 @@ * This barrel file should only contain non-Angular exports */ export * from "./abstractions"; -export * from "./models"; -export * from "./types"; export * from "./services"; -export * from "./utilities"; -export * from "./login-strategies"; +// Re-export from lower library to reduce breaks to upper libraries +export * from "@bitwarden/common/auth/types/logout-reason.type"; +export * from "@bitwarden/common/auth/models/domain/login-credentials"; +export * from "@bitwarden/common/auth/utilities/decode-jwt-token-to-json.utility"; +export * from "@bitwarden/common/auth/abstractions/pin.service.abstraction"; +export * from "@bitwarden/common/auth/abstractions/login-strategy.service"; +export * from "@bitwarden/common/auth/models/domain/rotatable-key-set"; +export * from "@bitwarden/common/auth/abstractions/user-decryption-options.service.abstraction"; +export * from "@bitwarden/common/auth/models/domain/user-decryption-options"; diff --git a/libs/auth/src/common/models/domain/index.ts b/libs/auth/src/common/models/domain/index.ts deleted file mode 100644 index b8b83711a4a..00000000000 --- a/libs/auth/src/common/models/domain/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./rotateable-key-set"; -export * from "./login-credentials"; -export * from "./user-decryption-options"; diff --git a/libs/auth/src/common/models/index.ts b/libs/auth/src/common/models/index.ts deleted file mode 100644 index e816ee4b883..00000000000 --- a/libs/auth/src/common/models/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./domain"; -export * from "./spec"; diff --git a/libs/auth/src/common/models/spec/index.ts b/libs/auth/src/common/models/spec/index.ts deleted file mode 100644 index d05bc2bf2c8..00000000000 --- a/libs/auth/src/common/models/spec/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./fake-user-decryption-options"; diff --git a/libs/auth/src/common/services/auth-request/auth-request.service.ts b/libs/auth/src/common/services/auth-request/auth-request.service.ts index 226403d9c8c..e696dfd12fc 100644 --- a/libs/auth/src/common/services/auth-request/auth-request.service.ts +++ b/libs/auth/src/common/services/auth-request/auth-request.service.ts @@ -5,6 +5,7 @@ import { Jsonify } from "type-fest"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { AuthRequestServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth-request.service.abstraction"; import { AdminAuthRequestStorable } from "@bitwarden/common/auth/models/domain/admin-auth-req-storable"; import { PasswordlessAuthRequest } from "@bitwarden/common/auth/models/request/passwordless-auth.request"; import { AuthRequestResponse } from "@bitwarden/common/auth/models/response/auth-request.response"; @@ -24,8 +25,6 @@ import { UserId } from "@bitwarden/common/types/guid"; import { MasterKey, UserKey } from "@bitwarden/common/types/key"; import { KeyService } from "@bitwarden/key-management"; -import { AuthRequestServiceAbstraction } from "../../abstractions/auth-request.service.abstraction"; - /** * Disk-local to maintain consistency between tabs. We don't want to * clear this on logout since admin auth requests are long-lived. diff --git a/libs/auth/src/common/services/login-strategies/login-strategy.service.ts b/libs/auth/src/common/services/login-strategies/login-strategy.service.ts index a9b7ef250bc..a8b16b58cfe 100644 --- a/libs/auth/src/common/services/login-strategies/login-strategy.service.ts +++ b/libs/auth/src/common/services/login-strategies/login-strategy.service.ts @@ -12,10 +12,41 @@ import { import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { LoginStrategyServiceAbstraction } from "@bitwarden/common/auth/abstractions/login-strategy.service"; import { TokenService } from "@bitwarden/common/auth/abstractions/token.service"; import { TwoFactorService } from "@bitwarden/common/auth/abstractions/two-factor.service"; +import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/common/auth/abstractions/user-decryption-options.service.abstraction"; import { AuthenticationType } from "@bitwarden/common/auth/enums/authentication-type"; +import { + PasswordLoginStrategy, + PasswordLoginStrategyData, +} from "@bitwarden/common/auth/login-strategies"; +import { + AuthRequestLoginStrategy, + AuthRequestLoginStrategyData, +} from "@bitwarden/common/auth/login-strategies/auth-request-login.strategy"; +import { CacheData } from "@bitwarden/common/auth/login-strategies/cache-data"; +import { LoginStrategy } from "@bitwarden/common/auth/login-strategies/login.strategy"; +import { + SsoLoginStrategy, + SsoLoginStrategyData, +} from "@bitwarden/common/auth/login-strategies/sso-login.strategy"; +import { + UserApiLoginStrategy, + UserApiLoginStrategyData, +} from "@bitwarden/common/auth/login-strategies/user-api-login.strategy"; +import { + WebAuthnLoginStrategy, + WebAuthnLoginStrategyData, +} from "@bitwarden/common/auth/login-strategies/webauthn-login.strategy"; import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result"; +import { + AuthRequestLoginCredentials, + PasswordLoginCredentials, + SsoLoginCredentials, + UserApiLoginCredentials, + WebAuthnLoginCredentials, +} from "@bitwarden/common/auth/models/domain/login-credentials"; import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request"; import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; @@ -45,38 +76,11 @@ import { KdfConfigService, } from "@bitwarden/key-management"; -import { AuthRequestServiceAbstraction, LoginStrategyServiceAbstraction } from "../../abstractions"; -import { InternalUserDecryptionOptionsServiceAbstraction } from "../../abstractions/user-decryption-options.service.abstraction"; -import { - AuthRequestLoginStrategy, - AuthRequestLoginStrategyData, -} from "../../login-strategies/auth-request-login.strategy"; -import { LoginStrategy } from "../../login-strategies/login.strategy"; -import { - PasswordLoginStrategy, - PasswordLoginStrategyData, -} from "../../login-strategies/password-login.strategy"; -import { SsoLoginStrategy, SsoLoginStrategyData } from "../../login-strategies/sso-login.strategy"; -import { - UserApiLoginStrategy, - UserApiLoginStrategyData, -} from "../../login-strategies/user-api-login.strategy"; -import { - WebAuthnLoginStrategy, - WebAuthnLoginStrategyData, -} from "../../login-strategies/webauthn-login.strategy"; -import { - UserApiLoginCredentials, - PasswordLoginCredentials, - SsoLoginCredentials, - AuthRequestLoginCredentials, - WebAuthnLoginCredentials, -} from "../../models"; +import { AuthRequestServiceAbstraction } from "../../abstractions"; import { AUTH_REQUEST_PUSH_NOTIFICATION_KEY, CURRENT_LOGIN_STRATEGY_KEY, - CacheData, CACHE_EXPIRATION_KEY, CACHE_KEY, } from "./login-strategy.state"; diff --git a/libs/auth/src/common/services/login-strategies/login-strategy.state.spec.ts b/libs/auth/src/common/services/login-strategies/login-strategy.state.spec.ts index 32c5fdcc4d5..a099d61d51b 100644 --- a/libs/auth/src/common/services/login-strategies/login-strategy.state.spec.ts +++ b/libs/auth/src/common/services/login-strategies/login-strategy.state.spec.ts @@ -1,4 +1,17 @@ import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-provider-type"; +import { PasswordLoginStrategyData } from "@bitwarden/common/auth/login-strategies"; +import { AuthRequestLoginStrategyData } from "@bitwarden/common/auth/login-strategies/auth-request-login.strategy"; +import { SsoLoginStrategyData } from "@bitwarden/common/auth/login-strategies/sso-login.strategy"; +import { UserApiLoginStrategyData } from "@bitwarden/common/auth/login-strategies/user-api-login.strategy"; +import { WebAuthnLoginStrategyData } from "@bitwarden/common/auth/login-strategies/webauthn-login.strategy"; +import { + MockAuthenticatorAssertionResponse, + MockPublicKeyCredential, +} from "@bitwarden/common/auth/login-strategies/webauthn-login.strategy.spec"; +import { + AuthRequestLoginCredentials, + WebAuthnLoginCredentials, +} from "@bitwarden/common/auth/models/domain/login-credentials"; import { DeviceRequest } from "@bitwarden/common/auth/models/request/identity-token/device.request"; import { PasswordTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/password-token.request"; import { SsoTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/sso-token.request"; @@ -10,17 +23,6 @@ import { DeviceType } from "@bitwarden/common/enums"; import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; import { MasterKey, PrfKey, UserKey } from "@bitwarden/common/types/key"; -import { AuthRequestLoginStrategyData } from "../../login-strategies/auth-request-login.strategy"; -import { PasswordLoginStrategyData } from "../../login-strategies/password-login.strategy"; -import { SsoLoginStrategyData } from "../../login-strategies/sso-login.strategy"; -import { UserApiLoginStrategyData } from "../../login-strategies/user-api-login.strategy"; -import { WebAuthnLoginStrategyData } from "../../login-strategies/webauthn-login.strategy"; -import { - MockAuthenticatorAssertionResponse, - MockPublicKeyCredential, -} from "../../login-strategies/webauthn-login.strategy.spec"; -import { AuthRequestLoginCredentials, WebAuthnLoginCredentials } from "../../models"; - import { CACHE_KEY } from "./login-strategy.state"; describe("LOGIN_STRATEGY_CACHE_KEY", () => { diff --git a/libs/auth/src/common/services/login-strategies/login-strategy.state.ts b/libs/auth/src/common/services/login-strategies/login-strategy.state.ts index 1592c51453c..7cf22062d64 100644 --- a/libs/auth/src/common/services/login-strategies/login-strategy.state.ts +++ b/libs/auth/src/common/services/login-strategies/login-strategy.state.ts @@ -1,14 +1,14 @@ // FIXME: Update this file to be type safe and remove this and next line // @ts-strict-ignore import { AuthenticationType } from "@bitwarden/common/auth/enums/authentication-type"; +import { PasswordLoginStrategyData } from "@bitwarden/common/auth/login-strategies"; +import { AuthRequestLoginStrategyData } from "@bitwarden/common/auth/login-strategies/auth-request-login.strategy"; +import { CacheData } from "@bitwarden/common/auth/login-strategies/cache-data"; +import { SsoLoginStrategyData } from "@bitwarden/common/auth/login-strategies/sso-login.strategy"; +import { UserApiLoginStrategyData } from "@bitwarden/common/auth/login-strategies/user-api-login.strategy"; +import { WebAuthnLoginStrategyData } from "@bitwarden/common/auth/login-strategies/webauthn-login.strategy"; import { KeyDefinition, LOGIN_STRATEGY_MEMORY } from "@bitwarden/common/platform/state"; -import { AuthRequestLoginStrategyData } from "../../login-strategies/auth-request-login.strategy"; -import { PasswordLoginStrategyData } from "../../login-strategies/password-login.strategy"; -import { SsoLoginStrategyData } from "../../login-strategies/sso-login.strategy"; -import { UserApiLoginStrategyData } from "../../login-strategies/user-api-login.strategy"; -import { WebAuthnLoginStrategyData } from "../../login-strategies/webauthn-login.strategy"; - /** * The current login strategy in use. */ @@ -46,14 +46,6 @@ export const AUTH_REQUEST_PUSH_NOTIFICATION_KEY = new KeyDefinition( USER_DECRYPTION_OPTIONS_DISK, "decryptionOptions", diff --git a/libs/auth/src/common/types/index.ts b/libs/auth/src/common/types/index.ts deleted file mode 100644 index 37ec426fb68..00000000000 --- a/libs/auth/src/common/types/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./logout-reason.type"; diff --git a/libs/auth/src/common/utilities/index.ts b/libs/auth/src/common/utilities/index.ts deleted file mode 100644 index 0309e37f394..00000000000 --- a/libs/auth/src/common/utilities/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./decode-jwt-token-to-json.utility"; diff --git a/libs/auth/tsconfig.json b/libs/auth/tsconfig.json index 8d08522ffce..d68f3ccf945 100644 --- a/libs/auth/tsconfig.json +++ b/libs/auth/tsconfig.json @@ -18,6 +18,15 @@ "@bitwarden/ui-common": ["../ui/common/src"] } }, - "include": ["src", "spec"], + "include": [ + "src", + "spec", + "../common/src/auth/types/logout-reason.type.ts", + "../common/src/auth/abstractions/login-strategy.service.ts", + "../common/src/auth/login-strategies", + "../common/src/auth/models/domain/login-credentials.ts", + "../common/src/auth/abstractions/auth-request.service.abstraction.ts", + "../common/src/auth/abstractions/login-success-handler.service.ts" + ], "exclude": ["node_modules", "dist"] } diff --git a/libs/auth/src/common/abstractions/auth-request.service.abstraction.ts b/libs/common/src/auth/abstractions/auth-request.service.abstraction.ts similarity index 92% rename from libs/auth/src/common/abstractions/auth-request.service.abstraction.ts rename to libs/common/src/auth/abstractions/auth-request.service.abstraction.ts index 75bb8686163..bf5d3d5ce88 100644 --- a/libs/auth/src/common/abstractions/auth-request.service.abstraction.ts +++ b/libs/common/src/auth/abstractions/auth-request.service.abstraction.ts @@ -2,11 +2,11 @@ // @ts-strict-ignore import { Observable } from "rxjs"; -import { AdminAuthRequestStorable } from "@bitwarden/common/auth/models/domain/admin-auth-req-storable"; -import { AuthRequestResponse } from "@bitwarden/common/auth/models/response/auth-request.response"; -import { AuthRequestPushNotification } from "@bitwarden/common/models/response/notification.response"; -import { UserId } from "@bitwarden/common/types/guid"; -import { UserKey, MasterKey } from "@bitwarden/common/types/key"; +import { AuthRequestPushNotification } from "../../models/response/notification.response"; +import { UserId } from "../../types/guid"; +import { MasterKey, UserKey } from "../../types/key"; +import { AdminAuthRequestStorable } from "../models/domain/admin-auth-req-storable"; +import { AuthRequestResponse } from "../models/response/auth-request.response"; export abstract class AuthRequestServiceAbstraction { /** Emits an auth request id when an auth request has been approved. */ diff --git a/libs/auth/src/common/abstractions/login-strategy.service.ts b/libs/common/src/auth/abstractions/login-strategy.service.ts similarity index 88% rename from libs/auth/src/common/abstractions/login-strategy.service.ts rename to libs/common/src/auth/abstractions/login-strategy.service.ts index b0fffae2ab4..449c1ed081a 100644 --- a/libs/auth/src/common/abstractions/login-strategy.service.ts +++ b/libs/common/src/auth/abstractions/login-strategy.service.ts @@ -2,18 +2,17 @@ // @ts-strict-ignore import { Observable } from "rxjs"; -import { AuthenticationType } from "@bitwarden/common/auth/enums/authentication-type"; -import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result"; -import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request"; -import { MasterKey } from "@bitwarden/common/types/key"; - +import { MasterKey } from "../../types/key"; +import { AuthenticationType } from "../enums/authentication-type"; +import { AuthResult } from "../models/domain/auth-result"; import { - UserApiLoginCredentials, + AuthRequestLoginCredentials, PasswordLoginCredentials, SsoLoginCredentials, - AuthRequestLoginCredentials, + UserApiLoginCredentials, WebAuthnLoginCredentials, } from "../models/domain/login-credentials"; +import { TokenTwoFactorRequest } from "../models/request/identity-token/token-two-factor.request"; export abstract class LoginStrategyServiceAbstraction { /** diff --git a/libs/auth/src/common/abstractions/login-success-handler.service.ts b/libs/common/src/auth/abstractions/login-success-handler.service.ts similarity index 85% rename from libs/auth/src/common/abstractions/login-success-handler.service.ts rename to libs/common/src/auth/abstractions/login-success-handler.service.ts index 8dee1dd32b9..5ede2eabd34 100644 --- a/libs/auth/src/common/abstractions/login-success-handler.service.ts +++ b/libs/common/src/auth/abstractions/login-success-handler.service.ts @@ -1,4 +1,4 @@ -import { UserId } from "@bitwarden/common/types/guid"; +import { UserId } from "../../types/guid"; export abstract class LoginSuccessHandlerService { /** diff --git a/libs/auth/src/common/abstractions/pin.service.abstraction.ts b/libs/common/src/auth/abstractions/pin.service.abstraction.ts similarity index 90% rename from libs/auth/src/common/abstractions/pin.service.abstraction.ts rename to libs/common/src/auth/abstractions/pin.service.abstraction.ts index 16550888b94..d5787731f2e 100644 --- a/libs/auth/src/common/abstractions/pin.service.abstraction.ts +++ b/libs/common/src/auth/abstractions/pin.service.abstraction.ts @@ -1,9 +1,16 @@ -import { EncString } from "@bitwarden/common/platform/models/domain/enc-string"; -import { UserId } from "@bitwarden/common/types/guid"; -import { PinKey, UserKey } from "@bitwarden/common/types/key"; import { KdfConfig } from "@bitwarden/key-management"; -import { PinLockType } from "../services"; +import { EncString } from "../../platform/models/domain/enc-string"; +import { UserId } from "../../types/guid"; +import { PinKey, UserKey } from "../../types/key"; + +/** + * - DISABLED : No PIN set. + * - PERSISTENT : PIN is set and persists through client reset. + * - EPHEMERAL : PIN is set, but does NOT persist through client reset. This means that + * after client reset the master password is required to unlock. + */ +export type PinLockType = "DISABLED" | "PERSISTENT" | "EPHEMERAL"; /** * The PinService is used for PIN-based unlocks. Below is a very basic overview of the PIN flow: diff --git a/libs/auth/src/common/abstractions/user-decryption-options.service.abstraction.ts b/libs/common/src/auth/abstractions/user-decryption-options.service.abstraction.ts similarity index 94% rename from libs/auth/src/common/abstractions/user-decryption-options.service.abstraction.ts rename to libs/common/src/auth/abstractions/user-decryption-options.service.abstraction.ts index e46fb09cff6..2b728443b59 100644 --- a/libs/auth/src/common/abstractions/user-decryption-options.service.abstraction.ts +++ b/libs/common/src/auth/abstractions/user-decryption-options.service.abstraction.ts @@ -1,6 +1,6 @@ import { Observable } from "rxjs"; -import { UserDecryptionOptions } from "../models"; +import { UserDecryptionOptions } from "../models/domain/user-decryption-options"; export abstract class UserDecryptionOptionsServiceAbstraction { /** diff --git a/libs/auth/src/common/login-strategies/auth-request-login.strategy.spec.ts b/libs/common/src/auth/login-strategies/auth-request-login.strategy.spec.ts similarity index 79% rename from libs/auth/src/common/login-strategies/auth-request-login.strategy.spec.ts rename to libs/common/src/auth/login-strategies/auth-request-login.strategy.spec.ts index 842dfb3f4e3..aca0ff4148b 100644 --- a/libs/auth/src/common/login-strategies/auth-request-login.strategy.spec.ts +++ b/libs/common/src/auth/login-strategies/auth-request-login.strategy.spec.ts @@ -1,34 +1,34 @@ import { mock, MockProxy } from "jest-mock-extended"; import { BehaviorSubject } from "rxjs"; -import { ApiService } from "@bitwarden/common/abstractions/api.service"; -import { TokenService } from "@bitwarden/common/auth/abstractions/token.service"; -import { TwoFactorService } from "@bitwarden/common/auth/abstractions/two-factor.service"; -import { IdentityTokenResponse } from "@bitwarden/common/auth/models/response/identity-token.response"; -import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service"; -import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; -import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/device-trust/abstractions/device-trust.service.abstraction"; -import { FakeMasterPasswordService } from "@bitwarden/common/key-management/master-password/services/fake-master-password.service"; +import { KdfConfigService, KeyService } from "@bitwarden/key-management"; + +import { FakeAccountService, mockAccountServiceWith } from "../../../spec"; +import { ApiService } from "../../abstractions/api.service"; +import { BillingAccountProfileStateService } from "../../billing/abstractions"; +import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; +import { DeviceTrustServiceAbstraction } from "../../key-management/device-trust/abstractions/device-trust.service.abstraction"; +import { FakeMasterPasswordService } from "../../key-management/master-password/services/fake-master-password.service"; import { VaultTimeoutAction, VaultTimeoutSettingsService, -} from "@bitwarden/common/key-management/vault-timeout"; -import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service"; -import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; -import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; -import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; -import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; -import { Utils } from "@bitwarden/common/platform/misc/utils"; -import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; -import { FakeAccountService, mockAccountServiceWith } from "@bitwarden/common/spec"; -import { CsprngArray } from "@bitwarden/common/types/csprng"; -import { UserId } from "@bitwarden/common/types/guid"; -import { MasterKey, UserKey } from "@bitwarden/common/types/key"; -import { KdfConfigService, KeyService } from "@bitwarden/key-management"; - +} from "../../key-management/vault-timeout"; +import { AppIdService } from "../../platform/abstractions/app-id.service"; +import { EnvironmentService } from "../../platform/abstractions/environment.service"; +import { LogService } from "../../platform/abstractions/log.service"; +import { MessagingService } from "../../platform/abstractions/messaging.service"; +import { PlatformUtilsService } from "../../platform/abstractions/platform-utils.service"; +import { StateService } from "../../platform/abstractions/state.service"; +import { Utils } from "../../platform/misc/utils"; +import { SymmetricCryptoKey } from "../../platform/models/domain/symmetric-crypto-key"; +import { CsprngArray } from "../../types/csprng"; +import { UserId } from "../../types/guid"; +import { MasterKey, UserKey } from "../../types/key"; +import { TokenService } from "../abstractions/token.service"; +import { TwoFactorService } from "../abstractions/two-factor.service"; import { InternalUserDecryptionOptionsServiceAbstraction } from "../abstractions/user-decryption-options.service.abstraction"; import { AuthRequestLoginCredentials } from "../models/domain/login-credentials"; +import { IdentityTokenResponse } from "../models/response/identity-token.response"; import { AuthRequestLoginStrategy, diff --git a/libs/auth/src/common/login-strategies/auth-request-login.strategy.ts b/libs/common/src/auth/login-strategies/auth-request-login.strategy.ts similarity index 86% rename from libs/auth/src/common/login-strategies/auth-request-login.strategy.ts rename to libs/common/src/auth/login-strategies/auth-request-login.strategy.ts index 8581ca74465..8d71b7c1ed3 100644 --- a/libs/auth/src/common/login-strategies/auth-request-login.strategy.ts +++ b/libs/common/src/auth/login-strategies/auth-request-login.strategy.ts @@ -3,16 +3,15 @@ import { firstValueFrom, Observable, map, BehaviorSubject } from "rxjs"; import { Jsonify } from "type-fest"; -import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result"; -import { PasswordTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/password-token.request"; -import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request"; -import { IdentityTokenResponse } from "@bitwarden/common/auth/models/response/identity-token.response"; -import { DeviceTrustServiceAbstraction } from "@bitwarden/common/key-management/device-trust/abstractions/device-trust.service.abstraction"; -import { UserId } from "@bitwarden/common/types/guid"; - +import { DeviceTrustServiceAbstraction } from "../../key-management/device-trust/abstractions/device-trust.service.abstraction"; +import { UserId } from "../../types/guid"; +import { AuthResult } from "../models/domain/auth-result"; import { AuthRequestLoginCredentials } from "../models/domain/login-credentials"; -import { CacheData } from "../services/login-strategies/login-strategy.state"; +import { PasswordTokenRequest } from "../models/request/identity-token/password-token.request"; +import { TokenTwoFactorRequest } from "../models/request/identity-token/token-two-factor.request"; +import { IdentityTokenResponse } from "../models/response/identity-token.response"; +import { CacheData } from "./cache-data"; import { LoginStrategy, LoginStrategyData } from "./login.strategy"; export class AuthRequestLoginStrategyData implements LoginStrategyData { diff --git a/libs/common/src/auth/login-strategies/cache-data.ts b/libs/common/src/auth/login-strategies/cache-data.ts new file mode 100644 index 00000000000..e12fd3a2a19 --- /dev/null +++ b/libs/common/src/auth/login-strategies/cache-data.ts @@ -0,0 +1,13 @@ +import { AuthRequestLoginStrategyData } from "./auth-request-login.strategy"; +import { PasswordLoginStrategyData } from "./password-login.strategy"; +import { SsoLoginStrategyData } from "./sso-login.strategy"; +import { UserApiLoginStrategyData } from "./user-api-login.strategy"; +import { WebAuthnLoginStrategyData } from "./webauthn-login.strategy"; + +export type CacheData = { + password?: PasswordLoginStrategyData; + sso?: SsoLoginStrategyData; + userApiKey?: UserApiLoginStrategyData; + authRequest?: AuthRequestLoginStrategyData; + webAuthn?: WebAuthnLoginStrategyData; +}; diff --git a/libs/auth/src/common/login-strategies/index.ts b/libs/common/src/auth/login-strategies/index.ts similarity index 100% rename from libs/auth/src/common/login-strategies/index.ts rename to libs/common/src/auth/login-strategies/index.ts diff --git a/libs/auth/src/common/login-strategies/login.strategy.spec.ts b/libs/common/src/auth/login-strategies/login.strategy.spec.ts similarity index 85% rename from libs/auth/src/common/login-strategies/login.strategy.spec.ts rename to libs/common/src/auth/login-strategies/login.strategy.spec.ts index a0ccba649b6..032b534475e 100644 --- a/libs/auth/src/common/login-strategies/login.strategy.spec.ts +++ b/libs/common/src/auth/login-strategies/login.strategy.spec.ts @@ -1,52 +1,52 @@ import { mock, MockProxy } from "jest-mock-extended"; import { BehaviorSubject } from "rxjs"; -import { ApiService } from "@bitwarden/common/abstractions/api.service"; -import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; -import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; -import { TokenService } from "@bitwarden/common/auth/abstractions/token.service"; -import { TwoFactorService } from "@bitwarden/common/auth/abstractions/two-factor.service"; -import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-provider-type"; -import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result"; -import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason"; -import { PasswordTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/password-token.request"; -import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request"; -import { IdentityDeviceVerificationResponse } from "@bitwarden/common/auth/models/response/identity-device-verification.response"; -import { IdentityTokenResponse } from "@bitwarden/common/auth/models/response/identity-token.response"; -import { IdentityTwoFactorResponse } from "@bitwarden/common/auth/models/response/identity-two-factor.response"; -import { MasterPasswordPolicyResponse } from "@bitwarden/common/auth/models/response/master-password-policy.response"; -import { IUserDecryptionOptionsServerResponse } from "@bitwarden/common/auth/models/response/user-decryption-options/user-decryption-options.response"; -import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service"; -import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; -import { FakeMasterPasswordService } from "@bitwarden/common/key-management/master-password/services/fake-master-password.service"; +import { KdfConfigService, KeyService } from "@bitwarden/key-management"; + +import { FakeAccountService, mockAccountServiceWith } from "../../../spec"; +import { ApiService } from "../../abstractions/api.service"; +import { PolicyService } from "../../admin-console/abstractions/policy/policy.service.abstraction"; +import { BillingAccountProfileStateService } from "../../billing/abstractions"; +import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; +import { FakeMasterPasswordService } from "../../key-management/master-password/services/fake-master-password.service"; import { VaultTimeoutAction, VaultTimeoutSettingsService, -} from "@bitwarden/common/key-management/vault-timeout"; -import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service"; -import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; -import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; -import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; -import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; -import { Utils } from "@bitwarden/common/platform/misc/utils"; -import { Account, AccountProfile } from "@bitwarden/common/platform/models/domain/account"; -import { EncString } from "@bitwarden/common/platform/models/domain/enc-string"; -import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; -import { FakeAccountService, mockAccountServiceWith } from "@bitwarden/common/spec"; +} from "../../key-management/vault-timeout"; +import { AppIdService } from "../../platform/abstractions/app-id.service"; +import { EnvironmentService } from "../../platform/abstractions/environment.service"; +import { LogService } from "../../platform/abstractions/log.service"; +import { MessagingService } from "../../platform/abstractions/messaging.service"; +import { PlatformUtilsService } from "../../platform/abstractions/platform-utils.service"; +import { StateService } from "../../platform/abstractions/state.service"; +import { Utils } from "../../platform/misc/utils"; +import { Account, AccountProfile } from "../../platform/models/domain/account"; +import { EncString } from "../../platform/models/domain/enc-string"; +import { SymmetricCryptoKey } from "../../platform/models/domain/symmetric-crypto-key"; import { - PasswordStrengthServiceAbstraction, PasswordStrengthService, -} from "@bitwarden/common/tools/password-strength"; -import { CsprngArray } from "@bitwarden/common/types/csprng"; -import { UserId } from "@bitwarden/common/types/guid"; -import { UserKey, MasterKey } from "@bitwarden/common/types/key"; -import { KdfConfigService, KeyService } from "@bitwarden/key-management"; - -import { LoginStrategyServiceAbstraction } from "../abstractions"; + PasswordStrengthServiceAbstraction, +} from "../../tools/password-strength"; +import { CsprngArray } from "../../types/csprng"; +import { UserId } from "../../types/guid"; +import { MasterKey, UserKey } from "../../types/key"; +import { AccountService } from "../abstractions/account.service"; +import { LoginStrategyServiceAbstraction } from "../abstractions/login-strategy.service"; +import { TwoFactorService } from "../abstractions/two-factor.service"; import { InternalUserDecryptionOptionsServiceAbstraction } from "../abstractions/user-decryption-options.service.abstraction"; -import { PasswordLoginCredentials } from "../models"; +import { TwoFactorProviderType } from "../enums/two-factor-provider-type"; +import { AuthResult } from "../models/domain/auth-result"; +import { ForceSetPasswordReason } from "../models/domain/force-set-password-reason"; +import { PasswordLoginCredentials } from "../models/domain/login-credentials"; import { UserDecryptionOptions } from "../models/domain/user-decryption-options"; +import { PasswordTokenRequest } from "../models/request/identity-token/password-token.request"; +import { TokenTwoFactorRequest } from "../models/request/identity-token/token-two-factor.request"; +import { IdentityDeviceVerificationResponse } from "../models/response/identity-device-verification.response"; +import { IdentityTokenResponse } from "../models/response/identity-token.response"; +import { IdentityTwoFactorResponse } from "../models/response/identity-two-factor.response"; +import { MasterPasswordPolicyResponse } from "../models/response/master-password-policy.response"; +import { IUserDecryptionOptionsServerResponse } from "../models/response/user-decryption-options/user-decryption-options.response"; +import { TokenService } from "../services/token.service"; import { PasswordLoginStrategy, PasswordLoginStrategyData } from "./password-login.strategy"; diff --git a/libs/auth/src/common/login-strategies/login.strategy.ts b/libs/common/src/auth/login-strategies/login.strategy.ts similarity index 82% rename from libs/auth/src/common/login-strategies/login.strategy.ts rename to libs/common/src/auth/login-strategies/login.strategy.ts index 6e66d65b654..0fc43b8af6b 100644 --- a/libs/auth/src/common/login-strategies/login.strategy.ts +++ b/libs/common/src/auth/login-strategies/login.strategy.ts @@ -1,38 +1,5 @@ import { BehaviorSubject, filter, firstValueFrom, timeout, Observable } from "rxjs"; -import { ApiService } from "@bitwarden/common/abstractions/api.service"; -import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; -import { TokenService } from "@bitwarden/common/auth/abstractions/token.service"; -import { TwoFactorService } from "@bitwarden/common/auth/abstractions/two-factor.service"; -import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-provider-type"; -import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result"; -import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason"; -import { DeviceRequest } from "@bitwarden/common/auth/models/request/identity-token/device.request"; -import { PasswordTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/password-token.request"; -import { SsoTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/sso-token.request"; -import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request"; -import { UserApiTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/user-api-token.request"; -import { WebAuthnLoginTokenRequest } from "@bitwarden/common/auth/models/request/identity-token/webauthn-login-token.request"; -import { IdentityDeviceVerificationResponse } from "@bitwarden/common/auth/models/response/identity-device-verification.response"; -import { IdentityTokenResponse } from "@bitwarden/common/auth/models/response/identity-token.response"; -import { IdentityTwoFactorResponse } from "@bitwarden/common/auth/models/response/identity-two-factor.response"; -import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service"; -import { ClientType } from "@bitwarden/common/enums"; -import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; -import { InternalMasterPasswordServiceAbstraction } from "@bitwarden/common/key-management/master-password/abstractions/master-password.service.abstraction"; -import { - VaultTimeoutAction, - VaultTimeoutSettingsService, -} from "@bitwarden/common/key-management/vault-timeout"; -import { KeysRequest } from "@bitwarden/common/models/request/keys.request"; -import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service"; -import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; -import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; -import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; -import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; -import { Account, AccountProfile } from "@bitwarden/common/platform/models/domain/account"; -import { UserId } from "@bitwarden/common/types/guid"; import { KeyService, Argon2KdfConfig, @@ -41,16 +8,50 @@ import { KdfType, } from "@bitwarden/key-management"; -import { InternalUserDecryptionOptionsServiceAbstraction } from "../abstractions/user-decryption-options.service.abstraction"; +import { ApiService } from "../../abstractions/api.service"; +import { BillingAccountProfileStateService } from "../../billing/abstractions"; +import { ClientType } from "../../enums"; +import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; +import { InternalMasterPasswordServiceAbstraction } from "../../key-management/master-password/abstractions/master-password.service.abstraction"; import { - UserApiLoginCredentials, + VaultTimeoutAction, + VaultTimeoutSettingsService, +} from "../../key-management/vault-timeout"; +import { KeysRequest } from "../../models/request/keys.request"; +import { AppIdService } from "../../platform/abstractions/app-id.service"; +import { EnvironmentService } from "../../platform/abstractions/environment.service"; +import { LogService } from "../../platform/abstractions/log.service"; +import { MessagingService } from "../../platform/abstractions/messaging.service"; +import { PlatformUtilsService } from "../../platform/abstractions/platform-utils.service"; +import { StateService } from "../../platform/abstractions/state.service"; +import { Account, AccountProfile } from "../../platform/models/domain/account"; +import { UserId } from "../../types/guid"; +import { AccountService } from "../abstractions/account.service"; +import { TokenService } from "../abstractions/token.service"; +import { TwoFactorService } from "../abstractions/two-factor.service"; +import { InternalUserDecryptionOptionsServiceAbstraction } from "../abstractions/user-decryption-options.service.abstraction"; +import { TwoFactorProviderType } from "../enums/two-factor-provider-type"; +import { AuthResult } from "../models/domain/auth-result"; +import { ForceSetPasswordReason } from "../models/domain/force-set-password-reason"; +import { + AuthRequestLoginCredentials, PasswordLoginCredentials, SsoLoginCredentials, - AuthRequestLoginCredentials, + UserApiLoginCredentials, WebAuthnLoginCredentials, } from "../models/domain/login-credentials"; import { UserDecryptionOptions } from "../models/domain/user-decryption-options"; -import { CacheData } from "../services/login-strategies/login-strategy.state"; +import { DeviceRequest } from "../models/request/identity-token/device.request"; +import { PasswordTokenRequest } from "../models/request/identity-token/password-token.request"; +import { SsoTokenRequest } from "../models/request/identity-token/sso-token.request"; +import { TokenTwoFactorRequest } from "../models/request/identity-token/token-two-factor.request"; +import { UserApiTokenRequest } from "../models/request/identity-token/user-api-token.request"; +import { WebAuthnLoginTokenRequest } from "../models/request/identity-token/webauthn-login-token.request"; +import { IdentityDeviceVerificationResponse } from "../models/response/identity-device-verification.response"; +import { IdentityTokenResponse } from "../models/response/identity-token.response"; +import { IdentityTwoFactorResponse } from "../models/response/identity-two-factor.response"; + +import { CacheData } from "./cache-data"; type IdentityResponse = | IdentityTokenResponse diff --git a/libs/auth/src/common/login-strategies/password-login.strategy.spec.ts b/libs/common/src/auth/login-strategies/password-login.strategy.spec.ts similarity index 81% rename from libs/auth/src/common/login-strategies/password-login.strategy.spec.ts rename to libs/common/src/auth/login-strategies/password-login.strategy.spec.ts index 38829974c4e..4b557d31a6c 100644 --- a/libs/auth/src/common/login-strategies/password-login.strategy.spec.ts +++ b/libs/common/src/auth/login-strategies/password-login.strategy.spec.ts @@ -1,44 +1,44 @@ import { mock, MockProxy } from "jest-mock-extended"; import { BehaviorSubject } from "rxjs"; -import { ApiService } from "@bitwarden/common/abstractions/api.service"; -import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; -import { TokenService } from "@bitwarden/common/auth/abstractions/token.service"; -import { TwoFactorService } from "@bitwarden/common/auth/abstractions/two-factor.service"; -import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-provider-type"; -import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason"; -import { IdentityTokenResponse } from "@bitwarden/common/auth/models/response/identity-token.response"; -import { IdentityTwoFactorResponse } from "@bitwarden/common/auth/models/response/identity-two-factor.response"; -import { MasterPasswordPolicyResponse } from "@bitwarden/common/auth/models/response/master-password-policy.response"; -import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service"; -import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; -import { FakeMasterPasswordService } from "@bitwarden/common/key-management/master-password/services/fake-master-password.service"; +import { KdfConfigService, KeyService } from "@bitwarden/key-management"; + +import { FakeAccountService, mockAccountServiceWith } from "../../../spec"; +import { ApiService } from "../../abstractions/api.service"; +import { PolicyService } from "../../admin-console/abstractions/policy/policy.service.abstraction"; +import { BillingAccountProfileStateService } from "../../billing/abstractions"; +import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; +import { FakeMasterPasswordService } from "../../key-management/master-password/services/fake-master-password.service"; import { VaultTimeoutAction, VaultTimeoutSettingsService, -} from "@bitwarden/common/key-management/vault-timeout"; -import { AppIdService } from "@bitwarden/common/platform/abstractions/app-id.service"; -import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; -import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; -import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; -import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; -import { HashPurpose } from "@bitwarden/common/platform/enums"; -import { Utils } from "@bitwarden/common/platform/misc/utils"; -import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; -import { FakeAccountService, mockAccountServiceWith } from "@bitwarden/common/spec"; +} from "../../key-management/vault-timeout"; +import { AppIdService } from "../../platform/abstractions/app-id.service"; +import { EnvironmentService } from "../../platform/abstractions/environment.service"; +import { LogService } from "../../platform/abstractions/log.service"; +import { MessagingService } from "../../platform/abstractions/messaging.service"; +import { PlatformUtilsService } from "../../platform/abstractions/platform-utils.service"; +import { StateService } from "../../platform/abstractions/state.service"; +import { HashPurpose } from "../../platform/enums"; +import { Utils } from "../../platform/misc/utils"; +import { SymmetricCryptoKey } from "../../platform/models/domain/symmetric-crypto-key"; import { - PasswordStrengthServiceAbstraction, PasswordStrengthService, -} from "@bitwarden/common/tools/password-strength"; -import { CsprngArray } from "@bitwarden/common/types/csprng"; -import { UserId } from "@bitwarden/common/types/guid"; -import { MasterKey, UserKey } from "@bitwarden/common/types/key"; -import { KdfConfigService, KeyService } from "@bitwarden/key-management"; - -import { LoginStrategyServiceAbstraction } from "../abstractions"; + PasswordStrengthServiceAbstraction, +} from "../../tools/password-strength"; +import { CsprngArray } from "../../types/csprng"; +import { UserId } from "../../types/guid"; +import { MasterKey, UserKey } from "../../types/key"; +import { LoginStrategyServiceAbstraction } from "../abstractions/login-strategy.service"; +import { TokenService } from "../abstractions/token.service"; +import { TwoFactorService } from "../abstractions/two-factor.service"; import { InternalUserDecryptionOptionsServiceAbstraction } from "../abstractions/user-decryption-options.service.abstraction"; +import { TwoFactorProviderType } from "../enums/two-factor-provider-type"; +import { ForceSetPasswordReason } from "../models/domain/force-set-password-reason"; import { PasswordLoginCredentials } from "../models/domain/login-credentials"; +import { IdentityTokenResponse } from "../models/response/identity-token.response"; +import { IdentityTwoFactorResponse } from "../models/response/identity-two-factor.response"; +import { MasterPasswordPolicyResponse } from "../models/response/master-password-policy.response"; import { identityTokenResponseFactory } from "./login.strategy.spec"; import { PasswordLoginStrategy, PasswordLoginStrategyData } from "./password-login.strategy"; diff --git a/libs/auth/src/common/login-strategies/password-login.strategy.ts b/libs/common/src/auth/login-strategies/password-login.strategy.ts similarity index 99% rename from libs/auth/src/common/login-strategies/password-login.strategy.ts rename to libs/common/src/auth/login-strategies/password-login.strategy.ts index 7671269a85f..26222224418 100644 --- a/libs/auth/src/common/login-strategies/password-login.strategy.ts +++ b/libs/common/src/auth/login-strategies/password-login.strategy.ts @@ -18,10 +18,10 @@ import { PasswordStrengthServiceAbstraction } from "@bitwarden/common/tools/pass import { UserId } from "@bitwarden/common/types/guid"; import { MasterKey } from "@bitwarden/common/types/key"; -import { LoginStrategyServiceAbstraction } from "../abstractions"; +import { LoginStrategyServiceAbstraction } from "../abstractions/login-strategy.service"; import { PasswordLoginCredentials } from "../models/domain/login-credentials"; -import { CacheData } from "../services/login-strategies/login-strategy.state"; +import { CacheData } from "./cache-data"; import { LoginStrategy, LoginStrategyData } from "./login.strategy"; export class PasswordLoginStrategyData implements LoginStrategyData { diff --git a/libs/auth/src/common/login-strategies/sso-login.strategy.spec.ts b/libs/common/src/auth/login-strategies/sso-login.strategy.spec.ts similarity index 98% rename from libs/auth/src/common/login-strategies/sso-login.strategy.spec.ts rename to libs/common/src/auth/login-strategies/sso-login.strategy.spec.ts index d743a71f160..dbb9858abb5 100644 --- a/libs/auth/src/common/login-strategies/sso-login.strategy.spec.ts +++ b/libs/common/src/auth/login-strategies/sso-login.strategy.spec.ts @@ -33,12 +33,10 @@ import { UserId } from "@bitwarden/common/types/guid"; import { DeviceKey, UserKey, MasterKey } from "@bitwarden/common/types/key"; import { KdfConfigService, KeyService } from "@bitwarden/key-management"; -import { - AuthRequestServiceAbstraction, - InternalUserDecryptionOptionsServiceAbstraction, -} from "../abstractions"; -import { UserDecryptionOptions } from "../models"; +import { AuthRequestServiceAbstraction } from "../abstractions/auth-request.service.abstraction"; +import { InternalUserDecryptionOptionsServiceAbstraction } from "../abstractions/user-decryption-options.service.abstraction"; import { SsoLoginCredentials } from "../models/domain/login-credentials"; +import { UserDecryptionOptions } from "../models/domain/user-decryption-options"; import { identityTokenResponseFactory } from "./login.strategy.spec"; import { SsoLoginStrategy, SsoLoginStrategyData } from "./sso-login.strategy"; diff --git a/libs/auth/src/common/login-strategies/sso-login.strategy.ts b/libs/common/src/auth/login-strategies/sso-login.strategy.ts similarity index 99% rename from libs/auth/src/common/login-strategies/sso-login.strategy.ts rename to libs/common/src/auth/login-strategies/sso-login.strategy.ts index 92add18059c..4b1a06df861 100644 --- a/libs/auth/src/common/login-strategies/sso-login.strategy.ts +++ b/libs/common/src/auth/login-strategies/sso-login.strategy.ts @@ -15,10 +15,10 @@ import { ErrorResponse } from "@bitwarden/common/models/response/error.response" import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { UserId } from "@bitwarden/common/types/guid"; -import { AuthRequestServiceAbstraction } from "../abstractions"; +import { AuthRequestServiceAbstraction } from "../abstractions/auth-request.service.abstraction"; import { SsoLoginCredentials } from "../models/domain/login-credentials"; -import { CacheData } from "../services/login-strategies/login-strategy.state"; +import { CacheData } from "./cache-data"; import { LoginStrategyData, LoginStrategy } from "./login.strategy"; export class SsoLoginStrategyData implements LoginStrategyData { diff --git a/libs/auth/src/common/login-strategies/user-api-login.strategy.spec.ts b/libs/common/src/auth/login-strategies/user-api-login.strategy.spec.ts similarity index 100% rename from libs/auth/src/common/login-strategies/user-api-login.strategy.spec.ts rename to libs/common/src/auth/login-strategies/user-api-login.strategy.spec.ts diff --git a/libs/auth/src/common/login-strategies/user-api-login.strategy.ts b/libs/common/src/auth/login-strategies/user-api-login.strategy.ts similarity index 98% rename from libs/auth/src/common/login-strategies/user-api-login.strategy.ts rename to libs/common/src/auth/login-strategies/user-api-login.strategy.ts index 7e7ecee0385..1857c6e7ff8 100644 --- a/libs/auth/src/common/login-strategies/user-api-login.strategy.ts +++ b/libs/common/src/auth/login-strategies/user-api-login.strategy.ts @@ -10,8 +10,8 @@ import { VaultTimeoutAction } from "@bitwarden/common/key-management/vault-timeo import { UserId } from "@bitwarden/common/types/guid"; import { UserApiLoginCredentials } from "../models/domain/login-credentials"; -import { CacheData } from "../services/login-strategies/login-strategy.state"; +import { CacheData } from "./cache-data"; import { LoginStrategy, LoginStrategyData } from "./login.strategy"; export class UserApiLoginStrategyData implements LoginStrategyData { diff --git a/libs/auth/src/common/login-strategies/webauthn-login.strategy.spec.ts b/libs/common/src/auth/login-strategies/webauthn-login.strategy.spec.ts similarity index 100% rename from libs/auth/src/common/login-strategies/webauthn-login.strategy.spec.ts rename to libs/common/src/auth/login-strategies/webauthn-login.strategy.spec.ts diff --git a/libs/auth/src/common/login-strategies/webauthn-login.strategy.ts b/libs/common/src/auth/login-strategies/webauthn-login.strategy.ts similarity index 98% rename from libs/auth/src/common/login-strategies/webauthn-login.strategy.ts rename to libs/common/src/auth/login-strategies/webauthn-login.strategy.ts index 1d817c57009..e1c4f74865c 100644 --- a/libs/auth/src/common/login-strategies/webauthn-login.strategy.ts +++ b/libs/common/src/auth/login-strategies/webauthn-login.strategy.ts @@ -11,8 +11,8 @@ import { UserId } from "@bitwarden/common/types/guid"; import { UserKey } from "@bitwarden/common/types/key"; import { WebAuthnLoginCredentials } from "../models/domain/login-credentials"; -import { CacheData } from "../services/login-strategies/login-strategy.state"; +import { CacheData } from "./cache-data"; import { LoginStrategy, LoginStrategyData } from "./login.strategy"; export class WebAuthnLoginStrategyData implements LoginStrategyData { diff --git a/libs/auth/src/common/models/domain/login-credentials.ts b/libs/common/src/auth/models/domain/login-credentials.ts similarity index 83% rename from libs/auth/src/common/models/domain/login-credentials.ts rename to libs/common/src/auth/models/domain/login-credentials.ts index bce8ce54de5..8f4d5b8f5f3 100644 --- a/libs/auth/src/common/models/domain/login-credentials.ts +++ b/libs/common/src/auth/models/domain/login-credentials.ts @@ -2,11 +2,11 @@ // @ts-strict-ignore import { Jsonify } from "type-fest"; -import { AuthenticationType } from "@bitwarden/common/auth/enums/authentication-type"; -import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request"; -import { WebAuthnLoginAssertionResponseRequest } from "@bitwarden/common/auth/services/webauthn-login/request/webauthn-login-assertion-response.request"; -import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; -import { UserKey, MasterKey } from "@bitwarden/common/types/key"; +import { SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-crypto-key"; +import { MasterKey, UserKey } from "../../../types/key"; +import { AuthenticationType } from "../../enums/authentication-type"; +import { WebAuthnLoginAssertionResponseRequest } from "../../services/webauthn-login/request/webauthn-login-assertion-response.request"; +import { TokenTwoFactorRequest } from "../request/identity-token/token-two-factor.request"; export class PasswordLoginCredentials { readonly type = AuthenticationType.Password; diff --git a/libs/auth/src/common/models/domain/rotateable-key-set.ts b/libs/common/src/auth/models/domain/rotatable-key-set.ts similarity index 83% rename from libs/auth/src/common/models/domain/rotateable-key-set.ts rename to libs/common/src/auth/models/domain/rotatable-key-set.ts index c6e75f2b60e..a9af9db72b2 100644 --- a/libs/auth/src/common/models/domain/rotateable-key-set.ts +++ b/libs/common/src/auth/models/domain/rotatable-key-set.ts @@ -1,8 +1,9 @@ // FIXME: Update this file to be type safe and remove this and next line // @ts-strict-ignore -import { EncString } from "@bitwarden/common/platform/models/domain/enc-string"; -import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key"; -import { PrfKey } from "@bitwarden/common/types/key"; + +import { EncString } from "../../../platform/models/domain/enc-string"; +import { SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-crypto-key"; +import { PrfKey } from "../../../types/key"; declare const tag: unique symbol; diff --git a/libs/auth/src/common/models/domain/user-decryption-options.ts b/libs/common/src/auth/models/domain/user-decryption-options.ts similarity index 93% rename from libs/auth/src/common/models/domain/user-decryption-options.ts rename to libs/common/src/auth/models/domain/user-decryption-options.ts index 00b78064d83..5fb6ea8202b 100644 --- a/libs/auth/src/common/models/domain/user-decryption-options.ts +++ b/libs/common/src/auth/models/domain/user-decryption-options.ts @@ -2,11 +2,9 @@ // @ts-strict-ignore import { Jsonify } from "type-fest"; -import { KeyConnectorUserDecryptionOptionResponse } from "@bitwarden/common/auth/models/response/user-decryption-options/key-connector-user-decryption-option.response"; -import { TrustedDeviceUserDecryptionOptionResponse } from "@bitwarden/common/auth/models/response/user-decryption-options/trusted-device-user-decryption-option.response"; -// FIXME: remove `src` and fix import -// eslint-disable-next-line no-restricted-imports -import { IdentityTokenResponse } from "@bitwarden/common/src/auth/models/response/identity-token.response"; +import { IdentityTokenResponse } from "../response/identity-token.response"; +import { KeyConnectorUserDecryptionOptionResponse } from "../response/user-decryption-options/key-connector-user-decryption-option.response"; +import { TrustedDeviceUserDecryptionOptionResponse } from "../response/user-decryption-options/trusted-device-user-decryption-option.response"; /** * Key Connector decryption options. Intended to be sent to the client for use after authentication. diff --git a/libs/common/src/auth/models/request/webauthn-rotate-credential.request.ts b/libs/common/src/auth/models/request/webauthn-rotate-credential.request.ts index 84103fe5d29..12a68d97cde 100644 --- a/libs/common/src/auth/models/request/webauthn-rotate-credential.request.ts +++ b/libs/common/src/auth/models/request/webauthn-rotate-credential.request.ts @@ -2,9 +2,9 @@ // @ts-strict-ignore // FIXME: remove `src` and fix import -// eslint-disable-next-line no-restricted-imports -import { RotateableKeySet } from "../../../../../auth/src/common/models"; + import { EncString } from "../../../platform/models/domain/enc-string"; +import { RotateableKeySet } from "../domain/rotatable-key-set"; export class WebauthnRotateCredentialRequest { id: string; diff --git a/libs/common/src/auth/models/response/protected-device.response.ts b/libs/common/src/auth/models/response/protected-device.response.ts index 3cc3a3e0792..47cbd414c92 100644 --- a/libs/common/src/auth/models/response/protected-device.response.ts +++ b/libs/common/src/auth/models/response/protected-device.response.ts @@ -2,11 +2,10 @@ // @ts-strict-ignore import { Jsonify } from "type-fest"; -import { RotateableKeySet } from "@bitwarden/auth/common"; - import { DeviceType } from "../../../enums"; import { BaseResponse } from "../../../models/response/base.response"; import { EncString } from "../../../platform/models/domain/enc-string"; +import { RotateableKeySet } from "../domain/rotatable-key-set"; export class ProtectedDeviceResponse extends BaseResponse { constructor(response: Jsonify) { diff --git a/libs/common/src/auth/services/anonymous-hub.service.ts b/libs/common/src/auth/services/anonymous-hub.service.ts index 3900dd53ee0..8a6a91b9750 100644 --- a/libs/common/src/auth/services/anonymous-hub.service.ts +++ b/libs/common/src/auth/services/anonymous-hub.service.ts @@ -9,9 +9,6 @@ import { import { MessagePackHubProtocol } from "@microsoft/signalr-protocol-msgpack"; import { firstValueFrom } from "rxjs"; -// FIXME: remove `src` and fix import -// eslint-disable-next-line no-restricted-imports -import { AuthRequestServiceAbstraction } from "../../../../auth/src/common/abstractions"; import { NotificationType } from "../../enums"; import { AuthRequestPushNotification, @@ -19,6 +16,7 @@ import { } from "../../models/response/notification.response"; import { EnvironmentService } from "../../platform/abstractions/environment.service"; import { AnonymousHubService as AnonymousHubServiceAbstraction } from "../abstractions/anonymous-hub.service"; +import { AuthRequestServiceAbstraction } from "../abstractions/auth-request.service.abstraction"; export class AnonymousHubService implements AnonymousHubServiceAbstraction { private anonHubConnection: HubConnection; diff --git a/libs/common/src/auth/services/token.service.spec.ts b/libs/common/src/auth/services/token.service.spec.ts index a56853c479c..a4b15e24d7a 100644 --- a/libs/common/src/auth/services/token.service.spec.ts +++ b/libs/common/src/auth/services/token.service.spec.ts @@ -3,8 +3,6 @@ import { MockProxy, mock } from "jest-mock-extended"; import { firstValueFrom } from "rxjs"; -import { LogoutReason } from "@bitwarden/auth/common"; - import { FakeSingleUserStateProvider, FakeGlobalStateProvider } from "../../../spec"; import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; import { @@ -21,6 +19,7 @@ import { SymmetricCryptoKey } from "../../platform/models/domain/symmetric-crypt import { CsprngArray } from "../../types/csprng"; import { UserId } from "../../types/guid"; import { SetTokensResult } from "../models/domain/set-tokens-result"; +import { LogoutReason } from "../types/logout-reason.type"; import { ACCOUNT_ACTIVE_ACCOUNT_ID } from "./account.service"; import { diff --git a/libs/common/src/auth/services/token.service.ts b/libs/common/src/auth/services/token.service.ts index 61c00f69215..b735d996c9f 100644 --- a/libs/common/src/auth/services/token.service.ts +++ b/libs/common/src/auth/services/token.service.ts @@ -3,8 +3,6 @@ import { Observable, combineLatest, firstValueFrom, map } from "rxjs"; import { Opaque } from "type-fest"; -import { LogoutReason, decodeJwtTokenToJson } from "@bitwarden/auth/common"; - import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; import { VaultTimeout, @@ -28,6 +26,8 @@ import { import { UserId } from "../../types/guid"; import { TokenService as TokenServiceAbstraction } from "../abstractions/token.service"; import { SetTokensResult } from "../models/domain/set-tokens-result"; +import { LogoutReason } from "../types/logout-reason.type"; +import { decodeJwtTokenToJson } from "../utilities/decode-jwt-token-to-json.utility"; import { ACCOUNT_ACTIVE_ACCOUNT_ID } from "./account.service"; import { diff --git a/libs/common/src/auth/services/user-verification/user-verification.service.spec.ts b/libs/common/src/auth/services/user-verification/user-verification.service.spec.ts index d56dd6dda3b..fa07f50bdc1 100644 --- a/libs/common/src/auth/services/user-verification/user-verification.service.spec.ts +++ b/libs/common/src/auth/services/user-verification/user-verification.service.spec.ts @@ -1,12 +1,6 @@ import { mock } from "jest-mock-extended"; import { of } from "rxjs"; -import { - PinLockType, - PinServiceAbstraction, - UserDecryptionOptions, - UserDecryptionOptionsServiceAbstraction, -} from "@bitwarden/auth/common"; import { BiometricsService, BiometricsStatus, @@ -23,8 +17,11 @@ import { HashPurpose } from "../../../platform/enums"; import { Utils } from "../../../platform/misc/utils"; import { UserId } from "../../../types/guid"; import { MasterKey } from "../../../types/key"; +import { PinLockType, PinServiceAbstraction } from "../../abstractions/pin.service.abstraction"; +import { UserDecryptionOptionsServiceAbstraction } from "../../abstractions/user-decryption-options.service.abstraction"; import { UserVerificationApiServiceAbstraction } from "../../abstractions/user-verification/user-verification-api.service.abstraction"; import { VerificationType } from "../../enums/verification-type"; +import { UserDecryptionOptions } from "../../models/domain/user-decryption-options"; import { MasterPasswordPolicyResponse } from "../../models/response/master-password-policy.response"; import { MasterPasswordVerification } from "../../types/verification"; diff --git a/libs/common/src/auth/services/user-verification/user-verification.service.ts b/libs/common/src/auth/services/user-verification/user-verification.service.ts index cfa6800deed..e889d62251b 100644 --- a/libs/common/src/auth/services/user-verification/user-verification.service.ts +++ b/libs/common/src/auth/services/user-verification/user-verification.service.ts @@ -2,7 +2,6 @@ // @ts-strict-ignore import { firstValueFrom, map } from "rxjs"; -import { UserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common"; import { BiometricsService, BiometricsStatus, @@ -11,13 +10,14 @@ import { } from "@bitwarden/key-management"; // FIXME: remove `src` and fix import -// eslint-disable-next-line no-restricted-imports -import { PinServiceAbstraction } from "../../../../../auth/src/common/abstractions/pin.service.abstraction"; + import { InternalMasterPasswordServiceAbstraction } from "../../../key-management/master-password/abstractions/master-password.service.abstraction"; import { I18nService } from "../../../platform/abstractions/i18n.service"; import { HashPurpose } from "../../../platform/enums"; import { UserId } from "../../../types/guid"; import { AccountService } from "../../abstractions/account.service"; +import { PinServiceAbstraction } from "../../abstractions/pin.service.abstraction"; +import { UserDecryptionOptionsServiceAbstraction } from "../../abstractions/user-decryption-options.service.abstraction"; import { UserVerificationApiServiceAbstraction } from "../../abstractions/user-verification/user-verification-api.service.abstraction"; import { UserVerificationService as UserVerificationServiceAbstraction } from "../../abstractions/user-verification/user-verification.service.abstraction"; import { VerificationType } from "../../enums/verification-type"; diff --git a/libs/common/src/auth/services/webauthn-login/webauthn-login.service.spec.ts b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.spec.ts index 10444062349..35fb5d23fd9 100644 --- a/libs/common/src/auth/services/webauthn-login/webauthn-login.service.spec.ts +++ b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.spec.ts @@ -1,14 +1,14 @@ import { mock } from "jest-mock-extended"; -import { LoginStrategyServiceAbstraction, WebAuthnLoginCredentials } from "@bitwarden/auth/common"; - import { LogService } from "../../../platform/abstractions/log.service"; import { Utils } from "../../../platform/misc/utils"; import { SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-crypto-key"; import { PrfKey } from "../../../types/key"; +import { LoginStrategyServiceAbstraction } from "../../abstractions/login-strategy.service"; import { WebAuthnLoginApiServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-api.service.abstraction"; import { WebAuthnLoginPrfKeyServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-prf-key.service.abstraction"; import { AuthResult } from "../../models/domain/auth-result"; +import { WebAuthnLoginCredentials } from "../../models/domain/login-credentials"; import { WebAuthnLoginCredentialAssertionOptionsView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion-options.view"; import { WebAuthnLoginCredentialAssertionView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion.view"; diff --git a/libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts index cea4bf29737..5338c2aa1d0 100644 --- a/libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts +++ b/libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts @@ -1,13 +1,14 @@ // FIXME: Update this file to be type safe and remove this and next line // @ts-strict-ignore -import { LoginStrategyServiceAbstraction, WebAuthnLoginCredentials } from "@bitwarden/auth/common"; import { LogService } from "../../../platform/abstractions/log.service"; import { PrfKey } from "../../../types/key"; +import { LoginStrategyServiceAbstraction } from "../../abstractions/login-strategy.service"; import { WebAuthnLoginApiServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-api.service.abstraction"; import { WebAuthnLoginPrfKeyServiceAbstraction } from "../../abstractions/webauthn/webauthn-login-prf-key.service.abstraction"; import { WebAuthnLoginServiceAbstraction } from "../../abstractions/webauthn/webauthn-login.service.abstraction"; import { AuthResult } from "../../models/domain/auth-result"; +import { WebAuthnLoginCredentials } from "../../models/domain/login-credentials"; import { WebAuthnLoginCredentialAssertionOptionsView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion-options.view"; import { WebAuthnLoginCredentialAssertionView } from "../../models/view/webauthn-login/webauthn-login-credential-assertion.view"; diff --git a/libs/auth/src/common/models/spec/fake-user-decryption-options.ts b/libs/common/src/auth/spec/fake-user-decryption-options.ts similarity index 96% rename from libs/auth/src/common/models/spec/fake-user-decryption-options.ts rename to libs/common/src/auth/spec/fake-user-decryption-options.ts index 4b43d12ffaa..b0ec57f7d48 100644 --- a/libs/auth/src/common/models/spec/fake-user-decryption-options.ts +++ b/libs/common/src/auth/spec/fake-user-decryption-options.ts @@ -1,11 +1,11 @@ +// To discourage creating new user decryption options, we don't expose a constructor. +// These helpers are for testing purposes only. + import { KeyConnectorUserDecryptionOption, TrustedDeviceUserDecryptionOption, UserDecryptionOptions, -} from "../domain"; - -// To discourage creating new user decryption options, we don't expose a constructor. -// These helpers are for testing purposes only. +} from "../models/domain/user-decryption-options"; /** Testing helper for creating new instances of `UserDecryptionOptions` */ export class FakeUserDecryptionOptions extends UserDecryptionOptions { diff --git a/libs/auth/src/common/types/logout-reason.type.ts b/libs/common/src/auth/types/logout-reason.type.ts similarity index 100% rename from libs/auth/src/common/types/logout-reason.type.ts rename to libs/common/src/auth/types/logout-reason.type.ts diff --git a/libs/auth/src/common/utilities/decode-jwt-token-to-json.utility.spec.ts b/libs/common/src/auth/utilities/decode-jwt-token-to-json.utility.spec.ts similarity index 96% rename from libs/auth/src/common/utilities/decode-jwt-token-to-json.utility.spec.ts rename to libs/common/src/auth/utilities/decode-jwt-token-to-json.utility.spec.ts index 84778b82f88..0ef7bd7d4f4 100644 --- a/libs/auth/src/common/utilities/decode-jwt-token-to-json.utility.spec.ts +++ b/libs/common/src/auth/utilities/decode-jwt-token-to-json.utility.spec.ts @@ -1,5 +1,5 @@ -import { DecodedAccessToken } from "@bitwarden/common/auth/services/token.service"; -import { Utils } from "@bitwarden/common/platform/misc/utils"; +import { Utils } from "../../platform/misc/utils"; +import { DecodedAccessToken } from "../services/token.service"; import { decodeJwtTokenToJson } from "./decode-jwt-token-to-json.utility"; diff --git a/libs/auth/src/common/utilities/decode-jwt-token-to-json.utility.ts b/libs/common/src/auth/utilities/decode-jwt-token-to-json.utility.ts similarity index 94% rename from libs/auth/src/common/utilities/decode-jwt-token-to-json.utility.ts rename to libs/common/src/auth/utilities/decode-jwt-token-to-json.utility.ts index 24b3adacc21..098bcb1e822 100644 --- a/libs/auth/src/common/utilities/decode-jwt-token-to-json.utility.ts +++ b/libs/common/src/auth/utilities/decode-jwt-token-to-json.utility.ts @@ -1,4 +1,4 @@ -import { Utils } from "@bitwarden/common/platform/misc/utils"; +import { Utils } from "../../platform/misc/utils"; export function decodeJwtTokenToJson(jwtToken: string): any { if (jwtToken == null) { diff --git a/libs/common/src/key-management/device-trust/services/device-trust.service.implementation.ts b/libs/common/src/key-management/device-trust/services/device-trust.service.implementation.ts index 5e89e0a5cb7..d4ad9dbc605 100644 --- a/libs/common/src/key-management/device-trust/services/device-trust.service.implementation.ts +++ b/libs/common/src/key-management/device-trust/services/device-trust.service.implementation.ts @@ -2,11 +2,12 @@ // @ts-strict-ignore import { firstValueFrom, map, Observable, Subject } from "rxjs"; -import { RotateableKeySet, UserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common"; import { KeyService } from "@bitwarden/key-management"; import { DeviceResponse } from "../../../auth/abstractions/devices/responses/device.response"; import { DevicesApiServiceAbstraction } from "../../../auth/abstractions/devices-api.service.abstraction"; +import { UserDecryptionOptionsServiceAbstraction } from "../../../auth/abstractions/user-decryption-options.service.abstraction"; +import { RotateableKeySet } from "../../../auth/models/domain/rotatable-key-set"; import { SecretVerificationRequest } from "../../../auth/models/request/secret-verification.request"; import { DeviceKeysUpdateRequest, diff --git a/libs/common/src/key-management/device-trust/services/device-trust.service.spec.ts b/libs/common/src/key-management/device-trust/services/device-trust.service.spec.ts index de9de5d781a..a2cddb41125 100644 --- a/libs/common/src/key-management/device-trust/services/device-trust.service.spec.ts +++ b/libs/common/src/key-management/device-trust/services/device-trust.service.spec.ts @@ -3,10 +3,6 @@ import { matches, mock } from "jest-mock-extended"; import { BehaviorSubject, firstValueFrom, of } from "rxjs"; -import { - UserDecryptionOptionsServiceAbstraction, - UserDecryptionOptions, -} from "@bitwarden/auth/common"; import { ListResponse } from "@bitwarden/common/models/response/list.response"; import { KeyService } from "@bitwarden/key-management"; @@ -15,6 +11,8 @@ import { FakeActiveUserState } from "../../../../spec/fake-state"; import { FakeStateProvider } from "../../../../spec/fake-state-provider"; import { DeviceResponse } from "../../../auth/abstractions/devices/responses/device.response"; import { DevicesApiServiceAbstraction } from "../../../auth/abstractions/devices-api.service.abstraction"; +import { UserDecryptionOptionsServiceAbstraction } from "../../../auth/abstractions/user-decryption-options.service.abstraction"; +import { UserDecryptionOptions } from "../../../auth/models/domain/user-decryption-options"; import { UpdateDevicesTrustRequest } from "../../../auth/models/request/update-devices-trust.request"; import { ProtectedDeviceResponse } from "../../../auth/models/response/protected-device.response"; import { DeviceType } from "../../../enums"; diff --git a/libs/common/src/key-management/key-connector/services/key-connector.service.ts b/libs/common/src/key-management/key-connector/services/key-connector.service.ts index 9799f06f64a..b90b3de4178 100644 --- a/libs/common/src/key-management/key-connector/services/key-connector.service.ts +++ b/libs/common/src/key-management/key-connector/services/key-connector.service.ts @@ -2,7 +2,6 @@ // @ts-strict-ignore import { firstValueFrom } from "rxjs"; -import { LogoutReason } from "@bitwarden/auth/common"; import { Argon2KdfConfig, KdfConfig, @@ -18,6 +17,7 @@ import { Organization } from "../../../admin-console/models/domain/organization" import { AccountService } from "../../../auth/abstractions/account.service"; import { TokenService } from "../../../auth/abstractions/token.service"; import { IdentityTokenResponse } from "../../../auth/models/response/identity-token.response"; +import { LogoutReason } from "../../../auth/types/logout-reason.type"; import { KeysRequest } from "../../../models/request/keys.request"; import { KeyGenerationService } from "../../../platform/abstractions/key-generation.service"; import { LogService } from "../../../platform/abstractions/log.service"; diff --git a/libs/common/src/key-management/services/default-process-reload.service.ts b/libs/common/src/key-management/services/default-process-reload.service.ts index 860dac54855..4977a3bf84c 100644 --- a/libs/common/src/key-management/services/default-process-reload.service.ts +++ b/libs/common/src/key-management/services/default-process-reload.service.ts @@ -2,11 +2,11 @@ // @ts-strict-ignore import { firstValueFrom, map, timeout } from "rxjs"; -import { PinServiceAbstraction } from "@bitwarden/auth/common"; import { BiometricStateService } from "@bitwarden/key-management"; import { AccountService } from "../../auth/abstractions/account.service"; import { AuthService } from "../../auth/abstractions/auth.service"; +import { PinServiceAbstraction } from "../../auth/abstractions/pin.service.abstraction"; import { AuthenticationStatus } from "../../auth/enums/authentication-status"; import { VaultTimeoutAction, diff --git a/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.spec.ts b/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.spec.ts index b5e9544b01b..06e46b2b7ba 100644 --- a/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.spec.ts +++ b/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.spec.ts @@ -3,17 +3,15 @@ import { mock, MockProxy } from "jest-mock-extended"; import { BehaviorSubject, firstValueFrom, map, of } from "rxjs"; -import { - PinServiceAbstraction, - FakeUserDecryptionOptions as UserDecryptionOptions, - UserDecryptionOptionsServiceAbstraction, -} from "@bitwarden/auth/common"; import { BiometricStateService, KeyService } from "@bitwarden/key-management"; import { FakeAccountService, FakeStateProvider, mockAccountServiceWith } from "../../../../spec"; import { PolicyService } from "../../../admin-console/abstractions/policy/policy.service.abstraction"; import { Policy } from "../../../admin-console/models/domain/policy"; +import { PinServiceAbstraction } from "../../../auth/abstractions/pin.service.abstraction"; +import { UserDecryptionOptionsServiceAbstraction } from "../../../auth/abstractions/user-decryption-options.service.abstraction"; import { TokenService } from "../../../auth/services/token.service"; +import { FakeUserDecryptionOptions as UserDecryptionOptions } from "../../../auth/spec/fake-user-decryption-options"; import { LogService } from "../../../platform/abstractions/log.service"; import { Utils } from "../../../platform/misc/utils"; import { UserId } from "../../../types/guid"; diff --git a/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.ts b/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.ts index 0716bf0bb93..6470b47a748 100644 --- a/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.ts +++ b/libs/common/src/key-management/vault-timeout/services/vault-timeout-settings.service.ts @@ -14,10 +14,6 @@ import { tap, } from "rxjs"; -import { - PinServiceAbstraction, - UserDecryptionOptionsServiceAbstraction, -} from "@bitwarden/auth/common"; import { BiometricStateService, KeyService } from "@bitwarden/key-management"; import { PolicyService } from "../../../admin-console/abstractions/policy/policy.service.abstraction"; @@ -25,7 +21,9 @@ import { PolicyType } from "../../../admin-console/enums"; import { Policy } from "../../../admin-console/models/domain/policy"; import { getFirstPolicy } from "../../../admin-console/services/policy/default-policy.service"; import { AccountService } from "../../../auth/abstractions/account.service"; +import { PinServiceAbstraction } from "../../../auth/abstractions/pin.service.abstraction"; import { TokenService } from "../../../auth/abstractions/token.service"; +import { UserDecryptionOptionsServiceAbstraction } from "../../../auth/abstractions/user-decryption-options.service.abstraction"; import { LogService } from "../../../platform/abstractions/log.service"; import { StateProvider } from "../../../platform/state"; import { UserId } from "../../../types/guid"; diff --git a/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.spec.ts b/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.spec.ts index 5fdae07b2d7..2c6165d0a71 100644 --- a/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.spec.ts +++ b/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.spec.ts @@ -4,7 +4,6 @@ import { MockProxy, any, mock } from "jest-mock-extended"; import { BehaviorSubject, from, of } from "rxjs"; import { CollectionService } from "@bitwarden/admin-console/common"; -import { LogoutReason } from "@bitwarden/auth/common"; import { BiometricsService } from "@bitwarden/key-management"; import { FakeAccountService, mockAccountServiceWith } from "../../../../spec"; @@ -12,6 +11,7 @@ import { SearchService } from "../../../abstractions/search.service"; import { AccountInfo } from "../../../auth/abstractions/account.service"; import { AuthService } from "../../../auth/abstractions/auth.service"; import { AuthenticationStatus } from "../../../auth/enums/authentication-status"; +import { LogoutReason } from "../../../auth/types/logout-reason.type"; import { LogService } from "../../../platform/abstractions/log.service"; import { MessagingService } from "../../../platform/abstractions/messaging.service"; import { PlatformUtilsService } from "../../../platform/abstractions/platform-utils.service"; diff --git a/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.ts b/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.ts index d71b8972727..c2d31048001 100644 --- a/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.ts +++ b/libs/common/src/key-management/vault-timeout/services/vault-timeout.service.ts @@ -3,13 +3,13 @@ import { combineLatest, concatMap, filter, firstValueFrom, map, timeout } from "rxjs"; import { CollectionService } from "@bitwarden/admin-console/common"; -import { LogoutReason } from "@bitwarden/auth/common"; import { BiometricsService } from "@bitwarden/key-management"; import { SearchService } from "../../../abstractions/search.service"; import { AccountService } from "../../../auth/abstractions/account.service"; import { AuthService } from "../../../auth/abstractions/auth.service"; import { AuthenticationStatus } from "../../../auth/enums/authentication-status"; +import { LogoutReason } from "../../../auth/types/logout-reason.type"; import { LogService } from "../../../platform/abstractions/log.service"; import { MessagingService } from "../../../platform/abstractions/messaging.service"; import { PlatformUtilsService } from "../../../platform/abstractions/platform-utils.service"; diff --git a/libs/common/src/platform/notifications/internal/default-notifications.service.spec.ts b/libs/common/src/platform/notifications/internal/default-notifications.service.spec.ts index bf834e8dd93..aba1813bef0 100644 --- a/libs/common/src/platform/notifications/internal/default-notifications.service.spec.ts +++ b/libs/common/src/platform/notifications/internal/default-notifications.service.spec.ts @@ -1,13 +1,12 @@ import { mock, MockProxy } from "jest-mock-extended"; import { BehaviorSubject, bufferCount, firstValueFrom, ObservedValueOf, Subject } from "rxjs"; -import { LogoutReason } from "@bitwarden/auth/common"; - import { awaitAsync } from "../../../../spec"; import { Matrix } from "../../../../spec/matrix"; import { AccountService } from "../../../auth/abstractions/account.service"; import { AuthService } from "../../../auth/abstractions/auth.service"; import { AuthenticationStatus } from "../../../auth/enums/authentication-status"; +import { LogoutReason } from "../../../auth/types/logout-reason.type"; import { NotificationType } from "../../../enums"; import { NotificationResponse } from "../../../models/response/notification.response"; import { UserId } from "../../../types/guid"; diff --git a/libs/common/src/platform/notifications/internal/default-notifications.service.ts b/libs/common/src/platform/notifications/internal/default-notifications.service.ts index 40c93f8f22a..a460f079fab 100644 --- a/libs/common/src/platform/notifications/internal/default-notifications.service.ts +++ b/libs/common/src/platform/notifications/internal/default-notifications.service.ts @@ -11,11 +11,10 @@ import { switchMap, } from "rxjs"; -import { LogoutReason } from "@bitwarden/auth/common"; - import { AccountService } from "../../../auth/abstractions/account.service"; import { AuthService } from "../../../auth/abstractions/auth.service"; import { AuthenticationStatus } from "../../../auth/enums/authentication-status"; +import { LogoutReason } from "../../../auth/types/logout-reason.type"; import { NotificationType } from "../../../enums"; import { NotificationResponse, diff --git a/libs/common/src/platform/sync/default-sync.service.spec.ts b/libs/common/src/platform/sync/default-sync.service.spec.ts index ded06c8be6b..6dcb2a7b4f0 100644 --- a/libs/common/src/platform/sync/default-sync.service.spec.ts +++ b/libs/common/src/platform/sync/default-sync.service.spec.ts @@ -2,11 +2,6 @@ import { mock, MockProxy } from "jest-mock-extended"; import { of } from "rxjs"; import { CollectionService } from "@bitwarden/admin-console/common"; -import { - LogoutReason, - UserDecryptionOptions, - UserDecryptionOptionsServiceAbstraction, -} from "@bitwarden/auth/common"; import { KeyService } from "@bitwarden/key-management"; import { Matrix } from "../../../spec/matrix"; @@ -18,7 +13,10 @@ import { Account, AccountService } from "../../auth/abstractions/account.service import { AuthService } from "../../auth/abstractions/auth.service"; import { AvatarService } from "../../auth/abstractions/avatar.service"; import { TokenService } from "../../auth/abstractions/token.service"; +import { UserDecryptionOptionsServiceAbstraction } from "../../auth/abstractions/user-decryption-options.service.abstraction"; import { AuthenticationStatus } from "../../auth/enums/authentication-status"; +import { UserDecryptionOptions } from "../../auth/models/domain/user-decryption-options"; +import { LogoutReason } from "../../auth/types/logout-reason.type"; import { DomainSettingsService } from "../../autofill/services/domain-settings.service"; import { BillingAccountProfileStateService } from "../../billing/abstractions"; import { KeyConnectorService } from "../../key-management/key-connector/abstractions/key-connector.service"; diff --git a/libs/common/src/platform/sync/default-sync.service.ts b/libs/common/src/platform/sync/default-sync.service.ts index faf54f11912..dec6e9dbe74 100644 --- a/libs/common/src/platform/sync/default-sync.service.ts +++ b/libs/common/src/platform/sync/default-sync.service.ts @@ -10,11 +10,9 @@ import { import { KeyService } from "@bitwarden/key-management"; // FIXME: remove `src` and fix import -// eslint-disable-next-line no-restricted-imports -import { UserDecryptionOptionsServiceAbstraction } from "../../../../auth/src/common/abstractions"; + // FIXME: remove `src` and fix import -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "../../../../auth/src/common/types"; + import { ApiService } from "../../abstractions/api.service"; import { InternalOrganizationServiceAbstraction } from "../../admin-console/abstractions/organization/organization.service.abstraction"; import { InternalPolicyService } from "../../admin-console/abstractions/policy/policy.service.abstraction"; @@ -28,8 +26,10 @@ import { AccountService } from "../../auth/abstractions/account.service"; import { AuthService } from "../../auth/abstractions/auth.service"; import { AvatarService } from "../../auth/abstractions/avatar.service"; import { TokenService } from "../../auth/abstractions/token.service"; +import { UserDecryptionOptionsServiceAbstraction } from "../../auth/abstractions/user-decryption-options.service.abstraction"; import { AuthenticationStatus } from "../../auth/enums/authentication-status"; import { ForceSetPasswordReason } from "../../auth/models/domain/force-set-password-reason"; +import { LogoutReason } from "../../auth/types/logout-reason.type"; import { DomainSettingsService } from "../../autofill/services/domain-settings.service"; import { BillingAccountProfileStateService } from "../../billing/abstractions"; import { KeyConnectorService } from "../../key-management/key-connector/abstractions/key-connector.service"; diff --git a/libs/common/src/services/api.service.spec.ts b/libs/common/src/services/api.service.spec.ts index eca6066b9b7..9d074f4dab7 100644 --- a/libs/common/src/services/api.service.spec.ts +++ b/libs/common/src/services/api.service.spec.ts @@ -1,9 +1,8 @@ import { mock, MockProxy } from "jest-mock-extended"; import { of } from "rxjs"; -import { LogoutReason } from "@bitwarden/auth/common"; - import { TokenService } from "../auth/abstractions/token.service"; +import { LogoutReason } from "../auth/types/logout-reason.type"; import { DeviceType } from "../enums"; import { VaultTimeoutSettingsService } from "../key-management/vault-timeout"; import { ErrorResponse } from "../models/response/error.response"; diff --git a/libs/common/src/services/api.service.ts b/libs/common/src/services/api.service.ts index 639daa7c658..8f9a640124f 100644 --- a/libs/common/src/services/api.service.ts +++ b/libs/common/src/services/api.service.ts @@ -8,7 +8,6 @@ import { CollectionRequest, CollectionResponse, } from "@bitwarden/admin-console/common"; -import { LogoutReason } from "@bitwarden/auth/common"; import { ApiService as ApiServiceAbstraction } from "../abstractions/api.service"; import { OrganizationConnectionType } from "../admin-console/enums"; @@ -85,6 +84,7 @@ import { TwoFactorWebAuthnResponse, } from "../auth/models/response/two-factor-web-authn.response"; import { TwoFactorYubiKeyResponse } from "../auth/models/response/two-factor-yubi-key.response"; +import { LogoutReason } from "../auth/types/logout-reason.type"; import { BitPayInvoiceRequest } from "../billing/models/request/bit-pay-invoice.request"; import { PaymentRequest } from "../billing/models/request/payment.request"; import { TaxInfoUpdateRequest } from "../billing/models/request/tax-info-update.request"; diff --git a/libs/key-management/src/key.service.spec.ts b/libs/key-management/src/key.service.spec.ts index 25d8aff99fb..8c8177ef3e9 100644 --- a/libs/key-management/src/key.service.spec.ts +++ b/libs/key-management/src/key.service.spec.ts @@ -1,8 +1,8 @@ import { mock } from "jest-mock-extended"; import { BehaviorSubject, bufferCount, firstValueFrom, lastValueFrom, of, take, tap } from "rxjs"; -import { PinServiceAbstraction } from "@bitwarden/auth/common"; import { EncryptedOrganizationKeyData } from "@bitwarden/common/admin-console/models/data/encrypted-organization-key.data"; +import { PinServiceAbstraction } from "@bitwarden/common/auth/abstractions/pin.service.abstraction"; import { CryptoFunctionService } from "@bitwarden/common/key-management/crypto/abstractions/crypto-function.service"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; import { FakeMasterPasswordService } from "@bitwarden/common/key-management/master-password/services/fake-master-password.service"; diff --git a/libs/key-management/src/key.service.ts b/libs/key-management/src/key.service.ts index 849b9db6a50..e183bcbb0c1 100644 --- a/libs/key-management/src/key.service.ts +++ b/libs/key-management/src/key.service.ts @@ -10,13 +10,13 @@ import { switchMap, } from "rxjs"; -import { PinServiceAbstraction } from "@bitwarden/auth/common"; import { EncryptedOrganizationKeyData } from "@bitwarden/common/admin-console/models/data/encrypted-organization-key.data"; import { BaseEncryptedOrganizationKey } from "@bitwarden/common/admin-console/models/domain/encrypted-organization-key"; import { ProfileOrganizationResponse } from "@bitwarden/common/admin-console/models/response/profile-organization.response"; import { ProfileProviderOrganizationResponse } from "@bitwarden/common/admin-console/models/response/profile-provider-organization.response"; import { ProfileProviderResponse } from "@bitwarden/common/admin-console/models/response/profile-provider.response"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { PinServiceAbstraction } from "@bitwarden/common/auth/abstractions/pin.service.abstraction"; import { CryptoFunctionService } from "@bitwarden/common/key-management/crypto/abstractions/crypto-function.service"; import { EncryptService } from "@bitwarden/common/key-management/crypto/abstractions/encrypt.service"; import { InternalMasterPasswordServiceAbstraction } from "@bitwarden/common/key-management/master-password/abstractions/master-password.service.abstraction"; @@ -256,8 +256,7 @@ export class DefaultKeyService implements KeyServiceAbstraction { this.stateService.setUserKeyAutoUnlock(null, { userId: userId }); } if (keySuffix === KeySuffixOptions.Pin && userId != null) { - // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling. - this.pinService.clearPinKeyEncryptedUserKeyEphemeral(userId); + await this.pinService.clearPinKeyEncryptedUserKeyEphemeral(userId); } }