diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 38a1597848e..34bbf51936c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -18,6 +18,7 @@ apps/cli/src/auth @bitwarden/team-auth-dev apps/desktop/src/auth @bitwarden/team-auth-dev apps/web/src/app/auth @bitwarden/team-auth-dev libs/auth @bitwarden/team-auth-dev +libs/logout @bitwarden/team-auth-dev # web connectors used for auth apps/web/src/connectors @bitwarden/team-auth-dev bitwarden_license/bit-web/src/app/auth @bitwarden/team-auth-dev diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index a724f857cd1..73a93ecced9 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -11,7 +11,6 @@ import { DefaultLockService, InternalUserDecryptionOptionsServiceAbstraction, LoginEmailServiceAbstraction, - LogoutReason, PinService, PinServiceAbstraction, UserDecryptionOptionsService, @@ -228,6 +227,7 @@ import { KdfConfigService, KeyService as KeyServiceAbstraction, } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { BackgroundSyncService } from "@bitwarden/platform/background-sync"; import { IndividualVaultExportService, diff --git a/apps/browser/src/popup/app.component.ts b/apps/browser/src/popup/app.component.ts index 5f7fbc1fad7..dbe3c197732 100644 --- a/apps/browser/src/popup/app.component.ts +++ b/apps/browser/src/popup/app.component.ts @@ -6,7 +6,6 @@ import { NavigationEnd, Router, RouterOutlet } from "@angular/router"; import { Subject, takeUntil, firstValueFrom, concatMap, filter, tap } from "rxjs"; import { DeviceTrustToastService } from "@bitwarden/angular/auth/services/device-trust-toast.service.abstraction"; -import { LogoutReason } from "@bitwarden/auth/common"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service"; import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status"; @@ -24,6 +23,7 @@ import { ToastService, } from "@bitwarden/components"; import { BiometricsService, BiometricStateService } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { PopupCompactModeService } from "../platform/popup/layout/popup-compact-mode.service"; import { PopupSizeService } from "../platform/popup/layout/popup-size.service"; diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index 77ac783ac9f..0566f27da3b 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -27,7 +27,7 @@ import { DeviceTrustToastService } from "@bitwarden/angular/auth/services/device import { ModalRef } from "@bitwarden/angular/components/modal/modal.ref"; import { ModalService } from "@bitwarden/angular/services/modal.service"; import { FingerprintDialogComponent, LoginApprovalComponent } from "@bitwarden/auth/angular"; -import { DESKTOP_SSO_CALLBACK, LogoutReason } from "@bitwarden/auth/common"; +import { DESKTOP_SSO_CALLBACK } from "@bitwarden/auth/common"; import { EventUploadService } from "@bitwarden/common/abstractions/event/event-upload.service"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; @@ -65,6 +65,7 @@ import { CipherType } from "@bitwarden/common/vault/enums"; import { DialogRef, DialogService, ToastOptions, ToastService } from "@bitwarden/components"; import { CredentialGeneratorHistoryDialogComponent } from "@bitwarden/generator-components"; import { KeyService, BiometricStateService } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { AddEditFolderDialogComponent, AddEditFolderDialogResult } from "@bitwarden/vault"; import { DeleteAccountComponent } from "../auth/delete-account.component"; diff --git a/libs/angular/src/services/injection-tokens.ts b/libs/angular/src/services/injection-tokens.ts index 4c29abe680a..136b32f2445 100644 --- a/libs/angular/src/services/injection-tokens.ts +++ b/libs/angular/src/services/injection-tokens.ts @@ -3,8 +3,7 @@ import { Observable, Subject } from "rxjs"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; + import { ClientType } from "@bitwarden/common/enums"; import { VaultTimeout } from "@bitwarden/common/key-management/vault-timeout"; import { RegionConfig } from "@bitwarden/common/platform/abstractions/environment.service"; @@ -16,6 +15,7 @@ import { Theme } from "@bitwarden/common/platform/enums"; import { StateFactory } from "@bitwarden/common/platform/factories/state-factory"; import { Message } from "@bitwarden/common/platform/messaging"; import { HttpOperations } from "@bitwarden/common/services/api.service"; +import { LogoutReason } from "@bitwarden/logout"; import { SafeInjectionToken } from "@bitwarden/ui-common"; // Re-export the SafeInjectionToken from ui-common export { SafeInjectionToken } from "@bitwarden/ui-common"; diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts index 08bcaa2165c..f8168f97d17 100644 --- a/libs/angular/src/services/jslib-services.module.ts +++ b/libs/angular/src/services/jslib-services.module.ts @@ -49,7 +49,6 @@ import { LoginStrategyService, LoginStrategyServiceAbstraction, LoginSuccessHandlerService, - LogoutReason, PinService, PinServiceAbstraction, UserDecryptionOptionsService, @@ -321,6 +320,7 @@ import { UserAsymmetricKeysRegenerationApiService, UserAsymmetricKeysRegenerationService, } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { SafeInjectionToken } from "@bitwarden/ui-common"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports diff --git a/libs/auth/src/common/index.ts b/libs/auth/src/common/index.ts index 97909bdc449..9fe9ff8fe33 100644 --- a/libs/auth/src/common/index.ts +++ b/libs/auth/src/common/index.ts @@ -3,7 +3,6 @@ */ export * from "./abstractions"; export * from "./models"; -export * from "./types"; export * from "./services"; export * from "./utilities"; export * from "./login-strategies"; diff --git a/libs/common/src/auth/services/token.service.spec.ts b/libs/common/src/auth/services/token.service.spec.ts index e67e522368f..1c51c926bb5 100644 --- a/libs/common/src/auth/services/token.service.spec.ts +++ b/libs/common/src/auth/services/token.service.spec.ts @@ -4,8 +4,8 @@ import { MockProxy, mock } from "jest-mock-extended"; import { firstValueFrom } from "rxjs"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; + +import { LogoutReason } from "@bitwarden/logout"; import { FakeSingleUserStateProvider, FakeGlobalStateProvider } from "../../../spec"; import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; diff --git a/libs/common/src/auth/services/token.service.ts b/libs/common/src/auth/services/token.service.ts index 2c6883272c3..1b2f0cf200d 100644 --- a/libs/common/src/auth/services/token.service.ts +++ b/libs/common/src/auth/services/token.service.ts @@ -5,7 +5,8 @@ import { Opaque } from "type-fest"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports -import { LogoutReason, decodeJwtTokenToJson } from "@bitwarden/auth/common"; +import { decodeJwtTokenToJson } from "@bitwarden/auth/common"; +import { LogoutReason } from "@bitwarden/logout"; import { EncryptService } from "../../key-management/crypto/abstractions/encrypt.service"; import { 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 905bc42defe..c924e809c37 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 @@ -3,8 +3,7 @@ import { combineLatest, filter, firstValueFrom, Observable, of, switchMap } from "rxjs"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; + import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports @@ -15,6 +14,7 @@ import { KeyService, KdfType, } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { ApiService } from "../../../abstractions/api.service"; import { OrganizationService } from "../../../admin-console/abstractions/organization/organization.service.abstraction"; 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 b17e85ca9c4..0e3ddbe76f3 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 @@ -8,10 +8,8 @@ import { BehaviorSubject, from, of } from "rxjs"; import { CollectionService } from "@bitwarden/admin-console/common"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; -// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports import { BiometricsService } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { FakeAccountService, mockAccountServiceWith } from "../../../../spec"; import { SearchService } from "../../../abstractions/search.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 131f826fd33..356aa308907 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 @@ -7,10 +7,8 @@ import { combineLatest, concatMap, filter, firstValueFrom, map, timeout } from " import { CollectionService } from "@bitwarden/admin-console/common"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; -// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports import { BiometricsService } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { SearchService } from "../../../abstractions/search.service"; import { AccountService } from "../../../auth/abstractions/account.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 9dca079bdba..da1d0a4f9d7 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 @@ -2,8 +2,8 @@ import { mock, MockProxy } from "jest-mock-extended"; import { BehaviorSubject, bufferCount, firstValueFrom, ObservedValueOf, Subject } from "rxjs"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; + +import { LogoutReason } from "@bitwarden/logout"; import { awaitAsync } from "../../../../spec"; import { Matrix } from "../../../../spec/matrix"; 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 4cbc8227364..e024de1fa67 100644 --- a/libs/common/src/platform/notifications/internal/default-notifications.service.ts +++ b/libs/common/src/platform/notifications/internal/default-notifications.service.ts @@ -12,8 +12,8 @@ import { } from "rxjs"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; + +import { LogoutReason } from "@bitwarden/logout"; import { AccountService } from "../../../auth/abstractions/account.service"; import { AuthService } from "../../../auth/abstractions/auth.service"; 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 fc6b9481bd5..b1e014ee119 100644 --- a/libs/common/src/platform/sync/default-sync.service.spec.ts +++ b/libs/common/src/platform/sync/default-sync.service.spec.ts @@ -7,13 +7,13 @@ import { CollectionService } from "@bitwarden/admin-console/common"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports import { - LogoutReason, UserDecryptionOptions, UserDecryptionOptionsServiceAbstraction, } from "@bitwarden/auth/common"; // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports import { KeyService } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; import { Matrix } from "../../../spec/matrix"; import { ApiService } from "../../abstractions/api.service"; diff --git a/libs/common/src/platform/sync/default-sync.service.ts b/libs/common/src/platform/sync/default-sync.service.ts index 47ac3784c33..43ea071c362 100644 --- a/libs/common/src/platform/sync/default-sync.service.ts +++ b/libs/common/src/platform/sync/default-sync.service.ts @@ -12,13 +12,11 @@ import { // This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. // eslint-disable-next-line no-restricted-imports import { KeyService } from "@bitwarden/key-management"; +import { LogoutReason } from "@bitwarden/logout"; // 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"; diff --git a/libs/common/src/services/api.service.spec.ts b/libs/common/src/services/api.service.spec.ts index fffe0478254..cfec9d769e5 100644 --- a/libs/common/src/services/api.service.spec.ts +++ b/libs/common/src/services/api.service.spec.ts @@ -1,9 +1,7 @@ import { mock, MockProxy } from "jest-mock-extended"; import { of } from "rxjs"; -// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; +import { LogoutReason } from "@bitwarden/logout"; import { TokenService } from "../auth/abstractions/token.service"; import { DeviceType } from "../enums"; diff --git a/libs/common/src/services/api.service.ts b/libs/common/src/services/api.service.ts index 95aea41e68b..644a9158632 100644 --- a/libs/common/src/services/api.service.ts +++ b/libs/common/src/services/api.service.ts @@ -10,9 +10,7 @@ import { CollectionRequest, CollectionResponse, } from "@bitwarden/admin-console/common"; -// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop. -// eslint-disable-next-line no-restricted-imports -import { LogoutReason } from "@bitwarden/auth/common"; +import { LogoutReason } from "@bitwarden/logout"; import { ApiService as ApiServiceAbstraction } from "../abstractions/api.service"; import { OrganizationConnectionType } from "../admin-console/enums"; diff --git a/libs/logout/package.json b/libs/logout/package.json new file mode 100644 index 00000000000..4e01551e342 --- /dev/null +++ b/libs/logout/package.json @@ -0,0 +1,20 @@ +{ + "name": "@bitwarden/logout", + "version": "0.0.0", + "description": "Services and models pertaining to logout", + "keywords": [ + "bitwarden" + ], + "author": "Bitwarden Inc.", + "homepage": "https://bitwarden.com", + "repository": { + "type": "git", + "url": "https://github.com/bitwarden/clients" + }, + "license": "GPL-3.0", + "scripts": { + "clean": "rimraf dist", + "build": "npm run clean && tsc", + "build:watch": "npm run clean && tsc -watch" + } +} diff --git a/libs/auth/src/common/types/index.ts b/libs/logout/src/index.ts similarity index 100% rename from libs/auth/src/common/types/index.ts rename to libs/logout/src/index.ts diff --git a/libs/auth/src/common/types/logout-reason.type.ts b/libs/logout/src/logout-reason.type.ts similarity index 100% rename from libs/auth/src/common/types/logout-reason.type.ts rename to libs/logout/src/logout-reason.type.ts diff --git a/libs/logout/tsconfig.json b/libs/logout/tsconfig.json new file mode 100644 index 00000000000..919c7bf77bf --- /dev/null +++ b/libs/logout/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base", + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/package-lock.json b/package-lock.json index 691705cc280..b14579f970b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -292,6 +292,11 @@ "version": "0.0.0", "license": "GPL-3.0" }, + "libs/logout": { + "name": "@bitwarden/logout", + "version": "0.0.0", + "license": "GPL-3.0" + }, "libs/node": { "name": "@bitwarden/node", "version": "0.0.0", @@ -5201,6 +5206,10 @@ "resolved": "libs/key-management-ui", "link": true }, + "node_modules/@bitwarden/logout": { + "resolved": "libs/logout", + "link": true + }, "node_modules/@bitwarden/node": { "resolved": "libs/node", "link": true diff --git a/tsconfig.base.json b/tsconfig.base.json index 68d158f18e4..39bd7643862 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -46,7 +46,8 @@ "@bitwarden/vault-export-core": ["./libs/tools/export/vault-export/vault-export-core/src"], "@bitwarden/vault-export-ui": ["./libs/tools/export/vault-export/vault-export-ui/src"], "@bitwarden/vault": ["./libs/vault/src"], - "@bitwarden/web-vault/*": ["./apps/web/src/*"] + "@bitwarden/web-vault/*": ["./apps/web/src/*"], + "@bitwarden/logout": ["./libs/logout/src"] }, "plugins": [ {