* 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
* Make nav.component standalone in preparation for usage on send.component
* Make send add-edit.component standalone for usage on send.component
* Make send.component standalone in preparation for the new send add-edit component
---------
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
* Migrate all tools owned toasts to use CL ToastService instead of PlatformUtilsService
* Fix test that was missing a mock
* Fix double checking file and file-content selection
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Use account service to track accounts and active account
* Remove state service active account Observables.
* Add email verified to account service
* Do not store account info on logged out accounts
* Add account activity tracking to account service
* Use last account activity from account service
* migrate or replicate account service data
* Add `AccountActivityService` that handles storing account last active data
* Move active and next active user to account service
* Remove authenticated accounts from state object
* Fold account activity into account service
* Fix builds
* Fix desktop app switch
* Fix logging out non active user
* Expand helper to handle new authenticated accounts location
* Prefer view observable to tons of async pipes
* Fix `npm run test:types`
* Correct user activity sorting test
* Be more precise about log out messaging
* Fix dev compare errors
All stored values are serializable, the next step wasn't necessary and was erroring on some types that lack `toString`.
* If the account in unlocked on load of lock component, navigate away from lock screen
* Handle no users case for auth service statuses
* Specify account to switch to
* Filter active account out of inactive accounts
* Prefer constructor init
* Improve comparator
* Use helper methods internally
* Fixup component tests
* Clarify name
* Ensure accounts object has only valid userIds
* Capitalize const values
* Prefer descriptive, single-responsibility guards
* Update libs/common/src/state-migrations/migrate.ts
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* Fix merge
* Add user Id validation
activity for undefined was being set, which was resulting in requests for the auth status of `"undefined"` (string) userId, due to key enumeration. These changes stop that at both locations, as well as account add for good measure.
---------
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* Enable usage of the bit-callout within desktop
Adding this should be temporary, with the vision being: All components are standalone and they'd depend/import the CalloutModule themselves if they need it
* Replace vaultTimeoutPolicy callout in settings
* Replace OwnershipPolicy callout in add-edit cipher
* Replace vaultExportDisabled policy callout in export
* Replace generator policy callout in generator
* Replace policy callouts in add/edit Sends
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Added billing account profile state service
* Update usages after removing state service functions
* Added migrator
* Updated bw.ts and main.background.ts
* Removed comment
* Updated state service dependencies to include billing service
* Added missing mv3 factory and updated MainContextMenuHandler
* updated autofill service and tests
* Updated the remaining extensions usages
* Updated desktop
* Removed subjects where they weren't needed
* Refactored billing service to have a single setter to avoid unecessary emissions
* Refactored has premium guard to return an observable
* Renamed services to match ADR
f633f2cdd8/docs/architecture/clients/presentation/angular.md (abstract--default-implementations)
* Updated property names to be a smidgen more descriptive and added jsdocs
* Updated setting of canAccessPremium to automatically update when the underlying observable emits
* Fixed build error after merge conflicts
* Another build error from conflict
* Removed autofill unit test changes from conflict
* Updated login strategy to not set premium field using state service
* Updated CLI to use billing state provider
* Shortened names a bit
* Fixed build
* Checking type instead of send.type on send's add-edit.component
* Fix linting issues
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* setting send password to null if it is empty
* Using Utils.IsNullOrWhiteSpace to verify name and password on SendAddEdit.
Removed unnecessary setting password as null on desktop
* Converted add-edit send component dialog into a bit-dialog
* Updated Send AddEdit text fields to Component Library
* Migrated Share and Options fields to ComponentLibrary on SendAddEdit
* Migrated footer buttons to ComponentLibrary on SendAddEdit
* Updated web's SendAddEdit component file fields
* Replaced file upload with component library
* Changed SendAddEdit to use Reactive Forms on web
* Changed browser SendAddEdit to use ReactiveForms
* Update SendAddEdit on desktop to use ReactiveForms
* Added AppA11yTitle to button on web SendAddEdit
* Initial efflux-dates web change to ComponentLibrary
* Corrected delete button to check if it is in EditMode on SendAddEdit
* Using BitLink on options button
* Corrected typo on send add edit desktop
* Replaced efflux-dates with datetime-local input on SendAddEdit web, browser and desktop
* Removed efflux dates
* Added firefox custom date popout message on DeletionDate to SendAddEdit browser component
* moved desktop's new send data reload from send to SendAddEdit component
* removing unnecessary attributes and spans from Send AddEdit web
* removed redundant try catch from add edit and unnecessary parameter from close
* Added type for date select options
* Removed unnecessary classes and swapped bootstrap classes by corresponding tailwind classes
* Removed unnecessary code
* Added file as required field
Submit only closes popup on success
* Added pre validations at start of submit
* PM-3668 removed expiration date from required
* PM-3671 not defaulting maximum access count to 0
* PM-3669 Copying the link from link method
* Removed required tag from html and added to formgroup
* PM-3679 Checking if is not EditMode before validating if FormGroup file value is set
* PM-3691 Moved error validation to web component as browser and desktop need to show popup error
* PM-3696 - Disabling hide email when it is unset and has policy to not allow hiding
* PM-3694 - Properly setting default value for dates on Desktop when changing from an existing send
* Disabling hidden required fields
* [PM-3800] Clearing password on new send
* Rename service-factory folder
* Move cryptographic service factories
* Move crypto models
* Move crypto services
* Move domain base class
* Platform code owners
* Move desktop log services
* Move log files
* Establish component library ownership
* Move background listeners
* Move background background
* Move localization to Platform
* Move browser alarms to Platform
* Move browser state to Platform
* Move CLI state to Platform
* Move Desktop native concerns to Platform
* Move flag and misc to Platform
* Lint fixes
* Move electron state to platform
* Move web state to Platform
* Move lib state to Platform
* Fix broken tests
* Rename interface to idiomatic TS
* `npm run prettier` 🤖
* Resolve review feedback
* Set platform as owners of web core and shared
* Expand moved services
* Fix test types
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* Added button type to each button element related to the vault team
* Removed disable statement comment
* [PM-1399] Resolve eslint errors for button type - admin-console (#5275)
* Added button type to each button element related to the admin console team
* Added button type to each button element related to the billing team
* Removed disable statement comment
* [PM-1399] Resolve eslint errors for button type - tools (#5284)
* Added button type to each button element related to the tools team
* Added button type to each button element related to the tools team
* Added button type to each button element related to the auth team (#5295)
This PR introduces a generic `DialogService` which can be used by all the clients. This allows us to decouple dialogs from the `PlatformUtilsHelper`.
The `DialogService` provides a new method, `openSimpleDialog` which is the new interface for that type of dialogs.
This gives us 3 different implementations:
- Web: DialogService modern dialogs
- Browser: SweetAlert
- Desktop: Native electron based