@fluidframework/sequence 2.0.0-dev-rc.5.0.0.271045 → 2.0.0-dev-rc.5.0.0.271717

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 (76) hide show
  1. package/dist/IntervalCollectionValues.js +0 -2
  2. package/dist/IntervalCollectionValues.js.map +1 -1
  3. package/dist/intervalCollection.js +13 -31
  4. package/dist/intervalCollection.js.map +1 -1
  5. package/dist/intervalCollectionMap.js +31 -37
  6. package/dist/intervalCollectionMap.js.map +1 -1
  7. package/dist/intervalIndex/endpointInRangeIndex.js +0 -3
  8. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  9. package/dist/intervalIndex/endpointIndex.js +0 -3
  10. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  11. package/dist/intervalIndex/idIntervalIndex.js +3 -1
  12. package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
  13. package/dist/intervalIndex/overlappingIntervalsIndex.js +1 -3
  14. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  15. package/dist/intervalIndex/startpointInRangeIndex.js +0 -3
  16. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  17. package/dist/intervalTree.js +3 -1
  18. package/dist/intervalTree.js.map +1 -1
  19. package/dist/intervals/interval.js +8 -12
  20. package/dist/intervals/interval.js.map +1 -1
  21. package/dist/intervals/sequenceInterval.js +11 -17
  22. package/dist/intervals/sequenceInterval.js.map +1 -1
  23. package/dist/packageVersion.d.ts +1 -1
  24. package/dist/packageVersion.js +1 -1
  25. package/dist/packageVersion.js.map +1 -1
  26. package/dist/sequence.js +16 -35
  27. package/dist/sequence.js.map +1 -1
  28. package/dist/sequenceDeltaEvent.js +0 -16
  29. package/dist/sequenceDeltaEvent.js.map +1 -1
  30. package/dist/sequenceFactory.js +8 -8
  31. package/dist/sequenceFactory.js.map +1 -1
  32. package/dist/sharedIntervalCollection.js +9 -8
  33. package/dist/sharedIntervalCollection.js.map +1 -1
  34. package/dist/sharedSequence.js +2 -4
  35. package/dist/sharedSequence.js.map +1 -1
  36. package/dist/sharedString.js +0 -3
  37. package/dist/sharedString.js.map +1 -1
  38. package/lib/IntervalCollectionValues.js +0 -2
  39. package/lib/IntervalCollectionValues.js.map +1 -1
  40. package/lib/intervalCollection.js +13 -31
  41. package/lib/intervalCollection.js.map +1 -1
  42. package/lib/intervalCollectionMap.js +31 -37
  43. package/lib/intervalCollectionMap.js.map +1 -1
  44. package/lib/intervalIndex/endpointInRangeIndex.js +0 -3
  45. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  46. package/lib/intervalIndex/endpointIndex.js +0 -3
  47. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  48. package/lib/intervalIndex/idIntervalIndex.js +3 -1
  49. package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
  50. package/lib/intervalIndex/overlappingIntervalsIndex.js +1 -3
  51. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  52. package/lib/intervalIndex/startpointInRangeIndex.js +0 -3
  53. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  54. package/lib/intervalTree.js +3 -1
  55. package/lib/intervalTree.js.map +1 -1
  56. package/lib/intervals/interval.js +8 -12
  57. package/lib/intervals/interval.js.map +1 -1
  58. package/lib/intervals/sequenceInterval.js +11 -17
  59. package/lib/intervals/sequenceInterval.js.map +1 -1
  60. package/lib/packageVersion.d.ts +1 -1
  61. package/lib/packageVersion.js +1 -1
  62. package/lib/packageVersion.js.map +1 -1
  63. package/lib/sequence.js +16 -35
  64. package/lib/sequence.js.map +1 -1
  65. package/lib/sequenceDeltaEvent.js +0 -16
  66. package/lib/sequenceDeltaEvent.js.map +1 -1
  67. package/lib/sequenceFactory.js +8 -8
  68. package/lib/sequenceFactory.js.map +1 -1
  69. package/lib/sharedIntervalCollection.js +9 -8
  70. package/lib/sharedIntervalCollection.js.map +1 -1
  71. package/lib/sharedSequence.js +2 -4
  72. package/lib/sharedSequence.js.map +1 -1
  73. package/lib/sharedString.js +0 -3
  74. package/lib/sharedString.js.map +1 -1
  75. package/package.json +16 -16
  76. package/src/packageVersion.ts +1 -1
@@ -18,8 +18,6 @@ exports.makeSerializable = makeSerializable;
18
18
  * Manages a contained value type.
19
19
  */
20
20
  class IntervalCollectionTypeLocalValue {
21
- value;
22
- valueType;
23
21
  /**
24
22
  * Create a new ValueTypeLocalValue.
25
23
  * @param value - The instance of the value type stored within
@@ -1 +1 @@
1
- {"version":3,"file":"IntervalCollectionValues.js","sourceRoot":"","sources":["../src/IntervalCollectionValues.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,0EAAiG;AAkCjG,SAAgB,gBAAgB,CAC/B,UAAuC,EACvC,UAA4B,EAC5B,IAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7C,CAAC;AACH,CAAC;AAVD,4CAUC;AAED;;GAEG;AACH,MAAa,gCAAgC;IAS3B;IACC;IAPlB;;;;OAIG;IACH,YACiB,KAA4B,EAC3B,SAAqC;QADtC,UAAK,GAAL,KAAK,CAAuB;QAC3B,cAAS,GAAT,SAAS,CAA4B;IACpD,CAAC;IAEJ;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,cAAc,CACpB,UAA4B,EAC5B,IAAkB;QAElB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;SACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAsB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAjDD,4EAiDC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { serializeHandles, IFluidSerializer } from \"@fluidframework/shared-object-base/internal\";\n\nimport type { IntervalCollection } from \"./intervalCollection.js\";\nimport {\n\tIIntervalCollectionOperation,\n\tIIntervalCollectionType,\n\tISerializableIntervalCollection,\n\tISerializedIntervalCollection,\n} from \"./intervalCollectionMapInterfaces.js\";\nimport { type ISerializableInterval, IntervalOpType } from \"./intervals/index.js\";\n\n/**\n * A local value to be stored in a container type DDS.\n */\nexport interface ILocalIntervalCollection<T extends ISerializableInterval> {\n\t/**\n\t * Type indicator of the value stored within.\n\t */\n\treadonly type: string;\n\n\t/**\n\t * The in-memory value stored within.\n\t */\n\treadonly value: IntervalCollection<T>;\n\n\t/**\n\t * Retrieve the serialized form of the value stored within.\n\t * @param serializer - Data store runtime's serializer\n\t * @param bind - Container type's handle\n\t * @returns The serialized form of the contained value\n\t */\n\tmakeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedIntervalCollection;\n}\n\nexport function makeSerializable<T extends ISerializableInterval>(\n\tlocalValue: ILocalIntervalCollection<T>,\n\tserializer: IFluidSerializer,\n\tbind: IFluidHandle,\n): ISerializableIntervalCollection {\n\tconst value = localValue.makeSerialized(serializer, bind);\n\treturn {\n\t\ttype: value.type,\n\t\tvalue: value.value && JSON.parse(value.value),\n\t};\n}\n\n/**\n * Manages a contained value type.\n */\nexport class IntervalCollectionTypeLocalValue<T extends ISerializableInterval>\n\timplements ILocalIntervalCollection<T>\n{\n\t/**\n\t * Create a new ValueTypeLocalValue.\n\t * @param value - The instance of the value type stored within\n\t * @param valueType - The type object of the value type stored within\n\t */\n\tconstructor(\n\t\tpublic readonly value: IntervalCollection<T>,\n\t\tprivate readonly valueType: IIntervalCollectionType<T>,\n\t) {}\n\n\t/**\n\t * {@inheritDoc ILocalValue.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn this.valueType.name;\n\t}\n\n\t/**\n\t * {@inheritDoc ILocalValue.makeSerialized}\n\t */\n\tpublic makeSerialized(\n\t\tserializer: IFluidSerializer,\n\t\tbind: IFluidHandle,\n\t): ISerializedIntervalCollection {\n\t\tconst storedValueType = this.valueType.factory.store(this.value);\n\t\tconst value = serializeHandles(storedValueType, serializer, bind);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue,\n\t\t};\n\t}\n\n\t/**\n\t * Get the handler for a given op of this value type.\n\t * @param opName - The name of the operation that needs processing\n\t * @returns The object which can process the given op\n\t */\n\tpublic getOpHandler(opName: IntervalOpType): IIntervalCollectionOperation<T> {\n\t\tconst handler = this.valueType.ops.get(opName);\n\t\tif (!handler) {\n\t\t\tthrow new Error(\"Unknown type message\");\n\t\t}\n\n\t\treturn handler;\n\t}\n}\n"]}
1
+ {"version":3,"file":"IntervalCollectionValues.js","sourceRoot":"","sources":["../src/IntervalCollectionValues.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,0EAAiG;AAkCjG,SAAgB,gBAAgB,CAC/B,UAAuC,EACvC,UAA4B,EAC5B,IAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7C,CAAC;AACH,CAAC;AAVD,4CAUC;AAED;;GAEG;AACH,MAAa,gCAAgC;IAG5C;;;;OAIG;IACH,YACiB,KAA4B,EAC3B,SAAqC;QADtC,UAAK,GAAL,KAAK,CAAuB;QAC3B,cAAS,GAAT,SAAS,CAA4B;IACpD,CAAC;IAEJ;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,cAAc,CACpB,UAA4B,EAC5B,IAAkB;QAElB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;SACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAsB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAjDD,4EAiDC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { serializeHandles, IFluidSerializer } from \"@fluidframework/shared-object-base/internal\";\n\nimport type { IntervalCollection } from \"./intervalCollection.js\";\nimport {\n\tIIntervalCollectionOperation,\n\tIIntervalCollectionType,\n\tISerializableIntervalCollection,\n\tISerializedIntervalCollection,\n} from \"./intervalCollectionMapInterfaces.js\";\nimport { type ISerializableInterval, IntervalOpType } from \"./intervals/index.js\";\n\n/**\n * A local value to be stored in a container type DDS.\n */\nexport interface ILocalIntervalCollection<T extends ISerializableInterval> {\n\t/**\n\t * Type indicator of the value stored within.\n\t */\n\treadonly type: string;\n\n\t/**\n\t * The in-memory value stored within.\n\t */\n\treadonly value: IntervalCollection<T>;\n\n\t/**\n\t * Retrieve the serialized form of the value stored within.\n\t * @param serializer - Data store runtime's serializer\n\t * @param bind - Container type's handle\n\t * @returns The serialized form of the contained value\n\t */\n\tmakeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedIntervalCollection;\n}\n\nexport function makeSerializable<T extends ISerializableInterval>(\n\tlocalValue: ILocalIntervalCollection<T>,\n\tserializer: IFluidSerializer,\n\tbind: IFluidHandle,\n): ISerializableIntervalCollection {\n\tconst value = localValue.makeSerialized(serializer, bind);\n\treturn {\n\t\ttype: value.type,\n\t\tvalue: value.value && JSON.parse(value.value),\n\t};\n}\n\n/**\n * Manages a contained value type.\n */\nexport class IntervalCollectionTypeLocalValue<T extends ISerializableInterval>\n\timplements ILocalIntervalCollection<T>\n{\n\t/**\n\t * Create a new ValueTypeLocalValue.\n\t * @param value - The instance of the value type stored within\n\t * @param valueType - The type object of the value type stored within\n\t */\n\tconstructor(\n\t\tpublic readonly value: IntervalCollection<T>,\n\t\tprivate readonly valueType: IIntervalCollectionType<T>,\n\t) {}\n\n\t/**\n\t * {@inheritDoc ILocalValue.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn this.valueType.name;\n\t}\n\n\t/**\n\t * {@inheritDoc ILocalValue.makeSerialized}\n\t */\n\tpublic makeSerialized(\n\t\tserializer: IFluidSerializer,\n\t\tbind: IFluidHandle,\n\t): ISerializedIntervalCollection {\n\t\tconst storedValueType = this.valueType.factory.store(this.value);\n\t\tconst value = serializeHandles(storedValueType, serializer, bind);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue,\n\t\t};\n\t}\n\n\t/**\n\t * Get the handler for a given op of this value type.\n\t * @param opName - The name of the operation that needs processing\n\t * @returns The object which can process the given op\n\t */\n\tpublic getOpHandler(opName: IntervalOpType): IIntervalCollectionOperation<T> {\n\t\tconst handler = this.valueType.ops.get(opName);\n\t\tif (!handler) {\n\t\t\tthrow new Error(\"Unknown type message\");\n\t\t}\n\n\t\treturn handler;\n\t}\n}\n"]}
@@ -114,16 +114,6 @@ function createIntervalIndex() {
114
114
  }
115
115
  exports.createIntervalIndex = createIntervalIndex;
116
116
  class LocalIntervalCollection {
117
- client;
118
- label;
119
- helpers;
120
- options;
121
- onPositionChange;
122
- static legacyIdPrefix = "legacy";
123
- overlappingIntervalsIndex;
124
- idIntervalIndex;
125
- endIntervalIndex;
126
- indexes;
127
117
  constructor(client, label, helpers, options,
128
118
  /** Callback invoked each time one of the endpoints of an interval slides. */
129
119
  onPositionChange) {
@@ -192,6 +182,7 @@ class LocalIntervalCollection {
192
182
  return this.helpers.create(this.label, start, end, this.client, intervalType, op, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint);
193
183
  }
194
184
  addInterval(start, end, intervalType, props, op) {
185
+ var _a;
195
186
  const interval = this.createInterval(start, end, intervalType, op);
196
187
  if (interval) {
197
188
  if (!interval.properties) {
@@ -207,7 +198,7 @@ class LocalIntervalCollection {
207
198
  }
208
199
  interval.addProperties(props);
209
200
  }
210
- interval.properties[exports.reservedIntervalIdKey] ??= (0, uuid_1.v4)();
201
+ (_a = interval.properties)[exports.reservedIntervalIdKey] ?? (_a[exports.reservedIntervalIdKey] = (0, uuid_1.v4)());
211
202
  this.add(interval);
212
203
  }
213
204
  return interval;
@@ -284,6 +275,7 @@ class LocalIntervalCollection {
284
275
  }
285
276
  }
286
277
  exports.LocalIntervalCollection = LocalIntervalCollection;
278
+ LocalIntervalCollection.legacyIdPrefix = "legacy";
287
279
  class SequenceIntervalCollectionFactory {
288
280
  load(emitter, raw = [], options) {
289
281
  return new IntervalCollection(index_js_2.sequenceIntervalHelpers, true, emitter, raw, options);
@@ -293,7 +285,6 @@ class SequenceIntervalCollectionFactory {
293
285
  }
294
286
  }
295
287
  class SequenceIntervalCollectionValueType {
296
- static Name = "sharedStringIntervalCollection";
297
288
  get name() {
298
289
  return SequenceIntervalCollectionValueType.Name;
299
290
  }
@@ -303,10 +294,11 @@ class SequenceIntervalCollectionValueType {
303
294
  get ops() {
304
295
  return SequenceIntervalCollectionValueType._ops;
305
296
  }
306
- static _factory = new SequenceIntervalCollectionFactory();
307
- static _ops = makeOpsMap();
308
297
  }
309
298
  exports.SequenceIntervalCollectionValueType = SequenceIntervalCollectionValueType;
299
+ SequenceIntervalCollectionValueType.Name = "sharedStringIntervalCollection";
300
+ SequenceIntervalCollectionValueType._factory = new SequenceIntervalCollectionFactory();
301
+ SequenceIntervalCollectionValueType._ops = makeOpsMap();
310
302
  class IntervalCollectionFactory {
311
303
  load(emitter, raw = [], options) {
312
304
  const helpers = {
@@ -321,7 +313,6 @@ class IntervalCollectionFactory {
321
313
  }
322
314
  }
323
315
  class IntervalCollectionValueType {
324
- static Name = "sharedIntervalCollection";
325
316
  get name() {
326
317
  return IntervalCollectionValueType.Name;
327
318
  }
@@ -331,10 +322,11 @@ class IntervalCollectionValueType {
331
322
  get ops() {
332
323
  return IntervalCollectionValueType._ops;
333
324
  }
334
- static _factory = new IntervalCollectionFactory();
335
- static _ops = makeOpsMap();
336
325
  }
337
326
  exports.IntervalCollectionValueType = IntervalCollectionValueType;
327
+ IntervalCollectionValueType.Name = "sharedIntervalCollection";
328
+ IntervalCollectionValueType._factory = new IntervalCollectionFactory();
329
+ IntervalCollectionValueType._ops = makeOpsMap();
338
330
  function makeOpsMap() {
339
331
  const rebase = (collection, op, localOpMetadata) => {
340
332
  const { localSeq } = localOpMetadata;
@@ -393,8 +385,6 @@ function makeOpsMap() {
393
385
  }
394
386
  exports.makeOpsMap = makeOpsMap;
395
387
  class IntervalCollectionIterator {
396
- results;
397
- index;
398
388
  constructor(collection, iteratesForward = true, start, end) {
399
389
  this.results = [];
400
390
  this.index = 0;
@@ -417,18 +407,6 @@ class IntervalCollectionIterator {
417
407
  * {@inheritdoc IIntervalCollection}
418
408
  */
419
409
  class IntervalCollection extends client_utils_1.TypedEventEmitter {
420
- helpers;
421
- requiresClient;
422
- emitter;
423
- options;
424
- savedSerializedIntervals;
425
- localCollection;
426
- onDeserialize;
427
- client;
428
- localSeqToSerializedInterval = new Map();
429
- localSeqToRebasedInterval = new Map();
430
- pendingChangesStart = new Map();
431
- pendingChangesEnd = new Map();
432
410
  get attached() {
433
411
  return !!this.localCollection;
434
412
  }
@@ -438,6 +416,10 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
438
416
  this.requiresClient = requiresClient;
439
417
  this.emitter = emitter;
440
418
  this.options = options;
419
+ this.localSeqToSerializedInterval = new Map();
420
+ this.localSeqToRebasedInterval = new Map();
421
+ this.pendingChangesStart = new Map();
422
+ this.pendingChangesEnd = new Map();
441
423
  this.savedSerializedIntervals = Array.isArray(serializedIntervals)
442
424
  ? serializedIntervals
443
425
  : serializedIntervals.intervals.map((i) => decompressInterval(i, serializedIntervals.label));