@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
@@ -3,12 +3,12 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { expect } from 'chai';
6
- import { setTrait, Delete, EditStatus, Insert, Move, StableRange, StablePlace, Side, EditValidationResult, SharedTreeEvent, CheckoutEvent, Change, } from '../index';
7
- import { left, leftTraitLocation, makeEmptyNode, right, rightTraitLocation, setUpTestSharedTree, simpleTestTree, } from './utilities/TestUtilities';
6
+ import { setTrait, EditStatus, StableRange, StablePlace, EditValidationResult, SharedTreeEvent, CheckoutEvent, Change, Side, areRevisionViewsSemanticallyEqual, } from '../index';
7
+ import { setUpTestSharedTree, setUpTestTree } from './utilities/TestUtilities';
8
8
  /**
9
9
  * Checkout test suite
10
10
  */
11
- export function checkoutTests(suiteName, checkoutFactory) {
11
+ export function checkoutTests(checkoutName, checkoutFactory, additionalTests) {
12
12
  async function setUpTestCheckout(options = { localMode: true, noFailOnError: true }) {
13
13
  const { tree } = setUpTestSharedTree(options);
14
14
  return { checkout: await checkoutFactory(tree), tree };
@@ -20,7 +20,9 @@ export function checkoutTests(suiteName, checkoutFactory) {
20
20
  * @param options Options object used to construct the initial SharedTree
21
21
  */
22
22
  async function countViewChange(action, options = { localMode: true }) {
23
- const { checkout } = await setUpTestCheckout(options);
23
+ const { checkout, tree } = await setUpTestCheckout(options);
24
+ const simpleTestTree = setUpTestTree(tree);
25
+ await checkout.waitForPendingUpdates();
24
26
  let lastView = checkout.currentView;
25
27
  const data = { changeCount: 0 };
26
28
  checkout.on(CheckoutEvent.ViewChange, (before, after) => {
@@ -34,11 +36,17 @@ export function checkoutTests(suiteName, checkoutFactory) {
34
36
  checkout.on('error', (error) => {
35
37
  errors.push(error);
36
38
  });
37
- await action(checkout, data);
39
+ await action(checkout, simpleTestTree, data);
38
40
  expect(errors).deep.equal([]);
39
41
  return data.changeCount;
40
42
  }
41
- return describe(suiteName, () => {
43
+ async function setUpTestTreeCheckout() {
44
+ const { checkout, tree } = await setUpTestCheckout();
45
+ const testTree = setUpTestTree(tree);
46
+ await checkout.waitForPendingUpdates();
47
+ return { checkout, sharedTree: tree, testTree };
48
+ }
49
+ describe(checkoutName, () => {
42
50
  it('can only have one edit open at a time', async () => {
43
51
  const { checkout } = await setUpTestCheckout();
44
52
  checkout.openEdit();
@@ -49,30 +57,30 @@ export function checkoutTests(suiteName, checkoutFactory) {
49
57
  expect(() => checkout.closeEdit()).throws();
50
58
  });
51
59
  it('can only apply changes if an edit is open', async () => {
52
- const { checkout } = await setUpTestCheckout();
53
- expect(() => checkout.applyChanges(Delete.create(StableRange.only(left)))).throws();
60
+ const { checkout, testTree } = await setUpTestTreeCheckout();
61
+ expect(() => checkout.applyChanges(Change.delete(StableRange.only(testTree.left)))).throws();
54
62
  });
55
63
  it('cannot abort an edit if no edit is open', async () => {
56
64
  const { checkout } = await setUpTestCheckout();
57
65
  expect(() => checkout.abortEdit()).throws();
58
66
  });
59
67
  it('can abort valid edits', async () => {
60
- const { checkout } = await setUpTestCheckout({ initialTree: simpleTestTree });
68
+ const { checkout, testTree } = await setUpTestTreeCheckout();
61
69
  checkout.openEdit();
62
70
  // Is still valid after a valid edit
63
- checkout.applyChanges(Delete.create(StableRange.only(left)));
71
+ checkout.applyChanges(Change.delete(StableRange.only(testTree.left.identifier)));
64
72
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
65
73
  checkout.abortEdit();
66
74
  // The left node should still be there
67
- expect(checkout.currentView.getSnapshotNode(left.identifier).identifier).not.undefined;
75
+ expect(checkout.currentView.getViewNode(testTree.left.identifier).identifier).not.undefined;
68
76
  });
69
77
  it('can abort invalid edits', async () => {
70
- const { checkout } = await setUpTestCheckout({ initialTree: simpleTestTree });
78
+ const { checkout, testTree } = await setUpTestTreeCheckout();
71
79
  checkout.openEdit();
72
80
  // Starts as valid
73
81
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
74
82
  // Is invalid after an invalid edit
75
- expect(() => checkout.applyChanges(...Insert.create([left], StablePlace.after(left)))).throws('Locally constructed edits must be well-formed and valid.');
83
+ expect(() => checkout.applyChanges(...Change.insertTree(testTree.left, StablePlace.after(testTree.left)))).throws('Locally constructed edits must be well-formed and valid.');
76
84
  expect(checkout.getEditStatus()).equals(EditStatus.Invalid);
77
85
  checkout.abortEdit();
78
86
  // Next edit is unaffected
@@ -81,19 +89,19 @@ export function checkoutTests(suiteName, checkoutFactory) {
81
89
  checkout.closeEdit();
82
90
  });
83
91
  it('can abort malformed edits', async () => {
84
- const { checkout } = await setUpTestCheckout({ initialTree: simpleTestTree });
92
+ const { checkout, testTree } = await setUpTestTreeCheckout();
85
93
  checkout.openEdit();
86
94
  // Starts as valid
87
95
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
88
96
  // Is malformed after a malformed edit
89
- const malformedMove = Move.create({
97
+ const malformedMove = Change.move({
90
98
  start: { side: Side.Before },
91
99
  end: { side: Side.After },
92
100
  }, { side: Side.After });
93
101
  expect(() => checkout.applyChanges(...malformedMove)).throws('Locally constructed edits must be well-formed and valid.');
94
102
  expect(checkout.getEditStatus()).equals(EditStatus.Malformed);
95
103
  // Is still malformed after a subsequent valid edit
96
- expect(() => checkout.applyChanges(Delete.create(StableRange.only(left)))).throws('Cannot apply change to an edit unless all previous changes have applied');
104
+ expect(() => checkout.applyChanges(Change.delete(StableRange.only(testTree.left)))).throws('Cannot apply change to an edit unless all previous changes have applied');
97
105
  expect(checkout.getEditStatus()).equals(EditStatus.Malformed);
98
106
  checkout.abortEdit();
99
107
  // Next edit is unaffected
@@ -101,6 +109,16 @@ export function checkoutTests(suiteName, checkoutFactory) {
101
109
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
102
110
  checkout.closeEdit();
103
111
  });
112
+ it('can try to apply an invalid edit and abort without causing an error', async () => {
113
+ const { checkout, tree } = await setUpTestCheckout();
114
+ const simpleTestTree = setUpTestTree(tree);
115
+ // tryApplyEdit aborts when applying an invalid edit and returns undefined
116
+ expect(checkout.tryApplyEdit(...Change.insertTree(simpleTestTree.left, StablePlace.after(simpleTestTree.left)))).to.be.undefined;
117
+ // Next edit is unaffected
118
+ checkout.openEdit();
119
+ expect(checkout.getEditStatus()).equals(EditStatus.Applied);
120
+ checkout.closeEdit();
121
+ });
104
122
  it('cannot get the edit status if no edit is open', async () => {
105
123
  const { checkout } = await setUpTestCheckout();
106
124
  expect(() => checkout.getEditStatus()).throws();
@@ -121,25 +139,25 @@ export function checkoutTests(suiteName, checkoutFactory) {
121
139
  expect(treeErrorHandlerWasCalled).equals(true);
122
140
  });
123
141
  it('exposes the current edit status in the face of valid edits', async () => {
124
- const { checkout } = await setUpTestCheckout({ initialTree: simpleTestTree });
142
+ const { checkout, testTree } = await setUpTestTreeCheckout();
125
143
  checkout.openEdit();
126
144
  // Starts as valid
127
145
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
128
146
  // Is still valid after a valid edit
129
- checkout.applyChanges(Delete.create(StableRange.only(left)));
147
+ checkout.applyChanges(Change.delete(StableRange.only(testTree.left)));
130
148
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
131
149
  checkout.closeEdit();
132
150
  });
133
151
  it('exposes the current edit status in the face of invalid edits', async () => {
134
- const { checkout } = await setUpTestCheckout({ initialTree: simpleTestTree });
152
+ const { checkout, testTree } = await setUpTestTreeCheckout();
135
153
  checkout.openEdit();
136
154
  // Starts as valid
137
155
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
138
156
  // Is invalid after an invalid edit
139
- expect(() => checkout.applyChanges(...Insert.create([left], StablePlace.after(left)))).throws('Locally constructed edits must be well-formed and valid.');
157
+ expect(() => checkout.applyChanges(...Change.insertTree(testTree.left, StablePlace.after(testTree.left)))).throws('Locally constructed edits must be well-formed and valid.');
140
158
  expect(checkout.getEditStatus()).equals(EditStatus.Invalid);
141
159
  // Is still invalid after a subsequent valid edit
142
- expect(() => checkout.applyChanges(Delete.create(StableRange.only(left)))).throws('Cannot apply change to an edit unless all previous changes have applied');
160
+ expect(() => checkout.applyChanges(Change.delete(StableRange.only(testTree.left)))).throws('Cannot apply change to an edit unless all previous changes have applied');
143
161
  expect(checkout.getEditStatus()).equals(EditStatus.Invalid);
144
162
  expect(() => checkout.closeEdit()).throws('Locally constructed edits must be well-formed and valid');
145
163
  // Next edit is unaffected
@@ -148,19 +166,19 @@ export function checkoutTests(suiteName, checkoutFactory) {
148
166
  checkout.closeEdit();
149
167
  });
150
168
  it('exposes the current edit status in the face of malformed edits', async () => {
151
- const { checkout } = await setUpTestCheckout({ initialTree: simpleTestTree });
169
+ const { checkout, testTree } = await setUpTestTreeCheckout();
152
170
  checkout.openEdit();
153
171
  // Starts as valid
154
172
  expect(checkout.getEditStatus()).equals(EditStatus.Applied);
155
173
  // Is malformed after a malformed edit
156
- const malformedMove = Move.create({
174
+ const malformedMove = Change.move({
157
175
  start: { side: Side.Before },
158
176
  end: { side: Side.After },
159
177
  }, { side: Side.After });
160
178
  expect(() => checkout.applyChanges(...malformedMove)).throws('Locally constructed edits must be well-formed and valid.');
161
179
  expect(checkout.getEditStatus()).equals(EditStatus.Malformed);
162
180
  // Is still malformed after a subsequent valid edit
163
- expect(() => checkout.applyChanges(Delete.create(StableRange.only(left)))).throws('Cannot apply change to an edit unless all previous changes have applied');
181
+ expect(() => checkout.applyChanges(Change.delete(StableRange.only(testTree.left)))).throws('Cannot apply change to an edit unless all previous changes have applied');
164
182
  expect(checkout.getEditStatus()).equals(EditStatus.Malformed);
165
183
  expect(() => checkout.closeEdit()).throws('Locally constructed edits must be well-formed and valid');
166
184
  // Next edit is unaffected
@@ -184,22 +202,22 @@ export function checkoutTests(suiteName, checkoutFactory) {
184
202
  expect(tree.edits.tryGetEdit(editId)).is.not.undefined;
185
203
  });
186
204
  it('will emit invalidation messages in response to changes', async () => {
187
- const invalidations = await countViewChange((checkout) => {
188
- checkout.applyEdit(Delete.create(StableRange.only(left)));
189
- }, { initialTree: simpleTestTree });
205
+ const invalidations = await countViewChange((checkout, simpleTestTree) => {
206
+ checkout.applyEdit(Change.delete(StableRange.only(simpleTestTree.left)));
207
+ });
190
208
  expect(invalidations).equals(1);
191
209
  });
192
210
  it('will emit invalidation messages in response to payload change', async () => {
193
- const invalidations = await countViewChange((checkout) => {
194
- checkout.applyEdit(Change.setPayload(left.identifier, 5));
195
- }, { initialTree: simpleTestTree });
211
+ const invalidations = await countViewChange((checkout, simpleTestTree) => {
212
+ checkout.applyEdit(Change.setPayload(simpleTestTree.left.identifier, 5));
213
+ });
196
214
  expect(invalidations).equals(1);
197
215
  });
198
216
  it('emits a change event for each batch of changes in a local edit', async () => {
199
- const changes = await countViewChange(async (checkout, data) => {
217
+ const changes = await countViewChange(async (checkout, simpleTestTree, data) => {
200
218
  checkout.on(CheckoutEvent.ViewChange, () => {
201
- const leftTrait = checkout.currentView.getTrait(leftTraitLocation);
202
- const rightTrait = checkout.currentView.getTrait(rightTraitLocation);
219
+ const leftTrait = checkout.currentView.getTrait(simpleTestTree.left.traitLocation);
220
+ const rightTrait = checkout.currentView.getTrait(simpleTestTree.right.traitLocation);
203
221
  if (data.changeCount === 1) {
204
222
  expect(leftTrait.length).to.equal(0); // "left" child is deleted...
205
223
  expect(rightTrait.length).to.equal(1); // ...but "right" child is not
@@ -211,37 +229,59 @@ export function checkoutTests(suiteName, checkoutFactory) {
211
229
  });
212
230
  checkout.openEdit();
213
231
  expect(data.changeCount).equals(0);
214
- checkout.applyChanges(Delete.create(StableRange.only(left)));
232
+ checkout.applyChanges(Change.delete(StableRange.only(simpleTestTree.left)));
215
233
  expect(data.changeCount).equals(1);
216
- checkout.applyChanges(Delete.create(StableRange.only(right)));
234
+ checkout.applyChanges(Change.delete(StableRange.only(simpleTestTree.right)));
217
235
  expect(data.changeCount).equals(2);
218
236
  checkout.closeEdit();
219
237
  await checkout.waitForPendingUpdates();
220
- }, { initialTree: simpleTestTree });
238
+ });
221
239
  // Checkout's use of LogViewer.setKnownEditingResult should enable CachingLogViewer
222
- // to return the exact same SnapShot object, allowing checkout to so skip an extra change event from closeEdit.
240
+ // to return the exact same revision view object, allowing checkout to skip an extra change event from closeEdit.
223
241
  expect(changes).equals(2);
224
242
  });
225
243
  it('emits ViewChange events for edits directly on tree', async () => {
226
- const { checkout } = await setUpTestCheckout({ initialTree: simpleTestTree });
244
+ const { checkout, testTree } = await setUpTestTreeCheckout();
227
245
  let changeCount = 0;
228
246
  checkout.on(CheckoutEvent.ViewChange, () => {
229
247
  changeCount += 1;
230
248
  });
231
249
  expect(changeCount).equals(0);
232
- checkout.tree.applyEdit(Delete.create(StableRange.only(left)));
250
+ checkout.tree.applyEdit(Change.delete(StableRange.only(testTree.left)));
233
251
  // Wait for edit to be included in checkout.
234
252
  await checkout.waitForPendingUpdates();
235
253
  expect(changeCount).equals(1);
236
254
  });
237
- const treeOptions = { initialTree: simpleTestTree, localMode: false };
255
+ it('automatically loads views from edits committed directly on it', async () => {
256
+ const { checkout, testTree } = await setUpTestTreeCheckout();
257
+ const viewBefore = checkout.currentView;
258
+ let changeCount = 0;
259
+ checkout.on(CheckoutEvent.ViewChange, () => {
260
+ changeCount += 1;
261
+ });
262
+ checkout.applyEdit(Change.delete(StableRange.only(testTree.left)));
263
+ expect(changeCount).equals(1);
264
+ expect(viewBefore.equals(checkout.currentView)).to.be.false;
265
+ });
238
266
  const secondTreeOptions = {
239
267
  id: 'secondTestSharedTree',
240
268
  localMode: false,
241
269
  allowInvalid: true,
242
270
  };
271
+ it('can wait on edits to be submitted', async () => {
272
+ const { checkout, testTree } = await setUpTestTreeCheckout();
273
+ let committedEditsCount = 0;
274
+ checkout.tree.on(SharedTreeEvent.EditCommitted, () => {
275
+ committedEditsCount += 1;
276
+ });
277
+ expect(committedEditsCount).equals(0);
278
+ checkout.tree.applyEdit(Change.delete(StableRange.only(testTree.left)));
279
+ await checkout.waitForEditsToSubmit();
280
+ expect(committedEditsCount).equals(1);
281
+ });
243
282
  it('emits ViewChange events for remote edits', async () => {
244
- const { containerRuntimeFactory, tree } = setUpTestSharedTree(Object.assign({}, treeOptions));
283
+ const { containerRuntimeFactory, tree } = setUpTestSharedTree({ localMode: false });
284
+ const simpleTestTree = setUpTestTree(tree);
245
285
  const { tree: secondTree } = setUpTestSharedTree(Object.assign({ containerRuntimeFactory }, secondTreeOptions));
246
286
  containerRuntimeFactory.processAllMessages();
247
287
  const checkout = await checkoutFactory(tree);
@@ -249,34 +289,48 @@ export function checkoutTests(suiteName, checkoutFactory) {
249
289
  checkout.on(CheckoutEvent.ViewChange, () => {
250
290
  changeCount += 1;
251
291
  });
252
- secondTree.applyEdit(Delete.create(StableRange.only(left)));
292
+ secondTree.applyEdit(Change.delete(StableRange.only(simpleTestTree.left.translateId(secondTree))));
253
293
  expect(changeCount).equals(0);
254
294
  containerRuntimeFactory.processAllMessages();
255
295
  // Wait for edit to be included in checkout.
256
296
  await checkout.waitForPendingUpdates();
257
297
  expect(changeCount).equals(1);
298
+ expect(secondTree.equals(tree));
258
299
  });
259
300
  it('connected state with a remote SharedTree equates correctly during edits', async () => {
260
301
  // Invalid edits are allowed here because this test creates edits concurrently in two trees,
261
302
  // which after syncing, end up with one being invalid.
262
- const { tree, containerRuntimeFactory } = setUpTestSharedTree(Object.assign(Object.assign({}, treeOptions), { allowInvalid: true }));
303
+ const { tree, containerRuntimeFactory } = setUpTestSharedTree({ localMode: false, allowInvalid: true });
304
+ const simpleTestTree = setUpTestTree(tree);
263
305
  const { tree: secondTree } = setUpTestSharedTree(Object.assign({ containerRuntimeFactory }, secondTreeOptions));
264
306
  containerRuntimeFactory.processAllMessages();
265
307
  const checkout = await checkoutFactory(tree);
266
308
  const secondCheckout = await checkoutFactory(tree);
267
- checkout.openEdit();
268
309
  expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.true;
310
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.true;
311
+ checkout.openEdit();
312
+ expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.false;
313
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.true;
269
314
  expect(tree.equals(secondTree)).to.be.true;
270
315
  secondCheckout.openEdit();
271
316
  expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.true;
317
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.true;
272
318
  expect(tree.equals(secondTree)).to.be.true;
273
- checkout.applyChanges(Delete.create(StableRange.only(left)));
319
+ checkout.applyChanges(Change.delete(StableRange.only(simpleTestTree.left)));
274
320
  expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.false;
275
- secondCheckout.applyChanges(Delete.create(StableRange.only(left)));
321
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.false;
322
+ secondCheckout.applyChanges(Change.delete(StableRange.only(simpleTestTree.left)));
276
323
  expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.true;
324
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.true;
277
325
  expect(tree.equals(secondTree)).to.be.true;
278
326
  checkout.closeEdit();
327
+ await checkout.waitForPendingUpdates();
328
+ expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.false;
329
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.true;
279
330
  secondCheckout.closeEdit();
331
+ await secondCheckout.waitForPendingUpdates();
332
+ expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.true;
333
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.true;
280
334
  await checkout.waitForPendingUpdates();
281
335
  await secondCheckout.waitForPendingUpdates();
282
336
  containerRuntimeFactory.processAllMessages();
@@ -284,49 +338,55 @@ export function checkoutTests(suiteName, checkoutFactory) {
284
338
  await checkout.waitForPendingUpdates();
285
339
  await secondCheckout.waitForPendingUpdates();
286
340
  expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.true;
341
+ expect(checkout.currentView.hasEqualForest(secondCheckout.currentView)).to.be.true;
287
342
  });
288
343
  it('can successfully rebase an ongoing local edit', async () => {
289
- const { tree, containerRuntimeFactory } = setUpTestSharedTree(treeOptions);
344
+ const { tree, containerRuntimeFactory } = setUpTestSharedTree({ localMode: false });
345
+ const simpleTestTree = setUpTestTree(tree);
290
346
  const { tree: secondTree } = setUpTestSharedTree(Object.assign({ containerRuntimeFactory }, secondTreeOptions));
291
347
  // Sync initial tree
292
348
  containerRuntimeFactory.processAllMessages();
293
349
  const checkout = await checkoutFactory(tree);
294
350
  const secondCheckout = await checkoutFactory(secondTree);
295
- const newLeftNode = makeEmptyNode();
351
+ const newLeftNode = simpleTestTree.buildLeaf(simpleTestTree.generateNodeId());
296
352
  checkout.openEdit();
297
- checkout.applyChanges(...setTrait(leftTraitLocation, [newLeftNode]));
353
+ checkout.applyChanges(...setTrait(simpleTestTree.left.traitLocation, [newLeftNode]));
298
354
  // Concurrently, the second client deletes the right node. This will not conflict with the operation performed
299
355
  // on the left trait on the first client.
300
- secondCheckout.applyEdit(Delete.create(StableRange.only(right)));
356
+ secondCheckout.applyEdit(Change.delete(StableRange.only(simpleTestTree.right.translateId(secondTree))));
301
357
  await secondCheckout.waitForPendingUpdates();
302
358
  // Deliver the remote change. Since there will not be any conflicts, the result should merge locally and both trait
303
359
  // modifications should be reflected in the current view.
304
360
  containerRuntimeFactory.processAllMessages();
305
361
  await checkout.waitForPendingUpdates();
306
362
  await secondCheckout.waitForPendingUpdates();
307
- let leftTrait = checkout.currentView.getTrait(leftTraitLocation);
308
- let rightTrait = checkout.currentView.getTrait(rightTraitLocation);
363
+ let leftTrait = checkout.currentView.getTrait(simpleTestTree.left.traitLocation);
364
+ let rightTrait = checkout.currentView.getTrait(simpleTestTree.right.traitLocation);
309
365
  expect(leftTrait).deep.equals([newLeftNode.identifier]);
310
366
  // The remote deletion of the right node, while delivered, will not be reflected in the view yet.
311
- expect(rightTrait).deep.equals([right.identifier]);
312
- const secondLeftTrait = secondCheckout.currentView.getTrait(leftTraitLocation);
313
- const secondRightTrait = secondCheckout.currentView.getTrait(rightTraitLocation);
314
- expect(secondLeftTrait).deep.equals([left.identifier]);
367
+ expect(rightTrait).deep.equals([simpleTestTree.right.identifier]);
368
+ const secondLeftTrait = secondCheckout.currentView.getTrait(simpleTestTree.left.traitLocation.translate(secondTree));
369
+ const secondRightTrait = secondCheckout.currentView.getTrait(simpleTestTree.right.traitLocation.translate(secondTree));
370
+ expect(secondLeftTrait).deep.equals([simpleTestTree.left.translateId(secondTree)]);
315
371
  expect(secondRightTrait.length).equals(0);
316
372
  // Merge in the latest changes.
373
+ await checkout.waitForPendingUpdates();
317
374
  const rebaseResult = checkout.rebaseCurrentEdit();
318
375
  expect(rebaseResult).equals(EditValidationResult.Valid);
319
- leftTrait = checkout.currentView.getTrait(leftTraitLocation);
320
- rightTrait = checkout.currentView.getTrait(rightTraitLocation);
376
+ leftTrait = checkout.currentView.getTrait(simpleTestTree.left.traitLocation);
377
+ rightTrait = checkout.currentView.getTrait(simpleTestTree.right.traitLocation);
321
378
  expect(leftTrait).deep.equals([newLeftNode.identifier]);
322
379
  expect(rightTrait.length).equals(0);
323
380
  checkout.closeEdit();
381
+ // Again, call this prior to processing ops to accommodate PrefetchingCheckout
324
382
  await checkout.waitForPendingUpdates();
325
383
  containerRuntimeFactory.processAllMessages();
384
+ await secondCheckout.waitForPendingUpdates();
326
385
  expect(tree.equals(secondTree)).to.be.true;
327
386
  });
328
387
  it('can handle a failed rebase of an ongoing local edit', async () => {
329
- const { tree, containerRuntimeFactory } = setUpTestSharedTree(treeOptions);
388
+ const { tree, containerRuntimeFactory } = setUpTestSharedTree({ localMode: false });
389
+ const simpleTestTree = setUpTestTree(tree);
330
390
  const { tree: secondTree } = setUpTestSharedTree(Object.assign({ containerRuntimeFactory }, secondTreeOptions));
331
391
  // Sync initial tree
332
392
  containerRuntimeFactory.processAllMessages();
@@ -334,33 +394,30 @@ export function checkoutTests(suiteName, checkoutFactory) {
334
394
  const secondCheckout = await checkoutFactory(secondTree);
335
395
  checkout.openEdit();
336
396
  // Move the left node to after the right node
337
- checkout.applyChanges(...Move.create(StableRange.only(left), StablePlace.after(right)));
397
+ checkout.applyChanges(...Change.move(StableRange.only(simpleTestTree.left), StablePlace.after(simpleTestTree.right)));
338
398
  // Concurrently, the second client deletes the right node. This will conflict with the move operation by the first client.
339
- secondCheckout.applyEdit(Delete.create(StableRange.only(right)));
399
+ secondCheckout.applyEdit(Change.delete(StableRange.only(simpleTestTree.right.translateId(secondTree))));
340
400
  await secondCheckout.waitForPendingUpdates();
341
401
  containerRuntimeFactory.processAllMessages();
342
402
  await checkout.waitForPendingUpdates();
343
403
  await secondCheckout.waitForPendingUpdates();
344
404
  // Before rebasing, the first client should still see the right node and will have moved the left node after it.
345
- const leftTrait = checkout.currentView.getTrait(leftTraitLocation);
346
- const rightTrait = checkout.currentView.getTrait(rightTraitLocation);
405
+ const leftTrait = checkout.currentView.getTrait(simpleTestTree.left.traitLocation);
406
+ const rightTrait = checkout.currentView.getTrait(simpleTestTree.right.traitLocation);
347
407
  expect(leftTrait).deep.equals([]);
348
- expect(rightTrait).deep.equals([right.identifier, left.identifier]);
408
+ expect(rightTrait).deep.equals([simpleTestTree.right.identifier, simpleTestTree.left.identifier]);
349
409
  // Merge in the latest changes.
350
410
  const rebaseResult = checkout.rebaseCurrentEdit();
351
411
  expect(rebaseResult).equals(EditValidationResult.Invalid);
352
- expect(checkout.currentView.equals(secondCheckout.currentView)).to.be.true;
412
+ expect(areRevisionViewsSemanticallyEqual(checkout.currentView, tree, secondCheckout.currentView, secondTree)).to.be.true;
353
413
  });
354
414
  it('can dispose and remove listeners', async () => {
355
- // Arrange
356
415
  const { checkout } = await setUpTestCheckout();
357
- // Assert
358
416
  expect(checkout.tree.listenerCount(SharedTreeEvent.EditCommitted)).to.equal(1);
359
- // Act
360
417
  checkout.dispose();
361
- // Assert
362
418
  expect(checkout.tree.listenerCount(SharedTreeEvent.EditCommitted)).to.equal(0);
363
419
  });
420
+ additionalTests === null || additionalTests === void 0 ? void 0 : additionalTests();
364
421
  });
365
422
  }
366
423
  //# sourceMappingURL=Checkout.tests.js.map