@fluidframework/sequence 2.0.0-rc.1.0.4 → 2.0.0-rc.2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +12 -13
  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 +172 -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 +73 -14
  91. package/dist/sequence.d.ts +48 -5
  92. package/dist/sequence.d.ts.map +1 -1
  93. package/dist/sequence.js +103 -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} +8 -9
  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} +185 -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} +86 -14
  204. package/lib/{sequence.d.mts → sequence.d.ts} +49 -6
  205. package/lib/sequence.d.ts.map +1 -0
  206. package/lib/{sequence.mjs → sequence.js} +100 -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 +10 -11
  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 +126 -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
package/src/index.ts CHANGED
@@ -15,7 +15,11 @@
15
15
  *
16
16
  * @packageDocumentation
17
17
  */
18
- export { IMapMessageLocalMetadata, IValueOpEmitter, SequenceOptions } from "./defaultMapInterfaces";
18
+ export {
19
+ IMapMessageLocalMetadata,
20
+ IValueOpEmitter,
21
+ SequenceOptions,
22
+ } from "./defaultMapInterfaces.js";
19
23
  export {
20
24
  IInterval,
21
25
  Interval,
@@ -28,7 +32,7 @@ export {
28
32
  IntervalStickiness,
29
33
  IIntervalHelpers,
30
34
  sequenceIntervalHelpers,
31
- } from "./intervals";
35
+ } from "./intervals/index.js";
32
36
  export {
33
37
  DeserializeCallback,
34
38
  IIntervalCollectionEvent,
@@ -38,7 +42,7 @@ export {
38
42
  Side,
39
43
  InteriorSequencePlace,
40
44
  SequencePlace,
41
- } from "./intervalCollection";
45
+ } from "./intervalCollection.js";
42
46
  export {
43
47
  IntervalIndex,
44
48
  SequenceIntervalIndexes,
@@ -53,7 +57,7 @@ export {
53
57
  createIdIntervalIndex,
54
58
  IEndpointIndex,
55
59
  createEndpointIndex,
56
- } from "./intervalIndex";
60
+ } from "./intervalIndex/index.js";
57
61
  export {
58
62
  appendAddIntervalToRevertibles,
59
63
  appendChangeIntervalToRevertibles,
@@ -64,27 +68,27 @@ export {
64
68
  IntervalRevertible,
65
69
  revertSharedStringRevertibles,
66
70
  SharedStringRevertible,
67
- } from "./revertibles";
68
- export { ISharedSegmentSequenceEvents, SharedSegmentSequence } from "./sequence";
71
+ } from "./revertibles.js";
72
+ export { ISharedSegmentSequenceEvents, SharedSegmentSequence } from "./sequence.js";
69
73
  export {
70
74
  ISequenceDeltaRange,
71
75
  SequenceDeltaEvent,
72
76
  SequenceEvent,
73
77
  SequenceMaintenanceEvent,
74
- } from "./sequenceDeltaEvent";
75
- export { SharedStringFactory } from "./sequenceFactory";
78
+ } from "./sequenceDeltaEvent.js";
79
+ export { SharedStringFactory } from "./sequenceFactory.js";
76
80
  export {
77
81
  getTextAndMarkers,
78
82
  ISharedString,
79
83
  SharedString,
80
84
  SharedStringSegment,
81
- } from "./sharedString";
85
+ } from "./sharedString.js";
82
86
  export {
83
87
  ISharedIntervalCollection,
84
88
  SharedIntervalCollection,
85
89
  SharedIntervalCollectionFactory,
86
- } from "./sharedIntervalCollection";
87
- export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence";
90
+ } from "./sharedIntervalCollection.js";
91
+ export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence.js";
88
92
 
89
93
  export {
90
94
  ISegment,
@@ -7,7 +7,7 @@
7
7
  /* eslint-disable import/no-deprecated */
8
8
 
9
9
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
10
- import { assert, unreachableCase } from "@fluidframework/core-utils";
10
+ import { assert } from "@fluidframework/core-utils";
11
11
  import { IEvent } from "@fluidframework/core-interfaces";
12
12
  import {
13
13
  addProperties,
@@ -35,9 +35,8 @@ import {
35
35
  IValueOpEmitter,
36
36
  IValueOperation,
37
37
  IValueType,
38
- IValueTypeOperationValue,
39
38
  SequenceOptions,
40
- } from "./defaultMapInterfaces";
39
+ } from "./defaultMapInterfaces.js";
41
40
  import {
42
41
  CompressedSerializedInterval,
43
42
  IIntervalHelpers,
@@ -54,8 +53,7 @@ import {
54
53
  startReferenceSlidingPreference,
55
54
  sequenceIntervalHelpers,
56
55
  createInterval,
57
- IntervalDeltaOpType,
58
- } from "./intervals";
56
+ } from "./intervals/index.js";
59
57
  import {
60
58
  EndpointIndex,
61
59
  IEndpointIndex,
@@ -64,7 +62,7 @@ import {
64
62
  IntervalIndex,
65
63
  OverlappingIntervalsIndex,
66
64
  createIdIntervalIndex,
67
- } from "./intervalIndex";
65
+ } from "./intervalIndex/index.js";
68
66
 
69
67
  /**
70
68
  * Defines a position and side relative to a character in a sequence.
@@ -115,7 +113,7 @@ export enum Side {
115
113
  After = 1,
116
114
  }
117
115
 
118
- const reservedIntervalIdKey = "intervalId";
116
+ export const reservedIntervalIdKey = "intervalId";
119
117
 
120
118
  export interface ISerializedIntervalCollectionV2 {
121
119
  label: string;
@@ -198,15 +196,18 @@ export function endpointPosAndSide(
198
196
  };
199
197
  }
200
198
 
201
- function toSequencePlace(pos: number | "start" | "end", side: Side): SequencePlace {
202
- return typeof pos === "number" ? { pos, side } : pos;
199
+ export function toSequencePlace(
200
+ pos: number | "start" | "end",
201
+ side: Side | undefined,
202
+ ): SequencePlace {
203
+ return typeof pos === "number" && side !== undefined ? { pos, side } : pos;
203
204
  }
204
205
 
205
- function toOptionalSequencePlace(
206
+ export function toOptionalSequencePlace(
206
207
  pos: number | "start" | "end" | undefined,
207
- side: Side = Side.Before,
208
+ side: Side | undefined,
208
209
  ): SequencePlace | undefined {
209
- return typeof pos === "number" ? { pos, side } : pos;
210
+ return typeof pos === "number" && side !== undefined ? { pos, side } : pos;
210
211
  }
211
212
 
212
213
  export function computeStickinessFromSide(
@@ -580,13 +581,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
580
581
  return { rebasedOp, rebasedLocalOpMetadata: localOpMetadata };
581
582
  };
582
583
 
583
- const applyStashedOp: IValueOperation<IntervalCollection<T>>["applyStashedOp"] = (
584
- collection,
585
- op,
586
- ) => {
587
- return collection.applyStashedOp(op);
588
- };
589
-
590
584
  return new Map<IntervalOpType, IValueOperation<IntervalCollection<T>>>([
591
585
  [
592
586
  IntervalOpType.ADD,
@@ -601,7 +595,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
601
595
  collection.ackAdd(params, local, op, localOpMetadata);
602
596
  },
603
597
  rebase,
604
- applyStashedOp,
605
598
  },
606
599
  ],
607
600
  [
@@ -615,7 +608,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
615
608
  // Deletion of intervals is based on id, so requires no rebasing.
616
609
  return { rebasedOp: op, rebasedLocalOpMetadata: localOpMetadata };
617
610
  },
618
- applyStashedOp,
619
611
  },
620
612
  ],
621
613
  [
@@ -631,7 +623,6 @@ export function makeOpsMap<T extends ISerializableInterval>(): Map<
631
623
  collection.ackChange(params, local, op, localOpMetadata);
632
624
  },
633
625
  rebase,
634
- applyStashedOp,
635
626
  },
636
627
  ],
637
628
  ]);
@@ -734,6 +725,28 @@ export interface IIntervalCollectionEvent<TInterval extends ISerializableInterva
734
725
  op: ISequencedDocumentMessage | undefined,
735
726
  ) => void,
736
727
  ): void;
728
+ /**
729
+ * This event is invoked whenever an interval's endpoints or properties (or both) have changed.
730
+ * `interval` reflects the state of the updated endpoints or properties.
731
+ * `propertyDeltas` is a map-like whose keys contain all values that were changed, and whose
732
+ * values contain all previous values of the property set.
733
+ * This object can be used directly in a call to `changeProperties` to revert the property change if desired.
734
+ * 'previousInterval' contains transient `ReferencePosition`s at the same location as the interval's original
735
+ * endpoints. These references should be used for position information only. In the case of a property change
736
+ * only, this argument should be undefined.
737
+ * `local` reflects whether the change originated locally.
738
+ * `slide` is true if the change is due to sliding on removal of position.
739
+ */
740
+ (
741
+ event: "changed",
742
+ listener: (
743
+ interval: TInterval,
744
+ propertyDeltas: PropertySet,
745
+ previousInterval: TInterval | undefined,
746
+ local: boolean,
747
+ slide: boolean,
748
+ ) => void,
749
+ ): void;
737
750
  }
738
751
 
739
752
  /**
@@ -983,7 +996,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
983
996
  return !!this.localCollection;
984
997
  }
985
998
 
986
- /** @internal */
987
999
  constructor(
988
1000
  private readonly helpers: IIntervalHelpers<TInterval>,
989
1001
  private readonly requiresClient: boolean,
@@ -1102,7 +1114,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1102
1114
  return rebased;
1103
1115
  }
1104
1116
 
1105
- /** @internal */
1106
1117
  public attachGraph(client: Client, label: string) {
1107
1118
  if (this.attached) {
1108
1119
  throw new LoggingError("Only supports one Sequence attach");
@@ -1199,10 +1210,12 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1199
1210
  previousInterval.start.refType = ReferenceType.Transient;
1200
1211
  previousInterval.end.refType = ReferenceType.Transient;
1201
1212
  this.emit("changeInterval", interval, previousInterval, local, op, slide);
1213
+ this.emit("changed", interval, undefined, previousInterval ?? undefined, local, slide);
1202
1214
  previousInterval.start.refType = startRefType;
1203
1215
  previousInterval.end.refType = endRefType;
1204
1216
  } else {
1205
1217
  this.emit("changeInterval", interval, previousInterval, local, op, slide);
1218
+ this.emit("changed", interval, undefined, previousInterval ?? undefined, local, slide);
1206
1219
  }
1207
1220
  }
1208
1221
 
@@ -1280,7 +1293,9 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1280
1293
  endSide,
1281
1294
  };
1282
1295
  const localSeq = this.getNextLocalSeq();
1283
- this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
1296
+ if (this.isCollaborating) {
1297
+ this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
1298
+ }
1284
1299
  // Local ops get submitted to the server. Remote ops have the deserializer run.
1285
1300
  this.emitter.emit("add", undefined, serializedInterval, { localSeq });
1286
1301
  }
@@ -1393,10 +1408,21 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1393
1408
  ...props,
1394
1409
  };
1395
1410
  const localSeq = this.getNextLocalSeq();
1396
- this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
1411
+ if (this.isCollaborating) {
1412
+ this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
1413
+ }
1414
+
1397
1415
  this.emitter.emit("change", undefined, serializedInterval, { localSeq });
1398
1416
  if (deltaProps !== undefined) {
1399
1417
  this.emit("propertyChanged", interval, deltaProps, true, undefined);
1418
+ this.emit(
1419
+ "changed",
1420
+ newInterval ?? interval,
1421
+ deltaProps,
1422
+ newInterval ? interval : undefined,
1423
+ true,
1424
+ false,
1425
+ );
1400
1426
  }
1401
1427
  if (newInterval) {
1402
1428
  this.addPendingChange(id, serializedInterval);
@@ -1478,7 +1504,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1478
1504
  return entries && entries.length !== 0;
1479
1505
  }
1480
1506
 
1481
- /** @internal */
1482
1507
  public ackChange(
1483
1508
  serializedInterval: ISerializedInterval,
1484
1509
  local: boolean,
@@ -1538,8 +1563,8 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1538
1563
  newInterval =
1539
1564
  this.localCollection.changeInterval(
1540
1565
  interval,
1541
- toOptionalSequencePlace(start, serializedInterval.startSide),
1542
- toOptionalSequencePlace(end, serializedInterval.endSide),
1566
+ toOptionalSequencePlace(start, serializedInterval.startSide ?? Side.Before),
1567
+ toOptionalSequencePlace(end, serializedInterval.endSide ?? Side.Before),
1543
1568
  op,
1544
1569
  ) ?? interval;
1545
1570
  }
@@ -1555,6 +1580,7 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1555
1580
  const changedProperties = Object.keys(newProps).length > 0;
1556
1581
  if (changedProperties) {
1557
1582
  this.emit("propertyChanged", interval, deltaProps, local, op);
1583
+ this.emit("changed", interval, deltaProps, undefined, local, false);
1558
1584
  }
1559
1585
  }
1560
1586
  }
@@ -1582,7 +1608,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1582
1608
  * deleted as a result of rebasing. This can occur if the interval applies
1583
1609
  * to a range that no longer exists, and the interval was unable to slide.
1584
1610
  *
1585
- * @internal
1586
1611
  */
1587
1612
  public rebaseLocalInterval(
1588
1613
  opName: string,
@@ -1646,8 +1671,8 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1646
1671
  // updates the local client's state to be consistent with the emitted op.
1647
1672
  this.localCollection?.changeInterval(
1648
1673
  localInterval,
1649
- toOptionalSequencePlace(startRebased, startSide),
1650
- toOptionalSequencePlace(endRebased, endSide),
1674
+ toOptionalSequencePlace(startRebased, startSide ?? Side.Before),
1675
+ toOptionalSequencePlace(endRebased, endSide ?? Side.Before),
1651
1676
  undefined,
1652
1677
  localSeq,
1653
1678
  );
@@ -1656,53 +1681,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1656
1681
  return rebased;
1657
1682
  }
1658
1683
 
1659
- public applyStashedOp(op: IValueTypeOperationValue): IMapMessageLocalMetadata {
1660
- let interval: TInterval | undefined;
1661
- let props: PropertySet | undefined;
1662
- let intervalId: string;
1663
- switch (op.opName) {
1664
- case IntervalDeltaOpType.ADD: {
1665
- assert(op.value.start !== undefined, 0x87a /* start is undefined */);
1666
- assert(op.value.end !== undefined, 0x87b /* end is undefined */);
1667
- interval = this.add({
1668
- start: op.value.start,
1669
- end: op.value.end,
1670
- props: op.value.properties,
1671
- });
1672
- const metadata = {
1673
- localSeq: this.getNextLocalSeq(),
1674
- };
1675
- if (interval !== undefined) {
1676
- this.localSeqToSerializedInterval.set(metadata.localSeq, interval.serialize());
1677
- }
1678
- return metadata;
1679
- }
1680
- case IntervalDeltaOpType.DELETE:
1681
- this.removeIntervalById(op.value.properties?.intervalId);
1682
- return {
1683
- localSeq: this.getNextLocalSeq(),
1684
- };
1685
- case IntervalDeltaOpType.CHANGE: {
1686
- assert(op.value.properties !== undefined, 0x87c /* properties is undefined */);
1687
- ({ intervalId, ...props } = op.value.properties);
1688
- interval = this.change(intervalId, {
1689
- start: op.value.start,
1690
- end: op.value.end,
1691
- props,
1692
- });
1693
- const metadata = {
1694
- localSeq: this.getNextLocalSeq(),
1695
- };
1696
- if (interval !== undefined) {
1697
- this.localSeqToSerializedInterval.set(metadata.localSeq, interval.serialize());
1698
- }
1699
- return metadata;
1700
- }
1701
- default:
1702
- unreachableCase(op.opName, `Unknown interval op type: ${op.opName}`);
1703
- }
1704
- }
1705
-
1706
1684
  private getSlideToSegment(
1707
1685
  lref: LocalReferencePosition,
1708
1686
  ): { segment: ISegment | undefined; offset: number | undefined } | undefined {
@@ -1821,7 +1799,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1821
1799
  }
1822
1800
  }
1823
1801
 
1824
- /** @internal */
1825
1802
  public ackAdd(
1826
1803
  serializedInterval: ISerializedInterval,
1827
1804
  local: boolean,
@@ -1867,7 +1844,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1867
1844
  return interval;
1868
1845
  }
1869
1846
 
1870
- /** @internal */
1871
1847
  public ackDelete(
1872
1848
  serializedInterval: ISerializedInterval,
1873
1849
  local: boolean,
@@ -1891,9 +1867,6 @@ export class IntervalCollection<TInterval extends ISerializableInterval>
1891
1867
  }
1892
1868
  }
1893
1869
 
1894
- /**
1895
- * @internal
1896
- */
1897
1870
  public serializeInternal(): ISerializedIntervalCollectionV2 {
1898
1871
  if (!this.localCollection) {
1899
1872
  throw new LoggingError("attachSequence must be called");
@@ -11,10 +11,10 @@ import {
11
11
  IntervalType,
12
12
  SequenceInterval,
13
13
  sequenceIntervalHelpers,
14
- } from "../intervals";
15
- import { SharedString } from "../sharedString";
16
- import { IntervalIndex } from "./intervalIndex";
17
- import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils";
14
+ } from "../intervals/index.js";
15
+ import { SharedString } from "../sharedString.js";
16
+ import { IntervalIndex } from "./intervalIndex.js";
17
+ import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils.js";
18
18
 
19
19
  /**
20
20
  * Collection of intervals.
@@ -11,9 +11,9 @@ import {
11
11
  IntervalType,
12
12
  SequenceInterval,
13
13
  sequenceIntervalHelpers,
14
- } from "../intervals";
15
- import { SharedString } from "../sharedString";
16
- import { IntervalIndex } from "./intervalIndex";
14
+ } from "../intervals/index.js";
15
+ import { SharedString } from "../sharedString.js";
16
+ import { IntervalIndex } from "./intervalIndex.js";
17
17
 
18
18
  /**
19
19
  * @internal
@@ -4,10 +4,9 @@
4
4
  */
5
5
 
6
6
  import { assert } from "@fluidframework/core-utils";
7
- import { ISerializableInterval } from "../intervals";
8
- import { IntervalIndex } from "./intervalIndex";
9
-
10
- const reservedIntervalIdKey = "intervalId";
7
+ import { ISerializableInterval } from "../intervals/index.js";
8
+ import { reservedIntervalIdKey } from "../intervalCollection.js";
9
+ import { IntervalIndex } from "./intervalIndex.js";
11
10
 
12
11
  /**
13
12
  * @internal
@@ -3,23 +3,23 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- export { IntervalIndex } from "./intervalIndex";
7
- export { IIdIntervalIndex, createIdIntervalIndex } from "./idIntervalIndex";
8
- export { IEndpointIndex, createEndpointIndex, EndpointIndex } from "./endpointIndex";
6
+ export { IntervalIndex } from "./intervalIndex.js";
7
+ export { IIdIntervalIndex, createIdIntervalIndex } from "./idIntervalIndex.js";
8
+ export { IEndpointIndex, createEndpointIndex, EndpointIndex } from "./endpointIndex.js";
9
9
  export {
10
10
  IEndpointInRangeIndex,
11
11
  createEndpointInRangeIndex,
12
12
  EndpointInRangeIndex,
13
- } from "./endpointInRangeIndex";
13
+ } from "./endpointInRangeIndex.js";
14
14
  export {
15
15
  IStartpointInRangeIndex,
16
16
  createStartpointInRangeIndex,
17
17
  StartpointInRangeIndex,
18
- } from "./startpointInRangeIndex";
19
- export { SequenceIntervalIndexes } from "./sequenceIntervalIndexes";
18
+ } from "./startpointInRangeIndex.js";
19
+ export { SequenceIntervalIndexes } from "./sequenceIntervalIndexes.js";
20
20
  export {
21
21
  IOverlappingIntervalsIndex,
22
22
  createOverlappingIntervalsIndex,
23
23
  OverlappingIntervalsIndex,
24
- } from "./overlappingIntervalsIndex";
25
- export { createOverlappingSequenceIntervalsIndex } from "./overlappingSequenceIntervalsIndex";
24
+ } from "./overlappingIntervalsIndex.js";
25
+ export { createOverlappingSequenceIntervalsIndex } from "./overlappingSequenceIntervalsIndex.js";
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ISerializableInterval } from "../intervals";
6
+ import { ISerializableInterval } from "../intervals/index.js";
7
7
 
8
8
  /**
9
9
  * Collection of intervals.
@@ -11,14 +11,14 @@ import {
11
11
  ISerializableInterval,
12
12
  sequenceIntervalHelpers,
13
13
  SequenceInterval,
14
- } from "../intervals";
15
- import { IntervalNode, IntervalTree } from "../intervalTree";
16
- import { SharedString } from "../sharedString";
17
- import { SequencePlace, endpointPosAndSide } from "../intervalCollection";
18
- import { IntervalIndex } from "./intervalIndex";
14
+ } from "../intervals/index.js";
15
+ import { IntervalNode, IntervalTree } from "../intervalTree.js";
16
+ import { SharedString } from "../sharedString.js";
17
+ import { SequencePlace, endpointPosAndSide } from "../intervalCollection.js";
18
+ import { IntervalIndex } from "./intervalIndex.js";
19
19
 
20
20
  /**
21
- * @internal
21
+ * @alpha
22
22
  */
23
23
  export interface IOverlappingIntervalsIndex<TInterval extends ISerializableInterval>
24
24
  extends IntervalIndex<TInterval> {
@@ -39,9 +39,6 @@ export interface IOverlappingIntervalsIndex<TInterval extends ISerializableInter
39
39
  ): void;
40
40
  }
41
41
 
42
- /**
43
- * @public
44
- */
45
42
  export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
46
43
  implements IOverlappingIntervalsIndex<TInterval>
47
44
  {
@@ -150,7 +147,9 @@ export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
150
147
  if (
151
148
  startPos === undefined ||
152
149
  endPos === undefined ||
153
- endPos < startPos ||
150
+ (typeof startPos === "number" && typeof endPos === "number" && endPos < startPos) ||
151
+ (startPos === "end" && endPos !== "end") ||
152
+ (startPos !== "start" && endPos === "start") ||
154
153
  this.intervalTree.intervals.isEmpty()
155
154
  ) {
156
155
  return [];
@@ -177,7 +176,7 @@ export class OverlappingIntervalsIndex<TInterval extends ISerializableInterval>
177
176
  }
178
177
 
179
178
  /**
180
- * @internal
179
+ * @alpha
181
180
  */
182
181
  export function createOverlappingIntervalsIndex(
183
182
  sharedString: SharedString,
@@ -16,10 +16,10 @@ import {
16
16
  IntervalType,
17
17
  SequenceInterval,
18
18
  createPositionReferenceFromSegoff,
19
- } from "../intervals";
20
- import { SharedString } from "../sharedString";
21
- import { SequenceIntervalIndexes } from "./sequenceIntervalIndexes";
22
- import { OverlappingIntervalsIndex } from "./overlappingIntervalsIndex";
19
+ } from "../intervals/index.js";
20
+ import { SharedString } from "../sharedString.js";
21
+ import { SequenceIntervalIndexes } from "./sequenceIntervalIndexes.js";
22
+ import { OverlappingIntervalsIndex } from "./overlappingIntervalsIndex.js";
23
23
 
24
24
  /**
25
25
  * @public
@@ -4,8 +4,8 @@
4
4
  */
5
5
 
6
6
  import { ISegment } from "@fluidframework/merge-tree";
7
- import { SequenceInterval } from "../intervals";
8
- import { IOverlappingIntervalsIndex } from "./overlappingIntervalsIndex";
7
+ import { SequenceInterval } from "../intervals/index.js";
8
+ import { IOverlappingIntervalsIndex } from "./overlappingIntervalsIndex.js";
9
9
 
10
10
  /**
11
11
  * This namespace contains specialiazations of indexes which support spatial queries
@@ -11,10 +11,10 @@ import {
11
11
  IntervalType,
12
12
  SequenceInterval,
13
13
  sequenceIntervalHelpers,
14
- } from "../intervals";
15
- import { SharedString } from "../sharedString";
16
- import { IntervalIndex } from "./intervalIndex";
17
- import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils";
14
+ } from "../intervals/index.js";
15
+ import { SharedString } from "../sharedString.js";
16
+ import { IntervalIndex } from "./intervalIndex.js";
17
+ import { HasComparisonOverride, compareOverrideables, forceCompare } from "./intervalIndexUtils.js";
18
18
 
19
19
  /**
20
20
  * Collection of intervals.
@@ -10,7 +10,7 @@ import {
10
10
  RedBlackTree,
11
11
  RBNodeActions,
12
12
  } from "@fluidframework/merge-tree";
13
- import { IInterval } from "./intervals";
13
+ import { IInterval } from "./intervals/index.js";
14
14
 
15
15
  export interface AugmentedIntervalNode {
16
16
  minmax: IInterval;
@@ -16,11 +16,11 @@ export {
16
16
  CompressedSerializedInterval,
17
17
  endReferenceSlidingPreference,
18
18
  startReferenceSlidingPreference,
19
- } from "./intervalUtils";
20
- export { Interval, createInterval, intervalHelpers } from "./interval";
19
+ } from "./intervalUtils.js";
20
+ export { Interval, createInterval, intervalHelpers } from "./interval.js";
21
21
  export {
22
22
  SequenceInterval,
23
23
  createSequenceInterval,
24
24
  createPositionReferenceFromSegoff,
25
25
  sequenceIntervalHelpers,
26
- } from "./sequenceInterval";
26
+ } from "./sequenceInterval.js";
@@ -13,10 +13,8 @@ import {
13
13
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
14
14
  import { assert } from "@fluidframework/core-utils";
15
15
  import { UsageError } from "@fluidframework/telemetry-utils";
16
- import { SequencePlace } from "../intervalCollection";
17
- import { IIntervalHelpers, ISerializableInterval, ISerializedInterval } from "./intervalUtils";
18
-
19
- const reservedIntervalIdKey = "intervalId";
16
+ import { SequencePlace, reservedIntervalIdKey } from "../intervalCollection.js";
17
+ import { IIntervalHelpers, ISerializableInterval, ISerializedInterval } from "./intervalUtils.js";
20
18
 
21
19
  /**
22
20
  * Serializable interval whose endpoints are plain-old numbers.
@@ -12,7 +12,7 @@ import {
12
12
  SlidingPreference,
13
13
  } from "@fluidframework/merge-tree";
14
14
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
15
- import { SequencePlace, Side } from "../intervalCollection";
15
+ import { SequencePlace, Side } from "../intervalCollection.js";
16
16
 
17
17
  /**
18
18
  * Basic interval abstraction
@@ -81,7 +81,7 @@ export type IntervalDeltaOpType = (typeof IntervalDeltaOpType)[keyof typeof Inte
81
81
 
82
82
  /**
83
83
  * Values are used in revertibles.
84
- * @internal
84
+ * @alpha
85
85
  */
86
86
  export const IntervalOpType = {
87
87
  ...IntervalDeltaOpType,
@@ -89,7 +89,7 @@ export const IntervalOpType = {
89
89
  POSITION_REMOVE: "positionRemove",
90
90
  } as const;
91
91
  /**
92
- * @internal
92
+ * @alpha
93
93
  */
94
94
  export type IntervalOpType = (typeof IntervalOpType)[keyof typeof IntervalOpType];
95
95
 
@@ -31,8 +31,9 @@ import {
31
31
  Side,
32
32
  computeStickinessFromSide,
33
33
  endpointPosAndSide,
34
+ reservedIntervalIdKey,
34
35
  sidesFromStickiness,
35
- } from "../intervalCollection";
36
+ } from "../intervalCollection.js";
36
37
  import {
37
38
  IIntervalHelpers,
38
39
  ISerializableInterval,
@@ -41,9 +42,7 @@ import {
41
42
  IntervalType,
42
43
  endReferenceSlidingPreference,
43
44
  startReferenceSlidingPreference,
44
- } from "./intervalUtils";
45
-
46
- const reservedIntervalIdKey = "intervalId";
45
+ } from "./intervalUtils.js";
47
46
 
48
47
  function compareSides(sideA: Side, sideB: Side): number {
49
48
  if (sideA === sideB) {
@@ -10,8 +10,8 @@ import {
10
10
  ISerializedValue,
11
11
  IValueOperation,
12
12
  IValueType,
13
- } from "./defaultMapInterfaces";
14
- import { IntervalOpType } from "./intervals";
13
+ } from "./defaultMapInterfaces.js";
14
+ import { IntervalOpType } from "./intervals/index.js";
15
15
 
16
16
  /**
17
17
  * A local value to be stored in a container type DDS.