1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-06 00:13:28 +00:00
Commit Graph

3035 Commits

Author SHA1 Message Date
Nick Krantz
5967cf0539 [PM-14571] At Risk Passwords - Badge Update (#15983)
* add exclamation badge for at risk passwords on tab

* add berry icon for the badge when pending tasks are present

* remove integration wtih autofill for pending task badge

* add ability to override Never match strategy
- This is helpful for non-autofill purposes but cipher matching is still needed. This will default to the domain.

* add at-risk-cipher badge updater service

* Revert "add exclamation badge for at risk passwords on tab"

This reverts commit a9643c03d5.

* remove nullish-coalescing

* ensure that all user related observables use the same user.id

---------

Co-authored-by: Shane Melton <smelton@bitwarden.com>
2025-09-02 15:09:20 -05:00
Nik Gilmore
232dd89814 [PM-19998] Add arrow icons to vault carousel component (#16041)
* Add arrow icons to vault carousel component

* Fix carousel next button and update tests

* Add new unit tests for back/next buttons

* Copy 'next' string from web/src/locales to browser/src/_locales

* Fix layout / spacing on carousel arrows

* Remove 'next' string from non-en locales

* Fix lint errors on carousel tests

* Add I18n provider to storybook for carousel

* Fix spacing for carousel button row

* Update carousel arrows to use small icon variant

* Add label attr to carousel buttons

* Add next string to locales  for Desktop
2025-09-02 11:48:46 -07:00
neuronull
048d8a5f79 Remove UseTreeWalkerApiForPageDetailsCollection feature flag (#16130)
* remove flag and instances of use

* feedback jprusik: additional removals of pageContainsShadowDomElements

* feedback jprusik: remove a stray logic branch
2025-09-02 08:46:30 -06:00
Nick Krantz
e4c75b3c49 Revert "PM-23386 Display autofill options after sync (#15906)" (#16222)
This reverts commit 8c51050eda.
2025-08-29 14:57:19 -05:00
Nick Krantz
de928e9ba1 Fix SDK typings (#16223)
* fix SDK typings for `uuidAsString`

* add `load_flags` to mock SDK instance
2025-08-29 14:27:49 -05:00
Oscar Hinton
e0da2671b4 [PM-13374] Update all SDK uuids (#14962)
* fix: broken SDK interface

* Fix all compile errors related to uuids

* Fix browser desktop

* Fix tests

---------

Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
2025-08-29 13:09:33 -04:00
Oscar Hinton
63af0ad711 [CL-836] Extract base css variables (#14733)
* Extract base variables

* Get tw to consume font css variables
2025-08-29 10:43:38 +02:00
Patrick-Pimentel-Bitwarden
c828b3c4f4 Auth/pm 23620/auth request answering service (#15760)
* feat(notification-processing): [PM-19877] System Notification Implementation - Implemented auth request answering service.

* test(notification-processing): [PM-19877] System Notification Implementation - Added tests.
2025-08-28 13:47:05 -04:00
neuronull
2fe9f4b138 Fix copy labels and toasts for ssh key items in web and browser (#16154) 2025-08-28 10:42:29 -06:00
Jeffrey Holland
8c51050eda PM-23386 Display autofill options after sync (#15906)
* PM-23386 Display autofill options after sync

* Clear the cipher state instead of changing caching

* Fix `true` param that isn't needed anymore
2025-08-28 10:55:18 +02:00
Vicki League
38f62a0149 [PM-25222] Fix svg alignment issues caused by new preflight defaults (#16181) 2025-08-27 12:40:16 -04:00
Addison Beck
5f7c0ae999 build: ensure new libraries are added to the root jest.config (#16166)
* Add missing libs to jest.config.js

Added 15 missing libraries to the jest projects array:
- libs/assets
- libs/client-type
- libs/core-test-utils
- libs/dirt/card
- libs/guid
- libs/logging
- libs/messaging-internal
- libs/messaging
- libs/serialization
- libs/state-test-utils
- libs/state
- libs/storage-core
- libs/storage-test-utils
- libs/tools/export/vault-export/vault-export-ui
- libs/user-core

This ensures all existing libraries with jest.config.js files are included in CI test runs.

* Update basic-lib generator to add new libs to jest.config.js

- Added updateJestConfig function that automatically adds new libraries to jest.config.js
- Function finds the appropriate alphabetical position for the new library
- Added comprehensive tests for the new functionality
- Ensures new libraries are included in CI test runs from creation

This prevents the issue where new libraries are created but their tests
are not run in CI because they are missing from the jest configuration.

* Fix import statements in state-definitions and deserialization-helpers tests

- Fixed ClientLocations import in state-definitions.spec.ts to use @bitwarden/storage-core instead of relative import
- Simplified deserialization-helpers.spec.ts import to use library root @bitwarden/serialization
2025-08-27 11:56:42 -04:00
Maciej Zieniuk
4c960906fa Account Recovery with Key Connector enabled not working prior to removal of Master Password (#15616) 2025-08-27 16:32:18 +02:00
Nick Krantz
fcc2bc96d1 [PM-21024] Use Server for Password Change URLs (#14912)
* migrate change login password service to use bitwarden server rather than fetch directly

- avoids CSP entirely

* add `HelpUsersUpdatePasswords` policy to policy type

* add `HelpUsersUpdatePasswordsPolicy` components

* allow list description override for policy description

* add `HelpUsersUpdatePasswordsPolicy` when the feature flag is enabled

* apply `HelpUsersUpdatePasswords` to everyone in an org

* use policy to guard the well known password API

* fix tests

* refactor to use `policyAppliesToUser$`

* remove policy work for change password - this was removed from scope

* update copy for show favicon setting - it now handles both favicons and change password urls

* remove favicon setting description - no longer needed

* only call change password service when the setting is enabled

* add popover for permitting cipher details

* import permit popover directly into the settings component

* replace `nativeFetch` with `fetch`

* use string literal to construct URL rather than `URL` class
- The `getIconsUrl` can return with an appended path which the new URL constructor will strip when passed as the base parameter

* use string literal to construct URL rather than `URL` class instance (#16045)

- The `getIconsUrl` can return with an appended path which the new URL constructor will strip when passed as the base parameter

* [PM-24716] UI changes for Change URI work (#16043)

* use platform service to launch the URI
- this allows desktop to open a separate browser instance rather than use electron

* fix spacing on web app

* add bitLink for focus/hover states

* remove spacing around links
2025-08-27 09:03:44 -05:00
neuronull
34cd41988a Remove EnableNewCardCombinedExpiryAutofill feature flag (#16131) 2025-08-26 12:44:08 -06:00
Brandon Treston
28b5a2bb5e [PM-22717] Expose DefaultUserCollectionEmail to clients (#15643)
* enforce restrictions based on collection type, set default collection type

* fix ts strict errors

* fix default collection enforcement in vault header

* enforce default collection restrictions in vault collection row

* enforce default collection restrictions in AC vault header

* enforce default collection restriction for select all

* fix ts strict error

* switch to signal, fix feature flag

* fix story

* clean up

* remove feature flag, move check for defaultCollecion to CollecitonView

* fix test

* remove unused configService

* fix test: coerce null to undefined for collection Id

* clean up leaky abstraction for default collection

* fix ts-strict error

* fix parens

* add new property to models, update logic, refactor for ts-strict

* fix type

* rename defaultCollection getter

* clean up

* clean up

* clean up, add comment, fix submit

* add comment

* add feature flag

* check model for name

* cleanup readonly logic, remove featureflag logic

* wip

* refactor CollectionRequest into Create and Update models

* fix readonly logic

* cleanup

* set defaultUserCollectionEmail in decryption from Collection

* split save into update/create methods

* fix readonly logic

* fix collections post and put requests

* add defaultUserCollection email to model when submitting collection dialog
2025-08-26 11:42:52 -04:00
Todd Martin
ad2dfe1e99 feat(notifications): [PM-19388] Enable push notifications on locked clients
* Add back notifications connection on locked accounts

* Updated tests.

* Make sure web push connection service is started synchronously

* Fixed merge conflicts.

---------

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
2025-08-26 11:41:15 -04:00
Jordan Aasen
9ed69ef4b8 [PM-24304][PM-24305] - [Defect] Some fields are not disabled when editing an item from My Vault (#15982)
* disable all remaining form fields for editing personally owned My Items

* fix failing tests

* ensure collection field is also properly disabled

* clean up logic

* fix failing test

* fix test

* refactor variable to avoid using `is` prefix

* directly reference parent form for status rather than subscribe to it

* refactor subscription for form status changes

* use observable as an Output

* disable attachment button on desktop vault when the form

* disable custom field components when custom fields already exist and parent form is disabled

* disable attachments button in the browser when the edit form is disabled

* grab icon button instance for disabled state

---------

Co-authored-by: Nick Krantz <nick@livefront.com>
2025-08-25 15:48:00 -07:00
Jordan Aasen
ae2259db2f [PM-17723] - [Web | Browser | Desktop] Cannot search for port in vault login item URI (#15962)
* add port search in uriExtractor

* revert to original check
2025-08-25 14:07:22 -07:00
Justin Baur
5f7f1d1924 Resolve state <-> state-test-utils circular dependency (#16093)
* Resolve state <-> state-test-utils circular dependency

* Fix type errors
2025-08-25 12:38:28 -04:00
Vicki League
777b92660a [CL-706] Display all svg icons in Storybook (#16111) 2025-08-25 12:09:20 -04:00
Maciej Zieniuk
5b402d9c38 cleanup remove password on start for desktop (#15957) 2025-08-22 23:14:02 +02:00
Shane Melton
65230a9c3e [PM-24229] Preserve existing cipher date fields when using CipherExport.toView (#15993)
* [PM-24229] Ensure existing dates are persisted when using CipherExport.toView

* [PM-24229] Test both null and undefined

* [PM-24229] Add test for copied date values
2025-08-22 12:21:23 -07:00
Vicki League
dd4ec9c5d9 [CL-735][CL-743] Finish migrating form control components to signals (#15927) 2025-08-22 15:17:14 -04:00
Nick Krantz
9ecf2686e5 [PM-22987] Hide download for corrupt attachments (#16023)
* spelling fix

* hide download button for corrupt attachments

* add missing translations for desktop
2025-08-22 12:38:35 -05:00
Jason Ng
6e9da95230 [PM-22371] remove end user activation flag (#16067) 2025-08-22 12:56:16 -04:00
Shane Melton
4676a122da [PM-24143] Search performance improvements (#16070)
* [PM-24143] Add perUserCache$ to SearchService index$

* [PM-24143] Cleanup and optimize isSearchable

* [PM-24143] Remove unused search flags and subscription from the vault-items component

* [PM-24143] Add search text for desktop vault items. Consolidate SearchTextDebounceInterval constant to SearchService

* [PM-24143] Ensure cipher search indexing is non-blocking

* [PM-24143] Remove redundant index ciphers operation

* [PM-24143] Add search performance measurements

* [PM-24143] Remove artificial delay

* [PM-24143] Remove startWith from index$ to avoid basic search with lunr queries

* [PM-24143] Re-organize isSearchable to check long lunr queries for index existence
2025-08-22 09:32:36 -07:00
Bryan Cunningham
eb84faaf99 [CL-825] Provide dimensions to checkbox to fix ios rendering bug (#16109)
* absolutely position checkbox to fix ios rendering bug

* remove absolute positioning. Dimensions fix it
2025-08-22 10:01:23 -04:00
Daniel García
92c9aa7b3e Use FakeStateProvider in SdkService tests (#16126) 2025-08-22 15:19:18 +02:00
Daniel García
12df7def61 [PM-19479] Client-Managed SDK state definition (#14839)
* [PM-19479] Client-Managed SDK state definition

* Remove test code

* Update based on latest sdk

* Add DB config

* Remove uuid conversion step

* Move mapper into separate file

* Revert to client managed state

* Move mapper to Cipher

* Typo

---------

Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
2025-08-22 14:21:52 +02:00
Thomas Avery
a6e7efddeb [PM-23627] Require publicKey for keyService getFingerprint (#15933)
* require public key on keyService getFingerprint

* Update consumers and add error handling & logging
2025-08-21 15:49:19 -05:00
Vicki League
805b6fe7aa [CL-573] Move all svg icons to new libs/assets (#16020)
* create libs/assets

* treeshake lib and filter out non-icons from icon story

* update docs

* fix icon colors in browser and desktop

* better name for vault icon

* move illustrations
2025-08-21 11:35:59 -05:00
Kyle Denney
f07518084f [PM-24554] remove code for feature flag (#16092) 2025-08-21 09:36:57 -05:00
Bryan Cunningham
b0f46004ff [CL-796] unrevert aria disabled buttons (#15924)
* Use aria-disabled for button disabled state

* remove import from testing story

* use aria-disabled attr on bitLink button

* remove unnecessary story attrs

* remove disabled attr if on button element

* create caprture click util

* use caprture click util and fix tests

* fix lint errors

* fix event type

* combine click capture and attr modification

* fix lint error. Commit spec changes left out of last commit in error

* inject element ref

* move aria-disabled styles to common

* move disabled logic into util

* fix broken async actions stories

* fix broken tests asserting disabled attr

* have test check for string true vlalue

* fix Signal type

* fix form-field story import

* remove injector left in error

* aria-disable icon buttons

* update form component css selector to look for aria-disabled buttons

* use correct types. pass nativeElement directly

* add JSDoc comment for util function

* WIP

* WIP

* inject service in directive

* remove console log

* remove disabled attr left in error

* update comments

* remove unnecessary logic

* remove :disabled psuedo selector as its apparently not needed

* fix event type

* coerce disabled attr to boolean

* remove duplicate style concat left by conflict resolution

* add back buttonStyles default

* move reactive logic back to helper

* add test to ensure menu button doesn't open when trigger is disabled

* remove menu toggle to fix tests

* remove disabled menu story

* Fix usage of bitLink in verify email component

* Update varaible name

* no longer pass destroyRef
2025-08-21 09:14:08 -04:00
Andreas Coroiu
0daa6913d2 feat: add ipc service usage docs (#16000) 2025-08-21 14:42:56 +02:00
Bernd Schoolmann
1463fc804d Remove platform keygen service re-exports (#16081) 2025-08-21 09:45:49 +02:00
Vicki League
3bccca7cce [CL-691] Update style of the menu component (#15890) 2025-08-20 16:00:48 -04:00
Bryan Cunningham
3901cf2859 [CL-805] [CL-521] anon layout illustrations (#16002)
* Add illustrations to anon layout

* update ids and fill classes

* Add illustrations to 404 page

* update svg sizes

* update logo size and placement to match loaded state

* update anon layout logo size to match loading screens

* update 404 logo size and spacing

* update svgIcon imports

* remove 404 footer

* absolutely position svg to fix random positioning issues

* update logo placement

* add padding to battom of logo container

* add back tw-link class

* update anon layout padding
2025-08-20 15:06:24 -04:00
Vicki League
487a04f579 [PM-25022] Fix squished avatar (#16097) 2025-08-20 13:41:39 -04:00
Patrick-Pimentel-Bitwarden
719a43d050 Feat PM-19877 System Notification Processing (#15611)
* feat(notification-processing): [PM-19877] System Notification Implementation - Minor changes to popup logic and removed content in login component.

* docs(notification-processing): [PM-19877] System Notification Implementation - Added more docs.

* docs(notification-processing): [PM-19877] System Notification Implementation - Added markdown document.

* fix(notification-processing): [PM-19877] System Notification Implementation - Updated condition for if notification is supported.

* fix(notification-processing): [PM-19877] System Notification Implementation - Updated services module with correct platform utils service.
2025-08-20 12:42:16 -04:00
Bernd Schoolmann
bcd73a9c00 Move auth key-generation-service imports (#16078) 2025-08-20 09:18:59 -07:00
Konrad
c1fab79ae3 [PM-24774] importTargetHint variable inflection fix (#16025)
* Prepare full string

* Format fix

* Fix lint: Execute `npm run prettier`

---------

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-08-20 18:09:19 +02:00
Kyle Denney
999ade9707 [PM-24552] - remove code for feature flag (#16022) 2025-08-20 10:31:20 -05:00
cd-bitwarden
ad145fc4ff [SM-1274] Add Project Events to the Log List in Admin Console (#15442)
* Adding enums for additional event logs for secrets

* updating messages

* Updating messages to be consistent for logs

* Displaying project logs, and fixing search query param searching in projects list, having deleted log for secrets and projects not show as a link

* Viewing secret and project event logs in event modal, adding to the context menu for secrets and projects the ability to view the logs if user has permission. Restricting logs to SM projs and Secs if the logged in user has event log access but not SM access.

* lint

* Lint Fixes

* fix to messages file

* fixing lint

* Bug fix, make sure event logs related to service accounts are still links that take you to the object

* removing unused import
2025-08-20 10:45:58 -04:00
Bryan Cunningham
4449d8baf6 [CL-689][CL-799] Fix Icon button a11y errors (#15750)
* Throw error if appA11yTitle is null in icon button

* Add required label input

* Fix icon button errors in CL components and storeis

* fix popover aria-label errors

* remove commented code

* add labels to icon buttons in browser

* add labels to icon buttons in web

* add labels to icon buttons in license

* add labels to icon buttons in send

* add labels to icon buttons in angular

* fix missing pipe error

* fix sso icon button missed in error

* update labels in vault

* add section expand button label

* Adding labels to icon buttons

* Add lint rule to not allow icon buttons without label input

* rename util file

* trigger updates on title change

* update eslint rule name and folder

* add edit collection label to vault headers

* fix web header story label

* add show/hide summary labels

* update summary message

* fix breadcrumbs label message

* fix JSDoc to use correct input

* remove commented code

* use label as aria-label always. Remove init function

* add moreBreadcrumbs translation message to other apps

* add @bitwarden/team-ui-foundation as code owner for component eslint rules

* switch title to const variable

* add jsdoc comment on what the label input is used for

* [PM-22415] Tax ID notifications for Organizations and Providers (#15996)

* [NO LOGIC] Rename BillableEntity to BitwardenSubscriber

This helps us maintain paraody with server where we call this choice type ISubscriber. I chose BitwardenSubscriber to avoid overlap with RxJS

* [NO LOGIC] Move subscriber-billing.client to clients folder

* [NO LOGIC] Move organization warnings under organization folder

* Move getWarnings from OrganizationBillingApiService to new OrganizationBillingClient

I'd like us to move away from stashing so much in libs and utilizing the JsLibServicesModule when it's not necessary to do so. These are invocations used exclusively by the Web Vault and, until that changes, they should be treated as such

* Refactor OrganizationWarningsService

There was a case added to the Inactive Subscription warning for a free trial, but free trials do not represent inactive subscriptions so this was semantically incorrect. This creates another method that pulls the free trial warning and shows a dialog asking the user to subscribe if they're on one.

* Implement Tax ID Warnings throughout Admin Console and Provider Portal

* Fix linting error

* Jimmy's feedback

* remove duplicate messages keys

* revert changes to popover stories

* add back dupe myItems key for now as it was already here

* fix directive type errors

* remove variable left in error from merge conflict

* revert unintentional change to reports layout

* add back reports change

---------

Co-authored-by: Alex Morask <144709477+amorask-bitwarden@users.noreply.github.com>
2025-08-19 15:15:41 -04:00
Bernd Schoolmann
3c448ee0f9 Move tools key-generation-service imports (#16077) 2025-08-19 14:00:53 +02:00
Oscar Hinton
a45f053a7f [PM-22309] Resolve TypeScript 5.8 blockers for tool owned files (#16065)
* Add explicit return types to resolve typescript 5.8 blockers

* Remove type from input
2025-08-19 11:13:22 +02:00
rr-bw
581e64b8f7 refactor(auth-state-updates): [Auth/PM-18544] Add shouldUpdate() checks to frequently updated state (#15994)
Adds `shouldUpdate()` checks to frequently updated disk state in the Auth domain, specifically:
- `account_verifyNewDeviceLogin`
- `token_accessToken`
- `token_refreshToken`
- `masterPassword_masterKeyHash`
This ensures that the state only updates if the new value is different from the previous value, thus avoiding unnecessary updates.
2025-08-18 13:09:41 -07:00
Will Martin
827c4c0301 [PM-15847] libs/components strict migration (#15738)
This PR migrates `libs/components` to use strict TypeScript.

- Remove `@ts-strict-ignore` from each file in `libs/components` and resolved any new compilation errors
- Converted ViewChild and ContentChild decorators to use the new signal-based queries using the [Angular signal queries migration](https://angular.dev/reference/migrations/signal-queries)
  - Made view/content children `required` where appropriate, eliminating the need for additional null checking. This helped simplify the strict migration.

---

Co-authored-by: Vicki League <vleague@bitwarden.com>
2025-08-18 15:36:45 -04:00
Justin Baur
939fd402c3 [PM-24677] Slim StateService down so it can be moved to state lib (#16021)
* Slim StateService down so it can be moved to state lib

* Fix accidental import changes

* Add `switchAccount` assertion

* Needs to use mock
2025-08-18 12:37:25 -04:00