feat(web): polish the WASM site - UX, help, parsing, assets
- About panel (collapsible, closed by default with a pulsing "Help" badge) explaining the tool; the `help` command now prints a full command reference instead of "HELP" (benefits the CLI too). - Live generation as you type; Store button; masked output that stays mono-width (gen masks only the password column, never the header); command history with Up/Down (persisted); console auto-scroll; Export fixed (uses `dump`); Import. - Name field normalizes to its canonical parsed form on blur; quick-gen and Store resolve the real entry name, so a leading prefix like `*P0 test1` is handled correctly (new hel_parse / hel_parse_name wasm helpers). - Parser: prefix-only forms now parse with defaults - `*P0 test1` -> `*P0 test1 R 99 <today>`, `*P0 test1 R`, `*P0 test1 20R` - via new qpname/npname rules mirroring qname/nname; the fully-qualified form is unchanged. - Favicons + web app manifest + enso asset; pkg rebuilt.
This commit is contained in:
Vendored
+18
-1
@@ -19,13 +19,30 @@ export function hel_init(): void;
|
||||
*/
|
||||
export function hel_load_script(script: string): string;
|
||||
|
||||
/**
|
||||
* Parse a password spec (e.g. `exa91` or `exa91 20R 99 2020-01-01`) and return
|
||||
* the canonical normalized form hel actually uses (name + mode + seq + date +
|
||||
* comment), without touching state. Returns the input unchanged if it does not
|
||||
* parse. Used by the UI to rewrite the name field on blur.
|
||||
*/
|
||||
export function hel_parse(spec: string): string;
|
||||
|
||||
/**
|
||||
* Parse a spec and return just the entry name hel resolves it to. Handles a
|
||||
* leading prefix (e.g. `*P0 test1 …` → `test1`), which a naive first-token
|
||||
* split would get wrong. Falls back to the first whitespace token.
|
||||
*/
|
||||
export function hel_parse_name(spec: string): string;
|
||||
|
||||
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
||||
|
||||
export interface InitOutput {
|
||||
readonly memory: WebAssembly.Memory;
|
||||
readonly hel_command: (a: number, b: number) => [number, number];
|
||||
readonly hel_init: () => void;
|
||||
readonly hel_command: (a: number, b: number) => [number, number];
|
||||
readonly hel_load_script: (a: number, b: number) => [number, number];
|
||||
readonly hel_parse: (a: number, b: number) => [number, number];
|
||||
readonly hel_parse_name: (a: number, b: number) => [number, number];
|
||||
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
||||
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
||||
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
||||
|
||||
@@ -49,6 +49,51 @@ export function hel_load_script(script) {
|
||||
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a password spec (e.g. `exa91` or `exa91 20R 99 2020-01-01`) and return
|
||||
* the canonical normalized form hel actually uses (name + mode + seq + date +
|
||||
* comment), without touching state. Returns the input unchanged if it does not
|
||||
* parse. Used by the UI to rewrite the name field on blur.
|
||||
* @param {string} spec
|
||||
* @returns {string}
|
||||
*/
|
||||
export function hel_parse(spec) {
|
||||
let deferred2_0;
|
||||
let deferred2_1;
|
||||
try {
|
||||
const ptr0 = passStringToWasm0(spec, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
||||
const len0 = WASM_VECTOR_LEN;
|
||||
const ret = wasm.hel_parse(ptr0, len0);
|
||||
deferred2_0 = ret[0];
|
||||
deferred2_1 = ret[1];
|
||||
return getStringFromWasm0(ret[0], ret[1]);
|
||||
} finally {
|
||||
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a spec and return just the entry name hel resolves it to. Handles a
|
||||
* leading prefix (e.g. `*P0 test1 …` → `test1`), which a naive first-token
|
||||
* split would get wrong. Falls back to the first whitespace token.
|
||||
* @param {string} spec
|
||||
* @returns {string}
|
||||
*/
|
||||
export function hel_parse_name(spec) {
|
||||
let deferred2_0;
|
||||
let deferred2_1;
|
||||
try {
|
||||
const ptr0 = passStringToWasm0(spec, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
||||
const len0 = WASM_VECTOR_LEN;
|
||||
const ret = wasm.hel_parse_name(ptr0, len0);
|
||||
deferred2_0 = ret[0];
|
||||
deferred2_1 = ret[1];
|
||||
return getStringFromWasm0(ret[0], ret[1]);
|
||||
} finally {
|
||||
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
||||
}
|
||||
}
|
||||
function __wbg_get_imports() {
|
||||
const import0 = {
|
||||
__proto__: null,
|
||||
|
||||
Binary file not shown.
Vendored
+3
-1
@@ -1,9 +1,11 @@
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
export const memory: WebAssembly.Memory;
|
||||
export const hel_command: (a: number, b: number) => [number, number];
|
||||
export const hel_init: () => void;
|
||||
export const hel_command: (a: number, b: number) => [number, number];
|
||||
export const hel_load_script: (a: number, b: number) => [number, number];
|
||||
export const hel_parse: (a: number, b: number) => [number, number];
|
||||
export const hel_parse_name: (a: number, b: number) => [number, number];
|
||||
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
||||
export const __wbindgen_malloc: (a: number, b: number) => number;
|
||||
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
||||
|
||||
Reference in New Issue
Block a user