@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,152 +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 { ChangeType, placeFromStablePlace, validateStablePlace, validateStableRange, } from '../default-edits';
7
- import { assert, assertNotUndefined, fail } from '../Common';
8
- import { EditValidationResult } from '../Checkout';
9
- import { PlaceAnchorSemanticsChoice, } from './PersistedTypes';
10
- export function resolveChangeAnchors(change, before, path, { nodeResolver, placeResolver, rangeResolver } = {
11
- nodeResolver: resolveNodeAnchor,
12
- placeResolver: resolvePlaceAnchor,
13
- rangeResolver: resolveRangeAnchor,
14
- }) {
15
- switch (change.type) {
16
- case ChangeType.Build:
17
- return change;
18
- case ChangeType.Insert: {
19
- const destination = placeResolver(change.destination, before, path);
20
- return destination !== undefined ? Object.assign(Object.assign({}, change), { destination }) : undefined;
21
- }
22
- case ChangeType.Detach: {
23
- const source = rangeResolver(change.source, before, path);
24
- return source !== undefined ? Object.assign(Object.assign({}, change), { source }) : undefined;
25
- }
26
- case ChangeType.Constraint: {
27
- const toConstrain = rangeResolver(change.toConstrain, before, path);
28
- return toConstrain !== undefined ? Object.assign(Object.assign({}, change), { toConstrain }) : undefined;
29
- }
30
- case ChangeType.SetValue: {
31
- const nodeToModify = nodeResolver(change.nodeToModify, before, path);
32
- return nodeToModify !== undefined ? Object.assign(Object.assign({}, change), { nodeToModify }) : undefined;
33
- }
34
- default:
35
- return fail('Attempted to reconciliate unsupported change');
36
- }
37
- }
38
- /**
39
- * Resolves a given `node` anchor in the face of a `ReconciliationPath`.
40
- * @param node - The anchor to resolve.
41
- * @param before - The state to which the change that the `node` anchor should be applied to.
42
- * @param path - The reconciliation path for the change that the `node` is part of.
43
- * @returns A matching `NodeId` that is valid in the snapshot at the end of the `path`. Undefined if no such node exists.
44
- * @internal
45
- */
46
- export function resolveNodeAnchor(node, before, path) {
47
- return before.hasNode(node) ? node : undefined;
48
- }
49
- export function resolveRangeAnchor(range, before, path, { placeResolver, rangeValidator, } = {
50
- placeResolver: resolvePlaceAnchor,
51
- rangeValidator: validateStableRange,
52
- }) {
53
- const start = placeResolver(range.start, before, path);
54
- if (start !== undefined) {
55
- const end = placeResolver(range.end, before, path);
56
- if (end !== undefined) {
57
- const resolvedRange = {
58
- start,
59
- end,
60
- };
61
- return rangeValidator(before, resolvedRange) === EditValidationResult.Valid ? resolvedRange : undefined;
62
- }
63
- }
64
- return undefined;
65
- }
66
- export function resolvePlaceAnchor(place, before, path, { placeValidator, placeUpdatorForPath, } = {
67
- placeValidator: validateStablePlace,
68
- placeUpdatorForPath: updateRelativePlaceAnchorForPath,
69
- }) {
70
- let newPlace = place;
71
- while (newPlace !== undefined && placeValidator(before, newPlace) !== EditValidationResult.Valid) {
72
- switch (newPlace.semantics) {
73
- case PlaceAnchorSemanticsChoice.RelativeToNode: {
74
- newPlace = placeUpdatorForPath(newPlace, path);
75
- break;
76
- }
77
- case PlaceAnchorSemanticsChoice.BoundToNode:
78
- case undefined:
79
- // There's nothing we can do to fix this place
80
- newPlace = undefined;
81
- break;
82
- default:
83
- fail('Unsupported choice of PlaceAnchorSemanticsChoice');
84
- }
85
- }
86
- return newPlace;
87
- }
88
- export function updateRelativePlaceAnchorForPath(place, path, { lastOffendingChangeFinder, placeUpdatorForChange, } = {
89
- lastOffendingChangeFinder: findLastOffendingChange,
90
- placeUpdatorForChange: updateRelativePlaceAnchorForChange,
91
- }) {
92
- if (place.referenceSibling === undefined) {
93
- // Start and end places cannot be updated.
94
- return undefined;
95
- }
96
- const lastOffendingChange = lastOffendingChangeFinder(place, path);
97
- return lastOffendingChange === undefined ? undefined : placeUpdatorForChange(place, lastOffendingChange);
98
- }
99
- export function findLastOffendingChange(place, path, { placeValidator } = {
100
- placeValidator: validateStablePlace,
101
- }) {
102
- let followingChange;
103
- for (let editIndex = path.length - 1; editIndex >= 0; --editIndex) {
104
- const edit = path[editIndex];
105
- for (let changeIndex = edit.length - 1; changeIndex >= 0; --changeIndex) {
106
- const change = edit[changeIndex];
107
- const placeStatusAfterChange = placeValidator(change.after, place);
108
- if (placeStatusAfterChange === EditValidationResult.Valid) {
109
- return Object.assign({ before: change.after }, assertNotUndefined(followingChange, 'The last change should not make the place valid'));
110
- }
111
- followingChange = {
112
- change: change.resolvedChange,
113
- after: change.after,
114
- };
115
- }
116
- }
117
- return path.length > 0 && placeValidator(path[0].before, place) === EditValidationResult.Valid
118
- ? Object.assign({ before: path[0].before }, assertNotUndefined(followingChange, 'The last change should not make the place valid')) : // The place was never valid
119
- undefined;
120
- }
121
- export function updateRelativePlaceAnchorForChange(place, { change, before }) {
122
- if (place.referenceSibling === undefined) {
123
- // A start or end place cannot be further updated
124
- return undefined;
125
- }
126
- assert(change.type === ChangeType.Detach, 'A PlaceAnchor can only be made invalid by a detach change');
127
- const targetPlace = placeFromStablePlace(before, place);
128
- const startPlace = placeFromStablePlace(before, change.source.start);
129
- const endPlace = placeFromStablePlace(before, change.source.end);
130
- if (targetPlace.trait.parent !== startPlace.trait.parent) {
131
- // The target place was detached indirectly by detaching its parent.
132
- // The anchor cannot recover.
133
- return undefined;
134
- }
135
- let newIndex;
136
- if (targetPlace.side === Side.After) {
137
- newIndex = before.findIndexWithinTrait(startPlace) - 1;
138
- }
139
- if (targetPlace.side === Side.Before) {
140
- newIndex = before.findIndexWithinTrait(endPlace);
141
- }
142
- const referenceTrait = targetPlace.trait;
143
- const parentNode = before.getSnapshotNode(referenceTrait.parent);
144
- const traits = new Map(parentNode.traits);
145
- const trait = assertNotUndefined(traits.get(referenceTrait.label), 'The trait must have been populated before the deletion');
146
- const referenceSibling = trait[newIndex];
147
- if (referenceSibling === undefined) {
148
- return { referenceTrait, side: place.side, semantics: place.semantics };
149
- }
150
- return { referenceSibling, side: place.side, semantics: place.semantics };
151
- }
152
- //# sourceMappingURL=AnchorResolution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnchorResolution.js","sourceRoot":"","sources":["../../src/anchored-edits/AnchorResolution.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 { Side, Snapshot } from '../Snapshot';\nimport {\n\tChange,\n\tChangeType,\n\tplaceFromStablePlace,\n\tStablePlace,\n\tStableRange,\n\tvalidateStablePlace,\n\tvalidateStableRange,\n} from '../default-edits';\nimport { assert, assertNotUndefined, fail } from '../Common';\nimport { EditValidationResult } from '../Checkout';\nimport { NodeId } from '../Identifiers';\nimport { ReconciliationPath } from '../ReconciliationPath';\nimport {\n\tAnchoredChange,\n\tNodeAnchor,\n\tPlaceAnchor,\n\tPlaceAnchorSemanticsChoice,\n\tRangeAnchor,\n\tRelativePlaceAnchor,\n} from './PersistedTypes';\n\n/**\n * A change and the snapshots that precede and succeed it.\n */\nexport interface EvaluatedChange<TChange> {\n\treadonly change: TChange;\n\t/**\n\t * The snapshot before the change was applied.\n\t */\n\treadonly before: Snapshot;\n\t/**\n\t * The snapshot after the change was applied.\n\t */\n\treadonly after: Snapshot;\n}\n\n/**\n * Object that includes a function for resolving node anchors.\n */\nexport interface HasNodeResolver {\n\tnodeResolver: (node: NodeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => NodeId | undefined;\n}\n\n/**\n * Object that includes a function for resolving place anchors.\n */\nexport interface HasPlaceResolver {\n\tplaceResolver: (\n\t\trange: PlaceAnchor,\n\t\tbefore: Snapshot,\n\t\tpath: ReconciliationPath<AnchoredChange>\n\t) => StablePlace | undefined;\n}\n\n/**\n * Object that includes a function for resolving range anchors.\n */\nexport interface HasRangeResolver {\n\trangeResolver: (\n\t\trange: RangeAnchor,\n\t\tbefore: Snapshot,\n\t\tpath: ReconciliationPath<AnchoredChange>\n\t) => StableRange | undefined;\n}\n\n/**\n * Object that includes a function for validating places.\n */\nexport interface HasPlaceValidator {\n\tplaceValidator: (snapshot: Snapshot, place: StablePlace) => EditValidationResult;\n}\n\n/**\n * Reconciliates a given `change` in the face of concurrent edits described in a `ReconciliationPath`.\n * @param change - The anchor to reconciliate.\n * @param before - The state to which the `change` would be applied to.\n * @param path - The reconciliation path for the `change`.\n * @returns A `Change` that satisfies the same semantics of the given `change` but whose tree locations are valid in the `before` snapshot.\n * Undefined if no such change can be produced.\n * @internal\n */\nexport function resolveChangeAnchors(\n\tchange: AnchoredChange,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): Change | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function resolveChangeAnchors(\n\tchange: AnchoredChange,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasNodeResolver & HasPlaceResolver & HasRangeResolver\n): Change | undefined;\n\nexport function resolveChangeAnchors(\n\tchange: AnchoredChange,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{ nodeResolver, placeResolver, rangeResolver }: HasNodeResolver & HasPlaceResolver & HasRangeResolver = {\n\t\tnodeResolver: resolveNodeAnchor,\n\t\tplaceResolver: resolvePlaceAnchor,\n\t\trangeResolver: resolveRangeAnchor,\n\t}\n): Change | undefined {\n\tswitch (change.type) {\n\t\tcase ChangeType.Build:\n\t\t\treturn change;\n\t\tcase ChangeType.Insert: {\n\t\t\tconst destination = placeResolver(change.destination, before, path);\n\t\t\treturn destination !== undefined ? { ...change, destination } : undefined;\n\t\t}\n\t\tcase ChangeType.Detach: {\n\t\t\tconst source = rangeResolver(change.source, before, path);\n\t\t\treturn source !== undefined ? { ...change, source } : undefined;\n\t\t}\n\t\tcase ChangeType.Constraint: {\n\t\t\tconst toConstrain = rangeResolver(change.toConstrain, before, path);\n\t\t\treturn toConstrain !== undefined ? { ...change, toConstrain } : undefined;\n\t\t}\n\t\tcase ChangeType.SetValue: {\n\t\t\tconst nodeToModify = nodeResolver(change.nodeToModify, before, path);\n\t\t\treturn nodeToModify !== undefined ? { ...change, nodeToModify } : undefined;\n\t\t}\n\t\tdefault:\n\t\t\treturn fail('Attempted to reconciliate unsupported change');\n\t}\n}\n\n/**\n * Resolves a given `node` anchor in the face of a `ReconciliationPath`.\n * @param node - The anchor to resolve.\n * @param before - The state to which the change that the `node` anchor should be applied to.\n * @param path - The reconciliation path for the change that the `node` is part of.\n * @returns A matching `NodeId` that is valid in the snapshot at the end of the `path`. Undefined if no such node exists.\n * @internal\n */\nexport function resolveNodeAnchor(\n\tnode: NodeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): NodeId | undefined {\n\treturn before.hasNode(node) ? node : undefined;\n}\n\n/**\n * Resolves a given `range` anchor in the face of a `ReconciliationPath`.\n * @param range - The anchor to resolve.\n * @param before - The state to which the change that the `range` anchor should be applied to.\n * @param path - The reconciliation path for the change that the `range` is part of.\n * @returns A matching `StableRange` that is valid in the snapshot at the end of the `path`. Undefined if no such valid range exists.\n * @internal\n */\nexport function resolveRangeAnchor(\n\trange: RangeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): StableRange | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function resolveRangeAnchor(\n\trange: RangeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasPlaceResolver & {\n\t\trangeValidator: (snapshot: Snapshot, range: StableRange) => EditValidationResult;\n\t}\n): StableRange | undefined;\n\nexport function resolveRangeAnchor(\n\trange: RangeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{\n\t\tplaceResolver,\n\t\trangeValidator,\n\t}: HasPlaceResolver & {\n\t\trangeValidator: (snapshot: Snapshot, range: StableRange) => EditValidationResult;\n\t} = {\n\t\tplaceResolver: resolvePlaceAnchor,\n\t\trangeValidator: validateStableRange,\n\t}\n): StableRange | undefined {\n\tconst start = placeResolver(range.start, before, path);\n\tif (start !== undefined) {\n\t\tconst end = placeResolver(range.end, before, path);\n\t\tif (end !== undefined) {\n\t\t\tconst resolvedRange = {\n\t\t\t\tstart,\n\t\t\t\tend,\n\t\t\t};\n\t\t\treturn rangeValidator(before, resolvedRange) === EditValidationResult.Valid ? resolvedRange : undefined;\n\t\t}\n\t}\n\treturn undefined;\n}\n\n/**\n * Resolves a given `place` anchor in the face of a `ReconciliationPath`.\n * @param place - The anchor to resolve.\n * @param before - The state to which the change that the `place` anchor should be applied to.\n * @param path - The reconciliation path for the change that the `place` is part of.\n * @returns A matching `StablePlace` that is valid in the snapshot at the end of the `path`. Undefined if no such valid place exists.\n * @internal\n */\nexport function resolvePlaceAnchor(\n\tplace: PlaceAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): StablePlace | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function resolvePlaceAnchor(\n\tplace: PlaceAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasPlaceValidator & {\n\t\tplaceUpdatorForPath: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t}\n): StablePlace | undefined;\n\nexport function resolvePlaceAnchor(\n\tplace: PlaceAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{\n\t\tplaceValidator,\n\t\tplaceUpdatorForPath,\n\t}: HasPlaceValidator & {\n\t\tplaceUpdatorForPath: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t} = {\n\t\tplaceValidator: validateStablePlace,\n\t\tplaceUpdatorForPath: updateRelativePlaceAnchorForPath,\n\t}\n): StablePlace | undefined {\n\tlet newPlace: PlaceAnchor | undefined = place;\n\twhile (newPlace !== undefined && placeValidator(before, newPlace) !== EditValidationResult.Valid) {\n\t\tswitch (newPlace.semantics) {\n\t\t\tcase PlaceAnchorSemanticsChoice.RelativeToNode: {\n\t\t\t\tnewPlace = placeUpdatorForPath(newPlace as RelativePlaceAnchor, path);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PlaceAnchorSemanticsChoice.BoundToNode:\n\t\t\tcase undefined:\n\t\t\t\t// There's nothing we can do to fix this place\n\t\t\t\tnewPlace = undefined;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tfail('Unsupported choice of PlaceAnchorSemanticsChoice');\n\t\t}\n\t}\n\treturn newPlace;\n}\n\n/**\n * Updates a given `place` anchor in the face of a `ReconciliationPath` that violates its semantics.\n * @param place - The anchor to update. Assumed to be invalid after the latest change.\n * @param path - The sequence of edits that violates the anchor's semantics.\n * @returns A place anchor whose semantics are inline with the given `place`, and valid after the most recent change that made it invalid.\n * Undefined if those semantics cannot be preserved.\n * @internal\n */\nexport function updateRelativePlaceAnchorForPath(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>\n): PlaceAnchor | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function updateRelativePlaceAnchorForPath(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: {\n\t\tlastOffendingChangeFinder: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => EvaluatedChange<AnchoredChange> | undefined;\n\t\tplaceUpdatorForChange: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tchange: EvaluatedChange<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t}\n): PlaceAnchor | undefined;\n\nexport function updateRelativePlaceAnchorForPath(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{\n\t\tlastOffendingChangeFinder,\n\t\tplaceUpdatorForChange,\n\t}: {\n\t\tlastOffendingChangeFinder: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => EvaluatedChange<AnchoredChange> | undefined;\n\t\tplaceUpdatorForChange: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tchange: EvaluatedChange<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t} = {\n\t\tlastOffendingChangeFinder: findLastOffendingChange,\n\t\tplaceUpdatorForChange: updateRelativePlaceAnchorForChange,\n\t}\n): PlaceAnchor | undefined {\n\tif (place.referenceSibling === undefined) {\n\t\t// Start and end places cannot be updated.\n\t\treturn undefined;\n\t}\n\tconst lastOffendingChange = lastOffendingChangeFinder(place, path);\n\treturn lastOffendingChange === undefined ? undefined : placeUpdatorForChange(place, lastOffendingChange);\n}\n\n/**\n * Finds the latest change in the given `path` that last made the given `place` invalid.\n * @param place - A anchor that is invalid in the last snapshot on the path.\n * @param path - The sequence of edits that violates the anchor's semantics.\n * @returns The change that last made the given `place` invalid and the snapshots before and after it. Undefined if `place` was never valid.\n * @internal\n */\nexport function findLastOffendingChange(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>\n): EvaluatedChange<AnchoredChange> | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function findLastOffendingChange(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasPlaceValidator\n): EvaluatedChange<AnchoredChange> | undefined;\n\nexport function findLastOffendingChange(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{ placeValidator }: HasPlaceValidator = {\n\t\tplaceValidator: validateStablePlace,\n\t}\n): EvaluatedChange<AnchoredChange> | undefined {\n\tlet followingChange: { change: AnchoredChange; after: Snapshot } | undefined;\n\tfor (let editIndex = path.length - 1; editIndex >= 0; --editIndex) {\n\t\tconst edit = path[editIndex];\n\t\tfor (let changeIndex = edit.length - 1; changeIndex >= 0; --changeIndex) {\n\t\t\tconst change = edit[changeIndex];\n\t\t\tconst placeStatusAfterChange = placeValidator(change.after, place);\n\t\t\tif (placeStatusAfterChange === EditValidationResult.Valid) {\n\t\t\t\treturn {\n\t\t\t\t\tbefore: change.after,\n\t\t\t\t\t...assertNotUndefined(followingChange, 'The last change should not make the place valid'),\n\t\t\t\t};\n\t\t\t}\n\t\t\tfollowingChange = {\n\t\t\t\tchange: change.resolvedChange,\n\t\t\t\tafter: change.after,\n\t\t\t};\n\t\t}\n\t}\n\treturn path.length > 0 && placeValidator(path[0].before, place) === EditValidationResult.Valid\n\t\t? {\n\t\t\t\tbefore: path[0].before,\n\t\t\t\t...assertNotUndefined(followingChange, 'The last change should not make the place valid'),\n\t\t }\n\t\t: // The place was never valid\n\t\t undefined;\n}\n\n/**\n * Updates a given `place` anchor in the face of a change that violates its semantics.\n * @param place - The anchor to update.\n * @param change - The change that violates the anchor's semantics.\n * @returns A place anchor that is valid after the given `change` and in line with the original `place`'s semantics.\n * Undefined if those semantics cannot be preserved.\n * @internal\n */\nexport function updateRelativePlaceAnchorForChange(\n\tplace: RelativePlaceAnchor,\n\tchange: EvaluatedChange<AnchoredChange>\n): PlaceAnchor | undefined;\n\nexport function updateRelativePlaceAnchorForChange(\n\tplace: RelativePlaceAnchor,\n\t{ change, before }: EvaluatedChange<AnchoredChange>\n): PlaceAnchor | undefined {\n\tif (place.referenceSibling === undefined) {\n\t\t// A start or end place cannot be further updated\n\t\treturn undefined;\n\t}\n\tassert(change.type === ChangeType.Detach, 'A PlaceAnchor can only be made invalid by a detach change');\n\tconst targetPlace = placeFromStablePlace(before, place);\n\tconst startPlace = placeFromStablePlace(before, change.source.start);\n\tconst endPlace = placeFromStablePlace(before, change.source.end);\n\tif (targetPlace.trait.parent !== startPlace.trait.parent) {\n\t\t// The target place was detached indirectly by detaching its parent.\n\t\t// The anchor cannot recover.\n\t\treturn undefined;\n\t}\n\tlet newIndex;\n\tif (targetPlace.side === Side.After) {\n\t\tnewIndex = before.findIndexWithinTrait(startPlace) - 1;\n\t}\n\tif (targetPlace.side === Side.Before) {\n\t\tnewIndex = before.findIndexWithinTrait(endPlace);\n\t}\n\tconst referenceTrait = targetPlace.trait;\n\tconst parentNode = before.getSnapshotNode(referenceTrait.parent);\n\tconst traits = new Map(parentNode.traits);\n\tconst trait = assertNotUndefined(\n\t\ttraits.get(referenceTrait.label),\n\t\t'The trait must have been populated before the deletion'\n\t);\n\tconst referenceSibling = trait[newIndex];\n\tif (referenceSibling === undefined) {\n\t\treturn { referenceTrait, side: place.side, semantics: place.semantics };\n\t}\n\treturn { referenceSibling, side: place.side, semantics: place.semantics };\n}\n"]}
@@ -1,56 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { IChannelAttributes, IFluidDataStoreRuntime, IChannelServices, IChannelFactory } from '@fluidframework/datastore-definitions';
6
- import { ISharedObject } from '@fluidframework/shared-object-base';
7
- import { SharedTreeWithAnchors } from './SharedTreeWithAnchors';
8
- /**
9
- * Factory for SharedTreeWithAnchors.
10
- * Includes history in the summary.
11
- * @public
12
- */
13
- export declare class SharedTreeWithAnchorsFactory implements IChannelFactory {
14
- /**
15
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
16
- */
17
- static Type: string;
18
- /**
19
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
20
- */
21
- static Attributes: IChannelAttributes;
22
- /**
23
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
24
- */
25
- get type(): string;
26
- /**
27
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
28
- */
29
- get attributes(): IChannelAttributes;
30
- /**
31
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.load}
32
- */
33
- load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, _channelAttributes: Readonly<IChannelAttributes>): Promise<ISharedObject>;
34
- /**
35
- * Create a new SharedTree.
36
- * @param runtime - data store runtime that owns the new SharedTree
37
- * @param id - optional name for the SharedTree
38
- */
39
- create(runtime: IFluidDataStoreRuntime, id: string, expensiveValidation?: boolean): SharedTreeWithAnchors;
40
- /**
41
- * Determines how the SharedTree will summarize the history.
42
- * This is a workaround for lacking the ability to construct DDSs with custom parameters.
43
- */
44
- protected includeHistoryInSummary(): boolean;
45
- }
46
- /**
47
- * Factory for SharedTreeWithAnchors.
48
- * Does not include the history in the summary.
49
- * This is a workaround for lacking the ability to construct DDSs with custom parameters.
50
- * TODO:#54918: Clean up when DDS parameterization is supported.
51
- * @public
52
- */
53
- export declare class SharedTreeWithAnchorsFactoryNoHistory extends SharedTreeWithAnchorsFactory {
54
- protected includeHistoryInSummary(): boolean;
55
- }
56
- //# sourceMappingURL=Factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/Factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,eAAe;IACnE;;OAEG;IACH,OAAc,IAAI,SAA2B;IAE7C;;OAEG;IACH,OAAc,UAAU,EAAE,kBAAkB,CAI1C;IAEF;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,kBAAkB,CAE1C;IAED;;OAEG;IACU,IAAI,CAChB,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,gBAAgB,EAC1B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAC9C,OAAO,CAAC,aAAa,CAAC;IAMzB;;;;OAIG;IACI,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,GAAG,qBAAqB;IAMhH;;;OAGG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;CAG5C;AAED;;;;;;GAMG;AACH,qBAAa,qCAAsC,SAAQ,4BAA4B;IACtF,SAAS,CAAC,uBAAuB,IAAI,OAAO;CAG5C"}
@@ -1,74 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { SharedTreeWithAnchors } from './SharedTreeWithAnchors';
6
- /**
7
- * Factory for SharedTreeWithAnchors.
8
- * Includes history in the summary.
9
- * @public
10
- */
11
- export class SharedTreeWithAnchorsFactory {
12
- /**
13
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
14
- */
15
- get type() {
16
- return SharedTreeWithAnchorsFactory.Type;
17
- }
18
- /**
19
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
20
- */
21
- get attributes() {
22
- return SharedTreeWithAnchorsFactory.Attributes;
23
- }
24
- /**
25
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.load}
26
- */
27
- async load(runtime, id, services, _channelAttributes) {
28
- const sharedTree = new SharedTreeWithAnchors(runtime, id);
29
- await sharedTree.load(services);
30
- return sharedTree;
31
- }
32
- /**
33
- * Create a new SharedTree.
34
- * @param runtime - data store runtime that owns the new SharedTree
35
- * @param id - optional name for the SharedTree
36
- */
37
- create(runtime, id, expensiveValidation) {
38
- const sharedTree = new SharedTreeWithAnchors(runtime, id, expensiveValidation, this.includeHistoryInSummary());
39
- sharedTree.initializeLocal();
40
- return sharedTree;
41
- }
42
- /**
43
- * Determines how the SharedTree will summarize the history.
44
- * This is a workaround for lacking the ability to construct DDSs with custom parameters.
45
- */
46
- includeHistoryInSummary() {
47
- return true;
48
- }
49
- }
50
- /**
51
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
52
- */
53
- SharedTreeWithAnchorsFactory.Type = 'SharedTreeWithAnchors';
54
- /**
55
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
56
- */
57
- SharedTreeWithAnchorsFactory.Attributes = {
58
- type: SharedTreeWithAnchorsFactory.Type,
59
- snapshotFormatVersion: '0.1',
60
- packageVersion: '0.1',
61
- };
62
- /**
63
- * Factory for SharedTreeWithAnchors.
64
- * Does not include the history in the summary.
65
- * This is a workaround for lacking the ability to construct DDSs with custom parameters.
66
- * TODO:#54918: Clean up when DDS parameterization is supported.
67
- * @public
68
- */
69
- export class SharedTreeWithAnchorsFactoryNoHistory extends SharedTreeWithAnchorsFactory {
70
- includeHistoryInSummary() {
71
- return false;
72
- }
73
- }
74
- //# sourceMappingURL=Factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../src/anchored-edits/Factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,OAAO,4BAA4B;IAexC;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,4BAA4B,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACpB,OAAO,4BAA4B,CAAC,UAAU,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAChB,OAA+B,EAC/B,EAAU,EACV,QAA0B,EAC1B,kBAAgD;QAEhD,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAA+B,EAAE,EAAU,EAAE,mBAA6B;QACvF,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC/G,UAAU,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;;OAGG;IACO,uBAAuB;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;;AA3DD;;GAEG;AACW,iCAAI,GAAG,uBAAuB,CAAC;AAE7C;;GAEG;AACW,uCAAU,GAAuB;IAC9C,IAAI,EAAE,4BAA4B,CAAC,IAAI;IACvC,qBAAqB,EAAE,KAAK;IAC5B,cAAc,EAAE,KAAK;CACrB,CAAC;AAkDH;;;;;;GAMG;AACH,MAAM,OAAO,qCAAsC,SAAQ,4BAA4B;IAC5E,uBAAuB;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIChannelAttributes,\n\tIFluidDataStoreRuntime,\n\tIChannelServices,\n\tIChannelFactory,\n} from '@fluidframework/datastore-definitions';\nimport { ISharedObject } from '@fluidframework/shared-object-base';\nimport { SharedTreeWithAnchors } from './SharedTreeWithAnchors';\n\n/**\n * Factory for SharedTreeWithAnchors.\n * Includes history in the summary.\n * @public\n */\nexport class SharedTreeWithAnchorsFactory implements IChannelFactory {\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.\"type\"}\n\t */\n\tpublic static Type = 'SharedTreeWithAnchors';\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}\n\t */\n\tpublic static Attributes: IChannelAttributes = {\n\t\ttype: SharedTreeWithAnchorsFactory.Type,\n\t\tsnapshotFormatVersion: '0.1',\n\t\tpackageVersion: '0.1',\n\t};\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn SharedTreeWithAnchorsFactory.Type;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}\n\t */\n\tpublic get attributes(): IChannelAttributes {\n\t\treturn SharedTreeWithAnchorsFactory.Attributes;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.load}\n\t */\n\tpublic async load(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\tservices: IChannelServices,\n\t\t_channelAttributes: Readonly<IChannelAttributes>\n\t): Promise<ISharedObject> {\n\t\tconst sharedTree = new SharedTreeWithAnchors(runtime, id);\n\t\tawait sharedTree.load(services);\n\t\treturn sharedTree;\n\t}\n\n\t/**\n\t * Create a new SharedTree.\n\t * @param runtime - data store runtime that owns the new SharedTree\n\t * @param id - optional name for the SharedTree\n\t */\n\tpublic create(runtime: IFluidDataStoreRuntime, id: string, expensiveValidation?: boolean): SharedTreeWithAnchors {\n\t\tconst sharedTree = new SharedTreeWithAnchors(runtime, id, expensiveValidation, this.includeHistoryInSummary());\n\t\tsharedTree.initializeLocal();\n\t\treturn sharedTree;\n\t}\n\n\t/**\n\t * Determines how the SharedTree will summarize the history.\n\t * This is a workaround for lacking the ability to construct DDSs with custom parameters.\n\t */\n\tprotected includeHistoryInSummary(): boolean {\n\t\treturn true;\n\t}\n}\n\n/**\n * Factory for SharedTreeWithAnchors.\n * Does not include the history in the summary.\n * This is a workaround for lacking the ability to construct DDSs with custom parameters.\n * TODO:#54918: Clean up when DDS parameterization is supported.\n * @public\n */\nexport class SharedTreeWithAnchorsFactoryNoHistory extends SharedTreeWithAnchorsFactory {\n\tprotected includeHistoryInSummary(): boolean {\n\t\treturn false;\n\t}\n}\n"]}
@@ -1,245 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { DetachedSequenceId, NodeId, TraitLabel, UuidString } from '../Identifiers';
6
- import { EditBase, BuildNode, NodeData, Payload, TraitLocation, TreeNodeSequence } from '../generic';
7
- import { Build, ConstraintEffect, Detach, Insert, SetValue, StablePlace, StableRange, Constraint } from '../default-edits';
8
- /**
9
- * Types for Edits in Fluid Ops and Fluid summaries.
10
- *
11
- * Types describing locations in the tree are stable in the presence of other concurrent edits.
12
- *
13
- * All types are compatible with Fluid Serializable.
14
- *
15
- * These types can only be modified in ways that are both backwards and forwards compatible since they
16
- * are used in edits, and thus are persisted (using Fluid serialization).
17
- *
18
- * This means these types cannot be changed in any way that impacts their Fluid serialization
19
- * except through a very careful process:
20
- *
21
- * 1. The planned change must support all old data, and maintain the exact semantics of it.
22
- * This means that the change is pretty much limited to adding optional fields,
23
- * or making required fields optional.
24
- * 2. Support for the new format must be deployed to all users (This means all applications using SharedTree must do this),
25
- * and this deployment must be confirmed to be stable and will not be rolled back.
26
- * 3. Usage of the new format may start.
27
- *
28
- * Support for the old format can NEVER be removed: it must be maintained indefinably or old documents will break.
29
- * Because this process puts requirements on applications using shared tree,
30
- * step 3 should only ever be done in a Major version update,
31
- * and must be explicitly called out in the release notes
32
- * stating which versions of SharedTree are supported for documents modified by the new version.
33
- */
34
- /**
35
- * The information included in an anchored edit.
36
- * @public
37
- */
38
- export declare type AnchoredEditBase = EditBase<AnchoredChange>;
39
- /**
40
- * A change that composes an Edit.
41
- *
42
- * `Change` objects can be conveniently constructed with the helper methods exported on a constant of the same name.
43
- * @example
44
- * Change.insert(sourceId, destination)
45
- * @public
46
- */
47
- export declare type AnchoredChange = AnchoredInsert | AnchoredDetach | Build | AnchoredSetValue | AnchoredConstraint;
48
- /**
49
- * Inserts a sequence of nodes at the specified destination.
50
- * The source can be constructed either by a Build (used to insert new nodes) or a Detach (amounts to a "move" operation).
51
- * @public
52
- */
53
- export interface AnchoredInsert extends Insert {
54
- readonly destination: PlaceAnchor;
55
- }
56
- /**
57
- * Removes a sequence of nodes from the tree.
58
- * If a destination is specified, the detached sequence is associated with that ID and held for possible reuse
59
- * by later changes in this same Edit (such as by an Insert).
60
- * A Detach without a destination is a deletion of the specified sequence, as is a Detach with a destination that is not used later.
61
- * @public
62
- */
63
- export interface AnchoredDetach extends Detach {
64
- readonly source: RangeAnchor;
65
- }
66
- /**
67
- * Modifies the payload of a node.
68
- * @public
69
- */
70
- export interface AnchoredSetValue extends SetValue {
71
- readonly nodeToModify: NodeAnchor;
72
- }
73
- /**
74
- * A set of constraints on the validity of an Edit.
75
- * A Constraint is used to detect when an Edit, due to other concurrent edits, may have unintended effects or merge in
76
- * non-semantic ways. It is processed in order like any other Change in an Edit. It can cause an edit to fail if the
77
- * various constraints are not met at the time of evaluation (ex: the parentNode has changed due to concurrent editing).
78
- * Does not modify the document.
79
- * @public
80
- */
81
- export interface AnchoredConstraint extends Constraint {
82
- /**
83
- * Selects a sequence of nodes which will be checked against the constraints specified by the optional fields.
84
- * If `toConstrain` is invalid, it will be treated like a constraint being unmet.
85
- * Depending on `effect` this may or may not make the Edit invalid.
86
- *
87
- * When a constraint is not met, the effects is specified by `effect`.
88
- */
89
- readonly toConstrain: RangeAnchor;
90
- }
91
- /**
92
- * @public
93
- */
94
- export declare const AnchoredChange: {
95
- build: (source: TreeNodeSequence<BuildNode>, destination: DetachedSequenceId) => Build;
96
- insert: (source: DetachedSequenceId, destination: PlaceAnchor) => AnchoredInsert;
97
- detach: (source: RangeAnchor, destination?: DetachedSequenceId | undefined) => AnchoredDetach;
98
- setPayload: (nodeToModify: NodeAnchor, payload: Payload) => AnchoredSetValue;
99
- clearPayload: (nodeToModify: NodeAnchor) => AnchoredSetValue;
100
- constraint: (toConstrain: RangeAnchor, effect: ConstraintEffect, identityHash?: UuidString | undefined, length?: number | undefined, contentHash?: UuidString | undefined, parentNode?: NodeId | undefined, label?: TraitLabel | undefined) => AnchoredConstraint;
101
- };
102
- /**
103
- * Helper for creating a `Delete` edit.
104
- * @public
105
- */
106
- export declare const AnchoredDelete: {
107
- /**
108
- * @returns an AnchoredChange that deletes the supplied part of the tree.
109
- */
110
- create: (rangeAnchor: RangeAnchor) => AnchoredChange;
111
- };
112
- /**
113
- * Helper for creating an `Insert` edit.
114
- * @public
115
- */
116
- export declare const AnchoredInsert: {
117
- /**
118
- * @returns an AnchoredChange that inserts 'nodes' into the specified location in the tree.
119
- */
120
- create: (nodes: TreeNodeSequence<BuildNode>, destination: PlaceAnchor) => AnchoredChange[];
121
- };
122
- /**
123
- * Helper for creating a `Move` edit.
124
- * @public
125
- */
126
- export declare const AnchoredMove: {
127
- /**
128
- * @returns an AnchoredChange that moves the specified content to a new location in the tree.
129
- */
130
- create: (source: RangeAnchor, destination: PlaceAnchor) => AnchoredChange[];
131
- };
132
- /**
133
- * Indicates one of the predefined alternatives for the semantics of a place in a tree.
134
- */
135
- export declare enum PlaceAnchorSemanticsChoice {
136
- /**
137
- * The resulting `PlaceAnchor` is valid iff the referenced sibling or parent node with the given ID exists in the snapshot on which the
138
- * change is applied.
139
- */
140
- BoundToNode = 0,
141
- /**
142
- * The resulting `PlaceAnchor` is interpreted as relative to the siblings in the trait (or the parent in the case of start and end).
143
- * If the sibling referenced in the `PlaceAnchor` is moved, the anchor moves with it.
144
- * If the sibling referenced in the `PlaceAnchor` is deleted, the anchor is interpreted as relative to the next remaining sibling.
145
- * If no siblings remain on the side of interest (before the referenced sibling for "After" places and after the referenced sibling
146
- * for "Before" places) then the anchor is interpreted relative to the containing parent/trait (the start of the trait for "After"
147
- * places and the end of the trait for "Before" places).
148
- * If no siblings and no parent remains, the anchor is invalid.
149
- */
150
- RelativeToNode = 1
151
- }
152
- /**
153
- * A location in a trait with associated merge semantics.
154
- * See also `StablePlace`.
155
- * `PlaceAnchor`. objects can be conveniently constructed with the helper methods exported on a constant of the same name.
156
- * @example
157
- * PlaceAnchor.before(node)
158
- * PlaceAnchor.atStartOf(trait)
159
- * @public
160
- */
161
- export interface PlaceAnchor extends StablePlace {
162
- /**
163
- * The choice of semantics for the place.
164
- * No value is equivalent to PlaceAnchorSemanticsChoice.BoundToNode.
165
- */
166
- readonly semantics?: PlaceAnchorSemanticsChoice;
167
- }
168
- export declare type RelativePlaceAnchor = PlaceAnchor & {
169
- semantic: PlaceAnchorSemanticsChoice.RelativeToNode;
170
- };
171
- /**
172
- * Specifies the range of nodes from `start` to `end` within a trait.
173
- * See also `StableRange`.
174
- * 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.
175
- *
176
- * `RangeAnchor`s are currently resolved by resolving their constituent places and checking the validity of the resulting range.
177
- * This may lead to the range becoming invalid (i.e., cannot be resolved) despite there being reasonable ways to salvage it.
178
- * 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.
179
- * A reasonable resolution would be to resolve the range to [After(A), Before(D)]. The current implementation will instead treat
180
- * the range as invalid.
181
- * Future improvements may offer more a resilient resolution strategy for ranges.
182
- *
183
- * `RangeAnchor` objects can be conveniently constructed with the helper methods exported on a constant of the same name.
184
- * @example
185
- * RangeAnchor.from(PlaceAnchor.before(startNode)).to(PlaceAnchor.after(endNode))
186
- * @public
187
- */
188
- export interface RangeAnchor extends StableRange {
189
- readonly start: PlaceAnchor;
190
- readonly end: PlaceAnchor;
191
- }
192
- export declare type NodeAnchor = NodeId;
193
- /**
194
- * The remainder of this file consists of ergonomic factory methods for persisted types, or common combinations thereof (e.g. "Move" as a
195
- * combination of a "Detach" change and an "Insert" change).
196
- *
197
- * None of these helpers are persisted in documents, and therefore changes to their semantics need only follow standard semantic versioning
198
- * practices.
199
- */
200
- /**
201
- * @public
202
- */
203
- export declare const PlaceAnchor: {
204
- /**
205
- * @returns The location directly before `node`.
206
- */
207
- before: (node: NodeData | NodeId, semantics?: PlaceAnchorSemanticsChoice) => PlaceAnchor;
208
- /**
209
- * @returns The location directly after `node`.
210
- */
211
- after: (node: NodeData | NodeId, semantics?: PlaceAnchorSemanticsChoice) => PlaceAnchor;
212
- /**
213
- * @returns The location at the start of `trait`.
214
- */
215
- atStartOf: (trait: TraitLocation, semantics?: PlaceAnchorSemanticsChoice) => PlaceAnchor;
216
- /**
217
- * @returns The location at the end of `trait`.
218
- */
219
- atEndOf: (trait: TraitLocation, semantics?: PlaceAnchorSemanticsChoice) => PlaceAnchor;
220
- };
221
- /**
222
- * @public
223
- */
224
- export declare const RangeAnchor: {
225
- /**
226
- * Factory for producing a `RangeAnchor` from a start `StablePlace` to an end `StablePlace`.
227
- * @example
228
- * RangeAnchor.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))
229
- */
230
- from: (start: PlaceAnchor) => {
231
- to: (end: PlaceAnchor) => RangeAnchor;
232
- };
233
- /**
234
- * @returns a `RangeAnchor` which contains only the provided `node`.
235
- * Both the start and end `PlaceAnchor` objects used to anchor this `RangeAnchor` are in terms of the passed in node.
236
- */
237
- only: (node: NodeData | NodeAnchor, semantics?: PlaceAnchorSemanticsChoice) => RangeAnchor;
238
- /**
239
- * @returns a `RangeAnchor` which contains everything in the trait.
240
- * This is anchored using the provided `trait`, and is independent of the actual contents of the trait:
241
- * it does not use sibling anchoring.
242
- */
243
- all: (trait: TraitLocation) => RangeAnchor;
244
- };
245
- //# sourceMappingURL=PersistedTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PersistedTypes.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/PersistedTypes.ts"],"names":[],"mappings":"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"}