@fluidframework/sequence 2.0.0-rc.1.0.6 → 2.0.0-rc.2.0.1

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 (379) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +4 -1
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +8 -0
  4. package/README.md +2 -2
  5. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
  6. package/api-extractor.json +1 -1
  7. package/api-report/sequence.api.md +15 -27
  8. package/dist/defaultMap.d.ts +10 -16
  9. package/dist/defaultMap.d.ts.map +1 -1
  10. package/dist/defaultMap.js +73 -70
  11. package/dist/defaultMap.js.map +1 -1
  12. package/dist/defaultMapInterfaces.d.ts +1 -8
  13. package/dist/defaultMapInterfaces.d.ts.map +1 -1
  14. package/dist/defaultMapInterfaces.js.map +1 -1
  15. package/dist/index.d.ts +11 -11
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +42 -42
  18. package/dist/index.js.map +1 -1
  19. package/dist/intervalCollection.d.ts +21 -15
  20. package/dist/intervalCollection.d.ts.map +1 -1
  21. package/dist/intervalCollection.js +59 -110
  22. package/dist/intervalCollection.js.map +1 -1
  23. package/dist/intervalIndex/endpointInRangeIndex.d.ts +3 -3
  24. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  25. package/dist/intervalIndex/endpointInRangeIndex.js +8 -8
  26. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  27. package/dist/intervalIndex/endpointIndex.d.ts +3 -3
  28. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  29. package/dist/intervalIndex/endpointIndex.js +4 -4
  30. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  31. package/dist/intervalIndex/idIntervalIndex.d.ts +2 -2
  32. package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -1
  33. package/dist/intervalIndex/idIntervalIndex.js +2 -2
  34. package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
  35. package/dist/intervalIndex/index.d.ts +8 -8
  36. package/dist/intervalIndex/index.d.ts.map +1 -1
  37. package/dist/intervalIndex/index.js +16 -16
  38. package/dist/intervalIndex/index.js.map +1 -1
  39. package/dist/intervalIndex/intervalIndex.d.ts +1 -1
  40. package/dist/intervalIndex/intervalIndex.d.ts.map +1 -1
  41. package/dist/intervalIndex/intervalIndex.js.map +1 -1
  42. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +7 -10
  43. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  44. package/dist/intervalIndex/overlappingIntervalsIndex.js +9 -12
  45. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  46. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +2 -2
  47. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
  48. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +7 -7
  49. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  50. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
  51. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  52. package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  53. package/dist/intervalIndex/startpointInRangeIndex.d.ts +3 -3
  54. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  55. package/dist/intervalIndex/startpointInRangeIndex.js +8 -8
  56. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  57. package/dist/intervalTree.d.ts +1 -1
  58. package/dist/intervalTree.d.ts.map +1 -1
  59. package/dist/intervalTree.js.map +1 -1
  60. package/dist/intervals/index.d.ts +3 -3
  61. package/dist/intervals/index.d.ts.map +1 -1
  62. package/dist/intervals/index.js +16 -16
  63. package/dist/intervals/index.js.map +1 -1
  64. package/dist/intervals/interval.d.ts +2 -2
  65. package/dist/intervals/interval.d.ts.map +1 -1
  66. package/dist/intervals/interval.js +2 -2
  67. package/dist/intervals/interval.js.map +1 -1
  68. package/dist/intervals/intervalUtils.d.ts +3 -3
  69. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  70. package/dist/intervals/intervalUtils.js +1 -1
  71. package/dist/intervals/intervalUtils.js.map +1 -1
  72. package/dist/intervals/sequenceInterval.d.ts +2 -2
  73. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  74. package/dist/intervals/sequenceInterval.js +22 -23
  75. package/dist/intervals/sequenceInterval.js.map +1 -1
  76. package/dist/localValues.d.ts +2 -2
  77. package/dist/localValues.d.ts.map +1 -1
  78. package/dist/localValues.js.map +1 -1
  79. package/dist/package.json +3 -0
  80. package/dist/packageVersion.d.ts +1 -1
  81. package/dist/packageVersion.js +1 -1
  82. package/dist/packageVersion.js.map +1 -1
  83. package/dist/revertibles.d.ts +12 -12
  84. package/dist/revertibles.d.ts.map +1 -1
  85. package/dist/revertibles.js +26 -26
  86. package/dist/revertibles.js.map +1 -1
  87. package/dist/sequence-alpha.d.ts +167 -13
  88. package/dist/sequence-beta.d.ts +2 -0
  89. package/dist/sequence-public.d.ts +2 -0
  90. package/dist/sequence-untrimmed.d.ts +68 -14
  91. package/dist/sequence.d.ts +43 -5
  92. package/dist/sequence.d.ts.map +1 -1
  93. package/dist/sequence.js +98 -29
  94. package/dist/sequence.js.map +1 -1
  95. package/dist/sequenceFactory.d.ts +4 -1
  96. package/dist/sequenceFactory.d.ts.map +1 -1
  97. package/dist/sequenceFactory.js +8 -5
  98. package/dist/sequenceFactory.js.map +1 -1
  99. package/dist/sharedIntervalCollection.d.ts +2 -2
  100. package/dist/sharedIntervalCollection.d.ts.map +1 -1
  101. package/dist/sharedIntervalCollection.js +5 -5
  102. package/dist/sharedIntervalCollection.js.map +1 -1
  103. package/dist/sharedSequence.d.ts +1 -1
  104. package/dist/sharedSequence.d.ts.map +1 -1
  105. package/dist/sharedSequence.js +2 -2
  106. package/dist/sharedSequence.js.map +1 -1
  107. package/dist/sharedString.d.ts +2 -2
  108. package/dist/sharedString.d.ts.map +1 -1
  109. package/dist/sharedString.js +6 -6
  110. package/dist/sharedString.js.map +1 -1
  111. package/dist/tsdoc-metadata.json +1 -1
  112. package/lib/{defaultMap.d.mts → defaultMap.d.ts} +11 -17
  113. package/lib/defaultMap.d.ts.map +1 -0
  114. package/lib/{defaultMap.mjs → defaultMap.js} +72 -69
  115. package/lib/defaultMap.js.map +1 -0
  116. package/lib/{defaultMapInterfaces.d.mts → defaultMapInterfaces.d.ts} +2 -9
  117. package/lib/defaultMapInterfaces.d.ts.map +1 -0
  118. package/lib/{defaultMapInterfaces.mjs → defaultMapInterfaces.js} +1 -1
  119. package/lib/defaultMapInterfaces.js.map +1 -0
  120. package/lib/{index.d.mts → index.d.ts} +24 -12
  121. package/lib/index.d.ts.map +1 -0
  122. package/lib/{index.mjs → index.js} +11 -11
  123. package/lib/index.js.map +1 -0
  124. package/lib/{intervalCollection.d.mts → intervalCollection.d.ts} +22 -16
  125. package/lib/intervalCollection.d.ts.map +1 -0
  126. package/lib/{intervalCollection.mjs → intervalCollection.js} +23 -74
  127. package/lib/intervalCollection.js.map +1 -0
  128. package/lib/intervalIndex/{endpointInRangeIndex.d.mts → endpointInRangeIndex.d.ts} +4 -4
  129. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -0
  130. package/lib/intervalIndex/{endpointInRangeIndex.mjs → endpointInRangeIndex.js} +3 -3
  131. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -0
  132. package/lib/intervalIndex/{endpointIndex.d.mts → endpointIndex.d.ts} +4 -4
  133. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -0
  134. package/lib/intervalIndex/{endpointIndex.mjs → endpointIndex.js} +2 -2
  135. package/lib/intervalIndex/endpointIndex.js.map +1 -0
  136. package/lib/intervalIndex/{idIntervalIndex.d.mts → idIntervalIndex.d.ts} +3 -3
  137. package/lib/intervalIndex/idIntervalIndex.d.ts.map +1 -0
  138. package/lib/intervalIndex/{idIntervalIndex.mjs → idIntervalIndex.js} +2 -2
  139. package/lib/intervalIndex/idIntervalIndex.js.map +1 -0
  140. package/lib/intervalIndex/{index.d.mts → index.d.ts} +9 -9
  141. package/lib/intervalIndex/index.d.ts.map +1 -0
  142. package/lib/intervalIndex/{index.mjs → index.js} +7 -7
  143. package/lib/intervalIndex/index.js.map +1 -0
  144. package/lib/intervalIndex/{intervalIndex.d.mts → intervalIndex.d.ts} +2 -2
  145. package/lib/intervalIndex/intervalIndex.d.ts.map +1 -0
  146. package/lib/intervalIndex/{intervalIndex.mjs → intervalIndex.js} +1 -1
  147. package/lib/intervalIndex/intervalIndex.js.map +1 -0
  148. package/lib/intervalIndex/{intervalIndexUtils.d.mts → intervalIndexUtils.d.ts} +1 -1
  149. package/lib/intervalIndex/intervalIndexUtils.d.ts.map +1 -0
  150. package/lib/intervalIndex/{intervalIndexUtils.mjs → intervalIndexUtils.js} +1 -1
  151. package/lib/intervalIndex/intervalIndexUtils.js.map +1 -0
  152. package/lib/intervalIndex/{overlappingIntervalsIndex.d.mts → overlappingIntervalsIndex.d.ts} +8 -11
  153. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -0
  154. package/lib/intervalIndex/{overlappingIntervalsIndex.mjs → overlappingIntervalsIndex.js} +5 -8
  155. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -0
  156. package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.d.mts → overlappingSequenceIntervalsIndex.d.ts} +3 -3
  157. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -0
  158. package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.mjs → overlappingSequenceIntervalsIndex.js} +3 -3
  159. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -0
  160. package/lib/intervalIndex/{sequenceIntervalIndexes.d.mts → sequenceIntervalIndexes.d.ts} +3 -3
  161. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -0
  162. package/lib/intervalIndex/{sequenceIntervalIndexes.mjs → sequenceIntervalIndexes.js} +1 -1
  163. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -0
  164. package/lib/intervalIndex/{startpointInRangeIndex.d.mts → startpointInRangeIndex.d.ts} +4 -4
  165. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -0
  166. package/lib/intervalIndex/{startpointInRangeIndex.mjs → startpointInRangeIndex.js} +3 -3
  167. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -0
  168. package/lib/{intervalTree.d.mts → intervalTree.d.ts} +2 -2
  169. package/lib/intervalTree.d.ts.map +1 -0
  170. package/lib/{intervalTree.mjs → intervalTree.js} +1 -1
  171. package/lib/intervalTree.js.map +1 -0
  172. package/lib/intervals/{index.d.mts → index.d.ts} +4 -4
  173. package/lib/intervals/index.d.ts.map +1 -0
  174. package/lib/intervals/{index.mjs → index.js} +4 -4
  175. package/lib/intervals/index.js.map +1 -0
  176. package/lib/intervals/{interval.d.mts → interval.d.ts} +3 -3
  177. package/lib/intervals/{interval.d.mts.map → interval.d.ts.map} +1 -1
  178. package/lib/intervals/{interval.mjs → interval.js} +2 -2
  179. package/lib/intervals/interval.js.map +1 -0
  180. package/lib/intervals/{intervalUtils.d.mts → intervalUtils.d.ts} +4 -4
  181. package/lib/intervals/intervalUtils.d.ts.map +1 -0
  182. package/lib/intervals/{intervalUtils.mjs → intervalUtils.js} +3 -2
  183. package/lib/intervals/intervalUtils.js.map +1 -0
  184. package/lib/intervals/{sequenceInterval.d.mts → sequenceInterval.d.ts} +3 -3
  185. package/lib/intervals/sequenceInterval.d.ts.map +1 -0
  186. package/lib/intervals/{sequenceInterval.mjs → sequenceInterval.js} +5 -4
  187. package/lib/intervals/{sequenceInterval.mjs.map → sequenceInterval.js.map} +1 -1
  188. package/lib/{localValues.d.mts → localValues.d.ts} +3 -3
  189. package/lib/{localValues.d.mts.map → localValues.d.ts.map} +1 -1
  190. package/lib/{localValues.mjs → localValues.js} +1 -1
  191. package/lib/localValues.js.map +1 -0
  192. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  193. package/lib/packageVersion.d.ts.map +1 -0
  194. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  195. package/lib/packageVersion.js.map +1 -0
  196. package/lib/{revertibles.d.mts → revertibles.d.ts} +13 -13
  197. package/lib/revertibles.d.ts.map +1 -0
  198. package/lib/{revertibles.mjs → revertibles.js} +11 -10
  199. package/lib/revertibles.js.map +1 -0
  200. package/lib/{sequence-alpha.d.mts → sequence-alpha.d.ts} +180 -13
  201. package/lib/{sequence-public.d.mts → sequence-beta.d.ts} +15 -0
  202. package/lib/{sequence-beta.d.mts → sequence-public.d.ts} +15 -0
  203. package/lib/{sequence-untrimmed.d.mts → sequence-untrimmed.d.ts} +81 -14
  204. package/lib/{sequence.d.mts → sequence.d.ts} +44 -6
  205. package/lib/sequence.d.ts.map +1 -0
  206. package/lib/{sequence.mjs → sequence.js} +95 -29
  207. package/lib/sequence.js.map +1 -0
  208. package/lib/{sequenceDeltaEvent.d.mts → sequenceDeltaEvent.d.ts} +1 -1
  209. package/lib/sequenceDeltaEvent.d.ts.map +1 -0
  210. package/lib/{sequenceDeltaEvent.mjs → sequenceDeltaEvent.js} +1 -1
  211. package/lib/sequenceDeltaEvent.js.map +1 -0
  212. package/lib/{sequenceFactory.d.mts → sequenceFactory.d.ts} +5 -2
  213. package/lib/sequenceFactory.d.ts.map +1 -0
  214. package/lib/{sequenceFactory.mjs → sequenceFactory.js} +6 -3
  215. package/lib/sequenceFactory.js.map +1 -0
  216. package/lib/{sharedIntervalCollection.d.mts → sharedIntervalCollection.d.ts} +3 -3
  217. package/lib/sharedIntervalCollection.d.ts.map +1 -0
  218. package/lib/{sharedIntervalCollection.mjs → sharedIntervalCollection.js} +4 -4
  219. package/lib/sharedIntervalCollection.js.map +1 -0
  220. package/lib/{sharedSequence.d.mts → sharedSequence.d.ts} +2 -2
  221. package/lib/sharedSequence.d.ts.map +1 -0
  222. package/lib/{sharedSequence.mjs → sharedSequence.js} +2 -2
  223. package/lib/sharedSequence.js.map +1 -0
  224. package/lib/{sharedString.d.mts → sharedString.d.ts} +3 -3
  225. package/lib/sharedString.d.ts.map +1 -0
  226. package/lib/{sharedString.mjs → sharedString.js} +3 -3
  227. package/lib/sharedString.js.map +1 -0
  228. package/lib/test/collections.intervalTree.js +73 -0
  229. package/lib/test/collections.intervalTree.js.map +1 -0
  230. package/lib/test/createSnapshotFiles.js +15 -0
  231. package/lib/test/createSnapshotFiles.js.map +1 -0
  232. package/lib/test/dirname.cjs +16 -0
  233. package/lib/test/dirname.cjs.map +1 -0
  234. package/lib/test/endpointInRangeIndex.spec.js +182 -0
  235. package/lib/test/endpointInRangeIndex.spec.js.map +1 -0
  236. package/lib/test/fuzz/fuzzUtils.js +250 -0
  237. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  238. package/lib/test/fuzz/intervalCollection.fuzz.spec.js +200 -0
  239. package/lib/test/fuzz/intervalCollection.fuzz.spec.js.map +1 -0
  240. package/lib/test/fuzz/intervalRevertibles.fuzz.spec.js +129 -0
  241. package/lib/test/fuzz/intervalRevertibles.fuzz.spec.js.map +1 -0
  242. package/lib/test/fuzz/sharedString.fuzz.spec.js +91 -0
  243. package/lib/test/fuzz/sharedString.fuzz.spec.js.map +1 -0
  244. package/lib/test/generateSharedStrings.js +138 -0
  245. package/lib/test/generateSharedStrings.js.map +1 -0
  246. package/lib/test/intervalCollection.detached.spec.js +126 -0
  247. package/lib/test/intervalCollection.detached.spec.js.map +1 -0
  248. package/lib/test/intervalCollection.events.spec.js +491 -0
  249. package/lib/test/intervalCollection.events.spec.js.map +1 -0
  250. package/lib/test/intervalCollection.perf.spec.js +88 -0
  251. package/lib/test/intervalCollection.perf.spec.js.map +1 -0
  252. package/lib/test/intervalCollection.snapshot.spec.js +171 -0
  253. package/lib/test/intervalCollection.snapshot.spec.js.map +1 -0
  254. package/lib/test/intervalCollection.spec.js +1660 -0
  255. package/lib/test/intervalCollection.spec.js.map +1 -0
  256. package/lib/test/intervalIndexTestUtils.js +49 -0
  257. package/lib/test/intervalIndexTestUtils.js.map +1 -0
  258. package/lib/test/intervalRebasing.spec.js +589 -0
  259. package/lib/test/intervalRebasing.spec.js.map +1 -0
  260. package/lib/test/intervalStashedOps.spec.js +142 -0
  261. package/lib/test/intervalStashedOps.spec.js.map +1 -0
  262. package/lib/test/intervalTestUtils.js +81 -0
  263. package/lib/test/intervalTestUtils.js.map +1 -0
  264. package/lib/test/marshalling.spec.js +55 -0
  265. package/lib/test/marshalling.spec.js.map +1 -0
  266. package/lib/test/memory/sharedSequence.spec.js +82 -0
  267. package/lib/test/memory/sharedSequence.spec.js.map +1 -0
  268. package/lib/test/memory/sharedString.spec.js +134 -0
  269. package/lib/test/memory/sharedString.spec.js.map +1 -0
  270. package/lib/test/overlappingSequenceIntervalsIndex.spec.js +348 -0
  271. package/lib/test/overlappingSequenceIntervalsIndex.spec.js.map +1 -0
  272. package/lib/test/partialLoad.spec.js +211 -0
  273. package/lib/test/partialLoad.spec.js.map +1 -0
  274. package/lib/test/rebasing.spec.js +81 -0
  275. package/lib/test/rebasing.spec.js.map +1 -0
  276. package/lib/test/reentrancy.spec.js +174 -0
  277. package/lib/test/reentrancy.spec.js.map +1 -0
  278. package/lib/test/revertibles.spec.js +971 -0
  279. package/lib/test/revertibles.spec.js.map +1 -0
  280. package/lib/test/sequenceDeltaEvent.spec.js +2144 -0
  281. package/lib/test/sequenceDeltaEvent.spec.js.map +1 -0
  282. package/lib/test/sharedIntervalCollection.spec.js +159 -0
  283. package/lib/test/sharedIntervalCollection.spec.js.map +1 -0
  284. package/lib/test/sharedString.spec.js +532 -0
  285. package/lib/test/sharedString.spec.js.map +1 -0
  286. package/lib/test/snapshotEmptyProps.spec.js +45 -0
  287. package/lib/test/snapshotEmptyProps.spec.js.map +1 -0
  288. package/lib/test/snapshotVersion.spec.js +149 -0
  289. package/lib/test/snapshotVersion.spec.js.map +1 -0
  290. package/lib/test/startpointInRangeIndex.spec.js +182 -0
  291. package/lib/test/startpointInRangeIndex.spec.js.map +1 -0
  292. package/lib/test/subSequence.spec.js +92 -0
  293. package/lib/test/subSequence.spec.js.map +1 -0
  294. package/lib/test/types/validateSequencePrevious.generated.js +162 -0
  295. package/lib/test/types/validateSequencePrevious.generated.js.map +1 -0
  296. package/lib/test/v1IntervalCollectionHelpers.js +93 -0
  297. package/lib/test/v1IntervalCollectionHelpers.js.map +1 -0
  298. package/package.json +66 -60
  299. package/src/defaultMap.ts +97 -123
  300. package/src/defaultMapInterfaces.ts +1 -9
  301. package/src/index.ts +15 -11
  302. package/src/intervalCollection.ts +57 -84
  303. package/src/intervalIndex/endpointInRangeIndex.ts +4 -4
  304. package/src/intervalIndex/endpointIndex.ts +3 -3
  305. package/src/intervalIndex/idIntervalIndex.ts +3 -4
  306. package/src/intervalIndex/index.ts +8 -8
  307. package/src/intervalIndex/intervalIndex.ts +1 -1
  308. package/src/intervalIndex/overlappingIntervalsIndex.ts +7 -10
  309. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +4 -4
  310. package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -2
  311. package/src/intervalIndex/startpointInRangeIndex.ts +4 -4
  312. package/src/intervalTree.ts +1 -1
  313. package/src/intervals/index.ts +3 -3
  314. package/src/intervals/interval.ts +2 -4
  315. package/src/intervals/intervalUtils.ts +3 -3
  316. package/src/intervals/sequenceInterval.ts +3 -4
  317. package/src/localValues.ts +2 -2
  318. package/src/packageVersion.ts +1 -1
  319. package/src/revertibles.ts +13 -13
  320. package/src/sequence.ts +121 -44
  321. package/src/sequenceFactory.ts +5 -2
  322. package/src/sharedIntervalCollection.ts +5 -5
  323. package/src/sharedSequence.ts +1 -1
  324. package/src/sharedString.ts +2 -2
  325. package/tsconfig.cjs.json +7 -0
  326. package/tsconfig.json +2 -5
  327. package/lib/defaultMap.d.mts.map +0 -1
  328. package/lib/defaultMap.mjs.map +0 -1
  329. package/lib/defaultMapInterfaces.d.mts.map +0 -1
  330. package/lib/defaultMapInterfaces.mjs.map +0 -1
  331. package/lib/index.d.mts.map +0 -1
  332. package/lib/index.mjs.map +0 -1
  333. package/lib/intervalCollection.d.mts.map +0 -1
  334. package/lib/intervalCollection.mjs.map +0 -1
  335. package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +0 -1
  336. package/lib/intervalIndex/endpointInRangeIndex.mjs.map +0 -1
  337. package/lib/intervalIndex/endpointIndex.d.mts.map +0 -1
  338. package/lib/intervalIndex/endpointIndex.mjs.map +0 -1
  339. package/lib/intervalIndex/idIntervalIndex.d.mts.map +0 -1
  340. package/lib/intervalIndex/idIntervalIndex.mjs.map +0 -1
  341. package/lib/intervalIndex/index.d.mts.map +0 -1
  342. package/lib/intervalIndex/index.mjs.map +0 -1
  343. package/lib/intervalIndex/intervalIndex.d.mts.map +0 -1
  344. package/lib/intervalIndex/intervalIndex.mjs.map +0 -1
  345. package/lib/intervalIndex/intervalIndexUtils.d.mts.map +0 -1
  346. package/lib/intervalIndex/intervalIndexUtils.mjs.map +0 -1
  347. package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +0 -1
  348. package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +0 -1
  349. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +0 -1
  350. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +0 -1
  351. package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +0 -1
  352. package/lib/intervalIndex/sequenceIntervalIndexes.mjs.map +0 -1
  353. package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +0 -1
  354. package/lib/intervalIndex/startpointInRangeIndex.mjs.map +0 -1
  355. package/lib/intervalTree.d.mts.map +0 -1
  356. package/lib/intervalTree.mjs.map +0 -1
  357. package/lib/intervals/index.d.mts.map +0 -1
  358. package/lib/intervals/index.mjs.map +0 -1
  359. package/lib/intervals/interval.mjs.map +0 -1
  360. package/lib/intervals/intervalUtils.d.mts.map +0 -1
  361. package/lib/intervals/intervalUtils.mjs.map +0 -1
  362. package/lib/intervals/sequenceInterval.d.mts.map +0 -1
  363. package/lib/localValues.mjs.map +0 -1
  364. package/lib/packageVersion.d.mts.map +0 -1
  365. package/lib/packageVersion.mjs.map +0 -1
  366. package/lib/revertibles.d.mts.map +0 -1
  367. package/lib/revertibles.mjs.map +0 -1
  368. package/lib/sequence.d.mts.map +0 -1
  369. package/lib/sequence.mjs.map +0 -1
  370. package/lib/sequenceDeltaEvent.d.mts.map +0 -1
  371. package/lib/sequenceDeltaEvent.mjs.map +0 -1
  372. package/lib/sequenceFactory.d.mts.map +0 -1
  373. package/lib/sequenceFactory.mjs.map +0 -1
  374. package/lib/sharedIntervalCollection.d.mts.map +0 -1
  375. package/lib/sharedIntervalCollection.mjs.map +0 -1
  376. package/lib/sharedSequence.d.mts.map +0 -1
  377. package/lib/sharedSequence.mjs.map +0 -1
  378. package/lib/sharedString.d.mts.map +0 -1
  379. package/lib/sharedString.mjs.map +0 -1
@@ -4,7 +4,7 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.intervalLocatorFromEndpoint = exports.IntervalCollection = exports.makeOpsMap = exports.IntervalCollectionValueType = exports.SequenceIntervalCollectionValueType = exports.LocalIntervalCollection = exports.createIntervalIndex = exports.computeStickinessFromSide = exports.endpointPosAndSide = exports.sidesFromStickiness = exports.Side = void 0;
7
+ exports.intervalLocatorFromEndpoint = exports.IntervalCollection = exports.makeOpsMap = exports.IntervalCollectionValueType = exports.SequenceIntervalCollectionValueType = exports.LocalIntervalCollection = exports.createIntervalIndex = exports.computeStickinessFromSide = exports.toOptionalSequencePlace = exports.toSequencePlace = exports.endpointPosAndSide = exports.sidesFromStickiness = exports.reservedIntervalIdKey = exports.Side = void 0;
8
8
  /* eslint-disable no-bitwise */
9
9
  /* eslint-disable import/no-deprecated */
10
10
  const client_utils_1 = require("@fluid-internal/client-utils");
@@ -12,8 +12,8 @@ const core_utils_1 = require("@fluidframework/core-utils");
12
12
  const merge_tree_1 = require("@fluidframework/merge-tree");
13
13
  const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
14
14
  const uuid_1 = require("uuid");
15
- const intervals_1 = require("./intervals");
16
- const intervalIndex_1 = require("./intervalIndex");
15
+ const index_js_1 = require("./intervals/index.js");
16
+ const index_js_2 = require("./intervalIndex/index.js");
17
17
  /**
18
18
  * Defines a side relative to a character in a sequence.
19
19
  *
@@ -25,10 +25,10 @@ var Side;
25
25
  Side[Side["Before"] = 0] = "Before";
26
26
  Side[Side["After"] = 1] = "After";
27
27
  })(Side || (exports.Side = Side = {}));
28
- const reservedIntervalIdKey = "intervalId";
28
+ exports.reservedIntervalIdKey = "intervalId";
29
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;
30
+ const startSide = (stickiness & index_js_1.IntervalStickiness.START) !== 0 ? Side.After : Side.Before;
31
+ const endSide = (stickiness & index_js_1.IntervalStickiness.END) !== 0 ? Side.Before : Side.After;
32
32
  return { startSide, endSide };
33
33
  }
34
34
  exports.sidesFromStickiness = sidesFromStickiness;
@@ -37,7 +37,7 @@ exports.sidesFromStickiness = sidesFromStickiness;
37
37
  * of this compression is unspecified and subject to change
38
38
  */
39
39
  function decompressInterval(interval, label) {
40
- const stickiness = interval[5] ?? intervals_1.IntervalStickiness.END;
40
+ const stickiness = interval[5] ?? index_js_1.IntervalStickiness.END;
41
41
  const { startSide, endSide } = sidesFromStickiness(stickiness);
42
42
  return {
43
43
  start: interval[0],
@@ -65,7 +65,7 @@ function compressInterval(interval) {
65
65
  // in the `label` field of the summary
66
66
  { ...properties, [merge_tree_1.reservedRangeLabelsKey]: undefined },
67
67
  ];
68
- if (interval.stickiness !== undefined && interval.stickiness !== intervals_1.IntervalStickiness.END) {
68
+ if (interval.stickiness !== undefined && interval.stickiness !== index_js_1.IntervalStickiness.END) {
69
69
  // reassignment to make it easier for typescript to reason about types
70
70
  base = [...base, interval.stickiness];
71
71
  }
@@ -87,25 +87,27 @@ function endpointPosAndSide(start, end) {
87
87
  }
88
88
  exports.endpointPosAndSide = endpointPosAndSide;
89
89
  function toSequencePlace(pos, side) {
90
- return typeof pos === "number" ? { pos, side } : pos;
90
+ return typeof pos === "number" && side !== undefined ? { pos, side } : pos;
91
91
  }
92
- function toOptionalSequencePlace(pos, side = Side.Before) {
93
- return typeof pos === "number" ? { pos, side } : pos;
92
+ exports.toSequencePlace = toSequencePlace;
93
+ function toOptionalSequencePlace(pos, side) {
94
+ return typeof pos === "number" && side !== undefined ? { pos, side } : pos;
94
95
  }
96
+ exports.toOptionalSequencePlace = toOptionalSequencePlace;
95
97
  function computeStickinessFromSide(startPos = -1, startSide = Side.Before, endPos = -1, endSide = Side.Before) {
96
- let stickiness = intervals_1.IntervalStickiness.NONE;
98
+ let stickiness = index_js_1.IntervalStickiness.NONE;
97
99
  if (startSide === Side.After || startPos === "start") {
98
- stickiness |= intervals_1.IntervalStickiness.START;
100
+ stickiness |= index_js_1.IntervalStickiness.START;
99
101
  }
100
102
  if (endSide === Side.Before || endPos === "end") {
101
- stickiness |= intervals_1.IntervalStickiness.END;
103
+ stickiness |= index_js_1.IntervalStickiness.END;
102
104
  }
103
105
  return stickiness;
104
106
  }
105
107
  exports.computeStickinessFromSide = computeStickinessFromSide;
106
108
  function createIntervalIndex() {
107
109
  const helpers = {
108
- create: intervals_1.createInterval,
110
+ create: index_js_1.createInterval,
109
111
  };
110
112
  const lc = new LocalIntervalCollection(undefined, "", helpers, {});
111
113
  return lc;
@@ -120,9 +122,9 @@ class LocalIntervalCollection {
120
122
  this.helpers = helpers;
121
123
  this.options = options;
122
124
  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);
125
+ this.overlappingIntervalsIndex = new index_js_2.OverlappingIntervalsIndex(client, helpers);
126
+ this.idIntervalIndex = (0, index_js_2.createIdIntervalIndex)();
127
+ this.endIntervalIndex = new index_js_2.EndpointIndex(client, helpers);
126
128
  this.indexes = new Set([
127
129
  this.overlappingIntervalsIndex,
128
130
  this.idIntervalIndex,
@@ -142,19 +144,19 @@ class LocalIntervalCollection {
142
144
  * @returns The interval's existing or newly created id
143
145
  */
144
146
  ensureSerializedId(serializedInterval) {
145
- let id = serializedInterval.properties?.[reservedIntervalIdKey];
147
+ let id = serializedInterval.properties?.[exports.reservedIntervalIdKey];
146
148
  if (id === undefined) {
147
149
  // Back-compat: 0.39 and earlier did not have IDs on intervals. If an interval from such a client
148
150
  // comes over the wire, create a non-unique one based on start/end.
149
151
  // This will allow all clients to refer to this interval consistently.
150
152
  id = this.createLegacyId(serializedInterval.start, serializedInterval.end);
151
153
  const newProps = {
152
- [reservedIntervalIdKey]: id,
154
+ [exports.reservedIntervalIdKey]: id,
153
155
  };
154
156
  serializedInterval.properties = (0, merge_tree_1.addProperties)(serializedInterval.properties, newProps);
155
157
  }
156
158
  // Make the ID immutable for safety's sake.
157
- Object.defineProperty(serializedInterval.properties, reservedIntervalIdKey, {
159
+ Object.defineProperty(serializedInterval.properties, exports.reservedIntervalIdKey, {
158
160
  configurable: false,
159
161
  enumerable: true,
160
162
  writable: false,
@@ -196,13 +198,13 @@ class LocalIntervalCollection {
196
198
  }
197
199
  interval.addProperties(props);
198
200
  }
199
- (_a = interval.properties)[reservedIntervalIdKey] ?? (_a[reservedIntervalIdKey] = (0, uuid_1.v4)());
201
+ (_a = interval.properties)[exports.reservedIntervalIdKey] ?? (_a[exports.reservedIntervalIdKey] = (0, uuid_1.v4)());
200
202
  this.add(interval);
201
203
  }
202
204
  return interval;
203
205
  }
204
206
  linkEndpointsToInterval(interval) {
205
- if (interval instanceof intervals_1.SequenceInterval) {
207
+ if (interval instanceof index_js_1.SequenceInterval) {
206
208
  interval.start.addProperties({ interval });
207
209
  interval.end.addProperties({ interval });
208
210
  }
@@ -243,7 +245,7 @@ class LocalIntervalCollection {
243
245
  }
244
246
  return this.client.createLocalReferencePosition(segment, ref.getOffset(), merge_tree_1.ReferenceType.Transient, ref.properties, ref.slidingPreference, ref.canSlideToEndpoint);
245
247
  };
246
- if (interval instanceof intervals_1.SequenceInterval) {
248
+ if (interval instanceof index_js_1.SequenceInterval) {
247
249
  let previousInterval;
248
250
  let pendingChanges = 0;
249
251
  interval.addPositionChangeListeners(() => {
@@ -267,7 +269,7 @@ class LocalIntervalCollection {
267
269
  }
268
270
  }
269
271
  removeIntervalListeners(interval) {
270
- if (interval instanceof intervals_1.SequenceInterval) {
272
+ if (interval instanceof index_js_1.SequenceInterval) {
271
273
  interval.removePositionChangeListeners();
272
274
  }
273
275
  }
@@ -276,7 +278,7 @@ exports.LocalIntervalCollection = LocalIntervalCollection;
276
278
  LocalIntervalCollection.legacyIdPrefix = "legacy";
277
279
  class SequenceIntervalCollectionFactory {
278
280
  load(emitter, raw = [], options) {
279
- return new IntervalCollection(intervals_1.sequenceIntervalHelpers, true, emitter, raw, options);
281
+ return new IntervalCollection(index_js_1.sequenceIntervalHelpers, true, emitter, raw, options);
280
282
  }
281
283
  store(value) {
282
284
  return value.serializeInternal();
@@ -300,7 +302,7 @@ SequenceIntervalCollectionValueType._ops = makeOpsMap();
300
302
  class IntervalCollectionFactory {
301
303
  load(emitter, raw = [], options) {
302
304
  const helpers = {
303
- create: intervals_1.createInterval,
305
+ create: index_js_1.createInterval,
304
306
  };
305
307
  const collection = new IntervalCollection(helpers, false, emitter, raw, options);
306
308
  collection.attachGraph(undefined, "");
@@ -335,12 +337,9 @@ function makeOpsMap() {
335
337
  const rebasedOp = { ...op, value: rebasedValue };
336
338
  return { rebasedOp, rebasedLocalOpMetadata: localOpMetadata };
337
339
  };
338
- const applyStashedOp = (collection, op) => {
339
- return collection.applyStashedOp(op);
340
- };
341
340
  return new Map([
342
341
  [
343
- intervals_1.IntervalOpType.ADD,
342
+ index_js_1.IntervalOpType.ADD,
344
343
  {
345
344
  process: (collection, params, local, op, localOpMetadata) => {
346
345
  // if params is undefined, the interval was deleted during
@@ -352,11 +351,10 @@ function makeOpsMap() {
352
351
  collection.ackAdd(params, local, op, localOpMetadata);
353
352
  },
354
353
  rebase,
355
- applyStashedOp,
356
354
  },
357
355
  ],
358
356
  [
359
- intervals_1.IntervalOpType.DELETE,
357
+ index_js_1.IntervalOpType.DELETE,
360
358
  {
361
359
  process: (collection, params, local, op) => {
362
360
  (0, core_utils_1.assert)(op !== undefined, 0x3fc /* op should exist here */);
@@ -366,11 +364,10 @@ function makeOpsMap() {
366
364
  // Deletion of intervals is based on id, so requires no rebasing.
367
365
  return { rebasedOp: op, rebasedLocalOpMetadata: localOpMetadata };
368
366
  },
369
- applyStashedOp,
370
367
  },
371
368
  ],
372
369
  [
373
- intervals_1.IntervalOpType.CHANGE,
370
+ index_js_1.IntervalOpType.CHANGE,
374
371
  {
375
372
  process: (collection, params, local, op, localOpMetadata) => {
376
373
  // if params is undefined, the interval was deleted during
@@ -382,7 +379,6 @@ function makeOpsMap() {
382
379
  collection.ackChange(params, local, op, localOpMetadata);
383
380
  },
384
381
  rebase,
385
- applyStashedOp,
386
382
  },
387
383
  ],
388
384
  ]);
@@ -414,7 +410,6 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
414
410
  get attached() {
415
411
  return !!this.localCollection;
416
412
  }
417
- /** @internal */
418
413
  constructor(helpers, requiresClient, emitter, serializedIntervals, options = {}) {
419
414
  super();
420
415
  this.helpers = helpers;
@@ -493,7 +488,6 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
493
488
  }
494
489
  return rebased;
495
490
  }
496
- /** @internal */
497
491
  attachGraph(client, label) {
498
492
  if (this.attached) {
499
493
  throw new telemetry_utils_1.LoggingError("Only supports one Sequence attach");
@@ -545,17 +539,19 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
545
539
  // is restored as single-endpoint changes re-use previous references.
546
540
  let startRefType;
547
541
  let endRefType;
548
- if (previousInterval instanceof intervals_1.SequenceInterval) {
542
+ if (previousInterval instanceof index_js_1.SequenceInterval) {
549
543
  startRefType = previousInterval.start.refType;
550
544
  endRefType = previousInterval.end.refType;
551
545
  previousInterval.start.refType = merge_tree_1.ReferenceType.Transient;
552
546
  previousInterval.end.refType = merge_tree_1.ReferenceType.Transient;
553
547
  this.emit("changeInterval", interval, previousInterval, local, op, slide);
548
+ this.emit("changed", interval, undefined, previousInterval ?? undefined, local, slide);
554
549
  previousInterval.start.refType = startRefType;
555
550
  previousInterval.end.refType = endRefType;
556
551
  }
557
552
  else {
558
553
  this.emit("changeInterval", interval, previousInterval, local, op, slide);
554
+ this.emit("changed", interval, undefined, previousInterval ?? undefined, local, slide);
559
555
  }
560
556
  }
561
557
  /**
@@ -587,16 +583,16 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
587
583
  endSide !== undefined, 0x793 /* start and end cannot be undefined because they were not passed in as undefined */);
588
584
  const stickiness = computeStickinessFromSide(startPos, startSide, endPos, endSide);
589
585
  this.assertStickinessEnabled(start, end);
590
- const interval = this.localCollection.addInterval(toSequencePlace(startPos, startSide), toSequencePlace(endPos, endSide), intervals_1.IntervalType.SlideOnRemove, props);
586
+ const interval = this.localCollection.addInterval(toSequencePlace(startPos, startSide), toSequencePlace(endPos, endSide), index_js_1.IntervalType.SlideOnRemove, props);
591
587
  if (interval) {
592
- if (!this.isCollaborating && interval instanceof intervals_1.SequenceInterval) {
588
+ if (!this.isCollaborating && interval instanceof index_js_1.SequenceInterval) {
593
589
  setSlideOnRemove(interval.start);
594
590
  setSlideOnRemove(interval.end);
595
591
  }
596
592
  const serializedInterval = {
597
593
  start: startPos,
598
594
  end: endPos,
599
- intervalType: intervals_1.IntervalType.SlideOnRemove,
595
+ intervalType: index_js_1.IntervalType.SlideOnRemove,
600
596
  properties: interval.properties,
601
597
  sequenceNumber: this.client?.getCurrentSeq() ?? 0,
602
598
  stickiness,
@@ -604,7 +600,9 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
604
600
  endSide,
605
601
  };
606
602
  const localSeq = this.getNextLocalSeq();
607
- this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
603
+ if (this.isCollaborating) {
604
+ this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
605
+ }
608
606
  // Local ops get submitted to the server. Remote ops have the deserializer run.
609
607
  this.emitter.emit("add", undefined, serializedInterval, { localSeq });
610
608
  }
@@ -674,7 +672,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
674
672
  }
675
673
  if (start !== undefined && end !== undefined) {
676
674
  newInterval = this.localCollection.changeInterval(interval, start, end);
677
- if (!this.isCollaborating && newInterval instanceof intervals_1.SequenceInterval) {
675
+ if (!this.isCollaborating && newInterval instanceof index_js_1.SequenceInterval) {
678
676
  setSlideOnRemove(newInterval.start);
679
677
  setSlideOnRemove(newInterval.end);
680
678
  }
@@ -689,14 +687,17 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
689
687
  serializedInterval.stickiness = stickiness;
690
688
  // Emit a property bag containing the ID and the other (if any) properties changed
691
689
  serializedInterval.properties = {
692
- [reservedIntervalIdKey]: interval.getIntervalId(),
690
+ [exports.reservedIntervalIdKey]: interval.getIntervalId(),
693
691
  ...props,
694
692
  };
695
693
  const localSeq = this.getNextLocalSeq();
696
- this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
694
+ if (this.isCollaborating) {
695
+ this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
696
+ }
697
697
  this.emitter.emit("change", undefined, serializedInterval, { localSeq });
698
698
  if (deltaProps !== undefined) {
699
699
  this.emit("propertyChanged", interval, deltaProps, true, undefined);
700
+ this.emit("changed", newInterval ?? interval, deltaProps, newInterval ? interval : undefined, true, false);
700
701
  }
701
702
  if (newInterval) {
702
703
  this.addPendingChange(id, serializedInterval);
@@ -731,7 +732,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
731
732
  }
732
733
  removePendingChange(serializedInterval) {
733
734
  // Change ops always have an ID.
734
- const id = serializedInterval.properties?.[reservedIntervalIdKey];
735
+ const id = serializedInterval.properties?.[exports.reservedIntervalIdKey];
735
736
  if (serializedInterval.start !== undefined) {
736
737
  this.removePendingChangeHelper(id, this.pendingChangesStart, serializedInterval);
737
738
  }
@@ -760,7 +761,6 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
760
761
  const entries = this.pendingChangesEnd.get(id);
761
762
  return entries && entries.length !== 0;
762
763
  }
763
- /** @internal */
764
764
  ackChange(serializedInterval, local, op, localOpMetadata) {
765
765
  if (!this.localCollection) {
766
766
  throw new telemetry_utils_1.LoggingError("Attach must be called before accessing intervals");
@@ -774,7 +774,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
774
774
  // Note that the ID is in the property bag only to allow us to find the interval.
775
775
  // This API cannot change the ID, and writing to the ID property will result in an exception. So we
776
776
  // strip it out of the properties here.
777
- const { [reservedIntervalIdKey]: id, ...newProps } = serializedInterval.properties ?? {};
777
+ const { [exports.reservedIntervalIdKey]: id, ...newProps } = serializedInterval.properties ?? {};
778
778
  (0, core_utils_1.assert)(id !== undefined, 0x3fe /* id must exist on the interval */);
779
779
  const interval = this.getIntervalById(id);
780
780
  if (!interval) {
@@ -806,7 +806,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
806
806
  // If changeInterval gives us a new interval, work with that one. Otherwise keep working with
807
807
  // the one we originally found in the tree.
808
808
  newInterval =
809
- this.localCollection.changeInterval(interval, toOptionalSequencePlace(start, serializedInterval.startSide), toOptionalSequencePlace(end, serializedInterval.endSide), op) ?? interval;
809
+ this.localCollection.changeInterval(interval, toOptionalSequencePlace(start, serializedInterval.startSide ?? Side.Before), toOptionalSequencePlace(end, serializedInterval.endSide ?? Side.Before), op) ?? interval;
810
810
  }
811
811
  const deltaProps = newInterval.addProperties(newProps, true, op.sequenceNumber);
812
812
  if (this.onDeserialize) {
@@ -818,6 +818,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
818
818
  const changedProperties = Object.keys(newProps).length > 0;
819
819
  if (changedProperties) {
820
820
  this.emit("propertyChanged", interval, deltaProps, local, op);
821
+ this.emit("changed", interval, deltaProps, undefined, local, false);
821
822
  }
822
823
  }
823
824
  }
@@ -841,7 +842,6 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
841
842
  * deleted as a result of rebasing. This can occur if the interval applies
842
843
  * to a range that no longer exists, and the interval was unable to slide.
843
844
  *
844
- * @internal
845
845
  */
846
846
  rebaseLocalInterval(opName, serializedInterval, localSeq) {
847
847
  if (!this.client) {
@@ -853,7 +853,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
853
853
  }
854
854
  const { intervalType, properties, stickiness, startSide, endSide } = serializedInterval;
855
855
  const { start: startRebased, end: endRebased } = this.localSeqToRebasedInterval.get(localSeq) ?? this.computeRebasedPositions(localSeq);
856
- const intervalId = properties?.[reservedIntervalIdKey];
856
+ const intervalId = properties?.[exports.reservedIntervalIdKey];
857
857
  const localInterval = this.localCollection?.idIntervalIndex.getIntervalById(intervalId);
858
858
  const rebased = {
859
859
  start: startRebased,
@@ -881,59 +881,13 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
881
881
  }
882
882
  if (localInterval !== undefined) {
883
883
  // we know we must be using `SequenceInterval` because `this.client` exists
884
- (0, core_utils_1.assert)(localInterval instanceof intervals_1.SequenceInterval, 0x3a0 /* localInterval must be `SequenceInterval` when used with client */);
884
+ (0, core_utils_1.assert)(localInterval instanceof index_js_1.SequenceInterval, 0x3a0 /* localInterval must be `SequenceInterval` when used with client */);
885
885
  // The rebased op may place this interval's endpoints on different segments. Calling `changeInterval` here
886
886
  // updates the local client's state to be consistent with the emitted op.
887
- this.localCollection?.changeInterval(localInterval, toOptionalSequencePlace(startRebased, startSide), toOptionalSequencePlace(endRebased, endSide), undefined, localSeq);
887
+ this.localCollection?.changeInterval(localInterval, toOptionalSequencePlace(startRebased, startSide ?? Side.Before), toOptionalSequencePlace(endRebased, endSide ?? Side.Before), undefined, localSeq);
888
888
  }
889
889
  return rebased;
890
890
  }
891
- applyStashedOp(op) {
892
- let interval;
893
- let props;
894
- let intervalId;
895
- switch (op.opName) {
896
- case intervals_1.IntervalDeltaOpType.ADD: {
897
- (0, core_utils_1.assert)(op.value.start !== undefined, 0x87a /* start is undefined */);
898
- (0, core_utils_1.assert)(op.value.end !== undefined, 0x87b /* end is undefined */);
899
- interval = this.add({
900
- start: op.value.start,
901
- end: op.value.end,
902
- props: op.value.properties,
903
- });
904
- const metadata = {
905
- localSeq: this.getNextLocalSeq(),
906
- };
907
- if (interval !== undefined) {
908
- this.localSeqToSerializedInterval.set(metadata.localSeq, interval.serialize());
909
- }
910
- return metadata;
911
- }
912
- case intervals_1.IntervalDeltaOpType.DELETE:
913
- this.removeIntervalById(op.value.properties?.intervalId);
914
- return {
915
- localSeq: this.getNextLocalSeq(),
916
- };
917
- case intervals_1.IntervalDeltaOpType.CHANGE: {
918
- (0, core_utils_1.assert)(op.value.properties !== undefined, 0x87c /* properties is undefined */);
919
- ({ intervalId, ...props } = op.value.properties);
920
- interval = this.change(intervalId, {
921
- start: op.value.start,
922
- end: op.value.end,
923
- props,
924
- });
925
- const metadata = {
926
- localSeq: this.getNextLocalSeq(),
927
- };
928
- if (interval !== undefined) {
929
- this.localSeqToSerializedInterval.set(metadata.localSeq, interval.serialize());
930
- }
931
- return metadata;
932
- }
933
- default:
934
- (0, core_utils_1.unreachableCase)(op.opName, `Unknown interval op type: ${op.opName}`);
935
- }
936
- }
937
891
  getSlideToSegment(lref) {
938
892
  if (!this.client) {
939
893
  throw new telemetry_utils_1.LoggingError("client does not exist");
@@ -950,7 +904,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
950
904
  }
951
905
  ackInterval(interval, op) {
952
906
  // Only SequenceIntervals need potential sliding
953
- if (!(interval instanceof intervals_1.SequenceInterval)) {
907
+ if (!(interval instanceof index_js_1.SequenceInterval)) {
954
908
  return;
955
909
  }
956
910
  if (!(0, merge_tree_1.refTypeIncludesFlag)(interval.start, merge_tree_1.ReferenceType.StayOnRemove) &&
@@ -959,7 +913,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
959
913
  }
960
914
  const newStart = this.getSlideToSegment(interval.start);
961
915
  const newEnd = this.getSlideToSegment(interval.end);
962
- const id = interval.properties[reservedIntervalIdKey];
916
+ const id = interval.properties[exports.reservedIntervalIdKey];
963
917
  const hasPendingStartChange = this.hasPendingChangeStart(id);
964
918
  const hasPendingEndChange = this.hasPendingChangeEnd(id);
965
919
  if (!hasPendingStartChange) {
@@ -985,7 +939,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
985
939
  }
986
940
  if (needsStartUpdate) {
987
941
  const props = interval.start.properties;
988
- 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) ===
942
+ interval.start = (0, index_js_1.createPositionReferenceFromSegoff)(this.client, newStart, interval.start.refType, op, undefined, undefined, (0, index_js_1.startReferenceSlidingPreference)(interval.stickiness), (0, index_js_1.startReferenceSlidingPreference)(interval.stickiness) ===
989
943
  merge_tree_1.SlidingPreference.BACKWARD);
990
944
  if (props) {
991
945
  interval.start.addProperties(props);
@@ -998,7 +952,7 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
998
952
  }
999
953
  if (needsEndUpdate) {
1000
954
  const props = interval.end.properties;
1001
- 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) ===
955
+ interval.end = (0, index_js_1.createPositionReferenceFromSegoff)(this.client, newEnd, interval.end.refType, op, undefined, undefined, (0, index_js_1.endReferenceSlidingPreference)(interval.stickiness), (0, index_js_1.endReferenceSlidingPreference)(interval.stickiness) ===
1002
956
  merge_tree_1.SlidingPreference.FORWARD);
1003
957
  if (props) {
1004
958
  interval.end.addProperties(props);
@@ -1013,12 +967,11 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1013
967
  this.emitChange(interval, oldInterval, true, true, op);
1014
968
  }
1015
969
  }
1016
- /** @internal */
1017
970
  ackAdd(serializedInterval, local, op, localOpMetadata) {
1018
971
  if (local) {
1019
972
  (0, core_utils_1.assert)(localOpMetadata !== undefined, 0x553 /* op metadata should be defined for local op */);
1020
973
  this.localSeqToSerializedInterval.delete(localOpMetadata.localSeq);
1021
- const id = serializedInterval.properties?.[reservedIntervalIdKey];
974
+ const id = serializedInterval.properties?.[exports.reservedIntervalIdKey];
1022
975
  const localInterval = this.getIntervalById(id);
1023
976
  if (localInterval) {
1024
977
  this.ackInterval(localInterval, op);
@@ -1038,7 +991,6 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1038
991
  this.emit("addInterval", interval, local, op);
1039
992
  return interval;
1040
993
  }
1041
- /** @internal */
1042
994
  ackDelete(serializedInterval, local, op) {
1043
995
  if (local) {
1044
996
  // Local ops were applied when the message was created and there's no "pending delete"
@@ -1055,9 +1007,6 @@ class IntervalCollection extends client_utils_1.TypedEventEmitter {
1055
1007
  this.deleteExistingInterval(interval, local, op);
1056
1008
  }
1057
1009
  }
1058
- /**
1059
- * @internal
1060
- */
1061
1010
  serializeInternal() {
1062
1011
  if (!this.localCollection) {
1063
1012
  throw new telemetry_utils_1.LoggingError("attachSequence must be called");