1
0
mirror of https://github.com/bitwarden/browser.git synced 2025-02-18 01:41:27 +01:00

[PM-16872] Update libs to use explicit dependencies (#12770)

Update all libs to use explicit dependencies rather than relying on tsconfig.libs.json. This allows us to more easily understand the dependencies between libs and prevent users from accidentally adding new dependencies.

We still use tsconfig.libs (now renamed tsconfig.spec) for tests.
This commit is contained in:
Oscar Hinton 2025-01-10 11:21:38 +01:00 committed by GitHub
parent 138e07eaf7
commit 653b730969
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
43 changed files with 308 additions and 45 deletions

View File

@ -1,5 +1,5 @@
{
"extends": "../../libs/shared/tsconfig.libs",
"extends": "../../libs/shared/tsconfig",
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"],
"compilerOptions": {

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../../libs/shared/jest.config.angular");

View File

@ -1,5 +1,13 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/key-management": ["../key-management/src"]
}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../../libs/shared/jest.config.angular");

View File

@ -1,5 +1,25 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/angular/*": ["../angular/src/*"],
"@bitwarden/auth/angular": ["../auth/src/angular"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/components": ["../components/src"],
"@bitwarden/generator-components": ["../tools/generator/components/src"],
"@bitwarden/generator-core": ["../tools/generator/core/src"],
"@bitwarden/generator-history": ["../tools/generator/extensions/history/src"],
"@bitwarden/generator-legacy": ["../tools/generator/extensions/legacy/src"],
"@bitwarden/generator-navigation": ["../tools/generator/extensions/navigation/src"],
"@bitwarden/importer/core": ["../importer/src"],
"@bitwarden/key-management": ["../key-management/src"],
"@bitwarden/platform": ["../platform/src"],
"@bitwarden/vault-export-core": ["../tools/export/vault-export/vault-export-core/src"],
"@bitwarden/vault": ["../vault/src"]
}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../../libs/shared/jest.config.angular");

View File

@ -1,5 +1,22 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"resolveJsonModule": true,
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/auth/angular": ["../auth/src/angular"],
"@bitwarden/angular/*": ["../angular/src/*"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/components": ["../components/src"],
"@bitwarden/key-management": ["../key-management/src"],
"@bitwarden/platform": ["../platform/src"],
"@bitwarden/generator-core": ["../tools/generator/core/src"],
"@bitwarden/generator-history": ["../tools/generator/extensions/history/src"],
"@bitwarden/generator-legacy": ["../tools/generator/extensions/legacy/src"],
"@bitwarden/generator-navigation": ["../tools/generator/extensions/navigation/src"]
}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../../libs/shared/jest.config.angular");

View File

@ -1,5 +1,6 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../shared/jest.config.ts");

View File

@ -1,5 +1,15 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/components": ["../components/src"],
"@bitwarden/key-management": ["../key-management/src"],
"@bitwarden/platform": ["../platform/src"]
}
},
"include": ["src", "spec", "./custom-matchers.d.ts", "../key-management/src/index.ts"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,4 +1,7 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
import { TextFieldModule } from "@angular/cdk/text-field";
import { Directive, ElementRef, Input, OnInit, Renderer2 } from "@angular/core";
import {
AbstractControl,
UntypedFormBuilder,
@ -10,7 +13,6 @@ import {
} from "@angular/forms";
import { Meta, StoryObj, moduleMetadata } from "@storybook/angular";
import { A11yTitleDirective } from "@bitwarden/angular/src/directives/a11y-title.directive";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { AsyncActionsModule } from "../async-actions";
@ -29,6 +31,41 @@ import { I18nMockService } from "../utils/i18n-mock.service";
import { BitFormFieldComponent } from "./form-field.component";
import { FormFieldModule } from "./form-field.module";
// TOOD: This solves a circular dependency between components and angular.
@Directive({
selector: "[appA11yTitle]",
})
export class A11yTitleDirective implements OnInit {
@Input() set appA11yTitle(title: string) {
this.title = title;
this.setAttributes();
}
private title: string;
private originalTitle: string | null;
private originalAriaLabel: string | null;
constructor(
private el: ElementRef,
private renderer: Renderer2,
) {}
ngOnInit() {
this.originalTitle = this.el.nativeElement.getAttribute("title");
this.originalAriaLabel = this.el.nativeElement.getAttribute("aria-label");
this.setAttributes();
}
private setAttributes() {
if (this.originalTitle === null) {
this.renderer.setAttribute(this.el.nativeElement, "title", this.title);
}
if (this.originalAriaLabel === null) {
this.renderer.setAttribute(this.el.nativeElement, "aria-label", this.title);
}
}
}
export default {
title: "Component Library/Form/Field",
component: BitFormFieldComponent,

View File

@ -20,7 +20,6 @@
"lib": ["es2020", "dom"],
"paths": {
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/angular/*": ["../angular/src/*"],
"@bitwarden/platform": ["../platform/src"]
},
"plugins": [

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../shared/jest.config.ts");

View File

@ -1,5 +1,21 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/angular/*": ["../angular/src/*"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/components": ["../components/src"],
"@bitwarden/generator-core": ["../tools/generator/core/src"],
"@bitwarden/generator-history": ["../tools/generator/extensions/history/src"],
"@bitwarden/generator-legacy": ["../tools/generator/extensions/legacy/src"],
"@bitwarden/generator-navigation": ["../tools/generator/extensions/navigation/src"],
"@bitwarden/key-management": ["../key-management/src"],
"@bitwarden/platform": ["../platform/src"],
"@bitwarden/vault-export-core": ["../tools/export/vault-export/vault-export-core/src"]
}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../../libs/shared/jest.config.angular");

View File

@ -1,5 +1,21 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/angular/*": ["../angular/src/*"],
"@bitwarden/auth/angular": ["../auth/src/angular"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/components": ["../components/src"],
"@bitwarden/key-management": ["../key-management/src"],
"@bitwarden/generator-core": ["../tools/generator/core/src"],
"@bitwarden/generator-history": ["../tools/generator/extensions/history/src"],
"@bitwarden/generator-legacy": ["../tools/generator/extensions/legacy/src"],
"@bitwarden/generator-navigation": ["../tools/generator/extensions/navigation/src"],
"@bitwarden/platform": ["../platform/src"]
}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../shared/jest.config.ts");

View File

@ -1,5 +1,13 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/key-management": ["../key-management/src"]
}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../../libs/shared/jest.config.angular");

View File

@ -1,5 +1,8 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"paths": {}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,16 @@
{
"extends": "../../shared/tsconfig.libs",
"extends": "../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../admin-console/src/common"],
"@bitwarden/angular/*": ["../../angular/src/*"],
"@bitwarden/auth/common": ["../../auth/src/common"],
"@bitwarden/common/*": ["../../common/src/*"],
"@bitwarden/components": ["../../components/src"],
"@bitwarden/key-management": ["../../key-management/src"],
"@bitwarden/platform": ["../../platform/src"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,13 @@
{
"extends": "../../../../shared/tsconfig.libs",
"extends": "../../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../../admin-console/src/common"],
"@bitwarden/auth/common": ["../../../../auth/src/common"],
"@bitwarden/common/*": ["../../../../common/src/*"],
"@bitwarden/key-management": ["../../../../key-management/src"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,24 @@
{
"extends": "../../../../shared/tsconfig.libs",
"extends": "../../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../../admin-console/src/common"],
"@bitwarden/angular/*": ["../../../../angular/src/*"],
"@bitwarden/auth/angular": ["../../../../auth/src/angular"],
"@bitwarden/auth/common": ["../../../../auth/src/common"],
"@bitwarden/common/*": ["../../../../common/src/*"],
"@bitwarden/components": ["../../../../components/src"],
"@bitwarden/generator-core": ["../../../../tools/generator/core/src"],
"@bitwarden/generator-history": ["../../../../tools/generator/extensions/history/src"],
"@bitwarden/generator-legacy": ["../../../../tools/generator/extensions/legacy/src"],
"@bitwarden/generator-navigation": ["../../../../tools/generator/extensions/navigation/src"],
"@bitwarden/key-management": ["../../../../key-management/src"],
"@bitwarden/platform": ["../../../../platform/src"],
"@bitwarden/vault-export-core": [
"../../../../tools/export/vault-export/vault-export-core/src"
]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../shared/tsconfig.libs.json");
const { compilerOptions } = require("../../../shared/tsconfig.spec.json");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,18 @@
{
"extends": "../../../shared/tsconfig.libs",
"extends": "../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../admin-console/src/common"],
"@bitwarden/angular/*": ["../../../angular/src/*"],
"@bitwarden/auth/common": ["../../../auth/src/common"],
"@bitwarden/common/*": ["../../../common/src/*"],
"@bitwarden/components": ["../../../components/src"],
"@bitwarden/generator-core": ["../../../tools/generator/core/src"],
"@bitwarden/generator-history": ["../../../tools/generator/extensions/history/src"],
"@bitwarden/key-management": ["../../../key-management/src"],
"@bitwarden/platform": ["../../../platform/src"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,14 @@
{
"extends": "../../../shared/tsconfig.libs",
"extends": "../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../admin-console/src/common"],
"@bitwarden/auth/common": ["../../../auth/src/common"],
"@bitwarden/common/*": ["../../../common/src/*"],
"@bitwarden/generator-core": ["../../../tools/generator/core/src"],
"@bitwarden/key-management": ["../../../key-management/src"]
}
},
"include": [
"src",
"../extensions/src/history/generator-history.abstraction.ts",

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,14 @@
{
"extends": "../../../../shared/tsconfig.libs",
"extends": "../../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../../admin-console/src/common"],
"@bitwarden/auth/common": ["../../../../auth/src/common"],
"@bitwarden/common/*": ["../../../../common/src/*"],
"@bitwarden/generator-core": ["../../../../tools/generator/core/src"],
"@bitwarden/key-management": ["../../../../key-management/src"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,16 @@
{
"extends": "../../../../shared/tsconfig.libs",
"extends": "../../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../../admin-console/src/common"],
"@bitwarden/auth/common": ["../../../../auth/src/common"],
"@bitwarden/common/*": ["../../../../common/src/*"],
"@bitwarden/generator-core": ["../../../../tools/generator/core/src"],
"@bitwarden/generator-history": ["../../../../tools/generator/extensions/history/src"],
"@bitwarden/generator-navigation": ["../../../../tools/generator/extensions/navigation/src"],
"@bitwarden/key-management": ["../../../../key-management/src"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,14 @@
{
"extends": "../../../../shared/tsconfig.libs",
"extends": "../../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../../admin-console/src/common"],
"@bitwarden/auth/common": ["../../../../auth/src/common"],
"@bitwarden/common/*": ["../../../../common/src/*"],
"@bitwarden/generator-core": ["../../../../tools/generator/core/src"],
"@bitwarden/key-management": ["../../../../key-management/src"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../../../shared/tsconfig.libs");
const { compilerOptions } = require("../../../shared/tsconfig.spec");
/** @type {import('jest').Config} */
module.exports = {

View File

@ -1,5 +1,21 @@
{
"extends": "../../../shared/tsconfig.libs",
"extends": "../../../shared/tsconfig",
"compilerOptions": {
"paths": {
"@bitwarden/admin-console/common": ["../../../admin-console/src/common"],
"@bitwarden/angular/*": ["../../../angular/src/*"],
"@bitwarden/auth/common": ["../../../auth/src/common"],
"@bitwarden/common/*": ["../../../common/src/*"],
"@bitwarden/components": ["../../../components/src"],
"@bitwarden/generator-components": ["../../../tools/generator/components/src"],
"@bitwarden/generator-core": ["../../../tools/generator/core/src"],
"@bitwarden/generator-history": ["../../../tools/generator/extensions/history/src"],
"@bitwarden/generator-legacy": ["../../../tools/generator/extensions/legacy/src"],
"@bitwarden/generator-navigation": ["../../../tools/generator/extensions/navigation/src"],
"@bitwarden/key-management": ["../../../key-management/src"],
"@bitwarden/platform": ["../../../platform/src"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,6 +1,6 @@
const { pathsToModuleNameMapper } = require("ts-jest");
const { compilerOptions } = require("../shared/tsconfig.libs");
const { compilerOptions } = require("../shared/tsconfig.spec");
const sharedConfig = require("../../libs/shared/jest.config.angular");

View File

@ -1,5 +1,23 @@
{
"extends": "../shared/tsconfig.libs",
"extends": "../shared/tsconfig",
"compilerOptions": {
"resolveJsonModule": true,
"paths": {
"@bitwarden/admin-console/common": ["../admin-console/src/common"],
"@bitwarden/angular/*": ["../angular/src/*"],
"@bitwarden/auth/common": ["../auth/src/common"],
"@bitwarden/common/*": ["../common/src/*"],
"@bitwarden/components": ["../components/src"],
"@bitwarden/generator-components": ["../tools/generator/components/src"],
"@bitwarden/generator-core": ["../tools/generator/core/src"],
"@bitwarden/generator-history": ["../tools/generator/extensions/history/src"],
"@bitwarden/generator-legacy": ["../tools/generator/extensions/legacy/src"],
"@bitwarden/generator-navigation": ["../tools/generator/extensions/navigation/src"],
"@bitwarden/key-management": ["../key-management/src"],
"@bitwarden/platform": ["../platform/src"],
"@bitwarden/vault": ["../vault/src"]
}
},
"include": ["src", "spec"],
"exclude": ["node_modules", "dist"]
}

View File

@ -16,10 +16,15 @@ function getFiles(dir) {
return results;
}
const files = getFiles(path.join(__dirname, "..", "libs")).filter((file) => {
const name = path.basename(file);
return name === "tsconfig.spec.json";
});
const files = getFiles(path.join(__dirname, "..", "libs"))
.filter((file) => {
const name = path.basename(file);
return name === "tsconfig.spec.json";
})
.filter((path) => {
// Exclude shared since it's not actually a library
return !path.includes("libs/shared/");
});
concurrently([
{