1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-13 15:03:26 +00:00

Merge branch 'main' into ps/extension-refresh

This commit is contained in:
Victoria League
2024-09-30 16:48:32 -04:00
committed by GitHub
80 changed files with 1120 additions and 485 deletions

View File

@@ -2,5 +2,6 @@
"eslint.options": {
"ignorePath": "${workspaceFolder}/../../../.eslintIgnore"
},
"prettier.ignorePath": "${workspaceFolder}/../../../.prettierignore"
"prettier.ignorePath": "${workspaceFolder}/../../../.prettierignore",
"cSpell.words": ["bitwarden"]
}

View File

@@ -21,7 +21,6 @@ import { CryptoService } from "@bitwarden/common/platform/abstractions/crypto.se
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
import { BiometricStateService } from "@bitwarden/common/platform/biometrics/biometric-state.service";
import { StateEventRunnerService } from "@bitwarden/common/platform/state";
import { SyncService } from "@bitwarden/common/platform/sync";
import { UserId } from "@bitwarden/common/types/guid";
@@ -30,6 +29,7 @@ import { CollectionService } from "@bitwarden/common/vault/abstractions/collecti
import { InternalFolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction";
import { DialogService, ToastOptions, ToastService } from "@bitwarden/components";
import { PasswordGenerationServiceAbstraction } from "@bitwarden/generator-legacy";
import { BiometricStateService } from "@bitwarden/key-management";
import { PolicyListService } from "./admin-console/core/policy-list.service";
import {

View File

@@ -4,23 +4,23 @@ import { APP_INITIALIZER, NgModule, Optional, SkipSelf } from "@angular/core";
import { OrganizationUserApiService } from "@bitwarden/admin-console/common";
import { SafeProvider, safeProvider } from "@bitwarden/angular/platform/utils/safe-provider";
import {
SECURE_STORAGE,
LOCALES_DIRECTORY,
SYSTEM_LANGUAGE,
MEMORY_STORAGE,
OBSERVABLE_MEMORY_STORAGE,
OBSERVABLE_DISK_STORAGE,
OBSERVABLE_DISK_LOCAL_STORAGE,
WINDOW,
SafeInjectionToken,
DEFAULT_VAULT_TIMEOUT,
CLIENT_TYPE,
DEFAULT_VAULT_TIMEOUT,
LOCALES_DIRECTORY,
MEMORY_STORAGE,
OBSERVABLE_DISK_LOCAL_STORAGE,
OBSERVABLE_DISK_STORAGE,
OBSERVABLE_MEMORY_STORAGE,
SECURE_STORAGE,
SYSTEM_LANGUAGE,
SafeInjectionToken,
WINDOW,
} from "@bitwarden/angular/services/injection-tokens";
import { JslibServicesModule } from "@bitwarden/angular/services/jslib-services.module";
import { ModalService as ModalServiceAbstraction } from "@bitwarden/angular/services/modal.service";
import {
SetPasswordJitService,
RegistrationFinishService as RegistrationFinishServiceAbstraction,
SetPasswordJitService,
} from "@bitwarden/auth/angular";
import { InternalUserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
@@ -41,7 +41,6 @@ import { I18nService as I18nServiceAbstraction } from "@bitwarden/common/platfor
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { AbstractStorageService } from "@bitwarden/common/platform/abstractions/storage.service";
import { BiometricsService } from "@bitwarden/common/platform/biometrics/biometric.service";
import { ThemeType } from "@bitwarden/common/platform/enums";
import { AppIdService as DefaultAppIdService } from "@bitwarden/common/platform/services/app-id.service";
import { MemoryStorageService } from "@bitwarden/common/platform/services/memory-storage.service";
@@ -59,13 +58,14 @@ import {
ThemeStateService,
} from "@bitwarden/common/platform/theming/theme-state.service";
import { VaultTimeout, VaultTimeoutStringType } from "@bitwarden/common/types/vault-timeout.type";
import { BiometricsService } from "@bitwarden/key-management";
import { PolicyListService } from "../admin-console/core/policy-list.service";
import { WebSetPasswordJitService, WebRegistrationFinishService } from "../auth";
import { WebRegistrationFinishService, WebSetPasswordJitService } from "../auth";
import { AcceptOrganizationInviteService } from "../auth/organization-invite/accept-organization.service";
import { HtmlStorageService } from "../core/html-storage.service";
import { I18nService } from "../core/i18n.service";
import { WebBiometricsService } from "../platform/web-biometric.service";
import { WebBiometricsService } from "../key-management/web-biometric.service";
import { WebEnvironmentService } from "../platform/web-environment.service";
import { WebMigrationRunner } from "../platform/web-migration-runner";
import { WebStorageServiceProvider } from "../platform/web-storage-service.provider";

View File

@@ -15,9 +15,15 @@ import {
/**
* Data properties acceptable for use in route objects (see usage in oss-routing.module.ts for example)
*/
export interface DataProperties {
titleId?: string; // sets the title of the current HTML document (shows in browser tab)
doNotSaveUrl?: boolean; // choose to not keep track of the previous URL in memory
export interface RouteDataProperties {
/**
* Title of the current HTML document (shows in browser tab)
*/
titleId?: string;
/**
* doNotSaveUrl - choose to not keep track of the previous URL in memory in the RouterService
*/
doNotSaveUrl?: boolean;
}
const DEEP_LINK_REDIRECT_URL = new KeyDefinition(ROUTER_DISK, "deepLinkRedirectUrl", {

View File

@@ -1,4 +1,4 @@
import { BiometricsService } from "@bitwarden/common/platform/biometrics/biometric.service";
import { BiometricsService } from "@bitwarden/key-management";
export class WebBiometricsService extends BiometricsService {
async supportsBiometric(): Promise<boolean> {

View File

@@ -61,7 +61,7 @@ import { VerifyEmailTokenComponent } from "./auth/verify-email-token.component";
import { VerifyRecoverDeleteComponent } from "./auth/verify-recover-delete.component";
import { SponsoredFamiliesComponent } from "./billing/settings/sponsored-families.component";
import { EnvironmentSelectorComponent } from "./components/environment-selector/environment-selector.component";
import { DataProperties } from "./core";
import { RouteDataProperties } from "./core";
import { FrontendLayoutComponent } from "./layouts/frontend-layout.component";
import { UserLayoutComponent } from "./layouts/user-layout.component";
import { RequestSMAccessComponent } from "./secrets-manager/secrets-manager-landing/request-sm-access.component";
@@ -79,7 +79,7 @@ const routes: Routes = [
{
path: "",
component: FrontendLayoutComponent,
data: { doNotSaveUrl: true } satisfies DataProperties,
data: { doNotSaveUrl: true } satisfies RouteDataProperties,
children: [
{
path: "",
@@ -90,17 +90,17 @@ const routes: Routes = [
{
path: "login-with-device",
component: LoginViaAuthRequestComponent,
data: { titleId: "loginWithDevice" } satisfies DataProperties,
data: { titleId: "loginWithDevice" } satisfies RouteDataProperties,
},
{
path: "login-with-passkey",
component: LoginViaWebAuthnComponent,
data: { titleId: "loginWithPasskey" } satisfies DataProperties,
data: { titleId: "loginWithPasskey" } satisfies RouteDataProperties,
},
{
path: "admin-approval-requested",
component: LoginViaAuthRequestComponent,
data: { titleId: "adminApprovalRequested" } satisfies DataProperties,
data: { titleId: "adminApprovalRequested" } satisfies RouteDataProperties,
},
{
path: "login-initiated",
@@ -111,7 +111,7 @@ const routes: Routes = [
path: "register",
component: TrialInitiationComponent,
canActivate: [unauthGuardFn()],
data: { titleId: "createAccount" } satisfies DataProperties,
data: { titleId: "createAccount" } satisfies RouteDataProperties,
},
{
path: "trial",
@@ -121,20 +121,23 @@ const routes: Routes = [
{
path: "set-password",
component: SetPasswordComponent,
data: { titleId: "setMasterPassword" } satisfies DataProperties,
data: { titleId: "setMasterPassword" } satisfies RouteDataProperties,
},
{ path: "verify-email", component: VerifyEmailTokenComponent },
{
path: "accept-organization",
canActivate: [deepLinkGuard()],
component: AcceptOrganizationComponent,
data: { titleId: "joinOrganization", doNotSaveUrl: false } satisfies DataProperties,
data: { titleId: "joinOrganization", doNotSaveUrl: false } satisfies RouteDataProperties,
},
{
path: "accept-families-for-enterprise",
component: AcceptFamilySponsorshipComponent,
canActivate: [deepLinkGuard()],
data: { titleId: "acceptFamilySponsorship", doNotSaveUrl: false } satisfies DataProperties,
data: {
titleId: "acceptFamilySponsorship",
doNotSaveUrl: false,
} satisfies RouteDataProperties,
},
{ path: "recover", pathMatch: "full", redirectTo: "recover-2fa" },
{
@@ -147,19 +150,19 @@ const routes: Routes = [
path: "verify-recover-delete-provider",
component: VerifyRecoverDeleteProviderComponent,
canActivate: [unauthGuardFn()],
data: { titleId: "deleteAccount" } satisfies DataProperties,
data: { titleId: "deleteAccount" } satisfies RouteDataProperties,
},
{
path: "update-temp-password",
component: UpdateTempPasswordComponent,
canActivate: [authGuard],
data: { titleId: "updateTempPassword" } satisfies DataProperties,
data: { titleId: "updateTempPassword" } satisfies RouteDataProperties,
},
{
path: "update-password",
component: UpdatePasswordComponent,
canActivate: [authGuard],
data: { titleId: "updatePassword" } satisfies DataProperties,
data: { titleId: "updatePassword" } satisfies RouteDataProperties,
},
{
path: "migrate-legacy-encryption",
@@ -220,8 +223,10 @@ const routes: Routes = [
{
path: "signup",
canActivate: [canAccessFeature(FeatureFlag.EmailVerification), unauthGuardFn()],
data: { pageTitle: "createAccount", titleId: "createAccount" } satisfies DataProperties &
AnonLayoutWrapperData,
data: {
pageTitle: "createAccount",
titleId: "createAccount",
} satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [
{
path: "",
@@ -244,7 +249,7 @@ const routes: Routes = [
pageTitle: "setAStrongPassword",
pageSubtitle: "finishCreatingYourAccountBySettingAPassword",
titleId: "setAStrongPassword",
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [
{
path: "",
@@ -257,7 +262,7 @@ const routes: Routes = [
data: {
pageTitle: "viewSend",
showReadonlyHostname: true,
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [
{
path: "",
@@ -301,7 +306,7 @@ const routes: Routes = [
data: {
pageTitle: "enterpriseSingleSignOn",
titleId: "enterpriseSingleSignOn",
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [
{
path: "",
@@ -362,7 +367,7 @@ const routes: Routes = [
],
data: {
pageTitle: "verifyIdentity",
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
},
{
path: "recover-2fa",
@@ -381,7 +386,7 @@ const routes: Routes = [
data: {
pageTitle: "recoverAccountTwoStep",
titleId: "recoverAccountTwoStep",
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
},
{
path: "accept-emergency",
@@ -390,7 +395,7 @@ const routes: Routes = [
pageTitle: "emergencyAccess",
titleId: "acceptEmergency",
doNotSaveUrl: false,
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [
{
path: "",
@@ -407,7 +412,7 @@ const routes: Routes = [
data: {
pageTitle: "deleteAccount",
titleId: "deleteAccount",
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [
{
path: "",
@@ -426,7 +431,7 @@ const routes: Routes = [
data: {
pageTitle: "deleteAccount",
titleId: "deleteAccount",
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
children: [
{
path: "",
@@ -441,7 +446,7 @@ const routes: Routes = [
data: {
pageTitle: "removeMasterPassword",
titleId: "removeMasterPassword",
} satisfies DataProperties & AnonLayoutWrapperData,
} satisfies RouteDataProperties & AnonLayoutWrapperData,
},
{
path: "trial-initiation",
@@ -479,7 +484,7 @@ const routes: Routes = [
{
path: "sends",
component: SendComponent,
data: { titleId: "send" } satisfies DataProperties,
data: { titleId: "send" } satisfies RouteDataProperties,
},
{
path: "sm-landing",
@@ -494,7 +499,7 @@ const routes: Routes = [
{
path: "create-organization",
component: CreateOrganizationComponent,
data: { titleId: "newOrganization" } satisfies DataProperties,
data: { titleId: "newOrganization" } satisfies RouteDataProperties,
},
{
path: "settings",
@@ -503,12 +508,12 @@ const routes: Routes = [
{
path: "account",
component: AccountComponent,
data: { titleId: "myAccount" } satisfies DataProperties,
data: { titleId: "myAccount" } satisfies RouteDataProperties,
},
{
path: "preferences",
component: PreferencesComponent,
data: { titleId: "preferences" } satisfies DataProperties,
data: { titleId: "preferences" } satisfies RouteDataProperties,
},
{
path: "security",
@@ -517,7 +522,7 @@ const routes: Routes = [
{
path: "domain-rules",
component: DomainRulesComponent,
data: { titleId: "domainRules" } satisfies DataProperties,
data: { titleId: "domainRules" } satisfies RouteDataProperties,
},
{
path: "subscription",
@@ -532,19 +537,19 @@ const routes: Routes = [
{
path: "",
component: EmergencyAccessComponent,
data: { titleId: "emergencyAccess" } satisfies DataProperties,
data: { titleId: "emergencyAccess" } satisfies RouteDataProperties,
},
{
path: ":id",
component: EmergencyAccessViewComponent,
data: { titleId: "emergencyAccess" } satisfies DataProperties,
data: { titleId: "emergencyAccess" } satisfies RouteDataProperties,
},
],
},
{
path: "sponsored-families",
component: SponsoredFamiliesComponent,
data: { titleId: "sponsoredFamilies" } satisfies DataProperties,
data: { titleId: "sponsoredFamilies" } satisfies RouteDataProperties,
},
],
},
@@ -559,7 +564,7 @@ const routes: Routes = [
import("./tools/import/import-web.component").then((mod) => mod.ImportWebComponent),
data: {
titleId: "importData",
} satisfies DataProperties,
} satisfies RouteDataProperties,
},
{
path: "export",
@@ -569,12 +574,12 @@ const routes: Routes = [
),
data: {
titleId: "exportVault",
} satisfies DataProperties,
} satisfies RouteDataProperties,
},
{
path: "generator",
component: GeneratorComponent,
data: { titleId: "generator" } satisfies DataProperties,
data: { titleId: "generator" } satisfies RouteDataProperties,
},
],
},

View File

@@ -23,6 +23,7 @@
"@bitwarden/vault-export-ui": ["../../libs/tools/export/vault-export/vault-export-ui/src"],
"@bitwarden/importer/core": ["../../libs/importer/src"],
"@bitwarden/importer/ui": ["../../libs/importer/src/components"],
"@bitwarden/key-management": ["../../libs/key-management/src"],
"@bitwarden/platform": ["../../libs/platform/src"],
"@bitwarden/send-ui": ["../../libs/tools/send/send-ui/src"],
"@bitwarden/vault": ["../../libs/vault/src"],