@vesk/runtime 0.2.58 → 0.2.60
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/dist/hydrate.d.ts.map +1 -1
- package/dist/hydrate.js +20 -1
- package/dist/path-store.d.ts +123 -0
- package/dist/path-store.d.ts.map +1 -0
- package/dist/path-store.js +966 -0
- package/dist/ripple-blocks.d.ts.map +1 -1
- package/dist/ripple-blocks.js +12 -1
- package/dist/ripple-runtime.d.ts +36 -0
- package/dist/ripple-runtime.d.ts.map +1 -1
- package/dist/ripple-runtime.js +120 -3
- package/dist/store-persistence.d.ts +90 -0
- package/dist/store-persistence.d.ts.map +1 -0
- package/dist/store-persistence.js +154 -0
- package/dist/store.d.ts +61 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +275 -0
- package/package.json +23 -2
package/dist/hydrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
|
package/dist/hydrate.js
CHANGED
|
@@ -955,6 +955,17 @@ class StructuralWalker {
|
|
|
955
955
|
// callee's first claim and resets the deposit so later claims stay
|
|
956
956
|
// positional against the advancing cursor. Consumed synchronously on the
|
|
957
957
|
// same walker reference the call was made through.
|
|
958
|
+
//
|
|
959
|
+
// The deposit is ALSO consumed implicitly by the next claim made through this
|
|
960
|
+
// walker when the caller passed no explicit skipK. A component written in plain
|
|
961
|
+
// JS (lucide-vesk icons are the common case) never calls `takeSkipK`, so
|
|
962
|
+
// before this the deposit was silently dropped: the icon's `nextElement("svg")`
|
|
963
|
+
// claimed the slot still holding the STATIC residue in front of it
|
|
964
|
+
// (`<button><span>Apply Now</span><svg/></button>`), the descriptor missed on
|
|
965
|
+
// `<span>`, and the walker detached server-rendered content that no client
|
|
966
|
+
// program had any intention of replacing. Implicit consumption keeps static
|
|
967
|
+
// residue out of the way for plain-JS components exactly as it is for
|
|
968
|
+
// compiled ones.
|
|
958
969
|
inheritOffset = 0;
|
|
959
970
|
injectSkipK(n) {
|
|
960
971
|
this.inheritOffset = n;
|
|
@@ -969,7 +980,15 @@ class StructuralWalker {
|
|
|
969
980
|
// eslint-disable-next-line no-console
|
|
970
981
|
console.error('[hyd-dbg] claimAt', tag, 'skip=', skipK, 'idx=', this.idx, 'els=', this.els.length);
|
|
971
982
|
}
|
|
972
|
-
|
|
983
|
+
// An explicit skipK always wins; otherwise the caller's residue deposit
|
|
984
|
+
// applies to this claim. ANY claim consumes the deposit, so a claim that
|
|
985
|
+
// carries its own offset cannot leak the deposit into the next one.
|
|
986
|
+
let offset = skipK || 0;
|
|
987
|
+
const inherited = this.inheritOffset;
|
|
988
|
+
this.inheritOffset = 0;
|
|
989
|
+
if (!offset)
|
|
990
|
+
offset = inherited;
|
|
991
|
+
let target = this.advancePastSkippable(this.idx + offset);
|
|
973
992
|
// The caller's residue accounting may overshoot (region estimates use
|
|
974
993
|
// max over branches); back off to the cursor rather than past the list.
|
|
975
994
|
if (target > this.els.length)
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { Path as Segments } from './nested-update.js';
|
|
2
|
+
import { installPersistedStoreServerHooks as _installPersistedStoreServerHooks, persistedStoreCookieName, getPersistedStoreKeys as _getPersistedStoreKeys, resetPersistedStoreKeys as _resetPersistedStoreKeys, buildStorePrePaintPayload as _buildStorePrePaintPayload } from './store-persistence.js';
|
|
3
|
+
type Prev = [never, 0, 1, 2, 3, 4, 5, 6];
|
|
4
|
+
/**
|
|
5
|
+
* Every statically-known path into `T`, as a dotted string with numeric
|
|
6
|
+
* segments for array indices: `'user.name'`, `'items.0.done'`. Depth is capped
|
|
7
|
+
* (default 6) to keep the union finite for recursive types.
|
|
8
|
+
*/
|
|
9
|
+
export type StorePath<T, D extends number = 6> = [D] extends [never] ? never : T extends readonly unknown[] ? `${number}` | `${number}.${StorePath<T[number], Prev[D]>}` : T extends object ? {
|
|
10
|
+
[K in keyof T & string]: T[K] extends object | readonly unknown[] ? K | `${K}.${StorePath<T[K], Prev[D]>}` : K;
|
|
11
|
+
}[keyof T & string] : never;
|
|
12
|
+
/** The value type at path `P` in `T`. */
|
|
13
|
+
export type StorePathValue<T, P extends string> = P extends `${infer K}.${infer R}` ? K extends `${number}` ? T extends readonly (infer U)[] ? StorePathValue<U, R> : never : K extends keyof T ? StorePathValue<T[K], R> : never : P extends `${number}` ? T extends readonly (infer U)[] ? U : never : P extends keyof T ? T[P] : never;
|
|
14
|
+
/** A read/write handle for one path. `get()` subscribes; `set()` commits. */
|
|
15
|
+
export interface PathHandle<V> {
|
|
16
|
+
readonly path: string;
|
|
17
|
+
/** Reactive read — subscribes the surrounding reaction to this path. */
|
|
18
|
+
get(): V;
|
|
19
|
+
/** Commit a new value at this path (attributed to `action`). */
|
|
20
|
+
set(value: V, action?: string): void;
|
|
21
|
+
/** Commit `fn(current)` at this path. */
|
|
22
|
+
update(fn: (current: V) => V, action?: string): void;
|
|
23
|
+
/** Path-scoped subscription: only fires when this path's value changes. */
|
|
24
|
+
subscribe(cb: (value: V) => void): () => void;
|
|
25
|
+
}
|
|
26
|
+
/** A read-only derived handle. Values are computed — there is no `set`. */
|
|
27
|
+
export interface DerivedHandle<V> {
|
|
28
|
+
readonly path: string;
|
|
29
|
+
/** The source paths the selector read on its last evaluation. */
|
|
30
|
+
readonly deps: string[];
|
|
31
|
+
/** Reactive read of the computed value. */
|
|
32
|
+
get(): V;
|
|
33
|
+
/** Fires only when the computed value changes. */
|
|
34
|
+
subscribe(cb: (value: V) => void): () => void;
|
|
35
|
+
}
|
|
36
|
+
/** One changed path within a commit. */
|
|
37
|
+
export interface PathStoreChange {
|
|
38
|
+
path: string;
|
|
39
|
+
before: unknown;
|
|
40
|
+
after: unknown;
|
|
41
|
+
}
|
|
42
|
+
/** One recorded commit, oldest first. */
|
|
43
|
+
export interface PathStoreEvent {
|
|
44
|
+
version: number;
|
|
45
|
+
action: string;
|
|
46
|
+
at: number;
|
|
47
|
+
changes: PathStoreChange[];
|
|
48
|
+
}
|
|
49
|
+
/** One link in a `why()` explanation. */
|
|
50
|
+
export interface PathExplanation {
|
|
51
|
+
path: string;
|
|
52
|
+
value: unknown;
|
|
53
|
+
cause: 'initial' | 'action' | 'derived' | 'time-travel';
|
|
54
|
+
action?: string;
|
|
55
|
+
version?: number;
|
|
56
|
+
/** For `cause: 'derived'`, the source paths the derived node read. */
|
|
57
|
+
from?: PathExplanation[];
|
|
58
|
+
/** For derived/time-travel nodes: the changes that actually triggered the last recompute. */
|
|
59
|
+
changedBy?: PathExplanation[];
|
|
60
|
+
}
|
|
61
|
+
export interface PathStoreOptions {
|
|
62
|
+
/** Persist state to localStorage and a server-readable cookie (guarded for SSR). */
|
|
63
|
+
persist?: boolean;
|
|
64
|
+
storageKey?: string;
|
|
65
|
+
/** Max events retained in `events`/undo stack (default 500). */
|
|
66
|
+
historyLimit?: number;
|
|
67
|
+
}
|
|
68
|
+
/** Install server-side persistence hooks (adapter calls this; shared with
|
|
69
|
+
* `@vesk/runtime/store`). */
|
|
70
|
+
export declare const installPathStoreServerHooks: typeof _installPersistedStoreServerHooks;
|
|
71
|
+
/** The cookie name a persisted store is mirrored to, for SSR continuity. */
|
|
72
|
+
export { persistedStoreCookieName };
|
|
73
|
+
/** The storage keys of persisted stores constructed in this server render. */
|
|
74
|
+
export declare const getPersistedStoreKeys: typeof _getPersistedStoreKeys;
|
|
75
|
+
/** Clear the constructed-key registry (called per SSR request by the adapter). */
|
|
76
|
+
export declare const resetPersistedStoreKeys: typeof _resetPersistedStoreKeys;
|
|
77
|
+
/** Plain-JS body the adapter serves at `/store-init.js?t=<token>` (CSP-safe,
|
|
78
|
+
* never inlined) to populate `window.__VESK_STORE_INIT__` before first paint. */
|
|
79
|
+
export { _buildStorePrePaintPayload as buildStorePrePaintPayload };
|
|
80
|
+
/**
|
|
81
|
+
* Parse a human path string into segments. `'items[0].done'` → `['items', 0,
|
|
82
|
+
* 'done']`. A character loop, consistent with the runtime tokenizer style.
|
|
83
|
+
*/
|
|
84
|
+
export declare function parseStorePath(input: string): Segments;
|
|
85
|
+
export declare function createPathStore<T extends object>(initial: T, options?: PathStoreOptions): {
|
|
86
|
+
/** Reactive whole-state read — re-runs on any commit. Includes derived
|
|
87
|
+
* values at their registered paths (derived wins over a raw key). */
|
|
88
|
+
get(): T;
|
|
89
|
+
/** A fine-grained, causally-aware handle for one nested path. When a
|
|
90
|
+
* derived is registered at this path, the handle reads/writes the
|
|
91
|
+
* derived (set/update then throw read-only). */
|
|
92
|
+
at<P extends StorePath<T>>(path: P): PathHandle<StorePathValue<T, P>>;
|
|
93
|
+
/** Replace the whole state (attributed to `action`). */
|
|
94
|
+
set(next: T, action?: string): void;
|
|
95
|
+
/** Shallow merge a partial (or `(prev) => partial`) into the root. */
|
|
96
|
+
update(patch: Partial<T> | ((prev: T) => Partial<T>), action?: string): void;
|
|
97
|
+
setIn(path: Segments | string, value: unknown, action?: string): void;
|
|
98
|
+
updateIn(path: Segments | string, fn: (current: unknown) => unknown, action?: string): void;
|
|
99
|
+
/**
|
|
100
|
+
* Register a derived node at `path`. The selector is evaluated inside
|
|
101
|
+
* `untrack` against a read-recording proxy, so its source paths are
|
|
102
|
+
* captured automatically — including array envelopes, which make
|
|
103
|
+
* aggregate deriveds re-run when the array's membership changes.
|
|
104
|
+
*/
|
|
105
|
+
derived<P extends StorePath<T>, V>(path: P, selector: (state: T) => V, equals?: (a: V, b: V) => boolean): DerivedHandle<V>;
|
|
106
|
+
subscribe(fn: (state: T) => void, selector?: (state: T) => unknown, equals?: (a: unknown, b: unknown) => boolean): () => void;
|
|
107
|
+
watch<K>(selector: (state: T) => K, callback: (next: K, prev: K) => void): () => void;
|
|
108
|
+
/** Causal explanation for the current value at `path`. */
|
|
109
|
+
why<P extends StorePath<T>>(path: P): PathExplanation;
|
|
110
|
+
/** A printable causal chain for devtools / tests. */
|
|
111
|
+
explain<P extends StorePath<T>>(path: P): string;
|
|
112
|
+
/** The recorded events, oldest first. */
|
|
113
|
+
readonly events: readonly PathStoreEvent[];
|
|
114
|
+
readonly version: number;
|
|
115
|
+
canUndo(): boolean;
|
|
116
|
+
canRedo(): boolean;
|
|
117
|
+
undo(): boolean;
|
|
118
|
+
redo(): boolean;
|
|
119
|
+
/** A JSON-safe snapshot of the current merged state. */
|
|
120
|
+
toJSON(): Record<string, unknown>;
|
|
121
|
+
};
|
|
122
|
+
export type PathStore<T extends object> = ReturnType<typeof createPathStore<T>>;
|
|
123
|
+
//# sourceMappingURL=path-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-store.d.ts","sourceRoot":"","sources":["../src/path-store.ts"],"names":[],"mappings":"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"}
|