* [PM-6426] Create TaskSchedulerService and update usage of long lived timeouts
* [PM-6426] Implementing nextSync timeout using TaskScheduler
* [PM-6426] Implementing systemClearClipboard using TaskScheduler
* [PM-6426] Fixing race condition with setting/unsetting active alarms
* [PM-6426] Implementing clear clipboard call on generatePasswordToClipboard with the TaskSchedulerService
* [PM-6426] Implementing abortTimeout for Fido2ClientService using TaskSchedulerService
* [PM-6426] Implementing reconnect timer timeout for NotificationService using the TaskSchedulerService
* [PM-6426] Implementing reconnect timer timeout for NotificationService using the TaskSchedulerService
* [PM-6426] Implementing sessionTimeout for LoginStrategyService using TaskSchedulerService
* [PM-6426] Implementing eventUploadInterval using TaskScheduler
* [PM-6426] Adding jest tests for the base TaskSchedulerService class
* [PM-6426] Updating jest tests for GeneratePasswordToClipboardCommand
* [PM-6426] Setting up the full sync process as an interval rather than a timeout
* [PM-6426] Renaming the scheduleNextSync alarm name
* [PM-6426] Fixing dependency references in services.module.ts
* [PM-6426] Adding jest tests for added BrowserApi methods
* [PM-6426] Refactoring small detail for how we identify the clear clipboard timeout in SystemService
* [PM-6426] Ensuring that we await clearing an established scheduled task for the notification service
* [PM-6426] Changing the name of the state definition for the TaskScheduler
* [PM-6426] Implementing jest tests for the BrowserTaskSchedulerService
* [PM-6426] Implementing jest tests for the BrowserTaskSchedulerService
* [PM-6426] Adding jest tests for the base TaskSchedulerService class
* [PM-6426] Finalizing jest tests for BrowserTaskScheduler class
* [PM-6426] Finalizing documentation on BrowserTaskSchedulerService
* [PM-6426] Fixing jest test for LoginStrategyService
* [PM-6426] Implementing compatibility for the browser.alarms api
* [PM-6426] Fixing how we check for the browser alarms api
* [PM-6426] Adding jest tests to the BrowserApi implementation
* [PM-6426] Aligning the implementation with our code guidelines for Angular components
* [PM-6426] Fixing jest tests and lint errors
* [PM-6426] Moving alarms api calls out of BrowserApi and structuring them within the BrowserTaskSchedulerService
* [PM-6426] Reworking implementation to register handlers separately from the call to those handlers
* [PM-6426] Adjusting how we register the fullSync scheduled task
* [PM-6426] Implementing approach for incorporating the user UUID when setting task handlers
* [PM-6426] Attempting to re-work implementation to facilitate userId-spcific alarms
* [PM-6426] Refactoring smaller details of the implementation
* [PM-6426] Working through the details of the implementation and setting up final refinments
* [PM-6426] Fixing some issues surrounding duplicate alarms triggering
* [PM-6426] Adjusting name for generate password to clipboard command task name
* [PM-6426] Fixing generate password to clipboard command jest tests
* [PM-6426] Working through jest tests and implementing a method to guard against setting a task without having a registered callback
* [PM-6426] Working through jest tests and implementing a method to guard against setting a task without having a registered callback
* [PM-6426] Implementing methodology for having a fallback to setTimeout if the browser context is lost in some manner
* [PM-6426] Working through jest tests
* [PM-6426] Working through jest tests
* [PM-6426] Working through jest tests
* [PM-6426] Working through jest tests
* [PM-6426] Finalizing stepped setInterval implementation
* [PM-6426] Implementing Jest tests for DefaultTaskSchedulerService
* [PM-6426] Adjusting jest tests
* [PM-6426] Adjusting jest tests
* [PM-6426] Adjusting jest tests
* [PM-6426] Fixing issues identified in code review
* [PM-6426] Fixing issues identified in code review
* [PM-6426] Removing user-based alarms and fixing an issue found with setting steppedd alarm interavals
* [PM-6426] Removing user-based alarms and fixing an issue found with setting steppedd alarm interavals
* [PM-6426] Fixing issue with typing information on a test
* [PM-6426] Using the getUpperBoundDelayInMinutes method to handle setting stepped alarms and setTimeout fallbacks
* [PM-6426] Removing the potential for the TaskScheduler to be optional
* [PM-6426] Reworking implementation to leverage subscription based deregistration of alarms
* [PM-6426] Fixing jest tests
* [PM-6426] Implementing foreground and background task scheduler services to avoid duplication of task scheudlers and to have the background setup as a fallback to the poopup tasks
* [PM-6426] Implementing foreground and background task scheduler services to avoid duplication of task scheudlers and to have the background setup as a fallback to the poopup tasks
* [PM-6426] Merging main into branch
* [PM-6426] Fixing issues with the CLI Service Container implementation
* [PM-6426] Reworking swallowed promises to contain a catch statement allow us to debug potential issues with registrations of alarms
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adding jest tests to the ForegroundTaskSchedulerService and the BackgroundTaskSchedulerService
* [PM-6426] Adjusting implementation based on code review feedback
* [PM-6426] Reworking file structure
* [PM-6426] Reworking file structure
* [PM-6426] Adding comments to provide clarity on how the login strategy cache experiation state is used
* [PM-6426] Catching and logging erorrs that appear from methods that return a promise within VaultTimeoutService
* Check that user is authed before getting user config
* Accept PR Suggestion
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
* Use Strict Equal
---------
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
* Prevent account switching race condition on desktop
This enables us to allow background thread / multithread bulk decryption on desktop.
* Disable account switcher component during switching
* Add shared two-factor-options component
* Add new refactored two-factor-auth component and totp auth componnet behind feature flag
* Fix default value for twofactorcomponentrefactor featureflag
* PM-7321 - Temp add input password
* PM-7321 - update input password based on latest PR changes to test.
* PM-7321 - Progress on testing input password component + RegistrationFinishComponent checks
* PM-7321 - more progress on registration finish.
* PM-7321 - Wire up RegistrationFinishRequest model + AccountApiService abstraction + implementation changes for new method.
* PM-7321 - WIP Registration Finish - wiring up request building and API call on submit.
* PM-7321 - WIP registratin finish
* PM-7321 - WIP on creating registration-finish service + web override to add org invite handling
* PM-7321 - (1) Move web-registration-finish svc to web (2) Wire up exports (3) wire up RegistrationFinishComponent to call registration finish service
* PM-7321 - Get CLI building
* PM-7321 - Move all finish registration service and content to registration-finish feature folder.
* PM-7321 - Fix RegistrationFinishService config
* PM-7321 - RegistrationFinishComponent- handlePasswordFormSubmit - error handling WIP
* PM-7321 - InputPasswordComp - Update to accept masterPasswordPolicyOptions as input instead of retrieving it as parent components in different scenarios will need to retrieve the policies differently (e.g., orgInvite token in registration vs direct call via org id post SSO on set password)
* PM-7321 - Registration Finish - Add web specific logic for retrieving master password policies and passing them into the input password component.
* PM-7321 - Registration Start - Send email via query param to registration finish page so it can create masterKey
* PM-7321 - InputPassword comp - (1) Add loading input (2) Add email validation to submit logic.
* PM-7321 - Registration Finish - Add submitting state and pass into input password so that the rest of the registration process keeps the child form disabled.
* PM-7321 - Registration Finish - use validation service for error handling.
* PM-7321 - All register routes must be dynamic and change if the feature flag changes.
* PM-7321 - Test registration finish services.
* PM-7321 - RegisterRouteService - Add comment documenting why the service exists.
* PM-7321 - Add missing input password translations to browser & desktop
* PM-7321 - WebRegistrationFinishSvc - apply PR feedback
* initial add of card details section
* add card number
* update card brand when the card number changes
* add year and month fields
* add security code field
* hide number and security code by default
* add `id` for all form fields
* update select options to match existing options
* make year input numerical
* only display card details for card ciphers
* use style to set input height
* handle numerical values for year
* update heading when a brand is available
* remove unused ref
* use cardview types for the form
* fix numerical input type
* disable card details when in partial-edit mode
* remove hardcoded height
* update types for formBuilder
* Introduce `verificationType`
* Update template to use `verificationType`
* Implement a path for `verificationType = 'custom'`
* Delete `clientSideOnlyVerification`
* Update `EnrollMasterPasswordResetComponent` to include a server-side hash check
* Better describe the custom scenerio through comments
* Add an example of the custom verficiation scenerio
* Move execution of verification function into try/catch
* Migrate existing uses of `clientSideOnlyVerification`
* Use generic type option instead of casting
* Change "given" to "determined" in a comment
* [PM-9342] Inline menu does not show on username field for a form that has a password field with an invalid autocomplete value
* [PM-9342] Incorporating logic to handle multiple autocomplete values within a captured set of page details
* [PM-9342] Incorporating logic to handle multiple autocomplete values within a captured set of page details
* [PM-9342] Changing logic for how we identify new password fields to reflect a more assertive qualification
* [PM-9342] Adding feedback from code review
* Move vault-timeout-input to @bitwarden/auth/angular
Move vault-timeout-input.component.ts to @bitwarden/auth/angular/vault-timeout-input
Expose via barrel file
Fix imports on clients
* Add dependencies to package.json
Not necessary right now, but good practice for once we move to building each package independently
* Make VaultTimeoutInputComponent a standalone component
* Update selector to present team ownership
* Use new standalone on web
Move vault-timeout-input.component.html to @bitwarden/auth/angular/vault-timeout-input/
Delete old vault-timeout-input.component on web
Register new component on loose-components-module
Update used selector in preferences.component
* Remove unneeded export of VaultTimeoutInputComponent
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* [PM-8486] Introduce VaultPopupAutofill service
* [PM-8486] Remove moved autofill functionality from VaultPopupItem service
* [PM-8486] Add autofill functionality to button and menu options
* [PM-8486] Hide Autofill and Save option for Cards/Identities
* [PM-8486] Reduce nesting in closePopup
* [PM-8486] Breakup doAutofillAndSave method
* [PM-8486] Start subscription in autofill service constructor
* [PM-8486] Cleanup missed calls to removed methods
* add v2 attachments page
* add add attachment fields
* add file upload UI
* move cipher-attachments to a new component
* load cipher and add initial submit
* add list of existing attachments
* fix incorrect toast usage
* integrate with bit submit states
* add new max file translation without the period
* refactor attachments v2 component
* remove default list styles
* add tests for attachments components
* use `CipherId` type
* pass submit button reference to the underlying form
* remove bitFormButton
* [PM-7897] Attachments Part 2 (#9755)
* make `isNew` param optional
* emit success output after upload
* navigate the user to the edit screen after an upload
* allow for the deletion of an attachment
* add download attachment component to attachments view
* implement base attachment link
* add premium redirect
* show specific error message for free organizations
* make open-attachments a button so it is keyboard accessible
* fix lint error
* use bitItem
* using bitAction rather than standalone loading/deleting value
* remove extra title, unneeded because of the appA11yTitle usage
* use `replaceUrl` to avoid the back button going to the attachments page
* use bit-item for consistency
* show error when a user tries to open an attachment that is a part of a free org
* add `CipherId` type for failed builds
* Initial checking of collect many
* should update to better handle parameters
* cleaning up event collection params
* Adding documentation
* Removing commented out code saved for testing
* Adding pr changes and using the account service for event collection user id
* browser main.background event collection service needed the account service
* Add export-web.component
Introduce new export-web component
Delete old component
export.module - With export-web being standalone there's no need for a importModule
Change routing to load new component
* Prepare export.component to receive a orgId via the hosting-component
* Remove unused onSaved as it's replaced by onSuccessfulExport
* Refactor org-vault-export.component
Introduce new org-vault-export.component.html as the old component relied on the markup from password manager
Refactor org-vault-export.component
Retrieve organizationId from Route and pass it into the shared export.component
Ensure when exporting from AC to include all data from the selected org
org-vault-export.module - With the new component being standalone there's no need for a importModule
Change routing to load new org-vault-export component
* PM-8641 - Add success toast to base-export component
This ensures a success toast is shown on all clients consistently
Add missing entries into clients messages.json
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>