mirror of
https://github.com/bitwarden/browser
synced 2026-01-02 08:33:43 +00:00
[PM-2899] Implement ProtonPass json importer (#5766)
* Implement ProtonPass json importer * Add protonpass-importer json type definition * Fix alphabetical order in importer imports * Add importer error message for encrypted protonpass imports * Add i18n to protonpass importer * Add protonpass (zip) importer * Fix protonpass importer * Add unit tests for protonpass importer * Make protonpass importer not discard totp codes * Merge protonpass json & zip importers * Add protonpass creditcard import & fix note import * Fix protonpass zip import not recognizing zip files on windows/chrome * Make protonpass importer use vault types * Make protonpass importer treat vaults as folders * Make protonpass importer treat folders as collections for organizations Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com> * Add types to protonpass test data * Fix protonpass importer's moveFoldersToCollections * Add tests for folders/collections * Remove unecessary type cast in protonpass importer * Remove unecessary type annotations in protonpass importer * Add assertion for credit card cvv in protonpass importer * Handle trashed items in protonpass importer * Fix setting expiry month on credit cards * Fix wrong folder-assignment Only the first item of a "vault" was getting assigned to a folder Extend unit tests to verify behaviour --------- Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com> Co-authored-by: Daniel James Smith <djsmith@web.de>
This commit is contained in:
174
libs/importer/spec/test-data/protonpass-json/protonpass.json.ts
Normal file
174
libs/importer/spec/test-data/protonpass-json/protonpass.json.ts
Normal file
@@ -0,0 +1,174 @@
|
||||
import { ProtonPassJsonFile } from "../../../src/importers/protonpass/types/protonpass-json-type";
|
||||
|
||||
export const testData: ProtonPassJsonFile = {
|
||||
version: "1.3.1",
|
||||
userId: "REDACTED_USER_ID",
|
||||
encrypted: false,
|
||||
vaults: {
|
||||
REDACTED_VAULT_ID_A: {
|
||||
name: "Personal",
|
||||
description: "Personal vault",
|
||||
display: {
|
||||
color: 0,
|
||||
icon: 0,
|
||||
},
|
||||
items: [
|
||||
{
|
||||
itemId:
|
||||
"yZENmDjtmZGODNy3Q_CZiPAF_IgINq8w-R-qazrOh-Nt9YJeVF3gu07ovzDS4jhYHoMdOebTw5JkYPGgIL1mwQ==",
|
||||
shareId:
|
||||
"SN5uWo4WZF2uT5wIDqtbdpkjuxCbNTOIdf-JQ_DYZcKYKURHiZB5csS1a1p9lklvju9ni42l08IKzwQG0B2ySg==",
|
||||
data: {
|
||||
metadata: {
|
||||
name: "Test Login - Personal Vault",
|
||||
note: "My login secure note.",
|
||||
itemUuid: "e8ee1a0c",
|
||||
},
|
||||
extraFields: [
|
||||
{
|
||||
fieldName: "non-hidden field",
|
||||
type: "text",
|
||||
data: {
|
||||
content: "non-hidden field content",
|
||||
},
|
||||
},
|
||||
{
|
||||
fieldName: "hidden field",
|
||||
type: "hidden",
|
||||
data: {
|
||||
content: "hidden field content",
|
||||
},
|
||||
},
|
||||
{
|
||||
fieldName: "second 2fa secret",
|
||||
type: "totp",
|
||||
data: {
|
||||
totpUri: "TOTPCODE",
|
||||
},
|
||||
},
|
||||
],
|
||||
type: "login",
|
||||
content: {
|
||||
username: "Username",
|
||||
password: "Password",
|
||||
urls: ["https://example.com/", "https://example2.com/"],
|
||||
totpUri:
|
||||
"otpauth://totp/Test%20Login%20-%20Personal%20Vault:Username?issuer=Test%20Login%20-%20Personal%20Vault&secret=TOTPCODE&algorithm=SHA1&digits=6&period=30",
|
||||
},
|
||||
},
|
||||
state: 1,
|
||||
aliasEmail: null,
|
||||
contentFormatVersion: 1,
|
||||
createTime: 1689182868,
|
||||
modifyTime: 1689182868,
|
||||
},
|
||||
{
|
||||
itemId:
|
||||
"xqq_Bh8RxNMBerkiMvRdH427yswZznjYwps-f6C5D8tmKiPgMxCSPNz1BOd4nRJ309gciDiPhXcCVWOyfJ66ZA==",
|
||||
shareId:
|
||||
"SN5uWo4WZF2uT5wIDqtbdpkjuxCbNTOIdf-JQ_DYZcKYKURHiZB5csS1a1p9lklvju9ni42l08IKzwQG0B2ySg==",
|
||||
data: {
|
||||
metadata: {
|
||||
name: "My Secure Note",
|
||||
note: "Secure note contents.",
|
||||
itemUuid: "ad618070",
|
||||
},
|
||||
extraFields: [],
|
||||
type: "note",
|
||||
content: {},
|
||||
},
|
||||
state: 1,
|
||||
aliasEmail: null,
|
||||
contentFormatVersion: 1,
|
||||
createTime: 1689182908,
|
||||
modifyTime: 1689182908,
|
||||
},
|
||||
{
|
||||
itemId:
|
||||
"ZmGzd-HNQYTr6wmfWlSfiStXQLqGic_PYB2Q2T_hmuRM2JIA4pKAPJcmFafxJrDpXxLZ2EPjgD6Noc9a0U6AVQ==",
|
||||
shareId:
|
||||
"SN5uWo4WZF2uT5wIDqtbdpkjuxCbNTOIdf-JQ_DYZcKYKURHiZB5csS1a1p9lklvju9ni42l08IKzwQG0B2ySg==",
|
||||
data: {
|
||||
metadata: {
|
||||
name: "Test Card",
|
||||
note: "Credit Card Note",
|
||||
itemUuid: "d8f45370",
|
||||
},
|
||||
extraFields: [],
|
||||
type: "creditCard",
|
||||
content: {
|
||||
cardholderName: "Test name",
|
||||
cardType: 0,
|
||||
number: "1234222233334444",
|
||||
verificationNumber: "333",
|
||||
expirationDate: "012025",
|
||||
pin: "1234",
|
||||
},
|
||||
},
|
||||
state: 1,
|
||||
aliasEmail: null,
|
||||
contentFormatVersion: 1,
|
||||
createTime: 1691001643,
|
||||
modifyTime: 1691001643,
|
||||
},
|
||||
{
|
||||
itemId:
|
||||
"xqq_Bh8RxNMBerkiMvRdH427yswZznjYwps-f6C5D8tmKiPgMxCSPNz1BOd4nRJ309gciDiPhXcCVWOyfJ66ZA==",
|
||||
shareId:
|
||||
"SN5uWo4WZF2uT5wIDqtbdpkjuxCbNTOIdf-JQ_DYZcKYKURHiZB5csS1a1p9lklvju9ni42l08IKzwQG0B2ySg==",
|
||||
data: {
|
||||
metadata: {
|
||||
name: "My Deleted Note",
|
||||
note: "Secure note contents.",
|
||||
itemUuid: "ad618070",
|
||||
},
|
||||
extraFields: [],
|
||||
type: "note",
|
||||
content: {},
|
||||
},
|
||||
state: 2,
|
||||
aliasEmail: null,
|
||||
contentFormatVersion: 1,
|
||||
createTime: 1689182908,
|
||||
modifyTime: 1689182908,
|
||||
},
|
||||
],
|
||||
},
|
||||
REDACTED_VAULT_ID_B: {
|
||||
name: "Test",
|
||||
description: "",
|
||||
display: {
|
||||
color: 4,
|
||||
icon: 2,
|
||||
},
|
||||
items: [
|
||||
{
|
||||
itemId:
|
||||
"U_J8-eUR15sC-PjUhjVcixDcayhjGuoerUZCr560RlAi0ZjBNkSaSKAytVzZn4E0hiFX1_y4qZbUetl6jO3aJw==",
|
||||
shareId:
|
||||
"OJz-4MnPqAuYnyemhctcGDlSLJrzsTnf2FnFSwxh1QP_oth9xyGDc2ZAqCv5FnqkVgTNHT5aPj62zcekNemfNw==",
|
||||
data: {
|
||||
metadata: {
|
||||
name: "Other vault login",
|
||||
note: "",
|
||||
itemUuid: "f3429d44",
|
||||
},
|
||||
extraFields: [],
|
||||
type: "login",
|
||||
content: {
|
||||
username: "other vault username",
|
||||
password: "other vault password",
|
||||
urls: [],
|
||||
totpUri: "",
|
||||
},
|
||||
},
|
||||
state: 1,
|
||||
aliasEmail: null,
|
||||
contentFormatVersion: 1,
|
||||
createTime: 1689182949,
|
||||
modifyTime: 1689182949,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user