@fluid-experimental/tree 0.58.2001 → 0.59.2000-61729

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 +71 -0
  114. package/dist/Transaction.d.ts.map +1 -0
  115. package/dist/Transaction.js +92 -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 +71 -0
  302. package/lib/Transaction.d.ts.map +1 -0
  303. package/lib/Transaction.js +88 -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 +109 -329
  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 +120 -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
@@ -1,100 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { fullHistorySummarizer, GenericSharedTree } from '../generic';
6
- import { Delete, Insert, Move, StableRange } from './PersistedTypes';
7
- import { SharedTreeFactory, SharedTreeFactoryNoHistory } from './Factory';
8
- import * as HistoryEditFactory from './HistoryEditFactory';
9
- import { Transaction } from './Transaction';
10
- import { noHistorySummarizer } from './Summary';
11
- /**
12
- * Wrapper around a `SharedTree` which provides ergonomic imperative editing functionality. All methods apply changes in their own edit.
13
- *
14
- * @example
15
- * // The following two lines of code are equivalent:
16
- * tree.applyEdit(...Insert.create([newNode], StablePlace.before(existingNode)));
17
- * tree.editor.insert(newNode, StablePlace.before(existingNode))
18
- * @public
19
- */
20
- export class SharedTreeEditor {
21
- constructor(tree) {
22
- this.tree = tree;
23
- }
24
- insert(nodeOrNodes, destination) {
25
- return this.tree.applyEdit(...Insert.create(Array.isArray(nodeOrNodes) ? nodeOrNodes : [nodeOrNodes], destination));
26
- }
27
- move(source, destination) {
28
- if (!this.isStableRange(source)) {
29
- return this.tree.applyEdit(...Move.create(StableRange.only(source), destination));
30
- }
31
- return this.tree.applyEdit(...Move.create(source, destination));
32
- }
33
- delete(target) {
34
- if (!this.isStableRange(target)) {
35
- return this.tree.applyEdit(Delete.create(StableRange.only(target)));
36
- }
37
- return this.tree.applyEdit(Delete.create(target));
38
- }
39
- /**
40
- * Reverts a previous edit.
41
- * @param edit - the edit to revert
42
- * @param view - the revision to which the edit is applied (not the output of applying edit: it's the one just before that)
43
- */
44
- revert(edit, view) {
45
- return this.tree.applyEdit(...HistoryEditFactory.revert(edit.changes, view));
46
- }
47
- isStableRange(source) {
48
- return source.start !== undefined && source.end !== undefined;
49
- }
50
- }
51
- /**
52
- * A distributed tree.
53
- * @public
54
- * @sealed
55
- */
56
- export class SharedTree extends GenericSharedTree {
57
- /**
58
- * Create a new SharedTreeFactory.
59
- * @param runtime - The runtime the SharedTree will be associated with
60
- * @param id - Unique ID for the SharedTree
61
- * @param expensiveValidation - enable expensive asserts
62
- * @param summarizeHistory - Determines if the history is included in summaries.
63
- */
64
- constructor(runtime, id, expensiveValidation = false, summarizeHistory = true) {
65
- super(runtime, id, Transaction.factory, SharedTreeFactory.Attributes, expensiveValidation, summarizeHistory);
66
- }
67
- /**
68
- * Create a new SharedTree. It will contain the default value (see initialTree).
69
- */
70
- static create(runtime, id) {
71
- return runtime.createChannel(id, SharedTreeFactory.Type);
72
- }
73
- /**
74
- * Get a factory for SharedTree to register with the data store.
75
- * @param historySummarizing - determines how history is summarized by the returned `SharedTree`.
76
- * @returns A factory that creates `SharedTree`s and loads them from storage.
77
- */
78
- static getFactory(summarizeHistory = true) {
79
- return summarizeHistory ? new SharedTreeFactory() : new SharedTreeFactoryNoHistory();
80
- }
81
- /**
82
- * Returns a `SharedTreeEditor` for editing this tree in an imperative fashion. All edits are performed on the current tree view.
83
- */
84
- get editor() {
85
- if (!this._editor) {
86
- this._editor = new SharedTreeEditor(this);
87
- }
88
- return this._editor;
89
- }
90
- /**
91
- * {@inheritDoc GenericSharedTree.generateSummary}
92
- */
93
- generateSummary(editLog) {
94
- if (!this.summarizeHistory) {
95
- return noHistorySummarizer(editLog, this.currentView);
96
- }
97
- return fullHistorySummarizer(editLog, this.currentView);
98
- }
99
- }
100
- //# sourceMappingURL=SharedTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SharedTree.js","sourceRoot":"","sources":["../../src/default-edits/SharedTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';\nimport { EditId, NodeId } from '../Identifiers';\nimport { Snapshot } from '../Snapshot';\nimport { Edit, BuildNode, fullHistorySummarizer, GenericSharedTree, NodeData, SharedTreeSummaryBase } from '../generic';\nimport { OrderedEditSet } from '../EditLog';\nimport { Change, Delete, Insert, Move, StableRange, StablePlace } from './PersistedTypes';\nimport { SharedTreeFactory, SharedTreeFactoryNoHistory } from './Factory';\nimport * as HistoryEditFactory from './HistoryEditFactory';\nimport { Transaction } from './Transaction';\nimport { noHistorySummarizer } from './Summary';\n\n/**\n * Wrapper around a `SharedTree` which provides ergonomic imperative editing functionality. All methods apply changes in their own edit.\n *\n * @example\n * // The following two lines of code are equivalent:\n * tree.applyEdit(...Insert.create([newNode], StablePlace.before(existingNode)));\n * tree.editor.insert(newNode, StablePlace.before(existingNode))\n * @public\n */\nexport class SharedTreeEditor {\n\tprivate readonly tree: SharedTree;\n\n\tpublic constructor(tree: SharedTree) {\n\t\tthis.tree = tree;\n\t}\n\n\t/**\n\t * Inserts a node at a location.\n\t * @param node - Node to insert.\n\t * @param destination - StablePlace at which the insert should take place.\n\t */\n\tpublic insert(node: BuildNode, destination: StablePlace): EditId;\n\t/**\n\t * Inserts nodes at a location.\n\t * @param nodes - Nodes to insert.\n\t * @param destination - StablePlace at which the insert should take place.\n\t */\n\tpublic insert(nodes: BuildNode[], destination: StablePlace): EditId;\n\tpublic insert(nodeOrNodes: BuildNode | BuildNode[], destination: StablePlace): EditId {\n\t\treturn this.tree.applyEdit(\n\t\t\t...Insert.create(Array.isArray(nodeOrNodes) ? nodeOrNodes : [nodeOrNodes], destination)\n\t\t);\n\t}\n\n\t/**\n\t * Moves a node to a specified location.\n\t * @param source - Node to move.\n\t * @param destination - StablePlace to which the node should be moved.\n\t */\n\tpublic move(source: NodeData, destination: StablePlace): EditId;\n\t/**\n\t * Moves a node to a specified location.\n\t * @param source - Node to move.\n\t * @param destination - StablePlace to which the node should be moved.\n\t */\n\tpublic move(source: NodeId, destination: StablePlace): EditId;\n\t/**\n\t * Moves a part of a trait to a specified location.\n\t * @param source - Portion of a trait to move.\n\t * @param destination - StablePlace to which the portion of the trait should be moved.\n\t */\n\tpublic move(source: StableRange, destination: StablePlace): EditId;\n\tpublic move(source: NodeData | NodeId | StableRange, destination: StablePlace): EditId {\n\t\tif (!this.isStableRange(source)) {\n\t\t\treturn this.tree.applyEdit(...Move.create(StableRange.only(source), destination));\n\t\t}\n\n\t\treturn this.tree.applyEdit(...Move.create(source, destination));\n\t}\n\n\t/**\n\t * Deletes a node.\n\t * @param target - Node to delete\n\t */\n\tpublic delete(target: NodeData): EditId;\n\t/**\n\t * Deletes a node.\n\t * @param target - Node to delete\n\t */\n\tpublic delete(target: NodeId): EditId;\n\t/**\n\t * Deletes a portion of a trait.\n\t * @param target - Range of nodes to delete, specified as a `StableRange`\n\t */\n\tpublic delete(target: StableRange): EditId;\n\tpublic delete(target: NodeData | NodeId | StableRange): EditId {\n\t\tif (!this.isStableRange(target)) {\n\t\t\treturn this.tree.applyEdit(Delete.create(StableRange.only(target)));\n\t\t}\n\n\t\treturn this.tree.applyEdit(Delete.create(target));\n\t}\n\n\t/**\n\t * Reverts a previous edit.\n\t * @param edit - the edit to revert\n\t * @param view - the revision to which the edit is applied (not the output of applying edit: it's the one just before that)\n\t */\n\tpublic revert(edit: Edit<Change>, view: Snapshot): EditId {\n\t\treturn this.tree.applyEdit(...HistoryEditFactory.revert(edit.changes, view));\n\t}\n\n\tprivate isStableRange(source: NodeData | NodeId | StableRange): source is StableRange {\n\t\treturn (source as StableRange).start !== undefined && (source as StableRange).end !== undefined;\n\t}\n}\n\n/**\n * A distributed tree.\n * @public\n * @sealed\n */\nexport class SharedTree extends GenericSharedTree<Change> {\n\t/**\n\t * Create a new SharedTree. It will contain the default value (see initialTree).\n\t */\n\tpublic static create(runtime: IFluidDataStoreRuntime, id?: string): SharedTree {\n\t\treturn runtime.createChannel(id, SharedTreeFactory.Type) as SharedTree;\n\t}\n\n\t/**\n\t * Get a factory for SharedTree to register with the data store.\n\t * @param historySummarizing - determines how history is summarized by the returned `SharedTree`.\n\t * @returns A factory that creates `SharedTree`s and loads them from storage.\n\t */\n\tpublic static getFactory(summarizeHistory = true): SharedTreeFactory {\n\t\treturn summarizeHistory ? new SharedTreeFactory() : new SharedTreeFactoryNoHistory();\n\t}\n\n\t/**\n\t * Create a new SharedTreeFactory.\n\t * @param runtime - The runtime the SharedTree will be associated with\n\t * @param id - Unique ID for the SharedTree\n\t * @param expensiveValidation - enable expensive asserts\n\t * @param summarizeHistory - Determines if the history is included in summaries.\n\t */\n\tpublic constructor(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\texpensiveValidation = false,\n\t\tsummarizeHistory = true\n\t) {\n\t\tsuper(runtime, id, Transaction.factory, SharedTreeFactory.Attributes, expensiveValidation, summarizeHistory);\n\t}\n\n\tprivate _editor: SharedTreeEditor | undefined;\n\n\t/**\n\t * Returns a `SharedTreeEditor` for editing this tree in an imperative fashion. All edits are performed on the current tree view.\n\t */\n\tpublic get editor(): SharedTreeEditor {\n\t\tif (!this._editor) {\n\t\t\tthis._editor = new SharedTreeEditor(this);\n\t\t}\n\n\t\treturn this._editor;\n\t}\n\n\t/**\n\t * {@inheritDoc GenericSharedTree.generateSummary}\n\t */\n\tprotected generateSummary(editLog: OrderedEditSet<Change>): SharedTreeSummaryBase {\n\t\tif (!this.summarizeHistory) {\n\t\t\treturn noHistorySummarizer(editLog, this.currentView);\n\t\t}\n\t\treturn fullHistorySummarizer(editLog, this.currentView);\n\t}\n}\n"]}
@@ -1,15 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { OrderedEditSet } from '../EditLog';
6
- import { Snapshot } from '../Snapshot';
7
- import { SharedTreeSummary_0_0_2 } from '../SummaryBackCompatibility';
8
- import { Change } from './PersistedTypes';
9
- /**
10
- * Does not preserve (persist) history at all.
11
- * Instead, the history returned in the summary will contain a single change that creates a revision identical to the supplied view.
12
- * @public
13
- */
14
- export declare function noHistorySummarizer(_editLog: OrderedEditSet<Change>, currentView: Snapshot): SharedTreeSummary_0_0_2<Change>;
15
- //# sourceMappingURL=Summary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Summary.d.ts","sourceRoot":"","sources":["../../src/default-edits/Summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,EAChC,WAAW,EAAE,QAAQ,GACnB,uBAAuB,CAAC,MAAM,CAAC,CAoBjC"}
@@ -1,31 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { assert } from '../Common';
6
- import { initialTree } from '../InitialTree';
7
- import { formatVersion, newEdit } from '../generic';
8
- import { setTrait } from './EditUtilities';
9
- /**
10
- * Does not preserve (persist) history at all.
11
- * Instead, the history returned in the summary will contain a single change that creates a revision identical to the supplied view.
12
- * @public
13
- */
14
- export function noHistorySummarizer(_editLog, currentView) {
15
- const currentTree = currentView.getChangeNodeTree();
16
- const rootId = currentTree.identifier;
17
- const changes = [];
18
- // Generate a set of changes to set the root node's children to that of the root in the currentTree
19
- Object.entries(currentTree.traits).forEach(([label, children]) => {
20
- changes.push(...setTrait({ parent: rootId, label: label }, children));
21
- });
22
- assert(currentTree.payload === undefined, 'setValue not yet supported.');
23
- assert(currentTree.identifier === initialTree.identifier && currentTree.definition === initialTree.definition, 'root definition and identifier should be immutable.');
24
- const edit = newEdit(changes);
25
- return {
26
- currentTree,
27
- sequencedEdits: [{ id: edit.id, changes: edit.changes }],
28
- version: formatVersion,
29
- };
30
- }
31
- //# sourceMappingURL=Summary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Summary.js","sourceRoot":"","sources":["../../src/default-edits/Summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAClC,QAAgC,EAChC,WAAqB;IAErB,MAAM,WAAW,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC;IACtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,mGAAmG;IACnG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAmB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE,6BAA6B,CAAC,CAAC;IACzE,MAAM,CACL,WAAW,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU,EACtG,qDAAqD,CACrD,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO;QACN,WAAW;QACX,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACxD,OAAO,EAAE,aAAa;KACtB,CAAC;AACH,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TraitLabel } from '../Identifiers';\nimport { assert } from '../Common';\nimport { OrderedEditSet } from '../EditLog';\nimport { Snapshot } from '../Snapshot';\nimport { initialTree } from '../InitialTree';\nimport { SharedTreeSummary_0_0_2 } from '../SummaryBackCompatibility';\nimport { formatVersion, newEdit } from '../generic';\nimport { Change } from './PersistedTypes';\nimport { setTrait } from './EditUtilities';\n\n/**\n * Does not preserve (persist) history at all.\n * Instead, the history returned in the summary will contain a single change that creates a revision identical to the supplied view.\n * @public\n */\nexport function noHistorySummarizer(\n\t_editLog: OrderedEditSet<Change>,\n\tcurrentView: Snapshot\n): SharedTreeSummary_0_0_2<Change> {\n\tconst currentTree = currentView.getChangeNodeTree();\n\tconst rootId = currentTree.identifier;\n\tconst changes: Change[] = [];\n\t// Generate a set of changes to set the root node's children to that of the root in the currentTree\n\tObject.entries(currentTree.traits).forEach(([label, children]) => {\n\t\tchanges.push(...setTrait({ parent: rootId, label: label as TraitLabel }, children));\n\t});\n\tassert(currentTree.payload === undefined, 'setValue not yet supported.');\n\tassert(\n\t\tcurrentTree.identifier === initialTree.identifier && currentTree.definition === initialTree.definition,\n\t\t'root definition and identifier should be immutable.'\n\t);\n\tconst edit = newEdit(changes);\n\n\treturn {\n\t\tcurrentTree,\n\t\tsequencedEdits: [{ id: edit.id, changes: edit.changes }],\n\t\tversion: formatVersion,\n\t};\n}\n"]}
@@ -1,41 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { NodeId, DetachedSequenceId } from '../Identifiers';
6
- import { GenericTransaction, BuildNode, EditStatus } from '../generic';
7
- import { Snapshot, SnapshotNode } from '../Snapshot';
8
- import { Change } from './PersistedTypes';
9
- /**
10
- * A mutable transaction for applying sequences of changes to a Snapshot.
11
- * Allows viewing the intermediate states.
12
- *
13
- * Contains necessary state to apply changes within an edit to a Snapshot.
14
- *
15
- * May have any number of changes applied to make up the edit.
16
- * Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the
17
- * results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).
18
- *
19
- * No data outside the Transaction is modified by Transaction:
20
- * the results from `close` must be used to actually submit an `Edit`.
21
- */
22
- export declare class Transaction extends GenericTransaction<Change> {
23
- protected readonly detached: Map<DetachedSequenceId, readonly NodeId[]>;
24
- static factory(snapshot: Snapshot): Transaction;
25
- protected validateOnClose(): EditStatus;
26
- protected dispatchChange(change: Change): EditStatus;
27
- private applyBuild;
28
- private applyInsert;
29
- private applyDetach;
30
- private applyConstraint;
31
- private applySetValue;
32
- /**
33
- * Generates snapshot nodes from the supplied edit nodes.
34
- * Invokes onCreateNode for each new snapshot node, and halts creation early if it returns true.
35
- * Invokes onInvalidDetachedId and halts early for any invalid detached IDs referenced in the edit node sequence.
36
- * @returns all the top-level node IDs in `sequence` (both from nodes and from detached sequences).
37
- */
38
- protected createSnapshotNodesForTree(sequence: Iterable<BuildNode>, onCreateNode: (id: NodeId, node: SnapshotNode) => boolean, onInvalidDetachedId: () => void): NodeId[] | undefined;
39
- private getDetachedNodeIds;
40
- }
41
- //# sourceMappingURL=Transaction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/default-edits/Transaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAc,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAS,MAAM,EAAsE,MAAM,kBAAkB,CAAC;AAUrH;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,SAAQ,kBAAkB,CAAC,MAAM,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAa;WAEtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW;IAItD,SAAS,CAAC,eAAe,IAAI,UAAU;IAKvC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAiBpD,OAAO,CAAC,UAAU;IAyClB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;IASrB;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CACnC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,EACzD,mBAAmB,EAAE,MAAM,IAAI,GAC7B,MAAM,EAAE,GAAG,SAAS;IAuDvB,OAAO,CAAC,kBAAkB;CAc1B"}
@@ -1,221 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { assert, assertNotUndefined, copyPropertyIfDefined, fail } from '../Common';
6
- import { GenericTransaction, EditStatus } from '../generic';
7
- import { EditValidationResult } from '../Checkout';
8
- import { ChangeType, ConstraintEffect } from './PersistedTypes';
9
- import { detachRange, insertIntoTrait, rangeFromStableRange, validateStablePlace, validateStableRange, isDetachedSequenceId, } from './EditUtilities';
10
- /**
11
- * A mutable transaction for applying sequences of changes to a Snapshot.
12
- * Allows viewing the intermediate states.
13
- *
14
- * Contains necessary state to apply changes within an edit to a Snapshot.
15
- *
16
- * May have any number of changes applied to make up the edit.
17
- * Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the
18
- * results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).
19
- *
20
- * No data outside the Transaction is modified by Transaction:
21
- * the results from `close` must be used to actually submit an `Edit`.
22
- */
23
- export class Transaction extends GenericTransaction {
24
- constructor() {
25
- super(...arguments);
26
- this.detached = new Map();
27
- }
28
- static factory(snapshot) {
29
- return new Transaction(snapshot);
30
- }
31
- validateOnClose() {
32
- // Making the policy choice that storing a detached sequences in an edit but not using it is an error.
33
- return this.detached.size !== 0 ? EditStatus.Malformed : EditStatus.Applied;
34
- }
35
- dispatchChange(change) {
36
- switch (change.type) {
37
- case ChangeType.Build:
38
- return this.applyBuild(change);
39
- case ChangeType.Insert:
40
- return this.applyInsert(change);
41
- case ChangeType.Detach:
42
- return this.applyDetach(change);
43
- case ChangeType.Constraint:
44
- return this.applyConstraint(change);
45
- case ChangeType.SetValue:
46
- return this.applySetValue(change);
47
- default:
48
- return fail('Attempted to apply unsupported change');
49
- }
50
- }
51
- applyBuild(change) {
52
- if (this.detached.has(change.destination)) {
53
- return EditStatus.Malformed;
54
- }
55
- let idAlreadyPresent = false;
56
- let duplicateIdInBuild = false;
57
- const map = new Map();
58
- let detachedSequenceNotFound = false;
59
- const newIds = this.createSnapshotNodesForTree(change.source, (id, snapshotNode) => {
60
- if (map.has(id)) {
61
- duplicateIdInBuild = true;
62
- return true;
63
- }
64
- if (this.view.hasNode(id)) {
65
- idAlreadyPresent = true;
66
- return true;
67
- }
68
- map.set(id, snapshotNode);
69
- return false;
70
- }, () => {
71
- detachedSequenceNotFound = true;
72
- });
73
- if (detachedSequenceNotFound || duplicateIdInBuild) {
74
- return EditStatus.Malformed;
75
- }
76
- if (idAlreadyPresent) {
77
- return EditStatus.Invalid;
78
- }
79
- const view = this.view.addNodes(map.values());
80
- this._view = view;
81
- this.detached.set(change.destination, assertNotUndefined(newIds));
82
- return EditStatus.Applied;
83
- }
84
- applyInsert(change) {
85
- const source = this.detached.get(change.source);
86
- if (source === undefined) {
87
- return EditStatus.Malformed;
88
- }
89
- const destinationChangeResult = validateStablePlace(this.view, change.destination);
90
- if (destinationChangeResult !== EditValidationResult.Valid) {
91
- return destinationChangeResult === EditValidationResult.Invalid ? EditStatus.Invalid : EditStatus.Malformed;
92
- }
93
- this.detached.delete(change.source);
94
- this._view = insertIntoTrait(this.view, source, change.destination);
95
- return EditStatus.Applied;
96
- }
97
- applyDetach(change) {
98
- const sourceChangeResult = validateStableRange(this.view, change.source);
99
- if (sourceChangeResult !== EditValidationResult.Valid) {
100
- return sourceChangeResult === EditValidationResult.Invalid ? EditStatus.Invalid : EditStatus.Malformed;
101
- }
102
- const result = detachRange(this.view, change.source);
103
- let modifiedView = result.snapshot;
104
- const { detached } = result;
105
- // Store or dispose detached
106
- if (change.destination !== undefined) {
107
- if (this.detached.has(change.destination)) {
108
- return EditStatus.Malformed;
109
- }
110
- this.detached.set(change.destination, detached);
111
- }
112
- else {
113
- modifiedView = modifiedView.deleteNodes(detached);
114
- }
115
- this._view = modifiedView;
116
- return EditStatus.Applied;
117
- }
118
- applyConstraint(change) {
119
- // TODO: Implement identityHash and contentHash
120
- assert(change.identityHash === undefined, 'identityHash constraint is not implemented');
121
- assert(change.contentHash === undefined, 'contentHash constraint is not implemented');
122
- const sourceChangeResult = validateStableRange(this.view, change.toConstrain);
123
- const onViolation = change.effect === ConstraintEffect.ValidRetry ? EditStatus.Applied : EditStatus.Invalid;
124
- if (sourceChangeResult !== EditValidationResult.Valid) {
125
- return sourceChangeResult === EditValidationResult.Invalid ? onViolation : EditStatus.Malformed;
126
- }
127
- const { start, end } = rangeFromStableRange(this.view, change.toConstrain);
128
- const startIndex = this.view.findIndexWithinTrait(start);
129
- const endIndex = this.view.findIndexWithinTrait(end);
130
- if (change.length !== undefined && change.length !== endIndex - startIndex) {
131
- return onViolation;
132
- }
133
- if (change.parentNode !== undefined && change.parentNode !== end.trait.parent) {
134
- return onViolation;
135
- }
136
- if (change.label !== undefined && change.label !== end.trait.label) {
137
- return onViolation;
138
- }
139
- return EditStatus.Applied;
140
- }
141
- applySetValue(change) {
142
- if (!this.view.hasNode(change.nodeToModify)) {
143
- return EditStatus.Invalid;
144
- }
145
- this._view = this.view.setNodeValue(change.nodeToModify, change.payload);
146
- return EditStatus.Applied;
147
- }
148
- /**
149
- * Generates snapshot nodes from the supplied edit nodes.
150
- * Invokes onCreateNode for each new snapshot node, and halts creation early if it returns true.
151
- * Invokes onInvalidDetachedId and halts early for any invalid detached IDs referenced in the edit node sequence.
152
- * @returns all the top-level node IDs in `sequence` (both from nodes and from detached sequences).
153
- */
154
- createSnapshotNodesForTree(sequence, onCreateNode, onInvalidDetachedId) {
155
- const topLevelIds = [];
156
- const unprocessed = [];
157
- for (const buildNode of sequence) {
158
- if (isDetachedSequenceId(buildNode)) {
159
- const detachedIds = this.getDetachedNodeIds(buildNode, onInvalidDetachedId);
160
- if (detachedIds === undefined) {
161
- return undefined;
162
- }
163
- topLevelIds.push(...detachedIds);
164
- }
165
- else {
166
- unprocessed.push(buildNode);
167
- topLevelIds.push(buildNode.identifier);
168
- }
169
- }
170
- while (unprocessed.length > 0) {
171
- const node = unprocessed.pop();
172
- assert(node !== undefined && !isDetachedSequenceId(node));
173
- const traits = new Map();
174
- // eslint-disable-next-line no-restricted-syntax
175
- for (const key in node.traits) {
176
- if (Object.prototype.hasOwnProperty.call(node.traits, key)) {
177
- const children = node.traits[key];
178
- if (children.length > 0) {
179
- const childIds = [];
180
- for (const child of children) {
181
- if (isDetachedSequenceId(child)) {
182
- const detachedIds = this.getDetachedNodeIds(child, onInvalidDetachedId);
183
- if (detachedIds === undefined) {
184
- return undefined;
185
- }
186
- childIds.push(...detachedIds);
187
- }
188
- else {
189
- childIds.push(child.identifier);
190
- unprocessed.push(child);
191
- }
192
- }
193
- traits.set(key, childIds);
194
- }
195
- }
196
- }
197
- const newNode = {
198
- identifier: node.identifier,
199
- definition: node.definition,
200
- traits,
201
- };
202
- copyPropertyIfDefined(node, newNode, 'payload');
203
- if (onCreateNode(newNode.identifier, newNode)) {
204
- return undefined;
205
- }
206
- }
207
- return topLevelIds;
208
- }
209
- getDetachedNodeIds(detachedId, onInvalidDetachedId) {
210
- // Retrieve the detached sequence from the void.
211
- const detachedNodeIds = this.detached.get(detachedId);
212
- if (detachedNodeIds === undefined) {
213
- onInvalidDetachedId();
214
- return undefined;
215
- }
216
- // Since we have retrieved the sequence, remove it from the void to prevent a second tree from multi-parenting it later
217
- this.detached.delete(detachedId);
218
- return detachedNodeIds;
219
- }
220
- }
221
- //# sourceMappingURL=Transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/default-edits/Transaction.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, assertNotUndefined, copyPropertyIfDefined, fail } from '../Common';\nimport { NodeId, DetachedSequenceId, TraitLabel } from '../Identifiers';\nimport { GenericTransaction, BuildNode, EditStatus } from '../generic';\nimport { Snapshot, SnapshotNode } from '../Snapshot';\nimport { EditValidationResult } from '../Checkout';\nimport { Build, Change, ChangeType, Constraint, ConstraintEffect, Detach, Insert, SetValue } from './PersistedTypes';\nimport {\n\tdetachRange,\n\tinsertIntoTrait,\n\trangeFromStableRange,\n\tvalidateStablePlace,\n\tvalidateStableRange,\n\tisDetachedSequenceId,\n} from './EditUtilities';\n\n/**\n * A mutable transaction for applying sequences of changes to a Snapshot.\n * Allows viewing the intermediate states.\n *\n * Contains necessary state to apply changes within an edit to a Snapshot.\n *\n * May have any number of changes applied to make up the edit.\n * Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the\n * results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).\n *\n * No data outside the Transaction is modified by Transaction:\n * the results from `close` must be used to actually submit an `Edit`.\n */\nexport class Transaction extends GenericTransaction<Change> {\n\tprotected readonly detached: Map<DetachedSequenceId, readonly NodeId[]> = new Map();\n\n\tpublic static factory(snapshot: Snapshot): Transaction {\n\t\treturn new Transaction(snapshot);\n\t}\n\n\tprotected validateOnClose(): EditStatus {\n\t\t// Making the policy choice that storing a detached sequences in an edit but not using it is an error.\n\t\treturn this.detached.size !== 0 ? EditStatus.Malformed : EditStatus.Applied;\n\t}\n\n\tprotected dispatchChange(change: Change): EditStatus {\n\t\tswitch (change.type) {\n\t\t\tcase ChangeType.Build:\n\t\t\t\treturn this.applyBuild(change);\n\t\t\tcase ChangeType.Insert:\n\t\t\t\treturn this.applyInsert(change);\n\t\t\tcase ChangeType.Detach:\n\t\t\t\treturn this.applyDetach(change);\n\t\t\tcase ChangeType.Constraint:\n\t\t\t\treturn this.applyConstraint(change);\n\t\t\tcase ChangeType.SetValue:\n\t\t\t\treturn this.applySetValue(change);\n\t\t\tdefault:\n\t\t\t\treturn fail('Attempted to apply unsupported change');\n\t\t}\n\t}\n\n\tprivate applyBuild(change: Build): EditStatus {\n\t\tif (this.detached.has(change.destination)) {\n\t\t\treturn EditStatus.Malformed;\n\t\t}\n\n\t\tlet idAlreadyPresent = false;\n\t\tlet duplicateIdInBuild = false;\n\t\tconst map = new Map<NodeId, SnapshotNode>();\n\t\tlet detachedSequenceNotFound = false;\n\t\tconst newIds = this.createSnapshotNodesForTree(\n\t\t\tchange.source,\n\t\t\t(id, snapshotNode) => {\n\t\t\t\tif (map.has(id)) {\n\t\t\t\t\tduplicateIdInBuild = true;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (this.view.hasNode(id)) {\n\t\t\t\t\tidAlreadyPresent = true;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tmap.set(id, snapshotNode);\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tdetachedSequenceNotFound = true;\n\t\t\t}\n\t\t);\n\n\t\tif (detachedSequenceNotFound || duplicateIdInBuild) {\n\t\t\treturn EditStatus.Malformed;\n\t\t}\n\t\tif (idAlreadyPresent) {\n\t\t\treturn EditStatus.Invalid;\n\t\t}\n\n\t\tconst view = this.view.addNodes(map.values());\n\t\tthis._view = view;\n\t\tthis.detached.set(change.destination, assertNotUndefined(newIds));\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applyInsert(change: Insert): EditStatus {\n\t\tconst source = this.detached.get(change.source);\n\t\tif (source === undefined) {\n\t\t\treturn EditStatus.Malformed;\n\t\t}\n\n\t\tconst destinationChangeResult = validateStablePlace(this.view, change.destination);\n\t\tif (destinationChangeResult !== EditValidationResult.Valid) {\n\t\t\treturn destinationChangeResult === EditValidationResult.Invalid ? EditStatus.Invalid : EditStatus.Malformed;\n\t\t}\n\n\t\tthis.detached.delete(change.source);\n\t\tthis._view = insertIntoTrait(this.view, source, change.destination);\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applyDetach(change: Detach): EditStatus {\n\t\tconst sourceChangeResult = validateStableRange(this.view, change.source);\n\t\tif (sourceChangeResult !== EditValidationResult.Valid) {\n\t\t\treturn sourceChangeResult === EditValidationResult.Invalid ? EditStatus.Invalid : EditStatus.Malformed;\n\t\t}\n\n\t\tconst result = detachRange(this.view, change.source);\n\t\tlet modifiedView = result.snapshot;\n\t\tconst { detached } = result;\n\n\t\t// Store or dispose detached\n\t\tif (change.destination !== undefined) {\n\t\t\tif (this.detached.has(change.destination)) {\n\t\t\t\treturn EditStatus.Malformed;\n\t\t\t}\n\t\t\tthis.detached.set(change.destination, detached);\n\t\t} else {\n\t\t\tmodifiedView = modifiedView.deleteNodes(detached);\n\t\t}\n\n\t\tthis._view = modifiedView;\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applyConstraint(change: Constraint): EditStatus {\n\t\t// TODO: Implement identityHash and contentHash\n\t\tassert(change.identityHash === undefined, 'identityHash constraint is not implemented');\n\t\tassert(change.contentHash === undefined, 'contentHash constraint is not implemented');\n\n\t\tconst sourceChangeResult = validateStableRange(this.view, change.toConstrain);\n\t\tconst onViolation = change.effect === ConstraintEffect.ValidRetry ? EditStatus.Applied : EditStatus.Invalid;\n\t\tif (sourceChangeResult !== EditValidationResult.Valid) {\n\t\t\treturn sourceChangeResult === EditValidationResult.Invalid ? onViolation : EditStatus.Malformed;\n\t\t}\n\n\t\tconst { start, end } = rangeFromStableRange(this.view, change.toConstrain);\n\t\tconst startIndex = this.view.findIndexWithinTrait(start);\n\t\tconst endIndex = this.view.findIndexWithinTrait(end);\n\n\t\tif (change.length !== undefined && change.length !== endIndex - startIndex) {\n\t\t\treturn onViolation;\n\t\t}\n\n\t\tif (change.parentNode !== undefined && change.parentNode !== end.trait.parent) {\n\t\t\treturn onViolation;\n\t\t}\n\n\t\tif (change.label !== undefined && change.label !== end.trait.label) {\n\t\t\treturn onViolation;\n\t\t}\n\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applySetValue(change: SetValue): EditStatus {\n\t\tif (!this.view.hasNode(change.nodeToModify)) {\n\t\t\treturn EditStatus.Invalid;\n\t\t}\n\n\t\tthis._view = this.view.setNodeValue(change.nodeToModify, change.payload);\n\t\treturn EditStatus.Applied;\n\t}\n\n\t/**\n\t * Generates snapshot nodes from the supplied edit nodes.\n\t * Invokes onCreateNode for each new snapshot node, and halts creation early if it returns true.\n\t * Invokes onInvalidDetachedId and halts early for any invalid detached IDs referenced in the edit node sequence.\n\t * @returns all the top-level node IDs in `sequence` (both from nodes and from detached sequences).\n\t */\n\tprotected createSnapshotNodesForTree(\n\t\tsequence: Iterable<BuildNode>,\n\t\tonCreateNode: (id: NodeId, node: SnapshotNode) => boolean,\n\t\tonInvalidDetachedId: () => void\n\t): NodeId[] | undefined {\n\t\tconst topLevelIds: NodeId[] = [];\n\t\tconst unprocessed: BuildNode[] = [];\n\t\tfor (const buildNode of sequence) {\n\t\t\tif (isDetachedSequenceId(buildNode)) {\n\t\t\t\tconst detachedIds = this.getDetachedNodeIds(buildNode, onInvalidDetachedId);\n\t\t\t\tif (detachedIds === undefined) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\ttopLevelIds.push(...detachedIds);\n\t\t\t} else {\n\t\t\t\tunprocessed.push(buildNode);\n\t\t\t\ttopLevelIds.push(buildNode.identifier);\n\t\t\t}\n\t\t}\n\t\twhile (unprocessed.length > 0) {\n\t\t\tconst node = unprocessed.pop();\n\t\t\tassert(node !== undefined && !isDetachedSequenceId(node));\n\t\t\tconst traits = new Map<TraitLabel, readonly NodeId[]>();\n\n\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\tfor (const key in node.traits) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(node.traits, key)) {\n\t\t\t\t\tconst children = node.traits[key];\n\t\t\t\t\tif (children.length > 0) {\n\t\t\t\t\t\tconst childIds: NodeId[] = [];\n\t\t\t\t\t\tfor (const child of children) {\n\t\t\t\t\t\t\tif (isDetachedSequenceId(child)) {\n\t\t\t\t\t\t\t\tconst detachedIds = this.getDetachedNodeIds(child, onInvalidDetachedId);\n\t\t\t\t\t\t\t\tif (detachedIds === undefined) {\n\t\t\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchildIds.push(...detachedIds);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tchildIds.push(child.identifier);\n\t\t\t\t\t\t\t\tunprocessed.push(child);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttraits.set(key as TraitLabel, childIds);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst newNode: SnapshotNode = {\n\t\t\t\tidentifier: node.identifier,\n\t\t\t\tdefinition: node.definition,\n\t\t\t\ttraits,\n\t\t\t};\n\t\t\tcopyPropertyIfDefined(node, newNode, 'payload');\n\t\t\tif (onCreateNode(newNode.identifier, newNode)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t\treturn topLevelIds;\n\t}\n\n\tprivate getDetachedNodeIds(\n\t\tdetachedId: DetachedSequenceId,\n\t\tonInvalidDetachedId: () => void\n\t): readonly NodeId[] | undefined {\n\t\t// Retrieve the detached sequence from the void.\n\t\tconst detachedNodeIds = this.detached.get(detachedId);\n\t\tif (detachedNodeIds === undefined) {\n\t\t\tonInvalidDetachedId();\n\t\t\treturn undefined;\n\t\t}\n\t\t// Since we have retrieved the sequence, remove it from the void to prevent a second tree from multi-parenting it later\n\t\tthis.detached.delete(detachedId);\n\t\treturn detachedNodeIds;\n\t}\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UndoRedoHandler.d.ts","sourceRoot":"","sources":["../../src/default-edits/UndoRedoHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,MAAM,WAAW,WAAW;IAC3B,MAAM,QAAG;IACT,OAAO,QAAG;CACV;AAED,MAAM,WAAW,aAAa;IAC7B,sBAAsB,CAAC,UAAU,EAAE,WAAW,OAAE;CAChD;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,aAAa;IAEjD,UAAU,CAAC,IAAI,EAAE,UAAU;IAG3B,UAAU,CAAC,IAAI,EAAE,UAAU;IAIlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAc/B;CACF;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,WAAW;IAC3C,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAArC,MAAM,EAAE,MAAM,EAAmB,IAAI,EAAE,UAAU;IAE9D,MAAM;IASN,OAAO;CAGd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UndoRedoHandler.js","sourceRoot":"","sources":["../../src/default-edits/UndoRedoHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAA+B,eAAe,EAAE,MAAM,YAAY,CAAC;AAe1E;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IACrC,YAA6B,YAA2B;QAA3B,iBAAY,GAAZ,YAAY,CAAe;QASvC,qBAAgB,GAAG,CAAC,cAAuD,EAAE,EAAE;YAC/F,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;YAE/C,IAAI,KAAK,EAAE;gBACV,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACvC,IAAI,oBAAoB,CACvB,MAAM,EACN,kBAAkB,CACjB,IAAI,EACJ,sGAAsG,CACtG,CACD,CACD,CAAC;aACF;QACF,CAAC,CAAC;IAvByD,CAAC;IAErD,UAAU,CAAC,IAAgB;QACjC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IACM,UAAU,CAAC,IAAgB;QACjC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChE,CAAC;CAiBD;AAED;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAChC,YAAoB,MAAc,EAAmB,IAAgB;QAAjD,WAAM,GAAN,MAAM,CAAQ;QAAmB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAElE,MAAM;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAE3E,+DAA+D;QAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAEM,OAAO;QACb,OAAO;IACR,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assertNotUndefined } from '../Common';\nimport { EditId } from '../Identifiers';\nimport { EditCommittedEventArguments, SharedTreeEvent } from '../generic';\nimport { SharedTree } from './SharedTree';\n\n// TODO: We temporarily duplicate these contracts from 'framework/undo-redo' to unblock development\n// while we decide on the correct layering for undo.\n\nexport interface IRevertible {\n\trevert();\n\tdiscard();\n}\n\nexport interface IUndoConsumer {\n\tpushToCurrentOperation(revertible: IRevertible);\n}\n\n/**\n * A shared tree undo redo handler that will add revertible local tree changes to the provided\n * undo redo stack manager\n */\nexport class SharedTreeUndoRedoHandler {\n\tconstructor(private readonly stackManager: IUndoConsumer) {}\n\n\tpublic attachTree(tree: SharedTree) {\n\t\ttree.on(SharedTreeEvent.EditCommitted, this.treeDeltaHandler);\n\t}\n\tpublic detachTree(tree: SharedTree) {\n\t\ttree.off(SharedTreeEvent.EditCommitted, this.treeDeltaHandler);\n\t}\n\n\tprivate readonly treeDeltaHandler = (eventArguments: EditCommittedEventArguments<SharedTree>) => {\n\t\tconst { editId, local, tree } = eventArguments;\n\n\t\tif (local) {\n\t\t\tthis.stackManager.pushToCurrentOperation(\n\t\t\t\tnew SharedTreeRevertible(\n\t\t\t\t\teditId,\n\t\t\t\t\tassertNotUndefined(\n\t\t\t\t\t\ttree,\n\t\t\t\t\t\t'An edit committed event for a revertible edit should include the target SharedTree in its arguments.'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t};\n}\n\n/**\n * Tracks a change on a shared tree and allows reverting it\n */\nexport class SharedTreeRevertible implements IRevertible {\n\tconstructor(private editId: EditId, private readonly tree: SharedTree) {}\n\n\tpublic revert() {\n\t\tconst editIndex = this.tree.edits.getIndexOfId(this.editId);\n\t\tconst edit = this.tree.edits.getEditInSessionAtIndex(editIndex);\n\t\tconst snapshotBefore = this.tree.logViewer.getSnapshotInSession(editIndex);\n\n\t\t// Apply the revert edit and set it as the new revertible edit.\n\t\tthis.editId = this.tree.editor.revert(edit, snapshotBefore);\n\t}\n\n\tpublic discard() {\n\t\treturn;\n\t}\n}\n"]}
@@ -1,13 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- export { SharedTree, SharedTreeEditor } from './SharedTree';
6
- export { ChangeType, Change, Build, Insert, Detach, SetValue, Constraint, ConstraintEffect, Delete, Move, StablePlace, StableRange, getNodeId, } from './PersistedTypes';
7
- export * from './Factory';
8
- export * from './HistoryEditFactory';
9
- export * from './EditUtilities';
10
- export { Transaction } from './Transaction';
11
- export { noHistorySummarizer } from './Summary';
12
- export { SharedTreeUndoRedoHandler } from './UndoRedoHandler';
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default-edits/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,WAAW,EACX,WAAW,EACX,SAAS,GACT,MAAM,kBAAkB,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,14 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- // API Exports
6
- export { SharedTree, SharedTreeEditor } from './SharedTree';
7
- export { ChangeType, Change, Insert, ConstraintEffect, Delete, Move, StablePlace, StableRange, getNodeId, } from './PersistedTypes';
8
- export * from './Factory';
9
- export * from './HistoryEditFactory';
10
- export * from './EditUtilities';
11
- export { Transaction } from './Transaction';
12
- export { noHistorySummarizer } from './Summary';
13
- export { SharedTreeUndoRedoHandler } from './UndoRedoHandler';
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default-edits/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc;AAEd,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACN,UAAU,EACV,MAAM,EAEN,MAAM,EAIN,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,WAAW,EACX,WAAW,EACX,SAAS,GACT,MAAM,kBAAkB,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// API Exports\n\nexport { SharedTree, SharedTreeEditor } from './SharedTree';\nexport {\n\tChangeType,\n\tChange,\n\tBuild,\n\tInsert,\n\tDetach,\n\tSetValue,\n\tConstraint,\n\tConstraintEffect,\n\tDelete,\n\tMove,\n\tStablePlace,\n\tStableRange,\n\tgetNodeId,\n} from './PersistedTypes';\nexport * from './Factory';\nexport * from './HistoryEditFactory';\nexport * from './EditUtilities';\nexport { Transaction } from './Transaction';\nexport { noHistorySummarizer } from './Summary';\nexport { SharedTreeUndoRedoHandler } from './UndoRedoHandler';\n"]}
@@ -1,26 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { EditId } from '../Identifiers';
6
- import { Edit, TraitLocation } from './PersistedTypes';
7
- /**
8
- * Functions for constructing and comparing Edits.
9
- */
10
- /**
11
- * Returns true if the provided Edits have equivalent properties.
12
- */
13
- export declare function compareEdits(editIdA: EditId, editIdB: EditId): boolean;
14
- /**
15
- * Check if two TraitLocations are equal.
16
- */
17
- export declare function compareTraits(traitA: TraitLocation, traitB: TraitLocation): boolean;
18
- /**
19
- * Generates a new edit object from the supplied changes.
20
- */
21
- export declare function newEdit<TEdit>(changes: readonly TEdit[]): Edit<TEdit>;
22
- /**
23
- * Generates a new edit object from the supplied changes.
24
- */
25
- export declare function newEditId(): EditId;
26
- //# sourceMappingURL=GenericEditUtilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GenericEditUtilities.d.ts","sourceRoot":"","sources":["../../src/generic/GenericEditUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAItE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAMnF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAErE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
@@ -1,38 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { v4 as uuidv4 } from 'uuid';
6
- /**
7
- * Functions for constructing and comparing Edits.
8
- */
9
- /**
10
- * Returns true if the provided Edits have equivalent properties.
11
- */
12
- export function compareEdits(editIdA, editIdB) {
13
- // TODO #45414: We should also be deep comparing the list of changes in the edit. This is not straightforward.
14
- // We can use our edit validation code when we write it since it will need to do deep walks of the changes.
15
- return editIdA === editIdB;
16
- }
17
- /**
18
- * Check if two TraitLocations are equal.
19
- */
20
- export function compareTraits(traitA, traitB) {
21
- if (traitA.label !== traitB.label || traitA.parent !== traitB.parent) {
22
- return false;
23
- }
24
- return true;
25
- }
26
- /**
27
- * Generates a new edit object from the supplied changes.
28
- */
29
- export function newEdit(changes) {
30
- return { id: newEditId(), changes };
31
- }
32
- /**
33
- * Generates a new edit object from the supplied changes.
34
- */
35
- export function newEditId() {
36
- return uuidv4();
37
- }
38
- //# sourceMappingURL=GenericEditUtilities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GenericEditUtilities.js","sourceRoot":"","sources":["../../src/generic/GenericEditUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAIpC;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAAe;IAC5D,8GAA8G;IAC9G,2GAA2G;IAC3G,OAAO,OAAO,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,MAAqB;IACzE,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;QACrE,OAAO,KAAK,CAAC;KACb;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAQ,OAAyB;IACvD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACxB,OAAO,MAAM,EAAY,CAAC;AAC3B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { EditId } from '../Identifiers';\nimport { Edit, TraitLocation } from './PersistedTypes';\n\n/**\n * Functions for constructing and comparing Edits.\n */\n\n/**\n * Returns true if the provided Edits have equivalent properties.\n */\nexport function compareEdits(editIdA: EditId, editIdB: EditId): boolean {\n\t// TODO #45414: We should also be deep comparing the list of changes in the edit. This is not straightforward.\n\t// We can use our edit validation code when we write it since it will need to do deep walks of the changes.\n\treturn editIdA === editIdB;\n}\n\n/**\n * Check if two TraitLocations are equal.\n */\nexport function compareTraits(traitA: TraitLocation, traitB: TraitLocation): boolean {\n\tif (traitA.label !== traitB.label || traitA.parent !== traitB.parent) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Generates a new edit object from the supplied changes.\n */\nexport function newEdit<TEdit>(changes: readonly TEdit[]): Edit<TEdit> {\n\treturn { id: newEditId(), changes };\n}\n\n/**\n * Generates a new edit object from the supplied changes.\n */\nexport function newEditId(): EditId {\n\treturn uuidv4() as EditId;\n}\n"]}