This PR fixes a bug in the LockComponent refresh that affected the setup/save and use passkey flows. The user was wrongly directly to the /vault after unlock instead of to /fido2 (the passkey screen).
Feature Flag: ExtensionRefresh ON
This needs to be done, because Firefox compares the keys case-insensitive when a release is uploaded to the store.
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Consolidates existing SSO components into a single unified component in
libs/auth, matching the new design system. This implementation:
- Creates a new shared SsoComponent with extracted business logic
- Adds feature flag support for unauth-ui-refresh
- Updates page styling including new icons and typography
- Preserves web client claimed domain logic
- Maintains backwards compatibility with legacy views
PM-8114
---------
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
* Add proxy support for file uploads
Instead of using node's native fetch we extend ApiService with NodeApiService to add support for proxies using `node-fetch`
* Fix constructors for FileUploadService in browser
* Fix dependency on ApiService within jslib-services.module
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Use typescript-strict-plugin to iteratively turn on strict
* Add strict testing to pipeline
Can be executed locally through either `npm run test:types` for full type checking including spec files, or `npx tsc-strict` for only tsconfig.json included files.
* turn on strict for scripts directory
* Use plugin for all tsconfigs in monorepo
vscode is capable of executing tsc with plugins, but uses the most relevant tsconfig to do so. If the plugin is not a part of that config, it is skipped and developers get no feedback of strict compile time issues. These updates remedy that at the cost of slightly more complex removal of the plugin when the time comes.
* remove plugin from configs that extend one that already has it
* Update workspace settings to honor strict plugin
* Apply strict-plugin to native message test runner
* Update vscode workspace to use root tsc version
* `./node_modules/.bin/update-strict-comments` 🤖
This is a one-time operation. All future files should adhere to strict type checking.
* Add fixme to `ts-strict-ignore` comments
* `update-strict-comments` 🤖
repeated for new merge files
On `/update-temp-password`, on the light theme the "Logout" link was not showing in the upper-left corner because the text color for an `a` link is our primary blue color, which blended in with the headers background color. This PR changes the logout `a` link to a `button` so that it inherits the header text color. It should be a button anyway since it's calling a function and not simply routing.
* Added conditional to check if a cipher can be delete by user
* Added change detection on push
* Added directive to check if user can delete a cipher
* Added directive to check if user can delete a cipher
* Replaced check with directive
* removed takeUntilDestroyed
Add timeout state management for two-factor authentication flows in web, desktop,
and browser extension clients. Includes:
- New timeout screen component with 5-minute session limit
- Updated UI elements and styling
- Comprehensive test coverage
Refs: PM-13659
* updating new menus to allow tab + enter to submit the link/button
* Updating New actions to use button instead of a for accessibiity purposes
* refactor
* refactor
* test fix
* fixes
* fixing tests
* fixing test
* fixing tests
---------
Co-authored-by: --global <>
* add check for extension prefixes in the three major browsers.
- Firefox does not throw an error or receive the message. Adding checks for Safari and Chrome for safety if this functionality were to change.
* remove unneeded mock rejection
* move prefixes to dedicated array
* refactor protocol check to its own variable
* Add changes for enabled policy
* Remove unused property
* Refactor the changes
* remove duplicated across multiple components
* Add some test and documentations to service
* Correct the comment free family sponsorship for isExemptFromPolicy
* catch errors from `tabSendMessage`
- Removes the need for a timeout when fetching page details
* Add parameter to reject on error
- allows each implementation to decide if they want to handle the error or not
In the legacy `AccountSercurityV1Component` the `updateBiometric(enabled: boolean)` method had an `else` block to handle an `enabled` value of `false`. The new `AccountSecurityComponent` is missing this block, which makes it so the user cannot disable biometrics because we aren't handling the case where they uncheck the biometrics checkbox. This PR just adds the `else` block in the new component so we handle a `false` value.
Feature Flag: ExtensionRefresh ON
Creates a refreshed and consolidated `LoginDecryptionOptionsComponent` for use on all visual clients, which will be used when the `UnauthenticatedExtensionUIRefresh` feature flag is on.
- Introduce using i18n by importing JslibModule
- Use i18n within markup
- Ensure navButtons.labels is a key that is present in the en/messages.json
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* PM-12077 - Initial work on web process reload - more testing required.
* PM-12077 - Clarify comment
* PM-12077 - Improving UX of logout with process reload.
* PM-12077 - Final tweaks for process reload
* PM-12077 - Remove no longer accurate comment.
* PM-12077 - Per PR feedback, clean up logout reason
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>