@verdant-web/store 4.3.0 → 4.4.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 (37) hide show
  1. package/dist/bundle/index.js +6 -6
  2. package/dist/bundle/index.js.map +4 -4
  3. package/dist/esm/__tests__/entities.test.js +296 -1
  4. package/dist/esm/__tests__/entities.test.js.map +1 -1
  5. package/dist/esm/client/Client.js +2 -1
  6. package/dist/esm/client/Client.js.map +1 -1
  7. package/dist/esm/entities/Entity.d.ts +6 -2
  8. package/dist/esm/entities/Entity.js +96 -39
  9. package/dist/esm/entities/Entity.js.map +1 -1
  10. package/dist/esm/entities/Entity.test.js +4 -3
  11. package/dist/esm/entities/Entity.test.js.map +1 -1
  12. package/dist/esm/entities/EntityCache.d.ts +6 -4
  13. package/dist/esm/entities/EntityCache.js +18 -7
  14. package/dist/esm/entities/EntityCache.js.map +1 -1
  15. package/dist/esm/entities/EntityMetadata.d.ts +6 -0
  16. package/dist/esm/entities/EntityMetadata.js +52 -4
  17. package/dist/esm/entities/EntityMetadata.js.map +1 -1
  18. package/dist/esm/entities/EntityStore.js +4 -1
  19. package/dist/esm/entities/EntityStore.js.map +1 -1
  20. package/dist/esm/files/EntityFile.d.ts +6 -1
  21. package/dist/esm/files/EntityFile.js +11 -4
  22. package/dist/esm/files/EntityFile.js.map +1 -1
  23. package/dist/esm/files/FileManager.d.ts +3 -1
  24. package/dist/esm/files/FileManager.js +2 -2
  25. package/dist/esm/files/FileManager.js.map +1 -1
  26. package/dist/esm/utils/versions.js +1 -1
  27. package/package.json +2 -2
  28. package/src/__tests__/entities.test.ts +311 -0
  29. package/src/client/Client.ts +6 -1
  30. package/src/entities/Entity.test.ts +8 -7
  31. package/src/entities/Entity.ts +117 -38
  32. package/src/entities/EntityCache.ts +20 -10
  33. package/src/entities/EntityMetadata.ts +64 -5
  34. package/src/entities/EntityStore.ts +5 -1
  35. package/src/files/EntityFile.ts +16 -3
  36. package/src/files/FileManager.ts +7 -3
  37. package/src/utils/versions.ts +1 -1
@@ -1,4 +1,6 @@
1
- import { EventSubscriber, assert, assignOid, cloneDeep, compareRefs, createFileRef, createRef, getChildFieldSchema, getFieldDefault, hasDefault, isFile, isFileRef, isNullable, isObject, isObjectRef, isRef, maybeGetOid, memoByKeys, traverseCollectionFieldsAndApplyDefaults, validateEntityField, } from '@verdant-web/common';
1
+ var _a;
2
+ import { EventSubscriber, assert, assignOid, cloneDeep, compareRefs, createFileRef, createRef, createSubOid, getChildFieldSchema, getFieldDefault, hasDefault, isFile, isFileRef, isNullable, isObject, isObjectRef, isPrimitive, isRef, maybeGetOid, memoByKeys, traverseCollectionFieldsAndApplyDefaults, validateEntityField, } from '@verdant-web/common';
3
+ import { CHILD_FILE_CHANGED } from '../files/EntityFile.js';
2
4
  import { processValueFiles } from '../files/utils.js';
3
5
  import { EntityFile } from '../index.js';
4
6
  import { EntityCache } from './EntityCache.js';
@@ -8,7 +10,7 @@ export class Entity extends EventSubscriber {
8
10
  get [PRIVATE_ENTITY_CONTEXT_KEY]() {
9
11
  return this.ctx;
10
12
  }
11
- constructor({ oid, schema, entityFamily: childCache, parent, ctx, metadataFamily, readonlyKeys, files, storeEvents, deleteSelf, }) {
13
+ constructor({ oid, schema, entityFamily: childCache, parent, ctx, metadataFamily, readonlyKeys, files, storeEvents, deleteSelf, fieldPath, }) {
12
14
  super();
13
15
  this.fieldPath = [];
14
16
  // an internal representation of this Entity.
@@ -55,14 +57,14 @@ export class Entity extends EventSubscriber {
55
57
  * or a list.
56
58
  */
57
59
  this.validate = memoByKeys(() => {
58
- var _a;
60
+ var _b;
59
61
  this.validationError =
60
- (_a = validateEntityField({
62
+ (_b = validateEntityField({
61
63
  field: this.schema,
62
64
  value: this.rawView,
63
65
  fieldPath: this.fieldPath,
64
66
  expectRefs: true,
65
- })) !== null && _a !== void 0 ? _a : undefined;
67
+ })) !== null && _b !== void 0 ? _b : undefined;
66
68
  return this.validationError;
67
69
  }, () => [this.viewData]);
68
70
  this.viewWithMappedChildren = (mapper) => {
@@ -189,14 +191,16 @@ export class Entity extends EventSubscriber {
189
191
  this.change(change);
190
192
  }
191
193
  };
192
- this.canonizePrunedVersion = () => {
194
+ this.getPruneDiff = () => {
193
195
  const snapshot = this.getSnapshot();
194
196
  const unprunedSnapshot = this.getUnprunedSnapshot();
195
- const operations = this.patchCreator.createDiff(unprunedSnapshot, snapshot, {
197
+ return this.patchCreator.createDiff(unprunedSnapshot, snapshot, {
196
198
  authz: this.access,
197
199
  merge: false,
198
200
  });
199
- this.applyPendingOperations(operations);
201
+ };
202
+ this.canonizePrunedVersion = () => {
203
+ this.applyPendingOperations(this.getPruneDiff());
200
204
  };
201
205
  this.addConfirmedData = (data) => {
202
206
  this.ctx.log('debug', 'Entity: adding confirmed data', this.oid);
@@ -276,7 +280,7 @@ export class Entity extends EventSubscriber {
276
280
  this.emit('change', { isLocal: ev.isLocal });
277
281
  };
278
282
  this.deepChange = (target, ev) => {
279
- var _a;
283
+ var _b;
280
284
  // reset cached deep updated at timestamp; either this
281
285
  // entity or children have changed
282
286
  this.cachedDeepUpdatedAt = null;
@@ -284,7 +288,11 @@ export class Entity extends EventSubscriber {
284
288
  // or self has changed. new pruning needs to happen.
285
289
  this.cachedView = undefined;
286
290
  this.emit('changeDeep', target, ev);
287
- (_a = this.parent) === null || _a === void 0 ? void 0 : _a.deepChange(target, ev);
291
+ (_b = this.parent) === null || _b === void 0 ? void 0 : _b.deepChange(target, ev);
292
+ };
293
+ this[_a] = (file) => {
294
+ // consistent with prior behavior, but kind of arbitrary.
295
+ this.deepChange(this, { isLocal: false, oid: this.oid });
288
296
  };
289
297
  this.getChild = (key, oid) => {
290
298
  const schema = getChildFieldSchema(this.schema, key);
@@ -333,15 +341,39 @@ export class Entity extends EventSubscriber {
333
341
  const file = this.files.get(child.id, {
334
342
  downloadRemote: !!fieldSchema.downloadRemote,
335
343
  ctx: this.ctx,
336
- });
337
- // FIXME: this seems bad and inconsistent
338
- file.subscribe('change', () => {
339
- this.deepChange(this, { isLocal: false, oid: this.oid });
344
+ parent: this,
340
345
  });
341
346
  return file;
342
347
  }
343
348
  else {
344
- return this.getChild(key, child.id);
349
+ const childEntity = this.getChild(key, child.id);
350
+ if (childEntity.deepInvalid) {
351
+ // this child is pruned. materialize a pruned version of
352
+ // this subtree if possible.
353
+ // special case: lists -- as long as the list itself
354
+ // is present and valid, it can omit invalid children
355
+ // selectively rather than fallback to an empty default
356
+ if (fieldSchema.type === 'array') {
357
+ return childEntity;
358
+ }
359
+ // special case: maps -- similar to lists
360
+ if (fieldSchema.type === 'map') {
361
+ return childEntity;
362
+ }
363
+ if (isNullable(fieldSchema)) {
364
+ return null;
365
+ }
366
+ if (hasDefault(fieldSchema)) {
367
+ const unprunedSnapshot = childEntity.getUnprunedSnapshot();
368
+ const pruneDiff = this.patchCreator.createDiff(unprunedSnapshot, getFieldDefault(fieldSchema), {
369
+ merge: false,
370
+ mergeUnknownObjects: true,
371
+ authz: this.access,
372
+ });
373
+ return this.processPrunedChild(key, childEntity, pruneDiff);
374
+ }
375
+ }
376
+ return childEntity;
345
377
  }
346
378
  }
347
379
  else {
@@ -358,15 +390,37 @@ export class Entity extends EventSubscriber {
358
390
  depth: 1,
359
391
  requireDefaults: true,
360
392
  })) {
361
- // FIXME: this returns []/{} for arrays and objects, but the contract
362
- // of this method should return an Entity for such object fields.
363
- // I want to write a test case for this one before attempting to fix
364
- // just to be sure the fix works.
365
- return getFieldDefault(fieldSchema);
393
+ if (hasDefault(fieldSchema)) {
394
+ // primitive fields with defaults are easy.
395
+ if (isPrimitive(fieldSchema)) {
396
+ return getFieldDefault(fieldSchema);
397
+ }
398
+ // object/list fields are hard.
399
+ const defaultValue = getFieldDefault(fieldSchema);
400
+ const prunedFieldOid = createSubOid(this.oid);
401
+ const pruneDiff = this.patchCreator.createInitialize(defaultValue, prunedFieldOid, this.access);
402
+ pruneDiff.push(...this.patchCreator.createSet(this.oid, key, createRef(prunedFieldOid), this.access));
403
+ const childEntity = this.getChild(key, prunedFieldOid);
404
+ return this.processPrunedChild(key, childEntity, pruneDiff);
405
+ }
406
+ else {
407
+ // failure / hard prune: no way to represent this
408
+ // data in a valid way exists. the parent entity
409
+ // is also invalid and this should bubble up.
410
+ return undefined;
411
+ }
366
412
  }
367
413
  return child;
368
414
  }
369
415
  };
416
+ this.processPrunedChild = (key, child, pruneDiff) => {
417
+ this.ctx.log('warn', 'Replacing invalid child object field with ephemeral, valid data', this.oid, key);
418
+ const changes = this.metadataFamily.addEphemeralData(pruneDiff);
419
+ for (const change of changes) {
420
+ this.change(change);
421
+ }
422
+ return child;
423
+ };
370
424
  /**
371
425
  * Gets a value on this entity. If the value is not
372
426
  * present, it will be set to the provided default
@@ -425,7 +479,7 @@ export class Entity extends EventSubscriber {
425
479
  });
426
480
  }
427
481
  }
428
- return processValueFiles(value, this.files.add);
482
+ return processValueFiles(value, (file) => this.files.add(file, this));
429
483
  };
430
484
  this.getDeleteMode = (key) => {
431
485
  if (this.readonlyKeys.includes(key)) {
@@ -658,10 +712,12 @@ export class Entity extends EventSubscriber {
658
712
  this.ctx = ctx;
659
713
  this.files = files;
660
714
  this.schema = schema;
715
+ this.fieldPath = fieldPath || [];
661
716
  this.entityFamily =
662
717
  childCache ||
663
718
  new EntityCache({
664
719
  initial: [this],
720
+ ctx,
665
721
  });
666
722
  this.metadataFamily = metadataFamily;
667
723
  this.storeEvents = storeEvents;
@@ -724,8 +780,8 @@ export class Entity extends EventSubscriber {
724
780
  // force null - invalid - will require parent prune
725
781
  return null;
726
782
  }
727
- this.cachedView = this.isList ? [] : {};
728
- assignOid(this.cachedView, this.oid);
783
+ let newView = this.isList ? [] : {};
784
+ assignOid(newView, this.oid);
729
785
  if (Array.isArray(rawView)) {
730
786
  const schema = getChildFieldSchema(this.schema, 0);
731
787
  if (!schema) {
@@ -744,7 +800,7 @@ export class Entity extends EventSubscriber {
744
800
  // this item will be pruned.
745
801
  }
746
802
  else {
747
- this.cachedView.push(child);
803
+ newView.push(child);
748
804
  }
749
805
  }
750
806
  }
@@ -768,40 +824,41 @@ export class Entity extends EventSubscriber {
768
824
  this.ctx.log('error', 'No child field schema for object entity at key', key);
769
825
  if (this.schema.type === 'map') {
770
826
  // it's valid to prune here if it's a map
771
- this.cachedView = {};
827
+ newView = {};
772
828
  }
773
829
  else {
774
830
  // otherwise prune moves upward
775
- this.cachedView = null;
831
+ newView = null;
776
832
  }
777
833
  break;
778
834
  }
779
835
  const child = this.get(key);
780
836
  if (this.childIsNull(child) && !isNullable(schema)) {
781
837
  this.ctx.log('error', 'Child entity is missing for non-nullable field', this.oid, 'key:', key);
782
- /**
783
- * PRUNE - this is a prune point. we can't continue
784
- * to render this data. If this is a map, we can ignore
785
- * this value. Otherwise we must prune upward.
786
- * This exits the loop.
787
- */
788
838
  if (this.schema.type !== 'map') {
789
- this.cachedView = null;
839
+ /**
840
+ * PRUNE - this is a prune point. we can't continue
841
+ * to render this data. If this is a map, we can ignore
842
+ * this value. Otherwise we must prune upward.
843
+ * This exits the loop.
844
+ */
845
+ newView = null;
790
846
  break;
791
847
  }
792
848
  }
793
849
  else {
794
850
  // special case - rewrite undefined fields to null
795
851
  if (isNullable(schema) && child === undefined) {
796
- this.cachedView[key] = null;
852
+ newView[key] = null;
797
853
  }
798
854
  else {
799
- this.cachedView[key] = child;
855
+ newView[key] = child;
800
856
  }
801
857
  }
802
858
  }
803
859
  }
804
- return this.cachedView;
860
+ this.cachedView = newView;
861
+ return newView;
805
862
  }
806
863
  get uid() {
807
864
  return this.oid;
@@ -919,10 +976,10 @@ export class Entity extends EventSubscriber {
919
976
  }
920
977
  // list implements an iterator which maps items to wrapped
921
978
  // versions
922
- [Symbol.iterator]() {
923
- var _a;
979
+ [(_a = CHILD_FILE_CHANGED, Symbol.iterator)]() {
980
+ var _b;
924
981
  let index = 0;
925
- let length = (_a = this.view) === null || _a === void 0 ? void 0 : _a.length;
982
+ let length = (_b = this.view) === null || _b === void 0 ? void 0 : _b.length;
926
983
  return {
927
984
  next: () => {
928
985
  if (index < length) {
@@ -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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"}
@@ -1,9 +1,9 @@
1
+ import { NaiveTimestampProvider, PatchCreator, groupPatchesByOid, } from '@verdant-web/common';
1
2
  import { describe, expect, it, vi } from 'vitest';
2
- import { Entity } from './Entity.js';
3
- import { EntityFamilyMetadata } from './EntityMetadata.js';
4
3
  import { WeakEvent } from 'weak-event';
5
- import { NaiveTimestampProvider, PatchCreator, groupPatchesByOid, } from '@verdant-web/common';
6
4
  import { Time } from '../context/Time.js';
5
+ import { Entity } from './Entity.js';
6
+ import { EntityFamilyMetadata } from './EntityMetadata.js';
7
7
  describe('Entity', () => {
8
8
  const schema = {
9
9
  type: 'object',
@@ -54,6 +54,7 @@ describe('Entity', () => {
54
54
  log: vi.fn(),
55
55
  time: new Time(time, 1),
56
56
  patchCreator,
57
+ weakRef: (v) => new WeakRef(v),
57
58
  };
58
59
  const entity = new Entity({
59
60
  oid: 'test/1',
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.test.js","sourceRoot":"","sources":["../../../src/entities/Entity.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.test.js","sourceRoot":"","sources":["../../../src/entities/Entity.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import { Entity, EntityInit } from './Entity.js';
2
- import { EntityFile } from '../files/EntityFile.js';
3
1
  import { ObjectIdentifier } from '@verdant-web/common';
2
+ import { Context } from '../internal.js';
3
+ import { Entity, EntityInit } from './Entity.js';
4
4
  export declare class EntityCache {
5
+ private ctx;
5
6
  private cache;
6
- constructor({ initial }?: {
7
+ constructor({ initial, ctx }: {
7
8
  initial?: Entity[];
9
+ ctx: Context;
8
10
  });
9
11
  get: (init: EntityInit) => Entity;
10
12
  has: (oid: ObjectIdentifier) => boolean;
11
- getCached: (oid: string) => EntityFile | Entity<any, any, any> | undefined;
13
+ getCached: (oid: string) => Entity<any, any, any> | null;
12
14
  }
@@ -1,24 +1,35 @@
1
1
  import { Entity } from './Entity.js';
2
2
  export class EntityCache {
3
- constructor({ initial } = {}) {
3
+ constructor({ initial, ctx }) {
4
4
  this.cache = new Map();
5
5
  this.get = (init) => {
6
- if (this.cache.has(init.oid)) {
7
- return this.cache.get(init.oid);
8
- }
6
+ const cached = this.getCached(init.oid);
7
+ if (cached)
8
+ return cached;
9
9
  const entity = new Entity(init);
10
- this.cache.set(init.oid, entity);
10
+ this.cache.set(init.oid, this.ctx.weakRef(entity));
11
11
  return entity;
12
12
  };
13
13
  this.has = (oid) => {
14
14
  return this.cache.has(oid);
15
15
  };
16
16
  this.getCached = (oid) => {
17
- return this.cache.get(oid);
17
+ if (this.cache.has(oid)) {
18
+ const ref = this.cache.get(oid);
19
+ const derefed = ref === null || ref === void 0 ? void 0 : ref.deref();
20
+ if (derefed) {
21
+ return derefed;
22
+ }
23
+ else {
24
+ this.cache.delete(oid);
25
+ }
26
+ }
27
+ return null;
18
28
  };
29
+ this.ctx = ctx;
19
30
  if (initial) {
20
31
  for (const entity of initial) {
21
- this.cache.set(entity.oid, entity);
32
+ this.cache.set(entity.oid, ctx.weakRef(entity));
22
33
  }
23
34
  }
24
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCache.js","sourceRoot":"","sources":["../../../src/entities/EntityCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,aAAa,CAAC;AAIjD,MAAM,OAAO,WAAW;IAGvB,YAAY,EAAE,OAAO,KAA6B,EAAE;QAF5C,UAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;QAUvD,QAAG,GAAG,CAAC,IAAgB,EAAU,EAAE;YAClC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAY,CAAC;YAC5C,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,QAAG,GAAG,CAAC,GAAqB,EAAE,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,cAAS,GAAG,CAAC,GAAW,EAAE,EAAE;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC;QAtBD,IAAI,OAAO,EAAE,CAAC;YACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;QACF,CAAC;IACF,CAAC;CAkBD"}
1
+ {"version":3,"file":"EntityCache.js","sourceRoot":"","sources":["../../../src/entities/EntityCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAc,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,WAAW;IAIvB,YAAY,EAAE,OAAO,EAAE,GAAG,EAAwC;QAF1D,UAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;QAWnD,QAAG,GAAG,CAAC,IAAgB,EAAU,EAAE;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,QAAG,GAAG,CAAC,GAAqB,EAAE,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,cAAS,GAAG,CAAC,GAAW,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,EAAE,CAAC;gBAC7B,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,OAAiB,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QA/BD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,OAAO,EAAE,CAAC;YACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;IACF,CAAC;CA0BD"}
@@ -14,6 +14,7 @@ export declare class EntityMetadata {
14
14
  private ctx;
15
15
  private baseline;
16
16
  private confirmedOperations;
17
+ private ephemeralOperations?;
17
18
  private pendingOperations;
18
19
  readonly oid: string;
19
20
  constructor({ oid, ctx, confirmedOperations, pendingOperations, baseline, }: {
@@ -33,6 +34,8 @@ export declare class EntityMetadata {
33
34
  */
34
35
  addConfirmedOperations: (operations: Operation[]) => number;
35
36
  addPendingOperation: (operation: Operation) => void;
37
+ addEphemeralOperation: (operation: Operation) => void;
38
+ clearEphemeralOperations: () => Operation[] | undefined;
36
39
  discardPendingOperation: (operation: Operation) => void;
37
40
  private applyOperations;
38
41
  }
@@ -64,6 +67,9 @@ export declare class EntityFamilyMetadata {
64
67
  * local changes are usually handled, as a list.
65
68
  */
66
69
  addPendingData: (operations: Operation[]) => EntityChange[];
70
+ private ephemeralMemo;
71
+ private flushAllEphemeral;
72
+ addEphemeralData: (operations: Operation[]) => EntityChange[];
67
73
  replaceAllData: ({ operations, baselines, }: {
68
74
  operations?: Record<ObjectIdentifier, Operation[]>;
69
75
  baselines?: DocumentBaseline[];