@fluid-experimental/tree 0.58.2002 → 0.59.1000

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 (817) hide show
  1. package/README.md +159 -46
  2. package/dist/ChangeCompression.d.ts +39 -0
  3. package/dist/ChangeCompression.d.ts.map +1 -0
  4. package/dist/ChangeCompression.js +117 -0
  5. package/dist/ChangeCompression.js.map +1 -0
  6. package/{lib/default-edits/PersistedTypes.d.ts → dist/ChangeTypes.d.ts} +58 -105
  7. package/dist/ChangeTypes.d.ts.map +1 -0
  8. package/dist/{default-edits/PersistedTypes.js → ChangeTypes.js} +21 -76
  9. package/dist/ChangeTypes.js.map +1 -0
  10. package/dist/Checkout.d.ts +39 -27
  11. package/dist/Checkout.d.ts.map +1 -1
  12. package/dist/Checkout.js +61 -32
  13. package/dist/Checkout.js.map +1 -1
  14. package/dist/Common.d.ts +175 -38
  15. package/dist/Common.d.ts.map +1 -1
  16. package/dist/Common.js +240 -103
  17. package/dist/Common.js.map +1 -1
  18. package/dist/EagerCheckout.d.ts +24 -0
  19. package/dist/EagerCheckout.d.ts.map +1 -0
  20. package/dist/{BasicCheckout.js → EagerCheckout.js} +9 -6
  21. package/dist/EagerCheckout.js.map +1 -0
  22. package/dist/EditLog.d.ts +77 -63
  23. package/dist/EditLog.d.ts.map +1 -1
  24. package/dist/EditLog.js +85 -48
  25. package/dist/EditLog.js.map +1 -1
  26. package/dist/EditUtilities.d.ts +168 -0
  27. package/dist/EditUtilities.d.ts.map +1 -0
  28. package/dist/EditUtilities.js +373 -0
  29. package/dist/EditUtilities.js.map +1 -0
  30. package/dist/EventTypes.d.ts +73 -0
  31. package/dist/EventTypes.d.ts.map +1 -0
  32. package/dist/EventTypes.js +78 -0
  33. package/dist/EventTypes.js.map +1 -0
  34. package/dist/Forest.d.ts +29 -7
  35. package/dist/Forest.d.ts.map +1 -1
  36. package/dist/Forest.js +60 -36
  37. package/dist/Forest.js.map +1 -1
  38. package/dist/HistoryEditFactory.d.ts +20 -0
  39. package/dist/HistoryEditFactory.d.ts.map +1 -0
  40. package/dist/HistoryEditFactory.js +226 -0
  41. package/dist/HistoryEditFactory.js.map +1 -0
  42. package/dist/IdConversion.d.ts +12 -0
  43. package/dist/IdConversion.d.ts.map +1 -0
  44. package/dist/IdConversion.js +98 -0
  45. package/dist/IdConversion.js.map +1 -0
  46. package/dist/Identifiers.d.ts +89 -2
  47. package/dist/Identifiers.d.ts.map +1 -1
  48. package/dist/Identifiers.js +10 -0
  49. package/dist/Identifiers.js.map +1 -1
  50. package/dist/InitialTree.d.ts +2 -2
  51. package/dist/InitialTree.d.ts.map +1 -1
  52. package/dist/InitialTree.js +2 -1
  53. package/dist/InitialTree.js.map +1 -1
  54. package/dist/LazyCheckout.d.ts +28 -0
  55. package/dist/LazyCheckout.d.ts.map +1 -0
  56. package/dist/LazyCheckout.js +44 -0
  57. package/dist/LazyCheckout.js.map +1 -0
  58. package/dist/LogViewer.d.ts +129 -85
  59. package/dist/LogViewer.d.ts.map +1 -1
  60. package/dist/LogViewer.js +111 -85
  61. package/dist/LogViewer.js.map +1 -1
  62. package/dist/MergeHealth.d.ts +221 -0
  63. package/dist/MergeHealth.d.ts.map +1 -0
  64. package/dist/MergeHealth.js +263 -0
  65. package/dist/MergeHealth.js.map +1 -0
  66. package/dist/NodeIdUtilities.d.ts +105 -0
  67. package/dist/NodeIdUtilities.d.ts.map +1 -0
  68. package/dist/NodeIdUtilities.js +60 -0
  69. package/dist/NodeIdUtilities.js.map +1 -0
  70. package/dist/PayloadUtilities.d.ts +42 -0
  71. package/dist/PayloadUtilities.d.ts.map +1 -0
  72. package/dist/PayloadUtilities.js +114 -0
  73. package/dist/PayloadUtilities.js.map +1 -0
  74. package/dist/ReconciliationPath.d.ts +18 -13
  75. package/dist/ReconciliationPath.d.ts.map +1 -1
  76. package/dist/ReconciliationPath.js.map +1 -1
  77. package/dist/RevisionValueCache.d.ts +11 -2
  78. package/dist/RevisionValueCache.d.ts.map +1 -1
  79. package/dist/RevisionValueCache.js +2 -3
  80. package/dist/RevisionValueCache.js.map +1 -1
  81. package/dist/RevisionView.d.ts +83 -0
  82. package/dist/RevisionView.d.ts.map +1 -0
  83. package/dist/RevisionView.js +182 -0
  84. package/dist/RevisionView.js.map +1 -0
  85. package/dist/SerializationUtilities.d.ts +36 -0
  86. package/dist/SerializationUtilities.d.ts.map +1 -0
  87. package/dist/SerializationUtilities.js +102 -0
  88. package/dist/SerializationUtilities.js.map +1 -0
  89. package/dist/SharedTree.d.ts +439 -0
  90. package/dist/SharedTree.d.ts.map +1 -0
  91. package/dist/SharedTree.js +1109 -0
  92. package/dist/SharedTree.js.map +1 -0
  93. package/dist/SharedTreeEncoder.d.ts +102 -0
  94. package/dist/SharedTreeEncoder.d.ts.map +1 -0
  95. package/dist/SharedTreeEncoder.js +313 -0
  96. package/dist/SharedTreeEncoder.js.map +1 -0
  97. package/dist/StringInterner.d.ts +46 -0
  98. package/dist/StringInterner.d.ts.map +1 -0
  99. package/dist/StringInterner.js +61 -0
  100. package/dist/StringInterner.js.map +1 -0
  101. package/dist/Summary.d.ts +40 -0
  102. package/dist/Summary.d.ts.map +1 -0
  103. package/dist/Summary.js +23 -0
  104. package/dist/Summary.js.map +1 -0
  105. package/dist/SummaryBackCompatibility.d.ts +22 -22
  106. package/dist/SummaryBackCompatibility.d.ts.map +1 -1
  107. package/dist/SummaryBackCompatibility.js +30 -33
  108. package/dist/SummaryBackCompatibility.js.map +1 -1
  109. package/dist/SummaryTestUtilities.d.ts +31 -0
  110. package/dist/SummaryTestUtilities.d.ts.map +1 -0
  111. package/dist/SummaryTestUtilities.js +37 -0
  112. package/dist/SummaryTestUtilities.js.map +1 -0
  113. package/dist/Transaction.d.ts +52 -0
  114. package/dist/Transaction.d.ts.map +1 -0
  115. package/dist/Transaction.js +72 -0
  116. package/dist/Transaction.js.map +1 -0
  117. package/dist/TransactionInternal.d.ts +540 -0
  118. package/dist/TransactionInternal.d.ts.map +1 -0
  119. package/dist/TransactionInternal.js +626 -0
  120. package/dist/TransactionInternal.js.map +1 -0
  121. package/dist/TreeCompressor.d.ts +36 -0
  122. package/dist/TreeCompressor.d.ts.map +1 -0
  123. package/dist/TreeCompressor.js +137 -0
  124. package/dist/TreeCompressor.js.map +1 -0
  125. package/dist/TreeNodeHandle.d.ts +12 -18
  126. package/dist/TreeNodeHandle.d.ts.map +1 -1
  127. package/dist/TreeNodeHandle.js +13 -23
  128. package/dist/TreeNodeHandle.js.map +1 -1
  129. package/dist/TreeView.d.ts +166 -0
  130. package/dist/TreeView.d.ts.map +1 -0
  131. package/dist/TreeView.js +218 -0
  132. package/dist/TreeView.js.map +1 -0
  133. package/dist/TreeViewUtilities.d.ts +21 -0
  134. package/dist/TreeViewUtilities.d.ts.map +1 -0
  135. package/dist/TreeViewUtilities.js +77 -0
  136. package/dist/TreeViewUtilities.js.map +1 -0
  137. package/dist/{default-edits/UndoRedoHandler.d.ts → UndoRedoHandler.d.ts} +2 -2
  138. package/dist/UndoRedoHandler.d.ts.map +1 -0
  139. package/dist/{default-edits/UndoRedoHandler.js → UndoRedoHandler.js} +5 -9
  140. package/dist/UndoRedoHandler.js.map +1 -0
  141. package/dist/id-compressor/AppendOnlySortedMap.d.ts +127 -0
  142. package/dist/id-compressor/AppendOnlySortedMap.d.ts.map +1 -0
  143. package/dist/id-compressor/AppendOnlySortedMap.js +283 -0
  144. package/dist/id-compressor/AppendOnlySortedMap.js.map +1 -0
  145. package/dist/id-compressor/IdCompressor.d.ts +389 -0
  146. package/dist/id-compressor/IdCompressor.d.ts.map +1 -0
  147. package/dist/id-compressor/IdCompressor.js +1353 -0
  148. package/dist/id-compressor/IdCompressor.js.map +1 -0
  149. package/dist/id-compressor/IdRange.d.ts +11 -0
  150. package/dist/id-compressor/IdRange.d.ts.map +1 -0
  151. package/dist/id-compressor/IdRange.js +29 -0
  152. package/dist/id-compressor/IdRange.js.map +1 -0
  153. package/dist/id-compressor/NumericUuid.d.ts +63 -0
  154. package/dist/id-compressor/NumericUuid.d.ts.map +1 -0
  155. package/dist/id-compressor/NumericUuid.js +377 -0
  156. package/dist/id-compressor/NumericUuid.js.map +1 -0
  157. package/dist/id-compressor/index.d.ts +12 -0
  158. package/dist/id-compressor/index.d.ts.map +1 -0
  159. package/dist/id-compressor/index.js +26 -0
  160. package/dist/id-compressor/index.js.map +1 -0
  161. package/dist/id-compressor/persisted-types/0.0.1.d.ts +156 -0
  162. package/dist/id-compressor/persisted-types/0.0.1.d.ts.map +1 -0
  163. package/dist/id-compressor/persisted-types/0.0.1.js +7 -0
  164. package/dist/id-compressor/persisted-types/0.0.1.js.map +1 -0
  165. package/dist/id-compressor/persisted-types/index.d.ts +6 -0
  166. package/dist/id-compressor/persisted-types/index.d.ts.map +1 -0
  167. package/dist/id-compressor/persisted-types/index.js +18 -0
  168. package/dist/id-compressor/persisted-types/index.js.map +1 -0
  169. package/dist/index.d.ts +29 -9
  170. package/dist/index.d.ts.map +1 -1
  171. package/dist/index.js +50 -35
  172. package/dist/index.js.map +1 -1
  173. package/dist/persisted-types/0.0.2.d.ts +385 -0
  174. package/dist/persisted-types/0.0.2.d.ts.map +1 -0
  175. package/dist/persisted-types/0.0.2.js +113 -0
  176. package/dist/persisted-types/0.0.2.js.map +1 -0
  177. package/dist/persisted-types/0.1.1.d.ts +314 -0
  178. package/dist/persisted-types/0.1.1.d.ts.map +1 -0
  179. package/dist/persisted-types/0.1.1.js +153 -0
  180. package/dist/persisted-types/0.1.1.js.map +1 -0
  181. package/dist/persisted-types/index.d.ts +7 -0
  182. package/dist/persisted-types/index.d.ts.map +1 -0
  183. package/dist/persisted-types/index.js +20 -0
  184. package/dist/persisted-types/index.js.map +1 -0
  185. package/docs/0-1-1-Compression.md +228 -0
  186. package/docs/Breaking-Change-Migration.md +52 -0
  187. package/docs/Compression.md +2 -2
  188. package/docs/Telemetry.md +43 -0
  189. package/docs/Write-Format.md +19 -0
  190. package/lib/ChangeCompression.d.ts +39 -0
  191. package/lib/ChangeCompression.d.ts.map +1 -0
  192. package/lib/ChangeCompression.js +111 -0
  193. package/lib/ChangeCompression.js.map +1 -0
  194. package/{dist/default-edits/PersistedTypes.d.ts → lib/ChangeTypes.d.ts} +58 -105
  195. package/lib/ChangeTypes.d.ts.map +1 -0
  196. package/lib/{default-edits/PersistedTypes.js → ChangeTypes.js} +15 -68
  197. package/lib/ChangeTypes.js.map +1 -0
  198. package/lib/Checkout.d.ts +39 -27
  199. package/lib/Checkout.d.ts.map +1 -1
  200. package/lib/Checkout.js +53 -24
  201. package/lib/Checkout.js.map +1 -1
  202. package/lib/Common.d.ts +175 -38
  203. package/lib/Common.d.ts.map +1 -1
  204. package/lib/Common.js +226 -101
  205. package/lib/Common.js.map +1 -1
  206. package/lib/EagerCheckout.d.ts +24 -0
  207. package/lib/EagerCheckout.d.ts.map +1 -0
  208. package/lib/{BasicCheckout.js → EagerCheckout.js} +7 -4
  209. package/lib/EagerCheckout.js.map +1 -0
  210. package/lib/EditLog.d.ts +77 -63
  211. package/lib/EditLog.d.ts.map +1 -1
  212. package/lib/EditLog.js +83 -47
  213. package/lib/EditLog.js.map +1 -1
  214. package/lib/EditUtilities.d.ts +168 -0
  215. package/lib/EditUtilities.d.ts.map +1 -0
  216. package/lib/EditUtilities.js +353 -0
  217. package/lib/EditUtilities.js.map +1 -0
  218. package/lib/EventTypes.d.ts +73 -0
  219. package/lib/EventTypes.d.ts.map +1 -0
  220. package/lib/EventTypes.js +75 -0
  221. package/lib/EventTypes.js.map +1 -0
  222. package/lib/Forest.d.ts +29 -7
  223. package/lib/Forest.d.ts.map +1 -1
  224. package/lib/Forest.js +58 -35
  225. package/lib/Forest.js.map +1 -1
  226. package/lib/HistoryEditFactory.d.ts +20 -0
  227. package/lib/HistoryEditFactory.d.ts.map +1 -0
  228. package/lib/{default-edits/HistoryEditFactory.js → HistoryEditFactory.js} +78 -39
  229. package/lib/HistoryEditFactory.js.map +1 -0
  230. package/lib/IdConversion.d.ts +12 -0
  231. package/lib/IdConversion.d.ts.map +1 -0
  232. package/lib/IdConversion.js +91 -0
  233. package/lib/IdConversion.js.map +1 -0
  234. package/lib/Identifiers.d.ts +89 -2
  235. package/lib/Identifiers.d.ts.map +1 -1
  236. package/lib/Identifiers.js +8 -1
  237. package/lib/Identifiers.js.map +1 -1
  238. package/lib/InitialTree.d.ts +2 -2
  239. package/lib/InitialTree.d.ts.map +1 -1
  240. package/lib/InitialTree.js +2 -1
  241. package/lib/InitialTree.js.map +1 -1
  242. package/lib/LazyCheckout.d.ts +28 -0
  243. package/lib/LazyCheckout.d.ts.map +1 -0
  244. package/lib/LazyCheckout.js +40 -0
  245. package/lib/LazyCheckout.js.map +1 -0
  246. package/lib/LogViewer.d.ts +129 -85
  247. package/lib/LogViewer.d.ts.map +1 -1
  248. package/lib/LogViewer.js +103 -77
  249. package/lib/LogViewer.js.map +1 -1
  250. package/lib/MergeHealth.d.ts +221 -0
  251. package/lib/MergeHealth.d.ts.map +1 -0
  252. package/lib/MergeHealth.js +258 -0
  253. package/lib/MergeHealth.js.map +1 -0
  254. package/lib/NodeIdUtilities.d.ts +105 -0
  255. package/lib/NodeIdUtilities.d.ts.map +1 -0
  256. package/lib/NodeIdUtilities.js +53 -0
  257. package/lib/NodeIdUtilities.js.map +1 -0
  258. package/lib/PayloadUtilities.d.ts +42 -0
  259. package/lib/PayloadUtilities.d.ts.map +1 -0
  260. package/lib/PayloadUtilities.js +110 -0
  261. package/lib/PayloadUtilities.js.map +1 -0
  262. package/lib/ReconciliationPath.d.ts +18 -13
  263. package/lib/ReconciliationPath.d.ts.map +1 -1
  264. package/lib/ReconciliationPath.js.map +1 -1
  265. package/lib/RevisionValueCache.d.ts +11 -2
  266. package/lib/RevisionValueCache.d.ts.map +1 -1
  267. package/lib/RevisionValueCache.js +2 -3
  268. package/lib/RevisionValueCache.js.map +1 -1
  269. package/lib/RevisionView.d.ts +83 -0
  270. package/lib/RevisionView.d.ts.map +1 -0
  271. package/lib/RevisionView.js +175 -0
  272. package/lib/RevisionView.js.map +1 -0
  273. package/lib/SerializationUtilities.d.ts +36 -0
  274. package/lib/SerializationUtilities.d.ts.map +1 -0
  275. package/lib/SerializationUtilities.js +95 -0
  276. package/lib/SerializationUtilities.js.map +1 -0
  277. package/lib/SharedTree.d.ts +439 -0
  278. package/lib/SharedTree.d.ts.map +1 -0
  279. package/lib/SharedTree.js +1104 -0
  280. package/lib/SharedTree.js.map +1 -0
  281. package/lib/SharedTreeEncoder.d.ts +102 -0
  282. package/lib/SharedTreeEncoder.d.ts.map +1 -0
  283. package/lib/SharedTreeEncoder.js +308 -0
  284. package/lib/SharedTreeEncoder.js.map +1 -0
  285. package/lib/StringInterner.d.ts +46 -0
  286. package/lib/StringInterner.d.ts.map +1 -0
  287. package/lib/StringInterner.js +57 -0
  288. package/lib/StringInterner.js.map +1 -0
  289. package/lib/Summary.d.ts +40 -0
  290. package/lib/Summary.d.ts.map +1 -0
  291. package/lib/Summary.js +19 -0
  292. package/lib/Summary.js.map +1 -0
  293. package/lib/SummaryBackCompatibility.d.ts +22 -22
  294. package/lib/SummaryBackCompatibility.d.ts.map +1 -1
  295. package/lib/SummaryBackCompatibility.js +29 -32
  296. package/lib/SummaryBackCompatibility.js.map +1 -1
  297. package/lib/SummaryTestUtilities.d.ts +31 -0
  298. package/lib/SummaryTestUtilities.d.ts.map +1 -0
  299. package/lib/SummaryTestUtilities.js +32 -0
  300. package/lib/SummaryTestUtilities.js.map +1 -0
  301. package/lib/Transaction.d.ts +52 -0
  302. package/lib/Transaction.d.ts.map +1 -0
  303. package/lib/Transaction.js +68 -0
  304. package/lib/Transaction.js.map +1 -0
  305. package/lib/TransactionInternal.d.ts +540 -0
  306. package/lib/TransactionInternal.d.ts.map +1 -0
  307. package/lib/TransactionInternal.js +622 -0
  308. package/lib/TransactionInternal.js.map +1 -0
  309. package/lib/TreeCompressor.d.ts +36 -0
  310. package/lib/TreeCompressor.d.ts.map +1 -0
  311. package/lib/TreeCompressor.js +133 -0
  312. package/lib/TreeCompressor.js.map +1 -0
  313. package/lib/TreeNodeHandle.d.ts +12 -18
  314. package/lib/TreeNodeHandle.d.ts.map +1 -1
  315. package/lib/TreeNodeHandle.js +14 -24
  316. package/lib/TreeNodeHandle.js.map +1 -1
  317. package/lib/TreeView.d.ts +166 -0
  318. package/lib/TreeView.d.ts.map +1 -0
  319. package/lib/TreeView.js +214 -0
  320. package/lib/TreeView.js.map +1 -0
  321. package/lib/TreeViewUtilities.d.ts +21 -0
  322. package/lib/TreeViewUtilities.d.ts.map +1 -0
  323. package/lib/TreeViewUtilities.js +71 -0
  324. package/lib/TreeViewUtilities.js.map +1 -0
  325. package/lib/{default-edits/UndoRedoHandler.d.ts → UndoRedoHandler.d.ts} +2 -2
  326. package/lib/UndoRedoHandler.d.ts.map +1 -0
  327. package/lib/{default-edits/UndoRedoHandler.js → UndoRedoHandler.js} +3 -7
  328. package/lib/UndoRedoHandler.js.map +1 -0
  329. package/lib/id-compressor/AppendOnlySortedMap.d.ts +127 -0
  330. package/lib/id-compressor/AppendOnlySortedMap.d.ts.map +1 -0
  331. package/lib/id-compressor/AppendOnlySortedMap.js +278 -0
  332. package/lib/id-compressor/AppendOnlySortedMap.js.map +1 -0
  333. package/lib/id-compressor/IdCompressor.d.ts +389 -0
  334. package/lib/id-compressor/IdCompressor.d.ts.map +1 -0
  335. package/lib/id-compressor/IdCompressor.js +1343 -0
  336. package/lib/id-compressor/IdCompressor.js.map +1 -0
  337. package/lib/id-compressor/IdRange.d.ts +11 -0
  338. package/lib/id-compressor/IdRange.d.ts.map +1 -0
  339. package/lib/id-compressor/IdRange.js +25 -0
  340. package/lib/id-compressor/IdRange.js.map +1 -0
  341. package/lib/id-compressor/NumericUuid.d.ts +63 -0
  342. package/lib/id-compressor/NumericUuid.d.ts.map +1 -0
  343. package/lib/id-compressor/NumericUuid.js +365 -0
  344. package/lib/id-compressor/NumericUuid.js.map +1 -0
  345. package/lib/id-compressor/index.d.ts +12 -0
  346. package/lib/id-compressor/index.d.ts.map +1 -0
  347. package/lib/id-compressor/index.js +12 -0
  348. package/lib/id-compressor/index.js.map +1 -0
  349. package/lib/id-compressor/persisted-types/0.0.1.d.ts +156 -0
  350. package/lib/id-compressor/persisted-types/0.0.1.d.ts.map +1 -0
  351. package/lib/{test/Snapshot.tests.d.ts → id-compressor/persisted-types/0.0.1.js} +1 -1
  352. package/lib/id-compressor/persisted-types/0.0.1.js.map +1 -0
  353. package/lib/id-compressor/persisted-types/index.d.ts +6 -0
  354. package/lib/id-compressor/persisted-types/index.d.ts.map +1 -0
  355. package/lib/id-compressor/persisted-types/index.js +6 -0
  356. package/lib/id-compressor/persisted-types/index.js.map +1 -0
  357. package/lib/index.d.ts +29 -9
  358. package/lib/index.d.ts.map +1 -1
  359. package/lib/index.js +23 -6
  360. package/lib/index.js.map +1 -1
  361. package/lib/persisted-types/0.0.2.d.ts +385 -0
  362. package/lib/persisted-types/0.0.2.d.ts.map +1 -0
  363. package/lib/persisted-types/0.0.2.js +110 -0
  364. package/lib/persisted-types/0.0.2.js.map +1 -0
  365. package/lib/persisted-types/0.1.1.d.ts +314 -0
  366. package/lib/persisted-types/0.1.1.d.ts.map +1 -0
  367. package/lib/persisted-types/0.1.1.js +150 -0
  368. package/lib/persisted-types/0.1.1.js.map +1 -0
  369. package/lib/persisted-types/index.d.ts +7 -0
  370. package/lib/persisted-types/index.d.ts.map +1 -0
  371. package/lib/persisted-types/index.js +8 -0
  372. package/lib/persisted-types/index.js.map +1 -0
  373. package/lib/test/AppendOnlySortedMap.tests.d.ts +6 -0
  374. package/lib/test/AppendOnlySortedMap.tests.d.ts.map +1 -0
  375. package/lib/test/AppendOnlySortedMap.tests.js +169 -0
  376. package/lib/test/AppendOnlySortedMap.tests.js.map +1 -0
  377. package/lib/test/{SnapshotUtilities.tests.d.ts → ChangeCompression.tests.d.ts} +1 -1
  378. package/lib/test/ChangeCompression.tests.d.ts.map +1 -0
  379. package/lib/test/ChangeCompression.tests.js +145 -0
  380. package/lib/test/ChangeCompression.tests.js.map +1 -0
  381. package/lib/test/Checkout.tests.d.ts +2 -3
  382. package/lib/test/Checkout.tests.d.ts.map +1 -1
  383. package/lib/test/Checkout.tests.js +126 -69
  384. package/lib/test/Checkout.tests.js.map +1 -1
  385. package/lib/test/Common.tests.js +60 -2
  386. package/lib/test/Common.tests.js.map +1 -1
  387. package/lib/test/{BasicCheckout.tests.d.ts → EagerCheckout.tests.d.ts} +1 -1
  388. package/lib/test/EagerCheckout.tests.d.ts.map +1 -0
  389. package/lib/test/EagerCheckout.tests.js +20 -0
  390. package/lib/test/EagerCheckout.tests.js.map +1 -0
  391. package/lib/test/Edit.tests.js +22 -14
  392. package/lib/test/Edit.tests.js.map +1 -1
  393. package/lib/test/{Anchors.glassBox.tests.d.ts → EditLog.perf.tests.d.ts} +1 -1
  394. package/lib/test/EditLog.perf.tests.d.ts.map +1 -0
  395. package/lib/test/EditLog.perf.tests.js +30 -0
  396. package/lib/test/EditLog.perf.tests.js.map +1 -0
  397. package/lib/test/EditLog.tests.js +10 -6
  398. package/lib/test/EditLog.tests.js.map +1 -1
  399. package/lib/test/EditUtilities.tests.d.ts +6 -0
  400. package/lib/test/EditUtilities.tests.d.ts.map +1 -0
  401. package/lib/test/EditUtilities.tests.js +503 -0
  402. package/lib/test/EditUtilities.tests.js.map +1 -0
  403. package/lib/test/Forest.perf.tests.d.ts +6 -0
  404. package/lib/test/Forest.perf.tests.d.ts.map +1 -0
  405. package/lib/test/Forest.perf.tests.js +133 -0
  406. package/lib/test/Forest.perf.tests.js.map +1 -0
  407. package/lib/test/Forest.tests.js +54 -27
  408. package/lib/test/Forest.tests.js.map +1 -1
  409. package/lib/test/GenericTransaction.tests.js +12 -3
  410. package/lib/test/GenericTransaction.tests.js.map +1 -1
  411. package/lib/test/HistoryEditFactory.tests.d.ts +6 -0
  412. package/lib/test/HistoryEditFactory.tests.d.ts.map +1 -0
  413. package/lib/test/HistoryEditFactory.tests.js +90 -0
  414. package/lib/test/HistoryEditFactory.tests.js.map +1 -0
  415. package/lib/test/IdCompressor.perf.tests.d.ts +6 -0
  416. package/lib/test/IdCompressor.perf.tests.d.ts.map +1 -0
  417. package/lib/test/IdCompressor.perf.tests.js +304 -0
  418. package/lib/test/IdCompressor.perf.tests.js.map +1 -0
  419. package/lib/test/IdCompressor.tests.d.ts +6 -0
  420. package/lib/test/IdCompressor.tests.d.ts.map +1 -0
  421. package/lib/test/IdCompressor.tests.js +1075 -0
  422. package/lib/test/IdCompressor.tests.js.map +1 -0
  423. package/lib/test/IdConversion.tests.d.ts +6 -0
  424. package/lib/test/IdConversion.tests.d.ts.map +1 -0
  425. package/lib/test/IdConversion.tests.js +36 -0
  426. package/lib/test/IdConversion.tests.js.map +1 -0
  427. package/lib/test/LazyCheckout.tests.d.ts +6 -0
  428. package/lib/test/LazyCheckout.tests.d.ts.map +1 -0
  429. package/lib/test/LazyCheckout.tests.js +22 -0
  430. package/lib/test/LazyCheckout.tests.js.map +1 -0
  431. package/lib/test/LogViewer.tests.js +276 -191
  432. package/lib/test/LogViewer.tests.js.map +1 -1
  433. package/lib/test/{SharedTreeWithAnchors.tests.d.ts → MergeHealthTelemetryHeartbeat.tests.d.ts} +1 -1
  434. package/lib/test/MergeHealthTelemetryHeartbeat.tests.d.ts.map +1 -0
  435. package/lib/test/MergeHealthTelemetryHeartbeat.tests.js +342 -0
  436. package/lib/test/MergeHealthTelemetryHeartbeat.tests.js.map +1 -0
  437. package/lib/test/NumericUuid.perf.tests.d.ts +6 -0
  438. package/lib/test/NumericUuid.perf.tests.d.ts.map +1 -0
  439. package/lib/test/NumericUuid.perf.tests.js +68 -0
  440. package/lib/test/NumericUuid.perf.tests.js.map +1 -0
  441. package/lib/test/NumericUuid.tests.d.ts +6 -0
  442. package/lib/test/NumericUuid.tests.d.ts.map +1 -0
  443. package/lib/test/NumericUuid.tests.js +191 -0
  444. package/lib/test/NumericUuid.tests.js.map +1 -0
  445. package/lib/test/RevisionView.tests.d.ts +6 -0
  446. package/lib/test/RevisionView.tests.d.ts.map +1 -0
  447. package/lib/test/RevisionView.tests.js +133 -0
  448. package/lib/test/RevisionView.tests.js.map +1 -0
  449. package/lib/test/SharedTree.perf.tests.d.ts +6 -0
  450. package/lib/test/SharedTree.perf.tests.d.ts.map +1 -0
  451. package/lib/test/SharedTree.perf.tests.js +39 -0
  452. package/lib/test/SharedTree.perf.tests.js.map +1 -0
  453. package/lib/test/SharedTree.tests.js +15 -3
  454. package/lib/test/SharedTree.tests.js.map +1 -1
  455. package/lib/test/StringInterner.tests.d.ts +6 -0
  456. package/lib/test/StringInterner.tests.d.ts.map +1 -0
  457. package/lib/test/StringInterner.tests.js +71 -0
  458. package/lib/test/StringInterner.tests.js.map +1 -0
  459. package/lib/test/Summary.tests.d.ts +8 -0
  460. package/lib/test/Summary.tests.d.ts.map +1 -0
  461. package/lib/test/Summary.tests.js +407 -0
  462. package/lib/test/Summary.tests.js.map +1 -0
  463. package/lib/test/Transaction.tests.js +76 -330
  464. package/lib/test/Transaction.tests.js.map +1 -1
  465. package/lib/test/TransactionInternal.tests.d.ts +6 -0
  466. package/lib/test/TransactionInternal.tests.d.ts.map +1 -0
  467. package/lib/test/TransactionInternal.tests.js +568 -0
  468. package/lib/test/TransactionInternal.tests.js.map +1 -0
  469. package/lib/test/TreeCompression.tests.d.ts +6 -0
  470. package/lib/test/TreeCompression.tests.d.ts.map +1 -0
  471. package/lib/test/TreeCompression.tests.js +292 -0
  472. package/lib/test/TreeCompression.tests.js.map +1 -0
  473. package/lib/test/TreeView.tests.d.ts +6 -0
  474. package/lib/test/TreeView.tests.d.ts.map +1 -0
  475. package/lib/test/TreeView.tests.js +176 -0
  476. package/lib/test/TreeView.tests.js.map +1 -0
  477. package/lib/test/UndoRedoHandler.tests.js +2 -2
  478. package/lib/test/UndoRedoHandler.tests.js.map +1 -1
  479. package/lib/test/Virtualization.tests.js +146 -62
  480. package/lib/test/Virtualization.tests.js.map +1 -1
  481. package/lib/test/fuzz/Generators.d.ts +19 -0
  482. package/lib/test/fuzz/Generators.d.ts.map +1 -0
  483. package/lib/test/fuzz/Generators.js +420 -0
  484. package/lib/test/fuzz/Generators.js.map +1 -0
  485. package/lib/test/fuzz/SharedTreeFuzzTests.d.ts +20 -0
  486. package/lib/test/fuzz/SharedTreeFuzzTests.d.ts.map +1 -0
  487. package/lib/test/fuzz/SharedTreeFuzzTests.js +217 -0
  488. package/lib/test/fuzz/SharedTreeFuzzTests.js.map +1 -0
  489. package/lib/test/fuzz/Types.d.ts +133 -0
  490. package/lib/test/fuzz/Types.d.ts.map +1 -0
  491. package/lib/test/{GenericTransactionWithAnchors.tests.d.ts → fuzz/Types.js} +2 -2
  492. package/lib/test/fuzz/Types.js.map +1 -0
  493. package/lib/test/utilities/IdCompressorTestUtilities.d.ts +180 -0
  494. package/lib/test/utilities/IdCompressorTestUtilities.d.ts.map +1 -0
  495. package/lib/test/utilities/IdCompressorTestUtilities.js +528 -0
  496. package/lib/test/utilities/IdCompressorTestUtilities.js.map +1 -0
  497. package/lib/test/utilities/MockTransaction.d.ts +26 -7
  498. package/lib/test/utilities/MockTransaction.d.ts.map +1 -1
  499. package/lib/test/utilities/MockTransaction.js +40 -11
  500. package/lib/test/utilities/MockTransaction.js.map +1 -1
  501. package/lib/test/utilities/PendingLocalStateTests.d.ts +12 -0
  502. package/lib/test/utilities/PendingLocalStateTests.d.ts.map +1 -0
  503. package/lib/test/utilities/PendingLocalStateTests.js +105 -0
  504. package/lib/test/utilities/PendingLocalStateTests.js.map +1 -0
  505. package/lib/test/utilities/SharedTreeTests.d.ts +3 -4
  506. package/lib/test/utilities/SharedTreeTests.d.ts.map +1 -1
  507. package/lib/test/utilities/SharedTreeTests.js +696 -439
  508. package/lib/test/utilities/SharedTreeTests.js.map +1 -1
  509. package/lib/test/utilities/SharedTreeVersioningTests.d.ts +11 -0
  510. package/lib/test/utilities/SharedTreeVersioningTests.d.ts.map +1 -0
  511. package/lib/test/utilities/SharedTreeVersioningTests.js +370 -0
  512. package/lib/test/utilities/SharedTreeVersioningTests.js.map +1 -0
  513. package/lib/test/utilities/SummaryLoadPerfTests.d.ts +10 -0
  514. package/lib/test/utilities/SummaryLoadPerfTests.d.ts.map +1 -0
  515. package/lib/test/utilities/SummaryLoadPerfTests.js +102 -0
  516. package/lib/test/utilities/SummaryLoadPerfTests.js.map +1 -0
  517. package/lib/test/utilities/SummarySizeTests.d.ts +11 -0
  518. package/lib/test/utilities/SummarySizeTests.d.ts.map +1 -0
  519. package/lib/test/utilities/SummarySizeTests.js +158 -0
  520. package/lib/test/utilities/SummarySizeTests.js.map +1 -0
  521. package/lib/test/utilities/TestCommon.d.ts +9 -0
  522. package/lib/test/utilities/TestCommon.d.ts.map +1 -0
  523. package/lib/test/utilities/TestCommon.js +13 -0
  524. package/lib/test/utilities/TestCommon.js.map +1 -0
  525. package/lib/test/utilities/TestNode.d.ts +140 -0
  526. package/lib/test/utilities/TestNode.d.ts.map +1 -0
  527. package/lib/test/utilities/TestNode.js +292 -0
  528. package/lib/test/utilities/TestNode.js.map +1 -0
  529. package/lib/test/utilities/TestUtilities.d.ts +84 -70
  530. package/lib/test/utilities/TestUtilities.d.ts.map +1 -1
  531. package/lib/test/utilities/TestUtilities.js +218 -143
  532. package/lib/test/utilities/TestUtilities.js.map +1 -1
  533. package/lib/test/utilities/UndoRedoTests.d.ts +4 -5
  534. package/lib/test/utilities/UndoRedoTests.d.ts.map +1 -1
  535. package/lib/test/utilities/UndoRedoTests.js +138 -149
  536. package/lib/test/utilities/UndoRedoTests.js.map +1 -1
  537. package/package.json +22 -17
  538. package/src/ChangeCompression.ts +159 -0
  539. package/src/{default-edits/PersistedTypes.ts → ChangeTypes.ts} +62 -125
  540. package/src/Checkout.ts +82 -53
  541. package/src/Common.ts +317 -117
  542. package/src/EagerCheckout.ts +38 -0
  543. package/src/EditLog.ts +153 -100
  544. package/src/EditUtilities.ts +559 -0
  545. package/src/EventTypes.ts +74 -0
  546. package/src/Forest.ts +81 -73
  547. package/src/{default-edits/HistoryEditFactory.ts → HistoryEditFactory.ts} +103 -53
  548. package/src/IdConversion.ts +125 -0
  549. package/src/Identifiers.ts +101 -1
  550. package/src/InitialTree.ts +5 -4
  551. package/src/LazyCheckout.ts +51 -0
  552. package/src/LogViewer.ts +242 -166
  553. package/src/MergeHealth.ts +447 -0
  554. package/src/NodeIdUtilities.ts +156 -0
  555. package/src/PayloadUtilities.ts +124 -0
  556. package/src/ReconciliationPath.ts +18 -13
  557. package/src/RevisionValueCache.ts +14 -5
  558. package/src/RevisionView.ts +252 -0
  559. package/src/SerializationUtilities.ts +130 -0
  560. package/src/SharedTree.ts +1501 -0
  561. package/src/SharedTreeEncoder.ts +493 -0
  562. package/src/StringInterner.ts +72 -0
  563. package/src/Summary.ts +48 -0
  564. package/src/SummaryBackCompatibility.ts +47 -57
  565. package/src/SummaryTestUtilities.ts +54 -0
  566. package/src/Transaction.ts +89 -0
  567. package/src/TransactionInternal.ts +1087 -0
  568. package/src/TreeCompressor.ts +213 -0
  569. package/src/TreeNodeHandle.ts +19 -32
  570. package/src/TreeView.ts +322 -0
  571. package/src/TreeViewUtilities.ts +77 -0
  572. package/src/{default-edits/UndoRedoHandler.ts → UndoRedoHandler.ts} +8 -13
  573. package/src/id-compressor/AppendOnlySortedMap.ts +325 -0
  574. package/src/id-compressor/IdCompressor.md +3 -0
  575. package/src/id-compressor/IdCompressor.ts +1848 -0
  576. package/src/id-compressor/IdRange.ts +33 -0
  577. package/src/id-compressor/NumericUuid.ts +414 -0
  578. package/src/id-compressor/index.ts +13 -0
  579. package/src/id-compressor/persisted-types/0.0.1.ts +179 -0
  580. package/src/id-compressor/persisted-types/README.md +3 -0
  581. package/src/id-compressor/persisted-types/index.ts +6 -0
  582. package/src/index.ts +118 -59
  583. package/src/persisted-types/0.0.2.ts +442 -0
  584. package/src/persisted-types/0.1.1.ts +476 -0
  585. package/src/persisted-types/README.md +22 -0
  586. package/src/persisted-types/index.ts +9 -0
  587. package/.mocharc.js +0 -41
  588. package/api/tree.api.md +0 -729
  589. package/dist/BasicCheckout.d.ts +0 -23
  590. package/dist/BasicCheckout.d.ts.map +0 -1
  591. package/dist/BasicCheckout.js.map +0 -1
  592. package/dist/Snapshot.d.ts +0 -198
  593. package/dist/Snapshot.d.ts.map +0 -1
  594. package/dist/Snapshot.js +0 -267
  595. package/dist/Snapshot.js.map +0 -1
  596. package/dist/SnapshotUtilities.d.ts +0 -29
  597. package/dist/SnapshotUtilities.d.ts.map +0 -1
  598. package/dist/SnapshotUtilities.js +0 -73
  599. package/dist/SnapshotUtilities.js.map +0 -1
  600. package/dist/anchored-edits/AnchorResolution.d.ts +0 -144
  601. package/dist/anchored-edits/AnchorResolution.d.ts.map +0 -1
  602. package/dist/anchored-edits/AnchorResolution.js +0 -162
  603. package/dist/anchored-edits/AnchorResolution.js.map +0 -1
  604. package/dist/anchored-edits/Factory.d.ts +0 -56
  605. package/dist/anchored-edits/Factory.d.ts.map +0 -1
  606. package/dist/anchored-edits/Factory.js +0 -79
  607. package/dist/anchored-edits/Factory.js.map +0 -1
  608. package/dist/anchored-edits/PersistedTypes.d.ts +0 -245
  609. package/dist/anchored-edits/PersistedTypes.d.ts.map +0 -1
  610. package/dist/anchored-edits/PersistedTypes.js +0 -131
  611. package/dist/anchored-edits/PersistedTypes.js.map +0 -1
  612. package/dist/anchored-edits/SharedTreeWithAnchors.d.ts +0 -120
  613. package/dist/anchored-edits/SharedTreeWithAnchors.d.ts.map +0 -1
  614. package/dist/anchored-edits/SharedTreeWithAnchors.js +0 -115
  615. package/dist/anchored-edits/SharedTreeWithAnchors.js.map +0 -1
  616. package/dist/anchored-edits/TransactionWithAnchors.d.ts +0 -28
  617. package/dist/anchored-edits/TransactionWithAnchors.d.ts.map +0 -1
  618. package/dist/anchored-edits/TransactionWithAnchors.js +0 -36
  619. package/dist/anchored-edits/TransactionWithAnchors.js.map +0 -1
  620. package/dist/anchored-edits/index.d.ts +0 -10
  621. package/dist/anchored-edits/index.d.ts.map +0 -1
  622. package/dist/anchored-edits/index.js +0 -34
  623. package/dist/anchored-edits/index.js.map +0 -1
  624. package/dist/default-edits/EditUtilities.d.ts +0 -57
  625. package/dist/default-edits/EditUtilities.d.ts.map +0 -1
  626. package/dist/default-edits/EditUtilities.js +0 -192
  627. package/dist/default-edits/EditUtilities.js.map +0 -1
  628. package/dist/default-edits/Factory.d.ts +0 -56
  629. package/dist/default-edits/Factory.d.ts.map +0 -1
  630. package/dist/default-edits/Factory.js +0 -79
  631. package/dist/default-edits/Factory.js.map +0 -1
  632. package/dist/default-edits/HistoryEditFactory.d.ts +0 -19
  633. package/dist/default-edits/HistoryEditFactory.d.ts.map +0 -1
  634. package/dist/default-edits/HistoryEditFactory.js +0 -187
  635. package/dist/default-edits/HistoryEditFactory.js.map +0 -1
  636. package/dist/default-edits/PersistedTypes.d.ts.map +0 -1
  637. package/dist/default-edits/PersistedTypes.js.map +0 -1
  638. package/dist/default-edits/SharedTree.d.ts +0 -111
  639. package/dist/default-edits/SharedTree.d.ts.map +0 -1
  640. package/dist/default-edits/SharedTree.js +0 -124
  641. package/dist/default-edits/SharedTree.js.map +0 -1
  642. package/dist/default-edits/Summary.d.ts +0 -15
  643. package/dist/default-edits/Summary.d.ts.map +0 -1
  644. package/dist/default-edits/Summary.js +0 -35
  645. package/dist/default-edits/Summary.js.map +0 -1
  646. package/dist/default-edits/Transaction.d.ts +0 -41
  647. package/dist/default-edits/Transaction.d.ts.map +0 -1
  648. package/dist/default-edits/Transaction.js +0 -225
  649. package/dist/default-edits/Transaction.js.map +0 -1
  650. package/dist/default-edits/UndoRedoHandler.d.ts.map +0 -1
  651. package/dist/default-edits/UndoRedoHandler.js.map +0 -1
  652. package/dist/default-edits/index.d.ts +0 -13
  653. package/dist/default-edits/index.d.ts.map +0 -1
  654. package/dist/default-edits/index.js +0 -41
  655. package/dist/default-edits/index.js.map +0 -1
  656. package/dist/generic/GenericEditUtilities.d.ts +0 -26
  657. package/dist/generic/GenericEditUtilities.d.ts.map +0 -1
  658. package/dist/generic/GenericEditUtilities.js +0 -45
  659. package/dist/generic/GenericEditUtilities.js.map +0 -1
  660. package/dist/generic/GenericSharedTree.d.ts +0 -221
  661. package/dist/generic/GenericSharedTree.d.ts.map +0 -1
  662. package/dist/generic/GenericSharedTree.js +0 -447
  663. package/dist/generic/GenericSharedTree.js.map +0 -1
  664. package/dist/generic/GenericTransaction.d.ts +0 -87
  665. package/dist/generic/GenericTransaction.d.ts.map +0 -1
  666. package/dist/generic/GenericTransaction.js +0 -144
  667. package/dist/generic/GenericTransaction.js.map +0 -1
  668. package/dist/generic/PersistedTypes.d.ts +0 -194
  669. package/dist/generic/PersistedTypes.d.ts.map +0 -1
  670. package/dist/generic/PersistedTypes.js +0 -42
  671. package/dist/generic/PersistedTypes.js.map +0 -1
  672. package/dist/generic/Summary.d.ts +0 -63
  673. package/dist/generic/Summary.d.ts.map +0 -1
  674. package/dist/generic/Summary.js +0 -64
  675. package/dist/generic/Summary.js.map +0 -1
  676. package/dist/generic/index.d.ts +0 -10
  677. package/dist/generic/index.d.ts.map +0 -1
  678. package/dist/generic/index.js +0 -26
  679. package/dist/generic/index.js.map +0 -1
  680. package/docs/Future.md +0 -155
  681. package/lib/BasicCheckout.d.ts +0 -23
  682. package/lib/BasicCheckout.d.ts.map +0 -1
  683. package/lib/BasicCheckout.js.map +0 -1
  684. package/lib/Snapshot.d.ts +0 -198
  685. package/lib/Snapshot.d.ts.map +0 -1
  686. package/lib/Snapshot.js +0 -263
  687. package/lib/Snapshot.js.map +0 -1
  688. package/lib/SnapshotUtilities.d.ts +0 -29
  689. package/lib/SnapshotUtilities.d.ts.map +0 -1
  690. package/lib/SnapshotUtilities.js +0 -67
  691. package/lib/SnapshotUtilities.js.map +0 -1
  692. package/lib/anchored-edits/AnchorResolution.d.ts +0 -144
  693. package/lib/anchored-edits/AnchorResolution.d.ts.map +0 -1
  694. package/lib/anchored-edits/AnchorResolution.js +0 -152
  695. package/lib/anchored-edits/AnchorResolution.js.map +0 -1
  696. package/lib/anchored-edits/Factory.d.ts +0 -56
  697. package/lib/anchored-edits/Factory.d.ts.map +0 -1
  698. package/lib/anchored-edits/Factory.js +0 -74
  699. package/lib/anchored-edits/Factory.js.map +0 -1
  700. package/lib/anchored-edits/PersistedTypes.d.ts +0 -245
  701. package/lib/anchored-edits/PersistedTypes.d.ts.map +0 -1
  702. package/lib/anchored-edits/PersistedTypes.js +0 -128
  703. package/lib/anchored-edits/PersistedTypes.js.map +0 -1
  704. package/lib/anchored-edits/SharedTreeWithAnchors.d.ts +0 -120
  705. package/lib/anchored-edits/SharedTreeWithAnchors.d.ts.map +0 -1
  706. package/lib/anchored-edits/SharedTreeWithAnchors.js +0 -110
  707. package/lib/anchored-edits/SharedTreeWithAnchors.js.map +0 -1
  708. package/lib/anchored-edits/TransactionWithAnchors.d.ts +0 -28
  709. package/lib/anchored-edits/TransactionWithAnchors.d.ts.map +0 -1
  710. package/lib/anchored-edits/TransactionWithAnchors.js +0 -32
  711. package/lib/anchored-edits/TransactionWithAnchors.js.map +0 -1
  712. package/lib/anchored-edits/index.d.ts +0 -10
  713. package/lib/anchored-edits/index.d.ts.map +0 -1
  714. package/lib/anchored-edits/index.js +0 -11
  715. package/lib/anchored-edits/index.js.map +0 -1
  716. package/lib/default-edits/EditUtilities.d.ts +0 -57
  717. package/lib/default-edits/EditUtilities.d.ts.map +0 -1
  718. package/lib/default-edits/EditUtilities.js +0 -181
  719. package/lib/default-edits/EditUtilities.js.map +0 -1
  720. package/lib/default-edits/Factory.d.ts +0 -56
  721. package/lib/default-edits/Factory.d.ts.map +0 -1
  722. package/lib/default-edits/Factory.js +0 -74
  723. package/lib/default-edits/Factory.js.map +0 -1
  724. package/lib/default-edits/HistoryEditFactory.d.ts +0 -19
  725. package/lib/default-edits/HistoryEditFactory.d.ts.map +0 -1
  726. package/lib/default-edits/HistoryEditFactory.js.map +0 -1
  727. package/lib/default-edits/PersistedTypes.d.ts.map +0 -1
  728. package/lib/default-edits/PersistedTypes.js.map +0 -1
  729. package/lib/default-edits/SharedTree.d.ts +0 -111
  730. package/lib/default-edits/SharedTree.d.ts.map +0 -1
  731. package/lib/default-edits/SharedTree.js +0 -100
  732. package/lib/default-edits/SharedTree.js.map +0 -1
  733. package/lib/default-edits/Summary.d.ts +0 -15
  734. package/lib/default-edits/Summary.d.ts.map +0 -1
  735. package/lib/default-edits/Summary.js +0 -31
  736. package/lib/default-edits/Summary.js.map +0 -1
  737. package/lib/default-edits/Transaction.d.ts +0 -41
  738. package/lib/default-edits/Transaction.d.ts.map +0 -1
  739. package/lib/default-edits/Transaction.js +0 -221
  740. package/lib/default-edits/Transaction.js.map +0 -1
  741. package/lib/default-edits/UndoRedoHandler.d.ts.map +0 -1
  742. package/lib/default-edits/UndoRedoHandler.js.map +0 -1
  743. package/lib/default-edits/index.d.ts +0 -13
  744. package/lib/default-edits/index.d.ts.map +0 -1
  745. package/lib/default-edits/index.js +0 -14
  746. package/lib/default-edits/index.js.map +0 -1
  747. package/lib/generic/GenericEditUtilities.d.ts +0 -26
  748. package/lib/generic/GenericEditUtilities.d.ts.map +0 -1
  749. package/lib/generic/GenericEditUtilities.js +0 -38
  750. package/lib/generic/GenericEditUtilities.js.map +0 -1
  751. package/lib/generic/GenericSharedTree.d.ts +0 -221
  752. package/lib/generic/GenericSharedTree.d.ts.map +0 -1
  753. package/lib/generic/GenericSharedTree.js +0 -443
  754. package/lib/generic/GenericSharedTree.js.map +0 -1
  755. package/lib/generic/GenericTransaction.d.ts +0 -87
  756. package/lib/generic/GenericTransaction.d.ts.map +0 -1
  757. package/lib/generic/GenericTransaction.js +0 -140
  758. package/lib/generic/GenericTransaction.js.map +0 -1
  759. package/lib/generic/PersistedTypes.d.ts +0 -194
  760. package/lib/generic/PersistedTypes.d.ts.map +0 -1
  761. package/lib/generic/PersistedTypes.js +0 -39
  762. package/lib/generic/PersistedTypes.js.map +0 -1
  763. package/lib/generic/Summary.d.ts +0 -63
  764. package/lib/generic/Summary.d.ts.map +0 -1
  765. package/lib/generic/Summary.js +0 -58
  766. package/lib/generic/Summary.js.map +0 -1
  767. package/lib/generic/index.d.ts +0 -10
  768. package/lib/generic/index.d.ts.map +0 -1
  769. package/lib/generic/index.js +0 -11
  770. package/lib/generic/index.js.map +0 -1
  771. package/lib/test/Anchors.glassBox.tests.d.ts.map +0 -1
  772. package/lib/test/Anchors.glassBox.tests.js +0 -410
  773. package/lib/test/Anchors.glassBox.tests.js.map +0 -1
  774. package/lib/test/BasicCheckout.tests.d.ts.map +0 -1
  775. package/lib/test/BasicCheckout.tests.js +0 -8
  776. package/lib/test/BasicCheckout.tests.js.map +0 -1
  777. package/lib/test/GenericTransactionWithAnchors.tests.d.ts.map +0 -1
  778. package/lib/test/GenericTransactionWithAnchors.tests.js +0 -25
  779. package/lib/test/GenericTransactionWithAnchors.tests.js.map +0 -1
  780. package/lib/test/SharedTreeWithAnchors.tests.d.ts.map +0 -1
  781. package/lib/test/SharedTreeWithAnchors.tests.js +0 -420
  782. package/lib/test/SharedTreeWithAnchors.tests.js.map +0 -1
  783. package/lib/test/Snapshot.tests.d.ts.map +0 -1
  784. package/lib/test/Snapshot.tests.js +0 -96
  785. package/lib/test/Snapshot.tests.js.map +0 -1
  786. package/lib/test/SnapshotUtilities.tests.d.ts.map +0 -1
  787. package/lib/test/SnapshotUtilities.tests.js +0 -168
  788. package/lib/test/SnapshotUtilities.tests.js.map +0 -1
  789. package/lib/test/undoRedoStackManager.d.ts +0 -26
  790. package/lib/test/undoRedoStackManager.d.ts.map +0 -1
  791. package/lib/test/undoRedoStackManager.js +0 -176
  792. package/lib/test/undoRedoStackManager.js.map +0 -1
  793. package/lib/test/utilities/SummaryFormatCompatibilityTests.d.ts +0 -13
  794. package/lib/test/utilities/SummaryFormatCompatibilityTests.d.ts.map +0 -1
  795. package/lib/test/utilities/SummaryFormatCompatibilityTests.js +0 -154
  796. package/lib/test/utilities/SummaryFormatCompatibilityTests.js.map +0 -1
  797. package/src/BasicCheckout.ts +0 -34
  798. package/src/Snapshot.ts +0 -363
  799. package/src/SnapshotUtilities.ts +0 -88
  800. package/src/anchored-edits/AnchorResolution.ts +0 -442
  801. package/src/anchored-edits/Factory.ts +0 -94
  802. package/src/anchored-edits/PersistedTypes.ts +0 -310
  803. package/src/anchored-edits/SharedTreeWithAnchors.ts +0 -200
  804. package/src/anchored-edits/TransactionWithAnchors.ts +0 -39
  805. package/src/anchored-edits/index.ts +0 -21
  806. package/src/default-edits/EditUtilities.ts +0 -220
  807. package/src/default-edits/Factory.ts +0 -94
  808. package/src/default-edits/SharedTree.ts +0 -174
  809. package/src/default-edits/Summary.ts +0 -44
  810. package/src/default-edits/Transaction.ts +0 -262
  811. package/src/default-edits/index.ts +0 -29
  812. package/src/generic/GenericEditUtilities.ts +0 -46
  813. package/src/generic/GenericSharedTree.ts +0 -593
  814. package/src/generic/GenericTransaction.ts +0 -194
  815. package/src/generic/PersistedTypes.ts +0 -221
  816. package/src/generic/Summary.ts +0 -113
  817. package/src/generic/index.ts +0 -41
package/dist/EditLog.d.ts CHANGED
@@ -2,9 +2,12 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ITelemetryLogger } from '@fluidframework/common-definitions';
6
- import { Edit, EditWithoutId } from './generic';
7
- import { EditId } from './Identifiers';
5
+ import { TypedEventEmitter } from '@fluidframework/common-utils';
6
+ import type { IEvent, ITelemetryLogger } from '@fluidframework/common-definitions';
7
+ import type { EditId } from './Identifiers';
8
+ import type { StringInterner } from './StringInterner';
9
+ import { Edit, EditLogSummary, EditWithoutId, FluidEditHandle } from './persisted-types';
10
+ import type { ChangeCompressor } from './ChangeCompression';
8
11
  /**
9
12
  * An ordered set of Edits associated with a SharedTree.
10
13
  * Supports fast lookup of edits by ID and enforces idempotence.
@@ -13,7 +16,7 @@ import { EditId } from './Identifiers';
13
16
  * @public
14
17
  * @sealed
15
18
  */
16
- export interface OrderedEditSet<TChange> {
19
+ export interface OrderedEditSet<TChange = unknown> {
17
20
  /**
18
21
  * The length of this `OrderedEditSet`.
19
22
  */
@@ -46,39 +49,6 @@ export interface OrderedEditSet<TChange> {
46
49
  * @returns the Edit associated with the EditId or undefined if there is no such edit in the set.
47
50
  */
48
51
  tryGetEdit(editId: EditId): Promise<Edit<TChange> | undefined>;
49
- /**
50
- * @param useHandles - By default, false. If true, returns handles instead of edit chunks where possible.
51
- * TODO:#49901: This parameter is used for testing and should be removed once format version 0.1.0 is written.
52
- * @returns the summary of this `OrderedEditSet` that can be used to reconstruct the edit set.
53
- * @internal
54
- */
55
- getEditLogSummary(useHandles?: boolean): EditLogSummary<TChange>;
56
- }
57
- /**
58
- * Information used to populate an edit log.
59
- * @internal
60
- */
61
- export interface EditLogSummary<TChange> {
62
- /**
63
- * A of list of serialized chunks and their corresponding keys.
64
- * Start revision is the index of the first edit in the chunk in relation to the edit log.
65
- */
66
- readonly editChunks: readonly {
67
- readonly startRevision: number;
68
- readonly chunk: EditChunkOrHandle<TChange>;
69
- }[];
70
- /**
71
- * A list of edits IDs for all sequenced edits.
72
- */
73
- readonly editIds: readonly EditId[];
74
- }
75
- /**
76
- * EditHandles are used to load edit chunks stored outside of the EditLog.
77
- * Can be satisfied by IFluidHandle<ArrayBufferLike>.
78
- * @internal
79
- */
80
- export interface EditHandle {
81
- readonly get: () => Promise<ArrayBufferLike>;
82
52
  }
83
53
  /**
84
54
  * Server-provided metadata for edits that have been sequenced.
@@ -122,19 +92,34 @@ export interface LocalOrderedEditId {
122
92
  readonly isLocal: true;
123
93
  readonly localSequence: number;
124
94
  }
125
- interface EditChunk<TChange> {
126
- handle?: EditHandle;
127
- edits?: EditWithoutId<TChange>[];
128
- }
129
95
  /**
130
- * Either a chunk of edits or a handle that can be used to load that chunk.
96
+ * Metadata for an edit.
97
+ */
98
+ export declare type OrderedEditId = SequencedOrderedEditId | LocalOrderedEditId;
99
+ /**
100
+ * Compressor+interner pair used for encoding an {@link EditLog} into a summary.
131
101
  * @internal
132
102
  */
133
- export declare type EditChunkOrHandle<TChange> = EditHandle | readonly EditWithoutId<TChange>[];
103
+ export interface EditLogEncoder {
104
+ compressor: ChangeCompressor;
105
+ interner: StringInterner;
106
+ }
107
+ /**
108
+ * A sequence of edits that may or may not need to be downloaded into the EditLog from an external service
109
+ */
110
+ export interface EditChunk<TChange> {
111
+ handle?: EditHandle<TChange>;
112
+ edits?: EditWithoutId<TChange>[];
113
+ }
134
114
  /**
135
- * Metadata for an edit.
115
+ * EditHandles are used to load edit chunks stored outside of the EditLog.
116
+ * This is typically implemented by a wrapper around an IFluidHandle<ArrayBufferLike>.
117
+ * @public
136
118
  */
137
- export declare type OrderedEditId = SequencedOrderedEditId | LocalOrderedEditId;
119
+ export interface EditHandle<TChange> {
120
+ readonly get: () => Promise<EditWithoutId<TChange>[]>;
121
+ readonly baseHandle: FluidEditHandle;
122
+ }
138
123
  /**
139
124
  * Returns an object that separates an Edit into two fields, id and editWithoutId.
140
125
  */
@@ -142,12 +127,24 @@ export declare function separateEditAndId<TChange>(edit: Edit<TChange>): {
142
127
  id: EditId;
143
128
  editWithoutId: EditWithoutId<TChange>;
144
129
  };
130
+ /**
131
+ * @param summary - The edit log summary to parse.
132
+ * @returns the number of handles saved to the provided edit log summary.
133
+ */
134
+ export declare function getNumberOfHandlesFromEditLogSummary(summary: EditLogSummary<unknown, unknown>): number;
145
135
  /**
146
136
  * Event fired when an edit is added to an `EditLog`.
147
137
  * @param edit - The edit that was added to the log
148
138
  * @param isLocal - true iff this edit was generated locally
149
139
  */
150
140
  export declare type EditAddedHandler<TChange> = (edit: Edit<TChange>, isLocal: boolean, wasLocal: boolean) => void;
141
+ /**
142
+ * Events which may be emitted by `EditLog`.
143
+ * @public
144
+ */
145
+ export interface IEditLogEvents extends IEvent {
146
+ (event: 'unexpectedHistoryChunk', listener: () => void): any;
147
+ }
151
148
  /**
152
149
  * The edit history log for SharedTree.
153
150
  * Contains only completed edits (no in-progress edits).
@@ -155,7 +152,7 @@ export declare type EditAddedHandler<TChange> = (edit: Edit<TChange>, isLocal: b
155
152
  * May not contain more than one edit with the same ID.
156
153
  * @sealed
157
154
  */
158
- export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
155
+ export declare class EditLog<TChange = unknown> extends TypedEventEmitter<IEditLogEvents> implements OrderedEditSet<TChange> {
159
156
  private localEditSequence;
160
157
  private _minSequenceNumber;
161
158
  private readonly sequencedEditIds;
@@ -165,7 +162,7 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
165
162
  private readonly indexOfFirstEditInSession;
166
163
  private readonly maximumEvictableIndex;
167
164
  private readonly allEditIds;
168
- private readonly editAddedHandlers;
165
+ private readonly _editAddedHandlers;
169
166
  private readonly logger?;
170
167
  /**
171
168
  * The number of edits associated with each blob.
@@ -184,13 +181,18 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
184
181
  * @param summary - An edit log summary used to populate the edit log.
185
182
  * @param logger - An optional logger to record telemetry/errors
186
183
  */
187
- constructor(summary?: EditLogSummary<TChange>, logger?: ITelemetryLogger, editsPerChunk?: number);
184
+ constructor(summary?: EditLogSummary<TChange, EditHandle<TChange>>, logger?: ITelemetryLogger, editAddedHandlers?: readonly EditAddedHandler<TChange>[], indexOfFirstEditInSession?: number);
188
185
  /**
189
186
  * Registers a handler for when an edit is added to this `EditLog`.
187
+ * @returns A callback which can be invoked to unregister this handler.
188
+ */
189
+ registerEditAddedHandler(handler: EditAddedHandler<TChange>): () => void;
190
+ /**
191
+ * @returns the `EditAddedHandler`s registered on this `EditLog`.
190
192
  */
191
- registerEditAddedHandler(handler: EditAddedHandler<TChange>): void;
193
+ get editAddedHandlers(): readonly EditAddedHandler<TChange>[];
192
194
  /**
193
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.length}
195
+ * {@inheritDoc OrderedEditSet.length}
194
196
  */
195
197
  get length(): number;
196
198
  /**
@@ -202,7 +204,7 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
202
204
  */
203
205
  get numberOfLocalEdits(): number;
204
206
  /**
205
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.editIds}
207
+ * {@inheritDoc OrderedEditSet.editIds}
206
208
  */
207
209
  get editIds(): EditId[];
208
210
  /**
@@ -210,11 +212,11 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
210
212
  */
211
213
  isLocalEdit(editId: EditId): boolean;
212
214
  /**
213
- * @returns true iff the revision is a local revision (not sequenced).
215
+ * @returns true iff the revision is a sequenced revision (not local).
214
216
  */
215
217
  isSequencedRevision(revision: number): boolean;
216
218
  /**
217
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.tryGetIndexOfId}
219
+ * {@inheritDoc OrderedEditSet.tryGetIndexOfId}
218
220
  */
219
221
  tryGetIndexOfId(editId: EditId): number | undefined;
220
222
  /**
@@ -222,23 +224,23 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
222
224
  */
223
225
  getOrderedEditId(editId: EditId): OrderedEditId;
224
226
  /**
225
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getIndexOfId}
227
+ * {@inheritDoc OrderedEditSet.getIndexOfId}
226
228
  */
227
229
  getIndexOfId(editId: EditId): number;
228
230
  /**
229
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.idOf}
231
+ * {@inheritDoc OrderedEditSet.getIdAtIndex}
230
232
  */
231
233
  getIdAtIndex(index: number): EditId;
232
234
  /**
233
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getAtIndex}
235
+ * {@inheritDoc OrderedEditSet.getEditAtIndex}
234
236
  */
235
237
  getEditAtIndex(index: number): Promise<Edit<TChange>>;
236
238
  /**
237
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getAtIndexSynchronous}
239
+ * {@inheritDoc OrderedEditSet.getEditInSessionAtIndex}
238
240
  */
239
241
  getEditInSessionAtIndex(index: number): Edit<TChange>;
240
242
  /**
241
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.tryGetEdit}
243
+ * {@inheritDoc OrderedEditSet.tryGetEdit}
242
244
  */
243
245
  tryGetEdit(editId: EditId): Promise<Edit<TChange> | undefined>;
244
246
  /**
@@ -248,7 +250,7 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
248
250
  /**
249
251
  * Assigns provided handles to edit chunks based on chunk index specified.
250
252
  */
251
- processEditChunkHandle(chunkHandle: EditHandle, startRevision: number): void;
253
+ processEditChunkHandle(chunkHandle: EditHandle<TChange>, startRevision: number): void;
252
254
  /**
253
255
  * Sequences all local edits.
254
256
  */
@@ -259,6 +261,12 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
259
261
  *
260
262
  */
261
263
  addSequencedEdit(edit: Edit<TChange>, message: MessageSequencingInfo): void;
264
+ /**
265
+ * Returns all local edits from this EditLog
266
+ * This is useful for op format upgrades, which might warrant re-submission of these ops using the new format.
267
+ * See the breaking change documentation for more information.
268
+ */
269
+ getLocalEdits(): Iterable<Edit<TChange>>;
262
270
  /**
263
271
  * Adds a sequenced (non-local) edit to the edit log.
264
272
  * If the id of the supplied edit matches a local edit already present in the log, the local edit will be replaced.
@@ -280,12 +288,18 @@ export declare class EditLog<TChange> implements OrderedEditSet<TChange> {
280
288
  /**
281
289
  * @returns true iff this `EditLog` and `other` are equivalent, regardless of locality.
282
290
  */
283
- equals<TOtherChangeTypes>(other: EditLog<TOtherChangeTypes>): boolean;
291
+ equals<TOtherChangeTypesInternal>(other: EditLog<TOtherChangeTypesInternal>): boolean;
284
292
  /**
285
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getEditLogSummary}
293
+ * @returns the summary of this `OrderedEditSet` that can be used to reconstruct the edit set.
294
+ * @internal
295
+ */
296
+ getEditLogSummary(): EditLogSummary<TChange, FluidEditHandle>;
297
+ /**
298
+ * @param compressEdit - a function which compresses edits
299
+ * @returns the summary of this `OrderedEditSet` that can be used to reconstruct the edit set.
300
+ * @internal
286
301
  */
287
- getEditLogSummary(useHandles?: boolean): EditLogSummary<TChange>;
302
+ getEditLogSummary<TCompressedChange>(compressEdit: (edit: Pick<Edit<TChange>, 'changes'>) => Pick<Edit<TCompressedChange>, 'changes'>): EditLogSummary<TCompressedChange, FluidEditHandle>;
288
303
  private addKeyToCache;
289
304
  }
290
- export {};
291
305
  //# sourceMappingURL=EditLog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditLog.d.ts","sourceRoot":"","sources":["../src/EditLog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditLog.d.ts","sourceRoot":"","sources":["../src/EditLog.ts"],"names":[],"mappings":"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"}
package/dist/EditLog.js CHANGED
@@ -7,11 +7,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.EditLog = exports.separateEditAndId = void 0;
10
+ exports.EditLog = exports.getNumberOfHandlesFromEditLogSummary = exports.separateEditAndId = void 0;
11
11
  const sorted_btree_1 = __importDefault(require("sorted-btree"));
12
12
  const common_utils_1 = require("@fluidframework/common-utils");
13
13
  const Common_1 = require("./Common");
14
- const SnapshotUtilities_1 = require("./SnapshotUtilities");
14
+ const persisted_types_1 = require("./persisted-types");
15
+ const EventTypes_1 = require("./EventTypes");
15
16
  /**
16
17
  * Returns an object that separates an Edit into two fields, id and editWithoutId.
17
18
  */
@@ -24,6 +25,21 @@ exports.separateEditAndId = separateEditAndId;
24
25
  function joinEditAndId(id, edit) {
25
26
  return Object.assign({ id }, edit);
26
27
  }
28
+ /**
29
+ * @param summary - The edit log summary to parse.
30
+ * @returns the number of handles saved to the provided edit log summary.
31
+ */
32
+ function getNumberOfHandlesFromEditLogSummary(summary) {
33
+ const { editChunks } = summary;
34
+ let numberOfHandles = 0;
35
+ editChunks.forEach(({ chunk }) => {
36
+ if (!Array.isArray(chunk)) {
37
+ numberOfHandles++;
38
+ }
39
+ });
40
+ return numberOfHandles;
41
+ }
42
+ exports.getNumberOfHandlesFromEditLogSummary = getNumberOfHandlesFromEditLogSummary;
27
43
  /**
28
44
  * The number of blobs to be loaded in memory at any time.
29
45
  * TODO:#49901: Change cache size once the virtualized history summary format is being written.
@@ -37,39 +53,38 @@ const loadedChunkCacheSize = Number.POSITIVE_INFINITY;
37
53
  * May not contain more than one edit with the same ID.
38
54
  * @sealed
39
55
  */
40
- class EditLog {
56
+ class EditLog extends common_utils_1.TypedEventEmitter {
41
57
  /**
42
58
  * Construct an `EditLog` using the given options.
43
59
  * @param summary - An edit log summary used to populate the edit log.
44
60
  * @param logger - An optional logger to record telemetry/errors
45
61
  */
46
- constructor(summary = { editIds: [], editChunks: [] }, logger, editsPerChunk = 100) {
62
+ constructor(summary = { editIds: [], editChunks: [] }, logger, editAddedHandlers = [], indexOfFirstEditInSession = summary.editIds.length) {
63
+ super();
47
64
  this.localEditSequence = 0;
48
65
  this._minSequenceNumber = 0;
49
66
  this.localEdits = [];
50
67
  this.loadedChunkCache = [];
51
68
  this.allEditIds = new Map();
52
- this.editAddedHandlers = [];
69
+ this._editAddedHandlers = new Set();
53
70
  const { editChunks, editIds } = summary;
54
71
  this.logger = logger;
55
- this.editsPerChunk = editsPerChunk;
56
- this.editChunks = new sorted_btree_1.default(undefined, SnapshotUtilities_1.compareFiniteNumbers);
72
+ this.editsPerChunk = persisted_types_1.editsPerChunk;
73
+ for (const handler of editAddedHandlers) {
74
+ this.registerEditAddedHandler(handler);
75
+ }
76
+ this.editChunks = new sorted_btree_1.default(undefined, Common_1.compareFiniteNumbers);
57
77
  editChunks.forEach((editChunkOrHandle) => {
58
78
  const { startRevision, chunk } = editChunkOrHandle;
59
- if (Array.isArray(chunk)) {
60
- this.editChunks.set(startRevision, { edits: chunk });
79
+ if (isEditHandle(chunk)) {
80
+ this.editChunks.set(startRevision, { handle: chunk });
61
81
  }
62
82
  else {
63
- this.editChunks.set(startRevision, {
64
- // This typecast should not be required,
65
- // however typescript fails to infer types correctly in the case of readonly arrays guarded by Array.isArray
66
- // See https://github.com/microsoft/TypeScript/issues/17002
67
- handle: chunk,
68
- });
83
+ this.editChunks.set(startRevision, { edits: chunk });
69
84
  }
70
85
  });
71
86
  this.sequencedEditIds = editIds.slice();
72
- this.indexOfFirstEditInSession = this.numberOfSequencedEdits;
87
+ this.indexOfFirstEditInSession = indexOfFirstEditInSession;
73
88
  this.maximumEvictableIndex = this.indexOfFirstEditInSession - 1;
74
89
  this.sequencedEditIds.forEach((id, index) => {
75
90
  const encounteredEditId = this.allEditIds.get(id);
@@ -91,12 +106,20 @@ class EditLog {
91
106
  }
92
107
  /**
93
108
  * Registers a handler for when an edit is added to this `EditLog`.
109
+ * @returns A callback which can be invoked to unregister this handler.
94
110
  */
95
111
  registerEditAddedHandler(handler) {
96
- this.editAddedHandlers.push(handler);
112
+ this._editAddedHandlers.add(handler);
113
+ return () => this._editAddedHandlers.delete(handler);
97
114
  }
98
115
  /**
99
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.length}
116
+ * @returns the `EditAddedHandler`s registered on this `EditLog`.
117
+ */
118
+ get editAddedHandlers() {
119
+ return Array.from(this._editAddedHandlers);
120
+ }
121
+ /**
122
+ * {@inheritDoc OrderedEditSet.length}
100
123
  */
101
124
  get length() {
102
125
  return this.numberOfSequencedEdits + this.numberOfLocalEdits;
@@ -114,7 +137,7 @@ class EditLog {
114
137
  return this.localEdits.length;
115
138
  }
116
139
  /**
117
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.editIds}
140
+ * {@inheritDoc OrderedEditSet.editIds}
118
141
  */
119
142
  get editIds() {
120
143
  return this.sequencedEditIds.concat(this.localEdits.map(({ id }) => id));
@@ -127,13 +150,13 @@ class EditLog {
127
150
  return entry !== undefined && entry.isLocal;
128
151
  }
129
152
  /**
130
- * @returns true iff the revision is a local revision (not sequenced).
153
+ * @returns true iff the revision is a sequenced revision (not local).
131
154
  */
132
155
  isSequencedRevision(revision) {
133
156
  return revision <= this.sequencedEditIds.length;
134
157
  }
135
158
  /**
136
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.tryGetIndexOfId}
159
+ * {@inheritDoc OrderedEditSet.tryGetIndexOfId}
137
160
  */
138
161
  tryGetIndexOfId(editId) {
139
162
  const orderedEdit = this.allEditIds.get(editId);
@@ -154,14 +177,14 @@ class EditLog {
154
177
  return Common_1.assertNotUndefined(this.allEditIds.get(editId), 'All edits should exist in this map');
155
178
  }
156
179
  /**
157
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getIndexOfId}
180
+ * {@inheritDoc OrderedEditSet.getIndexOfId}
158
181
  */
159
182
  getIndexOfId(editId) {
160
183
  var _a;
161
184
  return (_a = this.tryGetIndexOfId(editId)) !== null && _a !== void 0 ? _a : Common_1.fail('edit not found');
162
185
  }
163
186
  /**
164
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.idOf}
187
+ * {@inheritDoc OrderedEditSet.getIdAtIndex}
165
188
  */
166
189
  getIdAtIndex(index) {
167
190
  if (this.numberOfSequencedEdits <= index) {
@@ -170,16 +193,15 @@ class EditLog {
170
193
  return this.sequencedEditIds[index];
171
194
  }
172
195
  /**
173
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getAtIndex}
196
+ * {@inheritDoc OrderedEditSet.getEditAtIndex}
174
197
  */
175
198
  async getEditAtIndex(index) {
176
199
  if (index < this.numberOfSequencedEdits) {
177
- const [startRevision, editChunk] = Common_1.assertNotUndefined(this.editChunks.nextLowerPair(index + 1));
200
+ const [startRevision, editChunk] = Common_1.assertNotUndefined(this.editChunks.getPairOrNextLower(index));
178
201
  const { handle, edits } = editChunk;
179
202
  if (edits === undefined) {
180
203
  Common_1.assert(handle !== undefined, 'An edit chunk should include at least a handle or edits.');
181
- const edits = JSON.parse(common_utils_1.IsoBuffer.from(await handle.get()).toString())
182
- .edits;
204
+ const edits = await handle.get();
183
205
  // Make sure the loaded edit chunk is the correct size. If a higher starting revison is set, the length is the difference of both.
184
206
  // Otherwise, it means that there are no sequenced edits in memory so the length is the difference of the number of
185
207
  // sequenced edits and the starting revision.
@@ -195,12 +217,12 @@ class EditLog {
195
217
  return this.localEdits[index - this.numberOfSequencedEdits];
196
218
  }
197
219
  /**
198
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getAtIndexSynchronous}
220
+ * {@inheritDoc OrderedEditSet.getEditInSessionAtIndex}
199
221
  */
200
222
  getEditInSessionAtIndex(index) {
201
223
  Common_1.assert(index > this.maximumEvictableIndex, 'Edit to retrieve must have been added to the log during the current session.');
202
224
  if (index < this.numberOfSequencedEdits) {
203
- const [startRevision, editChunk] = Common_1.assertNotUndefined(this.editChunks.nextLowerPair(index + 1));
225
+ const [startRevision, editChunk] = Common_1.assertNotUndefined(this.editChunks.getPairOrNextLower(index));
204
226
  const { edits } = editChunk;
205
227
  return joinEditAndId(this.getIdAtIndex(index), Common_1.assertNotUndefined(edits, 'Edits should not have been evicted.')[index - startRevision]);
206
228
  }
@@ -208,7 +230,7 @@ class EditLog {
208
230
  return this.localEdits[index - this.numberOfSequencedEdits];
209
231
  }
210
232
  /**
211
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.tryGetEdit}
233
+ * {@inheritDoc OrderedEditSet.tryGetEdit}
212
234
  */
213
235
  async tryGetEdit(editId) {
214
236
  try {
@@ -250,6 +272,7 @@ class EditLog {
250
272
  }
251
273
  else {
252
274
  (_a = this.logger) === null || _a === void 0 ? void 0 : _a.sendErrorEvent({ eventName: 'UnexpectedHistoryChunk' });
275
+ this.emit(EventTypes_1.SharedTreeDiagnosticEvent.UnexpectedHistoryChunk);
253
276
  }
254
277
  }
255
278
  /**
@@ -266,6 +289,16 @@ class EditLog {
266
289
  addSequencedEdit(edit, message) {
267
290
  this.addSequencedEditInternal(edit, message, message.minimumSequenceNumber);
268
291
  }
292
+ /**
293
+ * Returns all local edits from this EditLog
294
+ * This is useful for op format upgrades, which might warrant re-submission of these ops using the new format.
295
+ * See the breaking change documentation for more information.
296
+ */
297
+ *getLocalEdits() {
298
+ for (const edit of this.localEdits) {
299
+ yield edit;
300
+ }
301
+ }
269
302
  /**
270
303
  * Adds a sequenced (non-local) edit to the edit log.
271
304
  * If the id of the supplied edit matches a local edit already present in the log, the local edit will be replaced.
@@ -348,7 +381,7 @@ class EditLog {
348
381
  this.emitAdd(edit, true, false);
349
382
  }
350
383
  emitAdd(editAdded, isLocal, wasLocal) {
351
- for (const handler of this.editAddedHandlers) {
384
+ for (const handler of this._editAddedHandlers) {
352
385
  handler(editAdded, isLocal, wasLocal);
353
386
  }
354
387
  }
@@ -360,30 +393,31 @@ class EditLog {
360
393
  // We can use our edit validation code when we write it since it will need to do deep walks of the changes.
361
394
  return Common_1.compareArrays(this.editIds, other.editIds);
362
395
  }
363
- /**
364
- * {@inheritDoc @intentional/shared-tree#OrderedEditSet.getEditLogSummary}
365
- */
366
- getEditLogSummary(useHandles = false) {
367
- if (useHandles) {
396
+ getEditLogSummary(compressEdit) {
397
+ if (compressEdit !== undefined) {
368
398
  return {
369
399
  editChunks: this.editChunks.toArray().map(([startRevision, { handle, edits }]) => {
370
- var _a;
371
- return {
400
+ var _a, _b;
401
+ return ({
372
402
  startRevision,
373
- chunk: (_a = handle !== null && handle !== void 0 ? handle : edits) !== null && _a !== void 0 ? _a : Common_1.fail('An edit chunk must have either a handle or a list of edits.'),
374
- };
403
+ chunk: (_b = (_a = handle === null || handle === void 0 ? void 0 : handle.baseHandle) !== null && _a !== void 0 ? _a : edits === null || edits === void 0 ? void 0 : edits.map((edit) => compressEdit(edit))) !== null && _b !== void 0 ? _b : Common_1.fail('An edit chunk must have either a handle or a list of edits.'),
404
+ });
405
+ }),
406
+ editIds: this.sequencedEditIds,
407
+ };
408
+ }
409
+ else {
410
+ return {
411
+ editChunks: this.editChunks.toArray().map(([startRevision, { handle, edits }]) => {
412
+ var _a, _b;
413
+ return ({
414
+ startRevision,
415
+ chunk: (_b = (_a = handle === null || handle === void 0 ? void 0 : handle.baseHandle) !== null && _a !== void 0 ? _a : edits) !== null && _b !== void 0 ? _b : Common_1.fail('An edit chunk must have either a handle or a list of edits.'),
416
+ });
375
417
  }),
376
418
  editIds: this.sequencedEditIds,
377
419
  };
378
420
  }
379
- // TODO:#49901: When writing format version 0.1.0, change to prefer sending the handle when not undefined.
380
- // For now, no chunks are evicted so edits are sent as is to be aggregated during summary write.
381
- return {
382
- editChunks: this.editChunks.toArray().map(([startRevision, { edits }]) => {
383
- return { startRevision, chunk: Common_1.assertNotUndefined(edits) };
384
- }),
385
- editIds: this.sequencedEditIds,
386
- };
387
421
  }
388
422
  addKeyToCache(newKey) {
389
423
  // Indices are only added to the cache if they are not higher than the maximum evicted index.
@@ -403,4 +437,7 @@ class EditLog {
403
437
  }
404
438
  }
405
439
  exports.EditLog = EditLog;
440
+ function isEditHandle(chunk) {
441
+ return !Array.isArray(chunk);
442
+ }
406
443
  //# sourceMappingURL=EditLog.js.map