diff --git a/docs/guides/how-to-add-totps/README.md b/docs/guides/how-to-add-totps/README.md index 2781faa..d03fef0 100644 --- a/docs/guides/how-to-add-totps/README.md +++ b/docs/guides/how-to-add-totps/README.md @@ -32,11 +32,10 @@ Then press OK, all selected records from Google Authenticator will appear on pag ![Added records from otpauth-migration](image-7.png) - ### If you use Proton Authenticator To add 2FA TOTP records from Proton Authenticator you must go to settings and press "Export": - ![alt text](photo_2025-08-08_17-10-27.jpg) +![alt text](photo_2025-08-08_17-10-27.jpg) After this save file and open it on text editor: @@ -52,4 +51,4 @@ Copy all stuff from file at clipboard and import in application: Then press OK, records will appear on page: -![alt text](<Снимок экрана_20250808_170912.png>) \ No newline at end of file +![alt text](<Снимок экрана_20250808_170912.png>) diff --git a/setting/consts.js b/setting/consts.js index 7946653..e7a9b5b 100644 --- a/setting/consts.js +++ b/setting/consts.js @@ -11,7 +11,7 @@ export const colors = { export const content = { addTotpsHint: "For add a 2FA TOTP record you must have otpauth:// link otpauth-migration://" + - "link from Google Authenticator Migration QR-Code or Proton authenticator Export JSON string." + + "link from Google Authenticator Migration QR-Code or Proton authenticator Export JSON string." + "If you have a questions - check instruction below!", totpRecordsHint: "TOTP records:", createButton: { @@ -29,10 +29,10 @@ export const content = { renameButtons: { rename: "Rename", renameIssuer: "Rename Issuer", - renameClient: "Rename Client" + renameClient: "Rename Client", }, saveButton: { - label: "Save" + label: "Save", }, deleteButton: { label: "Delete", diff --git a/setting/ui/card.js b/setting/ui/card.js index bb9c39e..baeb51a 100644 --- a/setting/ui/card.js +++ b/setting/ui/card.js @@ -14,7 +14,7 @@ export function createTOTPCard({ onMoveDown, onIssuerChange, onClientChange, - isEditInProgress + isEditInProgress, }) { const infoView = View( { @@ -40,7 +40,7 @@ export function createTOTPCard({ color: colors.text, borderRadius: "5px", height: "40px", - width: "200px" + width: "200px", }, subStyle: { display: "none", @@ -60,7 +60,7 @@ export function createTOTPCard({ color: colors.text, borderRadius: "5px", height: "40px", - width: "200px" + width: "200px", }, subStyle: { display: "none", @@ -109,16 +109,17 @@ export function createTOTPCard({ }, onClick: onRename, }), - !isEditInProgress ? - Button({ - label: content.deleteButton.label, - style: { - margin: "5px", - backgroundColor: colors.alert, - color: colors.text, - }, - onClick: onDelete, - }): null, + !isEditInProgress + ? Button({ + label: content.deleteButton.label, + style: { + margin: "5px", + backgroundColor: colors.alert, + color: colors.text, + }, + onClick: onDelete, + }) + : null, ], ); diff --git a/setting/utils/protonBackupExport.js b/setting/utils/protonBackupExport.js index a887750..34d9cfe 100644 --- a/setting/utils/protonBackupExport.js +++ b/setting/utils/protonBackupExport.js @@ -7,5 +7,5 @@ export class ProtonTotpRecord { content = { uri, entry_type, - } -} \ No newline at end of file + }; +} diff --git a/setting/utils/queryParser.js b/setting/utils/queryParser.js index e5b2799..e26910a 100644 --- a/setting/utils/queryParser.js +++ b/setting/utils/queryParser.js @@ -6,23 +6,26 @@ import { ProtonBackupExport } from "./protonBackupExport"; const otpauthScheme = "otpauth://"; const googleMigrationScheme = "otpauth-migration://"; export function getTOTPByLink(link) { - try { //proton export + try { + //proton export const json = JSON.parse(link); - console.log(json) + console.log(json); return getByProtonBackup(json); - } catch (e) { - if (link.startsWith(googleMigrationScheme)) { //google migration export + if (link.startsWith(googleMigrationScheme)) { + //google migration export return getByGoogleMigrationScheme(link); } - if (link.startsWith(otpauthScheme)) {//otpauth export + if (link.startsWith(otpauthScheme)) { + //otpauth export return getByOtpauthScheme(link); } - throw new Error(`Unsupported link type. Please use an otpauth:// or otpauth-migration:// link\n ERR: ${e}`); + throw new Error( + `Unsupported link type. Please use an otpauth:// or otpauth-migration:// link\n ERR: ${e}`, + ); } } - function getHashType(algorithm) { if (algorithm == "SHA1") return "SHA-1"; if (algorithm == "SHA256") return "SHA-256"; @@ -32,17 +35,21 @@ function getHashType(algorithm) { function getByProtonBackup(protonjson) { try { - if ("entries" in protonjson && protonjson.version == 1) { //Is proton export? - console.log(1) - const protonBE = Object.assign(new ProtonBackupExport(), protonjson) - const res = protonBE.entries.map(x => { + if ("entries" in protonjson && protonjson.version == 1) { + //Is proton export? + console.log(1); + const protonBE = Object.assign( + new ProtonBackupExport(), + protonjson, + ); + const res = protonBE.entries.map((x) => { return getByOtpauthScheme(x.content.uri); }); - console.log(res) + console.log(res); return res; } else throw new Error("use proton export backup with version: 1"); } catch (e) { - console.log(e) + console.log(e); throw new Error(`Unsupported JSON type: ${e}`); } }