|
UnENVerse 0.42.6
Local-first desktop secrets manager — TypeScript frontend
|
import buildBundle;Functions | |
| function restoreSort() | debouncedSearch () |
| Applies the persisted sort mode and syncs the toolbar label to it. | |
| function async | finishInit () |
| function async | init () |
Variables | |
| const | SORT_OPTIONS |
| Grid sort modes. | |
| let | _openFilePicker |
The dynamic file picker, hoisted so finishInit can hand it to the onboarding wizard. | |
| function restoreSort() debouncedSearch | ( | ) |
Applies the persisted sort mode and syncs the toolbar label to it.
The stored value is checked against SORT_OPTIONS rather than trusted: an unrecognised mode falls through every branch of sorted() and leaves the grid in insertion order while the button claims otherwise. Copy the authenticator code shown at el's slot.
Reads the code the ticker last painted (data-totp-code on the [data-totp-for] container) rather than re-deriving it, so what lands on the clipboard is what the user was looking at. Re-deriving would hand them the next code if the click crossed a step boundary — the one failure that is both invisible and guaranteed to be blamed on the website. The pool card's Copy button — advances the pool cursor and copies whatever it landed on, exactly unv pool next. Members are read from the live vault via poolsOf, not a snapshot the card was built with, so a member deleted between render and click cannot be copied.
| function async finishInit | ( | ) |
| function async init | ( | ) |
| onText | when given, receives the file's text instead of handleFileSelect deciding what the file is. The authenticator import needs it: an Aegis vault and a full UnENVerse export are both .json, and letting the sniffer guess between them is how a 2FAS backup ends up interpreted as a vault replacement. |
| const SORT_OPTIONS |
Grid sort modes.
Module-level so the persisted value can be validated against it.
| let _openFilePicker |
The dynamic file picker, hoisted so finishInit can hand it to the onboarding wizard.
It is created inside init() because it closes over nothing else — see the WebKitGTK ghost-widget note there.