@fluidframework/sequence 2.0.0-dev-rc.1.0.0.232845 → 2.0.0-dev-rc.2.0.0.246488

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 (388) hide show
  1. package/.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 +14 -27
  8. package/dist/{localValues.d.ts → IntervalCollectionValues.d.ts} +13 -12
  9. package/dist/IntervalCollectionValues.d.ts.map +1 -0
  10. package/dist/{localValues.js → IntervalCollectionValues.js} +4 -4
  11. package/dist/IntervalCollectionValues.js.map +1 -0
  12. package/dist/index.d.ts +11 -11
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +42 -42
  15. package/dist/index.js.map +1 -1
  16. package/dist/intervalCollection.d.ts +15 -22
  17. package/dist/intervalCollection.d.ts.map +1 -1
  18. package/dist/intervalCollection.js +53 -108
  19. package/dist/intervalCollection.js.map +1 -1
  20. package/dist/{defaultMap.d.ts → intervalCollectionMap.d.ts} +18 -57
  21. package/dist/intervalCollectionMap.d.ts.map +1 -0
  22. package/dist/{defaultMap.js → intervalCollectionMap.js} +77 -129
  23. package/dist/intervalCollectionMap.js.map +1 -0
  24. package/{lib/defaultMapInterfaces.d.mts → dist/intervalCollectionMapInterfaces.d.ts} +16 -22
  25. package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -0
  26. package/dist/{defaultMapInterfaces.js → intervalCollectionMapInterfaces.js} +1 -1
  27. package/dist/intervalCollectionMapInterfaces.js.map +1 -0
  28. package/dist/intervalIndex/endpointInRangeIndex.d.ts +3 -3
  29. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  30. package/dist/intervalIndex/endpointInRangeIndex.js +9 -9
  31. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  32. package/dist/intervalIndex/endpointIndex.d.ts +3 -3
  33. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  34. package/dist/intervalIndex/endpointIndex.js +5 -5
  35. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  36. package/dist/intervalIndex/idIntervalIndex.d.ts +2 -2
  37. package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -1
  38. package/dist/intervalIndex/idIntervalIndex.js +2 -2
  39. package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
  40. package/dist/intervalIndex/index.d.ts +8 -8
  41. package/dist/intervalIndex/index.d.ts.map +1 -1
  42. package/dist/intervalIndex/index.js +16 -16
  43. package/dist/intervalIndex/index.js.map +1 -1
  44. package/dist/intervalIndex/intervalIndex.d.ts +1 -1
  45. package/dist/intervalIndex/intervalIndex.d.ts.map +1 -1
  46. package/dist/intervalIndex/intervalIndex.js.map +1 -1
  47. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +7 -10
  48. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  49. package/dist/intervalIndex/overlappingIntervalsIndex.js +12 -14
  50. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  51. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +2 -2
  52. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
  53. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +8 -8
  54. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  55. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
  56. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  57. package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  58. package/dist/intervalIndex/startpointInRangeIndex.d.ts +3 -3
  59. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  60. package/dist/intervalIndex/startpointInRangeIndex.js +9 -9
  61. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  62. package/dist/intervalTree.d.ts +1 -1
  63. package/dist/intervalTree.d.ts.map +1 -1
  64. package/dist/intervalTree.js.map +1 -1
  65. package/dist/intervals/index.d.ts +3 -3
  66. package/dist/intervals/index.d.ts.map +1 -1
  67. package/dist/intervals/index.js +16 -16
  68. package/dist/intervals/index.js.map +1 -1
  69. package/dist/intervals/interval.d.ts +2 -2
  70. package/dist/intervals/interval.d.ts.map +1 -1
  71. package/dist/intervals/interval.js +3 -3
  72. package/dist/intervals/interval.js.map +1 -1
  73. package/dist/intervals/intervalUtils.d.ts +3 -3
  74. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  75. package/dist/intervals/intervalUtils.js +1 -1
  76. package/dist/intervals/intervalUtils.js.map +1 -1
  77. package/dist/intervals/sequenceInterval.d.ts +2 -2
  78. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  79. package/dist/intervals/sequenceInterval.js +22 -23
  80. package/dist/intervals/sequenceInterval.js.map +1 -1
  81. package/dist/package.json +3 -0
  82. package/dist/packageVersion.d.ts +1 -1
  83. package/dist/packageVersion.js +1 -1
  84. package/dist/packageVersion.js.map +1 -1
  85. package/dist/revertibles.d.ts +12 -12
  86. package/dist/revertibles.d.ts.map +1 -1
  87. package/dist/revertibles.js +26 -26
  88. package/dist/revertibles.js.map +1 -1
  89. package/dist/sequence-alpha.d.ts +149 -13
  90. package/dist/sequence-beta.d.ts +2 -0
  91. package/dist/sequence-public.d.ts +2 -0
  92. package/dist/sequence-untrimmed.d.ts +50 -14
  93. package/dist/sequence.d.ts +38 -5
  94. package/dist/sequence.d.ts.map +1 -1
  95. package/dist/sequence.js +79 -35
  96. package/dist/sequence.js.map +1 -1
  97. package/dist/sequenceFactory.d.ts +4 -1
  98. package/dist/sequenceFactory.d.ts.map +1 -1
  99. package/dist/sequenceFactory.js +8 -5
  100. package/dist/sequenceFactory.js.map +1 -1
  101. package/dist/sharedIntervalCollection.d.ts +2 -2
  102. package/dist/sharedIntervalCollection.d.ts.map +1 -1
  103. package/dist/sharedIntervalCollection.js +5 -5
  104. package/dist/sharedIntervalCollection.js.map +1 -1
  105. package/dist/sharedSequence.d.ts +1 -1
  106. package/dist/sharedSequence.d.ts.map +1 -1
  107. package/dist/sharedSequence.js +2 -2
  108. package/dist/sharedSequence.js.map +1 -1
  109. package/dist/sharedString.d.ts +2 -2
  110. package/dist/sharedString.d.ts.map +1 -1
  111. package/dist/sharedString.js +6 -6
  112. package/dist/sharedString.js.map +1 -1
  113. package/dist/tsdoc-metadata.json +1 -1
  114. package/lib/{localValues.d.mts → IntervalCollectionValues.d.ts} +13 -12
  115. package/lib/IntervalCollectionValues.d.ts.map +1 -0
  116. package/lib/{localValues.mjs → IntervalCollectionValues.js} +2 -2
  117. package/lib/IntervalCollectionValues.js.map +1 -0
  118. package/lib/{index.d.mts → index.d.ts} +24 -12
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/{index.mjs → index.js} +11 -11
  121. package/lib/index.js.map +1 -0
  122. package/lib/{intervalCollection.d.mts → intervalCollection.d.ts} +16 -23
  123. package/lib/intervalCollection.d.ts.map +1 -0
  124. package/lib/{intervalCollection.mjs → intervalCollection.js} +17 -72
  125. package/lib/intervalCollection.js.map +1 -0
  126. package/lib/{defaultMap.d.mts → intervalCollectionMap.d.ts} +18 -57
  127. package/lib/intervalCollectionMap.d.ts.map +1 -0
  128. package/lib/{defaultMap.mjs → intervalCollectionMap.js} +75 -127
  129. package/lib/intervalCollectionMap.js.map +1 -0
  130. package/{dist/defaultMapInterfaces.d.ts → lib/intervalCollectionMapInterfaces.d.ts} +16 -22
  131. package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -0
  132. package/lib/{intervalIndex/sequenceIntervalIndexes.mjs → intervalCollectionMapInterfaces.js} +1 -1
  133. package/lib/intervalCollectionMapInterfaces.js.map +1 -0
  134. package/lib/intervalIndex/{endpointInRangeIndex.d.mts → endpointInRangeIndex.d.ts} +4 -4
  135. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -0
  136. package/lib/intervalIndex/{endpointInRangeIndex.mjs → endpointInRangeIndex.js} +3 -3
  137. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -0
  138. package/lib/intervalIndex/{endpointIndex.d.mts → endpointIndex.d.ts} +4 -4
  139. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -0
  140. package/lib/intervalIndex/{endpointIndex.mjs → endpointIndex.js} +2 -2
  141. package/lib/intervalIndex/endpointIndex.js.map +1 -0
  142. package/lib/intervalIndex/{idIntervalIndex.d.mts → idIntervalIndex.d.ts} +3 -3
  143. package/lib/intervalIndex/idIntervalIndex.d.ts.map +1 -0
  144. package/lib/intervalIndex/{idIntervalIndex.mjs → idIntervalIndex.js} +2 -2
  145. package/lib/intervalIndex/idIntervalIndex.js.map +1 -0
  146. package/lib/intervalIndex/{index.d.mts → index.d.ts} +9 -9
  147. package/lib/intervalIndex/index.d.ts.map +1 -0
  148. package/lib/intervalIndex/{index.mjs → index.js} +7 -7
  149. package/lib/intervalIndex/index.js.map +1 -0
  150. package/lib/intervalIndex/{intervalIndex.d.mts → intervalIndex.d.ts} +2 -2
  151. package/lib/intervalIndex/intervalIndex.d.ts.map +1 -0
  152. package/lib/intervalIndex/{intervalIndex.mjs → intervalIndex.js} +1 -1
  153. package/lib/intervalIndex/intervalIndex.js.map +1 -0
  154. package/lib/intervalIndex/{intervalIndexUtils.d.mts → intervalIndexUtils.d.ts} +1 -1
  155. package/lib/intervalIndex/intervalIndexUtils.d.ts.map +1 -0
  156. package/lib/intervalIndex/{intervalIndexUtils.mjs → intervalIndexUtils.js} +1 -1
  157. package/lib/intervalIndex/intervalIndexUtils.js.map +1 -0
  158. package/lib/intervalIndex/{overlappingIntervalsIndex.d.mts → overlappingIntervalsIndex.d.ts} +8 -11
  159. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -0
  160. package/lib/intervalIndex/{overlappingIntervalsIndex.mjs → overlappingIntervalsIndex.js} +8 -10
  161. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -0
  162. package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.d.mts → overlappingSequenceIntervalsIndex.d.ts} +3 -3
  163. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -0
  164. package/lib/intervalIndex/{overlappingSequenceIntervalsIndex.mjs → overlappingSequenceIntervalsIndex.js} +3 -3
  165. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -0
  166. package/lib/intervalIndex/{sequenceIntervalIndexes.d.mts → sequenceIntervalIndexes.d.ts} +3 -3
  167. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -0
  168. package/lib/{defaultMapInterfaces.mjs → intervalIndex/sequenceIntervalIndexes.js} +1 -1
  169. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -0
  170. package/lib/intervalIndex/{startpointInRangeIndex.d.mts → startpointInRangeIndex.d.ts} +4 -4
  171. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -0
  172. package/lib/intervalIndex/{startpointInRangeIndex.mjs → startpointInRangeIndex.js} +3 -3
  173. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -0
  174. package/lib/{intervalTree.d.mts → intervalTree.d.ts} +2 -2
  175. package/lib/intervalTree.d.ts.map +1 -0
  176. package/lib/{intervalTree.mjs → intervalTree.js} +1 -1
  177. package/lib/intervalTree.js.map +1 -0
  178. package/lib/intervals/{index.d.mts → index.d.ts} +4 -4
  179. package/lib/intervals/index.d.ts.map +1 -0
  180. package/lib/intervals/{index.mjs → index.js} +4 -4
  181. package/lib/intervals/index.js.map +1 -0
  182. package/lib/intervals/{interval.d.mts → interval.d.ts} +3 -3
  183. package/lib/intervals/{interval.d.mts.map → interval.d.ts.map} +1 -1
  184. package/lib/intervals/{interval.mjs → interval.js} +2 -2
  185. package/lib/intervals/interval.js.map +1 -0
  186. package/lib/intervals/{intervalUtils.d.mts → intervalUtils.d.ts} +4 -4
  187. package/lib/intervals/intervalUtils.d.ts.map +1 -0
  188. package/lib/intervals/{intervalUtils.mjs → intervalUtils.js} +3 -2
  189. package/lib/intervals/intervalUtils.js.map +1 -0
  190. package/lib/intervals/{sequenceInterval.d.mts → sequenceInterval.d.ts} +3 -3
  191. package/lib/intervals/sequenceInterval.d.ts.map +1 -0
  192. package/lib/intervals/{sequenceInterval.mjs → sequenceInterval.js} +5 -4
  193. package/lib/intervals/{sequenceInterval.mjs.map → sequenceInterval.js.map} +1 -1
  194. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  195. package/lib/packageVersion.d.ts.map +1 -0
  196. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  197. package/lib/packageVersion.js.map +1 -0
  198. package/lib/{revertibles.d.mts → revertibles.d.ts} +13 -13
  199. package/lib/revertibles.d.ts.map +1 -0
  200. package/lib/{revertibles.mjs → revertibles.js} +11 -10
  201. package/lib/revertibles.js.map +1 -0
  202. package/lib/{sequence-alpha.d.mts → sequence-alpha.d.ts} +162 -13
  203. package/lib/{sequence-beta.d.mts → sequence-beta.d.ts} +15 -0
  204. package/lib/{sequence-public.d.mts → sequence-public.d.ts} +15 -0
  205. package/lib/{sequence-untrimmed.d.mts → sequence-untrimmed.d.ts} +63 -14
  206. package/lib/{sequence.d.mts → sequence.d.ts} +39 -6
  207. package/lib/sequence.d.ts.map +1 -0
  208. package/lib/{sequence.mjs → sequence.js} +78 -34
  209. package/lib/sequence.js.map +1 -0
  210. package/lib/{sequenceDeltaEvent.d.mts → sequenceDeltaEvent.d.ts} +1 -1
  211. package/lib/sequenceDeltaEvent.d.ts.map +1 -0
  212. package/lib/{sequenceDeltaEvent.mjs → sequenceDeltaEvent.js} +1 -1
  213. package/lib/sequenceDeltaEvent.js.map +1 -0
  214. package/lib/{sequenceFactory.d.mts → sequenceFactory.d.ts} +5 -2
  215. package/lib/sequenceFactory.d.ts.map +1 -0
  216. package/lib/{sequenceFactory.mjs → sequenceFactory.js} +6 -3
  217. package/lib/sequenceFactory.js.map +1 -0
  218. package/lib/{sharedIntervalCollection.d.mts → sharedIntervalCollection.d.ts} +3 -3
  219. package/lib/sharedIntervalCollection.d.ts.map +1 -0
  220. package/lib/{sharedIntervalCollection.mjs → sharedIntervalCollection.js} +5 -5
  221. package/lib/sharedIntervalCollection.js.map +1 -0
  222. package/lib/{sharedSequence.d.mts → sharedSequence.d.ts} +2 -2
  223. package/lib/sharedSequence.d.ts.map +1 -0
  224. package/lib/{sharedSequence.mjs → sharedSequence.js} +2 -2
  225. package/lib/sharedSequence.js.map +1 -0
  226. package/lib/{sharedString.d.mts → sharedString.d.ts} +3 -3
  227. package/lib/sharedString.d.ts.map +1 -0
  228. package/lib/{sharedString.mjs → sharedString.js} +3 -3
  229. package/lib/sharedString.js.map +1 -0
  230. package/lib/test/collections.intervalTree.js +73 -0
  231. package/lib/test/collections.intervalTree.js.map +1 -0
  232. package/lib/test/createSnapshotFiles.js +15 -0
  233. package/lib/test/createSnapshotFiles.js.map +1 -0
  234. package/lib/test/dirname.cjs +16 -0
  235. package/lib/test/dirname.cjs.map +1 -0
  236. package/lib/test/endpointInRangeIndex.spec.js +182 -0
  237. package/lib/test/endpointInRangeIndex.spec.js.map +1 -0
  238. package/lib/test/fuzz/fuzzUtils.js +362 -0
  239. package/lib/test/fuzz/fuzzUtils.js.map +1 -0
  240. package/lib/test/fuzz/intervalCollection.fuzz.spec.js +87 -0
  241. package/lib/test/fuzz/intervalCollection.fuzz.spec.js.map +1 -0
  242. package/lib/test/fuzz/intervalRevertibles.fuzz.spec.js +128 -0
  243. package/lib/test/fuzz/intervalRevertibles.fuzz.spec.js.map +1 -0
  244. package/lib/test/fuzz/sharedString.fuzz.spec.js +91 -0
  245. package/lib/test/fuzz/sharedString.fuzz.spec.js.map +1 -0
  246. package/lib/test/generateSharedStrings.js +138 -0
  247. package/lib/test/generateSharedStrings.js.map +1 -0
  248. package/lib/test/intervalCollection.detached.spec.js +128 -0
  249. package/lib/test/intervalCollection.detached.spec.js.map +1 -0
  250. package/lib/test/intervalCollection.events.spec.js +491 -0
  251. package/lib/test/intervalCollection.events.spec.js.map +1 -0
  252. package/lib/test/intervalCollection.perf.spec.js +88 -0
  253. package/lib/test/intervalCollection.perf.spec.js.map +1 -0
  254. package/lib/test/intervalCollection.snapshot.spec.js +171 -0
  255. package/lib/test/intervalCollection.snapshot.spec.js.map +1 -0
  256. package/lib/test/intervalCollection.spec.js +1660 -0
  257. package/lib/test/intervalCollection.spec.js.map +1 -0
  258. package/lib/test/intervalIndexTestUtils.js +49 -0
  259. package/lib/test/intervalIndexTestUtils.js.map +1 -0
  260. package/lib/test/intervalRebasing.spec.js +589 -0
  261. package/lib/test/intervalRebasing.spec.js.map +1 -0
  262. package/lib/test/intervalStashedOps.spec.js +142 -0
  263. package/lib/test/intervalStashedOps.spec.js.map +1 -0
  264. package/lib/test/intervalTestUtils.js +81 -0
  265. package/lib/test/intervalTestUtils.js.map +1 -0
  266. package/lib/test/marshalling.spec.js +55 -0
  267. package/lib/test/marshalling.spec.js.map +1 -0
  268. package/lib/test/memory/sharedSequence.spec.js +82 -0
  269. package/lib/test/memory/sharedSequence.spec.js.map +1 -0
  270. package/lib/test/memory/sharedString.spec.js +134 -0
  271. package/lib/test/memory/sharedString.spec.js.map +1 -0
  272. package/lib/test/overlappingSequenceIntervalsIndex.spec.js +348 -0
  273. package/lib/test/overlappingSequenceIntervalsIndex.spec.js.map +1 -0
  274. package/lib/test/partialLoad.spec.js +211 -0
  275. package/lib/test/partialLoad.spec.js.map +1 -0
  276. package/lib/test/rebasing.spec.js +81 -0
  277. package/lib/test/rebasing.spec.js.map +1 -0
  278. package/lib/test/reentrancy.spec.js +174 -0
  279. package/lib/test/reentrancy.spec.js.map +1 -0
  280. package/lib/test/revertibles.spec.js +1019 -0
  281. package/lib/test/revertibles.spec.js.map +1 -0
  282. package/lib/test/sequenceDeltaEvent.spec.js +2144 -0
  283. package/lib/test/sequenceDeltaEvent.spec.js.map +1 -0
  284. package/lib/test/sharedIntervalCollection.spec.js +159 -0
  285. package/lib/test/sharedIntervalCollection.spec.js.map +1 -0
  286. package/lib/test/sharedString.spec.js +532 -0
  287. package/lib/test/sharedString.spec.js.map +1 -0
  288. package/lib/test/snapshotEmptyProps.spec.js +45 -0
  289. package/lib/test/snapshotEmptyProps.spec.js.map +1 -0
  290. package/lib/test/snapshotVersion.spec.js +149 -0
  291. package/lib/test/snapshotVersion.spec.js.map +1 -0
  292. package/lib/test/startpointInRangeIndex.spec.js +182 -0
  293. package/lib/test/startpointInRangeIndex.spec.js.map +1 -0
  294. package/lib/test/subSequence.spec.js +92 -0
  295. package/lib/test/subSequence.spec.js.map +1 -0
  296. package/lib/test/types/validateSequencePrevious.generated.js +162 -0
  297. package/lib/test/types/validateSequencePrevious.generated.js.map +1 -0
  298. package/lib/test/v1IntervalCollectionHelpers.js +93 -0
  299. package/lib/test/v1IntervalCollectionHelpers.js.map +1 -0
  300. package/package.json +64 -60
  301. package/src/{localValues.ts → IntervalCollectionValues.ts} +23 -17
  302. package/src/index.ts +15 -11
  303. package/src/intervalCollection.ts +37 -104
  304. package/src/{defaultMap.ts → intervalCollectionMap.ts} +120 -211
  305. package/src/{defaultMapInterfaces.ts → intervalCollectionMapInterfaces.ts} +24 -23
  306. package/src/intervalIndex/endpointInRangeIndex.ts +5 -4
  307. package/src/intervalIndex/endpointIndex.ts +4 -3
  308. package/src/intervalIndex/idIntervalIndex.ts +3 -4
  309. package/src/intervalIndex/index.ts +8 -8
  310. package/src/intervalIndex/intervalIndex.ts +1 -1
  311. package/src/intervalIndex/overlappingIntervalsIndex.ts +11 -11
  312. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +5 -4
  313. package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -2
  314. package/src/intervalIndex/startpointInRangeIndex.ts +5 -4
  315. package/src/intervalTree.ts +1 -1
  316. package/src/intervals/index.ts +3 -3
  317. package/src/intervals/interval.ts +3 -4
  318. package/src/intervals/intervalUtils.ts +3 -3
  319. package/src/intervals/sequenceInterval.ts +3 -4
  320. package/src/packageVersion.ts +1 -1
  321. package/src/revertibles.ts +13 -13
  322. package/src/sequence.ts +101 -55
  323. package/src/sequenceFactory.ts +5 -2
  324. package/src/sharedIntervalCollection.ts +7 -11
  325. package/src/sharedSequence.ts +1 -1
  326. package/src/sharedString.ts +2 -2
  327. package/tsconfig.cjs.json +7 -0
  328. package/tsconfig.json +2 -5
  329. package/dist/defaultMap.d.ts.map +0 -1
  330. package/dist/defaultMap.js.map +0 -1
  331. package/dist/defaultMapInterfaces.d.ts.map +0 -1
  332. package/dist/defaultMapInterfaces.js.map +0 -1
  333. package/dist/localValues.d.ts.map +0 -1
  334. package/dist/localValues.js.map +0 -1
  335. package/lib/defaultMap.d.mts.map +0 -1
  336. package/lib/defaultMap.mjs.map +0 -1
  337. package/lib/defaultMapInterfaces.d.mts.map +0 -1
  338. package/lib/defaultMapInterfaces.mjs.map +0 -1
  339. package/lib/index.d.mts.map +0 -1
  340. package/lib/index.mjs.map +0 -1
  341. package/lib/intervalCollection.d.mts.map +0 -1
  342. package/lib/intervalCollection.mjs.map +0 -1
  343. package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +0 -1
  344. package/lib/intervalIndex/endpointInRangeIndex.mjs.map +0 -1
  345. package/lib/intervalIndex/endpointIndex.d.mts.map +0 -1
  346. package/lib/intervalIndex/endpointIndex.mjs.map +0 -1
  347. package/lib/intervalIndex/idIntervalIndex.d.mts.map +0 -1
  348. package/lib/intervalIndex/idIntervalIndex.mjs.map +0 -1
  349. package/lib/intervalIndex/index.d.mts.map +0 -1
  350. package/lib/intervalIndex/index.mjs.map +0 -1
  351. package/lib/intervalIndex/intervalIndex.d.mts.map +0 -1
  352. package/lib/intervalIndex/intervalIndex.mjs.map +0 -1
  353. package/lib/intervalIndex/intervalIndexUtils.d.mts.map +0 -1
  354. package/lib/intervalIndex/intervalIndexUtils.mjs.map +0 -1
  355. package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +0 -1
  356. package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +0 -1
  357. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +0 -1
  358. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +0 -1
  359. package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +0 -1
  360. package/lib/intervalIndex/sequenceIntervalIndexes.mjs.map +0 -1
  361. package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +0 -1
  362. package/lib/intervalIndex/startpointInRangeIndex.mjs.map +0 -1
  363. package/lib/intervalTree.d.mts.map +0 -1
  364. package/lib/intervalTree.mjs.map +0 -1
  365. package/lib/intervals/index.d.mts.map +0 -1
  366. package/lib/intervals/index.mjs.map +0 -1
  367. package/lib/intervals/interval.mjs.map +0 -1
  368. package/lib/intervals/intervalUtils.d.mts.map +0 -1
  369. package/lib/intervals/intervalUtils.mjs.map +0 -1
  370. package/lib/intervals/sequenceInterval.d.mts.map +0 -1
  371. package/lib/localValues.d.mts.map +0 -1
  372. package/lib/localValues.mjs.map +0 -1
  373. package/lib/packageVersion.d.mts.map +0 -1
  374. package/lib/packageVersion.mjs.map +0 -1
  375. package/lib/revertibles.d.mts.map +0 -1
  376. package/lib/revertibles.mjs.map +0 -1
  377. package/lib/sequence.d.mts.map +0 -1
  378. package/lib/sequence.mjs.map +0 -1
  379. package/lib/sequenceDeltaEvent.d.mts.map +0 -1
  380. package/lib/sequenceDeltaEvent.mjs.map +0 -1
  381. package/lib/sequenceFactory.d.mts.map +0 -1
  382. package/lib/sequenceFactory.mjs.map +0 -1
  383. package/lib/sharedIntervalCollection.d.mts.map +0 -1
  384. package/lib/sharedIntervalCollection.mjs.map +0 -1
  385. package/lib/sharedSequence.d.mts.map +0 -1
  386. package/lib/sharedSequence.mjs.map +0 -1
  387. package/lib/sharedString.d.mts.map +0 -1
  388. package/lib/sharedString.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1IntervalCollectionHelpers.js","sourceRoot":"","sources":["../../src/test/v1IntervalCollectionHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIFluidDataStoreRuntime,\n\tIChannelFactory,\n\tIChannelServices,\n\tIChannelAttributes,\n} from \"@fluidframework/datastore-definitions\";\nimport { Client } from \"@fluidframework/merge-tree\";\nimport { IntervalCollectionMap } from \"../intervalCollectionMap.js\";\nimport {\n\tIIntervalCollectionFactory,\n\tIValueOpEmitter,\n\tIIntervalCollectionType,\n\tIIntervalCollectionOperation,\n} from \"../intervalCollectionMapInterfaces.js\";\nimport {\n\tIntervalCollection,\n\tISerializedIntervalCollectionV2,\n\tmakeOpsMap,\n\tLocalIntervalCollection,\n} from \"../intervalCollection.js\";\nimport {\n\tISerializableInterval,\n\tISerializedInterval,\n\tSequenceInterval,\n\tIIntervalHelpers,\n\tcreateSequenceInterval,\n\tIntervalOpType,\n} from \"../intervals/index.js\";\nimport { pkgVersion } from \"../packageVersion.js\";\nimport { SharedString } from \"../sharedString.js\";\n\nexport interface IntervalCollectionInternals<TInterval extends ISerializableInterval> {\n\tclient: Client;\n\tsavedSerializedIntervals?: ISerializedInterval[];\n\tlocalCollection: LocalIntervalCollection<SequenceInterval>;\n\tgetNextLocalSeq(): number;\n}\n\nexport class V1IntervalCollection<\n\tTInterval extends ISerializableInterval,\n> extends IntervalCollection<SequenceInterval> {\n\tcasted = this as unknown as IntervalCollectionInternals<SequenceInterval>;\n}\n\nclass V1SequenceIntervalCollectionFactory implements IIntervalCollectionFactory<SequenceInterval> {\n\tpublic load(\n\t\temitter: IValueOpEmitter,\n\t\traw: ISerializedInterval[] | ISerializedIntervalCollectionV2 = [],\n\t): V1IntervalCollection<SequenceInterval> {\n\t\tconst helpers: IIntervalHelpers<SequenceInterval> = {\n\t\t\tcreate: createSequenceInterval,\n\t\t};\n\t\treturn new V1IntervalCollection(helpers, true, emitter, raw, {});\n\t}\n\tpublic store(\n\t\tvalue: V1IntervalCollection<SequenceInterval>,\n\t): ISerializedInterval[] | ISerializedIntervalCollectionV2 {\n\t\treturn Array.from(\n\t\t\tvalue,\n\t\t\t(interval) => interval?.serialize(),\n\t\t) as unknown as ISerializedIntervalCollectionV2;\n\t}\n}\n\nexport class V1SequenceIntervalCollectionValueType\n\timplements IIntervalCollectionType<SequenceInterval>\n{\n\tpublic static Name = \"sharedStringIntervalCollection\";\n\n\tpublic get name(): string {\n\t\treturn V1SequenceIntervalCollectionValueType.Name;\n\t}\n\n\tpublic get factory(): IIntervalCollectionFactory<SequenceInterval> {\n\t\treturn V1SequenceIntervalCollectionValueType._factory;\n\t}\n\n\tpublic get ops(): Map<IntervalOpType, IIntervalCollectionOperation<SequenceInterval>> {\n\t\treturn V1SequenceIntervalCollectionValueType._ops;\n\t}\n\n\tprivate static readonly _factory: IIntervalCollectionFactory<SequenceInterval> =\n\t\tnew V1SequenceIntervalCollectionFactory();\n\n\tprivate static readonly _ops = makeOpsMap<SequenceInterval>();\n}\n\ninterface SharedStringInternals {\n\tintervalCollections: IntervalCollectionMap<SequenceInterval>;\n}\n\nexport class SharedStringWithV1IntervalCollection extends SharedString {\n\t/**\n\t * Create a new shared string.\n\t * @param runtime - data store runtime the new shared string belongs to\n\t * @param id - optional name of the shared string\n\t * @returns newly create shared string (but not attached yet)\n\t */\n\tpublic static create(runtime: IFluidDataStoreRuntime, id?: string) {\n\t\treturn runtime.createChannel(\n\t\t\tid,\n\t\t\tV1IntervalCollectionSharedStringFactory.Type,\n\t\t) as SharedStringWithV1IntervalCollection;\n\t}\n\n\t/**\n\t * Get a factory for SharedString to register with the data store.\n\t * @returns a factory that creates and load SharedString\n\t */\n\tpublic static getFactory() {\n\t\treturn new V1IntervalCollectionSharedStringFactory();\n\t}\n\n\tconstructor(\n\t\tdocument: IFluidDataStoreRuntime,\n\t\tpublic id: string,\n\t\tattributes: IChannelAttributes,\n\t) {\n\t\tsuper(document, id, attributes);\n\t\t(this as unknown as SharedStringInternals).intervalCollections = new IntervalCollectionMap(\n\t\t\tthis.serializer,\n\t\t\tthis.handle,\n\t\t\t(op, localOpMetadata) => this.submitLocalMessage(op, localOpMetadata),\n\t\t\tnew V1SequenceIntervalCollectionValueType(),\n\t\t\t{},\n\t\t);\n\t}\n}\n\nexport class V1IntervalCollectionSharedStringFactory implements IChannelFactory {\n\t// TODO rename back to https://graph.microsoft.com/types/mergeTree/string once paparazzi is able to dynamically\n\t// load code (UPDATE: paparazzi is gone... anything to do here?)\n\tpublic static Type = \"https://graph.microsoft.com/types/mergeTree\";\n\n\tpublic static readonly Attributes: IChannelAttributes = {\n\t\ttype: V1IntervalCollectionSharedStringFactory.Type,\n\t\tsnapshotFormatVersion: \"0.1\",\n\t\tpackageVersion: pkgVersion,\n\t};\n\n\tpublic get type() {\n\t\treturn V1IntervalCollectionSharedStringFactory.Type;\n\t}\n\n\tpublic get attributes() {\n\t\treturn V1IntervalCollectionSharedStringFactory.Attributes;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}\n\t */\n\tpublic async load(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\tservices: IChannelServices,\n\t\tattributes: IChannelAttributes,\n\t): Promise<SharedStringWithV1IntervalCollection> {\n\t\tconst sharedString = new SharedStringWithV1IntervalCollection(runtime, id, attributes);\n\t\tawait sharedString.load(services);\n\t\treturn sharedString;\n\t}\n\n\tpublic create(\n\t\tdocument: IFluidDataStoreRuntime,\n\t\tid: string,\n\t): SharedStringWithV1IntervalCollection {\n\t\tconst sharedString = new SharedStringWithV1IntervalCollection(\n\t\t\tdocument,\n\t\t\tid,\n\t\t\tthis.attributes,\n\t\t);\n\t\tsharedString.initializeLocal();\n\t\treturn sharedString;\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/sequence",
3
- "version": "2.0.0-dev-rc.1.0.0.232845",
3
+ "version": "2.0.0-dev-rc.2.0.0.246488",
4
4
  "description": "Distributed sequence",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -11,82 +11,82 @@
11
11
  "license": "MIT",
12
12
  "author": "Microsoft and contributors",
13
13
  "sideEffects": false,
14
+ "type": "module",
14
15
  "exports": {
15
16
  ".": {
16
17
  "import": {
17
- "types": "./lib/index.d.mts",
18
- "default": "./lib/index.mjs"
18
+ "types": "./lib/index.d.ts",
19
+ "default": "./lib/index.js"
19
20
  },
20
21
  "require": {
21
22
  "types": "./dist/index.d.ts",
22
23
  "default": "./dist/index.js"
23
24
  }
24
25
  },
25
- "./test/intervalCollection": {
26
+ "./public": {
26
27
  "import": {
27
- "types": "./lib/intervalCollection.d.mts",
28
- "default": "./lib/intervalCollection.mjs"
28
+ "types": "./lib/sequence-public.d.ts",
29
+ "default": "./lib/index.js"
29
30
  },
30
31
  "require": {
31
- "types": "./dist/intervalCollection.d.ts",
32
- "default": "./dist/intervalCollection.js"
32
+ "types": "./dist/sequence-public.d.ts",
33
+ "default": "./dist/index.js"
33
34
  }
34
35
  },
35
- "./alpha": {
36
+ "./beta": {
36
37
  "import": {
37
- "types": "./lib/sequence-alpha.d.mts",
38
- "default": "./lib/index.mjs"
38
+ "types": "./lib/sequence-beta.d.ts",
39
+ "default": "./lib/index.js"
39
40
  },
40
41
  "require": {
41
- "types": "./dist/sequence-alpha.d.ts",
42
+ "types": "./dist/sequence-beta.d.ts",
42
43
  "default": "./dist/index.js"
43
44
  }
44
45
  },
45
- "./beta": {
46
+ "./test/intervalCollection": {
46
47
  "import": {
47
- "types": "./lib/sequence-beta.d.mts",
48
- "default": "./lib/index.mjs"
48
+ "types": "./lib/intervalCollection.d.ts",
49
+ "default": "./lib/intervalCollection.js"
49
50
  },
50
51
  "require": {
51
- "types": "./dist/sequence-beta.d.ts",
52
- "default": "./dist/index.js"
52
+ "types": "./dist/intervalCollection.d.ts",
53
+ "default": "./dist/intervalCollection.js"
53
54
  }
54
55
  },
55
- "./internal": {
56
+ "./alpha": {
56
57
  "import": {
57
- "types": "./lib/index.d.mts",
58
- "default": "./lib/index.mjs"
58
+ "types": "./lib/sequence-alpha.d.ts",
59
+ "default": "./lib/index.js"
59
60
  },
60
61
  "require": {
61
- "types": "./dist/index.d.ts",
62
+ "types": "./dist/sequence-alpha.d.ts",
62
63
  "default": "./dist/index.js"
63
64
  }
64
65
  },
65
- "./public": {
66
+ "./internal": {
66
67
  "import": {
67
- "types": "./lib/sequence-public.d.mts",
68
- "default": "./lib/index.mjs"
68
+ "types": "./lib/index.d.ts",
69
+ "default": "./lib/index.js"
69
70
  },
70
71
  "require": {
71
- "types": "./dist/sequence-public.d.ts",
72
+ "types": "./dist/index.d.ts",
72
73
  "default": "./dist/index.js"
73
74
  }
74
75
  }
75
76
  },
76
77
  "main": "dist/index.js",
77
- "module": "lib/index.mjs",
78
78
  "types": "dist/index.d.ts",
79
79
  "c8": {
80
80
  "all": true,
81
81
  "cache-dir": "nyc/.cache",
82
82
  "exclude": [
83
83
  "src/test/**/*.*ts",
84
- "dist/test/**/*.*js"
84
+ "lib/test/**/*.*js"
85
85
  ],
86
86
  "exclude-after-remap": false,
87
87
  "include": [
88
88
  "src/**/*.*ts",
89
- "dist/**/*.*js"
89
+ "lib/**/*.*js"
90
90
  ],
91
91
  "report-dir": "nyc/report",
92
92
  "reporter": [
@@ -97,32 +97,33 @@
97
97
  "temp-directory": "nyc/.nyc_output"
98
98
  },
99
99
  "dependencies": {
100
- "@fluid-internal/client-utils": "2.0.0-dev-rc.1.0.0.232845",
101
- "@fluidframework/core-interfaces": "2.0.0-dev-rc.1.0.0.232845",
102
- "@fluidframework/core-utils": "2.0.0-dev-rc.1.0.0.232845",
103
- "@fluidframework/datastore-definitions": "2.0.0-dev-rc.1.0.0.232845",
104
- "@fluidframework/merge-tree": "2.0.0-dev-rc.1.0.0.232845",
105
- "@fluidframework/protocol-definitions": "^3.2.0-231454",
106
- "@fluidframework/runtime-definitions": "2.0.0-dev-rc.1.0.0.232845",
107
- "@fluidframework/runtime-utils": "2.0.0-dev-rc.1.0.0.232845",
108
- "@fluidframework/shared-object-base": "2.0.0-dev-rc.1.0.0.232845",
109
- "@fluidframework/telemetry-utils": "2.0.0-dev-rc.1.0.0.232845",
100
+ "@fluid-internal/client-utils": "2.0.0-dev-rc.2.0.0.246488",
101
+ "@fluidframework/core-interfaces": "2.0.0-dev-rc.2.0.0.246488",
102
+ "@fluidframework/core-utils": "2.0.0-dev-rc.2.0.0.246488",
103
+ "@fluidframework/datastore-definitions": "2.0.0-dev-rc.2.0.0.246488",
104
+ "@fluidframework/merge-tree": "2.0.0-dev-rc.2.0.0.246488",
105
+ "@fluidframework/protocol-definitions": "^3.2.0",
106
+ "@fluidframework/runtime-definitions": "2.0.0-dev-rc.2.0.0.246488",
107
+ "@fluidframework/runtime-utils": "2.0.0-dev-rc.2.0.0.246488",
108
+ "@fluidframework/shared-object-base": "2.0.0-dev-rc.2.0.0.246488",
109
+ "@fluidframework/telemetry-utils": "2.0.0-dev-rc.2.0.0.246488",
110
110
  "double-ended-queue": "^2.1.0-0",
111
111
  "uuid": "^9.0.0"
112
112
  },
113
113
  "devDependencies": {
114
114
  "@arethetypeswrong/cli": "^0.13.3",
115
- "@fluid-private/stochastic-test-utils": "2.0.0-dev-rc.1.0.0.232845",
116
- "@fluid-private/test-dds-utils": "2.0.0-dev-rc.1.0.0.232845",
115
+ "@fluid-internal/mocha-test-setup": "2.0.0-dev-rc.2.0.0.246488",
116
+ "@fluid-private/stochastic-test-utils": "2.0.0-dev-rc.2.0.0.246488",
117
+ "@fluid-private/test-dds-utils": "2.0.0-dev-rc.2.0.0.246488",
117
118
  "@fluid-tools/benchmark": "^0.48.0",
118
- "@fluid-tools/build-cli": "^0.29.0",
119
+ "@fluid-tools/build-cli": "^0.34.0",
119
120
  "@fluidframework/build-common": "^2.0.3",
120
- "@fluidframework/build-tools": "^0.29.0",
121
- "@fluidframework/eslint-config-fluid": "^3.3.0",
122
- "@fluidframework/mocha-test-setup": "2.0.0-dev-rc.1.0.0.232845",
121
+ "@fluidframework/build-tools": "^0.34.0",
122
+ "@fluidframework/container-definitions": "2.0.0-dev-rc.2.0.0.246488",
123
+ "@fluidframework/eslint-config-fluid": "^5.1.0",
123
124
  "@fluidframework/sequence-previous": "npm:@fluidframework/sequence@2.0.0-internal.8.0.0",
124
- "@fluidframework/test-runtime-utils": "2.0.0-dev-rc.1.0.0.232845",
125
- "@microsoft/api-extractor": "^7.39.1",
125
+ "@fluidframework/test-runtime-utils": "2.0.0-dev-rc.2.0.0.246488",
126
+ "@microsoft/api-extractor": "^7.42.3",
126
127
  "@types/diff": "^3.5.1",
127
128
  "@types/double-ended-queue": "^2.1.0",
128
129
  "@types/mocha": "^9.1.1",
@@ -132,7 +133,7 @@
132
133
  "copyfiles": "^2.4.1",
133
134
  "cross-env": "^7.0.3",
134
135
  "diff": "^3.5.0",
135
- "eslint": "~8.50.0",
136
+ "eslint": "~8.55.0",
136
137
  "mocha": "^10.2.0",
137
138
  "mocha-json-output-reporter": "^2.0.1",
138
139
  "mocha-multi-reporters": "^1.5.1",
@@ -141,7 +142,6 @@
141
142
  "random-js": "^2.1.0",
142
143
  "replace-in-file": "^6.3.5",
143
144
  "rimraf": "^4.4.0",
144
- "tsc-multi": "^1.1.0",
145
145
  "typescript": "~5.1.6"
146
146
  },
147
147
  "fluidBuild": {
@@ -172,15 +172,17 @@
172
172
  },
173
173
  "scripts": {
174
174
  "api": "fluid-build . --task api",
175
- "api-extractor:commonjs": "api-extractor run --local",
176
- "api-extractor:esnext": "api-extractor run --config ./api-extractor-esm.json",
175
+ "api-extractor:commonjs": "api-extractor run --config ./api-extractor-cjs.json",
176
+ "api-extractor:esnext": "api-extractor run --local",
177
177
  "build": "fluid-build . --task build",
178
178
  "build:commonjs": "fluid-build . --task commonjs",
179
179
  "build:compile": "fluid-build . --task compile",
180
180
  "build:docs": "fluid-build . --task api",
181
- "build:esnext": "tsc-multi --config ../../../common/build/build-common/tsc-multi.esm.json",
181
+ "build:esnext": "tsc --project ./tsconfig.json",
182
182
  "build:genver": "gen-version",
183
- "build:test": "tsc --project ./src/test/tsconfig.json",
183
+ "build:test": "npm run build:test:cjs && npm run build:test:esm",
184
+ "build:test:cjs": "fluid-tsc commonjs --project ./src/test/tsconfig.cjs.json",
185
+ "build:test:esm": "tsc --project ./src/test/tsconfig.json",
184
186
  "check:are-the-types-wrong": "attw --pack . --entrypoints .",
185
187
  "check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
186
188
  "ci:build:docs": "api-extractor run",
@@ -190,20 +192,22 @@
190
192
  "format": "npm run prettier:fix",
191
193
  "lint": "npm run prettier && npm run check:release-tags && npm run eslint",
192
194
  "lint:fix": "npm run prettier:fix && npm run eslint:fix",
193
- "perf": "cross-env FLUID_TEST_VERBOSE=1 mocha \"dist/**/*.spec.*js\" --node-option unhandled-rejections=strict,expose-gc --exit -r node_modules/@fluidframework/mocha-test-setup --perfMode --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 30000",
195
+ "perf": "cross-env FLUID_TEST_VERBOSE=1 mocha \"lib/**/*.spec.*js\" --node-option unhandled-rejections=strict,expose-gc --exit --perfMode --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 30000",
194
196
  "perf:measure": "npm run perf -- --fgrep @Measurement",
195
197
  "prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
196
198
  "prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
197
199
  "test": "npm run test:mocha",
198
- "test:benchmark:report": "mocha \"dist/test/*.perf.spec.*js\" --node-option unhandled-rejections=strict,expose-gc --exit --perfMode --fgrep @Benchmark -r @fluidframework/mocha-test-setup --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 60000",
200
+ "test:benchmark:report": "mocha \"lib/test/*.perf.spec.*js\" --node-option unhandled-rejections=strict,expose-gc --exit --perfMode --fgrep @Benchmark -r @fluid-internal/mocha-test-setup --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 60000",
199
201
  "test:coverage": "c8 npm test",
200
- "test:memory": "mocha --config src/test/memory/.mocharc.js",
201
- "test:memory-profiling:report": "mocha --config src/test/memory/.mocharc.js",
202
- "test:mocha": "mocha --ignore \"dist/test/memory/**/*\" --recursive \"dist/test/**/*.spec.*js\" -r node_modules/@fluidframework/mocha-test-setup",
202
+ "test:memory": "mocha --config src/test/memory/.mocharc.cjs",
203
+ "test:memory-profiling:report": "mocha --config src/test/memory/.mocharc.cjs",
204
+ "test:mocha": "npm run test:mocha:esm && echo skipping cjs to avoid overhead - npm run test:mocha:cjs",
205
+ "test:mocha:cjs": "mocha --ignore \"dist/test/memory/**/*\" --recursive \"dist/test/**/*.spec.*js\" --exit",
206
+ "test:mocha:esm": "mocha --ignore \"lib/test/memory/**/*\" --recursive \"lib/test/**/*.spec.*js\" --exit",
203
207
  "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
204
- "test:newsnapfiles": "node dist/test/createSnapshotFiles.js",
205
- "test:stress": "cross-env FUZZ_TEST_COUNT=100 FUZZ_STRESS_RUN=true mocha --ignore \"dist/test/memory/**/*\" --recursive \"dist/test/**/*.fuzz.spec.*js\" -r @fluidframework/mocha-test-setup",
206
- "tsc": "tsc",
208
+ "test:newsnapfiles": "node lib/test/createSnapshotFiles.js",
209
+ "test:stress": "cross-env FUZZ_TEST_COUNT=100 FUZZ_STRESS_RUN=true mocha --ignore \"lib/test/memory/**/*\" --recursive \"lib/test/**/*.fuzz.spec.*js\" -r @fluid-internal/mocha-test-setup",
210
+ "tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
207
211
  "typetests:gen": "fluid-type-test-generator",
208
212
  "typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
209
213
  }
@@ -6,17 +6,18 @@
6
6
  import { IFluidHandle } from "@fluidframework/core-interfaces";
7
7
  import { IFluidSerializer, serializeHandles } from "@fluidframework/shared-object-base";
8
8
  import {
9
- ISerializableValue,
10
- ISerializedValue,
11
- IValueOperation,
12
- IValueType,
13
- } from "./defaultMapInterfaces";
14
- import { IntervalOpType } from "./intervals";
9
+ ISerializableIntervalCollection,
10
+ ISerializedIntervalCollection,
11
+ IIntervalCollectionOperation,
12
+ IIntervalCollectionType,
13
+ } from "./intervalCollectionMapInterfaces.js";
14
+ import { IntervalOpType, type ISerializableInterval } from "./intervals/index.js";
15
+ import type { IntervalCollection } from "./intervalCollection.js";
15
16
 
16
17
  /**
17
18
  * A local value to be stored in a container type DDS.
18
19
  */
19
- export interface ILocalValue<T = any> {
20
+ export interface ILocalIntervalCollection<T extends ISerializableInterval> {
20
21
  /**
21
22
  * Type indicator of the value stored within.
22
23
  */
@@ -25,7 +26,7 @@ export interface ILocalValue<T = any> {
25
26
  /**
26
27
  * The in-memory value stored within.
27
28
  */
28
- readonly value: T;
29
+ readonly value: IntervalCollection<T>;
29
30
 
30
31
  /**
31
32
  * Retrieve the serialized form of the value stored within.
@@ -33,14 +34,14 @@ export interface ILocalValue<T = any> {
33
34
  * @param bind - Container type's handle
34
35
  * @returns The serialized form of the contained value
35
36
  */
36
- makeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedValue;
37
+ makeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedIntervalCollection;
37
38
  }
38
39
 
39
- export function makeSerializable(
40
- localValue: ILocalValue,
40
+ export function makeSerializable<T extends ISerializableInterval>(
41
+ localValue: ILocalIntervalCollection<T>,
41
42
  serializer: IFluidSerializer,
42
43
  bind: IFluidHandle,
43
- ): ISerializableValue {
44
+ ): ISerializableIntervalCollection {
44
45
  const value = localValue.makeSerialized(serializer, bind);
45
46
  return {
46
47
  type: value.type,
@@ -53,15 +54,17 @@ export function makeSerializable(
53
54
  *
54
55
  * @alpha
55
56
  */
56
- export class ValueTypeLocalValue<T> implements ILocalValue<T> {
57
+ export class IntervalCollectionTypeLocalValue<T extends ISerializableInterval>
58
+ implements ILocalIntervalCollection<T>
59
+ {
57
60
  /**
58
61
  * Create a new ValueTypeLocalValue.
59
62
  * @param value - The instance of the value type stored within
60
63
  * @param valueType - The type object of the value type stored within
61
64
  */
62
65
  constructor(
63
- public readonly value: T,
64
- private readonly valueType: IValueType<T>,
66
+ public readonly value: IntervalCollection<T>,
67
+ private readonly valueType: IIntervalCollectionType<T>,
65
68
  ) {}
66
69
 
67
70
  /**
@@ -74,7 +77,10 @@ export class ValueTypeLocalValue<T> implements ILocalValue<T> {
74
77
  /**
75
78
  * {@inheritDoc ILocalValue.makeSerialized}
76
79
  */
77
- public makeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedValue {
80
+ public makeSerialized(
81
+ serializer: IFluidSerializer,
82
+ bind: IFluidHandle,
83
+ ): ISerializedIntervalCollection {
78
84
  const storedValueType = this.valueType.factory.store(this.value);
79
85
  const value = serializeHandles(storedValueType, serializer, bind);
80
86
 
@@ -89,7 +95,7 @@ export class ValueTypeLocalValue<T> implements ILocalValue<T> {
89
95
  * @param opName - The name of the operation that needs processing
90
96
  * @returns The object which can process the given op
91
97
  */
92
- public getOpHandler(opName: IntervalOpType): IValueOperation<T> {
98
+ public getOpHandler(opName: IntervalOpType): IIntervalCollectionOperation<T> {
93
99
  const handler = this.valueType.ops.get(opName);
94
100
  if (!handler) {
95
101
  throw new Error("Unknown type message");
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 "./intervalCollectionMapInterfaces.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,