* Created mappings for client domain object to SDK
* Add abstract decrypt observable
* Added todo for future consideration
* Added implementation to cipher service
* Added adapter and unit tests
* Created cipher encryption abstraction and service
* Register cipher encryption service
* Added tests for the cipher encryption service
* changed signature
* Updated feature flag name
* added new function to be used for decrypting ciphers
* Added new encryptedKey field
* added new function to be used for decrypting ciphers
* Manually set fields
* Added encrypted key in attachment view
* Fixed test
* Updated references to use decrypt with feature flag
* Added dependency
* updated package.json
* lint fix
* fixed tests
* Fixed small mapping issues
* Fixed test
* Added function to decrypt fido2 key value
* Added function to decrypt fido2 key value and updated test
* updated to use sdk function without prociding the key
* updated localdata sdk type change
* decrypt attachment content using sdk
* Fixed dependency issues
* updated package.json
* Refactored service to handle getting decrypted buffer using the legacy and sdk implementations
* updated services and component to use refactored version
* Updated decryptCiphersWithSdk to use decryptManyLegacy for batch decryption, ensuring the SDK is only called once per batch
* Fixed merge conflicts
* Fixed merge conflicts
* Fixed merge conflicts
* Fixed lint issues
* Moved getDecryptedAttachmentBuffer to cipher service
* Moved getDecryptedAttachmentBuffer to cipher service
* ensure CipherView properties are null instead of undefined
* Fixed test
* ensure AttachmentView properties are null instead of undefined
* Linked ticket in comment
* removed unused orgKey
* fix(enums-eslint): Enum Rule for ESLint - Added enums in the warnings for eslint.
* fix(enums-eslint): Enum Rule for ESLint - Updated to error in both places for enums.
* fix(enums-eslint): Enum Rule for ESLint - Added new eslint plugin for warning on enums.
* fix(enums-eslint): Enum Rule for ESLint - Changed based on suggestion.
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
* refactor(browser-platform-utils): Remove Deprecation and Fix Code - Changed usages of firefox to private and moved the usages to the preferred public method and removed the deprecations.
* fix(enums-eslint): Enum Rule for ESLint - Updated to error and added disable rules for all other places.
* fix(enums-eslint): Enum Rule for ESLint - Undid other changes by accident
* Consolidates component routing, removing routing to update-temp-password from components. All routing to update-temp-password should happen in the AuthGuard now.
---------
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
Co-authored-by: Todd Martin <tmartin@bitwarden.com>
* [CL-571] Update icons to new fileset and metaphors (#14163)
* [CL-518] Convert icons docs to stories (#14299)
* [CL-574] Update inline autofill icons (#14379)
---------
Co-authored-by: William Martin <contact@willmartian.com>
* remove NewDeviceVerificationGuard and all associated entities. New Device verification feature has rolled out in production, this guard is no longer needed.
* remove unused properties from the vault profile service
* Improve dev logging
* Define decrypt with sdk flag
* Use SDK's pure crypto functions for decryption
feature flagged by `use-sdk-for-decryption`
* Avoid pushing decryption requests to web workers for SDK
web workers are able to use the SDK, but they require the SDK module to be initialized. If this is eventually seen as desired, we'll need client-specific worker scripts.
* Apply suggestions from code review
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
* fixup! Apply suggestions from code review
* fixup: Update feature flag state in config callbacks
* Apply suggestions from code review
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
---------
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
* Added nav item for f4e in org admin console
* shotgun surgery for adding "useAdminSponsoredFamilies" feature from the org table
* Resolved issue with members nav item also being selected when f4e is selected
* Separated out billing's logic from the org layout component
* Removed unused observable
* Moved logic to existing f4e policy service and added unit tests
* Resolved script typescript error
* Resolved goofy switchMap
* Add changes for the issue orgs
* Added changes for the dialog
* Rename the files properly
* Remove the commented code
* Change the implement to align with design
* Add todo comments
* Remove the comment todo
* Fix the uni test error
* Resolve the unit test
* Resolve the unit test issue
* Resolve the pr comments on any and route
* remove the any
* remove the generic validator
* Resolve the unit test
* add validations for email
* Add changes for the autoscale
* Changes to allow admin to send F4E sponsorship
* Fix the lint errors
* Resolve the lint errors
* Fix the revokeAccount message
* Fix the lint runtime error
* Resolve the lint issues
* Remove unused components
* Changes to add isadminInitiated
* remove the FIXME comment
* Resolve the failing test
* Fix the pr comments
* Resolve the orgkey and other comments
* Resolve the lint error
* Resolve the lint error
* resolve the spelling error
* refactor the getStatus method
* Remove the deprecated method
* Resolve the unusual type casting
* revert the change
---------
Co-authored-by: Conner Turnbull <cturnbull@bitwarden.com>
Co-authored-by: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com>
* [PM-10611] Remove Angular dependencies from Notifications module
* [PM-10611] Move end user notification service to /libs/common/vault/notifications
* [PM-10611] Implement listenForEndUserNotifications() for EndUserNotificationService
* [PM-10611] Add missing taskId to notification models
* [PM-10611] Add switch cases for end user notification payloads
* [PM-10611] Mark task related notifications as read when visiting the at-risk password page
* [PM-10611] Revert change to default-notifications service
* [PM-10611] Fix test
* [PM-10611] Fix tests and log warning in case more notifications than the default page size are available
* [PM-10611] Use separate feature flag for end user notifications
* [PM-10611] Fix test
* [PM-13128] Enable Breadcrumb Policies
* [PM-13128] Enable Breadcrumb Policies
* [PM-13128] wip
* [PM-13128] wip
* [PM-13128] wip
* [PM-13128] wip
* remove dead code
* wip
* wip
* wip
* refactor
* Fix for providers
* revert to functional auth guard
* change prerequisite to info variant
* address comment
* r
* r
* r
* tests
* r
* r
* fix tests
* feedback
* fix tests
* fix tests
* Rename upselling to breadcrumbing
* Address feedback
* Fix build & tests
* Make the guard callback use Observable instead of a promise
* Pm 13128 suggestions (#14041)
* Rename new enum value
* Show the upgrade button when breadcrumbing is enabled
* Show mouse pointer when cursor is hovered above badge
* Do not make the dialogs overlap
* Align badge middle
* Gap
* Badge should be a `button` instead of `span`
* missing button@type
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Alex Morask <amorask@bitwarden.com>
* [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>
* Moved saving of SSO email outside of browser/desktop code
* Clarified comments.
* Tests
* Refactored login component services to manage state
* Fixed input on login component
* Fixed tests
* Linting
* Moved web setting in state into web override
* updated tests
* Fixed typing.
* Fixed type safety issues.
* Added comments and renamed for clarity.
* Removed method parameters that weren't used
* Added clarifying comments
* Added more comments.
* Removed test that is not necessary on base
* Test cleanup
* More comments.
* Linting
* Fixed test.
* Fixed base URL
* Fixed typechecking.
* Type checking
* Moved setting of email state to default service
* Added comments.
* Consolidated SSO URL formatting
* Updated comment
* Fixed reference.
* Fixed missing parameter.
* Initialized service.
* Added comments
* Added initialization of new service
* Made email optional due to CLI.
* Fixed comment on handleSsoClick.
* Added SSO email persistence to v1 component.
* Updated login email service.
* Updated setting of remember me
* Removed unnecessary input checking and rearranged functions
* Fixed name
* Added handling of Remember Email to old component for passkey click
* Updated v1 component to persist the email on Continue click
* Fix merge conflicts.
* Merge conflicts in login component.
* Persisted login email on v1 browser component.
* Merge conflicts
* fix(snap) [PM-17464][PM-17463][PM-15587] Allow Snap to use custom callback protocol
* Removed Snap from custom protocol workaround
* Fixed tests.
* Updated case numbers on test
* Resolved PR feedback.
* PM-11502 - LoginEmailSvcAbstraction - mark methods as abstract to satisfy strict ts.
* Removed test
* Changed to persist on leaving fields instead of button click.
* Fixed type checking.
---------
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
This PR
- Moves the `compareInputs` validator to `libs/auth` (with some minor updates to the validator)
- Adds unit tests for `compareInputs`
- Removes the deprecated input validators from `InputsFieldMatch` along with the `inputs-field-match.validator.ts` file
- Move the `compareInputs` validator to `libs/auth`
- Add tests for the `compareInputs` validator
- Delete the deprecated `InputsFieldMatch` class (inputs-field-match.validator.ts)
* set pin validation to min length of 4
* use reactive forms
* PM-8951 - SetPin - remove dialog close logic if pin is invalid so validation errors can be shown to the user.
---------
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
* [PM-17563] Implement listenForTaskNotifications in default-task.service.ts
* [PM-17563] Update syncService to include userId in syncCompleted message payload
* [PM-17563] Update default-task.service to react to both pending task notifications and completed syncs
* [PM-17563] Add unit tests around task notification listening
* [PM-17563] Only check for at risk password tasks if tasks are enabled
* [PM-17563] Make userId required even if undefined
* [PM-17563] Use abstract TaskService instead of default implementation in MainBackground
* [PM-17563] Cleanup userId filtering
* feat(device-approval-persistence): [PM-19380] Device Approval Persistence - Added lookup on standard auth requests.
* fix(device-approval-persistence): [PM-19380] Device Approval Persistence - Fixed issue with null value trying to be parsed from the fromJSON function.
---------
Co-authored-by: Todd Martin <tmartin@bitwarden.com>
* [PM-17563] Remove references to Angular from TaskService
* [PM-17563] Move Task module to libs/common/vault to avoid Angular dependency
* [PM-17563] Fix bad imports
* [PM-17563] Fix a few more missed imports
Remove deprecated TwoFactorComponentsV1 and TwoFactorOptionsComponentV1 components, related functionality (unauthUiRefreshSwap) and orphaned styles/translation messages.
* Add new export format: zip
* Restrict zip export to just individual vaults
* Add tests
* Remove unused import
* Fix build error
* Fix tests
* Fix test
* Fix retrieval of ciphers by passing in activeUserId
* Guard feature behind `export-attachments`-feature-flag
* Extend cipher filter to also filter out any ciphers that are assigned to an organization
* Added apiService to retrieve AttachmentData (metaData) and then download the attachment
- Added ApiService as a depdency within DI for VaultExportService/IndividualVaultExportService
- Added unit tests for filtering ciphers
- Added unit test for downloading attachment metadata and attachments
* Moved attachment decryption into a separate method and added unit tests
* Added null check for creating the base attachment folder
* Move format check for zip within Org export into an early return/throw
* Add feature flag guard on the CLI
* Extend ExportScopeCallout to display an individual export will contain attachment when zip-format is selected
* Fix adding/removing the zip-export option based on selected vault and state of `export-attachments` feature-flag
* Separate AAA visually using whitespace within tests
* Remove unused error var
* Write test that verifies different http request failures when retrieving attachment data
* Remove uneeded ignore lint rule
* Rewrite test to actually check that ciphers assigned to an org are filtered out
* Introduce ExportedVault return type (#13842)
* Define ExportedVault type unioned by 2 new types that describe a plain-text export vs a blob-based zip-export
* Extend static getFileName to handle formats and add unit-tests
* Introduce new export return type throughout the vault export module
- Update abstractions
- Update return types within implementations
- Update callers/consumers to handle the new return value
- Fix all unit tests
* Add support for new export return type and fix download of blobs via CLI
* Add documentation to public methods
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
---------
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Removes the V1 Login components and related UnauthenticatedExtensionUIRefresh
feature flag functions. Part of the authentication UI modernization efforts.
Closes PM-9678
Refactor toast calls out of auth services. Toasts are now triggered by an observable emission that gets picked up by an observable pipeline in a new `DeviceTrustToastService` (libs/angular). That observable pipeline is then subscribed by by consuming the `AppComponent` for each client.
* Remove nord and remnants from solarizedark
* Update window reload color
* Remove extension-refresh feature flag from clients (#13450)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Remove usage of nord and solarized themes within DarkImageDirective
---------
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Refactored totp service to use sdk
Fixed strict typescript issues
* Fixed dependency issues
* Returned object that contains code and period, removed get interval function
* removed dependencies
* Updated to use refactored totp service
* removed sdk service undefined check
* removed undefined as an input from the getCode function
* Made getcode$ an observable
* refactored to use getcodee$
* Filter out emmissions
* updated sdk version
* Fixed readability nit
* log error on overlay if totp response does not return a code
* fix(totpGeneration): [PM-11941] Totp countdown not working on clients
* Used optional chaining if totpresponse returns null or undefined
* PM-18654 - State Service & Login Strategy Refactor - move env seeding into login strategy so that new accounts always load w/ the correct environment
* PM-18654 - SSO Comp - just use user id from auth result
* PM-18654 - Config Service - (1) don't allow cascading calls to the renewConfig by using a private promise (2) Replace shareReplay with share configured with manual timer
* PM-18654 - LoginComponents - detail issue and possible fix
* PM-18654 - DesktopLoginV1Comp - use correct destroy hook
* PM-18654 - LoginComp - clean up no longer correct comment
* PM-18654 - New Device Verification Component - Remove unused PasswordLoginStrategy dependency
* PM-18654 - Browser Home Component - fix qParam logic
* PM-18654 - DefaultConfigService - revert changes as they aren't necessary to fix the bug.
* PM-18654 - DefaultConfigService - remove commented code
* PM-18654 - LoginStrategy - add comment
* PM-18654 - Fix login strat tests
* [PM-18707] Remove redundant cipherService subscription
* [PM-18707] Add artificial tick delay to cipherService to allow for ElectronStore storage service to fully save before continuing
* move vault timeout and vault timeout settings to km
* move browser vault timeout service to km
* fix cli import
* fix imports
* fix some relative imports
* use relative imports within common
* fix imports
* fix new imports
* Fix new imports
* fix spec imports
* Moved saving of SSO email outside of browser/desktop code
* Clarified comments.
* Tests
* Refactored login component services to manage state
* Fixed input on login component
* Fixed tests
* Linting
* Moved web setting in state into web override
* updated tests
* Fixed typing.
* Fixed type safety issues.
* Added comments and renamed for clarity.
* Removed method parameters that weren't used
* Added clarifying comments
* Added more comments.
* Removed test that is not necessary on base
* Test cleanup
* More comments.
* Linting
* Fixed test.
* Fixed base URL
* Fixed typechecking.
* Type checking
* Moved setting of email state to default service
* Added comments.
* Consolidated SSO URL formatting
* Updated comment
* Fixed reference.
* Fixed missing parameter.
* Initialized service.
* Added comments
* Added initialization of new service
* Made email optional due to CLI.
* Fixed comment on handleSsoClick.
* Added SSO email persistence to v1 component.
---------
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
* fix(recovery-code-login): [PM-18474] Fix for Recovery Code Login - Fixed the recovery code login to work with the new device verification notice flow.
* test(recovery-code-login): [PM-18474] Fix for Recovery Code Login - Tests added.
* Cipher service web changes
* Updated browser client to pass user id to cipher service observable changes
* Cli changes
* desktop changes
* Fixed test
* Libs changes
* Fixed merge conflicts
* Fixed merge conflicts
* removed duplicate reference fixed conflict
* Fixed test
* Fixed test
* Fixed test
* Fixed desturcturing issue on failed to decrypt ciphers cipher service
* Updated abstraction to use method syntax
* Fixed conflicts
* Fixed test on add edit v2
Passed active userId to delete function
* Used getUserId utility function
* made vault changes
* made suggestion changes
* made suggestion changes
* made suggestion changes
* Replace getUserId function calls with pipe operator syntax for better consistency
* fixed merge conflicts
* revert mistake made of usinf account activity during merge conflict fix
* fixed conflicts
* fixed tests
* Enable UI refresh on web by default
Removing all conditional code around the `ExtensionRefresh`-feature-flag on the web-UI
* Remove no longer needed extensRefresh helpers
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* refactor SSO policy check to check for SSO users that have `ssoBound` true on any of their organizations
* Revert "refactor SSO policy check to check for SSO users that have `ssoBound` true on any of their organizations"
This reverts commit 419c26fbbc.
* update new device verification guard to check for master password usage
* add sso check for new device verification guard
* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Fixed location of retrieving the active user id in one component.
* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Fixed up type safety.
* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Removed unnessesary subscriptions.
* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Fixed test.
* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Made code a little cleaner.
* Remove v1 generator from web
Remove conditional routing based on `generator-tools-modernization`
Remove generatorSwap helper
Remove generator and password-generator-history components including the base ones in libs/angular
* Remove the feature flag `generator-tools-modernization`
* Remove unused keys from en/messages.json
* Remove unused css
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* favor subscription over firstValueFrom in desktop cipher view
* add event handling for username generator
* Revert "add event handling for username generator"
This reverts commit 73cffbcc6b.
* close out subscription on cleanup
* Move encrypt service to km ownership
* Update imports for encrypt service abstraction and move bulk encrypt service abstraction
* Fix imports
* Fix further imports
* Fix imports
* Fix worker import
* refactor(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - First pass of work to update the state. In the middle of testing.
* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Fix for jslib-services.module.ts
* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Fix main.background.ts
* test(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Added simple tests
* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Tiny touchups.
* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Few fixes to resolve comments.
* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Changed place where userId is loaded.
* test(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Fixed test.
Updates UI text and translations for the login with device feature to be more consistent and clear across desktop, browser and web clients. Changes include:
- Updated titles and content for login via auth request components
- Revised translations for device approval modal
- Updated notification titles and alert messages
- Simplified device management URL handling
- Added missing translations across platforms
Resolves PM-3953
* Remove deprecated and unused PasswordGenerationService
* Remove unused state-service
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Move premium component into billing ownership
Update CODEOWNERS
Move files within libs/angular
Move files within desktop
Adjust import paths
* Remove configService
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* feat(newdeviceVerificaiton) : adding component and request model
* feat(newDeviceverification) : adding state structure to track verify devices for active user; added API call to server.
* feat(newDeviceVerification) : added visual elements for opting out of new device verification.
* Fixing tests for account service.
fixed DI for account service
* Fixing strict lint issues
* debt(deauthorizeSessionsModal) : changed modal to dialog. fixed strict typing for the new dialog for deviceVerification.
* fixing tests
* fixing desktop build DI
* changed dialog to standalone fixed names and comments.
* Adding tests for AccountService
* fix linting
* PM-15605 - AccountComp - fix ngOnDestroy erroring as it was incorrectly decorated with removed property.
* PM-15605 - SetAccountVerifyDevicesDialogComponent - only show warning about turning off new device verification if user doensn't have 2FA configured per task description
---------
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
* WIP: PoC with lots of terrible code with web push
* fix service worker building
* Work on WebPush Tailored to Browser
* Clean Up Web And MV2
* Fix Merge Conflicts
* Prettier
* Use Unsupported for MV2
* Add Doc Comments
* Remove Permission Button
* Fix Type Test
* Write Time In More Readable Format
* Add SignalR Logger
* `sheduleReconnect` -> `scheduleReconnect`
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
* Capture Support Context In Connector
* Remove Unneeded CSP Change
* Fix Build
* Simplify `getOrCreateSubscription`
* Add More Docs to Matrix
* Update libs/common/src/platform/notifications/internal/worker-webpush-connection.service.ts
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
* Move API Service Into Notifications Folder
* Allow Connection When Account Is Locked
* Add Comments to NotificationsService
* Only Change Support Status If Public Key Changes
* Move Service Choice Out To Method
* Use Named Constant For Disabled Notification Url
* Add Test & Cleanup
* Flatten
* Move Tests into `beforeEach` & `afterEach`
* Add Tests
* Test `distinctUntilChanged`'s Operators More
* Make Helper And Cleanup Chain
* Add Back Cast
* Add extra safety to incoming config check
* Put data through response object
* Apply TS Strict Rules
* Finish PushTechnology comment
* Use `instanceof` check
* Do Safer Worker Based Registration for MV3
* Remove TODO
* Switch to SignalR on any WebPush Error
* Fix Manifest Permissions
* Add Back `webNavigation`
* Sorry, Remove `webNavigation`
* Fixed merge conflicts.
---------
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
Co-authored-by: Todd Martin <tmartin@bitwarden.com>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
* Moved has-premium.guard under billing
* Moved free-trial.ts to billing
* Moved premium directives to billing
* Moved families-policy.service.ts to billing
* Moved trial initiation from auth to billing