* Split out api methods into sendApiService
* Move SendService and abstraction
* Libs updates
* Web updates
* CLI updates
* Desktop updates
* libs send service fixes
* browser factory additions
* Browser updates
* Fix service injection for CLI SendReceiveCommand
* Deprecate directly calling send state service methods
* SendService observables updates
* Update components to use new observables
* Modify CLI to use state service instead of observables
* Remove unnecessary await on get()
* Move delete() to InternalSendService
* SendService unit tests
* Split fileUploadService by send and cipher
* send and cipher service factory updates
* Add file upload methods to get around circular dependency issues
* Move api methods from sendService to sendApiService
* Update cipherService to use fileApi methods
* libs service injection and component changes
* browser service injection and component changes
* Desktop component changes
* Web component changes
* cipher service test fix
* Fix file capitalization
* CLI service import and command updates
* Remove extra abstract fileUploadService
* WIP: Condense callbacks for file upload
Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com>
* Send callbacks for file upload
* Fix circular service dependencies
* Fix response return on upload
* Fix function definitions
* Service injection fixes and bug fixes
* Fix folder casing
* Service injection cleanup
* Remove deleted file from capital letters whitelist
* Create new SendApiService for popup
* Move cipherFileUploadService to vault
* Move SendFileUploadService methods into SendApiService
* Rename methods to remove 'WithServer'
* Properly subscribe to sendViews
* Fix Send serialization
* Implement fromJSON on sendFile and sendText
* [PM-1347] Fix send key serialization (#4989)
* Properly serialize key on send fromJSON
* Remove call that nulled out decrypted sends
* Fix null checks in fromJSON methods for models
* lint fixes
---------
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
* Added optional chaining to folder view object to handle when the foilder value is null
* Set folder to null during cleanup and added check on the view component to check if the folder is nul before rendering the html
* [PM-108] Fingerprint is calculated based on pubKey
* [PM-108] Change userId to userEmail. Remove fingerprint from AuthResponse
* [PM-130][PM-107] Remove fingerprint from request and clients UI
* Create and register new libs/importer
Create package.json
Create tsconfig
Create jest.config
Extend shared and root tsconfig and jest.configs
Register with eslint
* Move importer-related files to libs/importer
* Move importer-spec-related files to libs/importer
Move import.service.spec
* Update package-lock.json
* Set CODEOWNERS for new libs/importer
* Register libs/importer with cli and fix imports
* Register libs/importer with web and fix imports
* Move importOption into models
Rename importOptions to import-options
* Fix linting issues after updating prettier
* Only expose necessary files from libs/importer
Fix tsconfig files
- Removes the trailing /index on imports in web/cli
As the spec-files no longer can access the internals via @bitwarden/importer they import by path (../src/importers)
* Add barrel files to vendors with more than one importer
* add settingsService.getEquivalentDomains
* check that an iframe URL matches cipher.login.uris before autofilling
* disable autofill on page load if it doesn't match
* show a warning to the user on regular autofill if it doesn't match
---------
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com>
* Only pass necessary service to power-monitor
PowerMonitorMain only requires the messagingService instead of a full reference to Main
* Remove never changing constructor params
Window.main has a defaultWidth and defaultHeight that never change, so they do not need to get passed in from outside
hideTitleBar is always true, so there is no need to make it a param
* Remove projectName from updater
This is likely another relict from sharing this previously with dircetory-connector and is not needed anymore
* Only pass necessary service to MenuMain
MenuMain only needs service references instead of a full reference to Main
* Refactor biometrics service
Create BiometricsService that takes care of loading the platformspecifc services, hiding the implementation details
Make it clearer which dependencies are needed by a specific biometrics-service (compile-error vs runtime-error)
Add unit tests
Isolate biometrics import/exports with a barrel file
* Fix#3148
recordActivity was only getting called when user-activity in the main window is recognized
When using biometrics to unlock, the Windows Hello/TouchID prompt would be focused and no input would be recognised. LastActive would have an old value and the vault would get locked
* Improve reloading with biometrics
* Mock import of desktop-native
* Add mock for "@bitwarden/desktop-native-linux-x64-musl"
* Revert "Add mock for "@bitwarden/desktop-native-linux-x64-musl""
This reverts commit 69771b94bf.
* mock the exports of desktop-native
* Pass process.platform inot BiometricsService
* [EC-1046] add activate autofill policy to web
* [EC-1046] add local setting if policy needs to be set
* [AC-1046] activate autofill on page load if flag exists
* [AC-1046] move activation to current tab page
* [AC-1046] add warning to autofill policy
* [AC-1046] add useActivateAutofillPolicy to organization reponse
* [AC-1046] autofill to auto-fill
* work: moving the form
* fix: lint do be crazy sometimes
* fix: remove debug stuff
* fix: dialogService
* per Danielle Flinn: option 1, leave sizing wide.
* work: move modules to own container
* work: reorg modules
---------
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
* [EC-1086] fix: faulty orgId override
When single vault policy was in effect the orgId that the user belongs to was was always set for new ciphers for new ciphers. This was overwriting the client organization's id when a provider was trying to create new items in their clients vault.
* [AC-1086] chore: remove uneccessary assignments
* init refactor
* Fix current user access checks
* Add in warning dialogs that are aware of other APs
* cleanup handlers; refresh sa list on removal
* Code review updates
* [SM-580] Add warning dialog for Service account People tab (#4893)
* Add warning dialog from figma
* move dialog out of access selector component; add after delete event; remove people-sa logic
* remove commented code and unused service
* Updates to work with SM-581
---------
Co-authored-by: William Martin <contact@willmartian.com>
---------
Co-authored-by: William Martin <contact@willmartian.com>
* [EC-775] feat: add compatibility layer from #4154
* [EC-775] fix: ciphers not reloading on filter change
* [EC-775] feat: add support for cipher types
* [EC-775] feat: implement organization switching
* [EC-775] feat: remove invalid folder and collection checks
Had to remove these becuase they were causing double navigations on each click.
* [EC-775] fix: fix reverse data flow race condition
vault-filter.component was pushing up old filter models which would sometimes overwrite new filter models that came from the routed filter service.
* [EC-775] fix: No folder use-case not working
* [EC-775] feat: make navigation behave like master
* [EC-775] feat: add support for trash
* [EC-775] chore: simplify findNode
* [EC-775] feat: add support for org vault
* [EC-775] feat: add support for orgId in path
* [EC-775] feat: use proper treenode constructor
* [EC-775] chore: remove unnecessary variable
* [EC-775] docs: add docs to relevant classes
* [EC-775] chore: use existing function for searching tree
* [EC-775] fix: hide "new" button in trash view
* [EC-775] feat: add explicit handling for `AllItems`
* [EC-775] fix: prune folderId when changing organization
* [EC-775] fix: properly use `undefined` instead of `null`
* [EC-775] chore: simplify setters using ternary operator
* [EC-775] feat: add static typing to `type` filter
* [EC-775] feat: use new `All` variable for collections
* [EC-775] feat: return `RouterLink` compatible link from `createRoute`
* [EC-775] feat: add ordId path support to `createRoute`
* [EC-775] fix: interpret params differently in org vault
This is needed due to how defaults used to work when using `state-in-code`. We really want to get rid of this type of logic going forward.
* [EC-775] doc: clarify `createRoute`
* [EC-775] fix: better `type` typing
* [EC-775] feat: remove support for path navigation
It's better that we circle back to this type of navigationt when we're working on the VVR and have more knowledge about how this is supposed to work.
* [EC-775] fix: refactor bridge service to improve readability
Refactor follows feedback from PR review
* Init service layer changes
* refactor service to inherit abstract
* refactor access-selector component
* update access selector in projects
* add service accounts access selector
* update i18n
* fix delete action; use useExisting in providers
* update static permissions
* service account people should be readwrite on creation
* use setter instead of observable input
* remove warning callout
* remove abstract service
* truncate name in table
* remove extra comments
* Add projects access policy page
* Add locale
* use map instead of forEach
* refactor view factories
* update SA people copy
* map list responses
* Swap to using granted policies endpoints
* Remove text-xl from icon
---------
Co-authored-by: Thomas Avery <tavery@bitwarden.com>
Co-authored-by: William Martin <contact@willmartian.com>
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* Init service layer changes
* refactor service to inherit abstract
* refactor access-selector component
* update access selector in projects
* add service accounts access selector
* update i18n
* fix delete action; use useExisting in providers
* update static permissions
* service account people should be readwrite on creation
* use setter instead of observable input
* remove warning callout
* remove abstract service
* truncate name in table
* remove extra comments
* use map instead of forEach
* refactor view factories
* update SA people copy
* map list responses
---------
Co-authored-by: William Martin <contact@willmartian.com>
* remove added template for ngIf and rename icon directive
* fix regression in product switcher
* fix text color of bulk delete in org vault
* use ng-container for *ngIf
* Move autofillConstants to autofill folder
* Remove autofillConstants from whitelist capital
* Add vault team as code owners for autofill folder
* Update codeowners for web
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
* SM-281: Initial commit with trash component setup
* SM-281: Customize secrets list component, add ability to hard delete secrets
* SM-281: Add support for restoring secrets in SM
* SM-281: restoreSecret emit values as an array
* SM-281: Fix bug caused by mistake when doing merge conflict resolution
* SM-281: Clean up TrashService and move more functionality to TrashApiService
* Cleanup responses
* Merge TrashService and SecretService
* Remove tw-text-sm from dialogs
* Split delete into two components
* Change secrets table to have a single boolean for trash
* SM-281: Rename component to secret-hard-delete
* Remove unused organizationId
* Remove duplicate buttons
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* This commit implements the following main changes:
- Query elements by using a TreeWalker instead of `document.querySelector[All]`. The reason for this is that `querySelector[All]` doesn't traverse into elements with ShadowRoot.
- Recursively traverse into elements with `openOrClosedShadowRoot` or `Element.shadowRoot` (depending on browser support) inside TreeWalker loop.
- Use new query logic everywhere inside `autofill.js`. This also means we need to use filter functions to find elements with specific nodeNames and/or attributes instead of CSS selector strings.
- Add two new `instanceof Element` checks to prevent `Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'." errors`.
This change is fully backward compatible. If `openOrClosedShadowRoot` is not available it will always return undefined and we will never traverse into ShadowRoots just as the behavior was before this change.
* refactor: outsource recursive logic to accumulatingQueryDocAll
We don't want the `els` argument on the `queryDocAll` function because it's never used from outside the function itself. Thus the recursive logic is moved to `accumulatingQueryDocAll`.
Now `queryDocAll` creates an empty array and passes it to `accumulatingQueryDocAll` which recursively walks the document and all ShadowRoots and pushes all found nodes directly to the referenced array.
The decision to use a directly mutated array instead of `Array.concat(els)` or `Array.push(...els)` is for performance reasons. Pushing to the referenced array was 74% faster than using `Array.push` with spread operator and even 90% faster than using `Array.concat`.
Co-authored-by: Chad Miller <64046472+chadm-sq@users.noreply.github.com>
* refactor: extract input field relevance check into own function
Addresses CodeScene analysis violation "Bumpy Road Ahead" where conditional logic is checked for a nesting of 2 or deeper.
* refactor: use proper element attribute handling
- use el.type attribute instead of el.attribute.type on input elements. This makes sure we also get 'text' when type attribute is not explicitly specified
- use el.htmlFor attribute instead of el.attribute.for on label elements
- use `hasAttribute` and `getAttribute` methods instead of `attributes[]` which is discouraged by https://quirksmode.org/dom/core/#attributes
- improve readability of `isRelevantInputField`
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Chad Miller <64046472+chadm-sq@users.noreply.github.com>
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
* SG-1083 - Refactor SSO form validation to work per EC requirements
* Move SSO component into its own folder for better folder management for future components in auth.
* Defect SG-1086 - Domain verification table: Change domain name from anchor tag to button + add title
* SG-1083 - Send null instead of empty string for sso identifier to avoid duplicate key in database issues.
* SG-1086 - Add button type to domain verification button to pass lint rules.
* Updated messages
* Implement method in platformUtils to get autofill command
* Updates to callout in current tab component
* Add autofill keyboard shortcut to autofill settings
* style updates
* Add routing animation for autofill settings
* Remove extra function
* Remove unnecessary safari logic
* Remove autofill settings transition added in another PR
* Fix callout still present after clicking 'Got it' (#4797)
---------
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
* Port browser styles for generated password from browser to desktop
* Tweak styles
as the overall styles seem to diverge quite a bit from those of the browser extension, so things like the border color etc aren't as nicely defined, and there's already padding happening on the outer container, making the extra padding superfluous
* Wrap generator up as a `.box` / `.box-content` construct
adds the nice consistent box styles, same as the following blocks of content
* Wrap `.box` around both password AND username generated blocks
* Remove panel-like style, add browser extension border style