diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8c33997b..892206e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,17 +76,15 @@ jobs: env: _VERSION: ${{ needs.setup.outputs.version }} steps: - - name: Set up Node - uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea - with: - node-version: "16" + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Cache npm - id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: - path: "~/.npm" - key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" - name: Print environment run: | @@ -98,9 +96,6 @@ jobs: echo "GitHub ref: $GITHUB_REF" echo "GitHub event: $GITHUB_EVENT" - - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Install dependencies run: npm ci @@ -126,17 +121,15 @@ jobs: env: _VERSION: ${{ needs.setup.outputs.version }} steps: - - name: Set up Node - uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea - with: - node-version: "16" + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Cache npm - id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: - path: "~/.npm" - key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" - name: Print environment run: | @@ -148,9 +141,6 @@ jobs: echo "GitHub ref: $GITHUB_REF" echo "GitHub event: $GITHUB_EVENT" - - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Install dependencies run: npm ci @@ -176,17 +166,15 @@ jobs: env: _VERSION: ${{ needs.setup.outputs.version }} steps: - - name: Set up Node - uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea - with: - node-version: "16" + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Cache npm - id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: - path: "~/.npm" - key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" - name: Print environment run: | @@ -199,16 +187,13 @@ jobs: echo "GitHub event: $GITHUB_EVENT" - name: Setup DCT - if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix' + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix-rc' id: setup-dct uses: bitwarden/gh-actions/setup-docker-trust@a8c384a05a974c05c48374c818b004be221d43ff with: azure-creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} azure-keyvault-name: "bitwarden-prod-kv" - - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Install dependencies run: npm ci @@ -243,11 +228,11 @@ jobs: run: docker tag bitwarden/web bitwarden/web:dev - name: Tag hotfix branch - if: github.ref == 'refs/heads/hotfix' - run: docker tag bitwarden/web bitwarden/web:hotfix + if: github.ref == 'refs/heads/hotfix-rc' + run: docker tag bitwarden/web bitwarden/web:hotfix-rc - name: List Docker images - if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix' + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix-rc' run: docker images - name: Push rc image @@ -265,14 +250,14 @@ jobs: DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ${{ steps.setup-dct.outputs.dct-delegate-repo-passphrase }} - name: Push hotfix image - if: github.ref == 'refs/heads/hotfix' - run: docker push bitwarden/web:hotfix + if: github.ref == 'refs/heads/hotfix-rc' + run: docker push bitwarden/web:hotfix-rc env: DOCKER_CONTENT_TRUST: 1 DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ${{ steps.setup-dct.outputs.dct-delegate-repo-passphrase }} - name: Log out of Docker - if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix' + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix-rc' run: | docker logout echo "DOCKER_CONTENT_TRUST=0" >> $GITHUB_ENV @@ -308,17 +293,15 @@ jobs: - setup - lint steps: - - name: Set up Node - uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea - with: - node-version: "16" + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Cache npm - id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: - path: "~/.npm" - key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" - name: Print environment run: | @@ -338,9 +321,6 @@ jobs: - name: Log into container registry run: az acr login -n bitwardenqa - - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Install dependencies run: npm ci @@ -401,21 +381,19 @@ jobs: name: Test code on Windows runs-on: windows-2019 steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + - name: Set up NuGet uses: nuget/setup-nuget@04b0c2b8d1b97922f67eca497d7cf0bf17b8ffe1 with: nuget-version: "latest" - - name: Cache npm - id: npm-cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 - with: - path: "~/.npm" - key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} - - name: Set up Node - uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 with: + cache: 'npm' + cache-dependency-path: '**/package-lock.json' node-version: "16" - name: Print environment @@ -429,9 +407,6 @@ jobs: GITHUB_REF: ${{ github.ref }} GITHUB_EVENT: ${{ github.event_name }} - - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - name: Install dependencies run: npm ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a791306e..ba101fc4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,9 +26,9 @@ jobs: - name: Branch check if: ${{ github.event.inputs.release_type != 'Dry Run' }} run: | - if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix" ]]; then + if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix-rc" ]]; then echo "===================================" - echo "[!] Can only release from the 'rc' or 'hotfix' branches" + echo "[!] Can only release from the 'rc' or 'hotfix-rc' branches" echo "===================================" exit 1 fi diff --git a/SECURITY.md b/SECURITY.md index 7a055501..e6edb96d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,39 +1,11 @@ -Bitwarden believes that working with security researchers across the globe is crucial to keeping our -users safe. If you believe you've found a security issue in our product or service, we encourage you to -notify us. We welcome working with you to resolve the issue promptly. Thanks in advance! +Bitwarden believes that working with security researchers across the globe is crucial to keeping our users safe. If you believe you've found a security issue in our product or service, we encourage you to please submit a report through our [HackerOne Program](https://hackerone.com/bitwarden/). We welcome working with you to resolve the issue promptly. Thanks in advance! # Disclosure Policy -- Let us know as soon as possible upon discovery of a potential security issue, and we'll make every - effort to quickly resolve the issue. -- Provide us a reasonable amount of time to resolve the issue before any disclosure to the public or a - third-party. We may publicly disclose the issue before resolving it, if appropriate. -- Make a good faith effort to avoid privacy violations, destruction of data, and interruption or - degradation of our service. Only interact with accounts you own or with explicit permission of the - account holder. -- If you would like to encrypt your report, please use the PGP key with long ID - `0xDE6887086F892325FEC04CC0D847525B6931381F` (available in the public keyserver pool). - -# In-scope - -- Security issues in any current release of Bitwarden. This includes the web vault, browser extension, - and mobile apps (iOS and Android). Product downloads are available at https://bitwarden.com. Source - code is available at https://github.com/bitwarden. - -# Exclusions - -The following bug classes are out-of scope: - -- Bugs that are already reported on any of Bitwarden's issue trackers (https://github.com/bitwarden), - or that we already know of. Note that some of our issue tracking is private. -- Issues in an upstream software dependency (ex: Xamarin, ASP.NET) which are already reported to the - upstream maintainer. -- Attacks requiring physical access to a user's device. -- Self-XSS -- Issues related to software or protocols not under Bitwarden's control -- Vulnerabilities in outdated versions of Bitwarden -- Missing security best practices that do not directly lead to a vulnerability -- Issues that do not have any impact on the general public +- Let us know as soon as possible upon discovery of a potential security issue, and we'll make every effort to quickly resolve the issue. +- Provide us a reasonable amount of time to resolve the issue before any disclosure to the public or a third-party. We may publicly disclose the issue before resolving it, if appropriate. +- Make a good faith effort to avoid privacy violations, destruction of data, and interruption or degradation of our service. Only interact with accounts you own or with explicit permission of the account holder. +- If you would like to encrypt your report, please use the PGP key with long ID `0xDE6887086F892325FEC04CC0D847525B6931381F` (available in the public keyserver pool). While researching, we'd like to ask you to refrain from: @@ -42,4 +14,8 @@ While researching, we'd like to ask you to refrain from: - Social engineering (including phishing) of Bitwarden staff or contractors - Any physical attempts against Bitwarden property or data centers +# We want to help you! + +If you have something that you feel is close to exploitation, or if you'd like some information regarding the internal API, or generally have any questions regarding the app that would help in your efforts, please email us at https://bitwarden.com/contact and ask for that information. As stated above, Bitwarden wants to help you find issues, and is more than willing to help. + Thank you for helping keep Bitwarden and our users safe! diff --git a/bitwarden_license/src/app/app.module.ts b/bitwarden_license/src/app/app.module.ts index 7fe8de44..9e0de2af 100644 --- a/bitwarden_license/src/app/app.module.ts +++ b/bitwarden_license/src/app/app.module.ts @@ -5,10 +5,9 @@ import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { RouterModule } from "@angular/router"; import { InfiniteScrollModule } from "ngx-infinite-scroll"; -import { BitwardenToastModule } from "jslib-angular/components/toastr.component"; +import { JslibModule } from "jslib-angular/jslib.module"; import { OssRoutingModule } from "src/app/oss-routing.module"; -import { OssModule } from "src/app/oss.module"; import { ServicesModule } from "src/app/services/services.module"; import { WildcardRoutingModule } from "src/app/wildcard-routing.module"; @@ -20,28 +19,23 @@ import { MaximumVaultTimeoutPolicyComponent } from "./policies/maximum-vault-tim @NgModule({ imports: [ - OssModule, - BrowserAnimationsModule, - FormsModule, - ReactiveFormsModule, - ServicesModule, - BitwardenToastModule.forRoot({ - maxOpened: 5, - autoDismiss: true, - closeButton: true, - }), - InfiniteScrollModule, - DragDropModule, AppRoutingModule, - OssRoutingModule, + BrowserAnimationsModule, + DragDropModule, + FormsModule, + InfiniteScrollModule, + JslibModule, OrganizationsModule, + OssRoutingModule, + ReactiveFormsModule, RouterModule, + ServicesModule, WildcardRoutingModule, // Needs to be last to catch all non-existing routes ], declarations: [ AppComponent, - MaximumVaultTimeoutPolicyComponent, DisablePersonalVaultExportPolicyComponent, + MaximumVaultTimeoutPolicyComponent, ], bootstrap: [AppComponent], }) diff --git a/bitwarden_license/src/app/organizations/organizations.module.ts b/bitwarden_license/src/app/organizations/organizations.module.ts index 838e8d4b..f67a9b7e 100644 --- a/bitwarden_license/src/app/organizations/organizations.module.ts +++ b/bitwarden_license/src/app/organizations/organizations.module.ts @@ -2,7 +2,7 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; import { FormsModule, ReactiveFormsModule } from "@angular/forms"; -import { OssModule } from "src/app/oss.module"; +import { JslibModule } from "jslib-angular/jslib.module"; import { InputCheckboxComponent } from "./components/input-checkbox.component"; import { InputTextReadOnlyComponent } from "./components/input-text-readonly.component"; @@ -14,7 +14,13 @@ import { OrganizationsRoutingModule } from "./organizations-routing.module"; // Form components are for use in the SSO Configuration Form only and should not be exported for use elsewhere. // They will be deprecated by the Component Library. @NgModule({ - imports: [CommonModule, FormsModule, ReactiveFormsModule, OssModule, OrganizationsRoutingModule], + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + JslibModule, + OrganizationsRoutingModule, + ], declarations: [ InputCheckboxComponent, InputTextComponent, diff --git a/bitwarden_license/src/app/providers/providers.module.ts b/bitwarden_license/src/app/providers/providers.module.ts index 653cd0b2..9f762cf4 100644 --- a/bitwarden_license/src/app/providers/providers.module.ts +++ b/bitwarden_license/src/app/providers/providers.module.ts @@ -2,6 +2,7 @@ import { CommonModule } from "@angular/common"; import { ComponentFactoryResolver, NgModule } from "@angular/core"; import { FormsModule } from "@angular/forms"; +import { JslibModule } from "jslib-angular/jslib.module"; import { ModalService } from "jslib-angular/services/modal.service"; import { OssModule } from "src/app/oss.module"; @@ -27,7 +28,7 @@ import { SetupProviderComponent } from "./setup/setup-provider.component"; import { SetupComponent } from "./setup/setup.component"; @NgModule({ - imports: [CommonModule, FormsModule, OssModule, ProvidersRoutingModule], + imports: [CommonModule, FormsModule, OssModule, JslibModule, ProvidersRoutingModule], declarations: [ AcceptProviderComponent, AccountComponent, diff --git a/jslib b/jslib index 41b199ab..9950fb42 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 41b199ab831eff8d197e006328274dbf8b1b11bd +Subproject commit 9950fb42a15bad434a4b404419ff4a87af67a27b diff --git a/package-lock.json b/package-lock.json index 5c29e224..8c57f774 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitwarden/web-vault", - "version": "2.26.2", + "version": "2.27.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@bitwarden/web-vault", - "version": "2.26.2", + "version": "2.27.0", "hasInstallScript": true, "license": "GPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 34fbe402..8642dcf7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bitwarden/web-vault", - "version": "2.26.2", + "version": "2.27.0", "license": "GPL-3.0", "repository": "https://github.com/bitwarden/web", "scripts": { diff --git a/src/app/app.component.ts b/src/app/app.component.ts index b9471004..cd94408f 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -197,6 +197,8 @@ export class AppComponent implements OnDestroy, OnInit { new SendOptionsPolicy(), new ResetPasswordPolicy(), ]); + + this.setFullWidth(); } ngOnDestroy() { diff --git a/src/app/app.module.ts b/src/app/app.module.ts index c28278f7..15d5a190 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -4,8 +4,6 @@ import { FormsModule } from "@angular/forms"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { InfiniteScrollModule } from "ngx-infinite-scroll"; -import { BitwardenToastModule } from "jslib-angular/components/toastr.component"; - import { AppComponent } from "./app.component"; import { OssRoutingModule } from "./oss-routing.module"; import { OssModule } from "./oss.module"; @@ -18,11 +16,6 @@ import { WildcardRoutingModule } from "./wildcard-routing.module"; BrowserAnimationsModule, FormsModule, ServicesModule, - BitwardenToastModule.forRoot({ - maxOpened: 5, - autoDismiss: true, - closeButton: true, - }), InfiniteScrollModule, DragDropModule, OssRoutingModule, diff --git a/src/app/oss.module.ts b/src/app/oss.module.ts index 9f17cb8c..90596adf 100644 --- a/src/app/oss.module.ts +++ b/src/app/oss.module.ts @@ -57,30 +57,8 @@ import { BadgeModule, ButtonModule, CalloutModule } from "@bitwarden/components" import { InfiniteScrollModule } from "ngx-infinite-scroll"; import { ToastrModule } from "ngx-toastr"; -import { AvatarComponent } from "jslib-angular/components/avatar.component"; -import { CalloutComponent } from "jslib-angular/components/callout.component"; -import { ExportScopeCalloutComponent } from "jslib-angular/components/export-scope-callout.component"; -import { IconComponent } from "jslib-angular/components/icon.component"; -import { VerifyMasterPasswordComponent } from "jslib-angular/components/verify-master-password.component"; -import { A11yInvalidDirective } from "jslib-angular/directives/a11y-invalid.directive"; -import { A11yTitleDirective } from "jslib-angular/directives/a11y-title.directive"; -import { ApiActionDirective } from "jslib-angular/directives/api-action.directive"; -import { AutofocusDirective } from "jslib-angular/directives/autofocus.directive"; -import { BlurClickDirective } from "jslib-angular/directives/blur-click.directive"; -import { BoxRowDirective } from "jslib-angular/directives/box-row.directive"; -import { FallbackSrcDirective } from "jslib-angular/directives/fallback-src.directive"; -import { InputStripSpacesDirective } from "jslib-angular/directives/input-strip-spaces.directive"; -import { InputVerbatimDirective } from "jslib-angular/directives/input-verbatim.directive"; import { NotPremiumDirective } from "jslib-angular/directives/not-premium.directive"; -import { SelectCopyDirective } from "jslib-angular/directives/select-copy.directive"; -import { StopClickDirective } from "jslib-angular/directives/stop-click.directive"; -import { StopPropDirective } from "jslib-angular/directives/stop-prop.directive"; -import { TrueFalseValueDirective } from "jslib-angular/directives/true-false-value.directive"; -import { ColorPasswordPipe } from "jslib-angular/pipes/color-password.pipe"; -import { I18nPipe } from "jslib-angular/pipes/i18n.pipe"; -import { SearchCiphersPipe } from "jslib-angular/pipes/search-ciphers.pipe"; -import { SearchPipe } from "jslib-angular/pipes/search.pipe"; -import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { JslibModule } from "jslib-angular/jslib.module"; import { AcceptEmergencyComponent } from "./accounts/accept-emergency.component"; import { AcceptOrganizationComponent } from "./accounts/accept-organization.component"; @@ -291,19 +269,18 @@ registerLocaleData(localeZhTw, "zh-TW"); @NgModule({ imports: [ CommonModule, + DragDropModule, FormsModule, InfiniteScrollModule, - DragDropModule, - ToastrModule, + JslibModule, ReactiveFormsModule, RouterModule, BadgeModule, ButtonModule, CalloutModule, + ToastrModule, ], declarations: [ - A11yInvalidDirective, - A11yTitleDirective, AcceptEmergencyComponent, AcceptOrganizationComponent, AccessComponent, @@ -315,27 +292,20 @@ registerLocaleData(localeZhTw, "zh-TW"); AdjustPaymentComponent, AdjustStorageComponent, AdjustSubscription, - ApiActionDirective, ApiKeyComponent, AttachmentsComponent, - AutofocusDirective, - AvatarComponent, - BlurClickDirective, - BoxRowDirective, BreachReportComponent, BulkActionsComponent, BulkDeleteComponent, BulkMoveComponent, BulkRestoreComponent, BulkShareComponent, - CalloutComponent, ChangeEmailComponent, ChangeKdfComponent, ChangePasswordComponent, ChangePlanComponent, CiphersComponent, CollectionsComponent, - ColorPasswordPipe, CreateOrganizationComponent, DeauthorizeSessionsComponent, DeleteAccountComponent, @@ -351,21 +321,15 @@ registerLocaleData(localeZhTw, "zh-TW"); EmergencyAccessViewComponent, EmergencyAddEditComponent, ExportComponent, - ExportScopeCalloutComponent, ExposedPasswordsReportComponent, - FallbackSrcDirective, FamiliesForEnterpriseSetupComponent, FolderAddEditComponent, FooterComponent, FrontendLayoutComponent, GroupingsComponent, HintComponent, - I18nPipe, - IconComponent, ImportComponent, InactiveTwoFactorReportComponent, - InputStripSpacesDirective, - InputVerbatimDirective, LinkSsoComponent, LockComponent, LoginComponent, @@ -433,11 +397,8 @@ registerLocaleData(localeZhTw, "zh-TW"); RequireSsoPolicyComponent, ResetPasswordPolicyComponent, ReusedPasswordsReportComponent, - SearchCiphersPipe, - SearchPipe, SecurityComponent, SecurityKeysComponent, - SelectCopyDirective, SendAddEditComponent, SendComponent, SendEffluxDatesComponent, @@ -449,11 +410,8 @@ registerLocaleData(localeZhTw, "zh-TW"); SponsoredFamiliesComponent, SponsoringOrgRowComponent, SsoComponent, - StopClickDirective, - StopPropDirective, TaxInfoComponent, ToolsComponent, - TrueFalseValueDirective, TwoFactorAuthenticationPolicyComponent, TwoFactorAuthenticatorComponent, TwoFactorComponent, @@ -472,33 +430,16 @@ registerLocaleData(localeZhTw, "zh-TW"); UpdateTempPasswordComponent, UserBillingComponent, UserLayoutComponent, - UserNamePipe, UserSubscriptionComponent, VaultComponent, VaultTimeoutInputComponent, VerifyEmailComponent, VerifyEmailTokenComponent, - VerifyMasterPasswordComponent, VerifyRecoverDeleteComponent, WeakPasswordsReportComponent, ], - exports: [ - A11yTitleDirective, - A11yInvalidDirective, - ApiActionDirective, - AvatarComponent, - CalloutComponent, - FooterComponent, - I18nPipe, - InputStripSpacesDirective, - NavbarComponent, - OrganizationPlansComponent, - SearchPipe, - StopClickDirective, - StopPropDirective, - UserNamePipe, - ], - providers: [DatePipe, SearchPipe, UserNamePipe], + exports: [FooterComponent, NavbarComponent, OrganizationPlansComponent], + providers: [DatePipe], bootstrap: [], }) export class OssModule {} diff --git a/src/app/settings/emergency-access-view.component.html b/src/app/settings/emergency-access-view.component.html index 7687f37b..1b74204b 100644 --- a/src/app/settings/emergency-access-view.component.html +++ b/src/app/settings/emergency-access-view.component.html @@ -13,7 +13,7 @@ {{ c.name }} - +