@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,128 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { Side } from '../Snapshot';
6
- import { Change, Insert, Move, StableRange, getNodeId, } from '../default-edits';
7
- // Note: Documentation of this constant is merged with documentation of the `AnchoredChange` interface.
8
- /**
9
- * @public
10
- */
11
- export const AnchoredChange = {
12
- build: Change.build,
13
- insert: Change.insert,
14
- detach: Change.detach,
15
- setPayload: Change.setPayload,
16
- clearPayload: Change.clearPayload,
17
- constraint: Change.constraint,
18
- };
19
- /**
20
- * Helper for creating a `Delete` edit.
21
- * @public
22
- */
23
- export const AnchoredDelete = {
24
- /**
25
- * @returns an AnchoredChange that deletes the supplied part of the tree.
26
- */
27
- create: (rangeAnchor) => AnchoredChange.detach(rangeAnchor),
28
- };
29
- /**
30
- * Helper for creating an `Insert` edit.
31
- * @public
32
- */
33
- export const AnchoredInsert = {
34
- /**
35
- * @returns an AnchoredChange that inserts 'nodes' into the specified location in the tree.
36
- */
37
- create: Insert.create,
38
- };
39
- /**
40
- * Helper for creating a `Move` edit.
41
- * @public
42
- */
43
- export const AnchoredMove = {
44
- /**
45
- * @returns an AnchoredChange that moves the specified content to a new location in the tree.
46
- */
47
- create: Move.create,
48
- };
49
- /**
50
- * Indicates one of the predefined alternatives for the semantics of a place in a tree.
51
- */
52
- export var PlaceAnchorSemanticsChoice;
53
- (function (PlaceAnchorSemanticsChoice) {
54
- /**
55
- * The resulting `PlaceAnchor` is valid iff the referenced sibling or parent node with the given ID exists in the snapshot on which the
56
- * change is applied.
57
- */
58
- PlaceAnchorSemanticsChoice[PlaceAnchorSemanticsChoice["BoundToNode"] = 0] = "BoundToNode";
59
- /**
60
- * The resulting `PlaceAnchor` is interpreted as relative to the siblings in the trait (or the parent in the case of start and end).
61
- * If the sibling referenced in the `PlaceAnchor` is moved, the anchor moves with it.
62
- * If the sibling referenced in the `PlaceAnchor` is deleted, the anchor is interpreted as relative to the next remaining sibling.
63
- * If no siblings remain on the side of interest (before the referenced sibling for "After" places and after the referenced sibling
64
- * for "Before" places) then the anchor is interpreted relative to the containing parent/trait (the start of the trait for "After"
65
- * places and the end of the trait for "Before" places).
66
- * If no siblings and no parent remains, the anchor is invalid.
67
- */
68
- PlaceAnchorSemanticsChoice[PlaceAnchorSemanticsChoice["RelativeToNode"] = 1] = "RelativeToNode";
69
- // Future work:
70
- // RelativeToRank = 2,
71
- })(PlaceAnchorSemanticsChoice || (PlaceAnchorSemanticsChoice = {}));
72
- /**
73
- * The remainder of this file consists of ergonomic factory methods for persisted types, or common combinations thereof (e.g. "Move" as a
74
- * combination of a "Detach" change and an "Insert" change).
75
- *
76
- * None of these helpers are persisted in documents, and therefore changes to their semantics need only follow standard semantic versioning
77
- * practices.
78
- */
79
- // Note: Documentation of this constant is merged with documentation of the `PlaceAnchor` interface.
80
- /**
81
- * @public
82
- */
83
- export const PlaceAnchor = {
84
- /**
85
- * @returns The location directly before `node`.
86
- */
87
- before: (node, semantics = PlaceAnchorSemanticsChoice.RelativeToNode) => ({
88
- side: Side.Before,
89
- referenceSibling: getNodeId(node),
90
- semantics,
91
- }),
92
- /**
93
- * @returns The location directly after `node`.
94
- */
95
- after: (node, semantics = PlaceAnchorSemanticsChoice.RelativeToNode) => ({ side: Side.After, referenceSibling: getNodeId(node), semantics }),
96
- /**
97
- * @returns The location at the start of `trait`.
98
- */
99
- atStartOf: (trait, semantics = PlaceAnchorSemanticsChoice.RelativeToNode) => ({ side: Side.After, referenceTrait: trait, semantics }),
100
- /**
101
- * @returns The location at the end of `trait`.
102
- */
103
- atEndOf: (trait, semantics = PlaceAnchorSemanticsChoice.RelativeToNode) => ({ side: Side.Before, referenceTrait: trait, semantics }),
104
- };
105
- // Note: Documentation of this constant is merged with documentation of the `RangeAnchor` interface.
106
- /**
107
- * @public
108
- */
109
- export const RangeAnchor = {
110
- /**
111
- * Factory for producing a `RangeAnchor` from a start `StablePlace` to an end `StablePlace`.
112
- * @example
113
- * RangeAnchor.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))
114
- */
115
- from: StableRange.from,
116
- /**
117
- * @returns a `RangeAnchor` which contains only the provided `node`.
118
- * Both the start and end `PlaceAnchor` objects used to anchor this `RangeAnchor` are in terms of the passed in node.
119
- */
120
- only: (node, semantics = PlaceAnchorSemanticsChoice.RelativeToNode) => ({ start: PlaceAnchor.before(node, semantics), end: PlaceAnchor.after(node, semantics) }),
121
- /**
122
- * @returns a `RangeAnchor` which contains everything in the trait.
123
- * This is anchored using the provided `trait`, and is independent of the actual contents of the trait:
124
- * it does not use sibling anchoring.
125
- */
126
- all: StableRange.all,
127
- };
128
- //# sourceMappingURL=PersistedTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PersistedTypes.js","sourceRoot":"","sources":["../../src/anchored-edits/PersistedTypes.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\n// All types imported into this file inherit the requirements documented below.\n// These imports are ok because they consist only of type aliases for primitive types,\n// and thus have no impact on serialization as long as the primitive type they are an alias for does not change.\n// This does mean that the various UuidString types must remain strings, and must never change the format unless the process for changing\n// persisted types (as documented below) is followed.\nimport { DetachedSequenceId, NodeId, TraitLabel, UuidString } from '../Identifiers';\nimport { Side } from '../Snapshot';\nimport { EditBase, BuildNode, NodeData, Payload, TraitLocation, TreeNodeSequence } from '../generic';\nimport {\n\tBuild,\n\tChange,\n\tConstraintEffect,\n\tDetach,\n\tInsert,\n\tMove,\n\tSetValue,\n\tStablePlace,\n\tStableRange,\n\tConstraint,\n\tgetNodeId,\n} from '../default-edits';\n\n/**\n * Types for Edits in Fluid Ops and Fluid summaries.\n *\n * Types describing locations in the tree are stable in the presence of other concurrent edits.\n *\n * All types are compatible with Fluid Serializable.\n *\n * These types can only be modified in ways that are both backwards and forwards compatible since they\n * are used in edits, and thus are persisted (using Fluid serialization).\n *\n * This means these types cannot be changed in any way that impacts their Fluid serialization\n * except through a very careful process:\n *\n * 1. The planned change must support all old data, and maintain the exact semantics of it.\n * This means that the change is pretty much limited to adding optional fields,\n * or making required fields optional.\n * 2. Support for the new format must be deployed to all users (This means all applications using SharedTree must do this),\n * and this deployment must be confirmed to be stable and will not be rolled back.\n * 3. Usage of the new format may start.\n *\n * Support for the old format can NEVER be removed: it must be maintained indefinably or old documents will break.\n * Because this process puts requirements on applications using shared tree,\n * step 3 should only ever be done in a Major version update,\n * and must be explicitly called out in the release notes\n * stating which versions of SharedTree are supported for documents modified by the new version.\n */\n\n/**\n * The information included in an anchored edit.\n * @public\n */\nexport type AnchoredEditBase = EditBase<AnchoredChange>;\n\n/**\n * A change that composes an Edit.\n *\n * `Change` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n * @example\n * Change.insert(sourceId, destination)\n * @public\n */\nexport type AnchoredChange = AnchoredInsert | AnchoredDetach | Build | AnchoredSetValue | AnchoredConstraint;\n\n/**\n * Inserts a sequence of nodes at the specified destination.\n * The source can be constructed either by a Build (used to insert new nodes) or a Detach (amounts to a \"move\" operation).\n * @public\n */\nexport interface AnchoredInsert extends Insert {\n\treadonly destination: PlaceAnchor;\n}\n\n/**\n * Removes a sequence of nodes from the tree.\n * If a destination is specified, the detached sequence is associated with that ID and held for possible reuse\n * by later changes in this same Edit (such as by an Insert).\n * A Detach without a destination is a deletion of the specified sequence, as is a Detach with a destination that is not used later.\n * @public\n */\nexport interface AnchoredDetach extends Detach {\n\treadonly source: RangeAnchor;\n}\n\n/**\n * Modifies the payload of a node.\n * @public\n */\nexport interface AnchoredSetValue extends SetValue {\n\treadonly nodeToModify: NodeAnchor;\n}\n\n/**\n * A set of constraints on the validity of an Edit.\n * A Constraint is used to detect when an Edit, due to other concurrent edits, may have unintended effects or merge in\n * non-semantic ways. It is processed in order like any other Change in an Edit. It can cause an edit to fail if the\n * various constraints are not met at the time of evaluation (ex: the parentNode has changed due to concurrent editing).\n * Does not modify the document.\n * @public\n */\nexport interface AnchoredConstraint extends Constraint {\n\t/**\n\t * Selects a sequence of nodes which will be checked against the constraints specified by the optional fields.\n\t * If `toConstrain` is invalid, it will be treated like a constraint being unmet.\n\t * Depending on `effect` this may or may not make the Edit invalid.\n\t *\n\t * When a constraint is not met, the effects is specified by `effect`.\n\t */\n\treadonly toConstrain: RangeAnchor;\n}\n\n// Note: Documentation of this constant is merged with documentation of the `AnchoredChange` interface.\n/**\n * @public\n */\nexport const AnchoredChange = {\n\tbuild: Change.build,\n\tinsert: Change.insert as (source: DetachedSequenceId, destination: PlaceAnchor) => AnchoredInsert,\n\tdetach: Change.detach as (source: RangeAnchor, destination?: DetachedSequenceId) => AnchoredDetach,\n\tsetPayload: Change.setPayload as (nodeToModify: NodeAnchor, payload: Payload) => AnchoredSetValue,\n\tclearPayload: Change.clearPayload as (nodeToModify: NodeAnchor) => AnchoredSetValue,\n\tconstraint: Change.constraint as (\n\t\ttoConstrain: RangeAnchor,\n\t\teffect: ConstraintEffect,\n\t\tidentityHash?: UuidString,\n\t\tlength?: number,\n\t\tcontentHash?: UuidString,\n\t\tparentNode?: NodeId,\n\t\tlabel?: TraitLabel\n\t) => AnchoredConstraint,\n};\n\n/**\n * Helper for creating a `Delete` edit.\n * @public\n */\nexport const AnchoredDelete = {\n\t/**\n\t * @returns an AnchoredChange that deletes the supplied part of the tree.\n\t */\n\tcreate: (rangeAnchor: RangeAnchor): AnchoredChange => AnchoredChange.detach(rangeAnchor),\n};\n\n/**\n * Helper for creating an `Insert` edit.\n * @public\n */\nexport const AnchoredInsert = {\n\t/**\n\t * @returns an AnchoredChange that inserts 'nodes' into the specified location in the tree.\n\t */\n\tcreate: Insert.create as (nodes: TreeNodeSequence<BuildNode>, destination: PlaceAnchor) => AnchoredChange[],\n};\n\n/**\n * Helper for creating a `Move` edit.\n * @public\n */\nexport const AnchoredMove = {\n\t/**\n\t * @returns an AnchoredChange that moves the specified content to a new location in the tree.\n\t */\n\tcreate: Move.create as (source: RangeAnchor, destination: PlaceAnchor) => AnchoredChange[],\n};\n\n/**\n * Indicates one of the predefined alternatives for the semantics of a place in a tree.\n */\nexport enum PlaceAnchorSemanticsChoice {\n\t/**\n\t * The resulting `PlaceAnchor` is valid iff the referenced sibling or parent node with the given ID exists in the snapshot on which the\n\t * change is applied.\n\t */\n\tBoundToNode = 0,\n\t/**\n\t * The resulting `PlaceAnchor` is interpreted as relative to the siblings in the trait (or the parent in the case of start and end).\n\t * If the sibling referenced in the `PlaceAnchor` is moved, the anchor moves with it.\n\t * If the sibling referenced in the `PlaceAnchor` is deleted, the anchor is interpreted as relative to the next remaining sibling.\n\t * If no siblings remain on the side of interest (before the referenced sibling for \"After\" places and after the referenced sibling\n\t * for \"Before\" places) then the anchor is interpreted relative to the containing parent/trait (the start of the trait for \"After\"\n\t * places and the end of the trait for \"Before\" places).\n\t * If no siblings and no parent remains, the anchor is invalid.\n\t */\n\tRelativeToNode = 1,\n\t// Future work:\n\t// RelativeToRank = 2,\n}\n\n/**\n * A location in a trait with associated merge semantics.\n * See also `StablePlace`.\n * `PlaceAnchor`. objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n * @example\n * PlaceAnchor.before(node)\n * PlaceAnchor.atStartOf(trait)\n * @public\n */\nexport interface PlaceAnchor extends StablePlace {\n\t/**\n\t * The choice of semantics for the place.\n\t * No value is equivalent to PlaceAnchorSemanticsChoice.BoundToNode.\n\t */\n\treadonly semantics?: PlaceAnchorSemanticsChoice;\n}\n\nexport type RelativePlaceAnchor = PlaceAnchor & { semantic: PlaceAnchorSemanticsChoice.RelativeToNode };\n\n/**\n * Specifies the range of nodes from `start` to `end` within a trait.\n * See also `StableRange`.\n * Valid iff start and end are valid and are within the same trait and the start does not occur after the end in the trait.\n *\n * `RangeAnchor`s are currently resolved by resolving their constituent places and checking the validity of the resulting range.\n * This may lead to the range becoming invalid (i.e., cannot be resolved) despite there being reasonable ways to salvage it.\n * For example the range [After(B), Before(D)] in the trait [A, B, C, D] would be made invalid by a change that moves B after D.\n * A reasonable resolution would be to resolve the range to [After(A), Before(D)]. The current implementation will instead treat\n * the range as invalid.\n * Future improvements may offer more a resilient resolution strategy for ranges.\n *\n * `RangeAnchor` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n * @example\n * RangeAnchor.from(PlaceAnchor.before(startNode)).to(PlaceAnchor.after(endNode))\n * @public\n */\nexport interface RangeAnchor extends StableRange {\n\treadonly start: PlaceAnchor;\n\treadonly end: PlaceAnchor;\n}\n\nexport type NodeAnchor = NodeId;\n\n/**\n * The remainder of this file consists of ergonomic factory methods for persisted types, or common combinations thereof (e.g. \"Move\" as a\n * combination of a \"Detach\" change and an \"Insert\" change).\n *\n * None of these helpers are persisted in documents, and therefore changes to their semantics need only follow standard semantic versioning\n * practices.\n */\n\n// Note: Documentation of this constant is merged with documentation of the `PlaceAnchor` interface.\n/**\n * @public\n */\nexport const PlaceAnchor = {\n\t/**\n\t * @returns The location directly before `node`.\n\t */\n\tbefore: (\n\t\tnode: NodeData | NodeId,\n\t\tsemantics: PlaceAnchorSemanticsChoice = PlaceAnchorSemanticsChoice.RelativeToNode\n\t): PlaceAnchor => ({\n\t\tside: Side.Before,\n\t\treferenceSibling: getNodeId(node),\n\t\tsemantics,\n\t}),\n\t/**\n\t * @returns The location directly after `node`.\n\t */\n\tafter: (\n\t\tnode: NodeData | NodeId,\n\t\tsemantics: PlaceAnchorSemanticsChoice = PlaceAnchorSemanticsChoice.RelativeToNode\n\t): PlaceAnchor => ({ side: Side.After, referenceSibling: getNodeId(node), semantics }),\n\t/**\n\t * @returns The location at the start of `trait`.\n\t */\n\tatStartOf: (\n\t\ttrait: TraitLocation,\n\t\tsemantics: PlaceAnchorSemanticsChoice = PlaceAnchorSemanticsChoice.RelativeToNode\n\t): PlaceAnchor => ({ side: Side.After, referenceTrait: trait, semantics }),\n\t/**\n\t * @returns The location at the end of `trait`.\n\t */\n\tatEndOf: (\n\t\ttrait: TraitLocation,\n\t\tsemantics: PlaceAnchorSemanticsChoice = PlaceAnchorSemanticsChoice.RelativeToNode\n\t): PlaceAnchor => ({ side: Side.Before, referenceTrait: trait, semantics }),\n};\n\n// Note: Documentation of this constant is merged with documentation of the `RangeAnchor` interface.\n/**\n * @public\n */\nexport const RangeAnchor = {\n\t/**\n\t * Factory for producing a `RangeAnchor` from a start `StablePlace` to an end `StablePlace`.\n\t * @example\n\t * RangeAnchor.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))\n\t */\n\tfrom: StableRange.from as (start: PlaceAnchor) => { to: (end: PlaceAnchor) => RangeAnchor },\n\t/**\n\t * @returns a `RangeAnchor` which contains only the provided `node`.\n\t * Both the start and end `PlaceAnchor` objects used to anchor this `RangeAnchor` are in terms of the passed in node.\n\t */\n\tonly: (\n\t\tnode: NodeData | NodeAnchor,\n\t\tsemantics: PlaceAnchorSemanticsChoice = PlaceAnchorSemanticsChoice.RelativeToNode\n\t): RangeAnchor => ({ start: PlaceAnchor.before(node, semantics), end: PlaceAnchor.after(node, semantics) }),\n\t/**\n\t * @returns a `RangeAnchor` which contains everything in the trait.\n\t * This is anchored using the provided `trait`, and is independent of the actual contents of the trait:\n\t * it does not use sibling anchoring.\n\t */\n\tall: StableRange.all as (trait: TraitLocation) => RangeAnchor,\n};\n"]}
@@ -1,120 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
6
- import { EditId } from '../Identifiers';
7
- import { Snapshot } from '../Snapshot';
8
- import { Edit, BuildNode, GenericSharedTree, NodeData, SharedTreeSummaryBase } from '../generic';
9
- import { OrderedEditSet } from '../EditLog';
10
- import { AnchoredChange, RangeAnchor, PlaceAnchor, NodeAnchor } from './PersistedTypes';
11
- import { SharedTreeWithAnchorsFactory } from './Factory';
12
- /**
13
- * Wrapper around a `SharedTreeWithAnchorsEditor` which provides ergonomic imperative editing functionality. All methods apply changes in
14
- * their own edit.
15
- *
16
- * @example
17
- * // The following two lines of code are equivalent:
18
- * tree.applyEdit(...AnchoredInsert.create([newNode], PlaceAnchor.before(existingNode)));
19
- * tree.editor.insert(newNode, PlaceAnchor.before(existingNode))
20
- * @public
21
- */
22
- export declare class SharedTreeWithAnchorsEditor {
23
- private readonly tree;
24
- constructor(tree: SharedTreeWithAnchors);
25
- /**
26
- * Inserts a node at a location.
27
- * @param node - Node to insert.
28
- * @param destination - PlaceAnchor at which the insert should take place.
29
- */
30
- insert(node: BuildNode, destination: PlaceAnchor): EditId;
31
- /**
32
- * Inserts nodes at a location.
33
- * @param nodes - Nodes to insert.
34
- * @param destination - PlaceAnchor at which the insert should take place.
35
- */
36
- insert(nodes: BuildNode[], destination: PlaceAnchor): EditId;
37
- /**
38
- * Moves a node to a specified location.
39
- * @param source - Node to move.
40
- * @param destination - PlaceAnchor to which the node should be moved.
41
- */
42
- move(source: NodeData, destination: PlaceAnchor): EditId;
43
- /**
44
- * Moves a node to a specified location.
45
- * @param source - Node to move.
46
- * @param destination - PlaceAnchor to which the node should be moved.
47
- */
48
- move(source: NodeAnchor, destination: PlaceAnchor): EditId;
49
- /**
50
- * Moves a part of a trait to a specified location.
51
- * @param source - Portion of a trait to move.
52
- * @param destination - PlaceAnchor to which the portion of the trait should be moved.
53
- */
54
- move(source: RangeAnchor, destination: PlaceAnchor): EditId;
55
- /**
56
- * Deletes a node.
57
- * @param target - Node to delete
58
- */
59
- delete(target: NodeData): EditId;
60
- /**
61
- * Deletes a node.
62
- * @param target - Node to delete
63
- */
64
- delete(target: NodeAnchor): EditId;
65
- /**
66
- * Deletes a portion of a trait.
67
- * @param target - Range of nodes to delete, specified as a `RangeAnchor`
68
- */
69
- delete(target: RangeAnchor): EditId;
70
- /**
71
- * Reverts a previous edit.
72
- * @param edit - the edit to revert
73
- * @param view - the revision to which the edit is applied (not the output of applying edit: it's the one just before that)
74
- */
75
- revert(edit: Edit<AnchoredChange>, view: Snapshot): EditId;
76
- applyChanges(changes: readonly AnchoredChange[]): EditId;
77
- private isRange;
78
- }
79
- /**
80
- * A distributed tree.
81
- *
82
- * Does not currently guarantee convergence among nodes. This is due to the fact that the current summary information is insufficient to
83
- * ensure that all nodes have access to all the relevant data for the application of a given edit. For example, if edit was sequenced after
84
- * a given summary but references an edit before that summary then nodes that do not have that earlier edit's information in memory will not
85
- * have the full context for the application of the change. This currently leads to a "best effort" application which takes into account
86
- * whatever data is available. Remedying this is tracked by #57176.
87
- *
88
- * @public
89
- * @sealed
90
- */
91
- export declare class SharedTreeWithAnchors extends GenericSharedTree<AnchoredChange> {
92
- /**
93
- * Create a new SharedTreeWithAnchors. It will contain the default value (see initialTree).
94
- */
95
- static create(runtime: IFluidDataStoreRuntime, id?: string): SharedTreeWithAnchors;
96
- /**
97
- * Get a factory for SharedTreeWithAnchors to register with the data store.
98
- * @param historySummarizing - determines how history is summarized by the returned `SharedTreeWithAnchors`.
99
- * @returns A factory that creates `SharedTreeWithAnchors`s and loads them from storage.
100
- */
101
- static getFactory(summarizeHistory?: boolean): SharedTreeWithAnchorsFactory;
102
- /**
103
- * Create a new SharedTreeFactory.
104
- * @param runtime - The runtime the SharedTreeWithAnchors will be associated with
105
- * @param id - Unique ID for the SharedTreeWithAnchors
106
- * @param expensiveValidation - enable expensive asserts
107
- * @param summarizeHistory - Determines if the history is included in summaries.
108
- */
109
- constructor(runtime: IFluidDataStoreRuntime, id: string, expensiveValidation?: boolean, summarizeHistory?: boolean);
110
- private _editor;
111
- /**
112
- * Returns a `SharedTreeEditor` for editing this tree in an imperative fashion. All edits are performed on the current tree view.
113
- */
114
- get editor(): SharedTreeWithAnchorsEditor;
115
- /**
116
- * {@inheritDoc GenericSharedTree.generateSummary}
117
- */
118
- protected generateSummary(editLog: OrderedEditSet<AnchoredChange>): SharedTreeSummaryBase;
119
- }
120
- //# sourceMappingURL=SharedTreeWithAnchors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SharedTreeWithAnchors.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/SharedTreeWithAnchors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAyB,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACN,cAAc,EAId,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAyC,MAAM,WAAW,CAAC;AAGhG;;;;;;;;;GASG;AACH,qBAAa,2BAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;gBAE1B,IAAI,EAAE,qBAAqB;IAI9C;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM;IAChE;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM;IAOnE;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM;IAC/D;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM;IACjE;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM;IASlE;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM;IACvC;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IACzC;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAS1C;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM;IAI1D,YAAY,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM;IAI/D,OAAO,CAAC,OAAO;CAGf;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB,CAAC,cAAc,CAAC;IAC3E;;OAEG;WACW,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,qBAAqB;IAIzF;;;;OAIG;WACW,UAAU,CAAC,gBAAgB,UAAO,GAAG,4BAA4B;IAI/E;;;;;;OAMG;gBAEF,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,MAAM,EACV,mBAAmB,UAAQ,EAC3B,gBAAgB,UAAO;IAYxB,OAAO,CAAC,OAAO,CAA0C;IAEzD;;OAEG;IACH,IAAW,MAAM,IAAI,2BAA2B,CAM/C;IAED;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,qBAAqB;CAMzF"}
@@ -1,110 +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 { noHistorySummarizer, revert } from '../default-edits';
7
- import { AnchoredDelete, AnchoredInsert, AnchoredMove, RangeAnchor, } from './PersistedTypes';
8
- import { SharedTreeWithAnchorsFactory, SharedTreeWithAnchorsFactoryNoHistory } from './Factory';
9
- import { TransactionWithAnchors } from './TransactionWithAnchors';
10
- /**
11
- * Wrapper around a `SharedTreeWithAnchorsEditor` which provides ergonomic imperative editing functionality. All methods apply changes in
12
- * their own edit.
13
- *
14
- * @example
15
- * // The following two lines of code are equivalent:
16
- * tree.applyEdit(...AnchoredInsert.create([newNode], PlaceAnchor.before(existingNode)));
17
- * tree.editor.insert(newNode, PlaceAnchor.before(existingNode))
18
- * @public
19
- */
20
- export class SharedTreeWithAnchorsEditor {
21
- constructor(tree) {
22
- this.tree = tree;
23
- }
24
- insert(nodeOrNodes, destination) {
25
- return this.tree.applyEdit(...AnchoredInsert.create(Array.isArray(nodeOrNodes) ? nodeOrNodes : [nodeOrNodes], destination));
26
- }
27
- move(source, destination) {
28
- if (!this.isRange(source)) {
29
- return this.tree.applyEdit(...AnchoredMove.create(RangeAnchor.only(source), destination));
30
- }
31
- return this.tree.applyEdit(...AnchoredMove.create(source, destination));
32
- }
33
- delete(target) {
34
- if (!this.isRange(target)) {
35
- return this.tree.applyEdit(AnchoredDelete.create(RangeAnchor.only(target)));
36
- }
37
- return this.tree.applyEdit(AnchoredDelete.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(...revert(edit.changes, view));
46
- }
47
- applyChanges(changes) {
48
- return this.tree.applyEdit(...changes);
49
- }
50
- isRange(source) {
51
- return source.start !== undefined && source.end !== undefined;
52
- }
53
- }
54
- /**
55
- * A distributed tree.
56
- *
57
- * Does not currently guarantee convergence among nodes. This is due to the fact that the current summary information is insufficient to
58
- * ensure that all nodes have access to all the relevant data for the application of a given edit. For example, if edit was sequenced after
59
- * a given summary but references an edit before that summary then nodes that do not have that earlier edit's information in memory will not
60
- * have the full context for the application of the change. This currently leads to a "best effort" application which takes into account
61
- * whatever data is available. Remedying this is tracked by #57176.
62
- *
63
- * @public
64
- * @sealed
65
- */
66
- export class SharedTreeWithAnchors extends GenericSharedTree {
67
- /**
68
- * Create a new SharedTreeFactory.
69
- * @param runtime - The runtime the SharedTreeWithAnchors will be associated with
70
- * @param id - Unique ID for the SharedTreeWithAnchors
71
- * @param expensiveValidation - enable expensive asserts
72
- * @param summarizeHistory - Determines if the history is included in summaries.
73
- */
74
- constructor(runtime, id, expensiveValidation = false, summarizeHistory = true) {
75
- super(runtime, id, TransactionWithAnchors.factory, SharedTreeWithAnchorsFactory.Attributes, expensiveValidation, summarizeHistory);
76
- }
77
- /**
78
- * Create a new SharedTreeWithAnchors. It will contain the default value (see initialTree).
79
- */
80
- static create(runtime, id) {
81
- return runtime.createChannel(id, SharedTreeWithAnchorsFactory.Type);
82
- }
83
- /**
84
- * Get a factory for SharedTreeWithAnchors to register with the data store.
85
- * @param historySummarizing - determines how history is summarized by the returned `SharedTreeWithAnchors`.
86
- * @returns A factory that creates `SharedTreeWithAnchors`s and loads them from storage.
87
- */
88
- static getFactory(summarizeHistory = true) {
89
- return summarizeHistory ? new SharedTreeWithAnchorsFactory() : new SharedTreeWithAnchorsFactoryNoHistory();
90
- }
91
- /**
92
- * Returns a `SharedTreeEditor` for editing this tree in an imperative fashion. All edits are performed on the current tree view.
93
- */
94
- get editor() {
95
- if (!this._editor) {
96
- this._editor = new SharedTreeWithAnchorsEditor(this);
97
- }
98
- return this._editor;
99
- }
100
- /**
101
- * {@inheritDoc GenericSharedTree.generateSummary}
102
- */
103
- generateSummary(editLog) {
104
- if (!this.summarizeHistory) {
105
- return noHistorySummarizer(editLog, this.currentView);
106
- }
107
- return fullHistorySummarizer(editLog, this.currentView);
108
- }
109
- }
110
- //# sourceMappingURL=SharedTreeWithAnchors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SharedTreeWithAnchors.js","sourceRoot":"","sources":["../../src/anchored-edits/SharedTreeWithAnchors.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 } from '../Identifiers';\nimport { Snapshot } from '../Snapshot';\nimport { Edit, BuildNode, fullHistorySummarizer, GenericSharedTree, NodeData, SharedTreeSummaryBase } from '../generic';\nimport { OrderedEditSet } from '../EditLog';\nimport { noHistorySummarizer, revert } from '../default-edits';\nimport {\n\tAnchoredChange,\n\tAnchoredDelete,\n\tAnchoredInsert,\n\tAnchoredMove,\n\tRangeAnchor,\n\tPlaceAnchor,\n\tNodeAnchor,\n} from './PersistedTypes';\nimport { SharedTreeWithAnchorsFactory, SharedTreeWithAnchorsFactoryNoHistory } from './Factory';\nimport { TransactionWithAnchors } from './TransactionWithAnchors';\n\n/**\n * Wrapper around a `SharedTreeWithAnchorsEditor` which provides ergonomic imperative editing functionality. All methods apply changes in\n * their own edit.\n *\n * @example\n * // The following two lines of code are equivalent:\n * tree.applyEdit(...AnchoredInsert.create([newNode], PlaceAnchor.before(existingNode)));\n * tree.editor.insert(newNode, PlaceAnchor.before(existingNode))\n * @public\n */\nexport class SharedTreeWithAnchorsEditor {\n\tprivate readonly tree: SharedTreeWithAnchors;\n\n\tpublic constructor(tree: SharedTreeWithAnchors) {\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 - PlaceAnchor at which the insert should take place.\n\t */\n\tpublic insert(node: BuildNode, destination: PlaceAnchor): EditId;\n\t/**\n\t * Inserts nodes at a location.\n\t * @param nodes - Nodes to insert.\n\t * @param destination - PlaceAnchor at which the insert should take place.\n\t */\n\tpublic insert(nodes: BuildNode[], destination: PlaceAnchor): EditId;\n\tpublic insert(nodeOrNodes: BuildNode | BuildNode[], destination: PlaceAnchor): EditId {\n\t\treturn this.tree.applyEdit(\n\t\t\t...AnchoredInsert.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 - PlaceAnchor to which the node should be moved.\n\t */\n\tpublic move(source: NodeData, destination: PlaceAnchor): EditId;\n\t/**\n\t * Moves a node to a specified location.\n\t * @param source - Node to move.\n\t * @param destination - PlaceAnchor to which the node should be moved.\n\t */\n\tpublic move(source: NodeAnchor, destination: PlaceAnchor): 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 - PlaceAnchor to which the portion of the trait should be moved.\n\t */\n\tpublic move(source: RangeAnchor, destination: PlaceAnchor): EditId;\n\tpublic move(source: NodeData | NodeAnchor | RangeAnchor, destination: PlaceAnchor): EditId {\n\t\tif (!this.isRange(source)) {\n\t\t\treturn this.tree.applyEdit(...AnchoredMove.create(RangeAnchor.only(source), destination));\n\t\t}\n\n\t\treturn this.tree.applyEdit(...AnchoredMove.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: NodeAnchor): EditId;\n\t/**\n\t * Deletes a portion of a trait.\n\t * @param target - Range of nodes to delete, specified as a `RangeAnchor`\n\t */\n\tpublic delete(target: RangeAnchor): EditId;\n\tpublic delete(target: NodeData | NodeAnchor | RangeAnchor): EditId {\n\t\tif (!this.isRange(target)) {\n\t\t\treturn this.tree.applyEdit(AnchoredDelete.create(RangeAnchor.only(target)));\n\t\t}\n\n\t\treturn this.tree.applyEdit(AnchoredDelete.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<AnchoredChange>, view: Snapshot): EditId {\n\t\treturn this.tree.applyEdit(...revert(edit.changes, view));\n\t}\n\n\tpublic applyChanges(changes: readonly AnchoredChange[]): EditId {\n\t\treturn this.tree.applyEdit(...changes);\n\t}\n\n\tprivate isRange(source: NodeData | NodeAnchor | RangeAnchor): source is RangeAnchor {\n\t\treturn (source as RangeAnchor).start !== undefined && (source as RangeAnchor).end !== undefined;\n\t}\n}\n\n/**\n * A distributed tree.\n *\n * Does not currently guarantee convergence among nodes. This is due to the fact that the current summary information is insufficient to\n * ensure that all nodes have access to all the relevant data for the application of a given edit. For example, if edit was sequenced after\n * a given summary but references an edit before that summary then nodes that do not have that earlier edit's information in memory will not\n * have the full context for the application of the change. This currently leads to a \"best effort\" application which takes into account\n * whatever data is available. Remedying this is tracked by #57176.\n *\n * @public\n * @sealed\n */\nexport class SharedTreeWithAnchors extends GenericSharedTree<AnchoredChange> {\n\t/**\n\t * Create a new SharedTreeWithAnchors. It will contain the default value (see initialTree).\n\t */\n\tpublic static create(runtime: IFluidDataStoreRuntime, id?: string): SharedTreeWithAnchors {\n\t\treturn runtime.createChannel(id, SharedTreeWithAnchorsFactory.Type) as SharedTreeWithAnchors;\n\t}\n\n\t/**\n\t * Get a factory for SharedTreeWithAnchors to register with the data store.\n\t * @param historySummarizing - determines how history is summarized by the returned `SharedTreeWithAnchors`.\n\t * @returns A factory that creates `SharedTreeWithAnchors`s and loads them from storage.\n\t */\n\tpublic static getFactory(summarizeHistory = true): SharedTreeWithAnchorsFactory {\n\t\treturn summarizeHistory ? new SharedTreeWithAnchorsFactory() : new SharedTreeWithAnchorsFactoryNoHistory();\n\t}\n\n\t/**\n\t * Create a new SharedTreeFactory.\n\t * @param runtime - The runtime the SharedTreeWithAnchors will be associated with\n\t * @param id - Unique ID for the SharedTreeWithAnchors\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(\n\t\t\truntime,\n\t\t\tid,\n\t\t\tTransactionWithAnchors.factory,\n\t\t\tSharedTreeWithAnchorsFactory.Attributes,\n\t\t\texpensiveValidation,\n\t\t\tsummarizeHistory\n\t\t);\n\t}\n\n\tprivate _editor: SharedTreeWithAnchorsEditor | 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(): SharedTreeWithAnchorsEditor {\n\t\tif (!this._editor) {\n\t\t\tthis._editor = new SharedTreeWithAnchorsEditor(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<AnchoredChange>): 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,28 +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 { Snapshot } from '../Snapshot';
7
- import { ReconciliationPath } from '../ReconciliationPath';
8
- import { Transaction } from '../default-edits';
9
- import { AnchoredChange } from './PersistedTypes';
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 declare class TransactionWithAnchors extends Transaction {
24
- protected readonly detached: Map<DetachedSequenceId, readonly NodeId[]>;
25
- static factory(snapshot: Snapshot): TransactionWithAnchors;
26
- protected tryResolveChange(change: AnchoredChange, path: ReconciliationPath<AnchoredChange>): AnchoredChange | undefined;
27
- }
28
- //# sourceMappingURL=TransactionWithAnchors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionWithAnchors.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/TransactionWithAnchors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IACtD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAa;WAEtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,sBAAsB;IAIjE,SAAS,CAAC,gBAAgB,CACzB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,GACtC,cAAc,GAAG,SAAS;CAG7B"}
@@ -1,32 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { Transaction } from '../default-edits';
6
- import { resolveChangeAnchors } from './AnchorResolution';
7
- /**
8
- * A mutable transaction for applying sequences of changes to a Snapshot.
9
- * Allows viewing the intermediate states.
10
- *
11
- * Contains necessary state to apply changes within an edit to a Snapshot.
12
- *
13
- * May have any number of changes applied to make up the edit.
14
- * Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the
15
- * results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).
16
- *
17
- * No data outside the Transaction is modified by Transaction:
18
- * the results from `close` must be used to actually submit an `Edit`.
19
- */
20
- export class TransactionWithAnchors extends Transaction {
21
- constructor() {
22
- super(...arguments);
23
- this.detached = new Map();
24
- }
25
- static factory(snapshot) {
26
- return new TransactionWithAnchors(snapshot);
27
- }
28
- tryResolveChange(change, path) {
29
- return resolveChangeAnchors(change, this.view, path);
30
- }
31
- }
32
- //# sourceMappingURL=TransactionWithAnchors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionWithAnchors.js","sourceRoot":"","sources":["../../src/anchored-edits/TransactionWithAnchors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAAvD;;QACoB,aAAQ,GAA+C,IAAI,GAAG,EAAE,CAAC;IAYrF,CAAC;IAVO,MAAM,CAAC,OAAO,CAAC,QAAkB;QACvC,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAES,gBAAgB,CACzB,MAAsB,EACtB,IAAwC;QAExC,OAAO,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { NodeId, DetachedSequenceId } from '../Identifiers';\nimport { Snapshot } from '../Snapshot';\nimport { ReconciliationPath } from '../ReconciliationPath';\nimport { Transaction } from '../default-edits';\nimport { AnchoredChange } from './PersistedTypes';\nimport { resolveChangeAnchors } from './AnchorResolution';\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 TransactionWithAnchors extends Transaction {\n\tprotected readonly detached: Map<DetachedSequenceId, readonly NodeId[]> = new Map();\n\n\tpublic static factory(snapshot: Snapshot): TransactionWithAnchors {\n\t\treturn new TransactionWithAnchors(snapshot);\n\t}\n\n\tprotected tryResolveChange(\n\t\tchange: AnchoredChange,\n\t\tpath: ReconciliationPath<AnchoredChange>\n\t): AnchoredChange | undefined {\n\t\treturn resolveChangeAnchors(change, this.view, path);\n\t}\n}\n"]}
@@ -1,10 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- export { SharedTreeWithAnchors, SharedTreeWithAnchorsEditor } from './SharedTreeWithAnchors';
6
- export * from './PersistedTypes';
7
- export * from './Factory';
8
- export { TransactionWithAnchors } from './TransactionWithAnchors';
9
- export { resolveChangeAnchors, findLastOffendingChange, resolveNodeAnchor, resolvePlaceAnchor, resolveRangeAnchor, updateRelativePlaceAnchorForChange, updateRelativePlaceAnchorForPath, EvaluatedChange, } from './AnchorResolution';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC7F,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACN,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kCAAkC,EAClC,gCAAgC,EAChC,eAAe,GACf,MAAM,oBAAoB,CAAC"}
@@ -1,11 +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 { SharedTreeWithAnchors, SharedTreeWithAnchorsEditor } from './SharedTreeWithAnchors';
7
- export * from './PersistedTypes';
8
- export * from './Factory';
9
- export { TransactionWithAnchors } from './TransactionWithAnchors';
10
- export { resolveChangeAnchors, findLastOffendingChange, resolveNodeAnchor, resolvePlaceAnchor, resolveRangeAnchor, updateRelativePlaceAnchorForChange, updateRelativePlaceAnchorForPath, } from './AnchorResolution';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anchored-edits/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc;AAEd,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC7F,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACN,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kCAAkC,EAClC,gCAAgC,GAEhC,MAAM,oBAAoB,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 { SharedTreeWithAnchors, SharedTreeWithAnchorsEditor } from './SharedTreeWithAnchors';\nexport * from './PersistedTypes';\nexport * from './Factory';\nexport { TransactionWithAnchors } from './TransactionWithAnchors';\nexport {\n\tresolveChangeAnchors,\n\tfindLastOffendingChange,\n\tresolveNodeAnchor,\n\tresolvePlaceAnchor,\n\tresolveRangeAnchor,\n\tupdateRelativePlaceAnchorForChange,\n\tupdateRelativePlaceAnchorForPath,\n\tEvaluatedChange,\n} from './AnchorResolution';\n"]}
@@ -1,57 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { DetachedSequenceId, NodeId } from '../Identifiers';
6
- import { Snapshot, SnapshotPlace, SnapshotRange } from '../Snapshot';
7
- import { EditValidationResult } from '../Checkout';
8
- import { BuildNode, TraitLocation, TreeNodeSequence } from '../generic';
9
- import { Change, StablePlace, StableRange } from './PersistedTypes';
10
- /**
11
- * Functions for constructing edits.
12
- */
13
- /**
14
- * Create a sequence of changes that resets the contents of `trait`.
15
- * @public
16
- */
17
- export declare function setTrait(trait: TraitLocation, nodes: TreeNodeSequence<BuildNode>): readonly Change[];
18
- /**
19
- * Check the validity of the given `StablePlace`
20
- * @param snapshot - the `Snapshot` within which to validate the given place
21
- * @param place - the `StablePlace` to check
22
- */
23
- export declare function validateStablePlace(snapshot: Snapshot, place: StablePlace): EditValidationResult;
24
- /**
25
- * Check the validity of the given `StableRange`
26
- * @param snapshot - the `Snapshot` within which to validate the given range
27
- * @param range - the `StableRange` to check
28
- */
29
- export declare function validateStableRange(snapshot: Snapshot, range: StableRange): EditValidationResult;
30
- /**
31
- * Express the given `StableRange` as a `Range`
32
- */
33
- export declare function rangeFromStableRange(snapshot: Snapshot, range: StableRange): SnapshotRange;
34
- /**
35
- * Express the given `StablePlace` as a `Place`
36
- */
37
- export declare function placeFromStablePlace(snapshot: Snapshot, stablePlace: StablePlace): SnapshotPlace;
38
- /**
39
- * Parents a set of nodes in a specified location within a trait.
40
- * @param nodesToInsert - the nodes to parent in the specified place. The nodes must already be present in the Snapshot.
41
- * @param placeToInsert - the location to insert the nodes.
42
- */
43
- export declare function insertIntoTrait(snapshot: Snapshot, nodesToInsert: readonly NodeId[], placeToInsert: StablePlace): Snapshot;
44
- /**
45
- * Detaches a range of nodes from their parent. The detached nodes remain in the Snapshot.
46
- * @param rangeToDetach - the range of nodes to detach
47
- */
48
- export declare function detachRange(snapshot: Snapshot, rangeToDetach: StableRange): {
49
- snapshot: Snapshot;
50
- detached: readonly NodeId[];
51
- };
52
- /**
53
- * Determine if an BuildNode is a DetachedSequenceId.
54
- * @internal
55
- */
56
- export declare function isDetachedSequenceId(node: BuildNode): node is DetachedSequenceId;
57
- //# sourceMappingURL=EditUtilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditUtilities.d.ts","sourceRoot":"","sources":["../../src/default-edits/EditUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,MAAM,EAAE,CAKpG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAmChG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAkChG;AAuCD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,aAAa,CAO1F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,aAAa,CAchG;AAaD;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,aAAa,EAAE,WAAW,GACxB,QAAQ,CAEV;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,WAAW,GACxB;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAErD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,IAAI,kBAAkB,CAEhF"}