clients/apps/web
Shane Melton 8258ea39b0
[PM-18903] Desktop sync issues (#13681)
* [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>
2025-04-15 12:17:41 -07:00
..
.vscode [PM-8836] Move ownership of biometrics to key-management (#10818) 2024-09-30 18:14:32 +02:00
config Removing testing tabs and the learn more link (#12481) 2025-01-08 16:09:05 +01:00
scripts [deps] Autofill: Update prettier to v3 (#7014) 2023-11-29 16:15:20 -05:00
src [PM-18903] Desktop sync issues (#13681) 2025-04-15 12:17:41 -07:00
.dockerignore
.gitignore
config.js
crowdin.yml
dev-server.shared.pem
Dockerfile Add Docker arm64 builds (#14025) 2025-04-02 09:50:31 -04:00
entrypoint.sh
jest.config.js [PM-11766] Introduce SDK client (#10974) 2024-10-07 13:20:50 +02:00
package.json Bumped client version(s) 2025-04-07 10:58:28 +00:00
postcss.config.js eslint: report unused disable directives (#13463) 2025-03-10 09:33:08 -04:00
README.md
tailwind.config.js [PM-17629] Split up KM lib to km and km-ui (#13093) 2025-01-30 11:20:17 +01:00
test.setup.ts [PM-18599] Forbid unknown property and element in tests (#13556) 2025-02-25 14:02:19 -08:00
tsconfig.build.json [PM-15994] Move encrypt service to km ownership (#13220) 2025-02-05 17:39:11 +01:00
tsconfig.json [PM-18599] Forbid unknown property and element in tests (#13556) 2025-02-25 14:02:19 -08:00
tsconfig.spec.json
webpack.config.js [PM-18888] Fix duo redirect URL checks (#14174) 2025-04-11 22:55:02 -04:00

The Bitwarden web project is an Angular application that powers the web vault (https://vault.bitwarden.com/).

Github Workflow build on master Crowdin DockerHub gitter chat

Documentation

Please refer to the Web vault section of the Contributing Documentation for build instructions, recommended tooling, code style tips, and lots of other great information to get you started.