* Implement automatic kdf upgrades
* Fix kdf config not being updated
* Update legacy kdf state on master password unlock sync
* Fix cli build
* Fix
* Deduplicate prompts
* Fix dismiss time
* Fix default kdf setting
* Fix build
* Undo changes
* Fix test
* Fix prettier
* Fix test
* Update libs/angular/src/key-management/encrypted-migration/encrypted-migrations-scheduler.service.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update libs/common/src/key-management/master-password/abstractions/master-password.service.abstraction.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update libs/angular/src/key-management/encrypted-migration/encrypted-migrations-scheduler.service.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Only sync when there is at least one migration
* Relative imports
* Add tech debt comment
* Resolve inconsistent prefix
* Clean up
* Update docs
* Use default PBKDF2 iteratinos instead of custom threshold
* Undo type check
* Fix build
* Add comment
* Cleanup
* Cleanup
* Address component feedback
* Use isnullorwhitespace
* Fix tests
* Allow migration only on vault
* Fix tests
* Run prettier
* Fix tests
* Prevent await race condition
* Fix min and default values in kdf migration
* Run sync only when a migration was run
* Update libs/common/src/key-management/encrypted-migrator/default-encrypted-migrator.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Fix link not being blue
* Fix later button on browser
---------
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* feat: add support for IPC client managed session storage
* feat: update SDK
* fix: using undecorated service in jslib module directly
* feat: add test case for web
* chore: document why we use any type
* fix: `ipc` too short
* typo: omg
* Revert "typo: omg"
This reverts commit 559b05eb5a.
* Revert "fix: `ipc` too short"
This reverts commit 35fc99e10b.
* fix: use camelCase
* add one time setup dialog for auto confirm
* add one time setup dialog for auto confirm
* fix copy, padding, cleanup observable logic
* cleanup
* cleanup
* refactor
* clean up
* more cleanup
* Fix deleted files
This reverts commit 7c18a5e512.
Creates a `PremiumInterestStateService` that manages state which conveys whether or not a user intends to setup a premium subscription. Implemented in Web only. No-op for other clients.
This will apply for users who began the registration process on https://bitwarden.com/go/start-premium/, which is a marketing page designed to streamline users who intend to setup a premium subscription after registration.
* expose local db file to extension
* fetch from local db as fallback; only fetch new data on changed checksum; fetch from cdn
* check for undefined chrome runtime (for easy Storybook mocking)
* update capital letters lint
* add audit api tests
* add bash script to fetch local db info and split it to meet FF size limits
* add readme
* Rename README.md to readme.md
* remove leftover file
* remove unused methods from audit service
* remove local db logic
* wip
* revert local db build changes
* add tests; sub to updates directly; refactor teardown logic
* fix eslint crashing
* remove temp premium override
* remove unused test
* update timer value
* run prettier
* refetch all domains on app version change
* fix log statement
* harden fetching
* filter empty domains
* fix type issue
* fix typo
* fix type error
* fix cleanup
* saved WIP
* created at risk password callout service to hold state for callout data. wip
* update at-risk-password-callout to use states for tracking showing and dismissing success banner
* adding spec file for new serive
* update styles to match figma
* minor wording changes
* fix undefined lint error in at risk password callout
* moved service to libs
* added another route guard so when user clears all at risk items they are directed back to the vault page
* small cleanup in at risk callout component and at risk pw guard
* clean up code in at risk password callout component
* update state to memory
* refactor for readability at risk password callout component
* move state update logic from component to at risk password callout service
* fix: bypass router cache on back() in popout
* Revert "fix: bypass router cache on back() in popout"
This reverts commit 23f9312434.
* refactor updatePendingTasksState call
* refactor at risk password callout component and service. remove signals, implement logic through observables. Completed value for tasks utilized.
* clean up completedTasks in at risk password callout service
* add updated state value to prevent banner among diff clients
* move hasInteracted call to page component to avoid looping
* remove excess call in service
* update icon null logic in banner component
* update the callout to use a new banner
* fix classes
* updating banners in at risk password callout component
* anchor tag
* move at-risk callout to above nudges
* update `showCompletedTasksBanner$` variable naming
---------
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Nick Krantz <nick@livefront.com>
* wip
* feat: add dynamic states
* feat: re-implement badge service with dynamic state functions
* feat: completely remove old static states
* feat: debounce calls to badge api per tab
* feat: use group-by to avoid re-setting all tabs on 1 tab change
* feat: simplify autofill badge updater
* feat: add hanging function test
* chore: clean up badge service
* feat: simplify private updateBadge
* feat: remove unnecessary Set usage
* fix: tests that broke after setState rename
* chore: clean up badge api
* PM-22661 - Start bringing in code from original PR
* PM-22661 - SendTokenService - implement and test hash send password
* PM-22661 - Starting to pull in SDK state to SendTokenService
* PM-22661 - WIP on default send token service
* PM-22661 - Build out TS helpers for TryGetSendAccessTokenError
* PM-22661 - WIP
* PM-22661 - Decent progress on getting _tryGetSendAccessToken wired up
* PM-22661 - Finish service implementation (TODO: test)
* PM-22661 - DefaultSendTokenService - clear expired tokens
* PM-22661 - SendTokenService - tests for tryGetSendAccessToken$
* PM-22661 - DefaultSendTokenService - more tests.
* PM-22661 - Refactor to create domain facing type for send access creds so we can internally map to SDK models instead of exposing them.
* PM-22661 - DefaultSendTokenService tests - finish testing error scenarios
* PM-22661 - SendAccessToken - add threshold to expired check to prevent tokens from expiring in flight
* PM-22661 - clean up docs and add invalidateSendAccessToken
* PM-22661 - Add SendAccessToken tests
* PM-22661 - Build out barrel files and provide send token service in jslib-services.
* PM-22661 - Improve credential validation and test the scenarios
* PM-22661 - Add handling for otp_generation_failed
* PM-22661 - npm i sdk version 0.2.0-main.298 which has send access client stuff
* PM-22661 - Bump to latest sdk changes for send access for testing.
* PM-22661 - fix comment to be accurate
* PM-22661 - DefaultSendTokenService - hashSendPassword - to fix compile time error with passing a Uint8Array to Utils.fromBufferToB64, add new overloads to Utils.fromBufferToB64 to handle ArrayBuffer and ArrayBufferView (to allow for Uint8Arrays). Then, test new scenarios to ensure feature parity with old fromBufferToB64 method.
* PM-22661 - Utils.fromBufferToB64 - remove overloads so ordering doesn't break test spies.
* PM-22661 - utils.fromBufferToB64 - re-add overloads to see effects on tests
* PM-22661 - revert utils changes as they will be done in a separate PR.
* PM-22661 - SendTokenService tests - test invalidateSendAccessToken
* PM-22661 - DefaultSendTokenService - add some storage layer tests
* PM-22661 - Per PR feedback fix comment
* PM-22661 - Per PR feedback, optimize writes to state for send access tokens with shouldUpdate.
* PM-22661 - Per PR feedback, update clear to be immutable vs delete (mutation) based.
* PM-22661 - Per PR feedback, re-add should update for clear method.
* PM-22661 - Update libs/common/src/auth/send-access/services/default-send-token.service.ts
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
* PM-22661 - Update libs/common/src/auth/send-access/services/default-send-token.service.ts
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
* PM-22661 - Update libs/common/src/auth/send-access/services/default-send-token.service.ts
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
---------
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
* fix(nx): add rootDir to existing project.json files
The @nx/js:tsc executor was creating builds with a structural mismatch where TypeScript
output files lived in a nested src/ directory, but package.json pointed to non-existent
dist/ paths. This caused "Cannot find module" errors throughout the dependency chain.
This fix adds the rootDir configuration to flatten the build output structure and updates
all package.json main/types fields to match the actual file locations.
Changes applied systematically across all affected libraries:
• Added "rootDir": "libs/{name}/src" to project.json build options
• Updated package.json "main" from "dist/index.js" to "index.js"
• Updated package.json "types" from "dist/index.d.ts" to "index.d.ts"
* fix(nx-plugin): set rootDir for any newly generated libs
The basic-lib generator was creating new libraries with the same package.json path bugs
that we just fixed in existing libraries. Without this template fix, any newly generated
library would inherit the broken configuration pattern.
Updated the generator templates to include:
• Added rootDir configuration to project.json template
• Fixed package.json template paths to use flattened structure
• Corrected template syntax bug (missing space in <%= name %>)
This ensures all future libraries created with "nx generate @bitwarden/nx-plugin:basic-lib"
will have proper build configuration from the start, preventing regression of the
systematic rootDir issue.
If a user is part of an org that has the `RequireSso` policy, when that user successfully logs in we add their email to a local `ssoRequiredCache` on their device. The next time this user goes to the `/login` screen on this device, we will use that cache to determine that for this email we should only show the "Use single sign-on" button and disable the alternate login buttons.
These changes are behind the flag: `PM22110_DisableAlternateLoginMethods`
* added master password unlock and decryption option fields into identity token connect response
* incorrect master password unlock response parsing
* use sdk
* use sdk
* better type checking on response parsing
* not using sdk
* revert of bad merge conflicts
* revert of bad merge conflicts
* master password unlock setter in state
* unit test coverage for responses processing
* master password unlock in identity user decryption options
* unit test coverage
* unit test coverage
* unit test coverage
* unit test coverage
* lint error
* set master password unlock data in state on identity response and sync response
* revert change in auth's user decryption options
* remove unnecessary cast
* better docs
* change to relative imports
* MasterPasswordUnlockData serialization issue
* explicit undefined type for `syncUserDecryption`
* incorrect identity token response tests
* 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