1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-06 11:43:51 +00:00

3398 Commits

Author SHA1 Message Date
Nik Gilmore
3f5ca7155b [PM-31282] Bugfix: Pass orgId to Admin Bulk Delete API 2026-02-03 12:35:13 -08:00
Sola
eaa7e5ab2a [PM-30894] Support importing SSH keys from 1pux (#18391)
* Support importing SSH keys from 1pux

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>

* Propagate SSH key import error

---------

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-02-03 13:18:34 -07:00
Mike Amirault
51a99fecd8 [PM-31429] Add missing helper text for password protected Sends, remove unused one (#18694)
* [PM-31429] Add missing helper text for password protected Sends, remove unused one

* Put one UI change behind feature flag, add back required translations

* Reorder translation

* Add spaces

* Come full circle, remove last couple of committed changes
2026-02-03 15:18:23 -05:00
Stephon Brown
38465c059c [PM-29602] Update Cart Summary for Upgrade Flow (#18605)
* feat(billing): update cart-summary logic

 Add functionality to hide breakdown and allow translation params

* tests(cart-summary): update tests and stories

* feat(pricing): Add quantity support to discount labels

* feat(pricing): discount quantity story

* Revert "feat(pricing): discount quantity story"

This reverts commit 2c00891f1f.

* Revert "feat(pricing): Add quantity support to discount labels"

This reverts commit 8350fdd90f.

* fix(cart-summary): Adjust discount text styling

* feat(pricing): adds support for hidden discount amounts

Allows hiding the formatted amount for discounts in the cart summary.

This is useful for scenarios where the discount amount is displayed
elsewhere or is not relevant to the user.

Updates the storybook to include a story demonstrating this feature.

* feat(pricing): conditionally format currency amounts to show or hide decimals

* Revert "feat(pricing): adds support for hidden discount amounts"

This reverts commit 076724276c.

* Revert "fix(cart-summary): Adjust discount text styling"

This reverts commit d02c12fc2a.

* Revert "discount translation"

* feat(pricing): add credit type to cart summary

* feat(pricing-card): Add i18n and icon component infrastructure

* feat(pricing-card): Apply i18n pipe to pricing card template

* refactor(pricing-card): Replace `<i>` tags with `<bit-icon>` in template

* test(pricing-card): Update tests for i18n and icon component changes

* docs(pricing-card): Enhance Storybook and documentation for new features

* feat(pricing-card): Adds "per user" translation key

* refactor(pricing-card): use property binding for bit-icon name

* docs(pricing-card): expand price cadence options in MDX

* fix(icon): update exports for icon types

* feat(billing): Use strongly typed BitwardenIcon for pricing card buttons

* refactor(pricing): Remove unused I18nService from PricingCardComponent

* fix(pricing): Improve pricing card button icon template null-safety

* fix(pricing-card): format update

Clarifies the description of the `price` property within the PricingCard component documentation.

No functional code changes are included.

* refactor: Update discount label typography in cart summary

* refactor(stories): Rename account credit translation key to premium subscription credit

* feat(pricing-card): update spacing for card without button
2026-02-03 17:47:58 +00:00
bmbitwarden
2d85b62beb PM-31247 interchanged error message (#18644) 2026-02-03 12:18:10 -05:00
John Harrington
201d36201f [PM-30247] Previously archived items are not archived after import (#18546) 2026-02-02 14:38:24 -07:00
lif
2fb63e8f41 [PM-30266] Improve Buttercup CSV import mapping (#18135)
- Handle url field case-insensitively (URL, url, Url)
- Map note field to cipher notes
- Add !type to official props to exclude from custom fields
- Only add non-empty custom fields
- Add comprehensive unit tests

Fixes #17119

Signed-off-by: majiayu000 <1835304752@qq.com>
Co-authored-by: John Harrington <84741727+harr1424@users.noreply.github.com>
2026-02-02 14:36:43 -07:00
Jonathan Prusik
5a397fb44e [PM-29236] Refactor of post-submit notification triggering logic (#18395)
* refactor triggerChangedPasswordNotification logic

* improve triggerChangedPasswordNotification and test coverage to handle scenarios more comprehensively

* restore triggerChangedPasswordNotification logic and move new logic and testing to triggerCipherNotification

* add branching qualification logic for cipher notifications

* add and implement undetermined-cipher-scenario-logic feature flag

* add optional chaining to username comparison of existing login ciphers

* cleanup

* update tests

* prefer explicit length comparisons
2026-02-02 15:01:24 -05:00
Jackson Engstrom
47edae1c21 [PM 21939] Use family icon for free and family orgs
* adds check for a free/family org and updates the icon
2026-02-02 11:56:53 -08:00
Mike Amirault
7f1c68a24d [PM-30675] Fix certain data fields being incorrect in account-restricted exports (#18531) 2026-02-02 13:10:28 -05:00
Jordan Aasen
5d17d9ee71 Revert "[PM-26703]- Browser - Update autofill Behavior (#18467)" (#18723)
This reverts commit 7b583aa0ec.
2026-02-02 09:37:02 -08:00
Nick Krantz
98060d15bc Mark getProfileCreationDate as deprecated (#18651)
* mark `getProfileCreationDate` as deprecated

* add reference to tech debt ticket
2026-02-02 10:59:27 -06:00
rr-bw
1f0e0ca098 refactor(input-password-flows): [Auth/PM-27086] JIT MP org user flow - remove masterKey generation from InputPasswordComponent (#18006)
- Updates `InputPasswordComponent` to emit raw data instead of generating cryptographic properties (`newMasterKey`, `newServerMasterKeyHash`, `newLocalMasterKeyHash`).
  - This helps us in moving away from using the deprecated `makeMasterKey()` method in the component (which takes email as salt) as we seek to eventually separate the email from the salt.
- Updates the `JIT_PROVISIONED_MP_ORG_USER` case of the switch to handle the flow when the `PM27086_UpdateAuthenticationApisForInputPassword` flag is on.

Feature Flag: `PM27086_UpdateAuthenticationApisForInputPassword`
2026-01-30 15:11:59 -08:00
Ike
4a45414f4a [PM-30563] Improve Send Access enumeration protection (#18620)
* feat: sync changes with SDK and server

* Update libs/common/src/auth/send-access/types/invalid-request-errors.type.ts

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* feat: sync changes with SDK and Server projects
sync: sdk version

* chore: update sdk

* chore: update sdk

* chore: prettier

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-01-30 17:16:32 -05:00
Jackson Engstrom
a1bf6afad6 [PM-21564] Hide buttons when user has View access to an item
* Changes attachment modal to remove choose file button and changes upload button to close button if the user doesn't have edit rights to the cipher.
2026-01-30 14:01:10 -08:00
Anders Åberg
903acfa3df Don't make PRF available in any client that is not web/browser, even if it's lying about navigator.credentials (#18687) 2026-01-30 20:55:40 +01:00
Will Martin
7c4ea23f88 [CL-970] delete deprecated drawer (#18577)
* delete bit drawer

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: remove stale drawer export from components barrel file

The drawer directory was deleted but the export statement in index.ts
was not removed, causing import errors.

Co-authored-by: Will Martin <willmartian@users.noreply.github.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Will Martin <willmartian@users.noreply.github.com>
2026-01-30 14:51:54 -05:00
Nick Krantz
93ce914f79 [PM-30638] Cipher Add/Edit dialog focus (#18536)
* allow exporting of the DialogComponent

* focus on dialog header when switching modes

* update to view child fixmes
2026-01-30 10:10:26 -06:00
sven-bitwarden
9e36c19515 Separates policy response model for individual policy data (#18377) 2026-01-29 14:11:31 -06:00
Jared McCannon
ae64706256 [PM-30891] - Create My Items On Restore (#18454)
* Added encrypted default collection name to new feature flagged restore user methods/endpoint.

* corrected filter to use null check with imperative code
2026-01-29 13:56:35 -06:00
Jordan Aasen
7b0957ab5e [PM-29262] - improve performance of premium spotlight observable (#18490)
* improve performance of premium spotlight observable

* re-add comment

* fix test. remove unused service
2026-01-29 09:33:08 -08:00
Bernd Schoolmann
29523b6e74 [PM-31012] Improve loading time for lock component (#18450)
* Improve loading time for lock component

* Reset interval to 1000

* Remove interval import
2026-01-29 15:03:00 +01:00
John Harrington
0740c037a6 [PM-30922] Client changes to encrypt send access email list (#18486) 2026-01-28 14:31:48 -07:00
Vijay Oommen
9d8f1af62b PM-30539 created new component and added a filter (#18630) 2026-01-28 15:19:39 -06:00
Alex Dragovich
c5bd811dfd [PM-31323] change text on toast for send link copy (#18617) 2026-01-28 10:49:20 -08:00
Nik Gilmore
c07beb3b10 [PM-31282] Pass orgId through to API call when SDK feature flag is off (#18619) 2026-01-28 09:38:15 -08:00
Will Martin
5dc49f21d2 [CL-82] rename bit-icon to bit-svg; create new bit-icon component for font icons (#18584)
* rename bit-icon to bit-svg; create new bit-icon for font icons

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* find and replace current usage

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* add custom eslint warning

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix incorrect usage

* fix tests

* fix tests

* Update libs/components/src/svg/index.ts

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Update libs/eslint/components/no-bwi-class-usage.spec.mjs

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* update component api

* update class name

* use icon type in iconButton component

* update type Icon --> BitSvg

* fix bad renames

* fix more renames

* fix bad input

* revert iconButton type

* fix lint

* fix more inputs

* misc fixes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix test

* add eslint ignore

* fix lint

* add comparison story

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-01-28 11:36:27 -05:00
bmbitwarden
0138abf373 PM-29919 email verification on sends (#18260)
* PM-29919 email verification on sends

* PM-29919 resolved build issue

* PM-29919 refined who can view fields

* PM-29919 resolved lint issues

* PM-29919 resolved lint issues

* PM-29919 resolved unit tests

* PM-29919 resolved lint issues

* PM-29919 resolved unit test issue

* PM-29919 resolved pr comments

* PM-29919 resolved pr comments

* PM-29919 resolved unneeded label

* PM-29919 refactored to hide instead of disable

* PM-29919 resolved pr comments

* PM-29919 resolved no auth string in PM-31200

* PM-29919 resolved bugs
2026-01-28 09:39:37 -05:00
Mike Amirault
65b224646d Tools/pm 29918/implement send auth flows (#18270)
* [PM-29918] Implement new Send auth flows

* [PM-29918] Fix types

* Trigger Claude code review

* [PM-29918] Address PR review comments

* [PM-29918] Remove duplicate AuthType const
2026-01-28 09:32:02 -05:00
Brandon Treston
c2da621663 [PM-28413] Remove feature flagged logic (#18566)
* clean up flagged logic

* fix test
2026-01-28 09:31:55 -05:00
Todd Martin
a04566ae11 chore(flags): [PM-31326] Rename ipc-channel-framework feature flag
* Rename feature flag

* Not sure what happened here.  Renaming the class.
2026-01-28 08:25:10 -05:00
Jordan Aasen
7b583aa0ec [PM-26703]- Browser - Update autofill Behavior (#18467)
* apply changes to autofill

* fix tests

* fix and simplify logic
2026-01-27 12:41:33 -08:00
Dave
c82ac0f574 feat(account-switching) [PM-5594]: Enabling account switching causes performance issues on safari (#18339)
* refactor(account-switching) [PM-5594]: Move account switching enabled flag to AccountSwitcherService to accommodate server-side feature flag.

* test(account-switching) [PM-5594]: Update tests to include ConfigService dependency for feature flag.

* refactor(account-switching) [PM-5594]: Remove compile-time account switching flags from browser.

* refactor(account-switching) [PM-5594]: Move initialization to ctor for strict.
2026-01-27 14:27:13 -05:00
Anders Åberg
1b94d16f31 PM-31294: Unlock Passkey using getWebVaultUrl over getHostname (#18597) 2026-01-27 19:08:07 +01:00
Jeffrey Holland
00cf24972d [PM-28079] Add attributes to filter for the mutationObserver (#17832)
* [PM-28079] Add attributes to filter for the mutationObserver

* Update attributes based on Claude suggestions

* Updated remaining attributes

* Adjust placeholder check in `updateAutofillFieldElementData`

* Update ordering of constants and add comment

* Remove `tagName` and `value` from mutation logic

* Add new autocomplete and aria attributes to `updateActions`

* Fix autocomplete handlers

* Fix broken test for `updateAttributes`

* Order attributes for readability in `updateActions`

* Fix tests

---------

Co-authored-by: Jonathan Prusik <jprusik@users.noreply.github.com>
2026-01-27 11:28:02 -05:00
Mike Amirault
fe1410bed3 [PM-30375] Account for differences in RoboForm Windows desktop app CSV export headers (#18403) 2026-01-27 09:53:03 -05:00
lif
8b9ee0df06 fix(importer): preserve protected KeePass custom fields as hidden fields (#18136)
Protected fields (ProtectInMemory="True") were being appended to notes
when they exceeded 200 characters or contained newlines, instead of
being imported as hidden custom fields.

Now protected fields are always imported as hidden fields regardless
of their length or content, preserving their protected status.

Fixes #16897

Signed-off-by: majiayu000 <1835304752@qq.com>
Co-authored-by: John Harrington <84741727+harr1424@users.noreply.github.com>
2026-01-27 07:48:20 -07:00
Maciej Zieniuk
9454189df5 [PM-27283] [BEEEP] Reactive availableVaultTimeoutActions$ in vault timeout settings (#17731)
* reactive `availableVaultTimeoutActions$` in vault timeout settings

* cleanup

* deprecation docs

* explicitly provided user id

* clearer mocking

* better docs
2026-01-27 10:28:13 +00:00
Nik Gilmore
748c7c5446 [PM-30303] Migrate Cipher Delete Operations to use SDK (#18275) 2026-01-26 15:55:49 -08:00
Nick Krantz
ad577860be [PM-28060] Remove Skeleton Feature Flag (#18456)
* remove skeleton ff

* remove unneeded templates
2026-01-26 14:01:53 -06:00
Jordan Aasen
5e8801f7ff [PM-29244] - don't use filename for download attachment label (#18444)
* don't use filename for download attachment label

* fix scroll position in browser vault

* Revert "fix scroll position in browser vault"

This reverts commit 8e415f2c89.

* fix test
2026-01-26 12:00:03 -08:00
Nik Gilmore
06c8c7316d [PM-30301][PM-30302] Use SDK for Create and Update cipher operations (#18149)
* Migrate create and edit operations to use SDK for ciphers

* WIP: Adds admin call to edit ciphers with SDK

* Add client version to SDK intialization settings

* Remove console.log statements

* Adds originalCipherId and collectionIds to updateCipher

* Update tests for new cipehrService interfaces

* Rename SdkCipherOperations feature flag

* Add call to Admin edit SDK if flag is passed

* Add tests for SDK path

* Revert changes to .npmrc

* Remove outdated comments

* Fix feature flag name

* Fix UUID format in cipher.service.spec.ts

* Update calls to cipherService.updateWithServer and .createWithServer to new interface

* Update CLI and Desktop to use new cipherSErvice interfaces

* Fix tests for new cipherService interface change

* Bump sdk-internal and commercial-sdk-internal versions to 0.2.0-main.439

* Fix linting errors

* Fix typescript errors impacted by this chnage

* Fix caching issue on browser extension when using SDK cipher ops.

* Remove commented code

* Fix bug causing race condition due to not consuming / awaiting observable.

* Add missing 'await' to decrypt call

* Clean up unnecessary else statements and fix function naming

* Add comments for this.clearCache

* Add tests for SDK CipherView conversion functions

* Replace sdkservice with cipher-sdk.service

* Fix import issues in browser

* Fix import issues in cli

* Fix type issues

* Fix type issues

* Fix type issues

* Fix test that fails sporadically due to timing issue
2026-01-26 11:43:35 -08:00
Nick Krantz
87555eaabd remove risk insights for premium feature flag (#18446) 2026-01-26 12:07:31 -06:00
Oscar Hinton
d64db8fbf5 [CL-904] Migrate CL/Navigation to use OnPush (#16958)
* Migrate CL/Navigation to use OnPush

* Modernize the code

* Swap to signals and class

* Further tweaks

* Remove this.

* Replace setOpen and setClose with a public signal

* fix merge issues and signal-ifying service

* fix class and style bindings

* fix accidental behavior change from merge conflicts

* fix redundant check

* fix missed ngClass

* fix comment

* Re-add share ng-template

---------

Co-authored-by: Vicki League <vleague@bitwarden.com>
Co-authored-by: Will Martin <contact@willmartian.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-26 11:44:16 -05:00
Rui Tomé
71db33d45d [PM-28842] Add max length validation to master password policy form (#18237)
* Update master password policy dialog to limit the minimum length to 128

* Update master password policy to use dynamic maximum length from Utils

* Add unit tests for MasterPasswordPolicyComponent to validate password length constraints and scoring
2026-01-26 11:38:10 +00:00
Anders Åberg
903026b574 PM-2035: PRF Unlock (web + extension) (#16662)
* PM-13632: Enable sign in with passkeys in the browser extension

* Refactor component + Icon fix

This commit refactors the login-via-webauthn commit as per @JaredSnider-Bitwarden suggestions. It also fixes an existing issue where Icons are not displayed properly on the web vault.

Remove old one.

Rename the file

Working refactor

Removed the icon from the component

Fixed icons not showing. Changed layout to be 'embedded'

* Add tracking links

* Update app.module.ts

* Remove default Icons on load

* Remove login.module.ts

* Add env changer to the passkey component

* Remove leftover dependencies

* PRF Unlock

Cleanup and testes

* Workaround prf type missing

* Fix any type

* Undo accidental cleanup to keep PR focused

* Undo accidental cleanup to keep PR focused

* Cleaned up public interface

* Use UserId type

* Typed UserId and improved isPrfUnlockAvailable

* Rename key and use zero challenge array

* logservice

* Cleanup rpId handling

* Refactor to separate component + icon

* Moved the prf unlock service impl.

* Fix broken test

* fix tests

* Use isChromium

* Update services.module.ts

* missing , in locales

* Update desktop-lock-component.service.ts

* Fix more desktoptests

* Expect a single UnlockOption from IdTokenResponse, but multiple from sync

* Missing s

* remove catches

* Use new control flow in unlock-via-prf.component.ts

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>

* Changed throw behaviour of unlockVaultWithPrf

* remove timeout comment

* refactired webauthm-prf-unlock.service internally

* WebAuthnPrfUnlockServiceAbstraction -> WebAuthnPrfUnlockService

* Fixed any and bad import

* Fix errors after merge

* Added missing PinServiceAbstraction

* Fixed format

* Removed @Inject()

* Fix broken tests after Inject removal

* Return userkey instead of setting it

* Used input/output signals

* removed duplicate MessageSender registration

* nit: Made import relative

* Disable onPush requirement because it would need refactoring the component

* Added feature flag (#17494)

* Fixed ById from main

* Import feature flag from file

* Add missing test providers for MasterPasswordLockComponent

Add WebAuthnPrfUnlockService and DialogService mocks to fix test failures
caused by UnlockViaPrfComponent dependencies.

---------

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2026-01-26 10:53:20 +01:00
SmithThe4th
a2ea4b784d Force sync to get immediate organization revoke on the extension (#18545) 2026-01-23 23:38:23 +00:00
Shane Melton
3a70b94b2d [PM-31199] Fix flaky Vault test (#18544)
* Fix flaky spec file

* Remove duplicate i18nPipe import that was causing warnings
2026-01-23 14:30:40 -08:00
Jason Ng
3228e986af [PM-30890] Desktop Sync Improvements for Archive (#18466) 2026-01-23 15:22:32 -05:00
Vijay Oommen
cf2427848e [PM-30879] Huntress Integration (#18505) 2026-01-23 13:36:54 -06:00