1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-12-23 16:38:45 +01:00
bitwarden-browser/apps/desktop
Will Martin ec866c744e
[PM-4195] LastPass importer flow (#6541)
* Split up import/export into separate modules

* Fix routing and apply PR feedback

* Renamed OrganizationExport exports to OrganizationVaultExport

* Make import dialogs standalone and move them to libs/importer

* Make import.component re-usable

- Move functionality which was previously present on the org-import.component into import.component
- Move import.component into libs/importer
Make import.component standalone
Create import-web.component to represent Web UI
Fix module imports and routing
Remove unused org-import-files

* Enable importing on deskop

Create import-dialog
Create file-menu entry to open import-dialog
Extend messages.json to include all the necessary messages from shared components

* Renamed filenames according to export rename

* Make ImportWebComponent standalone, simplify routing

* Pass organizationId as Input to ImportComponent

* use formLoading and formDisabled outputs

* use formLoading & formDisabled in desktop

* Emit an event when the import succeeds

Remove Angular router from base-component as other clients might not have routing (i.e. desktop)
Move logic that happened on web successful import into the import-web.component

* Enable importing on deskop

Create import-dialog
Create file-menu entry to open import-dialog
Extend messages.json to include all the necessary messages from shared components

* use formLoading & formDisabled in desktop

* Add missing message for importBlockedByPolicy callout

* Remove commented code for submit button

* Implement onSuccessfulImport to close dialog on success

* fix table themes on desktop & browser

* fix fileSelector button styles

* update selectors to use tools prefix; remove unused selectors

* update selectors

* Wall off UI components in libs/importer

Create barrel-file for libs/importer/components
Remove components and dialog exports from libs/importer/index.ts
Extend libs/shared/tsconfig.libs.json to include @bitwarden/importer/ui -> libs/importer/components
Extend apps/web/tsconfig.ts to include @bitwarden/importer/ui
Update all usages

* Rename @bitwarden/importer to @bitwarden/importer/core

Create more barrel files in libs/importer/*
Update imports within libs/importer
Extend tsconfig files
Update imports in web, desktop, browser and cli

* import-lastpass wip

* Lazy-load the ImportWebComponent via both routes

* Fix import path for ImportComponent

* add validation; add shared folders field

* clean up logic

* fill fileContent on account change

* Use SharedModule as import in import-web.component

* show spinner on pending validation; properly debounce; refactor to loadCSVData func

* fix pending submit guard

* hide on web, show on desktop & browser

* reset user agent fieldset styles

* fix validation

* File selector should be displayed as secondary

* update validation

* Fix setUserTypeContext always throwing

* refactor to password dialog approach

* remove control on destroy; dont submit on enter keydown

* helper to serialize vault accounts (#6556)

* helper to serialize vault accounts

* prettier

* add prompts

* Add missing messages for file-password-prompt

* Add missing messages for import-error-dialog

* Add missing message for import-success-dialog

* Create client-info

* Separate submit and handling import, add error-handling

* Move catch and error handling into submit

* Remove AsyncValidator logic from handleImport

* Add support for filtering shared accounts

* add sso flow to lp import (#6574)

* stub out some sso flow

* use computer props

* lastpass callback

* baseOpenIDConnectAuthority

* openIDConnectAuthorityBase

* comments

* camelCase user type context model

* processSigninResponse

* Refactor handleImport

* use large dialogSize

* remove extra setUserTypeContext

* fix passwordGenerationService provider; pass all errors to ValidationErrors

* add await SSO dialog & logic

* Move lastpass related files into separate folder

* Use bitSubmit to override submit preventDefault (#6607)

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>

* Use large dialogSize

* revert jslib changes

* PM-4398 - Add missing importWarning

* make ui class methods async

* add LastPassDirectImportService

* update error handling

* add OOB methods (manual passcode only)

* fix typo

* respond to SSO callback

* localize error messages

* remove uneeded comment

* update i18n

* add await sso i18n

* add not implemented error to service

* fix getting k2

* fix k1 bugs

* null checks should not be strict

* update awaiting sso dialog

* update approveDuoWebSdk

* refactor oob login flow

* Removing fieldset due to merge of https://github.com/bitwarden/clients/pull/6626

* Refactoring to push logic into the service vs the component

Move all methods related to MFA-UI into a LastPassDirectImportUIService
Move all logic around the import into a LastPassDirectImportService
The component now only has the necessary flows but no knowledge on how to use the lastpass import lib or the need for a OIDC client

* Remove unneeded passwordGenerationService

* move all import logic to service

* apply code review: remove name attributes; use protected fields; use formGroup.value

* rename submit method and add comment

* update textarea id

* update i18n

* remove rogue todo comment

* extract helper asyncValidatorsFinished

* Remove files related to DuoUI we didn't need to differentiate for MFA via Duo

* Add missing import

* revert formGroup.value access

* add email to signInRequest

* add try again error message

* add try again i18n

* consistent clientinfo id (#6654)



---------

Co-authored-by: William Martin <contact@willmartian.com>

* hide on browser

* add lastpass prefix

* add shared i18n copy to web and browser

* rename deeplink

* use protected field

* rename el ids

* refactor: remove nested conditional

* update form ids in consuming client components

* remove unnecessary return statement

* fix file id

* use ngIf

* use hidden because of getElementById

* Remove OIDC lib logging

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
2023-10-23 17:46:49 +00:00
..
.vscode Multi root workspace tweaks (#2858) 2022-06-13 21:39:36 -05:00
config Individual Vault Item Encryption Feature (#6241) 2023-09-28 08:44:57 -04:00
desktop_native [BEEEP] [PM-565] Implement clipboard logic in rust (#4516) 2023-10-02 18:50:57 +02:00
native-messaging-test-runner Update dependency uuid to v9 (#5960) 2023-08-21 16:58:21 +00:00
resources Update Plist files for MAS (#2951) 2022-06-22 15:10:21 -04:00
scripts [PM-3996] Scaffolding for preload script (#6065) 2023-10-12 11:50:17 +02:00
src [PM-4195] LastPass importer flow (#6541) 2023-10-23 17:46:49 +00:00
stores Update year in copyrights (#4325) 2022-12-28 21:59:23 +01:00
.eslintrc.json [EC-184] Desktop cleanup (#2553) 2022-05-05 19:03:56 +02:00
.gitignore Simplify our gitignore files (#2925) 2022-06-17 15:33:51 +02:00
crowdin.yml Fix Crowdin Pull workflow (#2667) 2022-05-10 10:20:32 -04:00
electron-builder.json [PM-4300] downgrade electron to v25.9.1 (#6573) 2023-10-13 10:26:56 -04:00
installer.nsh Add NSIS custom installer script for UAC fix on Windows (#2856) 2022-06-08 08:47:10 -04:00
jest.config.js [PM-2328] Fix jest deprecations (#5483) 2023-05-22 20:19:16 +02:00
package.json Bumped desktop version to 2023.9.4 (#6614) 2023-10-17 16:44:07 -04:00
postcss.config.js [PM-2237] Add tailwind to desktop & browser (#5326) 2023-07-14 15:03:42 -04:00
README.md Update urls to match the contributing docs (#4192) 2022-12-06 11:20:27 +01:00
sign.js Move desktop into apps/desktop 2022-05-05 17:20:34 +02:00
tailwind.config.js [PM-2237] Add tailwind to desktop & browser (#5326) 2023-07-14 15:03:42 -04:00
test.setup.ts [SG-397] Configure jest for Desktop and add simple tests (#3467) 2022-09-15 12:31:15 -04:00
tsconfig.json [PM-4222] Make importer UI reusable (#6504) 2023-10-19 11:17:23 +02:00
tsconfig.renderer.json Add support for migrated jslib (#2826) 2022-06-03 18:01:07 +02:00
tsconfig.spec.json [SG-397] Configure jest for Desktop and add simple tests (#3467) 2022-09-15 12:31:15 -04:00
webpack.main.js [PM-3996] Scaffolding for preload script (#6065) 2023-10-12 11:50:17 +02:00
webpack.preload.js [PM-3996] Scaffolding for preload script (#6065) 2023-10-12 11:50:17 +02:00
webpack.renderer.js [PM-3996] Scaffolding for preload script (#6065) 2023-10-12 11:50:17 +02:00

Github Workflow build on master Crowdin Join the chat at https://gitter.im/bitwarden/Lobby

Bitwarden Desktop Application

Platforms

The Bitwarden desktop app is written using Electron and Angular. The application installs on Windows, macOS, and Linux distributions.

Desktop Vault

Documentation

Please refer to the Desktop section of the Contributing Documentation for build instructions, recommended tooling, code style tips, and lots of other great information to get you started.