@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 +1 @@
1
- {"version":3,"file":"proxies.js","sourceRoot":"","sources":["../../src/simple-tree/proxies.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils\";\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { brand, fail, isReadonlyArray } from \"../util/index.js\";\nimport {\n\tFlexAllowedTypes,\n\tFlexFieldSchema,\n\tFlexObjectNodeSchema,\n\tFlexTreeNodeSchema,\n\tschemaIsFieldNode,\n\tschemaIsLeaf,\n\tschemaIsMap,\n\tschemaIsObjectNode,\n\tFlexMapNodeSchema,\n\tFlexFieldNodeSchema,\n\tFieldKinds,\n\tFlexTreeFieldNode,\n\tFlexTreeMapNode,\n\tFlexTreeObjectNode,\n\tFlexTreeOptionalField,\n\tFlexTreeRequiredField,\n\tFlexTreeSequenceField,\n\tFlexTreeNode,\n\tFlexTreeTypedField,\n\tonNextChange,\n\ttypeNameSymbol,\n\tisFluidHandle,\n\tFlexTreeField,\n} from \"../feature-libraries/index.js\";\nimport { EmptyKey, FieldKey, TreeNodeSchemaIdentifier, TreeValue } from \"../core/index.js\";\n// TODO: decide how to deal with dependencies on flex-tree implementation.\n// eslint-disable-next-line import/no-internal-modules\nimport { LazyObjectNode, getBoxedField } from \"../feature-libraries/flex-tree/lazyNode.js\";\nimport {\n\ttype TreeNodeSchema as TreeNodeSchemaClass,\n\ttype InsertableTypedNode,\n\tNodeKind,\n\tTreeMapNode,\n} from \"./schemaTypes.js\";\nimport { IterableTreeArrayContent, TreeArrayNode } from \"./treeArrayNode.js\";\nimport { Unhydrated, TreeNode } from \"./types.js\";\nimport { tryGetFlexNodeTarget, setFlexNode, getFlexNode, tryGetFlexNode } from \"./flexNode.js\";\nimport { cursorFromFieldData, cursorFromNodeData } from \"./toMapTree.js\";\nimport { RawTreeNode, createRawNode, extractRawNodeContent } from \"./rawNode.js\";\n\n/**\n * Detects if the given 'candidate' is a TreeNode.\n *\n * @remarks\n * Supports both Hydrated and {@link Unhydrated} TreeNodes, both of which return true.\n *\n * Because the common usage is to check if a value being inserted/set is a TreeNode,\n * this function permits calling with primitives as well as objects.\n *\n * Primitives will always return false (as they are copies of data, not references to nodes).\n *\n * @param candidate - Value which may be a TreeNode\n * @returns true if the given 'candidate' is a hydrated TreeNode.\n */\nexport function isTreeNode(candidate: unknown): candidate is TreeNode | Unhydrated<TreeNode> {\n\treturn tryGetFlexNode(candidate) !== undefined;\n}\n\n/**\n * Retrieve the associated proxy for the given field.\n * */\nexport function getProxyForField(field: FlexTreeField): TreeNode | TreeValue | undefined {\n\tswitch (field.schema.kind) {\n\t\tcase FieldKinds.required: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.required>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(asValue.boxedContent);\n\t\t}\n\t\tcase FieldKinds.optional: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.optional>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\n\t\t\tconst maybeContent = asValue.boxedContent;\n\n\t\t\t// Normally, empty fields are unreachable due to the behavior of 'tryGetField'. However, the\n\t\t\t// root field is a special case where the field is always present (even if empty).\n\t\t\treturn maybeContent === undefined ? undefined : getOrCreateNodeProxy(maybeContent);\n\t\t}\n\t\t// TODO: Remove if/when 'FieldNode' is removed.\n\t\tcase FieldKinds.sequence: {\n\t\t\t// 'getProxyForNode' handles FieldNodes by unconditionally creating a array node proxy, making\n\t\t\t// this case unreachable as long as users follow the 'array recipe'.\n\t\t\tfail(\"'sequence' field is unexpected.\");\n\t\t}\n\t\tdefault:\n\t\t\tfail(\"invalid field kind\");\n\t}\n}\n\n/**\n * A symbol for storing TreeNodeSchemaClass on FlexTreeNode's schema.\n */\nexport const simpleSchemaSymbol: unique symbol = Symbol(`simpleSchema`);\n\nexport function getClassSchema(schema: FlexTreeNodeSchema): TreeNodeSchemaClass | undefined {\n\tif (simpleSchemaSymbol in schema) {\n\t\treturn schema[simpleSchemaSymbol] as TreeNodeSchemaClass;\n\t}\n\treturn undefined;\n}\n\nexport function getOrCreateNodeProxy(flexNode: FlexTreeNode): TreeNode | TreeValue {\n\tconst cachedProxy = tryGetFlexNodeTarget(flexNode);\n\tif (cachedProxy !== undefined) {\n\t\treturn cachedProxy;\n\t}\n\n\tconst schema = flexNode.schema;\n\tlet output: TreeNode | TreeValue;\n\tconst classSchema = getClassSchema(schema);\n\tif (classSchema !== undefined) {\n\t\tif (typeof classSchema === \"function\") {\n\t\t\tconst simpleSchema = classSchema as unknown as new (dummy: FlexTreeNode) => TreeNode;\n\t\t\toutput = new simpleSchema(flexNode);\n\t\t} else {\n\t\t\toutput = (schema as unknown as { create: (data: FlexTreeNode) => TreeNode }).create(\n\t\t\t\tflexNode,\n\t\t\t);\n\t\t}\n\t} else {\n\t\t// Fallback to createNodeProxy if needed.\n\t\t// TODO: maybe remove this fallback and error once migration to class based schema is done.\n\t\toutput = createNodeProxy(flexNode, false);\n\t}\n\treturn output;\n}\n\n/**\n * @param flexNode - underlying tree node which this proxy should wrap.\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided an empty collection of the relevant type is used for the target and a separate object created to dispatch methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide needed functionality depending on the schema kind.\n */\nexport function createNodeProxy(\n\tflexNode: FlexTreeNode,\n\tallowAdditionalProperties: boolean,\n\ttargetObject?: object,\n): TreeNode | TreeValue {\n\tconst schema = flexNode.schema;\n\tif (schemaIsLeaf(schema)) {\n\t\t// Can't use `??` here since null is a valid TreeValue.\n\t\tassert(flexNode.value !== undefined, 0x887 /* Leaf must have value */);\n\t\treturn flexNode.value;\n\t}\n\tlet proxy: TreeNode;\n\tif (schemaIsMap(schema)) {\n\t\tproxy = createMapProxy(allowAdditionalProperties, targetObject);\n\t} else if (schemaIsFieldNode(schema)) {\n\t\tproxy = createArrayNodeProxy(allowAdditionalProperties, targetObject);\n\t} else if (schemaIsObjectNode(schema)) {\n\t\tproxy = createObjectProxy(schema, allowAdditionalProperties, targetObject);\n\t} else {\n\t\tfail(\"unrecognized node kind\");\n\t}\n\tsetFlexNode(proxy, flexNode);\n\treturn proxy;\n}\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `{}` is used for the target.\n */\nexport function createObjectProxy<TSchema extends FlexObjectNodeSchema>(\n\tschema: TSchema,\n\tallowAdditionalProperties: boolean,\n\ttargetObject: object = {},\n): TreeNode {\n\t// To satisfy 'deepEquals' level scrutiny, the target of the proxy must be an object with the same\n\t// prototype as an object literal '{}'. This is because 'deepEquals' uses 'Object.getPrototypeOf'\n\t// as a way to quickly reject objects with different prototype chains.\n\t//\n\t// (Note that the prototype of an object literal appears as '[Object: null prototype] {}', not because\n\t// the prototype is null, but because the prototype object itself has a null prototype.)\n\n\t// TODO: Although the target is an object literal, it's still worthwhile to try experimenting with\n\t// a dispatch object to see if it improves performance.\n\tconst proxy = new Proxy(targetObject, {\n\t\tget(target, key): unknown {\n\t\t\tconst field = getFlexNode(proxy).tryGetField(key as FieldKey);\n\t\t\tif (field !== undefined) {\n\t\t\t\treturn getProxyForField(field);\n\t\t\t}\n\n\t\t\t// Pass the proxy as the receiver here, so that any methods on the prototype receive `proxy` as `this`.\n\t\t\treturn Reflect.get(target, key, proxy);\n\t\t},\n\t\tset(target, key, value: InsertableContent) {\n\t\t\tconst flexNode = getFlexNode(proxy);\n\t\t\tconst flexNodeSchema = flexNode.schema;\n\t\t\tassert(flexNodeSchema instanceof FlexObjectNodeSchema, 0x888 /* invalid schema */);\n\t\t\tconst fieldSchema = flexNodeSchema.objectNodeFields.get(key as FieldKey);\n\n\t\t\tif (fieldSchema === undefined) {\n\t\t\t\treturn allowAdditionalProperties ? Reflect.set(target, key, value) : false;\n\t\t\t}\n\n\t\t\t// TODO: Is it safe to assume 'content' is a LazyObjectNode?\n\t\t\tassert(flexNode instanceof LazyObjectNode, 0x7e0 /* invalid content */);\n\t\t\tassert(typeof key === \"string\", 0x7e1 /* invalid key */);\n\t\t\tconst field = getBoxedField(flexNode, brand(key), fieldSchema);\n\n\t\t\tswitch (field.schema.kind) {\n\t\t\t\tcase FieldKinds.required:\n\t\t\t\tcase FieldKinds.optional: {\n\t\t\t\t\tconst typedField = field as\n\t\t\t\t\t\t| FlexTreeRequiredField<FlexAllowedTypes>\n\t\t\t\t\t\t| FlexTreeOptionalField<FlexAllowedTypes>;\n\n\t\t\t\t\tconst { content, hydrateProxies } = extractFactoryContent(value);\n\t\t\t\t\tconst cursor = cursorFromNodeData(\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tflexNode.context.schema,\n\t\t\t\t\t\tfieldSchema.allowedTypeSet,\n\t\t\t\t\t);\n\t\t\t\t\tmodifyChildren(\n\t\t\t\t\t\tflexNode,\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\ttypedField.content = cursor;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => hydrateProxies(typedField.boxedContent),\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault:\n\t\t\t\t\tfail(\"invalid FieldKind\");\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\thas: (target, key) => {\n\t\t\treturn (\n\t\t\t\tschema.objectNodeFields.has(key as FieldKey) ||\n\t\t\t\t(allowAdditionalProperties ? Reflect.has(target, key) : false)\n\t\t\t);\n\t\t},\n\t\townKeys: (target) => {\n\t\t\treturn [\n\t\t\t\t...schema.objectNodeFields.keys(),\n\t\t\t\t...(allowAdditionalProperties ? Reflect.ownKeys(target) : []),\n\t\t\t];\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key) => {\n\t\t\tconst field = getFlexNode(proxy).tryGetField(key as FieldKey);\n\n\t\t\tif (field === undefined) {\n\t\t\t\treturn allowAdditionalProperties\n\t\t\t\t\t? Reflect.getOwnPropertyDescriptor(target, key)\n\t\t\t\t\t: undefined;\n\t\t\t}\n\n\t\t\tconst p: PropertyDescriptor = {\n\t\t\t\tvalue: getProxyForField(field),\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true, // Must be 'configurable' if property is absent from proxy target.\n\t\t\t};\n\n\t\t\treturn p;\n\t\t},\n\t}) as TreeNode;\n\treturn proxy;\n}\n\n/**\n * Given a array node proxy, returns its underlying LazySequence field.\n */\nexport const getSequenceField = <TTypes extends FlexAllowedTypes>(arrayNode: TreeArrayNode) =>\n\tgetFlexNode(arrayNode).content as FlexTreeSequenceField<TTypes>;\n\n// Used by 'insert*()' APIs to converts new content (expressed as a proxy union) to contextually\n// typed data prior to forwarding to 'LazySequence.insert*()'.\nfunction contextualizeInsertedArrayContent(\n\tinsertedAtIndex: number,\n\tcontent: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[],\n): ExtractedFactoryContent {\n\treturn extractFactoryContent(\n\t\tcontent.flatMap((c): InsertableContent[] =>\n\t\t\tc instanceof IterableTreeArrayContent ? Array.from(c) : [c],\n\t\t),\n\t\tinsertedAtIndex,\n\t);\n}\n\n// #region Create dispatch map for array nodes\n\n// TODO: Experiment with alternative dispatch methods to see if we can improve performance.\n\n/**\n * PropertyDescriptorMap used to build the prototype for our array node dispatch object.\n */\nexport const arrayNodePrototypeProperties: PropertyDescriptorMap = {\n\t// We manually add [Symbol.iterator] to the dispatch map rather than use '[fn.name] = fn' as\n\t// below when adding 'Array.prototype.*' properties to this map because 'Array.prototype[Symbol.iterator].name'\n\t// returns \"values\" (i.e., Symbol.iterator is an alias for the '.values()' function.)\n\t[Symbol.iterator]: {\n\t\tvalue: Array.prototype[Symbol.iterator],\n\t},\n\tat: {\n\t\tvalue(this: TreeArrayNode, index: number): TreeNode | TreeValue | undefined {\n\t\t\tconst field = getSequenceField(this);\n\t\t\tconst val = field.boxedAt(index);\n\n\t\t\tif (val === undefined) {\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\treturn getOrCreateNodeProxy(val);\n\t\t},\n\t},\n\tinsertAt: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tindex: number,\n\t\t\t...value: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedArrayContent(index, value);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAt(index, cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tinsertAtStart: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\t...value: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedArrayContent(0, value);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAtStart(cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tinsertAtEnd: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\t...value: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedArrayContent(\n\t\t\t\tthis.length,\n\t\t\t\tvalue,\n\t\t\t);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAtEnd(cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tremoveAt: {\n\t\tvalue(this: TreeArrayNode, index: number): void {\n\t\t\tgetSequenceField(this).removeAt(index);\n\t\t},\n\t},\n\tremoveRange: {\n\t\tvalue(this: TreeArrayNode, start?: number, end?: number): void {\n\t\t\tgetSequenceField(this).removeRange(start, end);\n\t\t},\n\t},\n\tmoveToStart: {\n\t\tvalue(this: TreeArrayNode, sourceIndex: number, source?: TreeArrayNode): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToStart(sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToStart(sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveToEnd: {\n\t\tvalue(this: TreeArrayNode, sourceIndex: number, source?: TreeArrayNode): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToEnd(sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToEnd(sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveToIndex: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tindex: number,\n\t\t\tsourceIndex: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToStart: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToStart(\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToStart(sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToEnd: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToEnd(\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToEnd(sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToIndex: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tindex: number,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToIndex(\n\t\t\t\t\tindex,\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToIndex(index, sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/* eslint-disable @typescript-eslint/unbound-method */\n\n// For compatibility, we are initially implement 'readonly T[]' by applying the Array.prototype methods\n// to the array node proxy. Over time, we should replace these with efficient implementations on LazySequence\n// to avoid re-entering the proxy as these methods access 'length' and the indexed properties.\n//\n// For brevity, the current implementation dynamically builds a property descriptor map from a list of\n// Array functions we want to re-expose via the proxy.\n\n// TODO: This assumes 'Function.name' matches the property name on 'Array.prototype', which may be\n// dubious across JS engines.\n[\n\tArray.prototype.concat,\n\t// Array.prototype.copyWithin,\n\tArray.prototype.entries,\n\tArray.prototype.every,\n\t// Array.prototype.fill,\n\tArray.prototype.filter,\n\tArray.prototype.find,\n\tArray.prototype.findIndex,\n\tArray.prototype.flat,\n\tArray.prototype.flatMap,\n\tArray.prototype.forEach,\n\tArray.prototype.includes,\n\tArray.prototype.indexOf,\n\tArray.prototype.join,\n\tArray.prototype.keys,\n\tArray.prototype.lastIndexOf,\n\t// Array.prototype.length,\n\tArray.prototype.map,\n\t// Array.prototype.pop,\n\t// Array.prototype.push,\n\tArray.prototype.reduce,\n\tArray.prototype.reduceRight,\n\t// Array.prototype.reverse,\n\t// Array.prototype.shift,\n\tArray.prototype.slice,\n\tArray.prototype.some,\n\t// Array.prototype.sort,\n\t// Array.prototype.splice,\n\tArray.prototype.toLocaleString,\n\tArray.prototype.toString,\n\t// Array.prototype.unshift,\n\tArray.prototype.values,\n].forEach((fn) => {\n\tarrayNodePrototypeProperties[fn.name] = { value: fn };\n});\n\n/* eslint-enable @typescript-eslint/unbound-method */\n\nconst arrayNodePrototype = Object.create(Object.prototype, arrayNodePrototypeProperties);\n\n// #endregion\n\n/**\n * Helper to coerce property keys to integer indexes (or undefined if not an in-range integer).\n */\nfunction asIndex(key: string | symbol, length: number) {\n\tif (typeof key === \"string\") {\n\t\t// TODO: It may be worth a '0' <= ch <= '9' check before calling 'Number' to quickly\n\t\t// reject 'length' as an index, or even parsing integers ourselves.\n\t\tconst asNumber = Number(key);\n\n\t\t// TODO: See 'matrix/range.ts' for fast integer coercing + range check.\n\t\tif (Number.isInteger(asNumber)) {\n\t\t\treturn 0 <= asNumber && asNumber < length ? asNumber : undefined;\n\t\t}\n\t}\n}\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `[]` is used for the target and a separate object created to dispatch array methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide `length` and the array functionality from {@link arrayNodePrototype}.\n */\nfunction createArrayNodeProxy(\n\tallowAdditionalProperties: boolean,\n\tcustomTargetObject?: object,\n): TreeArrayNode {\n\tconst targetObject = customTargetObject ?? [];\n\n\t// Create a 'dispatch' object that this Proxy forwards to instead of the proxy target, because we need\n\t// the proxy target to be a plain JS array (see comments below when we instantiate the Proxy).\n\t// Own properties on the dispatch object are surfaced as own properties of the proxy.\n\t// (e.g., 'length', which is defined below).\n\t//\n\t// Properties normally inherited from 'Array.prototype' are surfaced via the prototype chain.\n\tconst dispatch: object =\n\t\tcustomTargetObject ??\n\t\tObject.create(arrayNodePrototype, {\n\t\t\tlength: {\n\t\t\t\tget(this: TreeArrayNode) {\n\t\t\t\t\treturn getSequenceField(this).length;\n\t\t\t\t},\n\t\t\t\tset() {},\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t},\n\t\t});\n\n\t// To satisfy 'deepEquals' level scrutiny, the target of the proxy must be an array literal in order\n\t// to pass 'Object.getPrototypeOf'. It also satisfies 'Array.isArray' and 'Object.prototype.toString'\n\t// requirements without use of Array[Symbol.species], which is potentially on a path ot deprecation.\n\tconst proxy: TreeArrayNode = new Proxy<TreeArrayNode>(targetObject as any, {\n\t\tget: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\n\t\t\tif (maybeIndex === undefined) {\n\t\t\t\t// Pass the proxy as the receiver here, so that any methods on\n\t\t\t\t// the prototype receive `proxy` as `this`.\n\t\t\t\treturn Reflect.get(dispatch, key, proxy) as unknown;\n\t\t\t}\n\n\t\t\tconst value = field.boxedAt(maybeIndex);\n\n\t\t\tif (value === undefined) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(value);\n\t\t},\n\t\tset: (target, key, newValue, receiver) => {\n\t\t\t// 'Symbol.isConcatSpreadable' may be set on an Array instance to modify the behavior of\n\t\t\t// the concat method. We allow this property to be added to the dispatch object.\n\t\t\tif (key === Symbol.isConcatSpreadable) {\n\t\t\t\treturn Reflect.set(dispatch, key, newValue, proxy);\n\t\t\t}\n\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\t// For MVP, we otherwise disallow setting properties (mutation is only available via the array node mutation APIs).\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn allowAdditionalProperties ? Reflect.set(target, key, newValue) : false;\n\t\t},\n\t\thas: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\treturn maybeIndex !== undefined || Reflect.has(dispatch, key);\n\t\t},\n\t\townKeys: (target) => {\n\t\t\tconst field = getSequenceField(proxy);\n\n\t\t\t// TODO: Would a lazy iterator to produce the indexes work / be more efficient?\n\t\t\t// TODO: Need to surface 'Symbol.isConcatSpreadable' as an own key.\n\t\t\treturn Array.from({ length: field.length }, (_, index) => `${index}`).concat(\"length\");\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\tconst val = field.boxedAt(maybeIndex);\n\t\t\t\t// To satisfy 'deepEquals' level scrutiny, the property descriptor for indexed properties must\n\t\t\t\t// be a simple value property (as opposed to using getter) and declared writable/enumerable/configurable.\n\t\t\t\treturn {\n\t\t\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t\t\t// as simple as calling '.at' since this skips the node and returns the FieldNode's\n\t\t\t\t\t// inner field.\n\t\t\t\t\tvalue: val === undefined ? val : getOrCreateNodeProxy(val),\n\t\t\t\t\twritable: true, // For MVP, disallow setting indexed properties.\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t};\n\t\t\t} else if (key === \"length\") {\n\t\t\t\t// To satisfy 'deepEquals' level scrutiny, the property descriptor for 'length' must be a simple\n\t\t\t\t// value property (as opposed to using getter) and be declared writable / non-configurable.\n\t\t\t\treturn {\n\t\t\t\t\tvalue: getSequenceField(proxy).length,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn Reflect.getOwnPropertyDescriptor(dispatch, key);\n\t\t},\n\t});\n\treturn proxy;\n}\n\n// #region Create dispatch map for maps\n\nexport const mapStaticDispatchMap: PropertyDescriptorMap = {\n\t[Symbol.iterator]: {\n\t\tvalue(this: TreeMapNode) {\n\t\t\treturn this.entries();\n\t\t},\n\t},\n\tdelete: {\n\t\tvalue(this: TreeMapNode, key: string): void {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tnode.delete(key);\n\t\t},\n\t},\n\tentries: {\n\t\t*value(this: TreeMapNode): IterableIterator<[string, unknown]> {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tfor (const key of node.keys()) {\n\t\t\t\tyield [key, getProxyForField(node.getBoxed(key))];\n\t\t\t}\n\t\t},\n\t},\n\tget: {\n\t\tvalue(this: TreeMapNode, key: string): unknown {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tconst field = node.getBoxed(key);\n\t\t\treturn getProxyForField(field);\n\t\t},\n\t},\n\thas: {\n\t\tvalue(this: TreeMapNode, key: string): boolean {\n\t\t\tconst node = getFlexNode(this);\n\t\t\treturn node.has(key);\n\t\t},\n\t},\n\tkeys: {\n\t\tvalue(this: TreeMapNode): IterableIterator<string> {\n\t\t\tconst node = getFlexNode(this);\n\t\t\treturn node.keys();\n\t\t},\n\t},\n\tset: {\n\t\tvalue(\n\t\t\tthis: TreeMapNode,\n\t\t\tkey: string,\n\t\t\tvalue: InsertableTypedNode<TreeNodeSchemaClass>,\n\t\t): TreeMapNode {\n\t\t\tconst node = getFlexNode(this);\n\n\t\t\tconst { content, hydrateProxies } = extractFactoryContent(value as FactoryContent);\n\t\t\tconst cursor = cursorFromNodeData(\n\t\t\t\tcontent,\n\t\t\t\tnode.context.schema,\n\t\t\t\tnode.schema.mapFields.allowedTypeSet,\n\t\t\t);\n\t\t\tmodifyChildren(\n\t\t\t\tnode,\n\t\t\t\t(mapNode) => mapNode.set(key, cursor),\n\t\t\t\t(mapNode) => hydrateProxies(getMapChildNode(mapNode, key)),\n\t\t\t);\n\t\t\treturn this;\n\t\t},\n\t},\n\tsize: {\n\t\tget(this: TreeMapNode) {\n\t\t\treturn getFlexNode(this).size;\n\t\t},\n\t},\n\tvalues: {\n\t\t*value(this: TreeMapNode): IterableIterator<unknown> {\n\t\t\tfor (const [, value] of this.entries()) {\n\t\t\t\tyield value;\n\t\t\t}\n\t\t},\n\t},\n\t// TODO: add `clear` once we have established merge semantics for it.\n};\n\nconst mapPrototype = Object.create(Object.prototype, mapStaticDispatchMap);\n\n// #endregion\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `new Map()` is used for the target and a separate object created to dispatch map methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide the map functionality from {@link mapPrototype}.\n */\nfunction createMapProxy(\n\tallowAdditionalProperties: boolean,\n\tcustomTargetObject?: object,\n): TreeMapNode {\n\t// Create a 'dispatch' object that this Proxy forwards to instead of the proxy target.\n\tconst dispatch: object =\n\t\tcustomTargetObject ??\n\t\tObject.create(mapPrototype, {\n\t\t\t// Empty - JavaScript Maps do not expose any \"own\" properties.\n\t\t});\n\tconst targetObject: object = customTargetObject ?? new Map<string, TreeNode>();\n\n\t// TODO: Although the target is an object literal, it's still worthwhile to try experimenting with\n\t// a dispatch object to see if it improves performance.\n\tconst proxy = new Proxy<TreeMapNode>(targetObject as TreeMapNode, {\n\t\tget: (target, key, receiver): unknown => {\n\t\t\t// Pass the proxy as the receiver here, so that any methods on the prototype receive `proxy` as `this`.\n\t\t\treturn Reflect.get(dispatch, key, proxy);\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key): PropertyDescriptor | undefined => {\n\t\t\treturn Reflect.getOwnPropertyDescriptor(dispatch, key);\n\t\t},\n\t\thas: (target, key) => {\n\t\t\treturn Reflect.has(dispatch, key);\n\t\t},\n\t\tset: (target, key, newValue): boolean => {\n\t\t\treturn allowAdditionalProperties ? Reflect.set(dispatch, key, newValue) : false;\n\t\t},\n\t\townKeys: (target) => {\n\t\t\t// All of Map's properties are inherited via its prototype, so there is nothing to return here,\n\t\t\treturn [];\n\t\t},\n\t});\n\treturn proxy;\n}\n\n/**\n * Create a proxy to a {@link TreeObjectNode} that is backed by a raw object node (see {@link createRawNode}).\n * @param schema - the schema of the object node\n * @param content - the content to be stored in the raw node.\n * A copy of content is stored, the input `content` is not modified and can be safely reused in another call to {@link createRawObjectProxy}.\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `{}` is used for the target.\n * @remarks\n * Because this proxy is backed by a raw node, it has the same limitations as the node created by {@link createRawNode}.\n * Most of its properties and methods will error if read/called.\n */\nexport function createRawNodeProxy(\n\tschema: FlexTreeNodeSchema,\n\tcontent: InsertableTypedNode<TreeNodeSchemaClass> & object,\n\tallowAdditionalProperties: boolean,\n\ttarget?: object,\n): Unhydrated<TreeNode> {\n\t// Shallow copy the content and then add the type name symbol to it.\n\tlet flexNode: RawTreeNode<FlexTreeNodeSchema, InsertableTypedNode<TreeNodeSchemaClass>>;\n\tlet proxy: TreeNode;\n\tif (schema instanceof FlexObjectNodeSchema) {\n\t\tconst contentCopy = copyContent(schema.name, content);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createObjectProxy(schema, allowAdditionalProperties, target);\n\t} else if (schema instanceof FlexFieldNodeSchema) {\n\t\t// simple-tree uses field nodes exclusively to represent array nodes\n\t\tconst contentCopy = copyContent(schema.name, content);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createArrayNodeProxy(allowAdditionalProperties, target);\n\t} else if (schema instanceof FlexMapNodeSchema) {\n\t\tconst contentCopy = copyContent(schema.name, content);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createMapProxy(allowAdditionalProperties, target);\n\t} else {\n\t\tfail(\"Unrecognized content schema\");\n\t}\n\n\treturn setFlexNode(proxy, flexNode);\n}\n\nfunction copyContent<T extends object>(typeName: TreeNodeSchemaIdentifier, content: T): T {\n\tconst copy =\n\t\tcontent instanceof Map\n\t\t\t? (new Map(content) as T)\n\t\t\t: Array.isArray(content)\n\t\t\t? (content.slice() as T)\n\t\t\t: { ...content };\n\n\treturn Object.defineProperty(copy, typeNameSymbol, { value: typeName });\n}\n\ntype ProxyHydrator = (flexNode: FlexTreeNode | undefined) => void;\nconst noopHydrator: ProxyHydrator = () => {};\n\n/** The result returned by {@link extractFactoryContent} and its related helpers. */\ninterface ExtractedFactoryContent<out T = FactoryContent> {\n\t/** The content with the factory subtrees replaced. */\n\treadonly content: T;\n\t/**\n\t * A function which walks all factory-created object that underwent replacement/extraction.\n\t * Before hydration, those objects are unusable (see {@link createRawObjectProxy}).\n\t * However, after the content is fully inserted into the tree the `hydrateProxies` function may be invoked in order to update the contents of these objects such that they become a mirror of the content in the tree.\n\t * This must be done before any calls to {@link getOrCreateNodeProxy} so that the \"edit node to proxy\" mapping is correctly updated (see {@link setFlexNode}).\n\t */\n\treadonly hydrateProxies: ProxyHydrator;\n}\n\n/**\n * Given a content tree that is to be inserted into the shared tree, replace all subtrees that were created by factories\n * (via {@link SharedTreeObjectFactory.create}) with the content that was passed to those factories.\n * @param content - the content being inserted which may be, and/or may contain, factory-created content\n * @param insertedAtIndex - if the content being inserted is array node content, this must be the index in the array node at which the content is being inserted\n * @returns the result of the content replacement and a {@link ExtractedFactoryContent.hydrateProxies} function which must be invoked if present.\n * @remarks\n * This functions works recursively.\n * Factory-created objects that are nested inside of the content passed to other factory-created objects, and so on, will be in-lined.\n * This function also adds the hidden {@link typeNameSymbol} of each object schema to the output.\n * @example\n * ```ts\n * const x = foo.create({\n * a: 3, b: bar.create({\n * c: [baz.create({ d: 5 })]\n * })\n * });\n * const y = extractFactoryContent(x);\n * y === {\n * [typeNameSymbol]: \"foo\", a: 3, b: {\n * [typeNameSymbol]: \"bar\", c: [{ [typeNameSymbol]: \"baz\", d: 5 }]\n * }\n * }\n * ```\n */\nexport function extractFactoryContent(\n\tinput: InsertableContent,\n\tinsertedAtIndex = 0,\n): ExtractedFactoryContent {\n\tlet content: FactoryContent;\n\tlet fromFactory = false;\n\tconst rawFlexNode = tryGetFlexNode(input);\n\tif (rawFlexNode !== undefined) {\n\t\tconst factoryContent = extractRawNodeContent(rawFlexNode);\n\t\tif (factoryContent === undefined) {\n\t\t\t// We were passed a proxy, but that proxy doesn't have any raw content.\n\t\t\tthrow new Error(\"Cannot insert a node that is already in the tree\");\n\t\t}\n\t\tcontent = factoryContent;\n\t\tfromFactory = true;\n\t} else {\n\t\tcontent = input as FactoryContent;\n\t}\n\n\tassert(!isTreeNode(content), 0x844 /* Unhydrated insertion content should have FlexNode */);\n\n\tlet type: NodeKind;\n\tlet extractedContent: ExtractedFactoryContent;\n\tif (isReadonlyArray(content)) {\n\t\ttype = NodeKind.Array;\n\t\textractedContent = extractContentArray(\n\t\t\tcontent as readonly FactoryContent[],\n\t\t\tinsertedAtIndex,\n\t\t);\n\t} else if (content instanceof Map) {\n\t\ttype = NodeKind.Map;\n\t\textractedContent = extractContentMap(content as ReadonlyMap<string, FactoryContent>);\n\t} else if (typeof content === \"object\" && content !== null && !isFluidHandle(content)) {\n\t\ttype = NodeKind.Object;\n\t\textractedContent = extractContentObject(content as object);\n\t} else {\n\t\textractedContent = { content, hydrateProxies: noopHydrator };\n\t\ttype = NodeKind.Leaf;\n\t}\n\n\tif (isTreeNode(input)) {\n\t\tconst kindFromSchema = getNodeKind(input);\n\t\tassert(kindFromSchema === type, 0x845 /* kind of data should match kind of schema */);\n\t}\n\n\tif (fromFactory) {\n\t\treturn {\n\t\t\tcontent: extractedContent.content,\n\t\t\thydrateProxies: (flexNode) => {\n\t\t\t\t// This makes the input proxy usable and updates the proxy cache\n\t\t\t\tsetFlexNode(input as TreeNode, flexNode ?? fail(\"Expected edit node\"));\n\t\t\t\textractedContent.hydrateProxies(flexNode);\n\t\t\t},\n\t\t};\n\t}\n\n\treturn extractedContent;\n}\n\n/**\n * @param insertedAtIndex - Supply this if the extracted array content will be inserted into an existing array node in the tree.\n */\nfunction extractContentArray(\n\tinput: readonly FactoryContent[],\n\tinsertedAtIndex: number,\n): ExtractedFactoryContent {\n\tconst output: FactoryContent[] = [];\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [index: number, hydrate: ProxyHydrator][] = [];\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(input[i]);\n\t\toutput.push(childContent);\n\t\t// The conditional here is an optimization so that primitive items don't incur boxed reads for hydration\n\t\tif (hydrateProxies !== noopHydrator) {\n\t\t\thydrators.push([i, hydrateProxies]);\n\t\t}\n\t}\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7f6 /* Expected edit node to be defined when hydrating array node */,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tschemaIsFieldNode(flexNode.schema),\n\t\t\t\t0x7f7 /* Expected field node when hydrating array node */,\n\t\t\t);\n\t\t\thydrators.forEach(([i, hydrate]) =>\n\t\t\t\thydrate(\n\t\t\t\t\tgetArrayNodeChildNode(\n\t\t\t\t\t\tflexNode as FlexTreeFieldNode<FlexFieldNodeSchema>,\n\t\t\t\t\t\tinsertedAtIndex + i,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t};\n}\n\nfunction extractContentMap(input: ReadonlyMap<string, FactoryContent>): ExtractedFactoryContent {\n\tconst output = new Map();\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [key: string, hydrate: ProxyHydrator][] = [];\n\tfor (const [key, value] of input) {\n\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(value);\n\t\toutput.set(key, childContent);\n\t\t// The conditional here is an optimization so that primitive values don't incur boxed reads for hydration\n\t\tif (hydrateProxies !== noopHydrator) {\n\t\t\thydrators.push([key, hydrateProxies]);\n\t\t}\n\t}\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7f8 /* Expected edit node to be defined when hydrating map */,\n\t\t\t);\n\t\t\tassert(schemaIsMap(flexNode.schema), 0x7f9 /* Expected map node when hydrating map */);\n\t\t\thydrators.forEach(([key, hydrate]) =>\n\t\t\t\thydrate(getMapChildNode(flexNode as FlexTreeMapNode<FlexMapNodeSchema>, key)),\n\t\t\t);\n\t\t},\n\t};\n}\n\nfunction extractContentObject(input: {\n\treadonly [P in string]?: FactoryContent;\n}): ExtractedFactoryContent {\n\tconst output: Record<string, FactoryContent> = {};\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [key: string, hydrate: ProxyHydrator][] = [];\n\tfor (const [key, value] of Object.entries(input)) {\n\t\t// Treat undefined fields and missing fields the same.\n\t\t// Generally tree does not require explicit undefined values at runtime despite some of the schema aware type checking currently requiring it.\n\t\tif (value !== undefined) {\n\t\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(value);\n\t\t\toutput[key] = childContent;\n\t\t\thydrators.push([key, hydrateProxies]);\n\t\t}\n\t}\n\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7fa /* Expected edit node to be defined when hydrating object */,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tschemaIsObjectNode(flexNode.schema),\n\t\t\t\t0x7fb /* Expected object node when hydrating object content */,\n\t\t\t);\n\t\t\thydrators.forEach(([key, hydrate]) =>\n\t\t\t\thydrate(getObjectChildNode(flexNode as FlexTreeObjectNode, key)),\n\t\t\t);\n\t\t},\n\t};\n}\n\n/**\n * Content which can be used to build a node.\n * @remarks\n * Can contain unhydrated nodes, but can not be an unhydrated node at the root.\n */\nexport type FactoryContent =\n\t| IFluidHandle\n\t| string\n\t| number\n\t| boolean\n\t// eslint-disable-next-line @rushstack/no-new-null\n\t| null\n\t| ReadonlyMap<string, InsertableContent>\n\t| readonly InsertableContent[]\n\t| {\n\t\t\treadonly [P in string]?: InsertableContent;\n\t };\n\n/**\n * Content which can be inserted into a tree.\n */\nexport type InsertableContent = Unhydrated<TreeNode> | FactoryContent;\n\nfunction getArrayNodeChildNode(\n\tarrayNode: FlexTreeFieldNode<FlexFieldNodeSchema>,\n\tindex: number,\n): FlexTreeNode | undefined {\n\tconst field = arrayNode.tryGetField(EmptyKey);\n\tassert(\n\t\tfield?.schema.kind === FieldKinds.sequence,\n\t\t0x7fc /* Expected sequence field when hydrating array node */,\n\t);\n\treturn (field as FlexTreeSequenceField<FlexAllowedTypes>).boxedAt(index);\n}\n\nfunction getMapChildNode(\n\tmapNode: FlexTreeMapNode<FlexMapNodeSchema>,\n\tkey: string,\n): FlexTreeNode | undefined {\n\tconst field = mapNode.getBoxed(key);\n\tassert(\n\t\tfield.schema.kind === FieldKinds.optional,\n\t\t0x7fd /* Sequence field kind is unsupported as map values */,\n\t);\n\treturn (field as FlexTreeOptionalField<FlexAllowedTypes>).boxedContent;\n}\n\nfunction getObjectChildNode(objectNode: FlexTreeObjectNode, key: string): FlexTreeNode | undefined {\n\tconst field =\n\t\tobjectNode.tryGetField(brand(key)) ?? fail(\"Expected a field for inserted content\");\n\tassert(\n\t\tfield.schema.kind === FieldKinds.required || field.schema.kind === FieldKinds.optional,\n\t\t0x7fe /* Expected required or optional field kind */,\n\t);\n\treturn (\n\t\tfield as FlexTreeRequiredField<FlexAllowedTypes> | FlexTreeOptionalField<FlexAllowedTypes>\n\t).boxedContent;\n}\n\n/**\n * Run the given function `modify`.\n * If the function results in any changes to the direct children of `parent`, `after` will be run immediately thereafter.\n */\nfunction modifyChildren<T extends FlexTreeNode>(\n\tparent: T,\n\tmodify: (parent: T) => void,\n\tafter?: (parent: T) => void,\n): void {\n\tconst offNextChange = parent[onNextChange](() => after?.(parent));\n\tmodify(parent);\n\t// `onNextChange` unsubscribes itself after firing once. However, there is no guarantee that it will fire.\n\t// For example, the `modify` function may result in a no-op that doesn't trigger an edit (e.g. inserting `[]` into an array node).\n\t// In those cases, we must unsubscribe manually here. If `modify` was not a no-op, it does no harm to call this function anyway.\n\toffNextChange();\n}\n\n// TODO: Replace this with calls to `Tree.schema(node).kind` when dependency cycles are no longer a problem.\nfunction getNodeKind(node: TreeNode): NodeKind {\n\treturn (\n\t\tgetClassSchema(getFlexNode(node).schema)?.kind ??\n\t\tfail(\"NodeBase should always have class schema\")\n\t);\n}\n"]}
1
+ {"version":3,"file":"proxies.js","sourceRoot":"","sources":["../../src/simple-tree/proxies.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\tEmptyKey,\n\tIForestSubscription,\n\tTreeNodeSchemaIdentifier,\n\tTreeValue,\n\tUpPath,\n} from \"../core/index.js\";\n\nimport {\n\tFieldKinds,\n\tFlexFieldSchema,\n\tFlexTreeField,\n\tFlexTreeNode,\n\tFlexTreeTypedField,\n\tisFluidHandle,\n\ttypeNameSymbol,\n} from \"../feature-libraries/index.js\";\nimport { Mutable, brand, fail, isReadonlyArray } from \"../util/index.js\";\n\nimport { anchorProxy, tryGetFlexNode, tryGetProxy } from \"./proxyBinding.js\";\nimport { extractRawNodeContent } from \"./rawNode.js\";\nimport { tryGetSimpleNodeSchema } from \"./schemaCaching.js\";\nimport { NodeKind } from \"./schemaTypes.js\";\nimport { TreeNode, Unhydrated } from \"./types.js\";\n\n/**\n * Detects if the given 'candidate' is a TreeNode.\n *\n * @remarks\n * Supports both Hydrated and {@link Unhydrated} TreeNodes, both of which return true.\n *\n * Because the common usage is to check if a value being inserted/set is a TreeNode,\n * this function permits calling with primitives as well as objects.\n *\n * Primitives will always return false (as they are copies of data, not references to nodes).\n *\n * @param candidate - Value which may be a TreeNode\n * @returns true if the given 'candidate' is a hydrated TreeNode.\n */\nexport function isTreeNode(candidate: unknown): candidate is TreeNode | Unhydrated<TreeNode> {\n\treturn tryGetFlexNode(candidate) !== undefined;\n}\n\n/**\n * Retrieve the associated proxy for the given field.\n * */\nexport function getProxyForField(field: FlexTreeField): TreeNode | TreeValue | undefined {\n\tswitch (field.schema.kind) {\n\t\tcase FieldKinds.required: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.required>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(asValue.boxedContent);\n\t\t}\n\t\tcase FieldKinds.optional: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.optional>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\n\t\t\tconst maybeContent = asValue.boxedContent;\n\n\t\t\t// Normally, empty fields are unreachable due to the behavior of 'tryGetField'. However, the\n\t\t\t// root field is a special case where the field is always present (even if empty).\n\t\t\treturn maybeContent === undefined ? undefined : getOrCreateNodeProxy(maybeContent);\n\t\t}\n\t\t// TODO: Remove if/when 'FieldNode' is removed.\n\t\tcase FieldKinds.sequence: {\n\t\t\t// 'getProxyForNode' handles FieldNodes by unconditionally creating a array node proxy, making\n\t\t\t// this case unreachable as long as users follow the 'array recipe'.\n\t\t\tfail(\"'sequence' field is unexpected.\");\n\t\t}\n\t\tcase FieldKinds.identifier: {\n\t\t\tconst identifier = field.boxedAt(0);\n\t\t\tassert(identifier !== undefined, 0x91a /* identifier must exist */);\n\t\t\treturn getOrCreateNodeProxy(identifier);\n\t\t}\n\n\t\tdefault:\n\t\t\tfail(\"invalid field kind\");\n\t}\n}\n\nexport function getOrCreateNodeProxy(flexNode: FlexTreeNode): TreeNode | TreeValue {\n\tconst cachedProxy = tryGetProxy(flexNode);\n\tif (cachedProxy !== undefined) {\n\t\treturn cachedProxy;\n\t}\n\n\tconst schema = flexNode.schema;\n\tconst classSchema = tryGetSimpleNodeSchema(schema);\n\tassert(classSchema !== undefined, 0x91b /* node without schema */);\n\tif (typeof classSchema === \"function\") {\n\t\tconst simpleSchema = classSchema as unknown as new (dummy: FlexTreeNode) => TreeNode;\n\t\treturn new simpleSchema(flexNode);\n\t} else {\n\t\treturn (classSchema as { create(data: FlexTreeNode): TreeNode }).create(flexNode);\n\t}\n}\n\n// #region Content insertion and proxy binding\n\n/** The path of a proxy, relative to the root of the content tree that the proxy belongs to */\ninterface RelativeProxyPath {\n\treadonly path: UpPath;\n\treadonly proxy: TreeNode;\n}\n\n/** All {@link RelativeProxyPath}s that are under the given root path */\ninterface RootedProxyPaths {\n\treadonly rootPath: UpPath;\n\treadonly proxyPaths: RelativeProxyPath[];\n}\n\n/**\n * Records any proxies in the given content tree and does the necessary bookkeeping to ensure they are synchronized with subsequent reads of the tree.\n * @remarks If the content tree contains any proxies, this function must be called just prior to inserting the content into the tree.\n * Specifically, no other content may be inserted into the tree between the invocation of this function and the insertion of `content`.\n * The insertion of `content` must occur or else this function will cause memory leaks.\n * @param content - the tree of content to be inserted, of which any of its object/map/array nodes might be a proxy\n * @param anchors - the {@link AnchorSet} for the tree\n * @returns The content after having all proxies replaced inline with plain javascript objects.\n * See {@link extractFactoryContent} for more details.\n */\nexport function prepareContentForInsert(\n\tcontent: InsertableContent,\n\tforest: IForestSubscription,\n): FactoryContent {\n\tif (isReadonlyArray(content)) {\n\t\treturn prepareArrayContentForInsert(content, forest);\n\t}\n\n\tconst proxies: RootedProxyPaths = {\n\t\trootPath: { parent: undefined, parentField: EmptyKey, parentIndex: 0 },\n\t\tproxyPaths: [],\n\t};\n\tconst extractedContent = extractFactoryContent(content, {\n\t\tpath: proxies.rootPath,\n\t\tonVisitProxy: (p, proxy) => {\n\t\t\tproxies.proxyPaths.push({ path: p, proxy });\n\t\t},\n\t});\n\n\tbindProxies([proxies], forest);\n\treturn extractedContent;\n}\n\nfunction prepareArrayContentForInsert(\n\tcontent: readonly InsertableContent[],\n\tforest: IForestSubscription,\n): FactoryContent {\n\tconst proxies: RootedProxyPaths[] = [];\n\tconst extractedContent: FactoryContent[] = [];\n\tfor (let i = 0; i < content.length; i++) {\n\t\tproxies.push({\n\t\t\trootPath: {\n\t\t\t\tparent: undefined,\n\t\t\t\tparentField: EmptyKey,\n\t\t\t\tparentIndex: 0,\n\t\t\t},\n\t\t\tproxyPaths: [],\n\t\t});\n\t\textractedContent.push(\n\t\t\textractFactoryContent(content[i], {\n\t\t\t\tpath: proxies[i].rootPath,\n\t\t\t\tonVisitProxy: (p, proxy) => {\n\t\t\t\t\tproxies[i].proxyPaths.push({ path: p, proxy });\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\tbindProxies(proxies, forest);\n\treturn extractedContent;\n}\n\nfunction bindProxies(proxies: RootedProxyPaths[], forest: IForestSubscription): void {\n\t// Only subscribe to the event if there is at least one proxy tree to hydrate - this is not the case when inserting an empty array [].\n\tif (proxies.length > 0) {\n\t\t// Creating a new array emits one event per element in the array, so listen to the event once for each element\n\t\tlet i = 0;\n\t\tconst off = forest.on(\"afterRootFieldCreated\", (fieldKey) => {\n\t\t\t(proxies[i].rootPath as Mutable<UpPath>).parentField = fieldKey;\n\t\t\tfor (const { path, proxy } of proxies[i].proxyPaths) {\n\t\t\t\tanchorProxy(forest.anchors, path, proxy);\n\t\t\t}\n\t\t\tif (++i === proxies.length) {\n\t\t\t\toff();\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * Given a content tree that is to be inserted into the shared tree, replace all subtrees that were created by factories\n * (via {@link SharedTreeObjectFactory.create}) with the content that was passed to those factories.\n * @param content - the content being inserted which may be, and/or may contain, factory-created content\n * @param onVisitProxy - an optional callback that will run for each proxy (i.e. object created by a factory) found in the inserted content\n * @param insertedAtIndex - if the content being inserted is array node content, this must be the index in the array node at which the content is being inserted\n * @returns the result of the content replacement and a {@link ExtractedFactoryContent.hydrateProxies} function which must be invoked if present.\n * @remarks\n * This functions works recursively.\n * Factory-created objects that are nested inside of the content passed to other factory-created objects, and so on, will be in-lined.\n * This function also adds the hidden {@link typeNameSymbol} of each object schema to the output.\n * @example\n * ```ts\n * const x = foo.create({\n * a: 3, b: bar.create({\n * c: [baz.create({ d: 5 })]\n * })\n * });\n * const y = extractFactoryContent(x);\n * y === {\n * [typeNameSymbol]: \"foo\", a: 3, b: {\n * [typeNameSymbol]: \"bar\", c: [{ [typeNameSymbol]: \"baz\", d: 5 }]\n * }\n * }\n * ```\n */\nexport function extractFactoryContent(\n\tinput: InsertableContent,\n\tvisitProxies?: {\n\t\tpath: UpPath;\n\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t},\n): FactoryContent {\n\tlet content: FactoryContent;\n\tconst rawFlexNode = tryGetFlexNode(input);\n\tif (rawFlexNode !== undefined) {\n\t\tconst factoryContent = extractRawNodeContent(rawFlexNode);\n\t\tif (factoryContent === undefined) {\n\t\t\t// We were passed a proxy, but that proxy doesn't have any raw content.\n\t\t\tthrow new Error(\"Cannot insert a node that is already in the tree\");\n\t\t}\n\t\tvisitProxies?.onVisitProxy(visitProxies.path, input as TreeNode);\n\t\tcontent = factoryContent;\n\t} else {\n\t\tcontent = input as FactoryContent;\n\t}\n\n\tassert(!isTreeNode(content), 0x844 /* Unhydrated insertion content should have FlexNode */);\n\n\tlet type: NodeKind;\n\tlet extractedContent: FactoryContent;\n\tif (isReadonlyArray(content)) {\n\t\ttype = NodeKind.Array;\n\t\textractedContent = extractContentArray(content as readonly FactoryContent[], visitProxies);\n\t} else if (content instanceof Map) {\n\t\ttype = NodeKind.Map;\n\t\textractedContent = extractContentMap(\n\t\t\tcontent as ReadonlyMap<string, FactoryContent>,\n\t\t\tvisitProxies,\n\t\t);\n\t} else if (typeof content === \"object\" && content !== null && !isFluidHandle(content)) {\n\t\ttype = NodeKind.Object;\n\t\textractedContent = extractContentObject(content as object, visitProxies);\n\t} else {\n\t\textractedContent = content;\n\t\ttype = NodeKind.Leaf;\n\t}\n\n\tif (rawFlexNode !== undefined) {\n\t\tconst kindFromSchema =\n\t\t\ttryGetSimpleNodeSchema(rawFlexNode.schema)?.kind ??\n\t\t\tfail(\"NodeBase should always have class schema\");\n\n\t\tassert(kindFromSchema === type, 0x845 /* kind of data should match kind of schema */);\n\t}\n\n\treturn extractedContent;\n}\n\nfunction extractContentArray(\n\tinput: readonly FactoryContent[],\n\tvisitProxies:\n\t\t| {\n\t\t\t\tpath: UpPath;\n\t\t\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t\t }\n\t\t| undefined,\n): FactoryContent {\n\tconst output: FactoryContent[] = [];\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst childContent = extractFactoryContent(\n\t\t\tinput[i],\n\t\t\tvisitProxies !== undefined\n\t\t\t\t? {\n\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\tparent: visitProxies.path,\n\t\t\t\t\t\t\tparentField: EmptyKey,\n\t\t\t\t\t\t\tparentIndex: i,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonVisitProxy: visitProxies?.onVisitProxy,\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\t);\n\t\toutput.push(childContent);\n\t}\n\treturn output;\n}\n\nfunction extractContentMap(\n\tinput: ReadonlyMap<string, FactoryContent>,\n\tvisitProxies:\n\t\t| {\n\t\t\t\tpath: UpPath;\n\t\t\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t\t }\n\t\t| undefined,\n): FactoryContent {\n\tconst output = new Map();\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tfor (const [key, value] of input) {\n\t\tconst childContent = extractFactoryContent(\n\t\t\tvalue,\n\t\t\tvisitProxies !== undefined\n\t\t\t\t? {\n\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\tparent: visitProxies.path,\n\t\t\t\t\t\t\tparentField: brand(key),\n\t\t\t\t\t\t\tparentIndex: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonVisitProxy: visitProxies?.onVisitProxy,\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\t);\n\t\toutput.set(key, childContent);\n\t}\n\treturn output;\n}\n\nfunction extractContentObject(\n\tinput: {\n\t\treadonly [P in string]?: FactoryContent;\n\t},\n\tvisitProxies:\n\t\t| {\n\t\t\t\tpath: UpPath;\n\t\t\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t\t }\n\t\t| undefined,\n): FactoryContent {\n\tconst output: Record<string, FactoryContent> = {};\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tfor (const [key, value] of Object.entries(input)) {\n\t\t// Treat undefined fields and missing fields the same.\n\t\t// Generally tree does not require explicit undefined values at runtime despite some of the schema aware type checking currently requiring it.\n\t\tif (value !== undefined) {\n\t\t\tconst childContent = extractFactoryContent(\n\t\t\t\tvalue,\n\t\t\t\tvisitProxies !== undefined\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\t\tparent: visitProxies.path,\n\t\t\t\t\t\t\t\tparentField: brand(key),\n\t\t\t\t\t\t\t\tparentIndex: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonVisitProxy: visitProxies?.onVisitProxy,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t);\n\t\t\toutput[key] = childContent;\n\t\t}\n\t}\n\treturn output;\n}\n\n// #endregion Content insertion and proxy binding\n\n/**\n * Content which can be used to build a node.\n * @remarks\n * Can contain unhydrated nodes, but can not be an unhydrated node at the root.\n */\nexport type FactoryContent =\n\t| IFluidHandle\n\t| string\n\t| number\n\t| boolean\n\t// eslint-disable-next-line @rushstack/no-new-null\n\t| null\n\t| ReadonlyMap<string, InsertableContent>\n\t| readonly InsertableContent[]\n\t| {\n\t\t\treadonly [P in string]?: InsertableContent;\n\t };\n\n/**\n * Content which can be inserted into a tree.\n */\nexport type InsertableContent = Unhydrated<TreeNode> | FactoryContent;\n\n/**\n * Brand `copy` with the type (under {@link typeNameSymbol}) to avoid ambiguity when inferring types from this data.\n */\nexport function markContentType(typeName: TreeNodeSchemaIdentifier, copy: object): void {\n\tObject.defineProperty(copy, typeNameSymbol, { value: typeName });\n}\n"]}
@@ -0,0 +1,48 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { AnchorSet, UpPath } from "../core/index.js";
6
+ import { FlexTreeNodeSchema, FlexMapNodeSchema, FlexObjectNodeSchema, FlexTreeMapNode, FlexTreeNode, FlexTreeObjectNode } from "../feature-libraries/index.js";
7
+ import { WithType } from "./schemaTypes.js";
8
+ import { TreeArrayNode } from "./arrayNode.js";
9
+ import { TreeNode } from "./types.js";
10
+ import { TreeMapNode } from "./mapNode.js";
11
+ /**
12
+ * Creates an anchor node and associates it with the given proxy.
13
+ * @privateRemarks Use `forgetters` to cleanup the anchor allocated by this function once the anchor is no longer needed.
14
+ * In practice, this happens when either the anchor node is destroyed, or another anchor to the same node is created by a new flex node.
15
+ */
16
+ export declare function anchorProxy(anchors: AnchorSet, path: UpPath, proxy: TreeNode): void;
17
+ /**
18
+ * Retrieves the flex node associated with the given target via {@link setFlexNode}.
19
+ * @remarks Fails if the flex node has not been set.
20
+ */
21
+ export declare function getFlexNode(proxy: TypedNode<FlexObjectNodeSchema>, allowFreed?: true): FlexTreeObjectNode;
22
+ export declare function getFlexNode(proxy: TreeArrayNode, allowFreed?: true): FlexTreeNode;
23
+ export declare function getFlexNode(proxy: TreeMapNode, allowFreed?: true): FlexTreeMapNode<FlexMapNodeSchema>;
24
+ export declare function getFlexNode(proxy: TreeNode, allowFreed?: true): FlexTreeNode;
25
+ /**
26
+ * Retrieves the flex node associated with the given target via {@link setFlexNode}, if any.
27
+ */
28
+ export declare function tryGetFlexNode(target: unknown): FlexTreeNode | undefined;
29
+ /**
30
+ * Retrieves the proxy associated with the given flex node via {@link setFlexNode}, if any.
31
+ */
32
+ export declare function tryGetProxy(flexNode: FlexTreeNode): TreeNode | undefined;
33
+ /**
34
+ * Associate the given proxy and the given flex node.
35
+ * @returns The proxy
36
+ * @remarks
37
+ * This creates a 1:1 mapping between the proxy and tree node.
38
+ * Either can be retrieved from the other via {@link getFlexNode}/{@link tryGetFlexNode} or {@link tryGetProxy}.
39
+ * If the given proxy is already mapped to an flex node, the existing mapping will be overwritten.
40
+ * If the given flex node is already mapped to a different proxy, this function will fail.
41
+ */
42
+ export declare function setFlexNode<TProxy extends TreeNode>(proxy: TProxy, flexNode: FlexTreeNode): TProxy;
43
+ /**
44
+ * Given a node's schema, return the corresponding object in the proxy-based API.
45
+ */
46
+ type TypedNode<TSchema extends FlexTreeNodeSchema> = TreeNode & WithType<TSchema["name"]>;
47
+ export {};
48
+ //# sourceMappingURL=proxyBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyBinding.d.ts","sourceRoot":"","sources":["../../src/simple-tree/proxyBinding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAc,SAAS,EAAE,MAAM,EAAc,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAEN,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAGlB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA0B3C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAcnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,KAAK,EAAE,SAAS,CAAC,oBAAoB,CAAC,EACtC,UAAU,CAAC,EAAE,IAAI,GACf,kBAAkB,CAAC;AACtB,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC;AACnF,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,IAAI,GACf,eAAe,CAAC,iBAAiB,CAAC,CAAC;AACtC,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC;AAyB9E;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAOxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,SAAS,QAAQ,EAClD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,GACpB,MAAM,CAgBR;AAmBD;;GAEG;AACH,KAAK,SAAS,CAAC,OAAO,SAAS,kBAAkB,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -0,0 +1,124 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { assert } from "@fluidframework/core-utils/internal";
6
+ import { anchorSlot } from "../core/index.js";
7
+ import { ContextSlot, assertFlexTreeEntityNotFreed, flexTreeSlot, } from "../feature-libraries/index.js";
8
+ import { fail } from "../util/index.js";
9
+ import { RawTreeNode } from "./rawNode.js";
10
+ // TODO: decide how to deal with dependencies on flex-tree implementation.
11
+ // eslint-disable-next-line import/no-internal-modules
12
+ import { makeTree } from "../feature-libraries/flex-tree/lazyNode.js";
13
+ // This file contains various maps and helpers for supporting proxy binding (a.k.a. proxy hydration).
14
+ // See ./ProxyBinding.md for a high-level overview of the process.
15
+ /**
16
+ * An anchor slot which associates an anchor with its corresponding node proxy, if there is one.
17
+ */
18
+ const proxySlot = anchorSlot();
19
+ // The following records are maintained as WeakMaps, rather than a private symbol (e.g. like `targetSymbol`) on the node proxy itself.
20
+ // The map behaves essentially the same, except that performing a lookup in the map will not perform a property read/get on the key object (as is the case with a symbol).
21
+ // Since `SharedTreeNodes` are proxies with non-trivial `get` traps, this choice is meant to prevent the confusion of the lookup passing through multiple objects
22
+ // via the trap, or the trap not properly handling the special symbol, etc.
23
+ /** A reverse mapping of {@link proxySlot} that is updated at the same time. */
24
+ const proxyToAnchorNode = new WeakMap();
25
+ /**
26
+ * Maps proxies to their "raw" tree nodes.
27
+ * The raw node exists when the proxy is first created but before it has been associated with a real {@link FlexTreeNode}.
28
+ * For example, after a user calls `const proxy = new Foo({})` but before `proxy` is inserted into the tree and queried.
29
+ */
30
+ const proxyToRawFlexNode = new WeakMap();
31
+ /** Used by `anchorProxy` as an optimization to ensure that only one anchor is remembered at a time for a given anchor node */
32
+ const anchorForgetters = new WeakMap();
33
+ /**
34
+ * Creates an anchor node and associates it with the given proxy.
35
+ * @privateRemarks Use `forgetters` to cleanup the anchor allocated by this function once the anchor is no longer needed.
36
+ * In practice, this happens when either the anchor node is destroyed, or another anchor to the same node is created by a new flex node.
37
+ */
38
+ export function anchorProxy(anchors, path, proxy) {
39
+ assert(!anchorForgetters.has(proxy), 0x91c /* Proxy anchor should not be set twice */);
40
+ const anchor = anchors.track(path);
41
+ const anchorNode = anchors.locate(anchor) ?? fail("Expected anchor node to be present");
42
+ bindProxyToAnchorNode(proxy, anchorNode);
43
+ const forget = () => {
44
+ if (anchors.locate(anchor)) {
45
+ anchors.forget(anchor);
46
+ }
47
+ anchorForgetters.delete(proxy);
48
+ off();
49
+ };
50
+ anchorForgetters.set(proxy, forget);
51
+ const off = anchorNode.on("afterDestroy", forget);
52
+ }
53
+ export function getFlexNode(proxy, allowFreed = false) {
54
+ const anchorNode = proxyToAnchorNode.get(proxy);
55
+ if (anchorNode !== undefined) {
56
+ // The proxy is bound to an anchor node, but it may or may not have an actual flex node yet
57
+ const flexNode = anchorNode.slots.get(flexTreeSlot);
58
+ if (flexNode !== undefined) {
59
+ return flexNode; // If it does have a flex node, return it...
60
+ } // ...otherwise, the flex node must be created
61
+ const context = anchorNode.anchorSet.slots.get(ContextSlot) ?? fail("missing context");
62
+ const cursor = context.forest.allocateCursor();
63
+ context.forest.moveCursorToPath(anchorNode, cursor);
64
+ const newFlexNode = makeTree(context, cursor);
65
+ cursor.free();
66
+ // Calling this is a performance improvement, however, do this only after demand to avoid momentarily having no anchors to anchorNode
67
+ anchorForgetters?.get(proxy)?.();
68
+ if (!allowFreed) {
69
+ assertFlexTreeEntityNotFreed(newFlexNode);
70
+ }
71
+ return newFlexNode;
72
+ }
73
+ return proxyToRawFlexNode.get(proxy) ?? fail("Expected raw tree node for proxy");
74
+ }
75
+ /**
76
+ * Retrieves the flex node associated with the given target via {@link setFlexNode}, if any.
77
+ */
78
+ export function tryGetFlexNode(target) {
79
+ // Calling 'WeakMap.get()' with primitives (numbers, strings, etc.) will return undefined.
80
+ // This is in contrast to 'WeakMap.set()', which will throw a TypeError if given a non-object key.
81
+ return (proxyToAnchorNode.get(target)?.slots.get(flexTreeSlot) ??
82
+ proxyToRawFlexNode.get(target));
83
+ }
84
+ /**
85
+ * Retrieves the proxy associated with the given flex node via {@link setFlexNode}, if any.
86
+ */
87
+ export function tryGetProxy(flexNode) {
88
+ return flexNode.anchorNode.slots.get(proxySlot);
89
+ }
90
+ /**
91
+ * Associate the given proxy and the given flex node.
92
+ * @returns The proxy
93
+ * @remarks
94
+ * This creates a 1:1 mapping between the proxy and tree node.
95
+ * Either can be retrieved from the other via {@link getFlexNode}/{@link tryGetFlexNode} or {@link tryGetProxy}.
96
+ * If the given proxy is already mapped to an flex node, the existing mapping will be overwritten.
97
+ * If the given flex node is already mapped to a different proxy, this function will fail.
98
+ */
99
+ export function setFlexNode(proxy, flexNode) {
100
+ const existingFlexNode = proxyToAnchorNode.get(proxy)?.slots.get(flexTreeSlot);
101
+ assert(existingFlexNode === undefined, 0x91d /* Cannot associate a flex node with multiple targets */);
102
+ if (flexNode instanceof RawTreeNode) {
103
+ proxyToRawFlexNode.set(proxy, flexNode);
104
+ }
105
+ else {
106
+ assert(tryGetProxy(flexNode) === undefined, 0x7f5 /* Cannot associate an flex node with multiple targets */);
107
+ bindProxyToAnchorNode(proxy, flexNode.anchorNode);
108
+ }
109
+ return proxy;
110
+ }
111
+ /**
112
+ * Bi-directionally associates the given proxy to the given anchor node.
113
+ * @remarks Cleans up mappings to raw flex nodes - it is assumed that they are no longer needed once the proxy has an anchor node.
114
+ */
115
+ function bindProxyToAnchorNode(proxy, anchorNode) {
116
+ // If the proxy currently has a raw node, forget it
117
+ proxyToRawFlexNode.delete(proxy);
118
+ // Once a proxy has been associated with an anchor node, it should never change to another anchor node
119
+ assert(!proxyToAnchorNode.has(proxy), 0x91e /* Proxy has already been bound to a different anchor node */);
120
+ proxyToAnchorNode.set(proxy, anchorNode);
121
+ // However, it's fine for an anchor node to rotate through different proxies when the content at that place in the tree is replaced.
122
+ anchorNode.slots.set(proxySlot, proxy);
123
+ }
124
+ //# sourceMappingURL=proxyBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyBinding.js","sourceRoot":"","sources":["../../src/simple-tree/proxyBinding.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport { AnchorNode, AnchorSet, UpPath, anchorSlot } from \"../core/index.js\";\nimport {\n\tContextSlot,\n\tFlexTreeNodeSchema,\n\tFlexMapNodeSchema,\n\tFlexObjectNodeSchema,\n\tFlexTreeMapNode,\n\tFlexTreeNode,\n\tFlexTreeObjectNode,\n\tassertFlexTreeEntityNotFreed,\n\tflexTreeSlot,\n} from \"../feature-libraries/index.js\";\nimport { fail } from \"../util/index.js\";\nimport { RawTreeNode } from \"./rawNode.js\";\nimport { WithType } from \"./schemaTypes.js\";\nimport { TreeArrayNode } from \"./arrayNode.js\";\nimport { TreeNode } from \"./types.js\";\n// TODO: decide how to deal with dependencies on flex-tree implementation.\n// eslint-disable-next-line import/no-internal-modules\nimport { makeTree } from \"../feature-libraries/flex-tree/lazyNode.js\";\nimport { TreeMapNode } from \"./mapNode.js\";\n\n// This file contains various maps and helpers for supporting proxy binding (a.k.a. proxy hydration).\n// See ./ProxyBinding.md for a high-level overview of the process.\n\n/**\n * An anchor slot which associates an anchor with its corresponding node proxy, if there is one.\n */\nconst proxySlot = anchorSlot<TreeNode>();\n\n// The following records are maintained as WeakMaps, rather than a private symbol (e.g. like `targetSymbol`) on the node proxy itself.\n// The map behaves essentially the same, except that performing a lookup in the map will not perform a property read/get on the key object (as is the case with a symbol).\n// Since `SharedTreeNodes` are proxies with non-trivial `get` traps, this choice is meant to prevent the confusion of the lookup passing through multiple objects\n// via the trap, or the trap not properly handling the special symbol, etc.\n\n/** A reverse mapping of {@link proxySlot} that is updated at the same time. */\nconst proxyToAnchorNode = new WeakMap<TreeNode, AnchorNode>();\n/**\n * Maps proxies to their \"raw\" tree nodes.\n * The raw node exists when the proxy is first created but before it has been associated with a real {@link FlexTreeNode}.\n * For example, after a user calls `const proxy = new Foo({})` but before `proxy` is inserted into the tree and queried.\n */\nconst proxyToRawFlexNode = new WeakMap<TreeNode, RawTreeNode<FlexTreeNodeSchema, unknown>>();\n/** Used by `anchorProxy` as an optimization to ensure that only one anchor is remembered at a time for a given anchor node */\nconst anchorForgetters = new WeakMap<TreeNode, () => void>();\n\n/**\n * Creates an anchor node and associates it with the given proxy.\n * @privateRemarks Use `forgetters` to cleanup the anchor allocated by this function once the anchor is no longer needed.\n * In practice, this happens when either the anchor node is destroyed, or another anchor to the same node is created by a new flex node.\n */\nexport function anchorProxy(anchors: AnchorSet, path: UpPath, proxy: TreeNode): void {\n\tassert(!anchorForgetters.has(proxy), 0x91c /* Proxy anchor should not be set twice */);\n\tconst anchor = anchors.track(path);\n\tconst anchorNode = anchors.locate(anchor) ?? fail(\"Expected anchor node to be present\");\n\tbindProxyToAnchorNode(proxy, anchorNode);\n\tconst forget = () => {\n\t\tif (anchors.locate(anchor)) {\n\t\t\tanchors.forget(anchor);\n\t\t}\n\t\tanchorForgetters.delete(proxy);\n\t\toff();\n\t};\n\tanchorForgetters.set(proxy, forget);\n\tconst off = anchorNode.on(\"afterDestroy\", forget);\n}\n\n/**\n * Retrieves the flex node associated with the given target via {@link setFlexNode}.\n * @remarks Fails if the flex node has not been set.\n */\nexport function getFlexNode(\n\tproxy: TypedNode<FlexObjectNodeSchema>,\n\tallowFreed?: true,\n): FlexTreeObjectNode;\nexport function getFlexNode(proxy: TreeArrayNode, allowFreed?: true): FlexTreeNode;\nexport function getFlexNode(\n\tproxy: TreeMapNode,\n\tallowFreed?: true,\n): FlexTreeMapNode<FlexMapNodeSchema>;\nexport function getFlexNode(proxy: TreeNode, allowFreed?: true): FlexTreeNode;\nexport function getFlexNode(proxy: TreeNode, allowFreed = false): FlexTreeNode {\n\tconst anchorNode = proxyToAnchorNode.get(proxy);\n\tif (anchorNode !== undefined) {\n\t\t// The proxy is bound to an anchor node, but it may or may not have an actual flex node yet\n\t\tconst flexNode = anchorNode.slots.get(flexTreeSlot);\n\t\tif (flexNode !== undefined) {\n\t\t\treturn flexNode; // If it does have a flex node, return it...\n\t\t} // ...otherwise, the flex node must be created\n\t\tconst context = anchorNode.anchorSet.slots.get(ContextSlot) ?? fail(\"missing context\");\n\t\tconst cursor = context.forest.allocateCursor();\n\t\tcontext.forest.moveCursorToPath(anchorNode, cursor);\n\t\tconst newFlexNode = makeTree(context, cursor);\n\t\tcursor.free();\n\t\t// Calling this is a performance improvement, however, do this only after demand to avoid momentarily having no anchors to anchorNode\n\t\tanchorForgetters?.get(proxy)?.();\n\t\tif (!allowFreed) {\n\t\t\tassertFlexTreeEntityNotFreed(newFlexNode);\n\t\t}\n\t\treturn newFlexNode;\n\t}\n\n\treturn proxyToRawFlexNode.get(proxy) ?? fail(\"Expected raw tree node for proxy\");\n}\n\n/**\n * Retrieves the flex node associated with the given target via {@link setFlexNode}, if any.\n */\nexport function tryGetFlexNode(target: unknown): FlexTreeNode | undefined {\n\t// Calling 'WeakMap.get()' with primitives (numbers, strings, etc.) will return undefined.\n\t// This is in contrast to 'WeakMap.set()', which will throw a TypeError if given a non-object key.\n\treturn (\n\t\tproxyToAnchorNode.get(target as TreeNode)?.slots.get(flexTreeSlot) ??\n\t\tproxyToRawFlexNode.get(target as TreeNode)\n\t);\n}\n\n/**\n * Retrieves the proxy associated with the given flex node via {@link setFlexNode}, if any.\n */\nexport function tryGetProxy(flexNode: FlexTreeNode): TreeNode | undefined {\n\treturn flexNode.anchorNode.slots.get(proxySlot);\n}\n\n/**\n * Associate the given proxy and the given flex node.\n * @returns The proxy\n * @remarks\n * This creates a 1:1 mapping between the proxy and tree node.\n * Either can be retrieved from the other via {@link getFlexNode}/{@link tryGetFlexNode} or {@link tryGetProxy}.\n * If the given proxy is already mapped to an flex node, the existing mapping will be overwritten.\n * If the given flex node is already mapped to a different proxy, this function will fail.\n */\nexport function setFlexNode<TProxy extends TreeNode>(\n\tproxy: TProxy,\n\tflexNode: FlexTreeNode,\n): TProxy {\n\tconst existingFlexNode = proxyToAnchorNode.get(proxy)?.slots.get(flexTreeSlot);\n\tassert(\n\t\texistingFlexNode === undefined,\n\t\t0x91d /* Cannot associate a flex node with multiple targets */,\n\t);\n\tif (flexNode instanceof RawTreeNode) {\n\t\tproxyToRawFlexNode.set(proxy, flexNode);\n\t} else {\n\t\tassert(\n\t\t\ttryGetProxy(flexNode) === undefined,\n\t\t\t0x7f5 /* Cannot associate an flex node with multiple targets */,\n\t\t);\n\t\tbindProxyToAnchorNode(proxy, flexNode.anchorNode);\n\t}\n\treturn proxy;\n}\n\n/**\n * Bi-directionally associates the given proxy to the given anchor node.\n * @remarks Cleans up mappings to raw flex nodes - it is assumed that they are no longer needed once the proxy has an anchor node.\n */\nfunction bindProxyToAnchorNode(proxy: TreeNode, anchorNode: AnchorNode): void {\n\t// If the proxy currently has a raw node, forget it\n\tproxyToRawFlexNode.delete(proxy);\n\t// Once a proxy has been associated with an anchor node, it should never change to another anchor node\n\tassert(\n\t\t!proxyToAnchorNode.has(proxy),\n\t\t0x91e /* Proxy has already been bound to a different anchor node */,\n\t);\n\tproxyToAnchorNode.set(proxy, anchorNode);\n\t// However, it's fine for an anchor node to rotate through different proxies when the content at that place in the tree is replaced.\n\tanchorNode.slots.set(proxySlot, proxy);\n}\n\n/**\n * Given a node's schema, return the corresponding object in the proxy-based API.\n */\ntype TypedNode<TSchema extends FlexTreeNodeSchema> = TreeNode & WithType<TSchema[\"name\"]>;\n"]}
@@ -2,11 +2,10 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { FieldKey, TreeNodeSchemaIdentifier } from "../core/index.js";
6
- import { EditableTreeEvents, FlexFieldNodeSchema, FlexTreeContext, FlexTreeField, FlexTreeNode, FlexTreeTypedNode, FlexTreeEntityKind, FlexTreeMapNode, FlexTreeObjectNode, FlexTreeTypedField, FlexTreeUnboxField, FlexibleFieldContent, flexTreeMarker, onNextChange, LocalNodeKey, FlexMapNodeSchema, FlexObjectNodeSchema, FlexTreeNodeSchema, TreeStatus, FlexTreeFieldNode } from "../feature-libraries/index.js";
7
- import { InsertableContent } from "./proxies.js";
5
+ import { AnchorNode, FieldKey, TreeNodeSchemaIdentifier } from "../core/index.js";
6
+ import { FlexTreeContext, FlexTreeEntityKind, FlexTreeField, FlexTreeNode, FlexTreeNodeEvents, FlexTreeNodeSchema, FlexTreeTypedNode, TreeStatus, flexTreeMarker } from "../feature-libraries/index.js";
8
7
  /** Stores the content of the raw node, i.e. the data that was passed to the factory */
9
- declare const nodeContent: unique symbol;
8
+ export declare const nodeContent: unique symbol;
10
9
  interface HasNodeContent<T> {
11
10
  [nodeContent]: T;
12
11
  }
@@ -18,18 +17,15 @@ interface HasNodeContent<T> {
18
17
  */
19
18
  export declare function extractRawNodeContent(node: object): object | undefined;
20
19
  /**
21
- * Creates a node that pretends to satisfy the given schema while wrapping the given node content.
20
+ * Node that pretends to satisfy the given schema while wrapping the given node content.
22
21
  * Retrieve the node content via {@link extractRawNodeContent}.
23
22
  *
24
23
  * @remarks This is useful for creating "raw" nodes: nodes which capture data about a pending insertion but are not yet inserted.
25
24
  * These raw nodes can be then used on the right-hand side of an assignment (via `=`) to the tree.
26
25
  * However, many of their properties and methods are currently unimplemented and will error if accessed.
27
26
  */
28
- export declare function createRawNode(schema: FlexTreeNodeSchema, content: InsertableContent): RawTreeNode<FlexTreeNodeSchema, InsertableContent>;
29
- /**
30
- * The base implementation of a node created by {@link createRawNode}.
31
- */
32
27
  export declare abstract class RawTreeNode<TSchema extends FlexTreeNodeSchema, TContent> implements FlexTreeNode, HasNodeContent<TContent> {
28
+ #private;
33
29
  readonly schema: TSchema;
34
30
  readonly [flexTreeMarker]: FlexTreeEntityKind.Node;
35
31
  readonly [nodeContent]: TContent;
@@ -42,50 +38,13 @@ export declare abstract class RawTreeNode<TSchema extends FlexTreeNodeSchema, TC
42
38
  };
43
39
  is<TSchemaInner extends FlexTreeNodeSchema>(schema: TSchemaInner): this is FlexTreeTypedNode<TSchemaInner>;
44
40
  tryGetField(key: FieldKey): FlexTreeField | undefined;
41
+ getBoxed(key: string): never;
45
42
  boxedIterator(): IterableIterator<FlexTreeField>;
46
43
  treeStatus(): TreeStatus;
47
44
  value: undefined;
48
- on<K extends keyof EditableTreeEvents>(eventName: K, listener: EditableTreeEvents[K]): () => void;
49
- [onNextChange](fn: (node: FlexTreeNode) => void): () => void;
50
- }
51
- /**
52
- * The implementation of an object node created by {@link createRawNode}.
53
- */
54
- export declare class RawObjectNode<TSchema extends FlexObjectNodeSchema, TContent extends object> extends RawTreeNode<TSchema, TContent> implements FlexTreeObjectNode {
55
- get localNodeKey(): LocalNodeKey | undefined;
56
- }
57
- /**
58
- * The implementation of a map node created by {@link createRawNode}.
59
- */
60
- export declare class RawMapNode<TSchema extends FlexMapNodeSchema> extends RawTreeNode<TSchema, ReadonlyMap<string, InsertableContent>> implements FlexTreeMapNode<TSchema> {
61
- get size(): number;
62
- has(key: string): boolean;
63
- get(key: string): FlexTreeUnboxField<TSchema["info"]>;
64
- getBoxed(key: string): FlexTreeTypedField<TSchema["info"]>;
65
- keys(): IterableIterator<FieldKey>;
66
- values(): IterableIterator<FlexTreeUnboxField<TSchema["info"], "notEmpty">>;
67
- entries(): IterableIterator<[
68
- FieldKey,
69
- FlexTreeUnboxField<TSchema["info"], "notEmpty">
70
- ]>;
71
- forEach(callbackFn: (value: FlexTreeUnboxField<TSchema["info"], "notEmpty">, key: FieldKey, map: FlexTreeMapNode<TSchema>) => void, thisArg?: any): void;
72
- set(key: string, value: FlexibleFieldContent<TSchema["info"]> | undefined): void;
73
- delete(key: string): void;
74
- get asObject(): {
75
- readonly [P in FieldKey]?: FlexTreeUnboxField<TSchema["info"], "notEmpty">;
76
- };
77
- [Symbol.iterator](): IterableIterator<[
78
- FieldKey,
79
- FlexTreeUnboxField<TSchema["info"], "notEmpty">
80
- ]>;
81
- boxedIterator(): IterableIterator<FlexTreeTypedField<TSchema["info"]>>;
82
- }
83
- /**
84
- * The implementation of a field node created by {@link createRawNode}.
85
- */
86
- export declare class RawFieldNode<TSchema extends FlexFieldNodeSchema> extends RawTreeNode<TSchema, InsertableContent> implements FlexTreeFieldNode<TSchema> {
87
- get content(): FlexTreeUnboxField<TSchema["info"]>;
88
- get boxedContent(): FlexTreeTypedField<TSchema["info"]>;
45
+ on<K extends keyof FlexTreeNodeEvents>(eventName: K, listener: FlexTreeNodeEvents[K]): () => void;
46
+ get anchorNode(): AnchorNode;
89
47
  }
48
+ export declare function rawError(message?: string): Error;
90
49
  export {};
91
50
  //# sourceMappingURL=rawNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rawNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/rawNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACN,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,uFAAuF;AACvF,QAAA,MAAM,WAAW,eAAW,CAAC;AAC7B,UAAU,cAAc,CAAC,CAAC;IACzB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC5B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,iBAAiB,GACxB,WAAW,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAWpD;AAED;;GAEG;AACH,8BAAsB,WAAW,CAAC,OAAO,SAAS,kBAAkB,EAAE,QAAQ,CAC7E,YAAW,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC;aAOhC,MAAM,EAAE,OAAO;IALhC,SAAgB,CAAC,cAAc,CAAC,0BAAoC;IACpE,SAAgB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;IAExC,SAAgB,IAAI,EAAE,wBAAwB,CAAC;gBAE9B,MAAM,EAAE,OAAO,EAC/B,OAAO,EAAE,QAAQ;IAMlB,IAAW,OAAO,IAAI,eAAe,CAEpC;IAED,IAAW,WAAW,IAAI;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAEjE;IAEM,EAAE,CAAC,YAAY,SAAS,kBAAkB,EAChD,MAAM,EAAE,YAAY,GAClB,IAAI,IAAI,iBAAiB,CAAC,YAAY,CAAC;IAInC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;IAIrD,aAAa,IAAI,gBAAgB,CAAC,aAAa,CAAC;IAIhD,UAAU,IAAI,UAAU;IAKxB,KAAK,EAAE,SAAS,CAAC;IAEjB,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC3C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,MAAM,IAAI;IAIN,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI;CAGnE;AAED;;GAEG;AACH,qBAAa,aAAa,CAAC,OAAO,SAAS,oBAAoB,EAAE,QAAQ,SAAS,MAAM,CACvF,SAAQ,WAAW,CAAC,OAAO,EAAE,QAAQ,CACrC,YAAW,kBAAkB;IAE7B,IAAW,YAAY,IAAI,YAAY,GAAG,SAAS,CAElD;CACD;AAED;;GAEG;AACH,qBAAa,UAAU,CAAC,OAAO,SAAS,iBAAiB,CACxD,SAAQ,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACnE,YAAW,eAAe,CAAC,OAAO,CAAC;IAEnC,IAAW,IAAI,IAAI,MAAM,CAExB;IACM,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAGzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAGrD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAG1D,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IAGlC,MAAM,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IAG3E,OAAO,IAAI,gBAAgB,CACjC;QAAC,QAAQ;QAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;KAAC,CAC3D;IAGM,OAAO,CACb,UAAU,EAAE,CACX,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,EACtD,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,KACzB,IAAI,EACT,OAAO,CAAC,EAAE,GAAG,GACX,IAAI;IAGA,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI;IAGhF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhC,IAAW,QAAQ,IAAI;QACtB,QAAQ,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;KAC1E,CAEA;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAC3C;QAAC,QAAQ;QAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;KAAC,CAC3D;IAIe,aAAa,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CAGtF;AAED;;GAEG;AACH,qBAAa,YAAY,CAAC,OAAO,SAAS,mBAAmB,CAC5D,SAAQ,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAC9C,YAAW,iBAAiB,CAAC,OAAO,CAAC;IAErC,IAAW,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAExD;IAED,IAAW,YAAY,IAAI,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAE7D;CACD"}
1
+ {"version":3,"file":"rawNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/rawNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,MAAM,+BAA+B,CAAC;AAGvC,uFAAuF;AACvF,eAAO,MAAM,WAAW,eAAW,CAAC;AACpC,UAAU,cAAc,CAAC,CAAC;IACzB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED;;;;;;;GAOG;AACH,8BAAsB,WAAW,CAAC,OAAO,SAAS,kBAAkB,EAAE,QAAQ,CAC7E,YAAW,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC;;aAUhC,MAAM,EAAE,OAAO;IARhC,SAAgB,CAAC,cAAc,CAAC,0BAAoC;IACpE,SAAgB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;IAIxC,SAAgB,IAAI,EAAE,wBAAwB,CAAC;gBAG9B,MAAM,EAAE,OAAO,EAC/B,OAAO,EAAE,QAAQ;IAMlB,IAAW,OAAO,IAAI,eAAe,CAEpC;IAED,IAAW,WAAW,IAAI;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAEjE;IAEM,EAAE,CAAC,YAAY,SAAS,kBAAkB,EAChD,MAAM,EAAE,YAAY,GAClB,IAAI,IAAI,iBAAiB,CAAC,YAAY,CAAC;IAInC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;IAIrD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAI5B,aAAa,IAAI,gBAAgB,CAAC,aAAa,CAAC;IAIhD,UAAU,IAAI,UAAU;IAKxB,KAAK,EAAE,SAAS,CAAC;IAEjB,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC3C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,MAAM,IAAI;IAIb,IAAW,UAAU,IAAI,UAAU,CAElC;CACD;AAED,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAMhD"}