From e22ee5a5dc9a37ca95ca53a965a418c7b3ca7dc8 Mon Sep 17 00:00:00 2001 From: Kitteh Date: Fri, 21 May 2021 11:13:13 +0100 Subject: [PATCH] Add userpass user deletion. --- .eslintcache | 2 +- src/allPages.ts | 4 +- src/api/auth/userpass/deleteUserPassUser.ts | 17 +++++++ .../Auth/userpass/UserPassUserDelete.ts | 39 ++++++++++++++++ .../Access/Auth/userpass/UserPassUserNew.ts | 46 +++++++++++-------- .../Access/Auth/userpass/UserPassUserView.ts | 43 ++++++++++++----- src/translations/en.js | 8 +++- 7 files changed, 125 insertions(+), 34 deletions(-) create mode 100644 src/api/auth/userpass/deleteUserPassUser.ts create mode 100644 src/pages/Access/Auth/userpass/UserPassUserDelete.ts diff --git a/.eslintcache b/.eslintcache index 8282e7a..bcc83e0 100644 --- a/.eslintcache +++ b/.eslintcache @@ -1 +1 @@ -[{"/home/username/Projects/VaultUI/src/PageState.ts":"1","/home/username/Projects/VaultUI/src/allPages.ts":"2","/home/username/Projects/VaultUI/src/api/apiUtils.ts":"3","/home/username/Projects/VaultUI/src/api/auth/listAuth.ts":"4","/home/username/Projects/VaultUI/src/api/auth/usernameLogin.ts":"5","/home/username/Projects/VaultUI/src/api/auth/userpass/getUserPassUser.ts":"6","/home/username/Projects/VaultUI/src/api/auth/userpass/listUserPassUsers.ts":"7","/home/username/Projects/VaultUI/src/api/kv/createOrUpdateSecret.ts":"8","/home/username/Projects/VaultUI/src/api/kv/deleteSecret.ts":"9","/home/username/Projects/VaultUI/src/api/kv/getSecret.ts":"10","/home/username/Projects/VaultUI/src/api/kv/getSecretMetadata.ts":"11","/home/username/Projects/VaultUI/src/api/kv/getSecrets.ts":"12","/home/username/Projects/VaultUI/src/api/kv/undeleteSecret.ts":"13","/home/username/Projects/VaultUI/src/api/sys/getCapabilities.ts":"14","/home/username/Projects/VaultUI/src/api/sys/getMounts.ts":"15","/home/username/Projects/VaultUI/src/api/sys/getSealStatus.ts":"16","/home/username/Projects/VaultUI/src/api/sys/lookupSelf.ts":"17","/home/username/Projects/VaultUI/src/api/sys/newMount.ts":"18","/home/username/Projects/VaultUI/src/api/sys/renewSelf.ts":"19","/home/username/Projects/VaultUI/src/api/sys/sealVault.ts":"20","/home/username/Projects/VaultUI/src/api/sys/submitUnsealKey.ts":"21","/home/username/Projects/VaultUI/src/api/totp/addNewTOTP.ts":"22","/home/username/Projects/VaultUI/src/api/totp/getTOTPCode.ts":"23","/home/username/Projects/VaultUI/src/api/totp/getTOTPKeys.ts":"24","/home/username/Projects/VaultUI/src/api/transit/getTransitKey.ts":"25","/home/username/Projects/VaultUI/src/api/transit/getTransitKeys.ts":"26","/home/username/Projects/VaultUI/src/api/transit/newTransitKey.ts":"27","/home/username/Projects/VaultUI/src/api/transit/transitDecrypt.ts":"28","/home/username/Projects/VaultUI/src/api/transit/transitEncrypt.ts":"29","/home/username/Projects/VaultUI/src/api/transit/transitRewrap.ts":"30","/home/username/Projects/VaultUI/src/api/types/auth.ts":"31","/home/username/Projects/VaultUI/src/api/types/token.ts":"32","/home/username/Projects/VaultUI/src/api/types/transit.ts":"33","/home/username/Projects/VaultUI/src/api/types/userpass/user.ts":"34","/home/username/Projects/VaultUI/src/elements/CopyableInputBox.ts":"35","/home/username/Projects/VaultUI/src/elements/CopyableModal.ts":"36","/home/username/Projects/VaultUI/src/elements/FileUploadInput.ts":"37","/home/username/Projects/VaultUI/src/elements/Form.ts":"38","/home/username/Projects/VaultUI/src/elements/HeaderAndContent.ts":"39","/home/username/Projects/VaultUI/src/elements/ListItem.ts":"40","/home/username/Projects/VaultUI/src/elements/Margin.ts":"41","/home/username/Projects/VaultUI/src/elements/MarginInline.ts":"42","/home/username/Projects/VaultUI/src/elements/NavBar.ts":"43","/home/username/Projects/VaultUI/src/elements/Option.ts":"44","/home/username/Projects/VaultUI/src/elements/QRScanner.ts":"45","/home/username/Projects/VaultUI/src/elements/Tile.ts":"46","/home/username/Projects/VaultUI/src/formatDistance.ts":"47","/home/username/Projects/VaultUI/src/globalPageState.ts":"48","/home/username/Projects/VaultUI/src/htmlUtils.ts":"49","/home/username/Projects/VaultUI/src/main.ts":"50","/home/username/Projects/VaultUI/src/pageUtils.ts":"51","/home/username/Projects/VaultUI/src/pages/Access/AccessHome.ts":"52","/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthHome.ts":"53","/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthViewConfig.ts":"54","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserView.ts":"55","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUsersList.ts":"56","/home/username/Projects/VaultUI/src/pages/Home.ts":"57","/home/username/Projects/VaultUI/src/pages/Login.ts":"58","/home/username/Projects/VaultUI/src/pages/Me.ts":"59","/home/username/Projects/VaultUI/src/pages/PwGen.ts":"60","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueDelete.ts":"61","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueNew.ts":"62","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecret.ts":"63","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecretsEdit.ts":"64","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueVersions.ts":"65","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueView.ts":"66","/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewKVEngine.ts":"67","/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTOTPEngine.ts":"68","/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTransitEngine.ts":"69","/home/username/Projects/VaultUI/src/pages/Secrets/NewSecretsEngine.ts":"70","/home/username/Projects/VaultUI/src/pages/Secrets/SecretTitleElement.ts":"71","/home/username/Projects/VaultUI/src/pages/Secrets/SecretsHome.ts":"72","/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/NewTOTP.ts":"73","/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/TOTPView.ts":"74","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/NewTransitKey.ts":"75","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitDecrypt.ts":"76","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitEncrypt.ts":"77","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitRewrap.ts":"78","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitView.ts":"79","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitViewSecret.ts":"80","/home/username/Projects/VaultUI/src/pages/SetLanguage.ts":"81","/home/username/Projects/VaultUI/src/pages/SetVaultURL.ts":"82","/home/username/Projects/VaultUI/src/pages/Unseal.ts":"83","/home/username/Projects/VaultUI/src/playground.ts":"84","/home/username/Projects/VaultUI/src/translations/de.js":"85","/home/username/Projects/VaultUI/src/translations/en.js":"86","/home/username/Projects/VaultUI/src/translations/fr.js":"87","/home/username/Projects/VaultUI/src/translations/nl.js":"88","/home/username/Projects/VaultUI/src/translations/ru.js":"89","/home/username/Projects/VaultUI/src/types/Page.ts":"90","/home/username/Projects/VaultUI/src/types/internalErrors.ts":"91","/home/username/Projects/VaultUI/src/utils.ts":"92","/home/username/Projects/VaultUI/src/api/auth/userpass/createOrUpdateUserPassUser.ts":"93","/home/username/Projects/VaultUI/src/elements/InputWithTitle.ts":"94","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserEdit.ts":"95"},{"size":3392,"mtime":1621518107492,"results":"96","hashOfConfig":"97"},{"size":4204,"mtime":1621590629965,"results":"98","hashOfConfig":"97"},{"size":238,"mtime":1621516183334,"results":"99","hashOfConfig":"97"},{"size":387,"mtime":1621516183330,"results":"100","hashOfConfig":"97"},{"size":659,"mtime":1621516183330,"results":"101","hashOfConfig":"97"},{"size":453,"mtime":1621520037020,"results":"102","hashOfConfig":"97"},{"size":382,"mtime":1621516183330,"results":"103","hashOfConfig":"97"},{"size":1025,"mtime":1621516183340,"results":"104","hashOfConfig":"97"},{"size":1341,"mtime":1621516183340,"results":"105","hashOfConfig":"97"},{"size":887,"mtime":1621516183340,"results":"106","hashOfConfig":"97"},{"size":545,"mtime":1621516183340,"results":"107","hashOfConfig":"97"},{"size":791,"mtime":1621516183340,"results":"108","hashOfConfig":"97"},{"size":1069,"mtime":1621516183340,"results":"109","hashOfConfig":"97"},{"size":824,"mtime":1621516183330,"results":"110","hashOfConfig":"97"},{"size":505,"mtime":1621516183330,"results":"111","hashOfConfig":"97"},{"size":373,"mtime":1621516183330,"results":"112","hashOfConfig":"97"},{"size":505,"mtime":1621516183330,"results":"113","hashOfConfig":"97"},{"size":717,"mtime":1621516183330,"results":"114","hashOfConfig":"97"},{"size":493,"mtime":1621516183330,"results":"115","hashOfConfig":"97"},{"size":389,"mtime":1621516183330,"results":"116","hashOfConfig":"97"},{"size":515,"mtime":1621516183330,"results":"117","hashOfConfig":"97"},{"size":674,"mtime":1621516183330,"results":"118","hashOfConfig":"97"},{"size":385,"mtime":1621516183330,"results":"119","hashOfConfig":"97"},{"size":503,"mtime":1621516183334,"results":"120","hashOfConfig":"97"},{"size":565,"mtime":1621516183340,"results":"121","hashOfConfig":"97"},{"size":505,"mtime":1621516183334,"results":"122","hashOfConfig":"97"},{"size":698,"mtime":1621516183340,"results":"123","hashOfConfig":"97"},{"size":836,"mtime":1621516183340,"results":"124","hashOfConfig":"97"},{"size":836,"mtime":1621516183340,"results":"125","hashOfConfig":"97"},{"size":839,"mtime":1621516183340,"results":"126","hashOfConfig":"97"},{"size":373,"mtime":1621516183334,"results":"127","hashOfConfig":"97"},{"size":402,"mtime":1621516183334,"results":"128","hashOfConfig":"97"},{"size":920,"mtime":1621516183334,"results":"129","hashOfConfig":"97"},{"size":350,"mtime":1621589596922,"results":"130","hashOfConfig":"97"},{"size":1439,"mtime":1621516183317,"results":"131","hashOfConfig":"97"},{"size":2855,"mtime":1621516183317,"results":"132","hashOfConfig":"97"},{"size":786,"mtime":1621516183317,"results":"133","hashOfConfig":"97"},{"size":478,"mtime":1621590737109,"results":"134","hashOfConfig":"97"},{"size":470,"mtime":1621518772821,"results":"135","hashOfConfig":"97"},{"size":187,"mtime":1621516183317,"results":"136","hashOfConfig":"97"},{"size":206,"mtime":1621516183314,"results":"137","hashOfConfig":"97"},{"size":294,"mtime":1621516183317,"results":"138","hashOfConfig":"97"},{"size":1946,"mtime":1621516183317,"results":"139","hashOfConfig":"97"},{"size":246,"mtime":1621516183317,"results":"140","hashOfConfig":"97"},{"size":1240,"mtime":1621516183317,"results":"141","hashOfConfig":"97"},{"size":1167,"mtime":1621516183317,"results":"142","hashOfConfig":"97"},{"size":427,"mtime":1621516183327,"results":"143","hashOfConfig":"97"},{"size":83,"mtime":1621516183330,"results":"144","hashOfConfig":"97"},{"size":280,"mtime":1621516183327,"results":"145","hashOfConfig":"97"},{"size":3150,"mtime":1621516183327,"results":"146","hashOfConfig":"97"},{"size":2200,"mtime":1621516183327,"results":"147","hashOfConfig":"97"},{"size":2186,"mtime":1621516183327,"results":"148","hashOfConfig":"97"},{"size":2258,"mtime":1621518048588,"results":"149","hashOfConfig":"97"},{"size":2558,"mtime":1621520037020,"results":"150","hashOfConfig":"97"},{"size":2555,"mtime":1621590653341,"results":"151","hashOfConfig":"97"},{"size":1195,"mtime":1621520046767,"results":"152","hashOfConfig":"97"},{"size":2795,"mtime":1621516183317,"results":"153","hashOfConfig":"97"},{"size":4876,"mtime":1621521992463,"results":"154","hashOfConfig":"97"},{"size":3022,"mtime":1621516183317,"results":"155","hashOfConfig":"97"},{"size":4020,"mtime":1621522174342,"results":"156","hashOfConfig":"97"},{"size":1592,"mtime":1621516183324,"results":"157","hashOfConfig":"97"},{"size":2365,"mtime":1621523798611,"results":"158","hashOfConfig":"97"},{"size":5671,"mtime":1621516867868,"results":"159","hashOfConfig":"97"},{"size":2552,"mtime":1621516183320,"results":"160","hashOfConfig":"97"},{"size":1568,"mtime":1621516183320,"results":"161","hashOfConfig":"97"},{"size":3104,"mtime":1621516183320,"results":"162","hashOfConfig":"97"},{"size":2588,"mtime":1621523634694,"results":"163","hashOfConfig":"97"},{"size":1973,"mtime":1621521067481,"results":"164","hashOfConfig":"97"},{"size":1999,"mtime":1621523539064,"results":"165","hashOfConfig":"97"},{"size":1467,"mtime":1621516183324,"results":"166","hashOfConfig":"97"},{"size":1851,"mtime":1621516183324,"results":"167","hashOfConfig":"97"},{"size":3127,"mtime":1621516867868,"results":"168","hashOfConfig":"97"},{"size":3369,"mtime":1621523100533,"results":"169","hashOfConfig":"97"},{"size":3735,"mtime":1621516183324,"results":"170","hashOfConfig":"97"},{"size":2825,"mtime":1621523539064,"results":"171","hashOfConfig":"97"},{"size":3575,"mtime":1621522679278,"results":"172","hashOfConfig":"97"},{"size":3585,"mtime":1621522712871,"results":"173","hashOfConfig":"97"},{"size":3678,"mtime":1621523100533,"results":"174","hashOfConfig":"97"},{"size":2238,"mtime":1621516183320,"results":"175","hashOfConfig":"97"},{"size":2305,"mtime":1621516183320,"results":"176","hashOfConfig":"97"},{"size":1985,"mtime":1621521691035,"results":"177","hashOfConfig":"97"},{"size":1361,"mtime":1621522372243,"results":"178","hashOfConfig":"97"},{"size":5326,"mtime":1621521334308,"results":"179","hashOfConfig":"97"},{"size":697,"mtime":1621516183327,"results":"180","hashOfConfig":"97"},{"size":736,"mtime":1620831400010,"results":"181","hashOfConfig":"97"},{"size":9670,"mtime":1621590629968,"results":"182","hashOfConfig":"97"},{"size":5783,"mtime":1621331186858,"results":"183","hashOfConfig":"97"},{"size":737,"mtime":1620831400010,"results":"184","hashOfConfig":"97"},{"size":8289,"mtime":1621331199668,"results":"185","hashOfConfig":"97"},{"size":637,"mtime":1621516183330,"results":"186","hashOfConfig":"97"},{"size":147,"mtime":1621516183330,"results":"187","hashOfConfig":"97"},{"size":870,"mtime":1621585633253,"results":"188","hashOfConfig":"97"},{"size":754,"mtime":1621590629965,"results":"189","hashOfConfig":"97"},{"size":498,"mtime":1621590629965,"results":"190","hashOfConfig":"97"},{"size":6025,"mtime":1621590706508,"results":"191","hashOfConfig":"97"},{"filePath":"192","messages":"193","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"3eomw3",{"filePath":"194","messages":"195","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"196","messages":"197","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"198","messages":"199","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"200","messages":"201","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"202","messages":"203","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"204","messages":"205","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"206","messages":"207","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"208","messages":"209","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"210","messages":"211","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"212","messages":"213","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"214","messages":"215","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"216","messages":"217","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"218","messages":"219","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"220","messages":"221","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"222","messages":"223","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"224","messages":"225","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"226","messages":"227","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"228","messages":"229","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"230","messages":"231","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"232","messages":"233","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"234","messages":"235","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"236","messages":"237","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"238","messages":"239","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"240","messages":"241","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"242","messages":"243","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"244","messages":"245","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"246","messages":"247","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"248","messages":"249","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"250","messages":"251","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"252","messages":"253","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"254","messages":"255","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"256","messages":"257","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"258","messages":"259","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"260","messages":"261","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"262","messages":"263","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"264","messages":"265","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"266","messages":"267","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"268","messages":"269","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"270","messages":"271","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"272","messages":"273","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"274","messages":"275","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"276","messages":"277","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"278","messages":"279","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"280","messages":"281","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"282","messages":"283","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"284","messages":"285","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"286","messages":"287","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"288","messages":"289","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"290","messages":"291","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"292","messages":"293","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"294","messages":"295","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"296","messages":"297","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"298","messages":"299","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"300","messages":"301","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"302","messages":"303","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"304","messages":"305","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"306","messages":"307","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"308","messages":"309","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"310","messages":"311","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"312","messages":"313","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"314","messages":"315","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"316","messages":"317","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"318","messages":"319","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"320","messages":"321","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"322","messages":"323","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"324","messages":"325","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"326","messages":"327","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"328","messages":"329","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"330","messages":"331","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"332","messages":"333","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"334","messages":"335","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"336","messages":"337","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"338","messages":"339","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"340","messages":"341","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"342","messages":"343","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"344","messages":"345","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"346","messages":"347","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"348","messages":"349","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"350","messages":"351","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"352","messages":"353","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"354","messages":"355","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"356","messages":"357","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"358","messages":"359","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"360","messages":"361","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"362","messages":"363","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"364","messages":"365","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"366","messages":"367","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"368","messages":"369","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"370","messages":"371","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"372","messages":"373","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"374","messages":"375","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"376","messages":"377","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"378","messages":"379","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"380","messages":"381","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/username/Projects/VaultUI/src/PageState.ts",[],"/home/username/Projects/VaultUI/src/allPages.ts",[],"/home/username/Projects/VaultUI/src/api/apiUtils.ts",[],"/home/username/Projects/VaultUI/src/api/auth/listAuth.ts",[],"/home/username/Projects/VaultUI/src/api/auth/usernameLogin.ts",[],"/home/username/Projects/VaultUI/src/api/auth/userpass/getUserPassUser.ts",[],"/home/username/Projects/VaultUI/src/api/auth/userpass/listUserPassUsers.ts",[],"/home/username/Projects/VaultUI/src/api/kv/createOrUpdateSecret.ts",[],"/home/username/Projects/VaultUI/src/api/kv/deleteSecret.ts",[],"/home/username/Projects/VaultUI/src/api/kv/getSecret.ts",[],"/home/username/Projects/VaultUI/src/api/kv/getSecretMetadata.ts",[],"/home/username/Projects/VaultUI/src/api/kv/getSecrets.ts",[],"/home/username/Projects/VaultUI/src/api/kv/undeleteSecret.ts",[],"/home/username/Projects/VaultUI/src/api/sys/getCapabilities.ts",[],"/home/username/Projects/VaultUI/src/api/sys/getMounts.ts",[],"/home/username/Projects/VaultUI/src/api/sys/getSealStatus.ts",[],"/home/username/Projects/VaultUI/src/api/sys/lookupSelf.ts",[],"/home/username/Projects/VaultUI/src/api/sys/newMount.ts",[],"/home/username/Projects/VaultUI/src/api/sys/renewSelf.ts",[],"/home/username/Projects/VaultUI/src/api/sys/sealVault.ts",[],"/home/username/Projects/VaultUI/src/api/sys/submitUnsealKey.ts",[],"/home/username/Projects/VaultUI/src/api/totp/addNewTOTP.ts",[],"/home/username/Projects/VaultUI/src/api/totp/getTOTPCode.ts",[],"/home/username/Projects/VaultUI/src/api/totp/getTOTPKeys.ts",[],"/home/username/Projects/VaultUI/src/api/transit/getTransitKey.ts",[],"/home/username/Projects/VaultUI/src/api/transit/getTransitKeys.ts",[],"/home/username/Projects/VaultUI/src/api/transit/newTransitKey.ts",[],"/home/username/Projects/VaultUI/src/api/transit/transitDecrypt.ts",[],"/home/username/Projects/VaultUI/src/api/transit/transitEncrypt.ts",[],"/home/username/Projects/VaultUI/src/api/transit/transitRewrap.ts",[],"/home/username/Projects/VaultUI/src/api/types/auth.ts",[],"/home/username/Projects/VaultUI/src/api/types/token.ts",[],"/home/username/Projects/VaultUI/src/api/types/transit.ts",[],"/home/username/Projects/VaultUI/src/api/types/userpass/user.ts",[],"/home/username/Projects/VaultUI/src/elements/CopyableInputBox.ts",[],"/home/username/Projects/VaultUI/src/elements/CopyableModal.ts",[],"/home/username/Projects/VaultUI/src/elements/FileUploadInput.ts",[],"/home/username/Projects/VaultUI/src/elements/Form.ts",[],"/home/username/Projects/VaultUI/src/elements/HeaderAndContent.ts",[],"/home/username/Projects/VaultUI/src/elements/ListItem.ts",[],"/home/username/Projects/VaultUI/src/elements/Margin.ts",[],"/home/username/Projects/VaultUI/src/elements/MarginInline.ts",[],"/home/username/Projects/VaultUI/src/elements/NavBar.ts",[],"/home/username/Projects/VaultUI/src/elements/Option.ts",[],"/home/username/Projects/VaultUI/src/elements/QRScanner.ts",[],"/home/username/Projects/VaultUI/src/elements/Tile.ts",[],"/home/username/Projects/VaultUI/src/formatDistance.ts",[],"/home/username/Projects/VaultUI/src/globalPageState.ts",[],"/home/username/Projects/VaultUI/src/htmlUtils.ts",[],"/home/username/Projects/VaultUI/src/main.ts",[],"/home/username/Projects/VaultUI/src/pageUtils.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/AccessHome.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthHome.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthViewConfig.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserView.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUsersList.ts",[],"/home/username/Projects/VaultUI/src/pages/Home.ts",[],"/home/username/Projects/VaultUI/src/pages/Login.ts",[],"/home/username/Projects/VaultUI/src/pages/Me.ts",[],"/home/username/Projects/VaultUI/src/pages/PwGen.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueDelete.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueNew.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecret.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecretsEdit.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueVersions.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueView.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewKVEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTOTPEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTransitEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewSecretsEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/SecretTitleElement.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/SecretsHome.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/NewTOTP.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/TOTPView.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/NewTransitKey.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitDecrypt.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitEncrypt.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitRewrap.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitView.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitViewSecret.ts",[],"/home/username/Projects/VaultUI/src/pages/SetLanguage.ts",[],"/home/username/Projects/VaultUI/src/pages/SetVaultURL.ts",[],"/home/username/Projects/VaultUI/src/pages/Unseal.ts",[],"/home/username/Projects/VaultUI/src/playground.ts",[],"/home/username/Projects/VaultUI/src/translations/de.js",[],"/home/username/Projects/VaultUI/src/translations/en.js",[],"/home/username/Projects/VaultUI/src/translations/fr.js",[],"/home/username/Projects/VaultUI/src/translations/nl.js",[],"/home/username/Projects/VaultUI/src/translations/ru.js",[],"/home/username/Projects/VaultUI/src/types/Page.ts",[],"/home/username/Projects/VaultUI/src/types/internalErrors.ts",[],"/home/username/Projects/VaultUI/src/utils.ts",[],"/home/username/Projects/VaultUI/src/api/auth/userpass/createOrUpdateUserPassUser.ts",[],"/home/username/Projects/VaultUI/src/elements/InputWithTitle.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserEdit.ts",[]] \ No newline at end of file +[{"/home/username/Projects/VaultUI/src/PageState.ts":"1","/home/username/Projects/VaultUI/src/allPages.ts":"2","/home/username/Projects/VaultUI/src/api/apiUtils.ts":"3","/home/username/Projects/VaultUI/src/api/auth/listAuth.ts":"4","/home/username/Projects/VaultUI/src/api/auth/usernameLogin.ts":"5","/home/username/Projects/VaultUI/src/api/auth/userpass/getUserPassUser.ts":"6","/home/username/Projects/VaultUI/src/api/auth/userpass/listUserPassUsers.ts":"7","/home/username/Projects/VaultUI/src/api/kv/createOrUpdateSecret.ts":"8","/home/username/Projects/VaultUI/src/api/kv/deleteSecret.ts":"9","/home/username/Projects/VaultUI/src/api/kv/getSecret.ts":"10","/home/username/Projects/VaultUI/src/api/kv/getSecretMetadata.ts":"11","/home/username/Projects/VaultUI/src/api/kv/getSecrets.ts":"12","/home/username/Projects/VaultUI/src/api/kv/undeleteSecret.ts":"13","/home/username/Projects/VaultUI/src/api/sys/getCapabilities.ts":"14","/home/username/Projects/VaultUI/src/api/sys/getMounts.ts":"15","/home/username/Projects/VaultUI/src/api/sys/getSealStatus.ts":"16","/home/username/Projects/VaultUI/src/api/sys/lookupSelf.ts":"17","/home/username/Projects/VaultUI/src/api/sys/newMount.ts":"18","/home/username/Projects/VaultUI/src/api/sys/renewSelf.ts":"19","/home/username/Projects/VaultUI/src/api/sys/sealVault.ts":"20","/home/username/Projects/VaultUI/src/api/sys/submitUnsealKey.ts":"21","/home/username/Projects/VaultUI/src/api/totp/addNewTOTP.ts":"22","/home/username/Projects/VaultUI/src/api/totp/getTOTPCode.ts":"23","/home/username/Projects/VaultUI/src/api/totp/getTOTPKeys.ts":"24","/home/username/Projects/VaultUI/src/api/transit/getTransitKey.ts":"25","/home/username/Projects/VaultUI/src/api/transit/getTransitKeys.ts":"26","/home/username/Projects/VaultUI/src/api/transit/newTransitKey.ts":"27","/home/username/Projects/VaultUI/src/api/transit/transitDecrypt.ts":"28","/home/username/Projects/VaultUI/src/api/transit/transitEncrypt.ts":"29","/home/username/Projects/VaultUI/src/api/transit/transitRewrap.ts":"30","/home/username/Projects/VaultUI/src/api/types/auth.ts":"31","/home/username/Projects/VaultUI/src/api/types/token.ts":"32","/home/username/Projects/VaultUI/src/api/types/transit.ts":"33","/home/username/Projects/VaultUI/src/api/types/userpass/user.ts":"34","/home/username/Projects/VaultUI/src/elements/CopyableInputBox.ts":"35","/home/username/Projects/VaultUI/src/elements/CopyableModal.ts":"36","/home/username/Projects/VaultUI/src/elements/FileUploadInput.ts":"37","/home/username/Projects/VaultUI/src/elements/Form.ts":"38","/home/username/Projects/VaultUI/src/elements/HeaderAndContent.ts":"39","/home/username/Projects/VaultUI/src/elements/ListItem.ts":"40","/home/username/Projects/VaultUI/src/elements/Margin.ts":"41","/home/username/Projects/VaultUI/src/elements/MarginInline.ts":"42","/home/username/Projects/VaultUI/src/elements/NavBar.ts":"43","/home/username/Projects/VaultUI/src/elements/Option.ts":"44","/home/username/Projects/VaultUI/src/elements/QRScanner.ts":"45","/home/username/Projects/VaultUI/src/elements/Tile.ts":"46","/home/username/Projects/VaultUI/src/formatDistance.ts":"47","/home/username/Projects/VaultUI/src/globalPageState.ts":"48","/home/username/Projects/VaultUI/src/htmlUtils.ts":"49","/home/username/Projects/VaultUI/src/main.ts":"50","/home/username/Projects/VaultUI/src/pageUtils.ts":"51","/home/username/Projects/VaultUI/src/pages/Access/AccessHome.ts":"52","/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthHome.ts":"53","/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthViewConfig.ts":"54","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserView.ts":"55","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUsersList.ts":"56","/home/username/Projects/VaultUI/src/pages/Home.ts":"57","/home/username/Projects/VaultUI/src/pages/Login.ts":"58","/home/username/Projects/VaultUI/src/pages/Me.ts":"59","/home/username/Projects/VaultUI/src/pages/PwGen.ts":"60","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueDelete.ts":"61","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueNew.ts":"62","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecret.ts":"63","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecretsEdit.ts":"64","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueVersions.ts":"65","/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueView.ts":"66","/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewKVEngine.ts":"67","/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTOTPEngine.ts":"68","/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTransitEngine.ts":"69","/home/username/Projects/VaultUI/src/pages/Secrets/NewSecretsEngine.ts":"70","/home/username/Projects/VaultUI/src/pages/Secrets/SecretTitleElement.ts":"71","/home/username/Projects/VaultUI/src/pages/Secrets/SecretsHome.ts":"72","/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/NewTOTP.ts":"73","/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/TOTPView.ts":"74","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/NewTransitKey.ts":"75","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitDecrypt.ts":"76","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitEncrypt.ts":"77","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitRewrap.ts":"78","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitView.ts":"79","/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitViewSecret.ts":"80","/home/username/Projects/VaultUI/src/pages/SetLanguage.ts":"81","/home/username/Projects/VaultUI/src/pages/SetVaultURL.ts":"82","/home/username/Projects/VaultUI/src/pages/Unseal.ts":"83","/home/username/Projects/VaultUI/src/playground.ts":"84","/home/username/Projects/VaultUI/src/translations/de.js":"85","/home/username/Projects/VaultUI/src/translations/en.js":"86","/home/username/Projects/VaultUI/src/translations/fr.js":"87","/home/username/Projects/VaultUI/src/translations/nl.js":"88","/home/username/Projects/VaultUI/src/translations/ru.js":"89","/home/username/Projects/VaultUI/src/types/Page.ts":"90","/home/username/Projects/VaultUI/src/types/internalErrors.ts":"91","/home/username/Projects/VaultUI/src/utils.ts":"92","/home/username/Projects/VaultUI/src/api/auth/userpass/createOrUpdateUserPassUser.ts":"93","/home/username/Projects/VaultUI/src/elements/InputWithTitle.ts":"94","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserEdit.ts":"95","/home/username/Projects/VaultUI/src/api/auth/userpass/deleteUserPassUser.ts":"96","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserDelete.ts":"97","/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserNew.ts":"98"},{"size":3392,"mtime":1621518107492,"results":"99","hashOfConfig":"100"},{"size":4480,"mtime":1621591551026,"results":"101","hashOfConfig":"100"},{"size":238,"mtime":1621516183334,"results":"102","hashOfConfig":"100"},{"size":387,"mtime":1621516183330,"results":"103","hashOfConfig":"100"},{"size":659,"mtime":1621516183330,"results":"104","hashOfConfig":"100"},{"size":453,"mtime":1621520037020,"results":"105","hashOfConfig":"100"},{"size":382,"mtime":1621516183330,"results":"106","hashOfConfig":"100"},{"size":1025,"mtime":1621516183340,"results":"107","hashOfConfig":"100"},{"size":1341,"mtime":1621516183340,"results":"108","hashOfConfig":"100"},{"size":887,"mtime":1621516183340,"results":"109","hashOfConfig":"100"},{"size":545,"mtime":1621516183340,"results":"110","hashOfConfig":"100"},{"size":791,"mtime":1621516183340,"results":"111","hashOfConfig":"100"},{"size":1069,"mtime":1621516183340,"results":"112","hashOfConfig":"100"},{"size":824,"mtime":1621516183330,"results":"113","hashOfConfig":"100"},{"size":505,"mtime":1621516183330,"results":"114","hashOfConfig":"100"},{"size":373,"mtime":1621516183330,"results":"115","hashOfConfig":"100"},{"size":505,"mtime":1621516183330,"results":"116","hashOfConfig":"100"},{"size":717,"mtime":1621516183330,"results":"117","hashOfConfig":"100"},{"size":493,"mtime":1621516183330,"results":"118","hashOfConfig":"100"},{"size":389,"mtime":1621516183330,"results":"119","hashOfConfig":"100"},{"size":515,"mtime":1621516183330,"results":"120","hashOfConfig":"100"},{"size":674,"mtime":1621516183330,"results":"121","hashOfConfig":"100"},{"size":385,"mtime":1621516183330,"results":"122","hashOfConfig":"100"},{"size":503,"mtime":1621516183334,"results":"123","hashOfConfig":"100"},{"size":565,"mtime":1621516183340,"results":"124","hashOfConfig":"100"},{"size":505,"mtime":1621516183334,"results":"125","hashOfConfig":"100"},{"size":698,"mtime":1621516183340,"results":"126","hashOfConfig":"100"},{"size":836,"mtime":1621516183340,"results":"127","hashOfConfig":"100"},{"size":836,"mtime":1621516183340,"results":"128","hashOfConfig":"100"},{"size":839,"mtime":1621516183340,"results":"129","hashOfConfig":"100"},{"size":373,"mtime":1621516183334,"results":"130","hashOfConfig":"100"},{"size":402,"mtime":1621516183334,"results":"131","hashOfConfig":"100"},{"size":920,"mtime":1621516183334,"results":"132","hashOfConfig":"100"},{"size":350,"mtime":1621589596922,"results":"133","hashOfConfig":"100"},{"size":1439,"mtime":1621516183317,"results":"134","hashOfConfig":"100"},{"size":2855,"mtime":1621516183317,"results":"135","hashOfConfig":"100"},{"size":786,"mtime":1621516183317,"results":"136","hashOfConfig":"100"},{"size":478,"mtime":1621590737109,"results":"137","hashOfConfig":"100"},{"size":470,"mtime":1621518772821,"results":"138","hashOfConfig":"100"},{"size":187,"mtime":1621516183317,"results":"139","hashOfConfig":"100"},{"size":206,"mtime":1621516183314,"results":"140","hashOfConfig":"100"},{"size":294,"mtime":1621516183317,"results":"141","hashOfConfig":"100"},{"size":1946,"mtime":1621516183317,"results":"142","hashOfConfig":"100"},{"size":246,"mtime":1621516183317,"results":"143","hashOfConfig":"100"},{"size":1240,"mtime":1621516183317,"results":"144","hashOfConfig":"100"},{"size":1167,"mtime":1621516183317,"results":"145","hashOfConfig":"100"},{"size":427,"mtime":1621516183327,"results":"146","hashOfConfig":"100"},{"size":83,"mtime":1621516183330,"results":"147","hashOfConfig":"100"},{"size":280,"mtime":1621516183327,"results":"148","hashOfConfig":"100"},{"size":3150,"mtime":1621516183327,"results":"149","hashOfConfig":"100"},{"size":2200,"mtime":1621516183327,"results":"150","hashOfConfig":"100"},{"size":2186,"mtime":1621516183327,"results":"151","hashOfConfig":"100"},{"size":2258,"mtime":1621518048588,"results":"152","hashOfConfig":"100"},{"size":2558,"mtime":1621520037020,"results":"153","hashOfConfig":"100"},{"size":3065,"mtime":1621591947051,"results":"154","hashOfConfig":"100"},{"size":1506,"mtime":1621591907714,"results":"155","hashOfConfig":"100"},{"size":2795,"mtime":1621516183317,"results":"156","hashOfConfig":"100"},{"size":4876,"mtime":1621521992463,"results":"157","hashOfConfig":"100"},{"size":3022,"mtime":1621516183317,"results":"158","hashOfConfig":"100"},{"size":4020,"mtime":1621522174342,"results":"159","hashOfConfig":"100"},{"size":1592,"mtime":1621516183324,"results":"160","hashOfConfig":"100"},{"size":2365,"mtime":1621523798611,"results":"161","hashOfConfig":"100"},{"size":5671,"mtime":1621516867868,"results":"162","hashOfConfig":"100"},{"size":2552,"mtime":1621516183320,"results":"163","hashOfConfig":"100"},{"size":1568,"mtime":1621516183320,"results":"164","hashOfConfig":"100"},{"size":3104,"mtime":1621516183320,"results":"165","hashOfConfig":"100"},{"size":2588,"mtime":1621523634694,"results":"166","hashOfConfig":"100"},{"size":1973,"mtime":1621521067481,"results":"167","hashOfConfig":"100"},{"size":1999,"mtime":1621523539064,"results":"168","hashOfConfig":"100"},{"size":1467,"mtime":1621516183324,"results":"169","hashOfConfig":"100"},{"size":1851,"mtime":1621516183324,"results":"170","hashOfConfig":"100"},{"size":3127,"mtime":1621516867868,"results":"171","hashOfConfig":"100"},{"size":3369,"mtime":1621523100533,"results":"172","hashOfConfig":"100"},{"size":3735,"mtime":1621516183324,"results":"173","hashOfConfig":"100"},{"size":2825,"mtime":1621523539064,"results":"174","hashOfConfig":"100"},{"size":3575,"mtime":1621522679278,"results":"175","hashOfConfig":"100"},{"size":3585,"mtime":1621522712871,"results":"176","hashOfConfig":"100"},{"size":3678,"mtime":1621523100533,"results":"177","hashOfConfig":"100"},{"size":2238,"mtime":1621516183320,"results":"178","hashOfConfig":"100"},{"size":2305,"mtime":1621516183320,"results":"179","hashOfConfig":"100"},{"size":1985,"mtime":1621521691035,"results":"180","hashOfConfig":"100"},{"size":1361,"mtime":1621522372243,"results":"181","hashOfConfig":"100"},{"size":5326,"mtime":1621521334308,"results":"182","hashOfConfig":"100"},{"size":697,"mtime":1621516183327,"results":"183","hashOfConfig":"100"},{"size":736,"mtime":1620831400010,"results":"184","hashOfConfig":"100"},{"size":10093,"mtime":1621591667280,"results":"185","hashOfConfig":"100"},{"size":5783,"mtime":1621331186858,"results":"186","hashOfConfig":"100"},{"size":737,"mtime":1620831400010,"results":"187","hashOfConfig":"100"},{"size":8289,"mtime":1621331199668,"results":"188","hashOfConfig":"100"},{"size":637,"mtime":1621516183330,"results":"189","hashOfConfig":"100"},{"size":147,"mtime":1621516183330,"results":"190","hashOfConfig":"100"},{"size":870,"mtime":1621585633253,"results":"191","hashOfConfig":"100"},{"size":754,"mtime":1621590629965,"results":"192","hashOfConfig":"100"},{"size":498,"mtime":1621590629965,"results":"193","hashOfConfig":"100"},{"size":6025,"mtime":1621590706508,"results":"194","hashOfConfig":"100"},{"size":551,"mtime":1621591523446,"results":"195","hashOfConfig":"100"},{"size":1152,"mtime":1621591513472,"results":"196","hashOfConfig":"100"},{"size":2427,"mtime":1621591463099,"results":"197","hashOfConfig":"100"},{"filePath":"198","messages":"199","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"3eomw3",{"filePath":"200","messages":"201","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"202","messages":"203","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"204","messages":"205","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"206","messages":"207","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"208","messages":"209","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"210","messages":"211","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"212","messages":"213","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"214","messages":"215","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"216","messages":"217","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"218","messages":"219","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"220","messages":"221","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"222","messages":"223","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"224","messages":"225","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"226","messages":"227","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"228","messages":"229","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"230","messages":"231","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"232","messages":"233","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"234","messages":"235","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"236","messages":"237","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"238","messages":"239","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"240","messages":"241","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"242","messages":"243","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"244","messages":"245","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"246","messages":"247","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"248","messages":"249","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"250","messages":"251","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"252","messages":"253","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"254","messages":"255","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"256","messages":"257","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"258","messages":"259","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"260","messages":"261","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"262","messages":"263","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"264","messages":"265","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"266","messages":"267","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"268","messages":"269","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"270","messages":"271","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"272","messages":"273","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"274","messages":"275","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"276","messages":"277","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"278","messages":"279","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"280","messages":"281","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"282","messages":"283","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"284","messages":"285","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"286","messages":"287","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"288","messages":"289","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"290","messages":"291","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"292","messages":"293","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"294","messages":"295","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"296","messages":"297","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"298","messages":"299","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"300","messages":"301","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"302","messages":"303","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"304","messages":"305","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"306","messages":"307","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"308","messages":"309","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"310","messages":"311","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"312","messages":"313","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"314","messages":"315","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"316","messages":"317","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"318","messages":"319","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"320","messages":"321","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"322","messages":"323","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"324","messages":"325","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"326","messages":"327","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"328","messages":"329","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"330","messages":"331","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"332","messages":"333","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"334","messages":"335","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"336","messages":"337","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"338","messages":"339","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"340","messages":"341","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"342","messages":"343","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"344","messages":"345","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"346","messages":"347","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"348","messages":"349","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"350","messages":"351","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"352","messages":"353","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"354","messages":"355","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"356","messages":"357","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"358","messages":"359","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"360","messages":"361","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"362","messages":"363","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"364","messages":"365","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"366","messages":"367","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"368","messages":"369","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"370","messages":"371","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"372","messages":"373","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"374","messages":"375","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"376","messages":"377","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"378","messages":"379","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"380","messages":"381","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"382","messages":"383","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"384","messages":"385","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"386","messages":"387","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"388","messages":"389","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"390","messages":"391","errorCount":3,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"392","messages":"393","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/username/Projects/VaultUI/src/PageState.ts",[],"/home/username/Projects/VaultUI/src/allPages.ts",[],"/home/username/Projects/VaultUI/src/api/apiUtils.ts",[],"/home/username/Projects/VaultUI/src/api/auth/listAuth.ts",[],"/home/username/Projects/VaultUI/src/api/auth/usernameLogin.ts",[],"/home/username/Projects/VaultUI/src/api/auth/userpass/getUserPassUser.ts",[],"/home/username/Projects/VaultUI/src/api/auth/userpass/listUserPassUsers.ts",[],"/home/username/Projects/VaultUI/src/api/kv/createOrUpdateSecret.ts",[],"/home/username/Projects/VaultUI/src/api/kv/deleteSecret.ts",[],"/home/username/Projects/VaultUI/src/api/kv/getSecret.ts",[],"/home/username/Projects/VaultUI/src/api/kv/getSecretMetadata.ts",[],"/home/username/Projects/VaultUI/src/api/kv/getSecrets.ts",[],"/home/username/Projects/VaultUI/src/api/kv/undeleteSecret.ts",[],"/home/username/Projects/VaultUI/src/api/sys/getCapabilities.ts",[],"/home/username/Projects/VaultUI/src/api/sys/getMounts.ts",[],"/home/username/Projects/VaultUI/src/api/sys/getSealStatus.ts",[],"/home/username/Projects/VaultUI/src/api/sys/lookupSelf.ts",[],"/home/username/Projects/VaultUI/src/api/sys/newMount.ts",[],"/home/username/Projects/VaultUI/src/api/sys/renewSelf.ts",[],"/home/username/Projects/VaultUI/src/api/sys/sealVault.ts",[],"/home/username/Projects/VaultUI/src/api/sys/submitUnsealKey.ts",[],"/home/username/Projects/VaultUI/src/api/totp/addNewTOTP.ts",[],"/home/username/Projects/VaultUI/src/api/totp/getTOTPCode.ts",[],"/home/username/Projects/VaultUI/src/api/totp/getTOTPKeys.ts",[],"/home/username/Projects/VaultUI/src/api/transit/getTransitKey.ts",[],"/home/username/Projects/VaultUI/src/api/transit/getTransitKeys.ts",[],"/home/username/Projects/VaultUI/src/api/transit/newTransitKey.ts",[],"/home/username/Projects/VaultUI/src/api/transit/transitDecrypt.ts",[],"/home/username/Projects/VaultUI/src/api/transit/transitEncrypt.ts",[],"/home/username/Projects/VaultUI/src/api/transit/transitRewrap.ts",[],"/home/username/Projects/VaultUI/src/api/types/auth.ts",[],"/home/username/Projects/VaultUI/src/api/types/token.ts",[],"/home/username/Projects/VaultUI/src/api/types/transit.ts",[],"/home/username/Projects/VaultUI/src/api/types/userpass/user.ts",[],"/home/username/Projects/VaultUI/src/elements/CopyableInputBox.ts",[],"/home/username/Projects/VaultUI/src/elements/CopyableModal.ts",[],"/home/username/Projects/VaultUI/src/elements/FileUploadInput.ts",[],"/home/username/Projects/VaultUI/src/elements/Form.ts",[],"/home/username/Projects/VaultUI/src/elements/HeaderAndContent.ts",[],"/home/username/Projects/VaultUI/src/elements/ListItem.ts",[],"/home/username/Projects/VaultUI/src/elements/Margin.ts",[],"/home/username/Projects/VaultUI/src/elements/MarginInline.ts",[],"/home/username/Projects/VaultUI/src/elements/NavBar.ts",[],"/home/username/Projects/VaultUI/src/elements/Option.ts",[],"/home/username/Projects/VaultUI/src/elements/QRScanner.ts",[],"/home/username/Projects/VaultUI/src/elements/Tile.ts",[],"/home/username/Projects/VaultUI/src/formatDistance.ts",[],"/home/username/Projects/VaultUI/src/globalPageState.ts",[],"/home/username/Projects/VaultUI/src/htmlUtils.ts",[],"/home/username/Projects/VaultUI/src/main.ts",[],"/home/username/Projects/VaultUI/src/pageUtils.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/AccessHome.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthHome.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/AuthViewConfig.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserView.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUsersList.ts",[],"/home/username/Projects/VaultUI/src/pages/Home.ts",[],"/home/username/Projects/VaultUI/src/pages/Login.ts",[],"/home/username/Projects/VaultUI/src/pages/Me.ts",[],"/home/username/Projects/VaultUI/src/pages/PwGen.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueDelete.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueNew.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecret.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueSecretsEdit.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueVersions.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/KeyValue/KeyValueView.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewKVEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTOTPEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewEngines/NewTransitEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/NewSecretsEngine.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/SecretTitleElement.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/SecretsHome.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/NewTOTP.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/TOTP/TOTPView.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/NewTransitKey.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitDecrypt.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitEncrypt.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitRewrap.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitView.ts",[],"/home/username/Projects/VaultUI/src/pages/Secrets/Transit/TransitViewSecret.ts",[],"/home/username/Projects/VaultUI/src/pages/SetLanguage.ts",[],"/home/username/Projects/VaultUI/src/pages/SetVaultURL.ts",[],"/home/username/Projects/VaultUI/src/pages/Unseal.ts",[],"/home/username/Projects/VaultUI/src/playground.ts",[],"/home/username/Projects/VaultUI/src/translations/de.js",[],"/home/username/Projects/VaultUI/src/translations/en.js",[],"/home/username/Projects/VaultUI/src/translations/fr.js",[],"/home/username/Projects/VaultUI/src/translations/nl.js",[],"/home/username/Projects/VaultUI/src/translations/ru.js",[],"/home/username/Projects/VaultUI/src/types/Page.ts",[],"/home/username/Projects/VaultUI/src/types/internalErrors.ts",[],"/home/username/Projects/VaultUI/src/utils.ts",[],"/home/username/Projects/VaultUI/src/api/auth/userpass/createOrUpdateUserPassUser.ts",[],"/home/username/Projects/VaultUI/src/elements/InputWithTitle.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserEdit.ts",[],"/home/username/Projects/VaultUI/src/api/auth/userpass/deleteUserPassUser.ts",[],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserDelete.ts",["394","395","396"],"/home/username/Projects/VaultUI/src/pages/Access/Auth/userpass/UserPassUserNew.ts",[],{"ruleId":"397","severity":2,"message":"398","line":2,"column":10,"nodeType":"399","messageId":"400","endLine":2,"endColumn":28},{"ruleId":"401","severity":2,"message":"402","line":2,"column":36,"nodeType":"403","endLine":2,"endColumn":83},{"ruleId":"404","severity":2,"message":"405","line":33,"column":21,"nodeType":"399","messageId":"406","endLine":33,"endColumn":33},"@typescript-eslint/no-unused-vars","'deleteUserPassUser' is defined but never used.","Identifier","unusedVar","import/no-unresolved","Unable to resolve path to module '../../../api/auth/userpass/deleteUserPassUser'.","Literal","@typescript-eslint/no-unsafe-call","Unsafe call of an `any` typed value.","unsafeCall"] \ No newline at end of file diff --git a/src/allPages.ts b/src/allPages.ts index ac29905..a5387c5 100644 --- a/src/allPages.ts +++ b/src/allPages.ts @@ -33,11 +33,12 @@ import { TransitRewrapPage } from "./pages/Secrets/Transit/TransitRewrap"; import { TransitViewPage } from "./pages/Secrets/Transit/TransitView"; import { TransitViewSecretPage } from "./pages/Secrets/Transit/TransitViewSecret"; import { UnsealPage } from "./pages/Unseal"; +import { UserPassUserDeletePage } from "./pages/Access/Auth/userpass/UserPassUserDelete"; import { UserPassUserEditPage } from "./pages/Access/Auth/userpass/UserPassUserEdit"; +import { UserPassUserNewPage } from "./pages/Access/Auth/userpass/UserPassUserNew"; import { UserPassUserViewPage } from "./pages/Access/Auth/userpass/UserPassUserView"; import { UserPassUsersListPage } from "./pages/Access/Auth/userpass/UserPassUsersList"; import { getObjectKeys } from "./utils"; -import { UserPassUserNewPage } from "./pages/Access/Auth/userpass/UserPassUserNew"; type pagesList = { [key: string]: Page; @@ -53,6 +54,7 @@ export const allPages: pagesList = { USERPASS_USER_VIEW: new UserPassUserViewPage(), USERPASS_USER_EDIT: new UserPassUserEditPage(), USERPASS_USER_NEW: new UserPassUserNewPage(), + USERPASS_USER_DELETE: new UserPassUserDeletePage(), ME: new MePage(), TOTP: new TOTPViewPage(), NEW_TOTP: new NewTOTPPage(), diff --git a/src/api/auth/userpass/deleteUserPassUser.ts b/src/api/auth/userpass/deleteUserPassUser.ts new file mode 100644 index 0000000..024ced2 --- /dev/null +++ b/src/api/auth/userpass/deleteUserPassUser.ts @@ -0,0 +1,17 @@ +import { appendAPIURL, getHeaders } from "../../apiUtils"; +import { removeDoubleSlash } from "../../../utils"; + +export async function deleteUserPassUser(path: string, username: string): Promise { + const request = new Request( + appendAPIURL(removeDoubleSlash(`/v1/auth/${path}/users/${username}`)), + { + method: "DELETE", + headers: getHeaders(), + }, + ); + const response = await fetch(request); + if (!response.ok) { + const json = (await response.json()) as { errors: string[] }; + throw new Error(json.errors[0]); + } +} diff --git a/src/pages/Access/Auth/userpass/UserPassUserDelete.ts b/src/pages/Access/Auth/userpass/UserPassUserDelete.ts new file mode 100644 index 0000000..04872fd --- /dev/null +++ b/src/pages/Access/Auth/userpass/UserPassUserDelete.ts @@ -0,0 +1,39 @@ +import { Page } from "../../../../types/Page"; +import { deleteUserPassUser } from "../../../../api/auth/userpass/deleteUserPassUser"; +import { makeElement } from "z-makeelement"; +import i18next from "i18next"; + +export class UserPassUserDeletePage extends Page { + constructor() { + super(); + } + async goBack(): Promise { + await this.router.changePage("USERPASS_USERS_LIST"); + } + async render(): Promise { + await this.router.setPageContent( + makeElement({ + tag: "div", + children: [ + makeElement({ + tag: "h5", + text: i18next.t("userpass_user_delete_text"), + }), + makeElement({ + tag: "button", + class: ["uk-button", "uk-button-danger"], + text: i18next.t("userpass_user_delete_btn"), + onclick: async () => { + await deleteUserPassUser(this.state.authPath, this.state.userPassUser); + await this.goBack(); + }, + }), + ], + }), + ); + } + + get name(): string { + return i18next.t("userpass_user_delete_title"); + } +} diff --git a/src/pages/Access/Auth/userpass/UserPassUserNew.ts b/src/pages/Access/Auth/userpass/UserPassUserNew.ts index 29d275d..586438e 100644 --- a/src/pages/Access/Auth/userpass/UserPassUserNew.ts +++ b/src/pages/Access/Auth/userpass/UserPassUserNew.ts @@ -1,11 +1,11 @@ import { Form } from "../../../../elements/Form"; +import { Margin } from "../../../../elements/Margin"; import { Page } from "../../../../types/Page"; import { UserType } from "../../../../api/types/userpass/user"; import { createOrUpdateUserPassUser } from "../../../../api/auth/userpass/createOrUpdateUserPassUser"; import { makeElement } from "z-makeelement"; import { setErrorText } from "../../../../pageUtils"; import i18next from "i18next"; -import { Margin } from "../../../../elements/Margin"; export class UserPassUserNewPage extends Page { constructor() { @@ -19,23 +19,27 @@ export class UserPassUserNewPage extends Page { await this.router.setPageContent( Form( [ - Margin(makeElement({ - tag: "input", - class: "uk-input uk-form-width-large", - attributes: { - name: "username", - placeholder: i18next.t("userpass_common_username"), - }, - })), - Margin(makeElement({ - tag: "input", - class: "uk-input uk-form-width-large", - attributes: { - type: "password", - name: "password", - placeholder: i18next.t("userpass_common_password"), - }, - })), + Margin( + makeElement({ + tag: "input", + class: "uk-input uk-form-width-large", + attributes: { + name: "username", + placeholder: i18next.t("userpass_common_username"), + }, + }), + ), + Margin( + makeElement({ + tag: "input", + class: "uk-input uk-form-width-large", + attributes: { + type: "password", + name: "password", + placeholder: i18next.t("userpass_common_password"), + }, + }), + ), makeElement({ tag: "p", id: "errorText", @@ -56,7 +60,11 @@ export class UserPassUserNewPage extends Page { password: data.get("password") as string, }; try { - await createOrUpdateUserPassUser(this.state.authPath, data.get("username") as string, apiData); + await createOrUpdateUserPassUser( + this.state.authPath, + data.get("username") as string, + apiData, + ); await this.router.changePage("USERPASS_USERS_LIST"); } catch (e: unknown) { const error = e as Error; diff --git a/src/pages/Access/Auth/userpass/UserPassUserView.ts b/src/pages/Access/Auth/userpass/UserPassUserView.ts index 73a329f..374943f 100644 --- a/src/pages/Access/Auth/userpass/UserPassUserView.ts +++ b/src/pages/Access/Auth/userpass/UserPassUserView.ts @@ -14,19 +14,38 @@ export class UserPassUserViewPage extends Page { } async render(): Promise { - const contentElement = makeElement({ tag: "div" }); - await this.router.setPageContent(contentElement); + const pageContent = makeElement({ + tag: "div", + }); + await this.router.setPageContent(pageContent); - contentElement.appendChild( - makeElement({ - tag: "button", - class: ["uk-button", "uk-margin", "uk-button-primary"], - onclick: async () => { - await this.router.changePage("USERPASS_USER_EDIT"); - }, - text: i18next.t("userpass_user_view_edit_btn"), - }), - ); + const buttonBoxElement = makeElement({ + tag: "p", + children: [ + makeElement({ + tag: "button", + class: ["uk-button", "uk-button-danger"], + onclick: async () => { + await this.router.changePage("USERPASS_USER_DELETE"); + }, + text: i18next.t("userpass_user_view_delete_btn"), + }), + makeElement({ + tag: "button", + class: ["uk-button", "uk-button-primary"], + onclick: async () => { + await this.router.changePage("USERPASS_USER_EDIT"); + }, + text: i18next.t("userpass_user_view_edit_btn"), + }), + ], + }); + pageContent.appendChild(buttonBoxElement); + + const contentElement = makeElement({ + tag: "div", + }); + pageContent.appendChild(contentElement); const tableElement = makeElement({ tag: "table", diff --git a/src/translations/en.js b/src/translations/en.js index ce91634..fd964d0 100644 --- a/src/translations/en.js +++ b/src/translations/en.js @@ -257,6 +257,7 @@ module.exports = { // userpass User View userpass_user_view_title: "User View", userpass_user_view_edit_btn: "Edit", + userpass_user_view_delete_btn: "Delete", // userpass user edit userpass_user_edit_title: "User Edit", @@ -264,5 +265,10 @@ module.exports = { // userpass user new userpass_user_new_title: "New User", - userpass_user_new_create_btn: "Create", + userpass_user_new_create_btn: "Create", + + userpass_user_delete_title: "Delete User", + userpass_user_delete_text: + "Are you sure you want to delete this user? This action can't be reversed.", + userpass_user_delete_btn: "Delete User", };