* [PM-15506] Wire up vNextOrganizationService for libs/common and libs/angular (#12683)
* Wire up vNextOrganizationService in PolicyService
* Wire vNextOrganizationService in SyncService
* wire vNextOrganizationService for EventCollectionService
* wire vNextOrganizationService for KeyConnectorService
* wire up vNextOrganizationService for CipherAuthorizationService
* Wire up vNextOrganizationService in PolicyService
* Wire vNextOrganizationService in SyncService
* wire vNextOrganizationService for EventCollectionService
* wire vNextOrganizationService for KeyConnectorService
* wire up vNextOrganizationService for CipherAuthorizationService
* wire vNextOrganizationService for share.component
* wire vNextOrganizationService for collections.component
* wire vNextOrganizationServcie for add-account-credit-dialog
* wire vNextOrganizationService for vault-filter.service
* fix browser errors for vNextOrganizationService implementation in libs
* fix desktop errors for vNextOrganizationService implementation for libs
* fix linter errors
* fix CLI errors on vNextOrganizationServcie implementations for libs
* [PM-15506] Wire up vNextOrganizationService for web client (#12810)
PR to a feature branch, no need to review until this goes to main.
* implement vNextOrganization service for browser client (#12844)
PR to feature branch, no need for review yet.
* wire vNextOrganizationService for licence and some web router guards
* wire vNextOrganizationService in tests
* remove vNext notation for OrganizationService and related
* Merge branch 'main' into ac/pm-15506-vNextOrganizationService
* fix tsstrict error
* fix test, fix ts strict error
* remove todo
* Retrieve cache cipher for add-edit form
* user prefilled cipher for add-edit form
* add listener for clearing view cache
* clear local cache when clearing global state
* track initial value of cache for down stream logic that should only occur on non-cached values
* add feature flag for edit form persistence
* add tests for cipher form cache service
* fix optional initialValues
* add services to cipher form storybook
* fix strict types
* rename variables to be platform agnostic
* use deconstructed collectionIds variable to avoid them be overwritten
* use the originalCipherView for initial values
* add comment about signal equality
* prevent events from being emitted when adding uris to the existing form
- This stops other values from being overwrote in the initialization process
* add check for cached cipher when adding initial uris
* Remove LP fileless importer
- Remove content scripts
- Remove additions to message handlers and notifcation queue
- Remove UI elements for the importer
- Remove the actual importer code
- Remove unsued keys from en/messages.json
Remove feature flag "browser-fileless-
import"
Update webpack.config and manifest files to no longer include content scripts
* Move feature flag idp-auto-submit-login under autofill grouping
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Bug fix for PM-15914 where switching users would incorrectly share cached
derived states. The `DerivedStateProvider` now uses a `WeakMap` to maintain
separate caches for each user's state `Observable`.
- Modifies `DefaultDerivedStateProvider` to use `WeakMap` for caching
- Each user's state `Observable` gets its own definition cache
- Added test to verify correct behavior during user switching
- Allows proper garbage collection of unused state caches
This fixes issues where:
- Users would see other users' cached states after switching accounts
- Derived states weren't properly isolated between users
- Cache keys didn't distinguish between different user states
* Fix biometrics not working in firefox or windows
* Remove logs
* Update badge after biometric unlock
* Add removal todo note
* Remove debug logging
* Fix type warnings
* Fix userkey typing in background biometrics service
* Simplify types for userkey in foreground-browser-biometrics and runtime.background.ts
* Add process reload logging
* Fix autoprompt not working when no process reload happened
* Fix instant reprompt on firefox lock
* Fix biometrics enabling error on chrome
* Update apps/browser/src/key-management/biometrics/foreground-browser-biometrics.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* FIx build & linting
---------
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* [deps] SM: Update typescript-eslint monorepo to v8
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hinton <hinton@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* PM-16947 - JsLibServices - register default DefaultLoginApprovalComponentService
* PM-16947 - DeviceResponse - add interface for DevicePendingAuthRequest
* PM-16947 - Web translations - migrate all LoginApprovalComponent translations from desktop to web
* PM-16947 - LoginApprovalComp - (1) Add loading state (2) Refactor to return proper boolean results (3) Don't create race condition by trying to respond to the close event in the dialog and re-sending responses upon approve or deny click
* PM-16947 - DeviceManagementComponent - added support for approving and denying auth requests.
* PM-16947 - LoginApprovalComp - Add validation error
* PM-16947 - LoginApprovalComponent - remove validation service for now.
* PM-16947 - Re add validation
* PM-16947 - Fix LoginApprovalComponent tests
* [PM-16098] Add decryptionFailure flag to CipherView
* [PM-16098] Add failedToDecryptCiphers$ observable to CipherService
* [PM-16098] Introduce decryption-failure-dialog.component
* [PM-16098] Disable cipher rows for the Web Vault
* [PM-16098] Show decryption error dialog on vault load or when attempting to view/edit a corrupted cipher
* [PM-16098] Browser - Show decryption error dialog on vault load or when attempting to view/edit a corrupted cipher
* [PM-16098] Desktop - Show decryption error dialog on vault load or when attempting to view a corrupted cipher. Remove edit/clone context menu options and footer actions.
* [PM-16098] Add CS link to decryption failure dialog
* [PM-16098] Return cipherViews and move filtering of isDeleted to consumers
* [PM-16098] Throw an error when retrieving cipher data for key rotation when a decryption failure is present
* [PM-16098] Properly filter out deleted, corrupted ciphers when showing dialog within the Vault
* [PM-16098] Show the decryption error dialog when attempting to view a cipher in trash and disable the restore option
* [PM-16098] Exclude failed to decrypt ciphers from getAllDecrypted method and cipherViews$ observable
* [PM-16098] Avoid re-sorting remainingCiphers$ as it was redundant
* [PM-16098] Update tests
* [PM-16098] Prevent opening view dialog in AC for corrupted ciphers
* [PM-16098] Remove withLatestFrom operator that was causing race conditions when navigating away from the individual vault
* [PM-16098] Ensure decryption error dialog is only shown once on Desktop when switching accounts
Adds a device management tab under settings -> security that allows users to:
- View and manage their account's connected devices
- Remove/deactivate devices
- See device details like platform, last login, and trust status
- Sort and filter device list with virtual scrolling
Resolves PM-1214
* add disabledInteractionsUris state to the domain settings service
* add routes and ui for user disabledInteractionsUris state management
* use disabled URIs service state as a preemptive conditon to injecting content scripts
* move disabled domains navigation button from account security settings to autofill settings
* update disabled domain terminology to blocked domain terminology
* update copy
* handle blocked domains initializing with null value
* add dismissable banner to the vault view when the active autofill tab is on the blocked domains list
* add autofill blocked domain indicators to autofill suggestions section header
* add BlockBrowserInjectionsByDomain feature flag and put feature behind it
* update router config to new style
* update tests and cleanup
* use full-width-notice slot for domain script injection blocked banner
* convert thrown error on content script injection block to a warning and early return
* simplify and enspeeden state resolution for blockedInteractionsUris
* refactor feature flag state fetching and update tests
* document domain settings service
* remove vault component presentational updates
* Migrated folder service from using active user state to single user state
Added extra test cases for encrypted folder and decrypted folders
Updated derived state to use decrypt with key
* Update callers in the web
* Update callers in the browser
* Update callers in libs
* Update callers in cli
* Fixed test
* Fixed folder state test
* Fixed test
* removed duplicate activeUserId
* Added takewhile operator to only make calls when userId is present
* Simplified to accept a single user id instead of an observable
* Required userid to be passed from notification service
* [PM-15635] Folders not working on desktop (#12333)
* Added folders memory state definition
* added decrypted folders state
* Refactored service to remove derived state
* removed combinedstate and added clear decrypted folders to methods
* Fixed test
* Fixed issue with editing folder on the desktop app
* Fixed test
* Changed state name
* fixed ts strict issue
* fixed ts strict issue
* fixed ts strict issue
* removed unnecessasry null encrypteed folder check
* Handle null folderdata
* [PM-16197] "Items with No Folder" shows as a folder to edit name and delete (#12470)
* Force redcryption anytime encryption state changes
* Fixed text file
* revert changes
* create new object with nofolder instead of modifying exisiting object
* Fixed failing test
* switched to use memory-large-object
* Fixed ts sctrict issue
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
* Changes for the reseller alert
* Resolve the null error
* Refactor the reseller service
* Fix the a failing test due to null date
* Fix the No overload matches error
* Resolve the null error
* Resolve the null error
* Resolve the null error
* Change the date format
* Remove unwanted comment
* Refactor changes
* Add the feature flag
* feat: re-implement getEnvironment as an observable
* feat: deprecate `getEnvironment`
* fix: use correct environment function in SdkService
* fix: test