1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-06 19:53:59 +00:00

Merge branch 'main' into pm-18701-optional-payment-modal-after-signup

This commit is contained in:
cyprain-okeke
2025-06-23 09:29:00 +01:00
committed by GitHub
57 changed files with 107 additions and 84 deletions

View File

@@ -22,6 +22,8 @@ jobs:
env:
_BOT_EMAIL: 106330231+bitwarden-devops-bot@users.noreply.github.com
_BOT_NAME: bitwarden-devops-bot
permissions:
contents: write
steps:
- name: Setup
id: setup

View File

@@ -8,6 +8,9 @@ jobs:
reply:
name: Auto-reply
runs-on: ubuntu-22.04
permissions:
discussions: write
contents: read
steps:
- name: Get discussion label and template name

View File

@@ -4,6 +4,9 @@ on:
workflow_call:
pull_request:
types: [labeled, unlabeled, opened, edited, synchronize]
permissions:
contents: read
pull-requests: read
jobs:
enforce-label:
name: EnforceLabel

View File

@@ -22,6 +22,9 @@ defaults:
run:
shell: bash
permissions:
contents: read
jobs:
lint:
name: Lint

View File

@@ -8,6 +8,9 @@ on:
paths:
- '**/messages.json'
permissions:
contents: read
jobs:
lint:
name: Lint

View File

@@ -22,6 +22,8 @@ jobs:
setup:
name: Setup
runs-on: ubuntu-22.04
permissions:
contents: read
outputs:
release_version: ${{ steps.version.outputs.version }}
steps:
@@ -53,6 +55,8 @@ jobs:
name: Locales Test
runs-on: ubuntu-22.04
needs: setup
permissions:
contents: read
steps:
- name: Checkout repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -89,6 +93,8 @@ jobs:
needs:
- setup
- locales-test
permissions:
contents: write
steps:
- name: Download latest Release build artifacts
if: ${{ github.event.inputs.release_type != 'Dry Run' }}

View File

@@ -18,6 +18,8 @@ jobs:
setup:
name: Setup
runs-on: ubuntu-22.04
permissions:
contents: read
outputs:
release_version: ${{ steps.version.outputs.version }}
tag_version: ${{ steps.version.outputs.tag }}
@@ -50,6 +52,8 @@ jobs:
runs-on: ubuntu-22.04
needs:
- setup
permissions:
contents: write
steps:
- name: Download latest build artifacts
if: ${{ github.event.inputs.release_type != 'Dry Run' }}

View File

@@ -8,6 +8,11 @@ jobs:
stale:
name: 'Check for stale issues and PRs'
runs-on: ubuntu-22.04
permissions:
actions: write
contents: read
issues: write
pull-requests: write
steps:
- name: 'Run stale action'
uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0

View File

@@ -36,7 +36,7 @@ import { DialogService, ToastService } from "@bitwarden/components";
import { BiometricStateService, BiometricsService, KeyService } from "@bitwarden/key-management";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { PopOutComponent } from "../../../platform/popup/components/pop-out.component";
import { PopupRouterCacheService } from "../../../platform/popup/view-cache/popup-router-cache.service";

View File

@@ -70,7 +70,7 @@ import {
import { BiometricErrors, BiometricErrorTypes } from "../../../models/biometricErrors";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { PopOutComponent } from "../../../platform/popup/components/pop-out.component";
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";

View File

@@ -1,6 +1,6 @@
import { createChromeTabMock } from "../../../autofill/spec/autofill-mocks";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import {
AuthPopoutType,

View File

@@ -1,7 +1,7 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
const AuthPopoutType = {
unlockExtension: "auth_unlockExtension",

View File

@@ -13,7 +13,7 @@ jest.mock("../popup/utils/auth-popout-window", () => {
};
});
jest.mock("../../platform/popup/browser-popup-utils", () => ({
jest.mock("../../platform/browser/browser-popup-utils", () => ({
inSingleActionPopout: jest.fn(),
inPopout: jest.fn(),
}));
@@ -22,9 +22,7 @@ import { DuoLaunchAction } from "@bitwarden/auth/angular";
import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-provider-type";
import { BrowserApi } from "../../platform/browser/browser-api";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import BrowserPopupUtils from "../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../platform/browser/browser-popup-utils";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import {

View File

@@ -6,9 +6,7 @@ import {
import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-provider-type";
import { BrowserApi } from "../../platform/browser/browser-api";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import BrowserPopupUtils from "../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../platform/browser/browser-popup-utils";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import {

View File

@@ -13,16 +13,14 @@ jest.mock("../popup/utils/auth-popout-window", () => {
};
});
jest.mock("../../platform/popup/browser-popup-utils", () => ({
jest.mock("../../platform/browser/browser-popup-utils", () => ({
inPopup: jest.fn(),
}));
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import { openTwoFactorAuthEmailPopout } from "../../auth/popup/utils/auth-popout-window";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import BrowserPopupUtils from "../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../platform/browser/browser-popup-utils";
import { ExtensionTwoFactorAuthEmailComponentService } from "./extension-two-factor-auth-email-component.service";

View File

@@ -9,9 +9,7 @@ import { DialogService } from "@bitwarden/components";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import { openTwoFactorAuthEmailPopout } from "../../auth/popup/utils/auth-popout-window";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import BrowserPopupUtils from "../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../platform/browser/browser-popup-utils";
// TODO: popup state persistence should eventually remove the need for this service
export class ExtensionTwoFactorAuthEmailComponentService

View File

@@ -20,9 +20,7 @@ import {
import { UnlockOptions } from "@bitwarden/key-management-ui";
import { BrowserApi } from "../../../platform/browser/browser-api";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import { BrowserRouterService } from "../../../platform/popup/services/browser-router.service";

View File

@@ -17,9 +17,7 @@ import { LockComponentService, UnlockOptions } from "@bitwarden/key-management-u
import { BiometricErrors, BiometricErrorTypes } from "../../../models/biometricErrors";
import { BrowserApi } from "../../../platform/browser/browser-api";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
// FIXME (PM-22628): Popup imports are forbidden in background
// eslint-disable-next-line no-restricted-imports
import { BrowserRouterService } from "../../../platform/popup/services/browser-router.service";

View File

@@ -1,6 +1,6 @@
import { createChromeTabMock } from "../../autofill/spec/autofill-mocks";
import { BrowserApi } from "../browser/browser-api";
import { BrowserApi } from "./browser-api";
import BrowserPopupUtils from "./browser-popup-utils";
describe("BrowserPopupUtils", () => {

View File

@@ -1,9 +1,21 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
import { BrowserApi } from "../browser/browser-api";
import { ScrollOptions } from "./abstractions/browser-popup-utils.abstractions";
import { PopupWidthOptions } from "./layout/popup-size.service";
import { BrowserApi } from "./browser-api";
/**
*
* Value represents width in pixels
*/
export const PopupWidthOptions = Object.freeze({
default: 380,
wide: 480,
"extra-wide": 600,
});
type PopupWidthOptions = typeof PopupWidthOptions;
export type PopupWidthOption = keyof PopupWidthOptions;
class BrowserPopupUtils {
/**

View File

@@ -5,7 +5,7 @@ import { JslibModule } from "@bitwarden/angular/jslib.module";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { IconButtonModule } from "@bitwarden/components";
import BrowserPopupUtils from "../browser-popup-utils";
import BrowserPopupUtils from "../../browser/browser-popup-utils";
@Component({
selector: "app-pop-out",

View File

@@ -7,20 +7,10 @@ import {
POPUP_STYLE_DISK,
} from "@bitwarden/common/platform/state";
import BrowserPopupUtils from "../browser-popup-utils";
/**
*
* Value represents width in pixels
*/
export const PopupWidthOptions = Object.freeze({
default: 380,
wide: 480,
"extra-wide": 600,
});
type PopupWidthOptions = typeof PopupWidthOptions;
export type PopupWidthOption = keyof PopupWidthOptions;
import BrowserPopupUtils, {
PopupWidthOption,
PopupWidthOptions,
} from "../../browser/browser-popup-utils";
const POPUP_WIDTH_KEY_DEF = new KeyDefinition<PopupWidthOption>(POPUP_STYLE_DISK, "popup-width", {
deserializer: (s) => s,

View File

@@ -15,7 +15,7 @@ import { filter, first, firstValueFrom, map, Observable, of, switchMap, tap } fr
import { GlobalStateProvider } from "@bitwarden/common/platform/state";
import { POPUP_ROUTE_HISTORY_KEY } from "../../../platform/services/popup-view-cache-background.service";
import BrowserPopupUtils from "../browser-popup-utils";
import BrowserPopupUtils from "../../browser/browser-popup-utils";
/**
* Preserves route history when opening and closing the popup

View File

@@ -53,7 +53,7 @@ import { ExcludedDomainsComponent } from "../autofill/popup/settings/excluded-do
import { NotificationsSettingsComponent } from "../autofill/popup/settings/notifications.component";
import { PremiumV2Component } from "../billing/popup/settings/premium-v2.component";
import { RemovePasswordComponent } from "../key-management/key-connector/remove-password.component";
import BrowserPopupUtils from "../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../platform/browser/browser-popup-utils";
import { popupRouterCacheGuard } from "../platform/popup/view-cache/popup-router-cache.service";
import { CredentialGeneratorHistoryComponent } from "../tools/popup/generator/credential-generator-history.component";
import { CredentialGeneratorComponent } from "../tools/popup/generator/credential-generator.component";

View File

@@ -13,7 +13,7 @@ import { SdkLoadService } from "@bitwarden/common/platform/abstractions/sdk/sdk-
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
import { BrowserApi } from "../../platform/browser/browser-api";
import BrowserPopupUtils from "../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../platform/browser/browser-popup-utils";
import { PopupSizeService } from "../../platform/popup/layout/popup-size.service";
import { PopupViewCacheService } from "../../platform/popup/view-cache/popup-view-cache.service";

View File

@@ -6,7 +6,7 @@ import { Component, OnInit } from "@angular/core";
import { JslibModule } from "@bitwarden/angular/jslib.module";
import { CalloutModule } from "@bitwarden/components";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { FilePopoutUtilsService } from "../services/file-popout-utils.service";
@Component({

View File

@@ -4,7 +4,7 @@ import { Component } from "@angular/core";
import { JslibModule } from "@bitwarden/angular/jslib.module";
import { ButtonModule, DialogModule, DialogService, TypographyModule } from "@bitwarden/components";
import BrowserPopupUtils from "../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../platform/browser/browser-popup-utils";
@Component({
selector: "send-file-popout-dialog",

View File

@@ -2,7 +2,7 @@ import { Injectable } from "@angular/core";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
/**
* Service for determining whether to display file popout callout messages.

View File

@@ -26,7 +26,7 @@ import {
} from "@bitwarden/vault";
import { BrowserFido2UserInterfaceSession } from "../../../../../autofill/fido2/services/browser-fido2-user-interface.service";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { PopupRouterCacheService } from "../../../../../platform/popup/view-cache/popup-router-cache.service";
import { PopupCloseWarningService } from "../../../../../popup/services/popup-close-warning.service";

View File

@@ -42,7 +42,7 @@ import {
import { BrowserFido2UserInterfaceSession } from "../../../../../autofill/fido2/services/browser-fido2-user-interface.service";
import { BrowserApi } from "../../../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { PopOutComponent } from "../../../../../platform/popup/components/pop-out.component";
import { PopupFooterComponent } from "../../../../../platform/popup/layout/popup-footer.component";
import { PopupHeaderComponent } from "../../../../../platform/popup/layout/popup-header.component";

View File

@@ -16,7 +16,7 @@ import { CipherType } from "@bitwarden/common/vault/enums";
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
import { ToastService } from "@bitwarden/components";
import BrowserPopupUtils from "../../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../../platform/browser/browser-popup-utils";
import { FilePopoutUtilsService } from "../../../../../../tools/popup/services/file-popout-utils.service";
import { OpenAttachmentsComponent } from "./open-attachments.component";

View File

@@ -20,7 +20,7 @@ import { CipherId } from "@bitwarden/common/types/guid";
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
import { BadgeModule, ItemModule, ToastService, TypographyModule } from "@bitwarden/components";
import BrowserPopupUtils from "../../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../../platform/browser/browser-popup-utils";
import { FilePopoutUtilsService } from "../../../../../../tools/popup/services/file-popout-utils.service";
@Component({

View File

@@ -8,7 +8,7 @@ import { VaultSettingsService } from "@bitwarden/common/vault/abstractions/vault
import { CipherType } from "@bitwarden/common/vault/enums";
import { IconButtonModule, TypographyModule } from "@bitwarden/components";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { VaultPopupAutofillService } from "../../../services/vault-popup-autofill.service";
import { VaultPopupItemsService } from "../../../services/vault-popup-items.service";
import { PopupCipherView } from "../../../views/popup-cipher.view";

View File

@@ -19,7 +19,7 @@ import {
import { ButtonModule, DialogService, MenuModule, NoItemsModule } from "@bitwarden/components";
import { BrowserApi } from "../../../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { NewItemDropdownV2Component, NewItemInitialValues } from "./new-item-dropdown-v2.component";

View File

@@ -14,7 +14,7 @@ import { ButtonModule, DialogService, MenuModule, NoItemsModule } from "@bitward
import { AddEditFolderDialogComponent } from "@bitwarden/vault";
import { BrowserApi } from "../../../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { AddEditQueryParams } from "../add-edit/add-edit-v2.component";
export interface NewItemInitialValues {

View File

@@ -50,7 +50,7 @@ import {
} from "@bitwarden/vault";
import { BrowserApi } from "../../../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { VaultPopupAutofillService } from "../../../services/vault-popup-autofill.service";
import { VaultPopupSectionService } from "../../../services/vault-popup-section.service";
import { PopupCipherView } from "../../../views/popup-cipher.view";

View File

@@ -36,7 +36,7 @@ import { DecryptionFailureDialogComponent, VaultIcons } from "@bitwarden/vault";
import { CurrentAccountComponent } from "../../../../auth/popup/account-switching/current-account.component";
import { BrowserApi } from "../../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../platform/browser/browser-popup-utils";
import { PopOutComponent } from "../../../../platform/popup/components/pop-out.component";
import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component";

View File

@@ -27,7 +27,7 @@ import { DialogService, ToastService } from "@bitwarden/components";
import { CopyCipherFieldService, PasswordRepromptService } from "@bitwarden/vault";
import { BrowserApi } from "../../../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { PopupRouterCacheService } from "../../../../../platform/popup/view-cache/popup-router-cache.service";
import { VaultPopupScrollPositionService } from "../../../services/vault-popup-scroll-position.service";

View File

@@ -50,7 +50,7 @@ import {
import { sendExtensionMessage } from "../../../../../autofill/utils/index";
import { BrowserApi } from "../../../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../../../platform/browser/browser-popup-utils";
import { PopOutComponent } from "../../../../../platform/popup/components/pop-out.component";
import { PopupRouterCacheService } from "../../../../../platform/popup/view-cache/popup-router-cache.service";
import { BrowserPremiumUpgradePromptService } from "../../../services/browser-premium-upgrade-prompt.service";

View File

@@ -2,7 +2,7 @@ import { TestBed } from "@angular/core/testing";
import qrcodeParser from "qrcode-parser";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { BrowserTotpCaptureService } from "./browser-totp-capture.service";

View File

@@ -4,7 +4,7 @@ import qrcodeParser from "qrcode-parser";
import { TotpCaptureService } from "@bitwarden/vault";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
/**
* Implementation of TotpCaptureService for the browser which captures the

View File

@@ -28,7 +28,7 @@ import {
} from "../../../autofill/services/abstractions/autofill.service";
import { InlineMenuFieldQualificationService } from "../../../autofill/services/inline-menu-field-qualification.service";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { VaultPopupAutofillService } from "./vault-popup-autofill.service";

View File

@@ -35,7 +35,7 @@ import {
} from "../../../autofill/services/abstractions/autofill.service";
import { InlineMenuFieldQualificationService } from "../../../autofill/services/inline-menu-field-qualification.service";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { closeViewVaultItemPopout, VaultPopoutType } from "../utils/vault-popout-window";
@Injectable({

View File

@@ -24,14 +24,12 @@ import {
SelectModule,
} from "@bitwarden/components";
import { PopupWidthOption } from "../../../platform/browser/browser-popup-utils";
import { PopOutComponent } from "../../../platform/popup/components/pop-out.component";
import { PopupCompactModeService } from "../../../platform/popup/layout/popup-compact-mode.service";
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";
import {
PopupWidthOption,
PopupSizeService,
} from "../../../platform/popup/layout/popup-size.service";
import { PopupSizeService } from "../../../platform/popup/layout/popup-size.service";
import { VaultPopupCopyButtonsService } from "../services/vault-popup-copy-buttons.service";
@Component({

View File

@@ -12,7 +12,7 @@ import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.serv
import { BadgeComponent, ItemModule, ToastOptions, ToastService } from "@bitwarden/components";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import { PopOutComponent } from "../../../platform/popup/components/pop-out.component";
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";

View File

@@ -2,7 +2,7 @@ import { mock } from "jest-mock-extended";
import { CipherType } from "@bitwarden/common/vault/enums";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
import {
openViewVaultItemPopout,

View File

@@ -3,7 +3,7 @@
import { CipherType } from "@bitwarden/common/vault/enums";
import { BrowserApi } from "../../../platform/browser/browser-api";
import BrowserPopupUtils from "../../../platform/popup/browser-popup-utils";
import BrowserPopupUtils from "../../../platform/browser/browser-popup-utils";
const VaultPopoutType = {
viewVaultItem: "vault_viewVaultItem",

View File

@@ -7708,8 +7708,8 @@
"message": "Access tokens",
"description": "Title for the section displaying access tokens."
},
"newAccessToken": {
"message": "New access token",
"createAccessToken": {
"message": "Create access token",
"description": "Button label for creating a new access token."
},
"expires": {

View File

@@ -13,7 +13,7 @@
(click)="newAccessTokenEvent.emit()"
>
<i class="bwi bwi-plus" aria-hidden="true"></i>
{{ "newAccessToken" | i18n }}
{{ "createAccessToken" | i18n }}
</button>
</bit-no-items>

View File

@@ -1,7 +1,7 @@
<form [formGroup]="formGroup" [bitSubmit]="submit">
<bit-dialog dialogSize="default">
<ng-container bitDialogTitle>
<span>{{ "newAccessToken" | i18n }}</span>
<span>{{ "createAccessToken" | i18n }}</span>
<span class="tw-text-sm tw-normal-case tw-text-muted">
{{ data.serviceAccountView.name }}
</span>
@@ -21,7 +21,7 @@
<ng-container bitDialogFooter>
<button class="tw-normal-case" type="submit" bitButton buttonType="primary" bitFormButton>
{{ "newAccessToken" | i18n }}
{{ "createAccessToken" | i18n }}
</button>
<button type="button" bitButton buttonType="secondary" bitFormButton bitDialogClose>
{{ "cancel" | i18n }}

View File

@@ -1,4 +1,4 @@
<bit-dialog dialogSize="default" [title]="'newAccessToken' | i18n" [subtitle]="data.subTitle">
<bit-dialog dialogSize="default" [title]="'createAccessToken' | i18n" [subtitle]="data.subTitle">
<div bitDialogContent>
<bit-callout type="info" [title]="'accessTokenCallOutTitle' | i18n">
{{ "downloadAccessToken" | i18n }}<br />

View File

@@ -1,5 +1,4 @@
<div class="tw-mb-4">
<h1>{{ "eventLogs" | i18n }}</h1>
<div class="tw-mt-4 tw-flex tw-items-center" [formGroup]="eventsForm">
<bit-form-field>
<bit-label>{{ "from" | i18n }}</bit-label>

View File

@@ -39,7 +39,7 @@
(click)="openNewAccessTokenDialog()"
>
<i class="bwi bwi-plus" aria-hidden="true"></i>
{{ "newAccessToken" | i18n }}
{{ "createAccessToken" | i18n }}
</button>
</app-header>
<router-outlet></router-outlet>

View File

@@ -161,6 +161,14 @@ export class UserStateSubject<
this.outputSubscription = userState$
.pipe(
switchMap((userState) => userState.state$),
map((stored) => {
if (stored && typeof stored === "object" && ALWAYS_UPDATE_KLUDGE in stored) {
// related: ALWAYS_UPDATE_KLUDGE FIXME
delete stored[ALWAYS_UPDATE_KLUDGE];
}
return stored;
}),
this.declassify(encryptor$),
this.adjust(combineLatestWith(constraints$)),
takeUntil(anyComplete(account$)),

View File

@@ -3,11 +3,10 @@
[title]="'generatorNudgeTitle' | i18n"
(onDismiss)="dismissGeneratorSpotlight(NudgeType.GeneratorNudgeStatus)"
>
<p
class="tw-text-main tw-mb-0"
bitTypography="body2"
[attr.aria-label]="'generatorNudgeBodyAria' | i18n"
>
<p class="tw-text-main tw-mb-0" bitTypography="body2">
<span class="tw-sr-only">
{{ "generatorNudgeBodyAria" | i18n }}
</span>
<span aria-hidden="true">
{{ "generatorNudgeBodyOne" | i18n }} <i class="bwi bwi-generate"></i>
{{ "generatorNudgeBodyTwo" | i18n }}

View File

@@ -172,7 +172,7 @@ describe("GeneratorProfileProvider", () => {
await awaitAsync();
const result = await firstValueFrom(stateProvider.getUserState$(SettingsKey, SomeUser));
expect(result).toEqual({ foo: "next value" });
expect(result).toMatchObject({ foo: "next value" });
});
it("waits for the user to become available", async () => {