* feat: update sdk service abstraction with documentation and new `userClient$` function
* feat: add uninitialized user client with cache
* feat: initialize user crypto
* feat: initialize org keys
* fix: org crypto not initializing properly
* feat: avoid creating clients unnecessarily
* chore: remove dev print/subscription
* fix: clean up cache
* chore: update sdk version
* feat: implement clean-up logic (#11504)
* chore: bump sdk version to fix build issues
* chore: bump sdk version to fix build issues
* fix: missing constructor parameters
* refactor: simplify free() and delete() calls
* refactor: use a named function for client creation
* fix: client never freeing after refactor
* fix: broken impl and race condition in tests
* Update AccountService to include a method for setting the managedByOrganizationId
* Update AccountComponent to conditionally show the purgeVault button based on a feature flag and if the user is managed by an organization
* Add missing method to FakeAccountService
* Remove the setAccountManagedByOrganizationId method from the AccountService abstract class.
* Refactor AccountComponent to use OrganizationService to check for managing organization
* Rename managesActiveUser to userIsManagedByOrganization
* Refactor userIsManagedByOrganization property to be non-nullable in organization data and response models
* Refactor organization.data.spec.ts to include non-nullable userIsManagedByOrganization property
* Add Icon documentation
* Add 7th bullet
* Icon docs - add context on how to go from hex values to appropriate tailwind classes.
* 7th bullet needs bold to look right
* Add color icon per suggestion
* PM-8112 - Update classes of existing registration icons
* PM-8112 - Add new icons
* PM-8112 - Export icons from libs/auth
* PM-8112 - RegistrationStart - Add new user icon as page icon
* PM-8112 - Replace RegistrationCheckEmailIcon with new icon so it displays properly
* PM-8112 - RegistrationFinish - Add new icon across clients
* PM-8112 - Registration start comp - update page icon and page title on state change to match figma
* PM-8112 - RegistrationFinish - adding most of framework for changing page title & subtitle when an org invite is in state.
* PM-8112 - Add joinOrganizationName to all clients translations
* PM-8112 - RegistrationFinish - Remove default page title & subtitle and let onInit logic figure out what to set based on flows.
* PM-8112 - RegistrationStart - Fix setAnonLayoutWrapperData calls
* PM-8112 - RegistrationFinish - simplify qParams init logic to make handling loading and page title and subtitle setting easier.
* PM-8112 - Registration Link expired - move icon to page icon out of main content
* PM-8112 - RegistrationFinish - Refactor init logic further into distinct flows.
* PM-8112 - Fix icons
* PM-8112 - Extension AppRoutingModule - move sign up start & finish routes under extension anon layout
* PM-8112 - Fix storybook
* PM-8112 - Clean up unused prop
* PM-8112 - RegistrationLockAltIcon tweaks
* PM-8112 - Update icons to have proper styling
* PM-8112 - RegistrationUserAddIcon - remove unnecessary svg class
* PM-8112 - Fix icons
* [PM-7980] Fix inline menu not showing inside dialog html tag
* [PM-7980] Fix inline menu not showing inside dialog html tag
* [PM-7980] Fixing an issue where a dialog element could potentially not represent itself in the #top-layer
* add inline menu identity and card visibility settings state to autofill settings service
* add inline menu identity and card visibility settings to autofill settings view component
* add inline menu identity and card visibility settings to legacy autofill settings view component
* do not show inline menu card and identity visibility settings if inline-menu-positioning-improvements feature flag is off
* show card and identity inline menus based on their visibility settings
* do not show identities in account creation username/email fields if user setting disallows it
* reload local tab settings for inline menu visibility when an inline visibility setting value changes
* take out tabSendMessageData call for inline menu visibility sub-settings
---------
Co-authored-by: Cesar Gonzalez <cesar.a.gonzalezcs@gmail.com>
With #10192 we introduced the new send-list-filters, and filtered out any disabled sends. These still need to be shown as the the other clients still support enabling/disabling Sends
This will be removed once all clients use the same shared components.
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* PM-13318 - AnonLayoutWrapperData refactor to support all possible string scenarios (untranslated string, translated string, and translated string with placeholders)
* PM-13318 - Fix accidental check in
* PM-13318 - Revert the correct change.
* PM-13318 - Fix test failures
* [PM-6991] Remove self reference to cipherViews$
* [PM-6991] Update cipherViews$ observable to be reactive to encrypted ciphers and localData
* [PM-6991] Use the cipherViews$ observable in the Web vault
* [PM-6991] Update the vault filter service to use cipherViews$ observable
* [PM-6991] Add deprecation notice to getAllDecrypted
* [PM-6991] Ensure cipherViews$ emits an empty array whenever the decrypted cipher cache is cleared
* [PM-6991] Fix cipher service test
* [PM-6991] Use shareReplay instead of share
* [PM-6991] Remove ciphersExpectingUpdate and replace with a null filter instead for cipherViews$
* [PM-6991] Skip refreshing on null cipherViews$ to avoid flashing an empty vault after modifying ciphers
* increase z-index `cdk-drag-preview` so it displays on top of modals/dialogs when draggable elements are within them
* update comment overlay z-index and add ticket number
* update comment
* Replaced field trashed with state
The new field state contains either 'active' or 'archived'
Adjust all the test files to have the new field
Add unit test to verify skipping archived items on import
Fix importer
* Add addtional fields to 1pux importer types
No mapping currently necessary
* Field indexAtSource was deprecated
Removing it from the 1pux-importer-types
Updating all the test files
* Removed remaining instances of indexAtSource
* Fixed a leftover instance of trashed -> state
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* add `hideFolderSelection` for admin console ciphers
* hide folder form field when configuration has `hideFolderSelection` set to true
* add `addCipherV2` method in the admin console vault
* add browser refresh logic for add/edit form
* add admin console implementation of `AdminConsoleCipherFormConfigService`
* only allow edit dialog in admin console
* remove duplicate check
* refactor comments
* initial integration of combined dialog
* integrate add cipher with admin console vault
* account for special admin console collection permissions
* add `edit` variable to AC ciphers when the user has permissions
* Move comment to JSDoc
* pass full cipher to view component
* validate edit access when opening view form
* partial-edit not applicable for admin console
* refactor hideIndividualFields to be more generic and hide favorite button
* pass entire cipher into edit logic to match view logic
* add null check for cipher when attempting to view
* remove logic for personal ownership, not needed in AC
* [PM-12389] Hide delete button when there is no cipher to delete
* [PM-12389] Ensure decrypted collections and folders are available before building cipher form config
* [PM-12389] Hide the delete button when cloning ciphers
Follow up PR to #10974, flips the compile time flags to enabled and includes some debug logic to detect if users encounter issues with the WASM bundle in preparation for active consumption of the SDK.
* PM-13114 - WebEnvSvc - use hostname vs domain check for init and setEnv (tests TODO)
* PM-13114 - WebEnvSvc + URLs webpack config - use expected string variable on process.env.URLS to ensure tests can properly mock the WebEnvSvc
* PM-13114 - WebEnvSvc - setEnvironment - fix issue with returning currentRegion urls instead of currentEnv urls.
* PM-13114 - WebEnvSvc - setEnv - refactor names to improve clarity.
* PM-13114 - WebEnvSvc spec file - Test all prod scenarios
* PM-13144 - Work with Justin to move process.env.Urls access into injection token and remove webpack string type conversion.
* PM-13114 - WIP on getting additionalRegionConfigs injected via injection token to default env service.
* PM-13114 - Update all background inits to pass process.env.ADDITIONAL_REGIONS as unknown as RegionConfig[] to env service.
* PM-13114 - WebEnvSvc - adjust order of constructor deps
* PM-13114 - WebEnvSvc - add WebRegionConfig to extend RegionConfig type and be accurate for what the WebEnvSvc uses.
* PM-13114 - WebEnvSvc Tests - US QA tested
* PM-13114 - WebEnvSvc tests - refactor QA naming to make it more clear.
* PM-13114 - WebEnvSvc - test QA EU
* PM-13114 - WebEnvSvc - remove promise resolve per PR feedback.
* add password/username generator strings to web app
* remove JSLibServicesModule from generator dependencies
* integrate username and password generators into browser extension
* integrate username and password generators into web app
* move Jslib order back
* remove margin from within the generator components
* add alternative background to web generator dialog
* remove unneeded margin from username generator
* remove disable margin from div
* Revert "remove unneeded margin from username generator"
This reverts commit ae3067e3f2.
* remove CSS to alter internal margins of the generator components
* [PM-12389] Cleanup attachment dialog UI bugs
* [PM-12389] Add formReady event to CipherForm
* [PM-12389] Use ngOnChanges for CipherView component initialization
* [PM-12389] Cleanup web specific services and components
* [PM-12389] Introduce combined Vault Item Dialog component
* [PM-12389] Use the new VaultItemDialog in the Individual Vault
* [PM-12389] Deprecate the AddEditV2 and View dialogs in Web
* [PM-12389] Fix failing test
* [PM-12389] Fix broken imports after move
* [PM-12389] Remove messages.json addition that is taken care of in another PR
* Add "back" functionality for Desktop.
* Return user to email field when logo is clicked in Web.
* Update function name.
* Move hideLogo to anchor wrapper.
* Use "/" route for logo back link.
* PM-9449 - Init stub of new lock comp
* PM-9449 - (1) Add new lock screen title to all clients (2) Add to temp web routing module config
* PM-9449 - LockV2Comp - Building now with web HTML
* PM-9449 - Libs/Auth LockComp - bring in all desktop ts code; WIP, need to stand up LockCompService to facilitate ipc communication.
* PM-9449 - Create LockComponentService for facilitating client logic; potentially will decompose later.
* PM-9449 - Add extension lock comp service.
* PM-9449 - Libs/auth LockComp - bring in browser extension logic
* PM-9449 - Libs/auth LockComp html start
* PM-9449 - Libs/Auth LockComp - (1) Remove unused dep (2) Update setEmailAsPageSubtitle to work.
* PM-9449 - Add getBiometricsError to lock comp service for extension.
* PM-9449 - LockComp - (1) Save off client type as public comp var (2) Rename biometricLock as biometricLockSet
* PM-9449 - Work on lock comp service getAvailableUnlockOptions
* PM-9449 - WIP libs/auth LockComp
* PM-9449 - (1) Remove default lock comp svc (2) Add web lock comp svc.
* PM-9449 - UnlockOptions - replace incorrect type
* PM-9449 - DesktopLockComponentService -get most of observable based getAvailableUnlockOptions$ logic in place.
* PM-9449 - LockCompSvc - getAvailableUnlockOptions in place for all clients.
* PM-9449 - Add getBiometricsUnlockBtnText to LockCompSvc and put TODO for wiring it up later
* PM-9449 - Lock Comp - Replace all manual bools with unlock options.
* PM-9449 - Desktop Lock Comp Svc - adjust spacing
* PM-9449 - LockCompSvc - remove biometricsEnabled method
* PM-9449 - LockComp - Clean up commented out code
* PM-9449 - LockComp - webVaultHostname --> envHostName
* PM-9449 - Fix lock comp svc deps
* PM-9449 - LockComp - HTML progress
* PM-9449 - LockComp cleanup
* PM-9449 - Web Routing Module - wire up lock vs lockv2 using extension swap
* PM-9449 - Wire up loading state
* PM-9449 - LockComp - start wiring up listenForActiveUnlockOptionChanges logic with reactivity
* PM-9449 - Update desktop & extension lock comp service to use new biometrics service vs platform utils for biometrics information.
* PM-9449 - LockV2 - Swap platform util usage with toast svc
* PM-9449 - LockV2Comp - Bring over user id logic from PM-8933
* PM-9449 - LockV2Comp - Adjust everything to use activeAccount.id.
* PM-9449 - LockV2Comp - Progress on wiring up unlock option reactive stream.
* PM-9449 - LockComp ts - some refactoring and minor progress.
* PM-9449 - LockComp HTML - refactoring based on new idea to keep unlock options as separate as possible.
* PM-9449 - Add PIN translation to web
* PM-9449 - (1) Lock HTML refactor to make as independent verticals as possible (2) Refactor Lock ts (3) LockSvc - replace type with enum.
* PM-9449 - LockV2Comp - remove hardcoded await.
* PM-9449 - LockComp HTML - add todo
* PM-9449 - Web - Routing module - cleanup commented out stuff
* PM-9449 - LockV2Comp - Wire up biometrics + mild refactor.
* PM-9449 - Desktop - Wire up lockV2 redirection
* PM-9449 - LockV2 - Desktop - don't focus until unlock opts defined.
* PM-9449 - Fix accidental check in
* PM-9449 - LockV2 - loading state depends on unlock opts
* PM-9449 - LockV2 comp - remove unnecessary hr
* PM-9449 - Migrate "yourVaultIsLockedV2" translation to desktop & browser.
* PM-9449 - LockV2 - Layout tweaks for biometrics
* PM-9449 - LockV2 - Biometric btn text
* PM-9449 - LockV2 - Wire up biometrics loading / disable state + remove unnecessary conditions around biometricsUnlockBtnText
* PM-9449 - DesktopLockSvc - Per discussion with Bernd, remove interval polling and just check once for biometric support and availability.
* PM-9449 - AuthGuard - Add todo to remove promptBiometric
* PM-9449 - LockV2 - Refactor primary and desktop init logic + misc clean up
* PM-9449 - LockV2 - Reorder init methods
* PM-9449 - LockV2 - Per discussion with Product, deprecate windows biometric settings update warning
* PM-9449 - Add TODO per discussion with Justin and remove TODO
* PM-9449 - LockV2 - Restore hide password on desktop window hidden functionality.
* PM-9449 - Clean up accomplished todo
* PM-9449 - LockV2 - Refactor func name.
* PM-9449 - LockV2 Comp - (1) TODO cleanup (2) Add browser logic to handleBiometricsUnlockEnabled
* PM-9449 - LockCompSvc changes - (1) Observability for isFido2Session (2) Adjust errors and returns per discussion with Justin
* PM-9449 - Per product, no longer need to support special fido2 case on extension.
* PM-9449 - LockCompSvc - add getPreviousUrl support
* PM-9449 - LockV2 - Continued ts cleanup
* PM-9449 - LockV2Comp - clean up unused props
* PM-9449 - LockV2Comp - Rename response to masterPasswordVerificationResponse
* PM-9449 - LockV2 - Remove unused formPromise prop
* PM-9449 - Add missing translations + update desktop to showReadonlyHostName
* PM-9449 - LockV2 - cleanup TODO
* PM-9449 - LockV2 - more cleanup
* PM-9449 - Desktop Routing Module - only allow LockV2 access if extension refresh flag is enabled.
* PM-9449 - Extension - AppRoutingModule - Add extension redirect + new lockV2 route.
* PM-9449 - Extension - AppRoutingModule - Add lockV2 to the ExtensionAnonLayoutWrapperComponent intead of the regular one.
* PM-9449 - Extension - CurrentAccountComp - add null checks as anon layout components don't have a state today. This prevents the account switcher from working on the new lockV2 comp.
* PM-9449 - Extension AppRoutingModule - LockV2 should use ExtensionAnonLayoutWrapperData
* PM-9449 - LockComp - BiometricUnlock - cancelling is a valid action.
* PM-9449 - LockV2 - Biometric autoprompt cleanup
* PM-9449 - LockV2 - (1) Add TODO for KM team (2) Fix submit logic.
* PM-9449 - Tweak TODO to add task #
* PM-9449 - Test WebLockComponentService
* PM-9449 - ExtensionLockComponentService tested
* PM-9449 - Tweak extension lock comp svc test
* PM-9449 - DesktopLockComponentService tested
* PM-9449 - Add task # to TODO
* PM-9449 - Update apps/browser/src/services/extension-lock-component.service.ts per PR feedback
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* PM-9449 - Per PR feedback, replace from with defer for better reactive execution of promise based functions.
* PM-9449 - Per PR feedback replace enum with type.
* PM-9449 - Fix imports and tests due to key management file moves.
* PM-9449 - Another test file import fix
---------
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* send created redirect
* fix test
* fix test
* fix send form save
* return SendData from saveSend
* When saving a Send, bubble up a SendView which can be passed to the SendCreated component
* Use events to initiate navigation and move actual navigation into client-specific component
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* switch `collect` to `collectMany`
- The `collect` method in collection service tries to fetch the cipher via the passed `cipherId`. The cipher service fails within the admin console in some cases.
* add `getCipherAdmin` call to fetch ciphers not in a collection
* 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
* [PM-10381] Add activeUserLastSync$ to SyncService
* [PM-10381] Introduce waitUtil operator
* [PM-10381] Use new activeUserLastSync$ observable to wait until a sync completes before attempting to get decrypted ciphers
* [PM-10381] Fix failing test
---------
Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
* Make keypair setting more robust to prevent vault corruption on set-password component
* Use non-deprecated way to get private key
* Fix build error due to missing service
* updated cipher service to stop using the deprecated getUserKeyWithLegacySupport and use the version that requires a user id
* Added account service mock
* fixed cipher test
* Fixed test
* removed async from encryptCipher
* updated encryptSharedCipher to pass userId to the encrypt function
* Pass userId to getUserKeyWithLegacySupport on encryptSharedCipher
* pass in userid when setting masterKeyEncryptedUserKey
* Added activer usedId to new web refresh function
* import additional_urls from nordpass csv
* use type column of nordpass csv to get type of record
* fixed wrong naming of nordpass csv type
* impot custom fields from nordpass csv
* fix parse nordpass custom_fields
* fixed parsing of additional_urls in nordpass import
* update nordpass csv importer tests
* Capitalize type names
* Add test for OrgImport/CollectionCreation and fix Org-import
* Add test to verify success equals false when parsing fails.
* use "Text" as default FieldType of nordpass custom fields
* implemented seperated test for additional fields
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Update import test data with new fields
Add new fields to the types file
* Set favorites when importing from ProtonPass
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Upgrade storybook to version v8 which is a major upgrade. Storybook provides an
upgrade wizard which did most of the work.
- Ran npx storybook upgrade.
- Manually updated `remark-gfm` since the newer mdx requires v 4.
- Migrated all old stories still using `Story` to `StoryObj`.
* add new premium component
* finish new premium component
* revert change to config service
* hide copy changes behind feature flag
* revert keys back to original
* remove stateService and translation key
* add missing translation key
* add missing key
* PM-10601 - PinSvc new unlock check first draft
* PM-10601 - PinSvc - add new method for determining if pin decryption is available.
* PM-10601 - Add more docs on PinSvc
* PM-10601 - Update Lock Comp & User Verification service + tests to use new isPinDecryptionAvailable method
* reset `maxWidth` attribute during page change
* set default value for `maxWidth` if null or undefined is passed
* implement `maxWidth` for extension implementation of Anon Layout