@fluidframework/sequence 2.0.0-internal.7.4.0 → 2.0.0-internal.7.4.2

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 (263) hide show
  1. package/dist/{defaultMap.js → defaultMap.cjs} +2 -2
  2. package/dist/defaultMap.cjs.map +1 -0
  3. package/{lib/intervalIndex/intervalIndex.js → dist/defaultMapInterfaces.cjs} +1 -1
  4. package/dist/defaultMapInterfaces.cjs.map +1 -0
  5. package/dist/{index.js → index.cjs} +11 -11
  6. package/dist/index.cjs.map +1 -0
  7. package/dist/{intervalCollection.js → intervalCollection.cjs} +3 -3
  8. package/dist/intervalCollection.cjs.map +1 -0
  9. package/dist/intervalIndex/{endpointInRangeIndex.js → endpointInRangeIndex.cjs} +3 -3
  10. package/dist/intervalIndex/endpointInRangeIndex.cjs.map +1 -0
  11. package/{lib/intervalIndex/endpointIndex.js → dist/intervalIndex/endpointIndex.cjs} +2 -2
  12. package/dist/intervalIndex/endpointIndex.cjs.map +1 -0
  13. package/dist/intervalIndex/{idIntervalIndex.js → idIntervalIndex.cjs} +1 -1
  14. package/dist/intervalIndex/idIntervalIndex.cjs.map +1 -0
  15. package/{lib/intervalIndex/index.js → dist/intervalIndex/index.cjs} +7 -7
  16. package/dist/intervalIndex/index.cjs.map +1 -0
  17. package/dist/intervalIndex/{intervalIndex.js → intervalIndex.cjs} +1 -1
  18. package/dist/intervalIndex/intervalIndex.cjs.map +1 -0
  19. package/{lib/intervalIndex/intervalIndexUtils.js → dist/intervalIndex/intervalIndexUtils.cjs} +1 -1
  20. package/dist/intervalIndex/intervalIndexUtils.cjs.map +1 -0
  21. package/{lib/intervalIndex/overlappingIntervalsIndex.js → dist/intervalIndex/overlappingIntervalsIndex.cjs} +4 -4
  22. package/dist/intervalIndex/overlappingIntervalsIndex.cjs.map +1 -0
  23. package/{lib/intervalIndex/overlappingSequenceIntervalsIndex.js → dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs} +3 -3
  24. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs.map +1 -0
  25. package/dist/intervalIndex/{sequenceIntervalIndexes.js → sequenceIntervalIndexes.cjs} +1 -1
  26. package/dist/intervalIndex/sequenceIntervalIndexes.cjs.map +1 -0
  27. package/{lib/intervalIndex/startpointInRangeIndex.js → dist/intervalIndex/startpointInRangeIndex.cjs} +3 -3
  28. package/dist/intervalIndex/startpointInRangeIndex.cjs.map +1 -0
  29. package/{lib/intervalTree.js → dist/intervalTree.cjs} +1 -1
  30. package/dist/intervalTree.cjs.map +1 -0
  31. package/{lib/intervals/index.js → dist/intervals/index.cjs} +4 -4
  32. package/dist/intervals/index.cjs.map +1 -0
  33. package/{lib/intervals/interval.js → dist/intervals/interval.cjs} +1 -1
  34. package/dist/intervals/interval.cjs.map +1 -0
  35. package/{lib/intervals/intervalUtils.js → dist/intervals/intervalUtils.cjs} +1 -1
  36. package/dist/intervals/intervalUtils.cjs.map +1 -0
  37. package/{lib/intervals/sequenceInterval.js → dist/intervals/sequenceInterval.cjs} +3 -3
  38. package/dist/intervals/sequenceInterval.cjs.map +1 -0
  39. package/dist/{localValues.js → localValues.cjs} +1 -1
  40. package/dist/localValues.cjs.map +1 -0
  41. package/{lib/packageVersion.js → dist/packageVersion.cjs} +2 -2
  42. package/dist/packageVersion.cjs.map +1 -0
  43. package/dist/packageVersion.d.ts +1 -1
  44. package/{lib/revertibles.js → dist/revertibles.cjs} +3 -3
  45. package/dist/revertibles.cjs.map +1 -0
  46. package/dist/{sequence.js → sequence.cjs} +4 -4
  47. package/dist/sequence.cjs.map +1 -0
  48. package/{lib/sequenceDeltaEvent.js → dist/sequenceDeltaEvent.cjs} +1 -1
  49. package/dist/sequenceDeltaEvent.cjs.map +1 -0
  50. package/dist/{sequenceFactory.js → sequenceFactory.cjs} +3 -3
  51. package/dist/sequenceFactory.cjs.map +1 -0
  52. package/{lib/sharedIntervalCollection.js → dist/sharedIntervalCollection.cjs} +4 -4
  53. package/dist/sharedIntervalCollection.cjs.map +1 -0
  54. package/{lib/sharedSequence.js → dist/sharedSequence.cjs} +2 -2
  55. package/dist/sharedSequence.cjs.map +1 -0
  56. package/{lib/sharedString.js → dist/sharedString.cjs} +3 -3
  57. package/dist/sharedString.cjs.map +1 -0
  58. package/lib/{defaultMap.d.ts → defaultMap.d.mts} +1 -1
  59. package/lib/defaultMap.d.mts.map +1 -0
  60. package/lib/{defaultMap.js → defaultMap.mjs} +19 -23
  61. package/lib/defaultMap.mjs.map +1 -0
  62. package/lib/{defaultMapInterfaces.d.ts → defaultMapInterfaces.d.mts} +1 -1
  63. package/lib/defaultMapInterfaces.d.mts.map +1 -0
  64. package/lib/defaultMapInterfaces.mjs +6 -0
  65. package/lib/{defaultMapInterfaces.js.map → defaultMapInterfaces.mjs.map} +1 -1
  66. package/lib/{index.d.ts → index.d.mts} +11 -23
  67. package/lib/index.d.mts.map +1 -0
  68. package/lib/index.mjs +15 -0
  69. package/lib/index.mjs.map +1 -0
  70. package/lib/{intervalCollection.d.ts → intervalCollection.d.mts} +3 -3
  71. package/lib/intervalCollection.d.mts.map +1 -0
  72. package/lib/{intervalCollection.js → intervalCollection.mjs} +118 -133
  73. package/lib/intervalCollection.mjs.map +1 -0
  74. package/lib/intervalIndex/{endpointInRangeIndex.d.ts → endpointInRangeIndex.d.mts} +3 -3
  75. package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +1 -0
  76. package/lib/intervalIndex/{endpointInRangeIndex.js → endpointInRangeIndex.mjs} +13 -18
  77. package/lib/intervalIndex/endpointInRangeIndex.mjs.map +1 -0
  78. package/lib/intervalIndex/{endpointIndex.d.ts → endpointIndex.d.mts} +3 -3
  79. package/lib/intervalIndex/endpointIndex.d.mts.map +1 -0
  80. package/{dist/intervalIndex/endpointIndex.js → lib/intervalIndex/endpointIndex.mjs} +9 -14
  81. package/lib/intervalIndex/endpointIndex.mjs.map +1 -0
  82. package/lib/intervalIndex/{idIntervalIndex.d.ts → idIntervalIndex.d.mts} +2 -2
  83. package/lib/intervalIndex/idIntervalIndex.d.mts.map +1 -0
  84. package/lib/intervalIndex/{idIntervalIndex.js → idIntervalIndex.mjs} +5 -9
  85. package/lib/intervalIndex/idIntervalIndex.mjs.map +1 -0
  86. package/lib/intervalIndex/{index.d.ts → index.d.mts} +8 -8
  87. package/lib/intervalIndex/index.d.mts.map +1 -0
  88. package/lib/intervalIndex/index.mjs +11 -0
  89. package/{dist/intervalIndex/index.js.map → lib/intervalIndex/index.mjs.map} +1 -1
  90. package/lib/intervalIndex/{intervalIndex.d.ts → intervalIndex.d.mts} +1 -1
  91. package/lib/intervalIndex/intervalIndex.d.mts.map +1 -0
  92. package/lib/intervalIndex/intervalIndex.mjs +6 -0
  93. package/{dist/intervalIndex/intervalIndex.js.map → lib/intervalIndex/intervalIndex.mjs.map} +1 -1
  94. package/{dist/intervalIndex/intervalIndexUtils.js → lib/intervalIndex/intervalIndexUtils.mjs} +5 -9
  95. package/lib/intervalIndex/intervalIndexUtils.mjs.map +1 -0
  96. package/lib/intervalIndex/{overlappingIntervalsIndex.d.ts → overlappingIntervalsIndex.d.mts} +5 -5
  97. package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +1 -0
  98. package/{dist/intervalIndex/overlappingIntervalsIndex.js → lib/intervalIndex/overlappingIntervalsIndex.mjs} +11 -16
  99. package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +1 -0
  100. package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.d.ts → overlappingSequenceIntervalsIndex.d.mts} +2 -2
  101. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +1 -0
  102. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs +37 -0
  103. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +1 -0
  104. package/lib/intervalIndex/{sequenceIntervalIndexes.d.ts → sequenceIntervalIndexes.d.mts} +2 -2
  105. package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +1 -0
  106. package/lib/intervalIndex/sequenceIntervalIndexes.mjs +6 -0
  107. package/{dist/intervalIndex/sequenceIntervalIndexes.js.map → lib/intervalIndex/sequenceIntervalIndexes.mjs.map} +1 -1
  108. package/lib/intervalIndex/{startpointInRangeIndex.d.ts → startpointInRangeIndex.d.mts} +3 -3
  109. package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +1 -0
  110. package/{dist/intervalIndex/startpointInRangeIndex.js → lib/intervalIndex/startpointInRangeIndex.mjs} +13 -18
  111. package/lib/intervalIndex/startpointInRangeIndex.mjs.map +1 -0
  112. package/lib/{intervalTree.d.ts → intervalTree.d.mts} +1 -1
  113. package/lib/intervalTree.d.mts.map +1 -0
  114. package/{dist/intervalTree.js → lib/intervalTree.mjs} +5 -10
  115. package/lib/intervalTree.mjs.map +1 -0
  116. package/lib/intervals/{index.d.ts → index.d.mts} +3 -3
  117. package/lib/intervals/index.d.mts.map +1 -0
  118. package/lib/intervals/index.mjs +8 -0
  119. package/lib/intervals/index.mjs.map +1 -0
  120. package/lib/intervals/{interval.d.ts → interval.d.mts} +2 -2
  121. package/lib/intervals/{interval.d.ts.map → interval.d.mts.map} +1 -1
  122. package/{dist/intervals/interval.js → lib/intervals/interval.mjs} +14 -19
  123. package/lib/intervals/interval.mjs.map +1 -0
  124. package/lib/intervals/{intervalUtils.d.ts → intervalUtils.d.mts} +1 -1
  125. package/lib/intervals/intervalUtils.d.mts.map +1 -0
  126. package/{dist/intervals/intervalUtils.js → lib/intervals/intervalUtils.mjs} +14 -21
  127. package/lib/intervals/intervalUtils.mjs.map +1 -0
  128. package/lib/intervals/{sequenceInterval.d.ts → sequenceInterval.d.mts} +2 -2
  129. package/lib/intervals/sequenceInterval.d.mts.map +1 -0
  130. package/{dist/intervals/sequenceInterval.js → lib/intervals/sequenceInterval.mjs} +60 -68
  131. package/lib/intervals/sequenceInterval.mjs.map +1 -0
  132. package/lib/{localValues.d.ts → localValues.d.mts} +2 -2
  133. package/lib/localValues.d.mts.map +1 -0
  134. package/lib/{localValues.js → localValues.mjs} +5 -10
  135. package/lib/localValues.mjs.map +1 -0
  136. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
  137. package/lib/packageVersion.mjs +9 -0
  138. package/lib/packageVersion.mjs.map +1 -0
  139. package/lib/{revertibles.d.ts → revertibles.d.mts} +3 -3
  140. package/lib/revertibles.d.mts.map +1 -0
  141. package/{dist/revertibles.js → lib/revertibles.mjs} +60 -72
  142. package/lib/revertibles.mjs.map +1 -0
  143. package/lib/{sequence.d.ts → sequence.d.mts} +4 -4
  144. package/lib/sequence.d.mts.map +1 -0
  145. package/lib/{sequence.js → sequence.mjs} +40 -46
  146. package/lib/sequence.mjs.map +1 -0
  147. package/lib/sequenceDeltaEvent.d.mts.map +1 -0
  148. package/{dist/sequenceDeltaEvent.js → lib/sequenceDeltaEvent.mjs} +8 -15
  149. package/lib/sequenceDeltaEvent.mjs.map +1 -0
  150. package/lib/{sequenceFactory.d.ts → sequenceFactory.d.mts} +1 -1
  151. package/lib/sequenceFactory.d.mts.map +1 -0
  152. package/lib/{sequenceFactory.js → sequenceFactory.mjs} +10 -14
  153. package/lib/sequenceFactory.mjs.map +1 -0
  154. package/lib/{sharedIntervalCollection.d.ts → sharedIntervalCollection.d.mts} +2 -2
  155. package/lib/sharedIntervalCollection.d.mts.map +1 -0
  156. package/{dist/sharedIntervalCollection.js → lib/sharedIntervalCollection.mjs} +14 -19
  157. package/lib/sharedIntervalCollection.mjs.map +1 -0
  158. package/lib/{sharedSequence.d.ts → sharedSequence.d.mts} +1 -1
  159. package/lib/sharedSequence.d.mts.map +1 -0
  160. package/{dist/sharedSequence.js → lib/sharedSequence.mjs} +7 -12
  161. package/lib/sharedSequence.mjs.map +1 -0
  162. package/lib/{sharedString.d.ts → sharedString.d.mts} +2 -2
  163. package/lib/sharedString.d.mts.map +1 -0
  164. package/{dist/sharedString.js → lib/sharedString.mjs} +17 -22
  165. package/lib/sharedString.mjs.map +1 -0
  166. package/package.json +38 -23
  167. package/sequence.test-files.tar +0 -0
  168. package/src/packageVersion.ts +1 -1
  169. package/tsc-multi.test.json +10 -0
  170. package/dist/defaultMap.js.map +0 -1
  171. package/dist/defaultMapInterfaces.js +0 -7
  172. package/dist/defaultMapInterfaces.js.map +0 -1
  173. package/dist/index.js.map +0 -1
  174. package/dist/intervalCollection.js.map +0 -1
  175. package/dist/intervalIndex/endpointInRangeIndex.js.map +0 -1
  176. package/dist/intervalIndex/endpointIndex.js.map +0 -1
  177. package/dist/intervalIndex/idIntervalIndex.js.map +0 -1
  178. package/dist/intervalIndex/index.js +0 -24
  179. package/dist/intervalIndex/intervalIndexUtils.js.map +0 -1
  180. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +0 -1
  181. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -41
  182. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  183. package/dist/intervalIndex/startpointInRangeIndex.js.map +0 -1
  184. package/dist/intervalTree.js.map +0 -1
  185. package/dist/intervals/index.js +0 -23
  186. package/dist/intervals/index.js.map +0 -1
  187. package/dist/intervals/interval.js.map +0 -1
  188. package/dist/intervals/intervalUtils.js.map +0 -1
  189. package/dist/intervals/sequenceInterval.js.map +0 -1
  190. package/dist/localValues.js.map +0 -1
  191. package/dist/packageVersion.js +0 -12
  192. package/dist/packageVersion.js.map +0 -1
  193. package/dist/revertibles.js.map +0 -1
  194. package/dist/sequence.js.map +0 -1
  195. package/dist/sequenceDeltaEvent.js.map +0 -1
  196. package/dist/sequenceFactory.js.map +0 -1
  197. package/dist/sharedIntervalCollection.js.map +0 -1
  198. package/dist/sharedSequence.js.map +0 -1
  199. package/dist/sharedString.js.map +0 -1
  200. package/lib/defaultMap.d.ts.map +0 -1
  201. package/lib/defaultMap.js.map +0 -1
  202. package/lib/defaultMapInterfaces.d.ts.map +0 -1
  203. package/lib/defaultMapInterfaces.js +0 -7
  204. package/lib/index.d.ts.map +0 -1
  205. package/lib/index.js +0 -50
  206. package/lib/index.js.map +0 -1
  207. package/lib/intervalCollection.d.ts.map +0 -1
  208. package/lib/intervalCollection.js.map +0 -1
  209. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +0 -1
  210. package/lib/intervalIndex/endpointInRangeIndex.js.map +0 -1
  211. package/lib/intervalIndex/endpointIndex.d.ts.map +0 -1
  212. package/lib/intervalIndex/endpointIndex.js.map +0 -1
  213. package/lib/intervalIndex/idIntervalIndex.d.ts.map +0 -1
  214. package/lib/intervalIndex/idIntervalIndex.js.map +0 -1
  215. package/lib/intervalIndex/index.d.ts.map +0 -1
  216. package/lib/intervalIndex/index.js.map +0 -1
  217. package/lib/intervalIndex/intervalIndex.d.ts.map +0 -1
  218. package/lib/intervalIndex/intervalIndex.js.map +0 -1
  219. package/lib/intervalIndex/intervalIndexUtils.js.map +0 -1
  220. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +0 -1
  221. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +0 -1
  222. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +0 -1
  223. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +0 -1
  224. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +0 -1
  225. package/lib/intervalIndex/sequenceIntervalIndexes.js +0 -7
  226. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +0 -1
  227. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +0 -1
  228. package/lib/intervalIndex/startpointInRangeIndex.js.map +0 -1
  229. package/lib/intervalTree.d.ts.map +0 -1
  230. package/lib/intervalTree.js.map +0 -1
  231. package/lib/intervals/index.d.ts.map +0 -1
  232. package/lib/intervals/index.js.map +0 -1
  233. package/lib/intervals/interval.js.map +0 -1
  234. package/lib/intervals/intervalUtils.d.ts.map +0 -1
  235. package/lib/intervals/intervalUtils.js.map +0 -1
  236. package/lib/intervals/sequenceInterval.d.ts.map +0 -1
  237. package/lib/intervals/sequenceInterval.js.map +0 -1
  238. package/lib/localValues.d.ts.map +0 -1
  239. package/lib/localValues.js.map +0 -1
  240. package/lib/packageVersion.js.map +0 -1
  241. package/lib/revertibles.d.ts.map +0 -1
  242. package/lib/revertibles.js.map +0 -1
  243. package/lib/sequence.d.ts.map +0 -1
  244. package/lib/sequence.js.map +0 -1
  245. package/lib/sequenceDeltaEvent.d.ts.map +0 -1
  246. package/lib/sequenceDeltaEvent.js.map +0 -1
  247. package/lib/sequenceFactory.d.ts.map +0 -1
  248. package/lib/sequenceFactory.js.map +0 -1
  249. package/lib/sharedIntervalCollection.d.ts.map +0 -1
  250. package/lib/sharedIntervalCollection.js.map +0 -1
  251. package/lib/sharedSequence.d.ts.map +0 -1
  252. package/lib/sharedSequence.js.map +0 -1
  253. package/lib/sharedString.d.ts.map +0 -1
  254. package/lib/sharedString.js.map +0 -1
  255. package/tsconfig.esnext.json +0 -6
  256. /package/lib/intervalIndex/{intervalIndexUtils.d.ts → intervalIndexUtils.d.mts} +0 -0
  257. /package/lib/intervalIndex/{intervalIndexUtils.d.ts.map → intervalIndexUtils.d.mts.map} +0 -0
  258. /package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +0 -0
  259. /package/lib/{sequence-alpha.d.ts → sequence-alpha.d.mts} +0 -0
  260. /package/lib/{sequence-beta.d.ts → sequence-beta.d.mts} +0 -0
  261. /package/lib/{sequence-public.d.ts → sequence-public.d.mts} +0 -0
  262. /package/lib/{sequence-untrimmed.d.ts → sequence-untrimmed.d.mts} +0 -0
  263. /package/lib/{sequenceDeltaEvent.d.ts → sequenceDeltaEvent.d.mts} +0 -0
@@ -1,50 +1,44 @@
1
- "use strict";
2
1
  /*!
3
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
3
  * Licensed under the MIT License.
5
4
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.intervalLocatorFromEndpoint = exports.IntervalCollection = exports.makeOpsMap = exports.IntervalCollectionValueType = exports.SequenceIntervalCollectionValueType = exports.LocalIntervalCollection = exports.createIntervalIndex = exports.computeStickinessFromSide = exports.endpointPosAndSide = exports.sidesFromStickiness = exports.Side = void 0;
8
- /* eslint-disable no-bitwise */
9
- /* eslint-disable import/no-deprecated */
10
- const client_utils_1 = require("@fluid-internal/client-utils");
11
- const core_utils_1 = require("@fluidframework/core-utils");
12
- const merge_tree_1 = require("@fluidframework/merge-tree");
13
- const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
14
- const uuid_1 = require("uuid");
15
- const intervals_1 = require("./intervals");
16
- const intervalIndex_1 = require("./intervalIndex");
5
+ import { TypedEventEmitter } from "@fluid-internal/client-utils";
6
+ import { assert } from "@fluidframework/core-utils";
7
+ import { addProperties, createMap, getSlideToSegoff, MergeTreeDeltaType, ReferenceType, refTypeIncludesFlag, reservedRangeLabelsKey, UnassignedSequenceNumber, DetachedReferencePosition, UniversalSequenceNumber, SlidingPreference, } from "@fluidframework/merge-tree";
8
+ import { LoggingError, UsageError } from "@fluidframework/telemetry-utils";
9
+ import { v4 as uuid } from "uuid";
10
+ import { IntervalOpType, IntervalStickiness, IntervalType, SequenceInterval, createPositionReferenceFromSegoff, endReferenceSlidingPreference, startReferenceSlidingPreference, sequenceIntervalHelpers, createInterval, } from "./intervals/index.mjs";
11
+ import { EndpointIndex, OverlappingIntervalsIndex, createIdIntervalIndex, } from "./intervalIndex/index.mjs";
17
12
  /**
18
13
  * Defines a side relative to a character in a sequence.
19
14
  *
20
15
  * @remarks See {@link SequencePlace} for additional context on usage.
21
16
  * @alpha
22
17
  */
23
- var Side;
18
+ export var Side;
24
19
  (function (Side) {
25
20
  Side[Side["Before"] = 0] = "Before";
26
21
  Side[Side["After"] = 1] = "After";
27
- })(Side || (exports.Side = Side = {}));
22
+ })(Side || (Side = {}));
28
23
  const reservedIntervalIdKey = "intervalId";
29
- function sidesFromStickiness(stickiness) {
30
- const startSide = (stickiness & intervals_1.IntervalStickiness.START) !== 0 ? Side.After : Side.Before;
31
- const endSide = (stickiness & intervals_1.IntervalStickiness.END) !== 0 ? Side.Before : Side.After;
24
+ export function sidesFromStickiness(stickiness) {
25
+ const startSide = (stickiness & IntervalStickiness.START) !== 0 ? Side.After : Side.Before;
26
+ const endSide = (stickiness & IntervalStickiness.END) !== 0 ? Side.Before : Side.After;
32
27
  return { startSide, endSide };
33
28
  }
34
- exports.sidesFromStickiness = sidesFromStickiness;
35
29
  /**
36
30
  * Decompress an interval after loading a summary from JSON. The exact format
37
31
  * of this compression is unspecified and subject to change
38
32
  */
39
33
  function decompressInterval(interval, label) {
40
- const stickiness = interval[5] ?? intervals_1.IntervalStickiness.END;
34
+ const stickiness = interval[5] ?? IntervalStickiness.END;
41
35
  const { startSide, endSide } = sidesFromStickiness(stickiness);
42
36
  return {
43
37
  start: interval[0],
44
38
  end: interval[1],
45
39
  sequenceNumber: interval[2],
46
40
  intervalType: interval[3],
47
- properties: { ...interval[4], [merge_tree_1.reservedRangeLabelsKey]: [label] },
41
+ properties: { ...interval[4], [reservedRangeLabelsKey]: [label] },
48
42
  stickiness,
49
43
  startSide,
50
44
  endSide,
@@ -63,15 +57,15 @@ function compressInterval(interval) {
63
57
  intervalType,
64
58
  // remove the `referenceRangeLabels` property as it is already stored
65
59
  // in the `label` field of the summary
66
- { ...properties, [merge_tree_1.reservedRangeLabelsKey]: undefined },
60
+ { ...properties, [reservedRangeLabelsKey]: undefined },
67
61
  ];
68
- if (interval.stickiness !== undefined && interval.stickiness !== intervals_1.IntervalStickiness.END) {
62
+ if (interval.stickiness !== undefined && interval.stickiness !== IntervalStickiness.END) {
69
63
  // reassignment to make it easier for typescript to reason about types
70
64
  base = [...base, interval.stickiness];
71
65
  }
72
66
  return base;
73
67
  }
74
- function endpointPosAndSide(start, end) {
68
+ export function endpointPosAndSide(start, end) {
75
69
  const startIsPlainEndpoint = typeof start === "number" || start === "start" || start === "end";
76
70
  const endIsPlainEndpoint = typeof end === "number" || end === "start" || end === "end";
77
71
  const startSide = startIsPlainEndpoint ? Side.Before : start?.side;
@@ -85,33 +79,30 @@ function endpointPosAndSide(start, end) {
85
79
  endPos,
86
80
  };
87
81
  }
88
- exports.endpointPosAndSide = endpointPosAndSide;
89
82
  function toSequencePlace(pos, side) {
90
83
  return typeof pos === "number" ? { pos, side } : pos;
91
84
  }
92
85
  function toOptionalSequencePlace(pos, side = Side.Before) {
93
86
  return typeof pos === "number" ? { pos, side } : pos;
94
87
  }
95
- function computeStickinessFromSide(startPos = -1, startSide = Side.Before, endPos = -1, endSide = Side.Before) {
96
- let stickiness = intervals_1.IntervalStickiness.NONE;
88
+ export function computeStickinessFromSide(startPos = -1, startSide = Side.Before, endPos = -1, endSide = Side.Before) {
89
+ let stickiness = IntervalStickiness.NONE;
97
90
  if (startSide === Side.After || startPos === "start") {
98
- stickiness |= intervals_1.IntervalStickiness.START;
91
+ stickiness |= IntervalStickiness.START;
99
92
  }
100
93
  if (endSide === Side.Before || endPos === "end") {
101
- stickiness |= intervals_1.IntervalStickiness.END;
94
+ stickiness |= IntervalStickiness.END;
102
95
  }
103
96
  return stickiness;
104
97
  }
105
- exports.computeStickinessFromSide = computeStickinessFromSide;
106
- function createIntervalIndex() {
98
+ export function createIntervalIndex() {
107
99
  const helpers = {
108
- create: intervals_1.createInterval,
100
+ create: createInterval,
109
101
  };
110
102
  const lc = new LocalIntervalCollection(undefined, "", helpers, {});
111
103
  return lc;
112
104
  }
113
- exports.createIntervalIndex = createIntervalIndex;
114
- class LocalIntervalCollection {
105
+ export class LocalIntervalCollection {
115
106
  constructor(client, label, helpers, options,
116
107
  /** Callback invoked each time one of the endpoints of an interval slides. */
117
108
  onPositionChange) {
@@ -120,9 +111,9 @@ class LocalIntervalCollection {
120
111
  this.helpers = helpers;
121
112
  this.options = options;
122
113
  this.onPositionChange = onPositionChange;
123
- this.overlappingIntervalsIndex = new intervalIndex_1.OverlappingIntervalsIndex(client, helpers);
124
- this.idIntervalIndex = (0, intervalIndex_1.createIdIntervalIndex)();
125
- this.endIntervalIndex = new intervalIndex_1.EndpointIndex(client, helpers);
114
+ this.overlappingIntervalsIndex = new OverlappingIntervalsIndex(client, helpers);
115
+ this.idIntervalIndex = createIdIntervalIndex();
116
+ this.endIntervalIndex = new EndpointIndex(client, helpers);
126
117
  this.indexes = new Set([
127
118
  this.overlappingIntervalsIndex,
128
119
  this.idIntervalIndex,
@@ -151,7 +142,7 @@ class LocalIntervalCollection {
151
142
  const newProps = {
152
143
  [reservedIntervalIdKey]: id,
153
144
  };
154
- serializedInterval.properties = (0, merge_tree_1.addProperties)(serializedInterval.properties, newProps);
145
+ serializedInterval.properties = addProperties(serializedInterval.properties, newProps);
155
146
  }
156
147
  // Make the ID immutable for safety's sake.
157
148
  Object.defineProperty(serializedInterval.properties, reservedIntervalIdKey, {
@@ -184,25 +175,25 @@ class LocalIntervalCollection {
184
175
  const interval = this.createInterval(start, end, intervalType, op);
185
176
  if (interval) {
186
177
  if (!interval.properties) {
187
- interval.properties = (0, merge_tree_1.createMap)();
178
+ interval.properties = createMap();
188
179
  }
189
180
  if (props) {
190
181
  // This check is intended to prevent scenarios where a random interval is created and then
191
182
  // inserted into a collection. The aim is to ensure that the collection is created first
192
183
  // then the user can create/add intervals based on the collection
193
- if (props[merge_tree_1.reservedRangeLabelsKey] !== undefined &&
194
- props[merge_tree_1.reservedRangeLabelsKey][0] !== this.label) {
195
- throw new telemetry_utils_1.LoggingError("Adding an interval that belongs to another interval collection is not permitted");
184
+ if (props[reservedRangeLabelsKey] !== undefined &&
185
+ props[reservedRangeLabelsKey][0] !== this.label) {
186
+ throw new LoggingError("Adding an interval that belongs to another interval collection is not permitted");
196
187
  }
197
188
  interval.addProperties(props);
198
189
  }
199
- (_a = interval.properties)[reservedIntervalIdKey] ?? (_a[reservedIntervalIdKey] = (0, uuid_1.v4)());
190
+ (_a = interval.properties)[reservedIntervalIdKey] ?? (_a[reservedIntervalIdKey] = uuid());
200
191
  this.add(interval);
201
192
  }
202
193
  return interval;
203
194
  }
204
195
  linkEndpointsToInterval(interval) {
205
- if (interval instanceof intervals_1.SequenceInterval) {
196
+ if (interval instanceof SequenceInterval) {
206
197
  interval.start.addProperties({ interval });
207
198
  interval.end.addProperties({ interval });
208
199
  }
@@ -241,9 +232,9 @@ class LocalIntervalCollection {
241
232
  // either, so this must be special-cased.
242
233
  return ref;
243
234
  }
244
- return this.client.createLocalReferencePosition(segment, ref.getOffset(), merge_tree_1.ReferenceType.Transient, ref.properties, ref.slidingPreference, ref.canSlideToEndpoint);
235
+ return this.client.createLocalReferencePosition(segment, ref.getOffset(), ReferenceType.Transient, ref.properties, ref.slidingPreference, ref.canSlideToEndpoint);
245
236
  };
246
- if (interval instanceof intervals_1.SequenceInterval) {
237
+ if (interval instanceof SequenceInterval) {
247
238
  let previousInterval;
248
239
  let pendingChanges = 0;
249
240
  interval.addPositionChangeListeners(() => {
@@ -256,7 +247,7 @@ class LocalIntervalCollection {
256
247
  this.removeIntervalFromIndexes(interval);
257
248
  }
258
249
  }, () => {
259
- (0, core_utils_1.assert)(previousInterval !== undefined, 0x3fa /* Invalid interleaving of before/after slide */);
250
+ assert(previousInterval !== undefined, 0x3fa /* Invalid interleaving of before/after slide */);
260
251
  pendingChanges--;
261
252
  if (pendingChanges === 0) {
262
253
  this.addIntervalToIndexes(interval);
@@ -267,22 +258,21 @@ class LocalIntervalCollection {
267
258
  }
268
259
  }
269
260
  removeIntervalListeners(interval) {
270
- if (interval instanceof intervals_1.SequenceInterval) {
261
+ if (interval instanceof SequenceInterval) {
271
262
  interval.removePositionChangeListeners();
272
263
  }
273
264
  }
274
265
  }
275
- exports.LocalIntervalCollection = LocalIntervalCollection;
276
266
  LocalIntervalCollection.legacyIdPrefix = "legacy";
277
267
  class SequenceIntervalCollectionFactory {
278
268
  load(emitter, raw = [], options) {
279
- return new IntervalCollection(intervals_1.sequenceIntervalHelpers, true, emitter, raw, options);
269
+ return new IntervalCollection(sequenceIntervalHelpers, true, emitter, raw, options);
280
270
  }
281
271
  store(value) {
282
272
  return value.serializeInternal();
283
273
  }
284
274
  }
285
- class SequenceIntervalCollectionValueType {
275
+ export class SequenceIntervalCollectionValueType {
286
276
  get name() {
287
277
  return SequenceIntervalCollectionValueType.Name;
288
278
  }
@@ -293,14 +283,13 @@ class SequenceIntervalCollectionValueType {
293
283
  return SequenceIntervalCollectionValueType._ops;
294
284
  }
295
285
  }
296
- exports.SequenceIntervalCollectionValueType = SequenceIntervalCollectionValueType;
297
286
  SequenceIntervalCollectionValueType.Name = "sharedStringIntervalCollection";
298
287
  SequenceIntervalCollectionValueType._factory = new SequenceIntervalCollectionFactory();
299
288
  SequenceIntervalCollectionValueType._ops = makeOpsMap();
300
289
  class IntervalCollectionFactory {
301
290
  load(emitter, raw = [], options) {
302
291
  const helpers = {
303
- create: intervals_1.createInterval,
292
+ create: createInterval,
304
293
  };
305
294
  const collection = new IntervalCollection(helpers, false, emitter, raw, options);
306
295
  collection.attachGraph(undefined, "");
@@ -310,7 +299,7 @@ class IntervalCollectionFactory {
310
299
  return value.serializeInternal();
311
300
  }
312
301
  }
313
- class IntervalCollectionValueType {
302
+ export class IntervalCollectionValueType {
314
303
  get name() {
315
304
  return IntervalCollectionValueType.Name;
316
305
  }
@@ -321,11 +310,10 @@ class IntervalCollectionValueType {
321
310
  return IntervalCollectionValueType._ops;
322
311
  }
323
312
  }
324
- exports.IntervalCollectionValueType = IntervalCollectionValueType;
325
313
  IntervalCollectionValueType.Name = "sharedIntervalCollection";
326
314
  IntervalCollectionValueType._factory = new IntervalCollectionFactory();
327
315
  IntervalCollectionValueType._ops = makeOpsMap();
328
- function makeOpsMap() {
316
+ export function makeOpsMap() {
329
317
  const rebase = (collection, op, localOpMetadata) => {
330
318
  const { localSeq } = localOpMetadata;
331
319
  const rebasedValue = collection.rebaseLocalInterval(op.opName, op.value, localSeq);
@@ -337,7 +325,7 @@ function makeOpsMap() {
337
325
  };
338
326
  return new Map([
339
327
  [
340
- intervals_1.IntervalOpType.ADD,
328
+ IntervalOpType.ADD,
341
329
  {
342
330
  process: (collection, params, local, op, localOpMetadata) => {
343
331
  // if params is undefined, the interval was deleted during
@@ -345,17 +333,17 @@ function makeOpsMap() {
345
333
  if (!params) {
346
334
  return;
347
335
  }
348
- (0, core_utils_1.assert)(op !== undefined, 0x3fb /* op should exist here */);
336
+ assert(op !== undefined, 0x3fb /* op should exist here */);
349
337
  collection.ackAdd(params, local, op, localOpMetadata);
350
338
  },
351
339
  rebase,
352
340
  },
353
341
  ],
354
342
  [
355
- intervals_1.IntervalOpType.DELETE,
343
+ IntervalOpType.DELETE,
356
344
  {
357
345
  process: (collection, params, local, op) => {
358
- (0, core_utils_1.assert)(op !== undefined, 0x3fc /* op should exist here */);
346
+ assert(op !== undefined, 0x3fc /* op should exist here */);
359
347
  collection.ackDelete(params, local, op);
360
348
  },
361
349
  rebase: (collection, op, localOpMetadata) => {
@@ -365,7 +353,7 @@ function makeOpsMap() {
365
353
  },
366
354
  ],
367
355
  [
368
- intervals_1.IntervalOpType.CHANGE,
356
+ IntervalOpType.CHANGE,
369
357
  {
370
358
  process: (collection, params, local, op, localOpMetadata) => {
371
359
  // if params is undefined, the interval was deleted during
@@ -373,7 +361,7 @@ function makeOpsMap() {
373
361
  if (!params) {
374
362
  return;
375
363
  }
376
- (0, core_utils_1.assert)(op !== undefined, 0x3fd /* op should exist here */);
364
+ assert(op !== undefined, 0x3fd /* op should exist here */);
377
365
  collection.ackChange(params, local, op, localOpMetadata);
378
366
  },
379
367
  rebase,
@@ -381,7 +369,6 @@ function makeOpsMap() {
381
369
  ],
382
370
  ]);
383
371
  }
384
- exports.makeOpsMap = makeOpsMap;
385
372
  class IntervalCollectionIterator {
386
373
  constructor(collection, iteratesForward = true, start, end) {
387
374
  this.results = [];
@@ -409,7 +396,7 @@ const isSequencePlace = (place) => {
409
396
  /**
410
397
  * {@inheritdoc IIntervalCollection}
411
398
  */
412
- class IntervalCollection extends client_utils_1.TypedEventEmitter {
399
+ export class IntervalCollection extends TypedEventEmitter {
413
400
  get attached() {
414
401
  return !!this.localCollection;
415
402
  }
@@ -433,7 +420,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
433
420
  */
434
421
  attachIndex(index) {
435
422
  if (!this.attached) {
436
- throw new telemetry_utils_1.LoggingError("The local interval collection must exist");
423
+ throw new LoggingError("The local interval collection must exist");
437
424
  }
438
425
  for (const interval of this) {
439
426
  index.add(interval);
@@ -445,7 +432,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
445
432
  */
446
433
  detachIndex(index) {
447
434
  if (!this.attached) {
448
- throw new telemetry_utils_1.LoggingError("The local interval collection must exist");
435
+ throw new LoggingError("The local interval collection must exist");
449
436
  }
450
437
  // Avoid removing intervals if the index does not exist
451
438
  if (!this.localCollection?.removeIndex(index)) {
@@ -458,7 +445,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
458
445
  }
459
446
  rebasePositionWithSegmentSlide(pos, seqNumberFrom, localSeq) {
460
447
  if (!this.client) {
461
- throw new telemetry_utils_1.LoggingError("mergeTree client must exist");
448
+ throw new LoggingError("mergeTree client must exist");
462
449
  }
463
450
  if (pos === "start" || pos === "end") {
464
451
  return pos;
@@ -469,19 +456,19 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
469
456
  clientId: this.client.getLongClientId(clientId),
470
457
  }, localSeq);
471
458
  // if segment is undefined, it slid off the string
472
- (0, core_utils_1.assert)(segment !== undefined, 0x54e /* No segment found */);
473
- const segoff = (0, merge_tree_1.getSlideToSegoff)({ segment, offset }, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint) ?? segment;
459
+ assert(segment !== undefined, 0x54e /* No segment found */);
460
+ const segoff = getSlideToSegoff({ segment, offset }, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint) ?? segment;
474
461
  // case happens when rebasing op, but concurrently entire string has been deleted
475
462
  if (segoff.segment === undefined || segoff.offset === undefined) {
476
- return merge_tree_1.DetachedReferencePosition;
463
+ return DetachedReferencePosition;
477
464
  }
478
- (0, core_utils_1.assert)(offset !== undefined && 0 <= offset && offset < segment.cachedLength, 0x54f /* Invalid offset */);
465
+ assert(offset !== undefined && 0 <= offset && offset < segment.cachedLength, 0x54f /* Invalid offset */);
479
466
  return this.client.findReconnectionPosition(segoff.segment, localSeq) + segoff.offset;
480
467
  }
481
468
  computeRebasedPositions(localSeq) {
482
- (0, core_utils_1.assert)(this.client !== undefined, 0x550 /* Client should be defined when computing rebased position */);
469
+ assert(this.client !== undefined, 0x550 /* Client should be defined when computing rebased position */);
483
470
  const original = this.localSeqToSerializedInterval.get(localSeq);
484
- (0, core_utils_1.assert)(original !== undefined, 0x551 /* Failed to store pending serialized interval info for this localSeq. */);
471
+ assert(original !== undefined, 0x551 /* Failed to store pending serialized interval info for this localSeq. */);
485
472
  const rebased = { ...original };
486
473
  const { start, end, sequenceNumber } = original;
487
474
  if (start !== undefined) {
@@ -495,10 +482,10 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
495
482
  /** @internal */
496
483
  attachGraph(client, label) {
497
484
  if (this.attached) {
498
- throw new telemetry_utils_1.LoggingError("Only supports one Sequence attach");
485
+ throw new LoggingError("Only supports one Sequence attach");
499
486
  }
500
487
  if (client === undefined && this.requiresClient) {
501
- throw new telemetry_utils_1.LoggingError("Client required for this collection");
488
+ throw new LoggingError("Client required for this collection");
502
489
  }
503
490
  // Instantiate the local interval collection based on the saved intervals
504
491
  this.client = client;
@@ -544,11 +531,11 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
544
531
  // is restored as single-endpoint changes re-use previous references.
545
532
  let startRefType;
546
533
  let endRefType;
547
- if (previousInterval instanceof intervals_1.SequenceInterval) {
534
+ if (previousInterval instanceof SequenceInterval) {
548
535
  startRefType = previousInterval.start.refType;
549
536
  endRefType = previousInterval.end.refType;
550
- previousInterval.start.refType = merge_tree_1.ReferenceType.Transient;
551
- previousInterval.end.refType = merge_tree_1.ReferenceType.Transient;
537
+ previousInterval.start.refType = ReferenceType.Transient;
538
+ previousInterval.end.refType = ReferenceType.Transient;
552
539
  this.emit("changeInterval", interval, previousInterval, local, op, slide);
553
540
  previousInterval.start.refType = startRefType;
554
541
  previousInterval.end.refType = endRefType;
@@ -562,14 +549,14 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
562
549
  */
563
550
  getIntervalById(id) {
564
551
  if (!this.localCollection) {
565
- throw new telemetry_utils_1.LoggingError("attach must be called before accessing intervals");
552
+ throw new LoggingError("attach must be called before accessing intervals");
566
553
  }
567
554
  return this.localCollection.idIntervalIndex.getIntervalById(id);
568
555
  }
569
556
  assertStickinessEnabled(start, end) {
570
557
  if (!(typeof start === "number" && typeof end === "number") &&
571
558
  !this.options.intervalStickinessEnabled) {
572
- throw new telemetry_utils_1.UsageError("attempted to set interval stickiness without enabling `intervalStickinessEnabled` feature flag");
559
+ throw new UsageError("attempted to set interval stickiness without enabling `intervalStickinessEnabled` feature flag");
573
560
  }
574
561
  }
575
562
  add(start, end, intervalType, props) {
@@ -579,26 +566,26 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
579
566
  let properties;
580
567
  if (isSequencePlace(start)) {
581
568
  intStart = start;
582
- (0, core_utils_1.assert)(end !== undefined, 0x7c0 /* end must be defined */);
569
+ assert(end !== undefined, 0x7c0 /* end must be defined */);
583
570
  intEnd = end;
584
- (0, core_utils_1.assert)(intervalType !== undefined, 0x7c1 /* intervalType must be defined */);
571
+ assert(intervalType !== undefined, 0x7c1 /* intervalType must be defined */);
585
572
  type = intervalType;
586
573
  properties = props;
587
574
  }
588
575
  else {
589
576
  intStart = start.start;
590
577
  intEnd = start.end;
591
- type = intervals_1.IntervalType.SlideOnRemove;
578
+ type = IntervalType.SlideOnRemove;
592
579
  properties = start.props;
593
580
  }
594
581
  if (!this.localCollection) {
595
- throw new telemetry_utils_1.LoggingError("attach must be called prior to adding intervals");
582
+ throw new LoggingError("attach must be called prior to adding intervals");
596
583
  }
597
- if (type & intervals_1.IntervalType.Transient) {
598
- throw new telemetry_utils_1.LoggingError("Can not add transient intervals");
584
+ if (type & IntervalType.Transient) {
585
+ throw new LoggingError("Can not add transient intervals");
599
586
  }
600
587
  const { startSide, endSide, startPos, endPos } = endpointPosAndSide(intStart, intEnd);
601
- (0, core_utils_1.assert)(startPos !== undefined &&
588
+ assert(startPos !== undefined &&
602
589
  endPos !== undefined &&
603
590
  startSide !== undefined &&
604
591
  endSide !== undefined, 0x793 /* start and end cannot be undefined because they were not passed in as undefined */);
@@ -606,7 +593,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
606
593
  this.assertStickinessEnabled(intStart, intEnd);
607
594
  const interval = this.localCollection.addInterval(toSequencePlace(startPos, startSide), toSequencePlace(endPos, endSide), type, properties);
608
595
  if (interval) {
609
- if (!this.isCollaborating && interval instanceof intervals_1.SequenceInterval) {
596
+ if (!this.isCollaborating && interval instanceof SequenceInterval) {
610
597
  setSlideOnRemove(interval.start);
611
598
  setSlideOnRemove(interval.end);
612
599
  }
@@ -630,7 +617,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
630
617
  }
631
618
  deleteExistingInterval(interval, local, op) {
632
619
  if (!this.localCollection) {
633
- throw new telemetry_utils_1.LoggingError("Attach must be called before accessing intervals");
620
+ throw new LoggingError("Attach must be called before accessing intervals");
634
621
  }
635
622
  // The given interval is known to exist in the collection.
636
623
  this.localCollection.removeExistingInterval(interval);
@@ -654,7 +641,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
654
641
  */
655
642
  removeIntervalById(id) {
656
643
  if (!this.localCollection) {
657
- throw new telemetry_utils_1.LoggingError("Attach must be called before accessing intervals");
644
+ throw new LoggingError("Attach must be called before accessing intervals");
658
645
  }
659
646
  const interval = this.localCollection.idIntervalIndex.getIntervalById(id);
660
647
  if (interval) {
@@ -684,31 +671,31 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
684
671
  props = arg2.props;
685
672
  }
686
673
  if (!this.localCollection) {
687
- throw new telemetry_utils_1.LoggingError("Attach must be called before accessing intervals");
674
+ throw new LoggingError("Attach must be called before accessing intervals");
688
675
  }
689
676
  // Force id to be a string.
690
677
  if (typeof id !== "string") {
691
- throw new telemetry_utils_1.UsageError("Change API requires an ID that is a string");
678
+ throw new UsageError("Change API requires an ID that is a string");
692
679
  }
693
680
  // Ensure that both start and end are defined or both are undefined.
694
681
  if ((start === undefined) !== (end === undefined)) {
695
- throw new telemetry_utils_1.UsageError("Change API requires both start and end to be defined or undefined");
682
+ throw new UsageError("Change API requires both start and end to be defined or undefined");
696
683
  }
697
684
  // prevent the overwriting of an interval label, it should remain unchanged
698
685
  // once it has been inserted into the collection.
699
- if (props?.[merge_tree_1.reservedRangeLabelsKey] !== undefined) {
700
- throw new telemetry_utils_1.UsageError("The label property should not be modified once inserted to the collection");
686
+ if (props?.[reservedRangeLabelsKey] !== undefined) {
687
+ throw new UsageError("The label property should not be modified once inserted to the collection");
701
688
  }
702
689
  const interval = this.getIntervalById(id);
703
690
  if (interval) {
704
691
  let deltaProps;
705
692
  let newInterval;
706
693
  if (props !== undefined) {
707
- deltaProps = interval.addProperties(props, true, this.isCollaborating ? merge_tree_1.UnassignedSequenceNumber : merge_tree_1.UniversalSequenceNumber);
694
+ deltaProps = interval.addProperties(props, true, this.isCollaborating ? UnassignedSequenceNumber : UniversalSequenceNumber);
708
695
  }
709
696
  if (start !== undefined && end !== undefined) {
710
697
  newInterval = this.localCollection.changeInterval(interval, start, end);
711
- if (!this.isCollaborating && newInterval instanceof intervals_1.SequenceInterval) {
698
+ if (!this.isCollaborating && newInterval instanceof SequenceInterval) {
712
699
  setSlideOnRemove(newInterval.start);
713
700
  setSlideOnRemove(newInterval.end);
714
701
  }
@@ -782,7 +769,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
782
769
  }
783
770
  if (pendingChange?.start !== serializedInterval.start ||
784
771
  pendingChange?.end !== serializedInterval.end) {
785
- throw new telemetry_utils_1.LoggingError("Mismatch in pending changes");
772
+ throw new LoggingError("Mismatch in pending changes");
786
773
  }
787
774
  }
788
775
  }
@@ -797,10 +784,10 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
797
784
  /** @internal */
798
785
  ackChange(serializedInterval, local, op, localOpMetadata) {
799
786
  if (!this.localCollection) {
800
- throw new telemetry_utils_1.LoggingError("Attach must be called before accessing intervals");
787
+ throw new LoggingError("Attach must be called before accessing intervals");
801
788
  }
802
789
  if (local) {
803
- (0, core_utils_1.assert)(localOpMetadata !== undefined, 0x552 /* op metadata should be defined for local op */);
790
+ assert(localOpMetadata !== undefined, 0x552 /* op metadata should be defined for local op */);
804
791
  this.localSeqToSerializedInterval.delete(localOpMetadata?.localSeq);
805
792
  // This is an ack from the server. Remove the pending change.
806
793
  this.removePendingChange(serializedInterval);
@@ -809,7 +796,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
809
796
  // This API cannot change the ID, and writing to the ID property will result in an exception. So we
810
797
  // strip it out of the properties here.
811
798
  const { [reservedIntervalIdKey]: id, ...newProps } = serializedInterval.properties ?? {};
812
- (0, core_utils_1.assert)(id !== undefined, 0x3fe /* id must exist on the interval */);
799
+ assert(id !== undefined, 0x3fe /* id must exist on the interval */);
813
800
  const interval = this.getIntervalById(id);
814
801
  if (!interval) {
815
802
  // The interval has been removed locally; no-op.
@@ -818,7 +805,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
818
805
  if (local) {
819
806
  // Let the propertyManager prune its pending change-properties set.
820
807
  interval.propertyManager?.ackPendingProperties({
821
- type: merge_tree_1.MergeTreeDeltaType.ANNOTATE,
808
+ type: MergeTreeDeltaType.ANNOTATE,
822
809
  props: serializedInterval.properties ?? {},
823
810
  });
824
811
  this.ackInterval(interval, op);
@@ -883,7 +870,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
883
870
  return serializedInterval;
884
871
  }
885
872
  if (!this.attached) {
886
- throw new telemetry_utils_1.LoggingError("attachSequence must be called");
873
+ throw new LoggingError("attachSequence must be called");
887
874
  }
888
875
  const { intervalType, properties, stickiness, startSide, endSide } = serializedInterval;
889
876
  const { start: startRebased, end: endRebased } = this.localSeqToRebasedInterval.get(localSeq) ?? this.computeRebasedPositions(localSeq);
@@ -906,8 +893,8 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
906
893
  this.addPendingChange(intervalId, rebased);
907
894
  }
908
895
  // if the interval slid off the string, rebase the op to be a noop and delete the interval.
909
- if (startRebased === merge_tree_1.DetachedReferencePosition ||
910
- endRebased === merge_tree_1.DetachedReferencePosition) {
896
+ if (startRebased === DetachedReferencePosition ||
897
+ endRebased === DetachedReferencePosition) {
911
898
  if (localInterval) {
912
899
  this.localCollection?.removeExistingInterval(localInterval);
913
900
  }
@@ -915,7 +902,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
915
902
  }
916
903
  if (localInterval !== undefined) {
917
904
  // we know we must be using `SequenceInterval` because `this.client` exists
918
- (0, core_utils_1.assert)(localInterval instanceof intervals_1.SequenceInterval, 0x3a0 /* localInterval must be `SequenceInterval` when used with client */);
905
+ assert(localInterval instanceof SequenceInterval, 0x3a0 /* localInterval must be `SequenceInterval` when used with client */);
919
906
  // The rebased op may place this interval's endpoints on different segments. Calling `changeInterval` here
920
907
  // updates the local client's state to be consistent with the emitted op.
921
908
  this.localCollection?.changeInterval(localInterval, toOptionalSequencePlace(startRebased, startSide), toOptionalSequencePlace(endRebased, endSide), undefined, localSeq);
@@ -924,13 +911,13 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
924
911
  }
925
912
  getSlideToSegment(lref) {
926
913
  if (!this.client) {
927
- throw new telemetry_utils_1.LoggingError("client does not exist");
914
+ throw new LoggingError("client does not exist");
928
915
  }
929
916
  const segoff = { segment: lref.getSegment(), offset: lref.getOffset() };
930
917
  if (segoff.segment?.localRefs?.has(lref) !== true) {
931
918
  return undefined;
932
919
  }
933
- const newSegoff = (0, merge_tree_1.getSlideToSegoff)(segoff, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint);
920
+ const newSegoff = getSlideToSegoff(segoff, undefined, this.options.mergeTreeReferencesCanSlideToEndpoint);
934
921
  const value = segoff.segment === newSegoff.segment && segoff.offset === newSegoff.offset
935
922
  ? undefined
936
923
  : newSegoff;
@@ -938,11 +925,11 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
938
925
  }
939
926
  ackInterval(interval, op) {
940
927
  // Only SequenceIntervals need potential sliding
941
- if (!(interval instanceof intervals_1.SequenceInterval)) {
928
+ if (!(interval instanceof SequenceInterval)) {
942
929
  return;
943
930
  }
944
- if (!(0, merge_tree_1.refTypeIncludesFlag)(interval.start, merge_tree_1.ReferenceType.StayOnRemove) &&
945
- !(0, merge_tree_1.refTypeIncludesFlag)(interval.end, merge_tree_1.ReferenceType.StayOnRemove)) {
931
+ if (!refTypeIncludesFlag(interval.start, ReferenceType.StayOnRemove) &&
932
+ !refTypeIncludesFlag(interval.end, ReferenceType.StayOnRemove)) {
946
933
  return;
947
934
  }
948
935
  const newStart = this.getSlideToSegment(interval.start);
@@ -960,7 +947,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
960
947
  const needsEndUpdate = newEnd !== undefined && !hasPendingEndChange;
961
948
  if (needsStartUpdate || needsEndUpdate) {
962
949
  if (!this.localCollection) {
963
- throw new telemetry_utils_1.LoggingError("Attach must be called before accessing intervals");
950
+ throw new LoggingError("Attach must be called before accessing intervals");
964
951
  }
965
952
  // `interval`'s endpoints will get modified in-place, so clone it prior to doing so for event emission.
966
953
  const oldInterval = interval.clone();
@@ -969,32 +956,32 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
969
956
  // This ensures that the correct listeners are added to the LocalReferencePosition.
970
957
  this.localCollection.removeExistingInterval(interval);
971
958
  if (!this.client) {
972
- throw new telemetry_utils_1.LoggingError("client does not exist");
959
+ throw new LoggingError("client does not exist");
973
960
  }
974
961
  if (needsStartUpdate) {
975
962
  const props = interval.start.properties;
976
- interval.start = (0, intervals_1.createPositionReferenceFromSegoff)(this.client, newStart, interval.start.refType, op, undefined, undefined, (0, intervals_1.startReferenceSlidingPreference)(interval.stickiness), (0, intervals_1.startReferenceSlidingPreference)(interval.stickiness) ===
977
- merge_tree_1.SlidingPreference.BACKWARD);
963
+ interval.start = createPositionReferenceFromSegoff(this.client, newStart, interval.start.refType, op, undefined, undefined, startReferenceSlidingPreference(interval.stickiness), startReferenceSlidingPreference(interval.stickiness) ===
964
+ SlidingPreference.BACKWARD);
978
965
  if (props) {
979
966
  interval.start.addProperties(props);
980
967
  }
981
968
  const oldSeg = oldInterval.start.getSegment();
982
969
  // remove and rebuild start interval as transient for event
983
970
  this.client.removeLocalReferencePosition(oldInterval.start);
984
- oldInterval.start.refType = merge_tree_1.ReferenceType.Transient;
971
+ oldInterval.start.refType = ReferenceType.Transient;
985
972
  oldSeg?.localRefs?.addLocalRef(oldInterval.start, oldInterval.start.getOffset());
986
973
  }
987
974
  if (needsEndUpdate) {
988
975
  const props = interval.end.properties;
989
- interval.end = (0, intervals_1.createPositionReferenceFromSegoff)(this.client, newEnd, interval.end.refType, op, undefined, undefined, (0, intervals_1.endReferenceSlidingPreference)(interval.stickiness), (0, intervals_1.endReferenceSlidingPreference)(interval.stickiness) ===
990
- merge_tree_1.SlidingPreference.FORWARD);
976
+ interval.end = createPositionReferenceFromSegoff(this.client, newEnd, interval.end.refType, op, undefined, undefined, endReferenceSlidingPreference(interval.stickiness), endReferenceSlidingPreference(interval.stickiness) ===
977
+ SlidingPreference.FORWARD);
991
978
  if (props) {
992
979
  interval.end.addProperties(props);
993
980
  }
994
981
  // remove and rebuild end interval as transient for event
995
982
  const oldSeg = oldInterval.end.getSegment();
996
983
  this.client.removeLocalReferencePosition(oldInterval.end);
997
- oldInterval.end.refType = merge_tree_1.ReferenceType.Transient;
984
+ oldInterval.end.refType = ReferenceType.Transient;
998
985
  oldSeg?.localRefs?.addLocalRef(oldInterval.end, oldInterval.end.getOffset());
999
986
  }
1000
987
  this.localCollection.add(interval);
@@ -1004,7 +991,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1004
991
  /** @internal */
1005
992
  ackAdd(serializedInterval, local, op, localOpMetadata) {
1006
993
  if (local) {
1007
- (0, core_utils_1.assert)(localOpMetadata !== undefined, 0x553 /* op metadata should be defined for local op */);
994
+ assert(localOpMetadata !== undefined, 0x553 /* op metadata should be defined for local op */);
1008
995
  this.localSeqToSerializedInterval.delete(localOpMetadata.localSeq);
1009
996
  const id = serializedInterval.properties?.[reservedIntervalIdKey];
1010
997
  const localInterval = this.getIntervalById(id);
@@ -1014,7 +1001,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1014
1001
  return;
1015
1002
  }
1016
1003
  if (!this.localCollection) {
1017
- throw new telemetry_utils_1.LoggingError("attachSequence must be called");
1004
+ throw new LoggingError("attachSequence must be called");
1018
1005
  }
1019
1006
  this.localCollection.ensureSerializedId(serializedInterval);
1020
1007
  const interval = this.localCollection.addInterval(toSequencePlace(serializedInterval.start, serializedInterval.startSide ?? Side.Before), toSequencePlace(serializedInterval.end, serializedInterval.endSide ?? Side.Before), serializedInterval.intervalType, serializedInterval.properties, op);
@@ -1035,7 +1022,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1035
1022
  return;
1036
1023
  }
1037
1024
  if (!this.localCollection) {
1038
- throw new telemetry_utils_1.LoggingError("attach must be called prior to deleting intervals");
1025
+ throw new LoggingError("attach must be called prior to deleting intervals");
1039
1026
  }
1040
1027
  const id = this.localCollection.ensureSerializedId(serializedInterval);
1041
1028
  const interval = this.localCollection.idIntervalIndex.getIntervalById(id);
@@ -1048,7 +1035,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1048
1035
  */
1049
1036
  serializeInternal() {
1050
1037
  if (!this.localCollection) {
1051
- throw new telemetry_utils_1.LoggingError("attachSequence must be called");
1038
+ throw new LoggingError("attachSequence must be called");
1052
1039
  }
1053
1040
  return this.localCollection.serialize();
1054
1041
  }
@@ -1101,7 +1088,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1101
1088
  */
1102
1089
  findOverlappingIntervals(startPosition, endPosition) {
1103
1090
  if (!this.localCollection) {
1104
- throw new telemetry_utils_1.LoggingError("attachSequence must be called");
1091
+ throw new LoggingError("attachSequence must be called");
1105
1092
  }
1106
1093
  return this.localCollection.overlappingIntervalsIndex.findOverlappingIntervals(startPosition, endPosition);
1107
1094
  }
@@ -1110,7 +1097,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1110
1097
  */
1111
1098
  map(fn) {
1112
1099
  if (!this.localCollection) {
1113
- throw new telemetry_utils_1.LoggingError("attachSequence must be called");
1100
+ throw new LoggingError("attachSequence must be called");
1114
1101
  }
1115
1102
  for (const interval of this.localCollection.idIntervalIndex) {
1116
1103
  fn(interval);
@@ -1121,7 +1108,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1121
1108
  */
1122
1109
  previousInterval(pos) {
1123
1110
  if (!this.localCollection) {
1124
- throw new telemetry_utils_1.LoggingError("attachSequence must be called");
1111
+ throw new LoggingError("attachSequence must be called");
1125
1112
  }
1126
1113
  return this.localCollection.endIntervalIndex.previousInterval(pos);
1127
1114
  }
@@ -1130,16 +1117,15 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1130
1117
  */
1131
1118
  nextInterval(pos) {
1132
1119
  if (!this.localCollection) {
1133
- throw new telemetry_utils_1.LoggingError("attachSequence must be called");
1120
+ throw new LoggingError("attachSequence must be called");
1134
1121
  }
1135
1122
  return this.localCollection.endIntervalIndex.nextInterval(pos);
1136
1123
  }
1137
1124
  }
1138
- exports.IntervalCollection = IntervalCollection;
1139
1125
  function setSlideOnRemove(lref) {
1140
1126
  let refType = lref.refType;
1141
- refType = refType & ~merge_tree_1.ReferenceType.StayOnRemove;
1142
- refType = refType | merge_tree_1.ReferenceType.SlideOnRemove;
1127
+ refType = refType & ~ReferenceType.StayOnRemove;
1128
+ refType = refType | ReferenceType.SlideOnRemove;
1143
1129
  lref.refType = refType;
1144
1130
  }
1145
1131
  /**
@@ -1149,11 +1135,10 @@ function setSlideOnRemove(lref) {
1149
1135
  * endpoint is a part of.
1150
1136
  * @internal
1151
1137
  */
1152
- function intervalLocatorFromEndpoint(potentialEndpoint) {
1153
- const { interval, [merge_tree_1.reservedRangeLabelsKey]: collectionNameArray } = potentialEndpoint.properties ?? {};
1138
+ export function intervalLocatorFromEndpoint(potentialEndpoint) {
1139
+ const { interval, [reservedRangeLabelsKey]: collectionNameArray } = potentialEndpoint.properties ?? {};
1154
1140
  return interval && collectionNameArray?.length === 1
1155
1141
  ? { label: collectionNameArray[0], interval }
1156
1142
  : undefined;
1157
1143
  }
1158
- exports.intervalLocatorFromEndpoint = intervalLocatorFromEndpoint;
1159
- //# sourceMappingURL=intervalCollection.js.map
1144
+ //# sourceMappingURL=intervalCollection.mjs.map