@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 +0,0 @@
1
- {"version":3,"file":"SnapshotUtilities.js","sourceRoot":"","sources":["../src/SnapshotUtilities.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qCAAgE;AAKhE;;;;;;GAMG;AACH,SAAgB,yBAAyB,CAAC,QAAkB,EAAE,MAAc,EAAE,UAAU,GAAG,KAAK;IAC/F,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG;QAChB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC3B,CAAC;IACF,8BAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,UAAU,EAAE;QACf,uCACI,QAAQ,KACX,IAAI,MAAM;gBACT,OAAO,sBAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YACrF,CAAC,IACA;KACF;IAED,uCACI,QAAQ,KACX,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IACpD;AACH,CAAC;AArBD,8DAqBC;AAED,oFAAoF;AACpF,SAAS,UAAU,CAClB,QAAkB,EAClB,MAAkD,EAClD,UAAU,GAAG,KAAK;IAElB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;QAC9C,IAAI,UAAU,EAAE;YACf,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACtC,GAAG;oBACF,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CACvD,CAAC;oBACF,OAAO,sBAAa,CAAC,IAA4B,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBAC1E,CAAC;gBACD,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;SACH;aAAM;YACN,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACtC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;gBACrF,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;SACH;KACD;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,CAAS,EAAE,CAAS;IACxD,OAAO,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAFD,oDAEC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,CAAS,EAAE,CAAS;IAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,wCAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { copyPropertyIfDefined, memoizeGetter } from './Common';\nimport { NodeId, TraitLabel } from './Identifiers';\nimport { ChangeNode, TraitMap } from './generic';\nimport { Snapshot } from './Snapshot';\n\n/**\n * Converts a node in a snapshot to an equivalent `ChangeNode`.\n * @param snapshot - the snapshot in which the node exists\n * @param nodeId - the id of the node in the snapshot\n * @param lazyTraits - whether or not traits should be populated lazily.\n * If lazy, the subtrees under each trait will not be read until the trait is first accessed.\n */\nexport function getChangeNodeFromSnapshot(snapshot: Snapshot, nodeId: NodeId, lazyTraits = false): ChangeNode {\n\tconst node = snapshot.getSnapshotNode(nodeId);\n\tconst nodeData = {\n\t\tdefinition: node.definition,\n\t\tidentifier: node.identifier,\n\t};\n\tcopyPropertyIfDefined(node, nodeData, 'payload');\n\n\tif (lazyTraits) {\n\t\treturn {\n\t\t\t...nodeData,\n\t\t\tget traits() {\n\t\t\t\treturn memoizeGetter(this, 'traits', makeTraits(snapshot, node.traits, lazyTraits));\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t...nodeData,\n\t\ttraits: makeTraits(snapshot, node.traits, lazyTraits),\n\t};\n}\n\n/** Given the traits of a SnapshotNode, return the corresponding traits on a Node */\nfunction makeTraits(\n\tsnapshot: Snapshot,\n\ttraits: ReadonlyMap<TraitLabel, readonly NodeId[]>,\n\tlazyTraits = false\n): TraitMap<ChangeNode> {\n\tconst traitMap = {};\n\tfor (const [label, trait] of traits.entries()) {\n\t\tif (lazyTraits) {\n\t\t\tObject.defineProperty(traitMap, label, {\n\t\t\t\tget() {\n\t\t\t\t\tconst treeNodeTrait = trait.map((nodeId) =>\n\t\t\t\t\t\tgetChangeNodeFromSnapshot(snapshot, nodeId, lazyTraits)\n\t\t\t\t\t);\n\t\t\t\t\treturn memoizeGetter(this as TraitMap<ChangeNode>, label, treeNodeTrait);\n\t\t\t\t},\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t} else {\n\t\t\tObject.defineProperty(traitMap, label, {\n\t\t\t\tvalue: trait.map((nodeId) => getChangeNodeFromSnapshot(snapshot, nodeId, lazyTraits)),\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn traitMap;\n}\n\n/**\n * Compares finite numbers to form a strict partial ordering.\n *\n * Handles +/-0 like Map: -0 is equal to +0.\n *\n * Once https://github.com/qwertie/btree-typescript/pull/15 is merged, we can use the version of this function from it.\n */\nexport function compareFiniteNumbers(a: number, b: number): number {\n\treturn a - b;\n}\n\n/**\n * Compares strings lexically to form a strict partial ordering.\n * Once https://github.com/qwertie/btree-typescript/pull/15 is merged, we can use the version of this function from it.\n */\nexport function compareStrings(a: string, b: string): number {\n\treturn a > b ? 1 : a === b ? 0 : -1;\n}\n"]}
@@ -1,144 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { Snapshot } from '../Snapshot';
6
- import { Change, StablePlace, StableRange } from '../default-edits';
7
- import { EditValidationResult } from '../Checkout';
8
- import { NodeId } from '../Identifiers';
9
- import { ReconciliationPath } from '../ReconciliationPath';
10
- import { AnchoredChange, NodeAnchor, PlaceAnchor, RangeAnchor, RelativePlaceAnchor } from './PersistedTypes';
11
- /**
12
- * A change and the snapshots that precede and succeed it.
13
- */
14
- export interface EvaluatedChange<TChange> {
15
- readonly change: TChange;
16
- /**
17
- * The snapshot before the change was applied.
18
- */
19
- readonly before: Snapshot;
20
- /**
21
- * The snapshot after the change was applied.
22
- */
23
- readonly after: Snapshot;
24
- }
25
- /**
26
- * Object that includes a function for resolving node anchors.
27
- */
28
- export interface HasNodeResolver {
29
- nodeResolver: (node: NodeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => NodeId | undefined;
30
- }
31
- /**
32
- * Object that includes a function for resolving place anchors.
33
- */
34
- export interface HasPlaceResolver {
35
- placeResolver: (range: PlaceAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => StablePlace | undefined;
36
- }
37
- /**
38
- * Object that includes a function for resolving range anchors.
39
- */
40
- export interface HasRangeResolver {
41
- rangeResolver: (range: RangeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => StableRange | undefined;
42
- }
43
- /**
44
- * Object that includes a function for validating places.
45
- */
46
- export interface HasPlaceValidator {
47
- placeValidator: (snapshot: Snapshot, place: StablePlace) => EditValidationResult;
48
- }
49
- /**
50
- * Reconciliates a given `change` in the face of concurrent edits described in a `ReconciliationPath`.
51
- * @param change - The anchor to reconciliate.
52
- * @param before - The state to which the `change` would be applied to.
53
- * @param path - The reconciliation path for the `change`.
54
- * @returns A `Change` that satisfies the same semantics of the given `change` but whose tree locations are valid in the `before` snapshot.
55
- * Undefined if no such change can be produced.
56
- * @internal
57
- */
58
- export declare function resolveChangeAnchors(change: AnchoredChange, before: Snapshot, path: ReconciliationPath<AnchoredChange>): Change | undefined;
59
- /**
60
- * For testing purposes only.
61
- * @internal
62
- */
63
- export declare function resolveChangeAnchors(change: AnchoredChange, before: Snapshot, path: ReconciliationPath<AnchoredChange>, dependencies?: HasNodeResolver & HasPlaceResolver & HasRangeResolver): Change | undefined;
64
- /**
65
- * Resolves a given `node` anchor in the face of a `ReconciliationPath`.
66
- * @param node - The anchor to resolve.
67
- * @param before - The state to which the change that the `node` anchor should be applied to.
68
- * @param path - The reconciliation path for the change that the `node` is part of.
69
- * @returns A matching `NodeId` that is valid in the snapshot at the end of the `path`. Undefined if no such node exists.
70
- * @internal
71
- */
72
- export declare function resolveNodeAnchor(node: NodeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>): NodeId | undefined;
73
- /**
74
- * Resolves a given `range` anchor in the face of a `ReconciliationPath`.
75
- * @param range - The anchor to resolve.
76
- * @param before - The state to which the change that the `range` anchor should be applied to.
77
- * @param path - The reconciliation path for the change that the `range` is part of.
78
- * @returns A matching `StableRange` that is valid in the snapshot at the end of the `path`. Undefined if no such valid range exists.
79
- * @internal
80
- */
81
- export declare function resolveRangeAnchor(range: RangeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>): StableRange | undefined;
82
- /**
83
- * For testing purposes only.
84
- * @internal
85
- */
86
- export declare function resolveRangeAnchor(range: RangeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>, dependencies?: HasPlaceResolver & {
87
- rangeValidator: (snapshot: Snapshot, range: StableRange) => EditValidationResult;
88
- }): StableRange | undefined;
89
- /**
90
- * Resolves a given `place` anchor in the face of a `ReconciliationPath`.
91
- * @param place - The anchor to resolve.
92
- * @param before - The state to which the change that the `place` anchor should be applied to.
93
- * @param path - The reconciliation path for the change that the `place` is part of.
94
- * @returns A matching `StablePlace` that is valid in the snapshot at the end of the `path`. Undefined if no such valid place exists.
95
- * @internal
96
- */
97
- export declare function resolvePlaceAnchor(place: PlaceAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>): StablePlace | undefined;
98
- /**
99
- * For testing purposes only.
100
- * @internal
101
- */
102
- export declare function resolvePlaceAnchor(place: PlaceAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>, dependencies?: HasPlaceValidator & {
103
- placeUpdatorForPath: (place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>) => PlaceAnchor | undefined;
104
- }): StablePlace | undefined;
105
- /**
106
- * Updates a given `place` anchor in the face of a `ReconciliationPath` that violates its semantics.
107
- * @param place - The anchor to update. Assumed to be invalid after the latest change.
108
- * @param path - The sequence of edits that violates the anchor's semantics.
109
- * @returns A place anchor whose semantics are inline with the given `place`, and valid after the most recent change that made it invalid.
110
- * Undefined if those semantics cannot be preserved.
111
- * @internal
112
- */
113
- export declare function updateRelativePlaceAnchorForPath(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>): PlaceAnchor | undefined;
114
- /**
115
- * For testing purposes only.
116
- * @internal
117
- */
118
- export declare function updateRelativePlaceAnchorForPath(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>, dependencies?: {
119
- lastOffendingChangeFinder: (place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>) => EvaluatedChange<AnchoredChange> | undefined;
120
- placeUpdatorForChange: (place: RelativePlaceAnchor, change: EvaluatedChange<AnchoredChange>) => PlaceAnchor | undefined;
121
- }): PlaceAnchor | undefined;
122
- /**
123
- * Finds the latest change in the given `path` that last made the given `place` invalid.
124
- * @param place - A anchor that is invalid in the last snapshot on the path.
125
- * @param path - The sequence of edits that violates the anchor's semantics.
126
- * @returns The change that last made the given `place` invalid and the snapshots before and after it. Undefined if `place` was never valid.
127
- * @internal
128
- */
129
- export declare function findLastOffendingChange(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>): EvaluatedChange<AnchoredChange> | undefined;
130
- /**
131
- * For testing purposes only.
132
- * @internal
133
- */
134
- export declare function findLastOffendingChange(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>, dependencies?: HasPlaceValidator): EvaluatedChange<AnchoredChange> | undefined;
135
- /**
136
- * Updates a given `place` anchor in the face of a change that violates its semantics.
137
- * @param place - The anchor to update.
138
- * @param change - The change that violates the anchor's semantics.
139
- * @returns A place anchor that is valid after the given `change` and in line with the original `place`'s semantics.
140
- * Undefined if those semantics cannot be preserved.
141
- * @internal
142
- */
143
- export declare function updateRelativePlaceAnchorForChange(place: RelativePlaceAnchor, change: EvaluatedChange<AnchoredChange>): PlaceAnchor | undefined;
144
- //# sourceMappingURL=AnchorResolution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnchorResolution.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/AnchorResolution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACN,MAAM,EAGN,WAAW,EACX,WAAW,EAGX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACN,cAAc,EACd,UAAU,EACV,WAAW,EAEX,WAAW,EACX,mBAAmB,EACnB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;CACnH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,aAAa,EAAE,CACd,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,KACpC,WAAW,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,aAAa,EAAE,CACd,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,KACpC,WAAW,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,KAAK,oBAAoB,CAAC;CACjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,GACtC,MAAM,GAAG,SAAS,CAAC;AAEtB;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,EACxC,YAAY,CAAC,EAAE,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAClE,MAAM,GAAG,SAAS,CAAC;AAoCtB;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,GACtC,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,GACtC,WAAW,GAAG,SAAS,CAAC;AAE3B;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,EACxC,YAAY,CAAC,EAAE,gBAAgB,GAAG;IACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,KAAK,oBAAoB,CAAC;CACjF,GACC,WAAW,GAAG,SAAS,CAAC;AA8B3B;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,GACtC,WAAW,GAAG,SAAS,CAAC;AAE3B;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,EACxC,YAAY,CAAC,EAAE,iBAAiB,GAAG;IAClC,mBAAmB,EAAE,CACpB,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,KACpC,WAAW,GAAG,SAAS,CAAC;CAC7B,GACC,WAAW,GAAG,SAAS,CAAC;AAsC3B;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC/C,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,GACtC,WAAW,GAAG,SAAS,CAAC;AAE3B;;;GAGG;AACH,wBAAgB,gCAAgC,CAC/C,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,EACxC,YAAY,CAAC,EAAE;IACd,yBAAyB,EAAE,CAC1B,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,KACpC,eAAe,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IACjD,qBAAqB,EAAE,CACtB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,KACnC,WAAW,GAAG,SAAS,CAAC;CAC7B,GACC,WAAW,GAAG,SAAS,CAAC;AA8B3B;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,GACtC,eAAe,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC,EACxC,YAAY,CAAC,EAAE,iBAAiB,GAC9B,eAAe,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;AAoC/C;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CACjD,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,GACrC,WAAW,GAAG,SAAS,CAAC"}
@@ -1,162 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
- * Licensed under the MIT License.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.updateRelativePlaceAnchorForChange = exports.findLastOffendingChange = exports.updateRelativePlaceAnchorForPath = exports.resolvePlaceAnchor = exports.resolveRangeAnchor = exports.resolveNodeAnchor = exports.resolveChangeAnchors = void 0;
8
- const Snapshot_1 = require("../Snapshot");
9
- const default_edits_1 = require("../default-edits");
10
- const Common_1 = require("../Common");
11
- const Checkout_1 = require("../Checkout");
12
- const PersistedTypes_1 = require("./PersistedTypes");
13
- function resolveChangeAnchors(change, before, path, { nodeResolver, placeResolver, rangeResolver } = {
14
- nodeResolver: resolveNodeAnchor,
15
- placeResolver: resolvePlaceAnchor,
16
- rangeResolver: resolveRangeAnchor,
17
- }) {
18
- switch (change.type) {
19
- case default_edits_1.ChangeType.Build:
20
- return change;
21
- case default_edits_1.ChangeType.Insert: {
22
- const destination = placeResolver(change.destination, before, path);
23
- return destination !== undefined ? Object.assign(Object.assign({}, change), { destination }) : undefined;
24
- }
25
- case default_edits_1.ChangeType.Detach: {
26
- const source = rangeResolver(change.source, before, path);
27
- return source !== undefined ? Object.assign(Object.assign({}, change), { source }) : undefined;
28
- }
29
- case default_edits_1.ChangeType.Constraint: {
30
- const toConstrain = rangeResolver(change.toConstrain, before, path);
31
- return toConstrain !== undefined ? Object.assign(Object.assign({}, change), { toConstrain }) : undefined;
32
- }
33
- case default_edits_1.ChangeType.SetValue: {
34
- const nodeToModify = nodeResolver(change.nodeToModify, before, path);
35
- return nodeToModify !== undefined ? Object.assign(Object.assign({}, change), { nodeToModify }) : undefined;
36
- }
37
- default:
38
- return Common_1.fail('Attempted to reconciliate unsupported change');
39
- }
40
- }
41
- exports.resolveChangeAnchors = resolveChangeAnchors;
42
- /**
43
- * Resolves a given `node` anchor in the face of a `ReconciliationPath`.
44
- * @param node - The anchor to resolve.
45
- * @param before - The state to which the change that the `node` anchor should be applied to.
46
- * @param path - The reconciliation path for the change that the `node` is part of.
47
- * @returns A matching `NodeId` that is valid in the snapshot at the end of the `path`. Undefined if no such node exists.
48
- * @internal
49
- */
50
- function resolveNodeAnchor(node, before, path) {
51
- return before.hasNode(node) ? node : undefined;
52
- }
53
- exports.resolveNodeAnchor = resolveNodeAnchor;
54
- function resolveRangeAnchor(range, before, path, { placeResolver, rangeValidator, } = {
55
- placeResolver: resolvePlaceAnchor,
56
- rangeValidator: default_edits_1.validateStableRange,
57
- }) {
58
- const start = placeResolver(range.start, before, path);
59
- if (start !== undefined) {
60
- const end = placeResolver(range.end, before, path);
61
- if (end !== undefined) {
62
- const resolvedRange = {
63
- start,
64
- end,
65
- };
66
- return rangeValidator(before, resolvedRange) === Checkout_1.EditValidationResult.Valid ? resolvedRange : undefined;
67
- }
68
- }
69
- return undefined;
70
- }
71
- exports.resolveRangeAnchor = resolveRangeAnchor;
72
- function resolvePlaceAnchor(place, before, path, { placeValidator, placeUpdatorForPath, } = {
73
- placeValidator: default_edits_1.validateStablePlace,
74
- placeUpdatorForPath: updateRelativePlaceAnchorForPath,
75
- }) {
76
- let newPlace = place;
77
- while (newPlace !== undefined && placeValidator(before, newPlace) !== Checkout_1.EditValidationResult.Valid) {
78
- switch (newPlace.semantics) {
79
- case PersistedTypes_1.PlaceAnchorSemanticsChoice.RelativeToNode: {
80
- newPlace = placeUpdatorForPath(newPlace, path);
81
- break;
82
- }
83
- case PersistedTypes_1.PlaceAnchorSemanticsChoice.BoundToNode:
84
- case undefined:
85
- // There's nothing we can do to fix this place
86
- newPlace = undefined;
87
- break;
88
- default:
89
- Common_1.fail('Unsupported choice of PlaceAnchorSemanticsChoice');
90
- }
91
- }
92
- return newPlace;
93
- }
94
- exports.resolvePlaceAnchor = resolvePlaceAnchor;
95
- function updateRelativePlaceAnchorForPath(place, path, { lastOffendingChangeFinder, placeUpdatorForChange, } = {
96
- lastOffendingChangeFinder: findLastOffendingChange,
97
- placeUpdatorForChange: updateRelativePlaceAnchorForChange,
98
- }) {
99
- if (place.referenceSibling === undefined) {
100
- // Start and end places cannot be updated.
101
- return undefined;
102
- }
103
- const lastOffendingChange = lastOffendingChangeFinder(place, path);
104
- return lastOffendingChange === undefined ? undefined : placeUpdatorForChange(place, lastOffendingChange);
105
- }
106
- exports.updateRelativePlaceAnchorForPath = updateRelativePlaceAnchorForPath;
107
- function findLastOffendingChange(place, path, { placeValidator } = {
108
- placeValidator: default_edits_1.validateStablePlace,
109
- }) {
110
- let followingChange;
111
- for (let editIndex = path.length - 1; editIndex >= 0; --editIndex) {
112
- const edit = path[editIndex];
113
- for (let changeIndex = edit.length - 1; changeIndex >= 0; --changeIndex) {
114
- const change = edit[changeIndex];
115
- const placeStatusAfterChange = placeValidator(change.after, place);
116
- if (placeStatusAfterChange === Checkout_1.EditValidationResult.Valid) {
117
- return Object.assign({ before: change.after }, Common_1.assertNotUndefined(followingChange, 'The last change should not make the place valid'));
118
- }
119
- followingChange = {
120
- change: change.resolvedChange,
121
- after: change.after,
122
- };
123
- }
124
- }
125
- return path.length > 0 && placeValidator(path[0].before, place) === Checkout_1.EditValidationResult.Valid
126
- ? Object.assign({ before: path[0].before }, Common_1.assertNotUndefined(followingChange, 'The last change should not make the place valid')) : // The place was never valid
127
- undefined;
128
- }
129
- exports.findLastOffendingChange = findLastOffendingChange;
130
- function updateRelativePlaceAnchorForChange(place, { change, before }) {
131
- if (place.referenceSibling === undefined) {
132
- // A start or end place cannot be further updated
133
- return undefined;
134
- }
135
- Common_1.assert(change.type === default_edits_1.ChangeType.Detach, 'A PlaceAnchor can only be made invalid by a detach change');
136
- const targetPlace = default_edits_1.placeFromStablePlace(before, place);
137
- const startPlace = default_edits_1.placeFromStablePlace(before, change.source.start);
138
- const endPlace = default_edits_1.placeFromStablePlace(before, change.source.end);
139
- if (targetPlace.trait.parent !== startPlace.trait.parent) {
140
- // The target place was detached indirectly by detaching its parent.
141
- // The anchor cannot recover.
142
- return undefined;
143
- }
144
- let newIndex;
145
- if (targetPlace.side === Snapshot_1.Side.After) {
146
- newIndex = before.findIndexWithinTrait(startPlace) - 1;
147
- }
148
- if (targetPlace.side === Snapshot_1.Side.Before) {
149
- newIndex = before.findIndexWithinTrait(endPlace);
150
- }
151
- const referenceTrait = targetPlace.trait;
152
- const parentNode = before.getSnapshotNode(referenceTrait.parent);
153
- const traits = new Map(parentNode.traits);
154
- const trait = Common_1.assertNotUndefined(traits.get(referenceTrait.label), 'The trait must have been populated before the deletion');
155
- const referenceSibling = trait[newIndex];
156
- if (referenceSibling === undefined) {
157
- return { referenceTrait, side: place.side, semantics: place.semantics };
158
- }
159
- return { referenceSibling, side: place.side, semantics: place.semantics };
160
- }
161
- exports.updateRelativePlaceAnchorForChange = updateRelativePlaceAnchorForChange;
162
- //# sourceMappingURL=AnchorResolution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnchorResolution.js","sourceRoot":"","sources":["../../src/anchored-edits/AnchorResolution.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,0CAA6C;AAC7C,oDAQ0B;AAC1B,sCAA6D;AAC7D,0CAAmD;AAGnD,qDAO0B;AA+E1B,SAAgB,oBAAoB,CACnC,MAAsB,EACtB,MAAgB,EAChB,IAAwC,EACxC,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,KAA4D;IACvG,YAAY,EAAE,iBAAiB;IAC/B,aAAa,EAAE,kBAAkB;IACjC,aAAa,EAAE,kBAAkB;CACjC;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE;QACpB,KAAK,0BAAU,CAAC,KAAK;YACpB,OAAO,MAAM,CAAC;QACf,KAAK,0BAAU,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACpE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,WAAW,IAAG,CAAC,CAAC,SAAS,CAAC;SAC1E;QACD,KAAK,0BAAU,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,MAAM,IAAG,CAAC,CAAC,SAAS,CAAC;SAChE;QACD,KAAK,0BAAU,CAAC,UAAU,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACpE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,WAAW,IAAG,CAAC,CAAC,SAAS,CAAC;SAC1E;QACD,KAAK,0BAAU,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACrE,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,YAAY,IAAG,CAAC,CAAC,SAAS,CAAC;SAC5E;QACD;YACC,OAAO,aAAI,CAAC,8CAA8C,CAAC,CAAC;KAC7D;AACF,CAAC;AAhCD,oDAgCC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAChC,IAAgB,EAChB,MAAgB,EAChB,IAAwC;IAExC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAND,8CAMC;AA6BD,SAAgB,kBAAkB,CACjC,KAAkB,EAClB,MAAgB,EAChB,IAAwC,EACxC,EACC,aAAa,EACb,cAAc,MAGX;IACH,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mCAAmB;CACnC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,KAAK,KAAK,SAAS,EAAE;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,GAAG,KAAK,SAAS,EAAE;YACtB,MAAM,aAAa,GAAG;gBACrB,KAAK;gBACL,GAAG;aACH,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,+BAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;SACxG;KACD;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AA1BD,gDA0BC;AAgCD,SAAgB,kBAAkB,CACjC,KAAkB,EAClB,MAAgB,EAChB,IAAwC,EACxC,EACC,cAAc,EACd,mBAAmB,MAMhB;IACH,cAAc,EAAE,mCAAmB;IACnC,mBAAmB,EAAE,gCAAgC;CACrD;IAED,IAAI,QAAQ,GAA4B,KAAK,CAAC;IAC9C,OAAO,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,+BAAoB,CAAC,KAAK,EAAE;QACjG,QAAQ,QAAQ,CAAC,SAAS,EAAE;YAC3B,KAAK,2CAA0B,CAAC,cAAc,CAAC,CAAC;gBAC/C,QAAQ,GAAG,mBAAmB,CAAC,QAA+B,EAAE,IAAI,CAAC,CAAC;gBACtE,MAAM;aACN;YACD,KAAK,2CAA0B,CAAC,WAAW,CAAC;YAC5C,KAAK,SAAS;gBACb,8CAA8C;gBAC9C,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACP;gBACC,aAAI,CAAC,kDAAkD,CAAC,CAAC;SAC1D;KACD;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAlCD,gDAkCC;AAkCD,SAAgB,gCAAgC,CAC/C,KAA0B,EAC1B,IAAwC,EACxC,EACC,yBAAyB,EACzB,qBAAqB,MAUlB;IACH,yBAAyB,EAAE,uBAAuB;IAClD,qBAAqB,EAAE,kCAAkC;CACzD;IAED,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE;QACzC,0CAA0C;QAC1C,OAAO,SAAS,CAAC;KACjB;IACD,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAC1G,CAAC;AA1BD,4EA0BC;AAwBD,SAAgB,uBAAuB,CACtC,KAA0B,EAC1B,IAAwC,EACxC,EAAE,cAAc,KAAwB;IACvC,cAAc,EAAE,mCAAmB;CACnC;IAED,IAAI,eAAwE,CAAC;IAC7E,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,sBAAsB,KAAK,+BAAoB,CAAC,KAAK,EAAE;gBAC1D,uBACC,MAAM,EAAE,MAAM,CAAC,KAAK,IACjB,2BAAkB,CAAC,eAAe,EAAE,iDAAiD,CAAC,EACxF;aACF;YACD,eAAe,GAAG;gBACjB,MAAM,EAAE,MAAM,CAAC,cAAc;gBAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;aACnB,CAAC;SACF;KACD;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,+BAAoB,CAAC,KAAK;QAC7F,CAAC,iBACC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IACnB,2BAAkB,CAAC,eAAe,EAAE,iDAAiD,CAAC,EAE3F,CAAC,CAAC,4BAA4B;QAC5B,SAAS,CAAC;AACd,CAAC;AAhCD,0DAgCC;AAeD,SAAgB,kCAAkC,CACjD,KAA0B,EAC1B,EAAE,MAAM,EAAE,MAAM,EAAmC;IAEnD,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE;QACzC,iDAAiD;QACjD,OAAO,SAAS,CAAC;KACjB;IACD,eAAM,CAAC,MAAM,CAAC,IAAI,KAAK,0BAAU,CAAC,MAAM,EAAE,2DAA2D,CAAC,CAAC;IACvG,MAAM,WAAW,GAAG,oCAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,oCAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,oCAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE;QACzD,oEAAoE;QACpE,6BAA6B;QAC7B,OAAO,SAAS,CAAC;KACjB;IACD,IAAI,QAAQ,CAAC;IACb,IAAI,WAAW,CAAC,IAAI,KAAK,eAAI,CAAC,KAAK,EAAE;QACpC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KACvD;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,eAAI,CAAC,MAAM,EAAE;QACrC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KACjD;IACD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,2BAAkB,CAC/B,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAChC,wDAAwD,CACxD,CAAC;IACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,gBAAgB,KAAK,SAAS,EAAE;QACnC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;KACxE;IACD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AAC3E,CAAC;AApCD,gFAoCC","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,79 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
- * Licensed under the MIT License.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SharedTreeWithAnchorsFactoryNoHistory = exports.SharedTreeWithAnchorsFactory = void 0;
8
- const SharedTreeWithAnchors_1 = require("./SharedTreeWithAnchors");
9
- /**
10
- * Factory for SharedTreeWithAnchors.
11
- * Includes history in the summary.
12
- * @public
13
- */
14
- class SharedTreeWithAnchorsFactory {
15
- /**
16
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
17
- */
18
- get type() {
19
- return SharedTreeWithAnchorsFactory.Type;
20
- }
21
- /**
22
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
23
- */
24
- get attributes() {
25
- return SharedTreeWithAnchorsFactory.Attributes;
26
- }
27
- /**
28
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.load}
29
- */
30
- async load(runtime, id, services, _channelAttributes) {
31
- const sharedTree = new SharedTreeWithAnchors_1.SharedTreeWithAnchors(runtime, id);
32
- await sharedTree.load(services);
33
- return sharedTree;
34
- }
35
- /**
36
- * Create a new SharedTree.
37
- * @param runtime - data store runtime that owns the new SharedTree
38
- * @param id - optional name for the SharedTree
39
- */
40
- create(runtime, id, expensiveValidation) {
41
- const sharedTree = new SharedTreeWithAnchors_1.SharedTreeWithAnchors(runtime, id, expensiveValidation, this.includeHistoryInSummary());
42
- sharedTree.initializeLocal();
43
- return sharedTree;
44
- }
45
- /**
46
- * Determines how the SharedTree will summarize the history.
47
- * This is a workaround for lacking the ability to construct DDSs with custom parameters.
48
- */
49
- includeHistoryInSummary() {
50
- return true;
51
- }
52
- }
53
- exports.SharedTreeWithAnchorsFactory = SharedTreeWithAnchorsFactory;
54
- /**
55
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
56
- */
57
- SharedTreeWithAnchorsFactory.Type = 'SharedTreeWithAnchors';
58
- /**
59
- * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
60
- */
61
- SharedTreeWithAnchorsFactory.Attributes = {
62
- type: SharedTreeWithAnchorsFactory.Type,
63
- snapshotFormatVersion: '0.1',
64
- packageVersion: '0.1',
65
- };
66
- /**
67
- * Factory for SharedTreeWithAnchors.
68
- * Does not include the history in the summary.
69
- * This is a workaround for lacking the ability to construct DDSs with custom parameters.
70
- * TODO:#54918: Clean up when DDS parameterization is supported.
71
- * @public
72
- */
73
- class SharedTreeWithAnchorsFactoryNoHistory extends SharedTreeWithAnchorsFactory {
74
- includeHistoryInSummary() {
75
- return false;
76
- }
77
- }
78
- exports.SharedTreeWithAnchorsFactoryNoHistory = SharedTreeWithAnchorsFactoryNoHistory;
79
- //# 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,mEAAgE;AAEhE;;;;GAIG;AACH,MAAa,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,6CAAqB,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,6CAAqB,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;;AA5DF,oEA6DC;AA5DA;;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,MAAa,qCAAsC,SAAQ,4BAA4B;IAC5E,uBAAuB;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAJD,sFAIC","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"]}