@fluidframework/sequence 2.31.1 → 2.32.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 (119) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/intervalCollection.d.ts +5 -9
  7. package/dist/intervalCollection.d.ts.map +1 -1
  8. package/dist/intervalCollection.js +38 -104
  9. package/dist/intervalCollection.js.map +1 -1
  10. package/dist/intervalCollectionMap.d.ts.map +1 -1
  11. package/dist/intervalCollectionMap.js +5 -4
  12. package/dist/intervalCollectionMap.js.map +1 -1
  13. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  14. package/dist/intervalIndex/endpointInRangeIndex.js +2 -2
  15. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  16. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  17. package/dist/intervalIndex/endpointIndex.js +2 -3
  18. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  19. package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -1
  20. package/dist/intervalIndex/idIntervalIndex.js +0 -7
  21. package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
  22. package/dist/intervalIndex/index.d.ts +0 -1
  23. package/dist/intervalIndex/index.d.ts.map +1 -1
  24. package/dist/intervalIndex/index.js +1 -3
  25. package/dist/intervalIndex/index.js.map +1 -1
  26. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  27. package/dist/intervalIndex/overlappingIntervalsIndex.js +2 -2
  28. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  29. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  30. package/dist/intervalIndex/startpointInRangeIndex.js +2 -2
  31. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  32. package/dist/intervals/index.d.ts +2 -2
  33. package/dist/intervals/index.d.ts.map +1 -1
  34. package/dist/intervals/index.js +3 -1
  35. package/dist/intervals/index.js.map +1 -1
  36. package/dist/intervals/intervalUtils.d.ts +1 -5
  37. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  38. package/dist/intervals/intervalUtils.js.map +1 -1
  39. package/dist/intervals/sequenceInterval.d.ts +20 -9
  40. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  41. package/dist/intervals/sequenceInterval.js +82 -27
  42. package/dist/intervals/sequenceInterval.js.map +1 -1
  43. package/dist/packageVersion.d.ts +1 -1
  44. package/dist/packageVersion.js +1 -1
  45. package/dist/packageVersion.js.map +1 -1
  46. package/dist/revertibles.d.ts.map +1 -1
  47. package/dist/revertibles.js +8 -7
  48. package/dist/revertibles.js.map +1 -1
  49. package/lib/index.d.ts +1 -1
  50. package/lib/index.d.ts.map +1 -1
  51. package/lib/index.js +1 -1
  52. package/lib/index.js.map +1 -1
  53. package/lib/intervalCollection.d.ts +5 -9
  54. package/lib/intervalCollection.d.ts.map +1 -1
  55. package/lib/intervalCollection.js +39 -105
  56. package/lib/intervalCollection.js.map +1 -1
  57. package/lib/intervalCollectionMap.d.ts.map +1 -1
  58. package/lib/intervalCollectionMap.js +6 -5
  59. package/lib/intervalCollectionMap.js.map +1 -1
  60. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  61. package/lib/intervalIndex/endpointInRangeIndex.js +3 -3
  62. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  63. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
  64. package/lib/intervalIndex/endpointIndex.js +3 -4
  65. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  66. package/lib/intervalIndex/idIntervalIndex.d.ts.map +1 -1
  67. package/lib/intervalIndex/idIntervalIndex.js +0 -7
  68. package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
  69. package/lib/intervalIndex/index.d.ts +0 -1
  70. package/lib/intervalIndex/index.d.ts.map +1 -1
  71. package/lib/intervalIndex/index.js +0 -1
  72. package/lib/intervalIndex/index.js.map +1 -1
  73. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  74. package/lib/intervalIndex/overlappingIntervalsIndex.js +3 -3
  75. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  76. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  77. package/lib/intervalIndex/startpointInRangeIndex.js +3 -3
  78. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  79. package/lib/intervals/index.d.ts +2 -2
  80. package/lib/intervals/index.d.ts.map +1 -1
  81. package/lib/intervals/index.js +1 -1
  82. package/lib/intervals/index.js.map +1 -1
  83. package/lib/intervals/intervalUtils.d.ts +1 -5
  84. package/lib/intervals/intervalUtils.d.ts.map +1 -1
  85. package/lib/intervals/intervalUtils.js.map +1 -1
  86. package/lib/intervals/sequenceInterval.d.ts +20 -9
  87. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  88. package/lib/intervals/sequenceInterval.js +81 -28
  89. package/lib/intervals/sequenceInterval.js.map +1 -1
  90. package/lib/packageVersion.d.ts +1 -1
  91. package/lib/packageVersion.js +1 -1
  92. package/lib/packageVersion.js.map +1 -1
  93. package/lib/revertibles.d.ts.map +1 -1
  94. package/lib/revertibles.js +8 -7
  95. package/lib/revertibles.js.map +1 -1
  96. package/package.json +19 -18
  97. package/src/index.ts +0 -1
  98. package/src/intervalCollection.ts +59 -144
  99. package/src/intervalCollectionMap.ts +5 -5
  100. package/src/intervalIndex/endpointInRangeIndex.ts +3 -15
  101. package/src/intervalIndex/endpointIndex.ts +3 -17
  102. package/src/intervalIndex/idIntervalIndex.ts +0 -7
  103. package/src/intervalIndex/index.ts +0 -1
  104. package/src/intervalIndex/overlappingIntervalsIndex.ts +3 -12
  105. package/src/intervalIndex/startpointInRangeIndex.ts +3 -15
  106. package/src/intervals/index.ts +2 -1
  107. package/src/intervals/intervalUtils.ts +0 -7
  108. package/src/intervals/sequenceInterval.ts +124 -33
  109. package/src/packageVersion.ts +1 -1
  110. package/src/revertibles.ts +8 -7
  111. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +0 -11
  112. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +0 -1
  113. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -38
  114. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  115. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +0 -11
  116. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +0 -1
  117. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -34
  118. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  119. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +0 -80
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @fluidframework/sequence
2
2
 
3
+ ## 2.32.0
4
+
5
+ Dependency updates only.
6
+
3
7
  ## 2.31.0
4
8
 
5
9
  Dependency updates only.
package/dist/index.d.ts CHANGED
@@ -17,7 +17,7 @@
17
17
  export { SequenceOptions } from "./intervalCollectionMapInterfaces.js";
18
18
  export { IInterval, IntervalOpType, IntervalType, ISerializableInterval, ISerializedInterval, SequenceInterval, SerializedIntervalDelta, IntervalStickiness, } from "./intervals/index.js";
19
19
  export { DeserializeCallback, IIntervalCollectionEvent, IIntervalCollection, ISequenceIntervalCollection, ISequenceIntervalCollectionEvents, } from "./intervalCollection.js";
20
- export { IntervalIndex, SequenceIntervalIndex, SequenceIntervalIndexes, IOverlappingIntervalsIndex, ISequenceOverlappingIntervalsIndex, IEndpointIndex, createOverlappingIntervalsIndex, createOverlappingSequenceIntervalsIndex, createEndpointIndex, } from "./intervalIndex/index.js";
20
+ export { IntervalIndex, SequenceIntervalIndex, SequenceIntervalIndexes, IOverlappingIntervalsIndex, ISequenceOverlappingIntervalsIndex, IEndpointIndex, createOverlappingIntervalsIndex, createEndpointIndex, } from "./intervalIndex/index.js";
21
21
  export { appendAddIntervalToRevertibles, appendChangeIntervalToRevertibles, appendDeleteIntervalToRevertibles, appendIntervalPropertyChangedToRevertibles, appendSharedStringDeltaToRevertibles, discardSharedStringRevertibles, IntervalRevertible, revertSharedStringRevertibles, SharedStringRevertible, } from "./revertibles.js";
22
22
  export { ISharedSegmentSequenceEvents, SharedSegmentSequence, ISharedSegmentSequence, } from "./sequence.js";
23
23
  export { ISequenceDeltaRange, SequenceDeltaEvent, SequenceEvent, SequenceMaintenanceEvent, } from "./sequenceDeltaEvent.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EACN,SAAS,EACT,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,iCAAiC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,EAClC,cAAc,EACd,+BAA+B,EAC/B,uCAAuC,EACvC,mBAAmB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,0CAA0C,EAC1C,oCAAoC,EACpC,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,wBAAwB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACN,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,IAAI,EACJ,qBAAqB,EACrB,aAAa,GACb,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EACN,SAAS,EACT,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,iCAAiC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,EAClC,cAAc,EACd,+BAA+B,EAC/B,mBAAmB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,0CAA0C,EAC1C,oCAAoC,EACpC,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,wBAAwB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACN,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,IAAI,EACJ,qBAAqB,EACrB,aAAa,GACb,MAAM,qCAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -4,14 +4,13 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.Side = exports.TrackingGroup = exports.reservedRangeLabelsKey = exports.reservedTileLabelsKey = exports.reservedMarkerIdKey = exports.MergeTreeDeltaType = exports.TextSegment = exports.ReferenceType = exports.BaseSegment = exports.Marker = exports.SubSequence = exports.SharedSequence = exports.SharedStringClass = exports.getTextAndMarkers = exports.SharedString = exports.SharedSegmentSequence = exports.revertSharedStringRevertibles = exports.discardSharedStringRevertibles = exports.appendSharedStringDeltaToRevertibles = exports.appendIntervalPropertyChangedToRevertibles = exports.appendDeleteIntervalToRevertibles = exports.appendChangeIntervalToRevertibles = exports.appendAddIntervalToRevertibles = exports.createEndpointIndex = exports.createOverlappingSequenceIntervalsIndex = exports.createOverlappingIntervalsIndex = exports.IntervalStickiness = exports.IntervalType = exports.IntervalOpType = void 0;
7
+ exports.Side = exports.TrackingGroup = exports.reservedRangeLabelsKey = exports.reservedTileLabelsKey = exports.reservedMarkerIdKey = exports.MergeTreeDeltaType = exports.TextSegment = exports.ReferenceType = exports.BaseSegment = exports.Marker = exports.SubSequence = exports.SharedSequence = exports.SharedStringClass = exports.getTextAndMarkers = exports.SharedString = exports.SharedSegmentSequence = exports.revertSharedStringRevertibles = exports.discardSharedStringRevertibles = exports.appendSharedStringDeltaToRevertibles = exports.appendIntervalPropertyChangedToRevertibles = exports.appendDeleteIntervalToRevertibles = exports.appendChangeIntervalToRevertibles = exports.appendAddIntervalToRevertibles = exports.createEndpointIndex = exports.createOverlappingIntervalsIndex = exports.IntervalStickiness = exports.IntervalType = exports.IntervalOpType = void 0;
8
8
  var index_js_1 = require("./intervals/index.js");
9
9
  Object.defineProperty(exports, "IntervalOpType", { enumerable: true, get: function () { return index_js_1.IntervalOpType; } });
10
10
  Object.defineProperty(exports, "IntervalType", { enumerable: true, get: function () { return index_js_1.IntervalType; } });
11
11
  Object.defineProperty(exports, "IntervalStickiness", { enumerable: true, get: function () { return index_js_1.IntervalStickiness; } });
12
12
  var index_js_2 = require("./intervalIndex/index.js");
13
13
  Object.defineProperty(exports, "createOverlappingIntervalsIndex", { enumerable: true, get: function () { return index_js_2.createOverlappingIntervalsIndex; } });
14
- Object.defineProperty(exports, "createOverlappingSequenceIntervalsIndex", { enumerable: true, get: function () { return index_js_2.createOverlappingSequenceIntervalsIndex; } });
15
14
  Object.defineProperty(exports, "createEndpointIndex", { enumerable: true, get: function () { return index_js_2.createEndpointIndex; } });
16
15
  var revertibles_js_1 = require("./revertibles.js");
17
16
  Object.defineProperty(exports, "appendAddIntervalToRevertibles", { enumerable: true, get: function () { return revertibles_js_1.appendAddIntervalToRevertibles; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAeH,iDAS8B;AAP7B,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AAKZ,8GAAA,kBAAkB,OAAA;AASnB,qDAUkC;AAHjC,2HAAA,+BAA+B,OAAA;AAC/B,mIAAA,uCAAuC,OAAA;AACvC,+GAAA,mBAAmB,OAAA;AAEpB,mDAU0B;AATzB,gIAAA,8BAA8B,OAAA;AAC9B,mIAAA,iCAAiC,OAAA;AACjC,mIAAA,iCAAiC,OAAA;AACjC,4IAAA,0CAA0C,OAAA;AAC1C,sIAAA,oCAAoC,OAAA;AACpC,gIAAA,8BAA8B,OAAA;AAE9B,+HAAA,6BAA6B,OAAA;AAG9B,6CAIuB;AAFtB,oHAAA,qBAAqB,OAAA;AAStB,2DAAoD;AAA3C,kHAAA,YAAY,OAAA;AACrB,qDAK2B;AAJ1B,oHAAA,iBAAiB,OAAA;AAGjB,oHAAA,iBAAiB,OAAA;AAGlB,yDAAmF;AAAzD,mHAAA,cAAc,OAAA;AAAE,gHAAA,WAAW,OAAA;AAErD,gEAkB6C;AAhB5C,kGAAA,MAAM,OAAA;AACN,uGAAA,WAAW,OAAA;AAEX,yGAAA,aAAa,OAAA;AAGb,uGAAA,WAAW,OAAA;AACX,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,yGAAA,aAAa,OAAA;AAEb,gGAAA,IAAI,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Supports distributed data structures which are list-like.\n *\n * This library's main export is {@link SharedString}, a DDS for storing and simultaneously editing a sequence of\n * text.\n *\n * See the package's README for a high-level introduction to `SharedString`'s feature set.\n * @remarks Note that SharedString is a sequence DDS but it has additional specialized features and behaviors for\n * working with text.\n *\n * @packageDocumentation\n */\nexport { SequenceOptions } from \"./intervalCollectionMapInterfaces.js\";\nexport {\n\tIInterval,\n\tIntervalOpType,\n\tIntervalType,\n\tISerializableInterval,\n\tISerializedInterval,\n\tSequenceInterval,\n\tSerializedIntervalDelta,\n\tIntervalStickiness,\n} from \"./intervals/index.js\";\nexport {\n\tDeserializeCallback,\n\tIIntervalCollectionEvent,\n\tIIntervalCollection,\n\tISequenceIntervalCollection,\n\tISequenceIntervalCollectionEvents,\n} from \"./intervalCollection.js\";\nexport {\n\tIntervalIndex,\n\tSequenceIntervalIndex,\n\tSequenceIntervalIndexes,\n\tIOverlappingIntervalsIndex,\n\tISequenceOverlappingIntervalsIndex,\n\tIEndpointIndex,\n\tcreateOverlappingIntervalsIndex,\n\tcreateOverlappingSequenceIntervalsIndex,\n\tcreateEndpointIndex,\n} from \"./intervalIndex/index.js\";\nexport {\n\tappendAddIntervalToRevertibles,\n\tappendChangeIntervalToRevertibles,\n\tappendDeleteIntervalToRevertibles,\n\tappendIntervalPropertyChangedToRevertibles,\n\tappendSharedStringDeltaToRevertibles,\n\tdiscardSharedStringRevertibles,\n\tIntervalRevertible,\n\trevertSharedStringRevertibles,\n\tSharedStringRevertible,\n} from \"./revertibles.js\";\nexport {\n\tISharedSegmentSequenceEvents,\n\tSharedSegmentSequence,\n\tISharedSegmentSequence,\n} from \"./sequence.js\";\nexport {\n\tISequenceDeltaRange,\n\tSequenceDeltaEvent,\n\tSequenceEvent,\n\tSequenceMaintenanceEvent,\n} from \"./sequenceDeltaEvent.js\";\nexport { SharedString } from \"./sequenceFactory.js\";\nexport {\n\tgetTextAndMarkers,\n\tISharedString,\n\tSharedStringSegment,\n\tSharedStringClass,\n} from \"./sharedString.js\";\nexport { ISharedIntervalCollection } from \"./sharedIntervalCollection.js\";\nexport { IJSONRunSegment, SharedSequence, SubSequence } from \"./sharedSequence.js\";\n\nexport {\n\tISegment,\n\tMarker,\n\tBaseSegment,\n\tReferencePosition,\n\tReferenceType,\n\tPropertySet,\n\tMapLike,\n\tTextSegment,\n\tMergeTreeDeltaType,\n\treservedMarkerIdKey,\n\treservedTileLabelsKey,\n\treservedRangeLabelsKey,\n\tTrackingGroup,\n\tLocalReferencePosition,\n\tSide,\n\tInteriorSequencePlace,\n\tSequencePlace,\n} from \"@fluidframework/merge-tree/internal\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAeH,iDAS8B;AAP7B,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AAKZ,8GAAA,kBAAkB,OAAA;AASnB,qDASkC;AAFjC,2HAAA,+BAA+B,OAAA;AAC/B,+GAAA,mBAAmB,OAAA;AAEpB,mDAU0B;AATzB,gIAAA,8BAA8B,OAAA;AAC9B,mIAAA,iCAAiC,OAAA;AACjC,mIAAA,iCAAiC,OAAA;AACjC,4IAAA,0CAA0C,OAAA;AAC1C,sIAAA,oCAAoC,OAAA;AACpC,gIAAA,8BAA8B,OAAA;AAE9B,+HAAA,6BAA6B,OAAA;AAG9B,6CAIuB;AAFtB,oHAAA,qBAAqB,OAAA;AAStB,2DAAoD;AAA3C,kHAAA,YAAY,OAAA;AACrB,qDAK2B;AAJ1B,oHAAA,iBAAiB,OAAA;AAGjB,oHAAA,iBAAiB,OAAA;AAGlB,yDAAmF;AAAzD,mHAAA,cAAc,OAAA;AAAE,gHAAA,WAAW,OAAA;AAErD,gEAkB6C;AAhB5C,kGAAA,MAAM,OAAA;AACN,uGAAA,WAAW,OAAA;AAEX,yGAAA,aAAa,OAAA;AAGb,uGAAA,WAAW,OAAA;AACX,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,yGAAA,aAAa,OAAA;AAEb,gGAAA,IAAI,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Supports distributed data structures which are list-like.\n *\n * This library's main export is {@link SharedString}, a DDS for storing and simultaneously editing a sequence of\n * text.\n *\n * See the package's README for a high-level introduction to `SharedString`'s feature set.\n * @remarks Note that SharedString is a sequence DDS but it has additional specialized features and behaviors for\n * working with text.\n *\n * @packageDocumentation\n */\nexport { SequenceOptions } from \"./intervalCollectionMapInterfaces.js\";\nexport {\n\tIInterval,\n\tIntervalOpType,\n\tIntervalType,\n\tISerializableInterval,\n\tISerializedInterval,\n\tSequenceInterval,\n\tSerializedIntervalDelta,\n\tIntervalStickiness,\n} from \"./intervals/index.js\";\nexport {\n\tDeserializeCallback,\n\tIIntervalCollectionEvent,\n\tIIntervalCollection,\n\tISequenceIntervalCollection,\n\tISequenceIntervalCollectionEvents,\n} from \"./intervalCollection.js\";\nexport {\n\tIntervalIndex,\n\tSequenceIntervalIndex,\n\tSequenceIntervalIndexes,\n\tIOverlappingIntervalsIndex,\n\tISequenceOverlappingIntervalsIndex,\n\tIEndpointIndex,\n\tcreateOverlappingIntervalsIndex,\n\tcreateEndpointIndex,\n} from \"./intervalIndex/index.js\";\nexport {\n\tappendAddIntervalToRevertibles,\n\tappendChangeIntervalToRevertibles,\n\tappendDeleteIntervalToRevertibles,\n\tappendIntervalPropertyChangedToRevertibles,\n\tappendSharedStringDeltaToRevertibles,\n\tdiscardSharedStringRevertibles,\n\tIntervalRevertible,\n\trevertSharedStringRevertibles,\n\tSharedStringRevertible,\n} from \"./revertibles.js\";\nexport {\n\tISharedSegmentSequenceEvents,\n\tSharedSegmentSequence,\n\tISharedSegmentSequence,\n} from \"./sequence.js\";\nexport {\n\tISequenceDeltaRange,\n\tSequenceDeltaEvent,\n\tSequenceEvent,\n\tSequenceMaintenanceEvent,\n} from \"./sequenceDeltaEvent.js\";\nexport { SharedString } from \"./sequenceFactory.js\";\nexport {\n\tgetTextAndMarkers,\n\tISharedString,\n\tSharedStringSegment,\n\tSharedStringClass,\n} from \"./sharedString.js\";\nexport { ISharedIntervalCollection } from \"./sharedIntervalCollection.js\";\nexport { IJSONRunSegment, SharedSequence, SubSequence } from \"./sharedSequence.js\";\n\nexport {\n\tISegment,\n\tMarker,\n\tBaseSegment,\n\tReferencePosition,\n\tReferenceType,\n\tPropertySet,\n\tMapLike,\n\tTextSegment,\n\tMergeTreeDeltaType,\n\treservedMarkerIdKey,\n\treservedTileLabelsKey,\n\treservedRangeLabelsKey,\n\tTrackingGroup,\n\tLocalReferencePosition,\n\tSide,\n\tInteriorSequencePlace,\n\tSequencePlace,\n} from \"@fluidframework/merge-tree/internal\";\n"]}
@@ -8,8 +8,7 @@ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/in
8
8
  import { Client, LocalReferencePosition, PropertySet, Side, SequencePlace } from "@fluidframework/merge-tree/internal";
9
9
  import { IIntervalCollectionOperation, IMapMessageLocalMetadata, SequenceOptions, type IIntervalCollectionTypeOperationValue } from "./intervalCollectionMapInterfaces.js";
10
10
  import { type IEndpointIndex, type IIdIntervalIndex, type IntervalIndex, type ISequenceOverlappingIntervalsIndex, type SequenceIntervalIndex } from "./intervalIndex/index.js";
11
- import { CompressedSerializedInterval, ISerializedInterval, IntervalDeltaOpType, IntervalStickiness, IntervalType, SequenceInterval, SequenceIntervalClass, SerializedIntervalDelta, type ISerializableInterval, type ISerializableIntervalPrivate } from "./intervals/index.js";
12
- export declare const reservedIntervalIdKey = "intervalId";
11
+ import { CompressedSerializedInterval, ISerializedInterval, IntervalDeltaOpType, IntervalStickiness, SequenceInterval, SequenceIntervalClass, SerializedIntervalDelta, type ISerializableInterval } from "./intervals/index.js";
13
12
  export type ISerializedIntervalCollectionV1 = ISerializedInterval[];
14
13
  export interface ISerializedIntervalCollectionV2 {
15
14
  label: string;
@@ -29,7 +28,6 @@ export declare class LocalIntervalCollection {
29
28
  private readonly options;
30
29
  /** Callback invoked each time one of the endpoints of an interval slides. */
31
30
  private readonly onPositionChange?;
32
- private static readonly legacyIdPrefix;
33
31
  readonly overlappingIntervalsIndex: ISequenceOverlappingIntervalsIndex;
34
32
  readonly idIntervalIndex: IIdIntervalIndex;
35
33
  readonly endIntervalIndex: IEndpointIndex;
@@ -37,7 +35,6 @@ export declare class LocalIntervalCollection {
37
35
  constructor(client: Client, label: string, options: Partial<SequenceOptions>,
38
36
  /** Callback invoked each time one of the endpoints of an interval slides. */
39
37
  onPositionChange?: ((interval: SequenceIntervalClass, previousInterval: SequenceIntervalClass) => void) | undefined);
40
- createLegacyId(start: number | "start" | "end", end: number | "start" | "end"): string;
41
38
  /**
42
39
  * Validates that a serialized interval has the ID property. Creates an ID
43
40
  * if one does not already exist
@@ -45,13 +42,11 @@ export declare class LocalIntervalCollection {
45
42
  * @param serializedInterval - The interval to be checked
46
43
  * @returns The interval's existing or newly created id
47
44
  */
48
- ensureSerializedId(serializedInterval: ISerializedInterval): string;
49
45
  private removeIntervalFromIndexes;
50
46
  appendIndex(index: SequenceIntervalIndex): void;
51
47
  removeIndex(index: SequenceIntervalIndex): boolean;
52
48
  removeExistingInterval(interval: SequenceIntervalClass): void;
53
- createInterval(start: SequencePlace, end: SequencePlace, intervalType: IntervalType, op?: ISequencedDocumentMessage): SequenceIntervalClass;
54
- addInterval(start: SequencePlace, end: SequencePlace, intervalType: IntervalType, props?: PropertySet, op?: ISequencedDocumentMessage): SequenceIntervalClass;
49
+ addInterval(id: string, start: SequencePlace, end: SequencePlace, props?: PropertySet, op?: ISequencedDocumentMessage): SequenceIntervalClass;
55
50
  private linkEndpointsToInterval;
56
51
  private addIntervalToIndexes;
57
52
  add(interval: SequenceIntervalClass): void;
@@ -601,12 +596,13 @@ export declare class IntervalCollection extends TypedEventEmitter<ISequenceInter
601
596
  /**
602
597
  * {@inheritdoc IIntervalCollection.getIntervalById}
603
598
  */
604
- getIntervalById(id: string): ISerializableIntervalPrivate | undefined;
599
+ getIntervalById(id: string): SequenceIntervalClass | undefined;
605
600
  private assertStickinessEnabled;
606
601
  /**
607
602
  * {@inheritdoc IIntervalCollection.add}
608
603
  */
609
- add({ start, end, props, }: {
604
+ add({ id, start, end, props, }: {
605
+ id?: string;
610
606
  start: SequencePlace;
611
607
  end: SequencePlace;
612
608
  props?: PropertySet;
@@ -1 +1 @@
1
- {"version":3,"file":"intervalCollection.d.ts","sourceRoot":"","sources":["../src/intervalCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intervalCollection.d.ts","sourceRoot":"","sources":["../src/intervalCollection.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.intervalLocatorFromEndpoint = exports.IntervalCollection = exports.opsMap = exports.LocalIntervalCollection = exports.computeStickinessFromSide = exports.toOptionalSequencePlace = exports.toSequencePlace = exports.sidesFromStickiness = exports.reservedIntervalIdKey = void 0;
7
+ exports.intervalLocatorFromEndpoint = exports.IntervalCollection = exports.opsMap = exports.LocalIntervalCollection = exports.computeStickinessFromSide = exports.toOptionalSequencePlace = exports.toSequencePlace = exports.sidesFromStickiness = void 0;
8
8
  /* eslint-disable no-bitwise */
9
9
  const client_utils_1 = require("@fluid-internal/client-utils");
10
10
  const internal_1 = require("@fluidframework/core-utils/internal");
@@ -13,7 +13,6 @@ const internal_3 = require("@fluidframework/telemetry-utils/internal");
13
13
  const uuid_1 = require("uuid");
14
14
  const index_js_1 = require("./intervalIndex/index.js");
15
15
  const index_js_2 = require("./intervals/index.js");
16
- exports.reservedIntervalIdKey = "intervalId";
17
16
  function sidesFromStickiness(stickiness) {
18
17
  const startSide = (stickiness & index_js_2.IntervalStickiness.START) !== 0 ? internal_2.Side.After : internal_2.Side.Before;
19
18
  const endSide = (stickiness & index_js_2.IntervalStickiness.END) !== 0 ? internal_2.Side.Before : internal_2.Side.After;
@@ -95,11 +94,6 @@ class LocalIntervalCollection {
95
94
  this.endIntervalIndex,
96
95
  ]);
97
96
  }
98
- createLegacyId(start, end) {
99
- // Create a non-unique ID based on start and end to be used on intervals that come from legacy clients
100
- // without ID's.
101
- return `${LocalIntervalCollection.legacyIdPrefix}${start}-${end}`;
102
- }
103
97
  /**
104
98
  * Validates that a serialized interval has the ID property. Creates an ID
105
99
  * if one does not already exist
@@ -107,26 +101,6 @@ class LocalIntervalCollection {
107
101
  * @param serializedInterval - The interval to be checked
108
102
  * @returns The interval's existing or newly created id
109
103
  */
110
- ensureSerializedId(serializedInterval) {
111
- let id = serializedInterval.properties?.[exports.reservedIntervalIdKey];
112
- if (id === undefined) {
113
- // Back-compat: 0.39 and earlier did not have IDs on intervals. If an interval from such a client
114
- // comes over the wire, create a non-unique one based on start/end.
115
- // This will allow all clients to refer to this interval consistently.
116
- id = this.createLegacyId(serializedInterval.start, serializedInterval.end);
117
- const newProps = {
118
- [exports.reservedIntervalIdKey]: id,
119
- };
120
- serializedInterval.properties = (0, internal_2.addProperties)(serializedInterval.properties, newProps);
121
- }
122
- // Make the ID immutable for safety's sake.
123
- Object.defineProperty(serializedInterval.properties, exports.reservedIntervalIdKey, {
124
- configurable: false,
125
- enumerable: true,
126
- writable: false,
127
- });
128
- return id;
129
- }
130
104
  removeIntervalFromIndexes(interval) {
131
105
  for (const index of this.indexes) {
132
106
  index.remove(interval);
@@ -142,28 +116,16 @@ class LocalIntervalCollection {
142
116
  this.removeIntervalFromIndexes(interval);
143
117
  this.removeIntervalListeners(interval);
144
118
  }
145
- createInterval(start, end, intervalType, op) {
146
- return (0, index_js_2.createSequenceInterval)(this.label, start, end, this.client, intervalType, op, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint);
147
- }
148
- addInterval(start, end, intervalType, props, op) {
149
- const interval = this.createInterval(start, end, intervalType, op);
150
- if (interval) {
151
- if (!interval.properties) {
152
- interval.properties = (0, internal_2.createMap)();
153
- }
154
- if (props) {
155
- // This check is intended to prevent scenarios where a random interval is created and then
156
- // inserted into a collection. The aim is to ensure that the collection is created first
157
- // then the user can create/add intervals based on the collection
158
- if (props[internal_2.reservedRangeLabelsKey] !== undefined &&
159
- props[internal_2.reservedRangeLabelsKey][0] !== this.label) {
160
- throw new internal_3.LoggingError("Adding an interval that belongs to another interval collection is not permitted");
161
- }
162
- interval.properties = (0, internal_2.addProperties)(interval.properties, props);
163
- }
164
- interval.properties[exports.reservedIntervalIdKey] ??= (0, uuid_1.v4)();
165
- this.add(interval);
119
+ addInterval(id, start, end, props, op) {
120
+ // This check is intended to prevent scenarios where a random interval is created and then
121
+ // inserted into a collection. The aim is to ensure that the collection is created first
122
+ // then the user can create/add intervals based on the collection
123
+ if (props?.[internal_2.reservedRangeLabelsKey] !== undefined &&
124
+ props[internal_2.reservedRangeLabelsKey][0] !== this.label) {
125
+ throw new internal_3.LoggingError("Adding an interval that belongs to another interval collection is not permitted");
166
126
  }
127
+ const interval = (0, index_js_2.createSequenceInterval)(this.label, id, start, end, this.client, index_js_2.IntervalType.SlideOnRemove, op, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint, props);
128
+ this.add(interval);
167
129
  return interval;
168
130
  }
169
131
  linkEndpointsToInterval(interval) {
@@ -235,7 +197,6 @@ class LocalIntervalCollection {
235
197
  }
236
198
  }
237
199
  exports.LocalIntervalCollection = LocalIntervalCollection;
238
- LocalIntervalCollection.legacyIdPrefix = "legacy";
239
200
  const rebase = (collection, op, localOpMetadata) => {
240
201
  const { localSeq } = localOpMetadata;
241
202
  const rebasedValue = collection.rebaseLocalInterval(op.opName, op.value, localSeq);
@@ -361,7 +322,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
361
322
  }, localSeq);
362
323
  // if segment is undefined, it slid off the string
363
324
  (0, internal_1.assert)(segment !== undefined, 0x54e /* No segment found */);
364
- const segoff = (0, internal_2.getSlideToSegoff)({ segment, offset }, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint) ?? segment;
325
+ const segoff = (0, internal_2.getSlideToSegoff)({ segment, offset }, undefined, (0, internal_2.createLocalReconnectingPerspective)(this.client.getCurrentSeq(), clientId, localSeq), this.options.mergeTreeReferencesCanSlideToEndpoint) ?? segment;
365
326
  // case happens when rebasing op, but concurrently entire string has been deleted
366
327
  if (segoff.segment === undefined || segoff.offset === undefined) {
367
328
  return internal_2.DetachedReferencePosition;
@@ -402,18 +363,15 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
402
363
  this.localCollection = new LocalIntervalCollection(client, label, this.options, (interval, previousInterval) => this.emitChange(interval, previousInterval, true, true));
403
364
  if (this.savedSerializedIntervals) {
404
365
  for (const serializedInterval of this.savedSerializedIntervals) {
405
- this.localCollection.ensureSerializedId(serializedInterval);
406
- const { start: startPos, end: endPos, intervalType, properties, startSide, endSide, } = serializedInterval;
366
+ const { id, properties } = (0, index_js_2.getSerializedProperties)(serializedInterval);
367
+ const { start: startPos, end: endPos, intervalType, startSide, endSide, } = serializedInterval;
407
368
  const start = typeof startPos === "number" && startSide !== undefined
408
369
  ? { pos: startPos, side: startSide }
409
370
  : startPos;
410
371
  const end = typeof endPos === "number" && endSide !== undefined
411
372
  ? { pos: endPos, side: endSide }
412
373
  : endPos;
413
- const interval = (0, index_js_2.createSequenceInterval)(label, start, end, client, intervalType, undefined, true, this.options.mergeTreeReferencesCanSlideToEndpoint);
414
- if (properties) {
415
- interval.properties = (0, internal_2.addProperties)(interval.properties, properties);
416
- }
374
+ const interval = (0, index_js_2.createSequenceInterval)(label, id, start, end, client, intervalType, undefined, true, this.options.mergeTreeReferencesCanSlideToEndpoint, properties);
417
375
  this.localCollection.add(interval);
418
376
  }
419
377
  }
@@ -459,7 +417,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
459
417
  /**
460
418
  * {@inheritdoc IIntervalCollection.add}
461
419
  */
462
- add({ start, end, props, }) {
420
+ add({ id, start, end, props, }) {
463
421
  if (!this.localCollection) {
464
422
  throw new internal_3.LoggingError("attach must be called prior to adding intervals");
465
423
  }
@@ -468,24 +426,14 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
468
426
  endPos !== undefined &&
469
427
  startSide !== undefined &&
470
428
  endSide !== undefined, 0x793 /* start and end cannot be undefined because they were not passed in as undefined */);
471
- const stickiness = computeStickinessFromSide(startPos, startSide, endPos, endSide);
472
429
  this.assertStickinessEnabled(start, end);
473
- const interval = this.localCollection.addInterval(toSequencePlace(startPos, startSide), toSequencePlace(endPos, endSide), index_js_2.IntervalType.SlideOnRemove, props);
430
+ const interval = this.localCollection.addInterval(id ?? (0, uuid_1.v4)(), toSequencePlace(startPos, startSide), toSequencePlace(endPos, endSide), props);
474
431
  if (interval) {
475
432
  if (!this.isCollaborating) {
476
433
  setSlideOnRemove(interval.start);
477
434
  setSlideOnRemove(interval.end);
478
435
  }
479
- const serializedInterval = {
480
- start: startPos,
481
- end: endPos,
482
- intervalType: index_js_2.IntervalType.SlideOnRemove,
483
- properties: { ...interval.properties },
484
- sequenceNumber: this.client?.getCurrentSeq() ?? 0,
485
- stickiness,
486
- startSide,
487
- endSide,
488
- };
436
+ const serializedInterval = interval.serialize();
489
437
  const localSeq = this.getNextLocalSeq();
490
438
  if (this.isCollaborating) {
491
439
  this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
@@ -562,29 +510,21 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
562
510
  let deltaProps;
563
511
  let newInterval;
564
512
  if (props !== undefined) {
565
- interval.propertyManager ??= new internal_2.PropertiesManager();
566
- deltaProps = interval.propertyManager.handleProperties({ props }, interval, this.isCollaborating ? internal_2.UnassignedSequenceNumber : internal_2.UniversalSequenceNumber, internal_2.UniversalSequenceNumber, true);
513
+ deltaProps = interval.changeProperties(props);
567
514
  }
568
- if (start !== undefined && end !== undefined) {
515
+ const changeEndpoints = start !== undefined && end !== undefined;
516
+ if (changeEndpoints) {
569
517
  newInterval = this.localCollection.changeInterval(interval, start, end);
570
518
  if (!this.isCollaborating && newInterval !== undefined) {
571
519
  setSlideOnRemove(newInterval.start);
572
520
  setSlideOnRemove(newInterval.end);
573
521
  }
574
522
  }
575
- const serializedInterval = interval.serialize();
576
- const { startPos, startSide, endPos, endSide } = (0, internal_2.endpointPosAndSide)(start, end);
577
- const stickiness = computeStickinessFromSide(startPos, startSide, endPos, endSide);
578
- serializedInterval.start = startPos;
579
- serializedInterval.end = endPos;
580
- serializedInterval.startSide = startSide;
581
- serializedInterval.endSide = endSide;
582
- serializedInterval.stickiness = stickiness;
583
523
  // Emit a property bag containing the ID and the other (if any) properties changed
584
- serializedInterval.properties = {
585
- [exports.reservedIntervalIdKey]: interval.getIntervalId(),
586
- ...props,
587
- };
524
+ const serializedInterval = (newInterval ?? interval).serializeDelta({
525
+ props,
526
+ includeEndpoints: changeEndpoints,
527
+ });
588
528
  const localSeq = this.getNextLocalSeq();
589
529
  if (this.isCollaborating) {
590
530
  this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
@@ -634,7 +574,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
634
574
  }
635
575
  removePendingChange(serializedInterval) {
636
576
  // Change ops always have an ID.
637
- const id = serializedInterval.properties?.[exports.reservedIntervalIdKey];
577
+ const { id } = (0, index_js_2.getSerializedProperties)(serializedInterval);
638
578
  if (serializedInterval.start !== undefined) {
639
579
  this.removePendingChangeHelper(id, this.pendingChangesStart, serializedInterval);
640
580
  }
@@ -676,7 +616,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
676
616
  // Note that the ID is in the property bag only to allow us to find the interval.
677
617
  // This API cannot change the ID, and writing to the ID property will result in an exception. So we
678
618
  // strip it out of the properties here.
679
- const { [exports.reservedIntervalIdKey]: id, ...newProps } = serializedInterval.properties ?? {};
619
+ const { id, properties } = (0, index_js_2.getSerializedProperties)(serializedInterval);
680
620
  (0, internal_1.assert)(id !== undefined, 0x3fe /* id must exist on the interval */);
681
621
  const interval = this.getIntervalById(id);
682
622
  if (!interval) {
@@ -684,11 +624,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
684
624
  return;
685
625
  }
686
626
  if (local) {
687
- interval.propertyManager ??= new internal_2.PropertiesManager();
688
- // Let the propertyManager prune its pending change-properties set.
689
- interval.propertyManager.ack(op.sequenceNumber, op.minimumSequenceNumber, {
690
- props: newProps,
691
- });
627
+ interval.ackPropertiesChange(properties, op);
692
628
  this.ackInterval(interval, op);
693
629
  }
694
630
  else {
@@ -710,15 +646,14 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
710
646
  newInterval =
711
647
  this.localCollection.changeInterval(interval, toOptionalSequencePlace(start, serializedInterval.startSide ?? internal_2.Side.Before), toOptionalSequencePlace(end, serializedInterval.endSide ?? internal_2.Side.Before), op) ?? interval;
712
648
  }
713
- newInterval.propertyManager ??= new internal_2.PropertiesManager();
714
- const deltaProps = newInterval.propertyManager.handleProperties({ props: newProps }, newInterval, op.sequenceNumber, op.minimumSequenceNumber, true);
649
+ const deltaProps = newInterval.changeProperties(properties, op);
715
650
  if (this.onDeserialize) {
716
651
  this.onDeserialize(newInterval);
717
652
  }
718
653
  if (newInterval !== interval) {
719
654
  this.emitChange(newInterval, interval, local, false, op);
720
655
  }
721
- const changedProperties = Object.keys(newProps).length > 0;
656
+ const changedProperties = Object.keys(properties).length > 0;
722
657
  if (changedProperties) {
723
658
  this.emit("propertyChanged", interval, deltaProps, local, op);
724
659
  this.emit("changed", interval, deltaProps, undefined, local, false);
@@ -755,9 +690,9 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
755
690
  throw new internal_3.LoggingError("attachSequence must be called");
756
691
  }
757
692
  const { intervalType, properties, stickiness, startSide, endSide } = serializedInterval;
693
+ const { id } = (0, index_js_2.getSerializedProperties)(serializedInterval);
758
694
  const { start: startRebased, end: endRebased } = this.localSeqToRebasedInterval.get(localSeq) ?? this.computeRebasedPositions(localSeq);
759
- const intervalId = properties?.[exports.reservedIntervalIdKey];
760
- const localInterval = this.localCollection?.idIntervalIndex.getIntervalById(intervalId);
695
+ const localInterval = this.localCollection?.idIntervalIndex.getIntervalById(id);
761
696
  const rebased = {
762
697
  start: startRebased,
763
698
  end: endRebased,
@@ -770,9 +705,9 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
770
705
  };
771
706
  if (opName === "change" &&
772
707
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- ?? is not logically equivalent when .hasPendingChangeStart returns false.
773
- (this.hasPendingChangeStart(intervalId) || this.hasPendingChangeEnd(intervalId))) {
708
+ (this.hasPendingChangeStart(id) || this.hasPendingChangeEnd(id))) {
774
709
  this.removePendingChange(serializedInterval);
775
- this.addPendingChange(intervalId, rebased);
710
+ this.addPendingChange(id, rebased);
776
711
  }
777
712
  // if the interval slid off the string, rebase the op to be a noop and delete the interval.
778
713
  if (!this.options.mergeTreeReferencesCanSlideToEndpoint &&
@@ -800,7 +735,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
800
735
  if (segoff.segment?.localRefs?.has(lref) !== true) {
801
736
  return undefined;
802
737
  }
803
- const newSegoff = (0, internal_2.getSlideToSegoff)(segoff, slidingPreference, this.options.mergeTreeReferencesCanSlideToEndpoint);
738
+ const newSegoff = (0, internal_2.getSlideToSegoff)(segoff, slidingPreference, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint);
804
739
  const value = segoff.segment === newSegoff.segment && segoff.offset === newSegoff.offset
805
740
  ? undefined
806
741
  : newSegoff;
@@ -813,7 +748,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
813
748
  }
814
749
  const newStart = this.getSlideToSegment(interval.start, (0, index_js_2.startReferenceSlidingPreference)(interval.stickiness));
815
750
  const newEnd = this.getSlideToSegment(interval.end, (0, index_js_2.endReferenceSlidingPreference)(interval.stickiness));
816
- const id = interval.properties[exports.reservedIntervalIdKey];
751
+ const id = interval.getIntervalId();
817
752
  const hasPendingStartChange = this.hasPendingChangeStart(id);
818
753
  const hasPendingEndChange = this.hasPendingChangeEnd(id);
819
754
  if (!hasPendingStartChange) {
@@ -866,10 +801,10 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
866
801
  }
867
802
  }
868
803
  ackAdd(serializedInterval, local, op, localOpMetadata) {
804
+ const { id, properties } = (0, index_js_2.getSerializedProperties)(serializedInterval);
869
805
  if (local) {
870
806
  (0, internal_1.assert)(localOpMetadata !== undefined, 0x553 /* op metadata should be defined for local op */);
871
807
  this.localSeqToSerializedInterval.delete(localOpMetadata.localSeq);
872
- const id = serializedInterval.properties?.[exports.reservedIntervalIdKey];
873
808
  const localInterval = this.getIntervalById(id);
874
809
  if (localInterval) {
875
810
  this.ackInterval(localInterval, op);
@@ -879,8 +814,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
879
814
  if (!this.localCollection) {
880
815
  throw new internal_3.LoggingError("attachSequence must be called");
881
816
  }
882
- this.localCollection.ensureSerializedId(serializedInterval);
883
- const interval = this.localCollection.addInterval(toSequencePlace(serializedInterval.start, serializedInterval.startSide ?? internal_2.Side.Before), toSequencePlace(serializedInterval.end, serializedInterval.endSide ?? internal_2.Side.Before), serializedInterval.intervalType, serializedInterval.properties, op);
817
+ const interval = this.localCollection.addInterval(id, toSequencePlace(serializedInterval.start, serializedInterval.startSide ?? internal_2.Side.Before), toSequencePlace(serializedInterval.end, serializedInterval.endSide ?? internal_2.Side.Before), properties, op);
884
818
  if (interval) {
885
819
  if (this.onDeserialize) {
886
820
  this.onDeserialize(interval);
@@ -899,7 +833,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
899
833
  if (!this.localCollection) {
900
834
  throw new internal_3.LoggingError("attach must be called prior to deleting intervals");
901
835
  }
902
- const id = this.localCollection.ensureSerializedId(serializedInterval);
836
+ const { id } = (0, index_js_2.getSerializedProperties)(serializedInterval);
903
837
  const interval = this.localCollection.idIntervalIndex.getIntervalById(id);
904
838
  if (interval) {
905
839
  this.deleteExistingInterval(interval, local, op);