@fluidframework/merge-tree 2.0.0-rc.1.0.3 → 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 (770) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +4 -1
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +4 -0
  4. package/api-extractor-cjs.json +8 -0
  5. package/api-extractor-lint.json +1 -1
  6. package/api-extractor.json +1 -9
  7. package/api-report/merge-tree.api.md +6 -12
  8. package/dist/MergeTreeTextHelper.d.ts +2 -2
  9. package/dist/MergeTreeTextHelper.d.ts.map +1 -1
  10. package/dist/MergeTreeTextHelper.js +3 -3
  11. package/dist/MergeTreeTextHelper.js.map +1 -1
  12. package/dist/attributionCollection.d.ts +1 -1
  13. package/dist/attributionCollection.d.ts.map +1 -1
  14. package/dist/attributionCollection.js.map +1 -1
  15. package/dist/attributionPolicy.d.ts +1 -1
  16. package/dist/attributionPolicy.d.ts.map +1 -1
  17. package/dist/attributionPolicy.js +15 -15
  18. package/dist/attributionPolicy.js.map +1 -1
  19. package/dist/client.d.ts +31 -12
  20. package/dist/client.d.ts.map +1 -1
  21. package/dist/client.js +103 -92
  22. package/dist/client.js.map +1 -1
  23. package/dist/collections/index.d.ts +2 -2
  24. package/dist/collections/index.d.ts.map +1 -1
  25. package/dist/collections/index.js +6 -6
  26. package/dist/collections/index.js.map +1 -1
  27. package/dist/endOfTreeSegment.d.ts +3 -3
  28. package/dist/endOfTreeSegment.d.ts.map +1 -1
  29. package/dist/endOfTreeSegment.js +8 -8
  30. package/dist/endOfTreeSegment.js.map +1 -1
  31. package/dist/index.d.ts +20 -20
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +71 -71
  34. package/dist/index.js.map +1 -1
  35. package/dist/localReference.d.ts +9 -39
  36. package/dist/localReference.d.ts.map +1 -1
  37. package/dist/localReference.js +29 -24
  38. package/dist/localReference.js.map +1 -1
  39. package/dist/merge-tree-alpha.d.ts +28 -450
  40. package/dist/merge-tree-beta.d.ts +0 -438
  41. package/dist/merge-tree-public.d.ts +0 -438
  42. package/dist/merge-tree-untrimmed.d.ts +28 -787
  43. package/dist/mergeTree.d.ts +11 -19
  44. package/dist/mergeTree.d.ts.map +1 -1
  45. package/dist/mergeTree.js +201 -189
  46. package/dist/mergeTree.js.map +1 -1
  47. package/dist/mergeTreeDeltaCallback.d.ts +3 -7
  48. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  49. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  50. package/dist/mergeTreeNodeWalk.d.ts +1 -1
  51. package/dist/mergeTreeNodeWalk.d.ts.map +1 -1
  52. package/dist/mergeTreeNodeWalk.js.map +1 -1
  53. package/dist/mergeTreeNodes.d.ts +17 -14
  54. package/dist/mergeTreeNodes.d.ts.map +1 -1
  55. package/dist/mergeTreeNodes.js +32 -32
  56. package/dist/mergeTreeNodes.js.map +1 -1
  57. package/dist/mergeTreeTracking.d.ts +2 -2
  58. package/dist/mergeTreeTracking.d.ts.map +1 -1
  59. package/dist/mergeTreeTracking.js +2 -2
  60. package/dist/mergeTreeTracking.js.map +1 -1
  61. package/dist/opBuilder.d.ts +3 -3
  62. package/dist/opBuilder.d.ts.map +1 -1
  63. package/dist/opBuilder.js +7 -7
  64. package/dist/opBuilder.js.map +1 -1
  65. package/dist/package.json +3 -0
  66. package/dist/partialLengths.d.ts +5 -5
  67. package/dist/partialLengths.d.ts.map +1 -1
  68. package/dist/partialLengths.js +29 -29
  69. package/dist/partialLengths.js.map +1 -1
  70. package/dist/referencePositions.d.ts +4 -4
  71. package/dist/referencePositions.d.ts.map +1 -1
  72. package/dist/referencePositions.js +2 -2
  73. package/dist/referencePositions.js.map +1 -1
  74. package/dist/revertibles.d.ts +7 -7
  75. package/dist/revertibles.d.ts.map +1 -1
  76. package/dist/revertibles.js +39 -39
  77. package/dist/revertibles.js.map +1 -1
  78. package/dist/segmentGroupCollection.d.ts +1 -1
  79. package/dist/segmentGroupCollection.d.ts.map +1 -1
  80. package/dist/segmentGroupCollection.js +3 -3
  81. package/dist/segmentGroupCollection.js.map +1 -1
  82. package/dist/segmentPropertiesManager.d.ts +2 -2
  83. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  84. package/dist/segmentPropertiesManager.js +8 -8
  85. package/dist/segmentPropertiesManager.js.map +1 -1
  86. package/dist/snapshotChunks.d.ts +3 -3
  87. package/dist/snapshotChunks.d.ts.map +1 -1
  88. package/dist/snapshotChunks.js +5 -5
  89. package/dist/snapshotChunks.js.map +1 -1
  90. package/dist/snapshotLoader.d.ts +3 -3
  91. package/dist/snapshotLoader.d.ts.map +1 -1
  92. package/dist/snapshotLoader.js +19 -19
  93. package/dist/snapshotLoader.js.map +1 -1
  94. package/dist/snapshotV1.d.ts +3 -3
  95. package/dist/snapshotV1.d.ts.map +1 -1
  96. package/dist/snapshotV1.js +35 -18
  97. package/dist/snapshotV1.js.map +1 -1
  98. package/dist/snapshotlegacy.d.ts +2 -2
  99. package/dist/snapshotlegacy.d.ts.map +1 -1
  100. package/dist/snapshotlegacy.js +22 -10
  101. package/dist/snapshotlegacy.js.map +1 -1
  102. package/dist/sortedSegmentSet.d.ts +3 -3
  103. package/dist/sortedSegmentSet.d.ts.map +1 -1
  104. package/dist/sortedSegmentSet.js +7 -5
  105. package/dist/sortedSegmentSet.js.map +1 -1
  106. package/dist/test/Insertion.perf.spec.js +15 -15
  107. package/dist/test/Insertion.perf.spec.js.map +1 -1
  108. package/dist/test/PartialLengths.perf.spec.js +13 -13
  109. package/dist/test/PartialLengths.perf.spec.js.map +1 -1
  110. package/dist/test/Removal.perf.spec.js +25 -25
  111. package/dist/test/Removal.perf.spec.js.map +1 -1
  112. package/dist/test/Snapshot.perf.spec.js +3 -3
  113. package/dist/test/Snapshot.perf.spec.js.map +1 -1
  114. package/dist/test/attributionCollection.perf.spec.js +9 -9
  115. package/dist/test/attributionCollection.perf.spec.js.map +1 -1
  116. package/dist/test/attributionCollection.spec.js +46 -46
  117. package/dist/test/attributionCollection.spec.js.map +1 -1
  118. package/dist/test/attributionPolicy.spec.js +13 -13
  119. package/dist/test/attributionPolicy.spec.js.map +1 -1
  120. package/dist/test/{beastTest.d.ts → beastTest.spec.d.ts} +3 -3
  121. package/dist/test/beastTest.spec.d.ts.map +1 -0
  122. package/dist/test/{beastTest.js → beastTest.spec.js} +120 -119
  123. package/dist/test/beastTest.spec.js.map +1 -0
  124. package/dist/test/client.annotateMarker.spec.js +13 -13
  125. package/dist/test/client.annotateMarker.spec.js.map +1 -1
  126. package/dist/test/{client.apis.d.ts → client.apis.spec.d.ts} +1 -1
  127. package/dist/test/client.apis.spec.d.ts.map +1 -0
  128. package/dist/test/{client.apis.js → client.apis.spec.js} +8 -8
  129. package/dist/test/client.apis.spec.js.map +1 -0
  130. package/dist/test/client.applyMsg.spec.js +106 -43
  131. package/dist/test/client.applyMsg.spec.js.map +1 -1
  132. package/dist/test/client.applyStashedOpFarm.spec.d.ts +1 -1
  133. package/dist/test/client.applyStashedOpFarm.spec.d.ts.map +1 -1
  134. package/dist/test/client.applyStashedOpFarm.spec.js +33 -21
  135. package/dist/test/client.applyStashedOpFarm.spec.js.map +1 -1
  136. package/dist/test/client.attributionFarm.spec.d.ts +1 -1
  137. package/dist/test/client.attributionFarm.spec.d.ts.map +1 -1
  138. package/dist/test/client.attributionFarm.spec.js +13 -13
  139. package/dist/test/client.attributionFarm.spec.js.map +1 -1
  140. package/dist/test/client.conflictFarm.spec.d.ts +1 -1
  141. package/dist/test/client.conflictFarm.spec.d.ts.map +1 -1
  142. package/dist/test/client.conflictFarm.spec.js +9 -9
  143. package/dist/test/client.conflictFarm.spec.js.map +1 -1
  144. package/dist/test/client.getPosition.spec.js +4 -4
  145. package/dist/test/client.getPosition.spec.js.map +1 -1
  146. package/dist/test/client.localReference.spec.js +140 -109
  147. package/dist/test/client.localReference.spec.js.map +1 -1
  148. package/dist/test/client.localReferenceFarm.spec.js +18 -18
  149. package/dist/test/client.localReferenceFarm.spec.js.map +1 -1
  150. package/dist/test/client.rebasePosition.spec.js +2 -2
  151. package/dist/test/client.rebasePosition.spec.js.map +1 -1
  152. package/dist/test/client.reconnectFarm.spec.d.ts +1 -1
  153. package/dist/test/client.reconnectFarm.spec.d.ts.map +1 -1
  154. package/dist/test/client.reconnectFarm.spec.js +10 -10
  155. package/dist/test/client.reconnectFarm.spec.js.map +1 -1
  156. package/dist/test/client.replay.spec.js +11 -11
  157. package/dist/test/client.replay.spec.js.map +1 -1
  158. package/dist/test/client.rollback.spec.js +83 -83
  159. package/dist/test/client.rollback.spec.js.map +1 -1
  160. package/dist/test/client.rollbackFarm.spec.js +9 -9
  161. package/dist/test/client.rollbackFarm.spec.js.map +1 -1
  162. package/dist/test/client.searchForMarker.spec.js +137 -137
  163. package/dist/test/client.searchForMarker.spec.js.map +1 -1
  164. package/dist/test/client.walkSegments.spec.js +2 -2
  165. package/dist/test/client.walkSegments.spec.js.map +1 -1
  166. package/dist/test/collections.list.spec.js +4 -4
  167. package/dist/test/collections.list.spec.js.map +1 -1
  168. package/dist/test/createInsertOnlyAttributionPolicy.spec.js +4 -4
  169. package/dist/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -1
  170. package/dist/test/dirname.cjs +16 -0
  171. package/dist/test/dirname.cjs.map +1 -0
  172. package/dist/test/dirname.d.cts +6 -0
  173. package/dist/test/dirname.d.cts.map +1 -0
  174. package/dist/test/index.d.ts +8 -8
  175. package/dist/test/index.d.ts.map +1 -1
  176. package/dist/test/index.js +82 -81
  177. package/dist/test/index.js.map +1 -1
  178. package/dist/test/mergeTree.annotate.deltaCallback.spec.js +39 -39
  179. package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  180. package/dist/test/mergeTree.annotate.spec.js +39 -39
  181. package/dist/test/mergeTree.annotate.spec.js.map +1 -1
  182. package/dist/test/mergeTree.insert.deltaCallback.spec.js +35 -35
  183. package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  184. package/dist/test/mergeTree.insertingWalk.spec.js +77 -77
  185. package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
  186. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +42 -42
  187. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  188. package/dist/test/mergeTree.markRangeRemoved.spec.js +15 -15
  189. package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  190. package/dist/test/mergeTree.walk.spec.js +14 -14
  191. package/dist/test/mergeTree.walk.spec.js.map +1 -1
  192. package/dist/test/mergeTree.zamboni.spec.js +9 -9
  193. package/dist/test/mergeTree.zamboni.spec.js.map +1 -1
  194. package/dist/test/mergeTreeOperationRunner.d.ts +4 -4
  195. package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
  196. package/dist/test/mergeTreeOperationRunner.js +16 -15
  197. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  198. package/dist/test/mergeTreeOperationRunner.spec.js +5 -5
  199. package/dist/test/mergeTreeOperationRunner.spec.js.map +1 -1
  200. package/dist/test/obliterate.concurrent.spec.js +85 -88
  201. package/dist/test/obliterate.concurrent.spec.js.map +1 -1
  202. package/dist/test/obliterate.deltaCallback.spec.d.ts +6 -0
  203. package/dist/test/obliterate.deltaCallback.spec.d.ts.map +1 -0
  204. package/dist/test/obliterate.deltaCallback.spec.js +146 -0
  205. package/dist/test/obliterate.deltaCallback.spec.js.map +1 -0
  206. package/dist/test/obliterate.partialLength.spec.js +39 -44
  207. package/dist/test/obliterate.partialLength.spec.js.map +1 -1
  208. package/dist/test/obliterate.reconnect.spec.js +15 -18
  209. package/dist/test/obliterate.reconnect.spec.js.map +1 -1
  210. package/dist/test/obliterate.spec.js +16 -16
  211. package/dist/test/obliterate.spec.js.map +1 -1
  212. package/dist/test/ordinal.spec.js +5 -5
  213. package/dist/test/ordinal.spec.js.map +1 -1
  214. package/dist/test/partialLength.spec.js +58 -64
  215. package/dist/test/partialLength.spec.js.map +1 -1
  216. package/dist/test/properties.spec.js +15 -15
  217. package/dist/test/properties.spec.js.map +1 -1
  218. package/dist/test/reconnectHelper.d.ts +8 -8
  219. package/dist/test/reconnectHelper.d.ts.map +1 -1
  220. package/dist/test/reconnectHelper.js +3 -3
  221. package/dist/test/reconnectHelper.js.map +1 -1
  222. package/dist/test/resetPendingSegmentsToOp.spec.js +18 -18
  223. package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  224. package/dist/test/revertibleFarm.spec.js +21 -21
  225. package/dist/test/revertibleFarm.spec.js.map +1 -1
  226. package/dist/test/revertibles.spec.js +67 -67
  227. package/dist/test/revertibles.spec.js.map +1 -1
  228. package/dist/test/segmentGroupCollection.spec.js +3 -3
  229. package/dist/test/segmentGroupCollection.spec.js.map +1 -1
  230. package/dist/test/snapshot.spec.js +16 -16
  231. package/dist/test/snapshot.spec.js.map +1 -1
  232. package/dist/test/snapshot.utils.d.ts +4 -4
  233. package/dist/test/snapshot.utils.d.ts.map +1 -1
  234. package/dist/test/snapshot.utils.js +11 -11
  235. package/dist/test/snapshot.utils.js.map +1 -1
  236. package/dist/test/snapshotlegacy.spec.js +22 -22
  237. package/dist/test/snapshotlegacy.spec.js.map +1 -1
  238. package/dist/test/sortedSegmentSet.spec.js +9 -9
  239. package/dist/test/sortedSegmentSet.spec.js.map +1 -1
  240. package/dist/test/testClient.d.ts +13 -16
  241. package/dist/test/testClient.d.ts.map +1 -1
  242. package/dist/test/testClient.js +57 -59
  243. package/dist/test/testClient.js.map +1 -1
  244. package/dist/test/testClientLogger.d.ts +3 -3
  245. package/dist/test/testClientLogger.d.ts.map +1 -1
  246. package/dist/test/testClientLogger.js +19 -19
  247. package/dist/test/testClientLogger.js.map +1 -1
  248. package/dist/test/testServer.d.ts +3 -3
  249. package/dist/test/testServer.d.ts.map +1 -1
  250. package/dist/test/testServer.js +8 -8
  251. package/dist/test/testServer.js.map +1 -1
  252. package/dist/test/testUtils.d.ts +14 -6
  253. package/dist/test/testUtils.d.ts.map +1 -1
  254. package/dist/test/testUtils.js +36 -17
  255. package/dist/test/testUtils.js.map +1 -1
  256. package/dist/test/text.d.ts +2 -2
  257. package/dist/test/text.d.ts.map +1 -1
  258. package/dist/test/text.js +10 -10
  259. package/dist/test/text.js.map +1 -1
  260. package/dist/test/tracking.spec.js +12 -12
  261. package/dist/test/tracking.spec.js.map +1 -1
  262. package/dist/test/{wordUnitTests.d.ts → wordUnitTests.spec.d.ts} +1 -1
  263. package/dist/test/wordUnitTests.spec.d.ts.map +1 -0
  264. package/dist/test/{wordUnitTests.js → wordUnitTests.spec.js} +16 -15
  265. package/dist/test/wordUnitTests.spec.js.map +1 -0
  266. package/dist/textSegment.d.ts +3 -3
  267. package/dist/textSegment.d.ts.map +1 -1
  268. package/dist/textSegment.js +2 -2
  269. package/dist/textSegment.js.map +1 -1
  270. package/dist/tsdoc-metadata.json +1 -1
  271. package/dist/zamboni.d.ts +2 -2
  272. package/dist/zamboni.d.ts.map +1 -1
  273. package/dist/zamboni.js +19 -19
  274. package/dist/zamboni.js.map +1 -1
  275. package/lib/{MergeTreeTextHelper.d.mts → MergeTreeTextHelper.d.ts} +3 -3
  276. package/lib/MergeTreeTextHelper.d.ts.map +1 -0
  277. package/lib/{MergeTreeTextHelper.mjs → MergeTreeTextHelper.js} +3 -2
  278. package/lib/MergeTreeTextHelper.js.map +1 -0
  279. package/lib/{attributionCollection.d.mts → attributionCollection.d.ts} +2 -2
  280. package/lib/attributionCollection.d.ts.map +1 -0
  281. package/lib/{attributionCollection.mjs → attributionCollection.js} +1 -1
  282. package/lib/attributionCollection.js.map +1 -0
  283. package/lib/{attributionPolicy.d.mts → attributionPolicy.d.ts} +2 -2
  284. package/lib/attributionPolicy.d.ts.map +1 -0
  285. package/lib/{attributionPolicy.mjs → attributionPolicy.js} +4 -4
  286. package/lib/attributionPolicy.js.map +1 -0
  287. package/lib/{client.d.mts → client.d.ts} +32 -13
  288. package/lib/client.d.ts.map +1 -0
  289. package/lib/{client.mjs → client.js} +42 -31
  290. package/lib/client.js.map +1 -0
  291. package/lib/collections/{index.d.mts → index.d.ts} +3 -3
  292. package/lib/collections/index.d.ts.map +1 -0
  293. package/lib/collections/index.js +7 -0
  294. package/lib/collections/index.js.map +1 -0
  295. package/lib/collections/{list.d.mts → list.d.ts} +1 -1
  296. package/lib/collections/list.d.ts.map +1 -0
  297. package/lib/collections/{list.mjs → list.js} +1 -1
  298. package/lib/collections/list.js.map +1 -0
  299. package/lib/collections/{rbTree.d.mts → rbTree.d.ts} +1 -1
  300. package/lib/collections/rbTree.d.ts.map +1 -0
  301. package/lib/collections/{rbTree.mjs → rbTree.js} +1 -1
  302. package/lib/collections/rbTree.js.map +1 -0
  303. package/lib/{constants.d.mts → constants.d.ts} +1 -1
  304. package/lib/constants.d.ts.map +1 -0
  305. package/lib/{constants.mjs → constants.js} +1 -1
  306. package/lib/constants.js.map +1 -0
  307. package/lib/{endOfTreeSegment.d.mts → endOfTreeSegment.d.ts} +4 -4
  308. package/lib/endOfTreeSegment.d.ts.map +1 -0
  309. package/lib/{endOfTreeSegment.mjs → endOfTreeSegment.js} +3 -3
  310. package/lib/endOfTreeSegment.js.map +1 -0
  311. package/lib/{index.d.mts → index.d.ts} +21 -21
  312. package/lib/index.d.ts.map +1 -0
  313. package/lib/{index.mjs → index.js} +20 -20
  314. package/lib/index.js.map +1 -0
  315. package/lib/{localReference.d.mts → localReference.d.ts} +10 -40
  316. package/lib/localReference.d.ts.map +1 -0
  317. package/lib/{localReference.mjs → localReference.js} +12 -6
  318. package/lib/localReference.js.map +1 -0
  319. package/lib/{merge-tree-alpha.d.mts → merge-tree-alpha.d.ts} +28 -450
  320. package/lib/merge-tree-beta.d.ts +230 -0
  321. package/lib/merge-tree-public.d.ts +230 -0
  322. package/lib/{merge-tree-untrimmed.d.mts → merge-tree-untrimmed.d.ts} +28 -787
  323. package/lib/{mergeTree.d.mts → mergeTree.d.ts} +12 -20
  324. package/lib/mergeTree.d.ts.map +1 -0
  325. package/lib/{mergeTree.mjs → mergeTree.js} +47 -32
  326. package/lib/mergeTree.js.map +1 -0
  327. package/lib/{mergeTreeDeltaCallback.d.mts → mergeTreeDeltaCallback.d.ts} +8 -8
  328. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -0
  329. package/lib/{mergeTreeDeltaCallback.mjs → mergeTreeDeltaCallback.js} +1 -1
  330. package/lib/mergeTreeDeltaCallback.js.map +1 -0
  331. package/lib/{mergeTreeNodeWalk.d.mts → mergeTreeNodeWalk.d.ts} +2 -2
  332. package/lib/mergeTreeNodeWalk.d.ts.map +1 -0
  333. package/lib/{mergeTreeNodeWalk.mjs → mergeTreeNodeWalk.js} +1 -1
  334. package/lib/mergeTreeNodeWalk.js.map +1 -0
  335. package/lib/{mergeTreeNodes.d.mts → mergeTreeNodes.d.ts} +18 -15
  336. package/lib/mergeTreeNodes.d.ts.map +1 -0
  337. package/lib/{mergeTreeNodes.mjs → mergeTreeNodes.js} +12 -10
  338. package/lib/mergeTreeNodes.js.map +1 -0
  339. package/lib/{mergeTreeTracking.d.mts → mergeTreeTracking.d.ts} +3 -3
  340. package/lib/mergeTreeTracking.d.ts.map +1 -0
  341. package/lib/{mergeTreeTracking.mjs → mergeTreeTracking.js} +3 -2
  342. package/lib/mergeTreeTracking.js.map +1 -0
  343. package/lib/{opBuilder.d.mts → opBuilder.d.ts} +4 -4
  344. package/lib/{opBuilder.d.mts.map → opBuilder.d.ts.map} +1 -1
  345. package/lib/{opBuilder.mjs → opBuilder.js} +2 -2
  346. package/lib/opBuilder.js.map +1 -0
  347. package/lib/{ops.d.mts → ops.d.ts} +1 -1
  348. package/lib/ops.d.ts.map +1 -0
  349. package/lib/{ops.mjs → ops.js} +1 -1
  350. package/lib/ops.js.map +1 -0
  351. package/lib/{ordinal.d.mts → ordinal.d.ts} +1 -1
  352. package/lib/ordinal.d.ts.map +1 -0
  353. package/lib/{ordinal.mjs → ordinal.js} +2 -1
  354. package/lib/ordinal.js.map +1 -0
  355. package/lib/{partialLengths.d.mts → partialLengths.d.ts} +6 -6
  356. package/lib/partialLengths.d.ts.map +1 -0
  357. package/lib/{partialLengths.mjs → partialLengths.js} +11 -10
  358. package/lib/partialLengths.js.map +1 -0
  359. package/lib/{properties.d.mts → properties.d.ts} +1 -1
  360. package/lib/properties.d.ts.map +1 -0
  361. package/lib/{properties.mjs → properties.js} +1 -1
  362. package/lib/properties.js.map +1 -0
  363. package/lib/{referencePositions.d.mts → referencePositions.d.ts} +5 -5
  364. package/lib/referencePositions.d.ts.map +1 -0
  365. package/lib/{referencePositions.mjs → referencePositions.js} +2 -2
  366. package/lib/referencePositions.js.map +1 -0
  367. package/lib/{revertibles.d.mts → revertibles.d.ts} +8 -8
  368. package/lib/revertibles.d.ts.map +1 -0
  369. package/lib/{revertibles.mjs → revertibles.js} +13 -13
  370. package/lib/revertibles.js.map +1 -0
  371. package/lib/{segmentGroupCollection.d.mts → segmentGroupCollection.d.ts} +2 -2
  372. package/lib/segmentGroupCollection.d.ts.map +1 -0
  373. package/lib/{segmentGroupCollection.mjs → segmentGroupCollection.js} +2 -2
  374. package/lib/segmentGroupCollection.js.map +1 -0
  375. package/lib/{segmentPropertiesManager.d.mts → segmentPropertiesManager.d.ts} +3 -3
  376. package/lib/segmentPropertiesManager.d.ts.map +1 -0
  377. package/lib/{segmentPropertiesManager.mjs → segmentPropertiesManager.js} +5 -3
  378. package/lib/segmentPropertiesManager.js.map +1 -0
  379. package/lib/{snapshotChunks.d.mts → snapshotChunks.d.ts} +4 -4
  380. package/lib/snapshotChunks.d.ts.map +1 -0
  381. package/lib/{snapshotChunks.mjs → snapshotChunks.js} +2 -2
  382. package/lib/snapshotChunks.js.map +1 -0
  383. package/lib/{snapshotLoader.d.mts → snapshotLoader.d.ts} +4 -4
  384. package/lib/snapshotLoader.d.ts.map +1 -0
  385. package/lib/{snapshotLoader.mjs → snapshotLoader.js} +10 -9
  386. package/lib/snapshotLoader.js.map +1 -0
  387. package/lib/{snapshotV1.d.mts → snapshotV1.d.ts} +4 -4
  388. package/lib/snapshotV1.d.ts.map +1 -0
  389. package/lib/{snapshotV1.mjs → snapshotV1.js} +24 -7
  390. package/lib/snapshotV1.js.map +1 -0
  391. package/lib/{snapshotlegacy.d.mts → snapshotlegacy.d.ts} +3 -3
  392. package/lib/snapshotlegacy.d.ts.map +1 -0
  393. package/lib/{snapshotlegacy.mjs → snapshotlegacy.js} +17 -4
  394. package/lib/snapshotlegacy.js.map +1 -0
  395. package/lib/{sortedSegmentSet.d.mts → sortedSegmentSet.d.ts} +4 -4
  396. package/lib/sortedSegmentSet.d.ts.map +1 -0
  397. package/lib/{sortedSegmentSet.mjs → sortedSegmentSet.js} +8 -5
  398. package/lib/sortedSegmentSet.js.map +1 -0
  399. package/lib/{sortedSet.d.mts → sortedSet.d.ts} +1 -1
  400. package/lib/sortedSet.d.ts.map +1 -0
  401. package/lib/{sortedSet.mjs → sortedSet.js} +1 -1
  402. package/lib/sortedSet.js.map +1 -0
  403. package/lib/test/Insertion.perf.spec.d.ts +6 -0
  404. package/lib/test/Insertion.perf.spec.d.ts.map +1 -0
  405. package/lib/test/Insertion.perf.spec.js +111 -0
  406. package/lib/test/Insertion.perf.spec.js.map +1 -0
  407. package/lib/test/PartialLengths.perf.spec.d.ts +6 -0
  408. package/lib/test/PartialLengths.perf.spec.d.ts.map +1 -0
  409. package/lib/test/PartialLengths.perf.spec.js +65 -0
  410. package/lib/test/PartialLengths.perf.spec.js.map +1 -0
  411. package/lib/test/Removal.perf.spec.d.ts +6 -0
  412. package/lib/test/Removal.perf.spec.d.ts.map +1 -0
  413. package/lib/test/Removal.perf.spec.js +164 -0
  414. package/lib/test/Removal.perf.spec.js.map +1 -0
  415. package/lib/test/Snapshot.perf.spec.d.ts +6 -0
  416. package/lib/test/Snapshot.perf.spec.d.ts.map +1 -0
  417. package/lib/test/Snapshot.perf.spec.js +31 -0
  418. package/lib/test/Snapshot.perf.spec.js.map +1 -0
  419. package/lib/test/attributionCollection.perf.spec.d.ts +6 -0
  420. package/lib/test/attributionCollection.perf.spec.d.ts.map +1 -0
  421. package/lib/test/attributionCollection.perf.spec.js +229 -0
  422. package/lib/test/attributionCollection.perf.spec.js.map +1 -0
  423. package/lib/test/attributionCollection.spec.d.ts +6 -0
  424. package/lib/test/attributionCollection.spec.d.ts.map +1 -0
  425. package/lib/test/attributionCollection.spec.js +484 -0
  426. package/lib/test/attributionCollection.spec.js.map +1 -0
  427. package/lib/test/attributionPolicy.spec.d.ts +6 -0
  428. package/lib/test/attributionPolicy.spec.d.ts.map +1 -0
  429. package/lib/test/attributionPolicy.spec.js +187 -0
  430. package/lib/test/attributionPolicy.spec.js.map +1 -0
  431. package/lib/test/beastTest.spec.d.ts +54 -0
  432. package/lib/test/beastTest.spec.d.ts.map +1 -0
  433. package/lib/test/beastTest.spec.js +1318 -0
  434. package/lib/test/beastTest.spec.js.map +1 -0
  435. package/lib/test/client.annotateMarker.spec.d.ts +6 -0
  436. package/lib/test/client.annotateMarker.spec.d.ts.map +1 -0
  437. package/lib/test/client.annotateMarker.spec.js +43 -0
  438. package/lib/test/client.annotateMarker.spec.js.map +1 -0
  439. package/lib/test/client.apis.spec.d.ts +7 -0
  440. package/lib/test/client.apis.spec.d.ts.map +1 -0
  441. package/lib/test/client.apis.spec.js +67 -0
  442. package/lib/test/client.apis.spec.js.map +1 -0
  443. package/lib/test/client.applyMsg.spec.d.ts +6 -0
  444. package/lib/test/client.applyMsg.spec.d.ts.map +1 -0
  445. package/lib/test/client.applyMsg.spec.js +561 -0
  446. package/lib/test/client.applyMsg.spec.js.map +1 -0
  447. package/lib/test/client.applyStashedOpFarm.spec.d.ts +12 -0
  448. package/lib/test/client.applyStashedOpFarm.spec.d.ts.map +1 -0
  449. package/lib/test/client.applyStashedOpFarm.spec.js +153 -0
  450. package/lib/test/client.applyStashedOpFarm.spec.js.map +1 -0
  451. package/lib/test/client.attributionFarm.spec.d.ts +7 -0
  452. package/lib/test/client.attributionFarm.spec.d.ts.map +1 -0
  453. package/lib/test/client.attributionFarm.spec.js +92 -0
  454. package/lib/test/client.attributionFarm.spec.js.map +1 -0
  455. package/lib/test/client.conflictFarm.spec.d.ts +15 -0
  456. package/lib/test/client.conflictFarm.spec.d.ts.map +1 -0
  457. package/lib/test/client.conflictFarm.spec.js +85 -0
  458. package/lib/test/client.conflictFarm.spec.js.map +1 -0
  459. package/lib/test/client.getPosition.spec.d.ts +6 -0
  460. package/lib/test/client.getPosition.spec.d.ts.map +1 -0
  461. package/lib/test/client.getPosition.spec.js +52 -0
  462. package/lib/test/client.getPosition.spec.js.map +1 -0
  463. package/lib/test/client.localReference.spec.d.ts +6 -0
  464. package/lib/test/client.localReference.spec.d.ts.map +1 -0
  465. package/lib/test/client.localReference.spec.js +468 -0
  466. package/lib/test/client.localReference.spec.js.map +1 -0
  467. package/lib/test/client.localReferenceFarm.spec.d.ts +6 -0
  468. package/lib/test/client.localReferenceFarm.spec.d.ts.map +1 -0
  469. package/lib/test/client.localReferenceFarm.spec.js +86 -0
  470. package/lib/test/client.localReferenceFarm.spec.js.map +1 -0
  471. package/lib/test/client.rebasePosition.spec.d.ts +6 -0
  472. package/lib/test/client.rebasePosition.spec.d.ts.map +1 -0
  473. package/lib/test/client.rebasePosition.spec.js +100 -0
  474. package/lib/test/client.rebasePosition.spec.js.map +1 -0
  475. package/lib/test/client.reconnectFarm.spec.d.ts +12 -0
  476. package/lib/test/client.reconnectFarm.spec.d.ts.map +1 -0
  477. package/lib/test/client.reconnectFarm.spec.js +88 -0
  478. package/lib/test/client.reconnectFarm.spec.js.map +1 -0
  479. package/lib/test/client.replay.spec.d.ts +6 -0
  480. package/lib/test/client.replay.spec.d.ts.map +1 -0
  481. package/lib/test/client.replay.spec.js +57 -0
  482. package/lib/test/client.replay.spec.js.map +1 -0
  483. package/lib/test/client.rollback.spec.d.ts +6 -0
  484. package/lib/test/client.rollback.spec.d.ts.map +1 -0
  485. package/lib/test/client.rollback.spec.js +451 -0
  486. package/lib/test/client.rollback.spec.js.map +1 -0
  487. package/lib/test/client.rollbackFarm.spec.d.ts +6 -0
  488. package/lib/test/client.rollbackFarm.spec.d.ts.map +1 -0
  489. package/lib/test/client.rollbackFarm.spec.js +46 -0
  490. package/lib/test/client.rollbackFarm.spec.js.map +1 -0
  491. package/lib/test/client.searchForMarker.spec.d.ts +6 -0
  492. package/lib/test/client.searchForMarker.spec.d.ts.map +1 -0
  493. package/lib/test/client.searchForMarker.spec.js +495 -0
  494. package/lib/test/client.searchForMarker.spec.js.map +1 -0
  495. package/lib/test/client.walkSegments.spec.d.ts +6 -0
  496. package/lib/test/client.walkSegments.spec.d.ts.map +1 -0
  497. package/lib/test/client.walkSegments.spec.js +52 -0
  498. package/lib/test/client.walkSegments.spec.js.map +1 -0
  499. package/lib/test/collections.list.spec.d.ts +6 -0
  500. package/lib/test/collections.list.spec.d.ts.map +1 -0
  501. package/lib/test/collections.list.spec.js +82 -0
  502. package/lib/test/collections.list.spec.js.map +1 -0
  503. package/lib/test/createInsertOnlyAttributionPolicy.spec.d.ts +6 -0
  504. package/lib/test/createInsertOnlyAttributionPolicy.spec.d.ts.map +1 -0
  505. package/lib/test/createInsertOnlyAttributionPolicy.spec.js +33 -0
  506. package/lib/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -0
  507. package/lib/test/dirname.cjs +16 -0
  508. package/lib/test/dirname.cjs.map +1 -0
  509. package/lib/test/dirname.d.cts +6 -0
  510. package/lib/test/dirname.d.cts.map +1 -0
  511. package/lib/test/index.d.ts +13 -0
  512. package/lib/test/index.d.ts.map +1 -0
  513. package/lib/test/index.js +13 -0
  514. package/lib/test/index.js.map +1 -0
  515. package/lib/test/mergeTree.annotate.deltaCallback.spec.d.ts +6 -0
  516. package/lib/test/mergeTree.annotate.deltaCallback.spec.d.ts.map +1 -0
  517. package/lib/test/mergeTree.annotate.deltaCallback.spec.js +140 -0
  518. package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -0
  519. package/lib/test/mergeTree.annotate.spec.d.ts +6 -0
  520. package/lib/test/mergeTree.annotate.spec.d.ts.map +1 -0
  521. package/lib/test/mergeTree.annotate.spec.js +446 -0
  522. package/lib/test/mergeTree.annotate.spec.js.map +1 -0
  523. package/lib/test/mergeTree.insert.deltaCallback.spec.d.ts +6 -0
  524. package/lib/test/mergeTree.insert.deltaCallback.spec.d.ts.map +1 -0
  525. package/lib/test/mergeTree.insert.deltaCallback.spec.js +124 -0
  526. package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -0
  527. package/lib/test/mergeTree.insertingWalk.spec.d.ts +6 -0
  528. package/lib/test/mergeTree.insertingWalk.spec.d.ts.map +1 -0
  529. package/lib/test/mergeTree.insertingWalk.spec.js +277 -0
  530. package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -0
  531. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts +6 -0
  532. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts.map +1 -0
  533. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +176 -0
  534. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -0
  535. package/lib/test/mergeTree.markRangeRemoved.spec.d.ts +6 -0
  536. package/lib/test/mergeTree.markRangeRemoved.spec.d.ts.map +1 -0
  537. package/lib/test/mergeTree.markRangeRemoved.spec.js +128 -0
  538. package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -0
  539. package/lib/test/mergeTree.walk.spec.d.ts +6 -0
  540. package/lib/test/mergeTree.walk.spec.d.ts.map +1 -0
  541. package/lib/test/mergeTree.walk.spec.js +61 -0
  542. package/lib/test/mergeTree.walk.spec.js.map +1 -0
  543. package/lib/test/mergeTree.zamboni.spec.d.ts +6 -0
  544. package/lib/test/mergeTree.zamboni.spec.d.ts.map +1 -0
  545. package/lib/test/mergeTree.zamboni.spec.js +50 -0
  546. package/lib/test/mergeTree.zamboni.spec.js.map +1 -0
  547. package/lib/test/mergeTreeOperationRunner.d.ts +63 -0
  548. package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -0
  549. package/lib/test/mergeTreeOperationRunner.js +207 -0
  550. package/lib/test/mergeTreeOperationRunner.js.map +1 -0
  551. package/lib/test/mergeTreeOperationRunner.spec.d.ts +6 -0
  552. package/lib/test/mergeTreeOperationRunner.spec.d.ts.map +1 -0
  553. package/lib/test/mergeTreeOperationRunner.spec.js +154 -0
  554. package/lib/test/mergeTreeOperationRunner.spec.js.map +1 -0
  555. package/lib/test/obliterate.concurrent.spec.d.ts +6 -0
  556. package/lib/test/obliterate.concurrent.spec.d.ts.map +1 -0
  557. package/lib/test/obliterate.concurrent.spec.js +1441 -0
  558. package/lib/test/obliterate.concurrent.spec.js.map +1 -0
  559. package/lib/test/obliterate.deltaCallback.spec.d.ts +6 -0
  560. package/lib/test/obliterate.deltaCallback.spec.d.ts.map +1 -0
  561. package/lib/test/obliterate.deltaCallback.spec.js +144 -0
  562. package/lib/test/obliterate.deltaCallback.spec.js.map +1 -0
  563. package/lib/test/obliterate.partialLength.spec.d.ts +6 -0
  564. package/lib/test/obliterate.partialLength.spec.d.ts.map +1 -0
  565. package/lib/test/obliterate.partialLength.spec.js +272 -0
  566. package/lib/test/obliterate.partialLength.spec.js.map +1 -0
  567. package/lib/test/obliterate.reconnect.spec.d.ts +6 -0
  568. package/lib/test/obliterate.reconnect.spec.d.ts.map +1 -0
  569. package/lib/test/obliterate.reconnect.spec.js +159 -0
  570. package/lib/test/obliterate.reconnect.spec.js.map +1 -0
  571. package/lib/test/obliterate.spec.d.ts +6 -0
  572. package/lib/test/obliterate.spec.d.ts.map +1 -0
  573. package/lib/test/obliterate.spec.js +160 -0
  574. package/lib/test/obliterate.spec.js.map +1 -0
  575. package/lib/test/ordinal.spec.d.ts +2 -0
  576. package/lib/test/ordinal.spec.d.ts.map +1 -0
  577. package/lib/test/ordinal.spec.js +38 -0
  578. package/lib/test/ordinal.spec.js.map +1 -0
  579. package/lib/test/partialLength.spec.d.ts +6 -0
  580. package/lib/test/partialLength.spec.d.ts.map +1 -0
  581. package/lib/test/partialLength.spec.js +274 -0
  582. package/lib/test/partialLength.spec.js.map +1 -0
  583. package/lib/test/properties.spec.d.ts +6 -0
  584. package/lib/test/properties.spec.d.ts.map +1 -0
  585. package/lib/test/properties.spec.js +53 -0
  586. package/lib/test/properties.spec.js.map +1 -0
  587. package/lib/test/reconnectHelper.d.ts +48 -0
  588. package/lib/test/reconnectHelper.d.ts.map +1 -0
  589. package/lib/test/reconnectHelper.js +82 -0
  590. package/lib/test/reconnectHelper.js.map +1 -0
  591. package/lib/test/resetPendingSegmentsToOp.spec.d.ts +6 -0
  592. package/lib/test/resetPendingSegmentsToOp.spec.d.ts.map +1 -0
  593. package/lib/test/resetPendingSegmentsToOp.spec.js +235 -0
  594. package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -0
  595. package/lib/test/revertibleFarm.spec.d.ts +6 -0
  596. package/lib/test/revertibleFarm.spec.d.ts.map +1 -0
  597. package/lib/test/revertibleFarm.spec.js +119 -0
  598. package/lib/test/revertibleFarm.spec.js.map +1 -0
  599. package/lib/test/revertibles.spec.d.ts +17 -0
  600. package/lib/test/revertibles.spec.d.ts.map +1 -0
  601. package/lib/test/revertibles.spec.js +381 -0
  602. package/lib/test/revertibles.spec.js.map +1 -0
  603. package/lib/test/segmentGroupCollection.spec.d.ts +6 -0
  604. package/lib/test/segmentGroupCollection.spec.d.ts.map +1 -0
  605. package/lib/test/segmentGroupCollection.spec.js +58 -0
  606. package/lib/test/segmentGroupCollection.spec.js.map +1 -0
  607. package/lib/test/snapshot.spec.d.ts +6 -0
  608. package/lib/test/snapshot.spec.d.ts.map +1 -0
  609. package/lib/test/snapshot.spec.js +176 -0
  610. package/lib/test/snapshot.spec.js.map +1 -0
  611. package/lib/test/snapshot.utils.d.ts +33 -0
  612. package/lib/test/snapshot.utils.d.ts.map +1 -0
  613. package/lib/test/snapshot.utils.js +104 -0
  614. package/lib/test/snapshot.utils.js.map +1 -0
  615. package/lib/test/snapshotlegacy.spec.d.ts +6 -0
  616. package/lib/test/snapshotlegacy.spec.d.ts.map +1 -0
  617. package/lib/test/snapshotlegacy.spec.js +137 -0
  618. package/lib/test/snapshotlegacy.spec.js.map +1 -0
  619. package/lib/test/sortedSegmentSet.spec.d.ts +6 -0
  620. package/lib/test/sortedSegmentSet.spec.d.ts.map +1 -0
  621. package/lib/test/sortedSegmentSet.spec.js +93 -0
  622. package/lib/test/sortedSegmentSet.spec.js.map +1 -0
  623. package/lib/test/testClient.d.ts +116 -0
  624. package/lib/test/testClient.d.ts.map +1 -0
  625. package/lib/test/testClient.js +430 -0
  626. package/lib/test/testClient.js.map +1 -0
  627. package/lib/test/testClientLogger.d.ts +44 -0
  628. package/lib/test/testClientLogger.d.ts.map +1 -0
  629. package/lib/test/testClientLogger.js +282 -0
  630. package/lib/test/testClientLogger.js.map +1 -0
  631. package/lib/test/testSerializer.d.ts +18 -0
  632. package/lib/test/testSerializer.d.ts.map +1 -0
  633. package/lib/test/testSerializer.js +29 -0
  634. package/lib/test/testSerializer.js.map +1 -0
  635. package/lib/test/testServer.d.ts +36 -0
  636. package/lib/test/testServer.d.ts.map +1 -0
  637. package/lib/test/testServer.js +133 -0
  638. package/lib/test/testServer.js.map +1 -0
  639. package/lib/test/testUtils.d.ts +77 -0
  640. package/lib/test/testUtils.d.ts.map +1 -0
  641. package/lib/test/testUtils.js +151 -0
  642. package/lib/test/testUtils.js.map +1 -0
  643. package/lib/test/text.d.ts +9 -0
  644. package/lib/test/text.d.ts.map +1 -0
  645. package/lib/test/text.js +71 -0
  646. package/lib/test/text.js.map +1 -0
  647. package/lib/test/tracking.spec.d.ts +6 -0
  648. package/lib/test/tracking.spec.d.ts.map +1 -0
  649. package/lib/test/tracking.spec.js +118 -0
  650. package/lib/test/tracking.spec.js.map +1 -0
  651. package/lib/test/types/validateMergeTreePrevious.generated.d.ts +2 -0
  652. package/lib/test/types/validateMergeTreePrevious.generated.d.ts.map +1 -0
  653. package/lib/test/types/validateMergeTreePrevious.generated.js +228 -0
  654. package/lib/test/types/validateMergeTreePrevious.generated.js.map +1 -0
  655. package/lib/test/wordUnitTests.spec.d.ts +6 -0
  656. package/lib/test/wordUnitTests.spec.d.ts.map +1 -0
  657. package/lib/test/wordUnitTests.spec.js +166 -0
  658. package/lib/test/wordUnitTests.spec.js.map +1 -0
  659. package/lib/{textSegment.d.mts → textSegment.d.ts} +4 -4
  660. package/lib/textSegment.d.ts.map +1 -0
  661. package/lib/{textSegment.mjs → textSegment.js} +2 -2
  662. package/lib/textSegment.js.map +1 -0
  663. package/lib/{zamboni.d.mts → zamboni.d.ts} +3 -3
  664. package/lib/zamboni.d.ts.map +1 -0
  665. package/lib/{zamboni.mjs → zamboni.js} +7 -6
  666. package/lib/zamboni.js.map +1 -0
  667. package/package.json +50 -57
  668. package/src/MergeTreeTextHelper.ts +4 -4
  669. package/src/attributionCollection.ts +1 -1
  670. package/src/attributionPolicy.ts +5 -5
  671. package/src/client.ts +50 -41
  672. package/src/collections/index.ts +2 -2
  673. package/src/endOfTreeSegment.ts +5 -5
  674. package/src/index.ts +20 -20
  675. package/src/localReference.ts +13 -7
  676. package/src/mergeTree.ts +53 -44
  677. package/src/mergeTreeDeltaCallback.ts +3 -8
  678. package/src/mergeTreeNodeWalk.ts +1 -1
  679. package/src/mergeTreeNodes.ts +21 -19
  680. package/src/mergeTreeTracking.ts +3 -3
  681. package/src/opBuilder.ts +3 -3
  682. package/src/partialLengths.ts +10 -10
  683. package/src/referencePositions.ts +4 -4
  684. package/src/revertibles.ts +14 -18
  685. package/src/segmentGroupCollection.ts +2 -2
  686. package/src/segmentPropertiesManager.ts +3 -3
  687. package/src/snapshotChunks.ts +4 -4
  688. package/src/snapshotLoader.ts +14 -11
  689. package/src/snapshotV1.ts +29 -9
  690. package/src/snapshotlegacy.ts +19 -5
  691. package/src/sortedSegmentSet.ts +8 -6
  692. package/src/textSegment.ts +3 -3
  693. package/src/zamboni.ts +7 -7
  694. package/tsconfig.cjs.json +7 -0
  695. package/tsconfig.json +2 -5
  696. package/api-extractor-esm.json +0 -17
  697. package/dist/test/beastTest.d.ts.map +0 -1
  698. package/dist/test/beastTest.js.map +0 -1
  699. package/dist/test/client.apis.d.ts.map +0 -1
  700. package/dist/test/client.apis.js.map +0 -1
  701. package/dist/test/wordUnitTests.d.ts.map +0 -1
  702. package/dist/test/wordUnitTests.js.map +0 -1
  703. package/lib/MergeTreeTextHelper.d.mts.map +0 -1
  704. package/lib/MergeTreeTextHelper.mjs.map +0 -1
  705. package/lib/attributionCollection.d.mts.map +0 -1
  706. package/lib/attributionCollection.mjs.map +0 -1
  707. package/lib/attributionPolicy.d.mts.map +0 -1
  708. package/lib/attributionPolicy.mjs.map +0 -1
  709. package/lib/client.d.mts.map +0 -1
  710. package/lib/client.mjs.map +0 -1
  711. package/lib/collections/index.d.mts.map +0 -1
  712. package/lib/collections/index.mjs +0 -7
  713. package/lib/collections/index.mjs.map +0 -1
  714. package/lib/collections/list.d.mts.map +0 -1
  715. package/lib/collections/list.mjs.map +0 -1
  716. package/lib/collections/rbTree.d.mts.map +0 -1
  717. package/lib/collections/rbTree.mjs.map +0 -1
  718. package/lib/constants.d.mts.map +0 -1
  719. package/lib/constants.mjs.map +0 -1
  720. package/lib/endOfTreeSegment.d.mts.map +0 -1
  721. package/lib/endOfTreeSegment.mjs.map +0 -1
  722. package/lib/index.d.mts.map +0 -1
  723. package/lib/index.mjs.map +0 -1
  724. package/lib/localReference.d.mts.map +0 -1
  725. package/lib/localReference.mjs.map +0 -1
  726. package/lib/merge-tree-beta.d.mts +0 -668
  727. package/lib/merge-tree-public.d.mts +0 -668
  728. package/lib/mergeTree.d.mts.map +0 -1
  729. package/lib/mergeTree.mjs.map +0 -1
  730. package/lib/mergeTreeDeltaCallback.d.mts.map +0 -1
  731. package/lib/mergeTreeDeltaCallback.mjs.map +0 -1
  732. package/lib/mergeTreeNodeWalk.d.mts.map +0 -1
  733. package/lib/mergeTreeNodeWalk.mjs.map +0 -1
  734. package/lib/mergeTreeNodes.d.mts.map +0 -1
  735. package/lib/mergeTreeNodes.mjs.map +0 -1
  736. package/lib/mergeTreeTracking.d.mts.map +0 -1
  737. package/lib/mergeTreeTracking.mjs.map +0 -1
  738. package/lib/opBuilder.mjs.map +0 -1
  739. package/lib/ops.d.mts.map +0 -1
  740. package/lib/ops.mjs.map +0 -1
  741. package/lib/ordinal.d.mts.map +0 -1
  742. package/lib/ordinal.mjs.map +0 -1
  743. package/lib/partialLengths.d.mts.map +0 -1
  744. package/lib/partialLengths.mjs.map +0 -1
  745. package/lib/properties.d.mts.map +0 -1
  746. package/lib/properties.mjs.map +0 -1
  747. package/lib/referencePositions.d.mts.map +0 -1
  748. package/lib/referencePositions.mjs.map +0 -1
  749. package/lib/revertibles.d.mts.map +0 -1
  750. package/lib/revertibles.mjs.map +0 -1
  751. package/lib/segmentGroupCollection.d.mts.map +0 -1
  752. package/lib/segmentGroupCollection.mjs.map +0 -1
  753. package/lib/segmentPropertiesManager.d.mts.map +0 -1
  754. package/lib/segmentPropertiesManager.mjs.map +0 -1
  755. package/lib/snapshotChunks.d.mts.map +0 -1
  756. package/lib/snapshotChunks.mjs.map +0 -1
  757. package/lib/snapshotLoader.d.mts.map +0 -1
  758. package/lib/snapshotLoader.mjs.map +0 -1
  759. package/lib/snapshotV1.d.mts.map +0 -1
  760. package/lib/snapshotV1.mjs.map +0 -1
  761. package/lib/snapshotlegacy.d.mts.map +0 -1
  762. package/lib/snapshotlegacy.mjs.map +0 -1
  763. package/lib/sortedSegmentSet.d.mts.map +0 -1
  764. package/lib/sortedSegmentSet.mjs.map +0 -1
  765. package/lib/sortedSet.d.mts.map +0 -1
  766. package/lib/sortedSet.mjs.map +0 -1
  767. package/lib/textSegment.d.mts.map +0 -1
  768. package/lib/textSegment.mjs.map +0 -1
  769. package/lib/zamboni.d.mts.map +0 -1
  770. package/lib/zamboni.mjs.map +0 -1
package/dist/test/text.js CHANGED
@@ -5,10 +5,10 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.loadText = exports.loadSegments = void 0;
8
- const mergeTreeNodes_1 = require("../mergeTreeNodes");
9
- const ops_1 = require("../ops");
10
- const referencePositions_1 = require("../referencePositions");
11
- const textSegment_1 = require("../textSegment");
8
+ const mergeTreeNodes_js_1 = require("../mergeTreeNodes.js");
9
+ const ops_js_1 = require("../ops.js");
10
+ const referencePositions_js_1 = require("../referencePositions.js");
11
+ const textSegment_js_1 = require("../textSegment.js");
12
12
  function loadSegments(content, segLimit, markers = false, withProps = true) {
13
13
  const BOMFreeContent = content.replace(/^\uFEFF/, "");
14
14
  const paragraphs = BOMFreeContent.split(/\r?\n/);
@@ -25,16 +25,16 @@ function loadSegments(content, segLimit, markers = false, withProps = true) {
25
25
  for (const paragraph of paragraphs) {
26
26
  let pgMarker;
27
27
  if (markers) {
28
- pgMarker = mergeTreeNodes_1.Marker.make(ops_1.ReferenceType.Tile, { [referencePositions_1.reservedTileLabelsKey]: ["pg"] });
28
+ pgMarker = mergeTreeNodes_js_1.Marker.make(ops_js_1.ReferenceType.Tile, { [referencePositions_js_1.reservedTileLabelsKey]: ["pg"] });
29
29
  }
30
30
  if (withProps) {
31
31
  if (paragraph.includes("Chapter") || paragraph.includes("PRIDE AND PREJ")) {
32
32
  if (pgMarker) {
33
33
  pgMarker.addProperties({ header: 2 });
34
- segments.push(new textSegment_1.TextSegment(paragraph));
34
+ segments.push(new textSegment_js_1.TextSegment(paragraph));
35
35
  }
36
36
  else {
37
- segments.push(textSegment_1.TextSegment.make(paragraph, { fontSize: "140%", lineHeight: "150%" }));
37
+ segments.push(textSegment_js_1.TextSegment.make(paragraph, { fontSize: "140%", lineHeight: "150%" }));
38
38
  }
39
39
  }
40
40
  else {
@@ -43,19 +43,19 @@ function loadSegments(content, segLimit, markers = false, withProps = true) {
43
43
  // eslint-disable-next-line no-bitwise
44
44
  if (i & 1) {
45
45
  if (emphStrings[i].length > 0) {
46
- segments.push(textSegment_1.TextSegment.make(emphStrings[i], { fontStyle: "italic" }));
46
+ segments.push(textSegment_js_1.TextSegment.make(emphStrings[i], { fontStyle: "italic" }));
47
47
  }
48
48
  }
49
49
  else {
50
50
  if (emphStrings[i].length > 0) {
51
- segments.push(new textSegment_1.TextSegment(emphStrings[i]));
51
+ segments.push(new textSegment_js_1.TextSegment(emphStrings[i]));
52
52
  }
53
53
  }
54
54
  }
55
55
  }
56
56
  }
57
57
  else {
58
- segments.push(new textSegment_1.TextSegment(paragraph));
58
+ segments.push(new textSegment_js_1.TextSegment(paragraph));
59
59
  }
60
60
  if (pgMarker) {
61
61
  segments.push(pgMarker);
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/test/text.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 { ISegment, Marker } from \"../mergeTreeNodes\";\nimport { MergeTree } from \"../mergeTree\";\nimport { ReferenceType } from \"../ops\";\nimport { reservedTileLabelsKey } from \"../referencePositions\";\nimport { TextSegment } from \"../textSegment\";\n\nexport function loadSegments(\n\tcontent: string,\n\tsegLimit: number,\n\tmarkers: boolean = false,\n\twithProps: boolean = true,\n) {\n\tconst BOMFreeContent = content.replace(/^\\uFEFF/, \"\");\n\n\tconst paragraphs = BOMFreeContent.split(/\\r?\\n/);\n\tfor (let i = 0, len = paragraphs.length; i < len; i++) {\n\t\tparagraphs[i] = paragraphs[i]\n\t\t\t.replace(/\\r?\\n/g, \" \")\n\t\t\t.replace(/\\u201c|\\u201d/g, '\"')\n\t\t\t.replace(/\\u2019/g, \"'\");\n\t\tif (!markers && i !== paragraphs.length - 1) {\n\t\t\tparagraphs[i] += \"\\n\";\n\t\t}\n\t}\n\n\tconst segments = [] as ISegment[];\n\tfor (const paragraph of paragraphs) {\n\t\tlet pgMarker: Marker | undefined;\n\t\tif (markers) {\n\t\t\tpgMarker = Marker.make(ReferenceType.Tile, { [reservedTileLabelsKey]: [\"pg\"] });\n\t\t}\n\t\tif (withProps) {\n\t\t\tif (paragraph.includes(\"Chapter\") || paragraph.includes(\"PRIDE AND PREJ\")) {\n\t\t\t\tif (pgMarker) {\n\t\t\t\t\tpgMarker.addProperties({ header: 2 });\n\t\t\t\t\tsegments.push(new TextSegment(paragraph));\n\t\t\t\t} else {\n\t\t\t\t\tsegments.push(\n\t\t\t\t\t\tTextSegment.make(paragraph, { fontSize: \"140%\", lineHeight: \"150%\" }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst emphStrings = paragraph.split(\"_\");\n\t\t\t\tfor (let i = 0, len = emphStrings.length; i < len; i++) {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (i & 1) {\n\t\t\t\t\t\tif (emphStrings[i].length > 0) {\n\t\t\t\t\t\t\tsegments.push(\n\t\t\t\t\t\t\t\tTextSegment.make(emphStrings[i], { fontStyle: \"italic\" }),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (emphStrings[i].length > 0) {\n\t\t\t\t\t\t\tsegments.push(new TextSegment(emphStrings[i]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tsegments.push(new TextSegment(paragraph));\n\t\t}\n\t\tif (pgMarker) {\n\t\t\tsegments.push(pgMarker);\n\t\t}\n\t}\n\n\tif (segLimit > 0) {\n\t\tsegments.length = segLimit;\n\t}\n\n\treturn segments;\n}\n\nexport function loadText(content: string, mergeTree: MergeTree, segLimit: number, markers = false) {\n\tconst segments = loadSegments(content, segLimit, markers);\n\tmergeTree.reloadFromSegments(segments);\n\treturn mergeTree;\n}\n"]}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/test/text.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 { ISegment, Marker } from \"../mergeTreeNodes.js\";\nimport { MergeTree } from \"../mergeTree.js\";\nimport { ReferenceType } from \"../ops.js\";\nimport { reservedTileLabelsKey } from \"../referencePositions.js\";\nimport { TextSegment } from \"../textSegment.js\";\n\nexport function loadSegments(\n\tcontent: string,\n\tsegLimit: number,\n\tmarkers: boolean = false,\n\twithProps: boolean = true,\n) {\n\tconst BOMFreeContent = content.replace(/^\\uFEFF/, \"\");\n\n\tconst paragraphs = BOMFreeContent.split(/\\r?\\n/);\n\tfor (let i = 0, len = paragraphs.length; i < len; i++) {\n\t\tparagraphs[i] = paragraphs[i]\n\t\t\t.replace(/\\r?\\n/g, \" \")\n\t\t\t.replace(/\\u201c|\\u201d/g, '\"')\n\t\t\t.replace(/\\u2019/g, \"'\");\n\t\tif (!markers && i !== paragraphs.length - 1) {\n\t\t\tparagraphs[i] += \"\\n\";\n\t\t}\n\t}\n\n\tconst segments = [] as ISegment[];\n\tfor (const paragraph of paragraphs) {\n\t\tlet pgMarker: Marker | undefined;\n\t\tif (markers) {\n\t\t\tpgMarker = Marker.make(ReferenceType.Tile, { [reservedTileLabelsKey]: [\"pg\"] });\n\t\t}\n\t\tif (withProps) {\n\t\t\tif (paragraph.includes(\"Chapter\") || paragraph.includes(\"PRIDE AND PREJ\")) {\n\t\t\t\tif (pgMarker) {\n\t\t\t\t\tpgMarker.addProperties({ header: 2 });\n\t\t\t\t\tsegments.push(new TextSegment(paragraph));\n\t\t\t\t} else {\n\t\t\t\t\tsegments.push(\n\t\t\t\t\t\tTextSegment.make(paragraph, { fontSize: \"140%\", lineHeight: \"150%\" }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst emphStrings = paragraph.split(\"_\");\n\t\t\t\tfor (let i = 0, len = emphStrings.length; i < len; i++) {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (i & 1) {\n\t\t\t\t\t\tif (emphStrings[i].length > 0) {\n\t\t\t\t\t\t\tsegments.push(\n\t\t\t\t\t\t\t\tTextSegment.make(emphStrings[i], { fontStyle: \"italic\" }),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (emphStrings[i].length > 0) {\n\t\t\t\t\t\t\tsegments.push(new TextSegment(emphStrings[i]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tsegments.push(new TextSegment(paragraph));\n\t\t}\n\t\tif (pgMarker) {\n\t\t\tsegments.push(pgMarker);\n\t\t}\n\t}\n\n\tif (segLimit > 0) {\n\t\tsegments.length = segLimit;\n\t}\n\n\treturn segments;\n}\n\nexport function loadText(content: string, mergeTree: MergeTree, segLimit: number, markers = false) {\n\tconst segments = loadSegments(content, segLimit, markers);\n\tmergeTree.reloadFromSegments(segments);\n\treturn mergeTree;\n}\n"]}
@@ -5,13 +5,13 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const assert_1 = require("assert");
8
- const mergeTreeTracking_1 = require("../mergeTreeTracking");
9
- const ops_1 = require("../ops");
10
- const testClient_1 = require("./testClient");
8
+ const mergeTreeTracking_js_1 = require("../mergeTreeTracking.js");
9
+ const ops_js_1 = require("../ops.js");
10
+ const testClient_js_1 = require("./testClient.js");
11
11
  describe("MergeTree.tracking", () => {
12
12
  let testClient;
13
13
  beforeEach(() => {
14
- testClient = new testClient_1.TestClient();
14
+ testClient = new testClient_js_1.TestClient();
15
15
  testClient.startOrUpdateCollaboration("me");
16
16
  });
17
17
  it("Inserted segment should have empty tracking groups", () => {
@@ -21,7 +21,7 @@ describe("MergeTree.tracking", () => {
21
21
  (0, assert_1.strict)(segmentInfo?.segment?.trackingCollection.empty);
22
22
  });
23
23
  it("Insert single segment with single tracking group", () => {
24
- const trackingGroup = new mergeTreeTracking_1.TrackingGroup();
24
+ const trackingGroup = new mergeTreeTracking_js_1.TrackingGroup();
25
25
  testClient.on("delta", (opArgs, deltaArgs) => {
26
26
  deltaArgs.deltaSegments.forEach((sg) => sg.segment.trackingCollection.link(trackingGroup));
27
27
  });
@@ -33,7 +33,7 @@ describe("MergeTree.tracking", () => {
33
33
  assert_1.strict.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 0);
34
34
  });
35
35
  it("Splitting segment should split tracking group", () => {
36
- const trackingGroup = new mergeTreeTracking_1.TrackingGroup();
36
+ const trackingGroup = new mergeTreeTracking_js_1.TrackingGroup();
37
37
  testClient.on("delta", (opArgs, deltaArgs) => {
38
38
  deltaArgs.deltaSegments.forEach((sg) => sg.segment.trackingCollection.link(trackingGroup));
39
39
  });
@@ -47,7 +47,7 @@ describe("MergeTree.tracking", () => {
47
47
  assert_1.strict.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);
48
48
  });
49
49
  it("Zamboni should merge matching tracking groups", () => {
50
- const trackingGroup = new mergeTreeTracking_1.TrackingGroup();
50
+ const trackingGroup = new mergeTreeTracking_js_1.TrackingGroup();
51
51
  testClient.on("delta", (opArgs, deltaArgs) => {
52
52
  deltaArgs.deltaSegments.forEach((sg) => sg.segment.trackingCollection.link(trackingGroup));
53
53
  });
@@ -73,7 +73,7 @@ describe("MergeTree.tracking", () => {
73
73
  assert_1.strict.equal(testClient.getLength(), 3);
74
74
  const segmentInfo = testClient.getContainingSegment(0);
75
75
  (0, assert_1.strict)(segmentInfo.segment);
76
- const ref = testClient.createLocalReferencePosition(segmentInfo.segment, 0, ops_1.ReferenceType.SlideOnRemove, undefined);
76
+ const ref = testClient.createLocalReferencePosition(segmentInfo.segment, 0, ops_js_1.ReferenceType.SlideOnRemove, undefined);
77
77
  (0, assert_1.strict)(ref.trackingCollection.empty);
78
78
  });
79
79
  it("Local reference can be added an removed from tracking group", () => {
@@ -81,8 +81,8 @@ describe("MergeTree.tracking", () => {
81
81
  assert_1.strict.equal(testClient.getLength(), 3);
82
82
  const segmentInfo = testClient.getContainingSegment(0);
83
83
  (0, assert_1.strict)(segmentInfo.segment);
84
- const ref = testClient.createLocalReferencePosition(segmentInfo.segment, 0, ops_1.ReferenceType.SlideOnRemove, undefined);
85
- const trackingGroup = new mergeTreeTracking_1.TrackingGroup();
84
+ const ref = testClient.createLocalReferencePosition(segmentInfo.segment, 0, ops_js_1.ReferenceType.SlideOnRemove, undefined);
85
+ const trackingGroup = new mergeTreeTracking_js_1.TrackingGroup();
86
86
  ref.trackingCollection.link(trackingGroup);
87
87
  assert_1.strict.equal(trackingGroup.size, 1);
88
88
  assert_1.strict.equal(trackingGroup.has(ref), true);
@@ -95,7 +95,7 @@ describe("MergeTree.tracking", () => {
95
95
  assert_1.strict.equal(ref.trackingCollection.trackingGroups.size, 0);
96
96
  });
97
97
  it("unlink segment from tracking group", () => {
98
- const trackingGroup = new mergeTreeTracking_1.TrackingGroup();
98
+ const trackingGroup = new mergeTreeTracking_js_1.TrackingGroup();
99
99
  testClient.insertTextLocal(0, "abc");
100
100
  const { segment } = testClient.getContainingSegment(0);
101
101
  segment?.trackingCollection.link(trackingGroup);
@@ -106,7 +106,7 @@ describe("MergeTree.tracking", () => {
106
106
  assert_1.strict.equal(segment.trackingCollection.unlink(trackingGroup), false, "repeat unlink trackingGroup should be false");
107
107
  });
108
108
  it("unlink tracking group from collection", () => {
109
- const trackingGroup = new mergeTreeTracking_1.TrackingGroup();
109
+ const trackingGroup = new mergeTreeTracking_js_1.TrackingGroup();
110
110
  testClient.insertTextLocal(0, "abc");
111
111
  const { segment } = testClient.getContainingSegment(0);
112
112
  segment?.trackingCollection.link(trackingGroup);
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.spec.js","sourceRoot":"","sources":["../../src/test/tracking.spec.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 { strict as assert } from \"assert\";\nimport { TrackingGroup } from \"../mergeTreeTracking\";\nimport { ReferenceType } from \"../ops\";\nimport { TestClient } from \"./testClient\";\n\ndescribe(\"MergeTree.tracking\", () => {\n\tlet testClient: TestClient;\n\n\tbeforeEach(() => {\n\t\ttestClient = new TestClient();\n\t\ttestClient.startOrUpdateCollaboration(\"me\");\n\t});\n\n\tit(\"Inserted segment should have empty tracking groups\", () => {\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(testClient.getLength(), 3);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\n\t\tassert(segmentInfo?.segment?.trackingCollection.empty);\n\t});\n\n\tit(\"Insert single segment with single tracking group\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.on(\"delta\", (opArgs, deltaArgs) => {\n\t\t\tdeltaArgs.deltaSegments.forEach((sg) =>\n\t\t\t\tsg.segment.trackingCollection.link(trackingGroup),\n\t\t\t);\n\t\t});\n\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(trackingGroup.size, 1);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tassert(trackingGroup.unlink(segmentInfo.segment), \"unlink segment should be true\");\n\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 0);\n\t});\n\n\tit(\"Splitting segment should split tracking group\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.on(\"delta\", (opArgs, deltaArgs) => {\n\t\t\tdeltaArgs.deltaSegments.forEach((sg) =>\n\t\t\t\tsg.segment.trackingCollection.link(trackingGroup),\n\t\t\t);\n\t\t});\n\n\t\tconst ops = [testClient.insertTextLocal(0, \"abc\")];\n\n\t\ttestClient.removeAllListeners(\"delta\");\n\t\tassert.equal(trackingGroup.size, 1);\n\n\t\tops.push(testClient.insertTextLocal(1, \"z\"));\n\t\tassert.equal(testClient.getLength(), 4);\n\n\t\tassert.equal(trackingGroup.size, 2);\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\t});\n\n\tit(\"Zamboni should merge matching tracking groups\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.on(\"delta\", (opArgs, deltaArgs) => {\n\t\t\tdeltaArgs.deltaSegments.forEach((sg) =>\n\t\t\t\tsg.segment.trackingCollection.link(trackingGroup),\n\t\t\t);\n\t\t});\n\n\t\tconst ops = [testClient.insertTextLocal(0, \"abc\")];\n\n\t\tassert.equal(trackingGroup.size, 1);\n\n\t\tops.push(testClient.insertTextLocal(1, \"z\"));\n\t\tassert.equal(testClient.getLength(), 4);\n\n\t\tassert.equal(trackingGroup.size, 3);\n\t\tlet segmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tlet seq = 1;\n\t\tops.forEach((op) => testClient.applyMsg(testClient.makeOpMessage(op, ++seq)));\n\n\t\tassert.equal(trackingGroup.size, 3);\n\t\tsegmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\ttestClient.updateMinSeq(seq);\n\n\t\tassert.equal(trackingGroup.size, 1);\n\t\tsegmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\t});\n\n\tit(\"Newly created local reference should have empty tracking group\", () => {\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(testClient.getLength(), 3);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\t\tassert(segmentInfo.segment);\n\t\tconst ref = testClient.createLocalReferencePosition(\n\t\t\tsegmentInfo.segment,\n\t\t\t0,\n\t\t\tReferenceType.SlideOnRemove,\n\t\t\tundefined,\n\t\t);\n\n\t\tassert(ref.trackingCollection.empty);\n\t});\n\n\tit(\"Local reference can be added an removed from tracking group\", () => {\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(testClient.getLength(), 3);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\t\tassert(segmentInfo.segment);\n\t\tconst ref = testClient.createLocalReferencePosition(\n\t\t\tsegmentInfo.segment,\n\t\t\t0,\n\t\t\tReferenceType.SlideOnRemove,\n\t\t\tundefined,\n\t\t);\n\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\tref.trackingCollection.link(trackingGroup);\n\n\t\tassert.equal(trackingGroup.size, 1);\n\t\tassert.equal(trackingGroup.has(ref), true);\n\t\tassert.equal(trackingGroup.tracked.includes(ref), true);\n\t\tassert.equal(ref.trackingCollection.trackingGroups.size, 1);\n\n\t\tref.trackingCollection.unlink(trackingGroup);\n\n\t\tassert.equal(trackingGroup.size, 0);\n\t\tassert.equal(trackingGroup.has(ref), false);\n\t\tassert.equal(trackingGroup.tracked.includes(ref), false);\n\t\tassert.equal(ref.trackingCollection.trackingGroups.size, 0);\n\t});\n\n\tit(\"unlink segment from tracking group\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tconst { segment } = testClient.getContainingSegment(0);\n\t\tsegment?.trackingCollection.link(trackingGroup);\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tassert(trackingGroup.unlink(segment), \"unlink segment should be true\");\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 0);\n\n\t\tassert.equal(trackingGroup.unlink(segment), false, \"repeat unlink segment should be false\");\n\t\tassert.equal(\n\t\t\tsegment.trackingCollection.unlink(trackingGroup),\n\t\t\tfalse,\n\t\t\t\"repeat unlink trackingGroup should be false\",\n\t\t);\n\t});\n\n\tit(\"unlink tracking group from collection\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tconst { segment } = testClient.getContainingSegment(0);\n\t\tsegment?.trackingCollection.link(trackingGroup);\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tassert(\n\t\t\tsegment.trackingCollection.unlink(trackingGroup),\n\t\t\t\"unlink trackingGroup should be true\",\n\t\t);\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 0);\n\t\tassert.equal(trackingGroup.unlink(segment), false, \"repeat unlink segment should be false\");\n\t\tassert.equal(\n\t\t\tsegment.trackingCollection.unlink(trackingGroup),\n\t\t\tfalse,\n\t\t\t\"repeat unlink trackingGroup should be false\",\n\t\t);\n\t});\n});\n"]}
1
+ {"version":3,"file":"tracking.spec.js","sourceRoot":"","sources":["../../src/test/tracking.spec.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 { strict as assert } from \"assert\";\nimport { TrackingGroup } from \"../mergeTreeTracking.js\";\nimport { ReferenceType } from \"../ops.js\";\nimport { TestClient } from \"./testClient.js\";\n\ndescribe(\"MergeTree.tracking\", () => {\n\tlet testClient: TestClient;\n\n\tbeforeEach(() => {\n\t\ttestClient = new TestClient();\n\t\ttestClient.startOrUpdateCollaboration(\"me\");\n\t});\n\n\tit(\"Inserted segment should have empty tracking groups\", () => {\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(testClient.getLength(), 3);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\n\t\tassert(segmentInfo?.segment?.trackingCollection.empty);\n\t});\n\n\tit(\"Insert single segment with single tracking group\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.on(\"delta\", (opArgs, deltaArgs) => {\n\t\t\tdeltaArgs.deltaSegments.forEach((sg) =>\n\t\t\t\tsg.segment.trackingCollection.link(trackingGroup),\n\t\t\t);\n\t\t});\n\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(trackingGroup.size, 1);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tassert(trackingGroup.unlink(segmentInfo.segment), \"unlink segment should be true\");\n\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 0);\n\t});\n\n\tit(\"Splitting segment should split tracking group\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.on(\"delta\", (opArgs, deltaArgs) => {\n\t\t\tdeltaArgs.deltaSegments.forEach((sg) =>\n\t\t\t\tsg.segment.trackingCollection.link(trackingGroup),\n\t\t\t);\n\t\t});\n\n\t\tconst ops = [testClient.insertTextLocal(0, \"abc\")];\n\n\t\ttestClient.removeAllListeners(\"delta\");\n\t\tassert.equal(trackingGroup.size, 1);\n\n\t\tops.push(testClient.insertTextLocal(1, \"z\"));\n\t\tassert.equal(testClient.getLength(), 4);\n\n\t\tassert.equal(trackingGroup.size, 2);\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\t});\n\n\tit(\"Zamboni should merge matching tracking groups\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.on(\"delta\", (opArgs, deltaArgs) => {\n\t\t\tdeltaArgs.deltaSegments.forEach((sg) =>\n\t\t\t\tsg.segment.trackingCollection.link(trackingGroup),\n\t\t\t);\n\t\t});\n\n\t\tconst ops = [testClient.insertTextLocal(0, \"abc\")];\n\n\t\tassert.equal(trackingGroup.size, 1);\n\n\t\tops.push(testClient.insertTextLocal(1, \"z\"));\n\t\tassert.equal(testClient.getLength(), 4);\n\n\t\tassert.equal(trackingGroup.size, 3);\n\t\tlet segmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tlet seq = 1;\n\t\tops.forEach((op) => testClient.applyMsg(testClient.makeOpMessage(op, ++seq)));\n\n\t\tassert.equal(trackingGroup.size, 3);\n\t\tsegmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\ttestClient.updateMinSeq(seq);\n\n\t\tassert.equal(trackingGroup.size, 1);\n\t\tsegmentInfo = testClient.getContainingSegment(0);\n\t\tassert.equal(segmentInfo?.segment?.trackingCollection.trackingGroups.size, 1);\n\t});\n\n\tit(\"Newly created local reference should have empty tracking group\", () => {\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(testClient.getLength(), 3);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\t\tassert(segmentInfo.segment);\n\t\tconst ref = testClient.createLocalReferencePosition(\n\t\t\tsegmentInfo.segment,\n\t\t\t0,\n\t\t\tReferenceType.SlideOnRemove,\n\t\t\tundefined,\n\t\t);\n\n\t\tassert(ref.trackingCollection.empty);\n\t});\n\n\tit(\"Local reference can be added an removed from tracking group\", () => {\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tassert.equal(testClient.getLength(), 3);\n\n\t\tconst segmentInfo = testClient.getContainingSegment(0);\n\t\tassert(segmentInfo.segment);\n\t\tconst ref = testClient.createLocalReferencePosition(\n\t\t\tsegmentInfo.segment,\n\t\t\t0,\n\t\t\tReferenceType.SlideOnRemove,\n\t\t\tundefined,\n\t\t);\n\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\tref.trackingCollection.link(trackingGroup);\n\n\t\tassert.equal(trackingGroup.size, 1);\n\t\tassert.equal(trackingGroup.has(ref), true);\n\t\tassert.equal(trackingGroup.tracked.includes(ref), true);\n\t\tassert.equal(ref.trackingCollection.trackingGroups.size, 1);\n\n\t\tref.trackingCollection.unlink(trackingGroup);\n\n\t\tassert.equal(trackingGroup.size, 0);\n\t\tassert.equal(trackingGroup.has(ref), false);\n\t\tassert.equal(trackingGroup.tracked.includes(ref), false);\n\t\tassert.equal(ref.trackingCollection.trackingGroups.size, 0);\n\t});\n\n\tit(\"unlink segment from tracking group\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tconst { segment } = testClient.getContainingSegment(0);\n\t\tsegment?.trackingCollection.link(trackingGroup);\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tassert(trackingGroup.unlink(segment), \"unlink segment should be true\");\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 0);\n\n\t\tassert.equal(trackingGroup.unlink(segment), false, \"repeat unlink segment should be false\");\n\t\tassert.equal(\n\t\t\tsegment.trackingCollection.unlink(trackingGroup),\n\t\t\tfalse,\n\t\t\t\"repeat unlink trackingGroup should be false\",\n\t\t);\n\t});\n\n\tit(\"unlink tracking group from collection\", () => {\n\t\tconst trackingGroup = new TrackingGroup();\n\n\t\ttestClient.insertTextLocal(0, \"abc\");\n\n\t\tconst { segment } = testClient.getContainingSegment(0);\n\t\tsegment?.trackingCollection.link(trackingGroup);\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 1);\n\n\t\tassert(\n\t\t\tsegment.trackingCollection.unlink(trackingGroup),\n\t\t\t\"unlink trackingGroup should be true\",\n\t\t);\n\n\t\tassert.equal(segment?.trackingCollection.trackingGroups.size, 0);\n\t\tassert.equal(trackingGroup.unlink(segment), false, \"repeat unlink segment should be false\");\n\t\tassert.equal(\n\t\t\tsegment.trackingCollection.unlink(trackingGroup),\n\t\t\tfalse,\n\t\t\t\"repeat unlink trackingGroup should be false\",\n\t\t);\n\t});\n});\n"]}
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  export declare function propertyCopy(): void;
6
- //# sourceMappingURL=wordUnitTests.d.ts.map
6
+ //# sourceMappingURL=wordUnitTests.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wordUnitTests.spec.d.ts","sourceRoot":"","sources":["../../src/test/wordUnitTests.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqBH,wBAAgB,YAAY,SAkG3B"}
@@ -13,10 +13,11 @@ exports.propertyCopy = void 0;
13
13
  const path_1 = __importDefault(require("path"));
14
14
  const stochastic_test_utils_1 = require("@fluid-private/stochastic-test-utils");
15
15
  const client_utils_1 = require("@fluid-internal/client-utils");
16
- const ops_1 = require("../ops");
17
- const properties_1 = require("../properties");
18
- const testClient_1 = require("./testClient");
19
- const testUtils_1 = require("./testUtils");
16
+ const ops_js_1 = require("../ops.js");
17
+ const properties_js_1 = require("../properties.js");
18
+ const testClient_js_1 = require("./testClient.js");
19
+ const testUtils_js_1 = require("./testUtils.js");
20
+ const dirname_cjs_1 = require("./dirname.cjs");
20
21
  const clock = () => client_utils_1.Trace.start();
21
22
  function elapsedMicroseconds(trace) {
22
23
  return trace.trace().duration * 1000;
@@ -35,7 +36,7 @@ function propertyCopy() {
35
36
  let clockStart = clock();
36
37
  let obj = {};
37
38
  for (let j = 0; j < iterCount; j++) {
38
- obj = (0, properties_1.createMap)();
39
+ obj = (0, properties_js_1.createMap)();
39
40
  for (let i = 0; i < propCount; i++) {
40
41
  obj[a[i]] = v[i];
41
42
  }
@@ -46,7 +47,7 @@ function propertyCopy() {
46
47
  console.log(`arr prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`);
47
48
  clockStart = clock();
48
49
  for (let j = 0; j < iterCount; j++) {
49
- const bObj = (0, properties_1.createMap)();
50
+ const bObj = (0, properties_js_1.createMap)();
50
51
  // eslint-disable-next-line guard-for-in, no-restricted-syntax
51
52
  for (const key in obj) {
52
53
  bObj[key] = obj[key];
@@ -58,7 +59,7 @@ function propertyCopy() {
58
59
  console.log(`obj prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`);
59
60
  clockStart = clock();
60
61
  for (let j = 0; j < iterCount; j++) {
61
- const bObj = (0, properties_1.createMap)();
62
+ const bObj = (0, properties_js_1.createMap)();
62
63
  for (const [key, value] of map) {
63
64
  bObj[key] = value;
64
65
  }
@@ -69,7 +70,7 @@ function propertyCopy() {
69
70
  console.log(`map prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`);
70
71
  clockStart = clock();
71
72
  for (let j = 0; j < iterCount; j++) {
72
- const bObj = (0, properties_1.createMap)();
73
+ const bObj = (0, properties_js_1.createMap)();
73
74
  map.forEach((value, key) => {
74
75
  bObj[key] = value;
75
76
  });
@@ -119,9 +120,9 @@ function makeBookmarks(client, bookmarkCount) {
119
120
  for (let i = 0; i < bookmarkCount; i++) {
120
121
  const pos = random.integer(0, len - 1);
121
122
  const segoff = client.getContainingSegment(pos);
122
- let refType = ops_1.ReferenceType.Simple;
123
+ let refType = ops_js_1.ReferenceType.Simple;
123
124
  if (i & 1) {
124
- refType = ops_1.ReferenceType.SlideOnRemove;
125
+ refType = ops_js_1.ReferenceType.SlideOnRemove;
125
126
  }
126
127
  const lref = client.mergeTree.createLocalReferencePosition(segoff.segment, segoff.offset, refType, undefined);
127
128
  bookmarks.push(lref);
@@ -130,8 +131,8 @@ function makeBookmarks(client, bookmarkCount) {
130
131
  }
131
132
  function measureFetch(startFile, withBookmarks = false) {
132
133
  const bookmarkCount = 20000;
133
- const client = new testClient_1.TestClient();
134
- (0, testUtils_1.loadTextFromFileWithMarkers)(startFile, client.mergeTree);
134
+ const client = new testClient_js_1.TestClient();
135
+ (0, testUtils_js_1.loadTextFromFileWithMarkers)(startFile, client.mergeTree);
135
136
  if (withBookmarks) {
136
137
  makeBookmarks(client, bookmarkCount);
137
138
  console.log(`inserting ${bookmarkCount} refs into text`);
@@ -147,7 +148,7 @@ function measureFetch(startFile, withBookmarks = false) {
147
148
  const curSegOff = client.getContainingSegment(pos);
148
149
  const curSeg = curSegOff.segment;
149
150
  // Combine paragraph and direct properties
150
- (0, properties_1.extend)(properties, curSeg.properties);
151
+ (0, properties_js_1.extend)(properties, curSeg.properties);
151
152
  pos += curSeg.cachedLength - curSegOff.offset;
152
153
  count++;
153
154
  }
@@ -156,7 +157,7 @@ function measureFetch(startFile, withBookmarks = false) {
156
157
  console.log(`fetch of ${count / reps} runs over ${client.getLength()} total chars took ${(et / count).toFixed(1)} microseconds per run`);
157
158
  }
158
159
  const baseDir = "../../src/test/literature";
159
- const filename = path_1.default.join(__dirname, baseDir, "pp.txt");
160
+ const filename = path_1.default.join(dirname_cjs_1._dirname, baseDir, "pp.txt");
160
161
  const testTimeout = 30000;
161
162
  describe("Routerlicious", () => {
162
163
  describe("merge-tree", () => {
@@ -169,4 +170,4 @@ describe("Routerlicious", () => {
169
170
  }).timeout(testTimeout);
170
171
  });
171
172
  });
172
- //# sourceMappingURL=wordUnitTests.js.map
173
+ //# sourceMappingURL=wordUnitTests.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wordUnitTests.spec.js","sourceRoot":"","sources":["../../src/test/wordUnitTests.spec.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,+BAA+B;AAC/B,6DAA6D;AAE7D,gDAAwB;AACxB,gFAAkE;AAClE,+DAAqD;AACrD,sCAA0C;AAC1C,oDAA8D;AAE9D,mDAA6C;AAC7C,iDAA6D;AAC7D,+CAAyC;AAEzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,oBAAK,CAAC,KAAK,EAAE,CAAC;AAElC,SAAS,mBAAmB,CAAC,KAAY;IACxC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtC,CAAC;AAED,SAAgB,YAAY;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACT,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpB;IACD,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;IACzB,IAAI,GAAG,GAAoB,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,GAAG,GAAG,IAAA,yBAAS,GAAU,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YACnC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACjB;KACD;IACD,IAAI,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CACV,sBAAsB,OAAO,WAAW,SAAS,gBAAgB,OAAO,kBAAkB,CAC1F,CAAC;IACF,UAAU,GAAG,KAAK,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,IAAA,yBAAS,GAAU,CAAC;QACjC,8DAA8D;QAC9D,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SACrB;KACD;IACD,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CACV,sBAAsB,OAAO,WAAW,SAAS,gBAAgB,OAAO,kBAAkB,CAC1F,CAAC;IACF,UAAU,GAAG,KAAK,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,IAAA,yBAAS,GAAU,CAAC;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAClB;KACD;IACD,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CACV,sBAAsB,OAAO,WAAW,SAAS,gBAAgB,OAAO,kBAAkB,CAC1F,CAAC;IACF,UAAU,GAAG,KAAK,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,IAAA,yBAAS,GAAU,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;KACH;IACD,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CACV,8BAA8B,OAAO,WAAW,SAAS,gBAAgB,OAAO,kBAAkB,CAClG,CAAC;IACF,UAAU,GAAG,KAAK,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;KACH;IACD,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CACV,qCAAqC,OAAO,WAAW,SAAS,gBAAgB,OAAO,kBAAkB,CACzG,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACxB;aAAM;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5B;IACF,CAAC,CAAC,CAAC;IACH,UAAU,GAAG,KAAK,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACpB;QACF,CAAC,CAAC,CAAC;KACH;IACD,OAAO,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,WAAW,SAAS,gBAAgB,OAAO,kBAAkB,CAAC,CAAC;AAChG,CAAC;AAlGD,oCAkGC;AAED,SAAS,aAAa,CAAC,MAAkB,EAAE,aAAqB;IAC/D,MAAM,MAAM,GAAG,IAAA,kCAAU,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,SAAS,GAAwB,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,OAAO,GAAG,sBAAa,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,EAAE;YACV,OAAO,GAAG,sBAAa,CAAC,aAAa,CAAC;SACtC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,4BAA4B,CACzD,MAAM,CAAC,OAAQ,EACf,MAAM,CAAC,MAAO,EACd,OAAO,EACP,SAAS,CACT,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrB;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,aAAa,GAAG,KAAK;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,0BAAU,EAAE,CAAC;IAChC,IAAA,0CAA2B,EAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,aAAa,EAAE;QAClB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,iBAAiB,CAAC,CAAC;KACzD;IACD,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,GAAI;YAC7C,sBAAsB;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC;YACvD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAW,CAAC;YACrC,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAE,CAAC;YACpD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAQ,CAAC;YAClC,0CAA0C;YAC1C,IAAA,sBAAM,EAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,GAAG,IAAI,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,MAAO,CAAC;YAC/C,KAAK,EAAE,CAAC;SACR;KACD;IACD,MAAM,EAAE,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CACV,YAAY,KAAK,GAAG,IAAI,cAAc,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAC5E,EAAE,GAAG,KAAK,CACV,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CACnC,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAC5C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,sBAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxD,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YACvB,YAAY,EAAE,CAAC;YACf,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7B,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable no-bitwise */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\nimport path from \"path\";\nimport { makeRandom } from \"@fluid-private/stochastic-test-utils\";\nimport { Trace } from \"@fluid-internal/client-utils\";\nimport { ReferenceType } from \"../ops.js\";\nimport { createMap, extend, MapLike } from \"../properties.js\";\nimport { ReferencePosition } from \"../referencePositions.js\";\nimport { TestClient } from \"./testClient.js\";\nimport { loadTextFromFileWithMarkers } from \"./testUtils.js\";\nimport { _dirname } from \"./dirname.cjs\";\n\nconst clock = () => Trace.start();\n\nfunction elapsedMicroseconds(trace: Trace) {\n\treturn trace.trace().duration * 1000;\n}\n\nexport function propertyCopy() {\n\tconst propCount = 2000;\n\tconst iterCount = 1000;\n\tconst map = new Map<string, number>();\n\tconst a: string[] = [];\n\tconst v: number[] = [];\n\tfor (let i = 0; i < propCount; i++) {\n\t\ta[i] = `prop${i}`;\n\t\tv[i] = i;\n\t\tmap.set(a[i], v[i]);\n\t}\n\tlet clockStart = clock();\n\tlet obj: MapLike<number> = {};\n\tfor (let j = 0; j < iterCount; j++) {\n\t\tobj = createMap<number>();\n\t\tfor (let i = 0; i < propCount; i++) {\n\t\t\tobj[a[i]] = v[i];\n\t\t}\n\t}\n\tlet et = elapsedMicroseconds(clockStart);\n\tlet perIter = (et / iterCount).toFixed(3);\n\tlet perProp = (et / (iterCount * propCount)).toFixed(3);\n\tconsole.log(\n\t\t`arr prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`,\n\t);\n\tclockStart = clock();\n\tfor (let j = 0; j < iterCount; j++) {\n\t\tconst bObj = createMap<number>();\n\t\t// eslint-disable-next-line guard-for-in, no-restricted-syntax\n\t\tfor (const key in obj) {\n\t\t\tbObj[key] = obj[key];\n\t\t}\n\t}\n\tet = elapsedMicroseconds(clockStart);\n\tperIter = (et / iterCount).toFixed(3);\n\tperProp = (et / (iterCount * propCount)).toFixed(3);\n\tconsole.log(\n\t\t`obj prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`,\n\t);\n\tclockStart = clock();\n\tfor (let j = 0; j < iterCount; j++) {\n\t\tconst bObj = createMap<number>();\n\t\tfor (const [key, value] of map) {\n\t\t\tbObj[key] = value;\n\t\t}\n\t}\n\tet = elapsedMicroseconds(clockStart);\n\tperIter = (et / iterCount).toFixed(3);\n\tperProp = (et / (iterCount * propCount)).toFixed(2);\n\tconsole.log(\n\t\t`map prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`,\n\t);\n\tclockStart = clock();\n\tfor (let j = 0; j < iterCount; j++) {\n\t\tconst bObj = createMap<number>();\n\t\tmap.forEach((value, key) => {\n\t\t\tbObj[key] = value;\n\t\t});\n\t}\n\tet = elapsedMicroseconds(clockStart);\n\tperIter = (et / iterCount).toFixed(3);\n\tperProp = (et / (iterCount * propCount)).toFixed(2);\n\tconsole.log(\n\t\t`map foreach prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`,\n\t);\n\tclockStart = clock();\n\tfor (let j = 0; j < iterCount; j++) {\n\t\tconst bmap = new Map<string, number>();\n\t\tmap.forEach((value, key) => {\n\t\t\tbmap.set(key, value);\n\t\t});\n\t}\n\tet = elapsedMicroseconds(clockStart);\n\tperIter = (et / iterCount).toFixed(3);\n\tperProp = (et / (iterCount * propCount)).toFixed(2);\n\tconsole.log(\n\t\t`map to map foreach prop init time ${perIter} us per ${propCount} properties; ${perProp} us per property`,\n\t);\n\tconst diffMap = new Map<string, number>();\n\tmap.forEach((value, key) => {\n\t\tif (Math.random() < 0.5) {\n\t\t\tdiffMap.set(key, value);\n\t\t} else {\n\t\t\tdiffMap.set(key, value * 3);\n\t\t}\n\t});\n\tclockStart = clock();\n\tconst grayMap = new Map<string, number>();\n\tfor (let j = 0; j < iterCount; j++) {\n\t\tmap.forEach((value, key) => {\n\t\t\tif (diffMap.get(key) !== value) {\n\t\t\t\tgrayMap.set(key, 1);\n\t\t\t}\n\t\t});\n\t}\n\tperIter = (et / iterCount).toFixed(3);\n\tperProp = (et / (iterCount * propCount)).toFixed(2);\n\tconsole.log(`diff time ${perIter} us per ${propCount} properties; ${perProp} us per property`);\n}\n\nfunction makeBookmarks(client: TestClient, bookmarkCount: number) {\n\tconst random = makeRandom(0xdeadbeef, 0xfeedbed);\n\tconst bookmarks: ReferencePosition[] = [];\n\tconst len = client.getLength();\n\tfor (let i = 0; i < bookmarkCount; i++) {\n\t\tconst pos = random.integer(0, len - 1);\n\t\tconst segoff = client.getContainingSegment(pos);\n\t\tlet refType = ReferenceType.Simple;\n\t\tif (i & 1) {\n\t\t\trefType = ReferenceType.SlideOnRemove;\n\t\t}\n\t\tconst lref = client.mergeTree.createLocalReferencePosition(\n\t\t\tsegoff.segment!,\n\t\t\tsegoff.offset!,\n\t\t\trefType,\n\t\t\tundefined,\n\t\t);\n\t\tbookmarks.push(lref);\n\t}\n\treturn bookmarks;\n}\n\nfunction measureFetch(startFile: string, withBookmarks = false) {\n\tconst bookmarkCount = 20000;\n\tconst client = new TestClient();\n\tloadTextFromFileWithMarkers(startFile, client.mergeTree);\n\tif (withBookmarks) {\n\t\tmakeBookmarks(client, bookmarkCount);\n\t\tconsole.log(`inserting ${bookmarkCount} refs into text`);\n\t}\n\tconst reps = 20;\n\tconst clockStart = clock();\n\tlet count = 0;\n\tfor (let i = 0; i < reps; i++) {\n\t\tfor (let pos = 0; pos < client.getLength(); ) {\n\t\t\t// curPG.pos is ca end\n\t\t\tconst curPG = client.searchForMarker(pos, \"pg\", true)!;\n\t\t\tconst properties = curPG.properties!;\n\t\t\tconst curSegOff = client.getContainingSegment(pos)!;\n\t\t\tconst curSeg = curSegOff.segment!;\n\t\t\t// Combine paragraph and direct properties\n\t\t\textend(properties, curSeg.properties);\n\t\t\tpos += curSeg.cachedLength - curSegOff.offset!;\n\t\t\tcount++;\n\t\t}\n\t}\n\tconst et = elapsedMicroseconds(clockStart);\n\tconsole.log(\n\t\t`fetch of ${count / reps} runs over ${client.getLength()} total chars took ${(\n\t\t\tet / count\n\t\t).toFixed(1)} microseconds per run`,\n\t);\n}\n\nconst baseDir = \"../../src/test/literature\";\nconst filename = path.join(_dirname, baseDir, \"pp.txt\");\nconst testTimeout = 30000;\n\ndescribe(\"Routerlicious\", () => {\n\tdescribe(\"merge-tree\", () => {\n\t\tit(\"wordUnitTest\", () => {\n\t\t\tpropertyCopy();\n\t\t\tmeasureFetch(filename);\n\t\t\tmeasureFetch(filename, true);\n\t\t\tmeasureFetch(filename);\n\t\t\tmeasureFetch(filename, true);\n\t\t}).timeout(testTimeout);\n\t});\n});\n"]}
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { BaseSegment, ISegment } from "./mergeTreeNodes";
6
- import { IJSONSegment } from "./ops";
7
- import { PropertySet } from "./properties";
5
+ import { BaseSegment, ISegment } from "./mergeTreeNodes.js";
6
+ import { IJSONSegment } from "./ops.js";
7
+ import { PropertySet } from "./properties.js";
8
8
  export declare const TextSegmentGranularity = 256;
9
9
  /**
10
10
  * @alpha
@@ -1 +1 @@
1
- {"version":3,"file":"textSegment.d.ts","sourceRoot":"","sources":["../src/textSegment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAW3C,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACrD,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;IA0BxB,IAAI,EAAE,MAAM;IAzB/B,gBAAuB,IAAI,iBAAiB;IAC5C,SAAgB,IAAI,iBAAoB;WAE1B,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,WAAW;WAI7C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW;WAQtC,cAAc,CAAC,IAAI,EAAE,GAAG;gBAUnB,IAAI,EAAE,MAAM;IAKxB,YAAY,IAAI,gBAAgB,GAAG,MAAM;IAMzC,KAAK,CAAC,KAAK,SAAI,EAAE,GAAG,CAAC,EAAE,MAAM;IAO7B,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IASrC,QAAQ;IAIR,MAAM,CAAC,OAAO,EAAE,QAAQ;IAM/B,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;CAS1C;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC,OAAO,CACN,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACV,MAAM,CAAC;CACV"}
1
+ {"version":3,"file":"textSegment.d.ts","sourceRoot":"","sources":["../src/textSegment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAW9C,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACrD,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;IA0BxB,IAAI,EAAE,MAAM;IAzB/B,gBAAuB,IAAI,iBAAiB;IAC5C,SAAgB,IAAI,iBAAoB;WAE1B,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,WAAW;WAI7C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW;WAQtC,cAAc,CAAC,IAAI,EAAE,GAAG;gBAUnB,IAAI,EAAE,MAAM;IAKxB,YAAY,IAAI,gBAAgB,GAAG,MAAM;IAMzC,KAAK,CAAC,KAAK,SAAI,EAAE,GAAG,CAAC,EAAE,MAAM;IAO7B,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IASrC,QAAQ;IAIR,MAAM,CAAC,OAAO,EAAE,QAAQ;IAM/B,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;CAS1C;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC,OAAO,CACN,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACV,MAAM,CAAC;CACV"}
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.TextSegment = exports.TextSegmentGranularity = void 0;
8
8
  const core_utils_1 = require("@fluidframework/core-utils");
9
- const mergeTreeNodes_1 = require("./mergeTreeNodes");
9
+ const mergeTreeNodes_js_1 = require("./mergeTreeNodes.js");
10
10
  // Maximum length of text segment to be considered to be merged with other segment.
11
11
  // Maximum segment length is at least 2x of it (not taking into account initial segment creation).
12
12
  // The bigger it is, the more expensive it is to break segment into sub-segments (on edits)
@@ -20,7 +20,7 @@ exports.TextSegmentGranularity = 256;
20
20
  /**
21
21
  * @alpha
22
22
  */
23
- class TextSegment extends mergeTreeNodes_1.BaseSegment {
23
+ class TextSegment extends mergeTreeNodes_js_1.BaseSegment {
24
24
  static is(segment) {
25
25
  return segment.type === TextSegment.type;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"textSegment.js","sourceRoot":"","sources":["../src/textSegment.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 { assert } from \"@fluidframework/core-utils\";\nimport { BaseSegment, ISegment } from \"./mergeTreeNodes\";\nimport { IJSONSegment } from \"./ops\";\nimport { PropertySet } from \"./properties\";\n\n// Maximum length of text segment to be considered to be merged with other segment.\n// Maximum segment length is at least 2x of it (not taking into account initial segment creation).\n// The bigger it is, the more expensive it is to break segment into sub-segments (on edits)\n// The smaller it is, the more segments we have in snapshots (and in memory) - it's more expensive to load snapshots.\n// Small number also makes ReplayTool produce false positives (\"same\" snapshots have slightly different binary\n// representations). More measurements needs to be done, but it's very likely the right spot is somewhere between\n// 1K-2K mark. That said, we also break segments on newline and there are very few segments that are longer than 256\n// because of it. Must be an even number.\n// Exported for test use only.\nexport const TextSegmentGranularity = 256;\n\n/**\n * @alpha\n */\nexport interface IJSONTextSegment extends IJSONSegment {\n\ttext: string;\n}\n\n/**\n * @alpha\n */\nexport class TextSegment extends BaseSegment {\n\tpublic static readonly type = \"TextSegment\";\n\tpublic readonly type = TextSegment.type;\n\n\tpublic static is(segment: ISegment): segment is TextSegment {\n\t\treturn segment.type === TextSegment.type;\n\t}\n\n\tpublic static make(text: string, props?: PropertySet) {\n\t\tconst seg = new TextSegment(text);\n\t\tif (props) {\n\t\t\tseg.addProperties(props);\n\t\t}\n\t\treturn seg;\n\t}\n\n\tpublic static fromJSONObject(spec: any) {\n\t\tif (typeof spec === \"string\") {\n\t\t\treturn new TextSegment(spec);\n\t\t} else if (spec && typeof spec === \"object\" && \"text\" in spec) {\n\t\t\tconst textSpec = spec as IJSONTextSegment;\n\t\t\treturn TextSegment.make(textSpec.text, textSpec.props as PropertySet);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tconstructor(public text: string) {\n\t\tsuper();\n\t\tthis.cachedLength = text.length;\n\t}\n\n\tpublic toJSONObject(): IJSONTextSegment | string {\n\t\t// To reduce snapshot/ops size, we serialize a TextSegment as a plain 'string' if it is\n\t\t// not annotated.\n\t\treturn this.properties ? { text: this.text, props: this.properties } : this.text;\n\t}\n\n\tpublic clone(start = 0, end?: number) {\n\t\tconst text = this.text.substring(start, end);\n\t\tconst b = TextSegment.make(text, this.properties);\n\t\tthis.cloneInto(b);\n\t\treturn b;\n\t}\n\n\tpublic canAppend(segment: ISegment): boolean {\n\t\treturn (\n\t\t\t!this.text.endsWith(\"\\n\") &&\n\t\t\tTextSegment.is(segment) &&\n\t\t\t(this.cachedLength <= TextSegmentGranularity ||\n\t\t\t\tsegment.cachedLength <= TextSegmentGranularity)\n\t\t);\n\t}\n\n\tpublic toString() {\n\t\treturn this.text;\n\t}\n\n\tpublic append(segment: ISegment) {\n\t\tassert(TextSegment.is(segment), 0x447 /* can only append text segment */);\n\t\tsuper.append(segment);\n\t\tthis.text += segment.text;\n\t}\n\n\tprotected createSplitSegmentAt(pos: number) {\n\t\tif (pos > 0) {\n\t\t\tconst remainingText = this.text.substring(pos);\n\t\t\tthis.text = this.text.substring(0, pos);\n\t\t\tthis.cachedLength = this.text.length;\n\t\t\tconst leafSegment = new TextSegment(remainingText);\n\t\t\treturn leafSegment;\n\t\t}\n\t}\n}\n\n/**\n * @deprecated This functionality was not meant to be exported and will be removed in a future release\n * @alpha\n */\nexport interface IMergeTreeTextHelper {\n\tgetText(\n\t\trefSeq: number,\n\t\tclientId: number,\n\t\tplaceholder: string,\n\t\tstart?: number,\n\t\tend?: number,\n\t): string;\n}\n"]}
1
+ {"version":3,"file":"textSegment.js","sourceRoot":"","sources":["../src/textSegment.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 { assert } from \"@fluidframework/core-utils\";\nimport { BaseSegment, ISegment } from \"./mergeTreeNodes.js\";\nimport { IJSONSegment } from \"./ops.js\";\nimport { PropertySet } from \"./properties.js\";\n\n// Maximum length of text segment to be considered to be merged with other segment.\n// Maximum segment length is at least 2x of it (not taking into account initial segment creation).\n// The bigger it is, the more expensive it is to break segment into sub-segments (on edits)\n// The smaller it is, the more segments we have in snapshots (and in memory) - it's more expensive to load snapshots.\n// Small number also makes ReplayTool produce false positives (\"same\" snapshots have slightly different binary\n// representations). More measurements needs to be done, but it's very likely the right spot is somewhere between\n// 1K-2K mark. That said, we also break segments on newline and there are very few segments that are longer than 256\n// because of it. Must be an even number.\n// Exported for test use only.\nexport const TextSegmentGranularity = 256;\n\n/**\n * @alpha\n */\nexport interface IJSONTextSegment extends IJSONSegment {\n\ttext: string;\n}\n\n/**\n * @alpha\n */\nexport class TextSegment extends BaseSegment {\n\tpublic static readonly type = \"TextSegment\";\n\tpublic readonly type = TextSegment.type;\n\n\tpublic static is(segment: ISegment): segment is TextSegment {\n\t\treturn segment.type === TextSegment.type;\n\t}\n\n\tpublic static make(text: string, props?: PropertySet) {\n\t\tconst seg = new TextSegment(text);\n\t\tif (props) {\n\t\t\tseg.addProperties(props);\n\t\t}\n\t\treturn seg;\n\t}\n\n\tpublic static fromJSONObject(spec: any) {\n\t\tif (typeof spec === \"string\") {\n\t\t\treturn new TextSegment(spec);\n\t\t} else if (spec && typeof spec === \"object\" && \"text\" in spec) {\n\t\t\tconst textSpec = spec as IJSONTextSegment;\n\t\t\treturn TextSegment.make(textSpec.text, textSpec.props as PropertySet);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tconstructor(public text: string) {\n\t\tsuper();\n\t\tthis.cachedLength = text.length;\n\t}\n\n\tpublic toJSONObject(): IJSONTextSegment | string {\n\t\t// To reduce snapshot/ops size, we serialize a TextSegment as a plain 'string' if it is\n\t\t// not annotated.\n\t\treturn this.properties ? { text: this.text, props: this.properties } : this.text;\n\t}\n\n\tpublic clone(start = 0, end?: number) {\n\t\tconst text = this.text.substring(start, end);\n\t\tconst b = TextSegment.make(text, this.properties);\n\t\tthis.cloneInto(b);\n\t\treturn b;\n\t}\n\n\tpublic canAppend(segment: ISegment): boolean {\n\t\treturn (\n\t\t\t!this.text.endsWith(\"\\n\") &&\n\t\t\tTextSegment.is(segment) &&\n\t\t\t(this.cachedLength <= TextSegmentGranularity ||\n\t\t\t\tsegment.cachedLength <= TextSegmentGranularity)\n\t\t);\n\t}\n\n\tpublic toString() {\n\t\treturn this.text;\n\t}\n\n\tpublic append(segment: ISegment) {\n\t\tassert(TextSegment.is(segment), 0x447 /* can only append text segment */);\n\t\tsuper.append(segment);\n\t\tthis.text += segment.text;\n\t}\n\n\tprotected createSplitSegmentAt(pos: number) {\n\t\tif (pos > 0) {\n\t\t\tconst remainingText = this.text.substring(pos);\n\t\t\tthis.text = this.text.substring(0, pos);\n\t\t\tthis.cachedLength = this.text.length;\n\t\t\tconst leafSegment = new TextSegment(remainingText);\n\t\t\treturn leafSegment;\n\t\t}\n\t}\n}\n\n/**\n * @deprecated This functionality was not meant to be exported and will be removed in a future release\n * @alpha\n */\nexport interface IMergeTreeTextHelper {\n\tgetText(\n\t\trefSeq: number,\n\t\tclientId: number,\n\t\tplaceholder: string,\n\t\tstart?: number,\n\t\tend?: number,\n\t): string;\n}\n"]}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.38.3"
8
+ "packageVersion": "7.42.3"
9
9
  }
10
10
  ]
11
11
  }
package/dist/zamboni.d.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { MergeTree } from "./mergeTree";
6
- import { IMergeBlock } from "./mergeTreeNodes";
5
+ import { MergeTree } from "./mergeTree.js";
6
+ import { IMergeBlock } from "./mergeTreeNodes.js";
7
7
  export declare const zamboniSegmentsMax = 2;
8
8
  export declare function zamboniSegments(mergeTree: MergeTree, zamboniSegmentsMaxCount?: number): void;
9
9
  export declare function packParent(parent: IMergeBlock, mergeTree: MergeTree): void;
@@ -1 +1 @@
1
- {"version":3,"file":"zamboni.d.ts","sourceRoot":"","sources":["../src/zamboni.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EACN,WAAW,EAQX,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAKpC,wBAAgB,eAAe,CAC9B,SAAS,EAAE,SAAS,EACpB,uBAAuB,SAAqB,QAuC5C;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,QAwDnE"}
1
+ {"version":3,"file":"zamboni.d.ts","sourceRoot":"","sources":["../src/zamboni.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EACN,WAAW,EAQX,MAAM,qBAAqB,CAAC;AAG7B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAKpC,wBAAgB,eAAe,CAC9B,SAAS,EAAE,SAAS,EACpB,uBAAuB,SAAqB,QAuC5C;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,QAwDnE"}
package/dist/zamboni.js CHANGED
@@ -6,13 +6,13 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.packParent = exports.zamboniSegments = exports.zamboniSegmentsMax = void 0;
8
8
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
9
- const constants_1 = require("./constants");
10
- const mergeTreeDeltaCallback_1 = require("./mergeTreeDeltaCallback");
11
- const mergeTreeNodes_1 = require("./mergeTreeNodes");
12
- const properties_1 = require("./properties");
9
+ const constants_js_1 = require("./constants.js");
10
+ const mergeTreeDeltaCallback_js_1 = require("./mergeTreeDeltaCallback.js");
11
+ const mergeTreeNodes_js_1 = require("./mergeTreeNodes.js");
12
+ const properties_js_1 = require("./properties.js");
13
13
  exports.zamboniSegmentsMax = 2;
14
14
  function underflow(node) {
15
- return node.childCount < mergeTreeNodes_1.MaxNodesInBlock / 2;
15
+ return node.childCount < mergeTreeNodes_js_1.MaxNodesInBlock / 2;
16
16
  }
17
17
  function zamboniSegments(mergeTree, zamboniSegmentsMaxCount = exports.zamboniSegmentsMax) {
18
18
  if (!mergeTree.collabWindow.collaborating) {
@@ -25,7 +25,7 @@ function zamboniSegments(mergeTree, zamboniSegmentsMaxCount = exports.zamboniSeg
25
25
  }
26
26
  segmentToScour = mergeTree.segmentsToScour.get();
27
27
  // Only skip scouring if needs scour is explicitly false, not true or undefined
28
- if (segmentToScour.segment.parent && segmentToScour.segment.parent.needsScour !== false) {
28
+ if (segmentToScour?.segment?.parent && segmentToScour.segment.parent.needsScour !== false) {
29
29
  const block = segmentToScour.segment.parent;
30
30
  const childrenCopy = [];
31
31
  scourNode(block, childrenCopy, mergeTree);
@@ -44,7 +44,7 @@ function zamboniSegments(mergeTree, zamboniSegmentsMaxCount = exports.zamboniSeg
44
44
  }
45
45
  else {
46
46
  mergeTree.nodeUpdateOrdinals(block);
47
- mergeTree.blockUpdatePathLengths(block, constants_1.UnassignedSequenceNumber, -1, true);
47
+ mergeTree.blockUpdatePathLengths(block, constants_js_1.UnassignedSequenceNumber, -1, true);
48
48
  }
49
49
  }
50
50
  }
@@ -66,14 +66,14 @@ function packParent(parent, mergeTree) {
66
66
  }
67
67
  if (holdNodes.length > 0) {
68
68
  const totalNodeCount = holdNodes.length;
69
- const halfOfMaxNodeCount = mergeTreeNodes_1.MaxNodesInBlock / 2;
70
- let childCount = Math.min(mergeTreeNodes_1.MaxNodesInBlock - 1, Math.floor(totalNodeCount / halfOfMaxNodeCount));
69
+ const halfOfMaxNodeCount = mergeTreeNodes_js_1.MaxNodesInBlock / 2;
70
+ let childCount = Math.min(mergeTreeNodes_js_1.MaxNodesInBlock - 1, Math.floor(totalNodeCount / halfOfMaxNodeCount));
71
71
  if (childCount < 1) {
72
72
  childCount = 1;
73
73
  }
74
74
  const baseNodesInBlockCount = Math.floor(totalNodeCount / childCount);
75
75
  let remainderCount = totalNodeCount % childCount;
76
- const packedBlocks = new Array(mergeTreeNodes_1.MaxNodesInBlock);
76
+ const packedBlocks = new Array(mergeTreeNodes_js_1.MaxNodesInBlock);
77
77
  let childrenPackedCount = 0;
78
78
  for (let nodeIndex = 0; nodeIndex < childCount; nodeIndex++) {
79
79
  let nodeCount = baseNodesInBlockCount;
@@ -105,7 +105,7 @@ function packParent(parent, mergeTree) {
105
105
  }
106
106
  else {
107
107
  mergeTree.nodeUpdateOrdinals(parent);
108
- mergeTree.blockUpdatePathLengths(parent, constants_1.UnassignedSequenceNumber, -1, true);
108
+ mergeTree.blockUpdatePathLengths(parent, constants_js_1.UnassignedSequenceNumber, -1, true);
109
109
  }
110
110
  }
111
111
  exports.packParent = packParent;
@@ -121,20 +121,20 @@ function scourNode(node, holdNodes, mergeTree) {
121
121
  continue;
122
122
  }
123
123
  const segment = childNode;
124
- const removalInfo = (0, mergeTreeNodes_1.toRemovalInfo)(segment);
125
- const moveInfo = (0, mergeTreeNodes_1.toMoveInfo)(segment);
124
+ const removalInfo = (0, mergeTreeNodes_js_1.toRemovalInfo)(segment);
125
+ const moveInfo = (0, mergeTreeNodes_js_1.toMoveInfo)(segment);
126
126
  if (removalInfo !== undefined || moveInfo !== undefined) {
127
127
  // If the segment's removal is below the MSN and it's not being held onto by a tracking group,
128
128
  // it can be unlinked (i.e. removed from the merge-tree)
129
- if (((!!removalInfo && (0, mergeTreeNodes_1.seqLTE)(removalInfo.removedSeq, mergeTree.collabWindow.minSeq)) ||
130
- (!!moveInfo && (0, mergeTreeNodes_1.seqLTE)(moveInfo.movedSeq, mergeTree.collabWindow.minSeq))) &&
129
+ if (((!!removalInfo && (0, mergeTreeNodes_js_1.seqLTE)(removalInfo.removedSeq, mergeTree.collabWindow.minSeq)) ||
130
+ (!!moveInfo && (0, mergeTreeNodes_js_1.seqLTE)(moveInfo.movedSeq, mergeTree.collabWindow.minSeq))) &&
131
131
  segment.trackingCollection.empty) {
132
132
  mergeTree.mergeTreeMaintenanceCallback?.({
133
- operation: mergeTreeDeltaCallback_1.MergeTreeMaintenanceType.UNLINK,
133
+ operation: mergeTreeDeltaCallback_js_1.MergeTreeMaintenanceType.UNLINK,
134
134
  deltaSegments: [{ segment }],
135
135
  }, undefined);
136
136
  segment.parent = undefined;
137
- if (mergeTreeNodes_1.Marker.is(segment)) {
137
+ if (mergeTreeNodes_js_1.Marker.is(segment)) {
138
138
  mergeTree.unlinkMarker(segment);
139
139
  }
140
140
  }
@@ -147,13 +147,13 @@ function scourNode(node, holdNodes, mergeTree) {
147
147
  if (segment.seq <= mergeTree.collabWindow.minSeq) {
148
148
  const segmentHasPositiveLength = (mergeTree.localNetLength(segment) ?? 0) > 0;
149
149
  const canAppend = prevSegment?.canAppend(segment) &&
150
- (0, properties_1.matchProperties)(prevSegment.properties, segment.properties) &&
150
+ (0, properties_js_1.matchProperties)(prevSegment.properties, segment.properties) &&
151
151
  prevSegment.trackingCollection.matches(segment.trackingCollection) &&
152
152
  segmentHasPositiveLength;
153
153
  if (canAppend) {
154
154
  prevSegment.append(segment);
155
155
  mergeTree.mergeTreeMaintenanceCallback?.({
156
- operation: mergeTreeDeltaCallback_1.MergeTreeMaintenanceType.APPEND,
156
+ operation: mergeTreeDeltaCallback_js_1.MergeTreeMaintenanceType.APPEND,
157
157
  deltaSegments: [{ segment: prevSegment }, { segment }],
158
158
  }, undefined);
159
159
  segment.parent = undefined;