@fluidframework/merge-tree 2.53.0 → 2.60.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 (378) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/api-report/{merge-tree.legacy.alpha.api.md → merge-tree.legacy.beta.api.md} +62 -62
  3. package/dist/attributionCollection.d.ts +7 -12
  4. package/dist/attributionCollection.d.ts.map +1 -1
  5. package/dist/attributionCollection.js.map +1 -1
  6. package/dist/attributionPolicy.d.ts +1 -1
  7. package/dist/attributionPolicy.d.ts.map +1 -1
  8. package/dist/attributionPolicy.js.map +1 -1
  9. package/dist/client.d.ts +11 -11
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js.map +1 -1
  12. package/dist/collections/index.d.ts +1 -1
  13. package/dist/collections/index.d.ts.map +1 -1
  14. package/dist/collections/index.js.map +1 -1
  15. package/dist/endOfTreeSegment.d.ts +4 -4
  16. package/dist/endOfTreeSegment.d.ts.map +1 -1
  17. package/dist/endOfTreeSegment.js.map +1 -1
  18. package/dist/index.d.ts +16 -16
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/localReference.d.ts +6 -9
  22. package/dist/localReference.d.ts.map +1 -1
  23. package/dist/localReference.js +1 -2
  24. package/dist/localReference.js.map +1 -1
  25. package/dist/mergeTree.d.ts +9 -10
  26. package/dist/mergeTree.d.ts.map +1 -1
  27. package/dist/mergeTree.js.map +1 -1
  28. package/dist/mergeTreeDeltaCallback.d.ts +12 -20
  29. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  30. package/dist/mergeTreeDeltaCallback.js +1 -2
  31. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  32. package/dist/mergeTreeNodeWalk.d.ts +1 -1
  33. package/dist/mergeTreeNodeWalk.d.ts.map +1 -1
  34. package/dist/mergeTreeNodeWalk.js.map +1 -1
  35. package/dist/mergeTreeNodes.d.ts +14 -21
  36. package/dist/mergeTreeNodes.d.ts.map +1 -1
  37. package/dist/mergeTreeNodes.js +4 -8
  38. package/dist/mergeTreeNodes.js.map +1 -1
  39. package/dist/mergeTreeTracking.d.ts +6 -10
  40. package/dist/mergeTreeTracking.d.ts.map +1 -1
  41. package/dist/mergeTreeTracking.js +2 -4
  42. package/dist/mergeTreeTracking.js.map +1 -1
  43. package/dist/opBuilder.d.ts +3 -3
  44. package/dist/opBuilder.d.ts.map +1 -1
  45. package/dist/opBuilder.js.map +1 -1
  46. package/dist/ops.d.ts +17 -34
  47. package/dist/ops.d.ts.map +1 -1
  48. package/dist/ops.js +2 -4
  49. package/dist/ops.js.map +1 -1
  50. package/dist/partialLengths.d.ts +2 -2
  51. package/dist/partialLengths.d.ts.map +1 -1
  52. package/dist/partialLengths.js.map +1 -1
  53. package/dist/properties.d.ts +2 -4
  54. package/dist/properties.d.ts.map +1 -1
  55. package/dist/properties.js.map +1 -1
  56. package/dist/referencePositions.d.ts +6 -9
  57. package/dist/referencePositions.d.ts.map +1 -1
  58. package/dist/referencePositions.js +2 -4
  59. package/dist/referencePositions.js.map +1 -1
  60. package/dist/revertibles.d.ts +11 -16
  61. package/dist/revertibles.d.ts.map +1 -1
  62. package/dist/revertibles.js +3 -6
  63. package/dist/revertibles.js.map +1 -1
  64. package/dist/segmentGroupCollection.d.ts +1 -1
  65. package/dist/segmentGroupCollection.d.ts.map +1 -1
  66. package/dist/segmentGroupCollection.js.map +1 -1
  67. package/dist/segmentInfos.d.ts +1 -1
  68. package/dist/segmentInfos.d.ts.map +1 -1
  69. package/dist/segmentInfos.js.map +1 -1
  70. package/dist/segmentPropertiesManager.d.ts +1 -1
  71. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  72. package/dist/segmentPropertiesManager.js.map +1 -1
  73. package/dist/sequencePlace.d.ts +4 -8
  74. package/dist/sequencePlace.d.ts.map +1 -1
  75. package/dist/sequencePlace.js +2 -4
  76. package/dist/sequencePlace.js.map +1 -1
  77. package/dist/snapshotChunks.d.ts +6 -6
  78. package/dist/snapshotChunks.d.ts.map +1 -1
  79. package/dist/snapshotChunks.js.map +1 -1
  80. package/dist/snapshotLoader.d.ts +6 -6
  81. package/dist/snapshotLoader.d.ts.map +1 -1
  82. package/dist/snapshotLoader.js.map +1 -1
  83. package/dist/snapshotV1.d.ts +8 -8
  84. package/dist/snapshotV1.d.ts.map +1 -1
  85. package/dist/snapshotV1.js.map +1 -1
  86. package/dist/snapshotlegacy.d.ts +6 -6
  87. package/dist/snapshotlegacy.d.ts.map +1 -1
  88. package/dist/snapshotlegacy.js.map +1 -1
  89. package/dist/sortedSegmentSet.d.ts +2 -2
  90. package/dist/sortedSegmentSet.d.ts.map +1 -1
  91. package/dist/sortedSegmentSet.js.map +1 -1
  92. package/dist/test/Removal.perf.spec.js.map +1 -1
  93. package/dist/test/attributionCollection.perf.spec.js.map +1 -1
  94. package/dist/test/attributionCollection.spec.js.map +1 -1
  95. package/dist/test/attributionPolicy.spec.js.map +1 -1
  96. package/dist/test/beastTest.spec.d.ts +1 -1
  97. package/dist/test/beastTest.spec.d.ts.map +1 -1
  98. package/dist/test/beastTest.spec.js.map +1 -1
  99. package/dist/test/client.annotateMarker.spec.js.map +1 -1
  100. package/dist/test/client.apis.spec.js.map +1 -1
  101. package/dist/test/client.applyMsg.spec.js.map +1 -1
  102. package/dist/test/client.applyStashedOpFarm.spec.d.ts +1 -1
  103. package/dist/test/client.applyStashedOpFarm.spec.d.ts.map +1 -1
  104. package/dist/test/client.applyStashedOpFarm.spec.js.map +1 -1
  105. package/dist/test/client.attributionFarm.spec.d.ts +1 -1
  106. package/dist/test/client.attributionFarm.spec.d.ts.map +1 -1
  107. package/dist/test/client.attributionFarm.spec.js.map +1 -1
  108. package/dist/test/client.conflictFarm.spec.d.ts +1 -1
  109. package/dist/test/client.conflictFarm.spec.d.ts.map +1 -1
  110. package/dist/test/client.conflictFarm.spec.js.map +1 -1
  111. package/dist/test/client.localReference.spec.js.map +1 -1
  112. package/dist/test/client.localReferenceFarm.spec.js.map +1 -1
  113. package/dist/test/client.obliterateFarm.spec.d.ts +1 -1
  114. package/dist/test/client.obliterateFarm.spec.d.ts.map +1 -1
  115. package/dist/test/client.obliterateFarm.spec.js.map +1 -1
  116. package/dist/test/client.rebasePosition.spec.js.map +1 -1
  117. package/dist/test/client.reconnectFarm.spec.d.ts +1 -1
  118. package/dist/test/client.reconnectFarm.spec.d.ts.map +1 -1
  119. package/dist/test/client.reconnectFarm.spec.js.map +1 -1
  120. package/dist/test/client.replay.spec.js.map +1 -1
  121. package/dist/test/client.rollback.spec.js.map +1 -1
  122. package/dist/test/client.rollbackFarm.spec.js.map +1 -1
  123. package/dist/test/clientTestHelper.d.ts +1 -1
  124. package/dist/test/clientTestHelper.d.ts.map +1 -1
  125. package/dist/test/clientTestHelper.js.map +1 -1
  126. package/dist/test/index.d.ts +4 -4
  127. package/dist/test/index.d.ts.map +1 -1
  128. package/dist/test/index.js.map +1 -1
  129. package/dist/test/mergeTree.annotate.spec.js.map +1 -1
  130. package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
  131. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  132. package/dist/test/mergeTree.walk.spec.js.map +1 -1
  133. package/dist/test/mergeTree.zamboni.spec.js.map +1 -1
  134. package/dist/test/mergeTreeOperationRunner.d.ts +5 -5
  135. package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
  136. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  137. package/dist/test/mergeTreeOperationRunner.spec.js.map +1 -1
  138. package/dist/test/obliterate.deltaCallback.spec.js.map +1 -1
  139. package/dist/test/obliterateOperations.js.map +1 -1
  140. package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  141. package/dist/test/revertibleFarm.spec.js.map +1 -1
  142. package/dist/test/revertibles.spec.js.map +1 -1
  143. package/dist/test/segmentGroupCollection.spec.js.map +1 -1
  144. package/dist/test/snapshot.spec.js.map +1 -1
  145. package/dist/test/snapshot.utils.d.ts +4 -4
  146. package/dist/test/snapshot.utils.d.ts.map +1 -1
  147. package/dist/test/snapshot.utils.js.map +1 -1
  148. package/dist/test/snapshotlegacy.spec.js.map +1 -1
  149. package/dist/test/sortedSegmentSet.spec.js.map +1 -1
  150. package/dist/test/testClient.d.ts +9 -9
  151. package/dist/test/testClient.d.ts.map +1 -1
  152. package/dist/test/testClient.js.map +1 -1
  153. package/dist/test/testClientLogger.d.ts +2 -2
  154. package/dist/test/testClientLogger.d.ts.map +1 -1
  155. package/dist/test/testClientLogger.js.map +1 -1
  156. package/dist/test/testSerializer.d.ts +2 -2
  157. package/dist/test/testSerializer.d.ts.map +1 -1
  158. package/dist/test/testSerializer.js.map +1 -1
  159. package/dist/test/testServer.d.ts +2 -2
  160. package/dist/test/testServer.d.ts.map +1 -1
  161. package/dist/test/testServer.js.map +1 -1
  162. package/dist/test/testUtils.d.ts +3 -3
  163. package/dist/test/testUtils.d.ts.map +1 -1
  164. package/dist/test/testUtils.js.map +1 -1
  165. package/dist/test/text.d.ts +1 -1
  166. package/dist/test/text.d.ts.map +1 -1
  167. package/dist/test/text.js.map +1 -1
  168. package/dist/test/wordUnitTests.spec.js.map +1 -1
  169. package/dist/textSegment.d.ts +4 -6
  170. package/dist/textSegment.d.ts.map +1 -1
  171. package/dist/textSegment.js +1 -2
  172. package/dist/textSegment.js.map +1 -1
  173. package/dist/zamboni.d.ts +1 -1
  174. package/dist/zamboni.d.ts.map +1 -1
  175. package/dist/zamboni.js.map +1 -1
  176. package/lib/attributionCollection.d.ts +7 -12
  177. package/lib/attributionCollection.d.ts.map +1 -1
  178. package/lib/attributionCollection.js.map +1 -1
  179. package/lib/attributionPolicy.d.ts +1 -1
  180. package/lib/attributionPolicy.d.ts.map +1 -1
  181. package/lib/attributionPolicy.js.map +1 -1
  182. package/lib/client.d.ts +11 -11
  183. package/lib/client.d.ts.map +1 -1
  184. package/lib/client.js.map +1 -1
  185. package/lib/collections/index.d.ts +1 -1
  186. package/lib/collections/index.d.ts.map +1 -1
  187. package/lib/collections/index.js.map +1 -1
  188. package/lib/endOfTreeSegment.d.ts +4 -4
  189. package/lib/endOfTreeSegment.d.ts.map +1 -1
  190. package/lib/endOfTreeSegment.js.map +1 -1
  191. package/lib/index.d.ts +16 -16
  192. package/lib/index.d.ts.map +1 -1
  193. package/lib/index.js.map +1 -1
  194. package/lib/localReference.d.ts +6 -9
  195. package/lib/localReference.d.ts.map +1 -1
  196. package/lib/localReference.js +1 -2
  197. package/lib/localReference.js.map +1 -1
  198. package/lib/mergeTree.d.ts +9 -10
  199. package/lib/mergeTree.d.ts.map +1 -1
  200. package/lib/mergeTree.js.map +1 -1
  201. package/lib/mergeTreeDeltaCallback.d.ts +12 -20
  202. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
  203. package/lib/mergeTreeDeltaCallback.js +1 -2
  204. package/lib/mergeTreeDeltaCallback.js.map +1 -1
  205. package/lib/mergeTreeNodeWalk.d.ts +1 -1
  206. package/lib/mergeTreeNodeWalk.d.ts.map +1 -1
  207. package/lib/mergeTreeNodeWalk.js.map +1 -1
  208. package/lib/mergeTreeNodes.d.ts +14 -21
  209. package/lib/mergeTreeNodes.d.ts.map +1 -1
  210. package/lib/mergeTreeNodes.js +4 -8
  211. package/lib/mergeTreeNodes.js.map +1 -1
  212. package/lib/mergeTreeTracking.d.ts +6 -10
  213. package/lib/mergeTreeTracking.d.ts.map +1 -1
  214. package/lib/mergeTreeTracking.js +2 -4
  215. package/lib/mergeTreeTracking.js.map +1 -1
  216. package/lib/opBuilder.d.ts +3 -3
  217. package/lib/opBuilder.d.ts.map +1 -1
  218. package/lib/opBuilder.js.map +1 -1
  219. package/lib/ops.d.ts +17 -34
  220. package/lib/ops.d.ts.map +1 -1
  221. package/lib/ops.js +2 -4
  222. package/lib/ops.js.map +1 -1
  223. package/lib/partialLengths.d.ts +2 -2
  224. package/lib/partialLengths.d.ts.map +1 -1
  225. package/lib/partialLengths.js.map +1 -1
  226. package/lib/properties.d.ts +2 -4
  227. package/lib/properties.d.ts.map +1 -1
  228. package/lib/properties.js.map +1 -1
  229. package/lib/referencePositions.d.ts +6 -9
  230. package/lib/referencePositions.d.ts.map +1 -1
  231. package/lib/referencePositions.js +2 -4
  232. package/lib/referencePositions.js.map +1 -1
  233. package/lib/revertibles.d.ts +11 -16
  234. package/lib/revertibles.d.ts.map +1 -1
  235. package/lib/revertibles.js +4 -7
  236. package/lib/revertibles.js.map +1 -1
  237. package/lib/segmentGroupCollection.d.ts +1 -1
  238. package/lib/segmentGroupCollection.d.ts.map +1 -1
  239. package/lib/segmentGroupCollection.js.map +1 -1
  240. package/lib/segmentInfos.d.ts +1 -1
  241. package/lib/segmentInfos.d.ts.map +1 -1
  242. package/lib/segmentInfos.js.map +1 -1
  243. package/lib/segmentPropertiesManager.d.ts +1 -1
  244. package/lib/segmentPropertiesManager.d.ts.map +1 -1
  245. package/lib/segmentPropertiesManager.js.map +1 -1
  246. package/lib/sequencePlace.d.ts +4 -8
  247. package/lib/sequencePlace.d.ts.map +1 -1
  248. package/lib/sequencePlace.js +2 -4
  249. package/lib/sequencePlace.js.map +1 -1
  250. package/lib/snapshotChunks.d.ts +6 -6
  251. package/lib/snapshotChunks.d.ts.map +1 -1
  252. package/lib/snapshotChunks.js.map +1 -1
  253. package/lib/snapshotLoader.d.ts +6 -6
  254. package/lib/snapshotLoader.d.ts.map +1 -1
  255. package/lib/snapshotLoader.js.map +1 -1
  256. package/lib/snapshotV1.d.ts +8 -8
  257. package/lib/snapshotV1.d.ts.map +1 -1
  258. package/lib/snapshotV1.js.map +1 -1
  259. package/lib/snapshotlegacy.d.ts +6 -6
  260. package/lib/snapshotlegacy.d.ts.map +1 -1
  261. package/lib/snapshotlegacy.js.map +1 -1
  262. package/lib/sortedSegmentSet.d.ts +2 -2
  263. package/lib/sortedSegmentSet.d.ts.map +1 -1
  264. package/lib/sortedSegmentSet.js.map +1 -1
  265. package/lib/test/Removal.perf.spec.js.map +1 -1
  266. package/lib/test/attributionCollection.perf.spec.js.map +1 -1
  267. package/lib/test/attributionCollection.spec.js.map +1 -1
  268. package/lib/test/attributionPolicy.spec.js.map +1 -1
  269. package/lib/test/beastTest.spec.d.ts +1 -1
  270. package/lib/test/beastTest.spec.d.ts.map +1 -1
  271. package/lib/test/beastTest.spec.js.map +1 -1
  272. package/lib/test/client.annotateMarker.spec.js.map +1 -1
  273. package/lib/test/client.apis.spec.js.map +1 -1
  274. package/lib/test/client.applyMsg.spec.js.map +1 -1
  275. package/lib/test/client.applyStashedOpFarm.spec.d.ts +1 -1
  276. package/lib/test/client.applyStashedOpFarm.spec.d.ts.map +1 -1
  277. package/lib/test/client.applyStashedOpFarm.spec.js.map +1 -1
  278. package/lib/test/client.attributionFarm.spec.d.ts +1 -1
  279. package/lib/test/client.attributionFarm.spec.d.ts.map +1 -1
  280. package/lib/test/client.attributionFarm.spec.js.map +1 -1
  281. package/lib/test/client.conflictFarm.spec.d.ts +1 -1
  282. package/lib/test/client.conflictFarm.spec.d.ts.map +1 -1
  283. package/lib/test/client.conflictFarm.spec.js.map +1 -1
  284. package/lib/test/client.localReference.spec.js.map +1 -1
  285. package/lib/test/client.localReferenceFarm.spec.js.map +1 -1
  286. package/lib/test/client.obliterateFarm.spec.d.ts +1 -1
  287. package/lib/test/client.obliterateFarm.spec.d.ts.map +1 -1
  288. package/lib/test/client.obliterateFarm.spec.js.map +1 -1
  289. package/lib/test/client.rebasePosition.spec.js.map +1 -1
  290. package/lib/test/client.reconnectFarm.spec.d.ts +1 -1
  291. package/lib/test/client.reconnectFarm.spec.d.ts.map +1 -1
  292. package/lib/test/client.reconnectFarm.spec.js.map +1 -1
  293. package/lib/test/client.replay.spec.js.map +1 -1
  294. package/lib/test/client.rollback.spec.js.map +1 -1
  295. package/lib/test/client.rollbackFarm.spec.js.map +1 -1
  296. package/lib/test/clientTestHelper.d.ts +1 -1
  297. package/lib/test/clientTestHelper.d.ts.map +1 -1
  298. package/lib/test/clientTestHelper.js.map +1 -1
  299. package/lib/test/index.d.ts +4 -4
  300. package/lib/test/index.d.ts.map +1 -1
  301. package/lib/test/index.js.map +1 -1
  302. package/lib/test/mergeTree.annotate.spec.js.map +1 -1
  303. package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
  304. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  305. package/lib/test/mergeTree.walk.spec.js.map +1 -1
  306. package/lib/test/mergeTree.zamboni.spec.js.map +1 -1
  307. package/lib/test/mergeTreeOperationRunner.d.ts +5 -5
  308. package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -1
  309. package/lib/test/mergeTreeOperationRunner.js.map +1 -1
  310. package/lib/test/mergeTreeOperationRunner.spec.js.map +1 -1
  311. package/lib/test/obliterate.deltaCallback.spec.js.map +1 -1
  312. package/lib/test/obliterateOperations.js.map +1 -1
  313. package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  314. package/lib/test/revertibleFarm.spec.js.map +1 -1
  315. package/lib/test/revertibles.spec.js.map +1 -1
  316. package/lib/test/segmentGroupCollection.spec.js.map +1 -1
  317. package/lib/test/snapshot.spec.js.map +1 -1
  318. package/lib/test/snapshot.utils.d.ts +4 -4
  319. package/lib/test/snapshot.utils.d.ts.map +1 -1
  320. package/lib/test/snapshot.utils.js.map +1 -1
  321. package/lib/test/snapshotlegacy.spec.js.map +1 -1
  322. package/lib/test/sortedSegmentSet.spec.js.map +1 -1
  323. package/lib/test/testClient.d.ts +9 -9
  324. package/lib/test/testClient.d.ts.map +1 -1
  325. package/lib/test/testClient.js.map +1 -1
  326. package/lib/test/testClientLogger.d.ts +2 -2
  327. package/lib/test/testClientLogger.d.ts.map +1 -1
  328. package/lib/test/testClientLogger.js.map +1 -1
  329. package/lib/test/testSerializer.d.ts +2 -2
  330. package/lib/test/testSerializer.d.ts.map +1 -1
  331. package/lib/test/testSerializer.js.map +1 -1
  332. package/lib/test/testServer.d.ts +2 -2
  333. package/lib/test/testServer.d.ts.map +1 -1
  334. package/lib/test/testServer.js.map +1 -1
  335. package/lib/test/testUtils.d.ts +3 -3
  336. package/lib/test/testUtils.d.ts.map +1 -1
  337. package/lib/test/testUtils.js.map +1 -1
  338. package/lib/test/text.d.ts +1 -1
  339. package/lib/test/text.d.ts.map +1 -1
  340. package/lib/test/text.js.map +1 -1
  341. package/lib/test/wordUnitTests.spec.js.map +1 -1
  342. package/lib/textSegment.d.ts +4 -6
  343. package/lib/textSegment.d.ts.map +1 -1
  344. package/lib/textSegment.js +1 -2
  345. package/lib/textSegment.js.map +1 -1
  346. package/lib/zamboni.d.ts +1 -1
  347. package/lib/zamboni.d.ts.map +1 -1
  348. package/lib/zamboni.js.map +1 -1
  349. package/package.json +17 -17
  350. package/src/attributionCollection.ts +7 -12
  351. package/src/attributionPolicy.ts +8 -8
  352. package/src/client.ts +24 -24
  353. package/src/collections/index.ts +11 -11
  354. package/src/endOfTreeSegment.ts +4 -8
  355. package/src/index.ts +54 -54
  356. package/src/localReference.ts +8 -11
  357. package/src/mergeTree.ts +19 -20
  358. package/src/mergeTreeDeltaCallback.ts +12 -20
  359. package/src/mergeTreeNodeWalk.ts +1 -1
  360. package/src/mergeTreeNodes.ts +15 -22
  361. package/src/mergeTreeTracking.ts +6 -10
  362. package/src/opBuilder.ts +8 -8
  363. package/src/ops.ts +17 -34
  364. package/src/partialLengths.ts +4 -4
  365. package/src/properties.ts +2 -4
  366. package/src/referencePositions.ts +6 -9
  367. package/src/revertibles.ts +15 -16
  368. package/src/segmentGroupCollection.ts +1 -1
  369. package/src/segmentInfos.ts +2 -2
  370. package/src/segmentPropertiesManager.ts +1 -1
  371. package/src/sequencePlace.ts +4 -8
  372. package/src/snapshotChunks.ts +6 -6
  373. package/src/snapshotLoader.ts +11 -11
  374. package/src/snapshotV1.ts +13 -13
  375. package/src/snapshotlegacy.ts +8 -8
  376. package/src/sortedSegmentSet.ts +2 -2
  377. package/src/textSegment.ts +4 -6
  378. package/src/zamboni.ts +3 -3
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { AttributionPolicy } from "./mergeTree.js";
5
+ import type { AttributionPolicy } from "./mergeTree.js";
6
6
  /**
7
7
  * Creates an {@link AttributionPolicy} which only tracks initial insertion of content.
8
8
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"attributionPolicy.d.ts","sourceRoot":"","sources":["../src/attributionPolicy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA2LnD;;;GAGG;AAEH,wBAAgB,iCAAiC,IAAI,iBAAiB,CAOrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8CAA8C,CAC7D,GAAG,SAAS,EAAE,MAAM,EAAE,GACpB,MAAM,iBAAiB,CAQzB;AAED;;;;;GAKG;AACH,wBAAgB,0DAA0D,CACzE,GAAG,SAAS,EAAE,MAAM,EAAE,GACpB,MAAM,iBAAiB,CASzB"}
1
+ {"version":3,"file":"attributionPolicy.d.ts","sourceRoot":"","sources":["../src/attributionPolicy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA2LxD;;;GAGG;AAEH,wBAAgB,iCAAiC,IAAI,iBAAiB,CAOrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8CAA8C,CAC7D,GAAG,SAAS,EAAE,MAAM,EAAE,GACpB,MAAM,iBAAiB,CAQzB;AAED;;;;;GAKG;AACH,wBAAgB,0DAA0D,CACzE,GAAG,SAAS,EAAE,MAAM,EAAE,GACpB,MAAM,iBAAiB,CASzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"attributionPolicy.js","sourceRoot":"","sources":["../src/attributionPolicy.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/internal\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions/internal\";\nimport { AttributionKey } from \"@fluidframework/runtime-definitions/internal\";\n\nimport { AttributionCollection } from \"./attributionCollection.js\";\nimport { Client } from \"./client.js\";\nimport { AttributionPolicy } from \"./mergeTree.js\";\nimport {\n\tIMergeTreeDeltaCallbackArgs,\n\tIMergeTreeDeltaOpArgs,\n\tIMergeTreeMaintenanceCallbackArgs,\n\tIMergeTreeSegmentDelta,\n\tMergeTreeMaintenanceType,\n} from \"./mergeTreeDeltaCallback.js\";\nimport { MergeTreeDeltaType } from \"./ops.js\";\nimport { isInserted } from \"./segmentInfos.js\";\n\n// Note: these thinly wrap MergeTreeDeltaCallback and MergeTreeMaintenanceCallback to provide the client.\n// This is because the base callbacks don't always have enough information to infer whether the op being\n// processed is in a detached or attached state, which may affect the attribution key.\ninterface AttributionCallbacks {\n\tdelta: (\n\t\topArgs: IMergeTreeDeltaOpArgs,\n\t\tdeltaArgs: IMergeTreeDeltaCallbackArgs,\n\n\t\tclient: Client,\n\t) => void;\n\tmaintenance: (\n\t\tmaintenanceArgs: IMergeTreeMaintenanceCallbackArgs,\n\t\topArgs: IMergeTreeDeltaOpArgs | undefined,\n\n\t\tclient: Client,\n\t) => void;\n}\n\nfunction createAttributionPolicyFromCallbacks({\n\tdelta,\n\tmaintenance,\n}: AttributionCallbacks): AttributionPolicy {\n\tlet unsubscribe: undefined | (() => void);\n\treturn {\n\t\tattach: (client: Client): void => {\n\t\t\tassert(unsubscribe === undefined, 0x557 /* cannot attach to multiple clients at once */);\n\n\t\t\tconst deltaSubscribed: AttributionCallbacks[\"delta\"] = (opArgs, deltaArgs) =>\n\t\t\t\tdelta(opArgs, deltaArgs, client);\n\t\t\tconst maintenanceSubscribed: AttributionCallbacks[\"maintenance\"] = (args, opArgs) =>\n\t\t\t\tmaintenance(args, opArgs, client);\n\n\t\t\tclient.on(\"delta\", deltaSubscribed);\n\t\t\tclient.on(\"maintenance\", maintenanceSubscribed);\n\n\t\t\tunsubscribe = (): void => {\n\t\t\t\tclient.off(\"delta\", deltaSubscribed);\n\t\t\t\tclient.off(\"maintenance\", maintenanceSubscribed);\n\t\t\t};\n\t\t},\n\t\tdetach: (): void => {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribe = undefined;\n\t\t},\n\t\tget isAttached(): boolean {\n\t\t\treturn unsubscribe !== undefined;\n\t\t},\n\t\tserializer: AttributionCollection,\n\t};\n}\n\nconst ensureAttributionCollectionCallbacks: AttributionCallbacks = {\n\tdelta: ({ op }, { deltaSegments }) => {\n\t\tif (op.type === MergeTreeDeltaType.INSERT) {\n\t\t\tfor (const { segment } of deltaSegments) {\n\t\t\t\tsegment.attribution = new AttributionCollection(segment.cachedLength);\n\t\t\t}\n\t\t}\n\t},\n\tmaintenance: () => {},\n};\n\nconst getAttributionKey = (\n\tclient: Client,\n\tmsg: ISequencedDocumentMessage | undefined,\n): AttributionKey => {\n\tif (msg) {\n\t\treturn { type: \"op\", seq: msg.sequenceNumber };\n\t}\n\tconst collabWindow = client.getCollabWindow();\n\treturn collabWindow.collaborating ? { type: \"local\" } : { type: \"detached\", id: 0 };\n};\n\nconst attributeInsertionOnSegments = (\n\tdeltaSegments: IMergeTreeSegmentDelta[],\n\tkey: AttributionKey,\n): void => {\n\tfor (const { segment } of deltaSegments) {\n\t\tif (isInserted(segment)) {\n\t\t\tsegment.attribution?.update(\n\t\t\t\tundefined,\n\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t);\n\t\t}\n\t}\n};\n\nconst insertOnlyAttributionPolicyCallbacks: AttributionCallbacks = {\n\tdelta: (opArgs, { deltaSegments, operation }, client) => {\n\t\tif (operation === MergeTreeDeltaType.INSERT) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n\tmaintenance: ({ deltaSegments, operation }, opArgs, client) => {\n\t\tif (\n\t\t\toperation === MergeTreeMaintenanceType.ACKNOWLEDGED &&\n\t\t\topArgs?.op.type === MergeTreeDeltaType.INSERT\n\t\t) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n};\n\nfunction createPropertyTrackingMergeTreeCallbacks(\n\t...propNames: string[]\n): AttributionCallbacks {\n\tconst toTrack = propNames.map((entry) => ({ propName: entry, channelName: entry }));\n\tconst attributeAnnotateOnSegments = (\n\t\tisLocal: boolean,\n\t\tdeltaSegments: IMergeTreeSegmentDelta[],\n\t\t{ op }: IMergeTreeDeltaOpArgs,\n\t\tkey: AttributionKey,\n\t): void => {\n\t\tfor (const { segment, propertyDeltas } of deltaSegments) {\n\t\t\tfor (const { propName, channelName } of toTrack) {\n\t\t\t\tconst shouldAttributeInsert =\n\t\t\t\t\top.type === MergeTreeDeltaType.INSERT &&\n\t\t\t\t\tsegment.properties?.[propName] !== undefined;\n\n\t\t\t\tconst shouldAttributeAnnotate =\n\t\t\t\t\top.type === MergeTreeDeltaType.ANNOTATE &&\n\t\t\t\t\t// Only attribute annotations which change the tracked property\n\t\t\t\t\t(op.props?.[propName] !== undefined || op.adjust?.[propName] !== undefined) &&\n\t\t\t\t\t(isLocal || (propertyDeltas !== undefined && propName in propertyDeltas));\n\n\t\t\t\tif (shouldAttributeInsert || shouldAttributeAnnotate) {\n\t\t\t\t\tsegment.attribution?.update(\n\t\t\t\t\t\tchannelName,\n\t\t\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\treturn {\n\t\tdelta: (opArgs, { deltaSegments }, client): void => {\n\t\t\tconst { op, sequencedMessage } = opArgs;\n\t\t\tif (op.type === MergeTreeDeltaType.ANNOTATE || op.type === MergeTreeDeltaType.INSERT) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\tsequencedMessage === undefined,\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tmaintenance: ({ deltaSegments, operation }, opArgs, client): void => {\n\t\t\tif (operation === MergeTreeMaintenanceType.ACKNOWLEDGED && opArgs !== undefined) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\ttrue,\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction combineMergeTreeCallbacks(callbacks: AttributionCallbacks[]): AttributionCallbacks {\n\treturn {\n\t\tdelta: (...args): void => {\n\t\t\tfor (const { delta } of callbacks) delta(...args);\n\t\t},\n\t\tmaintenance: (...args): void => {\n\t\t\tfor (const { maintenance } of callbacks) maintenance(...args);\n\t\t},\n\t};\n}\n\n/**\n * Creates an {@link AttributionPolicy} which only tracks initial insertion of content.\n * @internal\n */\n\nexport function createInsertOnlyAttributionPolicy(): AttributionPolicy {\n\treturn createAttributionPolicyFromCallbacks(\n\t\tcombineMergeTreeCallbacks([\n\t\t\tensureAttributionCollectionCallbacks,\n\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t]),\n\t);\n}\n\n/**\n * Creates an {@link AttributionPolicy} for tracking annotation of specific properties.\n * @param propNames - List of property names for which attribution should be tracked.\n * @returns A policy which only attributes annotation of the properties specified.\n * Keys for each property are stored under attribution channels of the same name--see example below.\n *\n * @example\n *\n * ```typescript\n * // Use this policy when creating your merge-tree:\n * const policy = createPropertyTrackingAttributionPolicyFactory(\"bold\", \"italic\");\n * // ... later, you can get attribution keys for the last time the \"bold\" and \"italic\"\n * // properties were changed on a segment using `getAtOffset`:\n * const lastBoldedAttributionKey = segment.attribution?.getAtOffset(0, \"bold\");\n * const lastItalicizedAttributionKey = segment.attribution?.getAtOffset(0, \"italic\");\n * ```\n * @internal\n */\nexport function createPropertyTrackingAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n\n/**\n * Creates an attribution policy which tracks insertion as well as annotation of certain property names.\n * This combines the policies creatable using {@link createPropertyTrackingAttributionPolicyFactory} and\n * {@link createInsertOnlyAttributionPolicy}: see there for more details.\n * @internal\n */\nexport function createPropertyTrackingAndInsertionAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n"]}
1
+ {"version":3,"file":"attributionPolicy.js","sourceRoot":"","sources":["../src/attributionPolicy.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/internal\";\nimport type { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions/internal\";\nimport type { AttributionKey } from \"@fluidframework/runtime-definitions/internal\";\n\nimport { AttributionCollection } from \"./attributionCollection.js\";\nimport type { Client } from \"./client.js\";\nimport type { AttributionPolicy } from \"./mergeTree.js\";\nimport {\n\ttype IMergeTreeDeltaCallbackArgs,\n\ttype IMergeTreeDeltaOpArgs,\n\ttype IMergeTreeMaintenanceCallbackArgs,\n\ttype IMergeTreeSegmentDelta,\n\tMergeTreeMaintenanceType,\n} from \"./mergeTreeDeltaCallback.js\";\nimport { MergeTreeDeltaType } from \"./ops.js\";\nimport { isInserted } from \"./segmentInfos.js\";\n\n// Note: these thinly wrap MergeTreeDeltaCallback and MergeTreeMaintenanceCallback to provide the client.\n// This is because the base callbacks don't always have enough information to infer whether the op being\n// processed is in a detached or attached state, which may affect the attribution key.\ninterface AttributionCallbacks {\n\tdelta: (\n\t\topArgs: IMergeTreeDeltaOpArgs,\n\t\tdeltaArgs: IMergeTreeDeltaCallbackArgs,\n\n\t\tclient: Client,\n\t) => void;\n\tmaintenance: (\n\t\tmaintenanceArgs: IMergeTreeMaintenanceCallbackArgs,\n\t\topArgs: IMergeTreeDeltaOpArgs | undefined,\n\n\t\tclient: Client,\n\t) => void;\n}\n\nfunction createAttributionPolicyFromCallbacks({\n\tdelta,\n\tmaintenance,\n}: AttributionCallbacks): AttributionPolicy {\n\tlet unsubscribe: undefined | (() => void);\n\treturn {\n\t\tattach: (client: Client): void => {\n\t\t\tassert(unsubscribe === undefined, 0x557 /* cannot attach to multiple clients at once */);\n\n\t\t\tconst deltaSubscribed: AttributionCallbacks[\"delta\"] = (opArgs, deltaArgs) =>\n\t\t\t\tdelta(opArgs, deltaArgs, client);\n\t\t\tconst maintenanceSubscribed: AttributionCallbacks[\"maintenance\"] = (args, opArgs) =>\n\t\t\t\tmaintenance(args, opArgs, client);\n\n\t\t\tclient.on(\"delta\", deltaSubscribed);\n\t\t\tclient.on(\"maintenance\", maintenanceSubscribed);\n\n\t\t\tunsubscribe = (): void => {\n\t\t\t\tclient.off(\"delta\", deltaSubscribed);\n\t\t\t\tclient.off(\"maintenance\", maintenanceSubscribed);\n\t\t\t};\n\t\t},\n\t\tdetach: (): void => {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribe = undefined;\n\t\t},\n\t\tget isAttached(): boolean {\n\t\t\treturn unsubscribe !== undefined;\n\t\t},\n\t\tserializer: AttributionCollection,\n\t};\n}\n\nconst ensureAttributionCollectionCallbacks: AttributionCallbacks = {\n\tdelta: ({ op }, { deltaSegments }) => {\n\t\tif (op.type === MergeTreeDeltaType.INSERT) {\n\t\t\tfor (const { segment } of deltaSegments) {\n\t\t\t\tsegment.attribution = new AttributionCollection(segment.cachedLength);\n\t\t\t}\n\t\t}\n\t},\n\tmaintenance: () => {},\n};\n\nconst getAttributionKey = (\n\tclient: Client,\n\tmsg: ISequencedDocumentMessage | undefined,\n): AttributionKey => {\n\tif (msg) {\n\t\treturn { type: \"op\", seq: msg.sequenceNumber };\n\t}\n\tconst collabWindow = client.getCollabWindow();\n\treturn collabWindow.collaborating ? { type: \"local\" } : { type: \"detached\", id: 0 };\n};\n\nconst attributeInsertionOnSegments = (\n\tdeltaSegments: IMergeTreeSegmentDelta[],\n\tkey: AttributionKey,\n): void => {\n\tfor (const { segment } of deltaSegments) {\n\t\tif (isInserted(segment)) {\n\t\t\tsegment.attribution?.update(\n\t\t\t\tundefined,\n\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t);\n\t\t}\n\t}\n};\n\nconst insertOnlyAttributionPolicyCallbacks: AttributionCallbacks = {\n\tdelta: (opArgs, { deltaSegments, operation }, client) => {\n\t\tif (operation === MergeTreeDeltaType.INSERT) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n\tmaintenance: ({ deltaSegments, operation }, opArgs, client) => {\n\t\tif (\n\t\t\toperation === MergeTreeMaintenanceType.ACKNOWLEDGED &&\n\t\t\topArgs?.op.type === MergeTreeDeltaType.INSERT\n\t\t) {\n\t\t\tattributeInsertionOnSegments(\n\t\t\t\tdeltaSegments,\n\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t);\n\t\t}\n\t},\n};\n\nfunction createPropertyTrackingMergeTreeCallbacks(\n\t...propNames: string[]\n): AttributionCallbacks {\n\tconst toTrack = propNames.map((entry) => ({ propName: entry, channelName: entry }));\n\tconst attributeAnnotateOnSegments = (\n\t\tisLocal: boolean,\n\t\tdeltaSegments: IMergeTreeSegmentDelta[],\n\t\t{ op }: IMergeTreeDeltaOpArgs,\n\t\tkey: AttributionKey,\n\t): void => {\n\t\tfor (const { segment, propertyDeltas } of deltaSegments) {\n\t\t\tfor (const { propName, channelName } of toTrack) {\n\t\t\t\tconst shouldAttributeInsert =\n\t\t\t\t\top.type === MergeTreeDeltaType.INSERT &&\n\t\t\t\t\tsegment.properties?.[propName] !== undefined;\n\n\t\t\t\tconst shouldAttributeAnnotate =\n\t\t\t\t\top.type === MergeTreeDeltaType.ANNOTATE &&\n\t\t\t\t\t// Only attribute annotations which change the tracked property\n\t\t\t\t\t(op.props?.[propName] !== undefined || op.adjust?.[propName] !== undefined) &&\n\t\t\t\t\t(isLocal || (propertyDeltas !== undefined && propName in propertyDeltas));\n\n\t\t\t\tif (shouldAttributeInsert || shouldAttributeAnnotate) {\n\t\t\t\t\tsegment.attribution?.update(\n\t\t\t\t\t\tchannelName,\n\t\t\t\t\t\tnew AttributionCollection(segment.cachedLength, key),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\treturn {\n\t\tdelta: (opArgs, { deltaSegments }, client): void => {\n\t\t\tconst { op, sequencedMessage } = opArgs;\n\t\t\tif (op.type === MergeTreeDeltaType.ANNOTATE || op.type === MergeTreeDeltaType.INSERT) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\tsequencedMessage === undefined,\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tmaintenance: ({ deltaSegments, operation }, opArgs, client): void => {\n\t\t\tif (operation === MergeTreeMaintenanceType.ACKNOWLEDGED && opArgs !== undefined) {\n\t\t\t\tattributeAnnotateOnSegments(\n\t\t\t\t\ttrue,\n\t\t\t\t\tdeltaSegments,\n\t\t\t\t\topArgs,\n\t\t\t\t\tgetAttributionKey(client, opArgs.sequencedMessage),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction combineMergeTreeCallbacks(callbacks: AttributionCallbacks[]): AttributionCallbacks {\n\treturn {\n\t\tdelta: (...args): void => {\n\t\t\tfor (const { delta } of callbacks) delta(...args);\n\t\t},\n\t\tmaintenance: (...args): void => {\n\t\t\tfor (const { maintenance } of callbacks) maintenance(...args);\n\t\t},\n\t};\n}\n\n/**\n * Creates an {@link AttributionPolicy} which only tracks initial insertion of content.\n * @internal\n */\n\nexport function createInsertOnlyAttributionPolicy(): AttributionPolicy {\n\treturn createAttributionPolicyFromCallbacks(\n\t\tcombineMergeTreeCallbacks([\n\t\t\tensureAttributionCollectionCallbacks,\n\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t]),\n\t);\n}\n\n/**\n * Creates an {@link AttributionPolicy} for tracking annotation of specific properties.\n * @param propNames - List of property names for which attribution should be tracked.\n * @returns A policy which only attributes annotation of the properties specified.\n * Keys for each property are stored under attribution channels of the same name--see example below.\n *\n * @example\n *\n * ```typescript\n * // Use this policy when creating your merge-tree:\n * const policy = createPropertyTrackingAttributionPolicyFactory(\"bold\", \"italic\");\n * // ... later, you can get attribution keys for the last time the \"bold\" and \"italic\"\n * // properties were changed on a segment using `getAtOffset`:\n * const lastBoldedAttributionKey = segment.attribution?.getAtOffset(0, \"bold\");\n * const lastItalicizedAttributionKey = segment.attribution?.getAtOffset(0, \"italic\");\n * ```\n * @internal\n */\nexport function createPropertyTrackingAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n\n/**\n * Creates an attribution policy which tracks insertion as well as annotation of certain property names.\n * This combines the policies creatable using {@link createPropertyTrackingAttributionPolicyFactory} and\n * {@link createInsertOnlyAttributionPolicy}: see there for more details.\n * @internal\n */\nexport function createPropertyTrackingAndInsertionAttributionPolicyFactory(\n\t...propNames: string[]\n): () => AttributionPolicy {\n\treturn () =>\n\t\tcreateAttributionPolicyFromCallbacks(\n\t\t\tcombineMergeTreeCallbacks([\n\t\t\t\tensureAttributionCollectionCallbacks,\n\t\t\t\tinsertOnlyAttributionPolicyCallbacks,\n\t\t\t\tcreatePropertyTrackingMergeTreeCallbacks(...propNames),\n\t\t\t]),\n\t\t);\n}\n"]}
package/dist/client.d.ts CHANGED
@@ -3,20 +3,20 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
6
- import { type IEventThisPlaceHolder, IFluidHandle } from "@fluidframework/core-interfaces";
7
- import { IFluidDataStoreRuntime, IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
8
- import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
9
- import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions/internal";
10
- import { IFluidSerializer } from "@fluidframework/shared-object-base/internal";
11
- import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
6
+ import type { IEventThisPlaceHolder, IFluidHandle } from "@fluidframework/core-interfaces";
7
+ import type { IFluidDataStoreRuntime, IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
8
+ import { type ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
9
+ import type { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions/internal";
10
+ import type { IFluidSerializer } from "@fluidframework/shared-object-base/internal";
11
+ import { type ITelemetryLoggerExt } from "@fluidframework/telemetry-utils/internal";
12
12
  import { type IMergeTreeTextHelper } from "./MergeTreeTextHelper.js";
13
- import { LocalReferencePosition, SlidingPreference } from "./localReference.js";
13
+ import { type LocalReferencePosition, SlidingPreference } from "./localReference.js";
14
14
  import { type IMergeTreeOptionsInternal } from "./mergeTree.js";
15
15
  import type { IMergeTreeDeltaCallbackArgs, IMergeTreeDeltaOpArgs, IMergeTreeMaintenanceCallbackArgs } from "./mergeTreeDeltaCallback.js";
16
- import { CollaborationWindow, ISegment, ISegmentAction, Marker, type ISegmentInternal } from "./mergeTreeNodes.js";
17
- import { IJSONSegment, IMergeTreeAnnotateMsg, IMergeTreeGroupMsg, IMergeTreeInsertMsg, IMergeTreeObliterateMsg, IMergeTreeOp, IMergeTreeRemoveMsg, IRelativePosition, ReferenceType, type AdjustParams, type IMergeTreeAnnotateAdjustMsg, type IMergeTreeObliterateSidedMsg } from "./ops.js";
18
- import { PropertySet, type MapLike } from "./properties.js";
19
- import { ReferencePosition } from "./referencePositions.js";
16
+ import { type CollaborationWindow, type ISegment, type ISegmentAction, type Marker, type ISegmentInternal } from "./mergeTreeNodes.js";
17
+ import { type IJSONSegment, type IMergeTreeAnnotateMsg, type IMergeTreeGroupMsg, type IMergeTreeInsertMsg, type IMergeTreeObliterateMsg, type IMergeTreeOp, type IMergeTreeRemoveMsg, type IRelativePosition, ReferenceType, type AdjustParams, type IMergeTreeAnnotateAdjustMsg, type IMergeTreeObliterateSidedMsg } from "./ops.js";
18
+ import type { PropertySet, MapLike } from "./properties.js";
19
+ import { type ReferencePosition } from "./referencePositions.js";
20
20
  import { type InteriorSequencePlace } from "./sequencePlace.js";
21
21
  /**
22
22
  * A range [start, end)
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}