@fluid-experimental/tree 2.0.0-rc.1.0.3 → 2.0.0-rc.2.0.0

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 (572) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +1 -1
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/.vscode/settings.json +1 -1
  4. package/CHANGELOG.md +4 -0
  5. package/api-report/experimental-tree.api.md +4 -15
  6. package/dist/ChangeCompression.d.ts +5 -5
  7. package/dist/ChangeCompression.d.ts.map +1 -1
  8. package/dist/ChangeCompression.js +24 -24
  9. package/dist/ChangeCompression.js.map +1 -1
  10. package/dist/ChangeTypes.d.ts +3 -3
  11. package/dist/ChangeTypes.d.ts.map +1 -1
  12. package/dist/ChangeTypes.js +9 -9
  13. package/dist/ChangeTypes.js.map +1 -1
  14. package/dist/Checkout.d.ts +7 -7
  15. package/dist/Checkout.d.ts.map +1 -1
  16. package/dist/Checkout.js +27 -27
  17. package/dist/Checkout.js.map +1 -1
  18. package/dist/Common.d.ts +2 -2
  19. package/dist/Common.d.ts.map +1 -1
  20. package/dist/Common.js.map +1 -1
  21. package/dist/EagerCheckout.d.ts +3 -3
  22. package/dist/EagerCheckout.d.ts.map +1 -1
  23. package/dist/EagerCheckout.js +2 -2
  24. package/dist/EagerCheckout.js.map +1 -1
  25. package/dist/EditLog.d.ts +4 -6
  26. package/dist/EditLog.d.ts.map +1 -1
  27. package/dist/EditLog.js +9 -9
  28. package/dist/EditLog.js.map +1 -1
  29. package/dist/EditUtilities.d.ts +6 -6
  30. package/dist/EditUtilities.d.ts.map +1 -1
  31. package/dist/EditUtilities.js +28 -28
  32. package/dist/EditUtilities.js.map +1 -1
  33. package/dist/Forest.d.ts +2 -2
  34. package/dist/Forest.d.ts.map +1 -1
  35. package/dist/Forest.js +13 -13
  36. package/dist/Forest.js.map +1 -1
  37. package/dist/HistoryEditFactory.d.ts +3 -3
  38. package/dist/HistoryEditFactory.d.ts.map +1 -1
  39. package/dist/HistoryEditFactory.js +36 -36
  40. package/dist/HistoryEditFactory.js.map +1 -1
  41. package/dist/IdConversion.d.ts +3 -3
  42. package/dist/IdConversion.d.ts.map +1 -1
  43. package/dist/IdConversion.js +23 -23
  44. package/dist/IdConversion.js.map +1 -1
  45. package/dist/InitialTree.d.ts +1 -1
  46. package/dist/InitialTree.d.ts.map +1 -1
  47. package/dist/InitialTree.js +2 -2
  48. package/dist/InitialTree.js.map +1 -1
  49. package/dist/LazyCheckout.d.ts +5 -5
  50. package/dist/LazyCheckout.d.ts.map +1 -1
  51. package/dist/LazyCheckout.js +2 -2
  52. package/dist/LazyCheckout.js.map +1 -1
  53. package/dist/LogViewer.d.ts +7 -7
  54. package/dist/LogViewer.d.ts.map +1 -1
  55. package/dist/LogViewer.js +25 -25
  56. package/dist/LogViewer.js.map +1 -1
  57. package/dist/MergeHealth.d.ts +1 -1
  58. package/dist/MergeHealth.d.ts.map +1 -1
  59. package/dist/MergeHealth.js +32 -32
  60. package/dist/MergeHealth.js.map +1 -1
  61. package/dist/NodeIdUtilities.d.ts +3 -3
  62. package/dist/NodeIdUtilities.d.ts.map +1 -1
  63. package/dist/NodeIdUtilities.js +4 -4
  64. package/dist/NodeIdUtilities.js.map +1 -1
  65. package/dist/PayloadUtilities.d.ts +1 -1
  66. package/dist/PayloadUtilities.d.ts.map +1 -1
  67. package/dist/PayloadUtilities.js.map +1 -1
  68. package/dist/ReconciliationPath.d.ts +3 -3
  69. package/dist/ReconciliationPath.d.ts.map +1 -1
  70. package/dist/ReconciliationPath.js.map +1 -1
  71. package/dist/RevisionValueCache.js +5 -5
  72. package/dist/RevisionValueCache.js.map +1 -1
  73. package/dist/RevisionView.d.ts +5 -5
  74. package/dist/RevisionView.d.ts.map +1 -1
  75. package/dist/RevisionView.js +11 -11
  76. package/dist/RevisionView.js.map +1 -1
  77. package/dist/SerializationUtilities.d.ts +4 -4
  78. package/dist/SerializationUtilities.d.ts.map +1 -1
  79. package/dist/SerializationUtilities.js +5 -5
  80. package/dist/SerializationUtilities.js.map +1 -1
  81. package/dist/SharedTree.d.ts +15 -18
  82. package/dist/SharedTree.d.ts.map +1 -1
  83. package/dist/SharedTree.js +154 -166
  84. package/dist/SharedTree.js.map +1 -1
  85. package/dist/SharedTreeEncoder.d.ts +8 -8
  86. package/dist/SharedTreeEncoder.d.ts.map +1 -1
  87. package/dist/SharedTreeEncoder.js +67 -67
  88. package/dist/SharedTreeEncoder.js.map +1 -1
  89. package/dist/StringInterner.d.ts +1 -1
  90. package/dist/StringInterner.d.ts.map +1 -1
  91. package/dist/StringInterner.js +2 -2
  92. package/dist/StringInterner.js.map +1 -1
  93. package/dist/Summary.d.ts +4 -4
  94. package/dist/Summary.d.ts.map +1 -1
  95. package/dist/Summary.js +2 -2
  96. package/dist/Summary.js.map +1 -1
  97. package/dist/SummaryBackCompatibility.d.ts +3 -3
  98. package/dist/SummaryBackCompatibility.d.ts.map +1 -1
  99. package/dist/SummaryBackCompatibility.js +13 -13
  100. package/dist/SummaryBackCompatibility.js.map +1 -1
  101. package/dist/SummaryTestUtilities.d.ts +2 -2
  102. package/dist/SummaryTestUtilities.d.ts.map +1 -1
  103. package/dist/SummaryTestUtilities.js.map +1 -1
  104. package/dist/Transaction.d.ts +4 -4
  105. package/dist/Transaction.d.ts.map +1 -1
  106. package/dist/Transaction.js +10 -10
  107. package/dist/Transaction.js.map +1 -1
  108. package/dist/TransactionInternal.d.ts +7 -7
  109. package/dist/TransactionInternal.d.ts.map +1 -1
  110. package/dist/TransactionInternal.js +87 -87
  111. package/dist/TransactionInternal.js.map +1 -1
  112. package/dist/TreeCompressor.d.ts +4 -4
  113. package/dist/TreeCompressor.d.ts.map +1 -1
  114. package/dist/TreeCompressor.js +6 -6
  115. package/dist/TreeCompressor.js.map +1 -1
  116. package/dist/TreeNodeHandle.d.ts +3 -3
  117. package/dist/TreeNodeHandle.d.ts.map +1 -1
  118. package/dist/TreeNodeHandle.js +5 -5
  119. package/dist/TreeNodeHandle.js.map +1 -1
  120. package/dist/TreeView.d.ts +3 -3
  121. package/dist/TreeView.d.ts.map +1 -1
  122. package/dist/TreeView.js +10 -10
  123. package/dist/TreeView.js.map +1 -1
  124. package/dist/TreeViewUtilities.d.ts +2 -2
  125. package/dist/TreeViewUtilities.d.ts.map +1 -1
  126. package/dist/TreeViewUtilities.js +3 -3
  127. package/dist/TreeViewUtilities.js.map +1 -1
  128. package/dist/UndoRedoHandler.d.ts +2 -2
  129. package/dist/UndoRedoHandler.d.ts.map +1 -1
  130. package/dist/UndoRedoHandler.js +5 -5
  131. package/dist/UndoRedoHandler.js.map +1 -1
  132. package/dist/UuidUtilities.d.ts +1 -1
  133. package/dist/UuidUtilities.d.ts.map +1 -1
  134. package/dist/UuidUtilities.js +3 -3
  135. package/dist/UuidUtilities.js.map +1 -1
  136. package/dist/id-compressor/AppendOnlySortedMap.js +4 -4
  137. package/dist/id-compressor/AppendOnlySortedMap.js.map +1 -1
  138. package/dist/id-compressor/IdCompressor.d.ts +2 -2
  139. package/dist/id-compressor/IdCompressor.d.ts.map +1 -1
  140. package/dist/id-compressor/IdCompressor.js +78 -78
  141. package/dist/id-compressor/IdCompressor.js.map +1 -1
  142. package/dist/id-compressor/IdRange.d.ts +1 -1
  143. package/dist/id-compressor/IdRange.d.ts.map +1 -1
  144. package/dist/id-compressor/IdRange.js.map +1 -1
  145. package/dist/id-compressor/NumericUuid.d.ts +1 -1
  146. package/dist/id-compressor/NumericUuid.d.ts.map +1 -1
  147. package/dist/id-compressor/NumericUuid.js +6 -6
  148. package/dist/id-compressor/NumericUuid.js.map +1 -1
  149. package/dist/id-compressor/SessionIdNormalizer.d.ts +2 -2
  150. package/dist/id-compressor/SessionIdNormalizer.d.ts.map +1 -1
  151. package/dist/id-compressor/SessionIdNormalizer.js +14 -14
  152. package/dist/id-compressor/SessionIdNormalizer.js.map +1 -1
  153. package/dist/id-compressor/index.d.ts +4 -4
  154. package/dist/id-compressor/index.d.ts.map +1 -1
  155. package/dist/id-compressor/index.js +11 -11
  156. package/dist/id-compressor/index.js.map +1 -1
  157. package/dist/id-compressor/persisted-types/0.0.1.d.ts +1 -1
  158. package/dist/id-compressor/persisted-types/0.0.1.d.ts.map +1 -1
  159. package/dist/id-compressor/persisted-types/0.0.1.js.map +1 -1
  160. package/dist/id-compressor/persisted-types/index.d.ts +1 -1
  161. package/dist/id-compressor/persisted-types/index.d.ts.map +1 -1
  162. package/dist/id-compressor/persisted-types/index.js.map +1 -1
  163. package/dist/index.d.ts +29 -29
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js +73 -73
  166. package/dist/index.js.map +1 -1
  167. package/dist/migration-shim/migrationDeltaHandler.d.ts +1 -1
  168. package/dist/migration-shim/migrationDeltaHandler.d.ts.map +1 -1
  169. package/dist/migration-shim/migrationDeltaHandler.js +5 -8
  170. package/dist/migration-shim/migrationDeltaHandler.js.map +1 -1
  171. package/dist/migration-shim/migrationShim.d.ts +1 -1
  172. package/dist/migration-shim/migrationShim.d.ts.map +1 -1
  173. package/dist/migration-shim/migrationShim.js +1 -1
  174. package/dist/migration-shim/migrationShim.js.map +1 -1
  175. package/dist/migration-shim/migrationShimFactory.d.ts +1 -1
  176. package/dist/migration-shim/migrationShimFactory.d.ts.map +1 -1
  177. package/dist/migration-shim/migrationShimFactory.js.map +1 -1
  178. package/dist/migration-shim/sharedTreeDeltaHandler.d.ts +1 -1
  179. package/dist/migration-shim/sharedTreeDeltaHandler.d.ts.map +1 -1
  180. package/dist/migration-shim/sharedTreeDeltaHandler.js +2 -5
  181. package/dist/migration-shim/sharedTreeDeltaHandler.js.map +1 -1
  182. package/dist/migration-shim/types.d.ts +1 -1
  183. package/dist/migration-shim/types.d.ts.map +1 -1
  184. package/dist/migration-shim/types.js.map +1 -1
  185. package/dist/package.json +3 -0
  186. package/dist/persisted-types/0.0.2.d.ts +1 -1
  187. package/dist/persisted-types/0.0.2.d.ts.map +1 -1
  188. package/dist/persisted-types/0.0.2.js.map +1 -1
  189. package/dist/persisted-types/0.1.1.d.ts +4 -4
  190. package/dist/persisted-types/0.1.1.d.ts.map +1 -1
  191. package/dist/persisted-types/0.1.1.js +13 -13
  192. package/dist/persisted-types/0.1.1.js.map +1 -1
  193. package/dist/persisted-types/index.d.ts +2 -2
  194. package/dist/persisted-types/index.d.ts.map +1 -1
  195. package/dist/persisted-types/index.js +13 -13
  196. package/dist/persisted-types/index.js.map +1 -1
  197. package/dist/tree-alpha.d.ts +5 -8
  198. package/dist/tree-beta.d.ts +5 -1
  199. package/dist/tree-public.d.ts +5 -1
  200. package/dist/tree-untrimmed.d.ts +5 -8
  201. package/dist/tsdoc-metadata.json +1 -1
  202. package/lib/ChangeCompression.d.ts +5 -5
  203. package/lib/ChangeCompression.d.ts.map +1 -1
  204. package/lib/ChangeCompression.js +3 -3
  205. package/lib/ChangeCompression.js.map +1 -1
  206. package/lib/ChangeTypes.d.ts +3 -3
  207. package/lib/ChangeTypes.d.ts.map +1 -1
  208. package/lib/ChangeTypes.js +3 -3
  209. package/lib/ChangeTypes.js.map +1 -1
  210. package/lib/Checkout.d.ts +7 -7
  211. package/lib/Checkout.d.ts.map +1 -1
  212. package/lib/Checkout.js +6 -6
  213. package/lib/Checkout.js.map +1 -1
  214. package/lib/Common.d.ts +2 -2
  215. package/lib/Common.d.ts.map +1 -1
  216. package/lib/Common.js.map +1 -1
  217. package/lib/EagerCheckout.d.ts +3 -3
  218. package/lib/EagerCheckout.d.ts.map +1 -1
  219. package/lib/EagerCheckout.js +1 -1
  220. package/lib/EagerCheckout.js.map +1 -1
  221. package/lib/EditLog.d.ts +4 -6
  222. package/lib/EditLog.d.ts.map +1 -1
  223. package/lib/EditLog.js +1 -1
  224. package/lib/EditLog.js.map +1 -1
  225. package/lib/EditUtilities.d.ts +6 -6
  226. package/lib/EditUtilities.d.ts.map +1 -1
  227. package/lib/EditUtilities.js +7 -7
  228. package/lib/EditUtilities.js.map +1 -1
  229. package/lib/Forest.d.ts +2 -2
  230. package/lib/Forest.d.ts.map +1 -1
  231. package/lib/Forest.js +2 -2
  232. package/lib/Forest.js.map +1 -1
  233. package/lib/HistoryEditFactory.d.ts +3 -3
  234. package/lib/HistoryEditFactory.d.ts.map +1 -1
  235. package/lib/HistoryEditFactory.js +7 -7
  236. package/lib/HistoryEditFactory.js.map +1 -1
  237. package/lib/IdConversion.d.ts +3 -3
  238. package/lib/IdConversion.d.ts.map +1 -1
  239. package/lib/IdConversion.js +4 -4
  240. package/lib/IdConversion.js.map +1 -1
  241. package/lib/InitialTree.d.ts +1 -1
  242. package/lib/InitialTree.d.ts.map +1 -1
  243. package/lib/InitialTree.js +1 -1
  244. package/lib/InitialTree.js.map +1 -1
  245. package/lib/LazyCheckout.d.ts +5 -5
  246. package/lib/LazyCheckout.d.ts.map +1 -1
  247. package/lib/LazyCheckout.js +1 -1
  248. package/lib/LazyCheckout.js.map +1 -1
  249. package/lib/LogViewer.d.ts +7 -7
  250. package/lib/LogViewer.d.ts.map +1 -1
  251. package/lib/LogViewer.js +4 -4
  252. package/lib/LogViewer.js.map +1 -1
  253. package/lib/MergeHealth.d.ts +1 -1
  254. package/lib/MergeHealth.d.ts.map +1 -1
  255. package/lib/MergeHealth.js +5 -5
  256. package/lib/MergeHealth.js.map +1 -1
  257. package/lib/NodeIdUtilities.d.ts +3 -3
  258. package/lib/NodeIdUtilities.d.ts.map +1 -1
  259. package/lib/NodeIdUtilities.js +2 -2
  260. package/lib/NodeIdUtilities.js.map +1 -1
  261. package/lib/PayloadUtilities.d.ts +1 -1
  262. package/lib/PayloadUtilities.d.ts.map +1 -1
  263. package/lib/PayloadUtilities.js.map +1 -1
  264. package/lib/ReconciliationPath.d.ts +3 -3
  265. package/lib/ReconciliationPath.d.ts.map +1 -1
  266. package/lib/ReconciliationPath.js.map +1 -1
  267. package/lib/RevisionValueCache.js +1 -1
  268. package/lib/RevisionValueCache.js.map +1 -1
  269. package/lib/RevisionView.d.ts +5 -5
  270. package/lib/RevisionView.d.ts.map +1 -1
  271. package/lib/RevisionView.js +3 -3
  272. package/lib/RevisionView.js.map +1 -1
  273. package/lib/SerializationUtilities.d.ts +4 -4
  274. package/lib/SerializationUtilities.d.ts.map +1 -1
  275. package/lib/SerializationUtilities.js +1 -1
  276. package/lib/SerializationUtilities.js.map +1 -1
  277. package/lib/SharedTree.d.ts +15 -18
  278. package/lib/SharedTree.d.ts.map +1 -1
  279. package/lib/SharedTree.js +28 -40
  280. package/lib/SharedTree.js.map +1 -1
  281. package/lib/SharedTreeEncoder.d.ts +8 -8
  282. package/lib/SharedTreeEncoder.d.ts.map +1 -1
  283. package/lib/SharedTreeEncoder.js +12 -12
  284. package/lib/SharedTreeEncoder.js.map +1 -1
  285. package/lib/StringInterner.d.ts +1 -1
  286. package/lib/StringInterner.d.ts.map +1 -1
  287. package/lib/StringInterner.js +1 -1
  288. package/lib/StringInterner.js.map +1 -1
  289. package/lib/Summary.d.ts +4 -4
  290. package/lib/Summary.d.ts.map +1 -1
  291. package/lib/Summary.js +1 -1
  292. package/lib/Summary.js.map +1 -1
  293. package/lib/SummaryBackCompatibility.d.ts +3 -3
  294. package/lib/SummaryBackCompatibility.d.ts.map +1 -1
  295. package/lib/SummaryBackCompatibility.js +3 -3
  296. package/lib/SummaryBackCompatibility.js.map +1 -1
  297. package/lib/SummaryTestUtilities.d.ts +2 -2
  298. package/lib/SummaryTestUtilities.d.ts.map +1 -1
  299. package/lib/SummaryTestUtilities.js.map +1 -1
  300. package/lib/Transaction.d.ts +4 -4
  301. package/lib/Transaction.d.ts.map +1 -1
  302. package/lib/Transaction.js +5 -5
  303. package/lib/Transaction.js.map +1 -1
  304. package/lib/TransactionInternal.d.ts +7 -7
  305. package/lib/TransactionInternal.d.ts.map +1 -1
  306. package/lib/TransactionInternal.js +5 -5
  307. package/lib/TransactionInternal.js.map +1 -1
  308. package/lib/TreeCompressor.d.ts +4 -4
  309. package/lib/TreeCompressor.d.ts.map +1 -1
  310. package/lib/TreeCompressor.js +2 -2
  311. package/lib/TreeCompressor.js.map +1 -1
  312. package/lib/TreeNodeHandle.d.ts +3 -3
  313. package/lib/TreeNodeHandle.d.ts.map +1 -1
  314. package/lib/TreeNodeHandle.js +1 -1
  315. package/lib/TreeNodeHandle.js.map +1 -1
  316. package/lib/TreeView.d.ts +3 -3
  317. package/lib/TreeView.d.ts.map +1 -1
  318. package/lib/TreeView.js +3 -3
  319. package/lib/TreeView.js.map +1 -1
  320. package/lib/TreeViewUtilities.d.ts +2 -2
  321. package/lib/TreeViewUtilities.d.ts.map +1 -1
  322. package/lib/TreeViewUtilities.js +1 -1
  323. package/lib/TreeViewUtilities.js.map +1 -1
  324. package/lib/UndoRedoHandler.d.ts +2 -2
  325. package/lib/UndoRedoHandler.d.ts.map +1 -1
  326. package/lib/UndoRedoHandler.js +2 -2
  327. package/lib/UndoRedoHandler.js.map +1 -1
  328. package/lib/UuidUtilities.d.ts +1 -1
  329. package/lib/UuidUtilities.d.ts.map +1 -1
  330. package/lib/UuidUtilities.js +1 -1
  331. package/lib/UuidUtilities.js.map +1 -1
  332. package/lib/id-compressor/AppendOnlySortedMap.js +1 -1
  333. package/lib/id-compressor/AppendOnlySortedMap.js.map +1 -1
  334. package/lib/id-compressor/IdCompressor.d.ts +2 -2
  335. package/lib/id-compressor/IdCompressor.d.ts.map +1 -1
  336. package/lib/id-compressor/IdCompressor.js +6 -6
  337. package/lib/id-compressor/IdCompressor.js.map +1 -1
  338. package/lib/id-compressor/IdRange.d.ts +1 -1
  339. package/lib/id-compressor/IdRange.d.ts.map +1 -1
  340. package/lib/id-compressor/IdRange.js.map +1 -1
  341. package/lib/id-compressor/NumericUuid.d.ts +1 -1
  342. package/lib/id-compressor/NumericUuid.d.ts.map +1 -1
  343. package/lib/id-compressor/NumericUuid.js +2 -2
  344. package/lib/id-compressor/NumericUuid.js.map +1 -1
  345. package/lib/id-compressor/SessionIdNormalizer.d.ts +2 -2
  346. package/lib/id-compressor/SessionIdNormalizer.d.ts.map +1 -1
  347. package/lib/id-compressor/SessionIdNormalizer.js +2 -2
  348. package/lib/id-compressor/SessionIdNormalizer.js.map +1 -1
  349. package/lib/id-compressor/index.d.ts +4 -4
  350. package/lib/id-compressor/index.d.ts.map +1 -1
  351. package/lib/id-compressor/index.js +3 -3
  352. package/lib/id-compressor/index.js.map +1 -1
  353. package/lib/id-compressor/persisted-types/0.0.1.d.ts +1 -1
  354. package/lib/id-compressor/persisted-types/0.0.1.d.ts.map +1 -1
  355. package/lib/id-compressor/persisted-types/0.0.1.js.map +1 -1
  356. package/lib/id-compressor/persisted-types/index.d.ts +1 -1
  357. package/lib/id-compressor/persisted-types/index.d.ts.map +1 -1
  358. package/lib/id-compressor/persisted-types/index.js.map +1 -1
  359. package/lib/index.d.ts +29 -29
  360. package/lib/index.d.ts.map +1 -1
  361. package/lib/index.js +22 -22
  362. package/lib/index.js.map +1 -1
  363. package/lib/migration-shim/migrationDeltaHandler.d.ts +1 -1
  364. package/lib/migration-shim/migrationDeltaHandler.d.ts.map +1 -1
  365. package/lib/migration-shim/migrationDeltaHandler.js +5 -8
  366. package/lib/migration-shim/migrationDeltaHandler.js.map +1 -1
  367. package/lib/migration-shim/migrationShim.d.ts +1 -1
  368. package/lib/migration-shim/migrationShim.d.ts.map +1 -1
  369. package/lib/migration-shim/migrationShim.js +1 -1
  370. package/lib/migration-shim/migrationShim.js.map +1 -1
  371. package/lib/migration-shim/migrationShimFactory.d.ts +1 -1
  372. package/lib/migration-shim/migrationShimFactory.d.ts.map +1 -1
  373. package/lib/migration-shim/migrationShimFactory.js.map +1 -1
  374. package/lib/migration-shim/sharedTreeDeltaHandler.d.ts +1 -1
  375. package/lib/migration-shim/sharedTreeDeltaHandler.d.ts.map +1 -1
  376. package/lib/migration-shim/sharedTreeDeltaHandler.js +2 -5
  377. package/lib/migration-shim/sharedTreeDeltaHandler.js.map +1 -1
  378. package/lib/migration-shim/types.d.ts +1 -1
  379. package/lib/migration-shim/types.d.ts.map +1 -1
  380. package/lib/migration-shim/types.js.map +1 -1
  381. package/lib/persisted-types/0.0.2.d.ts +1 -1
  382. package/lib/persisted-types/0.0.2.d.ts.map +1 -1
  383. package/lib/persisted-types/0.0.2.js.map +1 -1
  384. package/lib/persisted-types/0.1.1.d.ts +4 -4
  385. package/lib/persisted-types/0.1.1.d.ts.map +1 -1
  386. package/lib/persisted-types/0.1.1.js +2 -2
  387. package/lib/persisted-types/0.1.1.js.map +1 -1
  388. package/lib/persisted-types/index.d.ts +2 -2
  389. package/lib/persisted-types/index.d.ts.map +1 -1
  390. package/lib/persisted-types/index.js +2 -2
  391. package/lib/persisted-types/index.js.map +1 -1
  392. package/lib/test/AppendOnlySortedMap.perf.tests.js +2 -2
  393. package/lib/test/AppendOnlySortedMap.perf.tests.js.map +1 -1
  394. package/lib/test/AppendOnlySortedMap.tests.js +2 -2
  395. package/lib/test/AppendOnlySortedMap.tests.js.map +1 -1
  396. package/lib/test/ChangeCompression.tests.js +9 -9
  397. package/lib/test/ChangeCompression.tests.js.map +1 -1
  398. package/lib/test/Checkout.tests.d.ts +1 -1
  399. package/lib/test/Checkout.tests.d.ts.map +1 -1
  400. package/lib/test/Checkout.tests.js +2 -2
  401. package/lib/test/Checkout.tests.js.map +1 -1
  402. package/lib/test/Common.tests.js +1 -1
  403. package/lib/test/Common.tests.js.map +1 -1
  404. package/lib/test/EagerCheckout.tests.js +4 -4
  405. package/lib/test/EagerCheckout.tests.js.map +1 -1
  406. package/lib/test/Edit.tests.js +2 -2
  407. package/lib/test/Edit.tests.js.map +1 -1
  408. package/lib/test/EditLog.perf.tests.js +4 -4
  409. package/lib/test/EditLog.perf.tests.js.map +1 -1
  410. package/lib/test/EditLog.tests.js +3 -3
  411. package/lib/test/EditLog.tests.js.map +1 -1
  412. package/lib/test/EditUtilities.tests.js +6 -6
  413. package/lib/test/EditUtilities.tests.js.map +1 -1
  414. package/lib/test/Forest.perf.tests.js +4 -4
  415. package/lib/test/Forest.perf.tests.js.map +1 -1
  416. package/lib/test/Forest.tests.js +2 -2
  417. package/lib/test/Forest.tests.js.map +1 -1
  418. package/lib/test/GenericTransaction.tests.js +3 -3
  419. package/lib/test/GenericTransaction.tests.js.map +1 -1
  420. package/lib/test/HistoryEditFactory.tests.js +4 -4
  421. package/lib/test/HistoryEditFactory.tests.js.map +1 -1
  422. package/lib/test/IdCompressor.perf.tests.js +4 -4
  423. package/lib/test/IdCompressor.perf.tests.js.map +1 -1
  424. package/lib/test/IdCompressor.tests.js +7 -7
  425. package/lib/test/IdCompressor.tests.js.map +1 -1
  426. package/lib/test/IdConversion.tests.js +3 -3
  427. package/lib/test/IdConversion.tests.js.map +1 -1
  428. package/lib/test/LazyCheckout.tests.js +4 -4
  429. package/lib/test/LazyCheckout.tests.js.map +1 -1
  430. package/lib/test/LogViewer.tests.js +12 -12
  431. package/lib/test/LogViewer.tests.js.map +1 -1
  432. package/lib/test/MergeHealthTelemetryHeartbeat.tests.js +6 -6
  433. package/lib/test/MergeHealthTelemetryHeartbeat.tests.js.map +1 -1
  434. package/lib/test/NumericUuid.perf.tests.js +3 -3
  435. package/lib/test/NumericUuid.perf.tests.js.map +1 -1
  436. package/lib/test/NumericUuid.tests.js +4 -4
  437. package/lib/test/NumericUuid.tests.js.map +1 -1
  438. package/lib/test/RevisionValueCache.tests.js +2 -2
  439. package/lib/test/RevisionValueCache.tests.js.map +1 -1
  440. package/lib/test/RevisionView.tests.js +6 -6
  441. package/lib/test/RevisionView.tests.js.map +1 -1
  442. package/lib/test/SessionIdNormalizer.tests.js +3 -3
  443. package/lib/test/SessionIdNormalizer.tests.js.map +1 -1
  444. package/lib/test/SharedTree.fuzz.tests.js +1 -1
  445. package/lib/test/SharedTree.fuzz.tests.js.map +1 -1
  446. package/lib/test/SharedTree.perf.tests.js +2 -2
  447. package/lib/test/SharedTree.perf.tests.js.map +1 -1
  448. package/lib/test/SharedTree.tests.js +7 -7
  449. package/lib/test/SharedTree.tests.js.map +1 -1
  450. package/lib/test/StringInterner.tests.js +1 -1
  451. package/lib/test/StringInterner.tests.js.map +1 -1
  452. package/lib/test/Summary.tests.d.ts +2 -2
  453. package/lib/test/Summary.tests.d.ts.map +1 -1
  454. package/lib/test/Summary.tests.js +14 -14
  455. package/lib/test/Summary.tests.js.map +1 -1
  456. package/lib/test/Transaction.tests.js +5 -5
  457. package/lib/test/Transaction.tests.js.map +1 -1
  458. package/lib/test/TransactionInternal.tests.js +7 -7
  459. package/lib/test/TransactionInternal.tests.js.map +1 -1
  460. package/lib/test/TreeCompression.tests.js +8 -8
  461. package/lib/test/TreeCompression.tests.js.map +1 -1
  462. package/lib/test/TreeView.tests.js +3 -3
  463. package/lib/test/TreeView.tests.js.map +1 -1
  464. package/lib/test/UndoRedoHandler.tests.js +2 -2
  465. package/lib/test/UndoRedoHandler.tests.js.map +1 -1
  466. package/lib/test/fuzz/Generators.d.ts +1 -1
  467. package/lib/test/fuzz/Generators.d.ts.map +1 -1
  468. package/lib/test/fuzz/Generators.js +4 -4
  469. package/lib/test/fuzz/Generators.js.map +1 -1
  470. package/lib/test/fuzz/SharedTreeFuzzTests.d.ts +1 -1
  471. package/lib/test/fuzz/SharedTreeFuzzTests.d.ts.map +1 -1
  472. package/lib/test/fuzz/SharedTreeFuzzTests.js +5 -5
  473. package/lib/test/fuzz/SharedTreeFuzzTests.js.map +1 -1
  474. package/lib/test/fuzz/Types.d.ts +6 -6
  475. package/lib/test/fuzz/Types.d.ts.map +1 -1
  476. package/lib/test/fuzz/Types.js.map +1 -1
  477. package/lib/test/utilities/IdCompressorTestUtilities.d.ts +6 -6
  478. package/lib/test/utilities/IdCompressorTestUtilities.d.ts.map +1 -1
  479. package/lib/test/utilities/IdCompressorTestUtilities.js +6 -6
  480. package/lib/test/utilities/IdCompressorTestUtilities.js.map +1 -1
  481. package/lib/test/utilities/MockTransaction.d.ts +4 -4
  482. package/lib/test/utilities/MockTransaction.d.ts.map +1 -1
  483. package/lib/test/utilities/MockTransaction.js +3 -3
  484. package/lib/test/utilities/MockTransaction.js.map +1 -1
  485. package/lib/test/utilities/PendingLocalStateTests.d.ts +1 -1
  486. package/lib/test/utilities/PendingLocalStateTests.d.ts.map +1 -1
  487. package/lib/test/utilities/PendingLocalStateTests.js +5 -5
  488. package/lib/test/utilities/PendingLocalStateTests.js.map +1 -1
  489. package/lib/test/utilities/SharedTreeTests.d.ts +2 -2
  490. package/lib/test/utilities/SharedTreeTests.d.ts.map +1 -1
  491. package/lib/test/utilities/SharedTreeTests.js +22 -22
  492. package/lib/test/utilities/SharedTreeTests.js.map +1 -1
  493. package/lib/test/utilities/SharedTreeVersioningTests.d.ts +1 -1
  494. package/lib/test/utilities/SharedTreeVersioningTests.d.ts.map +1 -1
  495. package/lib/test/utilities/SharedTreeVersioningTests.js +10 -10
  496. package/lib/test/utilities/SharedTreeVersioningTests.js.map +1 -1
  497. package/lib/test/utilities/SummaryLoadPerfTests.js +6 -6
  498. package/lib/test/utilities/SummaryLoadPerfTests.js.map +1 -1
  499. package/lib/test/utilities/SummarySizeTests.d.ts +1 -1
  500. package/lib/test/utilities/SummarySizeTests.d.ts.map +1 -1
  501. package/lib/test/utilities/SummarySizeTests.js +5 -5
  502. package/lib/test/utilities/SummarySizeTests.js.map +1 -1
  503. package/lib/test/utilities/TestNode.d.ts +6 -6
  504. package/lib/test/utilities/TestNode.d.ts.map +1 -1
  505. package/lib/test/utilities/TestNode.js +5 -5
  506. package/lib/test/utilities/TestNode.js.map +1 -1
  507. package/lib/test/utilities/TestUtilities.d.ts +12 -12
  508. package/lib/test/utilities/TestUtilities.d.ts.map +1 -1
  509. package/lib/test/utilities/TestUtilities.js +18 -19
  510. package/lib/test/utilities/TestUtilities.js.map +1 -1
  511. package/lib/test/utilities/UndoRedoTests.d.ts +2 -2
  512. package/lib/test/utilities/UndoRedoTests.d.ts.map +1 -1
  513. package/lib/test/utilities/UndoRedoTests.js +7 -7
  514. package/lib/test/utilities/UndoRedoTests.js.map +1 -1
  515. package/package.json +57 -31
  516. package/src/ChangeCompression.ts +7 -7
  517. package/src/ChangeTypes.ts +5 -5
  518. package/src/Checkout.ts +13 -13
  519. package/src/Common.ts +2 -2
  520. package/src/EagerCheckout.ts +3 -3
  521. package/src/EditLog.ts +6 -7
  522. package/src/EditUtilities.ts +10 -10
  523. package/src/Forest.ts +4 -4
  524. package/src/HistoryEditFactory.ts +11 -11
  525. package/src/IdConversion.ts +4 -4
  526. package/src/InitialTree.ts +3 -3
  527. package/src/LazyCheckout.ts +5 -5
  528. package/src/LogViewer.ts +8 -8
  529. package/src/MergeHealth.ts +6 -6
  530. package/src/NodeIdUtilities.ts +4 -4
  531. package/src/PayloadUtilities.ts +1 -1
  532. package/src/ReconciliationPath.ts +3 -3
  533. package/src/RevisionValueCache.ts +1 -1
  534. package/src/RevisionView.ts +7 -7
  535. package/src/SerializationUtilities.ts +5 -5
  536. package/src/SharedTree.ts +34 -54
  537. package/src/SharedTreeEncoder.ts +15 -15
  538. package/src/StringInterner.ts +2 -2
  539. package/src/Summary.ts +5 -5
  540. package/src/SummaryBackCompatibility.ts +10 -5
  541. package/src/SummaryTestUtilities.ts +3 -3
  542. package/src/Transaction.ts +8 -8
  543. package/src/TransactionInternal.ts +8 -8
  544. package/src/TreeCompressor.ts +6 -6
  545. package/src/TreeNodeHandle.ts +4 -4
  546. package/src/TreeView.ts +4 -4
  547. package/src/TreeViewUtilities.ts +3 -3
  548. package/src/UndoRedoHandler.ts +4 -4
  549. package/src/UuidUtilities.ts +2 -2
  550. package/src/id-compressor/AppendOnlySortedMap.ts +1 -1
  551. package/src/id-compressor/IdCompressor.ts +8 -8
  552. package/src/id-compressor/IdRange.ts +1 -1
  553. package/src/id-compressor/NumericUuid.ts +3 -3
  554. package/src/id-compressor/SessionIdNormalizer.ts +4 -4
  555. package/src/id-compressor/index.ts +4 -4
  556. package/src/id-compressor/persisted-types/0.0.1.ts +1 -1
  557. package/src/id-compressor/persisted-types/index.ts +1 -1
  558. package/src/index.ts +29 -29
  559. package/src/migration-shim/migrationDeltaHandler.ts +9 -10
  560. package/src/migration-shim/migrationShim.ts +7 -5
  561. package/src/migration-shim/migrationShimFactory.ts +4 -1
  562. package/src/migration-shim/sharedTreeDeltaHandler.ts +7 -6
  563. package/src/migration-shim/types.ts +1 -1
  564. package/src/persisted-types/0.0.2.ts +1 -1
  565. package/src/persisted-types/0.1.1.ts +4 -4
  566. package/src/persisted-types/index.ts +2 -2
  567. package/tsconfig.esnext.json +1 -2
  568. package/tsconfig.json +3 -0
  569. package/lib/test/Attach.tests.d.ts +0 -6
  570. package/lib/test/Attach.tests.d.ts.map +0 -1
  571. package/lib/test/Attach.tests.js +0 -52
  572. package/lib/test/Attach.tests.js.map +0 -1
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  module.exports = {
7
- extends: ['@fluidframework/eslint-config-fluid/minimal', 'prettier'],
7
+ extends: ['@fluidframework/eslint-config-fluid/minimal-deprecated', 'prettier'],
8
8
  root: true,
9
9
  rules: {
10
10
  // TODO: Recover "noUnusedLocals" behavior as part of linting. (This rule seems to be broken in the Fluid repo.)
@@ -5,7 +5,7 @@
5
5
 
6
6
  'use strict';
7
7
 
8
- const getFluidTestMochaConfig = require('@fluidframework/mocha-test-setup/mocharc-common');
8
+ const getFluidTestMochaConfig = require('@fluid-internal/mocha-test-setup/mocharc-common');
9
9
 
10
10
  const packageDir = __dirname;
11
11
  const config = getFluidTestMochaConfig(packageDir);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "mochaExplorer.files": ["dist/**/*.tests.js"],
3
3
  "mochaExplorer.pruneFiles": true,
4
- "mochaExplorer.require": "node_modules/@fluidframework/mocha-test-setup",
4
+ "mochaExplorer.require": "node_modules/@fluid-internal/mocha-test-setup",
5
5
  "mochaExplorer.timeout": 999999
6
6
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @fluid-experimental/tree
2
2
 
3
+ ## 2.0.0-rc.2.0.0
4
+
5
+ Dependency updates only.
6
+
3
7
  ## 2.0.0-rc.1.0.0
4
8
 
5
9
  ### Minor Changes
@@ -22,9 +22,9 @@ import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
22
22
  import { ISharedObjectEvents } from '@fluidframework/shared-object-base';
23
23
  import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
24
24
  import { ITelemetryBaseEvent } from '@fluidframework/core-interfaces';
25
+ import { ITelemetryBaseProperties } from '@fluidframework/core-interfaces';
25
26
  import { ITelemetryContext } from '@fluidframework/runtime-definitions';
26
27
  import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
27
- import { ITelemetryProperties } from '@fluidframework/core-interfaces';
28
28
  import { ITree } from '@fluidframework/tree';
29
29
  import { SharedObject } from '@fluidframework/shared-object-base';
30
30
  import { TypedEventEmitter } from '@fluid-internal/client-utils';
@@ -896,7 +896,7 @@ export class SharedTree extends SharedObject<ISharedTreeEvents> implements NodeI
896
896
  // (undocumented)
897
897
  applyEdit(changes: readonly Change[]): Edit<InternalizedChange>;
898
898
  applyEditInternal(editOrChanges: Edit<ChangeInternal> | readonly ChangeInternal[]): Edit<ChangeInternal>;
899
- protected applyStashedOp(op: unknown): StashedLocalOpMetadata;
899
+ protected applyStashedOp(op: unknown): void;
900
900
  attributeNodeId(id: NodeId): AttributionId;
901
901
  get attributionId(): AttributionId;
902
902
  convertToNodeId(id: StableNodeId): NodeId;
@@ -908,7 +908,6 @@ export class SharedTree extends SharedObject<ISharedTreeEvents> implements NodeI
908
908
  get edits(): OrderedEditSet<InternalizedChange>;
909
909
  equals(sharedTree: SharedTree): boolean;
910
910
  generateNodeId(override?: string): NodeId;
911
- // (undocumented)
912
911
  getAttachSummary(fullTree?: boolean | undefined, trackState?: boolean | undefined, telemetryContext?: ITelemetryContext | undefined): ISummaryTreeWithStats;
913
912
  static getFactory(...args: SharedTreeArgs<WriteFormat.v0_0_2>): SharedTreeFactory;
914
913
  // (undocumented)
@@ -918,18 +917,14 @@ export class SharedTree extends SharedObject<ISharedTreeEvents> implements NodeI
918
917
  getRuntime(): IFluidDataStoreRuntime;
919
918
  getWriteFormat(): WriteFormat;
920
919
  internalizeChange(change: Change): ChangeInternal;
921
- // (undocumented)
922
920
  protected loadCore(storage: IChannelStorageService): Promise<void>;
923
- loadSerializedSummary(blobData: string): ITelemetryProperties;
921
+ loadSerializedSummary(blobData: string): ITelemetryBaseProperties;
924
922
  loadSummary(summary: SharedTreeSummaryBase): void;
925
923
  readonly logger: ITelemetryLoggerExt;
926
924
  get logViewer(): LogViewer;
927
925
  mergeEditsFrom(other: SharedTree, edits: Iterable<Edit<InternalizedChange>>, stableIdRemapper?: (id: StableNodeId) => StableNodeId): EditId[];
928
- // (undocumented)
929
926
  protected onDisconnect(): void;
930
- // (undocumented)
931
927
  protected processCore(message: unknown, local: boolean): void;
932
- // (undocumented)
933
928
  protected registerCore(): void;
934
929
  // (undocumented)
935
930
  protected reSubmitCore(op: unknown, localOpMetadata?: StashedLocalOpMetadata): void;
@@ -939,7 +934,6 @@ export class SharedTree extends SharedObject<ISharedTreeEvents> implements NodeI
939
934
  serializer?: IFluidSerializer;
940
935
  }): string;
941
936
  saveSummary(): SharedTreeSummaryBase;
942
- // (undocumented)
943
937
  summarizeCore(serializer: IFluidSerializer): ISummaryTreeWithStats;
944
938
  tryConvertToNodeId(id: StableNodeId): NodeId | undefined;
945
939
  tryConvertToStableNodeId(id: NodeId): StableNodeId | undefined;
@@ -977,16 +971,11 @@ export enum SharedTreeEvent {
977
971
  // @alpha
978
972
  export class SharedTreeFactory implements IChannelFactory {
979
973
  constructor(...args: SharedTreeArgs);
980
- // (undocumented)
981
974
  static Attributes: IChannelAttributes;
982
- // (undocumented)
983
975
  get attributes(): IChannelAttributes;
984
976
  create(runtime: IFluidDataStoreRuntime, id: string): SharedTree;
985
- // (undocumented)
986
- load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, _channelAttributes: Readonly<IChannelAttributes>): Promise<IChannel>;
987
- // (undocumented)
977
+ load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, _channelAttributes: Readonly<IChannelAttributes>): Promise<SharedTree>;
988
978
  static Type: string;
989
- // (undocumented)
990
979
  get type(): string;
991
980
  }
992
981
 
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { DetachedSequenceId, OpSpaceNodeId } from './Identifiers';
6
- import { ChangeInternal, CompressedChangeInternal } from './persisted-types';
7
- import { ContextualizedNodeIdNormalizer } from './NodeIdUtilities';
8
- import { TreeCompressor } from './TreeCompressor';
9
- import { StringInterner } from './StringInterner';
5
+ import { DetachedSequenceId, OpSpaceNodeId } from './Identifiers.js';
6
+ import { ChangeInternal, CompressedChangeInternal } from './persisted-types/index.js';
7
+ import { ContextualizedNodeIdNormalizer } from './NodeIdUtilities.js';
8
+ import { TreeCompressor } from './TreeCompressor.js';
9
+ import { StringInterner } from './StringInterner.js';
10
10
  /**
11
11
  * Encapsulates knowledge of how to compress/decompress a change into a compressed change
12
12
  * Compression and decompression each take in a {@link StringInterner} for deduplicating shared strings.
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeCompression.d.ts","sourceRoot":"","sources":["../src/ChangeCompression.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAU,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAGN,cAAc,EACd,wBAAwB,EAQxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;GAIG;AACH,qBAAa,gBAAgB;IACT,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc,CAAC,kBAAkB,CAAC;IAE/E,QAAQ,CAAC,GAAG,SAAS,aAAa,EACxC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,GAC/C,wBAAwB,CAAC,GAAG,CAAC;IAiBzB,UAAU,CAAC,GAAG,SAAS,aAAa,EAC1C,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,EACrC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,GAC/C,cAAc;CAgBjB;AAmDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,SAAS,aAAa,EAAE,KAAK,SAAS;IAAE,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,EAC3G,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,EACjD,IAAI,EAAE,KAAK,GACT,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAA;CAAE,CAKhF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,GAAG,SAAS,aAAa,EACzB,KAAK,SAAS;IAAE,OAAO,EAAE,SAAS,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAA;CAAE,EAEnE,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,EACjD,IAAI,EAAE,KAAK,GACT,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,CAKjE"}
1
+ {"version":3,"file":"ChangeCompression.d.ts","sourceRoot":"","sources":["../src/ChangeCompression.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAU,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAGN,cAAc,EACd,wBAAwB,EAQxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;;GAIG;AACH,qBAAa,gBAAgB;IACT,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc,CAAC,kBAAkB,CAAC;IAE/E,QAAQ,CAAC,GAAG,SAAS,aAAa,EACxC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,GAC/C,wBAAwB,CAAC,GAAG,CAAC;IAiBzB,UAAU,CAAC,GAAG,SAAS,aAAa,EAC1C,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,EACrC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,GAC/C,cAAc;CAgBjB;AAmDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,SAAS,aAAa,EAAE,KAAK,SAAS;IAAE,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,EAC3G,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,EACjD,IAAI,EAAE,KAAK,GACT,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAA;CAAE,CAKhF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,GAAG,SAAS,aAAa,EACzB,KAAK,SAAS;IAAE,OAAO,EAAE,SAAS,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAA;CAAE,EAEnE,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,8BAA8B,CAAC,GAAG,CAAC,EACjD,IAAI,EAAE,KAAK,GACT,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,CAKjE"}
@@ -5,9 +5,9 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.decompressEdit = exports.compressEdit = exports.ChangeCompressor = void 0;
8
- const persisted_types_1 = require("./persisted-types");
9
- const Common_1 = require("./Common");
10
- const IdConversion_1 = require("./IdConversion");
8
+ const index_js_1 = require("./persisted-types/index.js");
9
+ const Common_js_1 = require("./Common.js");
10
+ const IdConversion_js_1 = require("./IdConversion.js");
11
11
  /**
12
12
  * Encapsulates knowledge of how to compress/decompress a change into a compressed change
13
13
  * Compression and decompression each take in a {@link StringInterner} for deduplicating shared strings.
@@ -18,7 +18,7 @@ class ChangeCompressor {
18
18
  this.treeCompressor = treeCompressor;
19
19
  }
20
20
  compress(change, interner, idNormalizer) {
21
- if (change.type === persisted_types_1.ChangeTypeInternal.Build) {
21
+ if (change.type === index_js_1.ChangeTypeInternal.Build) {
22
22
  const source = [];
23
23
  for (const node of change.source) {
24
24
  source.push(this.treeCompressor.compress(node, interner, idNormalizer));
@@ -26,7 +26,7 @@ class ChangeCompressor {
26
26
  const newChange = {
27
27
  destination: change.destination,
28
28
  source,
29
- type: persisted_types_1.ChangeTypeInternal.CompressedBuild,
29
+ type: index_js_1.ChangeTypeInternal.CompressedBuild,
30
30
  };
31
31
  return newChange;
32
32
  }
@@ -35,7 +35,7 @@ class ChangeCompressor {
35
35
  }
36
36
  }
37
37
  decompress(change, interner, idNormalizer) {
38
- if (change.type === persisted_types_1.ChangeTypeInternal.CompressedBuild) {
38
+ if (change.type === index_js_1.ChangeTypeInternal.CompressedBuild) {
39
39
  const source = [];
40
40
  for (const node of change.source) {
41
41
  source.push(this.treeCompressor.decompress(node, interner, idNormalizer));
@@ -43,7 +43,7 @@ class ChangeCompressor {
43
43
  const newChange = {
44
44
  destination: change.destination,
45
45
  source,
46
- type: persisted_types_1.ChangeTypeInternal.Build,
46
+ type: index_js_1.ChangeTypeInternal.Build,
47
47
  };
48
48
  return newChange;
49
49
  }
@@ -55,47 +55,47 @@ class ChangeCompressor {
55
55
  exports.ChangeCompressor = ChangeCompressor;
56
56
  function normalizeChange(change, normalizeId) {
57
57
  switch (change.type) {
58
- case persisted_types_1.ChangeTypeInternal.Insert: {
58
+ case index_js_1.ChangeTypeInternal.Insert: {
59
59
  const insert = {
60
60
  source: change.source,
61
- destination: (0, IdConversion_1.convertStablePlaceIds)(change.destination, normalizeId),
62
- type: persisted_types_1.ChangeTypeInternal.Insert,
61
+ destination: (0, IdConversion_js_1.convertStablePlaceIds)(change.destination, normalizeId),
62
+ type: index_js_1.ChangeTypeInternal.Insert,
63
63
  };
64
64
  return insert;
65
65
  }
66
- case persisted_types_1.ChangeTypeInternal.Detach: {
66
+ case index_js_1.ChangeTypeInternal.Detach: {
67
67
  const detach = {
68
- source: (0, IdConversion_1.convertStableRangeIds)(change.source, normalizeId),
69
- type: persisted_types_1.ChangeTypeInternal.Detach,
68
+ source: (0, IdConversion_js_1.convertStableRangeIds)(change.source, normalizeId),
69
+ type: index_js_1.ChangeTypeInternal.Detach,
70
70
  };
71
- (0, Common_1.copyPropertyIfDefined)(change, detach, 'destination');
71
+ (0, Common_js_1.copyPropertyIfDefined)(change, detach, 'destination');
72
72
  return detach;
73
73
  }
74
- case persisted_types_1.ChangeTypeInternal.SetValue: {
74
+ case index_js_1.ChangeTypeInternal.SetValue: {
75
75
  const setValue = {
76
76
  nodeToModify: normalizeId(change.nodeToModify),
77
77
  payload: change.payload,
78
- type: persisted_types_1.ChangeTypeInternal.SetValue,
78
+ type: index_js_1.ChangeTypeInternal.SetValue,
79
79
  };
80
80
  return setValue;
81
81
  }
82
- case persisted_types_1.ChangeTypeInternal.Constraint: {
82
+ case index_js_1.ChangeTypeInternal.Constraint: {
83
83
  const constraint = {
84
84
  effect: change.effect,
85
- toConstrain: (0, IdConversion_1.convertStableRangeIds)(change.toConstrain, normalizeId),
86
- type: persisted_types_1.ChangeTypeInternal.Constraint,
85
+ toConstrain: (0, IdConversion_js_1.convertStableRangeIds)(change.toConstrain, normalizeId),
86
+ type: index_js_1.ChangeTypeInternal.Constraint,
87
87
  };
88
- (0, Common_1.copyPropertyIfDefined)(change, constraint, 'contentHash');
89
- (0, Common_1.copyPropertyIfDefined)(change, constraint, 'identityHash');
90
- (0, Common_1.copyPropertyIfDefined)(change, constraint, 'label');
91
- (0, Common_1.copyPropertyIfDefined)(change, constraint, 'length');
88
+ (0, Common_js_1.copyPropertyIfDefined)(change, constraint, 'contentHash');
89
+ (0, Common_js_1.copyPropertyIfDefined)(change, constraint, 'identityHash');
90
+ (0, Common_js_1.copyPropertyIfDefined)(change, constraint, 'label');
91
+ (0, Common_js_1.copyPropertyIfDefined)(change, constraint, 'length');
92
92
  if (change.parentNode !== undefined) {
93
93
  constraint.parentNode = normalizeId(change.parentNode);
94
94
  }
95
95
  return constraint;
96
96
  }
97
97
  default:
98
- (0, Common_1.fail)('unexpected change type');
98
+ (0, Common_js_1.fail)('unexpected change type');
99
99
  }
100
100
  }
101
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeCompression.js","sourceRoot":"","sources":["../src/ChangeCompression.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DetachedSequenceId, NodeId, OpSpaceNodeId } from './Identifiers';\nimport {\n\tBuildInternal,\n\tBuildNodeInternal,\n\tChangeInternal,\n\tCompressedChangeInternal,\n\tChangeTypeInternal,\n\tCompressedBuildInternal,\n\tCompressedPlaceholderTree,\n\tInsertInternal,\n\tDetachInternal,\n\tSetValueInternal,\n\tConstraintInternal,\n} from './persisted-types';\nimport { ContextualizedNodeIdNormalizer } from './NodeIdUtilities';\nimport { copyPropertyIfDefined, fail, Mutable, ReplaceRecursive } from './Common';\nimport { TreeCompressor } from './TreeCompressor';\nimport { StringInterner } from './StringInterner';\nimport { convertStablePlaceIds, convertStableRangeIds } from './IdConversion';\n\n/**\n * Encapsulates knowledge of how to compress/decompress a change into a compressed change\n * Compression and decompression each take in a {@link StringInterner} for deduplicating shared strings.\n * @internal\n */\nexport class ChangeCompressor {\n\tpublic constructor(private readonly treeCompressor: TreeCompressor<DetachedSequenceId>) {}\n\n\tpublic compress<TId extends OpSpaceNodeId>(\n\t\tchange: ChangeInternal,\n\t\tinterner: StringInterner,\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<TId>\n\t): CompressedChangeInternal<TId> {\n\t\tif (change.type === ChangeTypeInternal.Build) {\n\t\t\tconst source: CompressedPlaceholderTree<TId, DetachedSequenceId>[] = [];\n\t\t\tfor (const node of change.source) {\n\t\t\t\tsource.push(this.treeCompressor.compress(node, interner, idNormalizer));\n\t\t\t}\n\t\t\tconst newChange: CompressedBuildInternal<TId> = {\n\t\t\t\tdestination: change.destination,\n\t\t\t\tsource,\n\t\t\t\ttype: ChangeTypeInternal.CompressedBuild,\n\t\t\t};\n\t\t\treturn newChange;\n\t\t} else {\n\t\t\treturn normalizeChange(change, (id) => idNormalizer.normalizeToOpSpace(id));\n\t\t}\n\t}\n\n\tpublic decompress<TId extends OpSpaceNodeId>(\n\t\tchange: CompressedChangeInternal<TId>,\n\t\tinterner: StringInterner,\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<TId>\n\t): ChangeInternal {\n\t\tif (change.type === ChangeTypeInternal.CompressedBuild) {\n\t\t\tconst source: BuildNodeInternal[] = [];\n\t\t\tfor (const node of change.source) {\n\t\t\t\tsource.push(this.treeCompressor.decompress(node, interner, idNormalizer));\n\t\t\t}\n\t\t\tconst newChange: BuildInternal = {\n\t\t\t\tdestination: change.destination,\n\t\t\t\tsource,\n\t\t\t\ttype: ChangeTypeInternal.Build,\n\t\t\t};\n\t\t\treturn newChange;\n\t\t} else {\n\t\t\treturn normalizeChange(change, (id) => idNormalizer.normalizeToSessionSpace(id));\n\t\t}\n\t}\n}\n\nfunction normalizeChange<From extends NodeId | OpSpaceNodeId, To extends NodeId | OpSpaceNodeId>(\n\tchange: ReplaceRecursive<Exclude<ChangeInternal, BuildInternal>, NodeId, From>,\n\tnormalizeId: (id: From) => To\n): ReplaceRecursive<Exclude<ChangeInternal, BuildInternal>, NodeId, To> {\n\tswitch (change.type) {\n\t\tcase ChangeTypeInternal.Insert: {\n\t\t\tconst insert: ReplaceRecursive<InsertInternal, NodeId, To> = {\n\t\t\t\tsource: change.source,\n\t\t\t\tdestination: convertStablePlaceIds(change.destination, normalizeId),\n\t\t\t\ttype: ChangeTypeInternal.Insert,\n\t\t\t};\n\t\t\treturn insert;\n\t\t}\n\t\tcase ChangeTypeInternal.Detach: {\n\t\t\tconst detach: ReplaceRecursive<DetachInternal, NodeId, To> = {\n\t\t\t\tsource: convertStableRangeIds(change.source, normalizeId),\n\t\t\t\ttype: ChangeTypeInternal.Detach,\n\t\t\t};\n\t\t\tcopyPropertyIfDefined(change, detach, 'destination');\n\t\t\treturn detach;\n\t\t}\n\t\tcase ChangeTypeInternal.SetValue: {\n\t\t\tconst setValue: ReplaceRecursive<SetValueInternal, NodeId, To> = {\n\t\t\t\tnodeToModify: normalizeId(change.nodeToModify),\n\t\t\t\tpayload: change.payload,\n\t\t\t\ttype: ChangeTypeInternal.SetValue,\n\t\t\t};\n\t\t\treturn setValue;\n\t\t}\n\t\tcase ChangeTypeInternal.Constraint: {\n\t\t\tconst constraint: Mutable<ReplaceRecursive<ConstraintInternal, NodeId, To>> = {\n\t\t\t\teffect: change.effect,\n\t\t\t\ttoConstrain: convertStableRangeIds(change.toConstrain, normalizeId),\n\t\t\t\ttype: ChangeTypeInternal.Constraint,\n\t\t\t};\n\t\t\tcopyPropertyIfDefined(change, constraint, 'contentHash');\n\t\t\tcopyPropertyIfDefined(change, constraint, 'identityHash');\n\t\t\tcopyPropertyIfDefined(change, constraint, 'label');\n\t\t\tcopyPropertyIfDefined(change, constraint, 'length');\n\t\t\tif (change.parentNode !== undefined) {\n\t\t\t\tconstraint.parentNode = normalizeId(change.parentNode);\n\t\t\t}\n\t\t\treturn constraint;\n\t\t}\n\t\tdefault:\n\t\t\tfail('unexpected change type');\n\t}\n}\n\n/**\n * Compresses the provided edit by applying `compressor` to each change and leaving other fields\n * untouched.\n */\nexport function compressEdit<TId extends OpSpaceNodeId, TEdit extends { changes: readonly ChangeInternal[] }>(\n\tcompressor: ChangeCompressor,\n\tinterner: StringInterner,\n\tidNormalizer: ContextualizedNodeIdNormalizer<TId>,\n\tedit: TEdit\n): Omit<TEdit, 'changes'> & { changes: readonly CompressedChangeInternal<TId>[] } {\n\treturn {\n\t\t...edit,\n\t\tchanges: edit.changes.map((change) => compressor.compress(change, interner, idNormalizer)),\n\t};\n}\n\n/**\n * Decompresses the provided edit by applying `compressor` to each change and leaving other fields\n * untouched.\n */\nexport function decompressEdit<\n\tTId extends OpSpaceNodeId,\n\tTEdit extends { changes: readonly CompressedChangeInternal<TId>[] },\n>(\n\tcompressor: ChangeCompressor,\n\tinterner: StringInterner,\n\tidNormalizer: ContextualizedNodeIdNormalizer<TId>,\n\tedit: TEdit\n): Omit<TEdit, 'changes'> & { changes: readonly ChangeInternal[] } {\n\treturn {\n\t\t...edit,\n\t\tchanges: edit.changes.map((change) => compressor.decompress(change, interner, idNormalizer)),\n\t};\n}\n"]}
1
+ {"version":3,"file":"ChangeCompression.js","sourceRoot":"","sources":["../src/ChangeCompression.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DetachedSequenceId, NodeId, OpSpaceNodeId } from './Identifiers.js';\nimport {\n\tBuildInternal,\n\tBuildNodeInternal,\n\tChangeInternal,\n\tCompressedChangeInternal,\n\tChangeTypeInternal,\n\tCompressedBuildInternal,\n\tCompressedPlaceholderTree,\n\tInsertInternal,\n\tDetachInternal,\n\tSetValueInternal,\n\tConstraintInternal,\n} from './persisted-types/index.js';\nimport { ContextualizedNodeIdNormalizer } from './NodeIdUtilities.js';\nimport { copyPropertyIfDefined, fail, Mutable, ReplaceRecursive } from './Common.js';\nimport { TreeCompressor } from './TreeCompressor.js';\nimport { StringInterner } from './StringInterner.js';\nimport { convertStablePlaceIds, convertStableRangeIds } from './IdConversion.js';\n\n/**\n * Encapsulates knowledge of how to compress/decompress a change into a compressed change\n * Compression and decompression each take in a {@link StringInterner} for deduplicating shared strings.\n * @internal\n */\nexport class ChangeCompressor {\n\tpublic constructor(private readonly treeCompressor: TreeCompressor<DetachedSequenceId>) {}\n\n\tpublic compress<TId extends OpSpaceNodeId>(\n\t\tchange: ChangeInternal,\n\t\tinterner: StringInterner,\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<TId>\n\t): CompressedChangeInternal<TId> {\n\t\tif (change.type === ChangeTypeInternal.Build) {\n\t\t\tconst source: CompressedPlaceholderTree<TId, DetachedSequenceId>[] = [];\n\t\t\tfor (const node of change.source) {\n\t\t\t\tsource.push(this.treeCompressor.compress(node, interner, idNormalizer));\n\t\t\t}\n\t\t\tconst newChange: CompressedBuildInternal<TId> = {\n\t\t\t\tdestination: change.destination,\n\t\t\t\tsource,\n\t\t\t\ttype: ChangeTypeInternal.CompressedBuild,\n\t\t\t};\n\t\t\treturn newChange;\n\t\t} else {\n\t\t\treturn normalizeChange(change, (id) => idNormalizer.normalizeToOpSpace(id));\n\t\t}\n\t}\n\n\tpublic decompress<TId extends OpSpaceNodeId>(\n\t\tchange: CompressedChangeInternal<TId>,\n\t\tinterner: StringInterner,\n\t\tidNormalizer: ContextualizedNodeIdNormalizer<TId>\n\t): ChangeInternal {\n\t\tif (change.type === ChangeTypeInternal.CompressedBuild) {\n\t\t\tconst source: BuildNodeInternal[] = [];\n\t\t\tfor (const node of change.source) {\n\t\t\t\tsource.push(this.treeCompressor.decompress(node, interner, idNormalizer));\n\t\t\t}\n\t\t\tconst newChange: BuildInternal = {\n\t\t\t\tdestination: change.destination,\n\t\t\t\tsource,\n\t\t\t\ttype: ChangeTypeInternal.Build,\n\t\t\t};\n\t\t\treturn newChange;\n\t\t} else {\n\t\t\treturn normalizeChange(change, (id) => idNormalizer.normalizeToSessionSpace(id));\n\t\t}\n\t}\n}\n\nfunction normalizeChange<From extends NodeId | OpSpaceNodeId, To extends NodeId | OpSpaceNodeId>(\n\tchange: ReplaceRecursive<Exclude<ChangeInternal, BuildInternal>, NodeId, From>,\n\tnormalizeId: (id: From) => To\n): ReplaceRecursive<Exclude<ChangeInternal, BuildInternal>, NodeId, To> {\n\tswitch (change.type) {\n\t\tcase ChangeTypeInternal.Insert: {\n\t\t\tconst insert: ReplaceRecursive<InsertInternal, NodeId, To> = {\n\t\t\t\tsource: change.source,\n\t\t\t\tdestination: convertStablePlaceIds(change.destination, normalizeId),\n\t\t\t\ttype: ChangeTypeInternal.Insert,\n\t\t\t};\n\t\t\treturn insert;\n\t\t}\n\t\tcase ChangeTypeInternal.Detach: {\n\t\t\tconst detach: ReplaceRecursive<DetachInternal, NodeId, To> = {\n\t\t\t\tsource: convertStableRangeIds(change.source, normalizeId),\n\t\t\t\ttype: ChangeTypeInternal.Detach,\n\t\t\t};\n\t\t\tcopyPropertyIfDefined(change, detach, 'destination');\n\t\t\treturn detach;\n\t\t}\n\t\tcase ChangeTypeInternal.SetValue: {\n\t\t\tconst setValue: ReplaceRecursive<SetValueInternal, NodeId, To> = {\n\t\t\t\tnodeToModify: normalizeId(change.nodeToModify),\n\t\t\t\tpayload: change.payload,\n\t\t\t\ttype: ChangeTypeInternal.SetValue,\n\t\t\t};\n\t\t\treturn setValue;\n\t\t}\n\t\tcase ChangeTypeInternal.Constraint: {\n\t\t\tconst constraint: Mutable<ReplaceRecursive<ConstraintInternal, NodeId, To>> = {\n\t\t\t\teffect: change.effect,\n\t\t\t\ttoConstrain: convertStableRangeIds(change.toConstrain, normalizeId),\n\t\t\t\ttype: ChangeTypeInternal.Constraint,\n\t\t\t};\n\t\t\tcopyPropertyIfDefined(change, constraint, 'contentHash');\n\t\t\tcopyPropertyIfDefined(change, constraint, 'identityHash');\n\t\t\tcopyPropertyIfDefined(change, constraint, 'label');\n\t\t\tcopyPropertyIfDefined(change, constraint, 'length');\n\t\t\tif (change.parentNode !== undefined) {\n\t\t\t\tconstraint.parentNode = normalizeId(change.parentNode);\n\t\t\t}\n\t\t\treturn constraint;\n\t\t}\n\t\tdefault:\n\t\t\tfail('unexpected change type');\n\t}\n}\n\n/**\n * Compresses the provided edit by applying `compressor` to each change and leaving other fields\n * untouched.\n */\nexport function compressEdit<TId extends OpSpaceNodeId, TEdit extends { changes: readonly ChangeInternal[] }>(\n\tcompressor: ChangeCompressor,\n\tinterner: StringInterner,\n\tidNormalizer: ContextualizedNodeIdNormalizer<TId>,\n\tedit: TEdit\n): Omit<TEdit, 'changes'> & { changes: readonly CompressedChangeInternal<TId>[] } {\n\treturn {\n\t\t...edit,\n\t\tchanges: edit.changes.map((change) => compressor.compress(change, interner, idNormalizer)),\n\t};\n}\n\n/**\n * Decompresses the provided edit by applying `compressor` to each change and leaving other fields\n * untouched.\n */\nexport function decompressEdit<\n\tTId extends OpSpaceNodeId,\n\tTEdit extends { changes: readonly CompressedChangeInternal<TId>[] },\n>(\n\tcompressor: ChangeCompressor,\n\tinterner: StringInterner,\n\tidNormalizer: ContextualizedNodeIdNormalizer<TId>,\n\tedit: TEdit\n): Omit<TEdit, 'changes'> & { changes: readonly ChangeInternal[] } {\n\treturn {\n\t\t...edit,\n\t\tchanges: edit.changes.map((change) => compressor.decompress(change, interner, idNormalizer)),\n\t};\n}\n"]}
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { NodeId, TraitLabel, UuidString } from './Identifiers';
6
- import { ConstraintEffect, NodeData, Payload, Side, TreeNodeSequence } from './persisted-types';
7
- import { TraitLocation } from './TreeView';
5
+ import { NodeId, TraitLabel, UuidString } from './Identifiers.js';
6
+ import { ConstraintEffect, NodeData, Payload, Side, TreeNodeSequence } from './persisted-types/index.js';
7
+ import { TraitLocation } from './TreeView.js';
8
8
  /**
9
9
  * An object which may have traits with children of the given type underneath it
10
10
  * @alpha
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeTypes.d.ts","sourceRoot":"","sources":["../src/ChangeTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChangeTypes.d.ts","sourceRoot":"","sources":["../src/ChangeTypes.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,9 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.StableRange = exports.StablePlace = exports.Change = exports.ChangeType = void 0;
8
8
  const core_utils_1 = require("@fluidframework/core-utils");
9
- const Common_1 = require("./Common");
10
- const persisted_types_1 = require("./persisted-types");
11
- const NodeIdUtilities_1 = require("./NodeIdUtilities");
9
+ const Common_js_1 = require("./Common.js");
10
+ const index_js_1 = require("./persisted-types/index.js");
11
+ const NodeIdUtilities_js_1 = require("./NodeIdUtilities.js");
12
12
  /**
13
13
  * The type of a Change
14
14
  * @alpha
@@ -79,7 +79,7 @@ exports.Change = {
79
79
  */
80
80
  move: (source, destination) => {
81
81
  const detach = exports.Change.detach(source, 0);
82
- return [detach, exports.Change.insert((0, Common_1.assertNotUndefined)(detach.destination), destination)];
82
+ return [detach, exports.Change.insert((0, Common_js_1.assertNotUndefined)(detach.destination), destination)];
83
83
  },
84
84
  };
85
85
  /**
@@ -98,21 +98,21 @@ exports.StablePlace = {
98
98
  * @returns The location directly before `node`.
99
99
  */
100
100
  before: (node) => ({
101
- side: persisted_types_1.Side.Before,
102
- referenceSibling: (0, NodeIdUtilities_1.getNodeId)(node),
101
+ side: index_js_1.Side.Before,
102
+ referenceSibling: (0, NodeIdUtilities_js_1.getNodeId)(node),
103
103
  }),
104
104
  /**
105
105
  * @returns The location directly after `node`.
106
106
  */
107
- after: (node) => ({ side: persisted_types_1.Side.After, referenceSibling: (0, NodeIdUtilities_1.getNodeId)(node) }),
107
+ after: (node) => ({ side: index_js_1.Side.After, referenceSibling: (0, NodeIdUtilities_js_1.getNodeId)(node) }),
108
108
  /**
109
109
  * @returns The location at the start of `trait`.
110
110
  */
111
- atStartOf: (trait) => ({ side: persisted_types_1.Side.After, referenceTrait: trait }),
111
+ atStartOf: (trait) => ({ side: index_js_1.Side.After, referenceTrait: trait }),
112
112
  /**
113
113
  * @returns The location at the end of `trait`.
114
114
  */
115
- atEndOf: (trait) => ({ side: persisted_types_1.Side.Before, referenceTrait: trait }),
115
+ atEndOf: (trait) => ({ side: index_js_1.Side.Before, referenceTrait: trait }),
116
116
  };
117
117
  // Note: Documentation of this constant is merged with documentation of the `StableRange` interface.
118
118
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeTypes.js","sourceRoot":"","sources":["../src/ChangeTypes.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from '@fluidframework/core-utils';\nimport { NodeId, TraitLabel, UuidString } from './Identifiers';\nimport { assertNotUndefined } from './Common';\nimport { ConstraintEffect, NodeData, Payload, Side, TreeNodeSequence } from './persisted-types';\nimport { TraitLocation } from './TreeView';\nimport { getNodeId } from './NodeIdUtilities';\n\n/**\n * An object which may have traits with children of the given type underneath it\n * @alpha\n */\nexport interface HasVariadicTraits<TChild> {\n\treadonly traits?: {\n\t\treadonly [key: string]: TChild | TreeNodeSequence<TChild> | undefined;\n\t};\n}\n\n/**\n * The type of a Change\n * @alpha\n */\nexport enum ChangeType {\n\tInsert,\n\tDetach,\n\tBuild,\n\tSetValue,\n\tConstraint,\n}\n\n/**\n * A change that composes an Edit.\n *\n * @remarks\n *\n * `Change` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n *\n * @example\n *\n * ```typescript\n * Change.insert(sourceId, destination)\n * ```\n * @alpha\n */\nexport type Change = Insert | Detach | Build | SetValue | Constraint;\n\n/**\n * Node or a detached sequence of nodes (referred to by a detached sequence ID) for use in a Build change.\n * See `BuildTreeNode` for more.\n * @alpha\n */\nexport type BuildNode = BuildTreeNode | number;\n\n/**\n * Node for use in a Build change, which is composed of a definition describing what this nodes type, an identifier identifying this node\n * within the tree, and a payload containing an opaque serializable piece of data.\n * An identifier can be provided explicitly if the node must be referred to before the results of the `Change` containing this\n * BuildTreeNode can be observed. If `identifier` is not supplied, one will be generated for it in an especially efficient manner\n * that allows for compact storage and transmission and thus this property should be omitted if convenient.\n * See the SharedTree readme for more on the tree format.\n * @alpha\n */\nexport interface BuildTreeNode extends HasVariadicTraits<BuildNode> {\n\tdefinition: string;\n\tidentifier?: NodeId;\n\tpayload?: Payload;\n}\n\n/**\n * Constructs a sequence of nodes, associates it with the supplied ID, and stores it for use in later changes.\n * Does not modify the document.\n *\n * Valid if (transitively) all DetachedSequenceId are used according to their rules (use here counts as a destination),\n * and all Nodes' identifiers are previously unused.\n * @alpha\n */\nexport interface Build {\n\treadonly destination: number;\n\treadonly source: BuildNode | TreeNodeSequence<BuildNode>;\n\treadonly type: typeof ChangeType.Build;\n}\n\n/**\n * Inserts a sequence of nodes at the specified destination.\n * The source can be constructed either by a Build (used to insert new nodes) or a Detach (amounts to a \"move\" operation).\n * @alpha\n */\nexport interface Insert {\n\treadonly destination: StablePlace;\n\treadonly source: number;\n\treadonly type: typeof ChangeType.Insert;\n}\n\n/**\n * Removes a sequence of nodes from the tree.\n * If a destination is specified, the detached sequence is associated with that ID and held for possible reuse\n * by later changes in this same Edit (such as by an Insert).\n * A Detach without a destination is a deletion of the specified sequence, as is a Detach with a destination that is not used later.\n * @alpha\n */\nexport interface Detach {\n\treadonly destination?: number;\n\treadonly source: StableRange;\n\treadonly type: typeof ChangeType.Detach;\n}\n\n/**\n * Modifies the payload of a node.\n * @alpha\n */\nexport interface SetValue {\n\treadonly nodeToModify: NodeId;\n\t/**\n\t * Sets or clears the payload.\n\t * To improve ease of forwards compatibility, an explicit `null` value is used to represent the clearing of a payload.\n\t * SetValue may use `undefined` in future API versions to mean \"don't change the payload\" (which is useful if e.g. other\n\t * fields are added to SetValue that can be changed without altering the payload)\n\t */\n\t// eslint-disable-next-line @rushstack/no-new-null\n\treadonly payload: Payload | null;\n\treadonly type: typeof ChangeType.SetValue;\n}\n\n/**\n * A set of constraints on the validity of an Edit.\n * A Constraint is used to detect when an Edit, due to other concurrent edits, may have unintended effects or merge in\n * non-semantic ways. It is processed in order like any other Change in an Edit. It can cause an edit to fail if the\n * various constraints are not met at the time of evaluation (ex: the parentNode has changed due to concurrent editing).\n * Does not modify the document.\n * @alpha\n */\nexport interface Constraint {\n\t/**\n\t * Selects a sequence of nodes which will be checked against the constraints specified by the optional fields.\n\t * If `toConstrain` is invalid, it will be treated like a constraint being unmet.\n\t * Depending on `effect` this may or may not make the Edit invalid.\n\t *\n\t * When a constraint is not met, the effects is specified by `effect`.\n\t */\n\treadonly toConstrain: StableRange;\n\n\t/**\n\t * Require that the identities of all the nodes in toConstrain hash to this value.\n\t * Hash is order dependent.\n\t * TODO: implement and specify exact hash function.\n\t *\n\t * This is an efficient (O(1) space) way to constrain a sequence of nodes to have specific identities.\n\t */\n\treadonly identityHash?: UuidString;\n\n\t/**\n\t * Require that the number of nodes in toConstrain is this value.\n\t */\n\treadonly length?: number;\n\n\t/**\n\t * Require that the contents of all of the nodes in toConstrain hash to this value.\n\t * Hash is an order dependant deep hash, which includes all subtree content recursively.\n\t * TODO: implement and specify exact hash function.\n\t *\n\t * This is an efficient (O(1) space) way to constrain a sequence of nodes have exact values (transitively).\n\t */\n\treadonly contentHash?: UuidString;\n\n\t/**\n\t * Require that parent under which toConstrain is located has this identifier.\n\t */\n\treadonly parentNode?: NodeId;\n\n\t/**\n\t * Require that the trait under which toConstrain is located has this label.\n\t */\n\treadonly label?: TraitLabel;\n\n\t/**\n\t * What to do if a constraint is not met.\n\t */\n\treadonly effect: ConstraintEffect;\n\n\t/**\n\t * Marker for which kind of Change this is.\n\t */\n\treadonly type: typeof ChangeType.Constraint;\n}\n\n// Note: Documentation of this constant is merged with documentation of the `Change` interface.\n/**\n * @alpha\n */\nexport const Change = {\n\tbuild: (source: BuildNode | TreeNodeSequence<BuildNode>, destination: number): Build => ({\n\t\tdestination,\n\t\tsource,\n\t\ttype: ChangeType.Build,\n\t}),\n\n\tinsert: (source: number, destination: StablePlace): Insert => ({\n\t\tdestination,\n\t\tsource,\n\t\ttype: ChangeType.Insert,\n\t}),\n\n\tdetach: (source: StableRange, destination?: number): Detach => ({\n\t\tdestination,\n\t\tsource,\n\t\ttype: ChangeType.Detach,\n\t}),\n\n\tsetPayload: (nodeToModify: NodeId, payload: Payload): SetValue => ({\n\t\tnodeToModify,\n\t\tpayload,\n\t\ttype: ChangeType.SetValue,\n\t}),\n\n\tclearPayload: (nodeToModify: NodeId): SetValue => ({\n\t\tnodeToModify,\n\t\t// Rationale: 'undefined' is reserved for future use (see 'SetValue' interface above.)\n\t\tpayload: null,\n\t\ttype: ChangeType.SetValue,\n\t}),\n\n\tconstraint: (\n\t\ttoConstrain: StableRange,\n\t\teffect: ConstraintEffect,\n\t\tidentityHash?: UuidString,\n\t\tlength?: number,\n\t\tcontentHash?: UuidString,\n\t\tparentNode?: NodeId,\n\t\tlabel?: TraitLabel\n\t): Constraint => ({\n\t\ttoConstrain,\n\t\teffect,\n\t\tidentityHash,\n\t\tlength,\n\t\tcontentHash,\n\t\tparentNode,\n\t\tlabel,\n\t\ttype: ChangeType.Constraint,\n\t}),\n\n\t/** Helpers for making high-level composite operations */\n\n\t/**\n\t * @returns a change that deletes the supplied part of the tree.\n\t */\n\tdelete: (stableRange: StableRange): Change => Change.detach(stableRange),\n\n\t/**\n\t * @returns changes that insert 'nodes' into the specified location in the tree.\n\t */\n\tinsertTree: (nodes: BuildNode | TreeNodeSequence<BuildNode>, destination: StablePlace): Change[] => {\n\t\tconst build = Change.build(nodes, 0);\n\t\treturn [build, Change.insert(build.destination, destination)];\n\t},\n\n\t/**\n\t * @returns changes that moves the specified content to a new location in the tree.\n\t */\n\tmove: (source: StableRange, destination: StablePlace): Change[] => {\n\t\tconst detach = Change.detach(source, 0);\n\t\treturn [detach, Change.insert(assertNotUndefined(detach.destination), destination)];\n\t},\n};\n\n/**\n * A location in a trait.\n * This is NOT the location of a node, but a location where a node could be inserted:\n * it is next to a sibling or at one end of the trait.\n *\n * To be well formed, either `sibling` or `trait` must be defined, but not both.\n *\n * Any given insertion location can be described by two `StablePlace` objects, one with `Side.After` and one with `Side.Before`.\n * For example, in a trait containing two strings \"foo\" and \"bar\", there are 6 different `StablePlace`s corresponding to 3 locations in the\n * trait a new node could be inserted: at the start, before \"foo\", after \"foo\", before \"bar\", after \"bar\", and at the end.\n * Neither of the two ways to specify the same location are considered to be after each other.\n *\n * The anchor (`referenceSibling` or `referenceTrait`) used for a particular `StablePlace` can have an impact in collaborative scenarios.\n *\n * `StablePlace` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n *\n * @example\n *\n * ```typescript\n * StablePlace.before(node)\n * StablePlace.atStartOf(trait)\n * ```\n * @alpha\n */\nexport interface StablePlace {\n\t/**\n\t * Where this StablePlace is relative to the sibling (if specified), or an end of the trait (if no sibling specified).\n\t * If 'After' and there is no sibling, this StablePlace is after the front of the trait.\n\t * If 'Before' and there is no sibling, this StablePlace is before the back of the trait.\n\t */\n\treadonly side: Side;\n\n\t/**\n\t * The sibling to which this 'StablePlace' is anchored (by 'side').\n\t * If specified, referenceTrait must be unspecified.\n\t */\n\treadonly referenceSibling?: NodeId;\n\n\t/**\n\t * The trait to which this 'StablePlace' is anchored (by 'side').\n\t * If specified, referenceSibling must be unspecified.\n\t */\n\treadonly referenceTrait?: TraitLocation;\n}\n\n/**\n * Specifies the range of nodes from `start` to `end` within a trait.\n * Valid iff start and end are valid and are within the same trait and the start does not occur after the end in the trait.\n *\n * See {@link (StablePlace:interface)} for what it means for a place to be \"after\" another place.\n *\n * @remarks\n *\n * `StableRange` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n *\n * @example\n *\n * ```typescript\n * StableRange.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))\n * ```\n * @alpha\n */\nexport interface StableRange {\n\treadonly start: StablePlace;\n\treadonly end: StablePlace;\n}\n\n/**\n * The remainder of this file consists of ergonomic factory methods for persisted types, or common combinations thereof (e.g. \"Move\" as a\n * combination of a \"Detach\" change and an \"Insert\" change).\n *\n * None of these helpers are persisted in documents, and therefore changes to their semantics need only follow standard semantic versioning\n * practices.\n */\n\n// Note: Documentation of this constant is merged with documentation of the `StablePlace` interface.\n/**\n * @alpha\n */\nexport const StablePlace = {\n\t/**\n\t * @returns The location directly before `node`.\n\t */\n\tbefore: (node: NodeData<NodeId> | NodeId): StablePlace => ({\n\t\tside: Side.Before,\n\t\treferenceSibling: getNodeId(node),\n\t}),\n\t/**\n\t * @returns The location directly after `node`.\n\t */\n\tafter: (node: NodeData<NodeId> | NodeId): StablePlace => ({ side: Side.After, referenceSibling: getNodeId(node) }),\n\t/**\n\t * @returns The location at the start of `trait`.\n\t */\n\tatStartOf: (trait: TraitLocation): StablePlace => ({ side: Side.After, referenceTrait: trait }),\n\t/**\n\t * @returns The location at the end of `trait`.\n\t */\n\tatEndOf: (trait: TraitLocation): StablePlace => ({ side: Side.Before, referenceTrait: trait }),\n};\n\n// Note: Documentation of this constant is merged with documentation of the `StableRange` interface.\n/**\n * @alpha\n */\nexport const StableRange = {\n\t/**\n\t * Factory for producing a `StableRange` from a start `StablePlace` to an end `StablePlace`.\n\t *\n\t * @example\n\t *\n\t * ```typescript\n\t * StableRange.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))\n\t * ```\n\t */\n\tfrom: (start: StablePlace): { to: (end: StablePlace) => StableRange } => ({\n\t\tto: (end: StablePlace): StableRange => {\n\t\t\tif (start.referenceTrait && end.referenceTrait) {\n\t\t\t\tassert(\n\t\t\t\t\tstart.referenceTrait.parent === end.referenceTrait.parent,\n\t\t\t\t\t0x5fe /* StableRange must be constructed with endpoints from the same trait */\n\t\t\t\t);\n\t\t\t\tassert(\n\t\t\t\t\tstart.referenceTrait.label === end.referenceTrait.label,\n\t\t\t\t\t0x5ff /* StableRange must be constructed with endpoints from the same trait */\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn { start, end };\n\t\t},\n\t}),\n\t/**\n\t * @returns a `StableRange` which contains only the provided `node`.\n\t * Both the start and end `StablePlace` objects used to anchor this `StableRange` are in terms of the passed in node.\n\t */\n\tonly: (node: NodeData<NodeId> | NodeId): StableRange => ({\n\t\tstart: StablePlace.before(node),\n\t\tend: StablePlace.after(node),\n\t}),\n\t/**\n\t * @returns a `StableRange` which contains everything in the trait.\n\t * This is anchored using the provided `trait`, and is independent of the actual contents of the trait:\n\t * it does not use sibling anchoring.\n\t */\n\tall: (trait: TraitLocation): StableRange => ({\n\t\tstart: StablePlace.atStartOf(trait),\n\t\tend: StablePlace.atEndOf(trait),\n\t}),\n};\n"]}
1
+ {"version":3,"file":"ChangeTypes.js","sourceRoot":"","sources":["../src/ChangeTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAoD;AAEpD,2CAAiD;AACjD,yDAAyG;AAEzG,6DAAiD;AAYjD;;;GAGG;AACH,IAAY,UAMX;AAND,WAAY,UAAU;IACrB,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,6CAAK,CAAA;IACL,mDAAQ,CAAA;IACR,uDAAU,CAAA;AACX,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AA6JD,+FAA+F;AAC/F;;GAEG;AACU,QAAA,MAAM,GAAG;IACrB,KAAK,EAAE,CAAC,MAA+C,EAAE,WAAmB,EAAS,EAAE,CAAC,CAAC;QACxF,WAAW;QACX,MAAM;QACN,IAAI,EAAE,UAAU,CAAC,KAAK;KACtB,CAAC;IAEF,MAAM,EAAE,CAAC,MAAc,EAAE,WAAwB,EAAU,EAAE,CAAC,CAAC;QAC9D,WAAW;QACX,MAAM;QACN,IAAI,EAAE,UAAU,CAAC,MAAM;KACvB,CAAC;IAEF,MAAM,EAAE,CAAC,MAAmB,EAAE,WAAoB,EAAU,EAAE,CAAC,CAAC;QAC/D,WAAW;QACX,MAAM;QACN,IAAI,EAAE,UAAU,CAAC,MAAM;KACvB,CAAC;IAEF,UAAU,EAAE,CAAC,YAAoB,EAAE,OAAgB,EAAY,EAAE,CAAC,CAAC;QAClE,YAAY;QACZ,OAAO;QACP,IAAI,EAAE,UAAU,CAAC,QAAQ;KACzB,CAAC;IAEF,YAAY,EAAE,CAAC,YAAoB,EAAY,EAAE,CAAC,CAAC;QAClD,YAAY;QACZ,sFAAsF;QACtF,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU,CAAC,QAAQ;KACzB,CAAC;IAEF,UAAU,EAAE,CACX,WAAwB,EACxB,MAAwB,EACxB,YAAyB,EACzB,MAAe,EACf,WAAwB,EACxB,UAAmB,EACnB,KAAkB,EACL,EAAE,CAAC,CAAC;QACjB,WAAW;QACX,MAAM;QACN,YAAY;QACZ,MAAM;QACN,WAAW;QACX,UAAU;QACV,KAAK;QACL,IAAI,EAAE,UAAU,CAAC,UAAU;KAC3B,CAAC;IAEF,yDAAyD;IAEzD;;OAEG;IACH,MAAM,EAAE,CAAC,WAAwB,EAAU,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IAExE;;OAEG;IACH,UAAU,EAAE,CAAC,KAA8C,EAAE,WAAwB,EAAY,EAAE;QAClG,MAAM,KAAK,GAAG,cAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,EAAE,cAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,IAAI,EAAE,CAAC,MAAmB,EAAE,WAAwB,EAAY,EAAE;QACjE,MAAM,MAAM,GAAG,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,IAAA,8BAAkB,EAAC,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACrF,CAAC;CACD,CAAC;AAqEF;;;;;;GAMG;AAEH,oGAAoG;AACpG;;GAEG;AACU,QAAA,WAAW,GAAG;IAC1B;;OAEG;IACH,MAAM,EAAE,CAAC,IAA+B,EAAe,EAAE,CAAC,CAAC;QAC1D,IAAI,EAAE,eAAI,CAAC,MAAM;QACjB,gBAAgB,EAAE,IAAA,8BAAS,EAAC,IAAI,CAAC;KACjC,CAAC;IACF;;OAEG;IACH,KAAK,EAAE,CAAC,IAA+B,EAAe,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAA,8BAAS,EAAC,IAAI,CAAC,EAAE,CAAC;IAClH;;OAEG;IACH,SAAS,EAAE,CAAC,KAAoB,EAAe,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAI,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC/F;;OAEG;IACH,OAAO,EAAE,CAAC,KAAoB,EAAe,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;CAC9F,CAAC;AAEF,oGAAoG;AACpG;;GAEG;AACU,QAAA,WAAW,GAAG;IAC1B;;;;;;;;OAQG;IACH,IAAI,EAAE,CAAC,KAAkB,EAA6C,EAAE,CAAC,CAAC;QACzE,EAAE,EAAE,CAAC,GAAgB,EAAe,EAAE;YACrC,IAAI,KAAK,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,EAAE;gBAC/C,IAAA,mBAAM,EACL,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,MAAM,EACzD,KAAK,CAAC,wEAAwE,CAC9E,CAAC;gBACF,IAAA,mBAAM,EACL,KAAK,CAAC,cAAc,CAAC,KAAK,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK,EACvD,KAAK,CAAC,wEAAwE,CAC9E,CAAC;aACF;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACvB,CAAC;KACD,CAAC;IACF;;;OAGG;IACH,IAAI,EAAE,CAAC,IAA+B,EAAe,EAAE,CAAC,CAAC;QACxD,KAAK,EAAE,mBAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,GAAG,EAAE,mBAAW,CAAC,KAAK,CAAC,IAAI,CAAC;KAC5B,CAAC;IACF;;;;OAIG;IACH,GAAG,EAAE,CAAC,KAAoB,EAAe,EAAE,CAAC,CAAC;QAC5C,KAAK,EAAE,mBAAW,CAAC,SAAS,CAAC,KAAK,CAAC;QACnC,GAAG,EAAE,mBAAW,CAAC,OAAO,CAAC,KAAK,CAAC;KAC/B,CAAC;CACF,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from '@fluidframework/core-utils';\nimport { NodeId, TraitLabel, UuidString } from './Identifiers.js';\nimport { assertNotUndefined } from './Common.js';\nimport { ConstraintEffect, NodeData, Payload, Side, TreeNodeSequence } from './persisted-types/index.js';\nimport { TraitLocation } from './TreeView.js';\nimport { getNodeId } from './NodeIdUtilities.js';\n\n/**\n * An object which may have traits with children of the given type underneath it\n * @alpha\n */\nexport interface HasVariadicTraits<TChild> {\n\treadonly traits?: {\n\t\treadonly [key: string]: TChild | TreeNodeSequence<TChild> | undefined;\n\t};\n}\n\n/**\n * The type of a Change\n * @alpha\n */\nexport enum ChangeType {\n\tInsert,\n\tDetach,\n\tBuild,\n\tSetValue,\n\tConstraint,\n}\n\n/**\n * A change that composes an Edit.\n *\n * @remarks\n *\n * `Change` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n *\n * @example\n *\n * ```typescript\n * Change.insert(sourceId, destination)\n * ```\n * @alpha\n */\nexport type Change = Insert | Detach | Build | SetValue | Constraint;\n\n/**\n * Node or a detached sequence of nodes (referred to by a detached sequence ID) for use in a Build change.\n * See `BuildTreeNode` for more.\n * @alpha\n */\nexport type BuildNode = BuildTreeNode | number;\n\n/**\n * Node for use in a Build change, which is composed of a definition describing what this nodes type, an identifier identifying this node\n * within the tree, and a payload containing an opaque serializable piece of data.\n * An identifier can be provided explicitly if the node must be referred to before the results of the `Change` containing this\n * BuildTreeNode can be observed. If `identifier` is not supplied, one will be generated for it in an especially efficient manner\n * that allows for compact storage and transmission and thus this property should be omitted if convenient.\n * See the SharedTree readme for more on the tree format.\n * @alpha\n */\nexport interface BuildTreeNode extends HasVariadicTraits<BuildNode> {\n\tdefinition: string;\n\tidentifier?: NodeId;\n\tpayload?: Payload;\n}\n\n/**\n * Constructs a sequence of nodes, associates it with the supplied ID, and stores it for use in later changes.\n * Does not modify the document.\n *\n * Valid if (transitively) all DetachedSequenceId are used according to their rules (use here counts as a destination),\n * and all Nodes' identifiers are previously unused.\n * @alpha\n */\nexport interface Build {\n\treadonly destination: number;\n\treadonly source: BuildNode | TreeNodeSequence<BuildNode>;\n\treadonly type: typeof ChangeType.Build;\n}\n\n/**\n * Inserts a sequence of nodes at the specified destination.\n * The source can be constructed either by a Build (used to insert new nodes) or a Detach (amounts to a \"move\" operation).\n * @alpha\n */\nexport interface Insert {\n\treadonly destination: StablePlace;\n\treadonly source: number;\n\treadonly type: typeof ChangeType.Insert;\n}\n\n/**\n * Removes a sequence of nodes from the tree.\n * If a destination is specified, the detached sequence is associated with that ID and held for possible reuse\n * by later changes in this same Edit (such as by an Insert).\n * A Detach without a destination is a deletion of the specified sequence, as is a Detach with a destination that is not used later.\n * @alpha\n */\nexport interface Detach {\n\treadonly destination?: number;\n\treadonly source: StableRange;\n\treadonly type: typeof ChangeType.Detach;\n}\n\n/**\n * Modifies the payload of a node.\n * @alpha\n */\nexport interface SetValue {\n\treadonly nodeToModify: NodeId;\n\t/**\n\t * Sets or clears the payload.\n\t * To improve ease of forwards compatibility, an explicit `null` value is used to represent the clearing of a payload.\n\t * SetValue may use `undefined` in future API versions to mean \"don't change the payload\" (which is useful if e.g. other\n\t * fields are added to SetValue that can be changed without altering the payload)\n\t */\n\t// eslint-disable-next-line @rushstack/no-new-null\n\treadonly payload: Payload | null;\n\treadonly type: typeof ChangeType.SetValue;\n}\n\n/**\n * A set of constraints on the validity of an Edit.\n * A Constraint is used to detect when an Edit, due to other concurrent edits, may have unintended effects or merge in\n * non-semantic ways. It is processed in order like any other Change in an Edit. It can cause an edit to fail if the\n * various constraints are not met at the time of evaluation (ex: the parentNode has changed due to concurrent editing).\n * Does not modify the document.\n * @alpha\n */\nexport interface Constraint {\n\t/**\n\t * Selects a sequence of nodes which will be checked against the constraints specified by the optional fields.\n\t * If `toConstrain` is invalid, it will be treated like a constraint being unmet.\n\t * Depending on `effect` this may or may not make the Edit invalid.\n\t *\n\t * When a constraint is not met, the effects is specified by `effect`.\n\t */\n\treadonly toConstrain: StableRange;\n\n\t/**\n\t * Require that the identities of all the nodes in toConstrain hash to this value.\n\t * Hash is order dependent.\n\t * TODO: implement and specify exact hash function.\n\t *\n\t * This is an efficient (O(1) space) way to constrain a sequence of nodes to have specific identities.\n\t */\n\treadonly identityHash?: UuidString;\n\n\t/**\n\t * Require that the number of nodes in toConstrain is this value.\n\t */\n\treadonly length?: number;\n\n\t/**\n\t * Require that the contents of all of the nodes in toConstrain hash to this value.\n\t * Hash is an order dependant deep hash, which includes all subtree content recursively.\n\t * TODO: implement and specify exact hash function.\n\t *\n\t * This is an efficient (O(1) space) way to constrain a sequence of nodes have exact values (transitively).\n\t */\n\treadonly contentHash?: UuidString;\n\n\t/**\n\t * Require that parent under which toConstrain is located has this identifier.\n\t */\n\treadonly parentNode?: NodeId;\n\n\t/**\n\t * Require that the trait under which toConstrain is located has this label.\n\t */\n\treadonly label?: TraitLabel;\n\n\t/**\n\t * What to do if a constraint is not met.\n\t */\n\treadonly effect: ConstraintEffect;\n\n\t/**\n\t * Marker for which kind of Change this is.\n\t */\n\treadonly type: typeof ChangeType.Constraint;\n}\n\n// Note: Documentation of this constant is merged with documentation of the `Change` interface.\n/**\n * @alpha\n */\nexport const Change = {\n\tbuild: (source: BuildNode | TreeNodeSequence<BuildNode>, destination: number): Build => ({\n\t\tdestination,\n\t\tsource,\n\t\ttype: ChangeType.Build,\n\t}),\n\n\tinsert: (source: number, destination: StablePlace): Insert => ({\n\t\tdestination,\n\t\tsource,\n\t\ttype: ChangeType.Insert,\n\t}),\n\n\tdetach: (source: StableRange, destination?: number): Detach => ({\n\t\tdestination,\n\t\tsource,\n\t\ttype: ChangeType.Detach,\n\t}),\n\n\tsetPayload: (nodeToModify: NodeId, payload: Payload): SetValue => ({\n\t\tnodeToModify,\n\t\tpayload,\n\t\ttype: ChangeType.SetValue,\n\t}),\n\n\tclearPayload: (nodeToModify: NodeId): SetValue => ({\n\t\tnodeToModify,\n\t\t// Rationale: 'undefined' is reserved for future use (see 'SetValue' interface above.)\n\t\tpayload: null,\n\t\ttype: ChangeType.SetValue,\n\t}),\n\n\tconstraint: (\n\t\ttoConstrain: StableRange,\n\t\teffect: ConstraintEffect,\n\t\tidentityHash?: UuidString,\n\t\tlength?: number,\n\t\tcontentHash?: UuidString,\n\t\tparentNode?: NodeId,\n\t\tlabel?: TraitLabel\n\t): Constraint => ({\n\t\ttoConstrain,\n\t\teffect,\n\t\tidentityHash,\n\t\tlength,\n\t\tcontentHash,\n\t\tparentNode,\n\t\tlabel,\n\t\ttype: ChangeType.Constraint,\n\t}),\n\n\t/** Helpers for making high-level composite operations */\n\n\t/**\n\t * @returns a change that deletes the supplied part of the tree.\n\t */\n\tdelete: (stableRange: StableRange): Change => Change.detach(stableRange),\n\n\t/**\n\t * @returns changes that insert 'nodes' into the specified location in the tree.\n\t */\n\tinsertTree: (nodes: BuildNode | TreeNodeSequence<BuildNode>, destination: StablePlace): Change[] => {\n\t\tconst build = Change.build(nodes, 0);\n\t\treturn [build, Change.insert(build.destination, destination)];\n\t},\n\n\t/**\n\t * @returns changes that moves the specified content to a new location in the tree.\n\t */\n\tmove: (source: StableRange, destination: StablePlace): Change[] => {\n\t\tconst detach = Change.detach(source, 0);\n\t\treturn [detach, Change.insert(assertNotUndefined(detach.destination), destination)];\n\t},\n};\n\n/**\n * A location in a trait.\n * This is NOT the location of a node, but a location where a node could be inserted:\n * it is next to a sibling or at one end of the trait.\n *\n * To be well formed, either `sibling` or `trait` must be defined, but not both.\n *\n * Any given insertion location can be described by two `StablePlace` objects, one with `Side.After` and one with `Side.Before`.\n * For example, in a trait containing two strings \"foo\" and \"bar\", there are 6 different `StablePlace`s corresponding to 3 locations in the\n * trait a new node could be inserted: at the start, before \"foo\", after \"foo\", before \"bar\", after \"bar\", and at the end.\n * Neither of the two ways to specify the same location are considered to be after each other.\n *\n * The anchor (`referenceSibling` or `referenceTrait`) used for a particular `StablePlace` can have an impact in collaborative scenarios.\n *\n * `StablePlace` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n *\n * @example\n *\n * ```typescript\n * StablePlace.before(node)\n * StablePlace.atStartOf(trait)\n * ```\n * @alpha\n */\nexport interface StablePlace {\n\t/**\n\t * Where this StablePlace is relative to the sibling (if specified), or an end of the trait (if no sibling specified).\n\t * If 'After' and there is no sibling, this StablePlace is after the front of the trait.\n\t * If 'Before' and there is no sibling, this StablePlace is before the back of the trait.\n\t */\n\treadonly side: Side;\n\n\t/**\n\t * The sibling to which this 'StablePlace' is anchored (by 'side').\n\t * If specified, referenceTrait must be unspecified.\n\t */\n\treadonly referenceSibling?: NodeId;\n\n\t/**\n\t * The trait to which this 'StablePlace' is anchored (by 'side').\n\t * If specified, referenceSibling must be unspecified.\n\t */\n\treadonly referenceTrait?: TraitLocation;\n}\n\n/**\n * Specifies the range of nodes from `start` to `end` within a trait.\n * Valid iff start and end are valid and are within the same trait and the start does not occur after the end in the trait.\n *\n * See {@link (StablePlace:interface)} for what it means for a place to be \"after\" another place.\n *\n * @remarks\n *\n * `StableRange` objects can be conveniently constructed with the helper methods exported on a constant of the same name.\n *\n * @example\n *\n * ```typescript\n * StableRange.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))\n * ```\n * @alpha\n */\nexport interface StableRange {\n\treadonly start: StablePlace;\n\treadonly end: StablePlace;\n}\n\n/**\n * The remainder of this file consists of ergonomic factory methods for persisted types, or common combinations thereof (e.g. \"Move\" as a\n * combination of a \"Detach\" change and an \"Insert\" change).\n *\n * None of these helpers are persisted in documents, and therefore changes to their semantics need only follow standard semantic versioning\n * practices.\n */\n\n// Note: Documentation of this constant is merged with documentation of the `StablePlace` interface.\n/**\n * @alpha\n */\nexport const StablePlace = {\n\t/**\n\t * @returns The location directly before `node`.\n\t */\n\tbefore: (node: NodeData<NodeId> | NodeId): StablePlace => ({\n\t\tside: Side.Before,\n\t\treferenceSibling: getNodeId(node),\n\t}),\n\t/**\n\t * @returns The location directly after `node`.\n\t */\n\tafter: (node: NodeData<NodeId> | NodeId): StablePlace => ({ side: Side.After, referenceSibling: getNodeId(node) }),\n\t/**\n\t * @returns The location at the start of `trait`.\n\t */\n\tatStartOf: (trait: TraitLocation): StablePlace => ({ side: Side.After, referenceTrait: trait }),\n\t/**\n\t * @returns The location at the end of `trait`.\n\t */\n\tatEndOf: (trait: TraitLocation): StablePlace => ({ side: Side.Before, referenceTrait: trait }),\n};\n\n// Note: Documentation of this constant is merged with documentation of the `StableRange` interface.\n/**\n * @alpha\n */\nexport const StableRange = {\n\t/**\n\t * Factory for producing a `StableRange` from a start `StablePlace` to an end `StablePlace`.\n\t *\n\t * @example\n\t *\n\t * ```typescript\n\t * StableRange.from(StablePlace.before(startNode)).to(StablePlace.after(endNode))\n\t * ```\n\t */\n\tfrom: (start: StablePlace): { to: (end: StablePlace) => StableRange } => ({\n\t\tto: (end: StablePlace): StableRange => {\n\t\t\tif (start.referenceTrait && end.referenceTrait) {\n\t\t\t\tassert(\n\t\t\t\t\tstart.referenceTrait.parent === end.referenceTrait.parent,\n\t\t\t\t\t0x5fe /* StableRange must be constructed with endpoints from the same trait */\n\t\t\t\t);\n\t\t\t\tassert(\n\t\t\t\t\tstart.referenceTrait.label === end.referenceTrait.label,\n\t\t\t\t\t0x5ff /* StableRange must be constructed with endpoints from the same trait */\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn { start, end };\n\t\t},\n\t}),\n\t/**\n\t * @returns a `StableRange` which contains only the provided `node`.\n\t * Both the start and end `StablePlace` objects used to anchor this `StableRange` are in terms of the passed in node.\n\t */\n\tonly: (node: NodeData<NodeId> | NodeId): StableRange => ({\n\t\tstart: StablePlace.before(node),\n\t\tend: StablePlace.after(node),\n\t}),\n\t/**\n\t * @returns a `StableRange` which contains everything in the trait.\n\t * This is anchored using the provided `trait`, and is independent of the actual contents of the trait:\n\t * it does not use sibling anchoring.\n\t */\n\tall: (trait: TraitLocation): StableRange => ({\n\t\tstart: StablePlace.atStartOf(trait),\n\t\tend: StablePlace.atEndOf(trait),\n\t}),\n};\n"]}
@@ -4,13 +4,13 @@
4
4
  */
5
5
  import { EventEmitterWithErrorHandling } from '@fluidframework/telemetry-utils';
6
6
  import { IDisposable, IErrorEvent } from '@fluidframework/core-interfaces';
7
- import { EditId } from './Identifiers';
8
- import { TreeView } from './TreeView';
9
- import { RevisionView } from './RevisionView';
10
- import { EditCommittedHandler, SharedTree } from './SharedTree';
11
- import { ValidEditingResult } from './TransactionInternal';
12
- import { ChangeInternal, Edit, EditStatus } from './persisted-types';
13
- import { Change } from './ChangeTypes';
7
+ import { EditId } from './Identifiers.js';
8
+ import { TreeView } from './TreeView.js';
9
+ import { RevisionView } from './RevisionView.js';
10
+ import { EditCommittedHandler, SharedTree } from './SharedTree.js';
11
+ import { ValidEditingResult } from './TransactionInternal.js';
12
+ import { ChangeInternal, Edit, EditStatus } from './persisted-types/index.js';
13
+ import { Change } from './ChangeTypes.js';
14
14
  /**
15
15
  * An event emitted by a `Checkout` to indicate a state change. See {@link ICheckoutEvents} for event argument information.
16
16
  * @alpha
@@ -1 +1 @@
1
- {"version":3,"file":"Checkout.d.ts","sourceRoot":"","sources":["../src/Checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Checkout.d.ts","sourceRoot":"","sources":["../src/Checkout.ts"],"names":[],"mappings":"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"}