@markless/runtime 0.9.0 → 0.10.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-B3y0SeX_.js → graph-DO969AnQ.js} +100 -94
- package/dist/{graph-reconcile-lpU0ZJNo.d.ts → graph-reconcile-DTpmb2VG.d.ts} +9 -2
- package/dist/graph-reconcile.d.ts +1 -1
- package/dist/graph-reconcile.js +2 -2
- package/dist/graph.d.ts +1 -1
- package/dist/graph.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
|
@@ -99,56 +99,51 @@ function readComputedNode(computed, readGraph, path, reconcile) {
|
|
|
99
99
|
}
|
|
100
100
|
return readPath(computed.value, path);
|
|
101
101
|
}
|
|
102
|
-
function
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
for (const dependent of input.asyncComputedNodes.values()) if (dependent.dependencies.some((dependency) => dependency.graphNodeId === input.graphNodeId)) input.invalidateAsyncComputed(dependent);
|
|
102
|
+
function indexRuntimeDependents(computedNodes, asyncComputedNodes) {
|
|
103
|
+
const index = /* @__PURE__ */ new Map();
|
|
104
|
+
const add = (node, isAsync) => {
|
|
105
|
+
for (const dependency of node.dependencies) {
|
|
106
|
+
let readers = index.get(dependency.graphNodeId);
|
|
107
|
+
if (!readers) index.set(dependency.graphNodeId, readers = []);
|
|
108
|
+
readers.push([
|
|
109
|
+
node,
|
|
110
|
+
dependency.path ?? [],
|
|
111
|
+
isAsync
|
|
112
|
+
]);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
for (const computed of computedNodes.values()) if (computed.compute) add(computed, false);
|
|
116
|
+
for (const asyncComputed of asyncComputedNodes.values()) add(asyncComputed, true);
|
|
117
|
+
return index;
|
|
121
118
|
}
|
|
122
|
-
function markDirtyComputedDependencies(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
119
|
+
function markDirtyComputedDependencies(graphNodeId, path, dependents, dirtyPaths, reconcile, invalidateAsyncComputed) {
|
|
120
|
+
const visited = /* @__PURE__ */ new Set();
|
|
121
|
+
const invalidated = /* @__PURE__ */ new Set();
|
|
122
|
+
const mark = (sourceId, sourcePath) => {
|
|
123
|
+
for (const [node, dependencyPath, isAsync] of dependents.get(sourceId) ?? []) {
|
|
124
|
+
if (sourcePath && !pathsIntersect(sourcePath, dependencyPath)) continue;
|
|
125
|
+
if (isAsync) invalidated.add(node);
|
|
126
|
+
else if (!visited.has(node)) {
|
|
127
|
+
const computed = node;
|
|
128
|
+
visited.add(computed);
|
|
129
|
+
computed.dirty = true;
|
|
130
|
+
if (reconcile) reconcile.invalidateComputed(computed);
|
|
131
|
+
else dirtyPaths.push({
|
|
132
|
+
graphNodeId: computed.graphNodeId,
|
|
133
|
+
path: []
|
|
134
|
+
});
|
|
135
|
+
mark(computed.graphNodeId);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
mark(graphNodeId, path);
|
|
140
|
+
for (const asyncComputed of invalidated) invalidateAsyncComputed(asyncComputed);
|
|
132
141
|
}
|
|
133
142
|
//#endregion
|
|
134
143
|
//#region src/graph-scheduler.ts
|
|
135
144
|
function appendJournalResult(journal, result) {
|
|
136
|
-
if (
|
|
137
|
-
if (
|
|
138
|
-
journal.push(...result);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
journal.push(result);
|
|
142
|
-
}
|
|
143
|
-
function scheduleMicrotask(callback) {
|
|
144
|
-
if (typeof queueMicrotask === "function") {
|
|
145
|
-
queueMicrotask(callback);
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
Promise.resolve().then(callback);
|
|
149
|
-
}
|
|
150
|
-
function isDomJournalEntryArray(result) {
|
|
151
|
-
return Array.isArray(result);
|
|
145
|
+
if (Array.isArray(result)) journal.push(...result);
|
|
146
|
+
else if (result) journal.push(result);
|
|
152
147
|
}
|
|
153
148
|
//#endregion
|
|
154
149
|
//#region src/graph-shared.ts
|
|
@@ -250,7 +245,10 @@ function createRuntimeGraph(input) {
|
|
|
250
245
|
const readInitializers = /* @__PURE__ */ new Map();
|
|
251
246
|
const computedNodes = createRuntimeComputedNodes(input.computed);
|
|
252
247
|
const asyncComputedNodes = createRuntimeAsyncComputedNodes(input.asyncComputed);
|
|
253
|
-
|
|
248
|
+
let dependents = indexRuntimeDependents(computedNodes, asyncComputedNodes);
|
|
249
|
+
const subscriptionsByNode = /* @__PURE__ */ new Map();
|
|
250
|
+
const subscriptionOrder = /* @__PURE__ */ new Map();
|
|
251
|
+
let subscriptionSequence = 0;
|
|
254
252
|
const writeObservers = [];
|
|
255
253
|
const journalListeners = [];
|
|
256
254
|
const dirtyPaths = [];
|
|
@@ -275,11 +273,7 @@ function createRuntimeGraph(input) {
|
|
|
275
273
|
const current = cells.get(graphNodeId);
|
|
276
274
|
try {
|
|
277
275
|
const value = initialize();
|
|
278
|
-
if (!Object.is(current, value))
|
|
279
|
-
cells.set(graphNodeId, value);
|
|
280
|
-
markDirtyPath(graphNodeId, dirtyPathForGraphWrite(current, []));
|
|
281
|
-
scheduleFlush();
|
|
282
|
-
}
|
|
276
|
+
if (!Object.is(current, value)) commitCell(graphNodeId, [], value);
|
|
283
277
|
} catch {}
|
|
284
278
|
}
|
|
285
279
|
return readPath(cells.get(graphNodeId), path);
|
|
@@ -290,16 +284,14 @@ function createRuntimeGraph(input) {
|
|
|
290
284
|
path
|
|
291
285
|
});
|
|
292
286
|
plane?.recordWrite(graphNodeId, path);
|
|
293
|
-
markDirtyComputedDependencies(
|
|
294
|
-
graphNodeId,
|
|
295
|
-
path,
|
|
296
|
-
computedNodes,
|
|
297
|
-
asyncComputedNodes,
|
|
298
|
-
dirtyPaths,
|
|
299
|
-
reconcile: plane,
|
|
300
|
-
invalidateAsyncComputed: invalidateAsyncComputed$1
|
|
301
|
-
});
|
|
287
|
+
markDirtyComputedDependencies(graphNodeId, path, dependents, dirtyPaths, plane, invalidateAsyncComputed$1);
|
|
302
288
|
notifyWriteObservers(graphNodeId, path);
|
|
289
|
+
scheduleFlush();
|
|
290
|
+
};
|
|
291
|
+
const commitCell = (graphNodeId, path, value) => {
|
|
292
|
+
const current = cells.get(graphNodeId);
|
|
293
|
+
cells.set(graphNodeId, writePath(current, path, value));
|
|
294
|
+
markDirtyPath(graphNodeId, dirtyPathForGraphWrite(current, path));
|
|
303
295
|
};
|
|
304
296
|
/**
|
|
305
297
|
* Whether `graphNodeId` is derived, however deeply, from the written path.
|
|
@@ -326,6 +318,7 @@ function createRuntimeGraph(input) {
|
|
|
326
318
|
graphNodeId,
|
|
327
319
|
path
|
|
328
320
|
};
|
|
321
|
+
if (passWaitsOnCode()) return;
|
|
329
322
|
notifyingWrite = true;
|
|
330
323
|
try {
|
|
331
324
|
for (const observer of writeObservers.slice()) if (observer.graphNodeId === graphNodeId ? pathsIntersect(path, observer.path ?? []) : derivesFromWrite(observer.graphNodeId, write, /* @__PURE__ */ new Set())) observer.run();
|
|
@@ -333,23 +326,31 @@ function createRuntimeGraph(input) {
|
|
|
333
326
|
notifyingWrite = false;
|
|
334
327
|
}
|
|
335
328
|
};
|
|
329
|
+
const passWaitsOnCode = () => dirtyPaths.some(({ graphNodeId, path }) => subscriptionsByNode.get(graphNodeId)?.some((subscription) => subscription.ready?.() === false && pathsIntersect(path, subscription.path ?? [])));
|
|
336
330
|
const scheduleFlush = () => {
|
|
337
331
|
if (flushScheduled || flushing) return;
|
|
338
332
|
flushScheduled = true;
|
|
339
|
-
|
|
333
|
+
queueMicrotask(runScheduledFlush);
|
|
340
334
|
};
|
|
341
335
|
const runScheduledFlush = () => {
|
|
342
336
|
if (!flushHolds) flush();
|
|
343
337
|
};
|
|
344
|
-
const
|
|
338
|
+
const internals = {
|
|
345
339
|
cells,
|
|
346
340
|
computedNodes,
|
|
347
|
-
subscriptions,
|
|
348
341
|
dirtyPaths,
|
|
349
342
|
readGraph,
|
|
350
343
|
markDirtyPath,
|
|
351
|
-
scheduleFlush
|
|
352
|
-
|
|
344
|
+
scheduleFlush,
|
|
345
|
+
hasSubscription: (graphNodeId) => !!subscriptionsByNode.get(graphNodeId)?.length,
|
|
346
|
+
addSubscription(subscription) {
|
|
347
|
+
let bucket = subscriptionsByNode.get(subscription.graphNodeId);
|
|
348
|
+
if (!bucket) subscriptionsByNode.set(subscription.graphNodeId, bucket = []);
|
|
349
|
+
bucket.push(subscription);
|
|
350
|
+
subscriptionOrder.set(subscription, subscriptionSequence++);
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
const plane = input.reconcile?.(internals);
|
|
353
354
|
const asyncComputedInput = () => ({
|
|
354
355
|
computedNodes,
|
|
355
356
|
asyncComputedNodes,
|
|
@@ -376,7 +377,9 @@ function createRuntimeGraph(input) {
|
|
|
376
377
|
});
|
|
377
378
|
const flush = () => {
|
|
378
379
|
if (activeFlush) return activeFlush;
|
|
379
|
-
|
|
380
|
+
let settle;
|
|
381
|
+
activeFlush = new Promise((resolve) => settle = resolve);
|
|
382
|
+
settle(runFlush());
|
|
380
383
|
return activeFlush;
|
|
381
384
|
};
|
|
382
385
|
const runFlush = async () => {
|
|
@@ -389,11 +392,11 @@ function createRuntimeGraph(input) {
|
|
|
389
392
|
const pending = dirtyPaths.splice(0);
|
|
390
393
|
const ranSubscriptions = /* @__PURE__ */ new Set();
|
|
391
394
|
const commits = [];
|
|
392
|
-
for (const subscription of
|
|
393
|
-
|
|
394
|
-
if (!pending.some((path) => path.graphNodeId === subscription.graphNodeId && pathsIntersect(path.path, subscriptionPath)) || ranSubscriptions.has(subscription.id)) continue;
|
|
395
|
+
for (let floor = 0, ceiling; floor < (ceiling = subscriptionSequence); floor = ceiling) for (const subscription of dueSubscriptions(pending, floor, ceiling)) {
|
|
396
|
+
if (!subscriptionOrder.has(subscription) || ranSubscriptions.has(subscription.id)) continue;
|
|
395
397
|
ranSubscriptions.add(subscription.id);
|
|
396
|
-
const
|
|
398
|
+
const ran = subscription.run(readGraph(subscription.graphNodeId, subscription.path ?? []));
|
|
399
|
+
const entries = typeof ran?.then === "function" ? await ran : ran;
|
|
397
400
|
if (typeof entries === "function") commits.push(entries);
|
|
398
401
|
else appendJournalResult(journal, entries);
|
|
399
402
|
}
|
|
@@ -414,6 +417,14 @@ function createRuntimeGraph(input) {
|
|
|
414
417
|
if (dirtyPaths.length > 0) scheduleFlush();
|
|
415
418
|
}
|
|
416
419
|
};
|
|
420
|
+
const dueSubscriptions = (pending, floor, ceiling) => {
|
|
421
|
+
const due = /* @__PURE__ */ new Set();
|
|
422
|
+
for (const { graphNodeId, path } of pending) for (const subscription of subscriptionsByNode.get(graphNodeId) ?? []) {
|
|
423
|
+
const order = subscriptionOrder.get(subscription);
|
|
424
|
+
if (order >= floor && order < ceiling && pathsIntersect(path, subscription.path ?? [])) due.add(subscription);
|
|
425
|
+
}
|
|
426
|
+
return [...due].sort((left, right) => subscriptionOrder.get(left) - subscriptionOrder.get(right));
|
|
427
|
+
};
|
|
417
428
|
const notifyJournalListeners = async () => {
|
|
418
429
|
if (journalListeners.length === 0 || journal.length === 0) return;
|
|
419
430
|
const entries = journal.splice(0);
|
|
@@ -431,23 +442,14 @@ function createRuntimeGraph(input) {
|
|
|
431
442
|
write(write) {
|
|
432
443
|
const path = write.path ?? [];
|
|
433
444
|
const current = cells.get(write.graphNodeId);
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
if (seeded && Object.is(readPath(current, path), write.value)) return;
|
|
437
|
-
cells.set(write.graphNodeId, writePath(current, path, write.value));
|
|
438
|
-
markDirtyPath(write.graphNodeId, dirtyPathForGraphWrite(current, path));
|
|
439
|
-
scheduleFlush();
|
|
445
|
+
if (!cells.has(write.graphNodeId) || !(plane?.commitDerived(write, path) || Object.is(readPath(current, path), write.value))) commitCell(write.graphNodeId, path, write.value);
|
|
446
|
+
return write.value;
|
|
440
447
|
},
|
|
441
448
|
update(update) {
|
|
442
449
|
const path = update.path ?? [];
|
|
443
450
|
const currentValue = readPath(cells.get(update.graphNodeId), path);
|
|
444
451
|
const nextValue = update.update(currentValue);
|
|
445
|
-
if (!Object.is(currentValue, nextValue))
|
|
446
|
-
const current = cells.get(update.graphNodeId);
|
|
447
|
-
cells.set(update.graphNodeId, writePath(current, path, nextValue));
|
|
448
|
-
markDirtyPath(update.graphNodeId, dirtyPathForGraphWrite(current, path));
|
|
449
|
-
scheduleFlush();
|
|
450
|
-
}
|
|
452
|
+
if (!Object.is(currentValue, nextValue)) commitCell(update.graphNodeId, path, nextValue);
|
|
451
453
|
if (update.returnValue === "previous") return currentValue;
|
|
452
454
|
if (update.returnValue === "next") return nextValue;
|
|
453
455
|
},
|
|
@@ -456,25 +458,29 @@ function createRuntimeGraph(input) {
|
|
|
456
458
|
const target = readPath(cells.get(call.graphNodeId), path);
|
|
457
459
|
const beforeMutation = collectionMutationSnapshot(target, call.method, call.args ?? []);
|
|
458
460
|
const result = applyCollectionCall(target, call.method, call.args ?? []);
|
|
459
|
-
if (collectionCallMutated(call.method, result, beforeMutation))
|
|
460
|
-
markDirtyPath(call.graphNodeId, path);
|
|
461
|
-
scheduleFlush();
|
|
462
|
-
}
|
|
461
|
+
if (collectionCallMutated(call.method, result, beforeMutation)) markDirtyPath(call.graphNodeId, path);
|
|
463
462
|
return result;
|
|
464
463
|
},
|
|
465
464
|
delete(deletion) {
|
|
466
465
|
const outcome = deletePath(cells.get(deletion.graphNodeId), deletion.path);
|
|
467
|
-
if (outcome.mutated)
|
|
468
|
-
markDirtyPath(deletion.graphNodeId, deletion.path);
|
|
469
|
-
scheduleFlush();
|
|
470
|
-
}
|
|
466
|
+
if (outcome.mutated) markDirtyPath(deletion.graphNodeId, deletion.path);
|
|
471
467
|
return outcome.result;
|
|
472
468
|
},
|
|
469
|
+
defineAsyncComputed(asyncComputed) {
|
|
470
|
+
const id = asyncComputed.graphNodeId;
|
|
471
|
+
if (asyncComputedNodes.has(id) || cells.has(id)) return false;
|
|
472
|
+
asyncComputedNodes.set(id, createRuntimeAsyncComputedNodes([asyncComputed]).get(id));
|
|
473
|
+
dependents = indexRuntimeDependents(computedNodes, asyncComputedNodes);
|
|
474
|
+
return true;
|
|
475
|
+
},
|
|
473
476
|
subscribe(subscription) {
|
|
474
|
-
|
|
477
|
+
internals.addSubscription(subscription);
|
|
475
478
|
return () => {
|
|
476
|
-
const
|
|
477
|
-
|
|
479
|
+
const bucket = subscriptionsByNode.get(subscription.graphNodeId);
|
|
480
|
+
const index = bucket.indexOf(subscription);
|
|
481
|
+
if (index < 0) return;
|
|
482
|
+
bucket.splice(index, 1);
|
|
483
|
+
subscriptionOrder.delete(subscription);
|
|
478
484
|
};
|
|
479
485
|
},
|
|
480
486
|
subscribeWrite(observer) {
|
|
@@ -488,7 +494,7 @@ function createRuntimeGraph(input) {
|
|
|
488
494
|
holdFlush() {
|
|
489
495
|
flushHolds++;
|
|
490
496
|
return () => {
|
|
491
|
-
if (!--flushHolds && flushScheduled)
|
|
497
|
+
if (!--flushHolds && flushScheduled) queueMicrotask(runScheduledFlush);
|
|
492
498
|
};
|
|
493
499
|
},
|
|
494
500
|
settleWriteObservers() {
|
|
@@ -133,6 +133,8 @@ type RuntimeGraphSubscription = {
|
|
|
133
133
|
readonly graphNodeId: string;
|
|
134
134
|
readonly path?: ReadonlyArray<string>;
|
|
135
135
|
readonly run: (value: unknown) => DomJournalResult | RuntimeGraphCommit | void | Promise<DomJournalResult | RuntimeGraphCommit | void>;
|
|
136
|
+
/** False while `run` still has code to load; a write observer then leaves its DOM to the pass, so the task's writes land together. */
|
|
137
|
+
readonly ready?: () => boolean;
|
|
136
138
|
};
|
|
137
139
|
/**
|
|
138
140
|
* Told about a write the moment it lands, before the flush that write schedules.
|
|
@@ -175,11 +177,14 @@ type RuntimeGraph = {
|
|
|
175
177
|
readonly listSharedDefinitions: () => NonNullable<ProtocolStatePayload['sharedDefinitions']>;
|
|
176
178
|
readonly takeSharedPatches: () => RuntimeGraphSharedPatch[];
|
|
177
179
|
readonly applySharedPatch: (patch: RuntimeGraphSharedPatch) => boolean;
|
|
178
|
-
|
|
180
|
+
/** Answers the value written, as the assignment it lowers from does. */
|
|
181
|
+
readonly write: (write: RuntimeGraphWrite) => unknown;
|
|
179
182
|
readonly update: (update: RuntimeGraphUpdate) => unknown;
|
|
180
183
|
readonly call: (call: RuntimeGraphCall) => unknown;
|
|
181
184
|
readonly delete: (deletion: RuntimeGraphDelete) => boolean;
|
|
182
185
|
readonly subscribe: (subscription: RuntimeGraphSubscription) => () => void;
|
|
186
|
+
/** Adds an async computed a component rendered after the graph was built; false when the node already exists. */
|
|
187
|
+
readonly defineAsyncComputed?: (asyncComputed: RuntimeGraphAsyncComputed) => boolean;
|
|
183
188
|
/**
|
|
184
189
|
* Optional so a facade over a subset of this contract stays a `RuntimeGraph`;
|
|
185
190
|
* a caller without it gets the flush-time answer it always had.
|
|
@@ -298,7 +303,9 @@ declare function samePath(a: ReadonlyArray<string>, b: ReadonlyArray<string>): b
|
|
|
298
303
|
type DerivedReconcileInternals = {
|
|
299
304
|
readonly cells: Map<string, unknown>;
|
|
300
305
|
readonly computedNodes: ReadonlyMap<string, RuntimeComputedNode>;
|
|
301
|
-
readonly
|
|
306
|
+
readonly hasSubscription: (graphNodeId: string) => boolean;
|
|
307
|
+
/** Registers a subscription; a wrapper installed before the first subscribe sees each one. */
|
|
308
|
+
addSubscription: (subscription: RuntimeGraphSubscription) => void;
|
|
302
309
|
readonly dirtyPaths: DirtyPath[];
|
|
303
310
|
readonly readGraph: RuntimeGraphRead;
|
|
304
311
|
readonly markDirtyPath: (graphNodeId: string, path: ReadonlyArray<string>) => void;
|
|
@@ -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-DTpmb2VG.js";
|
|
2
2
|
export { DerivedReconcileInternals, DerivedReconcilePlane, DerivedReconcilePlaneFactory, DiffDerivedValueInput, RuntimeGraphReconcileKey, RuntimeGraphReconcileOptions, WriteTouchedRecord, createDerivedReconcilePlane, diffDerivedValue, isDiffableContainer, samePath };
|
package/dist/graph-reconcile.js
CHANGED
|
@@ -194,7 +194,7 @@ function samePath(a, b) {
|
|
|
194
194
|
return a.length === b.length && a.every((segment, index) => b[index] === segment);
|
|
195
195
|
}
|
|
196
196
|
const createDerivedReconcilePlane = (internals) => {
|
|
197
|
-
const { cells, computedNodes,
|
|
197
|
+
const { cells, computedNodes, hasSubscription, dirtyPaths } = internals;
|
|
198
198
|
const { readGraph, markDirtyPath, scheduleFlush } = internals;
|
|
199
199
|
const writeTouched = /* @__PURE__ */ new Map();
|
|
200
200
|
const dirtyComputed = /* @__PURE__ */ new Set();
|
|
@@ -260,7 +260,7 @@ const createDerivedReconcilePlane = (internals) => {
|
|
|
260
260
|
dirtyComputed.delete(computed);
|
|
261
261
|
continue;
|
|
262
262
|
}
|
|
263
|
-
if (!
|
|
263
|
+
if (!hasSubscription(computed.graphNodeId)) continue;
|
|
264
264
|
dirtyComputed.delete(computed);
|
|
265
265
|
readGraph(computed.graphNodeId);
|
|
266
266
|
}
|
package/dist/graph.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as RuntimeGraphSubscription, C as RuntimeGraphComputedDependencyNode, D as RuntimeGraphSharedPatch, E as RuntimeGraphRead, M as RuntimeGraphWrite, N as RuntimeGraphWriteObserver, O as RuntimeGraphSharedPatchOperation, P as createRuntimeGraph, S as RuntimeGraphComputedDependency, T as RuntimeGraphInput, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphCommit, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphUpdate, k as RuntimeGraphSharedWrite, 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 RuntimeGraphDelete, x as RuntimeGraphComputed, y as RuntimeGraphCell } from "./graph-reconcile-
|
|
1
|
+
import { A as RuntimeGraphSubscription, C as RuntimeGraphComputedDependencyNode, D as RuntimeGraphSharedPatch, E as RuntimeGraphRead, M as RuntimeGraphWrite, N as RuntimeGraphWriteObserver, O as RuntimeGraphSharedPatchOperation, P as createRuntimeGraph, S as RuntimeGraphComputedDependency, T as RuntimeGraphInput, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphCommit, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphUpdate, k as RuntimeGraphSharedWrite, 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 RuntimeGraphDelete, x as RuntimeGraphComputed, y as RuntimeGraphCell } from "./graph-reconcile-DTpmb2VG.js";
|
|
2
2
|
export { type DerivedReconcileInternals, type DerivedReconcilePlane, type DerivedReconcilePlaneFactory, type DiffDerivedValueInput, DomJournalEntry, DomJournalListener, DomJournalResult, RuntimeGraph, RuntimeGraphAsyncComputed, RuntimeGraphAsyncSnapshot, RuntimeGraphCall, RuntimeGraphCell, RuntimeGraphCommit, 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 +1 @@
|
|
|
1
|
-
export { t as createRuntimeGraph } from "./graph-
|
|
1
|
+
export { t as createRuntimeGraph } from "./graph-DO969AnQ.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as RuntimeGraphSubscription, C as RuntimeGraphComputedDependencyNode, D as RuntimeGraphSharedPatch, E as RuntimeGraphRead, M as RuntimeGraphWrite, N as RuntimeGraphWriteObserver, O as RuntimeGraphSharedPatchOperation, P as createRuntimeGraph, S as RuntimeGraphComputedDependency, T as RuntimeGraphInput, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphCommit, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphUpdate, k as RuntimeGraphSharedWrite, 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 RuntimeGraphDelete, x as RuntimeGraphComputed, y as RuntimeGraphCell } from "./graph-reconcile-
|
|
1
|
+
import { A as RuntimeGraphSubscription, C as RuntimeGraphComputedDependencyNode, D as RuntimeGraphSharedPatch, E as RuntimeGraphRead, M as RuntimeGraphWrite, N as RuntimeGraphWriteObserver, O as RuntimeGraphSharedPatchOperation, P as createRuntimeGraph, S as RuntimeGraphComputedDependency, T as RuntimeGraphInput, _ as RuntimeGraphAsyncSnapshot, a as RuntimeGraphReconcileKey, b as RuntimeGraphCommit, f as DomJournalEntry, g as RuntimeGraphAsyncComputed, h as RuntimeGraph, i as DiffDerivedValueInput, j as RuntimeGraphUpdate, k as RuntimeGraphSharedWrite, 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 RuntimeGraphDelete, x as RuntimeGraphComputed, y as RuntimeGraphCell } from "./graph-reconcile-DTpmb2VG.js";
|
|
2
2
|
export { type DerivedReconcileInternals, type DerivedReconcilePlane, type DerivedReconcilePlaneFactory, type DiffDerivedValueInput, DomJournalEntry, DomJournalListener, DomJournalResult, RuntimeGraph, RuntimeGraphAsyncComputed, RuntimeGraphAsyncSnapshot, RuntimeGraphCall, RuntimeGraphCell, RuntimeGraphCommit, 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 +1 @@
|
|
|
1
|
-
export { t as createRuntimeGraph } from "./graph-
|
|
1
|
+
export { t as createRuntimeGraph } from "./graph-DO969AnQ.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markless/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.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.10.0"
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist"
|