1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-18 17:23:37 +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

@@ -73,6 +73,7 @@ export const regularImportOptions = [
{ id: "passkyjson", name: "Passky (json)" },
{ id: "passwordxpcsv", name: "Password XP (csv)" },
{ id: "netwrixpasswordsecure", name: "Netwrix Password Secure (csv)" },
{ id: "passworddepot17xml", name: "Password Depot 17 (xml)" },
] as const;
export type ImportType =