From 7571c766e0ac45f238d6e6b60175e68f964c7005 Mon Sep 17 00:00:00 2001 From: Will Martin Date: Wed, 14 Aug 2024 14:24:29 -0400 Subject: [PATCH] [PM-10813] add eslint rule to restrict imports from `apps` in `libs` (#10481) * restrict app imports in libs * add eslint ignore comments --- .eslintrc.json | 5 +++++ .../src/angular/anon-layout/anon-layout-wrapper.stories.ts | 2 ++ .../src/angular/input-password/input-password.stories.ts | 2 ++ .../registration-start/registration-start.stories.ts | 2 ++ .../services/fido2/fido2-active-request-manager.spec.ts | 2 ++ libs/tools/send/send-ui/src/send-form/send-form.stories.ts | 2 ++ libs/vault/src/cipher-form/cipher-form.stories.ts | 2 ++ 7 files changed, 17 insertions(+) diff --git a/.eslintrc.json b/.eslintrc.json index bbce098f65..3a4306c330 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -100,6 +100,11 @@ "error", { "zones": [ + { + "target": ["libs/**/*"], + "from": ["apps/**/*"], + "message": "Libs should not import app-specific code." + }, { // avoid specific frameworks or large dependencies in common "target": "./libs/common/**/*", diff --git a/libs/auth/src/angular/anon-layout/anon-layout-wrapper.stories.ts b/libs/auth/src/angular/anon-layout/anon-layout-wrapper.stories.ts index 7e6fda54a8..c05f491acd 100644 --- a/libs/auth/src/angular/anon-layout/anon-layout-wrapper.stories.ts +++ b/libs/auth/src/angular/anon-layout/anon-layout-wrapper.stories.ts @@ -19,6 +19,8 @@ import { ThemeType } from "@bitwarden/common/platform/enums"; import { ThemeStateService } from "@bitwarden/common/platform/theming/theme-state.service"; import { ButtonModule } from "@bitwarden/components"; +// FIXME: remove `/apps` import from `/libs` +// eslint-disable-next-line import/no-restricted-paths import { PreloadedEnglishI18nModule } from "../../../../../apps/web/src/app/core/tests"; import { LockIcon } from "../icons"; import { RegistrationCheckEmailIcon } from "../icons/registration-check-email.icon"; diff --git a/libs/auth/src/angular/input-password/input-password.stories.ts b/libs/auth/src/angular/input-password/input-password.stories.ts index 1d7459cd00..5b9805fde5 100644 --- a/libs/auth/src/angular/input-password/input-password.stories.ts +++ b/libs/auth/src/angular/input-password/input-password.stories.ts @@ -11,6 +11,8 @@ import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.se import { PasswordStrengthServiceAbstraction } from "@bitwarden/common/tools/password-strength"; import { DialogService, ToastService } from "@bitwarden/components"; +// FIXME: remove `/apps` import from `/libs` +// eslint-disable-next-line import/no-restricted-paths import { PreloadedEnglishI18nModule } from "../../../../../apps/web/src/app/core/tests"; import { InputPasswordComponent } from "./input-password.component"; diff --git a/libs/auth/src/angular/registration/registration-start/registration-start.stories.ts b/libs/auth/src/angular/registration/registration-start/registration-start.stories.ts index d0670dd10c..e4d016de49 100644 --- a/libs/auth/src/angular/registration/registration-start/registration-start.stories.ts +++ b/libs/auth/src/angular/registration/registration-start/registration-start.stories.ts @@ -27,6 +27,8 @@ import { TypographyModule, } from "@bitwarden/components"; +// FIXME: remove `/apps` import from `/libs` +// eslint-disable-next-line import/no-restricted-paths import { PreloadedEnglishI18nModule } from "../../../../../../apps/web/src/app/core/tests"; import { RegistrationStartComponent } from "./registration-start.component"; diff --git a/libs/common/src/platform/services/fido2/fido2-active-request-manager.spec.ts b/libs/common/src/platform/services/fido2/fido2-active-request-manager.spec.ts index 77f9bd3f9c..ce9426b4db 100644 --- a/libs/common/src/platform/services/fido2/fido2-active-request-manager.spec.ts +++ b/libs/common/src/platform/services/fido2/fido2-active-request-manager.spec.ts @@ -1,6 +1,8 @@ import { mock } from "jest-mock-extended"; import { firstValueFrom, Observable } from "rxjs"; +// FIXME: remove `/apps` import from `/libs` +// eslint-disable-next-line import/no-restricted-paths import { flushPromises } from "@bitwarden/browser/src/autofill/spec/testing-utils"; import { Fido2CredentialView } from "../../../vault/models/view/fido2-credential.view"; diff --git a/libs/tools/send/send-ui/src/send-form/send-form.stories.ts b/libs/tools/send/send-ui/src/send-form/send-form.stories.ts index 044b26577e..2c47bd6262 100644 --- a/libs/tools/send/send-ui/src/send-form/send-form.stories.ts +++ b/libs/tools/send/send-ui/src/send-form/send-form.stories.ts @@ -13,6 +13,8 @@ import { Send } from "@bitwarden/common/tools/send/models/domain/send"; import { SendView } from "@bitwarden/common/tools/send/models/view/send.view"; import { AsyncActionsModule, ButtonModule, ToastService } from "@bitwarden/components"; import { SendFormConfig } from "@bitwarden/send-ui"; +// FIXME: remove `/apps` import from `/libs` +// eslint-disable-next-line import/no-restricted-paths import { PreloadedEnglishI18nModule } from "@bitwarden/web-vault/src/app/core/tests"; import { SendFormService } from "./abstractions/send-form.service"; diff --git a/libs/vault/src/cipher-form/cipher-form.stories.ts b/libs/vault/src/cipher-form/cipher-form.stories.ts index b29bf8c781..c78bd30873 100644 --- a/libs/vault/src/cipher-form/cipher-form.stories.ts +++ b/libs/vault/src/cipher-form/cipher-form.stories.ts @@ -26,6 +26,8 @@ import { CipherFormGenerationService, PasswordRepromptService, } from "@bitwarden/vault"; +// FIXME: remove `/apps` import from `/libs` +// eslint-disable-next-line import/no-restricted-paths import { PreloadedEnglishI18nModule } from "@bitwarden/web-vault/src/app/core/tests"; import { CipherFormService } from "./abstractions/cipher-form.service";