@fluidframework/tree 2.90.0-378676 → 2.91.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 (1244) hide show
  1. package/.vscode/settings.json +6 -5
  2. package/CHANGELOG.md +342 -0
  3. package/README.md +1 -1
  4. package/alpha.d.ts +2 -2
  5. package/api-extractor/api-extractor-lint-alpha.cjs.json +1 -1
  6. package/api-extractor/api-extractor-lint-alpha.esm.json +1 -1
  7. package/api-extractor/api-extractor-lint-beta.cjs.json +1 -1
  8. package/api-extractor/api-extractor-lint-beta.esm.json +1 -1
  9. package/api-extractor/api-extractor-lint-bundle.json +1 -1
  10. package/api-extractor/api-extractor-lint-legacy.cjs.json +1 -1
  11. package/api-extractor/api-extractor-lint-legacy.esm.json +1 -1
  12. package/api-extractor/api-extractor-lint-public.cjs.json +1 -1
  13. package/api-extractor/api-extractor-lint-public.esm.json +1 -1
  14. package/api-extractor/api-extractor.current.json +1 -1
  15. package/api-extractor/api-extractor.legacy.json +2 -1
  16. package/api-extractor.json +1 -0
  17. package/api-report/tree.alpha.api.md +144 -40
  18. package/api-report/tree.beta.api.md +30 -0
  19. package/api-report/tree.legacy.beta.api.md +30 -0
  20. package/beta.d.ts +2 -2
  21. package/dist/codec/codec.d.ts +2 -0
  22. package/dist/codec/codec.d.ts.map +1 -1
  23. package/dist/codec/codec.js +4 -3
  24. package/dist/codec/codec.js.map +1 -1
  25. package/dist/codec/index.d.ts +1 -1
  26. package/dist/codec/index.d.ts.map +1 -1
  27. package/dist/codec/index.js +2 -1
  28. package/dist/codec/index.js.map +1 -1
  29. package/dist/codec/versioned/codec.d.ts +13 -1
  30. package/dist/codec/versioned/codec.d.ts.map +1 -1
  31. package/dist/codec/versioned/codec.js +18 -3
  32. package/dist/codec/versioned/codec.js.map +1 -1
  33. package/dist/codec/versioned/format.d.ts +22 -1
  34. package/dist/codec/versioned/format.d.ts.map +1 -1
  35. package/dist/codec/versioned/format.js +16 -3
  36. package/dist/codec/versioned/format.js.map +1 -1
  37. package/dist/codec/versioned/index.d.ts +1 -1
  38. package/dist/codec/versioned/index.d.ts.map +1 -1
  39. package/dist/codec/versioned/index.js +2 -1
  40. package/dist/codec/versioned/index.js.map +1 -1
  41. package/dist/core/change-family/changeFamily.d.ts +1 -4
  42. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  43. package/dist/core/change-family/changeFamily.js.map +1 -1
  44. package/dist/core/change-family/index.d.ts +1 -1
  45. package/dist/core/change-family/index.d.ts.map +1 -1
  46. package/dist/core/change-family/index.js.map +1 -1
  47. package/dist/core/index.d.ts +3 -4
  48. package/dist/core/index.d.ts.map +1 -1
  49. package/dist/core/index.js +4 -8
  50. package/dist/core/index.js.map +1 -1
  51. package/dist/core/rebase/changeRebaser.d.ts +1 -6
  52. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  53. package/dist/core/rebase/changeRebaser.js.map +1 -1
  54. package/dist/core/rebase/index.d.ts +1 -1
  55. package/dist/core/rebase/index.d.ts.map +1 -1
  56. package/dist/core/rebase/index.js +1 -2
  57. package/dist/core/rebase/index.js.map +1 -1
  58. package/dist/core/rebase/types.d.ts +78 -1
  59. package/dist/core/rebase/types.d.ts.map +1 -1
  60. package/dist/core/rebase/types.js +1 -5
  61. package/dist/core/rebase/types.js.map +1 -1
  62. package/dist/core/rebase/utils.d.ts.map +1 -1
  63. package/dist/core/rebase/utils.js +7 -25
  64. package/dist/core/rebase/utils.js.map +1 -1
  65. package/dist/core/tree/delta.d.ts +0 -5
  66. package/dist/core/tree/delta.d.ts.map +1 -1
  67. package/dist/core/tree/delta.js.map +1 -1
  68. package/dist/core/tree/detachedFieldIndex.d.ts +1 -13
  69. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  70. package/dist/core/tree/detachedFieldIndex.js +1 -14
  71. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  72. package/dist/core/tree/detachedFieldIndexTypes.d.ts +0 -4
  73. package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  74. package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
  75. package/dist/core/tree/index.d.ts +2 -2
  76. package/dist/core/tree/index.d.ts.map +1 -1
  77. package/dist/core/tree/index.js +3 -4
  78. package/dist/core/tree/index.js.map +1 -1
  79. package/dist/core/tree/pathTree.d.ts +3 -11
  80. package/dist/core/tree/pathTree.d.ts.map +1 -1
  81. package/dist/core/tree/pathTree.js +2 -14
  82. package/dist/core/tree/pathTree.js.map +1 -1
  83. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  84. package/dist/core/tree/visitDelta.js +13 -17
  85. package/dist/core/tree/visitDelta.js.map +1 -1
  86. package/dist/entrypoints/alpha.d.ts +6 -0
  87. package/dist/entrypoints/alpha.d.ts.map +1 -0
  88. package/dist/entrypoints/alpha.js +92 -0
  89. package/dist/entrypoints/alpha.js.map +1 -0
  90. package/dist/entrypoints/beta.d.ts +6 -0
  91. package/dist/entrypoints/beta.d.ts.map +1 -0
  92. package/dist/entrypoints/beta.js +43 -0
  93. package/dist/entrypoints/beta.js.map +1 -0
  94. package/{lib/core/schema-view/index.js → dist/entrypoints/internal.d.ts} +2 -2
  95. package/dist/entrypoints/internal.d.ts.map +1 -0
  96. package/dist/entrypoints/internal.js +28 -0
  97. package/dist/entrypoints/internal.js.map +1 -0
  98. package/dist/entrypoints/legacy.d.ts +6 -0
  99. package/dist/entrypoints/legacy.d.ts.map +1 -0
  100. package/dist/entrypoints/legacy.js +49 -0
  101. package/dist/entrypoints/legacy.js.map +1 -0
  102. package/dist/entrypoints/public.d.ts +6 -0
  103. package/dist/entrypoints/public.d.ts.map +1 -0
  104. package/dist/entrypoints/public.js +27 -0
  105. package/dist/entrypoints/public.js.map +1 -0
  106. package/dist/feature-libraries/changeAtomIdBTree.d.ts +2 -3
  107. package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
  108. package/dist/feature-libraries/changeAtomIdBTree.js +2 -15
  109. package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -1
  110. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +8 -7
  111. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  112. package/dist/feature-libraries/chunked-forest/codec/codecs.js +22 -44
  113. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  114. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  115. package/dist/feature-libraries/chunked-forest/codec/format.js +11 -0
  116. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  117. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +3 -2
  118. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  119. package/dist/feature-libraries/chunked-forest/codec/index.js +2 -4
  120. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  121. package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
  122. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  123. package/dist/feature-libraries/chunked-forest/index.js +2 -4
  124. package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
  125. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +44 -92
  126. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  127. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +70 -220
  128. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  129. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  130. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +2 -12
  131. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  132. package/dist/feature-libraries/default-schema/index.d.ts +1 -2
  133. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
  134. package/dist/feature-libraries/default-schema/index.js +2 -4
  135. package/dist/feature-libraries/default-schema/index.js.map +1 -1
  136. package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts +6 -7
  137. package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
  138. package/dist/feature-libraries/default-schema/mappedEditBuilder.js +0 -15
  139. package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
  140. package/dist/feature-libraries/deltaUtils.d.ts +0 -1
  141. package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
  142. package/dist/feature-libraries/deltaUtils.js +1 -6
  143. package/dist/feature-libraries/deltaUtils.js.map +1 -1
  144. package/dist/feature-libraries/flex-tree/context.d.ts +0 -9
  145. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  146. package/dist/feature-libraries/flex-tree/context.js +0 -6
  147. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  148. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
  149. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  150. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  151. package/dist/feature-libraries/flex-tree/lazyField.d.ts +7 -8
  152. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  153. package/dist/feature-libraries/flex-tree/lazyField.js +8 -39
  154. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  155. package/dist/feature-libraries/flex-tree/observer.d.ts +17 -0
  156. package/dist/feature-libraries/flex-tree/observer.d.ts.map +1 -1
  157. package/dist/feature-libraries/flex-tree/observer.js.map +1 -1
  158. package/dist/feature-libraries/forest-summary/codec.d.ts +5 -12
  159. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  160. package/dist/feature-libraries/forest-summary/codec.js +33 -33
  161. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  162. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +2 -2
  163. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  164. package/dist/feature-libraries/forest-summary/forestSummarizer.js +6 -7
  165. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  166. package/dist/feature-libraries/forest-summary/formatCommon.d.ts +6 -4
  167. package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
  168. package/dist/feature-libraries/forest-summary/formatCommon.js +13 -11
  169. package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -1
  170. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +19 -14
  171. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  172. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +31 -48
  173. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  174. package/dist/feature-libraries/forest-summary/index.d.ts +1 -1
  175. package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -1
  176. package/dist/feature-libraries/forest-summary/index.js +2 -2
  177. package/dist/feature-libraries/forest-summary/index.js.map +1 -1
  178. package/dist/feature-libraries/index.d.ts +6 -6
  179. package/dist/feature-libraries/index.d.ts.map +1 -1
  180. package/dist/feature-libraries/index.js +6 -11
  181. package/dist/feature-libraries/index.js.map +1 -1
  182. package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +3 -3
  183. package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
  184. package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  185. package/dist/feature-libraries/indexing/index.d.ts +1 -1
  186. package/dist/feature-libraries/indexing/index.d.ts.map +1 -1
  187. package/dist/feature-libraries/indexing/index.js.map +1 -1
  188. package/dist/feature-libraries/indexing/types.d.ts +15 -13
  189. package/dist/feature-libraries/indexing/types.d.ts.map +1 -1
  190. package/dist/feature-libraries/indexing/types.js.map +1 -1
  191. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  192. package/dist/feature-libraries/mitigatedChangeFamily.js +2 -2
  193. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  194. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +24 -100
  195. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  196. package/dist/feature-libraries/modular-schema/crossFieldQueries.js +12 -8
  197. package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  198. package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +1 -0
  199. package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
  200. package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -6
  201. package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
  202. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +51 -85
  203. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  204. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  205. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  206. package/dist/feature-libraries/modular-schema/genericFieldKind.js +9 -4
  207. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  208. package/dist/feature-libraries/modular-schema/index.d.ts +3 -3
  209. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
  210. package/dist/feature-libraries/modular-schema/index.js +3 -2
  211. package/dist/feature-libraries/modular-schema/index.js.map +1 -1
  212. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +22 -18
  213. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
  214. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +158 -276
  215. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
  216. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
  217. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js +1 -1
  218. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
  219. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +0 -1
  220. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  221. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +0 -8
  222. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  223. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +22 -56
  224. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  225. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +468 -1392
  226. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  227. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
  228. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
  229. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +2 -1
  230. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
  231. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +3 -3
  232. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
  233. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +10 -49
  234. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  235. package/dist/feature-libraries/modular-schema/modularChangeTypes.js +3 -3
  236. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  237. package/dist/feature-libraries/optional-field/optionalField.d.ts +32 -13
  238. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  239. package/dist/feature-libraries/optional-field/optionalField.js +446 -257
  240. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  241. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +31 -31
  242. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  243. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  244. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
  245. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  246. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +28 -57
  247. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  248. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  249. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
  250. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  251. package/dist/feature-libraries/optional-field/requiredField.d.ts +2 -3
  252. package/dist/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
  253. package/dist/feature-libraries/optional-field/requiredField.js +1 -6
  254. package/dist/feature-libraries/optional-field/requiredField.js.map +1 -1
  255. package/dist/feature-libraries/sequence-field/compose.d.ts +7 -6
  256. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  257. package/dist/feature-libraries/sequence-field/compose.js +259 -81
  258. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  259. package/dist/feature-libraries/sequence-field/helperTypes.d.ts +10 -14
  260. package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  261. package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  262. package/dist/feature-libraries/sequence-field/invert.d.ts +3 -3
  263. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  264. package/dist/feature-libraries/sequence-field/invert.js +167 -65
  265. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  266. package/dist/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  267. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  268. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
  269. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +56 -4
  270. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  271. package/dist/feature-libraries/sequence-field/moveEffectTable.js +90 -7
  272. package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  273. package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -3
  274. package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  275. package/dist/feature-libraries/sequence-field/rebase.js +116 -109
  276. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  277. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
  278. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
  279. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +50 -0
  280. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
  281. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  282. package/dist/feature-libraries/sequence-field/replaceRevisions.js +32 -19
  283. package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  284. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  285. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +2 -1
  286. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  287. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -22
  288. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  289. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +187 -388
  290. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  291. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  292. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +62 -20
  293. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  294. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
  295. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  296. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -13
  297. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  298. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -3
  299. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  300. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +111 -16
  301. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  302. package/dist/feature-libraries/sequence-field/types.d.ts +74 -37
  303. package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
  304. package/dist/feature-libraries/sequence-field/types.js.map +1 -1
  305. package/dist/feature-libraries/sequence-field/utils.d.ts +25 -20
  306. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  307. package/dist/feature-libraries/sequence-field/utils.js +320 -159
  308. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  309. package/dist/index.d.ts +9 -3
  310. package/dist/index.d.ts.map +1 -1
  311. package/dist/index.js +4 -2
  312. package/dist/index.js.map +1 -1
  313. package/dist/packageVersion.d.ts +1 -1
  314. package/dist/packageVersion.d.ts.map +1 -1
  315. package/dist/packageVersion.js +1 -1
  316. package/dist/packageVersion.js.map +1 -1
  317. package/dist/shared-tree/independentView.d.ts.map +1 -1
  318. package/dist/shared-tree/independentView.js +3 -3
  319. package/dist/shared-tree/independentView.js.map +1 -1
  320. package/dist/shared-tree/index.d.ts +1 -1
  321. package/dist/shared-tree/index.d.ts.map +1 -1
  322. package/dist/shared-tree/index.js.map +1 -1
  323. package/dist/shared-tree/schematizeTree.d.ts +4 -4
  324. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  325. package/dist/shared-tree/schematizeTree.js +1 -2
  326. package/dist/shared-tree/schematizeTree.js.map +1 -1
  327. package/dist/shared-tree/schematizingTreeView.d.ts +10 -1
  328. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  329. package/dist/shared-tree/schematizingTreeView.js +70 -28
  330. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  331. package/dist/shared-tree/sharedTree.d.ts +3 -9
  332. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  333. package/dist/shared-tree/sharedTree.js +8 -11
  334. package/dist/shared-tree/sharedTree.js.map +1 -1
  335. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +0 -1
  336. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  337. package/dist/shared-tree/sharedTreeChangeCodecs.js +0 -8
  338. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  339. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  340. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  341. package/dist/shared-tree/sharedTreeChangeFamily.js +2 -2
  342. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  343. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +6 -16
  344. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  345. package/dist/shared-tree/sharedTreeEditBuilder.js +7 -14
  346. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  347. package/dist/shared-tree/tree.js +1 -1
  348. package/dist/shared-tree/tree.js.map +1 -1
  349. package/dist/shared-tree/treeAlpha.d.ts +8 -1
  350. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  351. package/dist/shared-tree/treeAlpha.js +48 -8
  352. package/dist/shared-tree/treeAlpha.js.map +1 -1
  353. package/dist/shared-tree/treeCheckout.d.ts +46 -16
  354. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  355. package/dist/shared-tree/treeCheckout.js +131 -74
  356. package/dist/shared-tree/treeCheckout.js.map +1 -1
  357. package/dist/shared-tree/unhydratedTreeContext.d.ts +20 -0
  358. package/dist/shared-tree/unhydratedTreeContext.d.ts.map +1 -0
  359. package/dist/shared-tree/unhydratedTreeContext.js +56 -0
  360. package/dist/shared-tree/unhydratedTreeContext.js.map +1 -0
  361. package/dist/shared-tree-core/branch.d.ts +2 -3
  362. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  363. package/dist/shared-tree-core/branch.js +3 -4
  364. package/dist/shared-tree-core/branch.js.map +1 -1
  365. package/dist/shared-tree-core/editManager.d.ts +2 -2
  366. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  367. package/dist/shared-tree-core/editManager.js +9 -9
  368. package/dist/shared-tree-core/editManager.js.map +1 -1
  369. package/dist/shared-tree-core/editManagerCodecs.d.ts +0 -4
  370. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  371. package/dist/shared-tree-core/editManagerCodecs.js +2 -10
  372. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  373. package/dist/shared-tree-core/editManagerFormatCommons.d.ts +0 -1
  374. package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  375. package/dist/shared-tree-core/editManagerFormatCommons.js +0 -6
  376. package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  377. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
  378. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
  379. package/dist/shared-tree-core/editManagerFormatV1toV4.js +0 -1
  380. package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
  381. package/dist/shared-tree-core/index.d.ts +2 -2
  382. package/dist/shared-tree-core/index.d.ts.map +1 -1
  383. package/dist/shared-tree-core/index.js +1 -3
  384. package/dist/shared-tree-core/index.js.map +1 -1
  385. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
  386. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
  387. package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
  388. package/dist/shared-tree-core/messageCodecs.d.ts +0 -4
  389. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  390. package/dist/shared-tree-core/messageCodecs.js +2 -10
  391. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  392. package/dist/shared-tree-core/messageFormat.d.ts +0 -1
  393. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  394. package/dist/shared-tree-core/messageFormat.js +0 -6
  395. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  396. package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +2 -2
  397. package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
  398. package/dist/shared-tree-core/messageFormatV1ToV4.js +0 -1
  399. package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
  400. package/dist/shared-tree-core/sharedTreeCore.d.ts +0 -1
  401. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  402. package/dist/shared-tree-core/sharedTreeCore.js +1 -1
  403. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  404. package/dist/shared-tree-core/transaction.d.ts +15 -27
  405. package/dist/shared-tree-core/transaction.d.ts.map +1 -1
  406. package/dist/shared-tree-core/transaction.js +7 -11
  407. package/dist/shared-tree-core/transaction.js.map +1 -1
  408. package/dist/simple-tree/api/configuration.d.ts +4 -0
  409. package/dist/simple-tree/api/configuration.d.ts.map +1 -1
  410. package/dist/simple-tree/api/configuration.js.map +1 -1
  411. package/dist/simple-tree/api/eraseSchemaDetails.d.ts +43 -0
  412. package/dist/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
  413. package/dist/simple-tree/api/eraseSchemaDetails.js.map +1 -1
  414. package/dist/simple-tree/api/identifierIndex.d.ts +2 -2
  415. package/dist/simple-tree/api/identifierIndex.d.ts.map +1 -1
  416. package/dist/simple-tree/api/identifierIndex.js +1 -1
  417. package/dist/simple-tree/api/identifierIndex.js.map +1 -1
  418. package/dist/simple-tree/api/index.d.ts +6 -5
  419. package/dist/simple-tree/api/index.d.ts.map +1 -1
  420. package/dist/simple-tree/api/index.js +2 -2
  421. package/dist/simple-tree/api/index.js.map +1 -1
  422. package/dist/simple-tree/api/schemaFactory.d.ts +3 -2
  423. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  424. package/dist/simple-tree/api/schemaFactory.js +3 -2
  425. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  426. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +125 -28
  427. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  428. package/dist/simple-tree/api/schemaFactoryAlpha.js +72 -7
  429. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  430. package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
  431. package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
  432. package/dist/simple-tree/api/schemaStatics.d.ts +10 -11
  433. package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -1
  434. package/dist/simple-tree/api/schemaStatics.js +13 -7
  435. package/dist/simple-tree/api/schemaStatics.js.map +1 -1
  436. package/dist/simple-tree/api/simpleTreeIndex.d.ts +15 -13
  437. package/dist/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
  438. package/dist/simple-tree/api/simpleTreeIndex.js +4 -4
  439. package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
  440. package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +4 -4
  441. package/dist/simple-tree/api/snapshotCompatibilityChecker.js +2 -2
  442. package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
  443. package/dist/simple-tree/api/transactionTypes.d.ts +22 -25
  444. package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -1
  445. package/dist/simple-tree/api/transactionTypes.js.map +1 -1
  446. package/dist/simple-tree/api/tree.d.ts +69 -132
  447. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  448. package/dist/simple-tree/api/tree.js.map +1 -1
  449. package/dist/simple-tree/api/typesUnsafe.d.ts +23 -2
  450. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  451. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  452. package/dist/simple-tree/core/unhydratedFlexTree.d.ts +12 -16
  453. package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  454. package/dist/simple-tree/core/unhydratedFlexTree.js +8 -59
  455. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  456. package/dist/simple-tree/fieldSchema.d.ts +7 -6
  457. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  458. package/dist/simple-tree/fieldSchema.js +3 -4
  459. package/dist/simple-tree/fieldSchema.js.map +1 -1
  460. package/dist/simple-tree/index.d.ts +4 -4
  461. package/dist/simple-tree/index.d.ts.map +1 -1
  462. package/dist/simple-tree/index.js +3 -3
  463. package/dist/simple-tree/index.js.map +1 -1
  464. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  465. package/dist/simple-tree/node-kinds/array/arrayNode.js +3 -5
  466. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  467. package/dist/simple-tree/node-kinds/common.d.ts.map +1 -1
  468. package/dist/simple-tree/node-kinds/common.js +1 -1
  469. package/dist/simple-tree/node-kinds/common.js.map +1 -1
  470. package/dist/simple-tree/node-kinds/index.d.ts +1 -1
  471. package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
  472. package/dist/simple-tree/node-kinds/index.js.map +1 -1
  473. package/dist/simple-tree/node-kinds/map/mapNode.js +2 -2
  474. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  475. package/dist/simple-tree/node-kinds/object/index.d.ts +2 -2
  476. package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  477. package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
  478. package/dist/simple-tree/node-kinds/object/objectNode.d.ts +43 -7
  479. package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  480. package/dist/simple-tree/node-kinds/object/objectNode.js +19 -19
  481. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  482. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +26 -2
  483. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  484. package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  485. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  486. package/dist/simple-tree/node-kinds/record/recordNode.js +2 -4
  487. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  488. package/dist/simple-tree/prepareForInsertion.d.ts +47 -54
  489. package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
  490. package/dist/simple-tree/prepareForInsertion.js +125 -183
  491. package/dist/simple-tree/prepareForInsertion.js.map +1 -1
  492. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +3 -8
  493. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  494. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +13 -27
  495. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  496. package/dist/text/textDomain.d.ts +27 -9
  497. package/dist/text/textDomain.d.ts.map +1 -1
  498. package/dist/text/textDomain.js +43 -7
  499. package/dist/text/textDomain.js.map +1 -1
  500. package/dist/text/textDomainFormatted.d.ts +16 -12
  501. package/dist/text/textDomainFormatted.d.ts.map +1 -1
  502. package/dist/text/textDomainFormatted.js +97 -25
  503. package/dist/text/textDomainFormatted.js.map +1 -1
  504. package/dist/treeFactory.d.ts.map +1 -1
  505. package/dist/treeFactory.js +2 -12
  506. package/dist/treeFactory.js.map +1 -1
  507. package/dist/util/index.d.ts +1 -1
  508. package/dist/util/index.d.ts.map +1 -1
  509. package/dist/util/index.js +1 -2
  510. package/dist/util/index.js.map +1 -1
  511. package/dist/util/rangeMap.d.ts +10 -14
  512. package/dist/util/rangeMap.d.ts.map +1 -1
  513. package/dist/util/rangeMap.js +22 -62
  514. package/dist/util/rangeMap.js.map +1 -1
  515. package/dist/util/typeCheck.d.ts.map +1 -1
  516. package/dist/util/typeCheck.js.map +1 -1
  517. package/dist/util/typeUtils.d.ts.map +1 -1
  518. package/dist/util/typeUtils.js.map +1 -1
  519. package/docs/main/sequence-field/move-composition.md +46 -0
  520. package/eslint.config.mts +10 -2
  521. package/internal.d.ts +2 -2
  522. package/legacy.d.ts +4 -3
  523. package/lib/codec/codec.d.ts +2 -0
  524. package/lib/codec/codec.d.ts.map +1 -1
  525. package/lib/codec/codec.js +4 -3
  526. package/lib/codec/codec.js.map +1 -1
  527. package/lib/codec/index.d.ts +1 -1
  528. package/lib/codec/index.d.ts.map +1 -1
  529. package/lib/codec/index.js +1 -1
  530. package/lib/codec/index.js.map +1 -1
  531. package/lib/codec/versioned/codec.d.ts +13 -1
  532. package/lib/codec/versioned/codec.d.ts.map +1 -1
  533. package/lib/codec/versioned/codec.js +18 -3
  534. package/lib/codec/versioned/codec.js.map +1 -1
  535. package/lib/codec/versioned/format.d.ts +22 -1
  536. package/lib/codec/versioned/format.d.ts.map +1 -1
  537. package/lib/codec/versioned/format.js +15 -2
  538. package/lib/codec/versioned/format.js.map +1 -1
  539. package/lib/codec/versioned/index.d.ts +1 -1
  540. package/lib/codec/versioned/index.d.ts.map +1 -1
  541. package/lib/codec/versioned/index.js +1 -1
  542. package/lib/codec/versioned/index.js.map +1 -1
  543. package/lib/core/change-family/changeFamily.d.ts +1 -4
  544. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  545. package/lib/core/change-family/changeFamily.js.map +1 -1
  546. package/lib/core/change-family/index.d.ts +1 -1
  547. package/lib/core/change-family/index.d.ts.map +1 -1
  548. package/lib/core/change-family/index.js.map +1 -1
  549. package/lib/core/index.d.ts +3 -4
  550. package/lib/core/index.d.ts.map +1 -1
  551. package/lib/core/index.js +2 -3
  552. package/lib/core/index.js.map +1 -1
  553. package/lib/core/rebase/changeRebaser.d.ts +1 -6
  554. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  555. package/lib/core/rebase/changeRebaser.js.map +1 -1
  556. package/lib/core/rebase/index.d.ts +1 -1
  557. package/lib/core/rebase/index.d.ts.map +1 -1
  558. package/lib/core/rebase/index.js +1 -1
  559. package/lib/core/rebase/index.js.map +1 -1
  560. package/lib/core/rebase/types.d.ts +78 -1
  561. package/lib/core/rebase/types.d.ts.map +1 -1
  562. package/lib/core/rebase/types.js +0 -3
  563. package/lib/core/rebase/types.js.map +1 -1
  564. package/lib/core/rebase/utils.d.ts.map +1 -1
  565. package/lib/core/rebase/utils.js +7 -25
  566. package/lib/core/rebase/utils.js.map +1 -1
  567. package/lib/core/tree/delta.d.ts +0 -5
  568. package/lib/core/tree/delta.d.ts.map +1 -1
  569. package/lib/core/tree/delta.js.map +1 -1
  570. package/lib/core/tree/detachedFieldIndex.d.ts +1 -13
  571. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  572. package/lib/core/tree/detachedFieldIndex.js +2 -15
  573. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  574. package/lib/core/tree/detachedFieldIndexTypes.d.ts +0 -4
  575. package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  576. package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
  577. package/lib/core/tree/index.d.ts +2 -2
  578. package/lib/core/tree/index.d.ts.map +1 -1
  579. package/lib/core/tree/index.js +1 -1
  580. package/lib/core/tree/index.js.map +1 -1
  581. package/lib/core/tree/pathTree.d.ts +3 -11
  582. package/lib/core/tree/pathTree.d.ts.map +1 -1
  583. package/lib/core/tree/pathTree.js +1 -12
  584. package/lib/core/tree/pathTree.js.map +1 -1
  585. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  586. package/lib/core/tree/visitDelta.js +13 -17
  587. package/lib/core/tree/visitDelta.js.map +1 -1
  588. package/lib/entrypoints/alpha.d.ts +6 -0
  589. package/lib/entrypoints/alpha.d.ts.map +1 -0
  590. package/lib/entrypoints/alpha.js +12 -0
  591. package/lib/entrypoints/alpha.js.map +1 -0
  592. package/lib/entrypoints/beta.d.ts +6 -0
  593. package/lib/entrypoints/beta.d.ts.map +1 -0
  594. package/lib/entrypoints/beta.js +12 -0
  595. package/lib/entrypoints/beta.js.map +1 -0
  596. package/{src/core/schema-view/index.ts → lib/entrypoints/internal.d.ts} +2 -6
  597. package/lib/entrypoints/internal.d.ts.map +1 -0
  598. package/lib/entrypoints/internal.js +12 -0
  599. package/lib/entrypoints/internal.js.map +1 -0
  600. package/lib/entrypoints/legacy.d.ts +6 -0
  601. package/lib/entrypoints/legacy.d.ts.map +1 -0
  602. package/lib/entrypoints/legacy.js +15 -0
  603. package/lib/entrypoints/legacy.js.map +1 -0
  604. package/lib/entrypoints/public.d.ts +6 -0
  605. package/lib/entrypoints/public.d.ts.map +1 -0
  606. package/lib/entrypoints/public.js +10 -0
  607. package/lib/entrypoints/public.js.map +1 -0
  608. package/lib/feature-libraries/changeAtomIdBTree.d.ts +2 -3
  609. package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
  610. package/lib/feature-libraries/changeAtomIdBTree.js +3 -15
  611. package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -1
  612. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +8 -7
  613. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  614. package/lib/feature-libraries/chunked-forest/codec/codecs.js +25 -45
  615. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  616. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  617. package/lib/feature-libraries/chunked-forest/codec/format.js +11 -0
  618. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  619. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +3 -2
  620. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  621. package/lib/feature-libraries/chunked-forest/codec/index.js +2 -2
  622. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  623. package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
  624. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  625. package/lib/feature-libraries/chunked-forest/index.js +1 -1
  626. package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
  627. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +44 -92
  628. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  629. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +69 -217
  630. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  631. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  632. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +2 -12
  633. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  634. package/lib/feature-libraries/default-schema/index.d.ts +1 -2
  635. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
  636. package/lib/feature-libraries/default-schema/index.js +1 -2
  637. package/lib/feature-libraries/default-schema/index.js.map +1 -1
  638. package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts +6 -7
  639. package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
  640. package/lib/feature-libraries/default-schema/mappedEditBuilder.js +0 -15
  641. package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
  642. package/lib/feature-libraries/deltaUtils.d.ts +0 -1
  643. package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
  644. package/lib/feature-libraries/deltaUtils.js +1 -5
  645. package/lib/feature-libraries/deltaUtils.js.map +1 -1
  646. package/lib/feature-libraries/flex-tree/context.d.ts +0 -9
  647. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  648. package/lib/feature-libraries/flex-tree/context.js +0 -6
  649. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  650. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
  651. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  652. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  653. package/lib/feature-libraries/flex-tree/lazyField.d.ts +7 -8
  654. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  655. package/lib/feature-libraries/flex-tree/lazyField.js +9 -40
  656. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  657. package/lib/feature-libraries/flex-tree/observer.d.ts +17 -0
  658. package/lib/feature-libraries/flex-tree/observer.d.ts.map +1 -1
  659. package/lib/feature-libraries/flex-tree/observer.js.map +1 -1
  660. package/lib/feature-libraries/forest-summary/codec.d.ts +5 -12
  661. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  662. package/lib/feature-libraries/forest-summary/codec.js +35 -32
  663. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  664. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +2 -2
  665. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  666. package/lib/feature-libraries/forest-summary/forestSummarizer.js +7 -8
  667. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  668. package/lib/feature-libraries/forest-summary/formatCommon.d.ts +6 -4
  669. package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
  670. package/lib/feature-libraries/forest-summary/formatCommon.js +7 -4
  671. package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -1
  672. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +19 -14
  673. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  674. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +30 -47
  675. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  676. package/lib/feature-libraries/forest-summary/index.d.ts +1 -1
  677. package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -1
  678. package/lib/feature-libraries/forest-summary/index.js +1 -1
  679. package/lib/feature-libraries/forest-summary/index.js.map +1 -1
  680. package/lib/feature-libraries/index.d.ts +6 -6
  681. package/lib/feature-libraries/index.d.ts.map +1 -1
  682. package/lib/feature-libraries/index.js +5 -5
  683. package/lib/feature-libraries/index.js.map +1 -1
  684. package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +3 -3
  685. package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
  686. package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  687. package/lib/feature-libraries/indexing/index.d.ts +1 -1
  688. package/lib/feature-libraries/indexing/index.d.ts.map +1 -1
  689. package/lib/feature-libraries/indexing/index.js.map +1 -1
  690. package/lib/feature-libraries/indexing/types.d.ts +15 -13
  691. package/lib/feature-libraries/indexing/types.d.ts.map +1 -1
  692. package/lib/feature-libraries/indexing/types.js.map +1 -1
  693. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  694. package/lib/feature-libraries/mitigatedChangeFamily.js +2 -2
  695. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  696. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +24 -100
  697. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  698. package/lib/feature-libraries/modular-schema/crossFieldQueries.js +10 -7
  699. package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  700. package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +1 -0
  701. package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
  702. package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -6
  703. package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
  704. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +51 -85
  705. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  706. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  707. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  708. package/lib/feature-libraries/modular-schema/genericFieldKind.js +9 -4
  709. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  710. package/lib/feature-libraries/modular-schema/index.d.ts +3 -3
  711. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
  712. package/lib/feature-libraries/modular-schema/index.js +1 -1
  713. package/lib/feature-libraries/modular-schema/index.js.map +1 -1
  714. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +22 -18
  715. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
  716. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +144 -267
  717. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
  718. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
  719. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js +1 -1
  720. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
  721. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +0 -1
  722. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  723. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +0 -8
  724. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  725. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +22 -56
  726. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  727. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +474 -1389
  728. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  729. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
  730. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
  731. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +2 -1
  732. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
  733. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js +1 -1
  734. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
  735. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +10 -49
  736. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  737. package/lib/feature-libraries/modular-schema/modularChangeTypes.js +1 -1
  738. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  739. package/lib/feature-libraries/optional-field/optionalField.d.ts +32 -13
  740. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  741. package/lib/feature-libraries/optional-field/optionalField.js +442 -254
  742. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  743. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +31 -31
  744. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  745. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  746. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
  747. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  748. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +26 -55
  749. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  750. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  751. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
  752. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  753. package/lib/feature-libraries/optional-field/requiredField.d.ts +2 -3
  754. package/lib/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
  755. package/lib/feature-libraries/optional-field/requiredField.js +1 -5
  756. package/lib/feature-libraries/optional-field/requiredField.js.map +1 -1
  757. package/lib/feature-libraries/sequence-field/compose.d.ts +7 -6
  758. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  759. package/lib/feature-libraries/sequence-field/compose.js +261 -83
  760. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  761. package/lib/feature-libraries/sequence-field/helperTypes.d.ts +10 -14
  762. package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  763. package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  764. package/lib/feature-libraries/sequence-field/invert.d.ts +3 -3
  765. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  766. package/lib/feature-libraries/sequence-field/invert.js +169 -67
  767. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  768. package/lib/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  769. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  770. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
  771. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +56 -4
  772. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  773. package/lib/feature-libraries/sequence-field/moveEffectTable.js +84 -6
  774. package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  775. package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -3
  776. package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  777. package/lib/feature-libraries/sequence-field/rebase.js +118 -111
  778. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  779. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
  780. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
  781. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +46 -0
  782. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
  783. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  784. package/lib/feature-libraries/sequence-field/replaceRevisions.js +32 -19
  785. package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  786. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  787. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +3 -2
  788. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  789. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -22
  790. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  791. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +182 -379
  792. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  793. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  794. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +63 -21
  795. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  796. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
  797. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  798. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -13
  799. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  800. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -3
  801. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  802. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +111 -16
  803. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  804. package/lib/feature-libraries/sequence-field/types.d.ts +74 -37
  805. package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
  806. package/lib/feature-libraries/sequence-field/types.js.map +1 -1
  807. package/lib/feature-libraries/sequence-field/utils.d.ts +25 -20
  808. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  809. package/lib/feature-libraries/sequence-field/utils.js +313 -155
  810. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  811. package/lib/index.d.ts +9 -3
  812. package/lib/index.d.ts.map +1 -1
  813. package/lib/index.js +9 -1
  814. package/lib/index.js.map +1 -1
  815. package/lib/packageVersion.d.ts +1 -1
  816. package/lib/packageVersion.d.ts.map +1 -1
  817. package/lib/packageVersion.js +1 -1
  818. package/lib/packageVersion.js.map +1 -1
  819. package/lib/shared-tree/independentView.d.ts.map +1 -1
  820. package/lib/shared-tree/independentView.js +4 -4
  821. package/lib/shared-tree/independentView.js.map +1 -1
  822. package/lib/shared-tree/index.d.ts +1 -1
  823. package/lib/shared-tree/index.d.ts.map +1 -1
  824. package/lib/shared-tree/index.js.map +1 -1
  825. package/lib/shared-tree/schematizeTree.d.ts +4 -4
  826. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  827. package/lib/shared-tree/schematizeTree.js +2 -3
  828. package/lib/shared-tree/schematizeTree.js.map +1 -1
  829. package/lib/shared-tree/schematizingTreeView.d.ts +10 -1
  830. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  831. package/lib/shared-tree/schematizingTreeView.js +71 -30
  832. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  833. package/lib/shared-tree/sharedTree.d.ts +3 -9
  834. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  835. package/lib/shared-tree/sharedTree.js +9 -12
  836. package/lib/shared-tree/sharedTree.js.map +1 -1
  837. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +0 -1
  838. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  839. package/lib/shared-tree/sharedTreeChangeCodecs.js +0 -8
  840. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  841. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  842. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  843. package/lib/shared-tree/sharedTreeChangeFamily.js +3 -3
  844. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  845. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +6 -16
  846. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  847. package/lib/shared-tree/sharedTreeEditBuilder.js +6 -12
  848. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  849. package/lib/shared-tree/tree.js +1 -1
  850. package/lib/shared-tree/tree.js.map +1 -1
  851. package/lib/shared-tree/treeAlpha.d.ts +8 -1
  852. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  853. package/lib/shared-tree/treeAlpha.js +49 -9
  854. package/lib/shared-tree/treeAlpha.js.map +1 -1
  855. package/lib/shared-tree/treeCheckout.d.ts +46 -16
  856. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  857. package/lib/shared-tree/treeCheckout.js +134 -77
  858. package/lib/shared-tree/treeCheckout.js.map +1 -1
  859. package/lib/shared-tree/unhydratedTreeContext.d.ts +20 -0
  860. package/lib/shared-tree/unhydratedTreeContext.d.ts.map +1 -0
  861. package/lib/shared-tree/unhydratedTreeContext.js +52 -0
  862. package/lib/shared-tree/unhydratedTreeContext.js.map +1 -0
  863. package/lib/shared-tree-core/branch.d.ts +2 -3
  864. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  865. package/lib/shared-tree-core/branch.js +3 -4
  866. package/lib/shared-tree-core/branch.js.map +1 -1
  867. package/lib/shared-tree-core/editManager.d.ts +2 -2
  868. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  869. package/lib/shared-tree-core/editManager.js +9 -9
  870. package/lib/shared-tree-core/editManager.js.map +1 -1
  871. package/lib/shared-tree-core/editManagerCodecs.d.ts +0 -4
  872. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  873. package/lib/shared-tree-core/editManagerCodecs.js +1 -8
  874. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  875. package/lib/shared-tree-core/editManagerFormatCommons.d.ts +0 -1
  876. package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  877. package/lib/shared-tree-core/editManagerFormatCommons.js +0 -6
  878. package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  879. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
  880. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
  881. package/lib/shared-tree-core/editManagerFormatV1toV4.js +0 -1
  882. package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
  883. package/lib/shared-tree-core/index.d.ts +2 -2
  884. package/lib/shared-tree-core/index.d.ts.map +1 -1
  885. package/lib/shared-tree-core/index.js +2 -2
  886. package/lib/shared-tree-core/index.js.map +1 -1
  887. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
  888. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
  889. package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
  890. package/lib/shared-tree-core/messageCodecs.d.ts +0 -4
  891. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  892. package/lib/shared-tree-core/messageCodecs.js +1 -8
  893. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  894. package/lib/shared-tree-core/messageFormat.d.ts +0 -1
  895. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  896. package/lib/shared-tree-core/messageFormat.js +0 -6
  897. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  898. package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +2 -2
  899. package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
  900. package/lib/shared-tree-core/messageFormatV1ToV4.js +0 -1
  901. package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
  902. package/lib/shared-tree-core/sharedTreeCore.d.ts +0 -1
  903. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  904. package/lib/shared-tree-core/sharedTreeCore.js +1 -1
  905. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  906. package/lib/shared-tree-core/transaction.d.ts +15 -27
  907. package/lib/shared-tree-core/transaction.d.ts.map +1 -1
  908. package/lib/shared-tree-core/transaction.js +7 -11
  909. package/lib/shared-tree-core/transaction.js.map +1 -1
  910. package/lib/simple-tree/api/configuration.d.ts +4 -0
  911. package/lib/simple-tree/api/configuration.d.ts.map +1 -1
  912. package/lib/simple-tree/api/configuration.js.map +1 -1
  913. package/lib/simple-tree/api/eraseSchemaDetails.d.ts +43 -0
  914. package/lib/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
  915. package/lib/simple-tree/api/eraseSchemaDetails.js.map +1 -1
  916. package/lib/simple-tree/api/identifierIndex.d.ts +2 -2
  917. package/lib/simple-tree/api/identifierIndex.d.ts.map +1 -1
  918. package/lib/simple-tree/api/identifierIndex.js +2 -2
  919. package/lib/simple-tree/api/identifierIndex.js.map +1 -1
  920. package/lib/simple-tree/api/index.d.ts +6 -5
  921. package/lib/simple-tree/api/index.d.ts.map +1 -1
  922. package/lib/simple-tree/api/index.js +2 -2
  923. package/lib/simple-tree/api/index.js.map +1 -1
  924. package/lib/simple-tree/api/schemaFactory.d.ts +3 -2
  925. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  926. package/lib/simple-tree/api/schemaFactory.js +3 -2
  927. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  928. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +125 -28
  929. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  930. package/lib/simple-tree/api/schemaFactoryAlpha.js +66 -1
  931. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  932. package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
  933. package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
  934. package/lib/simple-tree/api/schemaStatics.d.ts +10 -11
  935. package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -1
  936. package/lib/simple-tree/api/schemaStatics.js +14 -8
  937. package/lib/simple-tree/api/schemaStatics.js.map +1 -1
  938. package/lib/simple-tree/api/simpleTreeIndex.d.ts +15 -13
  939. package/lib/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
  940. package/lib/simple-tree/api/simpleTreeIndex.js +2 -2
  941. package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
  942. package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +4 -4
  943. package/lib/simple-tree/api/snapshotCompatibilityChecker.js +2 -2
  944. package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
  945. package/lib/simple-tree/api/transactionTypes.d.ts +22 -25
  946. package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -1
  947. package/lib/simple-tree/api/transactionTypes.js.map +1 -1
  948. package/lib/simple-tree/api/tree.d.ts +69 -132
  949. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  950. package/lib/simple-tree/api/tree.js.map +1 -1
  951. package/lib/simple-tree/api/typesUnsafe.d.ts +23 -2
  952. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  953. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  954. package/lib/simple-tree/core/unhydratedFlexTree.d.ts +12 -16
  955. package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  956. package/lib/simple-tree/core/unhydratedFlexTree.js +8 -58
  957. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  958. package/lib/simple-tree/fieldSchema.d.ts +7 -6
  959. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  960. package/lib/simple-tree/fieldSchema.js +3 -4
  961. package/lib/simple-tree/fieldSchema.js.map +1 -1
  962. package/lib/simple-tree/index.d.ts +4 -4
  963. package/lib/simple-tree/index.d.ts.map +1 -1
  964. package/lib/simple-tree/index.js +2 -2
  965. package/lib/simple-tree/index.js.map +1 -1
  966. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  967. package/lib/simple-tree/node-kinds/array/arrayNode.js +4 -6
  968. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  969. package/lib/simple-tree/node-kinds/common.d.ts.map +1 -1
  970. package/lib/simple-tree/node-kinds/common.js +2 -2
  971. package/lib/simple-tree/node-kinds/common.js.map +1 -1
  972. package/lib/simple-tree/node-kinds/index.d.ts +1 -1
  973. package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
  974. package/lib/simple-tree/node-kinds/index.js.map +1 -1
  975. package/lib/simple-tree/node-kinds/map/mapNode.js +2 -2
  976. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  977. package/lib/simple-tree/node-kinds/object/index.d.ts +2 -2
  978. package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  979. package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
  980. package/lib/simple-tree/node-kinds/object/objectNode.d.ts +43 -7
  981. package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  982. package/lib/simple-tree/node-kinds/object/objectNode.js +20 -20
  983. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  984. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +26 -2
  985. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  986. package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  987. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  988. package/lib/simple-tree/node-kinds/record/recordNode.js +2 -4
  989. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  990. package/lib/simple-tree/prepareForInsertion.d.ts +47 -54
  991. package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
  992. package/lib/simple-tree/prepareForInsertion.js +125 -184
  993. package/lib/simple-tree/prepareForInsertion.js.map +1 -1
  994. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +3 -8
  995. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  996. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +10 -23
  997. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  998. package/lib/text/textDomain.d.ts +27 -9
  999. package/lib/text/textDomain.d.ts.map +1 -1
  1000. package/lib/text/textDomain.js +45 -9
  1001. package/lib/text/textDomain.js.map +1 -1
  1002. package/lib/text/textDomainFormatted.d.ts +16 -12
  1003. package/lib/text/textDomainFormatted.d.ts.map +1 -1
  1004. package/lib/text/textDomainFormatted.js +80 -8
  1005. package/lib/text/textDomainFormatted.js.map +1 -1
  1006. package/lib/treeFactory.d.ts.map +1 -1
  1007. package/lib/treeFactory.js +3 -13
  1008. package/lib/treeFactory.js.map +1 -1
  1009. package/lib/util/index.d.ts +1 -1
  1010. package/lib/util/index.d.ts.map +1 -1
  1011. package/lib/util/index.js +1 -1
  1012. package/lib/util/index.js.map +1 -1
  1013. package/lib/util/rangeMap.d.ts +10 -14
  1014. package/lib/util/rangeMap.d.ts.map +1 -1
  1015. package/lib/util/rangeMap.js +22 -61
  1016. package/lib/util/rangeMap.js.map +1 -1
  1017. package/lib/util/typeCheck.d.ts.map +1 -1
  1018. package/lib/util/typeCheck.js.map +1 -1
  1019. package/lib/util/typeUtils.d.ts.map +1 -1
  1020. package/lib/util/typeUtils.js.map +1 -1
  1021. package/package.json +49 -49
  1022. package/scripts/generate-entrypoint-sources.sh +29 -0
  1023. package/src/codec/codec.ts +5 -4
  1024. package/src/codec/index.ts +1 -0
  1025. package/src/codec/versioned/codec.ts +32 -6
  1026. package/src/codec/versioned/format.ts +17 -2
  1027. package/src/codec/versioned/index.ts +1 -1
  1028. package/src/core/change-family/changeFamily.ts +0 -5
  1029. package/src/core/change-family/index.ts +0 -1
  1030. package/src/core/index.ts +3 -10
  1031. package/src/core/rebase/changeRebaser.ts +1 -6
  1032. package/src/core/rebase/index.ts +2 -1
  1033. package/src/core/rebase/types.ts +80 -4
  1034. package/src/core/rebase/utils.ts +7 -31
  1035. package/src/core/tree/delta.ts +0 -6
  1036. package/src/core/tree/detachedFieldIndex.ts +1 -29
  1037. package/src/core/tree/detachedFieldIndexTypes.ts +0 -5
  1038. package/src/core/tree/index.ts +12 -13
  1039. package/src/core/tree/pathTree.ts +4 -16
  1040. package/src/core/tree/visitDelta.ts +11 -31
  1041. package/{dist/alpha.d.ts → src/entrypoints/alpha.ts} +22 -11
  1042. package/{lib/beta.d.ts → src/entrypoints/beta.ts} +6 -6
  1043. package/src/entrypoints/internal.ts +13 -0
  1044. package/{lib/legacy.d.ts → src/entrypoints/legacy.ts} +6 -6
  1045. package/{lib/public.d.ts → src/entrypoints/public.ts} +2 -5
  1046. package/src/feature-libraries/changeAtomIdBTree.ts +3 -28
  1047. package/src/feature-libraries/chunked-forest/codec/codecs.ts +59 -78
  1048. package/src/feature-libraries/chunked-forest/codec/format.ts +11 -0
  1049. package/src/feature-libraries/chunked-forest/codec/index.ts +3 -3
  1050. package/src/feature-libraries/chunked-forest/index.ts +2 -3
  1051. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +127 -369
  1052. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +4 -13
  1053. package/src/feature-libraries/default-schema/index.ts +5 -16
  1054. package/src/feature-libraries/default-schema/mappedEditBuilder.ts +9 -35
  1055. package/src/feature-libraries/deltaUtils.ts +1 -6
  1056. package/src/feature-libraries/flex-tree/context.ts +0 -17
  1057. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +8 -7
  1058. package/src/feature-libraries/flex-tree/lazyField.ts +24 -65
  1059. package/src/feature-libraries/flex-tree/observer.ts +17 -0
  1060. package/src/feature-libraries/forest-summary/codec.ts +46 -56
  1061. package/src/feature-libraries/forest-summary/forestSummarizer.ts +5 -14
  1062. package/src/feature-libraries/forest-summary/formatCommon.ts +14 -19
  1063. package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +44 -74
  1064. package/src/feature-libraries/forest-summary/index.ts +1 -1
  1065. package/src/feature-libraries/index.ts +11 -26
  1066. package/src/feature-libraries/indexing/anchorTreeIndex.ts +3 -5
  1067. package/src/feature-libraries/indexing/index.ts +1 -1
  1068. package/src/feature-libraries/indexing/types.ts +15 -17
  1069. package/src/feature-libraries/mitigatedChangeFamily.ts +1 -3
  1070. package/src/feature-libraries/modular-schema/crossFieldQueries.ts +47 -149
  1071. package/src/feature-libraries/modular-schema/defaultRevisionReplacer.ts +16 -8
  1072. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +58 -113
  1073. package/src/feature-libraries/modular-schema/genericFieldKind.ts +18 -7
  1074. package/src/feature-libraries/modular-schema/index.ts +16 -16
  1075. package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +329 -604
  1076. package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +0 -1
  1077. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +0 -14
  1078. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +754 -2695
  1079. package/src/feature-libraries/modular-schema/modularChangeFormatV1.ts +0 -1
  1080. package/src/feature-libraries/modular-schema/modularChangeFormatV2.ts +1 -1
  1081. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +10 -62
  1082. package/src/feature-libraries/optional-field/optionalField.ts +568 -359
  1083. package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +35 -31
  1084. package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +35 -89
  1085. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +1 -5
  1086. package/src/feature-libraries/optional-field/requiredField.ts +2 -15
  1087. package/src/feature-libraries/sequence-field/compose.ts +522 -137
  1088. package/src/feature-libraries/sequence-field/helperTypes.ts +19 -34
  1089. package/src/feature-libraries/sequence-field/invert.ts +228 -102
  1090. package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
  1091. package/src/feature-libraries/sequence-field/moveEffectTable.ts +195 -8
  1092. package/src/feature-libraries/sequence-field/rebase.ts +207 -171
  1093. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +57 -0
  1094. package/src/feature-libraries/sequence-field/replaceRevisions.ts +52 -26
  1095. package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +3 -8
  1096. package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +229 -677
  1097. package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +70 -56
  1098. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +30 -28
  1099. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +131 -21
  1100. package/src/feature-libraries/sequence-field/types.ts +79 -40
  1101. package/src/feature-libraries/sequence-field/utils.ts +370 -211
  1102. package/src/index.ts +25 -3
  1103. package/src/packageVersion.ts +1 -1
  1104. package/src/shared-tree/independentView.ts +9 -15
  1105. package/src/shared-tree/index.ts +2 -3
  1106. package/src/shared-tree/schematizeTree.ts +8 -21
  1107. package/src/shared-tree/schematizingTreeView.ts +111 -48
  1108. package/src/shared-tree/sharedTree.ts +23 -40
  1109. package/src/shared-tree/sharedTreeChangeCodecs.ts +0 -8
  1110. package/src/shared-tree/sharedTreeChangeFamily.ts +4 -7
  1111. package/src/shared-tree/sharedTreeEditBuilder.ts +8 -43
  1112. package/src/shared-tree/tree.ts +1 -1
  1113. package/src/shared-tree/treeAlpha.ts +64 -11
  1114. package/src/shared-tree/treeCheckout.ts +161 -115
  1115. package/src/shared-tree/unhydratedTreeContext.ts +87 -0
  1116. package/src/shared-tree-core/branch.ts +2 -8
  1117. package/src/shared-tree-core/editManager.ts +2 -16
  1118. package/src/shared-tree-core/editManagerCodecs.ts +1 -11
  1119. package/src/shared-tree-core/editManagerFormatCommons.ts +0 -6
  1120. package/src/shared-tree-core/editManagerFormatV1toV4.ts +1 -3
  1121. package/src/shared-tree-core/index.ts +0 -2
  1122. package/src/shared-tree-core/messageCodecV1ToV4.ts +1 -2
  1123. package/src/shared-tree-core/messageCodecs.ts +1 -11
  1124. package/src/shared-tree-core/messageFormat.ts +0 -6
  1125. package/src/shared-tree-core/messageFormatV1ToV4.ts +1 -3
  1126. package/src/shared-tree-core/sharedTreeCore.ts +1 -4
  1127. package/src/shared-tree-core/transaction.ts +19 -39
  1128. package/src/simple-tree/api/configuration.ts +4 -0
  1129. package/src/simple-tree/api/eraseSchemaDetails.ts +60 -0
  1130. package/src/simple-tree/api/identifierIndex.ts +4 -4
  1131. package/src/simple-tree/api/index.ts +15 -2
  1132. package/src/simple-tree/api/schemaFactory.ts +11 -3
  1133. package/src/simple-tree/api/schemaFactoryAlpha.ts +262 -25
  1134. package/src/simple-tree/api/schemaFactoryBeta.ts +10 -1
  1135. package/src/simple-tree/api/schemaStatics.ts +79 -21
  1136. package/src/simple-tree/api/simpleTreeIndex.ts +26 -20
  1137. package/src/simple-tree/api/snapshotCompatibilityChecker.ts +4 -4
  1138. package/src/simple-tree/api/transactionTypes.ts +24 -26
  1139. package/src/simple-tree/api/tree.ts +92 -131
  1140. package/src/simple-tree/api/typesUnsafe.ts +49 -1
  1141. package/src/simple-tree/core/unhydratedFlexTree.ts +35 -82
  1142. package/src/simple-tree/fieldSchema.ts +33 -11
  1143. package/src/simple-tree/index.ts +15 -4
  1144. package/src/simple-tree/node-kinds/array/arrayNode.ts +5 -7
  1145. package/src/simple-tree/node-kinds/common.ts +5 -2
  1146. package/src/simple-tree/node-kinds/index.ts +3 -0
  1147. package/src/simple-tree/node-kinds/map/mapNode.ts +4 -4
  1148. package/src/simple-tree/node-kinds/object/index.ts +3 -0
  1149. package/src/simple-tree/node-kinds/object/objectNode.ts +95 -37
  1150. package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +33 -2
  1151. package/src/simple-tree/node-kinds/record/recordNode.ts +9 -10
  1152. package/src/simple-tree/prepareForInsertion.ts +200 -342
  1153. package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +15 -35
  1154. package/src/text/textDomain.ts +91 -12
  1155. package/src/text/textDomainFormatted.ts +127 -15
  1156. package/src/treeFactory.ts +4 -16
  1157. package/src/util/index.ts +0 -3
  1158. package/src/util/rangeMap.ts +34 -78
  1159. package/src/util/typeCheck.ts +1 -0
  1160. package/src/util/typeUtils.ts +4 -7
  1161. package/dist/beta.d.ts +0 -149
  1162. package/dist/core/schema-view/index.d.ts +0 -6
  1163. package/dist/core/schema-view/index.d.ts.map +0 -1
  1164. package/dist/core/schema-view/index.js +0 -10
  1165. package/dist/core/schema-view/index.js.map +0 -1
  1166. package/dist/core/schema-view/view.d.ts +0 -31
  1167. package/dist/core/schema-view/view.d.ts.map +0 -1
  1168. package/dist/core/schema-view/view.js +0 -18
  1169. package/dist/core/schema-view/view.js.map +0 -1
  1170. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +0 -40
  1171. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +0 -1
  1172. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js +0 -153
  1173. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js.map +0 -1
  1174. package/dist/feature-libraries/forest-summary/formatV1.d.ts +0 -12
  1175. package/dist/feature-libraries/forest-summary/formatV1.d.ts.map +0 -1
  1176. package/dist/feature-libraries/forest-summary/formatV1.js +0 -10
  1177. package/dist/feature-libraries/forest-summary/formatV1.js.map +0 -1
  1178. package/dist/feature-libraries/forest-summary/formatV2.d.ts +0 -12
  1179. package/dist/feature-libraries/forest-summary/formatV2.d.ts.map +0 -1
  1180. package/dist/feature-libraries/forest-summary/formatV2.js +0 -10
  1181. package/dist/feature-libraries/forest-summary/formatV2.js.map +0 -1
  1182. package/dist/feature-libraries/modular-schema/modularChangeCodecV3.d.ts +0 -15
  1183. package/dist/feature-libraries/modular-schema/modularChangeCodecV3.d.ts.map +0 -1
  1184. package/dist/feature-libraries/modular-schema/modularChangeCodecV3.js +0 -296
  1185. package/dist/feature-libraries/modular-schema/modularChangeCodecV3.js.map +0 -1
  1186. package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +0 -74
  1187. package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +0 -1
  1188. package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js +0 -35
  1189. package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js.map +0 -1
  1190. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts +0 -23
  1191. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts.map +0 -1
  1192. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.js +0 -31
  1193. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.js.map +0 -1
  1194. package/dist/feature-libraries/optional-field/optionalFieldCodecV3.d.ts +0 -12
  1195. package/dist/feature-libraries/optional-field/optionalFieldCodecV3.d.ts.map +0 -1
  1196. package/dist/feature-libraries/optional-field/optionalFieldCodecV3.js +0 -57
  1197. package/dist/feature-libraries/optional-field/optionalFieldCodecV3.js.map +0 -1
  1198. package/dist/legacy.d.ts +0 -156
  1199. package/dist/public.d.ts +0 -94
  1200. package/lib/alpha.d.ts +0 -300
  1201. package/lib/core/schema-view/index.d.ts +0 -6
  1202. package/lib/core/schema-view/index.d.ts.map +0 -1
  1203. package/lib/core/schema-view/index.js.map +0 -1
  1204. package/lib/core/schema-view/view.d.ts +0 -31
  1205. package/lib/core/schema-view/view.d.ts.map +0 -1
  1206. package/lib/core/schema-view/view.js +0 -14
  1207. package/lib/core/schema-view/view.js.map +0 -1
  1208. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +0 -40
  1209. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +0 -1
  1210. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js +0 -149
  1211. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js.map +0 -1
  1212. package/lib/feature-libraries/forest-summary/formatV1.d.ts +0 -12
  1213. package/lib/feature-libraries/forest-summary/formatV1.d.ts.map +0 -1
  1214. package/lib/feature-libraries/forest-summary/formatV1.js +0 -7
  1215. package/lib/feature-libraries/forest-summary/formatV1.js.map +0 -1
  1216. package/lib/feature-libraries/forest-summary/formatV2.d.ts +0 -12
  1217. package/lib/feature-libraries/forest-summary/formatV2.d.ts.map +0 -1
  1218. package/lib/feature-libraries/forest-summary/formatV2.js +0 -7
  1219. package/lib/feature-libraries/forest-summary/formatV2.js.map +0 -1
  1220. package/lib/feature-libraries/modular-schema/modularChangeCodecV3.d.ts +0 -15
  1221. package/lib/feature-libraries/modular-schema/modularChangeCodecV3.d.ts.map +0 -1
  1222. package/lib/feature-libraries/modular-schema/modularChangeCodecV3.js +0 -292
  1223. package/lib/feature-libraries/modular-schema/modularChangeCodecV3.js.map +0 -1
  1224. package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +0 -74
  1225. package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +0 -1
  1226. package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js +0 -32
  1227. package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js.map +0 -1
  1228. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts +0 -23
  1229. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts.map +0 -1
  1230. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.js +0 -27
  1231. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.js.map +0 -1
  1232. package/lib/feature-libraries/optional-field/optionalFieldCodecV3.d.ts +0 -12
  1233. package/lib/feature-libraries/optional-field/optionalFieldCodecV3.d.ts.map +0 -1
  1234. package/lib/feature-libraries/optional-field/optionalFieldCodecV3.js +0 -53
  1235. package/lib/feature-libraries/optional-field/optionalFieldCodecV3.js.map +0 -1
  1236. package/src/core/schema-view/README.md +0 -9
  1237. package/src/core/schema-view/view.ts +0 -38
  1238. package/src/feature-libraries/default-schema/locationBasedEditBuilder.ts +0 -231
  1239. package/src/feature-libraries/forest-summary/formatV1.ts +0 -11
  1240. package/src/feature-libraries/forest-summary/formatV2.ts +0 -11
  1241. package/src/feature-libraries/modular-schema/modularChangeCodecV3.ts +0 -649
  1242. package/src/feature-libraries/modular-schema/modularChangeFormatV3.ts +0 -67
  1243. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV3.ts +0 -45
  1244. package/src/feature-libraries/optional-field/optionalFieldCodecV3.ts +0 -94
@@ -14,15 +14,13 @@ import { type TextAsTree } from "./textDomain.js";
14
14
  * @internal
15
15
  */
16
16
  export declare namespace FormattedTextAsTree {
17
- const CharacterFormat_base: import("../simple-tree/index.js").ObjectNodeSchema<"com.fluidframework.text.formatted.CharacterFormat", {
17
+ const CharacterFormat_base: import("../simple-tree/index.js").ObjectNodeSchemaWorkaround<"com.fluidframework.text.formatted.CharacterFormat", {
18
18
  readonly bold: import("../simple-tree/leafNodeSchema.js").LeafSchema<"boolean", boolean>;
19
19
  readonly italic: import("../simple-tree/leafNodeSchema.js").LeafSchema<"boolean", boolean>;
20
20
  readonly underline: import("../simple-tree/leafNodeSchema.js").LeafSchema<"boolean", boolean>;
21
21
  readonly size: import("../simple-tree/leafNodeSchema.js").LeafSchema<"number", number>;
22
22
  readonly font: import("../simple-tree/leafNodeSchema.js").LeafSchema<"string", string>;
23
- }, true, unknown> & {
24
- readonly createFromInsertable: unknown;
25
- };
23
+ }, true, unknown>;
26
24
  /**
27
25
  * Formatting options for characters.
28
26
  * @internal
@@ -83,12 +81,12 @@ export declare namespace FormattedTextAsTree {
83
81
  h4: import("../simple-tree/index.js").TreeNodeSchemaClass<"com.fluidframework.text.formatted.lineTag.h4" | "com.h4", import("../simple-tree/index.js").NodeKind.Object, TreeNode & {
84
82
  readonly value: "h4";
85
83
  }, Record<string, never>, true, Record<string, never>, undefined>;
86
- h5: import("../simple-tree/index.js").TreeNodeSchemaClass<"com.fluidframework.text.formatted.lineTag.h5" | "com.h5", import("../simple-tree/index.js").NodeKind.Object, TreeNode & {
87
- readonly value: "h5";
88
- }, Record<string, never>, true, Record<string, never>, undefined>;
89
84
  li: import("../simple-tree/index.js").TreeNodeSchemaClass<"com.fluidframework.text.formatted.lineTag.li" | "com.li", import("../simple-tree/index.js").NodeKind.Object, TreeNode & {
90
85
  readonly value: "li";
91
86
  }, Record<string, never>, true, Record<string, never>, undefined>;
87
+ h5: import("../simple-tree/index.js").TreeNodeSchemaClass<"com.fluidframework.text.formatted.lineTag.h5" | "com.h5", import("../simple-tree/index.js").NodeKind.Object, TreeNode & {
88
+ readonly value: "h5";
89
+ }, Record<string, never>, true, Record<string, never>, undefined>;
92
90
  } & {
93
91
  readonly schema: [import("../simple-tree/index.js").TreeNodeSchemaClass<"com.fluidframework.text.formatted.lineTag.li" | "com.li", import("../simple-tree/index.js").NodeKind.Object, TreeNode & {
94
92
  readonly value: "li";
@@ -531,11 +529,15 @@ export declare namespace FormattedTextAsTree {
531
529
  */
532
530
  defaultFormat: CharacterFormat;
533
531
  /**
534
- * Gets an iterable over the characters currently in the text.
532
+ * Gets an array type view of the characters currently in the text.
535
533
  * @remarks
536
534
  * This iterator matches the behavior of {@link (TreeArrayNode:interface)} with respect to edits during iteration.
535
+ * @privateRemarks
536
+ * Currently this is implemented by a node and changes with the text over time.
537
+ * We might not want to leak a node like this in the API.
538
+ * Providing a way to index and iterate separately might be better.
537
539
  */
538
- charactersWithFormatting(): Iterable<StringAtom>;
540
+ charactersWithFormatting(): readonly StringAtom[];
539
541
  /**
540
542
  * Insert a range of characters into the string based on character index.
541
543
  * @remarks
@@ -552,11 +554,13 @@ export declare namespace FormattedTextAsTree {
552
554
  insertWithFormattingAt(index: number, additionalCharacters: Iterable<InsertableTypedNode<typeof StringAtom>>): void;
553
555
  /**
554
556
  * Apply formatting to a range of characters based on character index.
555
- * @param startIndex - The starting index of the range to format.
556
- * @param length - The number of characters to format.
557
+ * @param startIndex - The starting index (inclusive) of the range to format.
558
+ * @param endIndex - The ending index (exclusive) of the range to format.
557
559
  * @param format - The formatting to apply to the specified range.
560
+ * @remarks
561
+ * The start and end behave the same as in {@link (TreeArrayNode:interface).removeRange}.
558
562
  */
559
- formatRange(startIndex: number, length: number, format: Partial<CharacterFormat>): void;
563
+ formatRange(startIndex: number | undefined, endIndex: number | undefined, format: Partial<CharacterFormat>): void;
560
564
  }
561
565
  /**
562
566
  * Schema for a text node.
@@ -1 +1 @@
1
- {"version":3,"file":"textDomainFormatted.d.ts","sourceRoot":"","sources":["../../src/text/textDomainFormatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,KAAK,EACX,mBAAmB,EACnB,QAAQ,EACR,gCAAgC,EAChC,QAAQ,EACR,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA+HxE;;;;;;;;GAQG;AACH,yBAAiB,mBAAmB,CAAC;;;;;;;;;;IACpC;;;OAGG;IACH,MAAM,OAAO,eAAgB,SAAQ,oBAMnC;KAAG;;QAOJ;;;;;;;;;;WAUG;;;;;QAVH;;;;;;;;;;WAUG;;;IAfJ;;;OAGG;IACH,MAAM,OAAO,cAAe,SAAQ,mBAalC;KAAG;IAEL;;;OAGG;IACH,MAAM,CAAC,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOlB,CAAC;IACH;;;OAGG;IACH,MAAM,MAAM,OAAO,GAAG,gCAAgC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE9E;;;;;;;OAOG;IACH,MAAM,OAAO,cAAe,SAAQ,mBAElC;QACD,SAAgB,OAAO,QAAQ;KAC/B;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,iBAAiB,yDAA4C,CAAC;IAC3E;;;OAGG;IACH,MAAM,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,OAAO,iBAAiB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE3F;;;OAGG;IACH,MAAM,OAAO,UAAW,SAAQ,eAG9B;KAAG;IAEL;;;OAGG;IACH,MAAM,WAAW,OAAO;QACvB;;;WAGG;QACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,WAAW,OAAQ,SAAQ,UAAU,CAAC,OAAO;QAClD;;;;;;WAMG;QACH,aAAa,EAAE,eAAe,CAAC;QAE/B;;;;WAIG;QACH,wBAAwB,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEjD;;;;;;;;;;;;WAYG;QACH,sBAAsB,CACrB,KAAK,EAAE,MAAM,EACb,oBAAoB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,UAAU,CAAC,CAAC,GACpE,IAAI,CAAC;QAER;;;;;WAKG;QACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;KACxF;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,IAAI,8RAAmD,CAAC;IACrE,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,wCAAwC,CAAC,CAAC;;CAC3F"}
1
+ {"version":3,"file":"textDomainFormatted.d.ts","sourceRoot":"","sources":["../../src/text/textDomainFormatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,OAAO,KAAK,EACX,mBAAmB,EACnB,QAAQ,EACR,gCAAgC,EAChC,QAAQ,EACR,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmOxE;;;;;;;;GAQG;AACH,yBAAiB,mBAAmB,CAAC;;;;;;;;IACpC;;;OAGG;IACH,MAAM,OAAO,eAAgB,SAAQ,oBAMnC;KAAG;;QAOJ;;;;;;;;;;WAUG;;;;;QAVH;;;;;;;;;;WAUG;;;IAfJ;;;OAGG;IACH,MAAM,OAAO,cAAe,SAAQ,mBAalC;KAAG;IAEL;;;OAGG;IACH,MAAM,CAAC,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOlB,CAAC;IACH;;;OAGG;IACH,MAAM,MAAM,OAAO,GAAG,gCAAgC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE9E;;;;;;;OAOG;IACH,MAAM,OAAO,cAAe,SAAQ,mBAElC;QACD,SAAgB,OAAO,QAAQ;KAC/B;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,iBAAiB,yDAA4C,CAAC;IAC3E;;;OAGG;IACH,MAAM,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,OAAO,iBAAiB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE3F;;;OAGG;IACH,MAAM,OAAO,UAAW,SAAQ,eAG9B;KAAG;IAEL;;;OAGG;IACH,MAAM,WAAW,OAAO;QACvB;;;WAGG;QACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,WAAW,OAAQ,SAAQ,UAAU,CAAC,OAAO;QAClD;;;;;;WAMG;QACH,aAAa,EAAE,eAAe,CAAC;QAE/B;;;;;;;;WAQG;QACH,wBAAwB,IAAI,SAAS,UAAU,EAAE,CAAC;QAElD;;;;;;;;;;;;WAYG;QACH,sBAAsB,CACrB,KAAK,EAAE,MAAM,EACb,oBAAoB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,UAAU,CAAC,CAAC,GACpE,IAAI,CAAC;QAER;;;;;;;WAOG;QACH,WAAW,CACV,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC9B,IAAI,CAAC;KACR;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,IAAI,8RAAmD,CAAC;IACrE,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,wCAAwC,CAAC,CAAC;;CAC3F"}
@@ -8,30 +8,54 @@ exports.FormattedTextAsTree = void 0;
8
8
  const internal_1 = require("@fluidframework/core-utils/internal");
9
9
  const internal_2 = require("@fluidframework/telemetry-utils/internal");
10
10
  const index_js_1 = require("../core/index.js");
11
- const index_js_2 = require("../shared-tree/index.js");
12
- const index_js_3 = require("../simple-tree/index.js");
13
- const index_js_4 = require("../util/index.js");
11
+ const index_js_2 = require("../feature-libraries/index.js");
12
+ const index_js_3 = require("../shared-tree/index.js");
13
+ const index_js_4 = require("../simple-tree/index.js");
14
+ const index_js_5 = require("../util/index.js");
14
15
  const textDomain_js_1 = require("./textDomain.js");
15
- const sf = new index_js_3.SchemaFactoryAlpha("com.fluidframework.text.formatted");
16
+ const sf = new index_js_4.SchemaFactoryAlpha("com.fluidframework.text.formatted");
16
17
  class TextNode extends sf.object("Text", {
17
- content: index_js_3.SchemaFactory.required([() => StringArray], { key: index_js_1.EmptyKey }),
18
+ content: index_js_4.SchemaFactory.required([() => StringArray], { key: index_js_1.EmptyKey }),
18
19
  }) {
19
20
  constructor() {
20
21
  super(...arguments);
21
22
  this.defaultFormat = new FormattedTextAsTree.CharacterFormat(defaultFormat);
22
23
  }
23
24
  insertAt(index, additionalCharacters) {
24
- this.content.insertAt(index, index_js_3.TreeArrayNode.spread(textAtomsFromString(additionalCharacters, this.defaultFormat)));
25
+ this.content.insertAt(index, index_js_4.TreeArrayNode.spread(textAtomsFromString(additionalCharacters, this.defaultFormat)));
25
26
  }
26
- removeRange(index, length) {
27
- this.content.removeRange(index, length);
27
+ removeRange(index, end) {
28
+ this.content.removeRange(index, end);
28
29
  }
29
30
  characters() {
30
- return (0, index_js_4.mapIterable)(this.content, (atom) => atom.content.content);
31
+ return (0, index_js_5.mapIterable)(this.content, (atom) => atom.content.content);
32
+ }
33
+ charactersCopy() {
34
+ const result = this.content.charactersCopy();
35
+ (0, internal_1.debugAssert)(() => (0, internal_1.compareArrays)(result, this.charactersCopy_reference()) ||
36
+ "invalid charactersCopy optimizations");
37
+ return result;
38
+ }
39
+ characterCount() {
40
+ return this.content.length;
31
41
  }
32
42
  fullString() {
43
+ const result = this.content.fullString();
44
+ (0, internal_1.debugAssert)(() => result === this.fullString_reference() || "invalid fullString optimizations");
45
+ return result;
46
+ }
47
+ /**
48
+ * A non-optimized reference implementation of fullString.
49
+ */
50
+ fullString_reference() {
33
51
  return [...this.characters()].join("");
34
52
  }
53
+ /**
54
+ * Unoptimized trivially correct implementation of charactersCopy.
55
+ */
56
+ charactersCopy_reference() {
57
+ return [...this.characters()];
58
+ }
35
59
  static fromString(value, format) {
36
60
  // Constructing an ArrayNode from an iterator is supported, so creating an array from the iterable of characters seems like it's not necessary here,
37
61
  // but to reduce the risk of incorrect data interpretation, we actually ban this in the special case where the iterable is a string directly, which is the case here.
@@ -46,12 +70,16 @@ class TextNode extends sf.object("Text", {
46
70
  return this.content;
47
71
  }
48
72
  insertWithFormattingAt(index, additionalCharacters) {
49
- this.content.insertAt(index, index_js_3.TreeArrayNode.spread(additionalCharacters));
73
+ this.content.insertAt(index, index_js_4.TreeArrayNode.spread(additionalCharacters));
50
74
  }
51
- formatRange(startIndex, length, format) {
52
- const branch = index_js_2.TreeAlpha.branch(this);
75
+ formatRange(start, end, format) {
76
+ const formatStart = start ?? 0;
77
+ (0, index_js_5.validateIndex)(formatStart, this.content, "FormattedTextAsTree.formatRange", true);
78
+ const formatEnd = Math.min(this.content.length, end ?? this.content.length);
79
+ (0, index_js_5.validateIndexRange)(formatStart, formatEnd, this.content, "FormattedTextAsTree.formatRange");
80
+ const branch = index_js_3.TreeAlpha.branch(this);
53
81
  const applyFormatting = () => {
54
- for (let i = startIndex; i < startIndex + length; i++) {
82
+ for (let i = formatStart; i < formatEnd; i++) {
55
83
  const atom = this.content[i];
56
84
  if (atom === undefined) {
57
85
  throw new internal_2.UsageError("Index out of bounds while formatting text range.");
@@ -65,7 +93,7 @@ class TextNode extends sf.object("Text", {
65
93
  throw new internal_2.UsageError(`Unknown format key: ${key}`);
66
94
  }
67
95
  // Ensures that if the input is a node, it is cloned before being inserted into the tree.
68
- atom.format[key] = index_js_3.TreeBeta.clone(index_js_3.TreeBeta.create(f, value));
96
+ atom.format[key] = index_js_4.TreeBeta.clone(index_js_4.TreeBeta.create(f, value));
69
97
  }
70
98
  }
71
99
  };
@@ -91,13 +119,57 @@ const defaultFormat = {
91
119
  font: "Arial",
92
120
  };
93
121
  function textAtomsFromString(value, format) {
94
- const result = (0, index_js_4.mapIterable)((0, textDomain_js_1.charactersFromString)(value), (char) => new FormattedTextAsTree.StringAtom({
122
+ const result = (0, index_js_5.mapIterable)((0, textDomain_js_1.charactersFromString)(value), (char) => new FormattedTextAsTree.StringAtom({
95
123
  content: { content: char },
96
- format: index_js_3.TreeBeta.clone(format),
124
+ format: index_js_4.TreeBeta.clone(format),
97
125
  }));
98
126
  return result;
99
127
  }
100
128
  class StringArray extends sf.array("StringArray", [() => FormattedTextAsTree.StringAtom]) {
129
+ withBorrowedSequenceCursor(f) {
130
+ const innerNode = (0, index_js_4.getInnerNode)(this);
131
+ // Since the cursor will be used to read content from the tree and won't track observations,
132
+ // treat it as if it observed the whole subtree.
133
+ index_js_2.currentObserver?.observeNodeDeep(innerNode);
134
+ const cursor = innerNode.borrowCursor();
135
+ cursor.enterField(index_js_1.EmptyKey);
136
+ const result = f(cursor);
137
+ cursor.exitField();
138
+ return result;
139
+ }
140
+ charactersCopy() {
141
+ return this.withBorrowedSequenceCursor((cursor) => (0, index_js_1.mapCursorField)(cursor, () => {
142
+ (0, internal_1.debugAssert)(() => cursor.type === FormattedTextAsTree.StringAtom.identifier ||
143
+ "invalid fullString type optimizations");
144
+ cursor.enterField(index_js_1.EmptyKey);
145
+ cursor.enterNode(0);
146
+ let content;
147
+ switch (cursor.type) {
148
+ case FormattedTextAsTree.StringTextAtom.identifier: {
149
+ cursor.enterField(index_js_1.EmptyKey);
150
+ cursor.enterNode(0);
151
+ content = cursor.value;
152
+ (0, internal_1.debugAssert)(() => typeof content === "string" || "invalid fullString type optimizations");
153
+ cursor.exitNode();
154
+ cursor.exitField();
155
+ break;
156
+ }
157
+ case FormattedTextAsTree.StringLineAtom.identifier: {
158
+ content = "\n";
159
+ break;
160
+ }
161
+ default: {
162
+ (0, internal_1.fail)(0xcde /* Unsupported node type in text array */, () => `${cursor.type}`);
163
+ }
164
+ }
165
+ cursor.exitNode();
166
+ cursor.exitField();
167
+ return content;
168
+ }));
169
+ }
170
+ fullString() {
171
+ return this.charactersCopy().join("");
172
+ }
101
173
  }
102
174
  /**
103
175
  * A collection of text related types, schema and utilities for working with text beyond the basic {@link SchemaStatics.string}.
@@ -115,11 +187,11 @@ var FormattedTextAsTree;
115
187
  * @internal
116
188
  */
117
189
  class CharacterFormat extends sf.objectAlpha("CharacterFormat", {
118
- bold: index_js_3.SchemaFactory.boolean,
119
- italic: index_js_3.SchemaFactory.boolean,
120
- underline: index_js_3.SchemaFactory.boolean,
121
- size: index_js_3.SchemaFactory.number,
122
- font: index_js_3.SchemaFactory.string,
190
+ bold: index_js_4.SchemaFactory.boolean,
191
+ italic: index_js_4.SchemaFactory.boolean,
192
+ underline: index_js_4.SchemaFactory.boolean,
193
+ size: index_js_4.SchemaFactory.number,
194
+ font: index_js_4.SchemaFactory.string,
123
195
  }) {
124
196
  }
125
197
  FormattedTextAsTree.CharacterFormat = CharacterFormat;
@@ -139,7 +211,7 @@ var FormattedTextAsTree;
139
211
  * @privateRemarks
140
212
  * This content logically represents the whole atom's content, so using {@link EmptyKey} makes sense to help indicate that.
141
213
  */
142
- content: index_js_3.SchemaFactory.required([index_js_3.SchemaFactory.string], { key: index_js_1.EmptyKey }),
214
+ content: index_js_4.SchemaFactory.required([index_js_4.SchemaFactory.string], { key: index_js_1.EmptyKey }),
143
215
  }) {
144
216
  }
145
217
  FormattedTextAsTree.StringTextAtom = StringTextAtom;
@@ -147,7 +219,7 @@ var FormattedTextAsTree;
147
219
  * Tag with which a line in text can be formatted from HTML.
148
220
  * @internal
149
221
  */
150
- FormattedTextAsTree.LineTag = (0, index_js_3.enumFromStrings)(sf.scopedFactory("lineTag"), [
222
+ FormattedTextAsTree.LineTag = (0, index_js_4.enumFromStrings)(sf.scopedFactory("lineTag"), [
151
223
  "h1",
152
224
  "h2",
153
225
  "h3",
@@ -182,7 +254,7 @@ var FormattedTextAsTree;
182
254
  * @internal
183
255
  */
184
256
  class StringAtom extends sf.object("StringAtom", {
185
- content: index_js_3.SchemaFactory.required(FormattedTextAsTree.StringAtomContent, { key: index_js_1.EmptyKey }),
257
+ content: index_js_4.SchemaFactory.required(FormattedTextAsTree.StringAtomContent, { key: index_js_1.EmptyKey }),
186
258
  format: CharacterFormat,
187
259
  }) {
188
260
  }
@@ -194,6 +266,6 @@ var FormattedTextAsTree;
194
266
  * See {@link FormattedTextAsTree.Statics} for static APIs on this Schema, including construction.
195
267
  * @internal
196
268
  */
197
- FormattedTextAsTree.Tree = (0, index_js_3.eraseSchemaDetails)()(TextNode);
269
+ FormattedTextAsTree.Tree = (0, index_js_4.eraseSchemaDetails)()(TextNode);
198
270
  })(FormattedTextAsTree || (exports.FormattedTextAsTree = FormattedTextAsTree = {}));
199
271
  //# sourceMappingURL=textDomainFormatted.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textDomainFormatted.js","sourceRoot":"","sources":["../../src/text/textDomainFormatted.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\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { EmptyKey } from \"../core/index.js\";\nimport { TreeAlpha } from \"../shared-tree/index.js\";\nimport {\n\tenumFromStrings,\n\teraseSchemaDetails,\n\tSchemaFactory,\n\tSchemaFactoryAlpha,\n\tTreeArrayNode,\n\tTreeBeta,\n} from \"../simple-tree/index.js\";\nimport type {\n\tInsertableTypedNode,\n\tTreeNode,\n\tTreeNodeFromImplicitAllowedTypes,\n\tWithType,\n} from \"../simple-tree/index.js\";\nimport { mapIterable } from \"../util/index.js\";\n\nimport { charactersFromString, type TextAsTree } from \"./textDomain.js\";\n\nconst sf = new SchemaFactoryAlpha(\"com.fluidframework.text.formatted\");\n\nclass TextNode\n\textends sf.object(\"Text\", {\n\t\tcontent: SchemaFactory.required([() => StringArray], { key: EmptyKey }),\n\t})\n\timplements FormattedTextAsTree.Members\n{\n\tpublic defaultFormat: FormattedTextAsTree.CharacterFormat =\n\t\tnew FormattedTextAsTree.CharacterFormat(defaultFormat);\n\n\tpublic insertAt(index: number, additionalCharacters: string): void {\n\t\tthis.content.insertAt(\n\t\t\tindex,\n\t\t\tTreeArrayNode.spread(textAtomsFromString(additionalCharacters, this.defaultFormat)),\n\t\t);\n\t}\n\tpublic removeRange(index: number, length: number): void {\n\t\tthis.content.removeRange(index, length);\n\t}\n\tpublic characters(): Iterable<string> {\n\t\treturn mapIterable(this.content, (atom) => atom.content.content);\n\t}\n\tpublic fullString(): string {\n\t\treturn [...this.characters()].join(\"\");\n\t}\n\n\tpublic static fromString(\n\t\tvalue: string,\n\t\tformat?: FormattedTextAsTree.CharacterFormat,\n\t): TextNode {\n\t\t// Constructing an ArrayNode from an iterator is supported, so creating an array from the iterable of characters seems like it's not necessary here,\n\t\t// but to reduce the risk of incorrect data interpretation, we actually ban this in the special case where the iterable is a string directly, which is the case here.\n\t\t// Thus the array construction here is necessary to avoid a runtime error.\n\t\treturn new TextNode({\n\t\t\tcontent: [\n\t\t\t\t...textAtomsFromString(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformat ?? new FormattedTextAsTree.CharacterFormat(defaultFormat),\n\t\t\t\t),\n\t\t\t],\n\t\t});\n\t}\n\n\tpublic charactersWithFormatting(): Iterable<FormattedTextAsTree.StringAtom> {\n\t\treturn this.content;\n\t}\n\tpublic insertWithFormattingAt(\n\t\tindex: number,\n\t\tadditionalCharacters: Iterable<InsertableTypedNode<typeof FormattedTextAsTree.StringAtom>>,\n\t): void {\n\t\tthis.content.insertAt(index, TreeArrayNode.spread(additionalCharacters));\n\t}\n\tpublic formatRange(\n\t\tstartIndex: number,\n\t\tlength: number,\n\t\tformat: Partial<FormattedTextAsTree.CharacterFormat>,\n\t): void {\n\t\tconst branch = TreeAlpha.branch(this);\n\n\t\tconst applyFormatting = (): void => {\n\t\t\tfor (let i = startIndex; i < startIndex + length; i++) {\n\t\t\t\tconst atom = this.content[i];\n\t\t\t\tif (atom === undefined) {\n\t\t\t\t\tthrow new UsageError(\"Index out of bounds while formatting text range.\");\n\t\t\t\t}\n\t\t\t\tfor (const [key, value] of Object.entries(format) as [\n\t\t\t\t\tkeyof FormattedTextAsTree.CharacterFormat,\n\t\t\t\t\tunknown,\n\t\t\t\t][]) {\n\t\t\t\t\t// Object.entries should only return string keyed enumerable own properties.\n\t\t\t\t\t// The TypeScript typing does not account for this, and thus this assertion is necessary for this code to compile.\n\t\t\t\t\tassert(\n\t\t\t\t\t\ttypeof key === \"string\",\n\t\t\t\t\t\t0xcc8 /* Object.entries returned a non-string key. */,\n\t\t\t\t\t);\n\t\t\t\t\tconst f = FormattedTextAsTree.CharacterFormat.fields.get(key);\n\t\t\t\t\tif (f === undefined) {\n\t\t\t\t\t\tthrow new UsageError(`Unknown format key: ${key}`);\n\t\t\t\t\t}\n\t\t\t\t\t// Ensures that if the input is a node, it is cloned before being inserted into the tree.\n\t\t\t\t\tatom.format[key] = TreeBeta.clone(TreeBeta.create(f, value as never)) as never;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tif (branch === undefined) {\n\t\t\t// If this node does not have a corresponding branch, then it is unhydrated.\n\t\t\t// I.e., it is not part of a collaborative session yet.\n\t\t\t// Therefore, we don't need to run the edits as a transaction.\n\t\t\tapplyFormatting();\n\t\t} else {\n\t\t\t// Wrap all formatting operations in a single transaction for atomicity.\n\t\t\tbranch.runTransaction(() => {\n\t\t\t\tapplyFormatting();\n\t\t\t});\n\t\t}\n\t}\n}\n\nconst defaultFormat = {\n\tbold: false,\n\titalic: false,\n\tunderline: false,\n\tsize: 12,\n\tfont: \"Arial\",\n} as const;\n\nfunction textAtomsFromString(\n\tvalue: string,\n\tformat: FormattedTextAsTree.CharacterFormat,\n): Iterable<FormattedTextAsTree.StringAtom> {\n\tconst result = mapIterable(\n\t\tcharactersFromString(value),\n\t\t(char) =>\n\t\t\tnew FormattedTextAsTree.StringAtom({\n\t\t\t\tcontent: { content: char },\n\t\t\t\tformat: TreeBeta.clone<typeof FormattedTextAsTree.CharacterFormat>(format),\n\t\t\t}),\n\t);\n\treturn result;\n}\n\nclass StringArray extends sf.array(\"StringArray\", [() => FormattedTextAsTree.StringAtom]) {}\n\n/**\n * A collection of text related types, schema and utilities for working with text beyond the basic {@link SchemaStatics.string}.\n * @privateRemarks\n * This has hard-coded assumptions about what kind of embedded content and what kind of formatting is supported.\n * We will want to generalize this with a more generic schema factory function like with table.\n * Then either that and/or the output from it can be package exported.\n * This version is just an initial prototype.\n * @internal\n */\nexport namespace FormattedTextAsTree {\n\t/**\n\t * Formatting options for characters.\n\t * @internal\n\t */\n\texport class CharacterFormat extends sf.objectAlpha(\"CharacterFormat\", {\n\t\tbold: SchemaFactory.boolean,\n\t\titalic: SchemaFactory.boolean,\n\t\tunderline: SchemaFactory.boolean,\n\t\tsize: SchemaFactory.number,\n\t\tfont: SchemaFactory.string,\n\t}) {}\n\n\t/**\n\t * Unit in the string representing a single character.\n\t * @internal\n\t */\n\texport class StringTextAtom extends sf.object(\"StringTextAtom\", {\n\t\t/**\n\t\t * The underlying text content of this atom.\n\t\t * @remarks\n\t\t * This is typically a single unicode codepoint, and thus may contain multiple utf-16 surrogate pair code units.\n\t\t * Using longer strings is still valid. For example, so users might store whole grapheme clusters here, or even longer sections of text.\n\t\t * Anything combined into a single atom will be treated atomically, and can not be partially selected or formatted.\n\t\t * Using larger atoms and splitting them as needed is NOT a recommended approach, since this will result in poor merge behavior for concurrent edits.\n\t\t * Instead atoms should always be the smallest unit of text which will be independently selected, moved or formatted.\n\t\t * @privateRemarks\n\t\t * This content logically represents the whole atom's content, so using {@link EmptyKey} makes sense to help indicate that.\n\t\t */\n\t\tcontent: SchemaFactory.required([SchemaFactory.string], { key: EmptyKey }),\n\t}) {}\n\n\t/**\n\t * Tag with which a line in text can be formatted from HTML.\n\t * @internal\n\t */\n\texport const LineTag = enumFromStrings(sf.scopedFactory(\"lineTag\"), [\n\t\t\"h1\",\n\t\t\"h2\",\n\t\t\"h3\",\n\t\t\"h4\",\n\t\t\"h5\",\n\t\t\"li\",\n\t]);\n\t/**\n\t * {@inheritdoc FormattedTextAsTree.(LineTag:variable)}\n\t * @internal\n\t */\n\texport type LineTag = TreeNodeFromImplicitAllowedTypes<typeof LineTag.schema>;\n\n\t/**\n\t * Unit in the string representing a new line character with line formatting.\n\t * @remarks\n\t * This aligns with how Quill represents line formatting.\n\t * Note that not all new lines will use this,\n\t * but only ones using this can have line specific formatting.\n\t * @internal\n\t */\n\texport class StringLineAtom extends sf.object(\"StringLineAtom\", {\n\t\ttag: LineTag.schema,\n\t}) {\n\t\tpublic readonly content = \"\\n\";\n\t}\n\n\t/**\n\t * Types of \"atoms\" that make up the text.\n\t * @internal\n\t */\n\texport const StringAtomContent = [StringTextAtom, StringLineAtom] as const;\n\t/**\n\t * {@inheritdoc FormattedTextAsTree.(StringAtomContent:variable)}\n\t * @internal\n\t */\n\texport type StringAtomContent = TreeNodeFromImplicitAllowedTypes<typeof StringAtomContent>;\n\n\t/**\n\t * A unit of the text, with formatting.\n\t * @internal\n\t */\n\texport class StringAtom extends sf.object(\"StringAtom\", {\n\t\tcontent: SchemaFactory.required(StringAtomContent, { key: EmptyKey }),\n\t\tformat: CharacterFormat,\n\t}) {}\n\n\t/**\n\t * Statics for text nodes.\n\t * @internal\n\t */\n\texport interface Statics {\n\t\t/**\n\t\t * Construct a {@link FormattedTextAsTree.(Tree:type)} from a string, where each character (as defined by iterating over the string) becomes a single character in the text node.\n\t\t * @remarks This combines pairs of utf-16 surrogate code units into single characters as appropriate.\n\t\t */\n\t\tfromString(value: string): Tree;\n\t}\n\n\t/**\n\t * Interface for a text node.\n\t * @remarks\n\t * The string is broken up into substrings which are referred to as 'characters'.\n\t * Unlike with JavaScript strings, all indexes are by character, not UTF-16 code unit.\n\t * This avoids the problem JavaScript where it can split UTF-16 surrogate pairs producing invalid strings,\n\t * and avoids the issue where indexing a string and iterating it segment the string differently.\n\t * This does NOT mean the characters correspond to user perceived characters (like grapheme clusters try to do):\n\t * applications will likely want to include higher level segmentation logic\n\t * which might differ between operations like delete\n\t * (which often operates on something in between unicode code points and grapheme clusters)\n\t * and navigation/selection (which typically uses grapheme clusters).\n\t *\n\t * @see {@link FormattedTextAsTree.Statics.fromString} for construction.\n\t * @see {@link FormattedTextAsTree.(Tree:type)} for schema.\n\t * @internal\n\t */\n\texport interface Members extends TextAsTree.Members {\n\t\t/**\n\t\t * Format to use by default for text inserted with non-formatted APIs.\n\t\t * @remarks\n\t\t * This is not persisted in the tree, and observation of it is not tracked by the tree observation tracking.\n\t\t * @privateRemarks\n\t\t * Opt this into observation tracking.\n\t\t */\n\t\tdefaultFormat: CharacterFormat;\n\n\t\t/**\n\t\t * Gets an iterable over the characters currently in the text.\n\t\t * @remarks\n\t\t * This iterator matches the behavior of {@link (TreeArrayNode:interface)} with respect to edits during iteration.\n\t\t */\n\t\tcharactersWithFormatting(): Iterable<StringAtom>;\n\n\t\t/**\n\t\t * Insert a range of characters into the string based on character index.\n\t\t * @remarks\n\t\t * See {@link (TreeArrayNode:interface).insertAt} for more details on the behavior.\n\t\t * See {@link FormattedTextAsTree.Statics.fromString} for how the `additionalCharacters` string is broken into characters.\n\t\t * @privateRemarks\n\t\t * If we provide ways to customize character boundaries, that could be handled here by taking in an Iterable<string> instead of a string.\n\t\t * Doing this currently would enable insertion of text with different character boundaries than the existing text,\n\t\t * which would violate the currently documented character boundary invariants.\n\t\t *\n\t\t * Another option would be to take an approach like Table,\n\t\t * where the user of the API uses a factory function to generate the schema, and can inject custom logic, like a string character iterator.\n\t\t */\n\t\tinsertWithFormattingAt(\n\t\t\tindex: number,\n\t\t\tadditionalCharacters: Iterable<InsertableTypedNode<typeof StringAtom>>,\n\t\t): void;\n\n\t\t/**\n\t\t * Apply formatting to a range of characters based on character index.\n\t\t * @param startIndex - The starting index of the range to format.\n\t\t * @param length - The number of characters to format.\n\t\t * @param format - The formatting to apply to the specified range.\n\t\t */\n\t\tformatRange(startIndex: number, length: number, format: Partial<CharacterFormat>): void;\n\t}\n\n\t/**\n\t * Schema for a text node.\n\t * @remarks\n\t * See {@link FormattedTextAsTree.Members} for the API.\n\t * See {@link FormattedTextAsTree.Statics} for static APIs on this Schema, including construction.\n\t * @internal\n\t */\n\texport const Tree = eraseSchemaDetails<Members, Statics>()(TextNode);\n\texport type Tree = Members & TreeNode & WithType<\"com.fluidframework.text.formatted.Text\">;\n}\n"]}
1
+ {"version":3,"file":"textDomainFormatted.js","sourceRoot":"","sources":["../../src/text/textDomainFormatted.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, compareArrays, debugAssert, fail } from \"@fluidframework/core-utils/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { EmptyKey, mapCursorField, type ITreeCursorSynchronous } from \"../core/index.js\";\nimport { currentObserver } from \"../feature-libraries/index.js\";\nimport { TreeAlpha } from \"../shared-tree/index.js\";\nimport {\n\tenumFromStrings,\n\teraseSchemaDetails,\n\tgetInnerNode,\n\tSchemaFactory,\n\tSchemaFactoryAlpha,\n\tTreeArrayNode,\n\tTreeBeta,\n} from \"../simple-tree/index.js\";\nimport type {\n\tInsertableTypedNode,\n\tTreeNode,\n\tTreeNodeFromImplicitAllowedTypes,\n\tWithType,\n} from \"../simple-tree/index.js\";\nimport { mapIterable, validateIndex, validateIndexRange } from \"../util/index.js\";\n\nimport { charactersFromString, type TextAsTree } from \"./textDomain.js\";\n\nconst sf = new SchemaFactoryAlpha(\"com.fluidframework.text.formatted\");\n\nclass TextNode\n\textends sf.object(\"Text\", {\n\t\tcontent: SchemaFactory.required([() => StringArray], { key: EmptyKey }),\n\t})\n\timplements FormattedTextAsTree.Members\n{\n\tpublic defaultFormat: FormattedTextAsTree.CharacterFormat =\n\t\tnew FormattedTextAsTree.CharacterFormat(defaultFormat);\n\n\tpublic insertAt(index: number, additionalCharacters: string): void {\n\t\tthis.content.insertAt(\n\t\t\tindex,\n\t\t\tTreeArrayNode.spread(textAtomsFromString(additionalCharacters, this.defaultFormat)),\n\t\t);\n\t}\n\n\tpublic removeRange(index: number | undefined, end: number | undefined): void {\n\t\tthis.content.removeRange(index, end);\n\t}\n\n\tpublic characters(): Iterable<string> {\n\t\treturn mapIterable(this.content, (atom) => atom.content.content);\n\t}\n\n\tpublic charactersCopy(): string[] {\n\t\tconst result = this.content.charactersCopy();\n\t\tdebugAssert(\n\t\t\t() =>\n\t\t\t\tcompareArrays(result, this.charactersCopy_reference()) ||\n\t\t\t\t\"invalid charactersCopy optimizations\",\n\t\t);\n\t\treturn result;\n\t}\n\n\tpublic characterCount(): number {\n\t\treturn this.content.length;\n\t}\n\n\tpublic fullString(): string {\n\t\tconst result = this.content.fullString();\n\t\tdebugAssert(\n\t\t\t() => result === this.fullString_reference() || \"invalid fullString optimizations\",\n\t\t);\n\t\treturn result;\n\t}\n\n\t/**\n\t * A non-optimized reference implementation of fullString.\n\t */\n\tpublic fullString_reference(): string {\n\t\treturn [...this.characters()].join(\"\");\n\t}\n\n\t/**\n\t * Unoptimized trivially correct implementation of charactersCopy.\n\t */\n\tpublic charactersCopy_reference(): string[] {\n\t\treturn [...this.characters()];\n\t}\n\n\tpublic static fromString(\n\t\tvalue: string,\n\t\tformat?: FormattedTextAsTree.CharacterFormat,\n\t): TextNode {\n\t\t// Constructing an ArrayNode from an iterator is supported, so creating an array from the iterable of characters seems like it's not necessary here,\n\t\t// but to reduce the risk of incorrect data interpretation, we actually ban this in the special case where the iterable is a string directly, which is the case here.\n\t\t// Thus the array construction here is necessary to avoid a runtime error.\n\t\treturn new TextNode({\n\t\t\tcontent: [\n\t\t\t\t...textAtomsFromString(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformat ?? new FormattedTextAsTree.CharacterFormat(defaultFormat),\n\t\t\t\t),\n\t\t\t],\n\t\t});\n\t}\n\n\tpublic charactersWithFormatting(): readonly FormattedTextAsTree.StringAtom[] {\n\t\treturn this.content;\n\t}\n\tpublic insertWithFormattingAt(\n\t\tindex: number,\n\t\tadditionalCharacters: Iterable<InsertableTypedNode<typeof FormattedTextAsTree.StringAtom>>,\n\t): void {\n\t\tthis.content.insertAt(index, TreeArrayNode.spread(additionalCharacters));\n\t}\n\tpublic formatRange(\n\t\tstart: number | undefined,\n\t\tend: number | undefined,\n\t\tformat: Partial<FormattedTextAsTree.CharacterFormat>,\n\t): void {\n\t\tconst formatStart = start ?? 0;\n\t\tvalidateIndex(formatStart, this.content, \"FormattedTextAsTree.formatRange\", true);\n\n\t\tconst formatEnd = Math.min(this.content.length, end ?? this.content.length);\n\t\tvalidateIndexRange(\n\t\t\tformatStart,\n\t\t\tformatEnd,\n\t\t\tthis.content,\n\t\t\t\"FormattedTextAsTree.formatRange\",\n\t\t);\n\n\t\tconst branch = TreeAlpha.branch(this);\n\n\t\tconst applyFormatting = (): void => {\n\t\t\tfor (let i = formatStart; i < formatEnd; i++) {\n\t\t\t\tconst atom = this.content[i];\n\t\t\t\tif (atom === undefined) {\n\t\t\t\t\tthrow new UsageError(\"Index out of bounds while formatting text range.\");\n\t\t\t\t}\n\t\t\t\tfor (const [key, value] of Object.entries(format) as [\n\t\t\t\t\tkeyof FormattedTextAsTree.CharacterFormat,\n\t\t\t\t\tunknown,\n\t\t\t\t][]) {\n\t\t\t\t\t// Object.entries should only return string keyed enumerable own properties.\n\t\t\t\t\t// The TypeScript typing does not account for this, and thus this assertion is necessary for this code to compile.\n\t\t\t\t\tassert(\n\t\t\t\t\t\ttypeof key === \"string\",\n\t\t\t\t\t\t0xcc8 /* Object.entries returned a non-string key. */,\n\t\t\t\t\t);\n\t\t\t\t\tconst f = FormattedTextAsTree.CharacterFormat.fields.get(key);\n\t\t\t\t\tif (f === undefined) {\n\t\t\t\t\t\tthrow new UsageError(`Unknown format key: ${key}`);\n\t\t\t\t\t}\n\t\t\t\t\t// Ensures that if the input is a node, it is cloned before being inserted into the tree.\n\t\t\t\t\tatom.format[key] = TreeBeta.clone(TreeBeta.create(f, value as never)) as never;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tif (branch === undefined) {\n\t\t\t// If this node does not have a corresponding branch, then it is unhydrated.\n\t\t\t// I.e., it is not part of a collaborative session yet.\n\t\t\t// Therefore, we don't need to run the edits as a transaction.\n\t\t\tapplyFormatting();\n\t\t} else {\n\t\t\t// Wrap all formatting operations in a single transaction for atomicity.\n\t\t\tbranch.runTransaction(() => {\n\t\t\t\tapplyFormatting();\n\t\t\t});\n\t\t}\n\t}\n}\n\nconst defaultFormat = {\n\tbold: false,\n\titalic: false,\n\tunderline: false,\n\tsize: 12,\n\tfont: \"Arial\",\n} as const;\n\nfunction textAtomsFromString(\n\tvalue: string,\n\tformat: FormattedTextAsTree.CharacterFormat,\n): Iterable<FormattedTextAsTree.StringAtom> {\n\tconst result = mapIterable(\n\t\tcharactersFromString(value),\n\t\t(char) =>\n\t\t\tnew FormattedTextAsTree.StringAtom({\n\t\t\t\tcontent: { content: char },\n\t\t\t\tformat: TreeBeta.clone<typeof FormattedTextAsTree.CharacterFormat>(format),\n\t\t\t}),\n\t);\n\treturn result;\n}\n\nclass StringArray extends sf.array(\"StringArray\", [() => FormattedTextAsTree.StringAtom]) {\n\tpublic withBorrowedSequenceCursor<T>(f: (cursor: ITreeCursorSynchronous) => T): T {\n\t\tconst innerNode = getInnerNode(this);\n\t\t// Since the cursor will be used to read content from the tree and won't track observations,\n\t\t// treat it as if it observed the whole subtree.\n\t\tcurrentObserver?.observeNodeDeep(innerNode);\n\t\tconst cursor = innerNode.borrowCursor();\n\t\tcursor.enterField(EmptyKey);\n\t\tconst result = f(cursor);\n\t\tcursor.exitField();\n\t\treturn result;\n\t}\n\n\tpublic charactersCopy(): string[] {\n\t\treturn this.withBorrowedSequenceCursor((cursor) =>\n\t\t\tmapCursorField(cursor, () => {\n\t\t\t\tdebugAssert(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tcursor.type === FormattedTextAsTree.StringAtom.identifier ||\n\t\t\t\t\t\t\"invalid fullString type optimizations\",\n\t\t\t\t);\n\t\t\t\tcursor.enterField(EmptyKey);\n\t\t\t\tcursor.enterNode(0);\n\t\t\t\tlet content: string;\n\t\t\t\tswitch (cursor.type) {\n\t\t\t\t\tcase FormattedTextAsTree.StringTextAtom.identifier: {\n\t\t\t\t\t\tcursor.enterField(EmptyKey);\n\t\t\t\t\t\tcursor.enterNode(0);\n\t\t\t\t\t\tcontent = cursor.value as string;\n\t\t\t\t\t\tdebugAssert(\n\t\t\t\t\t\t\t() => typeof content === \"string\" || \"invalid fullString type optimizations\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcursor.exitNode();\n\t\t\t\t\t\tcursor.exitField();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase FormattedTextAsTree.StringLineAtom.identifier: {\n\t\t\t\t\t\tcontent = \"\\n\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tfail(0xcde /* Unsupported node type in text array */, () => `${cursor.type}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcursor.exitNode();\n\t\t\t\tcursor.exitField();\n\t\t\t\treturn content;\n\t\t\t}),\n\t\t);\n\t}\n\n\tpublic fullString(): string {\n\t\treturn this.charactersCopy().join(\"\");\n\t}\n}\n\n/**\n * A collection of text related types, schema and utilities for working with text beyond the basic {@link SchemaStatics.string}.\n * @privateRemarks\n * This has hard-coded assumptions about what kind of embedded content and what kind of formatting is supported.\n * We will want to generalize this with a more generic schema factory function like with table.\n * Then either that and/or the output from it can be package exported.\n * This version is just an initial prototype.\n * @internal\n */\nexport namespace FormattedTextAsTree {\n\t/**\n\t * Formatting options for characters.\n\t * @internal\n\t */\n\texport class CharacterFormat extends sf.objectAlpha(\"CharacterFormat\", {\n\t\tbold: SchemaFactory.boolean,\n\t\titalic: SchemaFactory.boolean,\n\t\tunderline: SchemaFactory.boolean,\n\t\tsize: SchemaFactory.number,\n\t\tfont: SchemaFactory.string,\n\t}) {}\n\n\t/**\n\t * Unit in the string representing a single character.\n\t * @internal\n\t */\n\texport class StringTextAtom extends sf.object(\"StringTextAtom\", {\n\t\t/**\n\t\t * The underlying text content of this atom.\n\t\t * @remarks\n\t\t * This is typically a single unicode codepoint, and thus may contain multiple utf-16 surrogate pair code units.\n\t\t * Using longer strings is still valid. For example, so users might store whole grapheme clusters here, or even longer sections of text.\n\t\t * Anything combined into a single atom will be treated atomically, and can not be partially selected or formatted.\n\t\t * Using larger atoms and splitting them as needed is NOT a recommended approach, since this will result in poor merge behavior for concurrent edits.\n\t\t * Instead atoms should always be the smallest unit of text which will be independently selected, moved or formatted.\n\t\t * @privateRemarks\n\t\t * This content logically represents the whole atom's content, so using {@link EmptyKey} makes sense to help indicate that.\n\t\t */\n\t\tcontent: SchemaFactory.required([SchemaFactory.string], { key: EmptyKey }),\n\t}) {}\n\n\t/**\n\t * Tag with which a line in text can be formatted from HTML.\n\t * @internal\n\t */\n\texport const LineTag = enumFromStrings(sf.scopedFactory(\"lineTag\"), [\n\t\t\"h1\",\n\t\t\"h2\",\n\t\t\"h3\",\n\t\t\"h4\",\n\t\t\"h5\",\n\t\t\"li\",\n\t]);\n\t/**\n\t * {@inheritdoc FormattedTextAsTree.(LineTag:variable)}\n\t * @internal\n\t */\n\texport type LineTag = TreeNodeFromImplicitAllowedTypes<typeof LineTag.schema>;\n\n\t/**\n\t * Unit in the string representing a new line character with line formatting.\n\t * @remarks\n\t * This aligns with how Quill represents line formatting.\n\t * Note that not all new lines will use this,\n\t * but only ones using this can have line specific formatting.\n\t * @internal\n\t */\n\texport class StringLineAtom extends sf.object(\"StringLineAtom\", {\n\t\ttag: LineTag.schema,\n\t}) {\n\t\tpublic readonly content = \"\\n\";\n\t}\n\n\t/**\n\t * Types of \"atoms\" that make up the text.\n\t * @internal\n\t */\n\texport const StringAtomContent = [StringTextAtom, StringLineAtom] as const;\n\t/**\n\t * {@inheritdoc FormattedTextAsTree.(StringAtomContent:variable)}\n\t * @internal\n\t */\n\texport type StringAtomContent = TreeNodeFromImplicitAllowedTypes<typeof StringAtomContent>;\n\n\t/**\n\t * A unit of the text, with formatting.\n\t * @internal\n\t */\n\texport class StringAtom extends sf.object(\"StringAtom\", {\n\t\tcontent: SchemaFactory.required(StringAtomContent, { key: EmptyKey }),\n\t\tformat: CharacterFormat,\n\t}) {}\n\n\t/**\n\t * Statics for text nodes.\n\t * @internal\n\t */\n\texport interface Statics {\n\t\t/**\n\t\t * Construct a {@link FormattedTextAsTree.(Tree:type)} from a string, where each character (as defined by iterating over the string) becomes a single character in the text node.\n\t\t * @remarks This combines pairs of utf-16 surrogate code units into single characters as appropriate.\n\t\t */\n\t\tfromString(value: string): Tree;\n\t}\n\n\t/**\n\t * Interface for a text node.\n\t * @remarks\n\t * The string is broken up into substrings which are referred to as 'characters'.\n\t * Unlike with JavaScript strings, all indexes are by character, not UTF-16 code unit.\n\t * This avoids the problem JavaScript where it can split UTF-16 surrogate pairs producing invalid strings,\n\t * and avoids the issue where indexing a string and iterating it segment the string differently.\n\t * This does NOT mean the characters correspond to user perceived characters (like grapheme clusters try to do):\n\t * applications will likely want to include higher level segmentation logic\n\t * which might differ between operations like delete\n\t * (which often operates on something in between unicode code points and grapheme clusters)\n\t * and navigation/selection (which typically uses grapheme clusters).\n\t *\n\t * @see {@link FormattedTextAsTree.Statics.fromString} for construction.\n\t * @see {@link FormattedTextAsTree.(Tree:type)} for schema.\n\t * @internal\n\t */\n\texport interface Members extends TextAsTree.Members {\n\t\t/**\n\t\t * Format to use by default for text inserted with non-formatted APIs.\n\t\t * @remarks\n\t\t * This is not persisted in the tree, and observation of it is not tracked by the tree observation tracking.\n\t\t * @privateRemarks\n\t\t * Opt this into observation tracking.\n\t\t */\n\t\tdefaultFormat: CharacterFormat;\n\n\t\t/**\n\t\t * Gets an array type view of the characters currently in the text.\n\t\t * @remarks\n\t\t * This iterator matches the behavior of {@link (TreeArrayNode:interface)} with respect to edits during iteration.\n\t\t * @privateRemarks\n\t\t * Currently this is implemented by a node and changes with the text over time.\n\t\t * We might not want to leak a node like this in the API.\n\t\t * Providing a way to index and iterate separately might be better.\n\t\t */\n\t\tcharactersWithFormatting(): readonly StringAtom[];\n\n\t\t/**\n\t\t * Insert a range of characters into the string based on character index.\n\t\t * @remarks\n\t\t * See {@link (TreeArrayNode:interface).insertAt} for more details on the behavior.\n\t\t * See {@link FormattedTextAsTree.Statics.fromString} for how the `additionalCharacters` string is broken into characters.\n\t\t * @privateRemarks\n\t\t * If we provide ways to customize character boundaries, that could be handled here by taking in an Iterable<string> instead of a string.\n\t\t * Doing this currently would enable insertion of text with different character boundaries than the existing text,\n\t\t * which would violate the currently documented character boundary invariants.\n\t\t *\n\t\t * Another option would be to take an approach like Table,\n\t\t * where the user of the API uses a factory function to generate the schema, and can inject custom logic, like a string character iterator.\n\t\t */\n\t\tinsertWithFormattingAt(\n\t\t\tindex: number,\n\t\t\tadditionalCharacters: Iterable<InsertableTypedNode<typeof StringAtom>>,\n\t\t): void;\n\n\t\t/**\n\t\t * Apply formatting to a range of characters based on character index.\n\t\t * @param startIndex - The starting index (inclusive) of the range to format.\n\t\t * @param endIndex - The ending index (exclusive) of the range to format.\n\t\t * @param format - The formatting to apply to the specified range.\n\t\t * @remarks\n\t\t * The start and end behave the same as in {@link (TreeArrayNode:interface).removeRange}.\n\t\t */\n\t\tformatRange(\n\t\t\tstartIndex: number | undefined,\n\t\t\tendIndex: number | undefined,\n\t\t\tformat: Partial<CharacterFormat>,\n\t\t): void;\n\t}\n\n\t/**\n\t * Schema for a text node.\n\t * @remarks\n\t * See {@link FormattedTextAsTree.Members} for the API.\n\t * See {@link FormattedTextAsTree.Statics} for static APIs on this Schema, including construction.\n\t * @internal\n\t */\n\texport const Tree = eraseSchemaDetails<Members, Statics>()(TextNode);\n\texport type Tree = Members & TreeNode & WithType<\"com.fluidframework.text.formatted.Text\">;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"treeFactory.d.ts","sourceRoot":"","sources":["../src/treeFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAMtB,MAAM,6CAA6C,CAAC;AAIrD,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAE9B,MAAM,wBAAwB,CAAC;AAQhC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGpD;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,EAAE,YAAY;CAAG;AA8DnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,oDAA2B,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,qBAAqB,GAC5B,gBAAgB,CAAC,KAAK,CAAC,CAEzB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,qBAAqB,GAC5B,iBAAiB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAEpD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,iBAAiB,GACxB,gBAAgB,CAAC,KAAK,CAAC,CAEzB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,iBAAiB,GACxB,iBAAiB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAGpD;AAED,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,yBAAyB,GAChC,iBAAiB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CASpD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,yBAAyB,CAQpF"}
1
+ {"version":3,"file":"treeFactory.d.ts","sourceRoot":"","sources":["../src/treeFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAMtB,MAAM,6CAA6C,CAAC;AAIrD,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAE9B,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGpD;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,EAAE,YAAY;CAAG;AA8DnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,oDAA2B,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,qBAAqB,GAC5B,gBAAgB,CAAC,KAAK,CAAC,CAEzB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,qBAAqB,GAC5B,iBAAiB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAEpD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,iBAAiB,GACxB,gBAAgB,CAAC,KAAK,CAAC,CAEzB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,iBAAiB,GACxB,iBAAiB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAGpD;AAED,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,yBAAyB,GAChC,iBAAiB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CASpD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,yBAAyB,CAQpF"}
@@ -150,24 +150,14 @@ function resolveOptions(options) {
150
150
  }
151
151
  exports.resolveOptions = resolveOptions;
152
152
  function resolveFormatOptions(options) {
153
- if (options.enableSharedBranches === true && options.enableDetachedRootEditing === true) {
154
- throw new internal_2.UsageError("enableDetachedRootEditing cannot be used with enableSharedBranches.");
155
- }
156
- if (options.enableSharedBranches === true) {
153
+ const enableSharedBranches = options.enableSharedBranches ?? false;
154
+ if (enableSharedBranches) {
157
155
  return sharedBranchesOptions;
158
156
  }
159
- if (options.enableDetachedRootEditing === true) {
160
- return detachRootEditingOptions;
161
- }
162
157
  return {};
163
158
  }
164
159
  const sharedBranchesOptions = {
165
160
  messageFormatSelector: index_js_3.messageFormatVersionSelectorForSharedBranches,
166
161
  editManagerFormatSelector: index_js_3.editManagerFormatVersionSelectorForSharedBranches,
167
162
  };
168
- const detachRootEditingOptions = {
169
- messageFormatSelector: index_js_3.messageFormatVersionSelectorForDetachedRootEditing,
170
- editManagerFormatSelector: index_js_3.editManagerFormatVersionSelectorForDetachedRootEditing,
171
- enableDetachedRootEditing: true,
172
- };
173
163
  //# sourceMappingURL=treeFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"treeFactory.js","sourceRoot":"","sources":["../src/treeFactory.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 type { IChannelStorageService } from \"@fluidframework/datastore-definitions/internal\";\nimport type { SharedObjectKind } from \"@fluidframework/shared-object-base\";\nimport {\n\ttype ISharedObject,\n\ttype ISharedObjectKind,\n\tmakeSharedObjectKind,\n\ttype KernelArgs,\n\ttype SharedKernelFactory,\n\ttype SharedObjectOptions,\n\ttype FactoryOut,\n} from \"@fluidframework/shared-object-base/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { FluidClientVersion } from \"./codec/index.js\";\nimport {\n\tSharedTreeKernel,\n\ttype ITreePrivate,\n\ttype SharedTreeOptions,\n\ttype SharedTreeOptionsBeta,\n\ttype SharedTreeOptionsInternal,\n\ttype SharedTreeKernelView,\n} from \"./shared-tree/index.js\";\nimport {\n\teditManagerFormatVersionSelectorForDetachedRootEditing,\n\teditManagerFormatVersionSelectorForSharedBranches,\n\tmessageFormatVersionSelectorForDetachedRootEditing,\n\tmessageFormatVersionSelectorForSharedBranches,\n} from \"./shared-tree-core/index.js\";\nimport { SharedTreeFactoryType, SharedTreeAttributes } from \"./sharedTreeAttributes.js\";\nimport type { ITree } from \"./simple-tree/index.js\";\nimport { Breakable, copyProperty } from \"./util/index.js\";\n\n/**\n * {@link ITreePrivate} extended with ISharedObject.\n * @remarks\n * This is used when integration testing this package with the Fluid runtime as it exposes the APIs the runtime consumes to manipulate the tree.\n */\nexport interface ISharedTree extends ISharedObject, ITreePrivate {}\n\n/**\n * Creates a factory for shared tree kernels with the given options.\n * @remarks\n * Exposes {@link ITreePrivate} to allow access to internals in tests without a cast.\n * Code exposing this beyond this package will need to update to a more public type.\n */\nfunction treeKernelFactory(\n\toptions: SharedTreeOptionsInternal,\n): SharedKernelFactory<SharedTreeKernelView> {\n\tfunction treeFromKernelArgs(args: KernelArgs): SharedTreeKernel {\n\t\tif (args.idCompressor === undefined) {\n\t\t\tthrow new UsageError(\"IdCompressor must be enabled to use SharedTree\");\n\t\t}\n\n\t\tconst { minVersionForCollab, ...otherOptions } = options;\n\n\t\tconst adjustedOptions = {\n\t\t\t...otherOptions,\n\t\t\t// Cases:\n\t\t\t// A. If options specifies minVersionForCollab, it takes precedence over args.minVersionForCollab.\n\t\t\t// This value is set when:\n\t\t\t// - A customer using the declarative SharedTree API specifies the setting at the Shared Tree level.\n\t\t\t// There is currently no way to set it via the declarative API, but it could be added in the future.\n\t\t\t// - treeKernelFactory is invoked in a fuzz test with a specific minVersionForCollab\n\t\t\t// B. Otherwise, we use args.minVersionForCollab, which is propagated from the ContainerRuntime.\n\t\t\t// C. If neither specifies it, we fall back to a default value default of 2.0 since that is the oldest version that supports SharedTree.\n\t\t\tminVersionForCollab:\n\t\t\t\tminVersionForCollab ?? args.minVersionForCollab ?? FluidClientVersion.v2_0,\n\t\t};\n\n\t\treturn new SharedTreeKernel(\n\t\t\tnew Breakable(\"SharedTree\"),\n\t\t\targs.sharedObject,\n\t\t\targs.serializer,\n\t\t\targs.submitLocalMessage,\n\t\t\targs.lastSequenceNumber,\n\t\t\targs.initialSequenceNumber,\n\t\t\targs.logger,\n\t\t\targs.idCompressor,\n\t\t\tadjustedOptions,\n\t\t);\n\t}\n\n\treturn {\n\t\tcreate: (args: KernelArgs): FactoryOut<SharedTreeKernelView> => {\n\t\t\tconst k = treeFromKernelArgs(args);\n\t\t\treturn { kernel: k, view: k.view };\n\t\t},\n\n\t\tasync loadCore(\n\t\t\targs: KernelArgs,\n\t\t\tstorage: IChannelStorageService,\n\t\t): Promise<FactoryOut<SharedTreeKernelView>> {\n\t\t\tconst k = treeFromKernelArgs(args);\n\t\t\tawait k.loadCore(storage);\n\t\t\treturn { kernel: k, view: k.view };\n\t\t},\n\t};\n}\n\n/**\n * SharedTree is a hierarchical data structure for collaboratively editing strongly typed JSON-like trees\n * of objects, arrays, and other data types.\n * @legacy @beta\n */\nexport const SharedTree = configuredSharedTree({});\n\n/**\n * {@link SharedTree} but allowing a non-default configuration.\n * @remarks\n * This is useful for debugging and testing.\n * For example it can be used to opt into extra validation or see if opting out of some optimizations fixes an issue.\n *\n * With great care, and knowledge of the support and stability of the options exposed here,\n * this can also be used to opt into some features early or for performance tuning.\n *\n * @example\n * ```typescript\n * import {\n * \tconfiguredSharedTreeBeta,\n * \tForestTypeReference,\n * } from \"fluid-framework/beta\";\n * const SharedTree = configuredSharedTree({\n * \tforest: ForestTypeReference,\n * });\n * ```\n * @privateRemarks\n * The Legacy `ISharedObjectKind<ITree>` type is omitted here for simplicity.\n * @beta\n */\nexport function configuredSharedTreeBeta(\n\toptions: SharedTreeOptionsBeta,\n): SharedObjectKind<ITree> {\n\treturn configuredSharedTree(options);\n}\n\n/**\n * {@link configuredSharedTreeBeta} including the legacy `ISharedObjectKind` type.\n * @privateRemarks\n * This is given a different export name (with legacy appended) to avoid the need to do the special reexport with different types from the fluid-framework package.\n * @legacy @beta\n */\nexport function configuredSharedTreeBetaLegacy(\n\toptions: SharedTreeOptionsBeta,\n): ISharedObjectKind<ITree> & SharedObjectKind<ITree> {\n\treturn configuredSharedTree(options);\n}\n\n/**\n * {@link configuredSharedTreeBeta} but including the alpha {@link SharedTreeOptions}.\n * @alpha\n */\nexport function configuredSharedTreeAlpha(\n\toptions: SharedTreeOptions,\n): SharedObjectKind<ITree> {\n\treturn configuredSharedTree(options);\n}\n\n/**\n * {@link configuredSharedTreeBetaLegacy} but including `@alpha` options.\n *\n * @example\n * ```typescript\n * import {\n * \tTreeCompressionStrategy,\n * \tconfiguredSharedTree,\n * \tFormatValidatorBasic,\n * \tForestTypeReference,\n * } from \"@fluidframework/tree/internal\";\n * const SharedTree = configuredSharedTree({\n * \tforest: ForestTypeReference,\n * \tjsonValidator: FormatValidatorBasic,\n * \ttreeEncodeType: TreeCompressionStrategy.Uncompressed,\n * });\n * ```\n * @privateRemarks\n * This should be legacy, but has to be internal due to no alpha+legacy being setup yet.\n *\n * This should be renamed to `configuredSharedTreeAlpha` to avoid colliding with the eventual public version which will have less options.\n * @internal\n */\nexport function configuredSharedTree(\n\toptions: SharedTreeOptions,\n): ISharedObjectKind<ITree> & SharedObjectKind<ITree> {\n\tconst internalOptions = resolveOptions(options);\n\treturn configuredSharedTreeInternal(internalOptions);\n}\n\nexport function configuredSharedTreeInternal(\n\toptions: SharedTreeOptionsInternal,\n): ISharedObjectKind<ITree> & SharedObjectKind<ITree> {\n\tconst sharedObjectOptions: SharedObjectOptions<ITree> = {\n\t\ttype: SharedTreeFactoryType,\n\t\tattributes: SharedTreeAttributes,\n\t\ttelemetryContextPrefix: \"fluid_sharedTree_\",\n\t\tfactory: treeKernelFactory(options),\n\t};\n\n\treturn makeSharedObjectKind<ITree>(sharedObjectOptions);\n}\n\nexport function resolveOptions(options: SharedTreeOptions): SharedTreeOptionsInternal {\n\tconst internal: SharedTreeOptionsInternal = {\n\t\t...resolveFormatOptions(options),\n\t};\n\tfor (const optionName of Object.keys(options)) {\n\t\tcopyProperty(options, optionName, internal);\n\t}\n\treturn internal;\n}\n\nfunction resolveFormatOptions(options: SharedTreeOptions): SharedTreeOptionsInternal {\n\tif (options.enableSharedBranches === true && options.enableDetachedRootEditing === true) {\n\t\tthrow new UsageError(\n\t\t\t\"enableDetachedRootEditing cannot be used with enableSharedBranches.\",\n\t\t);\n\t}\n\tif (options.enableSharedBranches === true) {\n\t\treturn sharedBranchesOptions;\n\t}\n\tif (options.enableDetachedRootEditing === true) {\n\t\treturn detachRootEditingOptions;\n\t}\n\treturn {};\n}\n\nconst sharedBranchesOptions: SharedTreeOptionsInternal = {\n\tmessageFormatSelector: messageFormatVersionSelectorForSharedBranches,\n\teditManagerFormatSelector: editManagerFormatVersionSelectorForSharedBranches,\n};\nconst detachRootEditingOptions: SharedTreeOptionsInternal = {\n\tmessageFormatSelector: messageFormatVersionSelectorForDetachedRootEditing,\n\teditManagerFormatSelector: editManagerFormatVersionSelectorForDetachedRootEditing,\n\tenableDetachedRootEditing: true,\n};\n"]}
1
+ {"version":3,"file":"treeFactory.js","sourceRoot":"","sources":["../src/treeFactory.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 type { IChannelStorageService } from \"@fluidframework/datastore-definitions/internal\";\nimport type { SharedObjectKind } from \"@fluidframework/shared-object-base\";\nimport {\n\ttype ISharedObject,\n\ttype ISharedObjectKind,\n\tmakeSharedObjectKind,\n\ttype KernelArgs,\n\ttype SharedKernelFactory,\n\ttype SharedObjectOptions,\n\ttype FactoryOut,\n} from \"@fluidframework/shared-object-base/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { FluidClientVersion } from \"./codec/index.js\";\nimport {\n\tSharedTreeKernel,\n\ttype ITreePrivate,\n\ttype SharedTreeOptions,\n\ttype SharedTreeOptionsBeta,\n\ttype SharedTreeOptionsInternal,\n\ttype SharedTreeKernelView,\n} from \"./shared-tree/index.js\";\nimport {\n\teditManagerFormatVersionSelectorForSharedBranches,\n\tmessageFormatVersionSelectorForSharedBranches,\n} from \"./shared-tree-core/index.js\";\nimport { SharedTreeFactoryType, SharedTreeAttributes } from \"./sharedTreeAttributes.js\";\nimport type { ITree } from \"./simple-tree/index.js\";\nimport { Breakable, copyProperty } from \"./util/index.js\";\n\n/**\n * {@link ITreePrivate} extended with ISharedObject.\n * @remarks\n * This is used when integration testing this package with the Fluid runtime as it exposes the APIs the runtime consumes to manipulate the tree.\n */\nexport interface ISharedTree extends ISharedObject, ITreePrivate {}\n\n/**\n * Creates a factory for shared tree kernels with the given options.\n * @remarks\n * Exposes {@link ITreePrivate} to allow access to internals in tests without a cast.\n * Code exposing this beyond this package will need to update to a more public type.\n */\nfunction treeKernelFactory(\n\toptions: SharedTreeOptionsInternal,\n): SharedKernelFactory<SharedTreeKernelView> {\n\tfunction treeFromKernelArgs(args: KernelArgs): SharedTreeKernel {\n\t\tif (args.idCompressor === undefined) {\n\t\t\tthrow new UsageError(\"IdCompressor must be enabled to use SharedTree\");\n\t\t}\n\n\t\tconst { minVersionForCollab, ...otherOptions } = options;\n\n\t\tconst adjustedOptions = {\n\t\t\t...otherOptions,\n\t\t\t// Cases:\n\t\t\t// A. If options specifies minVersionForCollab, it takes precedence over args.minVersionForCollab.\n\t\t\t// This value is set when:\n\t\t\t// - A customer using the declarative SharedTree API specifies the setting at the Shared Tree level.\n\t\t\t// There is currently no way to set it via the declarative API, but it could be added in the future.\n\t\t\t// - treeKernelFactory is invoked in a fuzz test with a specific minVersionForCollab\n\t\t\t// B. Otherwise, we use args.minVersionForCollab, which is propagated from the ContainerRuntime.\n\t\t\t// C. If neither specifies it, we fall back to a default value default of 2.0 since that is the oldest version that supports SharedTree.\n\t\t\tminVersionForCollab:\n\t\t\t\tminVersionForCollab ?? args.minVersionForCollab ?? FluidClientVersion.v2_0,\n\t\t};\n\n\t\treturn new SharedTreeKernel(\n\t\t\tnew Breakable(\"SharedTree\"),\n\t\t\targs.sharedObject,\n\t\t\targs.serializer,\n\t\t\targs.submitLocalMessage,\n\t\t\targs.lastSequenceNumber,\n\t\t\targs.initialSequenceNumber,\n\t\t\targs.logger,\n\t\t\targs.idCompressor,\n\t\t\tadjustedOptions,\n\t\t);\n\t}\n\n\treturn {\n\t\tcreate: (args: KernelArgs): FactoryOut<SharedTreeKernelView> => {\n\t\t\tconst k = treeFromKernelArgs(args);\n\t\t\treturn { kernel: k, view: k.view };\n\t\t},\n\n\t\tasync loadCore(\n\t\t\targs: KernelArgs,\n\t\t\tstorage: IChannelStorageService,\n\t\t): Promise<FactoryOut<SharedTreeKernelView>> {\n\t\t\tconst k = treeFromKernelArgs(args);\n\t\t\tawait k.loadCore(storage);\n\t\t\treturn { kernel: k, view: k.view };\n\t\t},\n\t};\n}\n\n/**\n * SharedTree is a hierarchical data structure for collaboratively editing strongly typed JSON-like trees\n * of objects, arrays, and other data types.\n * @legacy @beta\n */\nexport const SharedTree = configuredSharedTree({});\n\n/**\n * {@link SharedTree} but allowing a non-default configuration.\n * @remarks\n * This is useful for debugging and testing.\n * For example it can be used to opt into extra validation or see if opting out of some optimizations fixes an issue.\n *\n * With great care, and knowledge of the support and stability of the options exposed here,\n * this can also be used to opt into some features early or for performance tuning.\n *\n * @example\n * ```typescript\n * import {\n * \tconfiguredSharedTreeBeta,\n * \tForestTypeReference,\n * } from \"fluid-framework/beta\";\n * const SharedTree = configuredSharedTree({\n * \tforest: ForestTypeReference,\n * });\n * ```\n * @privateRemarks\n * The Legacy `ISharedObjectKind<ITree>` type is omitted here for simplicity.\n * @beta\n */\nexport function configuredSharedTreeBeta(\n\toptions: SharedTreeOptionsBeta,\n): SharedObjectKind<ITree> {\n\treturn configuredSharedTree(options);\n}\n\n/**\n * {@link configuredSharedTreeBeta} including the legacy `ISharedObjectKind` type.\n * @privateRemarks\n * This is given a different export name (with legacy appended) to avoid the need to do the special reexport with different types from the fluid-framework package.\n * @legacy @beta\n */\nexport function configuredSharedTreeBetaLegacy(\n\toptions: SharedTreeOptionsBeta,\n): ISharedObjectKind<ITree> & SharedObjectKind<ITree> {\n\treturn configuredSharedTree(options);\n}\n\n/**\n * {@link configuredSharedTreeBeta} but including the alpha {@link SharedTreeOptions}.\n * @alpha\n */\nexport function configuredSharedTreeAlpha(\n\toptions: SharedTreeOptions,\n): SharedObjectKind<ITree> {\n\treturn configuredSharedTree(options);\n}\n\n/**\n * {@link configuredSharedTreeBetaLegacy} but including `@alpha` options.\n *\n * @example\n * ```typescript\n * import {\n * \tTreeCompressionStrategy,\n * \tconfiguredSharedTree,\n * \tFormatValidatorBasic,\n * \tForestTypeReference,\n * } from \"@fluidframework/tree/internal\";\n * const SharedTree = configuredSharedTree({\n * \tforest: ForestTypeReference,\n * \tjsonValidator: FormatValidatorBasic,\n * \ttreeEncodeType: TreeCompressionStrategy.Uncompressed,\n * });\n * ```\n * @privateRemarks\n * This should be legacy, but has to be internal due to no alpha+legacy being setup yet.\n *\n * This should be renamed to `configuredSharedTreeAlpha` to avoid colliding with the eventual public version which will have less options.\n * @internal\n */\nexport function configuredSharedTree(\n\toptions: SharedTreeOptions,\n): ISharedObjectKind<ITree> & SharedObjectKind<ITree> {\n\tconst internalOptions = resolveOptions(options);\n\treturn configuredSharedTreeInternal(internalOptions);\n}\n\nexport function configuredSharedTreeInternal(\n\toptions: SharedTreeOptionsInternal,\n): ISharedObjectKind<ITree> & SharedObjectKind<ITree> {\n\tconst sharedObjectOptions: SharedObjectOptions<ITree> = {\n\t\ttype: SharedTreeFactoryType,\n\t\tattributes: SharedTreeAttributes,\n\t\ttelemetryContextPrefix: \"fluid_sharedTree_\",\n\t\tfactory: treeKernelFactory(options),\n\t};\n\n\treturn makeSharedObjectKind<ITree>(sharedObjectOptions);\n}\n\nexport function resolveOptions(options: SharedTreeOptions): SharedTreeOptionsInternal {\n\tconst internal: SharedTreeOptionsInternal = {\n\t\t...resolveFormatOptions(options),\n\t};\n\tfor (const optionName of Object.keys(options)) {\n\t\tcopyProperty(options, optionName, internal);\n\t}\n\treturn internal;\n}\n\nfunction resolveFormatOptions(options: SharedTreeOptions): SharedTreeOptionsInternal {\n\tconst enableSharedBranches = options.enableSharedBranches ?? false;\n\n\tif (enableSharedBranches) {\n\t\treturn sharedBranchesOptions;\n\t}\n\n\treturn {};\n}\n\nconst sharedBranchesOptions: SharedTreeOptionsInternal = {\n\tmessageFormatSelector: messageFormatVersionSelectorForSharedBranches,\n\teditManagerFormatSelector: editManagerFormatVersionSelectorForSharedBranches,\n};\n"]}
@@ -16,7 +16,7 @@ export { ReferenceCountedBase, type ReferenceCounted } from "./referenceCounting
16
16
  export type { _RecursiveTrick, RestrictiveReadonlyRecord, RestrictiveStringRecord, _InlineTrick, FlattenKeys, IsUnion, UnionToIntersection, UnionToTuple, PopUnion, } from "./typeUtils.js";
17
17
  export { unsafeArrayToTuple } from "./typeUtils.js";
18
18
  export { type BrandedKey, type BrandedKeyContent, type BrandedMapSubset, getOrCreateSlotContent, brandedSlot, } from "./brandedMap.js";
19
- export { RangeMap, type RangeQueryResult, type RangeQueryResultFragment, type RangeQueryEntry, newIntegerRangeMap, areAdjacentIntegerRanges, } from "./rangeMap.js";
19
+ export { RangeMap, type RangeQueryResult, newIntegerRangeMap, } from "./rangeMap.js";
20
20
  export { type IdAllocator, idAllocatorFromMaxId, idAllocatorFromState, type IdAllocationState, fakeIdAllocator, } from "./idAllocator.js";
21
21
  export { Breakable, type WithBreakable, breakingMethod, throwIfBroken, breakingClass, } from "./breakable.js";
22
22
  export { type TupleBTree, newTupleBTree, mergeTupleBTrees, createTupleComparator, } from "./bTreeUtils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.capitalize = exports.disposeSymbol = exports.oneFromIterable = exports.invertMap = exports.objectToMap = exports.assertNonNegativeSafeInteger = exports.assertValidRange = exports.assertValidIndex = exports.filterIterable = exports.mapIterable = exports.makeArray = exports.JsonCompatibleReadOnlySchema = exports.isReadonlyArray = exports.isJsonObject = exports.getOrCreate = exports.getOrAddEmptyToMap = exports.compareSets = exports.clone = exports.balancedReduce = exports.asMutable = exports.StackyIterator = exports.OffsetListFactory = exports.nestedSetContains = exports.addToNestedSet = exports.getOrCreateInNestedMap = exports.nestedMapFromFlatList = exports.nestedMapToFlatList = exports.mapNestedMap = exports.tryGetFromNestedMap = exports.tryAddToNestedMap = exports.setInNestedMap = exports.populateNestedMap = exports.SizedNestedMap = exports.forEachInNestedMap = exports.getOrDefaultInNestedMap = exports.getOrAddInNestedMap = exports.deleteFromNestedMap = exports.extractFromOpaque = exports.brandOpaque = exports.brandedStringType = exports.brandedNumberType = exports.unbrand = exports.strictEnum = exports.brandConst = exports.BrandedType = exports.brand = exports.validateSafeInteger = exports.validatePositiveIndex = exports.validateIndexRange = exports.validateIndex = void 0;
8
- exports.readAndParseSnapshotBlob = exports.cloneWithReplacements = exports.createTupleComparator = exports.mergeTupleBTrees = exports.newTupleBTree = exports.breakingClass = exports.throwIfBroken = exports.breakingMethod = exports.Breakable = exports.fakeIdAllocator = exports.idAllocatorFromState = exports.idAllocatorFromMaxId = exports.areAdjacentIntegerRanges = exports.newIntegerRangeMap = exports.RangeMap = exports.brandedSlot = exports.getOrCreateSlotContent = exports.unsafeArrayToTuple = exports.ReferenceCountedBase = exports.iterableHasSome = exports.getOrAddInMap = exports.copyProperty = exports.defineLazyCachedProperty = exports.hasSingle = exports.hasSome = exports.getLast = exports.count = exports.find = exports.comparePartialStrings = exports.compareStrings = exports.comparePartialNumbers = exports.compareNumbers = exports.transformObjectMap = exports.assertValidRangeIndices = void 0;
8
+ exports.readAndParseSnapshotBlob = exports.cloneWithReplacements = exports.createTupleComparator = exports.mergeTupleBTrees = exports.newTupleBTree = exports.breakingClass = exports.throwIfBroken = exports.breakingMethod = exports.Breakable = exports.fakeIdAllocator = exports.idAllocatorFromState = exports.idAllocatorFromMaxId = exports.newIntegerRangeMap = exports.RangeMap = exports.brandedSlot = exports.getOrCreateSlotContent = exports.unsafeArrayToTuple = exports.ReferenceCountedBase = exports.iterableHasSome = exports.getOrAddInMap = exports.copyProperty = exports.defineLazyCachedProperty = exports.hasSingle = exports.hasSome = exports.getLast = exports.count = exports.find = exports.comparePartialStrings = exports.compareStrings = exports.comparePartialNumbers = exports.compareNumbers = exports.transformObjectMap = exports.assertValidRangeIndices = void 0;
9
9
  var arrayUtilities_js_1 = require("./arrayUtilities.js");
10
10
  Object.defineProperty(exports, "validateIndex", { enumerable: true, get: function () { return arrayUtilities_js_1.validateIndex; } });
11
11
  Object.defineProperty(exports, "validateIndexRange", { enumerable: true, get: function () { return arrayUtilities_js_1.validateIndexRange; } });
@@ -90,7 +90,6 @@ Object.defineProperty(exports, "brandedSlot", { enumerable: true, get: function
90
90
  var rangeMap_js_1 = require("./rangeMap.js");
91
91
  Object.defineProperty(exports, "RangeMap", { enumerable: true, get: function () { return rangeMap_js_1.RangeMap; } });
92
92
  Object.defineProperty(exports, "newIntegerRangeMap", { enumerable: true, get: function () { return rangeMap_js_1.newIntegerRangeMap; } });
93
- Object.defineProperty(exports, "areAdjacentIntegerRanges", { enumerable: true, get: function () { return rangeMap_js_1.areAdjacentIntegerRanges; } });
94
93
  var idAllocator_js_1 = require("./idAllocator.js");
95
94
  Object.defineProperty(exports, "idAllocatorFromMaxId", { enumerable: true, get: function () { return idAllocator_js_1.idAllocatorFromMaxId; } });
96
95
  Object.defineProperty(exports, "idAllocatorFromState", { enumerable: true, get: function () { return idAllocator_js_1.idAllocatorFromState; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.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\nexport {\n\tvalidateIndex,\n\tvalidateIndexRange,\n\tvalidatePositiveIndex,\n\tvalidateSafeInteger,\n} from \"./arrayUtilities.js\";\nexport {\n\tbrand,\n\ttype Brand,\n\tBrandedType,\n\ttype NameFromBranded,\n\ttype ValueFromBranded,\n\tbrandConst,\n\ttype Values,\n\tstrictEnum,\n\tunbrand,\n} from \"./brand.js\";\nexport { brandedNumberType, brandedStringType } from \"./typeboxBrand.js\";\nexport {\n\tbrandOpaque,\n\textractFromOpaque,\n\ttype ExtractFromOpaque,\n\ttype Opaque,\n} from \"./opaque.js\";\nexport {\n\tdeleteFromNestedMap,\n\tgetOrAddInNestedMap,\n\tgetOrDefaultInNestedMap,\n\tforEachInNestedMap,\n\ttype NestedMap,\n\ttype ReadonlyNestedMap,\n\tSizedNestedMap,\n\tpopulateNestedMap,\n\tsetInNestedMap,\n\ttryAddToNestedMap,\n\ttryGetFromNestedMap,\n\tmapNestedMap,\n\tnestedMapToFlatList,\n\tnestedMapFromFlatList,\n\tgetOrCreateInNestedMap,\n} from \"./nestedMap.js\";\nexport { addToNestedSet, type NestedSet, nestedSetContains } from \"./nestedSet.js\";\nexport { type OffsetList, OffsetListFactory } from \"./offsetList.js\";\nexport type {\n\tareSafelyAssignable,\n\tContravariant,\n\tCovariant,\n\teitherIsAny,\n\tEnforceTypeCheckTests,\n\tInvariant,\n\tisAny,\n\tisAssignableTo,\n\tisStrictSubset,\n\tMakeNominal,\n\trequireFalse,\n\trequireTrue,\n\trequireAssignableTo,\n\tareOnlyKeys,\n} from \"./typeCheck.js\";\nexport { StackyIterator } from \"./stackyIterator.js\";\nexport {\n\tasMutable,\n\tbalancedReduce,\n\tclone,\n\tcompareSets,\n\tgetOrAddEmptyToMap,\n\tgetOrCreate,\n\tisJsonObject,\n\tisReadonlyArray,\n\ttype JsonCompatible,\n\ttype JsonCompatibleObject,\n\ttype JsonCompatibleReadOnly,\n\ttype JsonCompatibleReadOnlyObject,\n\tJsonCompatibleReadOnlySchema,\n\tmakeArray,\n\tmapIterable,\n\tfilterIterable,\n\ttype Mutable,\n\ttype Populated,\n\ttype RecursiveReadonly,\n\tassertValidIndex,\n\tassertValidRange,\n\tassertNonNegativeSafeInteger,\n\tobjectToMap,\n\tinvertMap,\n\toneFromIterable,\n\tdisposeSymbol,\n\ttype IDisposable,\n\tcapitalize,\n\tassertValidRangeIndices,\n\ttransformObjectMap,\n\tcompareNumbers,\n\tcomparePartialNumbers,\n\tcompareStrings,\n\tcomparePartialStrings,\n\tfind,\n\tcount,\n\tgetLast,\n\thasSome,\n\thasSingle,\n\tdefineLazyCachedProperty,\n\tcopyPropertyIfDefined as copyProperty,\n\tgetOrAddInMap,\n\titerableHasSome,\n} from \"./utils.js\";\nexport { ReferenceCountedBase, type ReferenceCounted } from \"./referenceCounting.js\";\n\nexport type {\n\t_RecursiveTrick,\n\tRestrictiveReadonlyRecord,\n\tRestrictiveStringRecord,\n\t_InlineTrick,\n\tFlattenKeys,\n\tIsUnion,\n\tUnionToIntersection,\n\tUnionToTuple,\n\tPopUnion,\n} from \"./typeUtils.js\";\n\nexport { unsafeArrayToTuple } from \"./typeUtils.js\";\n\nexport {\n\ttype BrandedKey,\n\ttype BrandedKeyContent,\n\ttype BrandedMapSubset,\n\tgetOrCreateSlotContent,\n\tbrandedSlot,\n} from \"./brandedMap.js\";\n\nexport {\n\tRangeMap,\n\ttype RangeQueryResult,\n\ttype RangeQueryResultFragment,\n\ttype RangeQueryEntry,\n\tnewIntegerRangeMap,\n\tareAdjacentIntegerRanges,\n} from \"./rangeMap.js\";\n\nexport {\n\ttype IdAllocator,\n\tidAllocatorFromMaxId,\n\tidAllocatorFromState,\n\ttype IdAllocationState,\n\tfakeIdAllocator,\n} from \"./idAllocator.js\";\n\nexport {\n\tBreakable,\n\ttype WithBreakable,\n\tbreakingMethod,\n\tthrowIfBroken,\n\tbreakingClass,\n} from \"./breakable.js\";\n\nexport {\n\ttype TupleBTree,\n\tnewTupleBTree,\n\tmergeTupleBTrees,\n\tcreateTupleComparator,\n} from \"./bTreeUtils.js\";\n\nexport { cloneWithReplacements } from \"./cloneWithReplacements.js\";\n\nexport { readAndParseSnapshotBlob } from \"./readSnapshotBlob.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.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\nexport {\n\tvalidateIndex,\n\tvalidateIndexRange,\n\tvalidatePositiveIndex,\n\tvalidateSafeInteger,\n} from \"./arrayUtilities.js\";\nexport {\n\tbrand,\n\ttype Brand,\n\tBrandedType,\n\ttype NameFromBranded,\n\ttype ValueFromBranded,\n\tbrandConst,\n\ttype Values,\n\tstrictEnum,\n\tunbrand,\n} from \"./brand.js\";\nexport { brandedNumberType, brandedStringType } from \"./typeboxBrand.js\";\nexport {\n\tbrandOpaque,\n\textractFromOpaque,\n\ttype ExtractFromOpaque,\n\ttype Opaque,\n} from \"./opaque.js\";\nexport {\n\tdeleteFromNestedMap,\n\tgetOrAddInNestedMap,\n\tgetOrDefaultInNestedMap,\n\tforEachInNestedMap,\n\ttype NestedMap,\n\ttype ReadonlyNestedMap,\n\tSizedNestedMap,\n\tpopulateNestedMap,\n\tsetInNestedMap,\n\ttryAddToNestedMap,\n\ttryGetFromNestedMap,\n\tmapNestedMap,\n\tnestedMapToFlatList,\n\tnestedMapFromFlatList,\n\tgetOrCreateInNestedMap,\n} from \"./nestedMap.js\";\nexport { addToNestedSet, type NestedSet, nestedSetContains } from \"./nestedSet.js\";\nexport { type OffsetList, OffsetListFactory } from \"./offsetList.js\";\nexport type {\n\tareSafelyAssignable,\n\tContravariant,\n\tCovariant,\n\teitherIsAny,\n\tEnforceTypeCheckTests,\n\tInvariant,\n\tisAny,\n\tisAssignableTo,\n\tisStrictSubset,\n\tMakeNominal,\n\trequireFalse,\n\trequireTrue,\n\trequireAssignableTo,\n\tareOnlyKeys,\n} from \"./typeCheck.js\";\nexport { StackyIterator } from \"./stackyIterator.js\";\nexport {\n\tasMutable,\n\tbalancedReduce,\n\tclone,\n\tcompareSets,\n\tgetOrAddEmptyToMap,\n\tgetOrCreate,\n\tisJsonObject,\n\tisReadonlyArray,\n\ttype JsonCompatible,\n\ttype JsonCompatibleObject,\n\ttype JsonCompatibleReadOnly,\n\ttype JsonCompatibleReadOnlyObject,\n\tJsonCompatibleReadOnlySchema,\n\tmakeArray,\n\tmapIterable,\n\tfilterIterable,\n\ttype Mutable,\n\ttype Populated,\n\ttype RecursiveReadonly,\n\tassertValidIndex,\n\tassertValidRange,\n\tassertNonNegativeSafeInteger,\n\tobjectToMap,\n\tinvertMap,\n\toneFromIterable,\n\tdisposeSymbol,\n\ttype IDisposable,\n\tcapitalize,\n\tassertValidRangeIndices,\n\ttransformObjectMap,\n\tcompareNumbers,\n\tcomparePartialNumbers,\n\tcompareStrings,\n\tcomparePartialStrings,\n\tfind,\n\tcount,\n\tgetLast,\n\thasSome,\n\thasSingle,\n\tdefineLazyCachedProperty,\n\tcopyPropertyIfDefined as copyProperty,\n\tgetOrAddInMap,\n\titerableHasSome,\n} from \"./utils.js\";\nexport { ReferenceCountedBase, type ReferenceCounted } from \"./referenceCounting.js\";\n\nexport type {\n\t_RecursiveTrick,\n\tRestrictiveReadonlyRecord,\n\tRestrictiveStringRecord,\n\t_InlineTrick,\n\tFlattenKeys,\n\tIsUnion,\n\tUnionToIntersection,\n\tUnionToTuple,\n\tPopUnion,\n} from \"./typeUtils.js\";\n\nexport { unsafeArrayToTuple } from \"./typeUtils.js\";\n\nexport {\n\ttype BrandedKey,\n\ttype BrandedKeyContent,\n\ttype BrandedMapSubset,\n\tgetOrCreateSlotContent,\n\tbrandedSlot,\n} from \"./brandedMap.js\";\n\nexport {\n\tRangeMap,\n\ttype RangeQueryResult,\n\tnewIntegerRangeMap,\n} from \"./rangeMap.js\";\n\nexport {\n\ttype IdAllocator,\n\tidAllocatorFromMaxId,\n\tidAllocatorFromState,\n\ttype IdAllocationState,\n\tfakeIdAllocator,\n} from \"./idAllocator.js\";\n\nexport {\n\tBreakable,\n\ttype WithBreakable,\n\tbreakingMethod,\n\tthrowIfBroken,\n\tbreakingClass,\n} from \"./breakable.js\";\n\nexport {\n\ttype TupleBTree,\n\tnewTupleBTree,\n\tmergeTupleBTrees,\n\tcreateTupleComparator,\n} from \"./bTreeUtils.js\";\n\nexport { cloneWithReplacements } from \"./cloneWithReplacements.js\";\n\nexport { readAndParseSnapshotBlob } from \"./readSnapshotBlob.js\";\n"]}