* Move ownership of biometrics to key-management
* Move biometrics ipc ownership to km
* Move further files to km; split off preload / ipc to km
* Fix linting
* Fix linting
* Fix tests
* Fix tests
* Update .github/CODEOWNERS
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update .github/CODEOWNERS
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Change ownership of native messaging to key-management
* Move biometrics to libs/key-management
* Add README to capital whitelist
* Update package-lock.json
* Move km to key-management
* Move km to key-management
* Fix build for cli
* Import fixes
* Apply prettier fix
* Fix test
* Import fixes
* Import fixes
* Update libs/key-management/README.md
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update libs/key-management/package.json
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update lock file
* Change imports to top level km package
---------
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Specify enc string decryption key and service.
* Fix issue with identifying `this` type within extended classes
* Folder decryption example
* Test enc string changes
* Fix test name
* test decrypt with key
* add username and email engines to generators
* introduce username and email settings components
* introduce generator algorithm metadata
* inline generator policies
* wait until settings are available during generation
* Add password dialog component.
* Properly direct to browser password history screen.
* Add padding to history items.
* Update test to correct password history route.
* Remove unneeded provider.
* Use relative path for SharedModule.
* add data attrs for send form
* Add data-testid for toggle view password
* Revert "Add data-testid for toggle view password"
This reverts commit bd6fcc8c1b.
* move dataid to component
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* disable edit send if policy requires
* remove unused var
* don't display free bitwarden families button
* Revert "don't display free bitwarden families button"
This reverts commit 832564d705.
* use config instead of policy service
* Revert "don't display free bitwarden families button"
This reverts commit 832564d705.
* remove unnecessary code
* Use short when transforming deletionDate instead of fixed format
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* simplify logic and fix some pattern-matching bugs
* add first pass at parsing combined expiry year and month from user input
* clean up code
* fix broken three-digit parsing case
* fix case where splitCombinedDateValues returns empty strings when the input is only a delimiter
* fix incorrect expectation of falsy negative integers
* clean up code
* split out logic from parseYearMonthExpiry
* move utils from vault to autofill
* add constraint support to UserStateSubject
* add dynamic constraints
* implement password policy constraints
* replace policy evaluator with constraints in credential generation service
* add cascade between minNumber and minSpecial
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
* [PM-11343] Add param to conditionally disable the edit button
* [PM-11343] Cleanup router navigation and move query param handling to callers of the View dialog
* [PM-11343] Fix failing test
* [PM-11343] Fix missing router after merge
* [PM-11343] Add null checks in case the dialog result is undefined (due to closing via the ESC key)
* [PM-11343] Add support to provide a list of collections to the cipher view component
* [PM-11343] Add collections as an optional view cipher dialog parameter
* [PM-11343] Update the org vault to provide collections when opening the View cipher dialog
* [PM-11343] Fix import
* [PM-11343] Use [replaceUrl] for cipher items to avoid needing double back button
* remove nord and solarized dark from AppearanceV2 component
- This component already behind the extension refresh feature flag
* update the users theme to system when nord or solarized dark is selected
* For desktop, still allow all theme types by overriding the default theme service.
* change theme on the fly rather than updating local state.
- When the feature flag is removed then a migration will have to take place
* Reduce syncs when signing in with passkeys
* PM-7673: Reduce syncs when creating a passkey (#10824)
* Reduce to syncs when creating a passkey
* Mocked rxjs stream
* Add MessagingService to LoginCredentialView component.
* Add comments.
* Add WIP PremiumUpgradeService
* Simplify web PremiumUpgradeServices into one service.
* Relocate service files.
* Add browser version of PremiumUpgradePromptService.
* Cleanup debug comments.
* Run prettier.
* rework promptForPremium to take organization id and add test.
* Add test for browser
* Rework imports to fix linter errors.
* Add Shane's reworked WebVaultPremiumUpgradePromptService.
If the BufferSource is already an Uint8Array which is a view of a subset of the underlying ArrayBuffer then accessing .buffer caused the whole backing buffer to be returned. Fix this by just returning the original Uint8Array as-is.
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* Temporary local changes not meant to be merged
* WIP - send text details
* send text details
* remove extraneous code
* create base send details component
* remove file components
* fix send text details form
* remove comments
* fix send text details component
* revert type changes
* send created redirect
* Revert "send created redirect"
This reverts commit 36711d54a3.
* Removed hint under textArea, as per design
* Removed unused message keys
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* add copy specific aria-labels for login ciphers
* add copy specific aria-labels for card ciphers
* add copy translations for identity to web translations
* Refactor `POPUP_VIEW_MEMORY` to use `disk` rather than memory for the browser extension.
- When FireFox opens the popup in an standalone window memory is lost, thus causing the `popup-route-history` to be lost and back navigation ceases to work
* spelling
* revert state definition change
* add `onUpdated` event for firefox
* rework observable handling
* remove unneeded `from`
* [PM-11667] Remove all code related to the outdated custom permissions 'Edit/Delete Assigned Collections'
* Revert change made to data model in state migration
* Move Lock All To Happen in Background
- Make it done serially
- Have the promise only resolve once it's complete
* Unlock Active Account Last
* Add Tests
* Update Comment
* Testing out a rework of the performance improvements introduced into extension
* Working through improvements
* Implementing max_depth methodology for the deepQuery approach used when querying elements
* Refactoring implementation
* Refactoring implementation
* Fixing jest tests
* Incorporating documenation within domQueryService
* [PM-11519] `browser` global reference triggering an error when sending an extension message
* [PM-11517] Working through refactoring and jest testing of the domQueryService
* [PM-11517] Working through refactoring and jest testing of the domQueryService
* [PM-11517] Incorporating tests for the debounce util method
* [PM-11517] Incorporating tests for the debounce util method
* [PM-11517] Removing unnecessary property
* [PM-11517] Starting to work through an idea regarding querying without the shadowDom on pages that definitively do not contain a ShadowDOM element
* [PM-11419] Adjusting implementation to ensure we clear any active requests when the passkeys setting is modified
* [PM-11517] Removing unnecessary comments
* setup component, services, and web HTML
* make Web and Browser functional
* make desktop functional
* update template to solidify common client HTML
* simplify template and class
* update browser routing
* move canActivate to correct location
* simplify post submit routing
* update routing to use unauthUiRefreshSwap()
* constrain AnonLayout title/subtitle width, reduce height on destkop to account for header
* reduce height on browser to account for header (otherwise have to scroll to see EnvSelector
* resolve email issue when clicking 'cancel' on extension popout
* update routing for web
* persist email to popout
* update web router and anon-layout min-h based on client
* change anchor link to button
* remove unnecessary formatting changes
* add new icon
* remove unnecessary call to loginEmailService
* Send loggedOut/locked events on logout/lock event
* Revert "Send loggedOut/locked events on logout/lock event"
This reverts commit 293f2d6131.
* Ensure loggedOut is sent for non-active user logouts too
* Make loggedOut accept userIds
* Add userBeingLoggedOut in desktop app component
* Await updateconnection calls
* hide Free Bitwarden Families button if user is not eligible
* use organizationService.canManageSponsorships$ for determining if free bitwarden families is available
* update comment
* add `Cipher_ClientViewed` event to browser refresh components
* add `Cipher_ClientToggledPasswordVisible` event to browser refresh components
* add `Cipher_ClientToggledHiddenFieldVisible` event to browser refresh components
* add `Cipher_ClientToggledCardCodeVisible` event to browser refresh components
* add `Cipher_ClientToggledCardNumberVisible` event to browser refresh components
* add `Cipher_ClientToggledTOTPSeedVisible` event to browser refresh components
* add `Cipher_ClientCopiedPassword` event to browser refresh components
* add events for copying cipher fields from the vault menu
* add `Cipher_ClientCopiedHiddenField` event to browser refresh components
* add mock for tests
* add missing `Cipher_ClientCopiedCardCode` event
* remove the need for separate fields input
* add organization id to event collection so events are collected
* update test
* add event collection service to cipher form stories
* PM-11945 - AcceptOrg - fix inaccurate comment.
* PM-11945 - Refactor new registration process to pass along orgSponsoredFreeFamilyPlanToken
* PM-11945 - RegistrationFinishComponent - wire up passing of orgSponsoredFreeFamilyPlanToken to submit method
* PM-11945 - Add todo
* Use password field value instead of local variable for copy to clipboard
Use appCopyClick directive instead of manually copying and showing success toast
* Add missing "copySuccessful" message key to desktop and web
* Remove whitespace from web en/messages.json
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* add option to delete all folders if migration fails
* update text and flow to reattempt migration
* clear encrypted folders as well on delete all
* Update messaging
* handle timeout changes that are predefined string values
- Passing a string to `Math.max` will cause a NaN to be set.
* type form instance so TypeScript is more aware of the form values
* PM-10684 - ServiceContainer - Add better docs
* PM-10684 - UserAutoUnlockKeyService - setUserKeyInMemoryIfAutoUserKeySet - refactor method to return a bool instead of nothing so users can know if a user key was retrieved & set without another call.
* PM-10684 - Remove async code ( Program.ts) responsible for setting the auto user key from the session option handler (event emitter which fires when a user passes --session <sessionKey> to a command). Returning this to synchronous execution prevents a race condition between the setting of the user key and the command executing the exitIfLocked logic in the base-program which would check if the user key had been set to determine if the command should be allowed to execute or if the user was locked. When running a loop from a script, the command would often trigger the exitIfLocked before the auto user key could be set in state from the option:session session.
* PM-10684 - Clean up missed item per PR feedback
* [PM-11419] Login items do not display after adding passkey
* [PM-11419] Login items do not display after adding passkey
* [PM-11419] Incorporating fixes for deleting a cipher from the inline menu as well as authenticating using passkeys
* [PM-11419] Fixing an issue where master password reprompt is ignored for a set passkey cipher
* [PM-11419] Fixing an issue where saving a passkey does not trigger a clearing of cached cipher values
* [PM-11419] Refactoring implementation
* [PM-11419] Ensuring that passkeys must be enabled in order for ciphers to appear
* [PM-11419] Adding an abort event from the active request manager
* [PM-11419] Adding an abort event from the active request manager
* [PM-11419] Working through jest tests within implementation
* [PM-11419] Fixing jest tests within Fido2ClientService and Fido2AuthenticatorService
* [PM-11419] Adding jest tests for added logic within OverlayBackground
* [PM-11419] Adding jest tests for added logic within OverlayBackground
* [PM-11419] Reworking how we handle assuming user presence when master password reprompt is required
* [PM-11419] Reworking how we handle assuming user presence when master password reprompt is required
* [PM-11419] Reworking how we handle assuming user presence when master password reprompt is required
* [PM-11419] Refactoring implementation
* [PM-11419] Incorporating suggestion for reporting failed passkey authentication from the inline menu
* [PM-11419] Reworking positioning of the abort controller that informs the background script of an error
* [PM-11419] Scoping down the behavior surrounding master password reprompt a bit more tightly
* [PM-11419] Reworking how we handle reacting to active fido2 requests to avoid ambiguity
* [PM-11419] Reworking how we handle reacting to active fido2 requests to avoid ambiguity
* [PM-11419] Adjusting implementation to ensure we clear any active requests when the passkeys setting is modified
* add branching logic for alternative card expiration autofill strategy
* simplify logic and fix some pattern-matching bugs
* add EnableNewCardCombinedExpiryAutofill feature flag
* update default format for card expiry date and update tests
* review reccs
* PM-11635 - Refactor Base Login Component NgOnInit to properly connect the loading of email settings from state to the processing of query params. If an email is not passed via query params (like registration / normal login), then we will try to load the email from state.
* PM-11635 - Extension login component - call parent ngOnInit as it is responsible for processing / setting email from either query params or state. The addition of the child ngOnInit prevented the parent component ngOnInit from executing.
* Move SendV2component into send-v2 subFolder
* Create SendFormContainer and related services
* Add initial SendFormComponent which uses the SendFormContainer
* Remove AdditionalOptionsSectionComponent which will be added with a future PR
* Add libs/tools/send to root tsconfig
* Register libs/tools/send/send-ui with root jest.config.js
* Register libs/tools/send/send-ui with root tailwind.config.js
* Create empty Send add edit page
- Introduces conditional routing based on extension refresh feature flag
- After selecting a Send type via the New button navigate to the new send-add-edit page and build a SendFormConfig
* Fix service injection on DefaultSendFormService
* Rename setHeader into getHeaderText, make it private and add documentation
* Set radix/base to 10 for parseInt
* Add documentation
* Rename local variable
* Removed unneeded loading state
* Remove unused originalSendId
* Run prettier
* Add link to edit an existing send
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
- move organization-user files from libs/common/src/admin-console into libs/admin-console/src/common
- add barrel files and update imports to use barrel files
- rename OrganizationUserService to OrganizationUserApiService
- rename OrganizationUserServiceImplementation to DefaultOrganizationUserApiService
* match API of new CL FormField component
* remove readonly border for additional options component
* remove readonly border for last autofill option
* remove readonly border for last custom-field form field
* remove readonly border for when collection,org or folder is available
* add `ReadOnlyCipherCardComponent` to handle readonly border
* remove readonly border for the last identity form field
* remove readonly border for the last card form field
* remove readonly border for the last login form field
* remove unneeded true value
* use shared expiration year normalization util function
* use shared exp year normalization in web and desktop client
* handle cases where input has leading zeroes
* add utils tests
* handle cases where input is all zeroes
* update base anon-layout logo/icon
* update ExtensionAnonLayout logo/icon based on theme
* remove hard-coded fill
* remove solarizedDark class
---------
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
* created trash and trash container component
* added trash to vault settings
created observable to get deleted ciphers
* export icon
added locales
* remove edit and delete footver from trash view cipher
* Added helper text when viewing deleted ciphers
* prevent premature access of isDeleted from the cipher object
* simplified the condition to show the edit button
* return cipherView for deletedCiphers$ since that is what is used in the component
* changed section header to h6
* added routing animation
* Added restore to footer
* PM-11318 - Registration Finish - Log user in after registration
* PM-11318 - Adjust registration and login message to be one msg
* PM-11318 - RegistrationFinish - Adjust messaging based on product feedback.
* PM-11318 - RegistrationFinishComp - Tweak redirect and error logic.
* (No Logic) Fix typo in billing-api-service.abstraction file name
* (Cleanup) Remove payment method components and API methods from provider portal
Product team decided not to have a payment method page in the provider portal for consolidated billing. This just removes all the unused components and API methods.
* Add organization endpoints to support new payment method behavior
* Add payment-v2.component
This component existed in the libs folder because we used it for the provider portal, but since we've removed payment functionality from the provider portal, I moved it into web in this commit.
* (No Logic) Move existing payment.component into new payment component folder
* Add verify-bank-account.component
This component existed in the libs folder because we used it for the provider portal, but since we've removed payment functionality from the provider portal, I moved it into web in this commit.
* Add adjust-payment-dialog-v2.component
* (No Logic) Move existing adjust-payment-dialog.component into new adjust-payment-dialog component folder
* Add organization-payment-method.component
* Add feature flag: AC-2476-deprecate-stripe-sources-api
* Pivot organization payment method route on new feature flag
* Fix broken test
* [PM-10669] Notification bar appears inconsistently after login
* [PM-10669] Notification bar appears inconsistently after login
* [PM-10669] Migrating work from POC branch into feature branch
* [PM-10669] Incorporating styles for select element
* [PM-10669] Incorporating styles for select element
* [PM-10669] Fixing notification bar lifespan const
* [PM-10669] Incorporating logic that conditionally loads specific bootstrap autofill feature files
* [PM-10669] Incorporating logic to more smoothly handle transitioning between pages within the notification bar0
* [PM-10669] Incorporating logic to more smoothly handle transitioning between pages within the notification bar0
* [PM-10669] Incorporating logic to more smoothly handle transitioning between pages within the notification bar0
* [PM-10669] Incorporating a circle checkmark icon within the success message of the notification bar
* [PM-10669] Fixing an issue where the notification bar can potentially load in between loading states for a tab
* [PM-10669] Fixing an issue where the notification bar can potentially load in between loading states for a tab
* [PM-10669] Fixing an issue where the notification bar can potentially load in between loading states for a tab
* [PM-10669] Fixing an issue where the notification bar can potentially load in between loading states for a tab
* [PM-10669] Fixing how we handle keyup events on the submit button
* [PM-10669] Fixing how we handle keyup events on the submit button
* [PM-10669] Fixing jest tests within notification bar
* [PM-10669] Adding a jest tests to validate behavior within AutofillInit
* [PM-10669] Adding a jest tests to validate behavior within AutofillInit
* [PM-11170] Addressing test coverage within CollectAutofillContentService
* [PM-11170] Addressing test coverage within CollectAutofillContentService
* [PM-10669] Refactoring implementation
* [PM-10669] Adding documentation to the methods incorporated within the AutofillOverlayContentService
* [PM-10669] Incorporating jest tests for the AutofillOverlayContentService
* [PM-10669] Migrating logic associated with the DomQuerySevice away from the CollectAutofillContentService
* [PM-10669] Fixing required references to DomQueryService within the implementation
* [PM-10669] Holding off on re-incorporating the userTreeWalkerStrategyFlag
* [PM-10669] Incorporating jest tests for DomQueryService
* [PM-10669] Adding jest test to validate changes within AutofillService
* [PM-10669] Adding jest tests to validate changes within AutofillOverlayContentService
* [PM-10669] Adding documentation to the OverlayNotificationsBackground class
* [PM-10669] Adding documentation to the OverlayNotificationsBackground class
* [PM-10669] Incorporating jest tests to validate the OverlayNotificationsBackground class
* [PM-10669] Incorporating jest tests to validate the OverlayNotificationsBackground class
* [PM-10669] Incorporating jest tests to validate the OverlayNotificationsBackground class
* [PM-10669] Incorporating jest tests to validate the OverlayNotificationsBackground class
* [PM-10669] Incorporating jest tests to validate the OverlayNotificationsBackground class
* [PM-10669] Refactoring OverlayNotificationsContentService and incorporating logic that triggers a fade out of the notification bar on success of a saved password
* [PM-10669] Refactoring OverlayNotificationsContentService and incorporating logic that triggers a fade out of the notification bar on success of a saved password
* [PM-10669] Refactoring OverlayNotificationsContentService and incorporating logic that triggers a fade out of the notification bar on success of a saved password
* [PM-10669] Finalizing jest tests for OverlayNotificationsContentService
* [PM-10669] Finalizing jest tests for OverlayNotificationsContentService
* [PM-10669] Adding new copy for the password saved/updated event in the notification bar
* [PM-10669] Fixing visual presentation of sucesss message
* [PM-10669] Fixing visual presentation of sucesss message
* [PM-10418] Incorporating fallback for when we cannot capture the form button effectively
* [PM-10669] Incorporating fixes for form submission button not being captured
* [PM-10669] Incorporating a guard to ensure that an AJAX submission captures form data after the user has entered their credentials
* [PM-10669] Incorporating a field qualification rule to ensure that we capture forms that are non-viewable on load
* [PM-10669] Incorporating a document readyState listener to ensure that we populate the notification bar once the document body is loaded
* [PM-10669] Incorporating a match pattern for subdomains of a main domain when filtering out web requests
* [PM-10669] Incorporating a match pattern for subdomains of a main domain when filtering out web requests
* [PM-10669] Incorporating a redundant methodology to capture `GET` requests that trigger after a form submisson
* [PM-10669] Incorporating a redundant methodology to capture `GET` requests that trigger after a form submisson
* [PM-10669] Adding jest tests to validate changes within OverlayNotificationsBackground
* [PM-10669] Adjusting timeout for modified login credentials to ensure user can enter data on form
* [PM-10669] Refining how we handle re-capturing user credentails on before request to better handle multi-part forms
* [PM-10669] Refining how we handle re-capturing user credentails on before request to better handle multi-part forms
* [PM-10669] Adjusting jest tests to ensure code coverage
* [PM-10669] Fixing issues with Safari
* [PM-10669] Fixing an invalid qualification rule
* [PM-10669] Ensuring that we capture input changes correctly when a field is going from a hidden to non-hidden state
* [PM-10669] Fixing jest tests within overlay content service
* [PM-10669] Fixing jest tests within overlay content service
* [PM-10669] Adding a jest test to validate changes to overlay content service
* Create unavailable message for biometrics when in clamshell mode
* Move browser biometrics
* Inject nativemessagingbackground instead of using constructor
* Fix linting
* Fix build on browser
* Require userId for setting masterKeyEncryptedUserKey
* Replace folders for specified user
* Require userId for collection replace
* Cipher Replace requires userId
* Require UserId to update equivalent domains
* Require userId for policy replace
* sync state updates between fake state for better testing
* Revert to public observable tests
Since they now sync, we can test single-user updates impacting active user observables
* Do not init fake states through sync
Do not sync initial null values, that might wipe out already existing data.
* Require userId for Send replace
* Include userId for organization replace
* Require userId for billing sync data
* Require user Id for key connector sync data
* Allow decode of token by userId
* Require userId for synced key connector updates
* Add userId to policy setting during organization invite accept
* Fix cli
* Handle null userId
---------
Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
Migrate the index.html to use tailwind instead of bootstrap
* Extracted some more global styles to override the bootstrap styles for layout
frontend. We should revisit this when we remove bootstrap.
* Removed Angular specific logo for anon pages. Now uses the same css class as
loading page to prevent duplicated assets.
* Log reloading behavior
* Remove hints from responses.
changing password implies updating the hint, but no longer displays the old one. This is a security risk for shoulder surfing and breaks the escrow model we have where it is only shared via email when requested.
* Update change password hint label
* [PM-11170] Inline menu should not show incomplete login items along with passkeys
* [PM-11170] Inline menu should not show incomplete login items along with passkeys
* [PM-11170] Incorporating a fix for ciphers not being updated within the inline menu on user actions
* [PM-11170] Ensuring that conditional mediated auth does not trigger the authenticator
* [PM-11170] Adding a jest test to verify conditional mediated UI calls do not trigger the authenticator
* [PM-11170] Adding a jest test to verify conditional mediated UI calls do not trigger the authenticator
* [PM-11170] Reworking implementation to have the BrowserFido2UserInterfaceService trigger the expected behavior for the conditional mediated auth
* [PM-11170] Reworking implementation to have the BrowserFido2UserInterfaceService trigger the expected behavior for the conditional mediated auth
* [PM-11170] Following up on feedback provided during code review, reworking inline menu bypass of the fido2 authenticator to function based on assumeUserPresence param when triggering from the inline menu
* [PM-11170] Following up on feedback provided during code review, reworking inline menu bypass of the fido2 authenticator to function based on assumeUserPresence param when triggering from the inline menu
* [PM-11170] Following up on feedback provided during code review, reworking inline menu bypass of the fido2 authenticator to function based on assumeUserPresence param when triggering from the inline menu