@contember/bindx 0.1.45 → 0.1.47
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/core/ActionDispatcher.d.ts +4 -1
- package/dist/core/ActionDispatcher.d.ts.map +1 -1
- package/dist/core/actions.d.ts +7 -1
- package/dist/core/actions.d.ts.map +1 -1
- package/dist/events/EventEmitter.d.ts +13 -1
- package/dist/events/EventEmitter.d.ts.map +1 -1
- package/dist/handles/BaseHandle.d.ts +14 -3
- package/dist/handles/BaseHandle.d.ts.map +1 -1
- package/dist/handles/EntityHandle.d.ts +14 -5
- package/dist/handles/EntityHandle.d.ts.map +1 -1
- package/dist/handles/FieldHandle.d.ts +11 -4
- package/dist/handles/FieldHandle.d.ts.map +1 -1
- package/dist/handles/HasManyListHandle.d.ts +36 -2
- package/dist/handles/HasManyListHandle.d.ts.map +1 -1
- package/dist/handles/HasOneHandle.d.ts +52 -9
- package/dist/handles/HasOneHandle.d.ts.map +1 -1
- package/dist/handles/PlaceholderHandle.d.ts +25 -13
- package/dist/handles/PlaceholderHandle.d.ts.map +1 -1
- package/dist/handles/index.d.ts +1 -1
- package/dist/handles/index.d.ts.map +1 -1
- package/dist/handles/proxyFactory.d.ts +7 -1
- package/dist/handles/proxyFactory.d.ts.map +1 -1
- package/dist/handles/types.d.ts +33 -0
- package/dist/handles/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/persistence/BatchPersister.d.ts +53 -37
- package/dist/persistence/BatchPersister.d.ts.map +1 -1
- package/dist/persistence/ChangeRegistry.d.ts +15 -0
- package/dist/persistence/ChangeRegistry.d.ts.map +1 -1
- package/dist/persistence/MutationCollector.d.ts +106 -3
- package/dist/persistence/MutationCollector.d.ts.map +1 -1
- package/dist/persistence/PersistExecution.d.ts +26 -0
- package/dist/persistence/PersistExecution.d.ts.map +1 -0
- package/dist/persistence/types.d.ts +8 -2
- package/dist/persistence/types.d.ts.map +1 -1
- package/dist/store/EntityMetaStore.d.ts +32 -10
- package/dist/store/EntityMetaStore.d.ts.map +1 -1
- package/dist/store/EntitySnapshotStore.d.ts +50 -3
- package/dist/store/EntitySnapshotStore.d.ts.map +1 -1
- package/dist/store/ErrorStore.d.ts +3 -2
- package/dist/store/ErrorStore.d.ts.map +1 -1
- package/dist/store/HasManyStore.d.ts +214 -0
- package/dist/store/HasManyStore.d.ts.map +1 -0
- package/dist/store/HasOneStore.d.ts +159 -0
- package/dist/store/HasOneStore.d.ts.map +1 -0
- package/dist/store/ReachabilityAnalyzer.d.ts +19 -0
- package/dist/store/ReachabilityAnalyzer.d.ts.map +1 -1
- package/dist/store/RekeyOrchestrator.d.ts +76 -0
- package/dist/store/RekeyOrchestrator.d.ts.map +1 -0
- package/dist/store/RelationEdgeIndex.d.ts +34 -0
- package/dist/store/RelationEdgeIndex.d.ts.map +1 -0
- package/dist/store/RelationStore.d.ts +74 -137
- package/dist/store/RelationStore.d.ts.map +1 -1
- package/dist/store/RootRegistry.d.ts +25 -4
- package/dist/store/RootRegistry.d.ts.map +1 -1
- package/dist/store/SnapshotStore.d.ts +137 -13
- package/dist/store/SnapshotStore.d.ts.map +1 -1
- package/dist/store/SubscriptionManager.d.ts +63 -14
- package/dist/store/SubscriptionManager.d.ts.map +1 -1
- package/dist/store/TouchedStore.d.ts +3 -2
- package/dist/store/TouchedStore.d.ts.map +1 -1
- package/dist/store/relationKey.d.ts +15 -0
- package/dist/store/relationKey.d.ts.map +1 -0
- package/dist/undo/UndoJournal.d.ts +133 -0
- package/dist/undo/UndoJournal.d.ts.map +1 -0
- package/dist/undo/UndoManager.d.ts +25 -82
- package/dist/undo/UndoManager.d.ts.map +1 -1
- package/dist/undo/UnrecordedWriteError.d.ts +16 -0
- package/dist/undo/UnrecordedWriteError.d.ts.map +1 -0
- package/dist/undo/index.d.ts +3 -1
- package/dist/undo/index.d.ts.map +1 -1
- package/dist/undo/rekeyJournalEntry.d.ts +20 -0
- package/dist/undo/rekeyJournalEntry.d.ts.map +1 -0
- package/dist/undo/types.d.ts +0 -48
- package/dist/undo/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/core/ActionDispatcher.ts +56 -36
- package/src/core/actions.ts +8 -1
- package/src/events/EventEmitter.ts +78 -24
- package/src/handles/BaseHandle.ts +19 -2
- package/src/handles/EntityHandle.ts +48 -17
- package/src/handles/FieldHandle.ts +36 -10
- package/src/handles/HasManyListHandle.ts +121 -17
- package/src/handles/HasOneHandle.ts +177 -44
- package/src/handles/PlaceholderHandle.ts +184 -36
- package/src/handles/index.ts +3 -0
- package/src/handles/proxyFactory.ts +27 -0
- package/src/handles/types.ts +39 -0
- package/src/index.ts +4 -4
- package/src/persistence/BatchPersister.ts +810 -446
- package/src/persistence/ChangeRegistry.ts +27 -3
- package/src/persistence/MutationCollector.ts +265 -31
- package/src/persistence/PersistExecution.ts +217 -0
- package/src/persistence/types.ts +8 -2
- package/src/store/EntityMetaStore.ts +89 -45
- package/src/store/EntitySnapshotStore.ts +102 -19
- package/src/store/ErrorStore.ts +6 -5
- package/src/store/HasManyStore.ts +810 -0
- package/src/store/HasOneStore.ts +454 -0
- package/src/store/ReachabilityAnalyzer.ts +37 -0
- package/src/store/RekeyOrchestrator.ts +123 -0
- package/src/store/RelationEdgeIndex.ts +79 -0
- package/src/store/RelationStore.ts +176 -725
- package/src/store/RootRegistry.ts +50 -8
- package/src/store/SnapshotStore.ts +572 -101
- package/src/store/SubscriptionManager.ts +122 -75
- package/src/store/TouchedStore.ts +5 -2
- package/src/store/relationKey.ts +20 -0
- package/src/undo/UndoJournal.ts +258 -0
- package/src/undo/UndoManager.ts +151 -281
- package/src/undo/UnrecordedWriteError.ts +23 -0
- package/src/undo/index.ts +8 -7
- package/src/undo/rekeyJournalEntry.ts +145 -0
- package/src/undo/types.ts +0 -58
- package/dist/core/actionClassification.d.ts +0 -48
- package/dist/core/actionClassification.d.ts.map +0 -1
- package/src/core/actionClassification.ts +0 -199
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { EntitySnapshot, LoadStatus } from './snapshots.js';
|
|
2
2
|
import type { FieldError } from '../errors/types.js';
|
|
3
3
|
import { type SnapshotVersionBumper } from './SubscriptionManager.js';
|
|
4
|
-
import { type HasManyRemovalType, type StoredHasManyState, type StoredRelationState } from './RelationStore.js';
|
|
4
|
+
import { type HasManyRemovalType, type RelationReconciliationResult, type SentHasManyDelta, type SentHasOneTransition, type StoredHasManyState, type StoredRelationState } from './RelationStore.js';
|
|
5
5
|
import { type EntityMeta } from './EntityMetaStore.js';
|
|
6
|
-
|
|
6
|
+
import type { Rekeyable } from './RekeyOrchestrator.js';
|
|
7
|
+
import type { UndoJournal, JournalTarget, JournalCellImage, EntityCellImage, RelationCellImage, HasManyCellImage, EditableWriteCounters } from '../undo/UndoJournal.js';
|
|
8
|
+
export type { HasManyRemovalType, RelationReconciliationResult, SentHasManyAddition, SentHasManyDelta, SentHasManyRemoval, SentHasOneTransition, StoredHasManyState, StoredRelationState, } from './RelationStore.js';
|
|
7
9
|
export type { EntityMeta } from './EntityMetaStore.js';
|
|
8
10
|
export { isTempId, isPlaceholderId, isPersistedId, generatePlaceholderId } from './entityId.js';
|
|
9
11
|
type Subscriber = () => void;
|
|
@@ -24,7 +26,7 @@ type Subscriber = () => void;
|
|
|
24
26
|
* - EntityMetaStore — entity metadata, load state, persisting, temp ID mapping
|
|
25
27
|
* - TouchedStore — field touched state tracking
|
|
26
28
|
*/
|
|
27
|
-
export declare class SnapshotStore implements SnapshotVersionBumper {
|
|
29
|
+
export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarget {
|
|
28
30
|
private readonly entitySnapshots;
|
|
29
31
|
private readonly subscriptions;
|
|
30
32
|
private readonly errors;
|
|
@@ -34,6 +36,7 @@ export declare class SnapshotStore implements SnapshotVersionBumper {
|
|
|
34
36
|
private readonly roots;
|
|
35
37
|
private readonly reachability;
|
|
36
38
|
private readonly dirtyTracker;
|
|
39
|
+
private readonly rekeyOrchestrator;
|
|
37
40
|
/**
|
|
38
41
|
* Tracks the last embedded data reference propagated from parent to child.
|
|
39
42
|
* Used to detect whether the parent was re-fetched (new reference) vs. stale
|
|
@@ -41,15 +44,47 @@ export declare class SnapshotStore implements SnapshotVersionBumper {
|
|
|
41
44
|
* Keyed by "parentType:parentId:fieldName".
|
|
42
45
|
*/
|
|
43
46
|
private readonly lastPropagatedData;
|
|
47
|
+
/**
|
|
48
|
+
* Optional write-journal. When set (by an attached UndoManager), mutating
|
|
49
|
+
* methods record editable-layer pre-images of the cells they touch so a gesture
|
|
50
|
+
* can be undone. Null ⇒ no undo tracking and the transaction helpers are no-ops.
|
|
51
|
+
*/
|
|
52
|
+
private journal;
|
|
44
53
|
constructor();
|
|
45
|
-
/**
|
|
46
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Attaches (or detaches) the write-journal. Called by UndoManager when it is
|
|
56
|
+
* wired to a dispatcher.
|
|
57
|
+
*/
|
|
58
|
+
setJournal(journal: UndoJournal | null): void;
|
|
59
|
+
clearJournal(journal: UndoJournal): void;
|
|
60
|
+
private recordExistingEntity;
|
|
61
|
+
/**
|
|
62
|
+
* Aggregates the sub-stores' editable-layer write counters into the three
|
|
63
|
+
* journal kinds. The "entity" kind fuses snapshot + meta + roots — the cells a
|
|
64
|
+
* single {@link recordEntity} pre-image captures together. Read by the journal's
|
|
65
|
+
* write-guard at each transaction boundary; a few integer adds, hot-path cheap.
|
|
66
|
+
*/
|
|
67
|
+
getEditableWriteCounters(): EditableWriteCounters;
|
|
68
|
+
/**
|
|
69
|
+
* Opens a journal transaction (re-entrant). All primary-store writes until the
|
|
70
|
+
* matching {@link commitTransaction} are captured as ONE undoable gesture.
|
|
71
|
+
*/
|
|
72
|
+
beginTransaction(): void;
|
|
73
|
+
commitTransaction(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Runs a gesture as a single undoable transaction. Used by handle operations
|
|
76
|
+
* (e.g. list add / has-one create) that write to the store outside the
|
|
77
|
+
* dispatcher, so their pre-create writes join the same undo entry.
|
|
78
|
+
*/
|
|
79
|
+
transaction<T>(fn: () => T): T;
|
|
47
80
|
private getEntityKey;
|
|
48
81
|
private getRelationKey;
|
|
49
82
|
/**
|
|
50
83
|
* Resolves an ID to its persisted ID if it has been rekeyed.
|
|
51
84
|
*/
|
|
52
|
-
|
|
85
|
+
resolveEntityId(entityType: string, id: string): string;
|
|
86
|
+
/** Attaches identity-keyed state to the store's single rekey fan-out. */
|
|
87
|
+
attachRekeyParticipant(participant: Rekeyable): void;
|
|
53
88
|
bumpEntitySnapshotVersion(key: string): void;
|
|
54
89
|
private notifyEntitySubscribers;
|
|
55
90
|
private notifyRelationSubscribers;
|
|
@@ -136,16 +171,32 @@ export declare class SnapshotStore implements SnapshotVersionBumper {
|
|
|
136
171
|
planHasManyConnection(parentType: string, parentId: string, fieldName: string, itemId: string, alias?: string): void;
|
|
137
172
|
getHasManyPlannedConnections(parentType: string, parentId: string, fieldName: string, alias?: string): Set<string> | undefined;
|
|
138
173
|
commitHasMany(parentType: string, parentId: string, fieldName: string, newServerIds: string[], alias?: string): void;
|
|
174
|
+
reconcileSentHasMany(parentType: string, parentId: string, fieldName: string, delta: SentHasManyDelta, alias?: string): RelationReconciliationResult;
|
|
139
175
|
resetHasMany(parentType: string, parentId: string, fieldName: string, alias?: string): void;
|
|
140
176
|
addToHasMany(parentType: string, parentId: string, fieldName: string, itemId: string, alias?: string): void;
|
|
141
177
|
connectExistingToHasMany(parentType: string, parentId: string, fieldName: string, itemId: string): void;
|
|
142
178
|
removeFromHasMany(parentType: string, parentId: string, fieldName: string, itemId: string, removalType: HasManyRemovalType, alias?: string): void;
|
|
143
179
|
moveInHasMany(parentType: string, parentId: string, fieldName: string, fromIndex: number, toIndex: number, alias?: string): void;
|
|
144
180
|
getHasManyOrderedIds(parentType: string, parentId: string, fieldName: string, alias?: string): string[];
|
|
181
|
+
getPresentationHasManyOrderedIds(parentType: string, parentId: string, fieldName: string, alias?: string): string[];
|
|
145
182
|
isHasManyItemCreated(parentType: string, parentId: string, fieldName: string, itemId: string, alias?: string): boolean;
|
|
146
183
|
getHasManyCreatedEntities(parentType: string, parentId: string, fieldName: string, alias?: string): Set<string> | undefined;
|
|
147
184
|
isPersisting(entityType: string, id: string): boolean;
|
|
148
|
-
setPersisting(entityType: string, id: string, isPersisting: boolean): void;
|
|
185
|
+
setPersisting(entityType: string, id: string, isPersisting: boolean, pessimistic?: boolean): void;
|
|
186
|
+
/**
|
|
187
|
+
* Returns the snapshot a consumer should DISPLAY for an entity.
|
|
188
|
+
*
|
|
189
|
+
* This equals the canonical {@link getEntitySnapshot} except while the entity
|
|
190
|
+
* is pessimistically in-flight, when it returns the server baseline (data ===
|
|
191
|
+
* serverData) WITHOUT mutating the store. The canonical snapshot stays dirty,
|
|
192
|
+
* so dirty tracking, mutation building, and retry are unaffected — only the
|
|
193
|
+
* presented value is the pre-persist server view.
|
|
194
|
+
*
|
|
195
|
+
* Inert until consumers route their display reads through it (see PR 4); a
|
|
196
|
+
* non-pessimistic entity is returned verbatim, so optimistic mode and the
|
|
197
|
+
* not-persisting case share this one path.
|
|
198
|
+
*/
|
|
199
|
+
getPresentationSnapshot<T extends object>(entityType: string, id: string): EntitySnapshot<T> | undefined;
|
|
149
200
|
getFieldErrors(entityType: string, id: string, fieldName: string): readonly FieldError[];
|
|
150
201
|
addFieldError(entityType: string, id: string, fieldName: string, error: FieldError): void;
|
|
151
202
|
clearFieldErrors(entityType: string, id: string, fieldName: string, source?: 'client' | 'server'): void;
|
|
@@ -165,21 +216,34 @@ export declare class SnapshotStore implements SnapshotVersionBumper {
|
|
|
165
216
|
clearEntityTouchedState(entityType: string, id: string): void;
|
|
166
217
|
getOrCreateRelation(parentType: string, parentId: string, fieldName: string, initial: Omit<StoredRelationState, 'version'>): StoredRelationState;
|
|
167
218
|
getRelation(parentType: string, parentId: string, fieldName: string): StoredRelationState | undefined;
|
|
168
|
-
|
|
219
|
+
getPresentationRelation(parentType: string, parentId: string, fieldName: string): StoredRelationState | undefined;
|
|
220
|
+
setRelation(parentType: string, parentId: string, fieldName: string, updates: Partial<Omit<StoredRelationState, 'version'>>, skipNotify?: boolean): void;
|
|
169
221
|
commitRelation(parentType: string, parentId: string, fieldName: string): void;
|
|
222
|
+
reconcileSentRelation(parentType: string, parentId: string, fieldName: string, transition: SentHasOneTransition): RelationReconciliationResult;
|
|
170
223
|
resetRelation(parentType: string, parentId: string, fieldName: string): void;
|
|
171
|
-
|
|
224
|
+
/**
|
|
225
|
+
* Commits every relation of an entity. Items listed in `pendingItems` (by relation
|
|
226
|
+
* key) were not sent in the persist and stay planned.
|
|
227
|
+
*/
|
|
228
|
+
commitAllRelations(entityType: string, entityId: string, pendingItems?: ReadonlyMap<string, ReadonlySet<string>>): void;
|
|
172
229
|
resetAllRelations(entityType: string, entityId: string): void;
|
|
173
|
-
getAllRelationsForEntity(entityType: string, entityId: string): Map<string, StoredRelationState>;
|
|
174
|
-
getAllHasManyForEntity(entityType: string, entityId: string): Map<string, StoredHasManyState>;
|
|
175
|
-
restoreHasManyState(parentType: string, parentId: string, fieldName: string, state: StoredHasManyState, alias?: string): void;
|
|
176
230
|
subscribeToEntity(entityType: string, id: string, callback: Subscriber): () => void;
|
|
177
231
|
subscribeToRelation(parentType: string, parentId: string, fieldName: string, callback: Subscriber): () => void;
|
|
178
232
|
subscribe(callback: Subscriber): () => void;
|
|
179
233
|
getVersion(): number;
|
|
180
234
|
notify(): void;
|
|
235
|
+
/**
|
|
236
|
+
* Anchors a child under a parent relation. Parent re-render notification is now
|
|
237
|
+
* DERIVED from the relation store's live edges (see
|
|
238
|
+
* {@link SubscriptionManager.getParentKeys}), so the only remaining effect is
|
|
239
|
+
* the reachability one: a child anchored by a parent relation is no longer a
|
|
240
|
+
* top-level root; its reachability flows through the parent. (No-op for server
|
|
241
|
+
* children that were never roots.)
|
|
242
|
+
*
|
|
243
|
+
* Callers (handles, the action dispatcher) keep calling this on connect so the
|
|
244
|
+
* root-unregister stays centralized in one place.
|
|
245
|
+
*/
|
|
181
246
|
registerParentChild(parentType: string, parentId: string, childType: string, childId: string): void;
|
|
182
|
-
unregisterParentChild(parentType: string, parentId: string, childType: string, childId: string): void;
|
|
183
247
|
exportPartialSnapshot(keys: {
|
|
184
248
|
entityKeys: string[];
|
|
185
249
|
relationKeys: string[];
|
|
@@ -196,6 +260,66 @@ export declare class SnapshotStore implements SnapshotVersionBumper {
|
|
|
196
260
|
hasManyStates: Map<string, StoredHasManyState>;
|
|
197
261
|
entityMetas: Map<string, EntityMeta>;
|
|
198
262
|
}): void;
|
|
263
|
+
/**
|
|
264
|
+
* Captures the editable-layer pre-image of an entity cell: the current snapshot
|
|
265
|
+
* (data + baseline), plus the meta and root membership needed to restore or
|
|
266
|
+
* re-create it. `present: false` means the entity did not exist — undo removes it.
|
|
267
|
+
*/
|
|
268
|
+
exportEntityCell(key: string): EntityCellImage;
|
|
269
|
+
exportRelationCell(key: string): RelationCellImage;
|
|
270
|
+
/**
|
|
271
|
+
* Live server-member ids of a has-many list by its raw relation key. Used by the
|
|
272
|
+
* journal's rekey to rebase a pre-image when a just-persisted create became a
|
|
273
|
+
* permanent member of the list (membership rebase for sealed creates).
|
|
274
|
+
*/
|
|
275
|
+
getLiveHasManyServerIds(relationKey: string): Set<string>;
|
|
276
|
+
exportHasManyCell(key: string): HasManyCellImage;
|
|
277
|
+
/**
|
|
278
|
+
* Entry-closure export: starting from the given seed ids, walks and exports the
|
|
279
|
+
* entity + owned-relation cell images of every created, currently-unreachable
|
|
280
|
+
* subtree — the exact `!existsOnServer && !reachable` set {@link sweepUnreachableCreated}
|
|
281
|
+
* may reclaim. Referenced children (has-one currentId, has-many members / planned
|
|
282
|
+
* additions) are pushed back on the worklist, so nested created grandchildren are
|
|
283
|
+
* captured transitively. Lets an undo restore a detached create even after a sweep.
|
|
284
|
+
*/
|
|
285
|
+
exportUnreachableCreatedSubgraph(seedIds: ReadonlySet<string>): JournalCellImage[];
|
|
286
|
+
/**
|
|
287
|
+
* Restores a set of cell pre-images through the write paths (so the edge index
|
|
288
|
+
* reconciles and the reachability cache invalidates). Order matters: present
|
|
289
|
+
* entities are restored/recreated first so relations can reference live targets,
|
|
290
|
+
* then present relations, then un-creates, then dropped relations.
|
|
291
|
+
*/
|
|
292
|
+
applyJournalImages(images: JournalCellImage[]): void;
|
|
293
|
+
private applyEntityImage;
|
|
294
|
+
private applyRelationImage;
|
|
295
|
+
/**
|
|
296
|
+
* Sum of the monotonic mutation counters of every sub-store {@link getAllDirtyEntities}
|
|
297
|
+
* reads. Strictly increasing, so an unchanged value proves no write could have
|
|
298
|
+
* changed the dirty set — the cache key {@link ChangeRegistry} memoizes the
|
|
299
|
+
* full-store scan on.
|
|
300
|
+
*
|
|
301
|
+
* Deliberately NOT derived from {@link getVersion} (the notification version):
|
|
302
|
+
* several writes change dirtiness without notifying — `createEntity` registers
|
|
303
|
+
* its root after its last notify, `registerParentChild` un-registers one,
|
|
304
|
+
* `commit/resetAllRelations` never notify, and `refreshServerData` can skip it —
|
|
305
|
+
* so a notification-keyed memo would serve a stale result. Counters bump inside
|
|
306
|
+
* the write itself and cannot be bypassed that way.
|
|
307
|
+
*
|
|
308
|
+
* The entity snapshot store contributes its data-write counter alone: it bumps
|
|
309
|
+
* on a superset of the writes `getMutationVersion()` covers.
|
|
310
|
+
*
|
|
311
|
+
* REQUIRES snapshot values to be replaced, never mutated in place.
|
|
312
|
+
* `createEntitySnapshot` freezes only the top level, so a nested object inside
|
|
313
|
+
* `data` (a rich-text JSON payload, say) stays writable. Editing one in place
|
|
314
|
+
* changes dirtiness without touching any counter, and the memo will serve the
|
|
315
|
+
* pre-edit answer — where the former unconditional scan happened to notice it on
|
|
316
|
+
* the next read. The store already implies this rule by freezing at all; the memo
|
|
317
|
+
* is what makes breaking it consequential.
|
|
318
|
+
*
|
|
319
|
+
* @internal Cache key for the dirty-scan memo. Monotonic and otherwise
|
|
320
|
+
* meaningless — the absolute value carries no consumer-facing information.
|
|
321
|
+
*/
|
|
322
|
+
getDirtyVersion(): number;
|
|
199
323
|
getAllDirtyEntities(): Array<{
|
|
200
324
|
entityType: string;
|
|
201
325
|
entityId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapshotStore.d.ts","sourceRoot":"","sources":["../../src/store/SnapshotStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SnapshotStore.d.ts","sourceRoot":"","sources":["../../src/store/SnapshotStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RekeyContext, Rekeyable } from './RekeyOrchestrator.js';
|
|
1
2
|
type Subscriber = () => void;
|
|
2
3
|
/**
|
|
3
4
|
* Callback interface for SubscriptionManager to request snapshot version bumps.
|
|
@@ -6,6 +7,15 @@ type Subscriber = () => void;
|
|
|
6
7
|
export interface SnapshotVersionBumper {
|
|
7
8
|
bumpEntitySnapshotVersion(key: string): void;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Resolves the parent entity keys that currently have a LIVE relation edge to a
|
|
12
|
+
* child, so a child-field change can propagate up to its parents. Implemented by
|
|
13
|
+
* the relation store (the single source of truth for relation membership); this
|
|
14
|
+
* interface keeps {@link SubscriptionManager} decoupled from its concrete type.
|
|
15
|
+
*/
|
|
16
|
+
export interface ParentKeyLookup {
|
|
17
|
+
getParentKeysForChild(childId: string): Set<string>;
|
|
18
|
+
}
|
|
9
19
|
/**
|
|
10
20
|
* Manages subscriptions for entity and relation changes.
|
|
11
21
|
*
|
|
@@ -13,22 +23,26 @@ export interface SnapshotVersionBumper {
|
|
|
13
23
|
* - Entity-level subscriptions
|
|
14
24
|
* - Relation-level subscriptions
|
|
15
25
|
* - Global subscriptions (any change)
|
|
16
|
-
* - Parent-child change propagation
|
|
26
|
+
* - Parent-child change propagation (derived from live relation edges)
|
|
17
27
|
* - Global version tracking for change detection
|
|
18
28
|
*/
|
|
19
|
-
export declare class SubscriptionManager {
|
|
29
|
+
export declare class SubscriptionManager implements Rekeyable {
|
|
20
30
|
/** Subscribers per entity key */
|
|
21
31
|
private readonly entitySubscribers;
|
|
22
32
|
/** Subscribers per relation key */
|
|
23
33
|
private readonly relationSubscribers;
|
|
24
34
|
/** Global subscribers (notified on any change) */
|
|
25
35
|
private readonly globalSubscribers;
|
|
26
|
-
/** Parent-child relationships: childKey -> Set of parentKeys */
|
|
27
|
-
private readonly childToParents;
|
|
28
36
|
/** Maps old keys → new keys after rekey, so unsubscribe closures can find migrated callbacks */
|
|
29
37
|
private readonly rekeyedKeys;
|
|
30
38
|
/** Global version number for change detection */
|
|
31
39
|
private globalVersion;
|
|
40
|
+
/**
|
|
41
|
+
* Resolves a child's parents from live relation edges. Injected after
|
|
42
|
+
* construction (the relation store and this manager are siblings under
|
|
43
|
+
* SnapshotStore) via {@link setParentKeyLookup}.
|
|
44
|
+
*/
|
|
45
|
+
private parentKeyLookup;
|
|
32
46
|
/**
|
|
33
47
|
* Resolves a key through the rekey redirect chain.
|
|
34
48
|
* The rekey() method collapses chains (A→C instead of A→B→C), so this should
|
|
@@ -61,22 +75,48 @@ export declare class SubscriptionManager {
|
|
|
61
75
|
*/
|
|
62
76
|
notify(): void;
|
|
63
77
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
78
|
+
* Notifies every registered subscriber — entity, relation and global.
|
|
79
|
+
*
|
|
80
|
+
* For store-wide events such as clear(), where every subscription's data is gone at once and
|
|
81
|
+
* there is no per-key change to notify from. Registrations are left intact: the subscribers
|
|
82
|
+
* belong to mounted components that must learn their entity is no longer there.
|
|
66
83
|
*/
|
|
67
|
-
|
|
84
|
+
notifyAll(): void;
|
|
68
85
|
/**
|
|
69
|
-
*
|
|
86
|
+
* Wires the live-edge parent lookup. Parent re-render propagation is derived
|
|
87
|
+
* from the relation store's edges rather than a separate registry, so there is
|
|
88
|
+
* one source of truth for the parent-child graph.
|
|
70
89
|
*/
|
|
71
|
-
|
|
90
|
+
setParentKeyLookup(lookup: ParentKeyLookup): void;
|
|
91
|
+
/**
|
|
92
|
+
* Derives the parent entity keys for a child entity key by reading the live
|
|
93
|
+
* relation edges via the injected lookup. The child's bare id is the part of
|
|
94
|
+
* the key after the first ':' ("entityType:id").
|
|
95
|
+
*
|
|
96
|
+
* The child's TYPE is intentionally dropped — {@link ParentKeyLookup} matches on
|
|
97
|
+
* the bare id, relying on the store-wide global-id-uniqueness invariant (see
|
|
98
|
+
* {@link RelationStore.getParentKeysForChild}).
|
|
99
|
+
*/
|
|
100
|
+
private getParentKeys;
|
|
72
101
|
/**
|
|
73
102
|
* Notifies entity subscribers and propagates changes to parents.
|
|
74
103
|
* The bumper callback is used to bump parent entity snapshot versions.
|
|
75
104
|
*/
|
|
76
|
-
notifyEntitySubscribers(key: string, bumper: SnapshotVersionBumper
|
|
105
|
+
notifyEntitySubscribers(key: string, bumper: SnapshotVersionBumper): void;
|
|
106
|
+
/**
|
|
107
|
+
* Walks the entity and its live ancestors. The global version is bumped once by the
|
|
108
|
+
* caller, before the first subscriber runs — a subscriber reading getVersion() from
|
|
109
|
+
* inside its callback must already see the new value.
|
|
110
|
+
*
|
|
111
|
+
* The walk is a transitive closure over live edges, so an entity many rows point at
|
|
112
|
+
* (a shared lookup entity whose own has-many is loaded) acts as a hub: a write in one
|
|
113
|
+
* row reaches every other row through it. That is the price of not knowing which part
|
|
114
|
+
* of the hub each row presents; a selection-aware edge index would be the fix.
|
|
115
|
+
*/
|
|
116
|
+
private notifyEntityAndParentSubscribers;
|
|
77
117
|
/**
|
|
78
|
-
* Notifies relation subscribers
|
|
79
|
-
* The bumper callback is used to bump
|
|
118
|
+
* Notifies relation subscribers, the owning entity, and its ancestors.
|
|
119
|
+
* The bumper callback is used to bump entity snapshot versions.
|
|
80
120
|
* The entityKey is the parent entity key derived from the relation key.
|
|
81
121
|
*/
|
|
82
122
|
notifyRelationSubscribers(key: string, entityKey: string, bumper: SnapshotVersionBumper): void;
|
|
@@ -95,11 +135,20 @@ export declare class SubscriptionManager {
|
|
|
95
135
|
*/
|
|
96
136
|
notifyGlobal(): void;
|
|
97
137
|
/**
|
|
98
|
-
* Moves
|
|
138
|
+
* Moves entity and relation subscriptions from oldKey to newKey.
|
|
99
139
|
* Also rekeys relation subscribers under oldKeyPrefix to newKeyPrefix.
|
|
100
140
|
* Registers redirects so unsubscribe closures can find migrated callbacks.
|
|
141
|
+
*
|
|
142
|
+
* Parent-child links are NOT migrated here — they are derived from the
|
|
143
|
+
* relation store's live edges, which migrate their own id references on rekey.
|
|
144
|
+
*/
|
|
145
|
+
rekey(ctx: RekeyContext): void;
|
|
146
|
+
/**
|
|
147
|
+
* Re-homes a subscriber set under a new key. The destination may already hold
|
|
148
|
+
* subscribers (a component mounted on the persisted id before the draft was rekeyed
|
|
149
|
+
* onto it); replacing the set would silently orphan them, so the two are merged.
|
|
101
150
|
*/
|
|
102
|
-
|
|
151
|
+
private moveSubscribers;
|
|
103
152
|
}
|
|
104
153
|
export {};
|
|
105
154
|
//# sourceMappingURL=SubscriptionManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/store/SubscriptionManager.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,MAAM,IAAI,CAAA;AAE5B;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACrC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5C;AAED
|
|
1
|
+
{"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/store/SubscriptionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAErE,KAAK,UAAU,GAAG,MAAM,IAAI,CAAA;AAE5B;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACrC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5C;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CACnD;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACpD,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqC;IAEvE,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqC;IAEzE,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAE1D,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IAExD,iDAAiD;IACjD,OAAO,CAAC,aAAa,CAAI;IAEzB;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAA6B;IAEpD;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAUlB;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,IAAI;IAahE;;;OAGG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,IAAI;IAalE;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,IAAI;IAO3C;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACH,MAAM,IAAI,IAAI;IAOd;;;;;;OAMG;IACH,SAAS,IAAI,IAAI;IAiBjB;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAIjD;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAUrB;;;OAGG;IACH,uBAAuB,CACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,qBAAqB,GAC3B,IAAI;IAKP;;;;;;;;;OASG;IACH,OAAO,CAAC,gCAAgC;IA2CxC;;;;OAIG;IACH,yBAAyB,CACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,GAC3B,IAAI;IAiBP;;;OAGG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IASrC;;;OAGG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IASvC;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAmC9B;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAYvB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RekeyContext, Rekeyable } from './RekeyOrchestrator.js';
|
|
1
2
|
/**
|
|
2
3
|
* Manages touched state for entity fields.
|
|
3
4
|
*
|
|
@@ -6,7 +7,7 @@
|
|
|
6
7
|
*
|
|
7
8
|
* Keys are pre-computed composite strings (e.g., "entityType:id:fieldName").
|
|
8
9
|
*/
|
|
9
|
-
export declare class TouchedStore {
|
|
10
|
+
export declare class TouchedStore implements Rekeyable {
|
|
10
11
|
/** Touched state keyed by "entityType:id:fieldName" */
|
|
11
12
|
private readonly touchedFields;
|
|
12
13
|
isFieldTouched(key: string): boolean;
|
|
@@ -22,7 +23,7 @@ export declare class TouchedStore {
|
|
|
22
23
|
/**
|
|
23
24
|
* Rekeys all touched fields from oldKeyPrefix to newKeyPrefix.
|
|
24
25
|
*/
|
|
25
|
-
rekey(
|
|
26
|
+
rekey(ctx: RekeyContext): void;
|
|
26
27
|
clear(): void;
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=TouchedStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchedStore.d.ts","sourceRoot":"","sources":["../../src/store/TouchedStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"TouchedStore.d.ts","sourceRoot":"","sources":["../../src/store/TouchedStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAErE;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC7C,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAE3D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIpC;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAOvD;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQvC;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAc9B,KAAK,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derives the parent composite key ("parentType:parentId") from a relation key
|
|
3
|
+
* ("parentType:parentId:fieldName") by dropping the trailing field segment.
|
|
4
|
+
* Entity ids and field names never contain ':', so the parent key is everything
|
|
5
|
+
* before the last separator.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parentKeyFromRelationKey(relationKey: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Derives the parent composite key ("parentType:parentId") from an owner key
|
|
10
|
+
* prefix ("parentType:parentId:") by dropping the trailing separator. Callers
|
|
11
|
+
* pass the owner prefix used for relation-key lookups; this maps it to the key
|
|
12
|
+
* the {@link RelationEdgeIndex} stores edges under.
|
|
13
|
+
*/
|
|
14
|
+
export declare function parentKeyFromOwnerPrefix(ownerPrefix: string): string;
|
|
15
|
+
//# sourceMappingURL=relationKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationKey.d.ts","sourceRoot":"","sources":["../../src/store/relationKey.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { EntitySnapshot } from '../store/snapshots.js';
|
|
2
|
+
import type { StoredRelationState, StoredHasManyState } from '../store/RelationStore.js';
|
|
3
|
+
import type { RekeyContext } from '../store/RekeyOrchestrator.js';
|
|
4
|
+
/**
|
|
5
|
+
* Write-journal for undo/redo.
|
|
6
|
+
*
|
|
7
|
+
* A gesture (one dispatch, or one handle operation) opens a transaction; every
|
|
8
|
+
* primary-store write made inside it records the EDITABLE-LAYER pre-image of the
|
|
9
|
+
* cell it touches (first-writer-wins per cell). On commit, the accumulated cells
|
|
10
|
+
* become one {@link JournalEntry} — exactly the keys the gesture actually wrote,
|
|
11
|
+
* each with the state to restore. Undo restores those pre-images through the
|
|
12
|
+
* store's write paths (so the edge index and reachability cache rebuild
|
|
13
|
+
* themselves); derived state is never journaled.
|
|
14
|
+
*
|
|
15
|
+
* The journal captures only the editable layer (and, for re-creates, the full
|
|
16
|
+
* snapshot). The server baseline (serverData / serverId / serverState / serverIds
|
|
17
|
+
* / existsOnServer) is spliced back from the LIVE state on restore, so undoing an
|
|
18
|
+
* already-persisted edit re-dirties it against the current server view instead of
|
|
19
|
+
* resurrecting a stale baseline.
|
|
20
|
+
*
|
|
21
|
+
* Entry-closure invariant: on commit each entry is closed over the created,
|
|
22
|
+
* currently-unreachable subgraph its relation/has-many pre-images detach, so undo
|
|
23
|
+
* works no matter what memory sweep reclaims that subgraph in between (see
|
|
24
|
+
* {@link JournalTarget.exportUnreachableCreatedSubgraph}).
|
|
25
|
+
*/
|
|
26
|
+
/** A captured cell, keyed by kind + composite store key. */
|
|
27
|
+
export interface EntityCellImage {
|
|
28
|
+
readonly kind: 'entity';
|
|
29
|
+
readonly key: string;
|
|
30
|
+
/** Whether the entity existed at capture time. false ⇒ undo removes it (un-create). */
|
|
31
|
+
readonly present: boolean;
|
|
32
|
+
readonly snapshot?: EntitySnapshot;
|
|
33
|
+
readonly existsOnServer?: boolean;
|
|
34
|
+
readonly isScheduledForDeletion?: boolean;
|
|
35
|
+
readonly isRoot?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface RelationCellImage {
|
|
38
|
+
readonly kind: 'relation';
|
|
39
|
+
readonly key: string;
|
|
40
|
+
readonly present: boolean;
|
|
41
|
+
readonly state?: StoredRelationState;
|
|
42
|
+
}
|
|
43
|
+
export interface HasManyCellImage {
|
|
44
|
+
readonly kind: 'hasMany';
|
|
45
|
+
readonly key: string;
|
|
46
|
+
readonly present: boolean;
|
|
47
|
+
readonly state?: StoredHasManyState;
|
|
48
|
+
}
|
|
49
|
+
export type JournalCellImage = EntityCellImage | RelationCellImage | HasManyCellImage;
|
|
50
|
+
/** The kind axis shared by cell images, editable-write counters, and the guard. */
|
|
51
|
+
export type JournalCellKind = JournalCellImage['kind'];
|
|
52
|
+
/**
|
|
53
|
+
* Monotonic editable-layer write counters, one per journal kind. Provided by the
|
|
54
|
+
* store so the journal can prove — at transaction close — that every editable
|
|
55
|
+
* write was preceded by a record call (see {@link UndoJournal.commit}). Counters
|
|
56
|
+
* only ever increase, so a per-transaction delta is `now - base`.
|
|
57
|
+
*/
|
|
58
|
+
export interface EditableWriteCounters {
|
|
59
|
+
readonly entity: number;
|
|
60
|
+
readonly relation: number;
|
|
61
|
+
readonly hasMany: number;
|
|
62
|
+
}
|
|
63
|
+
/** One undoable unit: the editable-layer pre-images of every cell a gesture touched. */
|
|
64
|
+
export interface JournalEntry {
|
|
65
|
+
readonly cells: JournalCellImage[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The store side of the journal: produces editable-layer pre-images for a cell and
|
|
69
|
+
* applies a set of pre-images back (through the write paths). Implemented by
|
|
70
|
+
* SnapshotStore, which alone knows the sub-stores.
|
|
71
|
+
*/
|
|
72
|
+
export interface JournalTarget {
|
|
73
|
+
exportEntityCell(key: string): EntityCellImage;
|
|
74
|
+
exportRelationCell(key: string): RelationCellImage;
|
|
75
|
+
exportHasManyCell(key: string): HasManyCellImage;
|
|
76
|
+
/**
|
|
77
|
+
* Images of every created, currently-unreachable entity (and its owned relation
|
|
78
|
+
* cells) reachable from the seed ids — the subgraph a memory sweep may reclaim
|
|
79
|
+
* before an undo needs it. Backs the journal's entry-closure invariant.
|
|
80
|
+
*/
|
|
81
|
+
exportUnreachableCreatedSubgraph(seedIds: ReadonlySet<string>): JournalCellImage[];
|
|
82
|
+
applyJournalImages(images: JournalCellImage[]): void;
|
|
83
|
+
/**
|
|
84
|
+
* Current editable-layer write counters across the sub-stores. Read once when a
|
|
85
|
+
* transaction opens and again when it closes to detect writes that skipped their
|
|
86
|
+
* record call. Must be O(1) — it is on the write hot path.
|
|
87
|
+
*/
|
|
88
|
+
getEditableWriteCounters(): EditableWriteCounters;
|
|
89
|
+
}
|
|
90
|
+
declare function cellRefKey(image: JournalCellImage): string;
|
|
91
|
+
export declare class UndoJournal {
|
|
92
|
+
private readonly target;
|
|
93
|
+
private readonly onCommit;
|
|
94
|
+
private readonly onRekey?;
|
|
95
|
+
private readonly onClear?;
|
|
96
|
+
private depth;
|
|
97
|
+
/** Cells recorded in the currently-open transaction, deduped first-writer-wins. */
|
|
98
|
+
private active;
|
|
99
|
+
/** Editable-write counters snapshotted when the outermost transaction opened. */
|
|
100
|
+
private baseCounters;
|
|
101
|
+
constructor(target: JournalTarget, onCommit: (entry: JournalEntry) => void, onRekey?: ((ctx: RekeyContext) => void) | undefined, onClear?: (() => void) | undefined);
|
|
102
|
+
get isRecording(): boolean;
|
|
103
|
+
begin(): void;
|
|
104
|
+
commit(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Coarse per-kind invariant check at transaction close: for each journal kind
|
|
107
|
+
* whose editable-write counter advanced during the transaction, at least one
|
|
108
|
+
* cell of that kind must have been recorded. A positive delta with no recorded
|
|
109
|
+
* cell means a mutating method wrote without recording — undo would restore
|
|
110
|
+
* stale/partial state — so fail loudly naming the offending kind(s).
|
|
111
|
+
*/
|
|
112
|
+
private assertAllWritesRecorded;
|
|
113
|
+
/**
|
|
114
|
+
* Folds the detached created subgraph into the entry (first-writer-wins) so undo
|
|
115
|
+
* survives a later sweep of that subgraph. Runs before onCommit so the manager's
|
|
116
|
+
* debounce/group merge already sees the enriched cells.
|
|
117
|
+
*/
|
|
118
|
+
private closeOverUnreachableCreated;
|
|
119
|
+
/** Records the pre-image of an entity cell (snapshot + meta + root membership). */
|
|
120
|
+
recordEntity(key: string): void;
|
|
121
|
+
recordRelation(key: string): void;
|
|
122
|
+
recordHasMany(key: string): void;
|
|
123
|
+
private record;
|
|
124
|
+
/** Captures the CURRENT image of each given cell — used to build the inverse entry. */
|
|
125
|
+
captureCurrent(cells: JournalCellImage[]): JournalCellImage[];
|
|
126
|
+
apply(cells: JournalCellImage[]): void;
|
|
127
|
+
/** Forwarded from the store when a temp id is rekeyed; lets the owner rewrite stacks. */
|
|
128
|
+
rekey(ctx: RekeyContext): void;
|
|
129
|
+
/** Forwarded from the store on a full clear; drops all owner history and any open gesture. */
|
|
130
|
+
clear(): void;
|
|
131
|
+
}
|
|
132
|
+
export { cellRefKey };
|
|
133
|
+
//# sourceMappingURL=UndoJournal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UndoJournal.d.ts","sourceRoot":"","sources":["../../src/undo/UndoJournal.ts"],"names":[],"mappings":"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"}
|