* Introduce a new vault-export-api.service to replace the existing getOrganizationExport method in apiService
* Use new vault-export-api.service instead of the ApiService to retrieve organizational export data
* Remove unused method from apiService
* Register VaultExportApiService on browser
* Fxi linting issue by executing `npm run prettier`
* Rename abstraction and implementation of VaultExportApiService
* Use undefined instead of null
* Rename file of default impl of vault-export-api-service
* Fix test broken with 1bcdd80eea
* Define type for exportPromises
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* only enable the cipher form when it is disabled
* switch to tracking the last emitted state for disabled rather than the form status.
The form status can be changed if any child control changes
* wrap sdk callsite in try/catch to handle error appropriately
`encryptService.decryptString()` calls code in the internal SDK which when provided an invalid
key returns `CryptoError::InvalidMac`. The originating callsite has been wrapped in a try/catch
in order to intercept the error and return false so that logic in parse() may return
a more appropriate error message in the UI.
* add unit test and explanatory comment
* remove misleading comment
* remove null comparison and unused variable
* PM-25075 wip parking work
* remove flag from enums and add fade out
* fix tests
* remove flags from enum file after merge conflict re introduced
* remove dead code paths
* change naming back to bgUnlockPopoutOpened
* use intersection observer to fix dynamic content load issue
* set up mock intersection observer
* Create reusable hasScrollable content util
* return null from resize to fix type error
* remove Observer mock
* return observable
* refactor util and remove resize
* use async pipe for observable in template
* remove comment left in error
This change eliminates the circular dependency between messaging and messaging-internal libraries by merging them into a single messaging library.
Previously, messaging-internal imported from @bitwarden/messaging while messaging tried to import from @bitwarden/messaging-internal, creating an unresolvable circular dependency. This also violated Nx best practices by using cross-library file includes in tsconfig.lib.json.
Changes made:
- Moved all messaging-internal code (SubjectMessageSender, helpers, tests) into libs/messaging/src/
- Updated all imports to use relative paths instead of @bitwarden/messaging imports
- Removed the entire messaging-internal library and its configuration files
- Updated external references in apps/browser to import from @bitwarden/messaging
- Fixed libs/messaging/tsconfig.lib.json to use standard src/**/*.ts pattern
- Updated libs/common internal.ts to re-export from messaging instead of messaging-internal
The messaging library now exports both public APIs and internal implementations, which is a cleaner architecture than maintaining two separate libraries with circular dependencies.
Fixes rootDir configuration issues identified in the Nx library systematic fix project.
* PM-20578 Added api to fetch and save data (#15334)
* [PM-20579] Update risk-insights report service to use api service with encryption (#15357)
* Fix type error
* Fix paths for changed key generation service
* Finalize the api services
* Fixing test case for summary date range
* Fixing report service tests. Encryption will be modified in the future
* Fixing encryption service tests
* fixing linting issues
---------
Co-authored-by: Vijay Oommen <voommen@livefront.com>
Co-authored-by: Tom <ttalty@bitwarden.com>
* feature(billing): add cart-summary component
* tests(billing): add tests for component
* feature(billing): add stories and documentation for storybook
* feature(billing): export component
* fix: add localization and remove null coalescing for PM
* fix: import localization pipe and update story for I18n Service
remove service
* fix(billing): add IconButtonModule and use lineitem name
* fix(billing): Update story props and add Family and Premium examples
* fix(billing): Add examples and table of contents do to docs
* fix(billing): update aria properties
* fix(billing): add figma link and description
* fix(billing): update docs
* fix(billing): remove optional chaining since property is already checked
* fix(billing): Update fonts and button padding
* fix(billing): Update bitIconButton size to small
* migrate all components to use PremiumBadgeComponent
* move badge component to vault
* move premium badge to vault
* move premium badge to billing
* fix import
* use premium badge in tools new send dropdown
* remove badge module import
* remove module
* Implement bank account hosted URL verification with webhook handling notification
* [PM-25491] Create org/provider bank account warning needs to be updated
Addresses an issue when selecting an import format when the use-chromium-importer feature flag is enabled
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add switch component
* fix focus state
* updating stories
* add switch role
* updated story docs code examples
* Add max length and long label story
* Add disabled reason text
* fix hint spacing
* support rtl thumb transform
* use correct input syntax. assign value to template variable
* remove pointer when disabled
* Show disabled text as title if it exists
* add basic switch component tests
* keep switch top aligned
* move switch back to right side of label
* add max width to label and hint
* updated switch story docs
* fix story html formatting
* better comment about which are ControlValueAccessor functions
* add JSDoc comment about model signals
* update methods to mirror search input format
* fix notify function type
* fix typo
* throw error if label is not provided
* add hover and focus states
* add label to failing spec
* import bit-label
* encode username for uri and add spec
* verify response from getHibpBreach method
* test/validate for BreachAccountResponse type and length instead of mock response
* feat(notification-processing): [PM-19877] System Notification Implementation - Implemented the full feature set for device approval from extension.
* test(notification-processing): [PM-19877] System Notification Implementation - Updated tests.
---------
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* 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 ssoEnabled and ssoMemberDecryptionType properties to ProfileOrganizationResponse
* Add SSO support to Organization model with ssoEnabled and ssoMemberDecryptionType properties, and implement related tests
* Upsert organization SSO settings in memory after save
Updates organization data in memory with new SSO configuration values
to ensure immediate UI updates for Device Approvals page visibility.
* Refactor SSO component to simplify upsertOrganizationWithSsoChanges method
- Updated the method signature to accept a single OrganizationSsoRequest object instead of separate parameters.
- Adjusted the internal logic to directly use properties from the OrganizationSsoRequest for updating the organization state.
* Specify OrganizationData type for updatedOrganization in SSO component
Updates the copy on flows where the user is setting an initial password. Instead of saying "New master password" and "Confirm new master password", it should say "Master password" and "Confirm master password" for these flows.
* remove global check for personal ownership as `setFormState` now handles it
* ensure that the organizationId is disabled for new ciphers
* only check for personal ownership change for enabling/disabling the entire form - this ensure that it is only applied when the data ownership policy is applied
- The bug was caused by a regular user that wasn't in an organization, their form was getting fully disabled when it shouldn't.
* fix type checking
* do not disable organization id after an organization is selected