@barefootjs/client 0.27.0 → 0.28.1
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/runtime/claim-slots.d.ts +69 -4
- package/dist/runtime/claim-slots.d.ts.map +1 -1
- package/dist/runtime/component.d.ts +11 -1
- package/dist/runtime/component.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +2 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +322 -31
- package/dist/runtime/map-array-lazy.d.ts +164 -0
- package/dist/runtime/map-array-lazy.d.ts.map +1 -0
- package/dist/runtime/map-array.d.ts +35 -0
- package/dist/runtime/map-array.d.ts.map +1 -1
- package/dist/runtime/qsa-item.d.ts +7 -0
- package/dist/runtime/qsa-item.d.ts.map +1 -1
- package/dist/runtime/registry.d.ts.map +1 -1
- package/dist/runtime/standalone.js +310 -20
- package/package.json +2 -2
- package/src/runtime/claim-slots.ts +212 -14
- package/src/runtime/component.ts +116 -3
- package/src/runtime/index.ts +5 -1
- package/src/runtime/map-array-lazy.ts +470 -0
- package/src/runtime/map-array.ts +68 -11
- package/src/runtime/qsa-item.ts +9 -3
- package/src/runtime/registry.ts +5 -3
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BarefootJS - Lazy Row Graph List Rendering (slot unification §9, L2)
|
|
3
|
+
*
|
|
4
|
+
* `mapArrayLazy` renders a keyed reactive array WITHOUT any per-row reactive
|
|
5
|
+
* resources: no `createRoot`, no per-item signal, no per-row effect, no
|
|
6
|
+
* hydration-time query/claim/DOM-write per row. See
|
|
7
|
+
* `spec/slot-unification.md` §9 for the design and the measurement spike
|
|
8
|
+
* that motivated it (branch `claude/lazy-effect-spike`).
|
|
9
|
+
*
|
|
10
|
+
* A plain loop row has exactly two update paths, both already known without
|
|
11
|
+
* per-row reactivity (§9.1):
|
|
12
|
+
*
|
|
13
|
+
* 1. **Item-driven changes** — the keyed reconciler detects them itself
|
|
14
|
+
* (`!Object.is(oldItem, newItem)` per key) and calls the row plan's
|
|
15
|
+
* `applyItem` directly. The row's DOM refs are claimed lazily on that
|
|
16
|
+
* row's FIRST item-driven write (a scan inside that one row, cached on
|
|
17
|
+
* `entry.refs`); a row that never updates never pays.
|
|
18
|
+
* 2. **Outer-signal reads** — applied by ONE loop-level `createEffect`
|
|
19
|
+
* (`applyOuter`) iterating all entries with per-entry dedup, created
|
|
20
|
+
* only when the loop has such bindings.
|
|
21
|
+
*
|
|
22
|
+
* ## Row-plan contract (PINNED — L3's compiler emission targets exactly this)
|
|
23
|
+
*
|
|
24
|
+
* The compiler emits a {@link LazyRowPlan} per eligible loop
|
|
25
|
+
* (§9.4 eligibility: plain single-root keyed rows whose data source is
|
|
26
|
+
* hydration-consistent; everything else keeps the eager `mapArray`
|
|
27
|
+
* emission). Obligations, split by side:
|
|
28
|
+
*
|
|
29
|
+
* **Runtime (this module) guarantees:**
|
|
30
|
+
* - Hydration first run adopts SSR rows with ZERO per-row DOM mutations:
|
|
31
|
+
* `entry.key` is READ from the SSR-rendered `data-key` attribute (never
|
|
32
|
+
* written on adopted rows; `getKey(items[i], i)` is the fallback when the
|
|
33
|
+
* attribute is absent), `entry.item = items[i]` positionally (sound by
|
|
34
|
+
* the §9.3(2) compile-time eligibility gate), `refs`/`last` start `null`.
|
|
35
|
+
* - `plan.createRow` / `plan.applyItem` are invoked inside the reconciler
|
|
36
|
+
* effect but wrapped in `untrack()`, so outer-signal reads during row
|
|
37
|
+
* creation or item application never subscribe the reconciler — it re-runs
|
|
38
|
+
* only when `accessor()`'s dependencies change. (`applyItem` is untracked
|
|
39
|
+
* for the same reason `createRow` is: mixed item+outer bindings read outer
|
|
40
|
+
* signals non-reactively there; the `applyOuter` effect owns the reactive
|
|
41
|
+
* side.)
|
|
42
|
+
* - The runtime assigns `createRow`'s returned element to `entry.primaryEl`
|
|
43
|
+
* and stamps `data-key` on CSR-created rows if `createRow` didn't (same
|
|
44
|
+
* semantics as `mapArray`'s create path).
|
|
45
|
+
* - When `plan.applyOuter` exists, ONE loop-level effect is created (after
|
|
46
|
+
* the reconciler effect, so its first run happens after adoption) whose
|
|
47
|
+
* body calls `applyOuter(entryList, seed)` with `seed === true` exactly
|
|
48
|
+
* once, on the very first run. `entryList` is a closure variable holding
|
|
49
|
+
* the entries in current order, REBUILT (reassigned) by the reconciler
|
|
50
|
+
* after every reconcile — chosen over a live/mutable view so a run of the
|
|
51
|
+
* effect can never observe a half-reconciled list, and read
|
|
52
|
+
* non-reactively so the effect re-runs ONLY on the outer signals
|
|
53
|
+
* `applyOuter` itself reads, never because the list was reconciled.
|
|
54
|
+
* - **Re-subscribe seam**: the previous bullet's "reconciles never re-run
|
|
55
|
+
* this effect" contract holds only when every outer read subscribes
|
|
56
|
+
* independently of the entries. That is true for a plain signal/memo
|
|
57
|
+
* getter and FALSE for a per-key subscription such as `createSelector`,
|
|
58
|
+
* whose selector subscribes the caller only to the specific keys it was
|
|
59
|
+
* called with — so a reconcile can leave the effect subscribed to keys
|
|
60
|
+
* that no longer matter and NOT subscribed to keys that now do. Every
|
|
61
|
+
* loop with an `applyOuter` therefore re-runs it after any reconcile that
|
|
62
|
+
* created a row or changed an item (removals strand nothing). Applied
|
|
63
|
+
* unconditionally rather than gated on a compiler judgement about which
|
|
64
|
+
* reads are per-key: see the seam's comment inside `mapArrayLazy` for why
|
|
65
|
+
* (a misclassification must be harmless, not silently wrong) and for the
|
|
66
|
+
* three stranding sequences it prevents, each reproduced before it existed.
|
|
67
|
+
*
|
|
68
|
+
* **Plan (compiler-emitted) obligations:**
|
|
69
|
+
* - `createRow` MUST write ALL bindings — item-driven AND outer-involving —
|
|
70
|
+
* with current values (it is CSR creation; it computes everything anyway)
|
|
71
|
+
* and MUST seed `entry.refs`/`entry.last` from known clone paths (no
|
|
72
|
+
* scan). Freshly-created rows are therefore consistent immediately; the
|
|
73
|
+
* `applyOuter` effect's per-entry dedup (seeded via `entry.last`) keeps
|
|
74
|
+
* them consistent on later outer-signal changes.
|
|
75
|
+
* - `applyOuter`'s FIRST run (`seed === true`) must READ current DOM state
|
|
76
|
+
* (`getAttribute` / `nodeValue`) to initialize each entry's dedup value
|
|
77
|
+
* and write only where the computed value differs — read-compare-write
|
|
78
|
+
* seeding (§9.3(1)), sound even when outer state is client-only and
|
|
79
|
+
* diverges from SSR. No trust-first-run regression (§6).
|
|
80
|
+
* - `applyItem` claims refs lazily (scan within `entry.primaryEl`) when
|
|
81
|
+
* `entry.refs` is null, and writes through per-binding dedup held on
|
|
82
|
+
* `entry.last` / `entry.refs`.
|
|
83
|
+
*
|
|
84
|
+
* ## Reconciliation
|
|
85
|
+
*
|
|
86
|
+
* The keyed diff, duplicate-key once-per-reconcile warning, clear-all fast
|
|
87
|
+
* path, and LIS minimal-move reorder mirror `mapArray`'s exactly — minus
|
|
88
|
+
* every per-row reactive resource. Removal is plain DOM detach: entries
|
|
89
|
+
* hold no reactive resources (CSR rows created by `plan.createRow` hold
|
|
90
|
+
* none either), so there is nothing to dispose.
|
|
91
|
+
*
|
|
92
|
+
* Single-root rows only (v1): the §9.4 eligibility gate guarantees the
|
|
93
|
+
* compiler never targets this entry point for multi-root (Fragment) rows,
|
|
94
|
+
* so there is no `startMarker`/`extras`/`bf-loop-i` bookkeeping here.
|
|
95
|
+
*
|
|
96
|
+
* Rows are NOT added to `hydratedScopes`: that mark exists for element
|
|
97
|
+
* scopes the hydration walker must skip, and lazy-eligible rows are plain
|
|
98
|
+
* markup (no nested component/host scopes — the eligibility gate excludes
|
|
99
|
+
* them), so the mark would only spend per-row memory this design exists to
|
|
100
|
+
* eliminate.
|
|
101
|
+
*
|
|
102
|
+
* Shared helpers: `findLoopMarkers` and `longestIncreasingSubsequenceIndices`
|
|
103
|
+
* are imported from `./map-array.ts` (now exported for internal reuse)
|
|
104
|
+
* rather than duplicated or extracted into a third module — they are pure,
|
|
105
|
+
* behavior-identical for both reconcilers, and importing keeps exactly one
|
|
106
|
+
* copy without churning `map-array.ts`'s structure. The loop-shaped logic
|
|
107
|
+
* around them (partition, diff, clear fast path) is intentionally
|
|
108
|
+
* re-written here rather than shared: it differs in what it carries per row
|
|
109
|
+
* (plain entries vs reactive scopes) and forcing one parameterized body
|
|
110
|
+
* would obscure both.
|
|
111
|
+
*
|
|
112
|
+
* `bfId` is forwarded to the reconciler effect only (same attribution point
|
|
113
|
+
* as `mapArray`); profile mode never emits lazy loops (§9.4), so the outer
|
|
114
|
+
* effect carries no id.
|
|
115
|
+
*/
|
|
116
|
+
/**
|
|
117
|
+
* One row of a lazy loop: plain data, no reactive resources.
|
|
118
|
+
* Built at adoption (hydration) or by the reconciler via `plan.createRow`.
|
|
119
|
+
*/
|
|
120
|
+
export interface LazyRowEntry<T> {
|
|
121
|
+
key: string;
|
|
122
|
+
primaryEl: HTMLElement;
|
|
123
|
+
item: T;
|
|
124
|
+
/** plan-owned: claimed DOM refs, null until the row's first item-driven write */
|
|
125
|
+
refs: unknown | null;
|
|
126
|
+
/** plan-owned: per-binding last-value dedup state */
|
|
127
|
+
last: unknown | null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The compiler-emitted row plan for a lazy-eligible loop.
|
|
131
|
+
* See the module docstring for the pinned contract and each side's
|
|
132
|
+
* obligations.
|
|
133
|
+
*/
|
|
134
|
+
export interface LazyRowPlan<T> {
|
|
135
|
+
/** CSR create: clone/build a fully-written row element for item; record refs
|
|
136
|
+
* and dedup state directly on the entry (no scan). Returns the element. */
|
|
137
|
+
createRow(entry: LazyRowEntry<T>, index: number): HTMLElement;
|
|
138
|
+
/** Item-driven (and mixed) bindings: called by the reconciler AFTER
|
|
139
|
+
* entry.item has been updated to the new item; prevItem is the old value.
|
|
140
|
+
* Claims refs lazily (scan within entry.primaryEl) when entry.refs is null.
|
|
141
|
+
* Writes through per-binding dedup held on entry.last / entry.refs. */
|
|
142
|
+
applyItem(entry: LazyRowEntry<T>, prevItem: T): void;
|
|
143
|
+
/** Outer-involving bindings (present only when the loop has bindings that
|
|
144
|
+
* read signals from outside the row). Runtime wraps this in ONE
|
|
145
|
+
* createEffect for the whole loop. Reads its outer signals inside the
|
|
146
|
+
* callback (so the effect subscribes), then applies those bindings to
|
|
147
|
+
* every entry with per-entry dedup. `seed` is true on the effect's FIRST
|
|
148
|
+
* run only: the binding must READ current DOM state (getAttribute /
|
|
149
|
+
* nodeValue) to initialize its dedup value and write only where the
|
|
150
|
+
* computed value differs (read-compare-write, spec §9.3(1)). */
|
|
151
|
+
applyOuter?(entries: ReadonlyArray<LazyRowEntry<T>>, seed: boolean): void;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Lazy-row-graph keyed list rendering (spec/slot-unification.md §9).
|
|
155
|
+
*
|
|
156
|
+
* @param accessor - Function returning the reactive array (signal/memo read)
|
|
157
|
+
* @param container - DOM container element
|
|
158
|
+
* @param getKey - Key extractor (null = use index). Receives plain item value.
|
|
159
|
+
* @param plan - Compiler-emitted row plan (see {@link LazyRowPlan})
|
|
160
|
+
* @param markerId - Scoped loop marker id (`<!--bf-loop:<id>-->`), see #1087
|
|
161
|
+
* @param bfId - Profiler attribution id for the reconciler effect
|
|
162
|
+
*/
|
|
163
|
+
export declare function mapArrayLazy<T>(accessor: () => T[], container: HTMLElement | null, getKey: ((item: T, index: number) => string) | null, plan: LazyRowPlan<T>, markerId?: string, bfId?: string): void;
|
|
164
|
+
//# sourceMappingURL=map-array-lazy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-array-lazy.d.ts","sourceRoot":"","sources":["../../src/runtime/map-array-lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkHG;AAMH;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,WAAW,CAAA;IACtB,IAAI,EAAE,CAAC,CAAA;IACP,iFAAiF;IACjF,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,qDAAqD;IACrD,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;gFAC4E;IAC5E,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAA;IAC7D;;;4EAGwE;IACxE,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAA;IACpD;;;;;;;qEAOiE;IACjE,UAAU,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAC1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE,EACnB,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,EACnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAqSN"}
|
|
@@ -17,6 +17,41 @@
|
|
|
17
17
|
* extras...) triple — moves, mounts, and unmounts as a single unit.
|
|
18
18
|
* Single-root loops continue to flow through the legacy path verbatim.
|
|
19
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Find loop boundary comment markers in a container.
|
|
22
|
+
*
|
|
23
|
+
* When `markerId` is given, matches the scoped form `<!--bf-loop:<id>-->` /
|
|
24
|
+
* `<!--bf-/loop:<id>-->` so sibling `.map()` calls under the same parent
|
|
25
|
+
* each see only their own range (#1087).
|
|
26
|
+
*
|
|
27
|
+
* When omitted (e.g. hand-written tests that drop in unscoped markers),
|
|
28
|
+
* falls back to the first start / first end found, matching either the
|
|
29
|
+
* scoped or legacy unscoped form.
|
|
30
|
+
*
|
|
31
|
+
* Exported for `./map-array-lazy.ts` (internal reuse only — not re-exported
|
|
32
|
+
* from the runtime index).
|
|
33
|
+
*/
|
|
34
|
+
export declare function findLoopMarkers(container: HTMLElement, markerId?: string): {
|
|
35
|
+
start: Comment | null;
|
|
36
|
+
end: Comment | null;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Longest increasing subsequence, returned as ascending indices into `arr`.
|
|
40
|
+
* O(n log n) patience sorting with predecessor backtracking.
|
|
41
|
+
*
|
|
42
|
+
* Used by `mapArray`'s reorder step: `arr` holds, for each already-attached
|
|
43
|
+
* scope encountered while walking the live DOM in its current order, the
|
|
44
|
+
* scope's index in the *desired* order. The LIS of that array is the
|
|
45
|
+
* largest set of scopes whose relative order already matches the desired
|
|
46
|
+
* order — those scopes can stay exactly where they are; every other scope
|
|
47
|
+
* (plus any brand-new one) needs to move. This is the same strategy
|
|
48
|
+
* keyed-diff reconcilers in the udomdiff/Solid family use to turn an
|
|
49
|
+
* arbitrary reorder into a minimal set of DOM moves.
|
|
50
|
+
*
|
|
51
|
+
* Exported for `./map-array-lazy.ts` (internal reuse only — not re-exported
|
|
52
|
+
* from the runtime index).
|
|
53
|
+
*/
|
|
54
|
+
export declare function longestIncreasingSubsequenceIndices(arr: number[]): number[];
|
|
20
55
|
/**
|
|
21
56
|
* Per-item scoped list rendering.
|
|
22
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-array.d.ts","sourceRoot":"","sources":["../../src/runtime/map-array.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"map-array.d.ts","sourceRoot":"","sources":["../../src/runtime/map-array.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAqCH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,WAAW,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CA+BhD;AA8DD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA2B3E;AAkFD;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,QAAQ,EAAE,MAAM,CAAC,EAAE,EACnB,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,EACnD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,KAAK,WAAW,EACjF,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CA6RN;AAqHD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,EAAE,EACnB,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,EACnD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,gBAAgB,GAAG,OAAO,EAC5F,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CA+FN"}
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
* is `null` and step 2 yields nothing. Reading `__bfExtras` lets
|
|
26
26
|
* lookups reach the still-pending extras before `mapArray` inserts
|
|
27
27
|
* them into the DOM.
|
|
28
|
+
*
|
|
29
|
+
* Step 3's reliance on the primary being detached during setup is why
|
|
30
|
+
* `createItemScope` un-parks a row that turns out to carry extras: the
|
|
31
|
+
* connect-before-init mount point applies to `createComponent` row roots,
|
|
32
|
+
* which are single-root by construction and so never reach this module. An
|
|
33
|
+
* attached primary would make step 2's sibling walk run past the item's own
|
|
34
|
+
* roots into a neighbouring item's elements before step 3 is ever consulted.
|
|
28
35
|
*/
|
|
29
36
|
/**
|
|
30
37
|
* Find an element matching `selector` within an item's range. Searches
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qsa-item.d.ts","sourceRoot":"","sources":["../../src/runtime/qsa-item.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"qsa-item.d.ts","sourceRoot":"","sources":["../../src/runtime/qsa-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAsCH;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQnF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EACrB,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,GAC3B,WAAW,GAAG,IAAI,CAuBpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAaxC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAclE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,GAAG,IAAI,EAC1B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAClC,IAAI,CAoCN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EACrB,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,GAC3B,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAaxC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAclE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,GAAG,IAAI,EAC1B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAClC,IAAI,CAoCN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EACrB,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,GAC3B,WAAW,GAAG,IAAI,CAgCpB"}
|