Implements better error handling when a user enters an invalid 2FA recovery code. Upon entering an invalid code:
- Keep the user on the `/recover-2fa` page (This also makes it so the incorrect code remains in the form field so the user can see what they entered, if they mistyped the code, etc.)
- Show an inline error: "Invalid recovery code"
Apply the same clippy configuration as we have in sdk-internal. bitwarden/sdk-internal@49f84e6/Cargo.toml#L91-L94
Adds FIXME comments to all existing violations. unwrap is bad as those will resullt in panics and crash the application. Unused async is ignored in napi since that would require changes to the js side which I don't want to deal with.
* cleanup inline menu content service
* move inline menu button and listElement to top-layer popovers
* update tests
* do not hidePopover on teardown
* watch all top layer candidates and attach event listeners to ensure they stay below the owned experience
* add extra guards to top page observers
* fix checks and cleanup logic
* fix typing issues
* include dialog elements in top layer candidate queries
* send extension message before showing popover
* Use Fastlane to publish to Apple App Store
* Publish MacOS build number as artifact
* Download and source build number from artifact
* Refactor Fastlane file to use already existing builds in TestFlight
* fastfile changes, release workflow changes, gitignore addition
* reorder steps to after dist dir is created
* resolve pathing issue
* upload step path fix
* make comments more clear
* enable phased rollout, add auto-submit checkbox
* move logic from release to publish workflow
* configure dry run properly for MAS
* edit file for testing
* workflow testing
* verbose logging for debugging
* update to look at releases
* remove verbose flag for next test
* add verbose logging back
* disable precheck
* hardcode app v for test
* hardcode app v for testing
* additional test
* log build numbers
* remove testing values, prep for draft PR
* flip metadata bool for testing
* comment out branch check
* hardcode locales
* add metadata and locales change
* lane change
* more logging for finding build
* address logs feedback
* edit_live false
* testing
* extra logging from apple api
* testing
* workaround for attaching build attempt
* workaround patch update
* simplify and retest skip metadata true
* turn precheck true
* remove autosubmit checkbox, add live edit true for testing release notes formatting
* re-org dispatch, rename dir to release_notes, flip live edit to false
* another formatting attempt
* additional formatting changes
* account for double space, add dash to beginning
* different formatting approach
* format test
* simplified notes formatting test, double line after each period
* proper formatting
* rename file for rust linter
* remove testing comments
* remove default string from notes, logic to check for empty release notes in mas_publish, formatting
* add validation logic after publishing
---------
Co-authored-by: Micaiah Martin <github@sourcecodemt.com>
fix: fetching a refresh token on a full sync during api key login on cli caused rate limit issues. we no longer fetch a refresh token on login since we shouldn't need it.
* 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
* migrate change login password service to use bitwarden server rather than fetch directly
- avoids CSP entirely
* add `HelpUsersUpdatePasswords` policy to policy type
* add `HelpUsersUpdatePasswordsPolicy` components
* allow list description override for policy description
* add `HelpUsersUpdatePasswordsPolicy` when the feature flag is enabled
* apply `HelpUsersUpdatePasswords` to everyone in an org
* use policy to guard the well known password API
* fix tests
* refactor to use `policyAppliesToUser$`
* remove policy work for change password - this was removed from scope
* update copy for show favicon setting - it now handles both favicons and change password urls
* remove favicon setting description - no longer needed
* only call change password service when the setting is enabled
* add popover for permitting cipher details
* import permit popover directly into the settings component
* replace `nativeFetch` with `fetch`
* use string literal to construct URL rather than `URL` class
- The `getIconsUrl` can return with an appended path which the new URL constructor will strip when passed as the base parameter
* use string literal to construct URL rather than `URL` class instance (#16045)
- The `getIconsUrl` can return with an appended path which the new URL constructor will strip when passed as the base parameter
* [PM-24716] UI changes for Change URI work (#16043)
* use platform service to launch the URI
- this allows desktop to open a separate browser instance rather than use electron
* fix spacing on web app
* add bitLink for focus/hover states
* remove spacing around links
* Update modules to not import loose-components
Instead they should import their dependencies directly.
Only OssModule imports loose-components.module.ts.
* Remove unused imports and exports
* enforce restrictions based on collection type, set default collection type
* fix ts strict errors
* fix default collection enforcement in vault header
* enforce default collection restrictions in vault collection row
* enforce default collection restrictions in AC vault header
* enforce default collection restriction for select all
* fix ts strict error
* switch to signal, fix feature flag
* fix story
* clean up
* remove feature flag, move check for defaultCollecion to CollecitonView
* fix test
* remove unused configService
* fix test: coerce null to undefined for collection Id
* clean up leaky abstraction for default collection
* fix ts-strict error
* fix parens
* add new property to models, update logic, refactor for ts-strict
* fix type
* rename defaultCollection getter
* clean up
* clean up
* clean up, add comment, fix submit
* add comment
* add feature flag
* check model for name
* cleanup readonly logic, remove featureflag logic
* wip
* refactor CollectionRequest into Create and Update models
* fix readonly logic
* cleanup
* set defaultUserCollectionEmail in decryption from Collection
* split save into update/create methods
* fix readonly logic
* fix collections post and put requests
* add defaultUserCollection email to model when submitting collection dialog
* Add back notifications connection on locked accounts
* Updated tests.
* Make sure web push connection service is started synchronously
* Fixed merge conflicts.
---------
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* Makes inline menu handler async to resolve Safari issue.
* Don't use idle callback deadline as timeout delay.
* Revert "Makes inline menu handler async to resolve Safari issue."
This reverts commit d3f7461cfaae440f33d5be48278c01e5d6f74dde.
---------
Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com>
* disable all remaining form fields for editing personally owned My Items
* fix failing tests
* ensure collection field is also properly disabled
* clean up logic
* fix failing test
* fix test
* refactor variable to avoid using `is` prefix
* directly reference parent form for status rather than subscribe to it
* refactor subscription for form status changes
* use observable as an Output
* disable attachment button on desktop vault when the form
* disable custom field components when custom fields already exist and parent form is disabled
* disable attachments button in the browser when the edit form is disabled
* grab icon button instance for disabled state
---------
Co-authored-by: Nick Krantz <nick@livefront.com>