* Draft optimization of getNestedCollectionTree
* Added feature flag to wrap nestedTraverse_vNext. added the old implementation back in for feature flagging.
* Correction from CR
* Copied tests over for the vNext method.
---------
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
* allow use of common spec in lib/vault tests
* pass readonly collections to the assign collection component
- The assign to collections component filters them out already.
-They're also needed to display copy within the component
* add hint to assign to collections component when there are read only collections assigned to a cipher already
* add readonly hint to desktop
* only show collection hint for collections that are assigned to the provided ciphers
* consider admin/owner edit everything permission when assigning to collections
* fix icon in test
* fix(enums-eslint): Enum Rule for ESLint - Added enums in the warnings for eslint.
* fix(enums-eslint): Enum Rule for ESLint - Updated to error in both places for enums.
* fix(enums-eslint): Enum Rule for ESLint - Added new eslint plugin for warning on enums.
* fix(enums-eslint): Enum Rule for ESLint - Changed based on suggestion.
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
* refactor(browser-platform-utils): Remove Deprecation and Fix Code - Changed usages of firefox to private and moved the usages to the preferred public method and removed the deprecations.
* fix(enums-eslint): Enum Rule for ESLint - Updated to error and added disable rules for all other places.
* fix(enums-eslint): Enum Rule for ESLint - Undid other changes by accident
Cleans up migrated components by removing unnecessary old behaviour.
- Removes ng-template and ViewChild used by the old Modal Service.
- Remove aria-dismiss used by old Modals.
- Remove aria-haspopup and aria-expanded on bitMenuTriggerFor since it's handled by the directive.
* [CL-571] Update icons to new fileset and metaphors (#14163)
* [CL-518] Convert icons docs to stories (#14299)
* [CL-574] Update inline autofill icons (#14379)
---------
Co-authored-by: William Martin <contact@willmartian.com>
* Add getFlatCollectionTree function and corresponding tests
- Implemented getFlatCollectionTree to flatten a tree structure of collections.
- Added unit tests for getFlatCollectionTree to verify functionality.
* Refactor VaultComponent to utilize getFlatCollectionTree to search within all sub-levels
- Updated vault.component.ts to import and use getFlatCollectionTree for flattening collection nodes during search.
- Ensured consistent handling of collections across both vault and admin-console components.
* Wire organization ID into AttachmentsV2Component for org-based ciphers
* Enhance AttachmentsV2Component to accept organization ID for improved handling of org-based ciphers
* Integrate organization ID into VaultComponent for AttachmentsV2Component to enhance org-based cipher handling
* Add unit tests for CipherAttachmentsComponent to validate attachment saving behavior for admins
- Introduced mocks for ApiService and OrganizationService in the test setup.
- Updated tests to check `saveAttachmentWithServer` calls with the correct parameters, including an `isAdmin` flag for admin API usage.
* Fix unit tests for AttachmentsV2Component by adding mocks for ApiService and OrganizationService
* Fix AttachmentsV2Component tests
* remove old add-edit-custom-fields component
- Also removes the individual vault add-edit-component where the custom fields component was used
- All of these components were unused
* remove unused translations for web
* [PM-18707] Use different BroadcasterSubscriptionId in base view component to avoid collision with desktop view component
* [PM-18707] Use userId instead of payloadUserId for cipher notification syncs
* [PM-19032] Live Sync on Desktop (#13851)
* migrate the vault-items to an observables rather than async/promises
- this helps keep data in sync with the service state and avoids race conditions
* migrate the view component to an observables rather than async/promises
- this helps keep data in sync with the service state and avoids race conditions
* decrypt saved cipher from server
* bump timeout for upserting ciphers
* mark `go` as async in desktop vault
- previously it was a floating promise
* Revert "mark `go` as async in desktop vault"
This reverts commit fd28f40b18.
* Revert "bump timeout for upserting ciphers"
This reverts commit e963acc377.
* move vault utilities to `common` rather than `lib` to avoid circular dependencies
* use `perUserCache$` for `cipherViews$` to avoid new subscriptions from being created
* use userId from observable rather than locally set to be the most up to date
* [PM-18707] Add clearBuffer$ input to perUserCache$ helper so that the internal share replay buffers can be cleared
* [PM-18707] Rework forceCipherViews$ to clearBuffer$ refactor
- Add dependency for cipherDecryptionKeys$ for the cipherViews so that decryption is never attempted without keys
* [PM-18707] Add overload to perUserCache to satisfy type checker
* [PM-18707] Fix overloads
* [PM-18707] Add check for empty failed to decrypt ciphers
* [PM-18707] Mark vault component for check after observable emits.
The cipherViews$ observable now persists between subscriptions, meaning that updates via the sync push notifications can occur outside the AngularZone causing delays in updating the view.
---------
Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>
Co-authored-by: Nick Krantz <nick@livefront.com>
* [PM-17563] Remove references to Angular from TaskService
* [PM-17563] Move Task module to libs/common/vault to avoid Angular dependency
* [PM-17563] Fix bad imports
* [PM-17563] Fix a few more missed imports
* vault filter use SingleUserState
* fixing tests
* Changes so that userId is passed to service, instead of access in service
* passing activeUserId from the components to service
* Sugggested changes
* updating functions to be abstract on vault-filter.service
* updating all functions to be abstract on vault filter service
* migrate css classes
* remove bulk share dialog components and related modules and i18n keys
* Revert "remove bulk share dialog components and related modules and i18n keys"
This reverts commit 40060b6011.
* display inline information error message
* Add collection service
* Refactor the code
* Add a feature flag to the change
* Add the modal pop for free org
* Use custom error messages passed from the validator
* Add the js document
* Merge changes in main
* Add the changes after file movement
* remove these floating promises
* Adding unit test and seprating the validation
* fix the unit test request
* Remove the conditional statment in test
* Refactored totp service to use sdk
Fixed strict typescript issues
* Fixed dependency issues
* Returned object that contains code and period, removed get interval function
* removed dependencies
* Updated to use refactored totp service
* removed sdk service undefined check
* removed undefined as an input from the getCode function
* Made getcode$ an observable
* refactored to use getcodee$
* Filter out emmissions
* updated sdk version
* Fixed readability nit
* log error on overlay if totp response does not return a code
* fix(totpGeneration): [PM-11941] Totp countdown not working on clients
* Used optional chaining if totpresponse returns null or undefined
Adds a banner in the web vault to notify users when they have pending device authentication requests. The banner links to the device management screen. Also implements real-time updates to the device management table when new auth requests are received.
JIRA: PM-15063
Minimum effort migration of the filters to not depend on bootstrap. This migrates the card to tailwind but keeps most of the custom css as it's not strictly required to be migrated.
* add browser extension prompt page with initial loading state
* add browser extension icon
* move browser extension prompt to state
* add installation link for error state
* automatically open extension when possible for browser-reprompt-page
* refactor browser tabs query into a standalone method
* add success message state for auto-opening browsers
* Refactor `VaultOnboardingMessages` to `VaultMessages` to be more generic
* add auto-open extension messages to `VaultMessages` enum
* add bitwarden icon
* Add manual error state for firefox users
* add extension prompt routing
* fix incorrect imports
* add mobile screen for browser prompt
* remove comment
* fix typo in code comment
* update key for `checkBwInstalled` method
* add check for safari before attempting to send a message
* break translation for manual opening into two parts
* Cipher service web changes
* Updated browser client to pass user id to cipher service observable changes
* Cli changes
* desktop changes
* Fixed test
* Libs changes
* Fixed merge conflicts
* Fixed merge conflicts
* removed duplicate reference fixed conflict
* Fixed test
* Fixed test
* Fixed test
* Fixed desturcturing issue on failed to decrypt ciphers cipher service
* Updated abstraction to use method syntax
* Fixed conflicts
* Fixed test on add edit v2
Passed active userId to delete function
* Used getUserId utility function
* made vault changes
* made suggestion changes
* made suggestion changes
* made suggestion changes
* Replace getUserId function calls with pipe operator syntax for better consistency
* fixed merge conflicts
* revert mistake made of usinf account activity during merge conflict fix
* fixed conflicts
* fixed tests
* Enable UI refresh on web by default
Removing all conditional code around the `ExtensionRefresh`-feature-flag on the web-UI
* Remove no longer needed extensRefresh helpers
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Move encrypt service to km ownership
* Update imports for encrypt service abstraction and move bulk encrypt service abstraction
* Fix imports
* Fix further imports
* Fix imports
* Fix worker import