@contember/bindx 0.1.51 → 0.1.53
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.map +1 -1
- package/dist/core/EntityLoader.d.ts +7 -0
- package/dist/core/EntityLoader.d.ts.map +1 -1
- package/dist/core/actions.d.ts +1 -2
- package/dist/core/actions.d.ts.map +1 -1
- package/dist/dataview/types.d.ts +6 -6
- package/dist/dataview/types.d.ts.map +1 -1
- package/dist/handles/EntityHandle.d.ts.map +1 -1
- package/dist/handles/HasManyListHandle.d.ts +8 -0
- package/dist/handles/HasManyListHandle.d.ts.map +1 -1
- package/dist/handles/HasOneHandle.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/persistence/BatchPersister.d.ts.map +1 -1
- package/dist/store/HasManyStore.d.ts +94 -78
- package/dist/store/HasManyStore.d.ts.map +1 -1
- package/dist/store/RelationStore.d.ts +21 -12
- package/dist/store/RelationStore.d.ts.map +1 -1
- package/dist/store/ResponseOccurrenceIndex.d.ts +65 -0
- package/dist/store/ResponseOccurrenceIndex.d.ts.map +1 -0
- package/dist/store/SnapshotStore.d.ts +53 -15
- package/dist/store/SnapshotStore.d.ts.map +1 -1
- package/dist/store/SubscriptionManager.d.ts +19 -4
- package/dist/store/SubscriptionManager.d.ts.map +1 -1
- package/dist/store/hasManyState.d.ts +164 -0
- package/dist/store/hasManyState.d.ts.map +1 -0
- package/dist/store/relationKey.d.ts +11 -0
- package/dist/store/relationKey.d.ts.map +1 -1
- package/dist/undo/UndoJournal.d.ts.map +1 -1
- package/dist/undo/rekeyJournalEntry.d.ts +4 -4
- package/dist/undo/rekeyJournalEntry.d.ts.map +1 -1
- package/dist/utils/aliasGenerator.d.ts +1 -1
- package/dist/utils/aliasGenerator.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/core/ActionDispatcher.ts +0 -1
- package/src/core/EntityLoader.ts +13 -6
- package/src/core/actions.ts +1 -3
- package/src/dataview/types.ts +6 -6
- package/src/handles/EntityHandle.ts +11 -0
- package/src/handles/HasManyListHandle.ts +15 -17
- package/src/handles/HasOneHandle.ts +4 -2
- package/src/index.ts +6 -0
- package/src/persistence/BatchPersister.ts +15 -11
- package/src/store/HasManyStore.ts +312 -488
- package/src/store/RelationStore.ts +60 -24
- package/src/store/ResponseOccurrenceIndex.ts +224 -0
- package/src/store/SnapshotStore.ts +183 -109
- package/src/store/SubscriptionManager.ts +116 -58
- package/src/store/hasManyState.ts +408 -0
- package/src/store/relationKey.ts +17 -0
- package/src/undo/UndoJournal.ts +3 -1
- package/src/undo/UndoManager.ts +1 -1
- package/src/undo/rekeyJournalEntry.ts +31 -43
- package/src/utils/aliasGenerator.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationStore.d.ts","sourceRoot":"","sources":["../../src/store/RelationStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAEN,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"RelationStore.d.ts","sourceRoot":"","sources":["../../src/store/RelationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { SelectionMeta } from '../selection/types.js';
|
|
2
|
+
/** The schema knowledge the index needs: where a relation points and whether it is a list. */
|
|
3
|
+
export interface RelationTargetResolver {
|
|
4
|
+
getRelationTarget(entityType: string, fieldName: string): string | undefined;
|
|
5
|
+
isHasMany(entityType: string, fieldName: string): boolean;
|
|
6
|
+
}
|
|
7
|
+
type EntityRecord = Record<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Unites the occurrences of one entity within a single server response.
|
|
10
|
+
*
|
|
11
|
+
* One query can reach the same entity through several paths, each with its own
|
|
12
|
+
* sub-selection (`article.attachments` next to `article.sections.article.attachments`).
|
|
13
|
+
* Every occurrence is later written into the entity's snapshot, so without this
|
|
14
|
+
* the narrower one could replace fields the wider one carried. Occurrences of
|
|
15
|
+
* one response are equally fresh, so they are merged without any recency rule:
|
|
16
|
+
* each maps to the union of all of them, keyed by entity type and id. A scalar two
|
|
17
|
+
* occurrences disagree on (which one server read should not produce) takes the
|
|
18
|
+
* value of the occurrence visited last. The response is walked breadth first,
|
|
19
|
+
* relations in selection order and list items in list order, so the outcome
|
|
20
|
+
* follows from the response and the selection alone.
|
|
21
|
+
*
|
|
22
|
+
* The union is shallow. A relation value in it is one occurrence's raw value, and
|
|
23
|
+
* the related entities inside it resolve to their own unions when they are
|
|
24
|
+
* written, so relations inside relations unite level by level without rewriting
|
|
25
|
+
* the response.
|
|
26
|
+
*
|
|
27
|
+
* Reads never merge across responses: a later read replaces what an earlier one
|
|
28
|
+
* stored, as before.
|
|
29
|
+
*/
|
|
30
|
+
export declare class ResponseOccurrenceIndex {
|
|
31
|
+
private readonly unions;
|
|
32
|
+
/**
|
|
33
|
+
* Indexes a response read for `entityType` with `selection`. The type of every
|
|
34
|
+
* nested occurrence comes from the schema through the selection's field names;
|
|
35
|
+
* an occurrence whose type cannot be resolved is left out rather than matched
|
|
36
|
+
* by id alone.
|
|
37
|
+
*
|
|
38
|
+
* Occurrences of one type at one selection node carry the same fields, so
|
|
39
|
+
* their union changes nothing. Only types the selection reaches at two or more
|
|
40
|
+
* nodes are collected, only the relations leading to them are walked, and a
|
|
41
|
+
* selection with none skips the walk entirely (see {@link planOccurrenceWalk}).
|
|
42
|
+
*/
|
|
43
|
+
index(entityType: string, data: unknown, selection: SelectionMeta, schema: RelationTargetResolver): void;
|
|
44
|
+
private unite;
|
|
45
|
+
/** The union of every occurrence of this entity in its response, or the occurrence itself when it had no sibling. */
|
|
46
|
+
resolve(occurrence: EntityRecord): EntityRecord;
|
|
47
|
+
}
|
|
48
|
+
/** What walking a response needs from its selection. */
|
|
49
|
+
export interface OccurrenceWalkPlan {
|
|
50
|
+
/** Entity types the selection reaches at two or more nodes, such as `article` and `article.sections.article`. Only these are united. */
|
|
51
|
+
readonly repeatedTypes: ReadonlySet<string>;
|
|
52
|
+
/** Selection nodes on a path to a repeated type. The walk descends into no other. */
|
|
53
|
+
readonly nodesToWalk: ReadonlySet<SelectionMeta>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Plans the walk of one response. It depends only on the schema, the selection
|
|
57
|
+
* and its root type, and costs one pass over the selection tree, not over the
|
|
58
|
+
* response. It is computed per response rather than cached, because a selection
|
|
59
|
+
* can still grow after its first fetch (`mergeSelections` extends nested
|
|
60
|
+
* selections in place, and a fragment's selection is shared by every place
|
|
61
|
+
* that uses it).
|
|
62
|
+
*/
|
|
63
|
+
export declare function planOccurrenceWalk(entityType: string, selection: SelectionMeta, schema: RelationTargetResolver): OccurrenceWalkPlan;
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=ResponseOccurrenceIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponseOccurrenceIndex.d.ts","sourceRoot":"","sources":["../../src/store/ResponseOccurrenceIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,8FAA8F;AAC9F,MAAM,WAAW,sBAAsB;IACtC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC5E,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;CACzD;AAED,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAS3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;IAEvE;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAgBxG,OAAO,CAAC,KAAK;IAWb,qHAAqH;IACrH,OAAO,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY;CAG/C;AA8BD,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IAClC,wIAAwI;IACxI,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3C,qFAAqF;IACrF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;CAChD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,CAInI"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { EntitySnapshot, LoadStatus } from './snapshots.js';
|
|
2
2
|
import type { FieldError, FieldErrorFilter } from '../errors/types.js';
|
|
3
|
-
import {
|
|
4
|
-
import { type
|
|
3
|
+
import type { SelectionMeta } from '../selection/types.js';
|
|
4
|
+
import { type SnapshotVersionBumper, type SynchronousResult } from './SubscriptionManager.js';
|
|
5
|
+
import { type HasManyRelationProjection, type HasManyRemovalType, type HasManyViewMembership, type HasManyViewProjection, type RelationReconciliationResult, type SentHasManyDelta, type SentHasOneTransition, type StoredHasManyState, type StoredRelationState } from './RelationStore.js';
|
|
5
6
|
import { type EntityMeta } from './EntityMetaStore.js';
|
|
7
|
+
import { type RelationTargetResolver } from './ResponseOccurrenceIndex.js';
|
|
6
8
|
import type { Rekeyable } from './RekeyOrchestrator.js';
|
|
7
9
|
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';
|
|
10
|
+
export type { HasManyAdditionKind, HasManyRelationProjection, HasManyRemovalType, HasManyView, HasManyViewMembership, HasManyViewProjection, PlannedHasManyAddition, RelationReconciliationResult, SentHasManyAddition, SentHasManyDelta, SentHasManyRemoval, SentHasOneTransition, StoredHasManyState, StoredRelationState, } from './RelationStore.js';
|
|
9
11
|
export type { EntityMeta } from './EntityMetaStore.js';
|
|
10
12
|
export { isTempId, isPlaceholderId, isPersistedId, generatePlaceholderId } from './entityId.js';
|
|
11
13
|
type Subscriber = () => void;
|
|
@@ -44,6 +46,7 @@ export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarg
|
|
|
44
46
|
* Keyed by "parentType:parentId:fieldName".
|
|
45
47
|
*/
|
|
46
48
|
private readonly lastPropagatedData;
|
|
49
|
+
private readonly responseOccurrences;
|
|
47
50
|
/**
|
|
48
51
|
* Optional write-journal. When set (by an attached UndoManager), mutating
|
|
49
52
|
* methods record editable-layer pre-images of the cells they touch so a gesture
|
|
@@ -77,6 +80,8 @@ export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarg
|
|
|
77
80
|
* dispatcher, so their pre-create writes join the same undo entry.
|
|
78
81
|
*/
|
|
79
82
|
transaction<T>(fn: () => T): T;
|
|
83
|
+
/** Coalesces synchronous notifications, even on failure, without changing undo boundaries. */
|
|
84
|
+
batchNotifications<T>(fn: () => SynchronousResult<T>): T;
|
|
80
85
|
private getEntityKey;
|
|
81
86
|
private getRelationKey;
|
|
82
87
|
/**
|
|
@@ -110,6 +115,17 @@ export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarg
|
|
|
110
115
|
getEntitySnapshot<T extends object>(entityType: string, id: string): EntitySnapshot<T> | undefined;
|
|
111
116
|
hasEntity(entityType: string, id: string): boolean;
|
|
112
117
|
setEntityData<T extends object>(entityType: string, id: string, data: T, isServerData?: boolean, skipNotify?: boolean): EntitySnapshot<T>;
|
|
118
|
+
/**
|
|
119
|
+
* Unites the occurrences of each entity within one server response, so the
|
|
120
|
+
* narrower of two occurrences cannot replace fields the wider one carried.
|
|
121
|
+
* Call it before any of the response is written. See {@link ResponseOccurrenceIndex}.
|
|
122
|
+
*/
|
|
123
|
+
indexServerResponse(entityType: string, data: unknown, selection: SelectionMeta, schema: RelationTargetResolver): void;
|
|
124
|
+
/**
|
|
125
|
+
* What to write for an entity occurrence of a server response: the union of
|
|
126
|
+
* its occurrences in that response, or the occurrence itself.
|
|
127
|
+
*/
|
|
128
|
+
resolveServerOccurrence(occurrence: Record<string, unknown>): Record<string, unknown>;
|
|
113
129
|
/**
|
|
114
130
|
* Refreshes server data from a revalidation read while preserving the user's
|
|
115
131
|
* local dirty edits. See {@link EntitySnapshotStore.refreshServerData}.
|
|
@@ -165,11 +181,32 @@ export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarg
|
|
|
165
181
|
mapTempIdToPersistedId(entityType: string, tempId: string, persistedId: string): void;
|
|
166
182
|
getPersistedId(entityType: string, id: string): string | null;
|
|
167
183
|
isNewEntity(entityType: string, id: string): boolean;
|
|
168
|
-
|
|
169
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Declares what a view read under {@link alias} can leave out, so the store can tell
|
|
186
|
+
* a filtered view from one that merely orders or renames. Only the caller that
|
|
187
|
+
* selected the relation knows the params; the alias is a hash of them.
|
|
188
|
+
*/
|
|
189
|
+
declareHasManyViewMembership(entityType: string, fieldName: string, alias: string, membership: HasManyViewMembership): void;
|
|
190
|
+
/**
|
|
191
|
+
* Materializes the relation and one args-view of it, refreshing that view's
|
|
192
|
+
* server baseline when one is supplied.
|
|
193
|
+
*
|
|
194
|
+
* `alias` addresses a VIEW inside the relation state, never a key of its own:
|
|
195
|
+
* the state is always keyed by the schema field name, so everything that names
|
|
196
|
+
* the relation the way the schema and the server do finds it.
|
|
197
|
+
*/
|
|
198
|
+
getOrCreateHasMany(parentType: string, parentId: string, fieldName: string, serverIds?: string[], alias?: string): void;
|
|
199
|
+
/** The relation as persistence and dirty tracking see it — server baseline unioned across views. */
|
|
200
|
+
getHasMany(parentType: string, parentId: string, fieldName: string): HasManyRelationProjection | undefined;
|
|
201
|
+
/** Whether the relation carries writes the next persist would send. */
|
|
202
|
+
hasPendingHasManyWrites(parentType: string, parentId: string, fieldName: string): boolean;
|
|
203
|
+
/** Whether one view carries an order its user arranged rather than the default one. */
|
|
204
|
+
hasExplicitHasManyOrder(parentType: string, parentId: string, fieldName: string, alias?: string): boolean;
|
|
205
|
+
/** The relation as ONE mounted has-many handle sees it. */
|
|
206
|
+
getHasManyView(parentType: string, parentId: string, fieldName: string, alias?: string): HasManyViewProjection;
|
|
170
207
|
setHasManyServerIds(parentType: string, parentId: string, fieldName: string, serverIds: string[], alias?: string): void;
|
|
171
|
-
planHasManyRemoval(parentType: string, parentId: string, fieldName: string, itemId: string, type: HasManyRemovalType
|
|
172
|
-
getHasManyPlannedRemovals(parentType: string, parentId: string, fieldName: string
|
|
208
|
+
planHasManyRemoval(parentType: string, parentId: string, fieldName: string, itemId: string, type: HasManyRemovalType): void;
|
|
209
|
+
getHasManyPlannedRemovals(parentType: string, parentId: string, fieldName: string): Map<string, HasManyRemovalType> | undefined;
|
|
173
210
|
/**
|
|
174
211
|
* Whether some relation plans to delete {@link entityId} through its parent, i.e.
|
|
175
212
|
* the row goes away with the parent's update rather than with a mutation of its
|
|
@@ -177,18 +214,18 @@ export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarg
|
|
|
177
214
|
*/
|
|
178
215
|
isPlannedForDeleteByParent(entityId: string): boolean;
|
|
179
216
|
planHasManyConnection(parentType: string, parentId: string, fieldName: string, itemId: string, alias?: string): void;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
reconcileSentHasMany(parentType: string, parentId: string, fieldName: string, delta: SentHasManyDelta
|
|
183
|
-
resetHasMany(parentType: string, parentId: string, fieldName: string
|
|
217
|
+
/** The connections the next persist will send — relation-level, not per view. */
|
|
218
|
+
getHasManyPlannedConnections(parentType: string, parentId: string, fieldName: string): Set<string> | undefined;
|
|
219
|
+
reconcileSentHasMany(parentType: string, parentId: string, fieldName: string, delta: SentHasManyDelta): RelationReconciliationResult;
|
|
220
|
+
resetHasMany(parentType: string, parentId: string, fieldName: string): void;
|
|
184
221
|
addToHasMany(parentType: string, parentId: string, fieldName: string, itemId: string, alias?: string): void;
|
|
185
222
|
connectExistingToHasMany(parentType: string, parentId: string, fieldName: string, itemId: string): void;
|
|
186
|
-
removeFromHasMany(parentType: string, parentId: string, fieldName: string, itemId: string, removalType: HasManyRemovalType
|
|
223
|
+
removeFromHasMany(parentType: string, parentId: string, fieldName: string, itemId: string, removalType: HasManyRemovalType): void;
|
|
187
224
|
moveInHasMany(parentType: string, parentId: string, fieldName: string, fromIndex: number, toIndex: number, alias?: string): void;
|
|
188
225
|
getHasManyOrderedIds(parentType: string, parentId: string, fieldName: string, alias?: string): string[];
|
|
189
226
|
getPresentationHasManyOrderedIds(parentType: string, parentId: string, fieldName: string, alias?: string): string[];
|
|
190
|
-
isHasManyItemCreated(parentType: string, parentId: string, fieldName: string, itemId: string
|
|
191
|
-
getHasManyCreatedEntities(parentType: string, parentId: string, fieldName: string
|
|
227
|
+
isHasManyItemCreated(parentType: string, parentId: string, fieldName: string, itemId: string): boolean;
|
|
228
|
+
getHasManyCreatedEntities(parentType: string, parentId: string, fieldName: string): Set<string> | undefined;
|
|
192
229
|
isPersisting(entityType: string, id: string): boolean;
|
|
193
230
|
setPersisting(entityType: string, id: string, isPersisting: boolean, pessimistic?: boolean): void;
|
|
194
231
|
/**
|
|
@@ -280,7 +317,7 @@ export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarg
|
|
|
280
317
|
* journal's rekey to rebase a pre-image when a just-persisted create became a
|
|
281
318
|
* permanent member of the list (membership rebase for sealed creates).
|
|
282
319
|
*/
|
|
283
|
-
getLiveHasManyServerIds(relationKey: string):
|
|
320
|
+
getLiveHasManyServerIds(relationKey: string): ReadonlyMap<string, ReadonlySet<string>>;
|
|
284
321
|
exportHasManyCell(key: string): HasManyCellImage;
|
|
285
322
|
/**
|
|
286
323
|
* Entry-closure export: starting from the given seed ids, walks and exports the
|
|
@@ -298,6 +335,7 @@ export declare class SnapshotStore implements SnapshotVersionBumper, JournalTarg
|
|
|
298
335
|
* then present relations, then un-creates, then dropped relations.
|
|
299
336
|
*/
|
|
300
337
|
applyJournalImages(images: JournalCellImage[]): void;
|
|
338
|
+
private notifyRestoredCell;
|
|
301
339
|
private applyEntityImage;
|
|
302
340
|
private applyRelationImage;
|
|
303
341
|
/**
|
|
@@ -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,5 +1,7 @@
|
|
|
1
1
|
import type { RekeyContext, Rekeyable } from './RekeyOrchestrator.js';
|
|
2
2
|
type Subscriber = () => void;
|
|
3
|
+
/** Rejects async callbacks at compile time: a notification batch would end at the first `await`. */
|
|
4
|
+
export type SynchronousResult<T> = T extends PromiseLike<unknown> ? never : T;
|
|
3
5
|
/**
|
|
4
6
|
* Callback interface for SubscriptionManager to request snapshot version bumps.
|
|
5
7
|
* This decouples notification logic from entity snapshot storage.
|
|
@@ -15,6 +17,8 @@ export interface SnapshotVersionBumper {
|
|
|
15
17
|
*/
|
|
16
18
|
export interface ParentKeyLookup {
|
|
17
19
|
getParentKeysForChild(childId: string): Set<string>;
|
|
20
|
+
/** Increases on every relation write, so an unchanged value proves the edges are unchanged. */
|
|
21
|
+
getMutationVersion(): number;
|
|
18
22
|
}
|
|
19
23
|
/**
|
|
20
24
|
* Manages subscriptions for entity and relation changes.
|
|
@@ -37,6 +41,17 @@ export declare class SubscriptionManager implements Rekeyable {
|
|
|
37
41
|
private readonly rekeyedKeys;
|
|
38
42
|
/** Global version number for change detection */
|
|
39
43
|
private globalVersion;
|
|
44
|
+
private notificationBatchDepth;
|
|
45
|
+
private pendingEntities;
|
|
46
|
+
private pendingRelations;
|
|
47
|
+
private pendingGlobal;
|
|
48
|
+
/** Keys the current batch has already walked; valid only while the relation edges are unchanged. */
|
|
49
|
+
private readonly batchWalkedKeys;
|
|
50
|
+
private batchWalkedEdgeVersion;
|
|
51
|
+
/** Versions advance immediately; callbacks observe the completed synchronous batch. */
|
|
52
|
+
batchNotifications<T>(fn: () => SynchronousResult<T>): T;
|
|
53
|
+
private flushNotifications;
|
|
54
|
+
private notifyGlobalSubscribers;
|
|
40
55
|
/**
|
|
41
56
|
* Resolves a child's parents from live relation edges. Injected after
|
|
42
57
|
* construction (the relation store and this manager are siblings under
|
|
@@ -103,6 +118,8 @@ export declare class SubscriptionManager implements Rekeyable {
|
|
|
103
118
|
* The bumper callback is used to bump parent entity snapshot versions.
|
|
104
119
|
*/
|
|
105
120
|
notifyEntitySubscribers(key: string, bumper: SnapshotVersionBumper): void;
|
|
121
|
+
/** A batch shares one walked set, so rows under a common hub walk it once instead of once per row. */
|
|
122
|
+
private getWalkedKeys;
|
|
106
123
|
/**
|
|
107
124
|
* Walks the entity and its live ancestors. The global version is bumped once by the
|
|
108
125
|
* caller, before the first subscriber runs — a subscriber reading getVersion() from
|
|
@@ -130,10 +147,6 @@ export declare class SubscriptionManager implements Rekeyable {
|
|
|
130
147
|
* Used during batch imports (e.g., undo/redo).
|
|
131
148
|
*/
|
|
132
149
|
notifyRelationDirect(key: string): void;
|
|
133
|
-
/**
|
|
134
|
-
* Bumps global version and notifies global subscribers.
|
|
135
|
-
*/
|
|
136
|
-
notifyGlobal(): void;
|
|
137
150
|
/**
|
|
138
151
|
* Moves entity and relation subscriptions from oldKey to newKey.
|
|
139
152
|
* Also rekeys relation subscribers under oldKeyPrefix to newKeyPrefix.
|
|
@@ -143,6 +156,8 @@ export declare class SubscriptionManager implements Rekeyable {
|
|
|
143
156
|
* relation store's live edges, which migrate their own id references on rekey.
|
|
144
157
|
*/
|
|
145
158
|
rekey(ctx: RekeyContext): void;
|
|
159
|
+
/** Queued keys follow their subscribers, so a flush never reads the long-lived redirect map. */
|
|
160
|
+
private movePendingNotifications;
|
|
146
161
|
/**
|
|
147
162
|
* Re-homes a subscriber set under a new key. The destination may already hold
|
|
148
163
|
* subscribers (a component mounted on the persisted id before the draft was rekeyed
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/store/SubscriptionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The has-many state algebra: the stored shape plus every pure function over it.
|
|
3
|
+
*
|
|
4
|
+
* Separated from {@link HasManyStore}, which owns the keyed map, the write
|
|
5
|
+
* chokepoint and the three indexes. Nothing here touches the store's state.
|
|
6
|
+
*
|
|
7
|
+
* ## Reads are per view, writes are per relation
|
|
8
|
+
*
|
|
9
|
+
* A has-many selected with params (filter/orderBy/limit/offset) is fetched under an
|
|
10
|
+
* auto-generated alias (`tags_a7x9k2`), and several such VIEWS of one relation can be
|
|
11
|
+
* mounted at once. What the server returned differs per view, so {@link HasManyView}
|
|
12
|
+
* is keyed by alias. The pending mutations do NOT: the backend has one `tags` relation
|
|
13
|
+
* and one mutation input for it, so `plannedAdditions` / `plannedRemovals` live at the
|
|
14
|
+
* relation level and the state is keyed by the SCHEMA FIELD NAME alone.
|
|
15
|
+
*
|
|
16
|
+
* The two directions are deliberately asymmetric, because subset-closure only holds
|
|
17
|
+
* one way:
|
|
18
|
+
*
|
|
19
|
+
* - A **removal** says the item is no longer a member of the relation. Every view is
|
|
20
|
+
* a subset of the relation, so the item is hidden in all of them.
|
|
21
|
+
* - An **addition** says the item is a member of the relation, which does not settle
|
|
22
|
+
* whether it belongs in a *filtered* view — the client cannot evaluate the filter.
|
|
23
|
+
* So an addition renders in the views it was made in ({@link PlannedHasManyAddition.origins})
|
|
24
|
+
* plus every view that cannot exclude anything ({@link HasManyView.membership} `'total'`).
|
|
25
|
+
*/
|
|
26
|
+
export type ReconciliationResult = 'applied' | 'conflict';
|
|
27
|
+
export declare function setsEqual<T>(a: Set<T>, b: Set<T>): boolean;
|
|
28
|
+
export declare function arraysEqual(a: string[], b: string[]): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Removal type for has-many items
|
|
31
|
+
*/
|
|
32
|
+
export type HasManyRemovalType = 'disconnect' | 'delete';
|
|
33
|
+
/**
|
|
34
|
+
* Kind of a planned has-many addition:
|
|
35
|
+
* - 'created': a newly created entity (via add())
|
|
36
|
+
* - 'connected': an existing persisted entity being connected (via connect())
|
|
37
|
+
*/
|
|
38
|
+
export type HasManyAdditionKind = 'created' | 'connected';
|
|
39
|
+
/**
|
|
40
|
+
* Whether a view's query args can exclude a member of the relation.
|
|
41
|
+
* - 'total': no filter/limit/offset, so every member belongs in this view.
|
|
42
|
+
* - 'partial': the args may exclude members and the client cannot evaluate them.
|
|
43
|
+
*/
|
|
44
|
+
export type HasManyViewMembership = 'total' | 'partial';
|
|
45
|
+
/** What the server returned for ONE args-view of the relation, plus its local order. */
|
|
46
|
+
export interface HasManyView {
|
|
47
|
+
/** IDs of items the server returned for this view's args */
|
|
48
|
+
serverIds: Set<string>;
|
|
49
|
+
/** Explicit ordered list of item IDs, null means use the view's default order */
|
|
50
|
+
orderedIds: string[] | null;
|
|
51
|
+
membership: HasManyViewMembership;
|
|
52
|
+
}
|
|
53
|
+
export interface PlannedHasManyAddition {
|
|
54
|
+
kind: HasManyAdditionKind;
|
|
55
|
+
/**
|
|
56
|
+
* Aliases of the views the addition was made in — never empty. Presentation only:
|
|
57
|
+
* it never affects what is sent. A `connect()` of the same id can legitimately
|
|
58
|
+
* arrive from two views, and both are entitled to show it, hence a set.
|
|
59
|
+
*/
|
|
60
|
+
origins: Set<string>;
|
|
61
|
+
}
|
|
62
|
+
export interface SentHasManyAddition {
|
|
63
|
+
itemId: string;
|
|
64
|
+
kind: HasManyAdditionKind;
|
|
65
|
+
}
|
|
66
|
+
export interface SentHasManyRemoval {
|
|
67
|
+
itemId: string;
|
|
68
|
+
type: HasManyRemovalType;
|
|
69
|
+
}
|
|
70
|
+
export interface SentHasManyDelta {
|
|
71
|
+
additions: readonly SentHasManyAddition[];
|
|
72
|
+
removals: readonly SentHasManyRemoval[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Has-many relation state stored in SnapshotStore, keyed by
|
|
76
|
+
* "parentType:parentId:fieldName" — the schema field name, never an alias.
|
|
77
|
+
*/
|
|
78
|
+
export interface StoredHasManyState {
|
|
79
|
+
/** Per-args-view server data, keyed by alias; the unparameterized view uses the field name. */
|
|
80
|
+
views: Map<string, HasManyView>;
|
|
81
|
+
/** Planned removals (disconnect or delete) keyed by entity ID. Relation-level. */
|
|
82
|
+
plannedRemovals: Map<string, HasManyRemovalType>;
|
|
83
|
+
/**
|
|
84
|
+
* Planned additions keyed by entity ID. Relation-level: these are exactly the
|
|
85
|
+
* operations the next persist will send. The entries whose kind is 'created' are
|
|
86
|
+
* exactly the created entities, so the "created ⊆ connections" invariant is structural.
|
|
87
|
+
*/
|
|
88
|
+
plannedAdditions: Map<string, PlannedHasManyAddition>;
|
|
89
|
+
version: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* What every consumer that names the relation the way the schema and the server do
|
|
93
|
+
* sees: persistence, dirty tracking, error paths. Views are not its business, so the
|
|
94
|
+
* baseline it reads is the union across them.
|
|
95
|
+
*/
|
|
96
|
+
export interface HasManyRelationProjection {
|
|
97
|
+
serverIds: Set<string>;
|
|
98
|
+
plannedRemovals: Map<string, HasManyRemovalType>;
|
|
99
|
+
plannedAdditions: Map<string, HasManyAdditionKind>;
|
|
100
|
+
version: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* What is this view's own, as opposed to the relation's: the server rows its args
|
|
104
|
+
* returned and the order its user arranged. The pending writes are not here — they
|
|
105
|
+
* belong to the relation, so consumers read {@link HasManyRelationProjection}.
|
|
106
|
+
*/
|
|
107
|
+
export interface HasManyViewProjection {
|
|
108
|
+
serverIds: Set<string>;
|
|
109
|
+
orderedIds: string[] | null;
|
|
110
|
+
}
|
|
111
|
+
export declare function createHasManyView(membership: HasManyViewMembership, serverIds?: Iterable<string>): HasManyView;
|
|
112
|
+
export declare function cloneHasManyView(view: HasManyView): HasManyView;
|
|
113
|
+
export declare function cloneViews(views: ReadonlyMap<string, HasManyView>): Map<string, HasManyView>;
|
|
114
|
+
export declare function cloneAddition(addition: PlannedHasManyAddition): PlannedHasManyAddition;
|
|
115
|
+
export declare function cloneAdditions(additions: ReadonlyMap<string, PlannedHasManyAddition>): Map<string, PlannedHasManyAddition>;
|
|
116
|
+
/**
|
|
117
|
+
* Deep clone. Every path that hands a state out or stores a new one goes through
|
|
118
|
+
* this: {@link SnapshotStore}'s dirty-version memo assumes values are REPLACED, never
|
|
119
|
+
* mutated in place, and with two nesting levels a shallow copy would share mutable
|
|
120
|
+
* Sets across store generations.
|
|
121
|
+
*/
|
|
122
|
+
export declare function cloneHasManyState(state: StoredHasManyState): StoredHasManyState;
|
|
123
|
+
export declare function emptyHasManyState(): StoredHasManyState;
|
|
124
|
+
/** Whether an addition renders in {@link alias} — see the asymmetry note at the top. */
|
|
125
|
+
export declare function additionRendersIn(views: ReadonlyMap<string, HasManyView>, alias: string, addition: PlannedHasManyAddition): boolean;
|
|
126
|
+
/** The aliases of existing views a confirmed addition folds into. */
|
|
127
|
+
export declare function additionFoldTargets(state: StoredHasManyState, addition: PlannedHasManyAddition): string[];
|
|
128
|
+
/**
|
|
129
|
+
* Default order of one view: its server rows minus the relation's planned removals,
|
|
130
|
+
* then the planned additions that render there.
|
|
131
|
+
*/
|
|
132
|
+
export declare function computeViewOrderedIds(state: StoredHasManyState, alias: string): string[];
|
|
133
|
+
/** Explicit order of a view if it has one, otherwise its default order. */
|
|
134
|
+
export declare function viewOrderedIds(state: StoredHasManyState, alias: string): string[];
|
|
135
|
+
/**
|
|
136
|
+
* The relation's server baseline: the union across views.
|
|
137
|
+
* Known limitation: views are never dropped, so a view nobody refetches any more can
|
|
138
|
+
* keep a row the server has since removed in it.
|
|
139
|
+
*/
|
|
140
|
+
export declare function relationServerIds(state: StoredHasManyState): Set<string>;
|
|
141
|
+
export declare function toRelationProjection(state: StoredHasManyState): HasManyRelationProjection;
|
|
142
|
+
export declare function toViewProjection(state: StoredHasManyState | undefined, alias: string): HasManyViewProjection;
|
|
143
|
+
/**
|
|
144
|
+
* The single liveness predicate for has-many membership: effective members are
|
|
145
|
+
* (every view's serverIds ∪ plannedAdditions) minus plannedRemovals. Defined once and
|
|
146
|
+
* consumed by the write chokepoint so the forward/reverse index can never drift from it.
|
|
147
|
+
*/
|
|
148
|
+
export declare function liveHasManyChildIds(state: StoredHasManyState | undefined): Set<string>;
|
|
149
|
+
export declare function plannedDeleteChildIds(state: StoredHasManyState | undefined): Set<string>;
|
|
150
|
+
export interface HasManyReconciliation {
|
|
151
|
+
state: StoredHasManyState;
|
|
152
|
+
result: ReconciliationResult;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Advances the server baseline by the confirmed sent delta and rebases local edits
|
|
156
|
+
* made after the request went out.
|
|
157
|
+
*
|
|
158
|
+
* The rebase logic is relation-level and unchanged by views — "did the user locally
|
|
159
|
+
* undo this while the request was in flight" has one answer per relation. Only the
|
|
160
|
+
* baseline bookkeeping is per view: a confirmed addition joins the views it renders
|
|
161
|
+
* in, a confirmed removal leaves every view.
|
|
162
|
+
*/
|
|
163
|
+
export declare function reconcileHasManyState(existing: StoredHasManyState, delta: SentHasManyDelta, fieldName: string): HasManyReconciliation;
|
|
164
|
+
//# sourceMappingURL=hasManyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasManyState.d.ts","sourceRoot":"","sources":["../../src/store/hasManyState.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
* before the last separator.
|
|
6
6
|
*/
|
|
7
7
|
export declare function parentKeyFromRelationKey(relationKey: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Derives the parent entity type from a relation key ("parentType:parentId:fieldName").
|
|
10
|
+
* Entity type names never contain ':', so the type is everything before the first separator.
|
|
11
|
+
*/
|
|
12
|
+
export declare function entityTypeFromRelationKey(relationKey: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Derives the field name from a relation key ("parentType:parentId:fieldName").
|
|
15
|
+
* The counterpart of {@link parentKeyFromRelationKey}: entity ids and field names
|
|
16
|
+
* never contain ':', so the field is everything after the last separator.
|
|
17
|
+
*/
|
|
18
|
+
export declare function fieldFromRelationKey(relationKey: string): string;
|
|
8
19
|
/**
|
|
9
20
|
* Derives the parent composite key ("parentType:parentId") from an owner key
|
|
10
21
|
* prefix ("parentType:parentId:") by dropping the trailing separator. Callers
|
|
@@ -1 +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"}
|
|
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;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UndoJournal.d.ts","sourceRoot":"","sources":["../../src/undo/UndoJournal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAGjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAA;CACnC;AAED,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,CAAA;AAErF,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAED,wFAAwF;AACxF,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;IAC9C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;IAClD,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;IAChD;;;;OAIG;IACH,gCAAgC,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAA;IAClF,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAA;IACpD;;;;OAIG;IACH,wBAAwB,IAAI,qBAAqB,CAAA;CACjD;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEnD;
|
|
1
|
+
{"version":3,"file":"UndoJournal.d.ts","sourceRoot":"","sources":["../../src/undo/UndoJournal.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,10 @@ import type { JournalEntry } from './UndoJournal.js';
|
|
|
11
11
|
* server-backed row — only later edits to it remain undoable.
|
|
12
12
|
*/
|
|
13
13
|
/**
|
|
14
|
-
* Looks up the live server-member ids of a has-many
|
|
15
|
-
* rekey rebase a pre-image when the just-persisted create has
|
|
16
|
-
* member of that list.
|
|
14
|
+
* Looks up the live server-member ids of a has-many relation by its key, per
|
|
15
|
+
* args-view. Lets the rekey rebase a pre-image when the just-persisted create has
|
|
16
|
+
* become a permanent member of that list.
|
|
17
17
|
*/
|
|
18
|
-
export type LiveServerIdsLookup = (relationKey: string) =>
|
|
18
|
+
export type LiveServerIdsLookup = (relationKey: string) => ReadonlyMap<string, ReadonlySet<string>>;
|
|
19
19
|
export declare function rekeyJournalEntry(entry: JournalEntry, ctx: RekeyContext, liveServerIds: LiveServerIdsLookup): JournalEntry;
|
|
20
20
|
//# sourceMappingURL=rekeyJournalEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rekeyJournalEntry.d.ts","sourceRoot":"","sources":["../../src/undo/rekeyJournalEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAIjE,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAA;AAEtE;;;;;;;;;GASG;AACH;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"rekeyJournalEntry.d.ts","sourceRoot":"","sources":["../../src/undo/rekeyJournalEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAIjE,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAA;AAEtE;;;;;;;;;GASG;AACH;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AAEnG,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,YAAY,EACjB,aAAa,EAAE,mBAAmB,GAChC,YAAY,CAOd"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { generateHasManyAlias } from '@contember/bindx-client';
|
|
1
|
+
export { canHasManyParamsExcludeMembers, generateHasManyAlias } from '@contember/bindx-client';
|
|
2
2
|
//# sourceMappingURL=aliasGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliasGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/aliasGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"aliasGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/aliasGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/bindx",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.53",
|
|
4
4
|
"description": "Type-safe data binding framework (core)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@contember/bindx-client": "0.1.
|
|
20
|
+
"@contember/bindx-client": "0.1.53",
|
|
21
21
|
"@contember/graphql-client": "^2.1.0-beta.1"
|
|
22
22
|
},
|
|
23
23
|
"repository": {
|