@fluidframework/sequence 2.43.0 → 2.50.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 (34) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/intervalCollection.d.ts +4 -5
  3. package/dist/intervalCollection.d.ts.map +1 -1
  4. package/dist/intervalCollection.js +93 -97
  5. package/dist/intervalCollection.js.map +1 -1
  6. package/dist/intervalCollectionMapInterfaces.d.ts +2 -11
  7. package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
  8. package/dist/intervalCollectionMapInterfaces.js.map +1 -1
  9. package/dist/intervals/sequenceInterval.d.ts +7 -3
  10. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  11. package/dist/intervals/sequenceInterval.js +72 -30
  12. package/dist/intervals/sequenceInterval.js.map +1 -1
  13. package/dist/packageVersion.d.ts +1 -1
  14. package/dist/packageVersion.js +1 -1
  15. package/dist/packageVersion.js.map +1 -1
  16. package/lib/intervalCollection.d.ts +4 -5
  17. package/lib/intervalCollection.d.ts.map +1 -1
  18. package/lib/intervalCollection.js +93 -97
  19. package/lib/intervalCollection.js.map +1 -1
  20. package/lib/intervalCollectionMapInterfaces.d.ts +2 -11
  21. package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
  22. package/lib/intervalCollectionMapInterfaces.js.map +1 -1
  23. package/lib/intervals/sequenceInterval.d.ts +7 -3
  24. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  25. package/lib/intervals/sequenceInterval.js +74 -32
  26. package/lib/intervals/sequenceInterval.js.map +1 -1
  27. package/lib/packageVersion.d.ts +1 -1
  28. package/lib/packageVersion.js +1 -1
  29. package/lib/packageVersion.js.map +1 -1
  30. package/package.json +17 -17
  31. package/src/intervalCollection.ts +109 -106
  32. package/src/intervalCollectionMapInterfaces.ts +2 -13
  33. package/src/intervals/sequenceInterval.ts +88 -32
  34. package/src/packageVersion.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sequenceInterval.d.ts","sourceRoot":"","sources":["../../src/intervals/sequenceInterval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequenceInterval.d.ts","sourceRoot":"","sources":["../../src/intervals/sequenceInterval.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,15 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
8
8
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
9
9
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
10
10
  };
11
- var _SequenceIntervalClass_props;
11
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
+ if (kind === "m") throw new TypeError("Private method is not writable");
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var _SequenceIntervalClass_props, _SequenceIntervalClass_disposed;
12
18
  Object.defineProperty(exports, "__esModule", { value: true });
13
19
  exports.createSequenceInterval = exports.createTransientInterval = exports.createPositionReferenceFromSegoff = exports.SequenceIntervalClass = exports.getSerializedProperties = void 0;
14
- /* eslint-disable no-bitwise */
15
20
  const internal_1 = require("@fluidframework/core-utils/internal");
16
21
  const internal_2 = require("@fluidframework/merge-tree/internal");
17
22
  const internal_3 = require("@fluidframework/telemetry-utils/internal");
@@ -48,15 +53,16 @@ function getSerializedProperties(serializedInterval) {
48
53
  return { id, labels, properties };
49
54
  }
50
55
  exports.getSerializedProperties = getSerializedProperties;
51
- // eslint-disable-next-line import/no-deprecated
52
56
  class SequenceIntervalClass {
53
57
  /**
54
58
  * {@inheritDoc ISerializableInterval.properties}
55
59
  */
56
60
  get properties() {
61
+ this.verifyNotDispose();
57
62
  return __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").properties;
58
63
  }
59
64
  changeProperties(props, op, rollback) {
65
+ this.verifyNotDispose();
60
66
  if (props !== undefined) {
61
67
  __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").propertyManager ??= new internal_2.PropertiesManager();
62
68
  return __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").propertyManager.handleProperties({ props }, __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f"), this.client.getCollabWindow().collaborating
@@ -66,6 +72,7 @@ class SequenceIntervalClass {
66
72
  }
67
73
  /***/
68
74
  get stickiness() {
75
+ this.verifyNotDispose();
69
76
  const startSegment = this.start.getSegment();
70
77
  const endSegment = this.end.getSegment();
71
78
  return (0, intervalUtils_js_1.computeStickinessFromSide)(startSegment?.endpointType, this.startSide, endSegment?.endpointType, this.endSide);
@@ -90,14 +97,33 @@ class SequenceIntervalClass {
90
97
  this.startSide = startSide;
91
98
  this.endSide = endSide;
92
99
  _SequenceIntervalClass_props.set(this, { properties: (0, internal_2.createMap)() });
100
+ _SequenceIntervalClass_disposed.set(this, false);
93
101
  if (props) {
94
102
  __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").properties = (0, internal_2.addProperties)(__classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").properties, props);
95
103
  }
96
104
  }
105
+ get disposed() {
106
+ return __classPrivateFieldGet(this, _SequenceIntervalClass_disposed, "f");
107
+ }
108
+ dispose(error) {
109
+ if (__classPrivateFieldGet(this, _SequenceIntervalClass_disposed, "f"))
110
+ return;
111
+ __classPrivateFieldSet(this, _SequenceIntervalClass_disposed, true, "f");
112
+ this.client.removeLocalReferencePosition(this.start);
113
+ this.client.removeLocalReferencePosition(this.end);
114
+ this.removePositionChangeListeners();
115
+ __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").propertyManager = undefined;
116
+ }
117
+ verifyNotDispose() {
118
+ if (__classPrivateFieldGet(this, _SequenceIntervalClass_disposed, "f")) {
119
+ throw new internal_3.LoggingError("Invalid interval access after dispose");
120
+ }
121
+ }
97
122
  /**
98
123
  * Subscribes to position change events on this interval if there are no current listeners.
99
124
  */
100
125
  addPositionChangeListeners(beforePositionChange, afterPositionChange) {
126
+ this.verifyNotDispose();
101
127
  if (this.callbacks === undefined) {
102
128
  this.callbacks = {
103
129
  beforePositionChange,
@@ -123,12 +149,14 @@ class SequenceIntervalClass {
123
149
  * {@inheritDoc ISerializableInterval.serialize}
124
150
  */
125
151
  serialize() {
152
+ this.verifyNotDispose();
126
153
  return this.serializeDelta({
127
154
  props: this.properties,
128
155
  includeEndpoints: true,
129
156
  });
130
157
  }
131
158
  serializeDelta({ props, includeEndpoints, }) {
159
+ this.verifyNotDispose();
132
160
  const startSegment = this.start.getSegment();
133
161
  const endSegment = this.end.getSegment();
134
162
  const startPosition = includeEndpoints
@@ -157,6 +185,7 @@ class SequenceIntervalClass {
157
185
  * {@inheritDoc IInterval.clone}
158
186
  */
159
187
  clone() {
188
+ this.verifyNotDispose();
160
189
  return new SequenceIntervalClass(this.client, this.id, this.label, this.start, this.end, this.intervalType, this.properties, this.startSide, this.endSide);
161
190
  }
162
191
  /**
@@ -189,6 +218,7 @@ class SequenceIntervalClass {
189
218
  * {@inheritDoc IInterval.compareStart}
190
219
  */
191
220
  compareStart(b) {
221
+ this.verifyNotDispose();
192
222
  const dist = (0, internal_2.compareReferencePositions)(this.start, b.start);
193
223
  if (dist === 0) {
194
224
  return compareSides(this.startSide, b.startSide);
@@ -199,6 +229,7 @@ class SequenceIntervalClass {
199
229
  * {@inheritDoc IInterval.compareEnd}
200
230
  */
201
231
  compareEnd(b) {
232
+ this.verifyNotDispose();
202
233
  const dist = (0, internal_2.compareReferencePositions)(this.end, b.end);
203
234
  if (dist === 0) {
204
235
  return compareSides(b.endSide, this.endSide);
@@ -209,6 +240,7 @@ class SequenceIntervalClass {
209
240
  * {@inheritDoc IInterval.overlaps}
210
241
  */
211
242
  overlaps(b) {
243
+ this.verifyNotDispose();
212
244
  const result = (0, internal_2.compareReferencePositions)(this.start, b.end) <= 0 &&
213
245
  (0, internal_2.compareReferencePositions)(this.end, b.start) >= 0;
214
246
  return result;
@@ -223,6 +255,7 @@ class SequenceIntervalClass {
223
255
  * {@inheritDoc IInterval.union}
224
256
  */
225
257
  union(b) {
258
+ this.verifyNotDispose();
226
259
  const newStart = (0, internal_2.minReferencePosition)(this.start, b.start);
227
260
  const newEnd = (0, internal_2.maxReferencePosition)(this.end, b.end);
228
261
  let startSide;
@@ -245,42 +278,41 @@ class SequenceIntervalClass {
245
278
  * @returns whether this interval overlaps two numerical positions.
246
279
  */
247
280
  overlapsPos(bstart, bend) {
281
+ this.verifyNotDispose();
248
282
  const startPos = this.client.localReferencePositionToPosition(this.start);
249
283
  const endPos = this.client.localReferencePositionToPosition(this.end);
250
284
  return endPos > bstart && startPos < bend;
251
285
  }
252
286
  moveEndpointReferences(rebased) {
253
- if (rebased.start) {
254
- const startRef = createPositionReferenceFromSegoff({
255
- client: this.client,
256
- segoff: rebased.start,
257
- refType: this.start.refType,
258
- slidingPreference: this.start.slidingPreference,
259
- canSlideToEndpoint: this.start.canSlideToEndpoint,
260
- });
261
- if (this.start.properties) {
262
- startRef.addProperties(this.start.properties);
263
- }
264
- this.start = startRef;
287
+ this.verifyNotDispose();
288
+ const startRef = createPositionReferenceFromSegoff({
289
+ client: this.client,
290
+ segoff: rebased.start,
291
+ refType: this.start.refType,
292
+ slidingPreference: this.start.slidingPreference,
293
+ canSlideToEndpoint: this.start.canSlideToEndpoint,
294
+ });
295
+ if (this.start.properties) {
296
+ startRef.addProperties(this.start.properties);
265
297
  }
266
- if (rebased.end) {
267
- const endRef = createPositionReferenceFromSegoff({
268
- client: this.client,
269
- segoff: rebased.end,
270
- refType: this.end.refType,
271
- slidingPreference: this.end.slidingPreference,
272
- canSlideToEndpoint: this.end.canSlideToEndpoint,
273
- });
274
- if (this.end.properties) {
275
- endRef.addProperties(this.end.properties);
276
- }
277
- this.end = endRef;
298
+ this.start = startRef;
299
+ const endRef = createPositionReferenceFromSegoff({
300
+ client: this.client,
301
+ segoff: rebased.end,
302
+ refType: this.end.refType,
303
+ slidingPreference: this.end.slidingPreference,
304
+ canSlideToEndpoint: this.end.canSlideToEndpoint,
305
+ });
306
+ if (this.end.properties) {
307
+ endRef.addProperties(this.end.properties);
278
308
  }
309
+ this.end = endRef;
279
310
  }
280
311
  /**
281
312
  * {@inheritDoc IInterval.modify}
282
313
  */
283
314
  modify(label, start, end, op, localSeq, canSlideToEndpoint = false) {
315
+ this.verifyNotDispose();
284
316
  const { startSide, endSide, startPos, endPos } = (0, internal_2.endpointPosAndSide)(start, end);
285
317
  const getRefType = (baseType) => {
286
318
  let refType = baseType;
@@ -288,6 +320,10 @@ class SequenceIntervalClass {
288
320
  refType &= ~internal_2.ReferenceType.SlideOnRemove;
289
321
  refType |= internal_2.ReferenceType.StayOnRemove;
290
322
  }
323
+ else {
324
+ refType &= ~internal_2.ReferenceType.StayOnRemove;
325
+ refType |= internal_2.ReferenceType.SlideOnRemove;
326
+ }
291
327
  return refType;
292
328
  };
293
329
  let startRef = this.start;
@@ -323,11 +359,17 @@ class SequenceIntervalClass {
323
359
  }
324
360
  }
325
361
  const newInterval = new SequenceIntervalClass(this.client, this.id, this.label, startRef, endRef, this.intervalType, undefined, startSide ?? this.startSide, endSide ?? this.endSide);
326
- (0, internal_2.copyPropertiesAndManager)(__classPrivateFieldGet(this, _SequenceIntervalClass_props, "f"), __classPrivateFieldGet(newInterval, _SequenceIntervalClass_props, "f"));
362
+ __classPrivateFieldGet(newInterval, _SequenceIntervalClass_props, "f").propertyManager = __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").propertyManager ??=
363
+ new internal_2.PropertiesManager();
364
+ __classPrivateFieldGet(newInterval, _SequenceIntervalClass_props, "f").properties = __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").properties;
327
365
  return newInterval;
328
366
  }
329
367
  ackPropertiesChange(newProps, op) {
330
- __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").propertyManager ??= new internal_2.PropertiesManager();
368
+ this.verifyNotDispose();
369
+ if (Object.keys(newProps).length === 0) {
370
+ return;
371
+ }
372
+ (0, internal_1.assert)(__classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").propertyManager !== undefined, 0xbd5 /* must have property manager to ack */);
331
373
  // Let the propertyManager prune its pending change-properties set.
332
374
  __classPrivateFieldGet(this, _SequenceIntervalClass_props, "f").propertyManager.ack(op.sequenceNumber, op.minimumSequenceNumber, {
333
375
  props: newProps,
@@ -335,7 +377,7 @@ class SequenceIntervalClass {
335
377
  }
336
378
  }
337
379
  exports.SequenceIntervalClass = SequenceIntervalClass;
338
- _SequenceIntervalClass_props = new WeakMap();
380
+ _SequenceIntervalClass_props = new WeakMap(), _SequenceIntervalClass_disposed = new WeakMap();
339
381
  function createPositionReferenceFromSegoff({ client, segoff, refType, op, localSeq, fromSnapshot, slidingPreference, canSlideToEndpoint, rollback, }) {
340
382
  if (segoff === "start" || segoff === "end") {
341
383
  return client.createLocalReferencePosition(segoff, undefined, refType, undefined, slidingPreference, canSlideToEndpoint);
@@ -1 +1 @@
1
- {"version":3,"file":"sequenceInterval.js","sourceRoot":"","sources":["../../src/intervals/sequenceInterval.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable no-bitwise */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tClient,\n\tISegment,\n\tLocalReferencePosition,\n\tPropertiesManager,\n\tPropertySet,\n\tReferenceType,\n\tSlidingPreference,\n\tcompareReferencePositions,\n\tcreateDetachedLocalReferencePosition,\n\tcreateMap,\n\tgetSlideToSegoff,\n\tmaxReferencePosition,\n\tminReferencePosition,\n\trefTypeIncludesFlag,\n\treservedRangeLabelsKey,\n\tSequencePlace,\n\tSide,\n\tendpointPosAndSide,\n\taddProperties,\n\tcopyPropertiesAndManager,\n\ttype ISegmentInternal,\n\tUnassignedSequenceNumber,\n\tUniversalSequenceNumber,\n} from \"@fluidframework/merge-tree/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\nimport { v4 as uuid } from \"uuid\";\n\nimport {\n\t// eslint-disable-next-line import/no-deprecated\n\tISerializableInterval,\n\tISerializedInterval,\n\tIntervalStickiness,\n\tIntervalType,\n\tcomputeStickinessFromSide,\n\tendReferenceSlidingPreference,\n\tstartReferenceSlidingPreference,\n\ttype SerializedIntervalDelta,\n} from \"./intervalUtils.js\";\n\nfunction compareSides(sideA: Side, sideB: Side): number {\n\tif (sideA === sideB) {\n\t\treturn 0;\n\t}\n\n\tif (sideA === Side.Before) {\n\t\treturn 1;\n\t}\n\n\treturn -1;\n}\n\nfunction minSide(sideA: Side, sideB: Side): Side {\n\tif (sideA === Side.After && sideB === Side.After) {\n\t\treturn Side.After;\n\t}\n\n\treturn Side.Before;\n}\n\nfunction maxSide(sideA: Side, sideB: Side): Side {\n\tif (sideA === Side.Before && sideB === Side.Before) {\n\t\treturn Side.Before;\n\t}\n\n\treturn Side.After;\n}\n\nconst reservedIntervalIdKey = \"intervalId\";\n\nconst legacyIdPrefix = \"legacy\";\n\nexport function getSerializedProperties(\n\tserializedInterval: ISerializedInterval | SerializedIntervalDelta,\n): {\n\tid: string;\n\tlabels: string[];\n\tproperties: PropertySet;\n} {\n\tconst {\n\t\t[reservedIntervalIdKey]: maybeId,\n\t\t[reservedRangeLabelsKey]: labels,\n\t\t...properties\n\t} = serializedInterval.properties ?? {};\n\t// Create a non-unique ID based on start and end to be used on intervals that come from legacy clients\n\t// without ID's.\n\tconst id =\n\t\tmaybeId ?? `${legacyIdPrefix}${serializedInterval.start}-${serializedInterval.end}`;\n\n\treturn { id, labels, properties };\n}\n\n/**\n * Interval implementation whose ends are associated with positions in a mutatable sequence.\n * As such, when content is inserted into the middle of the interval, the interval expands to\n * include that content.\n *\n * @remarks The endpoints' positions should be treated exclusively to get\n * reasonable behavior. E.g., an interval referring to \"hello\" in \"hello world\"\n * should have a start position of 0 and an end position of 5.\n *\n * To see why, consider what happens if \"llo wor\" is removed from the string to make \"held\".\n * The interval's startpoint remains on the \"h\" (it isn't altered), but the interval's endpoint\n * slides forward to the next unremoved position, which is the \"l\" in \"held\".\n * Users would generally expect the interval to now refer to \"he\" (as it is the subset of content\n * remaining after the removal), hence the \"l\" should be excluded.\n * If the interval endpoint was treated inclusively, the interval would now refer to \"hel\", which\n * is undesirable.\n *\n * Since the endpoints of an interval are treated exclusively but cannot be greater\n * than or equal to the length of the associated sequence, there exist special\n * endpoint segments, \"start\" and \"end\", which represent the position immediately\n * before or immediately after the string respectively.\n *\n * If a `SequenceInterval` is created on a sequence with the\n * `mergeTreeReferencesCanSlideToEndpoint` feature flag set to true, the endpoints\n * of the interval that are exclusive will have the ability to slide to these\n * special endpoint segments.\n * @alpha\n * @legacy\n */\n// eslint-disable-next-line import/no-deprecated\nexport interface SequenceInterval extends ISerializableInterval {\n\treadonly start: LocalReferencePosition;\n\t/**\n\t * End endpoint of this interval.\n\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t */\n\treadonly end: LocalReferencePosition;\n\treadonly intervalType: IntervalType;\n\treadonly startSide: Side;\n\treadonly endSide: Side;\n\treadonly stickiness: IntervalStickiness;\n\n\t/** Serializable bag of properties associated with the interval. */\n\tproperties: PropertySet;\n\n\t/**\n\t * @returns a new interval object with identical semantics.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tclone(): SequenceInterval;\n\t/**\n\t * Compares this interval to `b` with standard comparator semantics:\n\t * - returns -1 if this is less than `b`\n\t * - returns 1 if this is greater than `b`\n\t * - returns 0 if this is equivalent to `b`\n\t * @param b - Interval to compare against\n\t */\n\tcompare(b: SequenceInterval): number;\n\t/**\n\t * Compares the start endpoint of this interval to `b`'s start endpoint.\n\t * Standard comparator semantics apply.\n\t * @param b - Interval to compare against\n\t */\n\tcompareStart(b: SequenceInterval): number;\n\t/**\n\t * Compares the end endpoint of this interval to `b`'s end endpoint.\n\t * Standard comparator semantics apply.\n\t * @param b - Interval to compare against\n\t */\n\tcompareEnd(b: SequenceInterval): number;\n\t/**\n\t * Modifies one or more of the endpoints of this interval, returning a new interval representing the result.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tmodify(\n\t\tlabel: string,\n\t\tstart: SequencePlace | undefined,\n\t\tend: SequencePlace | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\tlocalSeq?: number,\n\t\tcanSlideToEndpoint?: boolean,\n\t): SequenceInterval | undefined;\n\t/**\n\t * @returns whether this interval overlaps with `b`.\n\t * Intervals are considered to overlap if their intersection is non-empty.\n\t */\n\toverlaps(b: SequenceInterval): boolean;\n\t/**\n\t * Unions this interval with `b`, returning a new interval.\n\t * The union operates as a convex hull, i.e. if the two intervals are disjoint, the return value includes\n\t * intermediate values between the two intervals.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tunion(b: SequenceInterval): SequenceInterval;\n\n\t/**\n\t * Subscribes to position change events on this interval if there are no current listeners.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\taddPositionChangeListeners(\n\t\tbeforePositionChange: () => void,\n\t\tafterPositionChange: () => void,\n\t): void;\n\n\t/**\n\t * Removes the currently subscribed position change listeners.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tremovePositionChangeListeners(): void;\n\n\t/**\n\t * @returns whether this interval overlaps two numerical positions.\n\t */\n\toverlapsPos(bstart: number, bend: number): boolean;\n\n\t/**\n\t * Gets the id associated with this interval.\n\t * When the interval is used as part of an interval collection, this id can be used to modify or remove the\n\t * interval.\n\t */\n\tgetIntervalId(): string;\n}\n\n// eslint-disable-next-line import/no-deprecated\nexport class SequenceIntervalClass implements SequenceInterval, ISerializableInterval {\n\treadonly #props: {\n\t\tpropertyManager?: PropertiesManager;\n\t\tproperties: PropertySet;\n\t} = { properties: createMap<any>() };\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.properties}\n\t */\n\tpublic get properties(): Readonly<PropertySet> {\n\t\treturn this.#props.properties;\n\t}\n\n\tpublic changeProperties(\n\t\tprops: PropertySet | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\trollback?: boolean,\n\t) {\n\t\tif (props !== undefined) {\n\t\t\tthis.#props.propertyManager ??= new PropertiesManager();\n\t\t\treturn this.#props.propertyManager.handleProperties(\n\t\t\t\t{ props },\n\t\t\t\tthis.#props,\n\t\t\t\tthis.client.getCollabWindow().collaborating\n\t\t\t\t\t? (op?.sequenceNumber ?? UnassignedSequenceNumber)\n\t\t\t\t\t: UniversalSequenceNumber,\n\t\t\t\top?.minimumSequenceNumber ?? UniversalSequenceNumber,\n\t\t\t\tthis.client.getCollabWindow().collaborating,\n\t\t\t\trollback,\n\t\t\t);\n\t\t}\n\t}\n\n\t/***/\n\tpublic get stickiness(): IntervalStickiness {\n\t\tconst startSegment: ISegmentInternal | undefined = this.start.getSegment();\n\t\tconst endSegment: ISegmentInternal | undefined = this.end.getSegment();\n\t\treturn computeStickinessFromSide(\n\t\t\tstartSegment?.endpointType,\n\t\t\tthis.startSide,\n\t\t\tendSegment?.endpointType,\n\t\t\tthis.endSide,\n\t\t);\n\t}\n\n\tconstructor(\n\t\tprivate readonly client: Client,\n\t\tprivate readonly id: string,\n\t\tprivate readonly label: string,\n\t\t/**\n\t\t * Start endpoint of this interval.\n\t\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t\t */\n\t\tpublic start: LocalReferencePosition,\n\t\t/**\n\t\t * End endpoint of this interval.\n\t\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t\t */\n\t\tpublic end: LocalReferencePosition,\n\t\tpublic intervalType: IntervalType,\n\t\tprops?: PropertySet,\n\t\tpublic readonly startSide: Side = Side.Before,\n\t\tpublic readonly endSide: Side = Side.Before,\n\t) {\n\t\tif (props) {\n\t\t\tthis.#props.properties = addProperties(this.#props.properties, props);\n\t\t}\n\t}\n\n\tprivate callbacks?: Record<\"beforePositionChange\" | \"afterPositionChange\", () => void>;\n\n\t/**\n\t * Subscribes to position change events on this interval if there are no current listeners.\n\t */\n\tpublic addPositionChangeListeners(\n\t\tbeforePositionChange: () => void,\n\t\tafterPositionChange: () => void,\n\t): void {\n\t\tif (this.callbacks === undefined) {\n\t\t\tthis.callbacks = {\n\t\t\t\tbeforePositionChange,\n\t\t\t\tafterPositionChange,\n\t\t\t};\n\n\t\t\tconst startCbs = (this.start.callbacks ??= {});\n\t\t\tconst endCbs = (this.end.callbacks ??= {});\n\t\t\tstartCbs.beforeSlide = endCbs.beforeSlide = beforePositionChange;\n\t\t\tstartCbs.afterSlide = endCbs.afterSlide = afterPositionChange;\n\t\t}\n\t}\n\n\t/**\n\t * Removes the currently subscribed position change listeners.\n\t */\n\tpublic removePositionChangeListeners(): void {\n\t\tif (this.callbacks) {\n\t\t\tthis.callbacks = undefined;\n\t\t\tthis.start.callbacks = undefined;\n\t\t\tthis.end.callbacks = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.serialize}\n\t */\n\tpublic serialize(): ISerializedInterval {\n\t\treturn this.serializeDelta({\n\t\t\tprops: this.properties,\n\t\t\tincludeEndpoints: true,\n\t\t}) as ISerializedInterval;\n\t}\n\n\tpublic serializeDelta({\n\t\tprops,\n\t\tincludeEndpoints,\n\t}: {\n\t\tprops: PropertySet | undefined;\n\t\tincludeEndpoints: boolean;\n\t}): SerializedIntervalDelta {\n\t\tconst startSegment: ISegmentInternal | undefined = this.start.getSegment();\n\t\tconst endSegment: ISegmentInternal | undefined = this.end.getSegment();\n\t\tconst startPosition = includeEndpoints\n\t\t\t? (startSegment?.endpointType ??\n\t\t\t\tthis.client.localReferencePositionToPosition(this.start))\n\t\t\t: undefined;\n\t\tconst endPosition = includeEndpoints\n\t\t\t? (endSegment?.endpointType ?? this.client.localReferencePositionToPosition(this.end))\n\t\t\t: undefined;\n\t\treturn {\n\t\t\tend: endPosition,\n\t\t\tintervalType: this.intervalType,\n\t\t\tsequenceNumber: this.client.getCurrentSeq(),\n\t\t\tstart: startPosition,\n\t\t\tstickiness: this.stickiness,\n\t\t\tstartSide: includeEndpoints ? this.startSide : undefined,\n\t\t\tendSide: includeEndpoints ? this.endSide : undefined,\n\t\t\tproperties: {\n\t\t\t\t...props,\n\t\t\t\t[reservedIntervalIdKey]: this.id,\n\t\t\t\t[reservedRangeLabelsKey]: [this.label],\n\t\t\t},\n\t\t} satisfies SerializedIntervalDelta;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.clone}\n\t */\n\tpublic clone(): SequenceIntervalClass {\n\t\treturn new SequenceIntervalClass(\n\t\t\tthis.client,\n\t\t\tthis.id,\n\t\t\tthis.label,\n\t\t\tthis.start,\n\t\t\tthis.end,\n\t\t\tthis.intervalType,\n\t\t\tthis.properties,\n\t\t\tthis.startSide,\n\t\t\tthis.endSide,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compare}\n\t */\n\tpublic compare(b: SequenceInterval) {\n\t\tconst startResult = this.compareStart(b);\n\t\tif (startResult === 0) {\n\t\t\tconst endResult = this.compareEnd(b);\n\t\t\tif (endResult === 0) {\n\t\t\t\tconst thisId = this.getIntervalId();\n\t\t\t\tif (thisId) {\n\t\t\t\t\tconst bId = b.getIntervalId();\n\t\t\t\t\tif (bId) {\n\t\t\t\t\t\treturn thisId > bId ? 1 : thisId < bId ? -1 : 0;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t} else {\n\t\t\t\treturn endResult;\n\t\t\t}\n\t\t} else {\n\t\t\treturn startResult;\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compareStart}\n\t */\n\tpublic compareStart(b: SequenceInterval) {\n\t\tconst dist = compareReferencePositions(this.start, b.start);\n\n\t\tif (dist === 0) {\n\t\t\treturn compareSides(this.startSide, b.startSide);\n\t\t}\n\n\t\treturn dist;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compareEnd}\n\t */\n\tpublic compareEnd(b: SequenceInterval): number {\n\t\tconst dist = compareReferencePositions(this.end, b.end);\n\n\t\tif (dist === 0) {\n\t\t\treturn compareSides(b.endSide, this.endSide);\n\t\t}\n\n\t\treturn dist;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.overlaps}\n\t */\n\tpublic overlaps(b: SequenceInterval) {\n\t\tconst result =\n\t\t\tcompareReferencePositions(this.start, b.end) <= 0 &&\n\t\t\tcompareReferencePositions(this.end, b.start) >= 0;\n\t\treturn result;\n\t}\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.getIntervalId}\n\t */\n\tpublic getIntervalId(): string {\n\t\treturn this.id;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.union}\n\t */\n\tpublic union(b: SequenceIntervalClass) {\n\t\tconst newStart = minReferencePosition(this.start, b.start);\n\t\tconst newEnd = maxReferencePosition(this.end, b.end);\n\n\t\tlet startSide: Side;\n\n\t\tif (this.start === b.start) {\n\t\t\tstartSide = minSide(this.startSide, b.startSide);\n\t\t} else {\n\t\t\tstartSide = this.start === newStart ? this.startSide : b.startSide;\n\t\t}\n\n\t\tlet endSide: Side;\n\n\t\tif (this.end === b.end) {\n\t\t\tendSide = maxSide(this.endSide, b.endSide);\n\t\t} else {\n\t\t\tendSide = this.end === newEnd ? this.endSide : b.endSide;\n\t\t}\n\n\t\treturn new SequenceIntervalClass(\n\t\t\tthis.client,\n\t\t\tuuid(),\n\t\t\tthis.label,\n\t\t\tnewStart,\n\t\t\tnewEnd,\n\t\t\tthis.intervalType,\n\t\t\tundefined,\n\t\t\tstartSide,\n\t\t\tendSide,\n\t\t);\n\t}\n\n\t/**\n\t * @returns whether this interval overlaps two numerical positions.\n\t */\n\tpublic overlapsPos(bstart: number, bend: number) {\n\t\tconst startPos = this.client.localReferencePositionToPosition(this.start);\n\t\tconst endPos = this.client.localReferencePositionToPosition(this.end);\n\t\treturn endPos > bstart && startPos < bend;\n\t}\n\n\tpublic moveEndpointReferences(\n\t\trebased: Partial<Record<\"start\" | \"end\", { segment: ISegment; offset: number }>>,\n\t) {\n\t\tif (rebased.start) {\n\t\t\tconst startRef = createPositionReferenceFromSegoff({\n\t\t\t\tclient: this.client,\n\t\t\t\tsegoff: rebased.start,\n\t\t\t\trefType: this.start.refType,\n\t\t\t\tslidingPreference: this.start.slidingPreference,\n\t\t\t\tcanSlideToEndpoint: this.start.canSlideToEndpoint,\n\t\t\t});\n\t\t\tif (this.start.properties) {\n\t\t\t\tstartRef.addProperties(this.start.properties);\n\t\t\t}\n\t\t\tthis.start = startRef;\n\t\t}\n\n\t\tif (rebased.end) {\n\t\t\tconst endRef = createPositionReferenceFromSegoff({\n\t\t\t\tclient: this.client,\n\t\t\t\tsegoff: rebased.end,\n\t\t\t\trefType: this.end.refType,\n\t\t\t\tslidingPreference: this.end.slidingPreference,\n\t\t\t\tcanSlideToEndpoint: this.end.canSlideToEndpoint,\n\t\t\t});\n\t\t\tif (this.end.properties) {\n\t\t\t\tendRef.addProperties(this.end.properties);\n\t\t\t}\n\t\t\tthis.end = endRef;\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.modify}\n\t */\n\tpublic modify(\n\t\tlabel: string,\n\t\tstart: SequencePlace | undefined,\n\t\tend: SequencePlace | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\tlocalSeq?: number,\n\t\tcanSlideToEndpoint: boolean = false,\n\t) {\n\t\tconst { startSide, endSide, startPos, endPos } = endpointPosAndSide(start, end);\n\t\tconst getRefType = (baseType: ReferenceType): ReferenceType => {\n\t\t\tlet refType = baseType;\n\t\t\tif (op === undefined) {\n\t\t\t\trefType &= ~ReferenceType.SlideOnRemove;\n\t\t\t\trefType |= ReferenceType.StayOnRemove;\n\t\t\t}\n\t\t\treturn refType;\n\t\t};\n\n\t\tlet startRef = this.start;\n\t\tif (startPos !== undefined) {\n\t\t\tconst slidingPreference = startReferenceSlidingPreference(\n\t\t\t\tstartPos,\n\t\t\t\tstartSide ?? Side.Before,\n\t\t\t\tendPos,\n\t\t\t\tendSide ?? Side.Before,\n\t\t\t);\n\t\t\tstartRef = createPositionReference({\n\t\t\t\tclient: this.client,\n\t\t\t\tpos: startPos,\n\t\t\t\trefType: getRefType(this.start.refType),\n\t\t\t\top,\n\t\t\t\tlocalSeq,\n\t\t\t\tslidingPreference,\n\t\t\t\tcanSlideToEndpoint:\n\t\t\t\t\tcanSlideToEndpoint && slidingPreference === SlidingPreference.BACKWARD,\n\t\t\t});\n\t\t\tif (this.start.properties) {\n\t\t\t\tstartRef.addProperties(this.start.properties);\n\t\t\t}\n\t\t}\n\n\t\tlet endRef = this.end;\n\t\tif (endPos !== undefined) {\n\t\t\tconst slidingPreference = endReferenceSlidingPreference(\n\t\t\t\tstartPos,\n\t\t\t\tstartSide ?? Side.Before,\n\t\t\t\tendPos,\n\t\t\t\tendSide ?? Side.Before,\n\t\t\t);\n\t\t\tendRef = createPositionReference({\n\t\t\t\tclient: this.client,\n\t\t\t\tpos: endPos,\n\t\t\t\trefType: getRefType(this.end.refType),\n\t\t\t\top,\n\t\t\t\tlocalSeq,\n\t\t\t\tslidingPreference,\n\t\t\t\tcanSlideToEndpoint:\n\t\t\t\t\tcanSlideToEndpoint && slidingPreference === SlidingPreference.FORWARD,\n\t\t\t});\n\t\t\tif (this.end.properties) {\n\t\t\t\tendRef.addProperties(this.end.properties);\n\t\t\t}\n\t\t}\n\n\t\tconst newInterval = new SequenceIntervalClass(\n\t\t\tthis.client,\n\t\t\tthis.id,\n\t\t\tthis.label,\n\t\t\tstartRef,\n\t\t\tendRef,\n\t\t\tthis.intervalType,\n\t\t\tundefined,\n\t\t\tstartSide ?? this.startSide,\n\t\t\tendSide ?? this.endSide,\n\t\t);\n\t\tcopyPropertiesAndManager(this.#props, newInterval.#props);\n\t\treturn newInterval;\n\t}\n\n\tpublic ackPropertiesChange(newProps: PropertySet, op: ISequencedDocumentMessage) {\n\t\tthis.#props.propertyManager ??= new PropertiesManager();\n\t\t// Let the propertyManager prune its pending change-properties set.\n\t\tthis.#props.propertyManager.ack(op.sequenceNumber, op.minimumSequenceNumber, {\n\t\t\tprops: newProps,\n\t\t});\n\t}\n}\n\nexport function createPositionReferenceFromSegoff({\n\tclient,\n\tsegoff,\n\trefType,\n\top,\n\tlocalSeq,\n\tfromSnapshot,\n\tslidingPreference,\n\tcanSlideToEndpoint,\n\trollback,\n}: {\n\tclient: Client;\n\tsegoff: { segment: ISegment; offset: number } | undefined | \"start\" | \"end\";\n\trefType: ReferenceType;\n\top?: ISequencedDocumentMessage;\n\tlocalSeq?: number;\n\tfromSnapshot?: boolean;\n\tslidingPreference: SlidingPreference | undefined;\n\tcanSlideToEndpoint: boolean | undefined;\n\trollback?: boolean;\n}): LocalReferencePosition {\n\tif (segoff === \"start\" || segoff === \"end\") {\n\t\treturn client.createLocalReferencePosition(\n\t\t\tsegoff,\n\t\t\tundefined,\n\t\t\trefType,\n\t\t\tundefined,\n\t\t\tslidingPreference,\n\t\t\tcanSlideToEndpoint,\n\t\t);\n\t}\n\n\tif (segoff?.segment) {\n\t\tconst ref = client.createLocalReferencePosition(\n\t\t\tsegoff.segment,\n\t\t\tsegoff.offset,\n\t\t\trefType,\n\t\t\tundefined,\n\t\t\tslidingPreference,\n\t\t\tcanSlideToEndpoint,\n\t\t);\n\t\treturn ref;\n\t}\n\n\t// Creating references on detached segments is allowed for:\n\t// - Transient segments\n\t// - References coming from a remote client (location may have been concurrently removed)\n\t// - References being rebased to a new sequence number\n\t// (segment they originally referred to may have been removed with no suitable replacement)\n\tif (\n\t\t!op &&\n\t\t!localSeq &&\n\t\t!fromSnapshot &&\n\t\t!refTypeIncludesFlag(refType, ReferenceType.Transient) &&\n\t\t!rollback\n\t) {\n\t\tthrow new UsageError(\"Non-transient references need segment\");\n\t}\n\n\treturn createDetachedLocalReferencePosition(slidingPreference, refType);\n}\n\nfunction createPositionReference({\n\tclient,\n\tpos,\n\trefType,\n\top,\n\tfromSnapshot,\n\tlocalSeq,\n\tslidingPreference,\n\tcanSlideToEndpoint,\n\trollback,\n}: {\n\tclient: Client;\n\tpos: number | \"start\" | \"end\";\n\trefType: ReferenceType;\n\top?: ISequencedDocumentMessage;\n\tfromSnapshot?: boolean;\n\tlocalSeq?: number;\n\tslidingPreference: SlidingPreference;\n\tcanSlideToEndpoint: boolean;\n\trollback?: boolean;\n}): LocalReferencePosition {\n\tlet segoff;\n\n\tif (op) {\n\t\tassert(\n\t\t\t(refType & ReferenceType.SlideOnRemove) !== 0,\n\t\t\t0x2f5 /* op create references must be SlideOnRemove */,\n\t\t);\n\t\tif (pos === \"start\" || pos === \"end\") {\n\t\t\tsegoff = pos;\n\t\t} else {\n\t\t\tsegoff = client.getContainingSegment(pos, {\n\t\t\t\treferenceSequenceNumber: op.referenceSequenceNumber,\n\t\t\t\tclientId: op.clientId,\n\t\t\t});\n\t\t\tsegoff = getSlideToSegoff(segoff, slidingPreference, undefined, canSlideToEndpoint);\n\t\t}\n\t} else {\n\t\tassert(\n\t\t\t(refType & ReferenceType.SlideOnRemove) === 0 || !!fromSnapshot,\n\t\t\t0x2f6 /* SlideOnRemove references must be op created */,\n\t\t);\n\t\tsegoff =\n\t\t\tpos === \"start\" || pos === \"end\"\n\t\t\t\t? pos\n\t\t\t\t: client.getContainingSegment(pos, undefined, localSeq);\n\t}\n\n\treturn createPositionReferenceFromSegoff({\n\t\tclient,\n\t\tsegoff,\n\t\trefType,\n\t\top,\n\t\tlocalSeq,\n\t\tfromSnapshot,\n\t\tslidingPreference,\n\t\tcanSlideToEndpoint,\n\t\trollback,\n\t});\n}\n\nexport function createTransientInterval(\n\tstart: SequencePlace | undefined,\n\tend: SequencePlace | undefined,\n\tclient: Client,\n) {\n\treturn createSequenceInterval(\n\t\t\"transient\",\n\t\tuuid(),\n\t\tstart,\n\t\tend,\n\t\tclient,\n\t\tIntervalType.Transient,\n\t);\n}\n\nexport function createSequenceInterval(\n\tlabel: string,\n\tid: string,\n\tstart: SequencePlace | undefined,\n\tend: SequencePlace | undefined,\n\tclient: Client,\n\tintervalType: IntervalType,\n\top?: ISequencedDocumentMessage,\n\tfromSnapshot?: boolean,\n\tcanSlideToEndpoint: boolean = false,\n\tprops?: PropertySet,\n\trollback?: boolean,\n): SequenceIntervalClass {\n\tconst { startPos, startSide, endPos, endSide } = endpointPosAndSide(\n\t\tstart ?? \"start\",\n\t\tend ?? \"end\",\n\t);\n\tassert(\n\t\tstartPos !== undefined &&\n\t\t\tendPos !== undefined &&\n\t\t\tstartSide !== undefined &&\n\t\t\tendSide !== undefined,\n\t\t0x794 /* start and end cannot be undefined because they were not passed in as undefined */,\n\t);\n\tlet beginRefType = ReferenceType.RangeBegin;\n\tlet endRefType = ReferenceType.RangeEnd;\n\tif (intervalType === IntervalType.Transient) {\n\t\tbeginRefType = ReferenceType.Transient;\n\t\tendRefType = ReferenceType.Transient;\n\t} else {\n\t\t// All non-transient interval references must eventually be SlideOnRemove\n\t\t// To ensure eventual consistency, they must start as StayOnRemove when\n\t\t// pending (created locally and creation op is not acked)\n\t\tif (op ?? fromSnapshot) {\n\t\t\tbeginRefType |= ReferenceType.SlideOnRemove;\n\t\t\tendRefType |= ReferenceType.SlideOnRemove;\n\t\t} else {\n\t\t\tbeginRefType |= ReferenceType.StayOnRemove;\n\t\t\tendRefType |= ReferenceType.StayOnRemove;\n\t\t}\n\t}\n\n\tconst stickiness = computeStickinessFromSide(startPos, startSide, endPos, endSide);\n\n\tconst startSlidingPreference = startReferenceSlidingPreference(\n\t\tstartPos,\n\t\tstartSide,\n\t\tendPos,\n\t\tendSide,\n\t);\n\n\tconst startLref = createPositionReference({\n\t\tclient,\n\t\tpos: startPos,\n\t\trefType: beginRefType,\n\t\top,\n\t\tfromSnapshot,\n\t\tslidingPreference: startSlidingPreference,\n\t\tcanSlideToEndpoint: canSlideToEndpoint && stickiness !== IntervalStickiness.NONE,\n\t\trollback,\n\t});\n\n\tconst endSlidingPreference = endReferenceSlidingPreference(\n\t\tstartPos,\n\t\tstartSide,\n\t\tendPos,\n\t\tendSide,\n\t);\n\n\tconst endLref = createPositionReference({\n\t\tclient,\n\t\tpos: endPos,\n\t\trefType: endRefType,\n\t\top,\n\t\tfromSnapshot,\n\t\tslidingPreference: endSlidingPreference,\n\t\tcanSlideToEndpoint: canSlideToEndpoint && stickiness !== IntervalStickiness.NONE,\n\t\trollback,\n\t});\n\n\tconst rangeProp = {\n\t\t[reservedRangeLabelsKey]: [label],\n\t};\n\tstartLref.addProperties(rangeProp);\n\tendLref.addProperties(rangeProp);\n\n\tconst ival = new SequenceIntervalClass(\n\t\tclient,\n\t\tid,\n\t\tlabel,\n\t\tstartLref,\n\t\tendLref,\n\t\tintervalType,\n\t\tprops === undefined\n\t\t\t? undefined\n\t\t\t: { ...props, [reservedIntervalIdKey]: undefined, [reservedRangeLabelsKey]: undefined },\n\t\tstartSide,\n\t\tendSide,\n\t);\n\treturn ival;\n}\n"]}
1
+ {"version":3,"file":"sequenceInterval.js","sourceRoot":"","sources":["../../src/intervals/sequenceInterval.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable no-bitwise */\n\nimport type { IDisposable } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tClient,\n\tISegment,\n\tLocalReferencePosition,\n\tPropertiesManager,\n\tPropertySet,\n\tReferenceType,\n\tSlidingPreference,\n\tcompareReferencePositions,\n\tcreateDetachedLocalReferencePosition,\n\tcreateMap,\n\tgetSlideToSegoff,\n\tmaxReferencePosition,\n\tminReferencePosition,\n\trefTypeIncludesFlag,\n\treservedRangeLabelsKey,\n\tSequencePlace,\n\tSide,\n\tendpointPosAndSide,\n\taddProperties,\n\ttype ISegmentInternal,\n\tUnassignedSequenceNumber,\n\tUniversalSequenceNumber,\n} from \"@fluidframework/merge-tree/internal\";\nimport { LoggingError, UsageError } from \"@fluidframework/telemetry-utils/internal\";\nimport { v4 as uuid } from \"uuid\";\n\nimport {\n\t// eslint-disable-next-line import/no-deprecated\n\tISerializableInterval,\n\tISerializedInterval,\n\tIntervalStickiness,\n\tIntervalType,\n\tcomputeStickinessFromSide,\n\tendReferenceSlidingPreference,\n\tstartReferenceSlidingPreference,\n\ttype SerializedIntervalDelta,\n} from \"./intervalUtils.js\";\n\nfunction compareSides(sideA: Side, sideB: Side): number {\n\tif (sideA === sideB) {\n\t\treturn 0;\n\t}\n\n\tif (sideA === Side.Before) {\n\t\treturn 1;\n\t}\n\n\treturn -1;\n}\n\nfunction minSide(sideA: Side, sideB: Side): Side {\n\tif (sideA === Side.After && sideB === Side.After) {\n\t\treturn Side.After;\n\t}\n\n\treturn Side.Before;\n}\n\nfunction maxSide(sideA: Side, sideB: Side): Side {\n\tif (sideA === Side.Before && sideB === Side.Before) {\n\t\treturn Side.Before;\n\t}\n\n\treturn Side.After;\n}\n\nconst reservedIntervalIdKey = \"intervalId\";\n\nconst legacyIdPrefix = \"legacy\";\n\nexport function getSerializedProperties(\n\tserializedInterval: ISerializedInterval | SerializedIntervalDelta,\n): {\n\tid: string;\n\tlabels: string[];\n\tproperties: PropertySet;\n} {\n\tconst {\n\t\t[reservedIntervalIdKey]: maybeId,\n\t\t[reservedRangeLabelsKey]: labels,\n\t\t...properties\n\t} = serializedInterval.properties ?? {};\n\t// Create a non-unique ID based on start and end to be used on intervals that come from legacy clients\n\t// without ID's.\n\tconst id =\n\t\tmaybeId ?? `${legacyIdPrefix}${serializedInterval.start}-${serializedInterval.end}`;\n\n\treturn { id, labels, properties };\n}\n\n/**\n * Interval implementation whose ends are associated with positions in a mutatable sequence.\n * As such, when content is inserted into the middle of the interval, the interval expands to\n * include that content.\n *\n * @remarks The endpoints' positions should be treated exclusively to get\n * reasonable behavior. E.g., an interval referring to \"hello\" in \"hello world\"\n * should have a start position of 0 and an end position of 5.\n *\n * To see why, consider what happens if \"llo wor\" is removed from the string to make \"held\".\n * The interval's startpoint remains on the \"h\" (it isn't altered), but the interval's endpoint\n * slides forward to the next unremoved position, which is the \"l\" in \"held\".\n * Users would generally expect the interval to now refer to \"he\" (as it is the subset of content\n * remaining after the removal), hence the \"l\" should be excluded.\n * If the interval endpoint was treated inclusively, the interval would now refer to \"hel\", which\n * is undesirable.\n *\n * Since the endpoints of an interval are treated exclusively but cannot be greater\n * than or equal to the length of the associated sequence, there exist special\n * endpoint segments, \"start\" and \"end\", which represent the position immediately\n * before or immediately after the string respectively.\n *\n * If a `SequenceInterval` is created on a sequence with the\n * `mergeTreeReferencesCanSlideToEndpoint` feature flag set to true, the endpoints\n * of the interval that are exclusive will have the ability to slide to these\n * special endpoint segments.\n * @alpha\n * @legacy\n */\n// eslint-disable-next-line import/no-deprecated\nexport interface SequenceInterval extends ISerializableInterval {\n\treadonly start: LocalReferencePosition;\n\t/**\n\t * End endpoint of this interval.\n\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t */\n\treadonly end: LocalReferencePosition;\n\treadonly intervalType: IntervalType;\n\treadonly startSide: Side;\n\treadonly endSide: Side;\n\treadonly stickiness: IntervalStickiness;\n\n\t/** Serializable bag of properties associated with the interval. */\n\tproperties: PropertySet;\n\n\t/**\n\t * @returns a new interval object with identical semantics.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tclone(): SequenceInterval;\n\t/**\n\t * Compares this interval to `b` with standard comparator semantics:\n\t * - returns -1 if this is less than `b`\n\t * - returns 1 if this is greater than `b`\n\t * - returns 0 if this is equivalent to `b`\n\t * @param b - Interval to compare against\n\t */\n\tcompare(b: SequenceInterval): number;\n\t/**\n\t * Compares the start endpoint of this interval to `b`'s start endpoint.\n\t * Standard comparator semantics apply.\n\t * @param b - Interval to compare against\n\t */\n\tcompareStart(b: SequenceInterval): number;\n\t/**\n\t * Compares the end endpoint of this interval to `b`'s end endpoint.\n\t * Standard comparator semantics apply.\n\t * @param b - Interval to compare against\n\t */\n\tcompareEnd(b: SequenceInterval): number;\n\t/**\n\t * Modifies one or more of the endpoints of this interval, returning a new interval representing the result.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tmodify(\n\t\tlabel: string,\n\t\tstart: SequencePlace | undefined,\n\t\tend: SequencePlace | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\tlocalSeq?: number,\n\t\tcanSlideToEndpoint?: boolean,\n\t): SequenceInterval | undefined;\n\t/**\n\t * @returns whether this interval overlaps with `b`.\n\t * Intervals are considered to overlap if their intersection is non-empty.\n\t */\n\toverlaps(b: SequenceInterval): boolean;\n\t/**\n\t * Unions this interval with `b`, returning a new interval.\n\t * The union operates as a convex hull, i.e. if the two intervals are disjoint, the return value includes\n\t * intermediate values between the two intervals.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tunion(b: SequenceInterval): SequenceInterval;\n\n\t/**\n\t * Subscribes to position change events on this interval if there are no current listeners.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\taddPositionChangeListeners(\n\t\tbeforePositionChange: () => void,\n\t\tafterPositionChange: () => void,\n\t): void;\n\n\t/**\n\t * Removes the currently subscribed position change listeners.\n\t * @deprecated This api is not meant or necessary for external consumption and will be removed in subsequent release\n\t */\n\tremovePositionChangeListeners(): void;\n\n\t/**\n\t * @returns whether this interval overlaps two numerical positions.\n\t */\n\toverlapsPos(bstart: number, bend: number): boolean;\n\n\t/**\n\t * Gets the id associated with this interval.\n\t * When the interval is used as part of an interval collection, this id can be used to modify or remove the\n\t * interval.\n\t */\n\tgetIntervalId(): string;\n}\n\nexport class SequenceIntervalClass\n\t// eslint-disable-next-line import/no-deprecated\n\timplements SequenceInterval, ISerializableInterval, IDisposable\n{\n\treadonly #props: {\n\t\tpropertyManager?: PropertiesManager;\n\t\tproperties: PropertySet;\n\t} = { properties: createMap<any>() };\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.properties}\n\t */\n\tpublic get properties(): Readonly<PropertySet> {\n\t\tthis.verifyNotDispose();\n\t\treturn this.#props.properties;\n\t}\n\n\tpublic changeProperties(\n\t\tprops: PropertySet | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\trollback?: boolean,\n\t) {\n\t\tthis.verifyNotDispose();\n\n\t\tif (props !== undefined) {\n\t\t\tthis.#props.propertyManager ??= new PropertiesManager();\n\t\t\treturn this.#props.propertyManager.handleProperties(\n\t\t\t\t{ props },\n\t\t\t\tthis.#props,\n\t\t\t\tthis.client.getCollabWindow().collaborating\n\t\t\t\t\t? (op?.sequenceNumber ?? UnassignedSequenceNumber)\n\t\t\t\t\t: UniversalSequenceNumber,\n\t\t\t\top?.minimumSequenceNumber ?? UniversalSequenceNumber,\n\t\t\t\tthis.client.getCollabWindow().collaborating,\n\t\t\t\trollback,\n\t\t\t);\n\t\t}\n\t}\n\n\t/***/\n\tpublic get stickiness(): IntervalStickiness {\n\t\tthis.verifyNotDispose();\n\n\t\tconst startSegment: ISegmentInternal | undefined = this.start.getSegment();\n\t\tconst endSegment: ISegmentInternal | undefined = this.end.getSegment();\n\t\treturn computeStickinessFromSide(\n\t\t\tstartSegment?.endpointType,\n\t\t\tthis.startSide,\n\t\t\tendSegment?.endpointType,\n\t\t\tthis.endSide,\n\t\t);\n\t}\n\n\tconstructor(\n\t\tprivate readonly client: Client,\n\t\tprivate readonly id: string,\n\t\tprivate readonly label: string,\n\t\t/**\n\t\t * Start endpoint of this interval.\n\t\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t\t */\n\t\tpublic start: LocalReferencePosition,\n\t\t/**\n\t\t * End endpoint of this interval.\n\t\t * @remarks This endpoint can be resolved into a character position using the SharedString it's a part of.\n\t\t */\n\t\tpublic end: LocalReferencePosition,\n\t\tpublic intervalType: IntervalType,\n\t\tprops?: PropertySet,\n\t\tpublic readonly startSide: Side = Side.Before,\n\t\tpublic readonly endSide: Side = Side.Before,\n\t) {\n\t\tif (props) {\n\t\t\tthis.#props.properties = addProperties(this.#props.properties, props);\n\t\t}\n\t}\n\t#disposed = false;\n\tpublic get disposed() {\n\t\treturn this.#disposed;\n\t}\n\tpublic dispose(error?: Error): void {\n\t\tif (this.#disposed) return;\n\t\tthis.#disposed = true;\n\t\tthis.client.removeLocalReferencePosition(this.start);\n\t\tthis.client.removeLocalReferencePosition(this.end);\n\t\tthis.removePositionChangeListeners();\n\t\tthis.#props.propertyManager = undefined;\n\t}\n\n\tprivate verifyNotDispose() {\n\t\tif (this.#disposed) {\n\t\t\tthrow new LoggingError(\"Invalid interval access after dispose\");\n\t\t}\n\t}\n\n\tprivate callbacks?: Record<\"beforePositionChange\" | \"afterPositionChange\", () => void>;\n\n\t/**\n\t * Subscribes to position change events on this interval if there are no current listeners.\n\t */\n\tpublic addPositionChangeListeners(\n\t\tbeforePositionChange: () => void,\n\t\tafterPositionChange: () => void,\n\t): void {\n\t\tthis.verifyNotDispose();\n\t\tif (this.callbacks === undefined) {\n\t\t\tthis.callbacks = {\n\t\t\t\tbeforePositionChange,\n\t\t\t\tafterPositionChange,\n\t\t\t};\n\n\t\t\tconst startCbs = (this.start.callbacks ??= {});\n\t\t\tconst endCbs = (this.end.callbacks ??= {});\n\t\t\tstartCbs.beforeSlide = endCbs.beforeSlide = beforePositionChange;\n\t\t\tstartCbs.afterSlide = endCbs.afterSlide = afterPositionChange;\n\t\t}\n\t}\n\n\t/**\n\t * Removes the currently subscribed position change listeners.\n\t */\n\tpublic removePositionChangeListeners(): void {\n\t\tif (this.callbacks) {\n\t\t\tthis.callbacks = undefined;\n\t\t\tthis.start.callbacks = undefined;\n\t\t\tthis.end.callbacks = undefined;\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.serialize}\n\t */\n\tpublic serialize(): ISerializedInterval {\n\t\tthis.verifyNotDispose();\n\n\t\treturn this.serializeDelta({\n\t\t\tprops: this.properties,\n\t\t\tincludeEndpoints: true,\n\t\t}) as ISerializedInterval;\n\t}\n\n\tpublic serializeDelta({\n\t\tprops,\n\t\tincludeEndpoints,\n\t}: {\n\t\tprops: PropertySet | undefined;\n\t\tincludeEndpoints: boolean;\n\t}): SerializedIntervalDelta {\n\t\tthis.verifyNotDispose();\n\n\t\tconst startSegment: ISegmentInternal | undefined = this.start.getSegment();\n\t\tconst endSegment: ISegmentInternal | undefined = this.end.getSegment();\n\t\tconst startPosition = includeEndpoints\n\t\t\t? (startSegment?.endpointType ??\n\t\t\t\tthis.client.localReferencePositionToPosition(this.start))\n\t\t\t: undefined;\n\t\tconst endPosition = includeEndpoints\n\t\t\t? (endSegment?.endpointType ?? this.client.localReferencePositionToPosition(this.end))\n\t\t\t: undefined;\n\t\treturn {\n\t\t\tend: endPosition,\n\t\t\tintervalType: this.intervalType,\n\t\t\tsequenceNumber: this.client.getCurrentSeq(),\n\t\t\tstart: startPosition,\n\t\t\tstickiness: this.stickiness,\n\t\t\tstartSide: includeEndpoints ? this.startSide : undefined,\n\t\t\tendSide: includeEndpoints ? this.endSide : undefined,\n\t\t\tproperties: {\n\t\t\t\t...props,\n\t\t\t\t[reservedIntervalIdKey]: this.id,\n\t\t\t\t[reservedRangeLabelsKey]: [this.label],\n\t\t\t},\n\t\t} satisfies SerializedIntervalDelta;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.clone}\n\t */\n\tpublic clone(): SequenceIntervalClass {\n\t\tthis.verifyNotDispose();\n\n\t\treturn new SequenceIntervalClass(\n\t\t\tthis.client,\n\t\t\tthis.id,\n\t\t\tthis.label,\n\t\t\tthis.start,\n\t\t\tthis.end,\n\t\t\tthis.intervalType,\n\t\t\tthis.properties,\n\t\t\tthis.startSide,\n\t\t\tthis.endSide,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compare}\n\t */\n\tpublic compare(b: SequenceInterval) {\n\t\tconst startResult = this.compareStart(b);\n\t\tif (startResult === 0) {\n\t\t\tconst endResult = this.compareEnd(b);\n\t\t\tif (endResult === 0) {\n\t\t\t\tconst thisId = this.getIntervalId();\n\t\t\t\tif (thisId) {\n\t\t\t\t\tconst bId = b.getIntervalId();\n\t\t\t\t\tif (bId) {\n\t\t\t\t\t\treturn thisId > bId ? 1 : thisId < bId ? -1 : 0;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t} else {\n\t\t\t\treturn endResult;\n\t\t\t}\n\t\t} else {\n\t\t\treturn startResult;\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compareStart}\n\t */\n\tpublic compareStart(b: SequenceInterval) {\n\t\tthis.verifyNotDispose();\n\n\t\tconst dist = compareReferencePositions(this.start, b.start);\n\n\t\tif (dist === 0) {\n\t\t\treturn compareSides(this.startSide, b.startSide);\n\t\t}\n\n\t\treturn dist;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.compareEnd}\n\t */\n\tpublic compareEnd(b: SequenceInterval): number {\n\t\tthis.verifyNotDispose();\n\n\t\tconst dist = compareReferencePositions(this.end, b.end);\n\n\t\tif (dist === 0) {\n\t\t\treturn compareSides(b.endSide, this.endSide);\n\t\t}\n\n\t\treturn dist;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.overlaps}\n\t */\n\tpublic overlaps(b: SequenceInterval) {\n\t\tthis.verifyNotDispose();\n\n\t\tconst result =\n\t\t\tcompareReferencePositions(this.start, b.end) <= 0 &&\n\t\t\tcompareReferencePositions(this.end, b.start) >= 0;\n\t\treturn result;\n\t}\n\n\t/**\n\t * {@inheritDoc ISerializableInterval.getIntervalId}\n\t */\n\tpublic getIntervalId(): string {\n\t\treturn this.id;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.union}\n\t */\n\tpublic union(b: SequenceIntervalClass) {\n\t\tthis.verifyNotDispose();\n\n\t\tconst newStart = minReferencePosition(this.start, b.start);\n\t\tconst newEnd = maxReferencePosition(this.end, b.end);\n\n\t\tlet startSide: Side;\n\n\t\tif (this.start === b.start) {\n\t\t\tstartSide = minSide(this.startSide, b.startSide);\n\t\t} else {\n\t\t\tstartSide = this.start === newStart ? this.startSide : b.startSide;\n\t\t}\n\n\t\tlet endSide: Side;\n\n\t\tif (this.end === b.end) {\n\t\t\tendSide = maxSide(this.endSide, b.endSide);\n\t\t} else {\n\t\t\tendSide = this.end === newEnd ? this.endSide : b.endSide;\n\t\t}\n\n\t\treturn new SequenceIntervalClass(\n\t\t\tthis.client,\n\t\t\tuuid(),\n\t\t\tthis.label,\n\t\t\tnewStart,\n\t\t\tnewEnd,\n\t\t\tthis.intervalType,\n\t\t\tundefined,\n\t\t\tstartSide,\n\t\t\tendSide,\n\t\t);\n\t}\n\n\t/**\n\t * @returns whether this interval overlaps two numerical positions.\n\t */\n\tpublic overlapsPos(bstart: number, bend: number) {\n\t\tthis.verifyNotDispose();\n\n\t\tconst startPos = this.client.localReferencePositionToPosition(this.start);\n\t\tconst endPos = this.client.localReferencePositionToPosition(this.end);\n\t\treturn endPos > bstart && startPos < bend;\n\t}\n\n\tpublic moveEndpointReferences(\n\t\trebased: Record<\"start\" | \"end\", { segment: ISegment; offset: number }>,\n\t) {\n\t\tthis.verifyNotDispose();\n\n\t\tconst startRef = createPositionReferenceFromSegoff({\n\t\t\tclient: this.client,\n\t\t\tsegoff: rebased.start,\n\t\t\trefType: this.start.refType,\n\t\t\tslidingPreference: this.start.slidingPreference,\n\t\t\tcanSlideToEndpoint: this.start.canSlideToEndpoint,\n\t\t});\n\t\tif (this.start.properties) {\n\t\t\tstartRef.addProperties(this.start.properties);\n\t\t}\n\t\tthis.start = startRef;\n\n\t\tconst endRef = createPositionReferenceFromSegoff({\n\t\t\tclient: this.client,\n\t\t\tsegoff: rebased.end,\n\t\t\trefType: this.end.refType,\n\t\t\tslidingPreference: this.end.slidingPreference,\n\t\t\tcanSlideToEndpoint: this.end.canSlideToEndpoint,\n\t\t});\n\t\tif (this.end.properties) {\n\t\t\tendRef.addProperties(this.end.properties);\n\t\t}\n\t\tthis.end = endRef;\n\t}\n\n\t/**\n\t * {@inheritDoc IInterval.modify}\n\t */\n\tpublic modify(\n\t\tlabel: string,\n\t\tstart: SequencePlace | undefined,\n\t\tend: SequencePlace | undefined,\n\t\top?: ISequencedDocumentMessage,\n\t\tlocalSeq?: number,\n\t\tcanSlideToEndpoint: boolean = false,\n\t) {\n\t\tthis.verifyNotDispose();\n\n\t\tconst { startSide, endSide, startPos, endPos } = endpointPosAndSide(start, end);\n\t\tconst getRefType = (baseType: ReferenceType): ReferenceType => {\n\t\t\tlet refType = baseType;\n\t\t\tif (op === undefined) {\n\t\t\t\trefType &= ~ReferenceType.SlideOnRemove;\n\t\t\t\trefType |= ReferenceType.StayOnRemove;\n\t\t\t} else {\n\t\t\t\trefType &= ~ReferenceType.StayOnRemove;\n\t\t\t\trefType |= ReferenceType.SlideOnRemove;\n\t\t\t}\n\t\t\treturn refType;\n\t\t};\n\n\t\tlet startRef = this.start;\n\t\tif (startPos !== undefined) {\n\t\t\tconst slidingPreference = startReferenceSlidingPreference(\n\t\t\t\tstartPos,\n\t\t\t\tstartSide ?? Side.Before,\n\t\t\t\tendPos,\n\t\t\t\tendSide ?? Side.Before,\n\t\t\t);\n\t\t\tstartRef = createPositionReference({\n\t\t\t\tclient: this.client,\n\t\t\t\tpos: startPos,\n\t\t\t\trefType: getRefType(this.start.refType),\n\t\t\t\top,\n\t\t\t\tlocalSeq,\n\t\t\t\tslidingPreference,\n\t\t\t\tcanSlideToEndpoint:\n\t\t\t\t\tcanSlideToEndpoint && slidingPreference === SlidingPreference.BACKWARD,\n\t\t\t});\n\t\t\tif (this.start.properties) {\n\t\t\t\tstartRef.addProperties(this.start.properties);\n\t\t\t}\n\t\t}\n\n\t\tlet endRef = this.end;\n\t\tif (endPos !== undefined) {\n\t\t\tconst slidingPreference = endReferenceSlidingPreference(\n\t\t\t\tstartPos,\n\t\t\t\tstartSide ?? Side.Before,\n\t\t\t\tendPos,\n\t\t\t\tendSide ?? Side.Before,\n\t\t\t);\n\t\t\tendRef = createPositionReference({\n\t\t\t\tclient: this.client,\n\t\t\t\tpos: endPos,\n\t\t\t\trefType: getRefType(this.end.refType),\n\t\t\t\top,\n\t\t\t\tlocalSeq,\n\t\t\t\tslidingPreference,\n\t\t\t\tcanSlideToEndpoint:\n\t\t\t\t\tcanSlideToEndpoint && slidingPreference === SlidingPreference.FORWARD,\n\t\t\t});\n\t\t\tif (this.end.properties) {\n\t\t\t\tendRef.addProperties(this.end.properties);\n\t\t\t}\n\t\t}\n\n\t\tconst newInterval = new SequenceIntervalClass(\n\t\t\tthis.client,\n\t\t\tthis.id,\n\t\t\tthis.label,\n\t\t\tstartRef,\n\t\t\tendRef,\n\t\t\tthis.intervalType,\n\t\t\tundefined,\n\t\t\tstartSide ?? this.startSide,\n\t\t\tendSide ?? this.endSide,\n\t\t);\n\t\tnewInterval.#props.propertyManager = this.#props.propertyManager ??=\n\t\t\tnew PropertiesManager();\n\t\tnewInterval.#props.properties = this.#props.properties;\n\t\treturn newInterval;\n\t}\n\n\tpublic ackPropertiesChange(newProps: PropertySet, op: ISequencedDocumentMessage) {\n\t\tthis.verifyNotDispose();\n\n\t\tif (Object.keys(newProps).length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tassert(\n\t\t\tthis.#props.propertyManager !== undefined,\n\t\t\t0xbd5 /* must have property manager to ack */,\n\t\t);\n\t\t// Let the propertyManager prune its pending change-properties set.\n\t\tthis.#props.propertyManager.ack(op.sequenceNumber, op.minimumSequenceNumber, {\n\t\t\tprops: newProps,\n\t\t});\n\t}\n}\n\nexport function createPositionReferenceFromSegoff({\n\tclient,\n\tsegoff,\n\trefType,\n\top,\n\tlocalSeq,\n\tfromSnapshot,\n\tslidingPreference,\n\tcanSlideToEndpoint,\n\trollback,\n}: {\n\tclient: Client;\n\tsegoff: { segment: ISegment; offset: number } | undefined | \"start\" | \"end\";\n\trefType: ReferenceType;\n\top?: ISequencedDocumentMessage;\n\tlocalSeq?: number;\n\tfromSnapshot?: boolean;\n\tslidingPreference: SlidingPreference | undefined;\n\tcanSlideToEndpoint: boolean | undefined;\n\trollback?: boolean;\n}): LocalReferencePosition {\n\tif (segoff === \"start\" || segoff === \"end\") {\n\t\treturn client.createLocalReferencePosition(\n\t\t\tsegoff,\n\t\t\tundefined,\n\t\t\trefType,\n\t\t\tundefined,\n\t\t\tslidingPreference,\n\t\t\tcanSlideToEndpoint,\n\t\t);\n\t}\n\n\tif (segoff?.segment) {\n\t\tconst ref = client.createLocalReferencePosition(\n\t\t\tsegoff.segment,\n\t\t\tsegoff.offset,\n\t\t\trefType,\n\t\t\tundefined,\n\t\t\tslidingPreference,\n\t\t\tcanSlideToEndpoint,\n\t\t);\n\t\treturn ref;\n\t}\n\n\t// Creating references on detached segments is allowed for:\n\t// - Transient segments\n\t// - References coming from a remote client (location may have been concurrently removed)\n\t// - References being rebased to a new sequence number\n\t// (segment they originally referred to may have been removed with no suitable replacement)\n\tif (\n\t\t!op &&\n\t\t!localSeq &&\n\t\t!fromSnapshot &&\n\t\t!refTypeIncludesFlag(refType, ReferenceType.Transient) &&\n\t\t!rollback\n\t) {\n\t\tthrow new UsageError(\"Non-transient references need segment\");\n\t}\n\n\treturn createDetachedLocalReferencePosition(slidingPreference, refType);\n}\n\nfunction createPositionReference({\n\tclient,\n\tpos,\n\trefType,\n\top,\n\tfromSnapshot,\n\tlocalSeq,\n\tslidingPreference,\n\tcanSlideToEndpoint,\n\trollback,\n}: {\n\tclient: Client;\n\tpos: number | \"start\" | \"end\";\n\trefType: ReferenceType;\n\top?: ISequencedDocumentMessage;\n\tfromSnapshot?: boolean;\n\tlocalSeq?: number;\n\tslidingPreference: SlidingPreference;\n\tcanSlideToEndpoint: boolean;\n\trollback?: boolean;\n}): LocalReferencePosition {\n\tlet segoff;\n\n\tif (op) {\n\t\tassert(\n\t\t\t(refType & ReferenceType.SlideOnRemove) !== 0,\n\t\t\t0x2f5 /* op create references must be SlideOnRemove */,\n\t\t);\n\t\tif (pos === \"start\" || pos === \"end\") {\n\t\t\tsegoff = pos;\n\t\t} else {\n\t\t\tsegoff = client.getContainingSegment(pos, {\n\t\t\t\treferenceSequenceNumber: op.referenceSequenceNumber,\n\t\t\t\tclientId: op.clientId,\n\t\t\t});\n\t\t\tsegoff = getSlideToSegoff(segoff, slidingPreference, undefined, canSlideToEndpoint);\n\t\t}\n\t} else {\n\t\tassert(\n\t\t\t(refType & ReferenceType.SlideOnRemove) === 0 || !!fromSnapshot,\n\t\t\t0x2f6 /* SlideOnRemove references must be op created */,\n\t\t);\n\t\tsegoff =\n\t\t\tpos === \"start\" || pos === \"end\"\n\t\t\t\t? pos\n\t\t\t\t: client.getContainingSegment(pos, undefined, localSeq);\n\t}\n\n\treturn createPositionReferenceFromSegoff({\n\t\tclient,\n\t\tsegoff,\n\t\trefType,\n\t\top,\n\t\tlocalSeq,\n\t\tfromSnapshot,\n\t\tslidingPreference,\n\t\tcanSlideToEndpoint,\n\t\trollback,\n\t});\n}\n\nexport function createTransientInterval(\n\tstart: SequencePlace | undefined,\n\tend: SequencePlace | undefined,\n\tclient: Client,\n) {\n\treturn createSequenceInterval(\n\t\t\"transient\",\n\t\tuuid(),\n\t\tstart,\n\t\tend,\n\t\tclient,\n\t\tIntervalType.Transient,\n\t);\n}\n\nexport function createSequenceInterval(\n\tlabel: string,\n\tid: string,\n\tstart: SequencePlace | undefined,\n\tend: SequencePlace | undefined,\n\tclient: Client,\n\tintervalType: IntervalType,\n\top?: ISequencedDocumentMessage,\n\tfromSnapshot?: boolean,\n\tcanSlideToEndpoint: boolean = false,\n\tprops?: PropertySet,\n\trollback?: boolean,\n): SequenceIntervalClass {\n\tconst { startPos, startSide, endPos, endSide } = endpointPosAndSide(\n\t\tstart ?? \"start\",\n\t\tend ?? \"end\",\n\t);\n\tassert(\n\t\tstartPos !== undefined &&\n\t\t\tendPos !== undefined &&\n\t\t\tstartSide !== undefined &&\n\t\t\tendSide !== undefined,\n\t\t0x794 /* start and end cannot be undefined because they were not passed in as undefined */,\n\t);\n\tlet beginRefType = ReferenceType.RangeBegin;\n\tlet endRefType = ReferenceType.RangeEnd;\n\tif (intervalType === IntervalType.Transient) {\n\t\tbeginRefType = ReferenceType.Transient;\n\t\tendRefType = ReferenceType.Transient;\n\t} else {\n\t\t// All non-transient interval references must eventually be SlideOnRemove\n\t\t// To ensure eventual consistency, they must start as StayOnRemove when\n\t\t// pending (created locally and creation op is not acked)\n\t\tif (op ?? fromSnapshot) {\n\t\t\tbeginRefType |= ReferenceType.SlideOnRemove;\n\t\t\tendRefType |= ReferenceType.SlideOnRemove;\n\t\t} else {\n\t\t\tbeginRefType |= ReferenceType.StayOnRemove;\n\t\t\tendRefType |= ReferenceType.StayOnRemove;\n\t\t}\n\t}\n\n\tconst stickiness = computeStickinessFromSide(startPos, startSide, endPos, endSide);\n\n\tconst startSlidingPreference = startReferenceSlidingPreference(\n\t\tstartPos,\n\t\tstartSide,\n\t\tendPos,\n\t\tendSide,\n\t);\n\n\tconst startLref = createPositionReference({\n\t\tclient,\n\t\tpos: startPos,\n\t\trefType: beginRefType,\n\t\top,\n\t\tfromSnapshot,\n\t\tslidingPreference: startSlidingPreference,\n\t\tcanSlideToEndpoint: canSlideToEndpoint && stickiness !== IntervalStickiness.NONE,\n\t\trollback,\n\t});\n\n\tconst endSlidingPreference = endReferenceSlidingPreference(\n\t\tstartPos,\n\t\tstartSide,\n\t\tendPos,\n\t\tendSide,\n\t);\n\n\tconst endLref = createPositionReference({\n\t\tclient,\n\t\tpos: endPos,\n\t\trefType: endRefType,\n\t\top,\n\t\tfromSnapshot,\n\t\tslidingPreference: endSlidingPreference,\n\t\tcanSlideToEndpoint: canSlideToEndpoint && stickiness !== IntervalStickiness.NONE,\n\t\trollback,\n\t});\n\n\tconst rangeProp = {\n\t\t[reservedRangeLabelsKey]: [label],\n\t};\n\tstartLref.addProperties(rangeProp);\n\tendLref.addProperties(rangeProp);\n\n\tconst ival = new SequenceIntervalClass(\n\t\tclient,\n\t\tid,\n\t\tlabel,\n\t\tstartLref,\n\t\tendLref,\n\t\tintervalType,\n\t\tprops === undefined\n\t\t\t? undefined\n\t\t\t: { ...props, [reservedIntervalIdKey]: undefined, [reservedRangeLabelsKey]: undefined },\n\t\tstartSide,\n\t\tendSide,\n\t);\n\treturn ival;\n}\n"]}
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/sequence";
8
- export declare const pkgVersion = "2.43.0";
8
+ export declare const pkgVersion = "2.50.0";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -8,5 +8,5 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.pkgVersion = exports.pkgName = void 0;
10
10
  exports.pkgName = "@fluidframework/sequence";
11
- exports.pkgVersion = "2.43.0";
11
+ exports.pkgVersion = "2.50.0";
12
12
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,0BAA0B,CAAC;AACrC,QAAA,UAAU,GAAG,QAAQ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/sequence\";\nexport const pkgVersion = \"2.43.0\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,0BAA0B,CAAC;AACrC,QAAA,UAAU,GAAG,QAAQ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/sequence\";\nexport const pkgVersion = \"2.50.0\";\n"]}
@@ -41,7 +41,7 @@ export declare class LocalIntervalCollection {
41
41
  appendIndex(index: SequenceIntervalIndex): void;
42
42
  removeIndex(index: SequenceIntervalIndex): boolean;
43
43
  removeExistingInterval(interval: SequenceIntervalClass): void;
44
- addInterval(id: string, start: SequencePlace, end: SequencePlace, props?: PropertySet, op?: ISequencedDocumentMessage, rollback?: boolean): SequenceIntervalClass;
44
+ addInterval(id: string, start: SequencePlace, end: SequencePlace, props?: PropertySet, op?: ISequencedDocumentMessage): SequenceIntervalClass;
45
45
  private linkEndpointsToInterval;
46
46
  private addIntervalToIndexes;
47
47
  add(interval: SequenceIntervalClass): void;
@@ -351,12 +351,11 @@ export declare class IntervalCollection extends TypedEventEmitter<ISequenceInter
351
351
  /**
352
352
  * {@inheritdoc IIntervalCollection.add}
353
353
  */
354
- add({ id, start, end, props, rollback, }: {
354
+ add({ id, start, end, props, }: {
355
355
  id?: string;
356
356
  start: SequencePlace;
357
357
  end: SequencePlace;
358
358
  props?: PropertySet;
359
- rollback?: boolean;
360
359
  }): SequenceIntervalClass;
361
360
  private deleteExistingInterval;
362
361
  /**
@@ -374,7 +373,7 @@ export declare class IntervalCollection extends TypedEventEmitter<ISequenceInter
374
373
  }): SequenceIntervalClass | undefined;
375
374
  private get isCollaborating();
376
375
  private hasPendingEndpointChanges;
377
- ackChange(serializedInterval: SerializedIntervalDelta, local: boolean, op: ISequencedDocumentMessage): void;
376
+ ackChange(serializedInterval: SerializedIntervalDelta, local: boolean, op: ISequencedDocumentMessage, localOpMetadata: IntervalChangeLocalMetadata | undefined): SequenceIntervalClass | undefined;
378
377
  /**
379
378
  * {@inheritdoc IIntervalCollection.attachDeserializer}
380
379
  */
@@ -388,7 +387,7 @@ export declare class IntervalCollection extends TypedEventEmitter<ISequenceInter
388
387
  rebaseLocalInterval(original: SerializedIntervalDelta, localOpMetadata: IntervalAddLocalMetadata | IntervalChangeLocalMetadata, squash: boolean): SerializedIntervalDelta | undefined;
389
388
  private getSlideToSegment;
390
389
  private ackInterval;
391
- ackAdd(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage, localOpMetadata: IntervalAddLocalMetadata | undefined): SequenceIntervalClass | undefined;
390
+ ackAdd(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage, localOpMetadata: IntervalAddLocalMetadata | undefined): SequenceIntervalClass;
392
391
  ackDelete(serializedInterval: SerializedIntervalDelta, local: boolean, op: ISequencedDocumentMessage): void;
393
392
  serializeInternal(version: "1" | "2"): ISerializedIntervalCollectionV1 | ISerializedIntervalCollectionV2;
394
393
  /**
@@ -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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"}