1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 00:03:56 +00:00

[PM-18668] Create importer for xml files from Password Depot 17 (#14760)

* Create importer for xml file from Password Depot 17

- Create importer
- Create test data
- Create unit tests

* Add support for parsing credit cards

* Update comment on importer class

* Wire up the importer to be selectable in the UI

* Import and set favorites based on export file

* Refactor: Extract method for parsing login fields

* Parse comment on credit cards

* Add support for parsing identity records

* Add support for parsing rdp records

* Remove html decoding of password field

* Include setting credit card brand

* Create type to describe the different source item types

* Add support for SoftwareLicense item type

* Add support for teamviewer item type

* Add support for Putty item type

* Skip processing historical entries

* Add support for banking item type

* Add support for information item type

* Add support for certificate into login type

* Rename encrypted-file.xml to noop-encrypted-file due to a source type with the same name

* Add support for encrypted file item type

* Add support for document type

* Add mapping of source field types to bitwarden custom field types

* Remove duplicate code (copy-pasta mistake)

* Added missing docs

* Adding fallback to support MacOS Password Depot 17 xml files

Instead of a version node they have a dataformat node which contains the file format version

* Add support to parse export files from the MacOS client

* Skip creating a folder if it has no name

* Fix recognition and assignment to folders/collections

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
This commit is contained in:
Daniel James Smith
2025-07-01 15:52:04 +02:00
committed by GitHub
parent 5639668d3f
commit 6b627502be
31 changed files with 3133 additions and 0 deletions

View File

@@ -90,6 +90,7 @@ import {
YotiCsvImporter,
ZohoVaultCsvImporter,
PasswordXPCsvImporter,
PasswordDepot17XmlImporter,
} from "../importers";
import { Importer } from "../importers/importer";
import {
@@ -348,6 +349,8 @@ export class ImportService implements ImportServiceAbstraction {
return new PasswordXPCsvImporter();
case "netwrixpasswordsecure":
return new NetwrixPasswordSecureCsvImporter();
case "passworddepot17xml":
return new PasswordDepot17XmlImporter();
default:
return null;
}