dsh-vault 1.9.3 → 1.9.4-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +197 -82
- package/lib/client.js.map +1 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -7,7 +7,7 @@ window.__ModuleLoader__.load({
|
|
|
7
7
|
let react = require("react");
|
|
8
8
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
9
|
//#region \0dsh-css:/Users/zhipeng/Desktop/work/dsh test/dsh-vault/src/client/VaultSection.module.css.mjs
|
|
10
|
-
const css = ".t_j5va_section{flex-direction:column;gap:12px;padding:16px 0;display:flex}.t_j5va_intro{opacity:.75;margin:0;font-size:13px}.t_j5va_srOnly{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.t_j5va_toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.t_j5va_healthSummary{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.t_j5va_selectActive{border-color:var(--dsh-color-primary,#2e9e5b);color:var(--dsh-color-primary,#2e9e5b)}.t_j5va_bulkBar{background:var(--dsh-color-surface-2,#80808014);border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0;padding:6px 10px;display:flex}.t_j5va_bulkItem{align-items:center;gap:6px;font-size:13px;display:inline-flex}.t_j5va_bulkCount{opacity:.8;font-size:13px}.t_j5va_rowCheck{flex-shrink:0;align-self:center;margin:0 8px 0 0}.t_j5va_rowSelected{outline:1px solid var(--dsh-color-primary,#2e9e5b);border-radius:4px}.t_j5va_searchBox{flex:150px;min-width:150px;display:flex}.t_j5va_searchBox input{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;flex:1;padding:6px 10px;font-size:13px}.t_j5va_addButton,.t_j5va_saveButton{background:var(--color-accent,#4f8cff);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:6px 12px;font-size:13px}.t_j5va_addButton:disabled,.t_j5va_saveButton:disabled,.t_j5va_rowActions button:disabled{opacity:.5;cursor:not-allowed}.t_j5va_list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.t_j5va_row{border:1px solid var(--color-border,#333);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.t_j5va_rowMain{flex-direction:column;gap:2px;min-width:0;display:flex}.t_j5va_title{font-size:14px;font-weight:600}.t_j5va_identity{opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.t_j5va_totp{font-family:var(--font-mono,monospace);color:var(--color-accent,#4f8cff);font-size:13px}.t_j5va_totpRing{vertical-align:-2px;margin-right:4px;display:inline-block}.t_j5va_rowActions{flex-shrink:0;align-items:center;gap:6px;display:flex}.t_j5va_rowActions button{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-size:12px}.t_j5va_deleteButton{color:#e5484d}.t_j5va_copied{color:#30a46c;font-size:12px}.t_j5va_empty,.t_j5va_status,.t_j5va_error{opacity:.8;font-size:13px}.t_j5va_lockedBanner{color:#8a5a00;background:#fff4e5;border:1px solid #e0a83a;border-radius:6px;margin:0 0 10px;padding:8px 12px;font-size:13px}.t_j5va_modeReadonly,.t_j5va_modeAsk,.t_j5va_modeAuto{border-radius:999px;width:fit-content;margin:0;padding:4px 10px;font-size:12px;display:inline-block}.t_j5va_modeReadonly{color:#e5484d;border:1px solid #e5484d80}.t_j5va_modeAsk{color:#f5a524;border:1px solid #f5a52480}.t_j5va_modeAuto{color:#30a46c;border:1px solid #30a46c80}.t_j5va_policyBar{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.t_j5va_policyField{align-items:center;gap:8px;font-size:13px;display:flex}.t_j5va_policyField select{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;padding:4px 8px;font-size:13px}.t_j5va_emptyBox{flex-direction:column;gap:4px;display:flex}.t_j5va_emptyHint{opacity:.65;margin:0;font-size:12px}.t_j5va_error{color:#e5484d}.t_j5va_editor{border:1px solid var(--color-border,#444);border-radius:8px;padding:12px}.t_j5va_editorBody{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 12px;display:grid}.t_j5va_checkField{align-items:center;gap:8px;font-size:13px;display:inline-flex}.t_j5va_field{flex-direction:column;gap:4px;font-size:12px;display:flex}.t_j5va_field input,.t_j5va_field select{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;padding:5px 8px;font-size:13px}.t_j5va_editorActions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.t_j5va_editorActions button{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:13px}.t_j5va_reportBox{border:1px solid #f5a52466;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;display:flex}.t_j5va_reportTitle{margin:0;font-weight:600}.t_j5va_reportLine{opacity:.8;margin:0}.t_j5va_histAdd{color:#2e9e5b}.t_j5va_histDanger{color:#cf3d3d}.t_j5va_histUpdate{color:#c98a1b}.t_j5va_histNeutral{opacity:.7}.t_j5va_reportSub{color:var(--dsh-color-text-2,#666);margin:2px 0 0 10px;font-size:12px}.t_j5va_trashButton{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;padding:4px 8px;font-size:12px}.t_j5va_secretField{gap:4px;display:flex}.t_j5va_secretField input{flex:1;min-width:0}.t_j5va_revealButton{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:0 8px;font-size:12px}.t_j5va_kindFilter{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;padding:6px 8px;font-size:13px}.t_j5va_highBadge{color:#e5484d;vertical-align:middle;background:#e5484d26;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600}.t_j5va_pinStar{color:#f5a524;cursor:pointer;background:0 0;border:none;margin-right:4px;padding:0 2px;font-size:13px;line-height:1}.t_j5va_pinOff{color:#80808073}.t_j5va_pinOn{color:#f5a524}.t_j5va_clearButton{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 8px;font-size:16px}.t_j5va_field textarea{border:1px solid var(--color-border,#444);color:inherit;resize:vertical;background:0 0;border-radius:6px;padding:5px 8px;font-family:inherit;font-size:13px}.t_j5va_row{transition:background .12s}.t_j5va_row:hover{background:var(--color-hover,#80808014)}.t_j5va_healthBar{flex-wrap:wrap;gap:6px;margin:0 0 10px;display:flex}.t_j5va_badge{border:1px solid var(--dsh-color-border,#ddd);background:var(--dsh-color-surface-2,#f7f7f8);color:var(--dsh-color-text-2,#555);border-radius:999px;padding:4px 10px;font-size:12px;line-height:1}.t_j5va_backupButton{border:1px solid var(--dsh-color-border,#ccc);background:var(--dsh-color-surface-2,#f7f7f8);cursor:pointer;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:12px;line-height:1}.t_j5va_badgeOk{color:#2e9e5b;border-color:#2e9e5b}.t_j5va_badgeWarn{color:#b57f1a;border-color:#c98a1b}.t_j5va_rowDue{border-left:3px solid #c98a1b}.t_j5va_rowExpired{border-left:3px solid #cf3d3d}.t_j5va_dueBadge{border-radius:999px;margin-left:6px;padding:3px 8px;font-size:11px;font-weight:600;line-height:1}.t_j5va_badgeDanger{color:#c03a3a;border-color:#cf3d3d}.t_j5va_footer{opacity:.6;margin:0;font-size:12px}.t_j5va_kindIcon{margin-right:4px;font-size:12px}.t_j5va_dangerButton{color:#e5484d;cursor:pointer;background:0 0;border:1px solid #e5484d80;border-radius:6px;align-self:flex-start;padding:4px 8px;font-size:12px}.t_j5va_rowMain{cursor:pointer}.t_j5va_detailBox{background:var(--color-hover,#8080800f);border-radius:6px;flex-wrap:wrap;grid-column:1/-1;gap:4px 12px;padding:6px 8px;font-size:12px;display:flex}.t_j5va_detailItem{opacity:.85}.t_j5va_sortButton{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:13px}.t_j5va_dupGroup{justify-content:space-between;align-items:center;gap:8px;margin:4px 0;display:flex}.t_j5va_dupNames{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.t_j5va_dupMerge{border:1px solid var(--dsh-color-border,#ccc);cursor:pointer;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:12px}.t_j5va_auditRow{align-items:center;gap:8px;margin:4px 0;display:flex}.t_j5va_auditIssues{color:var(--dsh-color-text-2,#666);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.t_j5va_retryButton{border:1px solid var(--dsh-color-border,#ccc);cursor:pointer;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:12px}.t_j5va_scoreRing{vertical-align:-2px;margin-right:4px;display:inline-block}.t_j5va_genOpts{border:1px solid var(--dsh-color-border,#ddd);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.t_j5va_genOptRow{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.t_j5va_genOptRow input[type=number]{width:64px}.t_j5va_pwMeter{align-items:center;gap:8px;font-size:12px;display:flex}.t_j5va_pwBar{border-radius:999px;height:6px;transition:width .2s}.t_j5va_pwWeak{background:#cf3d3d}.t_j5va_pwFair{background:#c98a1b}.t_j5va_pwStrong{background:#2e9e5b}.t_j5va_pwLabel{color:var(--dsh-color-text-2,#666)}.t_j5va_resultCount{color:var(--dsh-color-text-2,#666);flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;font-size:12px;display:flex}.t_j5va_kindChip{border:1px solid var(--dsh-color-border,#ddd);border-radius:999px;padding:2px 8px;font-size:11px}.t_j5va_uriCode{overflow-wrap:anywhere;opacity:.85;font-size:10px}.t_j5va_genHist{flex-wrap:wrap;gap:4px;font-size:12px;display:flex}.t_j5va_genHist span{align-self:center}.t_j5va_lockedTag{color:#c98a1b;font-size:12px;font-weight:600}.t_j5va_tabs{flex-wrap:wrap;gap:6px;margin:0 0 12px;display:flex}.t_j5va_tab{border:1px solid var(--dsh-color-border,#ccc);color:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:5px 14px;font-size:13px}.t_j5va_tabActive{background:var(--dsh-color-primary,#4a6cf7);color:#fff;border-color:#0000}.t_j5va_tabPane{margin-top:2px}";
|
|
10
|
+
const css = ".t_j5va_section{flex-direction:column;gap:12px;padding:16px 0;display:flex}.t_j5va_intro{opacity:.75;margin:0;font-size:13px}.t_j5va_srOnly{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.t_j5va_toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.t_j5va_healthSummary{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.t_j5va_selectActive{border-color:var(--dsh-color-primary,#2e9e5b);color:var(--dsh-color-primary,#2e9e5b)}.t_j5va_bulkBar{background:var(--dsh-color-surface-2,#80808014);border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0;padding:6px 10px;display:flex}.t_j5va_bulkItem{align-items:center;gap:6px;font-size:13px;display:inline-flex}.t_j5va_bulkCount{opacity:.8;font-size:13px}.t_j5va_rowCheck{flex-shrink:0;align-self:center;margin:0 8px 0 0}.t_j5va_rowSelected{outline:1px solid var(--dsh-color-primary,#2e9e5b);border-radius:4px}.t_j5va_searchBox{flex:150px;min-width:150px;display:flex}.t_j5va_searchBox input{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;flex:1;padding:6px 10px;font-size:13px}.t_j5va_addButton,.t_j5va_saveButton{background:var(--color-accent,#4f8cff);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:6px 12px;font-size:13px}.t_j5va_addButton:disabled,.t_j5va_saveButton:disabled,.t_j5va_rowActions button:disabled{opacity:.5;cursor:not-allowed}.t_j5va_list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.t_j5va_row{border:1px solid var(--color-border,#333);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.t_j5va_rowMain{flex-direction:column;gap:2px;min-width:0;display:flex}.t_j5va_title{font-size:14px;font-weight:600}.t_j5va_identity{opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.t_j5va_totp{font-family:var(--font-mono,monospace);color:var(--color-accent,#4f8cff);font-size:13px}.t_j5va_totpRing{vertical-align:-2px;margin-right:4px;display:inline-block}.t_j5va_rowActions{flex-shrink:0;align-items:center;gap:6px;display:flex}.t_j5va_rowActions button{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-size:12px}.t_j5va_deleteButton{color:#e5484d}.t_j5va_copied{color:#30a46c;font-size:12px}.t_j5va_empty,.t_j5va_status,.t_j5va_error{opacity:.8;font-size:13px}.t_j5va_lockedBanner{color:#8a5a00;background:#fff4e5;border:1px solid #e0a83a;border-radius:6px;margin:0 0 10px;padding:8px 12px;font-size:13px}.t_j5va_modeReadonly,.t_j5va_modeAsk,.t_j5va_modeAuto{border-radius:999px;width:fit-content;margin:0;padding:4px 10px;font-size:12px;display:inline-block}.t_j5va_modeReadonly{color:#e5484d;border:1px solid #e5484d80}.t_j5va_modeAsk{color:#f5a524;border:1px solid #f5a52480}.t_j5va_modeAuto{color:#30a46c;border:1px solid #30a46c80}.t_j5va_policyBar{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.t_j5va_policyField{align-items:center;gap:8px;font-size:13px;display:flex}.t_j5va_policyField select{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;padding:4px 8px;font-size:13px}.t_j5va_emptyBox{flex-direction:column;gap:4px;display:flex}.t_j5va_emptyHint{opacity:.65;margin:0;font-size:12px}.t_j5va_error{color:#e5484d}.t_j5va_editor{border:1px solid var(--color-border,#444);border-radius:8px;padding:12px}.t_j5va_editorBody{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 12px;display:grid}.t_j5va_checkField{align-items:center;gap:8px;font-size:13px;display:inline-flex}.t_j5va_field{flex-direction:column;gap:4px;font-size:12px;display:flex}.t_j5va_field input,.t_j5va_field select{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;padding:5px 8px;font-size:13px}.t_j5va_editorActions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.t_j5va_editorActions button{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:13px}.t_j5va_reportBox{border:1px solid #f5a52466;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;display:flex}.t_j5va_reportTitle{margin:0;font-weight:600}.t_j5va_reportLine{opacity:.8;margin:0}.t_j5va_histAdd{color:#2e9e5b}.t_j5va_pwHistBox{border:1px solid var(--dsh-color-border,#ddd);background:var(--dsh-color-surface-2,#8080800f);border-radius:8px;margin:8px 0;padding:10px 12px}.t_j5va_pwHistRow{align-items:center;gap:10px;padding:4px 0;display:flex}.t_j5va_pwHistPwd{font-family:var(--dsh-font-mono,monospace);word-break:break-all;font-size:13px}.t_j5va_pwHistTime{opacity:.7;white-space:nowrap;font-size:12px}.t_j5va_histDanger{color:#cf3d3d}.t_j5va_histUpdate{color:#c98a1b}.t_j5va_histNeutral{opacity:.7}.t_j5va_reportSub{color:var(--dsh-color-text-2,#666);margin:2px 0 0 10px;font-size:12px}.t_j5va_trashButton{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;padding:4px 8px;font-size:12px}.t_j5va_secretField{gap:4px;display:flex}.t_j5va_secretField input{flex:1;min-width:0}.t_j5va_revealButton{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:0 8px;font-size:12px}.t_j5va_kindFilter{border:1px solid var(--color-border,#444);color:inherit;background:0 0;border-radius:6px;padding:6px 8px;font-size:13px}.t_j5va_highBadge{color:#e5484d;vertical-align:middle;background:#e5484d26;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600}.t_j5va_pinStar{color:#f5a524;cursor:pointer;background:0 0;border:none;margin-right:4px;padding:0 2px;font-size:13px;line-height:1}.t_j5va_pinOff{color:#80808073}.t_j5va_pinOn{color:#f5a524}.t_j5va_clearButton{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 8px;font-size:16px}.t_j5va_field textarea{border:1px solid var(--color-border,#444);color:inherit;resize:vertical;background:0 0;border-radius:6px;padding:5px 8px;font-family:inherit;font-size:13px}.t_j5va_row{transition:background .12s}.t_j5va_row:hover{background:var(--color-hover,#80808014)}.t_j5va_healthBar{flex-wrap:wrap;gap:6px;margin:0 0 10px;display:flex}.t_j5va_badge{border:1px solid var(--dsh-color-border,#ddd);background:var(--dsh-color-surface-2,#f7f7f8);color:var(--dsh-color-text-2,#555);border-radius:999px;padding:4px 10px;font-size:12px;line-height:1}.t_j5va_backupButton{border:1px solid var(--dsh-color-border,#ccc);background:var(--dsh-color-surface-2,#f7f7f8);cursor:pointer;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:12px;line-height:1}.t_j5va_badgeOk{color:#2e9e5b;border-color:#2e9e5b}.t_j5va_badgeWarn{color:#b57f1a;border-color:#c98a1b}.t_j5va_rowDue{border-left:3px solid #c98a1b}.t_j5va_rowExpired{border-left:3px solid #cf3d3d}.t_j5va_dueBadge{border-radius:999px;margin-left:6px;padding:3px 8px;font-size:11px;font-weight:600;line-height:1}.t_j5va_badgeDanger{color:#c03a3a;border-color:#cf3d3d}.t_j5va_footer{opacity:.6;margin:0;font-size:12px}.t_j5va_kindIcon{margin-right:4px;font-size:12px}.t_j5va_dangerButton{color:#e5484d;cursor:pointer;background:0 0;border:1px solid #e5484d80;border-radius:6px;align-self:flex-start;padding:4px 8px;font-size:12px}.t_j5va_rowMain{cursor:pointer}.t_j5va_detailBox{background:var(--color-hover,#8080800f);border-radius:6px;flex-wrap:wrap;grid-column:1/-1;gap:4px 12px;padding:6px 8px;font-size:12px;display:flex}.t_j5va_detailItem{opacity:.85}.t_j5va_sortButton{border:1px solid var(--color-border,#444);color:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:13px}.t_j5va_dupGroup{justify-content:space-between;align-items:center;gap:8px;margin:4px 0;display:flex}.t_j5va_dupNames{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.t_j5va_dupMerge{border:1px solid var(--dsh-color-border,#ccc);cursor:pointer;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:12px}.t_j5va_auditRow{align-items:center;gap:8px;margin:4px 0;display:flex}.t_j5va_auditIssues{color:var(--dsh-color-text-2,#666);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.t_j5va_retryButton{border:1px solid var(--dsh-color-border,#ccc);cursor:pointer;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:12px}.t_j5va_scoreRing{vertical-align:-2px;margin-right:4px;display:inline-block}.t_j5va_genOpts{border:1px solid var(--dsh-color-border,#ddd);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.t_j5va_genOptRow{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.t_j5va_genOptRow input[type=number]{width:64px}.t_j5va_pwMeter{align-items:center;gap:8px;font-size:12px;display:flex}.t_j5va_pwBar{border-radius:999px;height:6px;transition:width .2s}.t_j5va_pwWeak{background:#cf3d3d}.t_j5va_pwFair{background:#c98a1b}.t_j5va_pwStrong{background:#2e9e5b}.t_j5va_pwLabel{color:var(--dsh-color-text-2,#666)}.t_j5va_resultCount{color:var(--dsh-color-text-2,#666);flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;font-size:12px;display:flex}.t_j5va_kindChip{border:1px solid var(--dsh-color-border,#ddd);border-radius:999px;padding:2px 8px;font-size:11px}.t_j5va_uriCode{overflow-wrap:anywhere;opacity:.85;font-size:10px}.t_j5va_genHist{flex-wrap:wrap;gap:4px;font-size:12px;display:flex}.t_j5va_genHist span{align-self:center}.t_j5va_lockedTag{color:#c98a1b;font-size:12px;font-weight:600}.t_j5va_tabs{flex-wrap:wrap;gap:6px;margin:0 0 12px;display:flex}.t_j5va_tab{border:1px solid var(--dsh-color-border,#ccc);color:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:5px 14px;font-size:13px}.t_j5va_tabActive{background:var(--dsh-color-primary,#4a6cf7);color:#fff;border-color:#0000}.t_j5va_tabPane{margin-top:2px}";
|
|
11
11
|
const tagId = "dsh-vault/VaultSection.module.css";
|
|
12
12
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
13
13
|
const tag = document.createElement("style");
|
|
@@ -17,102 +17,106 @@ window.__ModuleLoader__.load({
|
|
|
17
17
|
document.head.appendChild(tag);
|
|
18
18
|
}
|
|
19
19
|
var VaultSection_module_css_default = {
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"pinOff": "t_j5va_pinOff",
|
|
23
|
-
"badgeWarn": "t_j5va_badgeWarn",
|
|
24
|
-
"retryButton": "t_j5va_retryButton",
|
|
25
|
-
"editorBody": "t_j5va_editorBody",
|
|
26
|
-
"dueBadge": "t_j5va_dueBadge",
|
|
27
|
-
"scoreRing": "t_j5va_scoreRing",
|
|
28
|
-
"genHist": "t_j5va_genHist",
|
|
29
|
-
"bulkCount": "t_j5va_bulkCount",
|
|
30
|
-
"empty": "t_j5va_empty",
|
|
31
|
-
"lockedBanner": "t_j5va_lockedBanner",
|
|
32
|
-
"modeAsk": "t_j5va_modeAsk",
|
|
33
|
-
"reportBox": "t_j5va_reportBox",
|
|
34
|
-
"row": "t_j5va_row",
|
|
35
|
-
"secretField": "t_j5va_secretField",
|
|
36
|
-
"modeAuto": "t_j5va_modeAuto",
|
|
37
|
-
"rowExpired": "t_j5va_rowExpired",
|
|
38
|
-
"footer": "t_j5va_footer",
|
|
39
|
-
"pinOn": "t_j5va_pinOn",
|
|
40
|
-
"emptyBox": "t_j5va_emptyBox",
|
|
41
|
-
"checkField": "t_j5va_checkField",
|
|
42
|
-
"histUpdate": "t_j5va_histUpdate",
|
|
43
|
-
"clearButton": "t_j5va_clearButton",
|
|
44
|
-
"healthBar": "t_j5va_healthBar",
|
|
45
|
-
"dupNames": "t_j5va_dupNames",
|
|
46
|
-
"selectActive": "t_j5va_selectActive",
|
|
47
|
-
"searchBox": "t_j5va_searchBox",
|
|
48
|
-
"histAdd": "t_j5va_histAdd",
|
|
49
|
-
"deleteButton": "t_j5va_deleteButton",
|
|
50
|
-
"kindChip": "t_j5va_kindChip",
|
|
51
|
-
"tabPane": "t_j5va_tabPane",
|
|
52
|
-
"editorActions": "t_j5va_editorActions",
|
|
20
|
+
"backupButton": "t_j5va_backupButton",
|
|
21
|
+
"emptyHint": "t_j5va_emptyHint",
|
|
53
22
|
"list": "t_j5va_list",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
23
|
+
"histUpdate": "t_j5va_histUpdate",
|
|
24
|
+
"toolbar": "t_j5va_toolbar",
|
|
25
|
+
"sortButton": "t_j5va_sortButton",
|
|
26
|
+
"genHist": "t_j5va_genHist",
|
|
56
27
|
"kindIcon": "t_j5va_kindIcon",
|
|
57
|
-
"
|
|
58
|
-
"detailItem": "t_j5va_detailItem",
|
|
28
|
+
"policyField": "t_j5va_policyField",
|
|
59
29
|
"kindFilter": "t_j5va_kindFilter",
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"pinStar": "t_j5va_pinStar",
|
|
64
|
-
"policyBar": "t_j5va_policyBar",
|
|
30
|
+
"rowCheck": "t_j5va_rowCheck",
|
|
31
|
+
"tabActive": "t_j5va_tabActive",
|
|
32
|
+
"reportLine": "t_j5va_reportLine",
|
|
65
33
|
"lockedTag": "t_j5va_lockedTag",
|
|
34
|
+
"reportSub": "t_j5va_reportSub",
|
|
35
|
+
"reportTitle": "t_j5va_reportTitle",
|
|
66
36
|
"dangerButton": "t_j5va_dangerButton",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
37
|
+
"emptyBox": "t_j5va_emptyBox",
|
|
38
|
+
"highBadge": "t_j5va_highBadge",
|
|
39
|
+
"secretField": "t_j5va_secretField",
|
|
40
|
+
"auditIssues": "t_j5va_auditIssues",
|
|
41
|
+
"histDanger": "t_j5va_histDanger",
|
|
42
|
+
"bulkItem": "t_j5va_bulkItem",
|
|
43
|
+
"genOpts": "t_j5va_genOpts",
|
|
44
|
+
"status": "t_j5va_status",
|
|
70
45
|
"revealButton": "t_j5va_revealButton",
|
|
71
46
|
"totpRing": "t_j5va_totpRing",
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
47
|
+
"copied": "t_j5va_copied",
|
|
48
|
+
"field": "t_j5va_field",
|
|
49
|
+
"pwHistBox": "t_j5va_pwHistBox",
|
|
50
|
+
"footer": "t_j5va_footer",
|
|
75
51
|
"histNeutral": "t_j5va_histNeutral",
|
|
76
|
-
"
|
|
77
|
-
"rowDue": "t_j5va_rowDue",
|
|
78
|
-
"pwMeter": "t_j5va_pwMeter",
|
|
52
|
+
"totp": "t_j5va_totp",
|
|
79
53
|
"pwWeak": "t_j5va_pwWeak",
|
|
80
|
-
"
|
|
54
|
+
"srOnly": "t_j5va_srOnly",
|
|
55
|
+
"dupGroup": "t_j5va_dupGroup",
|
|
56
|
+
"pinOff": "t_j5va_pinOff",
|
|
57
|
+
"row": "t_j5va_row",
|
|
58
|
+
"tabs": "t_j5va_tabs",
|
|
59
|
+
"pwStrong": "t_j5va_pwStrong",
|
|
60
|
+
"pwHistTime": "t_j5va_pwHistTime",
|
|
81
61
|
"rowActions": "t_j5va_rowActions",
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"highBadge": "t_j5va_highBadge",
|
|
87
|
-
"error": "t_j5va_error",
|
|
88
|
-
"intro": "t_j5va_intro",
|
|
89
|
-
"modeReadonly": "t_j5va_modeReadonly",
|
|
90
|
-
"badgeDanger": "t_j5va_badgeDanger",
|
|
62
|
+
"dueBadge": "t_j5va_dueBadge",
|
|
63
|
+
"resultCount": "t_j5va_resultCount",
|
|
64
|
+
"empty": "t_j5va_empty",
|
|
65
|
+
"addButton": "t_j5va_addButton",
|
|
91
66
|
"genOptRow": "t_j5va_genOptRow",
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"copied": "t_j5va_copied",
|
|
101
|
-
"emptyHint": "t_j5va_emptyHint",
|
|
67
|
+
"lockedBanner": "t_j5va_lockedBanner",
|
|
68
|
+
"badgeWarn": "t_j5va_badgeWarn",
|
|
69
|
+
"checkField": "t_j5va_checkField",
|
|
70
|
+
"detailBox": "t_j5va_detailBox",
|
|
71
|
+
"section": "t_j5va_section",
|
|
72
|
+
"reportBox": "t_j5va_reportBox",
|
|
73
|
+
"pinOn": "t_j5va_pinOn",
|
|
74
|
+
"rowSelected": "t_j5va_rowSelected",
|
|
102
75
|
"editor": "t_j5va_editor",
|
|
103
|
-
"
|
|
104
|
-
"
|
|
76
|
+
"selectActive": "t_j5va_selectActive",
|
|
77
|
+
"pwHistRow": "t_j5va_pwHistRow",
|
|
78
|
+
"healthBar": "t_j5va_healthBar",
|
|
79
|
+
"healthSummary": "t_j5va_healthSummary",
|
|
80
|
+
"detailItem": "t_j5va_detailItem",
|
|
81
|
+
"trashButton": "t_j5va_trashButton",
|
|
82
|
+
"badge": "t_j5va_badge",
|
|
105
83
|
"auditRow": "t_j5va_auditRow",
|
|
106
|
-
"policyField": "t_j5va_policyField",
|
|
107
|
-
"pwLabel": "t_j5va_pwLabel",
|
|
108
84
|
"title": "t_j5va_title",
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
85
|
+
"error": "t_j5va_error",
|
|
86
|
+
"clearButton": "t_j5va_clearButton",
|
|
87
|
+
"pwMeter": "t_j5va_pwMeter",
|
|
88
|
+
"retryButton": "t_j5va_retryButton",
|
|
89
|
+
"pwBar": "t_j5va_pwBar",
|
|
90
|
+
"kindChip": "t_j5va_kindChip",
|
|
91
|
+
"uriCode": "t_j5va_uriCode",
|
|
92
|
+
"searchBox": "t_j5va_searchBox",
|
|
93
|
+
"histAdd": "t_j5va_histAdd",
|
|
112
94
|
"tab": "t_j5va_tab",
|
|
95
|
+
"editorActions": "t_j5va_editorActions",
|
|
96
|
+
"bulkBar": "t_j5va_bulkBar",
|
|
97
|
+
"editorBody": "t_j5va_editorBody",
|
|
98
|
+
"pwHistPwd": "t_j5va_pwHistPwd",
|
|
99
|
+
"scoreRing": "t_j5va_scoreRing",
|
|
100
|
+
"pwLabel": "t_j5va_pwLabel",
|
|
101
|
+
"identity": "t_j5va_identity",
|
|
102
|
+
"intro": "t_j5va_intro",
|
|
103
|
+
"rowMain": "t_j5va_rowMain",
|
|
104
|
+
"dupNames": "t_j5va_dupNames",
|
|
105
|
+
"modeAsk": "t_j5va_modeAsk",
|
|
106
|
+
"rowExpired": "t_j5va_rowExpired",
|
|
107
|
+
"pinStar": "t_j5va_pinStar",
|
|
108
|
+
"deleteButton": "t_j5va_deleteButton",
|
|
109
|
+
"badgeDanger": "t_j5va_badgeDanger",
|
|
110
|
+
"dupMerge": "t_j5va_dupMerge",
|
|
111
|
+
"modeAuto": "t_j5va_modeAuto",
|
|
112
|
+
"badgeOk": "t_j5va_badgeOk",
|
|
113
|
+
"modeReadonly": "t_j5va_modeReadonly",
|
|
114
|
+
"policyBar": "t_j5va_policyBar",
|
|
115
|
+
"bulkCount": "t_j5va_bulkCount",
|
|
113
116
|
"pwFair": "t_j5va_pwFair",
|
|
114
|
-
"
|
|
115
|
-
"
|
|
117
|
+
"tabPane": "t_j5va_tabPane",
|
|
118
|
+
"rowDue": "t_j5va_rowDue",
|
|
119
|
+
"saveButton": "t_j5va_saveButton"
|
|
116
120
|
};
|
|
117
121
|
//#endregion
|
|
118
122
|
//#region src/client/VaultSection.tsx
|
|
@@ -297,7 +301,7 @@ window.__ModuleLoader__.load({
|
|
|
297
301
|
}
|
|
298
302
|
/** Render the Vault settings section. */
|
|
299
303
|
function VaultSection(props) {
|
|
300
|
-
const { t, config, setAccessMode, setAutoCapture, setAutoLock, list, search, get, add, update, remove, purge, trash, rotation, health, duplicates, duplicateGroups, merge, history, stats, backupStatus, backup, recent, restore, undeleteAll, totp, status, switchVault, listVaults, touch, setFavorite, attachments, detach, verifyAll, breachCheck, generatePassword, strength, generateUsername, templates, saveTemplate, lock, totpUri, tags, renameTag, generatorHistory, backups, deleteBackup, restoreBackup, importChrome, importFirefox, import1password, importManagerCsv, importEnpass, importBitwarden, import1pif, importKeePassXml, importKdbx, importBitwardenEncrypted, keychainImport, searchSystem, sessionOpen, sessionCollect, sessionClose, sessionListOpen, sessionListSaved, sessionSave, sessionExport, sessionGet, sessionPrune, vaultRename, vaultDelete, watchtower, export1pux, exportBitwarden, recoveryCode, verifyRecovery, recoveryStatus, unlock } = props;
|
|
304
|
+
const { t, config, setAccessMode, setAutoCapture, setAutoLock, list, search, get, add, update, remove, purge, trash, rotation, health, duplicates, duplicateGroups, merge, history, stats, backupStatus, backup, recent, restore, undeleteAll, totp, status, switchVault, listVaults, touch, setFavorite, attachments, detach, verifyAll, breachCheck, generatePassword, strength, generateUsername, templates, saveTemplate, lock, totpUri, tags, renameTag, generatorHistory, backups, deleteBackup, restoreBackup, importChrome, importFirefox, import1password, importManagerCsv, importEnpass, importBitwarden, import1pif, importKeePassXml, importKdbx, importBitwardenEncrypted, keychainImport, searchSystem, sessionOpen, sessionCollect, sessionClose, sessionListOpen, sessionListSaved, sessionSave, sessionExport, sessionGet, sessionPrune, passwordHistory, passwordRollback, vaultRename, vaultDelete, watchtower, export1pux, exportBitwarden, recoveryCode, verifyRecovery, recoveryStatus, unlock } = props;
|
|
301
305
|
const searchId = (0, react.useId)();
|
|
302
306
|
const [query, setQuery] = (0, react.useState)("");
|
|
303
307
|
const [state, setState] = (0, react.useState)({ status: "loading" });
|
|
@@ -346,6 +350,9 @@ window.__ModuleLoader__.load({
|
|
|
346
350
|
const [attachmentsMap, setAttachmentsMap] = (0, react.useState)({});
|
|
347
351
|
const [selectMode, setSelectMode] = (0, react.useState)(false);
|
|
348
352
|
const [selectedIds, setSelectedIds] = (0, react.useState)(/* @__PURE__ */ new Set());
|
|
353
|
+
const [pwHistory, setPwHistory] = (0, react.useState)(null);
|
|
354
|
+
const [pwHistoryFor, setPwHistoryFor] = (0, react.useState)(null);
|
|
355
|
+
const [pwHistRevealed, setPwHistRevealed] = (0, react.useState)(null);
|
|
349
356
|
const [visibleCount, setVisibleCount] = (0, react.useState)(50);
|
|
350
357
|
const [sortBy, setSortBy] = (0, react.useState)("alpha");
|
|
351
358
|
const [activeTab, setActiveTab] = (0, react.useState)("entries");
|
|
@@ -1544,6 +1551,37 @@ window.__ModuleLoader__.load({
|
|
|
1544
1551
|
setBusy(false);
|
|
1545
1552
|
}
|
|
1546
1553
|
}
|
|
1554
|
+
/** Show an entry's password history (1Password-style) and allow rollback. */
|
|
1555
|
+
async function showPasswordHistory(id) {
|
|
1556
|
+
setBusy(true);
|
|
1557
|
+
try {
|
|
1558
|
+
setPwHistory(await passwordHistory(id));
|
|
1559
|
+
setPwHistoryFor(id);
|
|
1560
|
+
} catch (err) {
|
|
1561
|
+
setMessage(errText(err));
|
|
1562
|
+
} finally {
|
|
1563
|
+
setBusy(false);
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
/** Roll the entry's password back to a history point. */
|
|
1567
|
+
async function rollbackPassword(at) {
|
|
1568
|
+
if (pwHistoryFor === null) return;
|
|
1569
|
+
if (!window.confirm(t("pwRollbackConfirm"))) return;
|
|
1570
|
+
setBusy(true);
|
|
1571
|
+
try {
|
|
1572
|
+
if ((await passwordRollback(pwHistoryFor, at)).rolledBack) {
|
|
1573
|
+
setMessage(t("pwRolledBack"));
|
|
1574
|
+
setPwHistory(null);
|
|
1575
|
+
setPwHistoryFor(null);
|
|
1576
|
+
refresh();
|
|
1577
|
+
refreshHealth();
|
|
1578
|
+
} else setMessage(t("pwRollbackFailed"));
|
|
1579
|
+
} catch (err) {
|
|
1580
|
+
setMessage(errText(err));
|
|
1581
|
+
} finally {
|
|
1582
|
+
setBusy(false);
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1547
1585
|
/** Copy a field value to the clipboard and flash the row. */
|
|
1548
1586
|
const clipboardTimer = (0, react.useRef)(null);
|
|
1549
1587
|
const CLIPBOARD_CLEAR_MS = 3e4;
|
|
@@ -1930,6 +1968,57 @@ window.__ModuleLoader__.load({
|
|
|
1930
1968
|
className: VaultSection_module_css_default.error,
|
|
1931
1969
|
children: message
|
|
1932
1970
|
}),
|
|
1971
|
+
pwHistory !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1972
|
+
className: VaultSection_module_css_default.pwHistBox,
|
|
1973
|
+
role: "dialog",
|
|
1974
|
+
"aria-label": t("pwHistory"),
|
|
1975
|
+
children: [
|
|
1976
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1977
|
+
className: VaultSection_module_css_default.reportTitle,
|
|
1978
|
+
children: t("pwHistory")
|
|
1979
|
+
}),
|
|
1980
|
+
pwHistory.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1981
|
+
className: VaultSection_module_css_default.reportSub,
|
|
1982
|
+
children: t("pwHistoryEmpty")
|
|
1983
|
+
}),
|
|
1984
|
+
pwHistory.map((h, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1985
|
+
className: VaultSection_module_css_default.pwHistRow,
|
|
1986
|
+
children: [
|
|
1987
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
1988
|
+
className: VaultSection_module_css_default.pwHistPwd,
|
|
1989
|
+
children: pwHistRevealed === i ? h.password : "••••••••"
|
|
1990
|
+
}),
|
|
1991
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
1992
|
+
type: "button",
|
|
1993
|
+
className: VaultSection_module_css_default.revealButton,
|
|
1994
|
+
title: t("pwHistoryHint"),
|
|
1995
|
+
onClick: () => setPwHistRevealed(pwHistRevealed === i ? null : i),
|
|
1996
|
+
children: pwHistRevealed === i ? t("hide") : t("show")
|
|
1997
|
+
}),
|
|
1998
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1999
|
+
className: VaultSection_module_css_default.pwHistTime,
|
|
2000
|
+
children: relTime(h.at)
|
|
2001
|
+
}),
|
|
2002
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2003
|
+
type: "button",
|
|
2004
|
+
className: VaultSection_module_css_default.dupMerge,
|
|
2005
|
+
disabled: busy || readonly || locked,
|
|
2006
|
+
onClick: () => void rollbackPassword(h.at),
|
|
2007
|
+
children: t("pwRollback")
|
|
2008
|
+
})
|
|
2009
|
+
]
|
|
2010
|
+
}, i)),
|
|
2011
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2012
|
+
type: "button",
|
|
2013
|
+
className: VaultSection_module_css_default.backupButton,
|
|
2014
|
+
onClick: () => {
|
|
2015
|
+
setPwHistory(null);
|
|
2016
|
+
setPwHistoryFor(null);
|
|
2017
|
+
},
|
|
2018
|
+
children: t("cancel")
|
|
2019
|
+
})
|
|
2020
|
+
]
|
|
2021
|
+
}),
|
|
1933
2022
|
state.status === "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1934
2023
|
className: VaultSection_module_css_default.status,
|
|
1935
2024
|
children: t("loading")
|
|
@@ -3345,6 +3434,13 @@ window.__ModuleLoader__.load({
|
|
|
3345
3434
|
title: t("touchHint"),
|
|
3346
3435
|
children: t("touch")
|
|
3347
3436
|
}),
|
|
3437
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3438
|
+
type: "button",
|
|
3439
|
+
onClick: () => void showPasswordHistory(entry.id),
|
|
3440
|
+
disabled: busy || locked,
|
|
3441
|
+
title: t("pwHistoryHint"),
|
|
3442
|
+
children: t("pwHistory")
|
|
3443
|
+
}),
|
|
3348
3444
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3349
3445
|
type: "button",
|
|
3350
3446
|
onClick: () => void startEdit(entry.id),
|
|
@@ -4202,6 +4298,13 @@ window.__ModuleLoader__.load({
|
|
|
4202
4298
|
copyUsername: "Copy username",
|
|
4203
4299
|
copyUsernameHint: "Copy the username",
|
|
4204
4300
|
copyTitleHint: "Copy the title",
|
|
4301
|
+
pwHistory: "Password history",
|
|
4302
|
+
pwHistoryHint: "View past passwords for this entry",
|
|
4303
|
+
pwHistoryEmpty: "No password history yet.",
|
|
4304
|
+
pwRollback: "Restore",
|
|
4305
|
+
pwRollbackConfirm: "Restore this old password? The current one moves to history.",
|
|
4306
|
+
pwRolledBack: "Password restored from history.",
|
|
4307
|
+
pwRollbackFailed: "Could not restore that password.",
|
|
4205
4308
|
bulkSelect: "Select",
|
|
4206
4309
|
bulkDone: "Done",
|
|
4207
4310
|
bulkSelectAll: "Select all",
|
|
@@ -4544,6 +4647,13 @@ window.__ModuleLoader__.load({
|
|
|
4544
4647
|
copyUsername: "复制用户名",
|
|
4545
4648
|
copyUsernameHint: "复制用户名",
|
|
4546
4649
|
copyTitleHint: "复制标题",
|
|
4650
|
+
pwHistory: "密码历史",
|
|
4651
|
+
pwHistoryHint: "查看该条目的历史密码",
|
|
4652
|
+
pwHistoryEmpty: "暂无密码历史。",
|
|
4653
|
+
pwRollback: "恢复",
|
|
4654
|
+
pwRollbackConfirm: "恢复此旧密码?当前密码将移入历史。",
|
|
4655
|
+
pwRolledBack: "已从历史恢复密码。",
|
|
4656
|
+
pwRollbackFailed: "无法恢复该密码。",
|
|
4547
4657
|
bulkSelect: "批量选择",
|
|
4548
4658
|
bulkDone: "完成",
|
|
4549
4659
|
bulkSelectAll: "全选",
|
|
@@ -4793,6 +4903,11 @@ window.__ModuleLoader__.load({
|
|
|
4793
4903
|
id,
|
|
4794
4904
|
preview: preview ?? false
|
|
4795
4905
|
}),
|
|
4906
|
+
passwordHistory: (id) => invoke("passwordHistory", { id }),
|
|
4907
|
+
passwordRollback: (id, at) => invoke("passwordRollback", {
|
|
4908
|
+
id,
|
|
4909
|
+
at
|
|
4910
|
+
}),
|
|
4796
4911
|
watchtower: () => invoke("watchtower"),
|
|
4797
4912
|
export1pux: (path) => invoke("export1pux", { path }),
|
|
4798
4913
|
exportBitwarden: (path) => invoke("exportBitwarden", { path }),
|