From 83c4438efe7ebe2d5bccc37ecd02fa15e8f88df3 Mon Sep 17 00:00:00 2001 From: Nick Krantz <125900171+nick-livefront@users.noreply.github.com> Date: Mon, 19 May 2025 15:21:14 -0500 Subject: [PATCH] Refactor: Move `NudgesService` to `libs/angular/vault` (#14843) * move NudgesService to libs/angular/vault to avoid circular dependencies * remove fix for spotlight component in storybook --- .../src/autofill/popup/settings/autofill.component.ts | 3 ++- apps/browser/src/popup/tabs-v2.component.ts | 2 +- .../src/tools/popup/settings/settings-v2.component.ts | 2 +- .../popup/components/vault-v2/vault-v2.component.ts | 9 ++------- .../vault/popup/settings/download-bitwarden.component.ts | 2 +- libs/angular/src/vault/index.ts | 3 +++ .../custom-nudges-services/autofill-nudge.service.ts | 0 .../download-bitwarden-nudge.service.ts | 0 .../custom-nudges-services/empty-vault-nudge.service.ts | 0 .../custom-nudges-services/has-items-nudge.service.ts | 0 .../src/vault}/services/custom-nudges-services/index.ts | 0 .../custom-nudges-services/new-item-nudge.service.ts | 0 .../src/vault}/services/default-single-nudge.service.ts | 0 .../src/vault}/services/nudges.service.spec.ts | 2 +- .../src => angular/src/vault}/services/nudges.service.ts | 0 libs/vault/src/cipher-form/cipher-form.stories.ts | 3 +-- .../new-item-nudge/new-item-nudge.component.spec.ts | 3 +-- .../new-item-nudge/new-item-nudge.component.ts | 2 +- libs/vault/src/index.ts | 2 -- 19 files changed, 14 insertions(+), 19 deletions(-) create mode 100644 libs/angular/src/vault/index.ts rename libs/{vault/src => angular/src/vault}/services/custom-nudges-services/autofill-nudge.service.ts (100%) rename libs/{vault/src => angular/src/vault}/services/custom-nudges-services/download-bitwarden-nudge.service.ts (100%) rename libs/{vault/src => angular/src/vault}/services/custom-nudges-services/empty-vault-nudge.service.ts (100%) rename libs/{vault/src => angular/src/vault}/services/custom-nudges-services/has-items-nudge.service.ts (100%) rename libs/{vault/src => angular/src/vault}/services/custom-nudges-services/index.ts (100%) rename libs/{vault/src => angular/src/vault}/services/custom-nudges-services/new-item-nudge.service.ts (100%) rename libs/{vault/src => angular/src/vault}/services/default-single-nudge.service.ts (100%) rename libs/{vault/src => angular/src/vault}/services/nudges.service.spec.ts (99%) rename libs/{vault/src => angular/src/vault}/services/nudges.service.ts (100%) diff --git a/apps/browser/src/autofill/popup/settings/autofill.component.ts b/apps/browser/src/autofill/popup/settings/autofill.component.ts index 2d29067cf0f..0605f5a03a6 100644 --- a/apps/browser/src/autofill/popup/settings/autofill.component.ts +++ b/apps/browser/src/autofill/popup/settings/autofill.component.ts @@ -14,6 +14,7 @@ import { RouterModule } from "@angular/router"; import { filter, firstValueFrom, Observable, switchMap } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { NudgesService, NudgeType } from "@bitwarden/angular/vault"; import { Account, AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { getUserId } from "@bitwarden/common/auth/services/account.service"; import { @@ -55,7 +56,7 @@ import { SelectModule, TypographyModule, } from "@bitwarden/components"; -import { NudgesService, NudgeType, SpotlightComponent } from "@bitwarden/vault"; +import { SpotlightComponent } from "@bitwarden/vault"; import { AutofillBrowserSettingsService } from "../../../autofill/services/autofill-browser-settings.service"; import { BrowserApi } from "../../../platform/browser/browser-api"; diff --git a/apps/browser/src/popup/tabs-v2.component.ts b/apps/browser/src/popup/tabs-v2.component.ts index 0ca763d510d..54aa4a5544d 100644 --- a/apps/browser/src/popup/tabs-v2.component.ts +++ b/apps/browser/src/popup/tabs-v2.component.ts @@ -1,12 +1,12 @@ import { Component } from "@angular/core"; import { combineLatest, map, Observable, switchMap } from "rxjs"; +import { NudgesService } from "@bitwarden/angular/vault"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { getUserId } from "@bitwarden/common/auth/services/account.service"; import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { Icons } from "@bitwarden/components"; -import { NudgesService } from "@bitwarden/vault"; import { NavButton } from "../platform/popup/layout/popup-tab-navigation.component"; diff --git a/apps/browser/src/tools/popup/settings/settings-v2.component.ts b/apps/browser/src/tools/popup/settings/settings-v2.component.ts index 211be82c9ed..51dea0b3909 100644 --- a/apps/browser/src/tools/popup/settings/settings-v2.component.ts +++ b/apps/browser/src/tools/popup/settings/settings-v2.component.ts @@ -12,12 +12,12 @@ import { } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { NudgesService, NudgeType } from "@bitwarden/angular/vault"; import { Account, AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { UserId } from "@bitwarden/common/types/guid"; import { BadgeComponent, ItemModule } from "@bitwarden/components"; -import { NudgesService, NudgeType } from "@bitwarden/vault"; import { CurrentAccountComponent } from "../../../auth/popup/account-switching/current-account.component"; import { AutofillBrowserSettingsService } from "../../../autofill/services/autofill-browser-settings.service"; diff --git a/apps/browser/src/vault/popup/components/vault-v2/vault-v2.component.ts b/apps/browser/src/vault/popup/components/vault-v2/vault-v2.component.ts index 8dc4c639574..474524cf883 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/vault-v2.component.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/vault-v2.component.ts @@ -16,6 +16,7 @@ import { } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { NudgesService, NudgeType } from "@bitwarden/angular/vault"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { getUserId } from "@bitwarden/common/auth/services/account.service"; import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; @@ -30,13 +31,7 @@ import { NoItemsModule, TypographyModule, } from "@bitwarden/components"; -import { - DecryptionFailureDialogComponent, - NudgesService, - NudgeType, - SpotlightComponent, - VaultIcons, -} from "@bitwarden/vault"; +import { DecryptionFailureDialogComponent, SpotlightComponent, VaultIcons } from "@bitwarden/vault"; import { CurrentAccountComponent } from "../../../../auth/popup/account-switching/current-account.component"; import { BrowserApi } from "../../../../platform/browser/browser-api"; diff --git a/apps/browser/src/vault/popup/settings/download-bitwarden.component.ts b/apps/browser/src/vault/popup/settings/download-bitwarden.component.ts index a79aa1d3f14..fa7efa87bda 100644 --- a/apps/browser/src/vault/popup/settings/download-bitwarden.component.ts +++ b/apps/browser/src/vault/popup/settings/download-bitwarden.component.ts @@ -4,10 +4,10 @@ import { RouterModule } from "@angular/router"; import { firstValueFrom } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { NudgesService, NudgeType } from "@bitwarden/angular/vault"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { getUserId } from "@bitwarden/common/auth/services/account.service"; import { CardComponent, LinkModule, TypographyModule } from "@bitwarden/components"; -import { NudgesService, NudgeType } from "@bitwarden/vault"; import { CurrentAccountComponent } from "../../../auth/popup/account-switching/current-account.component"; import { PopOutComponent } from "../../../platform/popup/components/pop-out.component"; diff --git a/libs/angular/src/vault/index.ts b/libs/angular/src/vault/index.ts new file mode 100644 index 00000000000..cb43fadb3bc --- /dev/null +++ b/libs/angular/src/vault/index.ts @@ -0,0 +1,3 @@ +// Note: Nudge related code is exported from `libs/angular` because it is consumed by multiple +// `libs/*` packages. Exporting from the `libs/vault` package creates circular dependencies. +export { NudgesService, NudgeStatus, NudgeType } from "./services/nudges.service"; diff --git a/libs/vault/src/services/custom-nudges-services/autofill-nudge.service.ts b/libs/angular/src/vault/services/custom-nudges-services/autofill-nudge.service.ts similarity index 100% rename from libs/vault/src/services/custom-nudges-services/autofill-nudge.service.ts rename to libs/angular/src/vault/services/custom-nudges-services/autofill-nudge.service.ts diff --git a/libs/vault/src/services/custom-nudges-services/download-bitwarden-nudge.service.ts b/libs/angular/src/vault/services/custom-nudges-services/download-bitwarden-nudge.service.ts similarity index 100% rename from libs/vault/src/services/custom-nudges-services/download-bitwarden-nudge.service.ts rename to libs/angular/src/vault/services/custom-nudges-services/download-bitwarden-nudge.service.ts diff --git a/libs/vault/src/services/custom-nudges-services/empty-vault-nudge.service.ts b/libs/angular/src/vault/services/custom-nudges-services/empty-vault-nudge.service.ts similarity index 100% rename from libs/vault/src/services/custom-nudges-services/empty-vault-nudge.service.ts rename to libs/angular/src/vault/services/custom-nudges-services/empty-vault-nudge.service.ts diff --git a/libs/vault/src/services/custom-nudges-services/has-items-nudge.service.ts b/libs/angular/src/vault/services/custom-nudges-services/has-items-nudge.service.ts similarity index 100% rename from libs/vault/src/services/custom-nudges-services/has-items-nudge.service.ts rename to libs/angular/src/vault/services/custom-nudges-services/has-items-nudge.service.ts diff --git a/libs/vault/src/services/custom-nudges-services/index.ts b/libs/angular/src/vault/services/custom-nudges-services/index.ts similarity index 100% rename from libs/vault/src/services/custom-nudges-services/index.ts rename to libs/angular/src/vault/services/custom-nudges-services/index.ts diff --git a/libs/vault/src/services/custom-nudges-services/new-item-nudge.service.ts b/libs/angular/src/vault/services/custom-nudges-services/new-item-nudge.service.ts similarity index 100% rename from libs/vault/src/services/custom-nudges-services/new-item-nudge.service.ts rename to libs/angular/src/vault/services/custom-nudges-services/new-item-nudge.service.ts diff --git a/libs/vault/src/services/default-single-nudge.service.ts b/libs/angular/src/vault/services/default-single-nudge.service.ts similarity index 100% rename from libs/vault/src/services/default-single-nudge.service.ts rename to libs/angular/src/vault/services/default-single-nudge.service.ts diff --git a/libs/vault/src/services/nudges.service.spec.ts b/libs/angular/src/vault/services/nudges.service.spec.ts similarity index 99% rename from libs/vault/src/services/nudges.service.spec.ts rename to libs/angular/src/vault/services/nudges.service.spec.ts index 897a5befa2a..4eee349cf10 100644 --- a/libs/vault/src/services/nudges.service.spec.ts +++ b/libs/angular/src/vault/services/nudges.service.spec.ts @@ -10,7 +10,7 @@ import { StateProvider } from "@bitwarden/common/platform/state"; import { UserId } from "@bitwarden/common/types/guid"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; -import { FakeStateProvider, mockAccountServiceWith } from "../../../common/spec"; +import { FakeStateProvider, mockAccountServiceWith } from "../../../../../libs/common/spec"; import { HasItemsNudgeService, diff --git a/libs/vault/src/services/nudges.service.ts b/libs/angular/src/vault/services/nudges.service.ts similarity index 100% rename from libs/vault/src/services/nudges.service.ts rename to libs/angular/src/vault/services/nudges.service.ts diff --git a/libs/vault/src/cipher-form/cipher-form.stories.ts b/libs/vault/src/cipher-form/cipher-form.stories.ts index 137b220014a..c5256c841d9 100644 --- a/libs/vault/src/cipher-form/cipher-form.stories.ts +++ b/libs/vault/src/cipher-form/cipher-form.stories.ts @@ -14,6 +14,7 @@ import { BehaviorSubject } from "rxjs"; import { CollectionView } from "@bitwarden/admin-console/common"; import { ViewCacheService } from "@bitwarden/angular/platform/view-cache"; +import { NudgeStatus, NudgesService } from "@bitwarden/angular/vault"; import { AuditService } from "@bitwarden/common/abstractions/audit.service"; import { EventCollectionService } from "@bitwarden/common/abstractions/event/event-collection.service"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; @@ -34,9 +35,7 @@ import { AsyncActionsModule, ButtonModule, ItemModule, ToastService } from "@bit import { CipherFormConfig, CipherFormGenerationService, - NudgeStatus, PasswordRepromptService, - NudgesService, } from "@bitwarden/vault"; // FIXME: remove `/apps` import from `/libs` // FIXME: remove `src` and fix import diff --git a/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.spec.ts b/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.spec.ts index 4d5bb49c337..0cc23456b4c 100644 --- a/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.spec.ts +++ b/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.spec.ts @@ -3,13 +3,12 @@ import { ComponentFixture, TestBed } from "@angular/core/testing"; import { mock, MockProxy } from "jest-mock-extended"; import { of } from "rxjs"; +import { NudgesService, NudgeType } from "@bitwarden/angular/vault"; import { AccountService, Account } from "@bitwarden/common/auth/abstractions/account.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { UserId } from "@bitwarden/common/types/guid"; import { CipherType } from "@bitwarden/sdk-internal"; -import { NudgesService, NudgeType } from "../../../services/nudges.service"; - import { NewItemNudgeComponent } from "./new-item-nudge.component"; describe("NewItemNudgeComponent", () => { diff --git a/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.ts b/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.ts index 9657b7571c5..6781cafcbb2 100644 --- a/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.ts +++ b/libs/vault/src/cipher-form/components/new-item-nudge/new-item-nudge.component.ts @@ -2,6 +2,7 @@ import { NgIf } from "@angular/common"; import { Component, Input, OnInit } from "@angular/core"; import { firstValueFrom } from "rxjs"; +import { NudgesService, NudgeType } from "@bitwarden/angular/vault"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { getUserId } from "@bitwarden/common/auth/services/account.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; @@ -9,7 +10,6 @@ import { UserId } from "@bitwarden/common/types/guid"; import { CipherType } from "@bitwarden/sdk-internal"; import { SpotlightComponent } from "../../../components/spotlight/spotlight.component"; -import { NudgesService, NudgeType } from "../../../services/nudges.service"; @Component({ selector: "vault-new-item-nudge", diff --git a/libs/vault/src/index.ts b/libs/vault/src/index.ts index b344a30836a..9d19e4c239d 100644 --- a/libs/vault/src/index.ts +++ b/libs/vault/src/index.ts @@ -21,8 +21,6 @@ export * from "./components/add-edit-folder-dialog/add-edit-folder-dialog.compon export * from "./components/carousel"; export * as VaultIcons from "./icons"; -export * from "./services/nudges.service"; -export * from "./services/custom-nudges-services"; export { DefaultSshImportPromptService } from "./services/default-ssh-import-prompt.service"; export { SshImportPromptService } from "./services/ssh-import-prompt.service";