@fluid-experimental/tree 0.58.2002 → 0.59.1000

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (817) hide show
  1. package/README.md +159 -46
  2. package/dist/ChangeCompression.d.ts +39 -0
  3. package/dist/ChangeCompression.d.ts.map +1 -0
  4. package/dist/ChangeCompression.js +117 -0
  5. package/dist/ChangeCompression.js.map +1 -0
  6. package/{lib/default-edits/PersistedTypes.d.ts → dist/ChangeTypes.d.ts} +58 -105
  7. package/dist/ChangeTypes.d.ts.map +1 -0
  8. package/dist/{default-edits/PersistedTypes.js → ChangeTypes.js} +21 -76
  9. package/dist/ChangeTypes.js.map +1 -0
  10. package/dist/Checkout.d.ts +39 -27
  11. package/dist/Checkout.d.ts.map +1 -1
  12. package/dist/Checkout.js +61 -32
  13. package/dist/Checkout.js.map +1 -1
  14. package/dist/Common.d.ts +175 -38
  15. package/dist/Common.d.ts.map +1 -1
  16. package/dist/Common.js +240 -103
  17. package/dist/Common.js.map +1 -1
  18. package/dist/EagerCheckout.d.ts +24 -0
  19. package/dist/EagerCheckout.d.ts.map +1 -0
  20. package/dist/{BasicCheckout.js → EagerCheckout.js} +9 -6
  21. package/dist/EagerCheckout.js.map +1 -0
  22. package/dist/EditLog.d.ts +77 -63
  23. package/dist/EditLog.d.ts.map +1 -1
  24. package/dist/EditLog.js +85 -48
  25. package/dist/EditLog.js.map +1 -1
  26. package/dist/EditUtilities.d.ts +168 -0
  27. package/dist/EditUtilities.d.ts.map +1 -0
  28. package/dist/EditUtilities.js +373 -0
  29. package/dist/EditUtilities.js.map +1 -0
  30. package/dist/EventTypes.d.ts +73 -0
  31. package/dist/EventTypes.d.ts.map +1 -0
  32. package/dist/EventTypes.js +78 -0
  33. package/dist/EventTypes.js.map +1 -0
  34. package/dist/Forest.d.ts +29 -7
  35. package/dist/Forest.d.ts.map +1 -1
  36. package/dist/Forest.js +60 -36
  37. package/dist/Forest.js.map +1 -1
  38. package/dist/HistoryEditFactory.d.ts +20 -0
  39. package/dist/HistoryEditFactory.d.ts.map +1 -0
  40. package/dist/HistoryEditFactory.js +226 -0
  41. package/dist/HistoryEditFactory.js.map +1 -0
  42. package/dist/IdConversion.d.ts +12 -0
  43. package/dist/IdConversion.d.ts.map +1 -0
  44. package/dist/IdConversion.js +98 -0
  45. package/dist/IdConversion.js.map +1 -0
  46. package/dist/Identifiers.d.ts +89 -2
  47. package/dist/Identifiers.d.ts.map +1 -1
  48. package/dist/Identifiers.js +10 -0
  49. package/dist/Identifiers.js.map +1 -1
  50. package/dist/InitialTree.d.ts +2 -2
  51. package/dist/InitialTree.d.ts.map +1 -1
  52. package/dist/InitialTree.js +2 -1
  53. package/dist/InitialTree.js.map +1 -1
  54. package/dist/LazyCheckout.d.ts +28 -0
  55. package/dist/LazyCheckout.d.ts.map +1 -0
  56. package/dist/LazyCheckout.js +44 -0
  57. package/dist/LazyCheckout.js.map +1 -0
  58. package/dist/LogViewer.d.ts +129 -85
  59. package/dist/LogViewer.d.ts.map +1 -1
  60. package/dist/LogViewer.js +111 -85
  61. package/dist/LogViewer.js.map +1 -1
  62. package/dist/MergeHealth.d.ts +221 -0
  63. package/dist/MergeHealth.d.ts.map +1 -0
  64. package/dist/MergeHealth.js +263 -0
  65. package/dist/MergeHealth.js.map +1 -0
  66. package/dist/NodeIdUtilities.d.ts +105 -0
  67. package/dist/NodeIdUtilities.d.ts.map +1 -0
  68. package/dist/NodeIdUtilities.js +60 -0
  69. package/dist/NodeIdUtilities.js.map +1 -0
  70. package/dist/PayloadUtilities.d.ts +42 -0
  71. package/dist/PayloadUtilities.d.ts.map +1 -0
  72. package/dist/PayloadUtilities.js +114 -0
  73. package/dist/PayloadUtilities.js.map +1 -0
  74. package/dist/ReconciliationPath.d.ts +18 -13
  75. package/dist/ReconciliationPath.d.ts.map +1 -1
  76. package/dist/ReconciliationPath.js.map +1 -1
  77. package/dist/RevisionValueCache.d.ts +11 -2
  78. package/dist/RevisionValueCache.d.ts.map +1 -1
  79. package/dist/RevisionValueCache.js +2 -3
  80. package/dist/RevisionValueCache.js.map +1 -1
  81. package/dist/RevisionView.d.ts +83 -0
  82. package/dist/RevisionView.d.ts.map +1 -0
  83. package/dist/RevisionView.js +182 -0
  84. package/dist/RevisionView.js.map +1 -0
  85. package/dist/SerializationUtilities.d.ts +36 -0
  86. package/dist/SerializationUtilities.d.ts.map +1 -0
  87. package/dist/SerializationUtilities.js +102 -0
  88. package/dist/SerializationUtilities.js.map +1 -0
  89. package/dist/SharedTree.d.ts +439 -0
  90. package/dist/SharedTree.d.ts.map +1 -0
  91. package/dist/SharedTree.js +1109 -0
  92. package/dist/SharedTree.js.map +1 -0
  93. package/dist/SharedTreeEncoder.d.ts +102 -0
  94. package/dist/SharedTreeEncoder.d.ts.map +1 -0
  95. package/dist/SharedTreeEncoder.js +313 -0
  96. package/dist/SharedTreeEncoder.js.map +1 -0
  97. package/dist/StringInterner.d.ts +46 -0
  98. package/dist/StringInterner.d.ts.map +1 -0
  99. package/dist/StringInterner.js +61 -0
  100. package/dist/StringInterner.js.map +1 -0
  101. package/dist/Summary.d.ts +40 -0
  102. package/dist/Summary.d.ts.map +1 -0
  103. package/dist/Summary.js +23 -0
  104. package/dist/Summary.js.map +1 -0
  105. package/dist/SummaryBackCompatibility.d.ts +22 -22
  106. package/dist/SummaryBackCompatibility.d.ts.map +1 -1
  107. package/dist/SummaryBackCompatibility.js +30 -33
  108. package/dist/SummaryBackCompatibility.js.map +1 -1
  109. package/dist/SummaryTestUtilities.d.ts +31 -0
  110. package/dist/SummaryTestUtilities.d.ts.map +1 -0
  111. package/dist/SummaryTestUtilities.js +37 -0
  112. package/dist/SummaryTestUtilities.js.map +1 -0
  113. package/dist/Transaction.d.ts +52 -0
  114. package/dist/Transaction.d.ts.map +1 -0
  115. package/dist/Transaction.js +72 -0
  116. package/dist/Transaction.js.map +1 -0
  117. package/dist/TransactionInternal.d.ts +540 -0
  118. package/dist/TransactionInternal.d.ts.map +1 -0
  119. package/dist/TransactionInternal.js +626 -0
  120. package/dist/TransactionInternal.js.map +1 -0
  121. package/dist/TreeCompressor.d.ts +36 -0
  122. package/dist/TreeCompressor.d.ts.map +1 -0
  123. package/dist/TreeCompressor.js +137 -0
  124. package/dist/TreeCompressor.js.map +1 -0
  125. package/dist/TreeNodeHandle.d.ts +12 -18
  126. package/dist/TreeNodeHandle.d.ts.map +1 -1
  127. package/dist/TreeNodeHandle.js +13 -23
  128. package/dist/TreeNodeHandle.js.map +1 -1
  129. package/dist/TreeView.d.ts +166 -0
  130. package/dist/TreeView.d.ts.map +1 -0
  131. package/dist/TreeView.js +218 -0
  132. package/dist/TreeView.js.map +1 -0
  133. package/dist/TreeViewUtilities.d.ts +21 -0
  134. package/dist/TreeViewUtilities.d.ts.map +1 -0
  135. package/dist/TreeViewUtilities.js +77 -0
  136. package/dist/TreeViewUtilities.js.map +1 -0
  137. package/dist/{default-edits/UndoRedoHandler.d.ts → UndoRedoHandler.d.ts} +2 -2
  138. package/dist/UndoRedoHandler.d.ts.map +1 -0
  139. package/dist/{default-edits/UndoRedoHandler.js → UndoRedoHandler.js} +5 -9
  140. package/dist/UndoRedoHandler.js.map +1 -0
  141. package/dist/id-compressor/AppendOnlySortedMap.d.ts +127 -0
  142. package/dist/id-compressor/AppendOnlySortedMap.d.ts.map +1 -0
  143. package/dist/id-compressor/AppendOnlySortedMap.js +283 -0
  144. package/dist/id-compressor/AppendOnlySortedMap.js.map +1 -0
  145. package/dist/id-compressor/IdCompressor.d.ts +389 -0
  146. package/dist/id-compressor/IdCompressor.d.ts.map +1 -0
  147. package/dist/id-compressor/IdCompressor.js +1353 -0
  148. package/dist/id-compressor/IdCompressor.js.map +1 -0
  149. package/dist/id-compressor/IdRange.d.ts +11 -0
  150. package/dist/id-compressor/IdRange.d.ts.map +1 -0
  151. package/dist/id-compressor/IdRange.js +29 -0
  152. package/dist/id-compressor/IdRange.js.map +1 -0
  153. package/dist/id-compressor/NumericUuid.d.ts +63 -0
  154. package/dist/id-compressor/NumericUuid.d.ts.map +1 -0
  155. package/dist/id-compressor/NumericUuid.js +377 -0
  156. package/dist/id-compressor/NumericUuid.js.map +1 -0
  157. package/dist/id-compressor/index.d.ts +12 -0
  158. package/dist/id-compressor/index.d.ts.map +1 -0
  159. package/dist/id-compressor/index.js +26 -0
  160. package/dist/id-compressor/index.js.map +1 -0
  161. package/dist/id-compressor/persisted-types/0.0.1.d.ts +156 -0
  162. package/dist/id-compressor/persisted-types/0.0.1.d.ts.map +1 -0
  163. package/dist/id-compressor/persisted-types/0.0.1.js +7 -0
  164. package/dist/id-compressor/persisted-types/0.0.1.js.map +1 -0
  165. package/dist/id-compressor/persisted-types/index.d.ts +6 -0
  166. package/dist/id-compressor/persisted-types/index.d.ts.map +1 -0
  167. package/dist/id-compressor/persisted-types/index.js +18 -0
  168. package/dist/id-compressor/persisted-types/index.js.map +1 -0
  169. package/dist/index.d.ts +29 -9
  170. package/dist/index.d.ts.map +1 -1
  171. package/dist/index.js +50 -35
  172. package/dist/index.js.map +1 -1
  173. package/dist/persisted-types/0.0.2.d.ts +385 -0
  174. package/dist/persisted-types/0.0.2.d.ts.map +1 -0
  175. package/dist/persisted-types/0.0.2.js +113 -0
  176. package/dist/persisted-types/0.0.2.js.map +1 -0
  177. package/dist/persisted-types/0.1.1.d.ts +314 -0
  178. package/dist/persisted-types/0.1.1.d.ts.map +1 -0
  179. package/dist/persisted-types/0.1.1.js +153 -0
  180. package/dist/persisted-types/0.1.1.js.map +1 -0
  181. package/dist/persisted-types/index.d.ts +7 -0
  182. package/dist/persisted-types/index.d.ts.map +1 -0
  183. package/dist/persisted-types/index.js +20 -0
  184. package/dist/persisted-types/index.js.map +1 -0
  185. package/docs/0-1-1-Compression.md +228 -0
  186. package/docs/Breaking-Change-Migration.md +52 -0
  187. package/docs/Compression.md +2 -2
  188. package/docs/Telemetry.md +43 -0
  189. package/docs/Write-Format.md +19 -0
  190. package/lib/ChangeCompression.d.ts +39 -0
  191. package/lib/ChangeCompression.d.ts.map +1 -0
  192. package/lib/ChangeCompression.js +111 -0
  193. package/lib/ChangeCompression.js.map +1 -0
  194. package/{dist/default-edits/PersistedTypes.d.ts → lib/ChangeTypes.d.ts} +58 -105
  195. package/lib/ChangeTypes.d.ts.map +1 -0
  196. package/lib/{default-edits/PersistedTypes.js → ChangeTypes.js} +15 -68
  197. package/lib/ChangeTypes.js.map +1 -0
  198. package/lib/Checkout.d.ts +39 -27
  199. package/lib/Checkout.d.ts.map +1 -1
  200. package/lib/Checkout.js +53 -24
  201. package/lib/Checkout.js.map +1 -1
  202. package/lib/Common.d.ts +175 -38
  203. package/lib/Common.d.ts.map +1 -1
  204. package/lib/Common.js +226 -101
  205. package/lib/Common.js.map +1 -1
  206. package/lib/EagerCheckout.d.ts +24 -0
  207. package/lib/EagerCheckout.d.ts.map +1 -0
  208. package/lib/{BasicCheckout.js → EagerCheckout.js} +7 -4
  209. package/lib/EagerCheckout.js.map +1 -0
  210. package/lib/EditLog.d.ts +77 -63
  211. package/lib/EditLog.d.ts.map +1 -1
  212. package/lib/EditLog.js +83 -47
  213. package/lib/EditLog.js.map +1 -1
  214. package/lib/EditUtilities.d.ts +168 -0
  215. package/lib/EditUtilities.d.ts.map +1 -0
  216. package/lib/EditUtilities.js +353 -0
  217. package/lib/EditUtilities.js.map +1 -0
  218. package/lib/EventTypes.d.ts +73 -0
  219. package/lib/EventTypes.d.ts.map +1 -0
  220. package/lib/EventTypes.js +75 -0
  221. package/lib/EventTypes.js.map +1 -0
  222. package/lib/Forest.d.ts +29 -7
  223. package/lib/Forest.d.ts.map +1 -1
  224. package/lib/Forest.js +58 -35
  225. package/lib/Forest.js.map +1 -1
  226. package/lib/HistoryEditFactory.d.ts +20 -0
  227. package/lib/HistoryEditFactory.d.ts.map +1 -0
  228. package/lib/{default-edits/HistoryEditFactory.js → HistoryEditFactory.js} +78 -39
  229. package/lib/HistoryEditFactory.js.map +1 -0
  230. package/lib/IdConversion.d.ts +12 -0
  231. package/lib/IdConversion.d.ts.map +1 -0
  232. package/lib/IdConversion.js +91 -0
  233. package/lib/IdConversion.js.map +1 -0
  234. package/lib/Identifiers.d.ts +89 -2
  235. package/lib/Identifiers.d.ts.map +1 -1
  236. package/lib/Identifiers.js +8 -1
  237. package/lib/Identifiers.js.map +1 -1
  238. package/lib/InitialTree.d.ts +2 -2
  239. package/lib/InitialTree.d.ts.map +1 -1
  240. package/lib/InitialTree.js +2 -1
  241. package/lib/InitialTree.js.map +1 -1
  242. package/lib/LazyCheckout.d.ts +28 -0
  243. package/lib/LazyCheckout.d.ts.map +1 -0
  244. package/lib/LazyCheckout.js +40 -0
  245. package/lib/LazyCheckout.js.map +1 -0
  246. package/lib/LogViewer.d.ts +129 -85
  247. package/lib/LogViewer.d.ts.map +1 -1
  248. package/lib/LogViewer.js +103 -77
  249. package/lib/LogViewer.js.map +1 -1
  250. package/lib/MergeHealth.d.ts +221 -0
  251. package/lib/MergeHealth.d.ts.map +1 -0
  252. package/lib/MergeHealth.js +258 -0
  253. package/lib/MergeHealth.js.map +1 -0
  254. package/lib/NodeIdUtilities.d.ts +105 -0
  255. package/lib/NodeIdUtilities.d.ts.map +1 -0
  256. package/lib/NodeIdUtilities.js +53 -0
  257. package/lib/NodeIdUtilities.js.map +1 -0
  258. package/lib/PayloadUtilities.d.ts +42 -0
  259. package/lib/PayloadUtilities.d.ts.map +1 -0
  260. package/lib/PayloadUtilities.js +110 -0
  261. package/lib/PayloadUtilities.js.map +1 -0
  262. package/lib/ReconciliationPath.d.ts +18 -13
  263. package/lib/ReconciliationPath.d.ts.map +1 -1
  264. package/lib/ReconciliationPath.js.map +1 -1
  265. package/lib/RevisionValueCache.d.ts +11 -2
  266. package/lib/RevisionValueCache.d.ts.map +1 -1
  267. package/lib/RevisionValueCache.js +2 -3
  268. package/lib/RevisionValueCache.js.map +1 -1
  269. package/lib/RevisionView.d.ts +83 -0
  270. package/lib/RevisionView.d.ts.map +1 -0
  271. package/lib/RevisionView.js +175 -0
  272. package/lib/RevisionView.js.map +1 -0
  273. package/lib/SerializationUtilities.d.ts +36 -0
  274. package/lib/SerializationUtilities.d.ts.map +1 -0
  275. package/lib/SerializationUtilities.js +95 -0
  276. package/lib/SerializationUtilities.js.map +1 -0
  277. package/lib/SharedTree.d.ts +439 -0
  278. package/lib/SharedTree.d.ts.map +1 -0
  279. package/lib/SharedTree.js +1104 -0
  280. package/lib/SharedTree.js.map +1 -0
  281. package/lib/SharedTreeEncoder.d.ts +102 -0
  282. package/lib/SharedTreeEncoder.d.ts.map +1 -0
  283. package/lib/SharedTreeEncoder.js +308 -0
  284. package/lib/SharedTreeEncoder.js.map +1 -0
  285. package/lib/StringInterner.d.ts +46 -0
  286. package/lib/StringInterner.d.ts.map +1 -0
  287. package/lib/StringInterner.js +57 -0
  288. package/lib/StringInterner.js.map +1 -0
  289. package/lib/Summary.d.ts +40 -0
  290. package/lib/Summary.d.ts.map +1 -0
  291. package/lib/Summary.js +19 -0
  292. package/lib/Summary.js.map +1 -0
  293. package/lib/SummaryBackCompatibility.d.ts +22 -22
  294. package/lib/SummaryBackCompatibility.d.ts.map +1 -1
  295. package/lib/SummaryBackCompatibility.js +29 -32
  296. package/lib/SummaryBackCompatibility.js.map +1 -1
  297. package/lib/SummaryTestUtilities.d.ts +31 -0
  298. package/lib/SummaryTestUtilities.d.ts.map +1 -0
  299. package/lib/SummaryTestUtilities.js +32 -0
  300. package/lib/SummaryTestUtilities.js.map +1 -0
  301. package/lib/Transaction.d.ts +52 -0
  302. package/lib/Transaction.d.ts.map +1 -0
  303. package/lib/Transaction.js +68 -0
  304. package/lib/Transaction.js.map +1 -0
  305. package/lib/TransactionInternal.d.ts +540 -0
  306. package/lib/TransactionInternal.d.ts.map +1 -0
  307. package/lib/TransactionInternal.js +622 -0
  308. package/lib/TransactionInternal.js.map +1 -0
  309. package/lib/TreeCompressor.d.ts +36 -0
  310. package/lib/TreeCompressor.d.ts.map +1 -0
  311. package/lib/TreeCompressor.js +133 -0
  312. package/lib/TreeCompressor.js.map +1 -0
  313. package/lib/TreeNodeHandle.d.ts +12 -18
  314. package/lib/TreeNodeHandle.d.ts.map +1 -1
  315. package/lib/TreeNodeHandle.js +14 -24
  316. package/lib/TreeNodeHandle.js.map +1 -1
  317. package/lib/TreeView.d.ts +166 -0
  318. package/lib/TreeView.d.ts.map +1 -0
  319. package/lib/TreeView.js +214 -0
  320. package/lib/TreeView.js.map +1 -0
  321. package/lib/TreeViewUtilities.d.ts +21 -0
  322. package/lib/TreeViewUtilities.d.ts.map +1 -0
  323. package/lib/TreeViewUtilities.js +71 -0
  324. package/lib/TreeViewUtilities.js.map +1 -0
  325. package/lib/{default-edits/UndoRedoHandler.d.ts → UndoRedoHandler.d.ts} +2 -2
  326. package/lib/UndoRedoHandler.d.ts.map +1 -0
  327. package/lib/{default-edits/UndoRedoHandler.js → UndoRedoHandler.js} +3 -7
  328. package/lib/UndoRedoHandler.js.map +1 -0
  329. package/lib/id-compressor/AppendOnlySortedMap.d.ts +127 -0
  330. package/lib/id-compressor/AppendOnlySortedMap.d.ts.map +1 -0
  331. package/lib/id-compressor/AppendOnlySortedMap.js +278 -0
  332. package/lib/id-compressor/AppendOnlySortedMap.js.map +1 -0
  333. package/lib/id-compressor/IdCompressor.d.ts +389 -0
  334. package/lib/id-compressor/IdCompressor.d.ts.map +1 -0
  335. package/lib/id-compressor/IdCompressor.js +1343 -0
  336. package/lib/id-compressor/IdCompressor.js.map +1 -0
  337. package/lib/id-compressor/IdRange.d.ts +11 -0
  338. package/lib/id-compressor/IdRange.d.ts.map +1 -0
  339. package/lib/id-compressor/IdRange.js +25 -0
  340. package/lib/id-compressor/IdRange.js.map +1 -0
  341. package/lib/id-compressor/NumericUuid.d.ts +63 -0
  342. package/lib/id-compressor/NumericUuid.d.ts.map +1 -0
  343. package/lib/id-compressor/NumericUuid.js +365 -0
  344. package/lib/id-compressor/NumericUuid.js.map +1 -0
  345. package/lib/id-compressor/index.d.ts +12 -0
  346. package/lib/id-compressor/index.d.ts.map +1 -0
  347. package/lib/id-compressor/index.js +12 -0
  348. package/lib/id-compressor/index.js.map +1 -0
  349. package/lib/id-compressor/persisted-types/0.0.1.d.ts +156 -0
  350. package/lib/id-compressor/persisted-types/0.0.1.d.ts.map +1 -0
  351. package/lib/{test/Snapshot.tests.d.ts → id-compressor/persisted-types/0.0.1.js} +1 -1
  352. package/lib/id-compressor/persisted-types/0.0.1.js.map +1 -0
  353. package/lib/id-compressor/persisted-types/index.d.ts +6 -0
  354. package/lib/id-compressor/persisted-types/index.d.ts.map +1 -0
  355. package/lib/id-compressor/persisted-types/index.js +6 -0
  356. package/lib/id-compressor/persisted-types/index.js.map +1 -0
  357. package/lib/index.d.ts +29 -9
  358. package/lib/index.d.ts.map +1 -1
  359. package/lib/index.js +23 -6
  360. package/lib/index.js.map +1 -1
  361. package/lib/persisted-types/0.0.2.d.ts +385 -0
  362. package/lib/persisted-types/0.0.2.d.ts.map +1 -0
  363. package/lib/persisted-types/0.0.2.js +110 -0
  364. package/lib/persisted-types/0.0.2.js.map +1 -0
  365. package/lib/persisted-types/0.1.1.d.ts +314 -0
  366. package/lib/persisted-types/0.1.1.d.ts.map +1 -0
  367. package/lib/persisted-types/0.1.1.js +150 -0
  368. package/lib/persisted-types/0.1.1.js.map +1 -0
  369. package/lib/persisted-types/index.d.ts +7 -0
  370. package/lib/persisted-types/index.d.ts.map +1 -0
  371. package/lib/persisted-types/index.js +8 -0
  372. package/lib/persisted-types/index.js.map +1 -0
  373. package/lib/test/AppendOnlySortedMap.tests.d.ts +6 -0
  374. package/lib/test/AppendOnlySortedMap.tests.d.ts.map +1 -0
  375. package/lib/test/AppendOnlySortedMap.tests.js +169 -0
  376. package/lib/test/AppendOnlySortedMap.tests.js.map +1 -0
  377. package/lib/test/{SnapshotUtilities.tests.d.ts → ChangeCompression.tests.d.ts} +1 -1
  378. package/lib/test/ChangeCompression.tests.d.ts.map +1 -0
  379. package/lib/test/ChangeCompression.tests.js +145 -0
  380. package/lib/test/ChangeCompression.tests.js.map +1 -0
  381. package/lib/test/Checkout.tests.d.ts +2 -3
  382. package/lib/test/Checkout.tests.d.ts.map +1 -1
  383. package/lib/test/Checkout.tests.js +126 -69
  384. package/lib/test/Checkout.tests.js.map +1 -1
  385. package/lib/test/Common.tests.js +60 -2
  386. package/lib/test/Common.tests.js.map +1 -1
  387. package/lib/test/{BasicCheckout.tests.d.ts → EagerCheckout.tests.d.ts} +1 -1
  388. package/lib/test/EagerCheckout.tests.d.ts.map +1 -0
  389. package/lib/test/EagerCheckout.tests.js +20 -0
  390. package/lib/test/EagerCheckout.tests.js.map +1 -0
  391. package/lib/test/Edit.tests.js +22 -14
  392. package/lib/test/Edit.tests.js.map +1 -1
  393. package/lib/test/{Anchors.glassBox.tests.d.ts → EditLog.perf.tests.d.ts} +1 -1
  394. package/lib/test/EditLog.perf.tests.d.ts.map +1 -0
  395. package/lib/test/EditLog.perf.tests.js +30 -0
  396. package/lib/test/EditLog.perf.tests.js.map +1 -0
  397. package/lib/test/EditLog.tests.js +10 -6
  398. package/lib/test/EditLog.tests.js.map +1 -1
  399. package/lib/test/EditUtilities.tests.d.ts +6 -0
  400. package/lib/test/EditUtilities.tests.d.ts.map +1 -0
  401. package/lib/test/EditUtilities.tests.js +503 -0
  402. package/lib/test/EditUtilities.tests.js.map +1 -0
  403. package/lib/test/Forest.perf.tests.d.ts +6 -0
  404. package/lib/test/Forest.perf.tests.d.ts.map +1 -0
  405. package/lib/test/Forest.perf.tests.js +133 -0
  406. package/lib/test/Forest.perf.tests.js.map +1 -0
  407. package/lib/test/Forest.tests.js +54 -27
  408. package/lib/test/Forest.tests.js.map +1 -1
  409. package/lib/test/GenericTransaction.tests.js +12 -3
  410. package/lib/test/GenericTransaction.tests.js.map +1 -1
  411. package/lib/test/HistoryEditFactory.tests.d.ts +6 -0
  412. package/lib/test/HistoryEditFactory.tests.d.ts.map +1 -0
  413. package/lib/test/HistoryEditFactory.tests.js +90 -0
  414. package/lib/test/HistoryEditFactory.tests.js.map +1 -0
  415. package/lib/test/IdCompressor.perf.tests.d.ts +6 -0
  416. package/lib/test/IdCompressor.perf.tests.d.ts.map +1 -0
  417. package/lib/test/IdCompressor.perf.tests.js +304 -0
  418. package/lib/test/IdCompressor.perf.tests.js.map +1 -0
  419. package/lib/test/IdCompressor.tests.d.ts +6 -0
  420. package/lib/test/IdCompressor.tests.d.ts.map +1 -0
  421. package/lib/test/IdCompressor.tests.js +1075 -0
  422. package/lib/test/IdCompressor.tests.js.map +1 -0
  423. package/lib/test/IdConversion.tests.d.ts +6 -0
  424. package/lib/test/IdConversion.tests.d.ts.map +1 -0
  425. package/lib/test/IdConversion.tests.js +36 -0
  426. package/lib/test/IdConversion.tests.js.map +1 -0
  427. package/lib/test/LazyCheckout.tests.d.ts +6 -0
  428. package/lib/test/LazyCheckout.tests.d.ts.map +1 -0
  429. package/lib/test/LazyCheckout.tests.js +22 -0
  430. package/lib/test/LazyCheckout.tests.js.map +1 -0
  431. package/lib/test/LogViewer.tests.js +276 -191
  432. package/lib/test/LogViewer.tests.js.map +1 -1
  433. package/lib/test/{SharedTreeWithAnchors.tests.d.ts → MergeHealthTelemetryHeartbeat.tests.d.ts} +1 -1
  434. package/lib/test/MergeHealthTelemetryHeartbeat.tests.d.ts.map +1 -0
  435. package/lib/test/MergeHealthTelemetryHeartbeat.tests.js +342 -0
  436. package/lib/test/MergeHealthTelemetryHeartbeat.tests.js.map +1 -0
  437. package/lib/test/NumericUuid.perf.tests.d.ts +6 -0
  438. package/lib/test/NumericUuid.perf.tests.d.ts.map +1 -0
  439. package/lib/test/NumericUuid.perf.tests.js +68 -0
  440. package/lib/test/NumericUuid.perf.tests.js.map +1 -0
  441. package/lib/test/NumericUuid.tests.d.ts +6 -0
  442. package/lib/test/NumericUuid.tests.d.ts.map +1 -0
  443. package/lib/test/NumericUuid.tests.js +191 -0
  444. package/lib/test/NumericUuid.tests.js.map +1 -0
  445. package/lib/test/RevisionView.tests.d.ts +6 -0
  446. package/lib/test/RevisionView.tests.d.ts.map +1 -0
  447. package/lib/test/RevisionView.tests.js +133 -0
  448. package/lib/test/RevisionView.tests.js.map +1 -0
  449. package/lib/test/SharedTree.perf.tests.d.ts +6 -0
  450. package/lib/test/SharedTree.perf.tests.d.ts.map +1 -0
  451. package/lib/test/SharedTree.perf.tests.js +39 -0
  452. package/lib/test/SharedTree.perf.tests.js.map +1 -0
  453. package/lib/test/SharedTree.tests.js +15 -3
  454. package/lib/test/SharedTree.tests.js.map +1 -1
  455. package/lib/test/StringInterner.tests.d.ts +6 -0
  456. package/lib/test/StringInterner.tests.d.ts.map +1 -0
  457. package/lib/test/StringInterner.tests.js +71 -0
  458. package/lib/test/StringInterner.tests.js.map +1 -0
  459. package/lib/test/Summary.tests.d.ts +8 -0
  460. package/lib/test/Summary.tests.d.ts.map +1 -0
  461. package/lib/test/Summary.tests.js +407 -0
  462. package/lib/test/Summary.tests.js.map +1 -0
  463. package/lib/test/Transaction.tests.js +76 -330
  464. package/lib/test/Transaction.tests.js.map +1 -1
  465. package/lib/test/TransactionInternal.tests.d.ts +6 -0
  466. package/lib/test/TransactionInternal.tests.d.ts.map +1 -0
  467. package/lib/test/TransactionInternal.tests.js +568 -0
  468. package/lib/test/TransactionInternal.tests.js.map +1 -0
  469. package/lib/test/TreeCompression.tests.d.ts +6 -0
  470. package/lib/test/TreeCompression.tests.d.ts.map +1 -0
  471. package/lib/test/TreeCompression.tests.js +292 -0
  472. package/lib/test/TreeCompression.tests.js.map +1 -0
  473. package/lib/test/TreeView.tests.d.ts +6 -0
  474. package/lib/test/TreeView.tests.d.ts.map +1 -0
  475. package/lib/test/TreeView.tests.js +176 -0
  476. package/lib/test/TreeView.tests.js.map +1 -0
  477. package/lib/test/UndoRedoHandler.tests.js +2 -2
  478. package/lib/test/UndoRedoHandler.tests.js.map +1 -1
  479. package/lib/test/Virtualization.tests.js +146 -62
  480. package/lib/test/Virtualization.tests.js.map +1 -1
  481. package/lib/test/fuzz/Generators.d.ts +19 -0
  482. package/lib/test/fuzz/Generators.d.ts.map +1 -0
  483. package/lib/test/fuzz/Generators.js +420 -0
  484. package/lib/test/fuzz/Generators.js.map +1 -0
  485. package/lib/test/fuzz/SharedTreeFuzzTests.d.ts +20 -0
  486. package/lib/test/fuzz/SharedTreeFuzzTests.d.ts.map +1 -0
  487. package/lib/test/fuzz/SharedTreeFuzzTests.js +217 -0
  488. package/lib/test/fuzz/SharedTreeFuzzTests.js.map +1 -0
  489. package/lib/test/fuzz/Types.d.ts +133 -0
  490. package/lib/test/fuzz/Types.d.ts.map +1 -0
  491. package/lib/test/{GenericTransactionWithAnchors.tests.d.ts → fuzz/Types.js} +2 -2
  492. package/lib/test/fuzz/Types.js.map +1 -0
  493. package/lib/test/utilities/IdCompressorTestUtilities.d.ts +180 -0
  494. package/lib/test/utilities/IdCompressorTestUtilities.d.ts.map +1 -0
  495. package/lib/test/utilities/IdCompressorTestUtilities.js +528 -0
  496. package/lib/test/utilities/IdCompressorTestUtilities.js.map +1 -0
  497. package/lib/test/utilities/MockTransaction.d.ts +26 -7
  498. package/lib/test/utilities/MockTransaction.d.ts.map +1 -1
  499. package/lib/test/utilities/MockTransaction.js +40 -11
  500. package/lib/test/utilities/MockTransaction.js.map +1 -1
  501. package/lib/test/utilities/PendingLocalStateTests.d.ts +12 -0
  502. package/lib/test/utilities/PendingLocalStateTests.d.ts.map +1 -0
  503. package/lib/test/utilities/PendingLocalStateTests.js +105 -0
  504. package/lib/test/utilities/PendingLocalStateTests.js.map +1 -0
  505. package/lib/test/utilities/SharedTreeTests.d.ts +3 -4
  506. package/lib/test/utilities/SharedTreeTests.d.ts.map +1 -1
  507. package/lib/test/utilities/SharedTreeTests.js +696 -439
  508. package/lib/test/utilities/SharedTreeTests.js.map +1 -1
  509. package/lib/test/utilities/SharedTreeVersioningTests.d.ts +11 -0
  510. package/lib/test/utilities/SharedTreeVersioningTests.d.ts.map +1 -0
  511. package/lib/test/utilities/SharedTreeVersioningTests.js +370 -0
  512. package/lib/test/utilities/SharedTreeVersioningTests.js.map +1 -0
  513. package/lib/test/utilities/SummaryLoadPerfTests.d.ts +10 -0
  514. package/lib/test/utilities/SummaryLoadPerfTests.d.ts.map +1 -0
  515. package/lib/test/utilities/SummaryLoadPerfTests.js +102 -0
  516. package/lib/test/utilities/SummaryLoadPerfTests.js.map +1 -0
  517. package/lib/test/utilities/SummarySizeTests.d.ts +11 -0
  518. package/lib/test/utilities/SummarySizeTests.d.ts.map +1 -0
  519. package/lib/test/utilities/SummarySizeTests.js +158 -0
  520. package/lib/test/utilities/SummarySizeTests.js.map +1 -0
  521. package/lib/test/utilities/TestCommon.d.ts +9 -0
  522. package/lib/test/utilities/TestCommon.d.ts.map +1 -0
  523. package/lib/test/utilities/TestCommon.js +13 -0
  524. package/lib/test/utilities/TestCommon.js.map +1 -0
  525. package/lib/test/utilities/TestNode.d.ts +140 -0
  526. package/lib/test/utilities/TestNode.d.ts.map +1 -0
  527. package/lib/test/utilities/TestNode.js +292 -0
  528. package/lib/test/utilities/TestNode.js.map +1 -0
  529. package/lib/test/utilities/TestUtilities.d.ts +84 -70
  530. package/lib/test/utilities/TestUtilities.d.ts.map +1 -1
  531. package/lib/test/utilities/TestUtilities.js +218 -143
  532. package/lib/test/utilities/TestUtilities.js.map +1 -1
  533. package/lib/test/utilities/UndoRedoTests.d.ts +4 -5
  534. package/lib/test/utilities/UndoRedoTests.d.ts.map +1 -1
  535. package/lib/test/utilities/UndoRedoTests.js +138 -149
  536. package/lib/test/utilities/UndoRedoTests.js.map +1 -1
  537. package/package.json +22 -17
  538. package/src/ChangeCompression.ts +159 -0
  539. package/src/{default-edits/PersistedTypes.ts → ChangeTypes.ts} +62 -125
  540. package/src/Checkout.ts +82 -53
  541. package/src/Common.ts +317 -117
  542. package/src/EagerCheckout.ts +38 -0
  543. package/src/EditLog.ts +153 -100
  544. package/src/EditUtilities.ts +559 -0
  545. package/src/EventTypes.ts +74 -0
  546. package/src/Forest.ts +81 -73
  547. package/src/{default-edits/HistoryEditFactory.ts → HistoryEditFactory.ts} +103 -53
  548. package/src/IdConversion.ts +125 -0
  549. package/src/Identifiers.ts +101 -1
  550. package/src/InitialTree.ts +5 -4
  551. package/src/LazyCheckout.ts +51 -0
  552. package/src/LogViewer.ts +242 -166
  553. package/src/MergeHealth.ts +447 -0
  554. package/src/NodeIdUtilities.ts +156 -0
  555. package/src/PayloadUtilities.ts +124 -0
  556. package/src/ReconciliationPath.ts +18 -13
  557. package/src/RevisionValueCache.ts +14 -5
  558. package/src/RevisionView.ts +252 -0
  559. package/src/SerializationUtilities.ts +130 -0
  560. package/src/SharedTree.ts +1501 -0
  561. package/src/SharedTreeEncoder.ts +493 -0
  562. package/src/StringInterner.ts +72 -0
  563. package/src/Summary.ts +48 -0
  564. package/src/SummaryBackCompatibility.ts +47 -57
  565. package/src/SummaryTestUtilities.ts +54 -0
  566. package/src/Transaction.ts +89 -0
  567. package/src/TransactionInternal.ts +1087 -0
  568. package/src/TreeCompressor.ts +213 -0
  569. package/src/TreeNodeHandle.ts +19 -32
  570. package/src/TreeView.ts +322 -0
  571. package/src/TreeViewUtilities.ts +77 -0
  572. package/src/{default-edits/UndoRedoHandler.ts → UndoRedoHandler.ts} +8 -13
  573. package/src/id-compressor/AppendOnlySortedMap.ts +325 -0
  574. package/src/id-compressor/IdCompressor.md +3 -0
  575. package/src/id-compressor/IdCompressor.ts +1848 -0
  576. package/src/id-compressor/IdRange.ts +33 -0
  577. package/src/id-compressor/NumericUuid.ts +414 -0
  578. package/src/id-compressor/index.ts +13 -0
  579. package/src/id-compressor/persisted-types/0.0.1.ts +179 -0
  580. package/src/id-compressor/persisted-types/README.md +3 -0
  581. package/src/id-compressor/persisted-types/index.ts +6 -0
  582. package/src/index.ts +118 -59
  583. package/src/persisted-types/0.0.2.ts +442 -0
  584. package/src/persisted-types/0.1.1.ts +476 -0
  585. package/src/persisted-types/README.md +22 -0
  586. package/src/persisted-types/index.ts +9 -0
  587. package/.mocharc.js +0 -41
  588. package/api/tree.api.md +0 -729
  589. package/dist/BasicCheckout.d.ts +0 -23
  590. package/dist/BasicCheckout.d.ts.map +0 -1
  591. package/dist/BasicCheckout.js.map +0 -1
  592. package/dist/Snapshot.d.ts +0 -198
  593. package/dist/Snapshot.d.ts.map +0 -1
  594. package/dist/Snapshot.js +0 -267
  595. package/dist/Snapshot.js.map +0 -1
  596. package/dist/SnapshotUtilities.d.ts +0 -29
  597. package/dist/SnapshotUtilities.d.ts.map +0 -1
  598. package/dist/SnapshotUtilities.js +0 -73
  599. package/dist/SnapshotUtilities.js.map +0 -1
  600. package/dist/anchored-edits/AnchorResolution.d.ts +0 -144
  601. package/dist/anchored-edits/AnchorResolution.d.ts.map +0 -1
  602. package/dist/anchored-edits/AnchorResolution.js +0 -162
  603. package/dist/anchored-edits/AnchorResolution.js.map +0 -1
  604. package/dist/anchored-edits/Factory.d.ts +0 -56
  605. package/dist/anchored-edits/Factory.d.ts.map +0 -1
  606. package/dist/anchored-edits/Factory.js +0 -79
  607. package/dist/anchored-edits/Factory.js.map +0 -1
  608. package/dist/anchored-edits/PersistedTypes.d.ts +0 -245
  609. package/dist/anchored-edits/PersistedTypes.d.ts.map +0 -1
  610. package/dist/anchored-edits/PersistedTypes.js +0 -131
  611. package/dist/anchored-edits/PersistedTypes.js.map +0 -1
  612. package/dist/anchored-edits/SharedTreeWithAnchors.d.ts +0 -120
  613. package/dist/anchored-edits/SharedTreeWithAnchors.d.ts.map +0 -1
  614. package/dist/anchored-edits/SharedTreeWithAnchors.js +0 -115
  615. package/dist/anchored-edits/SharedTreeWithAnchors.js.map +0 -1
  616. package/dist/anchored-edits/TransactionWithAnchors.d.ts +0 -28
  617. package/dist/anchored-edits/TransactionWithAnchors.d.ts.map +0 -1
  618. package/dist/anchored-edits/TransactionWithAnchors.js +0 -36
  619. package/dist/anchored-edits/TransactionWithAnchors.js.map +0 -1
  620. package/dist/anchored-edits/index.d.ts +0 -10
  621. package/dist/anchored-edits/index.d.ts.map +0 -1
  622. package/dist/anchored-edits/index.js +0 -34
  623. package/dist/anchored-edits/index.js.map +0 -1
  624. package/dist/default-edits/EditUtilities.d.ts +0 -57
  625. package/dist/default-edits/EditUtilities.d.ts.map +0 -1
  626. package/dist/default-edits/EditUtilities.js +0 -192
  627. package/dist/default-edits/EditUtilities.js.map +0 -1
  628. package/dist/default-edits/Factory.d.ts +0 -56
  629. package/dist/default-edits/Factory.d.ts.map +0 -1
  630. package/dist/default-edits/Factory.js +0 -79
  631. package/dist/default-edits/Factory.js.map +0 -1
  632. package/dist/default-edits/HistoryEditFactory.d.ts +0 -19
  633. package/dist/default-edits/HistoryEditFactory.d.ts.map +0 -1
  634. package/dist/default-edits/HistoryEditFactory.js +0 -187
  635. package/dist/default-edits/HistoryEditFactory.js.map +0 -1
  636. package/dist/default-edits/PersistedTypes.d.ts.map +0 -1
  637. package/dist/default-edits/PersistedTypes.js.map +0 -1
  638. package/dist/default-edits/SharedTree.d.ts +0 -111
  639. package/dist/default-edits/SharedTree.d.ts.map +0 -1
  640. package/dist/default-edits/SharedTree.js +0 -124
  641. package/dist/default-edits/SharedTree.js.map +0 -1
  642. package/dist/default-edits/Summary.d.ts +0 -15
  643. package/dist/default-edits/Summary.d.ts.map +0 -1
  644. package/dist/default-edits/Summary.js +0 -35
  645. package/dist/default-edits/Summary.js.map +0 -1
  646. package/dist/default-edits/Transaction.d.ts +0 -41
  647. package/dist/default-edits/Transaction.d.ts.map +0 -1
  648. package/dist/default-edits/Transaction.js +0 -225
  649. package/dist/default-edits/Transaction.js.map +0 -1
  650. package/dist/default-edits/UndoRedoHandler.d.ts.map +0 -1
  651. package/dist/default-edits/UndoRedoHandler.js.map +0 -1
  652. package/dist/default-edits/index.d.ts +0 -13
  653. package/dist/default-edits/index.d.ts.map +0 -1
  654. package/dist/default-edits/index.js +0 -41
  655. package/dist/default-edits/index.js.map +0 -1
  656. package/dist/generic/GenericEditUtilities.d.ts +0 -26
  657. package/dist/generic/GenericEditUtilities.d.ts.map +0 -1
  658. package/dist/generic/GenericEditUtilities.js +0 -45
  659. package/dist/generic/GenericEditUtilities.js.map +0 -1
  660. package/dist/generic/GenericSharedTree.d.ts +0 -221
  661. package/dist/generic/GenericSharedTree.d.ts.map +0 -1
  662. package/dist/generic/GenericSharedTree.js +0 -447
  663. package/dist/generic/GenericSharedTree.js.map +0 -1
  664. package/dist/generic/GenericTransaction.d.ts +0 -87
  665. package/dist/generic/GenericTransaction.d.ts.map +0 -1
  666. package/dist/generic/GenericTransaction.js +0 -144
  667. package/dist/generic/GenericTransaction.js.map +0 -1
  668. package/dist/generic/PersistedTypes.d.ts +0 -194
  669. package/dist/generic/PersistedTypes.d.ts.map +0 -1
  670. package/dist/generic/PersistedTypes.js +0 -42
  671. package/dist/generic/PersistedTypes.js.map +0 -1
  672. package/dist/generic/Summary.d.ts +0 -63
  673. package/dist/generic/Summary.d.ts.map +0 -1
  674. package/dist/generic/Summary.js +0 -64
  675. package/dist/generic/Summary.js.map +0 -1
  676. package/dist/generic/index.d.ts +0 -10
  677. package/dist/generic/index.d.ts.map +0 -1
  678. package/dist/generic/index.js +0 -26
  679. package/dist/generic/index.js.map +0 -1
  680. package/docs/Future.md +0 -155
  681. package/lib/BasicCheckout.d.ts +0 -23
  682. package/lib/BasicCheckout.d.ts.map +0 -1
  683. package/lib/BasicCheckout.js.map +0 -1
  684. package/lib/Snapshot.d.ts +0 -198
  685. package/lib/Snapshot.d.ts.map +0 -1
  686. package/lib/Snapshot.js +0 -263
  687. package/lib/Snapshot.js.map +0 -1
  688. package/lib/SnapshotUtilities.d.ts +0 -29
  689. package/lib/SnapshotUtilities.d.ts.map +0 -1
  690. package/lib/SnapshotUtilities.js +0 -67
  691. package/lib/SnapshotUtilities.js.map +0 -1
  692. package/lib/anchored-edits/AnchorResolution.d.ts +0 -144
  693. package/lib/anchored-edits/AnchorResolution.d.ts.map +0 -1
  694. package/lib/anchored-edits/AnchorResolution.js +0 -152
  695. package/lib/anchored-edits/AnchorResolution.js.map +0 -1
  696. package/lib/anchored-edits/Factory.d.ts +0 -56
  697. package/lib/anchored-edits/Factory.d.ts.map +0 -1
  698. package/lib/anchored-edits/Factory.js +0 -74
  699. package/lib/anchored-edits/Factory.js.map +0 -1
  700. package/lib/anchored-edits/PersistedTypes.d.ts +0 -245
  701. package/lib/anchored-edits/PersistedTypes.d.ts.map +0 -1
  702. package/lib/anchored-edits/PersistedTypes.js +0 -128
  703. package/lib/anchored-edits/PersistedTypes.js.map +0 -1
  704. package/lib/anchored-edits/SharedTreeWithAnchors.d.ts +0 -120
  705. package/lib/anchored-edits/SharedTreeWithAnchors.d.ts.map +0 -1
  706. package/lib/anchored-edits/SharedTreeWithAnchors.js +0 -110
  707. package/lib/anchored-edits/SharedTreeWithAnchors.js.map +0 -1
  708. package/lib/anchored-edits/TransactionWithAnchors.d.ts +0 -28
  709. package/lib/anchored-edits/TransactionWithAnchors.d.ts.map +0 -1
  710. package/lib/anchored-edits/TransactionWithAnchors.js +0 -32
  711. package/lib/anchored-edits/TransactionWithAnchors.js.map +0 -1
  712. package/lib/anchored-edits/index.d.ts +0 -10
  713. package/lib/anchored-edits/index.d.ts.map +0 -1
  714. package/lib/anchored-edits/index.js +0 -11
  715. package/lib/anchored-edits/index.js.map +0 -1
  716. package/lib/default-edits/EditUtilities.d.ts +0 -57
  717. package/lib/default-edits/EditUtilities.d.ts.map +0 -1
  718. package/lib/default-edits/EditUtilities.js +0 -181
  719. package/lib/default-edits/EditUtilities.js.map +0 -1
  720. package/lib/default-edits/Factory.d.ts +0 -56
  721. package/lib/default-edits/Factory.d.ts.map +0 -1
  722. package/lib/default-edits/Factory.js +0 -74
  723. package/lib/default-edits/Factory.js.map +0 -1
  724. package/lib/default-edits/HistoryEditFactory.d.ts +0 -19
  725. package/lib/default-edits/HistoryEditFactory.d.ts.map +0 -1
  726. package/lib/default-edits/HistoryEditFactory.js.map +0 -1
  727. package/lib/default-edits/PersistedTypes.d.ts.map +0 -1
  728. package/lib/default-edits/PersistedTypes.js.map +0 -1
  729. package/lib/default-edits/SharedTree.d.ts +0 -111
  730. package/lib/default-edits/SharedTree.d.ts.map +0 -1
  731. package/lib/default-edits/SharedTree.js +0 -100
  732. package/lib/default-edits/SharedTree.js.map +0 -1
  733. package/lib/default-edits/Summary.d.ts +0 -15
  734. package/lib/default-edits/Summary.d.ts.map +0 -1
  735. package/lib/default-edits/Summary.js +0 -31
  736. package/lib/default-edits/Summary.js.map +0 -1
  737. package/lib/default-edits/Transaction.d.ts +0 -41
  738. package/lib/default-edits/Transaction.d.ts.map +0 -1
  739. package/lib/default-edits/Transaction.js +0 -221
  740. package/lib/default-edits/Transaction.js.map +0 -1
  741. package/lib/default-edits/UndoRedoHandler.d.ts.map +0 -1
  742. package/lib/default-edits/UndoRedoHandler.js.map +0 -1
  743. package/lib/default-edits/index.d.ts +0 -13
  744. package/lib/default-edits/index.d.ts.map +0 -1
  745. package/lib/default-edits/index.js +0 -14
  746. package/lib/default-edits/index.js.map +0 -1
  747. package/lib/generic/GenericEditUtilities.d.ts +0 -26
  748. package/lib/generic/GenericEditUtilities.d.ts.map +0 -1
  749. package/lib/generic/GenericEditUtilities.js +0 -38
  750. package/lib/generic/GenericEditUtilities.js.map +0 -1
  751. package/lib/generic/GenericSharedTree.d.ts +0 -221
  752. package/lib/generic/GenericSharedTree.d.ts.map +0 -1
  753. package/lib/generic/GenericSharedTree.js +0 -443
  754. package/lib/generic/GenericSharedTree.js.map +0 -1
  755. package/lib/generic/GenericTransaction.d.ts +0 -87
  756. package/lib/generic/GenericTransaction.d.ts.map +0 -1
  757. package/lib/generic/GenericTransaction.js +0 -140
  758. package/lib/generic/GenericTransaction.js.map +0 -1
  759. package/lib/generic/PersistedTypes.d.ts +0 -194
  760. package/lib/generic/PersistedTypes.d.ts.map +0 -1
  761. package/lib/generic/PersistedTypes.js +0 -39
  762. package/lib/generic/PersistedTypes.js.map +0 -1
  763. package/lib/generic/Summary.d.ts +0 -63
  764. package/lib/generic/Summary.d.ts.map +0 -1
  765. package/lib/generic/Summary.js +0 -58
  766. package/lib/generic/Summary.js.map +0 -1
  767. package/lib/generic/index.d.ts +0 -10
  768. package/lib/generic/index.d.ts.map +0 -1
  769. package/lib/generic/index.js +0 -11
  770. package/lib/generic/index.js.map +0 -1
  771. package/lib/test/Anchors.glassBox.tests.d.ts.map +0 -1
  772. package/lib/test/Anchors.glassBox.tests.js +0 -410
  773. package/lib/test/Anchors.glassBox.tests.js.map +0 -1
  774. package/lib/test/BasicCheckout.tests.d.ts.map +0 -1
  775. package/lib/test/BasicCheckout.tests.js +0 -8
  776. package/lib/test/BasicCheckout.tests.js.map +0 -1
  777. package/lib/test/GenericTransactionWithAnchors.tests.d.ts.map +0 -1
  778. package/lib/test/GenericTransactionWithAnchors.tests.js +0 -25
  779. package/lib/test/GenericTransactionWithAnchors.tests.js.map +0 -1
  780. package/lib/test/SharedTreeWithAnchors.tests.d.ts.map +0 -1
  781. package/lib/test/SharedTreeWithAnchors.tests.js +0 -420
  782. package/lib/test/SharedTreeWithAnchors.tests.js.map +0 -1
  783. package/lib/test/Snapshot.tests.d.ts.map +0 -1
  784. package/lib/test/Snapshot.tests.js +0 -96
  785. package/lib/test/Snapshot.tests.js.map +0 -1
  786. package/lib/test/SnapshotUtilities.tests.d.ts.map +0 -1
  787. package/lib/test/SnapshotUtilities.tests.js +0 -168
  788. package/lib/test/SnapshotUtilities.tests.js.map +0 -1
  789. package/lib/test/undoRedoStackManager.d.ts +0 -26
  790. package/lib/test/undoRedoStackManager.d.ts.map +0 -1
  791. package/lib/test/undoRedoStackManager.js +0 -176
  792. package/lib/test/undoRedoStackManager.js.map +0 -1
  793. package/lib/test/utilities/SummaryFormatCompatibilityTests.d.ts +0 -13
  794. package/lib/test/utilities/SummaryFormatCompatibilityTests.d.ts.map +0 -1
  795. package/lib/test/utilities/SummaryFormatCompatibilityTests.js +0 -154
  796. package/lib/test/utilities/SummaryFormatCompatibilityTests.js.map +0 -1
  797. package/src/BasicCheckout.ts +0 -34
  798. package/src/Snapshot.ts +0 -363
  799. package/src/SnapshotUtilities.ts +0 -88
  800. package/src/anchored-edits/AnchorResolution.ts +0 -442
  801. package/src/anchored-edits/Factory.ts +0 -94
  802. package/src/anchored-edits/PersistedTypes.ts +0 -310
  803. package/src/anchored-edits/SharedTreeWithAnchors.ts +0 -200
  804. package/src/anchored-edits/TransactionWithAnchors.ts +0 -39
  805. package/src/anchored-edits/index.ts +0 -21
  806. package/src/default-edits/EditUtilities.ts +0 -220
  807. package/src/default-edits/Factory.ts +0 -94
  808. package/src/default-edits/SharedTree.ts +0 -174
  809. package/src/default-edits/Summary.ts +0 -44
  810. package/src/default-edits/Transaction.ts +0 -262
  811. package/src/default-edits/index.ts +0 -29
  812. package/src/generic/GenericEditUtilities.ts +0 -46
  813. package/src/generic/GenericSharedTree.ts +0 -593
  814. package/src/generic/GenericTransaction.ts +0 -194
  815. package/src/generic/PersistedTypes.ts +0 -221
  816. package/src/generic/Summary.ts +0 -113
  817. package/src/generic/index.ts +0 -41
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0.0.2.d.ts","sourceRoot":"","sources":["../../src/persisted-types/0.0.2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
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.ConstraintEffect = exports.ChangeTypeInternal = exports.WriteFormat = exports.SharedTreeOpType = exports.EditStatus = exports.Side = void 0;
8
+ /**
9
+ * Defines a place relative to sibling.
10
+ * The "outside" of a trait is the `undefined` sibling,
11
+ * so After `undefined` is the beginning of the trait, and before `undefined` is the end.
12
+ *
13
+ * For this purpose, traits look like:
14
+ *
15
+ * `{undefined} - {Node 0} - {Node 1} - ... - {Node N} - {undefined}`
16
+ *
17
+ * Each `{value}` in the diagram is a possible sibling, which is either a Node or undefined.
18
+ * Each `-` in the above diagram is a `Place`, and can be describe as being `After` a particular `{sibling}` or `Before` it.
19
+ * This means that `After` `{undefined}` means the same `Place` as before the first node
20
+ * and `Before` `{undefined}` means the `Place` after the last Node.
21
+ *
22
+ * Each place can be specified, (aka 'anchored') in two ways (relative to the sibling before or after):
23
+ * the choice of which way to anchor a place only matters when the kept across an edit, and thus evaluated in multiple contexts where the
24
+ * two place description may no longer evaluate to the same place.
25
+ * @public
26
+ */
27
+ var Side;
28
+ (function (Side) {
29
+ Side[Side["Before"] = 0] = "Before";
30
+ Side[Side["After"] = 1] = "After";
31
+ })(Side = exports.Side || (exports.Side = {}));
32
+ /**
33
+ * The status code of an attempt to apply the changes in an Edit.
34
+ * @public
35
+ */
36
+ var EditStatus;
37
+ (function (EditStatus) {
38
+ /**
39
+ * The edit contained one or more malformed changes (e.g. was missing required fields such as `id`),
40
+ * or contained a sequence of changes that could not possibly be applied sequentially without error
41
+ * (e.g. an edit which tries to insert the same detached node twice).
42
+ */
43
+ EditStatus[EditStatus["Malformed"] = 0] = "Malformed";
44
+ /**
45
+ * The edit contained a well-formed sequence of changes that couldn't be applied to the current view,
46
+ * generally because concurrent changes caused one or more merge conflicts.
47
+ */
48
+ EditStatus[EditStatus["Invalid"] = 1] = "Invalid";
49
+ /**
50
+ * The edit was applied to the current view successfully.
51
+ */
52
+ EditStatus[EditStatus["Applied"] = 2] = "Applied";
53
+ })(EditStatus = exports.EditStatus || (exports.EditStatus = {}));
54
+ /**
55
+ * Types of ops handled by SharedTree.
56
+ */
57
+ var SharedTreeOpType;
58
+ (function (SharedTreeOpType) {
59
+ /** An op that includes edit information. */
60
+ SharedTreeOpType[SharedTreeOpType["Edit"] = 0] = "Edit";
61
+ /** Includes a Fluid handle that corresponds to an edit chunk. */
62
+ SharedTreeOpType[SharedTreeOpType["Handle"] = 1] = "Handle";
63
+ /** An op that does not affect the tree's state. */
64
+ SharedTreeOpType[SharedTreeOpType["NoOp"] = 2] = "NoOp";
65
+ /** Signals that SharedTree contents should be updated to match a new write format. */
66
+ SharedTreeOpType[SharedTreeOpType["Update"] = 3] = "Update";
67
+ })(SharedTreeOpType = exports.SharedTreeOpType || (exports.SharedTreeOpType = {}));
68
+ /**
69
+ * Format versions that SharedTree supports writing. Changes to op or summary formats necessitate updates.
70
+ * @public
71
+ */
72
+ var WriteFormat;
73
+ (function (WriteFormat) {
74
+ /** Stores all edits in their raw format. */
75
+ WriteFormat["v0_0_2"] = "0.0.2";
76
+ /** Supports history virtualization, tree compression, string interning, and makes currentView optional. */
77
+ WriteFormat["v0_1_1"] = "0.1.1";
78
+ })(WriteFormat = exports.WriteFormat || (exports.WriteFormat = {}));
79
+ /**
80
+ * {@inheritdoc ChangeType}
81
+ * @public
82
+ */
83
+ var ChangeTypeInternal;
84
+ (function (ChangeTypeInternal) {
85
+ ChangeTypeInternal[ChangeTypeInternal["Insert"] = 0] = "Insert";
86
+ ChangeTypeInternal[ChangeTypeInternal["Detach"] = 1] = "Detach";
87
+ ChangeTypeInternal[ChangeTypeInternal["Build"] = 2] = "Build";
88
+ ChangeTypeInternal[ChangeTypeInternal["SetValue"] = 3] = "SetValue";
89
+ ChangeTypeInternal[ChangeTypeInternal["Constraint"] = 4] = "Constraint";
90
+ ChangeTypeInternal[ChangeTypeInternal["CompressedBuild"] = 5] = "CompressedBuild";
91
+ })(ChangeTypeInternal = exports.ChangeTypeInternal || (exports.ChangeTypeInternal = {}));
92
+ /**
93
+ * What to do when a Constraint is violated.
94
+ * @public
95
+ */
96
+ var ConstraintEffect;
97
+ (function (ConstraintEffect) {
98
+ /**
99
+ * Discard Edit.
100
+ */
101
+ ConstraintEffect[ConstraintEffect["InvalidAndDiscard"] = 0] = "InvalidAndDiscard";
102
+ /**
103
+ * Discard Edit, but record metadata that application may want to try and recover this change by recreating it.
104
+ * Should this be the default policy for when another (non Constraint) change is invalid?
105
+ */
106
+ ConstraintEffect[ConstraintEffect["InvalidRetry"] = 1] = "InvalidRetry";
107
+ /**
108
+ * Apply the change, but flag it for possible reconsideration by the app
109
+ * (applying it is better than not, but perhaps the high level logic could produce something better).
110
+ */
111
+ ConstraintEffect[ConstraintEffect["ValidRetry"] = 2] = "ValidRetry";
112
+ })(ConstraintEffect = exports.ConstraintEffect || (exports.ConstraintEffect = {}));
113
+ //# sourceMappingURL=0.0.2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0.0.2.js","sourceRoot":"","sources":["../../src/persisted-types/0.0.2.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAaH;;;;;;;;;;;;;;;;;;GAkBG;AACH,IAAY,IAGX;AAHD,WAAY,IAAI;IACf,mCAAU,CAAA;IACV,iCAAS,CAAA;AACV,CAAC,EAHW,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAGf;AAqID;;;GAGG;AACH,IAAY,UAgBX;AAhBD,WAAY,UAAU;IACrB;;;;OAIG;IACH,qDAAS,CAAA;IACT;;;OAGG;IACH,iDAAO,CAAA;IACP;;OAEG;IACH,iDAAO,CAAA;AACR,CAAC,EAhBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAgBrB;AAED;;GAEG;AACH,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC3B,4CAA4C;IAC5C,uDAAI,CAAA;IACJ,iEAAiE;IACjE,2DAAM,CAAA;IACN,mDAAmD;IACnD,uDAAI,CAAA;IACJ,sFAAsF;IACtF,2DAAM,CAAA;AACP,CAAC,EATW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAS3B;AAyCD;;;GAGG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACtB,4CAA4C;IAC5C,+BAAgB,CAAA;IAChB,2GAA2G;IAC3G,+BAAgB,CAAA;AACjB,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AA2BD;;;GAGG;AACH,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC7B,+DAAM,CAAA;IACN,+DAAM,CAAA;IACN,6DAAK,CAAA;IACL,mEAAQ,CAAA;IACR,uEAAU,CAAA;IACV,iFAAe,CAAA;AAChB,CAAC,EAPW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAO7B;AAwED;;;GAGG;AACH,IAAY,gBAiBX;AAjBD,WAAY,gBAAgB;IAC3B;;OAEG;IACH,iFAAiB,CAAA;IAEjB;;;OAGG;IACH,uEAAY,CAAA;IAEZ;;;OAGG;IACH,mEAAU,CAAA;AACX,CAAC,EAjBW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAiB3B","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { Serializable } from '@fluidframework/datastore-definitions';\nimport type {\n\tEditId,\n\tDefinition,\n\tNodeId,\n\tStableNodeId,\n\tTraitLabel,\n\tDetachedSequenceId,\n\tUuidString,\n} from '../Identifiers';\n\n/**\n * Defines a place relative to sibling.\n * The \"outside\" of a trait is the `undefined` sibling,\n * so After `undefined` is the beginning of the trait, and before `undefined` is the end.\n *\n * For this purpose, traits look like:\n *\n * `{undefined} - {Node 0} - {Node 1} - ... - {Node N} - {undefined}`\n *\n * Each `{value}` in the diagram is a possible sibling, which is either a Node or undefined.\n * Each `-` in the above diagram is a `Place`, and can be describe as being `After` a particular `{sibling}` or `Before` it.\n * This means that `After` `{undefined}` means the same `Place` as before the first node\n * and `Before` `{undefined}` means the `Place` after the last Node.\n *\n * Each place can be specified, (aka 'anchored') in two ways (relative to the sibling before or after):\n * the choice of which way to anchor a place only matters when the kept across an edit, and thus evaluated in multiple contexts where the\n * two place description may no longer evaluate to the same place.\n * @public\n */\nexport enum Side {\n\tBefore = 0,\n\tAfter = 1,\n}\n\n/**\n * A collection of changes to the tree that are applied atomically along with a unique identifier for the edit.\n * If any individual change fails to apply, the entire Edit will fail to apply.\n * @public\n */\nexport interface Edit<TChange> extends EditBase<TChange> {\n\t/**\n\t * Unique identifier for this edit. Must never be reused.\n\t * Used for referencing and de-duplicating edits.\n\t */\n\treadonly id: EditId;\n}\n\n/**\n * A collection of changes to the tree that are applied atomically. If any individual change fails to apply,\n * the entire Edit will fail to apply.\n * @public\n */\nexport interface EditWithoutId<TChange> extends EditBase<TChange> {\n\t/**\n\t * Used to explicitly state that EditWithoutId cannot contain an id and prevents type Edit from being assigned to type EditWithoutId.\n\t */\n\treadonly id?: never;\n}\n\n/**\n * The information included in an edit.\n * @public\n */\nexport interface EditBase<TChange> {\n\t/**\n\t * Actual changes to apply.\n\t * Applied in order as part of a single transaction.\n\t */\n\treadonly changes: readonly TChange[];\n\n\t/**\n\t * For edits which are being re-issued due to a conflict, the number of times this edit has already been attempted.\n\t * Undefined means 0.\n\t */\n\treadonly pastAttemptCount?: number;\n\n\t// Add more metadata fields as needed in the future.\n\t// Include \"high level\"/\"Domain Specific\"/\"Hierarchal\" edits for application/domain use in implementing domain aware merge heuristics.\n}\n\n/**\n * Json compatible representation of a payload storing arbitrary Serializable data.\n *\n * Keys starting with \"IFluid\" are reserved for special use such as the JavaScript feature detection pattern and should not be used.\n *\n * See {@link comparePayloads} for equality semantics and related details (like what is allowed to be lost when serializing)\n *\n * TODO:#51984: Allow opting into heuristic blobbing in snapshots with a special IFluid key.\n *\n * @public\n */\nexport type Payload = Serializable;\n\n/**\n * Json compatible map as object.\n * Keys are TraitLabels,\n * Values are the content of the trait specified by the key.\n * @public\n */\nexport interface TraitMap<TChild> {\n\treadonly [key: string]: TreeNodeSequence<TChild>;\n}\n\n/**\n * A sequence of Nodes that make up a trait under a Node\n * @public\n */\nexport type TreeNodeSequence<TChild> = readonly TChild[];\n\n/**\n * An object which may have traits with children of the given type underneath it\n * @public\n */\nexport interface HasTraits<TChild> {\n\treadonly traits: TraitMap<TChild>;\n}\n\n/**\n * The fields required by a node in a tree\n * @public\n */\nexport interface NodeData<TId> {\n\t/**\n\t * A payload of arbitrary serializable data\n\t */\n\treadonly payload?: Payload;\n\n\t/**\n\t * The meaning of this node.\n\t * Provides contexts/semantics for this node and its content.\n\t * Typically use to associate a node with metadata (including a schema) and source code (types, behaviors, etc).\n\t */\n\treadonly definition: Definition;\n\t/**\n\t * Identifier which can be used to refer to this Node.\n\t */\n\treadonly identifier: TId;\n}\n\n/**\n * Satisfies `NodeData` and may contain children under traits (which may or may not be `TreeNodes`)\n * @public\n */\nexport interface TreeNode<TChild, TId> extends NodeData<TId>, HasTraits<TChild> {}\n\n/**\n * A tree whose nodes are either TreeNodes or a placeholder\n */\nexport type PlaceholderTree<TPlaceholder = never> = TreeNode<PlaceholderTree<TPlaceholder>, NodeId> | TPlaceholder;\n\n/**\n * Specifies the location of a trait (a labeled sequence of nodes) within the tree.\n * @public\n */\nexport interface TraitLocationInternal_0_0_2 {\n\treadonly parent: StableNodeId;\n\treadonly label: TraitLabel;\n}\n\n/**\n * JSON-compatible Node type. Objects of this type will be persisted in internal change objects (under Edits) in the SharedTree history.\n * @public\n */\nexport type ChangeNode_0_0_2 = TreeNode<ChangeNode_0_0_2, StableNodeId>;\n\n/**\n * The status code of an attempt to apply the changes in an Edit.\n * @public\n */\nexport enum EditStatus {\n\t/**\n\t * The edit contained one or more malformed changes (e.g. was missing required fields such as `id`),\n\t * or contained a sequence of changes that could not possibly be applied sequentially without error\n\t * (e.g. an edit which tries to insert the same detached node twice).\n\t */\n\tMalformed,\n\t/**\n\t * The edit contained a well-formed sequence of changes that couldn't be applied to the current view,\n\t * generally because concurrent changes caused one or more merge conflicts.\n\t */\n\tInvalid,\n\t/**\n\t * The edit was applied to the current view successfully.\n\t */\n\tApplied,\n}\n\n/**\n * Types of ops handled by SharedTree.\n */\nexport enum SharedTreeOpType {\n\t/** An op that includes edit information. */\n\tEdit,\n\t/** Includes a Fluid handle that corresponds to an edit chunk. */\n\tHandle,\n\t/** An op that does not affect the tree's state. */\n\tNoOp,\n\t/** Signals that SharedTree contents should be updated to match a new write format. */\n\tUpdate,\n}\n\n/**\n * SharedTreeOp containing a version stamp marking the write format of the tree which submitted it.\n */\nexport interface VersionedOp<Version extends WriteFormat = WriteFormat> {\n\t/** The supported SharedTree write version, see {@link WriteFormat}. */\n\treadonly version: Version;\n}\n\n/**\n * Requirements for SharedTree ops.\n */\nexport type SharedTreeOp_0_0_2 = SharedTreeEditOp_0_0_2 | SharedTreeNoOp | SharedTreeUpdateOp;\n\n/**\n * Op which has no application semantics. This op can be useful for triggering other\n */\nexport interface SharedTreeNoOp extends VersionedOp {\n\treadonly type: SharedTreeOpType.NoOp;\n}\n\n/**\n * Op indicating this SharedTree should upgrade its write format to the specified version.\n * The `version` field of this op reflects the version which should be upgraded to, not\n * the current version.\n * See docs/Breaking-Change-Migration.md for more details on the semantics of this op.\n */\nexport interface SharedTreeUpdateOp extends VersionedOp {\n\treadonly type: SharedTreeOpType.Update;\n}\n\n/**\n * A SharedTree op that includes edit information, and optionally a list of interned strings.\n */\nexport interface SharedTreeEditOp_0_0_2 extends VersionedOp<WriteFormat.v0_0_2> {\n\treadonly type: SharedTreeOpType.Edit;\n\t/** The collection of changes to apply. */\n\treadonly edit: Edit<ChangeInternal_0_0_2>;\n}\n\n/**\n * Format versions that SharedTree supports writing. Changes to op or summary formats necessitate updates.\n * @public\n */\nexport enum WriteFormat {\n\t/** Stores all edits in their raw format. */\n\tv0_0_2 = '0.0.2',\n\t/** Supports history virtualization, tree compression, string interning, and makes currentView optional. */\n\tv0_1_1 = '0.1.1',\n}\n\n/**\n * The minimal information on a SharedTree summary. Contains the summary format version.\n */\nexport interface SharedTreeSummaryBase {\n\t/**\n\t * Field on summary under which version is stored.\n\t */\n\treadonly version: WriteFormat;\n}\n\n/**\n * Legacy summary format currently still used for writing.\n * TODO:#49901: Remove export when this format is no longer written.\n * @internal\n */\nexport interface SharedTreeSummary_0_0_2 extends SharedTreeSummaryBase {\n\treadonly version: WriteFormat.v0_0_2;\n\n\treadonly currentTree: ChangeNode_0_0_2;\n\t/**\n\t * A list of edits.\n\t */\n\treadonly sequencedEdits: readonly Edit<ChangeInternal_0_0_2>[];\n}\n\n/**\n * {@inheritdoc ChangeType}\n * @public\n */\nexport enum ChangeTypeInternal {\n\tInsert,\n\tDetach,\n\tBuild,\n\tSetValue,\n\tConstraint,\n\tCompressedBuild,\n}\n\n/**\n * {@inheritdoc (Change:type)}\n * @public\n */\nexport type ChangeInternal_0_0_2 =\n\t| InsertInternal_0_0_2\n\t| DetachInternal_0_0_2\n\t| BuildInternal_0_0_2\n\t| SetValueInternal_0_0_2\n\t| ConstraintInternal_0_0_2;\n\n/**\n * {@inheritdoc BuildNode}\n * @public\n */\nexport type BuildNodeInternal_0_0_2 = TreeNode<BuildNodeInternal_0_0_2, StableNodeId> | DetachedSequenceId;\n\n/**\n * {@inheritdoc Build}\n * @public\n */\nexport interface BuildInternal_0_0_2 {\n\t/** {@inheritdoc Build.destination } */\n\treadonly destination: DetachedSequenceId;\n\t/** {@inheritdoc Build.source } */\n\treadonly source: TreeNodeSequence<BuildNodeInternal_0_0_2>;\n\t/** {@inheritdoc Build.\"type\" } */\n\treadonly type: typeof ChangeTypeInternal.Build;\n}\n\n/**\n * {@inheritdoc (Insert:interface)}\n * @public\n */\nexport interface InsertInternal_0_0_2 {\n\t/** {@inheritdoc (Insert:interface).destination } */\n\treadonly destination: StablePlaceInternal_0_0_2;\n\t/** {@inheritdoc (Insert:interface).source } */\n\treadonly source: DetachedSequenceId;\n\t/** {@inheritdoc (Insert:interface).\"type\" } */\n\treadonly type: typeof ChangeTypeInternal.Insert;\n}\n\n/**\n * {@inheritdoc Detach}\n * @public\n */\nexport interface DetachInternal_0_0_2 {\n\t/** {@inheritdoc Detach.destination } */\n\treadonly destination?: DetachedSequenceId;\n\t/** {@inheritdoc Detach.source } */\n\treadonly source: StableRangeInternal_0_0_2;\n\t/** {@inheritdoc Detach.\"type\" } */\n\treadonly type: typeof ChangeTypeInternal.Detach;\n}\n\n/**\n * {@inheritdoc SetValue}\n * @public\n */\nexport interface SetValueInternal_0_0_2 {\n\t/** {@inheritdoc SetValue.nodeToModify } */\n\treadonly nodeToModify: StableNodeId;\n\t/** {@inheritdoc SetValue.payload } */\n\t// eslint-disable-next-line @rushstack/no-new-null\n\treadonly payload: Payload | null;\n\t/** {@inheritdoc SetValue.\"type\" } */\n\treadonly type: typeof ChangeTypeInternal.SetValue;\n}\n\n/**\n * What to do when a Constraint is violated.\n * @public\n */\nexport enum ConstraintEffect {\n\t/**\n\t * Discard Edit.\n\t */\n\tInvalidAndDiscard,\n\n\t/**\n\t * Discard Edit, but record metadata that application may want to try and recover this change by recreating it.\n\t * Should this be the default policy for when another (non Constraint) change is invalid?\n\t */\n\tInvalidRetry,\n\n\t/**\n\t * Apply the change, but flag it for possible reconsideration by the app\n\t * (applying it is better than not, but perhaps the high level logic could produce something better).\n\t */\n\tValidRetry,\n}\n\n/**\n * {@inheritdoc Constraint}\n * @public\n */\nexport interface ConstraintInternal_0_0_2 {\n\t/** {@inheritdoc Constraint.toConstrain } */\n\treadonly toConstrain: StableRangeInternal_0_0_2;\n\t/** {@inheritdoc Constraint.identityHash } */\n\treadonly identityHash?: UuidString;\n\t/** {@inheritdoc Constraint.length } */\n\treadonly length?: number;\n\t/** {@inheritdoc Constraint.contentHash } */\n\treadonly contentHash?: UuidString;\n\t/** {@inheritdoc Constraint.parentNode } */\n\treadonly parentNode?: StableNodeId;\n\t/** {@inheritdoc Constraint.label } */\n\treadonly label?: TraitLabel;\n\t/** {@inheritdoc Constraint.effect } */\n\treadonly effect: ConstraintEffect;\n\t/** {@inheritdoc Constraint.\"type\" } */\n\treadonly type: typeof ChangeTypeInternal.Constraint;\n}\n\n/**\n * {@inheritdoc (StablePlace:interface) }\n * @public\n */\nexport interface StablePlaceInternal_0_0_2 {\n\t/**\n\t * {@inheritdoc (StablePlace:interface).side }\n\t */\n\treadonly side: Side;\n\n\t/**\n\t * {@inheritdoc (StablePlace:interface).referenceSibling }\n\t */\n\treadonly referenceSibling?: StableNodeId;\n\n\t/**\n\t * {@inheritdoc (StablePlace:interface).referenceTrait }\n\t */\n\treadonly referenceTrait?: TraitLocationInternal_0_0_2;\n}\n\n/**\n * {@inheritdoc (StableRange:interface) }\n * @public\n */\nexport interface StableRangeInternal_0_0_2 {\n\t/** {@inheritdoc (StableRange:interface).start } */\n\treadonly start: StablePlaceInternal_0_0_2;\n\t/** {@inheritdoc (StableRange:interface).end } */\n\treadonly end: StablePlaceInternal_0_0_2;\n}\n"]}
@@ -0,0 +1,314 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { ReplaceRecursive } from '../Common';
6
+ import type { IdCreationRange, SerializedIdCompressorWithNoSession, SerializedIdCompressorWithOngoingSession } from '../id-compressor';
7
+ import type { Definition, DetachedSequenceId, EditId, FinalNodeId, InternedStringId, NodeId, OpSpaceNodeId, SessionId, TraitLabel, UuidString } from '../Identifiers';
8
+ import { BuildInternal_0_0_2, ChangeTypeInternal, ConstraintEffect, ConstraintInternal_0_0_2, DetachInternal_0_0_2, Edit, EditWithoutId, InsertInternal_0_0_2, NodeData, Payload, SetValueInternal_0_0_2, SharedTreeNoOp, SharedTreeOpType, SharedTreeSummaryBase, SharedTreeUpdateOp, StablePlaceInternal_0_0_2, TraitLocationInternal_0_0_2, TreeNode, TreeNodeSequence, VersionedOp, WriteFormat } from './0.0.2';
9
+ /**
10
+ * Specifies the location of a trait (a labeled sequence of nodes) within the tree.
11
+ * @public
12
+ */
13
+ export interface TraitLocationInternal extends Omit<TraitLocationInternal_0_0_2, 'parent'> {
14
+ readonly parent: NodeId;
15
+ }
16
+ /**
17
+ * Alternating list of label then children list under that label.
18
+ * The label may be interned, and children are {@link CompressedPlaceholderTree}.
19
+ */
20
+ export declare type CompressedTraits<TId extends OpSpaceNodeId, TPlaceholder extends number | never> = (InternedStringId | TraitLabel | (CompressedPlaceholderTree<TId, TPlaceholder> | TPlaceholder)[])[];
21
+ /**
22
+ * A TreeNode that has been compressed into the following array format:
23
+ * [identifier, definition, traits, payload],
24
+ * where traits is also an array of [label, [trait], label, [trait], ...].
25
+ * Payload is omitted if empty, and traits will be an empty subarray if no traits exist but a payload exists.
26
+ * If both traits and payload does not exist, then both are omitted.
27
+ * All trait labels and node definitions may also be string interned.
28
+ * @internal
29
+ */
30
+ export declare type CompressedPlaceholderTree<TId extends OpSpaceNodeId, TPlaceholder extends number | never> = TPlaceholder | [InternedStringId | Definition] | [InternedStringId | Definition, TId] | [
31
+ InternedStringId | Definition,
32
+ [
33
+ Payload,
34
+ ...CompressedTraits<TId, TPlaceholder>
35
+ ] | CompressedTraits<TId, TPlaceholder>
36
+ ] | [
37
+ InternedStringId | Definition,
38
+ TId,
39
+ [
40
+ Payload,
41
+ ...CompressedTraits<TId, TPlaceholder>
42
+ ] | CompressedTraits<TId, TPlaceholder>
43
+ ];
44
+ /**
45
+ * JSON-compatible Node type. Objects of this type will be persisted in internal change objects (under Edits) in the SharedTree history.
46
+ * @public
47
+ */
48
+ export declare type ChangeNode = TreeNode<ChangeNode, NodeId>;
49
+ /**
50
+ * A ChangeNode that has been compressed into a {@link CompressedPlaceholderTree}.
51
+ */
52
+ export declare type CompressedChangeNode<TId extends OpSpaceNodeId> = CompressedPlaceholderTree<TId, never>;
53
+ /**
54
+ * The contents of a SharedTree summary for write format 0.1.1.
55
+ * Contains the current tree in a compressed format,
56
+ * the edits needed to get from `initialTree` to the current tree,
57
+ * and the interned strings that can be used to retrieve the interned summary.
58
+ */
59
+ export interface SharedTreeSummary extends SharedTreeSummaryBase {
60
+ readonly version: WriteFormat.v0_1_1;
61
+ readonly currentTree?: CompressedChangeNode<FinalNodeId>;
62
+ /**
63
+ * Information that can populate an edit log.
64
+ */
65
+ readonly editHistory: EditLogSummary<CompressedChangeInternal<FinalNodeId>, FluidEditHandle>;
66
+ /**
67
+ * List of interned strings.
68
+ * In 0.1.1, definitions and trait labels are interned deterministically on sequenced ops,
69
+ * and each client maintains a string interner whose lifetime is tied to the SharedTree.
70
+ */
71
+ readonly internedStrings: readonly string[];
72
+ /**
73
+ * Information about all IDs compressed in the summary
74
+ */
75
+ readonly idCompressor: SerializedIdCompressorWithNoSession | SerializedIdCompressorWithOngoingSession;
76
+ }
77
+ /**
78
+ * Information used to populate an edit log.
79
+ * In 0.1.1, this is a persisted type only for `EditLogSummary<CompressedChangeInternal, FluidEditHandle>`,
80
+ * where calling `FluidEditHandle.get` returns an array buffer of compressed `editChunk` contents.
81
+ * The type is parameterized to avoid nearly identical type definitions for uncompressed forms of the edit
82
+ * log, and abstracting away the fact that handle fetching needs to invoke decompression.
83
+ * @public
84
+ */
85
+ export interface EditLogSummary<TChange, THandle> {
86
+ /**
87
+ * A of list of serialized chunks and their corresponding keys.
88
+ * Start revision is the index of the first edit in the chunk in relation to the edit log.
89
+ */
90
+ readonly editChunks: readonly {
91
+ readonly startRevision: number;
92
+ /**
93
+ * Either a chunk of edits or a handle that can be used to load that chunk.
94
+ */
95
+ readonly chunk: THandle | readonly EditWithoutId<TChange>[];
96
+ }[];
97
+ /**
98
+ * A list of edits IDs for all sequenced edits.
99
+ */
100
+ readonly editIds: readonly EditId[];
101
+ }
102
+ /**
103
+ * FluidEditHandles are used to load edit chunks stored outside of the EditLog.
104
+ * Can be satisfied by IFluidHandle<ArrayBufferLike>.
105
+ * Note that though this is in `PersistedTypes`, it isn't directly serializable (e.g. `get` is a function).
106
+ * Its serialization relies on being encoded via an IFluidSerializer.
107
+ * @public
108
+ */
109
+ export interface FluidEditHandle {
110
+ readonly get: () => Promise<ArrayBuffer>;
111
+ readonly absolutePath: string;
112
+ }
113
+ export declare type EditChunkContents = EditChunkContents_0_1_1;
114
+ export interface EditChunkContents_0_1_1 {
115
+ version: WriteFormat.v0_1_1;
116
+ edits: readonly EditWithoutId<CompressedChangeInternal<FinalNodeId>>[];
117
+ }
118
+ /**
119
+ * Edits per edit chunk. This value is in persisted types because it requires consensus to change.
120
+ */
121
+ export declare const editsPerChunk = 100;
122
+ /**
123
+ * Compressed change format type.
124
+ * Encodes the same information as a {@link ChangeInternal}, but uses a more compact object format for `build` changes.
125
+ */
126
+ export declare type CompressedChangeInternal<TId extends OpSpaceNodeId> = ReplaceRecursive<Exclude<ChangeInternal, BuildInternal>, NodeId, TId> | CompressedBuildInternal<TId>;
127
+ /**
128
+ * A compressed version of {@link BuildInternal} where the source is a sequence of compressed nodes.
129
+ */
130
+ export interface CompressedBuildInternal<TId extends OpSpaceNodeId> {
131
+ /** {@inheritdoc Build.destination } */
132
+ readonly destination: DetachedSequenceId;
133
+ /** A sequence of nodes to build in some compressed format. */
134
+ readonly source: TreeNodeSequence<CompressedBuildNode<TId>>;
135
+ /** {@inheritdoc Build."type" } */
136
+ readonly type: typeof ChangeTypeInternal.CompressedBuild;
137
+ }
138
+ /**
139
+ * A BuildNode that has been compressed into a {@link CompressedPlaceholderTree}.
140
+ */
141
+ export declare type CompressedBuildNode<TId extends OpSpaceNodeId> = CompressedPlaceholderTree<TId, DetachedSequenceId>;
142
+ /**
143
+ * {@inheritdoc (Change:type)}
144
+ * @public
145
+ */
146
+ export declare type ChangeInternal = InsertInternal | DetachInternal | BuildInternal | SetValueInternal | ConstraintInternal;
147
+ /**
148
+ * {@inheritdoc BuildNode}
149
+ * @public
150
+ */
151
+ export declare type BuildNodeInternal = TreeNode<BuildNodeInternal, NodeId> | DetachedSequenceId;
152
+ /**
153
+ * {@inheritdoc Build}
154
+ * @public
155
+ */
156
+ export interface BuildInternal extends Omit<BuildInternal_0_0_2, 'source'> {
157
+ readonly source: TreeNodeSequence<BuildNodeInternal>;
158
+ }
159
+ /**
160
+ * {@inheritdoc (Insert:interface)}
161
+ * @public
162
+ */
163
+ export interface InsertInternal extends Omit<InsertInternal_0_0_2, 'destination'> {
164
+ /** {@inheritdoc (Insert:interface).destination } */
165
+ readonly destination: StablePlaceInternal;
166
+ }
167
+ /**
168
+ * {@inheritdoc Detach}
169
+ * @public
170
+ */
171
+ export interface DetachInternal extends Omit<DetachInternal_0_0_2, 'source'> {
172
+ /** {@inheritdoc Detach.source } */
173
+ readonly source: StableRangeInternal;
174
+ }
175
+ /**
176
+ * {@inheritdoc SetValue}
177
+ * @public
178
+ */
179
+ export interface SetValueInternal extends Omit<SetValueInternal_0_0_2, 'nodeToModify'> {
180
+ /** {@inheritdoc SetValue.nodeToModify } */
181
+ readonly nodeToModify: NodeId;
182
+ }
183
+ /**
184
+ * {@inheritdoc Constraint}
185
+ * @public
186
+ */
187
+ export interface ConstraintInternal extends Omit<ConstraintInternal_0_0_2, 'toConstrain' | 'parentNode'> {
188
+ /** {@inheritdoc Constraint.toConstrain } */
189
+ readonly toConstrain: StableRangeInternal;
190
+ /** {@inheritdoc Constraint.parentNode } */
191
+ readonly parentNode?: NodeId;
192
+ }
193
+ /**
194
+ * @public
195
+ */
196
+ export declare const ChangeInternal: {
197
+ build: (source: TreeNodeSequence<BuildNodeInternal>, destination: DetachedSequenceId) => BuildInternal;
198
+ insert: (source: DetachedSequenceId, destination: StablePlaceInternal) => InsertInternal;
199
+ detach: (source: StableRangeInternal, destination?: DetachedSequenceId | undefined) => DetachInternal;
200
+ setPayload: (nodeToModify: NodeData<NodeId> | NodeId, payload: Payload) => SetValueInternal;
201
+ clearPayload: (nodeToModify: NodeData<NodeId> | NodeId) => SetValueInternal;
202
+ constraint: (toConstrain: StableRangeInternal, effect: ConstraintEffect, identityHash?: UuidString | undefined, length?: number | undefined, contentHash?: UuidString | undefined, parentNode?: (number & {
203
+ readonly LocalCompressedId: "6fccb42f-e2a4-4243-bd29-f13d12b9c6d1";
204
+ } & import("../Identifiers").SessionUnique & import("../Identifiers").NodeIdBrand) | (number & {
205
+ readonly FinalCompressedId: "5d83d1e2-98b7-4e4e-a889-54c855cfa73d";
206
+ readonly OpNormalized: "9209432d-a959-4df7-b2ad-767ead4dbcae";
207
+ } & import("../Identifiers").SessionUnique & import("../Identifiers").NodeIdBrand) | undefined, label?: TraitLabel | undefined) => ConstraintInternal;
208
+ /** {@inheritdoc (Change:variable).delete } */
209
+ delete: (stableRange: StableRangeInternal) => ChangeInternal;
210
+ /** {@inheritdoc (Change:variable).insertTree } */
211
+ insertTree: (nodes: TreeNodeSequence<BuildNodeInternal>, destination: StablePlaceInternal) => ChangeInternal[];
212
+ /** {@inheritdoc (Change:variable).move } */
213
+ move: (source: StableRangeInternal, destination: StablePlaceInternal) => ChangeInternal[];
214
+ };
215
+ /**
216
+ * {@inheritdoc (StablePlace:interface) }
217
+ * @public
218
+ */
219
+ export interface StablePlaceInternal extends Omit<StablePlaceInternal_0_0_2, 'referenceSibling' | 'referenceTrait'> {
220
+ /**
221
+ * {@inheritdoc (StablePlace:interface).referenceSibling }
222
+ */
223
+ readonly referenceSibling?: NodeId;
224
+ /**
225
+ * {@inheritdoc (StablePlace:interface).referenceTrait }
226
+ */
227
+ readonly referenceTrait?: TraitLocationInternal;
228
+ }
229
+ /**
230
+ * {@inheritdoc (StableRange:interface) }
231
+ * @public
232
+ */
233
+ export interface StableRangeInternal {
234
+ /** {@inheritdoc (StableRange:interface).start } */
235
+ readonly start: StablePlaceInternal;
236
+ /** {@inheritdoc (StableRange:interface).end } */
237
+ readonly end: StablePlaceInternal;
238
+ }
239
+ /**
240
+ * The remainder of this file consists of factory methods duplicated with those for StableRange/StablePlace and are maintained while
241
+ * the new persisted version of SharedTree ops/summaries is rolled out.
242
+ */
243
+ /**
244
+ * @public
245
+ */
246
+ export declare const StablePlaceInternal: {
247
+ /**
248
+ * @returns The location directly before `node`.
249
+ */
250
+ before: (node: NodeData<NodeId> | NodeId) => StablePlaceInternal;
251
+ /**
252
+ * @returns The location directly after `node`.
253
+ */
254
+ after: (node: NodeData<NodeId> | NodeId) => StablePlaceInternal;
255
+ /**
256
+ * @returns The location at the start of `trait`.
257
+ */
258
+ atStartOf: (trait: TraitLocationInternal) => StablePlaceInternal;
259
+ /**
260
+ * @returns The location at the end of `trait`.
261
+ */
262
+ atEndOf: (trait: TraitLocationInternal) => StablePlaceInternal;
263
+ };
264
+ /**
265
+ * @public
266
+ */
267
+ export declare const StableRangeInternal: {
268
+ /**
269
+ * Factory for producing a `StableRange` from a start `StablePlace` to an end `StablePlace`.
270
+ * @example
271
+ * StableRange.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))
272
+ */
273
+ from: (start: StablePlaceInternal) => {
274
+ to: (end: StablePlaceInternal) => StableRangeInternal;
275
+ };
276
+ /**
277
+ * @returns a `StableRange` which contains only the provided `node`.
278
+ * Both the start and end `StablePlace` objects used to anchor this `StableRange` are in terms of the passed in node.
279
+ */
280
+ only: (node: NodeData<NodeId> | NodeId) => StableRangeInternal;
281
+ /**
282
+ * @returns a `StableRange` which contains everything in the trait.
283
+ * This is anchored using the provided `trait`, and is independent of the actual contents of the trait:
284
+ * it does not use sibling anchoring.
285
+ */
286
+ all: (trait: TraitLocationInternal) => StableRangeInternal;
287
+ };
288
+ /**
289
+ * Discriminated union of valid 0.0.1 SharedTree op types.
290
+ */
291
+ export declare type SharedTreeOp = SharedTreeEditOp | SharedTreeHandleOp | SharedTreeUpdateOp | SharedTreeNoOp;
292
+ export interface SharedTreeEditOp extends VersionedOp<WriteFormat.v0_1_1> {
293
+ readonly type: SharedTreeOpType.Edit;
294
+ /** The collection of changes to apply. */
295
+ readonly edit: Edit<CompressedChangeInternal<OpSpaceNodeId>>;
296
+ /** Contains all the IDs generated by the originating client since the last sent op */
297
+ readonly idRange: IdCreationRange;
298
+ }
299
+ /**
300
+ * A SharedTree op that includes edit handle information.
301
+ * The handle corresponds to an edit chunk in the edit log.
302
+ */
303
+ export interface SharedTreeHandleOp extends VersionedOp<WriteFormat.v0_1_1> {
304
+ readonly type: SharedTreeOpType.Handle;
305
+ /** The serialized handle to an uploaded edit chunk. */
306
+ readonly editHandle: string;
307
+ /** The index of the first edit in the chunk that corresponds to the handle. */
308
+ readonly startRevision: number;
309
+ }
310
+ /** The number of IDs that a SharedTree reserves for current or future internal use */
311
+ export declare const reservedIdCount = 10;
312
+ /** The SessionID of the Upgrade Session */
313
+ export declare const ghostSessionId: SessionId;
314
+ //# sourceMappingURL=0.1.1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0.1.1.d.ts","sourceRoot":"","sources":["../../src/persisted-types/0.1.1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ghostSessionId = exports.reservedIdCount = exports.StableRangeInternal = exports.StablePlaceInternal = exports.ChangeInternal = exports.editsPerChunk = void 0;
4
+ /*!
5
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
6
+ * Licensed under the MIT License.
7
+ */
8
+ const Common_1 = require("../Common");
9
+ const _0_0_2_1 = require("./0.0.2");
10
+ /**
11
+ * Edits per edit chunk. This value is in persisted types because it requires consensus to change.
12
+ */
13
+ exports.editsPerChunk = 100;
14
+ // Note: Documentation of this constant is merged with documentation of the `ChangeInternal` interface.
15
+ /**
16
+ * @public
17
+ */
18
+ exports.ChangeInternal = {
19
+ build: (source, destination) => ({
20
+ destination,
21
+ source,
22
+ type: _0_0_2_1.ChangeTypeInternal.Build,
23
+ }),
24
+ insert: (source, destination) => ({
25
+ destination,
26
+ source,
27
+ type: _0_0_2_1.ChangeTypeInternal.Insert,
28
+ }),
29
+ detach: (source, destination) => ({
30
+ destination,
31
+ source,
32
+ type: _0_0_2_1.ChangeTypeInternal.Detach,
33
+ }),
34
+ setPayload: (nodeToModify, payload) => ({
35
+ nodeToModify: getNodeId(nodeToModify),
36
+ payload,
37
+ type: _0_0_2_1.ChangeTypeInternal.SetValue,
38
+ }),
39
+ clearPayload: (nodeToModify) => ({
40
+ nodeToModify: getNodeId(nodeToModify),
41
+ // Rationale: 'undefined' is reserved for future use (see 'SetValue' interface above.)
42
+ payload: null,
43
+ type: _0_0_2_1.ChangeTypeInternal.SetValue,
44
+ }),
45
+ constraint: (toConstrain, effect, identityHash, length, contentHash, parentNode, label) => ({
46
+ toConstrain,
47
+ effect,
48
+ identityHash,
49
+ length,
50
+ contentHash,
51
+ parentNode,
52
+ label,
53
+ type: _0_0_2_1.ChangeTypeInternal.Constraint,
54
+ }),
55
+ /** {@inheritdoc (Change:variable).delete } */
56
+ delete: (stableRange) => exports.ChangeInternal.detach(stableRange),
57
+ /** {@inheritdoc (Change:variable).insertTree } */
58
+ insertTree: (nodes, destination) => {
59
+ const build = exports.ChangeInternal.build(nodes, 0);
60
+ return [build, exports.ChangeInternal.insert(build.destination, destination)];
61
+ },
62
+ /** {@inheritdoc (Change:variable).move } */
63
+ move: (source, destination) => {
64
+ const detach = exports.ChangeInternal.detach(source, 0);
65
+ return [detach, exports.ChangeInternal.insert(Common_1.assertNotUndefined(detach.destination), destination)];
66
+ },
67
+ };
68
+ /**
69
+ * The remainder of this file consists of factory methods duplicated with those for StableRange/StablePlace and are maintained while
70
+ * the new persisted version of SharedTree ops/summaries is rolled out.
71
+ */
72
+ /**
73
+ * @public
74
+ */
75
+ exports.StablePlaceInternal = {
76
+ /**
77
+ * @returns The location directly before `node`.
78
+ */
79
+ before: (node) => ({
80
+ side: _0_0_2_1.Side.Before,
81
+ referenceSibling: getNodeId(node),
82
+ }),
83
+ /**
84
+ * @returns The location directly after `node`.
85
+ */
86
+ after: (node) => ({
87
+ side: _0_0_2_1.Side.After,
88
+ referenceSibling: getNodeId(node),
89
+ }),
90
+ /**
91
+ * @returns The location at the start of `trait`.
92
+ */
93
+ atStartOf: (trait) => ({
94
+ side: _0_0_2_1.Side.After,
95
+ referenceTrait: trait,
96
+ }),
97
+ /**
98
+ * @returns The location at the end of `trait`.
99
+ */
100
+ atEndOf: (trait) => ({
101
+ side: _0_0_2_1.Side.Before,
102
+ referenceTrait: trait,
103
+ }),
104
+ };
105
+ /**
106
+ * @public
107
+ */
108
+ exports.StableRangeInternal = {
109
+ /**
110
+ * Factory for producing a `StableRange` from a start `StablePlace` to an end `StablePlace`.
111
+ * @example
112
+ * StableRange.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))
113
+ */
114
+ from: (start) => ({
115
+ to: (end) => {
116
+ if (start.referenceTrait && end.referenceTrait) {
117
+ const message = 'StableRange must be constructed with endpoints from the same trait';
118
+ Common_1.assert(start.referenceTrait.parent === end.referenceTrait.parent, message);
119
+ Common_1.assert(start.referenceTrait.label === end.referenceTrait.label, message);
120
+ }
121
+ return { start, end };
122
+ },
123
+ }),
124
+ /**
125
+ * @returns a `StableRange` which contains only the provided `node`.
126
+ * Both the start and end `StablePlace` objects used to anchor this `StableRange` are in terms of the passed in node.
127
+ */
128
+ only: (node) => ({
129
+ start: exports.StablePlaceInternal.before(node),
130
+ end: exports.StablePlaceInternal.after(node),
131
+ }),
132
+ /**
133
+ * @returns a `StableRange` which contains everything in the trait.
134
+ * This is anchored using the provided `trait`, and is independent of the actual contents of the trait:
135
+ * it does not use sibling anchoring.
136
+ */
137
+ all: (trait) => ({
138
+ start: exports.StablePlaceInternal.atStartOf(trait),
139
+ end: exports.StablePlaceInternal.atEndOf(trait),
140
+ }),
141
+ };
142
+ /** The number of IDs that a SharedTree reserves for current or future internal use */
143
+ // This value must never change
144
+ exports.reservedIdCount = 10;
145
+ /** The SessionID of the Upgrade Session */
146
+ // This UUID must never change
147
+ exports.ghostSessionId = '79590933-1c70-4fda-817a-adab57c20318';
148
+ /** Accepts either a node or a node's identifier, and returns the identifier */
149
+ function getNodeId(node) {
150
+ var _a;
151
+ return (_a = node.identifier) !== null && _a !== void 0 ? _a : node;
152
+ }
153
+ //# sourceMappingURL=0.1.1.js.map