@markless/runtime 0.4.0 → 0.5.0
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/{graph-async-Db6SqB5x.js → graph-async-BOuUUffx.js} +2 -2
- package/dist/{graph-reconcile-DoBBfYsT.d.ts → graph-reconcile-Cdf3iTu3.d.ts} +65 -11
- package/dist/graph-reconcile.d.ts +1 -1
- package/dist/graph-reconcile.js +2 -2
- package/dist/{graph-Duhosz6u.js → graph-rhGwAXyl.js} +72 -13
- package/dist/graph.d.ts +2 -2
- package/dist/graph.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/package.json +2 -2
|
@@ -65,7 +65,7 @@ function isObject(value) {
|
|
|
65
65
|
}
|
|
66
66
|
//#endregion
|
|
67
67
|
//#region src/graph-async.ts
|
|
68
|
-
const ASYNC_SNAPSHOT_META_KEYS = new Set([
|
|
68
|
+
const ASYNC_SNAPSHOT_META_KEYS = /* @__PURE__ */ new Set([
|
|
69
69
|
"status",
|
|
70
70
|
"version",
|
|
71
71
|
"key",
|
|
@@ -103,7 +103,7 @@ function invalidateAsyncComputed(input) {
|
|
|
103
103
|
advanceAsyncComputed(input);
|
|
104
104
|
}
|
|
105
105
|
function advanceAsyncComputed(input) {
|
|
106
|
-
const visited = new Set([input.node.graphNodeId]);
|
|
106
|
+
const visited = /* @__PURE__ */ new Set([input.node.graphNodeId]);
|
|
107
107
|
let blocked;
|
|
108
108
|
const visit = (graphNodeId) => {
|
|
109
109
|
if (visited.has(graphNodeId)) return;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ProtocolStatePayload } from "@markless/serializer";
|
|
2
|
-
|
|
3
2
|
//#region src/graph.d.ts
|
|
4
3
|
type RuntimeGraphCell = {
|
|
5
4
|
readonly graphNodeId: string;
|
|
@@ -14,7 +13,8 @@ type RuntimeGraphComputedDependency = {
|
|
|
14
13
|
type RuntimeGraphComputed = {
|
|
15
14
|
readonly graphNodeId: string;
|
|
16
15
|
readonly dependencies: ReadonlyArray<RuntimeGraphComputedDependency>;
|
|
17
|
-
readonly compute: (read: RuntimeGraphRead) => unknown;
|
|
16
|
+
readonly compute: (read: RuntimeGraphRead) => unknown;
|
|
17
|
+
/** How re-derived values reconcile against the node's previous value. */
|
|
18
18
|
readonly reconcile?: RuntimeGraphReconcileOptions;
|
|
19
19
|
};
|
|
20
20
|
type RuntimeGraphComputedDependencyNode = Omit<RuntimeGraphComputed, 'compute'> & {
|
|
@@ -43,7 +43,8 @@ type RuntimeGraphAsyncComputed = {
|
|
|
43
43
|
readonly graphNodeId: string;
|
|
44
44
|
readonly dependencies: ReadonlyArray<RuntimeGraphComputedDependency>;
|
|
45
45
|
readonly initialSnapshot?: RuntimeGraphAsyncSnapshot;
|
|
46
|
-
readonly key: (read: RuntimeGraphRead) => unknown;
|
|
46
|
+
readonly key: (read: RuntimeGraphRead) => unknown;
|
|
47
|
+
/** How a fulfilled value reconciles against the previously published one. */
|
|
47
48
|
readonly reconcile?: RuntimeGraphReconcileOptions;
|
|
48
49
|
readonly run: (input: {
|
|
49
50
|
readonly key: unknown;
|
|
@@ -55,6 +56,8 @@ type DomJournalEntry = {
|
|
|
55
56
|
readonly type: 'setText';
|
|
56
57
|
readonly locator: string;
|
|
57
58
|
readonly value: unknown;
|
|
59
|
+
/** The one child text node this write owns, when its element holds other children too. */
|
|
60
|
+
readonly node?: (host: unknown) => unknown;
|
|
58
61
|
} | {
|
|
59
62
|
readonly type: 'setAttr' | 'setProp';
|
|
60
63
|
readonly locator: string;
|
|
@@ -129,8 +132,40 @@ type RuntimeGraphSubscription = {
|
|
|
129
132
|
readonly path?: ReadonlyArray<string>;
|
|
130
133
|
readonly run: (value: unknown) => DomJournalResult | void | Promise<DomJournalResult | void>;
|
|
131
134
|
};
|
|
135
|
+
/**
|
|
136
|
+
* Told about a write the moment it lands, before the flush that write schedules.
|
|
137
|
+
*
|
|
138
|
+
* The flush is a microtask behind the statement that wrote, so a handler reading
|
|
139
|
+
* back what its own write produced - a keyed repeat's rows most of all - reads
|
|
140
|
+
* the pre-write answer. An observer runs synchronously inside the write instead,
|
|
141
|
+
* so the next statement of the same handler sees the result.
|
|
142
|
+
*
|
|
143
|
+
* It runs for a write to `graphNodeId` under an intersecting path, and for a
|
|
144
|
+
* write to anything `graphNodeId` derives from, so a computed-backed collection
|
|
145
|
+
* is reached through the state write behind it. It never runs during a flush -
|
|
146
|
+
* the flush's own subscription pass is the single answer there - and never
|
|
147
|
+
* re-enters: a write made from inside an observer notifies nobody.
|
|
148
|
+
*
|
|
149
|
+
* `run` is handed no value and answers with none: it is a place to react, not a
|
|
150
|
+
* second subscription channel, and reads whatever it needs off the graph. The
|
|
151
|
+
* graph does not catch what it throws.
|
|
152
|
+
*/
|
|
153
|
+
type RuntimeGraphWriteObserver = {
|
|
154
|
+
readonly graphNodeId: string;
|
|
155
|
+
readonly path?: ReadonlyArray<string>;
|
|
156
|
+
/**
|
|
157
|
+
* Work ALREADY in flight that this observer needs settled before it can
|
|
158
|
+
* answer a write synchronously - a demand-loaded module, above all. It starts
|
|
159
|
+
* nothing, so a caller awaiting it adds no fetch to the gesture; it only
|
|
160
|
+
* stops the gesture racing a load its own wiring began. `undefined` is
|
|
161
|
+
* nothing to wait for, and costs no microtask.
|
|
162
|
+
*/
|
|
163
|
+
readonly settle?: () => Promise<void> | undefined;
|
|
164
|
+
readonly run: () => void;
|
|
165
|
+
};
|
|
132
166
|
type RuntimeGraph = {
|
|
133
|
-
readonly read: (graphNodeId: string, path?: ReadonlyArray<string>) => unknown;
|
|
167
|
+
readonly read: (graphNodeId: string, path?: ReadonlyArray<string>) => unknown;
|
|
168
|
+
/** Available only in debug-enabled builds (`__MARKLESS_DEBUG_ENABLED__`). */
|
|
134
169
|
readonly peekAsyncSnapshot?: (graphNodeId: string) => RuntimeGraphAsyncSnapshot | undefined;
|
|
135
170
|
readonly readShared: (definitionId: string, propertyName: string, path?: ReadonlyArray<string>) => unknown;
|
|
136
171
|
readonly writeShared: (write: RuntimeGraphSharedWrite) => boolean;
|
|
@@ -143,6 +178,18 @@ type RuntimeGraph = {
|
|
|
143
178
|
readonly call: (call: RuntimeGraphCall) => unknown;
|
|
144
179
|
readonly delete: (deletion: RuntimeGraphDelete) => boolean;
|
|
145
180
|
readonly subscribe: (subscription: RuntimeGraphSubscription) => () => void;
|
|
181
|
+
/**
|
|
182
|
+
* Optional so a facade over a subset of this contract stays a `RuntimeGraph`;
|
|
183
|
+
* a caller without it gets the flush-time answer it always had.
|
|
184
|
+
*/
|
|
185
|
+
readonly subscribeWrite?: (observer: RuntimeGraphWriteObserver) => () => void;
|
|
186
|
+
/**
|
|
187
|
+
* Settles what the write observers are already loading, so a write made after
|
|
188
|
+
* it is answered synchronously. `undefined` when nothing is in flight.
|
|
189
|
+
*/
|
|
190
|
+
readonly settleWriteObservers?: () => Promise<void> | undefined;
|
|
191
|
+
/** Whether a write is waiting on a flush that has not yet reached the journal. */
|
|
192
|
+
readonly hasPendingFlush?: () => boolean;
|
|
146
193
|
readonly subscribeJournal: (listener: DomJournalListener) => () => void;
|
|
147
194
|
readonly flush: () => Promise<void>;
|
|
148
195
|
readonly takeJournal: () => DomJournalEntry[];
|
|
@@ -260,15 +307,22 @@ type DerivedReconcileInternals = {
|
|
|
260
307
|
* they did before reconciliation existed.
|
|
261
308
|
*/
|
|
262
309
|
type DerivedReconcilePlane = {
|
|
263
|
-
/** Records the objects a state write mutated in place during this flush. */
|
|
264
|
-
readonly
|
|
265
|
-
|
|
266
|
-
readonly
|
|
267
|
-
|
|
268
|
-
readonly
|
|
310
|
+
/** Records the objects a state write mutated in place during this flush. */
|
|
311
|
+
readonly recordWrite: (graphNodeId: string, path: ReadonlyArray<string>) => void;
|
|
312
|
+
/** A dependency write invalidated this computed; its paths are not known yet. */
|
|
313
|
+
readonly invalidateComputed: (computed: RuntimeComputedNode) => void;
|
|
314
|
+
/** Reports the paths a just-recomputed value moved, and wakes their subscribers. */
|
|
315
|
+
readonly reconcileComputed: (computed: RuntimeComputedNode, previous: unknown) => void;
|
|
316
|
+
/** Commits a whole derived value onto a cell-backed computed node. */
|
|
317
|
+
readonly commitDerived: (write: RuntimeGraphWrite, path: ReadonlyArray<string>) => boolean;
|
|
318
|
+
/** Dirties the paths an async snapshot commit changed. */
|
|
319
|
+
readonly publishAsync: (node: RuntimeAsyncComputedNode, previous: RuntimeGraphAsyncSnapshot) => void;
|
|
320
|
+
/** Flush-pass start: recompute the dirty computeds something is subscribed to. */
|
|
321
|
+
readonly recomputeSubscribed: () => void;
|
|
322
|
+
/** Flush end: drop the per-flush record and mark the baselines it leaves stale. */
|
|
269
323
|
readonly settleBaselines: () => void;
|
|
270
324
|
};
|
|
271
325
|
type DerivedReconcilePlaneFactory = (internals: DerivedReconcileInternals) => DerivedReconcilePlane;
|
|
272
326
|
declare const createDerivedReconcilePlane: DerivedReconcilePlaneFactory;
|
|
273
327
|
//#endregion
|
|
274
|
-
export { RuntimeGraphUpdate as A, RuntimeGraphDelete as C, RuntimeGraphSharedPatchOperation as D, RuntimeGraphSharedPatch as E,
|
|
328
|
+
export { RuntimeGraphUpdate as A, RuntimeGraphDelete as C, RuntimeGraphSharedPatchOperation as D, RuntimeGraphSharedPatch as E, RuntimeGraphWriteObserver as M, createRuntimeGraph as N, RuntimeGraphSharedWrite as O, RuntimeGraphComputedDependencyNode as S, RuntimeGraphRead as T, RuntimeGraphAsyncSnapshot as _, RuntimeGraphReconcileKey as a, RuntimeGraphComputed as b, createDerivedReconcilePlane as c, samePath as d, DomJournalEntry as f, RuntimeGraphAsyncComputed as g, RuntimeGraph as h, DiffDerivedValueInput as i, RuntimeGraphWrite as j, RuntimeGraphSubscription as k, diffDerivedValue as l, DomJournalResult as m, DerivedReconcilePlane as n, RuntimeGraphReconcileOptions as o, DomJournalListener as p, DerivedReconcilePlaneFactory as r, WriteTouchedRecord as s, DerivedReconcileInternals as t, isDiffableContainer as u, RuntimeGraphCall as v, RuntimeGraphInput as w, RuntimeGraphComputedDependency as x, RuntimeGraphCell as y };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as RuntimeGraphReconcileKey, c as createDerivedReconcilePlane, d as samePath, i as DiffDerivedValueInput, l as diffDerivedValue, n as DerivedReconcilePlane, o as RuntimeGraphReconcileOptions, r as DerivedReconcilePlaneFactory, s as WriteTouchedRecord, t as DerivedReconcileInternals, u as isDiffableContainer } from "./graph-reconcile-
|
|
1
|
+
import { a as RuntimeGraphReconcileKey, c as createDerivedReconcilePlane, d as samePath, i as DiffDerivedValueInput, l as diffDerivedValue, n as DerivedReconcilePlane, o as RuntimeGraphReconcileOptions, r as DerivedReconcilePlaneFactory, s as WriteTouchedRecord, t as DerivedReconcileInternals, u as isDiffableContainer } from "./graph-reconcile-Cdf3iTu3.js";
|
|
2
2
|
export { DerivedReconcileInternals, DerivedReconcilePlane, DerivedReconcilePlaneFactory, DiffDerivedValueInput, RuntimeGraphReconcileKey, RuntimeGraphReconcileOptions, WriteTouchedRecord, createDerivedReconcilePlane, diffDerivedValue, isDiffableContainer, samePath };
|
package/dist/graph-reconcile.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ASYNC_SNAPSHOT_META_KEYS, u as readPath } from "./graph-async-
|
|
1
|
+
import { t as ASYNC_SNAPSHOT_META_KEYS, u as readPath } from "./graph-async-BOuUUffx.js";
|
|
2
2
|
//#region src/graph-reconcile.ts
|
|
3
3
|
const WHOLE_NODE = Object.freeze([Object.freeze([])]);
|
|
4
4
|
/**
|
|
@@ -102,7 +102,7 @@ function diffDerivedValue(input) {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
function walkObject(previous, next, path) {
|
|
105
|
-
for (const key of new Set([...Object.keys(previous), ...Object.keys(next)])) {
|
|
105
|
+
for (const key of /* @__PURE__ */ new Set([...Object.keys(previous), ...Object.keys(next)])) {
|
|
106
106
|
const keyPath = [...path, key];
|
|
107
107
|
const inPrevious = Object.prototype.hasOwnProperty.call(previous, key);
|
|
108
108
|
const inNext = Object.prototype.hasOwnProperty.call(next, key);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as readAsyncComputedNode, c as findLastSharedReturnProperty, d as writePath, i as invalidateAsyncComputed, l as pathsIntersect, n as createRuntimeAsyncComputedNodes, o as deletePath, r as demandAsyncComputed, s as dirtyPathForGraphWrite, u as readPath } from "./graph-async-
|
|
1
|
+
import { a as readAsyncComputedNode, c as findLastSharedReturnProperty, d as writePath, i as invalidateAsyncComputed, l as pathsIntersect, n as createRuntimeAsyncComputedNodes, o as deletePath, r as demandAsyncComputed, s as dirtyPathForGraphWrite, u as readPath } from "./graph-async-BOuUUffx.js";
|
|
2
2
|
//#region src/graph-collections.ts
|
|
3
3
|
function applyCollectionCall(target, method, args) {
|
|
4
4
|
if (!isSupportedCollectionTarget(target)) throw new TypeError(`Cannot call collection method "${method}" because the graph path is not an Array, Map, Set, or Date.`);
|
|
@@ -110,18 +110,24 @@ function markComputedDirty(input) {
|
|
|
110
110
|
graphNodeId: input.graphNodeId,
|
|
111
111
|
path: []
|
|
112
112
|
});
|
|
113
|
-
for (const dependent of input.computedNodes.values())
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
for (const dependent of input.computedNodes.values()) {
|
|
114
|
+
if (!dependent.compute) continue;
|
|
115
|
+
if (dependent.dependencies.some((dependency) => dependency.graphNodeId === input.graphNodeId)) markComputedDirty({
|
|
116
|
+
...input,
|
|
117
|
+
graphNodeId: dependent.graphNodeId
|
|
118
|
+
});
|
|
119
|
+
}
|
|
117
120
|
for (const dependent of input.asyncComputedNodes.values()) if (dependent.dependencies.some((dependency) => dependency.graphNodeId === input.graphNodeId)) input.invalidateAsyncComputed(dependent);
|
|
118
121
|
}
|
|
119
122
|
function markDirtyComputedDependencies(input) {
|
|
120
|
-
for (const computed of input.computedNodes.values())
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
for (const computed of input.computedNodes.values()) {
|
|
124
|
+
if (!computed.compute) continue;
|
|
125
|
+
if (computed.dependencies.some((dependency) => dependency.graphNodeId === input.graphNodeId && pathsIntersect(input.path, dependency.path ?? []))) markComputedDirty({
|
|
126
|
+
...input,
|
|
127
|
+
graphNodeId: computed.graphNodeId,
|
|
128
|
+
visited: /* @__PURE__ */ new Set()
|
|
129
|
+
});
|
|
130
|
+
}
|
|
125
131
|
for (const asyncComputed of input.asyncComputedNodes.values()) if (asyncComputed.dependencies.some((dependency) => dependency.graphNodeId === input.graphNodeId && pathsIntersect(input.path, dependency.path ?? []))) input.invalidateAsyncComputed(asyncComputed);
|
|
126
132
|
}
|
|
127
133
|
//#endregion
|
|
@@ -245,11 +251,13 @@ function createRuntimeGraph(input) {
|
|
|
245
251
|
const computedNodes = createRuntimeComputedNodes(input.computed);
|
|
246
252
|
const asyncComputedNodes = createRuntimeAsyncComputedNodes(input.asyncComputed);
|
|
247
253
|
const subscriptions = [];
|
|
254
|
+
const writeObservers = [];
|
|
248
255
|
const journalListeners = [];
|
|
249
256
|
const dirtyPaths = [];
|
|
250
257
|
const journal = [];
|
|
251
258
|
let flushScheduled = false;
|
|
252
259
|
let flushing = false;
|
|
260
|
+
let notifyingWrite = false;
|
|
253
261
|
let activeFlush;
|
|
254
262
|
for (const cell of input.cells) {
|
|
255
263
|
cells.set(cell.graphNodeId, cell.value);
|
|
@@ -290,6 +298,39 @@ function createRuntimeGraph(input) {
|
|
|
290
298
|
reconcile: plane,
|
|
291
299
|
invalidateAsyncComputed: invalidateAsyncComputed$1
|
|
292
300
|
});
|
|
301
|
+
notifyWriteObservers(graphNodeId, path);
|
|
302
|
+
};
|
|
303
|
+
/**
|
|
304
|
+
* Whether `graphNodeId` is derived, however deeply, from the written path.
|
|
305
|
+
*
|
|
306
|
+
* A computed collection carries no dependency of its own on the state a
|
|
307
|
+
* handler writes; the chain of `dependencies` is the only thing that says so,
|
|
308
|
+
* and with a reconcile plane installed the write dirties no path under the
|
|
309
|
+
* computed for a path test to find.
|
|
310
|
+
*/
|
|
311
|
+
const derivesFromWrite = (graphNodeId, write, seen) => {
|
|
312
|
+
if (seen.has(graphNodeId)) return false;
|
|
313
|
+
seen.add(graphNodeId);
|
|
314
|
+
const computed = computedNodes.get(graphNodeId);
|
|
315
|
+
if (!computed) return false;
|
|
316
|
+
for (const dependency of computed.dependencies) {
|
|
317
|
+
if (dependency.graphNodeId === write.graphNodeId && pathsIntersect(write.path, dependency.path ?? [])) return true;
|
|
318
|
+
if (derivesFromWrite(dependency.graphNodeId, write, seen)) return true;
|
|
319
|
+
}
|
|
320
|
+
return false;
|
|
321
|
+
};
|
|
322
|
+
const notifyWriteObservers = (graphNodeId, path) => {
|
|
323
|
+
if (writeObservers.length === 0 || flushing || notifyingWrite) return;
|
|
324
|
+
const write = {
|
|
325
|
+
graphNodeId,
|
|
326
|
+
path
|
|
327
|
+
};
|
|
328
|
+
notifyingWrite = true;
|
|
329
|
+
try {
|
|
330
|
+
for (const observer of writeObservers.slice()) if (observer.graphNodeId === graphNodeId ? pathsIntersect(path, observer.path ?? []) : derivesFromWrite(observer.graphNodeId, write, /* @__PURE__ */ new Set())) observer.run();
|
|
331
|
+
} finally {
|
|
332
|
+
notifyingWrite = false;
|
|
333
|
+
}
|
|
293
334
|
};
|
|
294
335
|
const scheduleFlush = () => {
|
|
295
336
|
if (flushScheduled || flushing) return;
|
|
@@ -349,7 +390,8 @@ function createRuntimeGraph(input) {
|
|
|
349
390
|
const subscriptionPath = subscription.path ?? [];
|
|
350
391
|
if (!pending.some((path) => path.graphNodeId === subscription.graphNodeId && pathsIntersect(path.path, subscriptionPath)) || ranSubscriptions.has(subscription.id)) continue;
|
|
351
392
|
ranSubscriptions.add(subscription.id);
|
|
352
|
-
|
|
393
|
+
const entries = await subscription.run(readGraph(subscription.graphNodeId, subscriptionPath));
|
|
394
|
+
appendJournalResult(journal, entries);
|
|
353
395
|
}
|
|
354
396
|
}
|
|
355
397
|
} finally {
|
|
@@ -380,8 +422,9 @@ function createRuntimeGraph(input) {
|
|
|
380
422
|
write(write) {
|
|
381
423
|
const path = write.path ?? [];
|
|
382
424
|
const current = cells.get(write.graphNodeId);
|
|
383
|
-
|
|
384
|
-
if (
|
|
425
|
+
const seeded = cells.has(write.graphNodeId);
|
|
426
|
+
if (seeded && plane?.commitDerived(write, path)) return;
|
|
427
|
+
if (seeded && Object.is(readPath(current, path), write.value)) return;
|
|
385
428
|
cells.set(write.graphNodeId, writePath(current, path, write.value));
|
|
386
429
|
markDirtyPath(write.graphNodeId, dirtyPathForGraphWrite(current, path));
|
|
387
430
|
scheduleFlush();
|
|
@@ -425,6 +468,22 @@ function createRuntimeGraph(input) {
|
|
|
425
468
|
if (index >= 0) subscriptions.splice(index, 1);
|
|
426
469
|
};
|
|
427
470
|
},
|
|
471
|
+
subscribeWrite(observer) {
|
|
472
|
+
writeObservers.push(observer);
|
|
473
|
+
return () => {
|
|
474
|
+
const index = writeObservers.indexOf(observer);
|
|
475
|
+
if (index >= 0) writeObservers.splice(index, 1);
|
|
476
|
+
};
|
|
477
|
+
},
|
|
478
|
+
hasPendingFlush: () => flushScheduled || dirtyPaths.length > 0 || activeFlush !== void 0,
|
|
479
|
+
settleWriteObservers() {
|
|
480
|
+
let pending;
|
|
481
|
+
for (const observer of writeObservers) {
|
|
482
|
+
const settling = observer.settle?.();
|
|
483
|
+
if (settling) (pending ??= []).push(settling.catch(() => void 0));
|
|
484
|
+
}
|
|
485
|
+
return pending && Promise.all(pending).then(() => void 0);
|
|
486
|
+
},
|
|
428
487
|
subscribeJournal(listener) {
|
|
429
488
|
journalListeners.push(listener);
|
|
430
489
|
return () => {
|
package/dist/graph.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as RuntimeGraphUpdate, C as RuntimeGraphDelete, D as RuntimeGraphSharedPatchOperation, E as RuntimeGraphSharedPatch, M as createRuntimeGraph, O as RuntimeGraphSharedWrite, S as RuntimeGraphComputedDependencyNode, T as RuntimeGraphRead, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphComputed, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphWrite, k as RuntimeGraphSubscription, m as DomJournalResult, n as DerivedReconcilePlane, o as RuntimeGraphReconcileOptions, p as DomJournalListener, r as DerivedReconcilePlaneFactory, s as WriteTouchedRecord, t as DerivedReconcileInternals, v as RuntimeGraphCall, w as RuntimeGraphInput, x as RuntimeGraphComputedDependency, y as RuntimeGraphCell } from "./graph-reconcile-
|
|
2
|
-
export { DerivedReconcileInternals, DerivedReconcilePlane, DerivedReconcilePlaneFactory, DiffDerivedValueInput, DomJournalEntry, DomJournalListener, DomJournalResult, RuntimeGraph, RuntimeGraphAsyncComputed, RuntimeGraphAsyncSnapshot, RuntimeGraphCall, RuntimeGraphCell, RuntimeGraphComputed, RuntimeGraphComputedDependency, RuntimeGraphComputedDependencyNode, RuntimeGraphDelete, RuntimeGraphInput, RuntimeGraphRead, RuntimeGraphReconcileKey, RuntimeGraphReconcileOptions, RuntimeGraphSharedPatch, RuntimeGraphSharedPatchOperation, RuntimeGraphSharedWrite, RuntimeGraphSubscription, RuntimeGraphUpdate, RuntimeGraphWrite, WriteTouchedRecord, createRuntimeGraph };
|
|
1
|
+
import { A as RuntimeGraphUpdate, C as RuntimeGraphDelete, D as RuntimeGraphSharedPatchOperation, E as RuntimeGraphSharedPatch, M as RuntimeGraphWriteObserver, N as createRuntimeGraph, O as RuntimeGraphSharedWrite, S as RuntimeGraphComputedDependencyNode, T as RuntimeGraphRead, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphComputed, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphWrite, k as RuntimeGraphSubscription, m as DomJournalResult, n as DerivedReconcilePlane, o as RuntimeGraphReconcileOptions, p as DomJournalListener, r as DerivedReconcilePlaneFactory, s as WriteTouchedRecord, t as DerivedReconcileInternals, v as RuntimeGraphCall, w as RuntimeGraphInput, x as RuntimeGraphComputedDependency, y as RuntimeGraphCell } from "./graph-reconcile-Cdf3iTu3.js";
|
|
2
|
+
export { type DerivedReconcileInternals, type DerivedReconcilePlane, type DerivedReconcilePlaneFactory, type DiffDerivedValueInput, DomJournalEntry, DomJournalListener, DomJournalResult, RuntimeGraph, RuntimeGraphAsyncComputed, RuntimeGraphAsyncSnapshot, RuntimeGraphCall, RuntimeGraphCell, RuntimeGraphComputed, RuntimeGraphComputedDependency, RuntimeGraphComputedDependencyNode, RuntimeGraphDelete, RuntimeGraphInput, RuntimeGraphRead, type RuntimeGraphReconcileKey, type RuntimeGraphReconcileOptions, RuntimeGraphSharedPatch, RuntimeGraphSharedPatchOperation, RuntimeGraphSharedWrite, RuntimeGraphSubscription, RuntimeGraphUpdate, RuntimeGraphWrite, RuntimeGraphWriteObserver, type WriteTouchedRecord, createRuntimeGraph };
|
package/dist/graph.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createRuntimeGraph } from "./graph-
|
|
1
|
+
import { t as createRuntimeGraph } from "./graph-rhGwAXyl.js";
|
|
2
2
|
export { createRuntimeGraph };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as RuntimeGraphUpdate, C as RuntimeGraphDelete, D as RuntimeGraphSharedPatchOperation, E as RuntimeGraphSharedPatch, M as createRuntimeGraph, O as RuntimeGraphSharedWrite, S as RuntimeGraphComputedDependencyNode, T as RuntimeGraphRead, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphComputed, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphWrite, k as RuntimeGraphSubscription, m as DomJournalResult, n as DerivedReconcilePlane, o as RuntimeGraphReconcileOptions, p as DomJournalListener, r as DerivedReconcilePlaneFactory, s as WriteTouchedRecord, t as DerivedReconcileInternals, v as RuntimeGraphCall, w as RuntimeGraphInput, x as RuntimeGraphComputedDependency, y as RuntimeGraphCell } from "./graph-reconcile-
|
|
2
|
-
export { DerivedReconcileInternals, DerivedReconcilePlane, DerivedReconcilePlaneFactory, DiffDerivedValueInput, DomJournalEntry, DomJournalListener, DomJournalResult, RuntimeGraph, RuntimeGraphAsyncComputed, RuntimeGraphAsyncSnapshot, RuntimeGraphCall, RuntimeGraphCell, RuntimeGraphComputed, RuntimeGraphComputedDependency, RuntimeGraphComputedDependencyNode, RuntimeGraphDelete, RuntimeGraphInput, RuntimeGraphRead, RuntimeGraphReconcileKey, RuntimeGraphReconcileOptions, RuntimeGraphSharedPatch, RuntimeGraphSharedPatchOperation, RuntimeGraphSharedWrite, RuntimeGraphSubscription, RuntimeGraphUpdate, RuntimeGraphWrite, WriteTouchedRecord, createRuntimeGraph };
|
|
1
|
+
import { A as RuntimeGraphUpdate, C as RuntimeGraphDelete, D as RuntimeGraphSharedPatchOperation, E as RuntimeGraphSharedPatch, M as RuntimeGraphWriteObserver, N as createRuntimeGraph, O as RuntimeGraphSharedWrite, S as RuntimeGraphComputedDependencyNode, T as RuntimeGraphRead, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphComputed, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphWrite, k as RuntimeGraphSubscription, m as DomJournalResult, n as DerivedReconcilePlane, o as RuntimeGraphReconcileOptions, p as DomJournalListener, r as DerivedReconcilePlaneFactory, s as WriteTouchedRecord, t as DerivedReconcileInternals, v as RuntimeGraphCall, w as RuntimeGraphInput, x as RuntimeGraphComputedDependency, y as RuntimeGraphCell } from "./graph-reconcile-Cdf3iTu3.js";
|
|
2
|
+
export { type DerivedReconcileInternals, type DerivedReconcilePlane, type DerivedReconcilePlaneFactory, type DiffDerivedValueInput, DomJournalEntry, DomJournalListener, DomJournalResult, RuntimeGraph, RuntimeGraphAsyncComputed, RuntimeGraphAsyncSnapshot, RuntimeGraphCall, RuntimeGraphCell, RuntimeGraphComputed, RuntimeGraphComputedDependency, RuntimeGraphComputedDependencyNode, RuntimeGraphDelete, RuntimeGraphInput, RuntimeGraphRead, type RuntimeGraphReconcileKey, type RuntimeGraphReconcileOptions, RuntimeGraphSharedPatch, RuntimeGraphSharedPatchOperation, RuntimeGraphSharedWrite, RuntimeGraphSubscription, RuntimeGraphUpdate, RuntimeGraphWrite, RuntimeGraphWriteObserver, type WriteTouchedRecord, createRuntimeGraph };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createRuntimeGraph } from "./graph-
|
|
1
|
+
import { t as createRuntimeGraph } from "./graph-rhGwAXyl.js";
|
|
2
2
|
export { createRuntimeGraph };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markless/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Markless state graph runtime: reads, writes, computed invalidation, flush journal.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@markless/serializer": "0.
|
|
32
|
+
"@markless/serializer": "0.5.0"
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist"
|