@fluidframework/tree 2.0.0-rc.2.0.2 → 2.0.0-rc.3.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 (2507) hide show
  1. package/.eslintrc.cjs +2 -0
  2. package/CHANGELOG.md +74 -0
  3. package/api-extractor.json +2 -3
  4. package/api-report/tree.api.md +208 -154
  5. package/beta.d.ts +11 -0
  6. package/dist/beta.d.ts +90 -0
  7. package/dist/codec/codec.d.ts +10 -4
  8. package/dist/codec/codec.d.ts.map +1 -1
  9. package/dist/codec/codec.js +2 -2
  10. package/dist/codec/codec.js.map +1 -1
  11. package/dist/codec/discriminatedUnions.d.ts.map +1 -1
  12. package/dist/codec/discriminatedUnions.js +6 -2
  13. package/dist/codec/discriminatedUnions.js.map +1 -1
  14. package/dist/codec/index.d.ts +2 -2
  15. package/dist/codec/index.d.ts.map +1 -1
  16. package/dist/codec/index.js +3 -2
  17. package/dist/codec/index.js.map +1 -1
  18. package/dist/codec/noopValidator.d.ts.map +1 -1
  19. package/dist/codec/noopValidator.js.map +1 -1
  20. package/dist/codec/versioned/codec.d.ts +10 -2
  21. package/dist/codec/versioned/codec.d.ts.map +1 -1
  22. package/dist/codec/versioned/codec.js +28 -6
  23. package/dist/codec/versioned/codec.js.map +1 -1
  24. package/dist/codec/versioned/index.d.ts +1 -1
  25. package/dist/codec/versioned/index.d.ts.map +1 -1
  26. package/dist/codec/versioned/index.js +2 -1
  27. package/dist/codec/versioned/index.js.map +1 -1
  28. package/dist/core/change-family/changeFamily.d.ts +2 -2
  29. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  30. package/dist/core/change-family/changeFamily.js.map +1 -1
  31. package/dist/core/forest/editableForest.d.ts +1 -1
  32. package/dist/core/forest/editableForest.d.ts.map +1 -1
  33. package/dist/core/forest/editableForest.js +2 -2
  34. package/dist/core/forest/editableForest.js.map +1 -1
  35. package/dist/core/forest/forest.d.ts +5 -1
  36. package/dist/core/forest/forest.d.ts.map +1 -1
  37. package/dist/core/forest/forest.js +2 -2
  38. package/dist/core/forest/forest.js.map +1 -1
  39. package/dist/core/index.d.ts +3 -3
  40. package/dist/core/index.d.ts.map +1 -1
  41. package/dist/core/index.js +6 -3
  42. package/dist/core/index.js.map +1 -1
  43. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  44. package/dist/core/rebase/changeRebaser.js.map +1 -1
  45. package/dist/core/rebase/index.d.ts +1 -1
  46. package/dist/core/rebase/index.d.ts.map +1 -1
  47. package/dist/core/rebase/index.js +4 -1
  48. package/dist/core/rebase/index.js.map +1 -1
  49. package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
  50. package/dist/core/rebase/revisionTagCodec.js +2 -2
  51. package/dist/core/rebase/revisionTagCodec.js.map +1 -1
  52. package/dist/core/rebase/types.d.ts +30 -0
  53. package/dist/core/rebase/types.d.ts.map +1 -1
  54. package/dist/core/rebase/types.js +26 -1
  55. package/dist/core/rebase/types.js.map +1 -1
  56. package/dist/core/rebase/utils.d.ts.map +1 -1
  57. package/dist/core/rebase/utils.js +11 -10
  58. package/dist/core/rebase/utils.js.map +1 -1
  59. package/dist/core/revertible/index.d.ts +1 -1
  60. package/dist/core/revertible/index.d.ts.map +1 -1
  61. package/dist/core/revertible/index.js +1 -3
  62. package/dist/core/revertible/index.js.map +1 -1
  63. package/dist/core/revertible/revertible.d.ts +15 -49
  64. package/dist/core/revertible/revertible.d.ts.map +1 -1
  65. package/dist/core/revertible/revertible.js +3 -33
  66. package/dist/core/revertible/revertible.js.map +1 -1
  67. package/dist/core/schema-stored/format.d.ts.map +1 -1
  68. package/dist/core/schema-stored/format.js.map +1 -1
  69. package/dist/core/schema-stored/index.d.ts +2 -1
  70. package/dist/core/schema-stored/index.d.ts.map +1 -1
  71. package/dist/core/schema-stored/index.js +4 -1
  72. package/dist/core/schema-stored/index.js.map +1 -1
  73. package/dist/core/schema-stored/multiplicity.d.ts.map +1 -0
  74. package/dist/{feature-libraries → core/schema-stored}/multiplicity.js +2 -2
  75. package/{lib/feature-libraries → dist/core/schema-stored}/multiplicity.js.map +1 -1
  76. package/dist/core/schema-stored/schema.d.ts +32 -9
  77. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  78. package/dist/core/schema-stored/schema.js +14 -7
  79. package/dist/core/schema-stored/schema.js.map +1 -1
  80. package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  81. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  82. package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
  83. package/dist/core/tree/anchorSet.d.ts +31 -16
  84. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  85. package/dist/core/tree/anchorSet.js +37 -62
  86. package/dist/core/tree/anchorSet.js.map +1 -1
  87. package/dist/core/tree/cursor.d.ts.map +1 -1
  88. package/dist/core/tree/cursor.js +4 -4
  89. package/dist/core/tree/cursor.js.map +1 -1
  90. package/dist/core/tree/delta.d.ts.map +1 -1
  91. package/dist/core/tree/delta.js.map +1 -1
  92. package/dist/core/tree/deltaUtil.d.ts +1 -1
  93. package/dist/core/tree/deltaUtil.d.ts.map +1 -1
  94. package/dist/core/tree/deltaUtil.js.map +1 -1
  95. package/dist/core/tree/detachedFieldIndex.d.ts +2 -2
  96. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  97. package/dist/core/tree/detachedFieldIndex.js +15 -15
  98. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  99. package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  100. package/dist/core/tree/detachedFieldIndexCodec.js +4 -4
  101. package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
  102. package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  103. package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -1
  104. package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  105. package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
  106. package/dist/core/tree/mapTree.d.ts.map +1 -1
  107. package/dist/core/tree/mapTree.js.map +1 -1
  108. package/dist/core/tree/pathTree.d.ts.map +1 -1
  109. package/dist/core/tree/pathTree.js.map +1 -1
  110. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  111. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  112. package/dist/core/tree/sparseTree.d.ts.map +1 -1
  113. package/dist/core/tree/sparseTree.js +5 -5
  114. package/dist/core/tree/sparseTree.js.map +1 -1
  115. package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
  116. package/dist/core/tree/treeTextFormat.js.map +1 -1
  117. package/dist/core/tree/types.d.ts +1 -1
  118. package/dist/core/tree/types.d.ts.map +1 -1
  119. package/dist/core/tree/types.js +7 -7
  120. package/dist/core/tree/types.js.map +1 -1
  121. package/dist/core/tree/visitDelta.d.ts +13 -2
  122. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  123. package/dist/core/tree/visitDelta.js +47 -18
  124. package/dist/core/tree/visitDelta.js.map +1 -1
  125. package/dist/core/tree/visitPath.d.ts +1 -1
  126. package/dist/core/tree/visitPath.d.ts.map +1 -1
  127. package/dist/core/tree/visitPath.js +4 -0
  128. package/dist/core/tree/visitPath.js.map +1 -1
  129. package/dist/core/tree/visitorUtils.d.ts +4 -4
  130. package/dist/core/tree/visitorUtils.d.ts.map +1 -1
  131. package/dist/core/tree/visitorUtils.js +2 -2
  132. package/dist/core/tree/visitorUtils.js.map +1 -1
  133. package/dist/domains/json/jsonCursor.d.ts.map +1 -1
  134. package/dist/domains/json/jsonCursor.js +7 -7
  135. package/dist/domains/json/jsonCursor.js.map +1 -1
  136. package/dist/domains/json/jsonDomainSchema.d.ts.map +1 -1
  137. package/dist/domains/json/jsonDomainSchema.js.map +1 -1
  138. package/dist/domains/leafDomain.d.ts.map +1 -1
  139. package/dist/domains/leafDomain.js +8 -8
  140. package/dist/domains/leafDomain.js.map +1 -1
  141. package/dist/domains/nodeKey/nodeKeySchema.d.ts.map +1 -1
  142. package/dist/domains/nodeKey/nodeKeySchema.js +2 -2
  143. package/dist/domains/nodeKey/nodeKeySchema.js.map +1 -1
  144. package/dist/domains/schemaBuilder.d.ts +19 -81
  145. package/dist/domains/schemaBuilder.d.ts.map +1 -1
  146. package/dist/domains/schemaBuilder.js +24 -93
  147. package/dist/domains/schemaBuilder.js.map +1 -1
  148. package/dist/domains/testRecursiveDomain.d.ts +0 -4
  149. package/dist/domains/testRecursiveDomain.d.ts.map +1 -1
  150. package/dist/domains/testRecursiveDomain.js +1 -8
  151. package/dist/domains/testRecursiveDomain.js.map +1 -1
  152. package/dist/events/events.d.ts.map +1 -1
  153. package/dist/events/events.js +2 -2
  154. package/dist/events/events.js.map +1 -1
  155. package/dist/external-utilities/typeboxValidator.d.ts.map +1 -1
  156. package/dist/external-utilities/typeboxValidator.js.map +1 -1
  157. package/dist/feature-libraries/changeAtomIdCodec.d.ts +1 -1
  158. package/dist/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  159. package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
  160. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts +3 -3
  161. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  162. package/dist/feature-libraries/chunked-forest/basicChunk.js +29 -29
  163. package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  164. package/dist/feature-libraries/chunked-forest/chunk.d.ts +1 -1
  165. package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
  166. package/dist/feature-libraries/chunked-forest/chunk.js +2 -2
  167. package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -1
  168. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
  169. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  170. package/dist/feature-libraries/chunked-forest/chunkTree.js +13 -14
  171. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  172. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -2
  173. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  174. package/dist/feature-libraries/chunked-forest/chunkedForest.js +25 -24
  175. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  176. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +2 -2
  177. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  178. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +4 -4
  179. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  180. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +1 -1
  181. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  182. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +13 -13
  183. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  184. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +2 -2
  185. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  186. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +3 -3
  187. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  188. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -1
  189. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  190. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  191. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -9
  192. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  193. package/dist/feature-libraries/chunked-forest/codec/codecs.js +6 -5
  194. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  195. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +3 -3
  196. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  197. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +8 -8
  198. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  199. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
  200. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  201. package/dist/feature-libraries/chunked-forest/codec/format.js +1 -2
  202. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  203. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
  204. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  205. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  206. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  207. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +2 -2
  208. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  209. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +3 -3
  210. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  211. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +3 -3
  212. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
  213. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +4 -5
  214. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
  215. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  216. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  217. package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
  218. package/dist/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
  219. package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
  220. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  221. package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
  222. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
  223. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
  224. package/dist/feature-libraries/chunked-forest/sequenceChunk.js +1 -1
  225. package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
  226. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +3 -3
  227. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  228. package/dist/feature-libraries/chunked-forest/uniformChunk.js +21 -21
  229. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  230. package/dist/feature-libraries/contextuallyTyped.d.ts +5 -9
  231. package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  232. package/dist/feature-libraries/contextuallyTyped.js +33 -48
  233. package/dist/feature-libraries/contextuallyTyped.js.map +1 -1
  234. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -5
  235. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  236. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +7 -7
  237. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  238. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +18 -4
  239. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  240. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +59 -24
  241. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  242. package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
  243. package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -1
  244. package/dist/feature-libraries/default-schema/index.d.ts +1 -1
  245. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
  246. package/dist/feature-libraries/default-schema/index.js +2 -1
  247. package/dist/feature-libraries/default-schema/index.js.map +1 -1
  248. package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts +8 -0
  249. package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -0
  250. package/dist/feature-libraries/default-schema/noChangeCodecs.js +10 -0
  251. package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -0
  252. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -1
  253. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  254. package/dist/feature-libraries/detachedFieldIndexSummarizer.js +2 -2
  255. package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  256. package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  257. package/dist/feature-libraries/editableTreeBinder.js +6 -6
  258. package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
  259. package/dist/feature-libraries/fieldGenerator.d.ts +1 -1
  260. package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -1
  261. package/dist/feature-libraries/fieldGenerator.js.map +1 -1
  262. package/dist/feature-libraries/flex-tree/context.d.ts +16 -4
  263. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  264. package/dist/feature-libraries/flex-tree/context.js +27 -15
  265. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  266. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +43 -36
  267. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  268. package/dist/feature-libraries/flex-tree/flexTreeTypes.js +9 -6
  269. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  270. package/dist/feature-libraries/flex-tree/index.d.ts +3 -3
  271. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  272. package/dist/feature-libraries/flex-tree/index.js +3 -2
  273. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  274. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +7 -8
  275. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  276. package/dist/feature-libraries/flex-tree/lazyEntity.js +12 -17
  277. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  278. package/dist/feature-libraries/flex-tree/lazyField.d.ts +21 -7
  279. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  280. package/dist/feature-libraries/flex-tree/lazyField.js +69 -46
  281. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  282. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +12 -9
  283. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  284. package/dist/feature-libraries/flex-tree/lazyNode.js +51 -97
  285. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  286. package/dist/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -1
  287. package/dist/feature-libraries/flex-tree/nodeKeys.js.map +1 -1
  288. package/dist/feature-libraries/flex-tree/treeEvents.d.ts +7 -70
  289. package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  290. package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  291. package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  292. package/dist/feature-libraries/flex-tree/unboxed.js +1 -1
  293. package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
  294. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  295. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
  296. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  297. package/dist/feature-libraries/forest-summary/codec.js +2 -2
  298. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  299. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
  300. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  301. package/dist/feature-libraries/forest-summary/forestSummarizer.js +14 -14
  302. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  303. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
  304. package/dist/feature-libraries/forest-summary/format.js +4 -4
  305. package/dist/feature-libraries/forest-summary/format.js.map +1 -1
  306. package/dist/feature-libraries/index.d.ts +8 -9
  307. package/dist/feature-libraries/index.d.ts.map +1 -1
  308. package/dist/feature-libraries/index.js +9 -9
  309. package/dist/feature-libraries/index.js.map +1 -1
  310. package/dist/feature-libraries/mapTreeCursor.d.ts +1 -1
  311. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  312. package/dist/feature-libraries/mapTreeCursor.js +2 -2
  313. package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
  314. package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
  315. package/dist/feature-libraries/modular-schema/comparison.d.ts +1 -1
  316. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  317. package/dist/feature-libraries/modular-schema/comparison.js +20 -20
  318. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  319. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +19 -13
  320. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  321. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  322. package/dist/feature-libraries/modular-schema/fieldKind.d.ts +3 -4
  323. package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  324. package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  325. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +21 -0
  326. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -0
  327. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js +7 -0
  328. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -0
  329. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -2
  330. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
  331. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +4 -4
  332. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  333. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  334. package/dist/feature-libraries/modular-schema/genericFieldKind.js +3 -7
  335. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  336. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +3 -5
  337. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  338. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +7 -7
  339. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  340. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
  341. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  342. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js +1 -1
  343. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  344. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +4 -4
  345. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  346. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  347. package/dist/feature-libraries/modular-schema/index.d.ts +5 -4
  348. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
  349. package/dist/feature-libraries/modular-schema/index.js +3 -2
  350. package/dist/feature-libraries/modular-schema/index.js.map +1 -1
  351. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +1 -1
  352. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  353. package/dist/feature-libraries/modular-schema/isNeverTree.js +10 -11
  354. package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  355. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +4 -5
  356. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  357. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +73 -37
  358. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  359. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +13 -25
  360. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  361. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +261 -169
  362. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  363. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +5 -12
  364. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  365. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +0 -10
  366. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  367. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +6 -4
  368. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  369. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  370. package/dist/feature-libraries/node-key/nodeKey.d.ts +1 -1
  371. package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  372. package/dist/feature-libraries/node-key/nodeKey.js.map +1 -1
  373. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts +2 -2
  374. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
  375. package/dist/feature-libraries/node-key/nodeKeyIndex.js +3 -3
  376. package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
  377. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +2 -2
  378. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  379. package/dist/feature-libraries/node-key/nodeKeyManager.js +9 -9
  380. package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  381. package/dist/feature-libraries/object-forest/objectForest.d.ts +1 -1
  382. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  383. package/dist/feature-libraries/object-forest/objectForest.js +49 -48
  384. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  385. package/dist/feature-libraries/optional-field/index.d.ts +1 -1
  386. package/dist/feature-libraries/optional-field/index.d.ts.map +1 -1
  387. package/dist/feature-libraries/optional-field/index.js +1 -2
  388. package/dist/feature-libraries/optional-field/index.js.map +1 -1
  389. package/dist/feature-libraries/optional-field/optionalField.d.ts +3 -5
  390. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  391. package/dist/feature-libraries/optional-field/optionalField.js +33 -39
  392. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  393. package/dist/feature-libraries/optional-field/{optionalFieldChangeFormat.d.ts → optionalFieldChangeFormatV1.d.ts} +1 -1
  394. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -0
  395. package/dist/feature-libraries/optional-field/{optionalFieldChangeFormat.js → optionalFieldChangeFormatV1.js} +11 -2
  396. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -0
  397. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +25 -0
  398. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
  399. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js +44 -0
  400. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
  401. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +4 -7
  402. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  403. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  404. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +12 -0
  405. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -0
  406. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js +158 -0
  407. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -0
  408. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +12 -0
  409. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
  410. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +87 -0
  411. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
  412. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -4
  413. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  414. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +7 -150
  415. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  416. package/dist/feature-libraries/schema-aware/schemaAware.d.ts +3 -4
  417. package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  418. package/dist/feature-libraries/schema-aware/schemaAware.js +1 -1
  419. package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  420. package/dist/feature-libraries/schema-edits/index.d.ts +1 -1
  421. package/dist/feature-libraries/schema-edits/index.d.ts.map +1 -1
  422. package/dist/feature-libraries/schema-edits/index.js +2 -2
  423. package/dist/feature-libraries/schema-edits/index.js.map +1 -1
  424. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -3
  425. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  426. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +13 -5
  427. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  428. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  429. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  430. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts +5 -0
  431. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
  432. package/dist/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
  433. package/dist/feature-libraries/schema-index/codec.d.ts +1 -1
  434. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  435. package/dist/feature-libraries/schema-index/codec.js +10 -10
  436. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  437. package/dist/feature-libraries/schema-index/format.d.ts.map +1 -1
  438. package/dist/feature-libraries/schema-index/format.js.map +1 -1
  439. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +2 -2
  440. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  441. package/dist/feature-libraries/schema-index/schemaSummarizer.js +4 -4
  442. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  443. package/dist/feature-libraries/schemaBuilder.d.ts +1 -1
  444. package/dist/feature-libraries/schemaBuilder.d.ts.map +1 -1
  445. package/dist/feature-libraries/schemaBuilder.js +1 -1
  446. package/dist/feature-libraries/schemaBuilder.js.map +1 -1
  447. package/dist/feature-libraries/schemaBuilderBase.d.ts +1 -1
  448. package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
  449. package/dist/feature-libraries/schemaBuilderBase.js +19 -19
  450. package/dist/feature-libraries/schemaBuilderBase.js.map +1 -1
  451. package/dist/feature-libraries/sequence-field/compose.d.ts +9 -13
  452. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  453. package/dist/feature-libraries/sequence-field/compose.js +76 -43
  454. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  455. package/dist/feature-libraries/sequence-field/format.d.ts.map +1 -1
  456. package/dist/feature-libraries/sequence-field/format.js +14 -14
  457. package/dist/feature-libraries/sequence-field/format.js.map +1 -1
  458. package/dist/feature-libraries/sequence-field/helperTypes.d.ts +3 -3
  459. package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  460. package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  461. package/dist/feature-libraries/sequence-field/index.d.ts +5 -5
  462. package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -1
  463. package/dist/feature-libraries/sequence-field/index.js.map +1 -1
  464. package/dist/feature-libraries/sequence-field/invert.d.ts +1 -2
  465. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  466. package/dist/feature-libraries/sequence-field/invert.js +30 -39
  467. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  468. package/dist/feature-libraries/sequence-field/markListFactory.d.ts +4 -4
  469. package/dist/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
  470. package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -1
  471. package/dist/feature-libraries/sequence-field/markQueue.d.ts +7 -7
  472. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  473. package/dist/feature-libraries/sequence-field/markQueue.js +2 -2
  474. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
  475. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +25 -14
  476. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  477. package/dist/feature-libraries/sequence-field/moveEffectTable.js +20 -11
  478. package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  479. package/dist/feature-libraries/sequence-field/prune.d.ts +2 -2
  480. package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  481. package/dist/feature-libraries/sequence-field/prune.js.map +1 -1
  482. package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -4
  483. package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  484. package/dist/feature-libraries/sequence-field/rebase.js +34 -40
  485. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  486. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
  487. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  488. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
  489. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  490. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +1 -1
  491. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  492. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +1 -1
  493. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  494. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
  495. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  496. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +1 -1
  497. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  498. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +2 -3
  499. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  500. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +17 -19
  501. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  502. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -17
  503. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  504. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +2 -2
  505. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  506. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
  507. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  508. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +10 -10
  509. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  510. package/dist/feature-libraries/sequence-field/types.d.ts +7 -8
  511. package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
  512. package/dist/feature-libraries/sequence-field/types.js.map +1 -1
  513. package/dist/feature-libraries/sequence-field/utils.d.ts +42 -35
  514. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  515. package/dist/feature-libraries/sequence-field/utils.js +43 -21
  516. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  517. package/dist/feature-libraries/storedToViewSchema.d.ts +2 -2
  518. package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  519. package/dist/feature-libraries/storedToViewSchema.js +3 -3
  520. package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
  521. package/dist/feature-libraries/treeCursorUtils.d.ts +1 -1
  522. package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  523. package/dist/feature-libraries/treeCursorUtils.js +8 -8
  524. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  525. package/dist/feature-libraries/treeTextCursor.d.ts +1 -1
  526. package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -1
  527. package/dist/feature-libraries/treeTextCursor.js +3 -3
  528. package/dist/feature-libraries/treeTextCursor.js.map +1 -1
  529. package/dist/feature-libraries/typed-schema/flexList.d.ts +1 -2
  530. package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
  531. package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
  532. package/dist/feature-libraries/typed-schema/index.d.ts +0 -1
  533. package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
  534. package/dist/feature-libraries/typed-schema/index.js.map +1 -1
  535. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  536. package/dist/feature-libraries/typed-schema/schemaCollection.js +14 -14
  537. package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  538. package/dist/feature-libraries/typed-schema/typeUtils.d.ts +0 -5
  539. package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -1
  540. package/dist/feature-libraries/typed-schema/typeUtils.js.map +1 -1
  541. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +5 -4
  542. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  543. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +19 -11
  544. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  545. package/dist/feature-libraries/typed-schema/view.d.ts +1 -1
  546. package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
  547. package/dist/feature-libraries/typed-schema/view.js +10 -10
  548. package/dist/feature-libraries/typed-schema/view.js.map +1 -1
  549. package/dist/feature-libraries/valueUtilities.d.ts +6 -3
  550. package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
  551. package/dist/feature-libraries/valueUtilities.js +11 -10
  552. package/dist/feature-libraries/valueUtilities.js.map +1 -1
  553. package/dist/index.d.ts +7 -7
  554. package/dist/index.d.ts.map +1 -1
  555. package/dist/index.js +9 -9
  556. package/dist/index.js.map +1 -1
  557. package/dist/packageVersion.d.ts +1 -1
  558. package/dist/packageVersion.js +1 -1
  559. package/dist/packageVersion.js.map +1 -1
  560. package/dist/public.d.ts +90 -0
  561. package/dist/shared-tree/index.d.ts +3 -3
  562. package/dist/shared-tree/index.d.ts.map +1 -1
  563. package/dist/shared-tree/index.js +2 -1
  564. package/dist/shared-tree/index.js.map +1 -1
  565. package/dist/shared-tree/schematizeTree.d.ts +1 -1
  566. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  567. package/dist/shared-tree/schematizeTree.js +11 -11
  568. package/dist/shared-tree/schematizeTree.js.map +1 -1
  569. package/dist/shared-tree/schematizingTreeView.d.ts +10 -3
  570. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  571. package/dist/shared-tree/schematizingTreeView.js +39 -39
  572. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  573. package/dist/shared-tree/sharedTree.d.ts +58 -8
  574. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  575. package/dist/shared-tree/sharedTree.js +45 -12
  576. package/dist/shared-tree/sharedTree.js.map +1 -1
  577. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +3 -5
  578. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  579. package/dist/shared-tree/sharedTreeChangeCodecs.js +18 -11
  580. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  581. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +1 -0
  582. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  583. package/dist/shared-tree/sharedTreeChangeFamily.js +9 -6
  584. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  585. package/dist/shared-tree/sharedTreeChangeFormat.d.ts +4 -188
  586. package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  587. package/dist/shared-tree/sharedTreeChangeFormat.js +3 -3
  588. package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  589. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  590. package/dist/shared-tree/sharedTreeEditBuilder.js +4 -1
  591. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  592. package/dist/shared-tree/treeApi.d.ts +83 -2
  593. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  594. package/dist/shared-tree/treeApi.js +37 -14
  595. package/dist/shared-tree/treeApi.js.map +1 -1
  596. package/dist/shared-tree/treeCheckout.d.ts +41 -20
  597. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  598. package/dist/shared-tree/treeCheckout.js +135 -61
  599. package/dist/shared-tree/treeCheckout.js.map +1 -1
  600. package/dist/shared-tree/treeView.d.ts +3 -3
  601. package/dist/shared-tree/treeView.d.ts.map +1 -1
  602. package/dist/shared-tree/treeView.js.map +1 -1
  603. package/dist/shared-tree-core/branch.d.ts +5 -32
  604. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  605. package/dist/shared-tree-core/branch.js +12 -142
  606. package/dist/shared-tree-core/branch.js.map +1 -1
  607. package/dist/shared-tree-core/editManager.d.ts +2 -15
  608. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  609. package/dist/shared-tree-core/editManager.js +38 -82
  610. package/dist/shared-tree-core/editManager.js.map +1 -1
  611. package/dist/shared-tree-core/editManagerCodecs.d.ts +4 -4
  612. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  613. package/dist/shared-tree-core/editManagerCodecs.js +24 -10
  614. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  615. package/dist/shared-tree-core/editManagerFormat.d.ts +4 -5
  616. package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  617. package/dist/shared-tree-core/editManagerFormat.js +9 -10
  618. package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
  619. package/dist/shared-tree-core/editManagerSummarizer.d.ts +7 -6
  620. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  621. package/dist/shared-tree-core/editManagerSummarizer.js +6 -9
  622. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  623. package/dist/shared-tree-core/index.d.ts +1 -1
  624. package/dist/shared-tree-core/index.d.ts.map +1 -1
  625. package/dist/shared-tree-core/index.js +2 -2
  626. package/dist/shared-tree-core/index.js.map +1 -1
  627. package/dist/shared-tree-core/messageCodecs.d.ts +7 -4
  628. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  629. package/dist/shared-tree-core/messageCodecs.js +21 -4
  630. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  631. package/dist/shared-tree-core/messageFormat.d.ts +10 -2
  632. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  633. package/dist/shared-tree-core/messageFormat.js +1 -0
  634. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  635. package/dist/shared-tree-core/messageTypes.d.ts.map +1 -1
  636. package/dist/shared-tree-core/messageTypes.js.map +1 -1
  637. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  638. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  639. package/dist/shared-tree-core/sharedTreeCore.d.ts +10 -5
  640. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  641. package/dist/shared-tree-core/sharedTreeCore.js +18 -18
  642. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  643. package/dist/simple-tree/arrayNode.d.ts +187 -0
  644. package/dist/simple-tree/arrayNode.d.ts.map +1 -0
  645. package/dist/simple-tree/arrayNode.js +438 -0
  646. package/dist/simple-tree/arrayNode.js.map +1 -0
  647. package/dist/simple-tree/index.d.ts +10 -8
  648. package/dist/simple-tree/index.d.ts.map +1 -1
  649. package/dist/simple-tree/index.js +9 -8
  650. package/dist/simple-tree/index.js.map +1 -1
  651. package/dist/simple-tree/leafNodeSchema.d.ts +11 -0
  652. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -0
  653. package/dist/simple-tree/leafNodeSchema.js +51 -0
  654. package/dist/simple-tree/leafNodeSchema.js.map +1 -0
  655. package/dist/simple-tree/mapNode.d.ts +86 -0
  656. package/dist/simple-tree/mapNode.d.ts.map +1 -0
  657. package/dist/simple-tree/mapNode.js +204 -0
  658. package/dist/simple-tree/mapNode.js.map +1 -0
  659. package/dist/simple-tree/objectNode.d.ts +62 -0
  660. package/dist/simple-tree/objectNode.d.ts.map +1 -0
  661. package/dist/simple-tree/objectNode.js +242 -0
  662. package/dist/simple-tree/objectNode.js.map +1 -0
  663. package/dist/simple-tree/proxies.d.ts +21 -62
  664. package/dist/simple-tree/proxies.d.ts.map +1 -1
  665. package/dist/simple-tree/proxies.js +128 -679
  666. package/dist/simple-tree/proxies.js.map +1 -1
  667. package/dist/simple-tree/proxyBinding.d.ts +48 -0
  668. package/dist/simple-tree/proxyBinding.d.ts.map +1 -0
  669. package/dist/simple-tree/proxyBinding.js +132 -0
  670. package/dist/simple-tree/proxyBinding.js.map +1 -0
  671. package/dist/simple-tree/rawNode.d.ts +9 -50
  672. package/dist/simple-tree/rawNode.d.ts.map +1 -1
  673. package/dist/simple-tree/rawNode.js +15 -91
  674. package/dist/simple-tree/rawNode.js.map +1 -1
  675. package/dist/simple-tree/schemaCaching.d.ts +26 -0
  676. package/dist/simple-tree/schemaCaching.d.ts.map +1 -0
  677. package/dist/simple-tree/schemaCaching.js +69 -0
  678. package/dist/simple-tree/schemaCaching.js.map +1 -0
  679. package/dist/simple-tree/schemaCreationUtilities.d.ts +2 -1
  680. package/dist/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
  681. package/dist/simple-tree/schemaCreationUtilities.js +3 -3
  682. package/dist/simple-tree/schemaCreationUtilities.js.map +1 -1
  683. package/dist/simple-tree/schemaFactory.d.ts +92 -43
  684. package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
  685. package/dist/simple-tree/schemaFactory.js +124 -177
  686. package/dist/simple-tree/schemaFactory.js.map +1 -1
  687. package/dist/simple-tree/schemaFactoryRecursive.d.ts +27 -83
  688. package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  689. package/dist/simple-tree/schemaFactoryRecursive.js +1 -115
  690. package/dist/simple-tree/schemaFactoryRecursive.js.map +1 -1
  691. package/dist/simple-tree/schemaTypes.d.ts +123 -70
  692. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  693. package/dist/simple-tree/schemaTypes.js +86 -5
  694. package/dist/simple-tree/schemaTypes.js.map +1 -1
  695. package/dist/simple-tree/testRecursiveDomain.d.ts +8 -8
  696. package/dist/simple-tree/testRecursiveDomain.d.ts.map +1 -1
  697. package/dist/simple-tree/testRecursiveDomain.js +2 -2
  698. package/dist/simple-tree/testRecursiveDomain.js.map +1 -1
  699. package/dist/simple-tree/toFlexSchema.d.ts +8 -20
  700. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  701. package/dist/simple-tree/toFlexSchema.js +33 -41
  702. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  703. package/dist/simple-tree/toMapTree.d.ts +12 -22
  704. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  705. package/dist/simple-tree/toMapTree.js +185 -136
  706. package/dist/simple-tree/toMapTree.js.map +1 -1
  707. package/dist/simple-tree/tree.d.ts +20 -3
  708. package/dist/simple-tree/tree.d.ts.map +1 -1
  709. package/dist/simple-tree/tree.js.map +1 -1
  710. package/dist/simple-tree/treeApi.d.ts +82 -5
  711. package/dist/simple-tree/treeApi.d.ts.map +1 -1
  712. package/dist/simple-tree/treeApi.js +96 -18
  713. package/dist/simple-tree/treeApi.js.map +1 -1
  714. package/dist/simple-tree/types.d.ts +1 -142
  715. package/dist/simple-tree/types.d.ts.map +1 -1
  716. package/dist/simple-tree/types.js.map +1 -1
  717. package/dist/simple-tree/typesUnsafe.d.ts +32 -17
  718. package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
  719. package/dist/simple-tree/typesUnsafe.js.map +1 -1
  720. package/dist/treeFactory.d.ts +31 -14
  721. package/dist/treeFactory.d.ts.map +1 -1
  722. package/dist/treeFactory.js +50 -23
  723. package/dist/treeFactory.js.map +1 -1
  724. package/dist/util/brand.d.ts +26 -114
  725. package/dist/util/brand.d.ts.map +1 -1
  726. package/dist/util/brand.js +24 -91
  727. package/dist/util/brand.js.map +1 -1
  728. package/dist/util/idAllocator.d.ts.map +1 -1
  729. package/dist/util/idAllocator.js +2 -2
  730. package/dist/util/idAllocator.js.map +1 -1
  731. package/dist/util/index.d.ts +5 -3
  732. package/dist/util/index.d.ts.map +1 -1
  733. package/dist/util/index.js +8 -9
  734. package/dist/util/index.js.map +1 -1
  735. package/dist/util/nestedSet.d.ts.map +1 -1
  736. package/dist/util/nestedSet.js.map +1 -1
  737. package/dist/util/opaque.d.ts +46 -0
  738. package/dist/util/opaque.d.ts.map +1 -0
  739. package/dist/util/opaque.js +29 -0
  740. package/dist/util/opaque.js.map +1 -0
  741. package/dist/util/referenceCounting.d.ts +1 -1
  742. package/dist/util/referenceCounting.d.ts.map +1 -1
  743. package/dist/util/referenceCounting.js +3 -3
  744. package/dist/util/referenceCounting.js.map +1 -1
  745. package/dist/util/typeCheckTests.d.ts +1 -1
  746. package/dist/util/typeCheckTests.d.ts.map +1 -1
  747. package/dist/util/typeCheckTests.js.map +1 -1
  748. package/dist/util/typeUtils.d.ts +13 -0
  749. package/dist/util/typeUtils.d.ts.map +1 -1
  750. package/dist/util/typeUtils.js.map +1 -1
  751. package/dist/util/typeboxBrand.d.ts +17 -0
  752. package/dist/util/typeboxBrand.d.ts.map +1 -0
  753. package/dist/util/typeboxBrand.js +32 -0
  754. package/dist/util/typeboxBrand.js.map +1 -0
  755. package/dist/util/utils.d.ts +2 -15
  756. package/dist/util/utils.d.ts.map +1 -1
  757. package/dist/util/utils.js +11 -11
  758. package/dist/util/utils.js.map +1 -1
  759. package/docs/main/compatibility.md +95 -0
  760. package/docs/main/schema2.md +3 -3
  761. package/docs/main/sequence-field/move-composition.md +46 -0
  762. package/docs/main/tree-content-apis.md +5 -5
  763. package/docs/roadmap.md +4 -4
  764. package/internal.d.ts +11 -0
  765. package/lib/beta.d.ts +90 -0
  766. package/lib/codec/codec.d.ts +10 -4
  767. package/lib/codec/codec.d.ts.map +1 -1
  768. package/lib/codec/codec.js +2 -2
  769. package/lib/codec/codec.js.map +1 -1
  770. package/lib/codec/discriminatedUnions.d.ts.map +1 -1
  771. package/lib/codec/discriminatedUnions.js +5 -1
  772. package/lib/codec/discriminatedUnions.js.map +1 -1
  773. package/lib/codec/index.d.ts +2 -2
  774. package/lib/codec/index.d.ts.map +1 -1
  775. package/lib/codec/index.js +1 -1
  776. package/lib/codec/index.js.map +1 -1
  777. package/lib/codec/noopValidator.d.ts.map +1 -1
  778. package/lib/codec/noopValidator.js.map +1 -1
  779. package/lib/codec/versioned/codec.d.ts +10 -2
  780. package/lib/codec/versioned/codec.d.ts.map +1 -1
  781. package/lib/codec/versioned/codec.js +25 -4
  782. package/lib/codec/versioned/codec.js.map +1 -1
  783. package/lib/codec/versioned/index.d.ts +1 -1
  784. package/lib/codec/versioned/index.d.ts.map +1 -1
  785. package/lib/codec/versioned/index.js +1 -1
  786. package/lib/codec/versioned/index.js.map +1 -1
  787. package/lib/core/change-family/changeFamily.d.ts +2 -2
  788. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  789. package/lib/core/change-family/changeFamily.js.map +1 -1
  790. package/lib/core/forest/editableForest.d.ts +1 -1
  791. package/lib/core/forest/editableForest.d.ts.map +1 -1
  792. package/lib/core/forest/editableForest.js +2 -2
  793. package/lib/core/forest/editableForest.js.map +1 -1
  794. package/lib/core/forest/forest.d.ts +5 -1
  795. package/lib/core/forest/forest.d.ts.map +1 -1
  796. package/lib/core/forest/forest.js +1 -1
  797. package/lib/core/forest/forest.js.map +1 -1
  798. package/lib/core/index.d.ts +3 -3
  799. package/lib/core/index.d.ts.map +1 -1
  800. package/lib/core/index.js +3 -3
  801. package/lib/core/index.js.map +1 -1
  802. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  803. package/lib/core/rebase/changeRebaser.js.map +1 -1
  804. package/lib/core/rebase/index.d.ts +1 -1
  805. package/lib/core/rebase/index.d.ts.map +1 -1
  806. package/lib/core/rebase/index.js +1 -1
  807. package/lib/core/rebase/index.js.map +1 -1
  808. package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
  809. package/lib/core/rebase/revisionTagCodec.js +1 -1
  810. package/lib/core/rebase/revisionTagCodec.js.map +1 -1
  811. package/lib/core/rebase/types.d.ts +30 -0
  812. package/lib/core/rebase/types.d.ts.map +1 -1
  813. package/lib/core/rebase/types.js +23 -0
  814. package/lib/core/rebase/types.js.map +1 -1
  815. package/lib/core/rebase/utils.d.ts.map +1 -1
  816. package/lib/core/rebase/utils.js +6 -5
  817. package/lib/core/rebase/utils.js.map +1 -1
  818. package/lib/core/revertible/index.d.ts +1 -1
  819. package/lib/core/revertible/index.d.ts.map +1 -1
  820. package/lib/core/revertible/index.js +1 -1
  821. package/lib/core/revertible/index.js.map +1 -1
  822. package/lib/core/revertible/revertible.d.ts +15 -49
  823. package/lib/core/revertible/revertible.d.ts.map +1 -1
  824. package/lib/core/revertible/revertible.js +2 -32
  825. package/lib/core/revertible/revertible.js.map +1 -1
  826. package/lib/core/schema-stored/format.d.ts.map +1 -1
  827. package/lib/core/schema-stored/format.js.map +1 -1
  828. package/lib/core/schema-stored/index.d.ts +2 -1
  829. package/lib/core/schema-stored/index.d.ts.map +1 -1
  830. package/lib/core/schema-stored/index.js +2 -1
  831. package/lib/core/schema-stored/index.js.map +1 -1
  832. package/lib/core/schema-stored/multiplicity.d.ts.map +1 -0
  833. package/lib/core/schema-stored/multiplicity.js.map +1 -0
  834. package/lib/core/schema-stored/schema.d.ts +32 -9
  835. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  836. package/lib/core/schema-stored/schema.js +13 -7
  837. package/lib/core/schema-stored/schema.js.map +1 -1
  838. package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  839. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  840. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
  841. package/lib/core/tree/anchorSet.d.ts +31 -16
  842. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  843. package/lib/core/tree/anchorSet.js +10 -35
  844. package/lib/core/tree/anchorSet.js.map +1 -1
  845. package/lib/core/tree/cursor.d.ts.map +1 -1
  846. package/lib/core/tree/cursor.js +1 -1
  847. package/lib/core/tree/cursor.js.map +1 -1
  848. package/lib/core/tree/delta.d.ts.map +1 -1
  849. package/lib/core/tree/delta.js.map +1 -1
  850. package/lib/core/tree/deltaUtil.d.ts +1 -1
  851. package/lib/core/tree/deltaUtil.d.ts.map +1 -1
  852. package/lib/core/tree/deltaUtil.js.map +1 -1
  853. package/lib/core/tree/detachedFieldIndex.d.ts +2 -2
  854. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  855. package/lib/core/tree/detachedFieldIndex.js +2 -2
  856. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  857. package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  858. package/lib/core/tree/detachedFieldIndexCodec.js +1 -1
  859. package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
  860. package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  861. package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -1
  862. package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  863. package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
  864. package/lib/core/tree/mapTree.d.ts.map +1 -1
  865. package/lib/core/tree/mapTree.js.map +1 -1
  866. package/lib/core/tree/pathTree.d.ts.map +1 -1
  867. package/lib/core/tree/pathTree.js.map +1 -1
  868. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  869. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
  870. package/lib/core/tree/sparseTree.d.ts.map +1 -1
  871. package/lib/core/tree/sparseTree.js +1 -1
  872. package/lib/core/tree/sparseTree.js.map +1 -1
  873. package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
  874. package/lib/core/tree/treeTextFormat.js.map +1 -1
  875. package/lib/core/tree/types.d.ts +1 -1
  876. package/lib/core/tree/types.d.ts.map +1 -1
  877. package/lib/core/tree/types.js +1 -1
  878. package/lib/core/tree/types.js.map +1 -1
  879. package/lib/core/tree/visitDelta.d.ts +13 -2
  880. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  881. package/lib/core/tree/visitDelta.js +43 -14
  882. package/lib/core/tree/visitDelta.js.map +1 -1
  883. package/lib/core/tree/visitPath.d.ts +1 -1
  884. package/lib/core/tree/visitPath.d.ts.map +1 -1
  885. package/lib/core/tree/visitPath.js +4 -0
  886. package/lib/core/tree/visitPath.js.map +1 -1
  887. package/lib/core/tree/visitorUtils.d.ts +4 -4
  888. package/lib/core/tree/visitorUtils.d.ts.map +1 -1
  889. package/lib/core/tree/visitorUtils.js +1 -1
  890. package/lib/core/tree/visitorUtils.js.map +1 -1
  891. package/lib/domains/json/jsonCursor.d.ts.map +1 -1
  892. package/lib/domains/json/jsonCursor.js +1 -1
  893. package/lib/domains/json/jsonCursor.js.map +1 -1
  894. package/lib/domains/json/jsonDomainSchema.d.ts.map +1 -1
  895. package/lib/domains/json/jsonDomainSchema.js.map +1 -1
  896. package/lib/domains/leafDomain.d.ts.map +1 -1
  897. package/lib/domains/leafDomain.js +1 -1
  898. package/lib/domains/leafDomain.js.map +1 -1
  899. package/lib/domains/nodeKey/nodeKeySchema.d.ts.map +1 -1
  900. package/lib/domains/nodeKey/nodeKeySchema.js +2 -2
  901. package/lib/domains/nodeKey/nodeKeySchema.js.map +1 -1
  902. package/lib/domains/schemaBuilder.d.ts +19 -81
  903. package/lib/domains/schemaBuilder.d.ts.map +1 -1
  904. package/lib/domains/schemaBuilder.js +24 -92
  905. package/lib/domains/schemaBuilder.js.map +1 -1
  906. package/lib/domains/testRecursiveDomain.d.ts +0 -4
  907. package/lib/domains/testRecursiveDomain.d.ts.map +1 -1
  908. package/lib/domains/testRecursiveDomain.js +1 -8
  909. package/lib/domains/testRecursiveDomain.js.map +1 -1
  910. package/lib/events/events.d.ts.map +1 -1
  911. package/lib/events/events.js +1 -1
  912. package/lib/events/events.js.map +1 -1
  913. package/lib/external-utilities/typeboxValidator.d.ts.map +1 -1
  914. package/lib/external-utilities/typeboxValidator.js.map +1 -1
  915. package/lib/feature-libraries/changeAtomIdCodec.d.ts +1 -1
  916. package/lib/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  917. package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
  918. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts +3 -3
  919. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  920. package/lib/feature-libraries/chunked-forest/basicChunk.js +4 -4
  921. package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  922. package/lib/feature-libraries/chunked-forest/chunk.d.ts +1 -1
  923. package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
  924. package/lib/feature-libraries/chunked-forest/chunk.js +1 -1
  925. package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -1
  926. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
  927. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  928. package/lib/feature-libraries/chunked-forest/chunkTree.js +5 -6
  929. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  930. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -2
  931. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  932. package/lib/feature-libraries/chunked-forest/chunkedForest.js +4 -3
  933. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  934. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +2 -2
  935. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  936. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +1 -1
  937. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  938. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +1 -1
  939. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  940. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +3 -3
  941. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  942. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +2 -2
  943. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  944. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +1 -1
  945. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  946. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -1
  947. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  948. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  949. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -9
  950. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  951. package/lib/feature-libraries/chunked-forest/codec/codecs.js +4 -3
  952. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  953. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +3 -3
  954. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  955. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  956. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  957. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
  958. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  959. package/lib/feature-libraries/chunked-forest/codec/format.js +2 -3
  960. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  961. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
  962. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  963. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  964. package/lib/feature-libraries/chunked-forest/codec/index.js +1 -1
  965. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  966. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +2 -2
  967. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  968. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +1 -1
  969. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  970. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +3 -3
  971. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
  972. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +3 -4
  973. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
  974. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  975. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  976. package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
  977. package/lib/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
  978. package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
  979. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  980. package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
  981. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
  982. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
  983. package/lib/feature-libraries/chunked-forest/sequenceChunk.js +1 -1
  984. package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
  985. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +3 -3
  986. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  987. package/lib/feature-libraries/chunked-forest/uniformChunk.js +4 -4
  988. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  989. package/lib/feature-libraries/contextuallyTyped.d.ts +5 -9
  990. package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  991. package/lib/feature-libraries/contextuallyTyped.js +6 -20
  992. package/lib/feature-libraries/contextuallyTyped.js.map +1 -1
  993. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -5
  994. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  995. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +6 -6
  996. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  997. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +18 -4
  998. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  999. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +55 -20
  1000. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  1001. package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
  1002. package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -1
  1003. package/lib/feature-libraries/default-schema/index.d.ts +1 -1
  1004. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
  1005. package/lib/feature-libraries/default-schema/index.js +1 -1
  1006. package/lib/feature-libraries/default-schema/index.js.map +1 -1
  1007. package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts +8 -0
  1008. package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -0
  1009. package/lib/feature-libraries/default-schema/noChangeCodecs.js +7 -0
  1010. package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -0
  1011. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -1
  1012. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  1013. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +1 -1
  1014. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  1015. package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  1016. package/lib/feature-libraries/editableTreeBinder.js +1 -1
  1017. package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
  1018. package/lib/feature-libraries/fieldGenerator.d.ts +1 -1
  1019. package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -1
  1020. package/lib/feature-libraries/fieldGenerator.js.map +1 -1
  1021. package/lib/feature-libraries/flex-tree/context.d.ts +16 -4
  1022. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  1023. package/lib/feature-libraries/flex-tree/context.js +17 -5
  1024. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  1025. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +43 -36
  1026. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  1027. package/lib/feature-libraries/flex-tree/flexTreeTypes.js +8 -5
  1028. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  1029. package/lib/feature-libraries/flex-tree/index.d.ts +3 -3
  1030. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  1031. package/lib/feature-libraries/flex-tree/index.js +2 -2
  1032. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  1033. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +7 -8
  1034. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  1035. package/lib/feature-libraries/flex-tree/lazyEntity.js +8 -12
  1036. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  1037. package/lib/feature-libraries/flex-tree/lazyField.d.ts +21 -7
  1038. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  1039. package/lib/feature-libraries/flex-tree/lazyField.js +43 -22
  1040. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  1041. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +12 -9
  1042. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  1043. package/lib/feature-libraries/flex-tree/lazyNode.js +35 -80
  1044. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  1045. package/lib/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -1
  1046. package/lib/feature-libraries/flex-tree/nodeKeys.js.map +1 -1
  1047. package/lib/feature-libraries/flex-tree/treeEvents.d.ts +7 -70
  1048. package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  1049. package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  1050. package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  1051. package/lib/feature-libraries/flex-tree/unboxed.js +1 -1
  1052. package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
  1053. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  1054. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
  1055. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  1056. package/lib/feature-libraries/forest-summary/codec.js +1 -1
  1057. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  1058. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
  1059. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  1060. package/lib/feature-libraries/forest-summary/forestSummarizer.js +3 -3
  1061. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  1062. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
  1063. package/lib/feature-libraries/forest-summary/format.js +1 -1
  1064. package/lib/feature-libraries/forest-summary/format.js.map +1 -1
  1065. package/lib/feature-libraries/index.d.ts +8 -9
  1066. package/lib/feature-libraries/index.d.ts.map +1 -1
  1067. package/lib/feature-libraries/index.js +6 -7
  1068. package/lib/feature-libraries/index.js.map +1 -1
  1069. package/lib/feature-libraries/mapTreeCursor.d.ts +1 -1
  1070. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  1071. package/lib/feature-libraries/mapTreeCursor.js +2 -2
  1072. package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
  1073. package/lib/feature-libraries/memoizedIdRangeAllocator.js +1 -1
  1074. package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
  1075. package/lib/feature-libraries/modular-schema/comparison.d.ts +1 -1
  1076. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  1077. package/lib/feature-libraries/modular-schema/comparison.js +3 -3
  1078. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  1079. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +19 -13
  1080. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  1081. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  1082. package/lib/feature-libraries/modular-schema/fieldKind.d.ts +3 -4
  1083. package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  1084. package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  1085. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +21 -0
  1086. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -0
  1087. package/lib/{test/codec/codec.spec.d.ts → feature-libraries/modular-schema/fieldKindConfiguration.js} +1 -1
  1088. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -0
  1089. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -2
  1090. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
  1091. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +3 -3
  1092. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  1093. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  1094. package/lib/feature-libraries/modular-schema/genericFieldKind.js +3 -7
  1095. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  1096. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +3 -5
  1097. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  1098. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +7 -7
  1099. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  1100. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
  1101. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  1102. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js +1 -1
  1103. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  1104. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +4 -4
  1105. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  1106. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  1107. package/lib/feature-libraries/modular-schema/index.d.ts +5 -4
  1108. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
  1109. package/lib/feature-libraries/modular-schema/index.js +2 -2
  1110. package/lib/feature-libraries/modular-schema/index.js.map +1 -1
  1111. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +1 -1
  1112. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  1113. package/lib/feature-libraries/modular-schema/isNeverTree.js +6 -7
  1114. package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  1115. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +4 -5
  1116. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  1117. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +63 -27
  1118. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  1119. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +13 -25
  1120. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  1121. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +202 -110
  1122. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  1123. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +5 -12
  1124. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  1125. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +2 -12
  1126. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  1127. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +6 -4
  1128. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  1129. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  1130. package/lib/feature-libraries/node-key/nodeKey.d.ts +1 -1
  1131. package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  1132. package/lib/feature-libraries/node-key/nodeKey.js.map +1 -1
  1133. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts +2 -2
  1134. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
  1135. package/lib/feature-libraries/node-key/nodeKeyIndex.js +2 -2
  1136. package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
  1137. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +2 -2
  1138. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  1139. package/lib/feature-libraries/node-key/nodeKeyManager.js +2 -2
  1140. package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  1141. package/lib/feature-libraries/object-forest/objectForest.d.ts +1 -1
  1142. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  1143. package/lib/feature-libraries/object-forest/objectForest.js +6 -5
  1144. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  1145. package/lib/feature-libraries/optional-field/index.d.ts +1 -1
  1146. package/lib/feature-libraries/optional-field/index.d.ts.map +1 -1
  1147. package/lib/feature-libraries/optional-field/index.js +1 -1
  1148. package/lib/feature-libraries/optional-field/index.js.map +1 -1
  1149. package/lib/feature-libraries/optional-field/optionalField.d.ts +3 -5
  1150. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  1151. package/lib/feature-libraries/optional-field/optionalField.js +18 -22
  1152. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  1153. package/lib/feature-libraries/optional-field/{optionalFieldChangeFormat.d.ts → optionalFieldChangeFormatV1.d.ts} +1 -1
  1154. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -0
  1155. package/lib/feature-libraries/optional-field/{optionalFieldChangeFormat.js → optionalFieldChangeFormatV1.js} +11 -2
  1156. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -0
  1157. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +25 -0
  1158. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
  1159. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js +40 -0
  1160. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
  1161. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +4 -7
  1162. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  1163. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  1164. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +12 -0
  1165. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -0
  1166. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js +154 -0
  1167. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -0
  1168. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +12 -0
  1169. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
  1170. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +83 -0
  1171. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
  1172. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -4
  1173. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  1174. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +7 -150
  1175. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  1176. package/lib/feature-libraries/schema-aware/schemaAware.d.ts +3 -4
  1177. package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  1178. package/lib/feature-libraries/schema-aware/schemaAware.js +1 -1
  1179. package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  1180. package/lib/feature-libraries/schema-edits/index.d.ts +1 -1
  1181. package/lib/feature-libraries/schema-edits/index.d.ts.map +1 -1
  1182. package/lib/feature-libraries/schema-edits/index.js +1 -1
  1183. package/lib/feature-libraries/schema-edits/index.js.map +1 -1
  1184. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -3
  1185. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  1186. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +10 -2
  1187. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  1188. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  1189. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  1190. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts +5 -0
  1191. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
  1192. package/lib/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
  1193. package/lib/feature-libraries/schema-index/codec.d.ts +1 -1
  1194. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  1195. package/lib/feature-libraries/schema-index/codec.js +3 -3
  1196. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  1197. package/lib/feature-libraries/schema-index/format.d.ts.map +1 -1
  1198. package/lib/feature-libraries/schema-index/format.js.map +1 -1
  1199. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +2 -2
  1200. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  1201. package/lib/feature-libraries/schema-index/schemaSummarizer.js +2 -2
  1202. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  1203. package/lib/feature-libraries/schemaBuilder.d.ts +1 -1
  1204. package/lib/feature-libraries/schemaBuilder.d.ts.map +1 -1
  1205. package/lib/feature-libraries/schemaBuilder.js +1 -1
  1206. package/lib/feature-libraries/schemaBuilder.js.map +1 -1
  1207. package/lib/feature-libraries/schemaBuilderBase.d.ts +1 -1
  1208. package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
  1209. package/lib/feature-libraries/schemaBuilderBase.js +2 -2
  1210. package/lib/feature-libraries/schemaBuilderBase.js.map +1 -1
  1211. package/lib/feature-libraries/sequence-field/compose.d.ts +9 -13
  1212. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  1213. package/lib/feature-libraries/sequence-field/compose.js +63 -30
  1214. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  1215. package/lib/feature-libraries/sequence-field/format.d.ts.map +1 -1
  1216. package/lib/feature-libraries/sequence-field/format.js +1 -1
  1217. package/lib/feature-libraries/sequence-field/format.js.map +1 -1
  1218. package/lib/feature-libraries/sequence-field/helperTypes.d.ts +3 -3
  1219. package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  1220. package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  1221. package/lib/feature-libraries/sequence-field/index.d.ts +5 -5
  1222. package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -1
  1223. package/lib/feature-libraries/sequence-field/index.js.map +1 -1
  1224. package/lib/feature-libraries/sequence-field/invert.d.ts +1 -2
  1225. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  1226. package/lib/feature-libraries/sequence-field/invert.js +20 -29
  1227. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  1228. package/lib/feature-libraries/sequence-field/markListFactory.d.ts +4 -4
  1229. package/lib/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
  1230. package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -1
  1231. package/lib/feature-libraries/sequence-field/markQueue.d.ts +7 -7
  1232. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  1233. package/lib/feature-libraries/sequence-field/markQueue.js +1 -1
  1234. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
  1235. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +25 -14
  1236. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  1237. package/lib/feature-libraries/sequence-field/moveEffectTable.js +15 -6
  1238. package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  1239. package/lib/feature-libraries/sequence-field/prune.d.ts +2 -2
  1240. package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  1241. package/lib/feature-libraries/sequence-field/prune.js.map +1 -1
  1242. package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -4
  1243. package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  1244. package/lib/feature-libraries/sequence-field/rebase.js +11 -17
  1245. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  1246. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
  1247. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  1248. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
  1249. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  1250. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +1 -1
  1251. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  1252. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +1 -1
  1253. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  1254. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
  1255. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  1256. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +1 -1
  1257. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  1258. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +2 -3
  1259. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  1260. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +13 -15
  1261. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  1262. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -17
  1263. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  1264. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +1 -1
  1265. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  1266. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
  1267. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  1268. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +7 -7
  1269. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  1270. package/lib/feature-libraries/sequence-field/types.d.ts +7 -8
  1271. package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
  1272. package/lib/feature-libraries/sequence-field/types.js.map +1 -1
  1273. package/lib/feature-libraries/sequence-field/utils.d.ts +42 -35
  1274. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  1275. package/lib/feature-libraries/sequence-field/utils.js +28 -7
  1276. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  1277. package/lib/feature-libraries/storedToViewSchema.d.ts +2 -2
  1278. package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  1279. package/lib/feature-libraries/storedToViewSchema.js +3 -3
  1280. package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
  1281. package/lib/feature-libraries/treeCursorUtils.d.ts +1 -1
  1282. package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  1283. package/lib/feature-libraries/treeCursorUtils.js +2 -2
  1284. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  1285. package/lib/feature-libraries/treeTextCursor.d.ts +1 -1
  1286. package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -1
  1287. package/lib/feature-libraries/treeTextCursor.js +2 -2
  1288. package/lib/feature-libraries/treeTextCursor.js.map +1 -1
  1289. package/lib/feature-libraries/typed-schema/flexList.d.ts +1 -2
  1290. package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
  1291. package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
  1292. package/lib/feature-libraries/typed-schema/index.d.ts +0 -1
  1293. package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
  1294. package/lib/feature-libraries/typed-schema/index.js.map +1 -1
  1295. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  1296. package/lib/feature-libraries/typed-schema/schemaCollection.js +4 -4
  1297. package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  1298. package/lib/feature-libraries/typed-schema/typeUtils.d.ts +0 -5
  1299. package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -1
  1300. package/lib/feature-libraries/typed-schema/typeUtils.js.map +1 -1
  1301. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +5 -4
  1302. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  1303. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +16 -8
  1304. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  1305. package/lib/feature-libraries/typed-schema/view.d.ts +1 -1
  1306. package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
  1307. package/lib/feature-libraries/typed-schema/view.js +1 -1
  1308. package/lib/feature-libraries/typed-schema/view.js.map +1 -1
  1309. package/lib/feature-libraries/valueUtilities.d.ts +6 -3
  1310. package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
  1311. package/lib/feature-libraries/valueUtilities.js +8 -7
  1312. package/lib/feature-libraries/valueUtilities.js.map +1 -1
  1313. package/lib/index.d.ts +7 -7
  1314. package/lib/index.d.ts.map +1 -1
  1315. package/lib/index.js +5 -7
  1316. package/lib/index.js.map +1 -1
  1317. package/lib/packageVersion.d.ts +1 -1
  1318. package/lib/packageVersion.js +1 -1
  1319. package/lib/packageVersion.js.map +1 -1
  1320. package/lib/public.d.ts +90 -0
  1321. package/lib/shared-tree/index.d.ts +3 -3
  1322. package/lib/shared-tree/index.d.ts.map +1 -1
  1323. package/lib/shared-tree/index.js +2 -2
  1324. package/lib/shared-tree/index.js.map +1 -1
  1325. package/lib/shared-tree/schematizeTree.d.ts +1 -1
  1326. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  1327. package/lib/shared-tree/schematizeTree.js +6 -6
  1328. package/lib/shared-tree/schematizeTree.js.map +1 -1
  1329. package/lib/shared-tree/schematizingTreeView.d.ts +10 -3
  1330. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  1331. package/lib/shared-tree/schematizingTreeView.js +21 -21
  1332. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  1333. package/lib/shared-tree/sharedTree.d.ts +58 -8
  1334. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  1335. package/lib/shared-tree/sharedTree.js +43 -10
  1336. package/lib/shared-tree/sharedTree.js.map +1 -1
  1337. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +3 -5
  1338. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  1339. package/lib/shared-tree/sharedTreeChangeCodecs.js +18 -10
  1340. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  1341. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +1 -0
  1342. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  1343. package/lib/shared-tree/sharedTreeChangeFamily.js +7 -5
  1344. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  1345. package/lib/shared-tree/sharedTreeChangeFormat.d.ts +4 -188
  1346. package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  1347. package/lib/shared-tree/sharedTreeChangeFormat.js +3 -3
  1348. package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  1349. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  1350. package/lib/shared-tree/sharedTreeEditBuilder.js +4 -1
  1351. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  1352. package/lib/shared-tree/treeApi.d.ts +83 -2
  1353. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  1354. package/lib/shared-tree/treeApi.js +30 -7
  1355. package/lib/shared-tree/treeApi.js.map +1 -1
  1356. package/lib/shared-tree/treeCheckout.d.ts +41 -20
  1357. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  1358. package/lib/shared-tree/treeCheckout.js +115 -41
  1359. package/lib/shared-tree/treeCheckout.js.map +1 -1
  1360. package/lib/shared-tree/treeView.d.ts +3 -3
  1361. package/lib/shared-tree/treeView.d.ts.map +1 -1
  1362. package/lib/shared-tree/treeView.js.map +1 -1
  1363. package/lib/shared-tree-core/branch.d.ts +5 -32
  1364. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  1365. package/lib/shared-tree-core/branch.js +9 -139
  1366. package/lib/shared-tree-core/branch.js.map +1 -1
  1367. package/lib/shared-tree-core/editManager.d.ts +2 -15
  1368. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  1369. package/lib/shared-tree-core/editManager.js +4 -48
  1370. package/lib/shared-tree-core/editManager.js.map +1 -1
  1371. package/lib/shared-tree-core/editManagerCodecs.d.ts +4 -4
  1372. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  1373. package/lib/shared-tree-core/editManagerCodecs.js +19 -6
  1374. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  1375. package/lib/shared-tree-core/editManagerFormat.d.ts +4 -5
  1376. package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  1377. package/lib/shared-tree-core/editManagerFormat.js +2 -3
  1378. package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
  1379. package/lib/shared-tree-core/editManagerSummarizer.d.ts +7 -6
  1380. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  1381. package/lib/shared-tree-core/editManagerSummarizer.js +4 -7
  1382. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  1383. package/lib/shared-tree-core/index.d.ts +1 -1
  1384. package/lib/shared-tree-core/index.d.ts.map +1 -1
  1385. package/lib/shared-tree-core/index.js.map +1 -1
  1386. package/lib/shared-tree-core/messageCodecs.d.ts +7 -4
  1387. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  1388. package/lib/shared-tree-core/messageCodecs.js +19 -3
  1389. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  1390. package/lib/shared-tree-core/messageFormat.d.ts +10 -2
  1391. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  1392. package/lib/shared-tree-core/messageFormat.js +1 -0
  1393. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  1394. package/lib/shared-tree-core/messageTypes.d.ts.map +1 -1
  1395. package/lib/shared-tree-core/messageTypes.js.map +1 -1
  1396. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  1397. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  1398. package/lib/shared-tree-core/sharedTreeCore.d.ts +10 -5
  1399. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  1400. package/lib/shared-tree-core/sharedTreeCore.js +12 -12
  1401. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  1402. package/lib/simple-tree/arrayNode.d.ts +187 -0
  1403. package/lib/simple-tree/arrayNode.d.ts.map +1 -0
  1404. package/lib/simple-tree/arrayNode.js +433 -0
  1405. package/lib/simple-tree/arrayNode.js.map +1 -0
  1406. package/lib/simple-tree/index.d.ts +10 -8
  1407. package/lib/simple-tree/index.d.ts.map +1 -1
  1408. package/lib/simple-tree/index.js +4 -4
  1409. package/lib/simple-tree/index.js.map +1 -1
  1410. package/lib/simple-tree/leafNodeSchema.d.ts +11 -0
  1411. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -0
  1412. package/lib/simple-tree/leafNodeSchema.js +48 -0
  1413. package/lib/simple-tree/leafNodeSchema.js.map +1 -0
  1414. package/lib/simple-tree/mapNode.d.ts +86 -0
  1415. package/lib/simple-tree/mapNode.d.ts.map +1 -0
  1416. package/lib/simple-tree/mapNode.js +198 -0
  1417. package/lib/simple-tree/mapNode.js.map +1 -0
  1418. package/lib/simple-tree/objectNode.d.ts +62 -0
  1419. package/lib/simple-tree/objectNode.d.ts.map +1 -0
  1420. package/lib/simple-tree/objectNode.js +236 -0
  1421. package/lib/simple-tree/objectNode.js.map +1 -0
  1422. package/lib/simple-tree/proxies.d.ts +21 -62
  1423. package/lib/simple-tree/proxies.d.ts.map +1 -1
  1424. package/lib/simple-tree/proxies.js +119 -667
  1425. package/lib/simple-tree/proxies.js.map +1 -1
  1426. package/lib/simple-tree/proxyBinding.d.ts +48 -0
  1427. package/lib/simple-tree/proxyBinding.d.ts.map +1 -0
  1428. package/lib/simple-tree/proxyBinding.js +124 -0
  1429. package/lib/simple-tree/proxyBinding.js.map +1 -0
  1430. package/lib/simple-tree/rawNode.d.ts +9 -50
  1431. package/lib/simple-tree/rawNode.d.ts.map +1 -1
  1432. package/lib/simple-tree/rawNode.js +12 -85
  1433. package/lib/simple-tree/rawNode.js.map +1 -1
  1434. package/lib/simple-tree/schemaCaching.d.ts +26 -0
  1435. package/lib/simple-tree/schemaCaching.d.ts.map +1 -0
  1436. package/lib/simple-tree/schemaCaching.js +61 -0
  1437. package/lib/simple-tree/schemaCaching.js.map +1 -0
  1438. package/lib/simple-tree/schemaCreationUtilities.d.ts +2 -1
  1439. package/lib/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
  1440. package/lib/simple-tree/schemaCreationUtilities.js +1 -1
  1441. package/lib/simple-tree/schemaCreationUtilities.js.map +1 -1
  1442. package/lib/simple-tree/schemaFactory.d.ts +92 -43
  1443. package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
  1444. package/lib/simple-tree/schemaFactory.js +105 -157
  1445. package/lib/simple-tree/schemaFactory.js.map +1 -1
  1446. package/lib/simple-tree/schemaFactoryRecursive.d.ts +27 -83
  1447. package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  1448. package/lib/simple-tree/schemaFactoryRecursive.js +1 -114
  1449. package/lib/simple-tree/schemaFactoryRecursive.js.map +1 -1
  1450. package/lib/simple-tree/schemaTypes.d.ts +123 -70
  1451. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  1452. package/lib/simple-tree/schemaTypes.js +81 -4
  1453. package/lib/simple-tree/schemaTypes.js.map +1 -1
  1454. package/lib/simple-tree/testRecursiveDomain.d.ts +8 -8
  1455. package/lib/simple-tree/testRecursiveDomain.d.ts.map +1 -1
  1456. package/lib/simple-tree/testRecursiveDomain.js +2 -2
  1457. package/lib/simple-tree/testRecursiveDomain.js.map +1 -1
  1458. package/lib/simple-tree/toFlexSchema.d.ts +8 -20
  1459. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  1460. package/lib/simple-tree/toFlexSchema.js +22 -27
  1461. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  1462. package/lib/simple-tree/toMapTree.d.ts +12 -22
  1463. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  1464. package/lib/simple-tree/toMapTree.js +183 -133
  1465. package/lib/simple-tree/toMapTree.js.map +1 -1
  1466. package/lib/simple-tree/tree.d.ts +20 -3
  1467. package/lib/simple-tree/tree.d.ts.map +1 -1
  1468. package/lib/simple-tree/tree.js.map +1 -1
  1469. package/lib/simple-tree/treeApi.d.ts +82 -5
  1470. package/lib/simple-tree/treeApi.d.ts.map +1 -1
  1471. package/lib/simple-tree/treeApi.js +90 -12
  1472. package/lib/simple-tree/treeApi.js.map +1 -1
  1473. package/lib/simple-tree/types.d.ts +1 -142
  1474. package/lib/simple-tree/types.d.ts.map +1 -1
  1475. package/lib/simple-tree/types.js.map +1 -1
  1476. package/lib/simple-tree/typesUnsafe.d.ts +32 -17
  1477. package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
  1478. package/lib/simple-tree/typesUnsafe.js.map +1 -1
  1479. package/lib/treeFactory.d.ts +31 -14
  1480. package/lib/treeFactory.d.ts.map +1 -1
  1481. package/lib/treeFactory.js +48 -22
  1482. package/lib/treeFactory.js.map +1 -1
  1483. package/lib/util/brand.d.ts +26 -114
  1484. package/lib/util/brand.d.ts.map +1 -1
  1485. package/lib/util/brand.js +23 -83
  1486. package/lib/util/brand.js.map +1 -1
  1487. package/lib/util/idAllocator.d.ts.map +1 -1
  1488. package/lib/util/idAllocator.js +1 -1
  1489. package/lib/util/idAllocator.js.map +1 -1
  1490. package/lib/util/index.d.ts +5 -3
  1491. package/lib/util/index.d.ts.map +1 -1
  1492. package/lib/util/index.js +3 -1
  1493. package/lib/util/index.js.map +1 -1
  1494. package/lib/util/nestedSet.d.ts.map +1 -1
  1495. package/lib/util/nestedSet.js.map +1 -1
  1496. package/lib/util/opaque.d.ts +46 -0
  1497. package/lib/util/opaque.d.ts.map +1 -0
  1498. package/lib/util/opaque.js +24 -0
  1499. package/lib/util/opaque.js.map +1 -0
  1500. package/lib/util/referenceCounting.d.ts +1 -1
  1501. package/lib/util/referenceCounting.d.ts.map +1 -1
  1502. package/lib/util/referenceCounting.js +2 -2
  1503. package/lib/util/referenceCounting.js.map +1 -1
  1504. package/lib/util/typeCheckTests.d.ts +1 -1
  1505. package/lib/util/typeCheckTests.d.ts.map +1 -1
  1506. package/lib/util/typeCheckTests.js.map +1 -1
  1507. package/lib/util/typeUtils.d.ts +13 -0
  1508. package/lib/util/typeUtils.d.ts.map +1 -1
  1509. package/lib/util/typeUtils.js.map +1 -1
  1510. package/lib/util/typeboxBrand.d.ts +17 -0
  1511. package/lib/util/typeboxBrand.d.ts.map +1 -0
  1512. package/lib/util/typeboxBrand.js +27 -0
  1513. package/lib/util/typeboxBrand.js.map +1 -0
  1514. package/lib/util/utils.d.ts +2 -15
  1515. package/lib/util/utils.d.ts.map +1 -1
  1516. package/lib/util/utils.js +3 -3
  1517. package/lib/util/utils.js.map +1 -1
  1518. package/package.json +55 -50
  1519. package/src/codec/codec.ts +15 -7
  1520. package/src/codec/discriminatedUnions.ts +3 -1
  1521. package/src/codec/index.ts +8 -1
  1522. package/src/codec/noopValidator.ts +1 -0
  1523. package/src/codec/versioned/codec.ts +55 -25
  1524. package/src/codec/versioned/index.ts +5 -1
  1525. package/src/core/README.md +1 -5
  1526. package/src/core/change-family/changeFamily.ts +3 -2
  1527. package/src/core/forest/editableForest.ts +7 -5
  1528. package/src/core/forest/forest.ts +11 -4
  1529. package/src/core/index.ts +10 -8
  1530. package/src/core/rebase/changeRebaser.ts +1 -0
  1531. package/src/core/rebase/index.ts +4 -0
  1532. package/src/core/rebase/revisionTagCodec.ts +3 -1
  1533. package/src/core/rebase/types.ts +46 -1
  1534. package/src/core/rebase/utils.ts +9 -6
  1535. package/src/core/revertible/index.ts +1 -1
  1536. package/src/core/revertible/revertible.ts +17 -50
  1537. package/src/core/schema-stored/format.ts +1 -0
  1538. package/src/core/schema-stored/index.ts +5 -2
  1539. package/src/{feature-libraries → core/schema-stored}/multiplicity.ts +1 -0
  1540. package/src/core/schema-stored/schema.ts +51 -23
  1541. package/src/core/schema-stored/storedSchemaRepository.ts +4 -2
  1542. package/src/core/tree/anchorSet.ts +52 -63
  1543. package/src/core/tree/cursor.ts +3 -1
  1544. package/src/core/tree/delta.ts +1 -0
  1545. package/src/core/tree/deltaUtil.ts +2 -1
  1546. package/src/core/tree/detachedFieldIndex.ts +6 -4
  1547. package/src/core/tree/detachedFieldIndexCodec.ts +4 -2
  1548. package/src/core/tree/detachedFieldIndexFormat.ts +2 -0
  1549. package/src/core/tree/detachedFieldIndexTypes.ts +1 -0
  1550. package/src/core/tree/mapTree.ts +1 -0
  1551. package/src/core/tree/pathTree.ts +1 -0
  1552. package/src/core/tree/persistedTreeTextFormat.ts +1 -0
  1553. package/src/core/tree/sparseTree.ts +4 -2
  1554. package/src/core/tree/treeTextFormat.ts +1 -0
  1555. package/src/core/tree/types.ts +2 -1
  1556. package/src/core/tree/visitDelta.ts +65 -18
  1557. package/src/core/tree/visitPath.ts +2 -1
  1558. package/src/core/tree/visitorUtils.ts +7 -5
  1559. package/src/domains/json/jsonCursor.ts +6 -4
  1560. package/src/domains/json/jsonDomainSchema.ts +1 -2
  1561. package/src/domains/leafDomain.ts +1 -1
  1562. package/src/domains/nodeKey/nodeKeySchema.ts +5 -4
  1563. package/src/domains/schemaBuilder.ts +25 -214
  1564. package/src/domains/testRecursiveDomain.ts +2 -25
  1565. package/src/events/events.ts +2 -1
  1566. package/src/external-utilities/typeboxValidator.ts +2 -1
  1567. package/src/feature-libraries/README.md +4 -4
  1568. package/src/feature-libraries/changeAtomIdCodec.ts +4 -4
  1569. package/src/feature-libraries/chunked-forest/basicChunk.ts +12 -10
  1570. package/src/feature-libraries/chunked-forest/chunk.ts +3 -2
  1571. package/src/feature-libraries/chunked-forest/chunkTree.ts +17 -15
  1572. package/src/feature-libraries/chunked-forest/chunkedForest.ts +20 -17
  1573. package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +4 -3
  1574. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +16 -14
  1575. package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +5 -3
  1576. package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +2 -1
  1577. package/src/feature-libraries/chunked-forest/codec/codecs.ts +9 -12
  1578. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +11 -9
  1579. package/src/feature-libraries/chunked-forest/codec/format.ts +4 -3
  1580. package/src/feature-libraries/chunked-forest/codec/index.ts +1 -6
  1581. package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +8 -6
  1582. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncoding.ts +13 -11
  1583. package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +2 -1
  1584. package/src/feature-libraries/chunked-forest/emptyChunk.ts +5 -4
  1585. package/src/feature-libraries/chunked-forest/index.ts +0 -1
  1586. package/src/feature-libraries/chunked-forest/sequenceChunk.ts +3 -2
  1587. package/src/feature-libraries/chunked-forest/uniformChunk.ts +11 -9
  1588. package/src/feature-libraries/contextuallyTyped.ts +23 -36
  1589. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +36 -57
  1590. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +78 -25
  1591. package/src/feature-libraries/default-schema/defaultSchema.ts +1 -0
  1592. package/src/feature-libraries/default-schema/index.ts +2 -0
  1593. package/src/feature-libraries/default-schema/noChangeCodecs.ts +12 -0
  1594. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +4 -3
  1595. package/src/feature-libraries/editableTreeBinder.ts +3 -1
  1596. package/src/feature-libraries/fieldGenerator.ts +2 -1
  1597. package/src/feature-libraries/flex-tree/README.md +2 -2
  1598. package/src/feature-libraries/flex-tree/context.ts +34 -8
  1599. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +63 -45
  1600. package/src/feature-libraries/flex-tree/index.ts +3 -3
  1601. package/src/feature-libraries/flex-tree/lazyEntity.ts +13 -23
  1602. package/src/feature-libraries/flex-tree/lazyField.ts +95 -47
  1603. package/src/feature-libraries/flex-tree/lazyNode.ts +65 -131
  1604. package/src/feature-libraries/flex-tree/nodeKeys.ts +1 -0
  1605. package/src/feature-libraries/flex-tree/treeEvents.ts +7 -73
  1606. package/src/feature-libraries/flex-tree/unboxed.ts +3 -2
  1607. package/src/feature-libraries/flex-tree/utilities.ts +1 -0
  1608. package/src/feature-libraries/forest-summary/codec.ts +3 -1
  1609. package/src/feature-libraries/forest-summary/forestSummarizer.ts +13 -11
  1610. package/src/feature-libraries/forest-summary/format.ts +2 -1
  1611. package/src/feature-libraries/index.ts +13 -12
  1612. package/src/feature-libraries/mapTreeCursor.ts +8 -6
  1613. package/src/feature-libraries/memoizedIdRangeAllocator.ts +3 -3
  1614. package/src/feature-libraries/modular-schema/comparison.ts +11 -9
  1615. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +29 -28
  1616. package/src/feature-libraries/modular-schema/fieldKind.ts +8 -4
  1617. package/src/feature-libraries/modular-schema/fieldKindConfiguration.ts +24 -0
  1618. package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +7 -5
  1619. package/src/feature-libraries/modular-schema/genericFieldKind.ts +12 -20
  1620. package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +18 -31
  1621. package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +2 -2
  1622. package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +4 -4
  1623. package/src/feature-libraries/modular-schema/index.ts +5 -2
  1624. package/src/feature-libraries/modular-schema/isNeverTree.ts +12 -12
  1625. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +151 -56
  1626. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +460 -251
  1627. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +4 -22
  1628. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +7 -3
  1629. package/src/feature-libraries/node-key/nodeKey.ts +2 -1
  1630. package/src/feature-libraries/node-key/nodeKeyIndex.ts +5 -3
  1631. package/src/feature-libraries/node-key/nodeKeyManager.ts +6 -4
  1632. package/src/feature-libraries/object-forest/objectForest.ts +25 -23
  1633. package/src/feature-libraries/optional-field/index.ts +1 -1
  1634. package/src/feature-libraries/optional-field/optionalField.ts +38 -44
  1635. package/src/feature-libraries/optional-field/{optionalFieldChangeFormat.ts → optionalFieldChangeFormatV1.ts} +10 -1
  1636. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV2.ts +60 -0
  1637. package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +4 -7
  1638. package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +204 -0
  1639. package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +135 -0
  1640. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +11 -207
  1641. package/src/feature-libraries/schema-aware/README.md +1 -1
  1642. package/src/feature-libraries/schema-aware/schemaAware.ts +13 -9
  1643. package/src/feature-libraries/schema-edits/index.ts +1 -1
  1644. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +23 -3
  1645. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +1 -0
  1646. package/src/feature-libraries/schema-edits/schemaChangeTypes.ts +6 -0
  1647. package/src/feature-libraries/schema-index/codec.ts +8 -7
  1648. package/src/feature-libraries/schema-index/format.ts +1 -0
  1649. package/src/feature-libraries/schema-index/schemaSummarizer.ts +10 -8
  1650. package/src/feature-libraries/schemaBuilder.ts +2 -1
  1651. package/src/feature-libraries/schemaBuilderBase.ts +16 -14
  1652. package/src/feature-libraries/sequence-field/compose.ts +283 -176
  1653. package/src/feature-libraries/sequence-field/format.ts +2 -1
  1654. package/src/feature-libraries/sequence-field/helperTypes.ts +5 -5
  1655. package/src/feature-libraries/sequence-field/index.ts +4 -5
  1656. package/src/feature-libraries/sequence-field/invert.ts +49 -82
  1657. package/src/feature-libraries/sequence-field/markListFactory.ts +4 -4
  1658. package/src/feature-libraries/sequence-field/markQueue.ts +12 -10
  1659. package/src/feature-libraries/sequence-field/moveEffectTable.ts +61 -31
  1660. package/src/feature-libraries/sequence-field/prune.ts +4 -8
  1661. package/src/feature-libraries/sequence-field/rebase.ts +128 -141
  1662. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +9 -10
  1663. package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +3 -2
  1664. package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +3 -2
  1665. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +31 -38
  1666. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +38 -59
  1667. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +15 -15
  1668. package/src/feature-libraries/sequence-field/types.ts +7 -9
  1669. package/src/feature-libraries/sequence-field/utils.ts +95 -76
  1670. package/src/feature-libraries/storedToViewSchema.ts +13 -12
  1671. package/src/feature-libraries/treeCursorUtils.ts +9 -8
  1672. package/src/feature-libraries/treeTextCursor.ts +12 -10
  1673. package/src/feature-libraries/typed-schema/flexList.ts +1 -3
  1674. package/src/feature-libraries/typed-schema/index.ts +0 -2
  1675. package/src/feature-libraries/typed-schema/schemaCollection.ts +11 -10
  1676. package/src/feature-libraries/typed-schema/typeUtils.ts +0 -6
  1677. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +32 -18
  1678. package/src/feature-libraries/typed-schema/view.ts +6 -5
  1679. package/src/feature-libraries/valueUtilities.ts +11 -9
  1680. package/src/index.ts +34 -26
  1681. package/src/packageVersion.ts +1 -1
  1682. package/src/shared-tree/index.ts +9 -1
  1683. package/src/shared-tree/schematizeTree.ts +12 -10
  1684. package/src/shared-tree/schematizingTreeView.ts +47 -28
  1685. package/src/shared-tree/sharedTree.ts +131 -44
  1686. package/src/shared-tree/sharedTreeChangeCodecs.ts +79 -62
  1687. package/src/shared-tree/sharedTreeChangeFamily.ts +13 -7
  1688. package/src/shared-tree/sharedTreeChangeFormat.ts +4 -3
  1689. package/src/shared-tree/sharedTreeEditBuilder.ts +5 -1
  1690. package/src/shared-tree/treeApi.ts +141 -10
  1691. package/src/shared-tree/treeCheckout.ts +203 -60
  1692. package/src/shared-tree/treeView.ts +5 -4
  1693. package/src/shared-tree-core/branch.ts +20 -204
  1694. package/src/shared-tree-core/editManager.ts +20 -78
  1695. package/src/shared-tree-core/editManagerCodecs.ts +111 -63
  1696. package/src/shared-tree-core/editManagerFormat.ts +7 -8
  1697. package/src/shared-tree-core/editManagerSummarizer.ts +14 -36
  1698. package/src/shared-tree-core/index.ts +2 -0
  1699. package/src/shared-tree-core/messageCodecs.ts +62 -5
  1700. package/src/shared-tree-core/messageFormat.ts +12 -2
  1701. package/src/shared-tree-core/messageTypes.ts +1 -0
  1702. package/src/shared-tree-core/sequenceIdUtils.ts +1 -0
  1703. package/src/shared-tree-core/sharedTreeCore.ts +40 -22
  1704. package/src/simple-tree/ProxyBinding.md +102 -0
  1705. package/src/simple-tree/README.md +0 -6
  1706. package/src/simple-tree/arrayNode.ts +769 -0
  1707. package/src/simple-tree/index.ts +16 -9
  1708. package/src/simple-tree/leafNodeSchema.ts +72 -0
  1709. package/src/simple-tree/mapNode.ts +343 -0
  1710. package/src/simple-tree/objectNode.ts +411 -0
  1711. package/src/simple-tree/proxies.ts +197 -932
  1712. package/src/simple-tree/proxyBinding.ts +182 -0
  1713. package/src/simple-tree/rawNode.ts +19 -135
  1714. package/src/simple-tree/schemaCaching.ts +90 -0
  1715. package/src/simple-tree/schemaCreationUtilities.ts +6 -9
  1716. package/src/simple-tree/schemaFactory.ts +247 -261
  1717. package/src/simple-tree/schemaFactoryRecursive.ts +32 -185
  1718. package/src/simple-tree/schemaTypes.ts +149 -81
  1719. package/src/simple-tree/testRecursiveDomain.ts +3 -3
  1720. package/src/simple-tree/toFlexSchema.ts +39 -47
  1721. package/src/simple-tree/toMapTree.ts +236 -196
  1722. package/src/simple-tree/tree.ts +24 -3
  1723. package/src/simple-tree/treeApi.ts +209 -24
  1724. package/src/simple-tree/types.ts +1 -173
  1725. package/src/simple-tree/typesUnsafe.ts +42 -21
  1726. package/src/treeFactory.ts +51 -26
  1727. package/src/util/brand.ts +36 -168
  1728. package/src/util/idAllocator.ts +2 -1
  1729. package/src/util/index.ts +4 -18
  1730. package/src/util/nestedSet.ts +1 -1
  1731. package/src/util/opaque.ts +68 -0
  1732. package/src/util/referenceCounting.ts +3 -3
  1733. package/src/util/typeCheckTests.ts +7 -7
  1734. package/src/util/typeUtils.ts +14 -0
  1735. package/src/util/typeboxBrand.ts +31 -0
  1736. package/src/util/utils.ts +3 -17
  1737. package/tsconfig.json +1 -1
  1738. package/api-extractor-cjs.json +0 -18
  1739. package/api-extractor-esm.json +0 -14
  1740. package/dist/feature-libraries/multiplicity.d.ts.map +0 -1
  1741. package/dist/feature-libraries/multiplicity.js.map +0 -1
  1742. package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +0 -1
  1743. package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +0 -1
  1744. package/dist/simple-tree/flexNode.d.ts +0 -35
  1745. package/dist/simple-tree/flexNode.d.ts.map +0 -1
  1746. package/dist/simple-tree/flexNode.js +0 -62
  1747. package/dist/simple-tree/flexNode.js.map +0 -1
  1748. package/dist/simple-tree/treeArrayNode.d.ts +0 -46
  1749. package/dist/simple-tree/treeArrayNode.d.ts.map +0 -1
  1750. package/dist/simple-tree/treeArrayNode.js +0 -50
  1751. package/dist/simple-tree/treeArrayNode.js.map +0 -1
  1752. package/dist/tree-alpha.d.ts +0 -2159
  1753. package/dist/tree-beta.d.ts +0 -2159
  1754. package/dist/tree-public.d.ts +0 -1942
  1755. package/dist/tree-untrimmed.d.ts +0 -6880
  1756. package/lib/feature-libraries/multiplicity.d.ts.map +0 -1
  1757. package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +0 -1
  1758. package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +0 -1
  1759. package/lib/simple-tree/flexNode.d.ts +0 -35
  1760. package/lib/simple-tree/flexNode.d.ts.map +0 -1
  1761. package/lib/simple-tree/flexNode.js +0 -55
  1762. package/lib/simple-tree/flexNode.js.map +0 -1
  1763. package/lib/simple-tree/treeArrayNode.d.ts +0 -46
  1764. package/lib/simple-tree/treeArrayNode.d.ts.map +0 -1
  1765. package/lib/simple-tree/treeArrayNode.js +0 -46
  1766. package/lib/simple-tree/treeArrayNode.js.map +0 -1
  1767. package/lib/test/codec/ajvValidator.cjs +0 -70
  1768. package/lib/test/codec/ajvValidator.cjs.map +0 -1
  1769. package/lib/test/codec/ajvValidator.d.cts +0 -13
  1770. package/lib/test/codec/ajvValidator.d.cts.map +0 -1
  1771. package/lib/test/codec/codec.spec.d.ts.map +0 -1
  1772. package/lib/test/codec/codec.spec.js +0 -36
  1773. package/lib/test/codec/codec.spec.js.map +0 -1
  1774. package/lib/test/codec/index.d.ts +0 -7
  1775. package/lib/test/codec/index.d.ts.map +0 -1
  1776. package/lib/test/codec/index.js +0 -7
  1777. package/lib/test/codec/index.js.map +0 -1
  1778. package/lib/test/codec/utils.d.ts +0 -58
  1779. package/lib/test/codec/utils.d.ts.map +0 -1
  1780. package/lib/test/codec/utils.js +0 -61
  1781. package/lib/test/codec/utils.js.map +0 -1
  1782. package/lib/test/cursorTestSuite.d.ts +0 -106
  1783. package/lib/test/cursorTestSuite.d.ts.map +0 -1
  1784. package/lib/test/cursorTestSuite.js +0 -680
  1785. package/lib/test/cursorTestSuite.js.map +0 -1
  1786. package/lib/test/domains/json/benchmarks.d.ts +0 -17
  1787. package/lib/test/domains/json/benchmarks.d.ts.map +0 -1
  1788. package/lib/test/domains/json/benchmarks.js +0 -61
  1789. package/lib/test/domains/json/benchmarks.js.map +0 -1
  1790. package/lib/test/domains/json/canada.d.ts +0 -33
  1791. package/lib/test/domains/json/canada.d.ts.map +0 -1
  1792. package/lib/test/domains/json/canada.js +0 -81
  1793. package/lib/test/domains/json/canada.js.map +0 -1
  1794. package/lib/test/domains/json/citm.d.ts +0 -81
  1795. package/lib/test/domains/json/citm.d.ts.map +0 -1
  1796. package/lib/test/domains/json/citm.js +0 -515
  1797. package/lib/test/domains/json/citm.js.map +0 -1
  1798. package/lib/test/domains/json/jsDirectObject.bench.d.ts +0 -13
  1799. package/lib/test/domains/json/jsDirectObject.bench.d.ts.map +0 -1
  1800. package/lib/test/domains/json/jsDirectObject.bench.js +0 -74
  1801. package/lib/test/domains/json/jsDirectObject.bench.js.map +0 -1
  1802. package/lib/test/domains/json/jsObjectUtil.d.ts +0 -12
  1803. package/lib/test/domains/json/jsObjectUtil.d.ts.map +0 -1
  1804. package/lib/test/domains/json/jsObjectUtil.js +0 -36
  1805. package/lib/test/domains/json/jsObjectUtil.js.map +0 -1
  1806. package/lib/test/domains/json/jsonCursor.bench.d.ts +0 -11
  1807. package/lib/test/domains/json/jsonCursor.bench.d.ts.map +0 -1
  1808. package/lib/test/domains/json/jsonCursor.bench.js +0 -220
  1809. package/lib/test/domains/json/jsonCursor.bench.js.map +0 -1
  1810. package/lib/test/domains/json/jsonCursor.spec.d.ts +0 -6
  1811. package/lib/test/domains/json/jsonCursor.spec.d.ts.map +0 -1
  1812. package/lib/test/domains/json/jsonCursor.spec.js +0 -75
  1813. package/lib/test/domains/json/jsonCursor.spec.js.map +0 -1
  1814. package/lib/test/domains/json/jsonGeneratorUtils.d.ts +0 -9
  1815. package/lib/test/domains/json/jsonGeneratorUtils.d.ts.map +0 -1
  1816. package/lib/test/domains/json/jsonGeneratorUtils.js +0 -36
  1817. package/lib/test/domains/json/jsonGeneratorUtils.js.map +0 -1
  1818. package/lib/test/domains/json/twitter.d.ts +0 -204
  1819. package/lib/test/domains/json/twitter.d.ts.map +0 -1
  1820. package/lib/test/domains/json/twitter.js +0 -7413
  1821. package/lib/test/domains/json/twitter.js.map +0 -1
  1822. package/lib/test/domains/schemaBuilder.spec.d.ts +0 -6
  1823. package/lib/test/domains/schemaBuilder.spec.d.ts.map +0 -1
  1824. package/lib/test/domains/schemaBuilder.spec.js +0 -148
  1825. package/lib/test/domains/schemaBuilder.spec.js.map +0 -1
  1826. package/lib/test/editMinter.d.ts +0 -8
  1827. package/lib/test/editMinter.d.ts.map +0 -1
  1828. package/lib/test/editMinter.js +0 -21
  1829. package/lib/test/editMinter.js.map +0 -1
  1830. package/lib/test/events/eventEmitter.spec.d.ts +0 -6
  1831. package/lib/test/events/eventEmitter.spec.d.ts.map +0 -1
  1832. package/lib/test/events/eventEmitter.spec.js +0 -159
  1833. package/lib/test/events/eventEmitter.spec.js.map +0 -1
  1834. package/lib/test/exhaustiveRebaserUtils.d.ts +0 -78
  1835. package/lib/test/exhaustiveRebaserUtils.d.ts.map +0 -1
  1836. package/lib/test/exhaustiveRebaserUtils.js +0 -53
  1837. package/lib/test/exhaustiveRebaserUtils.js.map +0 -1
  1838. package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.d.ts +0 -6
  1839. package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.d.ts.map +0 -1
  1840. package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.js +0 -161
  1841. package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.js.map +0 -1
  1842. package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.d.ts +0 -2
  1843. package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.d.ts.map +0 -1
  1844. package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.js +0 -102
  1845. package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.js.map +0 -1
  1846. package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.d.ts +0 -6
  1847. package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.d.ts.map +0 -1
  1848. package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.js +0 -259
  1849. package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.js.map +0 -1
  1850. package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.d.ts +0 -6
  1851. package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.d.ts.map +0 -1
  1852. package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.js +0 -47
  1853. package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.js.map +0 -1
  1854. package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.d.ts +0 -9
  1855. package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.d.ts.map +0 -1
  1856. package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.js +0 -124
  1857. package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.js.map +0 -1
  1858. package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.d.ts +0 -6
  1859. package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.d.ts.map +0 -1
  1860. package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.js +0 -187
  1861. package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.js.map +0 -1
  1862. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.d.ts +0 -6
  1863. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.d.ts.map +0 -1
  1864. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.js +0 -308
  1865. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.js.map +0 -1
  1866. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.d.ts +0 -6
  1867. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.d.ts.map +0 -1
  1868. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.js +0 -123
  1869. package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.js.map +0 -1
  1870. package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.d.ts +0 -7
  1871. package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.d.ts.map +0 -1
  1872. package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.js +0 -135
  1873. package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.js.map +0 -1
  1874. package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.d.ts +0 -11
  1875. package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.d.ts.map +0 -1
  1876. package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.js +0 -211
  1877. package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.js.map +0 -1
  1878. package/lib/test/feature-libraries/chunked-forest/codec/format.spec.d.ts +0 -6
  1879. package/lib/test/feature-libraries/chunked-forest/codec/format.spec.d.ts.map +0 -1
  1880. package/lib/test/feature-libraries/chunked-forest/codec/format.spec.js +0 -15
  1881. package/lib/test/feature-libraries/chunked-forest/codec/format.spec.js.map +0 -1
  1882. package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.d.ts +0 -6
  1883. package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.d.ts.map +0 -1
  1884. package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.js +0 -98
  1885. package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.js.map +0 -1
  1886. package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.d.ts +0 -6
  1887. package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.d.ts.map +0 -1
  1888. package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.js +0 -176
  1889. package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.js.map +0 -1
  1890. package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.d.ts +0 -6
  1891. package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.d.ts.map +0 -1
  1892. package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.js +0 -29
  1893. package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.js.map +0 -1
  1894. package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.d.ts +0 -12
  1895. package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.d.ts.map +0 -1
  1896. package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.js +0 -38
  1897. package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.js.map +0 -1
  1898. package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.d.ts +0 -6
  1899. package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.d.ts.map +0 -1
  1900. package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.js +0 -138
  1901. package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.js.map +0 -1
  1902. package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.d.ts +0 -34
  1903. package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.d.ts.map +0 -1
  1904. package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.js +0 -114
  1905. package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.js.map +0 -1
  1906. package/lib/test/feature-libraries/contextuallyTyped.spec.d.ts +0 -6
  1907. package/lib/test/feature-libraries/contextuallyTyped.spec.d.ts.map +0 -1
  1908. package/lib/test/feature-libraries/contextuallyTyped.spec.js +0 -107
  1909. package/lib/test/feature-libraries/contextuallyTyped.spec.js.map +0 -1
  1910. package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.d.ts +0 -6
  1911. package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.d.ts.map +0 -1
  1912. package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.js +0 -850
  1913. package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.js.map +0 -1
  1914. package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.d.ts +0 -6
  1915. package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.d.ts.map +0 -1
  1916. package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.js +0 -110
  1917. package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.js.map +0 -1
  1918. package/lib/test/feature-libraries/deltaUtils.spec.d.ts +0 -6
  1919. package/lib/test/feature-libraries/deltaUtils.spec.d.ts.map +0 -1
  1920. package/lib/test/feature-libraries/deltaUtils.spec.js +0 -87
  1921. package/lib/test/feature-libraries/deltaUtils.spec.js.map +0 -1
  1922. package/lib/test/feature-libraries/fieldKindTestUtils.d.ts +0 -20
  1923. package/lib/test/feature-libraries/fieldKindTestUtils.d.ts.map +0 -1
  1924. package/lib/test/feature-libraries/fieldKindTestUtils.js +0 -42
  1925. package/lib/test/feature-libraries/fieldKindTestUtils.js.map +0 -1
  1926. package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.d.ts +0 -6
  1927. package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.d.ts.map +0 -1
  1928. package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.js +0 -91
  1929. package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.js.map +0 -1
  1930. package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.d.ts +0 -6
  1931. package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.d.ts.map +0 -1
  1932. package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.js +0 -225
  1933. package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.js.map +0 -1
  1934. package/lib/test/feature-libraries/flex-tree/events.spec.d.ts +0 -2
  1935. package/lib/test/feature-libraries/flex-tree/events.spec.d.ts.map +0 -1
  1936. package/lib/test/feature-libraries/flex-tree/events.spec.js +0 -605
  1937. package/lib/test/feature-libraries/flex-tree/events.spec.js.map +0 -1
  1938. package/lib/test/feature-libraries/flex-tree/lazyField.spec.d.ts +0 -6
  1939. package/lib/test/feature-libraries/flex-tree/lazyField.spec.d.ts.map +0 -1
  1940. package/lib/test/feature-libraries/flex-tree/lazyField.spec.js +0 -326
  1941. package/lib/test/feature-libraries/flex-tree/lazyField.spec.js.map +0 -1
  1942. package/lib/test/feature-libraries/flex-tree/lazyNode.spec.d.ts +0 -6
  1943. package/lib/test/feature-libraries/flex-tree/lazyNode.spec.d.ts.map +0 -1
  1944. package/lib/test/feature-libraries/flex-tree/lazyNode.spec.js +0 -381
  1945. package/lib/test/feature-libraries/flex-tree/lazyNode.spec.js.map +0 -1
  1946. package/lib/test/feature-libraries/flex-tree/navigation.spec.d.ts +0 -6
  1947. package/lib/test/feature-libraries/flex-tree/navigation.spec.d.ts.map +0 -1
  1948. package/lib/test/feature-libraries/flex-tree/navigation.spec.js +0 -50
  1949. package/lib/test/feature-libraries/flex-tree/navigation.spec.js.map +0 -1
  1950. package/lib/test/feature-libraries/flex-tree/unboxed.spec.d.ts +0 -6
  1951. package/lib/test/feature-libraries/flex-tree/unboxed.spec.d.ts.map +0 -1
  1952. package/lib/test/feature-libraries/flex-tree/unboxed.spec.js +0 -197
  1953. package/lib/test/feature-libraries/flex-tree/unboxed.spec.js.map +0 -1
  1954. package/lib/test/feature-libraries/flex-tree/utilities.spec.d.ts +0 -6
  1955. package/lib/test/feature-libraries/flex-tree/utilities.spec.d.ts.map +0 -1
  1956. package/lib/test/feature-libraries/flex-tree/utilities.spec.js +0 -109
  1957. package/lib/test/feature-libraries/flex-tree/utilities.spec.js.map +0 -1
  1958. package/lib/test/feature-libraries/flex-tree/utils.d.ts +0 -32
  1959. package/lib/test/feature-libraries/flex-tree/utils.d.ts.map +0 -1
  1960. package/lib/test/feature-libraries/flex-tree/utils.js +0 -50
  1961. package/lib/test/feature-libraries/flex-tree/utils.js.map +0 -1
  1962. package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.d.ts +0 -6
  1963. package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.d.ts.map +0 -1
  1964. package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.js +0 -115
  1965. package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.js.map +0 -1
  1966. package/lib/test/feature-libraries/mapTreeCursor.spec.d.ts +0 -6
  1967. package/lib/test/feature-libraries/mapTreeCursor.spec.d.ts.map +0 -1
  1968. package/lib/test/feature-libraries/mapTreeCursor.spec.js +0 -8
  1969. package/lib/test/feature-libraries/mapTreeCursor.spec.js.map +0 -1
  1970. package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.d.ts +0 -6
  1971. package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.d.ts.map +0 -1
  1972. package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.js +0 -80
  1973. package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.js.map +0 -1
  1974. package/lib/test/feature-libraries/mitigatedChangeFamily.spec.d.ts +0 -6
  1975. package/lib/test/feature-libraries/mitigatedChangeFamily.spec.d.ts.map +0 -1
  1976. package/lib/test/feature-libraries/mitigatedChangeFamily.spec.js +0 -96
  1977. package/lib/test/feature-libraries/mitigatedChangeFamily.spec.js.map +0 -1
  1978. package/lib/test/feature-libraries/modular-schema/basicRebasers.d.ts +0 -44
  1979. package/lib/test/feature-libraries/modular-schema/basicRebasers.d.ts.map +0 -1
  1980. package/lib/test/feature-libraries/modular-schema/basicRebasers.js +0 -77
  1981. package/lib/test/feature-libraries/modular-schema/basicRebasers.js.map +0 -1
  1982. package/lib/test/feature-libraries/modular-schema/comparison.spec.d.ts +0 -6
  1983. package/lib/test/feature-libraries/modular-schema/comparison.spec.d.ts.map +0 -1
  1984. package/lib/test/feature-libraries/modular-schema/comparison.spec.js +0 -264
  1985. package/lib/test/feature-libraries/modular-schema/comparison.spec.js.map +0 -1
  1986. package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.d.ts +0 -6
  1987. package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.d.ts.map +0 -1
  1988. package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.js +0 -345
  1989. package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.js.map +0 -1
  1990. package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.d.ts +0 -6
  1991. package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.d.ts.map +0 -1
  1992. package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.js +0 -49
  1993. package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.js.map +0 -1
  1994. package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.d.ts +0 -6
  1995. package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.d.ts.map +0 -1
  1996. package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.js +0 -126
  1997. package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.js.map +0 -1
  1998. package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.d.ts +0 -6
  1999. package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.d.ts.map +0 -1
  2000. package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.js +0 -1070
  2001. package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.js.map +0 -1
  2002. package/lib/test/feature-libraries/modular-schema/rangeMap.spec.d.ts +0 -6
  2003. package/lib/test/feature-libraries/modular-schema/rangeMap.spec.d.ts.map +0 -1
  2004. package/lib/test/feature-libraries/modular-schema/rangeMap.spec.js +0 -182
  2005. package/lib/test/feature-libraries/modular-schema/rangeMap.spec.js.map +0 -1
  2006. package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.d.ts +0 -6
  2007. package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.d.ts.map +0 -1
  2008. package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.js +0 -390
  2009. package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.js.map +0 -1
  2010. package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.d.ts +0 -6
  2011. package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.d.ts.map +0 -1
  2012. package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.js +0 -556
  2013. package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.js.map +0 -1
  2014. package/lib/test/feature-libraries/node-key/nodeKey.spec.d.ts +0 -6
  2015. package/lib/test/feature-libraries/node-key/nodeKey.spec.d.ts.map +0 -1
  2016. package/lib/test/feature-libraries/node-key/nodeKey.spec.js +0 -74
  2017. package/lib/test/feature-libraries/node-key/nodeKey.spec.js.map +0 -1
  2018. package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.d.ts +0 -6
  2019. package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.d.ts.map +0 -1
  2020. package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.js +0 -258
  2021. package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.js.map +0 -1
  2022. package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.d.ts +0 -6
  2023. package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.d.ts.map +0 -1
  2024. package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.js +0 -262
  2025. package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.js.map +0 -1
  2026. package/lib/test/feature-libraries/objectForest.spec.d.ts +0 -6
  2027. package/lib/test/feature-libraries/objectForest.spec.d.ts.map +0 -1
  2028. package/lib/test/feature-libraries/objectForest.spec.js +0 -62
  2029. package/lib/test/feature-libraries/objectForest.spec.js.map +0 -1
  2030. package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.d.ts +0 -6
  2031. package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.d.ts.map +0 -1
  2032. package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.js +0 -352
  2033. package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.js.map +0 -1
  2034. package/lib/test/feature-libraries/optional-field/optionalField.spec.d.ts +0 -6
  2035. package/lib/test/feature-libraries/optional-field/optionalField.spec.d.ts.map +0 -1
  2036. package/lib/test/feature-libraries/optional-field/optionalField.spec.js +0 -396
  2037. package/lib/test/feature-libraries/optional-field/optionalField.spec.js.map +0 -1
  2038. package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.d.ts +0 -6
  2039. package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.d.ts.map +0 -1
  2040. package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.js +0 -50
  2041. package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.js.map +0 -1
  2042. package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.d.ts +0 -6
  2043. package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.d.ts.map +0 -1
  2044. package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.js +0 -59
  2045. package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.js.map +0 -1
  2046. package/lib/test/feature-libraries/optional-field/optionalFieldUtils.d.ts +0 -62
  2047. package/lib/test/feature-libraries/optional-field/optionalFieldUtils.d.ts.map +0 -1
  2048. package/lib/test/feature-libraries/optional-field/optionalFieldUtils.js +0 -232
  2049. package/lib/test/feature-libraries/optional-field/optionalFieldUtils.js.map +0 -1
  2050. package/lib/test/feature-libraries/schema-aware/schemaAware.spec.d.ts +0 -6
  2051. package/lib/test/feature-libraries/schema-aware/schemaAware.spec.d.ts.map +0 -1
  2052. package/lib/test/feature-libraries/schema-aware/schemaAware.spec.js +0 -133
  2053. package/lib/test/feature-libraries/schema-aware/schemaAware.spec.js.map +0 -1
  2054. package/lib/test/feature-libraries/schema-aware/schemaComplex.d.ts +0 -16
  2055. package/lib/test/feature-libraries/schema-aware/schemaComplex.d.ts.map +0 -1
  2056. package/lib/test/feature-libraries/schema-aware/schemaComplex.js +0 -40
  2057. package/lib/test/feature-libraries/schema-aware/schemaComplex.js.map +0 -1
  2058. package/lib/test/feature-libraries/schema-aware/schemaSimple.d.ts +0 -13
  2059. package/lib/test/feature-libraries/schema-aware/schemaSimple.d.ts.map +0 -1
  2060. package/lib/test/feature-libraries/schema-aware/schemaSimple.js +0 -28
  2061. package/lib/test/feature-libraries/schema-aware/schemaSimple.js.map +0 -1
  2062. package/lib/test/feature-libraries/schema-index/codec.spec.d.ts +0 -6
  2063. package/lib/test/feature-libraries/schema-index/codec.spec.d.ts.map +0 -1
  2064. package/lib/test/feature-libraries/schema-index/codec.spec.js +0 -81
  2065. package/lib/test/feature-libraries/schema-index/codec.spec.js.map +0 -1
  2066. package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.d.ts +0 -6
  2067. package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.d.ts.map +0 -1
  2068. package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.js +0 -28
  2069. package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.js.map +0 -1
  2070. package/lib/test/feature-libraries/schemaBuilder.spec.d.ts +0 -6
  2071. package/lib/test/feature-libraries/schemaBuilder.spec.d.ts.map +0 -1
  2072. package/lib/test/feature-libraries/schemaBuilder.spec.js +0 -88
  2073. package/lib/test/feature-libraries/schemaBuilder.spec.js.map +0 -1
  2074. package/lib/test/feature-libraries/sequence-field/compose.test.d.ts +0 -6
  2075. package/lib/test/feature-libraries/sequence-field/compose.test.d.ts.map +0 -1
  2076. package/lib/test/feature-libraries/sequence-field/compose.test.js +0 -1431
  2077. package/lib/test/feature-libraries/sequence-field/compose.test.js.map +0 -1
  2078. package/lib/test/feature-libraries/sequence-field/invert.test.d.ts +0 -6
  2079. package/lib/test/feature-libraries/sequence-field/invert.test.d.ts.map +0 -1
  2080. package/lib/test/feature-libraries/sequence-field/invert.test.js +0 -418
  2081. package/lib/test/feature-libraries/sequence-field/invert.test.js.map +0 -1
  2082. package/lib/test/feature-libraries/sequence-field/markListFactory.test.d.ts +0 -6
  2083. package/lib/test/feature-libraries/sequence-field/markListFactory.test.d.ts.map +0 -1
  2084. package/lib/test/feature-libraries/sequence-field/markListFactory.test.js +0 -239
  2085. package/lib/test/feature-libraries/sequence-field/markListFactory.test.js.map +0 -1
  2086. package/lib/test/feature-libraries/sequence-field/populatedMarks.d.ts +0 -18
  2087. package/lib/test/feature-libraries/sequence-field/populatedMarks.d.ts.map +0 -1
  2088. package/lib/test/feature-libraries/sequence-field/populatedMarks.js +0 -95
  2089. package/lib/test/feature-libraries/sequence-field/populatedMarks.js.map +0 -1
  2090. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.d.ts +0 -12
  2091. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.d.ts.map +0 -1
  2092. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.js +0 -35
  2093. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.js.map +0 -1
  2094. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.d.ts +0 -6
  2095. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.d.ts.map +0 -1
  2096. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.js +0 -42
  2097. package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.js.map +0 -1
  2098. package/lib/test/feature-libraries/sequence-field/rebase.test.d.ts +0 -6
  2099. package/lib/test/feature-libraries/sequence-field/rebase.test.d.ts.map +0 -1
  2100. package/lib/test/feature-libraries/sequence-field/rebase.test.js +0 -1038
  2101. package/lib/test/feature-libraries/sequence-field/rebase.test.js.map +0 -1
  2102. package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.d.ts +0 -6
  2103. package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.d.ts.map +0 -1
  2104. package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.js +0 -211
  2105. package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.js.map +0 -1
  2106. package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.d.ts +0 -11
  2107. package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.d.ts.map +0 -1
  2108. package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.js +0 -784
  2109. package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.js.map +0 -1
  2110. package/lib/test/feature-libraries/sequence-field/sequenceField.spec.d.ts +0 -6
  2111. package/lib/test/feature-libraries/sequence-field/sequenceField.spec.d.ts.map +0 -1
  2112. package/lib/test/feature-libraries/sequence-field/sequenceField.spec.js +0 -36
  2113. package/lib/test/feature-libraries/sequence-field/sequenceField.spec.js.map +0 -1
  2114. package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.d.ts +0 -6
  2115. package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.d.ts.map +0 -1
  2116. package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.js +0 -34
  2117. package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.js.map +0 -1
  2118. package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.d.ts +0 -6
  2119. package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.d.ts.map +0 -1
  2120. package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.js +0 -38
  2121. package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.js.map +0 -1
  2122. package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.d.ts +0 -6
  2123. package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.d.ts.map +0 -1
  2124. package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.js +0 -34
  2125. package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.js.map +0 -1
  2126. package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.d.ts +0 -6
  2127. package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.d.ts.map +0 -1
  2128. package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.js +0 -417
  2129. package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.js.map +0 -1
  2130. package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.d.ts +0 -6
  2131. package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.d.ts.map +0 -1
  2132. package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.js +0 -40
  2133. package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.js.map +0 -1
  2134. package/lib/test/feature-libraries/sequence-field/testEdits.d.ts +0 -124
  2135. package/lib/test/feature-libraries/sequence-field/testEdits.d.ts.map +0 -1
  2136. package/lib/test/feature-libraries/sequence-field/testEdits.js +0 -270
  2137. package/lib/test/feature-libraries/sequence-field/testEdits.js.map +0 -1
  2138. package/lib/test/feature-libraries/sequence-field/utils.d.ts +0 -106
  2139. package/lib/test/feature-libraries/sequence-field/utils.d.ts.map +0 -1
  2140. package/lib/test/feature-libraries/sequence-field/utils.js +0 -535
  2141. package/lib/test/feature-libraries/sequence-field/utils.js.map +0 -1
  2142. package/lib/test/feature-libraries/storedToViewSchema.spec.d.ts +0 -6
  2143. package/lib/test/feature-libraries/storedToViewSchema.spec.d.ts.map +0 -1
  2144. package/lib/test/feature-libraries/storedToViewSchema.spec.js +0 -117
  2145. package/lib/test/feature-libraries/storedToViewSchema.spec.js.map +0 -1
  2146. package/lib/test/feature-libraries/treeCursorUtils.spec.d.ts +0 -6
  2147. package/lib/test/feature-libraries/treeCursorUtils.spec.d.ts.map +0 -1
  2148. package/lib/test/feature-libraries/treeCursorUtils.spec.js +0 -237
  2149. package/lib/test/feature-libraries/treeCursorUtils.spec.js.map +0 -1
  2150. package/lib/test/feature-libraries/treeTextCursor.spec.d.ts +0 -6
  2151. package/lib/test/feature-libraries/treeTextCursor.spec.d.ts.map +0 -1
  2152. package/lib/test/feature-libraries/treeTextCursor.spec.js +0 -8
  2153. package/lib/test/feature-libraries/treeTextCursor.spec.js.map +0 -1
  2154. package/lib/test/feature-libraries/typedSchema/example.spec.d.ts +0 -6
  2155. package/lib/test/feature-libraries/typedSchema/example.spec.d.ts.map +0 -1
  2156. package/lib/test/feature-libraries/typedSchema/example.spec.js +0 -20
  2157. package/lib/test/feature-libraries/typedSchema/example.spec.js.map +0 -1
  2158. package/lib/test/feature-libraries/typedSchema/flexList.spec.d.ts +0 -6
  2159. package/lib/test/feature-libraries/typedSchema/flexList.spec.d.ts.map +0 -1
  2160. package/lib/test/feature-libraries/typedSchema/flexList.spec.js +0 -52
  2161. package/lib/test/feature-libraries/typedSchema/flexList.spec.js.map +0 -1
  2162. package/lib/test/feature-libraries/typedSchema/typeUtils.spec.d.ts +0 -6
  2163. package/lib/test/feature-libraries/typedSchema/typeUtils.spec.d.ts.map +0 -1
  2164. package/lib/test/feature-libraries/typedSchema/typeUtils.spec.js +0 -10
  2165. package/lib/test/feature-libraries/typedSchema/typeUtils.spec.js.map +0 -1
  2166. package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.d.ts +0 -6
  2167. package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.d.ts.map +0 -1
  2168. package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.js +0 -83
  2169. package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.js.map +0 -1
  2170. package/lib/test/feature-libraries/valueUtilities.spec.d.ts +0 -6
  2171. package/lib/test/feature-libraries/valueUtilities.spec.d.ts.map +0 -1
  2172. package/lib/test/feature-libraries/valueUtilities.spec.js +0 -69
  2173. package/lib/test/feature-libraries/valueUtilities.spec.js.map +0 -1
  2174. package/lib/test/forestTestSuite.d.ts +0 -26
  2175. package/lib/test/forestTestSuite.d.ts.map +0 -1
  2176. package/lib/test/forestTestSuite.js +0 -793
  2177. package/lib/test/forestTestSuite.js.map +0 -1
  2178. package/lib/test/objMerge.d.ts +0 -24
  2179. package/lib/test/objMerge.d.ts.map +0 -1
  2180. package/lib/test/objMerge.js +0 -181
  2181. package/lib/test/objMerge.js.map +0 -1
  2182. package/lib/test/rebase/findAncestor.spec.d.ts +0 -6
  2183. package/lib/test/rebase/findAncestor.spec.d.ts.map +0 -1
  2184. package/lib/test/rebase/findAncestor.spec.js +0 -139
  2185. package/lib/test/rebase/findAncestor.spec.js.map +0 -1
  2186. package/lib/test/rebase/fuzz.d.ts +0 -16
  2187. package/lib/test/rebase/fuzz.d.ts.map +0 -1
  2188. package/lib/test/rebase/fuzz.js +0 -57
  2189. package/lib/test/rebase/fuzz.js.map +0 -1
  2190. package/lib/test/rebase/generateFuzzyCombinedChange.spec.d.ts +0 -6
  2191. package/lib/test/rebase/generateFuzzyCombinedChange.spec.d.ts.map +0 -1
  2192. package/lib/test/rebase/generateFuzzyCombinedChange.spec.js +0 -42
  2193. package/lib/test/rebase/generateFuzzyCombinedChange.spec.js.map +0 -1
  2194. package/lib/test/rebase/rebaseBranch.spec.d.ts +0 -6
  2195. package/lib/test/rebase/rebaseBranch.spec.d.ts.map +0 -1
  2196. package/lib/test/rebase/rebaseBranch.spec.js +0 -208
  2197. package/lib/test/rebase/rebaseBranch.spec.js.map +0 -1
  2198. package/lib/test/rebase/rebaser.spec.d.ts +0 -14
  2199. package/lib/test/rebase/rebaser.spec.d.ts.map +0 -1
  2200. package/lib/test/rebase/rebaser.spec.js +0 -166
  2201. package/lib/test/rebase/rebaser.spec.js.map +0 -1
  2202. package/lib/test/rebase/revisionTagCodec.spec.d.ts +0 -6
  2203. package/lib/test/rebase/revisionTagCodec.spec.d.ts.map +0 -1
  2204. package/lib/test/rebase/revisionTagCodec.spec.js +0 -56
  2205. package/lib/test/rebase/revisionTagCodec.spec.js.map +0 -1
  2206. package/lib/test/rebase/verifyChangeRebaser.spec.d.ts +0 -6
  2207. package/lib/test/rebase/verifyChangeRebaser.spec.d.ts.map +0 -1
  2208. package/lib/test/rebase/verifyChangeRebaser.spec.js +0 -52
  2209. package/lib/test/rebase/verifyChangeRebaser.spec.js.map +0 -1
  2210. package/lib/test/rebaserAxiomaticTests.d.ts +0 -15
  2211. package/lib/test/rebaserAxiomaticTests.d.ts.map +0 -1
  2212. package/lib/test/rebaserAxiomaticTests.js +0 -202
  2213. package/lib/test/rebaserAxiomaticTests.js.map +0 -1
  2214. package/lib/test/scalableTestTrees.d.ts +0 -89
  2215. package/lib/test/scalableTestTrees.d.ts.map +0 -1
  2216. package/lib/test/scalableTestTrees.js +0 -188
  2217. package/lib/test/scalableTestTrees.js.map +0 -1
  2218. package/lib/test/shared-tree/editing.spec.d.ts +0 -2
  2219. package/lib/test/shared-tree/editing.spec.d.ts.map +0 -1
  2220. package/lib/test/shared-tree/editing.spec.js +0 -2091
  2221. package/lib/test/shared-tree/editing.spec.js.map +0 -1
  2222. package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.d.ts +0 -2
  2223. package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.d.ts.map +0 -1
  2224. package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.js +0 -161
  2225. package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.js.map +0 -1
  2226. package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.d.ts +0 -2
  2227. package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.d.ts.map +0 -1
  2228. package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.js +0 -105
  2229. package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.js.map +0 -1
  2230. package/lib/test/shared-tree/fuzz/fuzzEditGenerators.d.ts +0 -127
  2231. package/lib/test/shared-tree/fuzz/fuzzEditGenerators.d.ts.map +0 -1
  2232. package/lib/test/shared-tree/fuzz/fuzzEditGenerators.js +0 -439
  2233. package/lib/test/shared-tree/fuzz/fuzzEditGenerators.js.map +0 -1
  2234. package/lib/test/shared-tree/fuzz/fuzzEditReducers.d.ts +0 -21
  2235. package/lib/test/shared-tree/fuzz/fuzzEditReducers.d.ts.map +0 -1
  2236. package/lib/test/shared-tree/fuzz/fuzzEditReducers.js +0 -214
  2237. package/lib/test/shared-tree/fuzz/fuzzEditReducers.js.map +0 -1
  2238. package/lib/test/shared-tree/fuzz/fuzzUtils.d.ts +0 -33
  2239. package/lib/test/shared-tree/fuzz/fuzzUtils.d.ts.map +0 -1
  2240. package/lib/test/shared-tree/fuzz/fuzzUtils.js +0 -78
  2241. package/lib/test/shared-tree/fuzz/fuzzUtils.js.map +0 -1
  2242. package/lib/test/shared-tree/fuzz/operationTypes.d.ts +0 -116
  2243. package/lib/test/shared-tree/fuzz/operationTypes.d.ts.map +0 -1
  2244. package/lib/test/shared-tree/fuzz/operationTypes.js +0 -6
  2245. package/lib/test/shared-tree/fuzz/operationTypes.js.map +0 -1
  2246. package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.d.ts +0 -2
  2247. package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.d.ts.map +0 -1
  2248. package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.js +0 -110
  2249. package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.js.map +0 -1
  2250. package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.d.ts +0 -6
  2251. package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.d.ts.map +0 -1
  2252. package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.js +0 -220
  2253. package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.js.map +0 -1
  2254. package/lib/test/shared-tree/opSize.bench.d.ts +0 -2
  2255. package/lib/test/shared-tree/opSize.bench.d.ts.map +0 -1
  2256. package/lib/test/shared-tree/opSize.bench.js +0 -559
  2257. package/lib/test/shared-tree/opSize.bench.js.map +0 -1
  2258. package/lib/test/shared-tree/schematizeTree.spec.d.ts +0 -6
  2259. package/lib/test/shared-tree/schematizeTree.spec.d.ts.map +0 -1
  2260. package/lib/test/shared-tree/schematizeTree.spec.js +0 -331
  2261. package/lib/test/shared-tree/schematizeTree.spec.js.map +0 -1
  2262. package/lib/test/shared-tree/schematizingTreeView.spec.d.ts +0 -6
  2263. package/lib/test/shared-tree/schematizingTreeView.spec.d.ts.map +0 -1
  2264. package/lib/test/shared-tree/schematizingTreeView.spec.js +0 -137
  2265. package/lib/test/shared-tree/schematizingTreeView.spec.js.map +0 -1
  2266. package/lib/test/shared-tree/sharedTree.bench.d.ts +0 -2
  2267. package/lib/test/shared-tree/sharedTree.bench.d.ts.map +0 -1
  2268. package/lib/test/shared-tree/sharedTree.bench.js +0 -349
  2269. package/lib/test/shared-tree/sharedTree.bench.js.map +0 -1
  2270. package/lib/test/shared-tree/sharedTree.spec.d.ts +0 -2
  2271. package/lib/test/shared-tree/sharedTree.spec.d.ts.map +0 -1
  2272. package/lib/test/shared-tree/sharedTree.spec.js +0 -1375
  2273. package/lib/test/shared-tree/sharedTree.spec.js.map +0 -1
  2274. package/lib/test/shared-tree/sharedTreeChangeCodec.spec.d.ts +0 -6
  2275. package/lib/test/shared-tree/sharedTreeChangeCodec.spec.d.ts.map +0 -1
  2276. package/lib/test/shared-tree/sharedTreeChangeCodec.spec.js +0 -52
  2277. package/lib/test/shared-tree/sharedTreeChangeCodec.spec.js.map +0 -1
  2278. package/lib/test/shared-tree/sharedTreeChangeFamily.spec.d.ts +0 -6
  2279. package/lib/test/shared-tree/sharedTreeChangeFamily.spec.d.ts.map +0 -1
  2280. package/lib/test/shared-tree/sharedTreeChangeFamily.spec.js +0 -139
  2281. package/lib/test/shared-tree/sharedTreeChangeFamily.spec.js.map +0 -1
  2282. package/lib/test/shared-tree/summary.bench.d.ts +0 -6
  2283. package/lib/test/shared-tree/summary.bench.d.ts.map +0 -1
  2284. package/lib/test/shared-tree/summary.bench.js +0 -111
  2285. package/lib/test/shared-tree/summary.bench.js.map +0 -1
  2286. package/lib/test/shared-tree/treeApi.spec.d.ts +0 -2
  2287. package/lib/test/shared-tree/treeApi.spec.d.ts.map +0 -1
  2288. package/lib/test/shared-tree/treeApi.spec.js +0 -151
  2289. package/lib/test/shared-tree/treeApi.spec.js.map +0 -1
  2290. package/lib/test/shared-tree/treeCheckout.spec.d.ts +0 -2
  2291. package/lib/test/shared-tree/treeCheckout.spec.d.ts.map +0 -1
  2292. package/lib/test/shared-tree/treeCheckout.spec.js +0 -678
  2293. package/lib/test/shared-tree/treeCheckout.spec.js.map +0 -1
  2294. package/lib/test/shared-tree/treeView.spec.d.ts +0 -2
  2295. package/lib/test/shared-tree/treeView.spec.d.ts.map +0 -1
  2296. package/lib/test/shared-tree/treeView.spec.js +0 -16
  2297. package/lib/test/shared-tree/treeView.spec.js.map +0 -1
  2298. package/lib/test/shared-tree/undo.spec.d.ts +0 -2
  2299. package/lib/test/shared-tree/undo.spec.d.ts.map +0 -1
  2300. package/lib/test/shared-tree/undo.spec.js +0 -298
  2301. package/lib/test/shared-tree/undo.spec.js.map +0 -1
  2302. package/lib/test/shared-tree-core/branch.spec.d.ts +0 -6
  2303. package/lib/test/shared-tree-core/branch.spec.d.ts.map +0 -1
  2304. package/lib/test/shared-tree-core/branch.spec.js +0 -766
  2305. package/lib/test/shared-tree-core/branch.spec.js.map +0 -1
  2306. package/lib/test/shared-tree-core/edit-manager/editManager.bench.d.ts +0 -6
  2307. package/lib/test/shared-tree-core/edit-manager/editManager.bench.d.ts.map +0 -1
  2308. package/lib/test/shared-tree-core/edit-manager/editManager.bench.js +0 -227
  2309. package/lib/test/shared-tree-core/edit-manager/editManager.bench.js.map +0 -1
  2310. package/lib/test/shared-tree-core/edit-manager/editManager.spec.d.ts +0 -6
  2311. package/lib/test/shared-tree-core/edit-manager/editManager.spec.d.ts.map +0 -1
  2312. package/lib/test/shared-tree-core/edit-manager/editManager.spec.js +0 -13
  2313. package/lib/test/shared-tree-core/edit-manager/editManager.spec.js.map +0 -1
  2314. package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.d.ts +0 -6
  2315. package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.d.ts.map +0 -1
  2316. package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.js +0 -161
  2317. package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.js.map +0 -1
  2318. package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.d.ts +0 -6
  2319. package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.d.ts.map +0 -1
  2320. package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.js +0 -568
  2321. package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.js.map +0 -1
  2322. package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.d.ts +0 -6
  2323. package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.d.ts.map +0 -1
  2324. package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.js +0 -442
  2325. package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.js.map +0 -1
  2326. package/lib/test/shared-tree-core/edit-manager/editManagerScenario.d.ts +0 -80
  2327. package/lib/test/shared-tree-core/edit-manager/editManagerScenario.d.ts.map +0 -1
  2328. package/lib/test/shared-tree-core/edit-manager/editManagerScenario.js +0 -267
  2329. package/lib/test/shared-tree-core/edit-manager/editManagerScenario.js.map +0 -1
  2330. package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.d.ts +0 -211
  2331. package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.d.ts.map +0 -1
  2332. package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.js +0 -130
  2333. package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.js.map +0 -1
  2334. package/lib/test/shared-tree-core/message.spec.d.ts +0 -2
  2335. package/lib/test/shared-tree-core/message.spec.d.ts.map +0 -1
  2336. package/lib/test/shared-tree-core/message.spec.js +0 -99
  2337. package/lib/test/shared-tree-core/message.spec.js.map +0 -1
  2338. package/lib/test/shared-tree-core/sharedTreeCore.spec.d.ts +0 -2
  2339. package/lib/test/shared-tree-core/sharedTreeCore.spec.d.ts.map +0 -1
  2340. package/lib/test/shared-tree-core/sharedTreeCore.spec.js +0 -316
  2341. package/lib/test/shared-tree-core/sharedTreeCore.spec.js.map +0 -1
  2342. package/lib/test/shared-tree-core/utils.d.ts +0 -19
  2343. package/lib/test/shared-tree-core/utils.d.ts.map +0 -1
  2344. package/lib/test/shared-tree-core/utils.js +0 -26
  2345. package/lib/test/shared-tree-core/utils.js.map +0 -1
  2346. package/lib/test/simple-tree/list.spec.d.ts +0 -6
  2347. package/lib/test/simple-tree/list.spec.d.ts.map +0 -1
  2348. package/lib/test/simple-tree/list.spec.js +0 -613
  2349. package/lib/test/simple-tree/list.spec.js.map +0 -1
  2350. package/lib/test/simple-tree/object.spec.d.ts +0 -6
  2351. package/lib/test/simple-tree/object.spec.d.ts.map +0 -1
  2352. package/lib/test/simple-tree/object.spec.js +0 -390
  2353. package/lib/test/simple-tree/object.spec.js.map +0 -1
  2354. package/lib/test/simple-tree/objectFactory.spec.d.ts +0 -6
  2355. package/lib/test/simple-tree/objectFactory.spec.d.ts.map +0 -1
  2356. package/lib/test/simple-tree/objectFactory.spec.js +0 -210
  2357. package/lib/test/simple-tree/objectFactory.spec.js.map +0 -1
  2358. package/lib/test/simple-tree/primitives.spec.d.ts +0 -6
  2359. package/lib/test/simple-tree/primitives.spec.d.ts.map +0 -1
  2360. package/lib/test/simple-tree/primitives.spec.js +0 -134
  2361. package/lib/test/simple-tree/primitives.spec.js.map +0 -1
  2362. package/lib/test/simple-tree/proxies.spec.d.ts +0 -6
  2363. package/lib/test/simple-tree/proxies.spec.d.ts.map +0 -1
  2364. package/lib/test/simple-tree/proxies.spec.js +0 -597
  2365. package/lib/test/simple-tree/proxies.spec.js.map +0 -1
  2366. package/lib/test/simple-tree/rawObjectNode.spec.d.ts +0 -6
  2367. package/lib/test/simple-tree/rawObjectNode.spec.d.ts.map +0 -1
  2368. package/lib/test/simple-tree/rawObjectNode.spec.js +0 -73
  2369. package/lib/test/simple-tree/rawObjectNode.spec.js.map +0 -1
  2370. package/lib/test/simple-tree/schemaCreationUtilities.spec.d.ts +0 -6
  2371. package/lib/test/simple-tree/schemaCreationUtilities.spec.d.ts.map +0 -1
  2372. package/lib/test/simple-tree/schemaCreationUtilities.spec.js +0 -153
  2373. package/lib/test/simple-tree/schemaCreationUtilities.spec.js.map +0 -1
  2374. package/lib/test/simple-tree/schemaFactory.examples.spec.d.ts +0 -6
  2375. package/lib/test/simple-tree/schemaFactory.examples.spec.d.ts.map +0 -1
  2376. package/lib/test/simple-tree/schemaFactory.examples.spec.js +0 -107
  2377. package/lib/test/simple-tree/schemaFactory.examples.spec.js.map +0 -1
  2378. package/lib/test/simple-tree/schemaFactory.spec.d.ts +0 -6
  2379. package/lib/test/simple-tree/schemaFactory.spec.d.ts.map +0 -1
  2380. package/lib/test/simple-tree/schemaFactory.spec.js +0 -515
  2381. package/lib/test/simple-tree/schemaFactory.spec.js.map +0 -1
  2382. package/lib/test/simple-tree/schemaFactoryRecursive.spec.d.ts +0 -6
  2383. package/lib/test/simple-tree/schemaFactoryRecursive.spec.d.ts.map +0 -1
  2384. package/lib/test/simple-tree/schemaFactoryRecursive.spec.js +0 -282
  2385. package/lib/test/simple-tree/schemaFactoryRecursive.spec.js.map +0 -1
  2386. package/lib/test/simple-tree/schemaTypes.spec.d.ts +0 -6
  2387. package/lib/test/simple-tree/schemaTypes.spec.d.ts.map +0 -1
  2388. package/lib/test/simple-tree/schemaTypes.spec.js +0 -89
  2389. package/lib/test/simple-tree/schemaTypes.spec.js.map +0 -1
  2390. package/lib/test/simple-tree/toFlexSchema.spec.d.ts +0 -6
  2391. package/lib/test/simple-tree/toFlexSchema.spec.d.ts.map +0 -1
  2392. package/lib/test/simple-tree/toFlexSchema.spec.js +0 -30
  2393. package/lib/test/simple-tree/toFlexSchema.spec.js.map +0 -1
  2394. package/lib/test/simple-tree/toMapTree.spec.d.ts +0 -6
  2395. package/lib/test/simple-tree/toMapTree.spec.d.ts.map +0 -1
  2396. package/lib/test/simple-tree/toMapTree.spec.js +0 -423
  2397. package/lib/test/simple-tree/toMapTree.spec.js.map +0 -1
  2398. package/lib/test/simple-tree/tree.spec.d.ts +0 -6
  2399. package/lib/test/simple-tree/tree.spec.d.ts.map +0 -1
  2400. package/lib/test/simple-tree/tree.spec.js +0 -71
  2401. package/lib/test/simple-tree/tree.spec.js.map +0 -1
  2402. package/lib/test/simple-tree/treeApi.spec.d.ts +0 -6
  2403. package/lib/test/simple-tree/treeApi.spec.d.ts.map +0 -1
  2404. package/lib/test/simple-tree/treeApi.spec.js +0 -146
  2405. package/lib/test/simple-tree/treeApi.spec.js.map +0 -1
  2406. package/lib/test/simple-tree/utils.d.ts +0 -16
  2407. package/lib/test/simple-tree/utils.d.ts.map +0 -1
  2408. package/lib/test/simple-tree/utils.js +0 -33
  2409. package/lib/test/simple-tree/utils.js.map +0 -1
  2410. package/lib/test/snapshots/gc.spec.d.ts +0 -6
  2411. package/lib/test/snapshots/gc.spec.d.ts.map +0 -1
  2412. package/lib/test/snapshots/gc.spec.js +0 -106
  2413. package/lib/test/snapshots/gc.spec.js.map +0 -1
  2414. package/lib/test/snapshots/index.d.ts +0 -6
  2415. package/lib/test/snapshots/index.d.ts.map +0 -1
  2416. package/lib/test/snapshots/index.js +0 -6
  2417. package/lib/test/snapshots/index.js.map +0 -1
  2418. package/lib/test/snapshots/schema.spec.d.ts +0 -6
  2419. package/lib/test/snapshots/schema.spec.d.ts.map +0 -1
  2420. package/lib/test/snapshots/schema.spec.js +0 -17
  2421. package/lib/test/snapshots/schema.spec.js.map +0 -1
  2422. package/lib/test/snapshots/snapshotTools.d.ts +0 -25
  2423. package/lib/test/snapshots/snapshotTools.d.ts.map +0 -1
  2424. package/lib/test/snapshots/snapshotTools.js +0 -85
  2425. package/lib/test/snapshots/snapshotTools.js.map +0 -1
  2426. package/lib/test/snapshots/summary.spec.d.ts +0 -6
  2427. package/lib/test/snapshots/summary.spec.d.ts.map +0 -1
  2428. package/lib/test/snapshots/summary.spec.js +0 -26
  2429. package/lib/test/snapshots/summary.spec.js.map +0 -1
  2430. package/lib/test/snapshots/testTrees.d.ts +0 -15
  2431. package/lib/test/snapshots/testTrees.d.ts.map +0 -1
  2432. package/lib/test/snapshots/testTrees.js +0 -374
  2433. package/lib/test/snapshots/testTrees.js.map +0 -1
  2434. package/lib/test/snapshots/utils.d.ts +0 -7
  2435. package/lib/test/snapshots/utils.d.ts.map +0 -1
  2436. package/lib/test/snapshots/utils.js +0 -106
  2437. package/lib/test/snapshots/utils.js.map +0 -1
  2438. package/lib/test/testChange.d.ts +0 -90
  2439. package/lib/test/testChange.d.ts.map +0 -1
  2440. package/lib/test/testChange.js +0 -234
  2441. package/lib/test/testChange.js.map +0 -1
  2442. package/lib/test/testChange.spec.d.ts +0 -6
  2443. package/lib/test/testChange.spec.d.ts.map +0 -1
  2444. package/lib/test/testChange.spec.js +0 -113
  2445. package/lib/test/testChange.spec.js.map +0 -1
  2446. package/lib/test/testTrees.d.ts +0 -56
  2447. package/lib/test/testTrees.d.ts.map +0 -1
  2448. package/lib/test/testTrees.js +0 -175
  2449. package/lib/test/testTrees.js.map +0 -1
  2450. package/lib/test/tree/anchorSet.spec.d.ts +0 -6
  2451. package/lib/test/tree/anchorSet.spec.d.ts.map +0 -1
  2452. package/lib/test/tree/anchorSet.spec.js +0 -593
  2453. package/lib/test/tree/anchorSet.spec.js.map +0 -1
  2454. package/lib/test/tree/detachedFieldIndex.spec.d.ts +0 -11
  2455. package/lib/test/tree/detachedFieldIndex.spec.d.ts.map +0 -1
  2456. package/lib/test/tree/detachedFieldIndex.spec.js +0 -218
  2457. package/lib/test/tree/detachedFieldIndex.spec.js.map +0 -1
  2458. package/lib/test/tree/pathTree.spec.d.ts +0 -6
  2459. package/lib/test/tree/pathTree.spec.d.ts.map +0 -1
  2460. package/lib/test/tree/pathTree.spec.js +0 -122
  2461. package/lib/test/tree/pathTree.spec.js.map +0 -1
  2462. package/lib/test/tree/visitDelta.spec.d.ts +0 -6
  2463. package/lib/test/tree/visitDelta.spec.d.ts.map +0 -1
  2464. package/lib/test/tree/visitDelta.spec.js +0 -1055
  2465. package/lib/test/tree/visitDelta.spec.js.map +0 -1
  2466. package/lib/test/util/brand.spec.d.ts +0 -22
  2467. package/lib/test/util/brand.spec.d.ts.map +0 -1
  2468. package/lib/test/util/brand.spec.js +0 -19
  2469. package/lib/test/util/brand.spec.js.map +0 -1
  2470. package/lib/test/util/deepFreeze.spec.d.ts +0 -6
  2471. package/lib/test/util/deepFreeze.spec.d.ts.map +0 -1
  2472. package/lib/test/util/deepFreeze.spec.js +0 -176
  2473. package/lib/test/util/deepFreeze.spec.js.map +0 -1
  2474. package/lib/test/util/nestedMap.spec.d.ts +0 -6
  2475. package/lib/test/util/nestedMap.spec.d.ts.map +0 -1
  2476. package/lib/test/util/nestedMap.spec.js +0 -190
  2477. package/lib/test/util/nestedMap.spec.js.map +0 -1
  2478. package/lib/test/util/offsetList.spec.d.ts +0 -6
  2479. package/lib/test/util/offsetList.spec.d.ts.map +0 -1
  2480. package/lib/test/util/offsetList.spec.js +0 -35
  2481. package/lib/test/util/offsetList.spec.js.map +0 -1
  2482. package/lib/test/util/testTreeProvider.spec.d.ts +0 -6
  2483. package/lib/test/util/testTreeProvider.spec.d.ts.map +0 -1
  2484. package/lib/test/util/testTreeProvider.spec.js +0 -56
  2485. package/lib/test/util/testTreeProvider.spec.js.map +0 -1
  2486. package/lib/test/util/typeUtils.spec.d.ts +0 -6
  2487. package/lib/test/util/typeUtils.spec.d.ts.map +0 -1
  2488. package/lib/test/util/typeUtils.spec.js +0 -19
  2489. package/lib/test/util/typeUtils.spec.js.map +0 -1
  2490. package/lib/test/util/utils.spec.d.ts +0 -6
  2491. package/lib/test/util/utils.spec.d.ts.map +0 -1
  2492. package/lib/test/util/utils.spec.js +0 -27
  2493. package/lib/test/util/utils.spec.js.map +0 -1
  2494. package/lib/test/utils.d.ts +0 -313
  2495. package/lib/test/utils.d.ts.map +0 -1
  2496. package/lib/test/utils.js +0 -765
  2497. package/lib/test/utils.js.map +0 -1
  2498. package/lib/tree-alpha.d.ts +0 -2159
  2499. package/lib/tree-beta.d.ts +0 -2159
  2500. package/lib/tree-public.d.ts +0 -1942
  2501. package/lib/tree-untrimmed.d.ts +0 -6880
  2502. package/src/simple-tree/flexNode.ts +0 -96
  2503. package/src/simple-tree/treeArrayNode.ts +0 -70
  2504. /package/dist/{feature-libraries → core/schema-stored}/multiplicity.d.ts +0 -0
  2505. /package/lib/{feature-libraries → core/schema-stored}/multiplicity.d.ts +0 -0
  2506. /package/lib/{feature-libraries → core/schema-stored}/multiplicity.js +0 -0
  2507. /package/{dist → lib}/tsdoc-metadata.json +0 -0
@@ -1,2091 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { strict as assert } from "assert";
6
- import { unreachableCase } from "@fluidframework/core-utils";
7
- import { jsonObject, leaf, singleJsonCursor } from "../../domains/index.js";
8
- import { rootFieldKey, moveToDetachedField, EmptyKey, } from "../../core/index.js";
9
- import { brand, makeArray } from "../../util/index.js";
10
- import { makeTreeFromJson, remove, insert, expectJsonTree, createTestUndoRedoStacks, } from "../utils.js";
11
- import { cursorForJsonableTreeNode } from "../../feature-libraries/index.js";
12
- const rootField = {
13
- parent: undefined,
14
- field: rootFieldKey,
15
- };
16
- const rootNode = {
17
- parent: undefined,
18
- parentField: rootFieldKey,
19
- parentIndex: 0,
20
- };
21
- describe("Editing", () => {
22
- describe("Sequence Field", () => {
23
- it("concurrent inserts", () => {
24
- const tree1 = makeTreeFromJson([]);
25
- insert(tree1, 0, "y");
26
- const tree2 = tree1.fork();
27
- insert(tree1, 0, "x");
28
- insert(tree2, 1, "a", "c");
29
- insert(tree2, 2, "b");
30
- tree2.rebaseOnto(tree1);
31
- tree1.merge(tree2);
32
- const expected = ["x", "y", "a", "b", "c"];
33
- expectJsonTree([tree1, tree2], expected);
34
- });
35
- it("can rebase remove over move", () => {
36
- const tree1 = makeTreeFromJson([]);
37
- const tree2 = tree1.fork();
38
- insert(tree1, 0, "a", "b");
39
- tree2.rebaseOnto(tree1);
40
- // Move b before a
41
- tree1.editor.move(rootField, 1, 1, rootField, 0);
42
- // Remove b
43
- remove(tree2, 1, 1);
44
- tree2.rebaseOnto(tree1);
45
- tree1.merge(tree2);
46
- const expected = ["a"];
47
- expectJsonTree([tree1, tree2], expected);
48
- });
49
- it("can rebase remove over cross-field move", () => {
50
- const tree1 = makeTreeFromJson([
51
- {
52
- foo: ["a", "b", "c"],
53
- bar: ["d", "e"],
54
- },
55
- ]);
56
- const tree2 = tree1.fork();
57
- const fooArrayPath = {
58
- parent: rootNode,
59
- parentField: brand("foo"),
60
- parentIndex: 0,
61
- };
62
- const barArrayPath = {
63
- parent: rootNode,
64
- parentField: brand("bar"),
65
- parentIndex: 0,
66
- };
67
- // Move bc between d and e.
68
- tree1.editor.move({ parent: fooArrayPath, field: brand("") }, 1, 2, { parent: barArrayPath, field: brand("") }, 1);
69
- // Remove c
70
- const field = tree2.editor.sequenceField({ parent: fooArrayPath, field: brand("") });
71
- field.remove(2, 1);
72
- tree2.rebaseOnto(tree1);
73
- tree1.merge(tree2);
74
- const expectedState = {
75
- foo: ["a"],
76
- bar: ["d", "b", "e"],
77
- };
78
- expectJsonTree([tree1, tree2], [expectedState]);
79
- });
80
- it("can rebase cross-field move over remove", () => {
81
- const tree1 = makeTreeFromJson([
82
- {
83
- foo: ["a", "b", "c"],
84
- bar: ["d", "e"],
85
- },
86
- ]);
87
- const tree2 = tree1.fork();
88
- const fooArrayPath = {
89
- parent: rootNode,
90
- parentField: brand("foo"),
91
- parentIndex: 0,
92
- };
93
- const barArrayPath = {
94
- parent: rootNode,
95
- parentField: brand("bar"),
96
- parentIndex: 0,
97
- };
98
- // Remove c
99
- const field = tree1.editor.sequenceField({ parent: fooArrayPath, field: brand("") });
100
- field.remove(2, 1);
101
- // Move bc between d and e.
102
- tree2.editor.move({ parent: fooArrayPath, field: brand("") }, 1, 2, { parent: barArrayPath, field: brand("") }, 1);
103
- tree2.rebaseOnto(tree1);
104
- tree1.merge(tree2);
105
- const expectedState = [
106
- {
107
- foo: ["a"],
108
- bar: ["d", "b", "c", "e"],
109
- },
110
- ];
111
- expectJsonTree([tree1, tree2], expectedState);
112
- });
113
- it("can order concurrent inserts within concurrently removed content", () => {
114
- const tree = makeTreeFromJson(["A", "B", "C", "D"]);
115
- const delAB = tree.fork();
116
- const delCD = tree.fork();
117
- const addX = tree.fork();
118
- const addY = tree.fork();
119
- // Make deletions in two steps to ensure that gap tracking handles comparing insertion places that
120
- // were affected by different removes.
121
- remove(delAB, 0, 2);
122
- remove(delCD, 2, 2);
123
- insert(addX, 1, "x");
124
- insert(addY, 3, "y");
125
- tree.merge(delAB, false);
126
- tree.merge(delCD, false);
127
- tree.merge(addX, false);
128
- tree.merge(addY, false);
129
- delAB.rebaseOnto(tree);
130
- delCD.rebaseOnto(tree);
131
- addX.rebaseOnto(tree);
132
- addY.rebaseOnto(tree);
133
- expectJsonTree([tree, delAB, delCD, addX, addY], ["x", "y"]);
134
- });
135
- it("can rebase a change under a node whose insertion is also rebased", () => {
136
- const tree1 = makeTreeFromJson(["B"]);
137
- const tree2 = tree1.fork();
138
- const tree3 = tree1.fork();
139
- insert(tree2, 1, "C");
140
- tree3.editor
141
- .sequenceField(rootField)
142
- .insert(0, cursorForJsonableTreeNode({ type: jsonObject.name }));
143
- const aEditor = tree3.editor.sequenceField({ parent: rootNode, field: brand("foo") });
144
- aEditor.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "a" }));
145
- tree1.merge(tree2, false);
146
- tree1.merge(tree3, false);
147
- tree2.rebaseOnto(tree1);
148
- tree3.rebaseOnto(tree1);
149
- expectJsonTree([tree1, tree2, tree3], [{ foo: "a" }, "B", "C"]);
150
- });
151
- it("can handle competing removes", () => {
152
- for (const index of [0, 1, 2, 3]) {
153
- const startingState = ["A", "B", "C", "D"];
154
- const tree = makeTreeFromJson(startingState);
155
- const tree1 = tree.fork();
156
- const tree2 = tree.fork();
157
- const tree3 = tree.fork();
158
- remove(tree1, index, 1);
159
- remove(tree2, index, 1);
160
- remove(tree3, index, 1);
161
- tree.merge(tree1, false);
162
- tree.merge(tree2, false);
163
- tree.merge(tree3, false);
164
- tree1.rebaseOnto(tree);
165
- tree2.rebaseOnto(tree);
166
- tree3.rebaseOnto(tree);
167
- const expected = [...startingState];
168
- expected.splice(index, 1);
169
- expectJsonTree([tree, tree1, tree2, tree3], expected, true);
170
- }
171
- });
172
- it("can rebase local dependent inserts", () => {
173
- const tree1 = makeTreeFromJson(["y"]);
174
- const tree2 = tree1.fork();
175
- insert(tree1, 0, "x");
176
- insert(tree2, 1, "a", "c");
177
- insert(tree2, 2, "b");
178
- expectJsonTree(tree2, ["y", "a", "b", "c"]);
179
- // Get an anchor to node b
180
- const cursor = tree2.forest.allocateCursor();
181
- moveToDetachedField(tree2.forest, cursor);
182
- cursor.enterNode(2);
183
- assert.equal(cursor.value, "b");
184
- const anchor = cursor.buildAnchor();
185
- cursor.free();
186
- tree1.merge(tree2, false);
187
- tree2.rebaseOnto(tree1);
188
- expectJsonTree([tree1, tree2], ["x", "y", "a", "b", "c"]);
189
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
190
- const { parent, parentField, parentIndex } = tree2.locate(anchor);
191
- const expectedPath = {
192
- parent: undefined,
193
- parentField: rootFieldKey,
194
- parentIndex: 3,
195
- };
196
- assert.deepEqual({ parent, parentField, parentIndex }, expectedPath);
197
- });
198
- it("can rebase a local remove", () => {
199
- const addW = makeTreeFromJson(["x", "y"]);
200
- const delY = addW.fork();
201
- remove(delY, 1, 1);
202
- insert(addW, 0, "w");
203
- addW.merge(delY, false);
204
- delY.rebaseOnto(addW);
205
- expectJsonTree([addW, delY], ["w", "x"]);
206
- });
207
- it("can edit a concurrently removed tree", () => {
208
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
209
- const tree1 = makeTreeFromJson({ foo: ["A", "B", "C"] });
210
- const tree2 = tree1.fork();
211
- const { undoStack } = createTestUndoRedoStacks(tree1.events);
212
- remove(tree1, 0, 1);
213
- const removal = undoStack.pop();
214
- const listEditor = tree2.editor.sequenceField({ parent: fooList, field: brand("") });
215
- listEditor.move(2, 1, 1);
216
- listEditor.insert(3, cursorForJsonableTreeNode({ type: leaf.string.name, value: "D" }));
217
- listEditor.remove(0, 1);
218
- expectJsonTree(tree2, [{ foo: ["C", "B", "D"] }]);
219
- tree1.merge(tree2, false);
220
- tree2.rebaseOnto(tree1);
221
- expectJsonTree([tree1, tree2], []);
222
- removal?.revert();
223
- tree1.merge(tree2, false);
224
- tree2.rebaseOnto(tree1);
225
- expectJsonTree([tree1, tree2], [{ foo: ["C", "B", "D"] }]);
226
- });
227
- it("inserts that concurrently target the same insertion point do not interleave their contents", () => {
228
- const tree = makeTreeFromJson([]);
229
- const abc = tree.fork();
230
- const rst = tree.fork();
231
- const xyz = tree.fork();
232
- insert(abc, 0, "a", "b", "c");
233
- insert(rst, 0, "r", "s", "t");
234
- insert(xyz, 0, "x", "y", "z");
235
- tree.merge(xyz, false);
236
- tree.merge(rst, false);
237
- tree.merge(abc, false);
238
- xyz.rebaseOnto(tree);
239
- rst.rebaseOnto(tree);
240
- abc.rebaseOnto(tree);
241
- expectJsonTree([tree, abc, rst, xyz], ["a", "b", "c", "r", "s", "t", "x", "y", "z"]);
242
- });
243
- it("merge-left tie-breaking does not interleave concurrent left to right inserts", () => {
244
- const tree = makeTreeFromJson([]);
245
- const a = tree.fork();
246
- const r = tree.fork();
247
- const x = tree.fork();
248
- insert(a, 0, "a");
249
- const b = a.fork();
250
- insert(b, 1, "b");
251
- const c = b.fork();
252
- insert(c, 2, "c");
253
- insert(r, 0, "r");
254
- const s = r.fork();
255
- insert(s, 1, "s");
256
- const t = s.fork();
257
- insert(s, 2, "t");
258
- insert(x, 0, "x");
259
- const y = x.fork();
260
- insert(y, 1, "y");
261
- const z = y.fork();
262
- insert(z, 2, "z");
263
- tree.merge(x);
264
- tree.merge(r);
265
- tree.merge(a);
266
- tree.merge(s);
267
- tree.merge(b);
268
- tree.merge(y);
269
- tree.merge(c, false);
270
- tree.merge(z, false);
271
- tree.merge(t, false);
272
- c.rebaseOnto(tree);
273
- t.rebaseOnto(tree);
274
- z.rebaseOnto(tree);
275
- expectJsonTree([tree, c, t, z], ["a", "b", "c", "r", "s", "t", "x", "y", "z"]);
276
- });
277
- // The current implementation orders the letters from inserted last to inserted first.
278
- // This is due to the hard-coded merge-left policy.
279
- // Having merge-right tie-breaking does preserve groupings but in a first-to-last order
280
- // which is the desired outcome for RTL text.
281
- // TODO: update and activate this test once merge-right is supported.
282
- it.skip("merge-right tie-breaking does not interleave concurrent right to left inserts", () => {
283
- const tree = makeTreeFromJson([]);
284
- const c = tree.fork();
285
- const t = tree.fork();
286
- const z = tree.fork();
287
- insert(c, 0, "c");
288
- const b = c.fork();
289
- insert(b, 0, "b");
290
- const a = b.fork();
291
- insert(a, 0, "a");
292
- insert(t, 0, "t");
293
- const s = t.fork();
294
- insert(s, 0, "s");
295
- const r = s.fork();
296
- insert(r, 0, "r");
297
- insert(z, 0, "z");
298
- const y = z.fork();
299
- insert(y, 0, "y");
300
- const x = y.fork();
301
- insert(x, 0, "x");
302
- tree.merge(z);
303
- tree.merge(t);
304
- tree.merge(c);
305
- tree.merge(s);
306
- tree.merge(b);
307
- tree.merge(y);
308
- tree.merge(a);
309
- tree.merge(x);
310
- tree.merge(r);
311
- a.rebaseOnto(tree);
312
- r.rebaseOnto(tree);
313
- x.rebaseOnto(tree);
314
- expectJsonTree([tree, a, r, x], ["a", "b", "c", "r", "s", "t", "x", "y", "z"]);
315
- });
316
- it("intra-field move", () => {
317
- const tree1 = makeTreeFromJson(["A", "B"]);
318
- tree1.editor.sequenceField(rootField).move(0, 1, 2);
319
- expectJsonTree(tree1, ["B", "A"]);
320
- });
321
- it("can rebase insert and remove over insert in the same gap", () => {
322
- const tree1 = makeTreeFromJson([]);
323
- const tree2 = tree1.fork();
324
- insert(tree1, 0, "B");
325
- insert(tree2, 0, "A");
326
- remove(tree2, 0, 1);
327
- tree1.merge(tree2, false);
328
- tree2.rebaseOnto(tree1);
329
- expectJsonTree([tree1, tree2], ["B"]);
330
- });
331
- it("concurrent insert with nested change", () => {
332
- const tree1 = makeTreeFromJson([]);
333
- const tree2 = tree1.fork();
334
- insert(tree1, 0, "a");
335
- expectJsonTree(tree1, ["a"]);
336
- tree2.editor
337
- .sequenceField(rootField)
338
- .insert(0, cursorForJsonableTreeNode({ type: jsonObject.name }));
339
- tree2.editor
340
- .sequenceField({ parent: rootNode, field: brand("foo") })
341
- .insert(0, cursorForJsonableTreeNode({ type: jsonObject.name }));
342
- expectJsonTree(tree2, [{ foo: {} }]);
343
- tree2.rebaseOnto(tree1);
344
- tree1.merge(tree2);
345
- expectJsonTree([tree1, tree2], [{ foo: {} }, "a"]);
346
- });
347
- it("can rebase intra-field move over insert", () => {
348
- const tree1 = makeTreeFromJson(["A", "B"]);
349
- const tree2 = tree1.fork();
350
- insert(tree1, 2, "C");
351
- tree2.editor.sequenceField(rootField).move(0, 1, 2);
352
- tree1.merge(tree2, false);
353
- tree2.rebaseOnto(tree1);
354
- expectJsonTree(tree1, ["B", "A", "C"]);
355
- expectJsonTree(tree2, ["B", "A", "C"]);
356
- });
357
- it("can concurrently edit and move a subtree", () => {
358
- const tree1 = makeTreeFromJson(["A", { foo: "B" }]);
359
- const tree2 = tree1.fork();
360
- const parent = { parent: undefined, parentField: rootFieldKey, parentIndex: 1 };
361
- const editor = tree1.editor.valueField({ parent, field: brand("foo") });
362
- editor.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "C" }));
363
- // Move B before A.
364
- tree2.editor.move(rootField, 1, 1, rootField, 0);
365
- tree1.merge(tree2, false);
366
- tree2.rebaseOnto(tree1);
367
- const expectedState = [{ foo: "C" }, "A"];
368
- expectJsonTree(tree1, expectedState);
369
- expectJsonTree(tree2, expectedState);
370
- });
371
- it("can concurrently edit and move a subtree (Move first)", () => {
372
- const tree1 = makeTreeFromJson(["A", { foo: "B" }]);
373
- const tree2 = tree1.fork();
374
- // Move B before A.
375
- tree1.editor.move(rootField, 1, 1, rootField, 0);
376
- const editor = tree2.editor.valueField({
377
- parent: {
378
- parent: undefined,
379
- parentField: rootFieldKey,
380
- parentIndex: 1,
381
- },
382
- field: brand("foo"),
383
- });
384
- editor.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "C" }));
385
- tree1.merge(tree2, false);
386
- tree2.rebaseOnto(tree1);
387
- const expectedState = [{ foo: "C" }, "A"];
388
- expectJsonTree(tree1, expectedState);
389
- expectJsonTree(tree2, expectedState);
390
- });
391
- it("can concurrently edit and move a subtree (Move first) in a list under a node", () => {
392
- const tree1 = makeTreeFromJson([{ seq: [{ foo: "A" }, "B"] }]);
393
- const tree2 = tree1.fork();
394
- const seqList = { parent: rootNode, parentField: brand("seq"), parentIndex: 0 };
395
- const seqField = { parent: seqList, field: brand("") };
396
- const fooField = {
397
- parent: { parent: seqList, parentField: brand(""), parentIndex: 0 },
398
- field: brand("foo"),
399
- };
400
- tree1.editor.move(seqField, 0, 1, seqField, 1);
401
- tree2.editor.valueField(fooField).set(singleJsonCursor("a"));
402
- tree2.rebaseOnto(tree1);
403
- tree1.merge(tree2, false);
404
- const expectedState = [{ seq: [{ foo: "a" }, "B"] }];
405
- expectJsonTree(tree1, expectedState);
406
- expectJsonTree(tree2, expectedState);
407
- });
408
- it("can rebase cross-field move over edit of moved node", () => {
409
- const tree1 = makeTreeFromJson({
410
- foo: [{ baz: "A" }],
411
- bar: ["B"],
412
- });
413
- const tree2 = tree1.fork();
414
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
415
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
416
- // Change value of A to C
417
- const editor = tree1.editor.valueField({
418
- parent: { parent: fooList, parentField: brand(""), parentIndex: 0 },
419
- field: brand("baz"),
420
- });
421
- editor.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "C" }));
422
- // Move A after B.
423
- tree2.editor.move({ parent: fooList, field: brand("") }, 0, 1, { parent: barList, field: brand("") }, 1);
424
- const expectedState = [
425
- {
426
- foo: [],
427
- bar: ["B", { baz: "C" }],
428
- },
429
- ];
430
- tree1.merge(tree2, false);
431
- tree2.rebaseOnto(tree1);
432
- expectJsonTree([tree1, tree2], expectedState);
433
- });
434
- it("can rebase node deletion over cross-field move of descendant", () => {
435
- const tree1 = makeTreeFromJson({
436
- foo: ["A"],
437
- });
438
- const tree2 = tree1.fork();
439
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
440
- // Move A out of foo.
441
- tree1.editor.move({ parent: fooList, field: brand("") }, 0, 1, rootField, 0);
442
- // Remove root.
443
- tree2.editor.sequenceField(rootField).remove(0, 1);
444
- const expectedState = ["A"];
445
- tree1.merge(tree2, false);
446
- tree2.rebaseOnto(tree1);
447
- expectJsonTree([tree1, tree2], expectedState);
448
- });
449
- it("can rebase edit over cross-field move of changed node", () => {
450
- const tree1 = makeTreeFromJson({
451
- foo: [{ baz: "A" }],
452
- bar: ["B"],
453
- });
454
- const tree2 = tree1.fork();
455
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
456
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
457
- // Move A after B.
458
- tree1.editor.move({ parent: fooList, field: brand("") }, 0, 1, { parent: barList, field: brand("") }, 1);
459
- // Remove A
460
- const editor = tree2.editor.sequenceField({
461
- parent: { parent: fooList, parentField: brand(""), parentIndex: 0 },
462
- field: brand("baz"),
463
- });
464
- editor.remove(0, 1);
465
- const expectedState = [
466
- {
467
- foo: [],
468
- bar: ["B", {}],
469
- },
470
- ];
471
- tree1.merge(tree2, false);
472
- tree2.rebaseOnto(tree1);
473
- expectJsonTree([tree1, tree2], expectedState);
474
- });
475
- it("move under move-out", () => {
476
- const tree1 = makeTreeFromJson([{ foo: ["a", "b"] }, "x"]);
477
- tree1.transaction.start();
478
- const listNode = {
479
- parent: rootNode,
480
- parentField: brand("foo"),
481
- parentIndex: 0,
482
- };
483
- const fooField = tree1.editor.sequenceField({ parent: listNode, field: brand("") });
484
- fooField.move(0, 1, 2);
485
- const rootSequence = tree1.editor.sequenceField(rootField);
486
- rootSequence.move(0, 1, 2);
487
- tree1.transaction.commit();
488
- expectJsonTree(tree1, ["x", { foo: ["b", "a"] }]);
489
- });
490
- it("move, remove, restore", () => {
491
- const tree1 = makeTreeFromJson(["a", "b"]);
492
- const tree2 = tree1.fork();
493
- const cursor = tree1.forest.allocateCursor();
494
- moveToDetachedField(tree1.forest, cursor);
495
- cursor.enterNode(1);
496
- const anchorB = cursor.buildAnchor();
497
- cursor.free();
498
- const { undoStack } = createTestUndoRedoStacks(tree2.events);
499
- tree2.editor.sequenceField(rootField).move(1, 1, 0);
500
- tree2.editor.sequenceField(rootField).remove(0, 1);
501
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
502
- undoStack.pop().revert();
503
- // This merge causes the move, remove, and restore to be composed and applied in one changeset on tree1
504
- tree1.merge(tree2, false);
505
- tree2.rebaseOnto(tree1);
506
- expectJsonTree([tree1, tree2], ["b", "a"]);
507
- const nodeBPath = tree1.locate(anchorB) ?? assert.fail();
508
- const actual = {
509
- parent: nodeBPath.parent,
510
- parentField: nodeBPath.parentField,
511
- parentIndex: nodeBPath.parentIndex,
512
- };
513
- const expected = { parent: undefined, parentField: rootFieldKey, parentIndex: 0 };
514
- assert.deepEqual(actual, expected);
515
- });
516
- it("move adjacent nodes to separate destinations", () => {
517
- const tree = makeTreeFromJson(["A", "B", "C", "D"]);
518
- const tree2 = tree.fork();
519
- tree2.transaction.start();
520
- const sequence = tree2.editor.sequenceField(rootField);
521
- sequence.move(1, 1, 0);
522
- sequence.move(2, 1, 4);
523
- tree2.transaction.commit();
524
- tree.merge(tree2);
525
- expectJsonTree([tree, tree2], ["B", "A", "D", "C"]);
526
- });
527
- it("move separate nodes to adjacent destinations", () => {
528
- const tree = makeTreeFromJson(["A", "B", "C", "D"]);
529
- const tree2 = tree.fork();
530
- tree2.transaction.start();
531
- const sequence = tree2.editor.sequenceField(rootField);
532
- sequence.move(0, 1, 2);
533
- sequence.move(3, 1, 2);
534
- tree2.transaction.commit();
535
- tree.merge(tree2);
536
- expectJsonTree([tree, tree2], ["B", "A", "D", "C"]);
537
- });
538
- it("ancestor of move destination removed", () => {
539
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
540
- const tree2 = tree.fork();
541
- const first = {
542
- parent: undefined,
543
- parentIndex: 0,
544
- parentField: rootFieldKey,
545
- };
546
- const second = {
547
- parent: undefined,
548
- parentIndex: 1,
549
- parentField: rootFieldKey,
550
- };
551
- const { undoStack } = createTestUndoRedoStacks(tree.events);
552
- const sequence = tree.editor.sequenceField(rootField);
553
- // Remove destination's ancestor concurrently
554
- sequence.remove(1, 1);
555
- const deletion = undoStack.pop();
556
- tree2.editor.move({ parent: first, field: brand("foo") }, 0, 1, { parent: second, field: brand("bar") }, 0);
557
- tree.merge(tree2, false);
558
- tree2.rebaseOnto(tree);
559
- expectJsonTree([tree, tree2], [{}]);
560
- deletion?.revert();
561
- tree2.rebaseOnto(tree);
562
- expectJsonTree([tree, tree2], [{}, { bar: ["a"] }]);
563
- });
564
- it("ancestor of move source removed", () => {
565
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
566
- const tree2 = tree.fork();
567
- const first = {
568
- parent: undefined,
569
- parentIndex: 0,
570
- parentField: rootFieldKey,
571
- };
572
- const second = {
573
- parent: undefined,
574
- parentIndex: 1,
575
- parentField: rootFieldKey,
576
- };
577
- const { undoStack } = createTestUndoRedoStacks(tree.events);
578
- const sequence = tree.editor.sequenceField(rootField);
579
- // Remove source's ancestor concurrently
580
- sequence.remove(0, 1);
581
- const deletion = undoStack.pop();
582
- tree2.editor.move({ parent: first, field: brand("foo") }, 0, 1, { parent: second, field: brand("bar") }, 0);
583
- tree.merge(tree2, false);
584
- tree2.rebaseOnto(tree);
585
- expectJsonTree([tree, tree2], [{ bar: ["a"] }]);
586
- deletion?.revert();
587
- tree2.rebaseOnto(tree);
588
- expectJsonTree([tree, tree2], [{}, { bar: ["a"] }]);
589
- });
590
- it("ancestor of move source removed then revived", () => {
591
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
592
- const tree2 = tree.fork();
593
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
594
- const first = {
595
- parent: undefined,
596
- parentIndex: 0,
597
- parentField: rootFieldKey,
598
- };
599
- const second = {
600
- parent: undefined,
601
- parentIndex: 1,
602
- parentField: rootFieldKey,
603
- };
604
- const sequence = tree.editor.sequenceField(rootField);
605
- // Remove source's ancestor concurrently
606
- sequence.remove(0, 1);
607
- // Revive the ancestor
608
- undoStack.pop()?.revert();
609
- tree2.editor.move({ parent: first, field: brand("foo") }, 0, 1, { parent: second, field: brand("bar") }, 0);
610
- tree.merge(tree2, false);
611
- tree2.rebaseOnto(tree);
612
- expectJsonTree([tree, tree2], [{}, { bar: ["a"] }]);
613
- unsubscribe();
614
- });
615
- it("node being concurrently moved and removed with source ancestor revived", () => {
616
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
617
- const tree2 = tree.fork();
618
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
619
- const first = {
620
- parent: undefined,
621
- parentIndex: 0,
622
- parentField: rootFieldKey,
623
- };
624
- const second = {
625
- parent: undefined,
626
- parentIndex: 1,
627
- parentField: rootFieldKey,
628
- };
629
- // Remove source's ancestor concurrently
630
- tree.editor.sequenceField(rootField).remove(0, 1);
631
- expectJsonTree(tree, [{}]);
632
- // Revive source's ancestor
633
- undoStack.pop()?.revert();
634
- expectJsonTree(tree, [{ foo: ["a"] }, {}]);
635
- // Remove ["a"]
636
- tree.editor.sequenceField({ parent: first, field: brand("foo") }).remove(0, 1);
637
- expectJsonTree(tree, [{}, {}]);
638
- tree2.editor.move({ parent: first, field: brand("foo") }, 0, 1, { parent: second, field: brand("bar") }, 0);
639
- tree.merge(tree2, false);
640
- tree2.rebaseOnto(tree);
641
- expectJsonTree([tree, tree2], [{}, { bar: ["a"] }]);
642
- unsubscribe();
643
- });
644
- it("remove, undo, childchange rebased over childchange", () => {
645
- const tree = makeTreeFromJson([{ foo: ["b"] }]);
646
- const tree2 = tree.fork();
647
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree2.events);
648
- const first = {
649
- parent: undefined,
650
- parentIndex: 0,
651
- parentField: rootFieldKey,
652
- };
653
- const sequenceUpPath = {
654
- parent: first,
655
- parentIndex: 0,
656
- parentField: brand("foo"),
657
- };
658
- const sequence = tree2.editor.sequenceField(rootField);
659
- sequence.remove(0, 1);
660
- undoStack.pop()?.revert();
661
- tree2.editor
662
- .sequenceField({ parent: sequenceUpPath, field: EmptyKey })
663
- .insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "c" }));
664
- tree.editor
665
- .sequenceField({ parent: sequenceUpPath, field: EmptyKey })
666
- .insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "a" }));
667
- tree2.rebaseOnto(tree);
668
- expectJsonTree([tree2], [{ foo: ["a", "b", "c"] }]);
669
- unsubscribe();
670
- });
671
- it("childchange rebase over remove, undo, childchange", () => {
672
- const tree = makeTreeFromJson([{ foo: ["b"] }]);
673
- const tree2 = tree.fork();
674
- const { undoStack, redoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
675
- const first = {
676
- parent: undefined,
677
- parentIndex: 0,
678
- parentField: rootFieldKey,
679
- };
680
- const sequenceUpPath = {
681
- parent: first,
682
- parentIndex: 0,
683
- parentField: brand("foo"),
684
- };
685
- const sequence = tree.editor.sequenceField(rootField);
686
- sequence.remove(0, 1);
687
- undoStack.pop()?.revert();
688
- redoStack.pop()?.revert();
689
- undoStack.pop()?.revert();
690
- tree.editor
691
- .sequenceField({ parent: sequenceUpPath, field: EmptyKey })
692
- .insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "c" }));
693
- tree2.editor
694
- .sequenceField({ parent: sequenceUpPath, field: EmptyKey })
695
- .insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "a" }));
696
- tree2.rebaseOnto(tree);
697
- expectJsonTree([tree2], [{ foo: ["a", "b", "c"] }]);
698
- unsubscribe();
699
- });
700
- it("node being concurrently moved and revived with source ancestor removed", () => {
701
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
702
- const tree2 = tree.fork();
703
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
704
- const first = {
705
- parent: undefined,
706
- parentIndex: 0,
707
- parentField: rootFieldKey,
708
- };
709
- const second = {
710
- parent: undefined,
711
- parentIndex: 1,
712
- parentField: rootFieldKey,
713
- };
714
- // Remove ["a"]
715
- tree.editor.sequenceField({ parent: first, field: brand("foo") }).remove(0, 1);
716
- expectJsonTree(tree, [{}, {}]);
717
- // Revive ["a"]
718
- undoStack.pop()?.revert();
719
- expectJsonTree(tree, [{ foo: ["a"] }, {}]);
720
- // Remove source's ancestor concurrently
721
- tree.editor.sequenceField(rootField).remove(0, 1);
722
- expectJsonTree(tree, [{}]);
723
- tree2.editor.move({ parent: first, field: brand("foo") }, 0, 1, { parent: second, field: brand("bar") }, 0);
724
- tree.merge(tree2, false);
725
- tree2.rebaseOnto(tree);
726
- expectJsonTree([tree, tree2], [{ bar: ["a"] }]);
727
- unsubscribe();
728
- });
729
- it("remove ancestor of return source", () => {
730
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
731
- const first = {
732
- parent: undefined,
733
- parentIndex: 0,
734
- parentField: rootFieldKey,
735
- };
736
- const second = {
737
- parent: undefined,
738
- parentIndex: 1,
739
- parentField: rootFieldKey,
740
- };
741
- // Move to bar: [{}, { bar: ["a"] }}]
742
- tree.editor.move({ parent: first, field: brand("foo") }, 0, 1, { parent: second, field: brand("bar") }, 0);
743
- const tree2 = tree.fork();
744
- const undoTree1 = createTestUndoRedoStacks(tree.events);
745
- const undoTree2 = createTestUndoRedoStacks(tree2.events);
746
- const sequence = tree.editor.sequenceField(rootField);
747
- // Remove ancestor of "a"
748
- sequence.remove(1, 1);
749
- // Undo move to bar
750
- undoTree2.undoStack.pop()?.revert();
751
- tree.merge(tree2, false);
752
- tree2.rebaseOnto(tree);
753
- expectJsonTree([tree, tree2], [{}]);
754
- // Undo deletion of ancestor of "a"
755
- undoTree1.undoStack.pop()?.revert();
756
- tree2.rebaseOnto(tree);
757
- expectJsonTree([tree, tree2], [{}, { bar: ["a"] }]);
758
- undoTree1.unsubscribe();
759
- undoTree2.unsubscribe();
760
- });
761
- it("remove ancestor of return destination", () => {
762
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
763
- const first = {
764
- parent: undefined,
765
- parentIndex: 0,
766
- parentField: rootFieldKey,
767
- };
768
- const second = {
769
- parent: undefined,
770
- parentIndex: 1,
771
- parentField: rootFieldKey,
772
- };
773
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
774
- // Move to bar: [{}, { bar: ["a"] }}]
775
- tree.editor.move({ parent: first, field: brand("foo") }, 0, 1, { parent: second, field: brand("bar") }, 0);
776
- const tree2 = tree.fork();
777
- const sequence = tree.editor.sequenceField(rootField);
778
- // Remove destination ancestor
779
- sequence.remove(0, 1);
780
- // Undo move to bar
781
- undoStack[0].revert();
782
- tree.merge(tree2, false);
783
- tree2.rebaseOnto(tree);
784
- expectJsonTree([tree, tree2], [{}]);
785
- unsubscribe();
786
- });
787
- it("can move nodes from field, and back to the source field", () => {
788
- const tree = makeTreeFromJson({
789
- foo: ["A", "B", "C", "D"],
790
- bar: ["E"],
791
- });
792
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
793
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
794
- tree.transaction.start();
795
- // Move nodes from foo into bar.
796
- tree.editor.move({ parent: fooList, field: brand("") }, 0, 3, { parent: barList, field: brand("") }, 0);
797
- // Move the same nodes from bar back to foo.
798
- tree.editor.move({ parent: barList, field: brand("") }, 0, 3, { parent: fooList, field: brand("") }, 0);
799
- tree.transaction.commit();
800
- const expectedState = [
801
- {
802
- foo: ["A", "B", "C", "D"],
803
- bar: ["E"],
804
- },
805
- ];
806
- expectJsonTree(tree, expectedState);
807
- });
808
- it("can handle concurrent moves of the same node", () => {
809
- const tree1 = makeTreeFromJson([{ foo: [], bar: [] }, "A"]);
810
- const tree2 = tree1.fork();
811
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
812
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
813
- tree1.editor.move(rootField, 1, 1, { parent: fooList, field: brand("") }, 0);
814
- expectJsonTree(tree1, [{ foo: ["A"], bar: [] }]);
815
- tree2.editor.move(rootField, 1, 1, { parent: barList, field: brand("") }, 0);
816
- expectJsonTree(tree2, [{ foo: [], bar: ["A"] }]);
817
- tree1.merge(tree2, false);
818
- tree2.rebaseOnto(tree1);
819
- expectJsonTree([tree1, tree2], [{ foo: [], bar: ["A"] }]);
820
- });
821
- it("can move different nodes with 3 different fields", () => {
822
- const tree = makeTreeFromJson({
823
- foo: ["A", "B", "C", "D"],
824
- bar: ["E", "F", "G", "H"],
825
- baz: ["I", "J", "K", "L"],
826
- });
827
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
828
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
829
- const bazList = { parent: rootNode, parentField: brand("baz"), parentIndex: 0 };
830
- tree.transaction.start();
831
- // Move nodes from foo into bar.
832
- tree.editor.move({ parent: fooList, field: brand("") }, 0, 2, { parent: barList, field: brand("") }, 0);
833
- // Move different nodes from bar into baz.
834
- tree.editor.move({ parent: barList, field: brand("") }, 2, 2, { parent: bazList, field: brand("") }, 0);
835
- // Move different nodes from baz into foo.
836
- tree.editor.move({ parent: bazList, field: brand("") }, 2, 2, { parent: fooList, field: brand("") }, 0);
837
- tree.transaction.commit();
838
- const expectedState = [
839
- {
840
- foo: ["I", "J", "C", "D"],
841
- bar: ["A", "B", "G", "H"],
842
- baz: ["E", "F", "K", "L"],
843
- },
844
- ];
845
- expectJsonTree(tree, expectedState);
846
- });
847
- it("can move inserted nodes to a different field", () => {
848
- const tree = makeTreeFromJson({
849
- foo: ["D"],
850
- bar: ["E"],
851
- });
852
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
853
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
854
- tree.transaction.start();
855
- // inserts nodes to move
856
- const field = tree.editor.sequenceField({ parent: fooList, field: brand("") });
857
- field.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "C" }));
858
- field.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "B" }));
859
- field.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "A" }));
860
- // Move nodes from foo into bar.
861
- tree.editor.move({ parent: fooList, field: brand("") }, 0, 3, { parent: barList, field: brand("") }, 0);
862
- tree.transaction.commit();
863
- const expectedState = [
864
- {
865
- foo: ["D"],
866
- bar: ["A", "B", "C", "E"],
867
- },
868
- ];
869
- expectJsonTree(tree, expectedState);
870
- });
871
- it("can move nodes to another field and remove them", () => {
872
- const tree = makeTreeFromJson({
873
- foo: ["A", "B", "C", "D"],
874
- bar: ["E"],
875
- });
876
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
877
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
878
- tree.transaction.start();
879
- // Move nodes from foo into bar.
880
- tree.editor.move({ parent: fooList, field: brand("") }, 0, 3, { parent: barList, field: brand("") }, 0);
881
- // Removes moved nodes
882
- const field = tree.editor.sequenceField({ parent: barList, field: brand("") });
883
- field.remove(0, 3);
884
- tree.transaction.commit();
885
- const expectedState = [
886
- {
887
- foo: ["D"],
888
- bar: ["E"],
889
- },
890
- ];
891
- expectJsonTree(tree, expectedState);
892
- });
893
- it("can move nodes to another field and remove a subset of them", () => {
894
- const tree = makeTreeFromJson({
895
- foo: ["A", "B", "C", "D", "E"],
896
- bar: ["F"],
897
- });
898
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
899
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
900
- tree.transaction.start();
901
- // Move nodes from foo into bar.
902
- tree.editor.move({ parent: fooList, field: brand("") }, 0, 4, { parent: barList, field: brand("") }, 0);
903
- // Removes subset of moved nodes
904
- const field = tree.editor.sequenceField({ parent: barList, field: brand("") });
905
- field.remove(1, 2);
906
- tree.transaction.commit();
907
- const expectedState = [
908
- {
909
- foo: ["E"],
910
- bar: ["A", "D", "F"],
911
- },
912
- ];
913
- expectJsonTree(tree, expectedState);
914
- });
915
- it("can move nodes to one field, and move remaining nodes to another field", () => {
916
- const tree = makeTreeFromJson({
917
- foo: ["A", "B", "C", "D"],
918
- bar: ["E"],
919
- baz: ["F"],
920
- });
921
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
922
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
923
- const bazList = { parent: rootNode, parentField: brand("baz"), parentIndex: 0 };
924
- tree.transaction.start();
925
- // Move nodes from foo into bar.
926
- tree.editor.move({ parent: fooList, field: brand("") }, 0, 2, { parent: barList, field: brand("") }, 0);
927
- // Move nodes from foo into baz.
928
- tree.editor.move({ parent: fooList, field: brand("") }, 0, 2, { parent: bazList, field: brand("") }, 0);
929
- tree.transaction.commit();
930
- const expectedState = [
931
- {
932
- foo: [],
933
- bar: ["A", "B", "E"],
934
- baz: ["C", "D", "F"],
935
- },
936
- ];
937
- expectJsonTree(tree, expectedState);
938
- });
939
- it("can move nodes to one field, and move its child node to another field", () => {
940
- const tree = makeTreeFromJson({
941
- foo: ["A", { foo: "B" }],
942
- bar: ["C"],
943
- baz: ["D"],
944
- });
945
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
946
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
947
- const barListChild = {
948
- parent: barList,
949
- parentField: brand(""),
950
- parentIndex: 0,
951
- };
952
- const bazList = { parent: rootNode, parentField: brand("baz"), parentIndex: 0 };
953
- tree.transaction.start();
954
- // Move node from foo into bar.
955
- tree.editor.move({ parent: fooList, field: brand("") }, 1, 1, { parent: barList, field: brand("") }, 0);
956
- // Move child node from bar into baz.
957
- tree.editor.move({ parent: barListChild, field: brand("foo") }, 0, 1, { parent: bazList, field: brand("") }, 0);
958
- tree.transaction.commit();
959
- const expectedState = [
960
- {
961
- foo: ["A"],
962
- bar: [{}, "C"],
963
- baz: ["B", "D"],
964
- },
965
- ];
966
- expectJsonTree(tree, expectedState);
967
- });
968
- it("can move child node to one field, and move its parent node to another field", () => {
969
- const tree = makeTreeFromJson({
970
- foo: ["A", { foo: "B" }],
971
- bar: ["C"],
972
- baz: ["D"],
973
- });
974
- const fooList = { parent: rootNode, parentField: brand("foo"), parentIndex: 0 };
975
- const fooListChild = {
976
- parent: fooList,
977
- parentField: brand(""),
978
- parentIndex: 1,
979
- };
980
- const barList = { parent: rootNode, parentField: brand("bar"), parentIndex: 0 };
981
- const bazList = { parent: rootNode, parentField: brand("baz"), parentIndex: 0 };
982
- tree.transaction.start();
983
- // Move child node from foo into baz.
984
- tree.editor.move({ parent: fooListChild, field: brand("foo") }, 0, 1, { parent: bazList, field: brand("") }, 0);
985
- // Move node from foo into bar.
986
- tree.editor.move({ parent: fooList, field: brand("") }, 1, 1, { parent: barList, field: brand("") }, 0);
987
- tree.transaction.commit();
988
- const expectedState = [
989
- {
990
- foo: ["A"],
991
- bar: [{}, "C"],
992
- baz: ["B", "D"],
993
- },
994
- ];
995
- expectJsonTree(tree, expectedState);
996
- });
997
- it("can move a node out from under its parent, and remove that parent from its containing sequence field", () => {
998
- const tree = makeTreeFromJson({ src: ["A"], dst: ["B"] });
999
- const srcList = { parent: rootNode, parentField: brand("src"), parentIndex: 0 };
1000
- const dstList = { parent: rootNode, parentField: brand("dst"), parentIndex: 0 };
1001
- tree.transaction.start();
1002
- // Move node from foo into rootField.
1003
- tree.editor.move({ parent: srcList, field: brand("") }, 0, 1, { parent: dstList, field: brand("") }, 0);
1004
- // Removes parent node
1005
- const field = tree.editor.sequenceField({
1006
- parent: rootNode,
1007
- field: brand("src"),
1008
- });
1009
- field.remove(0, 1);
1010
- tree.transaction.commit();
1011
- const expectedState = [{ dst: ["A", "B"] }];
1012
- expectJsonTree(tree, expectedState);
1013
- });
1014
- it("can move a node out from under its parent, and remove that parent from its containing optional field", () => {
1015
- const tree = makeTreeFromJson({ src: ["A"], dst: ["B"] });
1016
- const srcList = { parent: rootNode, parentField: brand("src"), parentIndex: 0 };
1017
- const dstList = { parent: rootNode, parentField: brand("dst"), parentIndex: 0 };
1018
- tree.transaction.start();
1019
- // Move node from foo into rootField.
1020
- tree.editor.move({ parent: srcList, field: brand("") }, 0, 1, { parent: dstList, field: brand("") }, 0);
1021
- // Removes parent node
1022
- const field = tree.editor.optionalField({
1023
- parent: rootNode,
1024
- field: brand("src"),
1025
- });
1026
- field.set(undefined, false);
1027
- tree.transaction.commit();
1028
- const expectedState = [{ dst: ["A", "B"] }];
1029
- expectJsonTree(tree, expectedState);
1030
- });
1031
- it("can move a node out from under its parent, and remove that parent from its containing value field", () => {
1032
- const tree = makeTreeFromJson({ src: ["A"], dst: ["B"] });
1033
- const srcList = { parent: rootNode, parentField: brand("src"), parentIndex: 0 };
1034
- const dstList = { parent: rootNode, parentField: brand("dst"), parentIndex: 0 };
1035
- tree.transaction.start();
1036
- // Move node from foo into rootField.
1037
- tree.editor.move({ parent: srcList, field: brand("") }, 0, 1, { parent: dstList, field: brand("") }, 0);
1038
- // Removes parent node
1039
- const field = tree.editor.valueField({
1040
- parent: rootNode,
1041
- field: brand("src"),
1042
- });
1043
- field.set(cursorForJsonableTreeNode({ type: jsonObject.name }));
1044
- tree.transaction.commit();
1045
- const expectedState = [{ src: {}, dst: ["A", "B"] }];
1046
- expectJsonTree(tree, expectedState);
1047
- });
1048
- it("can move a node out from a field and into a field under a sibling", () => {
1049
- const rootNode2 = {
1050
- parent: undefined,
1051
- parentField: rootFieldKey,
1052
- parentIndex: 1,
1053
- };
1054
- const tree = makeTreeFromJson(["A", {}]);
1055
- tree.editor.move(rootField, 0, 1, { parent: rootNode2, field: brand("foo") }, 0);
1056
- const expectedState = [{ foo: "A" }];
1057
- expectJsonTree(tree, expectedState);
1058
- });
1059
- it("can rebase a move over the deletion of the source parent", () => {
1060
- const tree = makeTreeFromJson({ src: ["A", "B"], dst: ["C", "D"] });
1061
- const childBranch = tree.fork();
1062
- const srcList = { parent: rootNode, parentField: brand("src"), parentIndex: 0 };
1063
- const dstList = { parent: rootNode, parentField: brand("dst"), parentIndex: 0 };
1064
- // In the child branch, move a node from src to dst.
1065
- childBranch.editor.move({ parent: srcList, field: brand("") }, 0, 1, { parent: dstList, field: brand("") }, 0);
1066
- // Removes parent node of the src field
1067
- tree.editor
1068
- .optionalField({ parent: rootNode, field: brand("src") })
1069
- .set(undefined, false);
1070
- // Edits to removed subtrees are applied
1071
- const expectedState = [{ dst: ["A", "C", "D"] }];
1072
- childBranch.rebaseOnto(tree);
1073
- expectJsonTree(childBranch, expectedState);
1074
- tree.merge(childBranch);
1075
- expectJsonTree(tree, expectedState);
1076
- });
1077
- it("can rebase a move over the deletion of the destination parent", () => {
1078
- const tree = makeTreeFromJson({ src: ["A", "B"], dst: ["C", "D"] });
1079
- const childBranch = tree.fork();
1080
- const srcList = { parent: rootNode, parentField: brand("src"), parentIndex: 0 };
1081
- const dstList = { parent: rootNode, parentField: brand("dst"), parentIndex: 0 };
1082
- // In the child branch, move a node from src to dst.
1083
- childBranch.editor.move({ parent: srcList, field: brand("") }, 0, 1, { parent: dstList, field: brand("") }, 0);
1084
- // Removes parent node of the dst field
1085
- tree.editor
1086
- .optionalField({ parent: rootNode, field: brand("dst") })
1087
- .set(undefined, false);
1088
- // Edits to removed subtrees are applied
1089
- const expectedState = [{ src: ["B"] }];
1090
- childBranch.rebaseOnto(tree);
1091
- expectJsonTree(childBranch, expectedState);
1092
- tree.merge(childBranch);
1093
- expectJsonTree(tree, expectedState);
1094
- });
1095
- it("can rebase a move over the deletion of the source and destination parents", () => {
1096
- const tree = makeTreeFromJson({ src: ["A", "B"], dst: ["C", "D"] });
1097
- const childBranch = tree.fork();
1098
- const srcList = { parent: rootNode, parentField: brand("src"), parentIndex: 0 };
1099
- const dstList = { parent: rootNode, parentField: brand("dst"), parentIndex: 0 };
1100
- // In the child branch, move a node from src to dst.
1101
- childBranch.editor.move({ parent: srcList, field: brand("") }, 0, 1, { parent: dstList, field: brand("") }, 0);
1102
- tree.transaction.start();
1103
- // Removes parent node of the src field
1104
- tree.editor
1105
- .optionalField({ parent: rootNode, field: brand("src") })
1106
- .set(undefined, false);
1107
- // Removes parent node of the dst field
1108
- tree.editor
1109
- .optionalField({ parent: rootNode, field: brand("dst") })
1110
- .set(undefined, false);
1111
- tree.transaction.commit();
1112
- // Edits to removed subtrees are currently ignored
1113
- const expectedState = [{}];
1114
- childBranch.rebaseOnto(tree);
1115
- expectJsonTree(childBranch, expectedState);
1116
- tree.merge(childBranch);
1117
- expectJsonTree(tree, expectedState);
1118
- });
1119
- it("rebase changes to field untouched by base", () => {
1120
- const tree = makeTreeFromJson({ foo: [{ bar: "A" }, { baz: "B" }] });
1121
- const tree1 = tree.fork();
1122
- const tree2 = tree.fork();
1123
- const fooList = {
1124
- parent: rootNode,
1125
- parentField: brand("foo"),
1126
- parentIndex: 0,
1127
- };
1128
- const foo1 = {
1129
- parent: fooList,
1130
- parentField: brand(""),
1131
- parentIndex: 0,
1132
- };
1133
- const nodeB = {
1134
- parent: fooList,
1135
- parentField: brand(""),
1136
- parentIndex: 1,
1137
- };
1138
- tree1.editor
1139
- .valueField({ parent: nodeB, field: brand("baz") })
1140
- .set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "b" }));
1141
- tree2.editor.sequenceField({ parent: foo1, field: brand("bar") }).remove(0, 1);
1142
- tree.merge(tree1, false);
1143
- tree.merge(tree2, false);
1144
- tree1.rebaseOnto(tree);
1145
- tree2.rebaseOnto(tree);
1146
- expectJsonTree([tree, tree1, tree2], [{ foo: [{}, { baz: "b" }] }]);
1147
- });
1148
- // Skipped because we don't currently support undoing edits from a parent branch
1149
- it.skip("undo restores a removed node even when that node was never present on the branch", () => {
1150
- const tree = makeTreeFromJson([]);
1151
- const tree2 = tree.fork();
1152
- tree.editor.sequenceField(rootField).insert(0, singleJsonCursor("43"));
1153
- tree.editor.sequenceField(rootField).remove(0, 1);
1154
- const tree3 = tree.fork();
1155
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree3.events);
1156
- undoStack.pop()?.revert(); // Restores "43"
1157
- tree.merge(tree3, false);
1158
- tree3.rebaseOnto(tree);
1159
- expectJsonTree([tree, tree3], ["43"]);
1160
- // This rebase should introduce/restore 43 even though tree2 never saw 43 before
1161
- tree2.rebaseOnto(tree);
1162
- expectJsonTree([tree2], ["43"]);
1163
- unsubscribe();
1164
- });
1165
- it("can be registered a path visitor that can read new content being inserted into the tree when afterAttach is invoked", () => {
1166
- const tree = makeTreeFromJson({ foo: [{ bar: "A" }, { baz: "B" }] });
1167
- const cursor = tree.forest.allocateCursor();
1168
- moveToDetachedField(tree.forest, cursor);
1169
- cursor.enterNode(0);
1170
- const anchor = cursor.buildAnchor();
1171
- const node = tree.locate(anchor) ?? assert.fail();
1172
- cursor.free();
1173
- let valueAfterInsert;
1174
- const pathVisitor = {
1175
- onRemove(path, count) { },
1176
- onInsert(path, content) { },
1177
- afterCreate(content) { },
1178
- beforeReplace(newContent, oldContent, oldContentDestination) { },
1179
- afterReplace(newContentSource, newContent, oldContent) { },
1180
- beforeDestroy(content) { },
1181
- beforeAttach(source, destination) { },
1182
- afterAttach(source, destination) {
1183
- const cursor2 = tree.forest.allocateCursor();
1184
- moveToDetachedField(tree.forest, cursor2);
1185
- cursor2.enterNode(0);
1186
- cursor2.enterField(brand("foo"));
1187
- cursor2.enterNode(1);
1188
- valueAfterInsert = cursor2.value;
1189
- cursor2.free();
1190
- },
1191
- beforeDetach(source, destination) { },
1192
- afterDetach(source, destination) { },
1193
- };
1194
- const unsubscribePathVisitor = node.on("subtreeChanging", (n) => pathVisitor);
1195
- const field = tree.editor.sequenceField({
1196
- parent: rootNode,
1197
- field: brand("foo"),
1198
- });
1199
- field.insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "C" }));
1200
- assert.equal(valueAfterInsert, "C");
1201
- unsubscribePathVisitor();
1202
- });
1203
- it("throws when moved under child node", () => {
1204
- const tree = makeTreeFromJson({ foo: { bar: "A" } });
1205
- const fooPath = {
1206
- parent: rootNode,
1207
- parentField: brand("foo"),
1208
- parentIndex: 0,
1209
- };
1210
- assert.throws(() => tree.editor.move({ parent: rootNode, field: brand("foo") }, 0, 1, { parent: fooPath, field: brand("bar") }, 0));
1211
- });
1212
- it("concurrent cycle creating move", () => {
1213
- const tree = makeTreeFromJson([["foo"], ["bar"]]);
1214
- const tree2 = tree.fork();
1215
- const fooList = {
1216
- parent: undefined,
1217
- parentField: rootFieldKey,
1218
- parentIndex: 0,
1219
- };
1220
- const barList = {
1221
- parent: undefined,
1222
- parentField: rootFieldKey,
1223
- parentIndex: 1,
1224
- };
1225
- const fooSequence = { field: brand(""), parent: fooList };
1226
- const barSequence = { field: brand(""), parent: barList };
1227
- tree.editor.move(rootField, 0, 1, barSequence, 0);
1228
- expectJsonTree(tree, [[["foo"], "bar"]]);
1229
- tree2.editor.move(rootField, 1, 1, fooSequence, 0);
1230
- expectJsonTree(tree2, [[["bar"], "foo"]]);
1231
- tree.merge(tree2, false);
1232
- tree2.rebaseOnto(tree);
1233
- expectJsonTree([tree, tree2], []);
1234
- });
1235
- it("rebase insert within revive", () => {
1236
- const tree = makeTreeFromJson(["y"]);
1237
- const tree1 = tree.fork();
1238
- const { undoStack } = createTestUndoRedoStacks(tree1.events);
1239
- insert(tree1, 1, "a", "c");
1240
- remove(tree1, 1, 2); // Remove ac
1241
- const tree2 = tree1.fork();
1242
- undoStack.pop()?.revert(); // Restores ac
1243
- insert(tree1, 2, "b");
1244
- expectJsonTree(tree1, ["y", "a", "b", "c"]);
1245
- insert(tree2, 0, "x");
1246
- tree1.rebaseOnto(tree2);
1247
- tree2.merge(tree1);
1248
- const expected = ["x", "y", "a", "b", "c"];
1249
- expectJsonTree([tree1, tree2], expected);
1250
- });
1251
- describe("Exhaustive removal tests", () => {
1252
- // Toggle the constant below to run each scenario as a separate test.
1253
- // This is useful to debug a specific scenario but makes CI and the test browser slower.
1254
- // Note that if the numbers of nodes and peers are too high (more than 3 nodes and 3 peers),
1255
- // then the number of scenarios overwhelms the test browser.
1256
- // Should be committed with the constant set to false.
1257
- const individualTests = false;
1258
- const nbNodes = 3;
1259
- const nbPeers = 2;
1260
- const testRemoveRevive = true;
1261
- const testMoveReturn = true;
1262
- assert(testRemoveRevive || testMoveReturn, "No scenarios to run");
1263
- const [outerFixture, innerFixture] = individualTests
1264
- ? [describe, it]
1265
- : [it, (title, fn) => fn()];
1266
- let StepType;
1267
- (function (StepType) {
1268
- StepType[StepType["Remove"] = 0] = "Remove";
1269
- StepType[StepType["Undo"] = 1] = "Undo";
1270
- })(StepType || (StepType = {}));
1271
- /**
1272
- * Generates all permutations for `nbNodes` and `nbPeers` such that:
1273
- * - Each node is removed exactly once.
1274
- * - Each removal is undone by the peer that removed it.
1275
- * The order of removals and undos is unique when considering which peer does what.
1276
- * This does mean that this function produces symmetrical scenarios such as:
1277
- * - D(i:0 p:0) D(i:1 p:1) U(1) U(0)
1278
- * - D(i:0 p:1) D(i:1 p:0) U(0) U(1)
1279
- * This is taken advantage of to test different network conditions (see {@link runScenario}).
1280
- */
1281
- function buildScenarios() {
1282
- const buildState = {
1283
- removed: makeArray(nbNodes, () => false),
1284
- peerUndoStack: makeArray(nbPeers, () => 0),
1285
- };
1286
- /**
1287
- * Generates all permutations with prefix `scenario`
1288
- */
1289
- function* buildScenariosWithPrefix(scenario = []) {
1290
- let done = true;
1291
- for (let p = 0; p < nbPeers; p++) {
1292
- for (let i = 0; i < nbNodes; i++) {
1293
- if (!buildState.removed[i]) {
1294
- buildState.removed[i] = true;
1295
- buildState.peerUndoStack[p] += 1;
1296
- yield* buildScenariosWithPrefix([
1297
- ...scenario,
1298
- { type: StepType.Remove, index: i, peer: p },
1299
- ]);
1300
- buildState.peerUndoStack[p] -= 1;
1301
- buildState.removed[i] = false;
1302
- done = false;
1303
- }
1304
- }
1305
- if (buildState.peerUndoStack[p] > 0) {
1306
- buildState.peerUndoStack[p] -= 1;
1307
- yield* buildScenariosWithPrefix([
1308
- ...scenario,
1309
- { type: StepType.Undo, peer: p },
1310
- ]);
1311
- buildState.peerUndoStack[p] += 1;
1312
- done = false;
1313
- }
1314
- }
1315
- if (done) {
1316
- yield scenario;
1317
- }
1318
- }
1319
- return buildScenariosWithPrefix();
1320
- }
1321
- const delAction = (peer, idx) => remove(peer, idx, 1);
1322
- const srcField = rootField;
1323
- const dstField = { parent: undefined, field: brand("dst") };
1324
- const moveAction = (peer, idx) => peer.editor.move(srcField, idx, 1, dstField, 0);
1325
- /**
1326
- * Runs the given `scenario` using either remove or move operations.
1327
- * Verifies that the final state is the same as the initial state.
1328
- * Simulates different peers learning of the same edit at different times.
1329
- * For example, given the following two (otherwise symmetrical) scenarios:
1330
- * 1) D(i:0 p:0) D(i:1 p:1) U(1) U(0)
1331
- * 2) D(i:0 p:1) D(i:1 p:0) U(0) U(1)
1332
- * In scenario 1, the peer that removes N1 learns of the deletion of N0 beforehand.
1333
- * In scenario 2, the peer that removes N1 learns of the deletion of N0 afterwards.
1334
- * @param scenario - The scenario to run through.
1335
- * @param useMove - When `true`, uses move operations. Otherwise, uses remove operations.
1336
- */
1337
- function runScenario(scenario, useMove) {
1338
- const [verb, action] = useMove ? ["M", moveAction] : ["D", delAction];
1339
- const title = scenario
1340
- .map((s) => {
1341
- switch (s.type) {
1342
- case StepType.Remove:
1343
- return `${verb}(i:${s.index} p:${s.peer})`;
1344
- case StepType.Undo:
1345
- return `U(${s.peer})`;
1346
- default:
1347
- unreachableCase(s);
1348
- }
1349
- })
1350
- .join(" ");
1351
- innerFixture(title, () => {
1352
- // Indicator which keeps track of which nodes are present in the root field for a given peer.
1353
- // Represented as an integer (0: removed, 1: present) to facilitate summing.
1354
- // Used to compute the index of the next node to remove.
1355
- const present = makeArray(nbPeers, () => makeArray(nbNodes, () => 1));
1356
- // Same as `present` but for `tree` branch.
1357
- const presentOnTree = makeArray(nbNodes, () => 1);
1358
- // The number of remaining undos available for each peer.
1359
- const undoQueues = makeArray(nbPeers, () => []);
1360
- const tree = makeTreeFromJson(startState);
1361
- const peers = makeArray(nbPeers, () => tree.fork());
1362
- const peerUndoStacks = peers.map((peer) => createTestUndoRedoStacks(peer.events));
1363
- for (const step of scenario) {
1364
- const iPeer = step.peer;
1365
- const peer = peers[iPeer];
1366
- let presence;
1367
- let affectedNode;
1368
- switch (step.type) {
1369
- case StepType.Remove: {
1370
- const idx = present[iPeer]
1371
- .slice(0, step.index)
1372
- .reduce((a, b) => a + b, 0);
1373
- action(peer, idx);
1374
- presence = 0;
1375
- affectedNode = step.index;
1376
- undoQueues[iPeer].push(step.index);
1377
- break;
1378
- }
1379
- case StepType.Undo: {
1380
- peerUndoStacks[iPeer].undoStack.pop()?.revert();
1381
- presence = 1;
1382
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
1383
- affectedNode = undoQueues[iPeer].pop();
1384
- break;
1385
- }
1386
- default:
1387
- unreachableCase(step);
1388
- }
1389
- tree.merge(peer, false);
1390
- presentOnTree[affectedNode] = presence;
1391
- // We only let peers with a higher index learn of this edit.
1392
- // This breaks the symmetry between scenarios where the permutation of actions is the same
1393
- // except for which peer does which set of actions.
1394
- // It also helps simulate different peers learning of the same edit at different times.
1395
- for (let downhillPeer = iPeer + 1; downhillPeer < nbPeers; downhillPeer++) {
1396
- peers[downhillPeer].rebaseOnto(tree);
1397
- // The peer should now be in the same state as `tree`.
1398
- present[downhillPeer] = [...presentOnTree];
1399
- }
1400
- present[iPeer][affectedNode] = presence;
1401
- }
1402
- peers.forEach((peer) => peer.rebaseOnto(tree));
1403
- expectJsonTree([tree, ...peers], startState);
1404
- peerUndoStacks.forEach(({ unsubscribe }) => unsubscribe());
1405
- });
1406
- }
1407
- const startState = makeArray(nbNodes, (n) => `N${n}`);
1408
- const scenarios = buildScenarios();
1409
- // Increased timeout because the default in CI is 2s but this test fixture naturally takes ~1.9s and was
1410
- // timing out frequently
1411
- outerFixture("All Scenarios", () => {
1412
- for (const scenario of scenarios) {
1413
- if (testRemoveRevive) {
1414
- runScenario(scenario, false);
1415
- }
1416
- if (testMoveReturn) {
1417
- runScenario(scenario, true);
1418
- }
1419
- }
1420
- }).timeout(5000);
1421
- });
1422
- });
1423
- describe("Optional Field", () => {
1424
- describe("can rebase a set over another set", () => {
1425
- it("from a non-empty state", () => {
1426
- const tree1 = makeTreeFromJson([{ foo: "1" }]);
1427
- const tree2 = tree1.fork();
1428
- const tree3 = tree1.fork();
1429
- tree2.editor
1430
- .valueField({ parent: rootNode, field: brand("foo") })
1431
- .set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "2" }));
1432
- tree3.editor
1433
- .valueField({ parent: rootNode, field: brand("foo") })
1434
- .set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "3" }));
1435
- tree1.merge(tree2, false);
1436
- tree1.merge(tree3, false);
1437
- tree2.rebaseOnto(tree1);
1438
- tree3.rebaseOnto(tree2);
1439
- expectJsonTree([tree1, tree2, tree3], [{ foo: "3" }]);
1440
- });
1441
- it("from an empty state", () => {
1442
- const tree1 = makeTreeFromJson([{}]);
1443
- const tree2 = tree1.fork();
1444
- const tree3 = tree1.fork();
1445
- tree2.editor
1446
- .optionalField({ parent: rootNode, field: brand("foo") })
1447
- .set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "2" }), true);
1448
- tree3.editor
1449
- .optionalField({ parent: rootNode, field: brand("foo") })
1450
- .set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "3" }), true);
1451
- tree3.rebaseOnto(tree2);
1452
- tree2.merge(tree3, false);
1453
- tree1.merge(tree3, false);
1454
- expectJsonTree([tree1, tree2, tree3], [{ foo: "3" }]);
1455
- });
1456
- });
1457
- it("can rebase a node replacement and a dependent edit to the new node", () => {
1458
- const tree1 = makeTreeFromJson([]);
1459
- const tree2 = tree1.fork();
1460
- tree1.editor.optionalField(rootField).set(singleJsonCursor("41"), true);
1461
- tree2.editor.optionalField(rootField).set(singleJsonCursor({ foo: "42" }), true);
1462
- expectJsonTree([tree1], ["41"]);
1463
- expectJsonTree([tree2], [{ foo: "42" }]);
1464
- const editor = tree2.editor.valueField({ parent: rootNode, field: brand("foo") });
1465
- editor.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "43" }));
1466
- expectJsonTree([tree2], [{ foo: "43" }]);
1467
- tree1.merge(tree2, false);
1468
- tree2.rebaseOnto(tree1);
1469
- expectJsonTree([tree1, tree2], [{ foo: "43" }]);
1470
- });
1471
- it("can rebase a node replacement and a dependent edit to the new node incrementally", () => {
1472
- const tree1 = makeTreeFromJson([]);
1473
- const tree2 = tree1.fork();
1474
- tree1.editor.optionalField(rootField).set(singleJsonCursor("41"), true);
1475
- tree2.editor.optionalField(rootField).set(singleJsonCursor({ foo: "42" }), true);
1476
- tree1.merge(tree2, false);
1477
- const editor = tree2.editor.valueField({ parent: rootNode, field: brand("foo") });
1478
- editor.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "43" }));
1479
- tree1.merge(tree2, false);
1480
- tree2.rebaseOnto(tree1);
1481
- expectJsonTree([tree1, tree2], [{ foo: "43" }]);
1482
- });
1483
- it("can rebase a node edit over an unrelated edit", () => {
1484
- const tree1 = makeTreeFromJson([{ foo: "40", bar: "123" }]);
1485
- const tree2 = tree1.fork();
1486
- tree1.editor
1487
- .optionalField({
1488
- parent: rootNode,
1489
- field: brand("bar"),
1490
- })
1491
- .set(singleJsonCursor("456"), false);
1492
- const editor = tree2.editor.valueField({ parent: rootNode, field: brand("foo") });
1493
- editor.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "42" }));
1494
- tree1.merge(tree2, false);
1495
- tree2.rebaseOnto(tree1);
1496
- expectJsonTree([tree1, tree2], [{ foo: "42", bar: "456" }]);
1497
- });
1498
- it("can rebase a node edit over the node being replaced and restored", () => {
1499
- const tree1 = makeTreeFromJson([{ foo: "40" }]);
1500
- const tree2 = tree1.fork();
1501
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree1.events);
1502
- tree1.editor.optionalField(rootField).set(singleJsonCursor({ foo: "41" }), false);
1503
- undoStack.pop()?.revert();
1504
- const editor = tree2.editor.valueField({ parent: rootNode, field: brand("foo") });
1505
- editor.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "42" }));
1506
- tree1.merge(tree2, false);
1507
- tree2.rebaseOnto(tree1);
1508
- expectJsonTree([tree1, tree2], [{ foo: "42" }]);
1509
- unsubscribe();
1510
- });
1511
- it("can rebase over successive sets", () => {
1512
- const tree1 = makeTreeFromJson([]);
1513
- const tree2 = tree1.fork();
1514
- tree1.editor.optionalField(rootField).set(singleJsonCursor("1"), true);
1515
- tree2.editor.optionalField(rootField).set(singleJsonCursor("2"), true);
1516
- tree2.rebaseOnto(tree1);
1517
- tree1.editor.optionalField(rootField).set(singleJsonCursor("1 again"), false);
1518
- tree2.rebaseOnto(tree1);
1519
- expectJsonTree(tree2, ["2"]);
1520
- });
1521
- it("can replace and restore a node", () => {
1522
- const tree1 = makeTreeFromJson(["42"]);
1523
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree1.events);
1524
- tree1.editor.optionalField(rootField).set(singleJsonCursor("43"), false);
1525
- expectJsonTree(tree1, ["43"]);
1526
- undoStack.pop()?.revert();
1527
- expectJsonTree(tree1, ["42"]);
1528
- unsubscribe();
1529
- });
1530
- it("can rebase populating a new node over an unrelated change", () => {
1531
- const tree1 = makeTreeFromJson({});
1532
- const tree2 = tree1.fork();
1533
- tree1.editor
1534
- .optionalField({ parent: rootNode, field: brand("foo") })
1535
- .set(singleJsonCursor("A"), true);
1536
- tree2.editor
1537
- .optionalField({ parent: rootNode, field: brand("bar") })
1538
- .set(singleJsonCursor("B"), true);
1539
- expectJsonTree(tree1, [{ foo: "A" }]);
1540
- expectJsonTree(tree2, [{ bar: "B" }]);
1541
- tree1.merge(tree2, false);
1542
- tree2.rebaseOnto(tree1);
1543
- expectJsonTree(tree1, [{ foo: "A", bar: "B" }]);
1544
- expectJsonTree(tree2, [{ foo: "A", bar: "B" }]);
1545
- });
1546
- it("undo restores a removed node even when that node was not the one originally removed by the undone change", () => {
1547
- const tree = makeTreeFromJson(["42"]);
1548
- const tree2 = tree.fork();
1549
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree2.events);
1550
- tree.editor.optionalField(rootField).set(singleJsonCursor("43"), false);
1551
- tree2.editor.optionalField(rootField).set(undefined, false);
1552
- tree.merge(tree2, false);
1553
- tree2.rebaseOnto(tree);
1554
- undoStack.pop()?.revert();
1555
- tree.merge(tree2, false);
1556
- tree2.rebaseOnto(tree);
1557
- expectJsonTree([tree, tree2], ["43"]);
1558
- unsubscribe();
1559
- });
1560
- it.skip("undo restores a removed node even when that node was never present on the branch", () => {
1561
- const tree = makeTreeFromJson(["42"]);
1562
- const tree2 = tree.fork();
1563
- tree.editor.optionalField(rootField).set(singleJsonCursor("43"), false);
1564
- tree.editor.optionalField(rootField).set(singleJsonCursor("44"), false);
1565
- const tree3 = tree.fork();
1566
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree3.events);
1567
- undoStack.pop()?.revert(); // Restores "43"
1568
- tree.editor.optionalField(rootField).set(singleJsonCursor("45"), false);
1569
- tree.merge(tree3, false);
1570
- tree3.rebaseOnto(tree);
1571
- expectJsonTree([tree, tree3], ["43"]);
1572
- // This rebase should introduce/restore 43 even though tree2 never saw 43 before
1573
- tree2.rebaseOnto(tree);
1574
- expectJsonTree([tree2], ["43"]);
1575
- unsubscribe();
1576
- });
1577
- describe("Transactions", () => {
1578
- // Exercises a scenario where a transaction's inverse must be computed as part of a rebase sandwich.
1579
- it("Can rebase a series of edits including a transaction", () => {
1580
- const tree = makeTreeFromJson(["42"]);
1581
- const tree2 = tree.fork();
1582
- tree2.transaction.start();
1583
- tree2.editor.optionalField(rootField).set(singleJsonCursor("43"), false);
1584
- tree2.editor.optionalField(rootField).set(singleJsonCursor("44"), false);
1585
- tree2.transaction.commit();
1586
- tree2.editor.optionalField(rootField).set(singleJsonCursor("45"), false);
1587
- tree.editor.optionalField(rootField).set(singleJsonCursor("46"), false);
1588
- tree2.rebaseOnto(tree);
1589
- tree.merge(tree2, false);
1590
- expectJsonTree([tree, tree2], ["45"]);
1591
- });
1592
- it("can rebase a transaction containing a node replacement and a dependent edit to the new node", () => {
1593
- const tree1 = makeTreeFromJson([]);
1594
- const tree2 = tree1.fork();
1595
- tree1.editor.optionalField(rootField).set(singleJsonCursor("41"), true);
1596
- tree2.transaction.start();
1597
- tree2.editor.optionalField(rootField).set(singleJsonCursor({ foo: "42" }), true);
1598
- expectJsonTree([tree1], ["41"]);
1599
- expectJsonTree([tree2], [{ foo: "42" }]);
1600
- tree2.editor
1601
- .valueField({ parent: rootNode, field: brand("foo") })
1602
- .set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "43" }));
1603
- expectJsonTree([tree2], [{ foo: "43" }]);
1604
- tree2.transaction.commit();
1605
- tree1.merge(tree2, false);
1606
- tree2.rebaseOnto(tree1);
1607
- expectJsonTree([tree1, tree2], [{ foo: "43" }]);
1608
- });
1609
- it("Can set and remove a node within a transaction", () => {
1610
- const tree = makeTreeFromJson([]);
1611
- const tree2 = tree.fork();
1612
- tree2.transaction.start();
1613
- tree2.editor.optionalField(rootField).set(singleJsonCursor("42"), true);
1614
- tree2.editor.optionalField(rootField).set(undefined, false);
1615
- tree2.transaction.commit();
1616
- tree.editor.optionalField(rootField).set(singleJsonCursor("43"), true);
1617
- tree2.rebaseOnto(tree);
1618
- tree.merge(tree2, false);
1619
- expectJsonTree([tree, tree2], []);
1620
- });
1621
- });
1622
- it("can be registered a path visitor that can read new content being inserted into the tree when afterAttach is invoked", () => {
1623
- const tree = makeTreeFromJson({ foo: "A" });
1624
- const cursor = tree.forest.allocateCursor();
1625
- moveToDetachedField(tree.forest, cursor);
1626
- cursor.enterNode(0);
1627
- const anchor = cursor.buildAnchor();
1628
- const node = tree.locate(anchor) ?? assert.fail();
1629
- cursor.free();
1630
- let valueAfterInsert;
1631
- const pathVisitor = {
1632
- onRemove(path, count) { },
1633
- onInsert(path, content) { },
1634
- afterCreate(content) { },
1635
- beforeReplace(newContent, oldContent, oldContentDestination) { },
1636
- afterReplace(newContentSource, newContent, oldContent) { },
1637
- beforeDestroy(content) { },
1638
- beforeAttach(source, destination) { },
1639
- afterAttach(source, destination) {
1640
- const cursor2 = tree.forest.allocateCursor();
1641
- moveToDetachedField(tree.forest, cursor2);
1642
- cursor2.enterNode(0);
1643
- cursor2.enterField(brand("foo"));
1644
- cursor2.enterNode(0);
1645
- valueAfterInsert = cursor2.value;
1646
- cursor2.free();
1647
- },
1648
- beforeDetach(source, destination) { },
1649
- afterDetach(source, destination) { },
1650
- };
1651
- const unsubscribePathVisitor = node.on("subtreeChanging", (n) => pathVisitor);
1652
- tree.editor
1653
- .optionalField({ parent: rootNode, field: brand("foo") })
1654
- .set(singleJsonCursor("43"), true);
1655
- assert.equal(valueAfterInsert, "43");
1656
- unsubscribePathVisitor();
1657
- });
1658
- it("simplified repro for 0x7cf from anchors-undo-redo fuzz seed 0", () => {
1659
- const tree = makeTreeFromJson([1]);
1660
- const fork = tree.fork();
1661
- tree.editor.optionalField(rootField).set(singleJsonCursor(2), false);
1662
- const { undoStack, redoStack } = createTestUndoRedoStacks(fork.events);
1663
- fork.editor.optionalField(rootField).set(undefined, false);
1664
- undoStack.pop()?.revert();
1665
- redoStack.pop()?.revert();
1666
- fork.rebaseOnto(tree);
1667
- tree.merge(fork, false);
1668
- expectJsonTree([fork, tree], []);
1669
- });
1670
- });
1671
- describe("Constraints", () => {
1672
- describe("Node existence constraint", () => {
1673
- it("handles ancestor revive", () => {
1674
- const tree = makeTreeFromJson([]);
1675
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
1676
- const rootSequence = tree.editor.sequenceField(rootField);
1677
- rootSequence.insert(0, cursorForJsonableTreeNode({ type: jsonObject.name }));
1678
- const treeSequence = tree.editor.sequenceField({
1679
- parent: rootNode,
1680
- field: brand("foo"),
1681
- });
1682
- treeSequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "bar" }));
1683
- const tree2 = tree.fork();
1684
- // Remove a
1685
- remove(tree, 0, 1);
1686
- // Undo remove of a
1687
- undoStack.pop()?.revert();
1688
- tree2.transaction.start();
1689
- // Put existence constraint on child field of a
1690
- // Constraint should be not be violated after undo
1691
- tree2.editor.addNodeExistsConstraint({
1692
- parent: rootNode,
1693
- parentField: brand("foo"),
1694
- parentIndex: 0,
1695
- });
1696
- const tree2Sequence = tree2.editor.sequenceField(rootField);
1697
- tree2Sequence.insert(1, singleJsonCursor("b"));
1698
- tree2.transaction.commit();
1699
- tree.merge(tree2, false);
1700
- tree2.rebaseOnto(tree);
1701
- expectJsonTree([tree, tree2], [{ foo: "bar" }, "b"]);
1702
- unsubscribe();
1703
- });
1704
- it("handles ancestor remove", () => {
1705
- const tree = makeTreeFromJson([]);
1706
- const rootSequence = tree.editor.sequenceField(rootField);
1707
- rootSequence.insert(0, cursorForJsonableTreeNode({ type: jsonObject.name }));
1708
- const treeSequence = tree.editor.sequenceField({
1709
- parent: rootNode,
1710
- field: brand("foo"),
1711
- });
1712
- treeSequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "bar" }));
1713
- const tree2 = tree.fork();
1714
- // Remove a
1715
- remove(tree, 0, 1);
1716
- tree2.transaction.start();
1717
- // Put existence constraint on child field of a
1718
- tree2.editor.addNodeExistsConstraint({
1719
- parent: rootNode,
1720
- parentField: brand("foo"),
1721
- parentIndex: 0,
1722
- });
1723
- const tree2Sequence = tree2.editor.sequenceField(rootField);
1724
- tree2Sequence.insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "b" }));
1725
- tree2.transaction.commit();
1726
- tree.merge(tree2, false);
1727
- tree2.rebaseOnto(tree);
1728
- expectJsonTree([tree, tree2], []);
1729
- });
1730
- it("sequence field node exists constraint", () => {
1731
- const tree = makeTreeFromJson([]);
1732
- const bPath = {
1733
- parent: undefined,
1734
- parentField: rootFieldKey,
1735
- parentIndex: 1,
1736
- };
1737
- insert(tree, 0, "a", "b");
1738
- const tree2 = tree.fork();
1739
- // Remove b
1740
- remove(tree, 1, 1);
1741
- tree2.transaction.start();
1742
- // Put an existence constraint on b
1743
- tree2.editor.addNodeExistsConstraint(bPath);
1744
- const tree2RootSequence = tree2.editor.sequenceField(rootField);
1745
- // Should not be inserted because b has been concurrently removed
1746
- tree2RootSequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "c" }));
1747
- tree2.transaction.commit();
1748
- tree.merge(tree2, false);
1749
- tree2.rebaseOnto(tree);
1750
- expectJsonTree([tree, tree2], ["a"]);
1751
- });
1752
- it("revived sequence field node exists constraint", () => {
1753
- const tree = makeTreeFromJson([]);
1754
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
1755
- const bPath = {
1756
- parent: undefined,
1757
- parentField: rootFieldKey,
1758
- parentIndex: 1,
1759
- };
1760
- insert(tree, 0, "a", "b");
1761
- const tree2 = tree.fork();
1762
- // Remove and revive second object in root sequence
1763
- remove(tree, 1, 1);
1764
- undoStack.pop()?.revert();
1765
- tree2.transaction.start();
1766
- tree2.editor.addNodeExistsConstraint(bPath);
1767
- const sequence = tree2.editor.sequenceField(rootField);
1768
- sequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "c" }));
1769
- tree2.transaction.commit();
1770
- tree.merge(tree2, false);
1771
- tree2.rebaseOnto(tree);
1772
- expectJsonTree([tree, tree2], ["c", "a", "b"]);
1773
- unsubscribe();
1774
- });
1775
- it("optional field node exists constraint", () => {
1776
- const tree = makeTreeFromJson([]);
1777
- const rootSequence = tree.editor.sequenceField(rootField);
1778
- rootSequence.insert(0, cursorForJsonableTreeNode({ type: jsonObject.name }));
1779
- const optional = tree.editor.optionalField({
1780
- parent: rootNode,
1781
- field: brand("foo"),
1782
- });
1783
- optional.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "x" }), true);
1784
- const tree2 = tree.fork();
1785
- // Remove foo
1786
- optional.set(undefined, false);
1787
- tree2.transaction.start();
1788
- tree2.editor.addNodeExistsConstraint({
1789
- parent: rootNode,
1790
- parentField: brand("foo"),
1791
- parentIndex: 0,
1792
- });
1793
- tree2.editor
1794
- .sequenceField({ parent: rootNode, field: brand("bar") })
1795
- .insert(0, singleJsonCursor(1));
1796
- tree2.transaction.commit();
1797
- tree.merge(tree2, false);
1798
- tree2.rebaseOnto(tree);
1799
- expectJsonTree([tree, tree2], [{}]);
1800
- });
1801
- it("revived optional field node exists constraint", () => {
1802
- const tree = makeTreeFromJson([]);
1803
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(tree.events);
1804
- const rootSequence = tree.editor.sequenceField(rootField);
1805
- rootSequence.insert(0, cursorForJsonableTreeNode({ type: jsonObject.name }));
1806
- const optional = tree.editor.optionalField({
1807
- parent: rootNode,
1808
- field: brand("foo"),
1809
- });
1810
- optional.set(cursorForJsonableTreeNode({ type: leaf.string.name, value: "x" }), true);
1811
- const tree2 = tree.fork();
1812
- optional.set(undefined, false);
1813
- undoStack.pop()?.revert();
1814
- tree2.transaction.start();
1815
- tree2.editor.addNodeExistsConstraint({
1816
- parent: rootNode,
1817
- parentField: brand("foo"),
1818
- parentIndex: 0,
1819
- });
1820
- tree2.editor
1821
- .sequenceField({ parent: rootNode, field: brand("bar") })
1822
- .insert(0, singleJsonCursor(1));
1823
- tree2.transaction.commit();
1824
- tree.merge(tree2, false);
1825
- tree2.rebaseOnto(tree);
1826
- expectJsonTree([tree, tree2], [{ foo: "x", bar: 1 }]);
1827
- unsubscribe();
1828
- });
1829
- it("existence constraint on node inserted in prior transaction", () => {
1830
- const tree = makeTreeFromJson([]);
1831
- const tree2 = tree.fork();
1832
- // Insert "a"
1833
- // State should be: ["a"]
1834
- const sequence = tree.editor.sequenceField(rootField);
1835
- sequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "a" }));
1836
- // Insert "b" after "a" with constraint that "a" exists.
1837
- // State should be: ["a", "b"]
1838
- tree.transaction.start();
1839
- tree.editor.addNodeExistsConstraint(rootNode);
1840
- const rootSequence = tree.editor.sequenceField(rootField);
1841
- rootSequence.insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "b" }));
1842
- tree.transaction.commit();
1843
- // Make a concurrent edit to rebase over that inserts into root sequence
1844
- // State should be (to tree2): ["c"]
1845
- const tree2RootSequence = tree2.editor.sequenceField(rootField);
1846
- tree2RootSequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "c" }));
1847
- tree.merge(tree2, false);
1848
- tree2.rebaseOnto(tree);
1849
- expectJsonTree([tree, tree2], ["c", "a", "b"]);
1850
- });
1851
- it("can add constraint to node inserted in same transaction", () => {
1852
- const tree = makeTreeFromJson([{}]);
1853
- const tree2 = tree.fork();
1854
- // Constrain on "a" existing and insert "b" if it does
1855
- // State should be (if "a" exists): [{ foo: "a"}, "b"]
1856
- tree.transaction.start();
1857
- const sequence = tree.editor.sequenceField({
1858
- parent: rootNode,
1859
- field: brand("foo"),
1860
- });
1861
- sequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "a" }));
1862
- tree.editor.addNodeExistsConstraint({
1863
- parent: rootNode,
1864
- parentField: brand("foo"),
1865
- parentIndex: 0,
1866
- });
1867
- const rootSequence = tree.editor.sequenceField(rootField);
1868
- rootSequence.insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "b" }));
1869
- tree.transaction.commit();
1870
- // Insert "c" concurrently so that we rebase over something
1871
- // State should be (to tree2): [{}, "c"]
1872
- const tree2Sequence = tree2.editor.sequenceField(rootField);
1873
- tree2Sequence.insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "c" }));
1874
- tree.merge(tree2, false);
1875
- tree2.rebaseOnto(tree);
1876
- expectJsonTree([tree, tree2], [{ foo: "a" }, "c", "b"]);
1877
- });
1878
- // TODO: This doesn't update the constraint properly yet because
1879
- // rebaseChild isn't called inside of handleCurrAttach
1880
- it.skip("transaction dropped when node can't be inserted", () => {
1881
- const tree = makeTreeFromJson([{}]);
1882
- const tree2 = tree.fork();
1883
- // Remove node from root sequence
1884
- const tree1RootSequence = tree.editor.sequenceField(rootField);
1885
- tree1RootSequence.remove(0, 1);
1886
- // Constrain on "a" existing and insert "b" if it does
1887
- // This insert should be dropped since the node "a" is inserted under is
1888
- // concurrently removed
1889
- tree2.transaction.start();
1890
- const sequence = tree2.editor.sequenceField({
1891
- parent: rootNode,
1892
- field: brand("foo"),
1893
- });
1894
- sequence.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: "a" }));
1895
- tree2.editor.addNodeExistsConstraint({
1896
- parent: rootNode,
1897
- parentField: brand("foo"),
1898
- parentIndex: 0,
1899
- });
1900
- const rootSequence = tree2.editor.sequenceField(rootField);
1901
- rootSequence.insert(1, cursorForJsonableTreeNode({ type: leaf.string.name, value: "b" }));
1902
- tree2.transaction.commit();
1903
- tree.merge(tree2);
1904
- tree2.rebaseOnto(tree);
1905
- expectJsonTree([tree, tree2], []);
1906
- });
1907
- it("not violated by move out under remove", () => {
1908
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
1909
- const tree2 = tree.fork();
1910
- const firstPath = {
1911
- parent: undefined,
1912
- parentField: rootFieldKey,
1913
- parentIndex: 0,
1914
- };
1915
- const secondPath = {
1916
- ...firstPath,
1917
- parentIndex: 1,
1918
- };
1919
- tree.transaction.start();
1920
- tree.editor.move({ field: brand("foo"), parent: firstPath }, 0, 1, {
1921
- field: brand("foo2"),
1922
- parent: secondPath,
1923
- }, 0);
1924
- const rootSequence = tree.editor.sequenceField(rootField);
1925
- rootSequence.remove(0, 1);
1926
- tree.transaction.commit();
1927
- tree2.transaction.start();
1928
- tree2.editor.addNodeExistsConstraint({
1929
- parent: firstPath,
1930
- parentField: brand("foo"),
1931
- parentIndex: 0,
1932
- });
1933
- const tree2RootSequence = tree2.editor.sequenceField(rootField);
1934
- tree2RootSequence.insert(2, cursorForJsonableTreeNode({ type: jsonObject.name }));
1935
- tree2.transaction.commit();
1936
- tree.merge(tree2, false);
1937
- tree2.rebaseOnto(tree);
1938
- expectJsonTree([tree, tree2], [{ foo2: ["a"] }, {}]);
1939
- });
1940
- // TODO: Constraint state isn't updated properly because
1941
- // rebaseChild isn't called when currMark is undefined in rebaseMarkList
1942
- it.skip("violated by move in under remove", () => {
1943
- const tree = makeTreeFromJson([{ foo: ["a"] }, {}]);
1944
- const tree2 = tree.fork();
1945
- const firstPath = {
1946
- parent: undefined,
1947
- parentField: rootFieldKey,
1948
- parentIndex: 0,
1949
- };
1950
- const secondPath = {
1951
- ...firstPath,
1952
- parentIndex: 1,
1953
- };
1954
- // Move "a" from foo to foo2 in the second node in the root sequence and then remove
1955
- // the second node in the root sequence
1956
- tree.transaction.start();
1957
- tree.editor.move({ field: brand("foo"), parent: firstPath }, 0, 1, {
1958
- field: brand("foo2"),
1959
- parent: secondPath,
1960
- }, 0);
1961
- const rootSequence = tree.editor.sequenceField(rootField);
1962
- rootSequence.remove(1, 1);
1963
- tree.transaction.commit();
1964
- // Put a constraint on "a" existing and insert "b" if it does
1965
- // a's ancestor will be removed so this insert should be dropped
1966
- tree2.transaction.start();
1967
- tree2.editor.addNodeExistsConstraint({
1968
- parent: firstPath,
1969
- parentField: brand("foo"),
1970
- parentIndex: 0,
1971
- });
1972
- const tree2RootSequence = tree2.editor.sequenceField(rootField);
1973
- tree2RootSequence.insert(2, cursorForJsonableTreeNode({ type: leaf.string.name, value: "b" }));
1974
- tree2.transaction.commit();
1975
- tree.merge(tree2);
1976
- tree2.rebaseOnto(tree);
1977
- expectJsonTree([tree, tree2], [{}]);
1978
- });
1979
- });
1980
- });
1981
- it.skip("edit removed content", () => {
1982
- const tree = makeTreeFromJson({ foo: "A" });
1983
- const cursor = tree.forest.allocateCursor();
1984
- moveToDetachedField(tree.forest, cursor);
1985
- cursor.enterNode(0);
1986
- const anchor = cursor.buildAnchor();
1987
- cursor.free();
1988
- // Fork the tree so we can undo the removal of the root without undoing later changes
1989
- // Note: if forking of the undo/redo stack is supported, this test can be simplified
1990
- // slightly by deleting the root node before forking.
1991
- const restoreRoot = tree.fork();
1992
- const { undoStack, unsubscribe } = createTestUndoRedoStacks(restoreRoot.events);
1993
- restoreRoot.editor.sequenceField(rootField).remove(0, 1);
1994
- tree.merge(restoreRoot, false);
1995
- expectJsonTree([tree, restoreRoot], []);
1996
- undoStack.pop()?.revert();
1997
- expectJsonTree(restoreRoot, [{ foo: "A" }]);
1998
- // Get access to the removed node
1999
- const parent = tree.locate(anchor) ?? assert.fail();
2000
- // Make some nested change to it (remove A)
2001
- tree.editor.sequenceField({ parent, field: brand("foo") }).remove(0, 1);
2002
- // Restore the root node so we can see the effect of the edit
2003
- tree.merge(restoreRoot, false);
2004
- expectJsonTree(tree, [{}]);
2005
- // TODO: this doesn't work because the removal of A was described as occurring under the detached field where
2006
- // the root resided while removed. The rebaser is unable to associate that with the ChangeAtomId of the root.
2007
- // That removal of A is therefore carried out under that detached field even though the root is restored.
2008
- restoreRoot.rebaseOnto(tree);
2009
- expectJsonTree(restoreRoot, [{}]);
2010
- unsubscribe();
2011
- });
2012
- describe("Anchors", () => {
2013
- it("anchors to content created on a branch survive rebasing of the branch", () => {
2014
- const tree = makeTreeFromJson({});
2015
- const branch = tree.fork();
2016
- branch.editor
2017
- .sequenceField({ parent: rootNode, field: brand("seq") })
2018
- .insert(0, singleJsonCursor(1));
2019
- branch.editor
2020
- .optionalField({ parent: rootNode, field: brand("opt") })
2021
- .set(singleJsonCursor(2), true);
2022
- let cursor = branch.forest.allocateCursor();
2023
- branch.forest.moveCursorToPath({ parent: rootNode, parentField: brand("seq"), parentIndex: 0 }, cursor);
2024
- const anchor1 = cursor.buildAnchor();
2025
- branch.forest.moveCursorToPath({ parent: rootNode, parentField: brand("opt"), parentIndex: 0 }, cursor);
2026
- const anchor2 = cursor.buildAnchor();
2027
- cursor.free();
2028
- tree.editor
2029
- .sequenceField({ parent: rootNode, field: brand("foo") })
2030
- .insert(0, singleJsonCursor(3));
2031
- tree.merge(branch, false);
2032
- branch.rebaseOnto(tree);
2033
- expectJsonTree([tree, branch], [{ seq: 1, opt: 2, foo: 3 }]);
2034
- cursor = branch.forest.allocateCursor();
2035
- assert.equal(branch.forest.tryMoveCursorToNode(anchor1, cursor), 1 /* TreeNavigationResult.Ok */);
2036
- assert.equal(cursor.value, 1);
2037
- assert.equal(branch.forest.tryMoveCursorToNode(anchor2, cursor), 1 /* TreeNavigationResult.Ok */);
2038
- assert.equal(cursor.value, 2);
2039
- cursor.free();
2040
- });
2041
- });
2042
- describe("Can abort transactions", () => {
2043
- function getInnerSequenceFieldPath(outer) {
2044
- return {
2045
- parent: { parent: outer.parent, parentField: outer.field, parentIndex: 0 },
2046
- field: brand(""),
2047
- };
2048
- }
2049
- const initialState = { foo: [0, 1, 2] };
2050
- function abortTransaction(branch) {
2051
- branch.transaction.start();
2052
- const rootSequence = branch.editor.sequenceField(rootField);
2053
- const root0Path = {
2054
- parent: undefined,
2055
- parentField: rootFieldKey,
2056
- parentIndex: 0,
2057
- };
2058
- const root1Path = {
2059
- parent: undefined,
2060
- parentField: rootFieldKey,
2061
- parentIndex: 1,
2062
- };
2063
- const foo0 = branch.editor.sequenceField(getInnerSequenceFieldPath({ parent: root0Path, field: brand("foo") }));
2064
- const foo1 = branch.editor.sequenceField(getInnerSequenceFieldPath({ parent: root1Path, field: brand("foo") }));
2065
- foo0.remove(1, 1);
2066
- foo0.insert(1, cursorForJsonableTreeNode({ type: brand("Number"), value: 41 }));
2067
- foo0.remove(2, 1);
2068
- foo0.insert(2, cursorForJsonableTreeNode({ type: brand("Number"), value: 42 }));
2069
- foo0.remove(0, 1);
2070
- rootSequence.insert(0, cursorForJsonableTreeNode({ type: brand("Test") }));
2071
- foo1.remove(0, 1);
2072
- foo1.insert(0, cursorForJsonableTreeNode({ type: brand("Number"), value: "RootValue2" }));
2073
- foo1.insert(0, cursorForJsonableTreeNode({ type: brand("Test") }));
2074
- foo1.remove(1, 1);
2075
- foo1.insert(1, cursorForJsonableTreeNode({ type: brand("Number"), value: 82 }));
2076
- // Aborting the transaction should restore the forest
2077
- branch.transaction.abort();
2078
- expectJsonTree(branch, [initialState]);
2079
- }
2080
- it("on the main branch", () => {
2081
- const tree = makeTreeFromJson(initialState);
2082
- abortTransaction(tree);
2083
- });
2084
- it("on a child branch", () => {
2085
- const tree = makeTreeFromJson(initialState);
2086
- const child = tree.fork();
2087
- abortTransaction(child);
2088
- });
2089
- });
2090
- });
2091
- //# sourceMappingURL=editing.spec.js.map