@verdant-web/store 3.4.0-next.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/bundle/index.js +6 -6
  2. package/dist/bundle/index.js.map +3 -3
  3. package/dist/esm/BackoffScheduler.d.ts +19 -0
  4. package/dist/esm/DocumentManager.d.ts +28 -0
  5. package/dist/esm/FakeWeakRef.d.ts +11 -0
  6. package/dist/esm/IDBService.d.ts +30 -0
  7. package/dist/esm/UndoHistory.d.ts +16 -0
  8. package/dist/esm/__tests__/batching.test.d.ts +1 -0
  9. package/dist/esm/__tests__/documents.test.d.ts +1 -0
  10. package/dist/esm/__tests__/documents.test.js +26 -0
  11. package/dist/esm/__tests__/documents.test.js.map +1 -1
  12. package/dist/esm/__tests__/fixtures/testStorage.d.ts +80 -0
  13. package/dist/esm/__tests__/fixtures/testStorage.js +5 -0
  14. package/dist/esm/__tests__/fixtures/testStorage.js.map +1 -1
  15. package/dist/esm/__tests__/legacyOids.test.d.ts +1 -0
  16. package/dist/esm/__tests__/mutations.test.d.ts +1 -0
  17. package/dist/esm/__tests__/queries.test.d.ts +1 -0
  18. package/dist/esm/__tests__/setup/indexedDB.d.ts +1 -0
  19. package/dist/esm/__tests__/undo.test.d.ts +1 -0
  20. package/dist/esm/backup.d.ts +10 -0
  21. package/dist/esm/client/Client.d.ts +98 -0
  22. package/dist/esm/client/ClientDescriptor.d.ts +76 -0
  23. package/dist/esm/client/constants.d.ts +1 -0
  24. package/dist/esm/constants.d.ts +1 -0
  25. package/dist/esm/context.d.ts +38 -0
  26. package/dist/esm/entities/Entity.d.ts +162 -0
  27. package/dist/esm/entities/Entity.js +35 -9
  28. package/dist/esm/entities/Entity.js.map +1 -1
  29. package/dist/esm/entities/Entity.test.d.ts +1 -0
  30. package/dist/esm/entities/EntityCache.d.ts +15 -0
  31. package/dist/esm/entities/EntityMetadata.d.ts +68 -0
  32. package/dist/esm/entities/EntityStore.d.ts +81 -0
  33. package/dist/esm/entities/OperationBatcher.d.ts +52 -0
  34. package/dist/esm/entities/types.d.ts +103 -0
  35. package/dist/esm/files/EntityFile.d.ts +35 -0
  36. package/dist/esm/files/FileManager.d.ts +47 -0
  37. package/dist/esm/files/FileStorage.d.ts +39 -0
  38. package/dist/esm/files/utils.d.ts +10 -0
  39. package/dist/esm/files/utils.test.d.ts +1 -0
  40. package/dist/esm/idb.d.ts +13 -0
  41. package/dist/esm/index.d.ts +23 -0
  42. package/dist/esm/metadata/AckInfoStore.d.ts +10 -0
  43. package/dist/esm/metadata/BaselinesStore.d.ts +40 -0
  44. package/dist/esm/metadata/LocalReplicaStore.d.ts +18 -0
  45. package/dist/esm/metadata/MessageCreator.d.ts +19 -0
  46. package/dist/esm/metadata/Metadata.d.ts +135 -0
  47. package/dist/esm/metadata/OperationsStore.d.ts +62 -0
  48. package/dist/esm/metadata/SchemaStore.d.ts +9 -0
  49. package/dist/esm/metadata/openMetadataDatabase.d.ts +19 -0
  50. package/dist/esm/migration/db.d.ts +8 -0
  51. package/dist/esm/migration/errors.d.ts +5 -0
  52. package/dist/esm/migration/openDatabase.d.ts +20 -0
  53. package/dist/esm/migration/paths.d.ts +6 -0
  54. package/dist/esm/migration/paths.test.d.ts +1 -0
  55. package/dist/esm/queries/BaseQuery.d.ts +53 -0
  56. package/dist/esm/queries/CollectionQueries.d.ts +55 -0
  57. package/dist/esm/queries/FindAllQuery.d.ts +12 -0
  58. package/dist/esm/queries/FindInfiniteQuery.d.ts +19 -0
  59. package/dist/esm/queries/FindOneQuery.d.ts +12 -0
  60. package/dist/esm/queries/FindPageQuery.d.ts +24 -0
  61. package/dist/esm/queries/GetQuery.d.ts +10 -0
  62. package/dist/esm/queries/QueryCache.d.ts +17 -0
  63. package/dist/esm/queries/QueryableStorage.d.ts +20 -0
  64. package/dist/esm/queries/dbQueries.d.ts +22 -0
  65. package/dist/esm/queries/keys.d.ts +10 -0
  66. package/dist/esm/queries/ranges.d.ts +2 -0
  67. package/dist/esm/queries/types.d.ts +6 -0
  68. package/dist/esm/queries/utils.d.ts +3 -0
  69. package/dist/esm/sync/FileSync.d.ts +24 -0
  70. package/dist/esm/sync/Heartbeat.d.ts +25 -0
  71. package/dist/esm/sync/PresenceManager.d.ts +55 -0
  72. package/dist/esm/sync/PushPullSync.d.ts +39 -0
  73. package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +34 -0
  74. package/dist/esm/sync/Sync.d.ts +160 -0
  75. package/dist/esm/sync/WebSocketSync.d.ts +44 -0
  76. package/dist/esm/types.d.ts +12 -0
  77. package/dist/esm/utils/Disposable.d.ts +6 -0
  78. package/dist/esm/utils/Resolvable.d.ts +8 -0
  79. package/dist/esm/vanilla.d.ts +1 -0
  80. package/package.json +3 -3
  81. package/src/__tests__/documents.test.ts +35 -2
  82. package/src/__tests__/fixtures/testStorage.ts +5 -0
  83. package/src/entities/Entity.ts +40 -9
@@ -0,0 +1,162 @@
1
+ import { EntityValidationProblem, EventSubscriber, ObjectIdentifier, PatchCreator, StorageFieldSchema } from '@verdant-web/common';
2
+ import { Context } from '../context.js';
3
+ import { FileManager } from '../files/FileManager.js';
4
+ import { EntityCache } from './EntityCache.js';
5
+ import { EntityFamilyMetadata, EntityMetadataView } from './EntityMetadata.js';
6
+ import { BaseEntityValue, DataFromInit, EntityChange, EntityEvents, ListEntity, ListItemInit, ListItemValue, ObjectEntity } from './types.js';
7
+ import { EntityStoreEvents } from './EntityStore.js';
8
+ export interface EntityInit {
9
+ oid: ObjectIdentifier;
10
+ schema: StorageFieldSchema;
11
+ entityFamily?: EntityCache;
12
+ metadataFamily: EntityFamilyMetadata;
13
+ parent?: Entity;
14
+ ctx: Context;
15
+ files: FileManager;
16
+ readonlyKeys?: string[];
17
+ fieldPath?: (string | number)[];
18
+ patchCreator: PatchCreator;
19
+ events: EntityStoreEvents;
20
+ }
21
+ export declare class Entity<Init = any, KeyValue extends BaseEntityValue = any, Snapshot extends any = DataFromInit<Init>> extends EventSubscriber<EntityEvents> implements ObjectEntity<Init, KeyValue, Snapshot>, ListEntity<Init, KeyValue, Snapshot> {
22
+ readonly oid: ObjectIdentifier;
23
+ private readonlyKeys;
24
+ private fieldPath;
25
+ private entityFamily;
26
+ private metadataFamily;
27
+ private schema;
28
+ private parent;
29
+ private ctx;
30
+ private files;
31
+ private patchCreator;
32
+ private events;
33
+ private _viewData;
34
+ private validationError;
35
+ private cachedDeepUpdatedAt;
36
+ private wasDeletedLastChange;
37
+ private cachedView;
38
+ constructor({ oid, schema, entityFamily: childCache, parent, ctx, metadataFamily, readonlyKeys, files, patchCreator, events, }: EntityInit);
39
+ private onAdd;
40
+ private onReplace;
41
+ private onResetAll;
42
+ private get metadata();
43
+ /**
44
+ * The view of this Entity, not including nested
45
+ * entities (that's the snapshot - see #getSnapshot())
46
+ *
47
+ * Nested entities are represented by refs.
48
+ */
49
+ private get viewData();
50
+ /** convenience getter for viewData.view */
51
+ private get rawView();
52
+ /**
53
+ * An Entity's View includes the rendering of its underlying data,
54
+ * connecting of children where refs were, and validation
55
+ * and pruning according to schema.
56
+ */
57
+ private get view();
58
+ private childIsNull;
59
+ get uid(): string;
60
+ get deleted(): boolean;
61
+ get invalid(): boolean;
62
+ get isList(): any;
63
+ get updatedAt(): number;
64
+ get deepUpdatedAt(): number;
65
+ /**
66
+ * @internal - this is relevant to Verdant's system, not users.
67
+ *
68
+ * Indicates whether this document is from an outdated version
69
+ * of the schema - which means it cannot be used until it is upgraded.
70
+ */
71
+ get isOutdatedVersion(): boolean;
72
+ /**
73
+ * Pruning - when entities have invalid children, we 'prune' that
74
+ * data up to the nearest prunable point - a nullable field,
75
+ * or a list.
76
+ */
77
+ protected validate: (...args: unknown[]) => EntityValidationProblem | undefined;
78
+ private viewWithMappedChildren;
79
+ /**
80
+ * A current snapshot of this Entity's data, including nested
81
+ * Entities.
82
+ */
83
+ getSnapshot: () => any;
84
+ private addPendingOperations;
85
+ private addConfirmedData;
86
+ private replaceAllData;
87
+ private resetAllData;
88
+ private change;
89
+ protected deepChange: (target: Entity, ev: EntityChange) => void;
90
+ private getChild;
91
+ /**
92
+ * Gets a value from this Entity. If the value
93
+ * is an object, it will be wrapped in another
94
+ * Entity.
95
+ */
96
+ get: <Key extends keyof KeyValue>(key: Key) => KeyValue[Key];
97
+ /**
98
+ * Gets a value on this entity. If the value is not
99
+ * present, it will be set to the provided default
100
+ * and returned synchronously. This method only sets
101
+ * a new value once when a field is empty; subsequent
102
+ * calls will retrieve the created value until it is
103
+ * deleted.
104
+ *
105
+ * Note that this should only be called for nullable
106
+ * fields. If the field is not nullable, the existing
107
+ * value or the default value will always be returned,
108
+ * and the default will not be set.
109
+ */
110
+ getOrSet: <Key extends keyof Init & keyof KeyValue>(key: Key, init: Init[Key]) => KeyValue[Key];
111
+ private processInputValue;
112
+ private getDeleteMode;
113
+ /**
114
+ * Returns the referent value of an item in the list, used for
115
+ * operations which act on items. if the item is an object,
116
+ * it will attempt to create an OID reference to it. If it
117
+ * is a primitive, it will return the primitive.
118
+ */
119
+ private getItemRefValue;
120
+ set: <Key extends keyof Init>(key: Key, value: Init[Key]) => void;
121
+ /**
122
+ * Returns a destructured version of this Entity, where child
123
+ * Entities are accessible at their respective keys.
124
+ */
125
+ getAll: () => KeyValue;
126
+ delete: (key: any) => void;
127
+ keys: () => string[];
128
+ entries: () => [string, Exclude<KeyValue[keyof KeyValue], undefined>][];
129
+ values: () => Exclude<KeyValue[keyof KeyValue], undefined>[];
130
+ update: (data: any, { merge, replaceSubObjects, }?: {
131
+ replaceSubObjects?: boolean | undefined;
132
+ merge?: boolean | undefined;
133
+ }) => void;
134
+ get length(): number;
135
+ push: (value: ListItemInit<Init>) => void;
136
+ insert: (index: number, value: ListItemInit<Init>) => void;
137
+ move: (from: number, to: number) => void;
138
+ moveItem: (item: ListItemValue<KeyValue>, to: number) => void;
139
+ add: (value: ListItemValue<KeyValue>) => void;
140
+ removeAll: (item: ListItemValue<KeyValue>) => void;
141
+ removeFirst: (item: ListItemValue<KeyValue>) => void;
142
+ removeLast: (item: ListItemValue<KeyValue>) => void;
143
+ [Symbol.iterator](): {
144
+ next: () => {
145
+ readonly value: ListItemValue<KeyValue>;
146
+ readonly done: false;
147
+ } | {
148
+ readonly value: undefined;
149
+ readonly done: true;
150
+ };
151
+ };
152
+ map: <U>(callback: (value: ListItemValue<KeyValue>, index: number) => U) => U[];
153
+ filter: (callback: (value: ListItemValue<KeyValue>, index: number) => boolean) => ListItemValue<KeyValue>[];
154
+ has: (value: ListItemValue<KeyValue>) => boolean;
155
+ forEach: (callback: (value: ListItemValue<KeyValue>, index: number) => void) => void;
156
+ some: (predicate: (value: ListItemValue<KeyValue>) => boolean) => boolean;
157
+ every: (predicate: (value: ListItemValue<KeyValue>) => boolean) => boolean;
158
+ find: (predicate: (value: ListItemValue<KeyValue>) => boolean) => ListItemValue<KeyValue> | undefined;
159
+ includes: (value: ListItemValue<KeyValue>) => boolean;
160
+ __getViewData__: (oid: ObjectIdentifier, type: 'confirmed' | 'pending') => EntityMetadataView;
161
+ __getFamilyOids__: () => string[];
162
+ }
@@ -202,17 +202,17 @@ export class Entity extends EventSubscriber {
202
202
  throw new Error(`Cannot access data at key ${key} on deleted entity ${this.oid}`);
203
203
  }
204
204
  const child = view[key];
205
- const schema = getChildFieldSchema(this.schema, key);
206
- if (!schema) {
205
+ const fieldSchema = getChildFieldSchema(this.schema, key);
206
+ if (!fieldSchema) {
207
207
  throw new Error(`No schema for key ${String(key)} in ${JSON.stringify(this.schema)}`);
208
208
  }
209
209
  if (isRef(child)) {
210
210
  if (isFileRef(child)) {
211
- if (schema.type !== 'file') {
212
- throw new Error(`Expected file schema for key ${String(key)}, got ${schema.type}`);
211
+ if (fieldSchema.type !== 'file') {
212
+ throw new Error(`Expected file schema for key ${String(key)}, got ${fieldSchema.type}`);
213
213
  }
214
214
  const file = this.files.get(child.id, {
215
- downloadRemote: !!schema.downloadRemote,
215
+ downloadRemote: !!fieldSchema.downloadRemote,
216
216
  });
217
217
  // FIXME: this seems bad and inconsistent
218
218
  file.subscribe('change', () => {
@@ -225,18 +225,23 @@ export class Entity extends EventSubscriber {
225
225
  }
226
226
  }
227
227
  else {
228
+ // if this is a Map type, a missing child is
229
+ // just an empty spot
230
+ if (this.schema.type === 'map' && child === undefined) {
231
+ return undefined;
232
+ }
228
233
  // prune invalid primitive fields
229
234
  if (validateEntityField({
230
- field: schema,
235
+ field: fieldSchema,
231
236
  value: child,
232
237
  fieldPath: [...this.fieldPath, key],
233
238
  depth: 1,
234
239
  requireDefaults: true,
235
240
  })) {
236
- if (hasDefault(schema)) {
237
- return getDefault(schema);
241
+ if (hasDefault(fieldSchema)) {
242
+ return getDefault(fieldSchema);
238
243
  }
239
- if (isNullable(schema)) {
244
+ if (isNullable(fieldSchema)) {
240
245
  return null;
241
246
  }
242
247
  return undefined;
@@ -244,6 +249,27 @@ export class Entity extends EventSubscriber {
244
249
  return child;
245
250
  }
246
251
  };
252
+ /**
253
+ * Gets a value on this entity. If the value is not
254
+ * present, it will be set to the provided default
255
+ * and returned synchronously. This method only sets
256
+ * a new value once when a field is empty; subsequent
257
+ * calls will retrieve the created value until it is
258
+ * deleted.
259
+ *
260
+ * Note that this should only be called for nullable
261
+ * fields. If the field is not nullable, the existing
262
+ * value or the default value will always be returned,
263
+ * and the default will not be set.
264
+ */
265
+ this.getOrSet = (key, init) => {
266
+ assertNotSymbol(key);
267
+ const existing = this.get(key);
268
+ if (existing)
269
+ return existing;
270
+ this.set(key, init);
271
+ return this.get(key);
272
+ };
247
273
  this.processInputValue = (value, key) => {
248
274
  if (this.readonlyKeys.includes(key)) {
249
275
  throw new Error(`Cannot set readonly key ${key.toString()}`);
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../src/entities/Entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../src/entities/Entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Entity, EntityInit } from './Entity.js';
2
+ import { EntityFile } from '../files/EntityFile.js';
3
+ import { ObjectIdentifier } from '@verdant-web/common';
4
+ export declare class EntityCache {
5
+ private cache;
6
+ constructor({ initial }?: {
7
+ initial?: Entity[];
8
+ });
9
+ get: (init: EntityInit) => Entity;
10
+ has: (oid: ObjectIdentifier) => boolean;
11
+ getFile: (id: string, options: {
12
+ downloadRemote: boolean;
13
+ }) => EntityFile;
14
+ getCached: (oid: string) => Entity<any, any, any> | EntityFile | undefined;
15
+ }
@@ -0,0 +1,68 @@
1
+ import { DocumentBaseline, ObjectIdentifier, Operation } from '@verdant-web/common';
2
+ import { Context } from '../context.js';
3
+ import { EntityChange } from './types.js';
4
+ export type EntityMetadataView = {
5
+ view: any;
6
+ fromOlderVersion: boolean;
7
+ deleted: boolean;
8
+ empty: boolean;
9
+ updatedAt: number;
10
+ };
11
+ export declare class EntityMetadata {
12
+ private ctx;
13
+ private baseline;
14
+ private confirmedOperations;
15
+ private pendingOperations;
16
+ readonly oid: string;
17
+ constructor({ oid, ctx, confirmedOperations, pendingOperations, baseline, }: {
18
+ oid: ObjectIdentifier;
19
+ ctx: Context;
20
+ confirmedOperations?: Operation[];
21
+ pendingOperations?: Operation[];
22
+ baseline?: DocumentBaseline;
23
+ });
24
+ /**
25
+ * Compute the current view of the entity.
26
+ */
27
+ computeView: (omitPending?: boolean) => EntityMetadataView;
28
+ addBaseline: (baseline: DocumentBaseline) => void;
29
+ /**
30
+ * @returns total number of new operations added
31
+ */
32
+ addConfirmedOperations: (operations: Operation[]) => number;
33
+ addPendingOperation: (operation: Operation) => void;
34
+ private applyOperations;
35
+ }
36
+ /**
37
+ * Represents the metadata for a group of entities underneath a Document.
38
+ * Metadata is separated out this way so that these classes can be
39
+ * garbage collected when the root Document goes out of scope.
40
+ */
41
+ export declare class EntityFamilyMetadata {
42
+ private ctx;
43
+ private entities;
44
+ private onPendingOperations;
45
+ private rootOid;
46
+ constructor({ ctx, onPendingOperations, rootOid, }: {
47
+ ctx: Context;
48
+ onPendingOperations: (ops: Operation[]) => void;
49
+ rootOid: ObjectIdentifier;
50
+ });
51
+ get: (oid: ObjectIdentifier) => EntityMetadata;
52
+ getAllOids: () => string[];
53
+ addConfirmedData: ({ baselines, operations, isLocal, }: {
54
+ baselines?: DocumentBaseline[] | undefined;
55
+ operations?: Record<string, Operation[]> | undefined;
56
+ isLocal?: boolean | undefined;
57
+ }) => EntityChange[];
58
+ /**
59
+ * Adds local, unconfirmed operations to the system.
60
+ * The API is different here to streamline for the way
61
+ * local changes are usually handled, as a list.
62
+ */
63
+ addPendingData: (operations: Operation[]) => EntityChange[];
64
+ replaceAllData: ({ operations, baselines, }: {
65
+ operations?: Record<string, Operation[]> | undefined;
66
+ baselines?: DocumentBaseline[] | undefined;
67
+ }) => EntityChange[];
68
+ }
@@ -0,0 +1,81 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { DocumentBaseline, ObjectIdentifier, Operation } from '@verdant-web/common';
3
+ import { Context } from '../context.js';
4
+ import { Metadata } from '../metadata/Metadata.js';
5
+ import { Entity } from './Entity.js';
6
+ import { Disposable } from '../utils/Disposable.js';
7
+ import { FileManager } from '../files/FileManager.js';
8
+ import { WeakEvent } from 'weak-event';
9
+ import { abort } from 'process';
10
+ export type EntityStoreEventData = {
11
+ oid: ObjectIdentifier;
12
+ operations?: Record<string, Operation[]>;
13
+ baselines?: DocumentBaseline[];
14
+ isLocal: boolean;
15
+ };
16
+ export type EntityStoreEvents = {
17
+ add: WeakEvent<EntityStore, EntityStoreEventData>;
18
+ replace: WeakEvent<EntityStore, EntityStoreEventData>;
19
+ resetAll: WeakEvent<EntityStore, void>;
20
+ };
21
+ type IncomingData = {
22
+ operations?: Operation[];
23
+ baselines?: DocumentBaseline[];
24
+ reset?: boolean;
25
+ isLocal?: boolean;
26
+ };
27
+ export declare class EntityStore extends Disposable {
28
+ private ctx;
29
+ private meta;
30
+ private files;
31
+ private batcher;
32
+ private queryableStorage;
33
+ private events;
34
+ private cache;
35
+ private pendingEntityPromises;
36
+ private abortDataQueueController;
37
+ private ongoingResetPromise;
38
+ private entityFinalizationRegistry;
39
+ constructor({ ctx, meta, files, }: {
40
+ ctx: Context;
41
+ meta: Metadata;
42
+ files: FileManager;
43
+ });
44
+ get batch(): ({ undoable, batchName, max, timeout, }?: {
45
+ undoable?: boolean | undefined;
46
+ batchName?: string | undefined;
47
+ max?: number | null | undefined;
48
+ timeout?: number | null | undefined;
49
+ }) => import("./OperationBatcher.js").OperationBatch;
50
+ get flushAllBatches(): () => Promise<any[]>;
51
+ addData: (data: IncomingData) => Promise<void>;
52
+ private resetData;
53
+ private processData;
54
+ hydrate: (oid: string, opts?: {
55
+ abort: AbortSignal;
56
+ }) => Promise<Entity | null>;
57
+ destroy: () => Promise<void>;
58
+ /**
59
+ * Creates a new Entity with the given initial data.
60
+ */
61
+ create: (initial: any, oid: ObjectIdentifier, { undoable }?: {
62
+ undoable?: boolean | undefined;
63
+ }) => Promise<Entity<any, any, any>>;
64
+ deleteAll: (oids: ObjectIdentifier[], options?: {
65
+ undoable?: boolean;
66
+ }) => Promise<void>;
67
+ delete: (oid: ObjectIdentifier, options?: {
68
+ undoable?: boolean;
69
+ }) => Promise<void>;
70
+ private getCollectionSchema;
71
+ /**
72
+ * Constructs an entity from an OID, but does not load it.
73
+ */
74
+ private constructEntity;
75
+ private onPendingOperations;
76
+ /**
77
+ * Loads initial Entity data from storage
78
+ */
79
+ private loadEntity;
80
+ }
81
+ export {};
@@ -0,0 +1,52 @@
1
+ import { Operation } from '@verdant-web/common';
2
+ import { Metadata } from '../metadata/Metadata.js';
3
+ import { Context } from '../context.js';
4
+ import type { EntityStore } from './EntityStore.js';
5
+ import { Entity } from './Entity.js';
6
+ export interface OperationBatch {
7
+ run: (fn: () => void) => this;
8
+ /** @deprecated - use commit() */
9
+ flush: () => Promise<void>;
10
+ commit: () => Promise<void>;
11
+ discard: () => void;
12
+ }
13
+ export declare class OperationBatcher {
14
+ private batcher;
15
+ private currentBatchKey;
16
+ private defaultBatchTimeout;
17
+ private meta;
18
+ private ctx;
19
+ private entities;
20
+ constructor({ batchTimeout, meta, ctx, entities, }: {
21
+ batchTimeout?: number;
22
+ meta: Metadata;
23
+ ctx: Context;
24
+ entities: EntityStore;
25
+ });
26
+ get isDefaultBatch(): boolean;
27
+ private flushOperations;
28
+ /**
29
+ * Immediately flushes operations to storage / sync.
30
+ * Providing source to second arg skips hydrating related
31
+ * Entity from storage, which is useful when that Entity
32
+ * isn't in storage (i.e. still creating) or just to speed
33
+ * up the commit.
34
+ */
35
+ commitOperations: (operations: Operation[], meta: {
36
+ undoable?: boolean;
37
+ source?: Entity;
38
+ }) => Promise<void>;
39
+ /**
40
+ * Adds operations to the active batch.
41
+ */
42
+ addOperations: (operations: Operation[]) => void;
43
+ batch: ({ undoable, batchName, max, timeout, }?: {
44
+ undoable?: boolean | undefined;
45
+ batchName?: string | undefined;
46
+ max?: number | null | undefined;
47
+ timeout?: number | null | undefined;
48
+ }) => OperationBatch;
49
+ flushAll: () => Promise<any[]>;
50
+ private createUndo;
51
+ private getInverseOperations;
52
+ }