@fluidframework/tree 2.101.1 → 2.103.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 (609) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/api-report/tree.alpha.api.md +19 -0
  3. package/dist/codec/codec.d.ts +22 -53
  4. package/dist/codec/codec.d.ts.map +1 -1
  5. package/dist/codec/codec.js +7 -44
  6. package/dist/codec/codec.js.map +1 -1
  7. package/dist/codec/index.d.ts +1 -1
  8. package/dist/codec/index.d.ts.map +1 -1
  9. package/dist/codec/index.js +2 -2
  10. package/dist/codec/index.js.map +1 -1
  11. package/dist/codec/versioned/codec.d.ts +56 -28
  12. package/dist/codec/versioned/codec.d.ts.map +1 -1
  13. package/dist/codec/versioned/codec.js +29 -12
  14. package/dist/codec/versioned/codec.js.map +1 -1
  15. package/dist/codec/versioned/format.d.ts +5 -4
  16. package/dist/codec/versioned/format.d.ts.map +1 -1
  17. package/dist/codec/versioned/format.js +26 -3
  18. package/dist/codec/versioned/format.js.map +1 -1
  19. package/dist/codec/versioned/index.d.ts +1 -1
  20. package/dist/codec/versioned/index.d.ts.map +1 -1
  21. package/dist/codec/versioned/index.js +2 -2
  22. package/dist/codec/versioned/index.js.map +1 -1
  23. package/dist/core/rebase/types.d.ts +4 -3
  24. package/dist/core/rebase/types.d.ts.map +1 -1
  25. package/dist/core/rebase/types.js +27 -4
  26. package/dist/core/rebase/types.js.map +1 -1
  27. package/dist/core/schema-stored/formatV1.d.ts +16 -15
  28. package/dist/core/schema-stored/formatV1.d.ts.map +1 -1
  29. package/dist/core/schema-stored/formatV1.js +31 -8
  30. package/dist/core/schema-stored/formatV1.js.map +1 -1
  31. package/dist/core/schema-stored/formatV2.d.ts +29 -28
  32. package/dist/core/schema-stored/formatV2.d.ts.map +1 -1
  33. package/dist/core/schema-stored/formatV2.js +33 -10
  34. package/dist/core/schema-stored/formatV2.js.map +1 -1
  35. package/dist/core/tree/deltaUtil.d.ts +2 -2
  36. package/dist/core/tree/deltaUtil.js +2 -2
  37. package/dist/core/tree/deltaUtil.js.map +1 -1
  38. package/dist/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
  39. package/dist/core/tree/detachedFieldIndexCodecV1.js +3 -2
  40. package/dist/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
  41. package/dist/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
  42. package/dist/core/tree/detachedFieldIndexCodecV2.js +4 -2
  43. package/dist/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
  44. package/dist/core/tree/detachedFieldIndexCodecs.d.ts +3 -3
  45. package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
  46. package/dist/core/tree/detachedFieldIndexCodecs.js +1 -1
  47. package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
  48. package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts +11 -10
  49. package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
  50. package/dist/core/tree/detachedFieldIndexFormatCommon.js +33 -10
  51. package/dist/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
  52. package/dist/core/tree/detachedFieldIndexFormatV2.d.ts +7 -6
  53. package/dist/core/tree/detachedFieldIndexFormatV2.d.ts.map +1 -1
  54. package/dist/core/tree/detachedFieldIndexFormatV2.js +25 -2
  55. package/dist/core/tree/detachedFieldIndexFormatV2.js.map +1 -1
  56. package/dist/core/tree/persistedTreeTextFormat.d.ts +19 -18
  57. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  58. package/dist/core/tree/persistedTreeTextFormat.js +33 -10
  59. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  60. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +38 -1
  61. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  62. package/dist/feature-libraries/chunked-forest/chunkTree.js +63 -5
  63. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  64. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  65. package/dist/feature-libraries/chunked-forest/chunkedForest.js +18 -4
  66. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  67. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +34 -2
  68. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  69. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +106 -3
  70. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  71. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +5 -5
  72. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  73. package/dist/feature-libraries/chunked-forest/codec/codecs.js +2 -2
  74. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  75. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
  76. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  77. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  78. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts +13 -12
  79. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -1
  80. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.js +36 -13
  81. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.js.map +1 -1
  82. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.d.ts +36 -35
  83. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.d.ts.map +1 -1
  84. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js +41 -18
  85. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js.map +1 -1
  86. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.d.ts +35 -14
  87. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.d.ts.map +1 -1
  88. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js +35 -6
  89. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js.map +1 -1
  90. package/dist/feature-libraries/chunked-forest/codec/format/formatVText.d.ts +106 -0
  91. package/dist/feature-libraries/chunked-forest/codec/format/formatVText.d.ts.map +1 -0
  92. package/dist/feature-libraries/chunked-forest/codec/format/formatVText.js +67 -0
  93. package/dist/feature-libraries/chunked-forest/codec/format/formatVText.js.map +1 -0
  94. package/dist/feature-libraries/chunked-forest/codec/format/index.d.ts +2 -1
  95. package/dist/feature-libraries/chunked-forest/codec/format/index.d.ts.map +1 -1
  96. package/dist/feature-libraries/chunked-forest/codec/format/index.js +5 -1
  97. package/dist/feature-libraries/chunked-forest/codec/format/index.js.map +1 -1
  98. package/dist/feature-libraries/chunked-forest/codec/format/versions.d.ts +38 -4
  99. package/dist/feature-libraries/chunked-forest/codec/format/versions.d.ts.map +1 -1
  100. package/dist/feature-libraries/chunked-forest/codec/format/versions.js +7 -1
  101. package/dist/feature-libraries/chunked-forest/codec/format/versions.js.map +1 -1
  102. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +7 -7
  103. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
  104. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js +1 -2
  105. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
  106. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +66 -14
  107. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  108. package/dist/feature-libraries/chunked-forest/uniformChunk.js +101 -36
  109. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  110. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  111. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +36 -14
  112. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  113. package/dist/feature-libraries/forest-summary/codec.d.ts +5 -4
  114. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  115. package/dist/feature-libraries/forest-summary/codec.js +2 -2
  116. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  117. package/dist/feature-libraries/forest-summary/formatCommon.d.ts +6 -5
  118. package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
  119. package/dist/feature-libraries/forest-summary/formatCommon.js +26 -3
  120. package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -1
  121. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +4 -3
  122. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  123. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js +26 -3
  124. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  125. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts +45 -44
  126. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
  127. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js +48 -25
  128. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
  129. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +23 -22
  130. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
  131. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +29 -6
  132. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
  133. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +1 -1
  134. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  135. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  136. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +9 -8
  137. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  138. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js +31 -8
  139. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  140. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +14 -13
  141. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
  142. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js +34 -11
  143. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
  144. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +5 -4
  145. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  146. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js +25 -2
  147. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  148. package/dist/feature-libraries/schema-index/codec.d.ts +2 -2
  149. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  150. package/dist/feature-libraries/schema-index/codec.js +1 -1
  151. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  152. package/dist/feature-libraries/schema-index/formatV1.d.ts +15 -14
  153. package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
  154. package/dist/feature-libraries/schema-index/formatV1.js +27 -4
  155. package/dist/feature-libraries/schema-index/formatV1.js.map +1 -1
  156. package/dist/feature-libraries/schema-index/formatV2.d.ts +20 -19
  157. package/dist/feature-libraries/schema-index/formatV2.d.ts.map +1 -1
  158. package/dist/feature-libraries/schema-index/formatV2.js +27 -4
  159. package/dist/feature-libraries/schema-index/formatV2.js.map +1 -1
  160. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  161. package/dist/feature-libraries/sequence-field/compose.js +1 -3
  162. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  163. package/dist/feature-libraries/sequence-field/formatV1.d.ts +283 -282
  164. package/dist/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
  165. package/dist/feature-libraries/sequence-field/formatV1.js +63 -40
  166. package/dist/feature-libraries/sequence-field/formatV1.js.map +1 -1
  167. package/dist/feature-libraries/sequence-field/formatV2.d.ts +180 -179
  168. package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  169. package/dist/feature-libraries/sequence-field/formatV2.js +55 -32
  170. package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
  171. package/dist/feature-libraries/sequence-field/formatV3.d.ts +126 -125
  172. package/dist/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
  173. package/dist/feature-libraries/sequence-field/formatV3.js +27 -4
  174. package/dist/feature-libraries/sequence-field/formatV3.js.map +1 -1
  175. package/dist/index.d.ts +1 -1
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +3 -1
  178. package/dist/index.js.map +1 -1
  179. package/dist/packageVersion.d.ts +1 -1
  180. package/dist/packageVersion.js +1 -1
  181. package/dist/packageVersion.js.map +1 -1
  182. package/dist/shared-tree/isAuditableFromOutcome.d.ts +20 -0
  183. package/dist/shared-tree/isAuditableFromOutcome.d.ts.map +1 -0
  184. package/dist/shared-tree/isAuditableFromOutcome.js +36 -0
  185. package/dist/shared-tree/isAuditableFromOutcome.js.map +1 -0
  186. package/dist/shared-tree/sharedTree.d.ts +2 -2
  187. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  188. package/dist/shared-tree/sharedTree.js.map +1 -1
  189. package/dist/shared-tree/sharedTreeChangeFormat.d.ts +8 -7
  190. package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  191. package/dist/shared-tree/sharedTreeChangeFormat.js +28 -5
  192. package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  193. package/dist/shared-tree/treeCheckout.d.ts +5 -3
  194. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  195. package/dist/shared-tree/treeCheckout.js +37 -8
  196. package/dist/shared-tree/treeCheckout.js.map +1 -1
  197. package/dist/shared-tree-core/editManager.d.ts +2 -2
  198. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  199. package/dist/shared-tree-core/editManager.js.map +1 -1
  200. package/dist/shared-tree-core/editManagerCodecs.d.ts +3 -3
  201. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  202. package/dist/shared-tree-core/editManagerCodecs.js +2 -2
  203. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  204. package/dist/shared-tree-core/editManagerFormatCommons.d.ts +35 -34
  205. package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  206. package/dist/shared-tree-core/editManagerFormatCommons.js +39 -16
  207. package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  208. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +15 -15
  209. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
  210. package/dist/shared-tree-core/editManagerFormatV1toV4.js +33 -10
  211. package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
  212. package/dist/shared-tree-core/editManagerFormatVSharedBranches.d.ts +40 -40
  213. package/dist/shared-tree-core/editManagerFormatVSharedBranches.d.ts.map +1 -1
  214. package/dist/shared-tree-core/editManagerFormatVSharedBranches.js +27 -4
  215. package/dist/shared-tree-core/editManagerFormatVSharedBranches.js.map +1 -1
  216. package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
  217. package/dist/shared-tree-core/messageCodecVSharedBranches.js +25 -2
  218. package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
  219. package/dist/shared-tree-core/messageCodecs.d.ts +3 -3
  220. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  221. package/dist/shared-tree-core/messageCodecs.js +2 -2
  222. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  223. package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +5 -5
  224. package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
  225. package/dist/shared-tree-core/messageFormatV1ToV4.js +31 -8
  226. package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
  227. package/dist/shared-tree-core/messageFormatVSharedBranches.d.ts +7 -7
  228. package/dist/shared-tree-core/messageFormatVSharedBranches.d.ts.map +1 -1
  229. package/dist/shared-tree-core/messageFormatVSharedBranches.js +29 -6
  230. package/dist/shared-tree-core/messageFormatVSharedBranches.js.map +1 -1
  231. package/dist/simple-tree/core/treeNodeKernel.d.ts +5 -0
  232. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  233. package/dist/simple-tree/core/treeNodeKernel.js +62 -24
  234. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  235. package/dist/simple-tree/simpleSchemaFormatV1.d.ts +121 -120
  236. package/dist/simple-tree/simpleSchemaFormatV1.d.ts.map +1 -1
  237. package/dist/simple-tree/simpleSchemaFormatV1.js +54 -31
  238. package/dist/simple-tree/simpleSchemaFormatV1.js.map +1 -1
  239. package/dist/text/codePointUtils.d.ts +48 -0
  240. package/dist/text/codePointUtils.d.ts.map +1 -0
  241. package/dist/text/codePointUtils.js +80 -0
  242. package/dist/text/codePointUtils.js.map +1 -0
  243. package/dist/text/index.d.ts +1 -0
  244. package/dist/text/index.d.ts.map +1 -1
  245. package/dist/text/index.js +4 -1
  246. package/dist/text/index.js.map +1 -1
  247. package/dist/text/textDomain.d.ts +93 -1
  248. package/dist/text/textDomain.d.ts.map +1 -1
  249. package/dist/text/textDomain.js +65 -8
  250. package/dist/text/textDomain.js.map +1 -1
  251. package/dist/text/textDomainFormatted.d.ts +24 -6
  252. package/dist/text/textDomainFormatted.d.ts.map +1 -1
  253. package/dist/text/textDomainFormatted.js +29 -1
  254. package/dist/text/textDomainFormatted.js.map +1 -1
  255. package/dist/treeFactory.d.ts.map +1 -1
  256. package/dist/treeFactory.js +9 -7
  257. package/dist/treeFactory.js.map +1 -1
  258. package/dist/util/breakable.d.ts +7 -1
  259. package/dist/util/breakable.d.ts.map +1 -1
  260. package/dist/util/breakable.js +18 -4
  261. package/dist/util/breakable.js.map +1 -1
  262. package/dist/util/typeboxBrand.d.ts +1 -1
  263. package/dist/util/typeboxBrand.d.ts.map +1 -1
  264. package/dist/util/typeboxBrand.js +26 -3
  265. package/dist/util/typeboxBrand.js.map +1 -1
  266. package/dist/util/utils.d.ts +2 -2
  267. package/dist/util/utils.d.ts.map +1 -1
  268. package/dist/util/utils.js +25 -2
  269. package/dist/util/utils.js.map +1 -1
  270. package/eslint.config.mts +44 -0
  271. package/lib/codec/codec.d.ts +22 -53
  272. package/lib/codec/codec.d.ts.map +1 -1
  273. package/lib/codec/codec.js +7 -44
  274. package/lib/codec/codec.js.map +1 -1
  275. package/lib/codec/index.d.ts +1 -1
  276. package/lib/codec/index.d.ts.map +1 -1
  277. package/lib/codec/index.js +1 -1
  278. package/lib/codec/index.js.map +1 -1
  279. package/lib/codec/versioned/codec.d.ts +56 -28
  280. package/lib/codec/versioned/codec.d.ts.map +1 -1
  281. package/lib/codec/versioned/codec.js +27 -10
  282. package/lib/codec/versioned/codec.js.map +1 -1
  283. package/lib/codec/versioned/format.d.ts +5 -4
  284. package/lib/codec/versioned/format.d.ts.map +1 -1
  285. package/lib/codec/versioned/format.js +1 -1
  286. package/lib/codec/versioned/format.js.map +1 -1
  287. package/lib/codec/versioned/index.d.ts +1 -1
  288. package/lib/codec/versioned/index.d.ts.map +1 -1
  289. package/lib/codec/versioned/index.js +1 -1
  290. package/lib/codec/versioned/index.js.map +1 -1
  291. package/lib/core/rebase/types.d.ts +4 -3
  292. package/lib/core/rebase/types.d.ts.map +1 -1
  293. package/lib/core/rebase/types.js +1 -1
  294. package/lib/core/rebase/types.js.map +1 -1
  295. package/lib/core/schema-stored/formatV1.d.ts +16 -15
  296. package/lib/core/schema-stored/formatV1.d.ts.map +1 -1
  297. package/lib/core/schema-stored/formatV1.js +1 -1
  298. package/lib/core/schema-stored/formatV1.js.map +1 -1
  299. package/lib/core/schema-stored/formatV2.d.ts +29 -28
  300. package/lib/core/schema-stored/formatV2.d.ts.map +1 -1
  301. package/lib/core/schema-stored/formatV2.js +1 -1
  302. package/lib/core/schema-stored/formatV2.js.map +1 -1
  303. package/lib/core/tree/deltaUtil.d.ts +2 -2
  304. package/lib/core/tree/deltaUtil.js +2 -2
  305. package/lib/core/tree/deltaUtil.js.map +1 -1
  306. package/lib/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
  307. package/lib/core/tree/detachedFieldIndexCodecV1.js +3 -2
  308. package/lib/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
  309. package/lib/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
  310. package/lib/core/tree/detachedFieldIndexCodecV2.js +5 -3
  311. package/lib/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
  312. package/lib/core/tree/detachedFieldIndexCodecs.d.ts +3 -3
  313. package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
  314. package/lib/core/tree/detachedFieldIndexCodecs.js +2 -2
  315. package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
  316. package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts +11 -10
  317. package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
  318. package/lib/core/tree/detachedFieldIndexFormatCommon.js +1 -1
  319. package/lib/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
  320. package/lib/core/tree/detachedFieldIndexFormatV2.d.ts +7 -6
  321. package/lib/core/tree/detachedFieldIndexFormatV2.d.ts.map +1 -1
  322. package/lib/core/tree/detachedFieldIndexFormatV2.js +1 -1
  323. package/lib/core/tree/detachedFieldIndexFormatV2.js.map +1 -1
  324. package/lib/core/tree/persistedTreeTextFormat.d.ts +19 -18
  325. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  326. package/lib/core/tree/persistedTreeTextFormat.js +1 -1
  327. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
  328. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +38 -1
  329. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  330. package/lib/feature-libraries/chunked-forest/chunkTree.js +62 -5
  331. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  332. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  333. package/lib/feature-libraries/chunked-forest/chunkedForest.js +20 -6
  334. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  335. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +34 -2
  336. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  337. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +102 -2
  338. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  339. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +5 -5
  340. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  341. package/lib/feature-libraries/chunked-forest/codec/codecs.js +3 -3
  342. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  343. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
  344. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  345. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  346. package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts +13 -12
  347. package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -1
  348. package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.js +1 -1
  349. package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.js.map +1 -1
  350. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.d.ts +36 -35
  351. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.d.ts.map +1 -1
  352. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.js +1 -1
  353. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.js.map +1 -1
  354. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.d.ts +35 -14
  355. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.d.ts.map +1 -1
  356. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.js +9 -3
  357. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.js.map +1 -1
  358. package/lib/feature-libraries/chunked-forest/codec/format/formatVText.d.ts +106 -0
  359. package/lib/feature-libraries/chunked-forest/codec/format/formatVText.d.ts.map +1 -0
  360. package/lib/feature-libraries/chunked-forest/codec/format/formatVText.js +41 -0
  361. package/lib/feature-libraries/chunked-forest/codec/format/formatVText.js.map +1 -0
  362. package/lib/feature-libraries/chunked-forest/codec/format/index.d.ts +2 -1
  363. package/lib/feature-libraries/chunked-forest/codec/format/index.d.ts.map +1 -1
  364. package/lib/feature-libraries/chunked-forest/codec/format/index.js +2 -1
  365. package/lib/feature-libraries/chunked-forest/codec/format/index.js.map +1 -1
  366. package/lib/feature-libraries/chunked-forest/codec/format/versions.d.ts +38 -4
  367. package/lib/feature-libraries/chunked-forest/codec/format/versions.d.ts.map +1 -1
  368. package/lib/feature-libraries/chunked-forest/codec/format/versions.js +6 -0
  369. package/lib/feature-libraries/chunked-forest/codec/format/versions.js.map +1 -1
  370. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +7 -7
  371. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
  372. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js +2 -3
  373. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
  374. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +66 -14
  375. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  376. package/lib/feature-libraries/chunked-forest/uniformChunk.js +101 -36
  377. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  378. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  379. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +36 -14
  380. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  381. package/lib/feature-libraries/forest-summary/codec.d.ts +5 -4
  382. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  383. package/lib/feature-libraries/forest-summary/codec.js +3 -3
  384. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  385. package/lib/feature-libraries/forest-summary/formatCommon.d.ts +6 -5
  386. package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
  387. package/lib/feature-libraries/forest-summary/formatCommon.js +1 -1
  388. package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -1
  389. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +4 -3
  390. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  391. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js +1 -1
  392. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  393. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts +45 -44
  394. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
  395. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js +1 -1
  396. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
  397. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +23 -22
  398. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
  399. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js +1 -1
  400. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
  401. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +1 -1
  402. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  403. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  404. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +9 -8
  405. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  406. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js +1 -1
  407. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  408. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +14 -13
  409. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
  410. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js +1 -1
  411. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
  412. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +5 -4
  413. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  414. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +1 -1
  415. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  416. package/lib/feature-libraries/schema-index/codec.d.ts +2 -2
  417. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  418. package/lib/feature-libraries/schema-index/codec.js +2 -2
  419. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  420. package/lib/feature-libraries/schema-index/formatV1.d.ts +15 -14
  421. package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
  422. package/lib/feature-libraries/schema-index/formatV1.js +1 -1
  423. package/lib/feature-libraries/schema-index/formatV1.js.map +1 -1
  424. package/lib/feature-libraries/schema-index/formatV2.d.ts +20 -19
  425. package/lib/feature-libraries/schema-index/formatV2.d.ts.map +1 -1
  426. package/lib/feature-libraries/schema-index/formatV2.js +1 -1
  427. package/lib/feature-libraries/schema-index/formatV2.js.map +1 -1
  428. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  429. package/lib/feature-libraries/sequence-field/compose.js +1 -3
  430. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  431. package/lib/feature-libraries/sequence-field/formatV1.d.ts +283 -282
  432. package/lib/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
  433. package/lib/feature-libraries/sequence-field/formatV1.js +1 -1
  434. package/lib/feature-libraries/sequence-field/formatV1.js.map +1 -1
  435. package/lib/feature-libraries/sequence-field/formatV2.d.ts +180 -179
  436. package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  437. package/lib/feature-libraries/sequence-field/formatV2.js +1 -1
  438. package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
  439. package/lib/feature-libraries/sequence-field/formatV3.d.ts +126 -125
  440. package/lib/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
  441. package/lib/feature-libraries/sequence-field/formatV3.js +1 -1
  442. package/lib/feature-libraries/sequence-field/formatV3.js.map +1 -1
  443. package/lib/index.d.ts +1 -1
  444. package/lib/index.d.ts.map +1 -1
  445. package/lib/index.js +1 -1
  446. package/lib/index.js.map +1 -1
  447. package/lib/packageVersion.d.ts +1 -1
  448. package/lib/packageVersion.js +1 -1
  449. package/lib/packageVersion.js.map +1 -1
  450. package/lib/shared-tree/isAuditableFromOutcome.d.ts +20 -0
  451. package/lib/shared-tree/isAuditableFromOutcome.d.ts.map +1 -0
  452. package/lib/shared-tree/isAuditableFromOutcome.js +32 -0
  453. package/lib/shared-tree/isAuditableFromOutcome.js.map +1 -0
  454. package/lib/shared-tree/sharedTree.d.ts +2 -2
  455. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  456. package/lib/shared-tree/sharedTree.js +1 -1
  457. package/lib/shared-tree/sharedTree.js.map +1 -1
  458. package/lib/shared-tree/sharedTreeChangeFormat.d.ts +8 -7
  459. package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  460. package/lib/shared-tree/sharedTreeChangeFormat.js +1 -1
  461. package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  462. package/lib/shared-tree/treeCheckout.d.ts +5 -3
  463. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  464. package/lib/shared-tree/treeCheckout.js +38 -9
  465. package/lib/shared-tree/treeCheckout.js.map +1 -1
  466. package/lib/shared-tree-core/editManager.d.ts +2 -2
  467. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  468. package/lib/shared-tree-core/editManager.js.map +1 -1
  469. package/lib/shared-tree-core/editManagerCodecs.d.ts +3 -3
  470. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  471. package/lib/shared-tree-core/editManagerCodecs.js +3 -3
  472. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  473. package/lib/shared-tree-core/editManagerFormatCommons.d.ts +35 -34
  474. package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  475. package/lib/shared-tree-core/editManagerFormatCommons.js +1 -1
  476. package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  477. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +15 -15
  478. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
  479. package/lib/shared-tree-core/editManagerFormatV1toV4.js +1 -1
  480. package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
  481. package/lib/shared-tree-core/editManagerFormatVSharedBranches.d.ts +40 -40
  482. package/lib/shared-tree-core/editManagerFormatVSharedBranches.d.ts.map +1 -1
  483. package/lib/shared-tree-core/editManagerFormatVSharedBranches.js +1 -1
  484. package/lib/shared-tree-core/editManagerFormatVSharedBranches.js.map +1 -1
  485. package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
  486. package/lib/shared-tree-core/messageCodecVSharedBranches.js +1 -1
  487. package/lib/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
  488. package/lib/shared-tree-core/messageCodecs.d.ts +3 -3
  489. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  490. package/lib/shared-tree-core/messageCodecs.js +3 -3
  491. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  492. package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +5 -5
  493. package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
  494. package/lib/shared-tree-core/messageFormatV1ToV4.js +1 -1
  495. package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
  496. package/lib/shared-tree-core/messageFormatVSharedBranches.d.ts +7 -7
  497. package/lib/shared-tree-core/messageFormatVSharedBranches.d.ts.map +1 -1
  498. package/lib/shared-tree-core/messageFormatVSharedBranches.js +1 -1
  499. package/lib/shared-tree-core/messageFormatVSharedBranches.js.map +1 -1
  500. package/lib/simple-tree/core/treeNodeKernel.d.ts +5 -0
  501. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  502. package/lib/simple-tree/core/treeNodeKernel.js +60 -23
  503. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  504. package/lib/simple-tree/simpleSchemaFormatV1.d.ts +121 -120
  505. package/lib/simple-tree/simpleSchemaFormatV1.d.ts.map +1 -1
  506. package/lib/simple-tree/simpleSchemaFormatV1.js +1 -1
  507. package/lib/simple-tree/simpleSchemaFormatV1.js.map +1 -1
  508. package/lib/text/codePointUtils.d.ts +48 -0
  509. package/lib/text/codePointUtils.d.ts.map +1 -0
  510. package/lib/text/codePointUtils.js +75 -0
  511. package/lib/text/codePointUtils.js.map +1 -0
  512. package/lib/text/index.d.ts +1 -0
  513. package/lib/text/index.d.ts.map +1 -1
  514. package/lib/text/index.js +1 -0
  515. package/lib/text/index.js.map +1 -1
  516. package/lib/text/textDomain.d.ts +93 -1
  517. package/lib/text/textDomain.d.ts.map +1 -1
  518. package/lib/text/textDomain.js +56 -0
  519. package/lib/text/textDomain.js.map +1 -1
  520. package/lib/text/textDomainFormatted.d.ts +24 -6
  521. package/lib/text/textDomainFormatted.d.ts.map +1 -1
  522. package/lib/text/textDomainFormatted.js +30 -2
  523. package/lib/text/textDomainFormatted.js.map +1 -1
  524. package/lib/treeFactory.d.ts.map +1 -1
  525. package/lib/treeFactory.js +2 -0
  526. package/lib/treeFactory.js.map +1 -1
  527. package/lib/util/breakable.d.ts +7 -1
  528. package/lib/util/breakable.d.ts.map +1 -1
  529. package/lib/util/breakable.js +18 -4
  530. package/lib/util/breakable.js.map +1 -1
  531. package/lib/util/typeboxBrand.d.ts +1 -1
  532. package/lib/util/typeboxBrand.d.ts.map +1 -1
  533. package/lib/util/typeboxBrand.js +1 -1
  534. package/lib/util/typeboxBrand.js.map +1 -1
  535. package/lib/util/utils.d.ts +2 -2
  536. package/lib/util/utils.d.ts.map +1 -1
  537. package/lib/util/utils.js +1 -1
  538. package/lib/util/utils.js.map +1 -1
  539. package/package.json +24 -24
  540. package/src/codec/codec.ts +82 -73
  541. package/src/codec/index.ts +2 -1
  542. package/src/codec/versioned/codec.ts +173 -73
  543. package/src/codec/versioned/format.ts +2 -1
  544. package/src/codec/versioned/index.ts +2 -1
  545. package/src/core/rebase/types.ts +1 -1
  546. package/src/core/schema-stored/formatV1.ts +2 -1
  547. package/src/core/schema-stored/formatV2.ts +2 -1
  548. package/src/core/tree/deltaUtil.ts +2 -2
  549. package/src/core/tree/detachedFieldIndexCodecV1.ts +3 -2
  550. package/src/core/tree/detachedFieldIndexCodecV2.ts +5 -3
  551. package/src/core/tree/detachedFieldIndexCodecs.ts +2 -2
  552. package/src/core/tree/detachedFieldIndexFormatCommon.ts +2 -1
  553. package/src/core/tree/detachedFieldIndexFormatV2.ts +2 -1
  554. package/src/core/tree/persistedTreeTextFormat.ts +2 -1
  555. package/src/feature-libraries/chunked-forest/chunkTree.ts +88 -3
  556. package/src/feature-libraries/chunked-forest/chunkedForest.ts +27 -7
  557. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +143 -7
  558. package/src/feature-libraries/chunked-forest/codec/codecs.ts +30 -28
  559. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +7 -7
  560. package/src/feature-libraries/chunked-forest/codec/format/formatGeneric.ts +2 -1
  561. package/src/feature-libraries/chunked-forest/codec/format/formatV1.ts +2 -1
  562. package/src/feature-libraries/chunked-forest/codec/format/formatV2.ts +13 -8
  563. package/src/feature-libraries/chunked-forest/codec/format/formatVText.ts +84 -0
  564. package/src/feature-libraries/chunked-forest/codec/format/index.ts +6 -1
  565. package/src/feature-libraries/chunked-forest/codec/format/versions.ts +25 -4
  566. package/src/feature-libraries/chunked-forest/codec/nodeEncoder.ts +14 -18
  567. package/src/feature-libraries/chunked-forest/uniformChunk.ts +131 -44
  568. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +36 -14
  569. package/src/feature-libraries/forest-summary/codec.ts +9 -4
  570. package/src/feature-libraries/forest-summary/formatCommon.ts +2 -1
  571. package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +2 -1
  572. package/src/feature-libraries/modular-schema/modularChangeFormatV1.ts +2 -1
  573. package/src/feature-libraries/modular-schema/modularChangeFormatV2.ts +2 -1
  574. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +1 -1
  575. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV1.ts +2 -1
  576. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV2.ts +2 -1
  577. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +2 -1
  578. package/src/feature-libraries/schema-index/codec.ts +2 -5
  579. package/src/feature-libraries/schema-index/formatV1.ts +2 -1
  580. package/src/feature-libraries/schema-index/formatV2.ts +2 -1
  581. package/src/feature-libraries/sequence-field/compose.ts +1 -4
  582. package/src/feature-libraries/sequence-field/formatV1.ts +2 -1
  583. package/src/feature-libraries/sequence-field/formatV2.ts +2 -1
  584. package/src/feature-libraries/sequence-field/formatV3.ts +2 -1
  585. package/src/index.ts +6 -1
  586. package/src/packageVersion.ts +1 -1
  587. package/src/shared-tree/isAuditableFromOutcome.ts +34 -0
  588. package/src/shared-tree/sharedTree.ts +2 -5
  589. package/src/shared-tree/sharedTreeChangeFormat.ts +2 -1
  590. package/src/shared-tree/treeCheckout.ts +55 -15
  591. package/src/shared-tree-core/editManager.ts +2 -2
  592. package/src/shared-tree-core/editManagerCodecs.ts +4 -6
  593. package/src/shared-tree-core/editManagerFormatCommons.ts +2 -1
  594. package/src/shared-tree-core/editManagerFormatV1toV4.ts +2 -1
  595. package/src/shared-tree-core/editManagerFormatVSharedBranches.ts +2 -1
  596. package/src/shared-tree-core/messageCodecVSharedBranches.ts +2 -1
  597. package/src/shared-tree-core/messageCodecs.ts +4 -4
  598. package/src/shared-tree-core/messageFormatV1ToV4.ts +2 -1
  599. package/src/shared-tree-core/messageFormatVSharedBranches.ts +2 -1
  600. package/src/simple-tree/core/treeNodeKernel.ts +66 -28
  601. package/src/simple-tree/simpleSchemaFormatV1.ts +2 -1
  602. package/src/text/codePointUtils.ts +81 -0
  603. package/src/text/index.ts +1 -0
  604. package/src/text/textDomain.ts +155 -2
  605. package/src/text/textDomainFormatted.ts +73 -2
  606. package/src/treeFactory.ts +5 -0
  607. package/src/util/breakable.ts +27 -6
  608. package/src/util/typeboxBrand.ts +2 -1
  609. package/src/util/utils.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"formatV1.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatV1.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+CAAsD;AAEtD,yDAA0D;AAE1D,yDAA0E;AAO7D,QAAA,uBAAuB,GAAG,6BAAU,CAAC;AAMrC,QAAA,uBAAuB,GAAG,cAAI,CAAC,MAAM,CACjD;IACC,MAAM,EAAE,wBAAK;IACb;;OAEG;IACH,KAAK,EAAE,6BAAU;CACjB,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAC/B,CAAC;AAQW,QAAA,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAOlC,QAAA,iBAAiB,GAAG,cAAI,CAAC,KAAK,CAAC;IAC3C;;OAEG;IACH,oCAAiB;IACjB;;OAEG;IACH,6BAAU;CACV,CAAC,CAAC;AAEH;;GAEG;AACH,IAAY,YAKX;AALD,WAAY,YAAY;IACvB;;OAEG;IACH,2DAAc,CAAA;AACf,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACU,QAAA,iBAAiB,GAAG,cAAI,CAAC,KAAK,CAAC;IAC3C,cAAI,CAAC,OAAO,EAAE;IACd,cAAI,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACpD,cAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IACvB,uEAAuE;IACvE,kBAAkB;CAClB,CAAC,CAAC;AAOU,QAAA,gBAAgB,GAAG,cAAI,CAAC,MAAM,CAC1C;IACC;;OAEG;IACH,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,oCAAiB,CAAC;IACtC,KAAK,EAAE,cAAI,CAAC,QAAQ,CAAC,yBAAiB,CAAC;IACvC;;;;OAIG;IACH,MAAM,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,KAAK,CAAC,yBAAiB,CAAC,CAAC;IACpD;;;OAGG;IACH,WAAW,EAAE,cAAI,CAAC,QAAQ,CAAC,6BAAU,CAAC;CACtC,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAC/B,CAAC;AAEF;;;;GAIG;AACU,QAAA,QAAQ,GAAG;IACvB;;OAEG;IACH,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,+BAAuB,CAAC;IACzC;;OAEG;IACH,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,+BAAuB,CAAC;IACzC;;OAEG;IACH,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,wBAAgB,CAAC;IAClC;;OAEG;IACH,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,uBAAe,CAAC;CACxB,CAAC;AAkBE,QAAA,mBAAmB,GAAG,cAAI,CAAC,MAAM,CAC7C,EAAE,GAAG,gBAAQ,EAAE,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAC/C,uBAAY,CACZ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { type Static, Type } from \"@sinclair/typebox\";\n\nimport { unionOptions } from \"../../../../codec/index.js\";\n\nimport { Count, IdentifierOrIndex, ShapeIndex } from \"./formatGeneric.js\";\n\n/**\n * Top level length is implied from length of data array.\n * All content are of this shape.\n */\nexport type EncodedNestedArrayShape = Static<typeof EncodedNestedArrayShape>;\nexport const EncodedNestedArrayShape = ShapeIndex;\n\n/**\n * Inline array.\n */\nexport type EncodedInlineArrayShape = Static<typeof EncodedInlineArrayShape>;\nexport const EncodedInlineArrayShape = Type.Object(\n\t{\n\t\tlength: Count,\n\t\t/**\n\t\t * All entries are this shape.\n\t\t */\n\t\tshape: ShapeIndex,\n\t},\n\t{ additionalProperties: false },\n);\n\n/**\n * Encoded as `shape, ...[data for shape]`.\n *\n * Used for polymorphism.\n */\nexport type EncodedAnyShape = Static<typeof EncodedAnyShape>;\nexport const EncodedAnyShape = Type.Literal(0);\n\n/**\n * Content of the encoded field is specified by the Shape referenced by the ShapeIndex.\n * This is a tuple for conciseness.\n */\nexport type EncodedFieldShape = Static<typeof EncodedFieldShape>;\nexport const EncodedFieldShape = Type.Tuple([\n\t/**\n\t * Field key for this field.\n\t */\n\tIdentifierOrIndex,\n\t/**\n\t * Shape of data in this field.\n\t */\n\tShapeIndex,\n]);\n\n/**\n * Used in {@link EncodedValueShape} for special field kind handling.\n */\nexport enum SpecialField {\n\t/**\n\t * Special case for Identifier field kind.\n\t */\n\tIdentifier = 0,\n}\n\n/**\n * Shape of a value on a node.\n *\n * Due to limitations of TypeBox and differences between JavaScript objects, TypeScript types and JSON,\n * the case where no information about the value is captured in the shape is a bit confusing.\n * In TypeBox this is allowed by the user of this type putting it in an optional property.\n * In TypeScript it is modeled using `undefined`.\n * In JavaScript the property may be missing or explicitly `undefined`.\n * In JSON this will serialize as the property being omitted.\n * In this case, the value will be encoded as either:\n * - `false` (when there is no value) OR\n * - `true, value` when there is a value.\n *\n * For a more compact encoding, there are 4 options for the shape:\n * - `true`: there is a value, and it will simply be encoded by putting it in the output buffer (so `value`).\n * - `false`: there is never a value, and it takes up no space in the output buffer.\n * - `[value]`: there is a value, and its always the same.\n * - `SpecialField.Identifier`: special case for node identifier handling.\n * Takes up no space in the output buffer: the value comes from the shape arrays's content.\n * It is wrapped in an array to differentiate value shape types.\n *\n * In the future other value shape formats may be added, likely as objects.\n *\n * @remarks\n * See {@link EncodedNodeShape} for usage.\n */\nexport const EncodedValueShape = Type.Union([\n\tType.Boolean(),\n\tType.Array(Type.Any(), { minItems: 1, maxItems: 1 }),\n\tType.Enum(SpecialField),\n\t// TODO: support delta encoding and/or special node identifier handling\n\t// EncodedCounter,\n]);\nexport type EncodedValueShape = undefined | Static<typeof EncodedValueShape>;\n\n/**\n * The encoded form of a {@link Shape} for a node.\n */\nexport type EncodedNodeShape = Static<typeof EncodedNodeShape>;\nexport const EncodedNodeShape = Type.Object(\n\t{\n\t\t/**\n\t\t * If not provided, inlined in data.\n\t\t */\n\t\ttype: Type.Optional(IdentifierOrIndex),\n\t\tvalue: Type.Optional(EncodedValueShape),\n\t\t/**\n\t\t * Fields with fixed (per key) shapes.\n\t\t * They are encoded in the order they are specified here.\n\t\t * To ensure the order is preserved, this is an array instead of an object with keys.\n\t\t */\n\t\tfields: Type.Optional(Type.Array(EncodedFieldShape)),\n\t\t/**\n\t\t * If undefined, no data. Otherwise, nested array of `[key, ...data]*`\n\t\t * Covers any fields beyond those in `fields`.\n\t\t */\n\t\textraFields: Type.Optional(ShapeIndex),\n\t},\n\t{ additionalProperties: false },\n);\n\n/**\n * The chunk shapes supported by the V1 format.\n * @remarks\n * See {@link EncodedChunkShapeV1}.\n */\nexport const shapesV1 = {\n\t/**\n\t * {@link EncodedNestedArrayShape} union member.\n\t */\n\ta: Type.Optional(EncodedNestedArrayShape),\n\t/**\n\t * {@link EncodedInlineArrayShape} union member.\n\t */\n\tb: Type.Optional(EncodedInlineArrayShape),\n\t/**\n\t * {@link EncodedNodeShape} union member.\n\t */\n\tc: Type.Optional(EncodedNodeShape),\n\t/**\n\t * {@link EncodedAnyShape} union member.\n\t */\n\td: Type.Optional(EncodedAnyShape),\n} as const;\n\n/**\n * Discriminated union that represents the shapes of chunks in the encoded data.\n * \"Chunk\" here refers to a chunk of tree data, rooted at a range of nodes, that is encoded as a\n * single unit in a specific format represented by one of the shapes in this union.\n *\n * The concept of \"chunk\" is same for the tree data in memory and in the encoded wire format.\n * The physical representation of the chunk may differ, but the logical structure remains the same.\n * This is similar to other such concepts in the system.\n *\n * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.\n * @privateRemarks\n * Because the TypeScript types for how we model these unions don't require exactly one property,\n * to prevent a union with more options from being assignable to this one, we include Never.\n * This matters in this case because the V2 format only differs in that it has another entry in this Union.\n */\nexport type EncodedChunkShapeV1 = Static<typeof EncodedChunkShapeV1>;\nexport const EncodedChunkShapeV1 = Type.Object(\n\t{ ...shapesV1, e: Type.Optional(Type.Never()) },\n\tunionOptions,\n);\n"]}
1
+ {"version":3,"file":"formatV1.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatV1.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wDAA0C;AAG1C,yDAA0D;AAE1D,yDAA0E;AAO7D,QAAA,uBAAuB,GAAG,6BAAU,CAAC;AAMrC,QAAA,uBAAuB,GAAG,IAAI,CAAC,MAAM,CACjD;IACC,MAAM,EAAE,wBAAK;IACb;;OAEG;IACH,KAAK,EAAE,6BAAU;CACjB,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAC/B,CAAC;AAQW,QAAA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAOlC,QAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;IAC3C;;OAEG;IACH,oCAAiB;IACjB;;OAEG;IACH,6BAAU;CACV,CAAC,CAAC;AAEH;;GAEG;AACH,IAAY,YAKX;AALD,WAAY,YAAY;IACvB;;OAEG;IACH,2DAAc,CAAA;AACf,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACU,QAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE;IACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IACvB,uEAAuE;IACvE,kBAAkB;CAClB,CAAC,CAAC;AAOU,QAAA,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAC1C;IACC;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,oCAAiB,CAAC;IACtC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,yBAAiB,CAAC;IACvC;;;;OAIG;IACH,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAiB,CAAC,CAAC;IACpD;;;OAGG;IACH,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,6BAAU,CAAC;CACtC,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAC/B,CAAC;AAEF;;;;GAIG;AACU,QAAA,QAAQ,GAAG;IACvB;;OAEG;IACH,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,+BAAuB,CAAC;IACzC;;OAEG;IACH,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,+BAAuB,CAAC;IACzC;;OAEG;IACH,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,wBAAgB,CAAC;IAClC;;OAEG;IACH,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAe,CAAC;CACxB,CAAC;AAkBE,QAAA,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAC7C,EAAE,GAAG,gBAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAC/C,uBAAY,CACZ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport * as Type from \"@sinclair/typebox\";\nimport type { Static } from \"@sinclair/typebox\";\n\nimport { unionOptions } from \"../../../../codec/index.js\";\n\nimport { Count, IdentifierOrIndex, ShapeIndex } from \"./formatGeneric.js\";\n\n/**\n * Top level length is implied from length of data array.\n * All content are of this shape.\n */\nexport type EncodedNestedArrayShape = Static<typeof EncodedNestedArrayShape>;\nexport const EncodedNestedArrayShape = ShapeIndex;\n\n/**\n * Inline array.\n */\nexport type EncodedInlineArrayShape = Static<typeof EncodedInlineArrayShape>;\nexport const EncodedInlineArrayShape = Type.Object(\n\t{\n\t\tlength: Count,\n\t\t/**\n\t\t * All entries are this shape.\n\t\t */\n\t\tshape: ShapeIndex,\n\t},\n\t{ additionalProperties: false },\n);\n\n/**\n * Encoded as `shape, ...[data for shape]`.\n *\n * Used for polymorphism.\n */\nexport type EncodedAnyShape = Static<typeof EncodedAnyShape>;\nexport const EncodedAnyShape = Type.Literal(0);\n\n/**\n * Content of the encoded field is specified by the Shape referenced by the ShapeIndex.\n * This is a tuple for conciseness.\n */\nexport type EncodedFieldShape = Static<typeof EncodedFieldShape>;\nexport const EncodedFieldShape = Type.Tuple([\n\t/**\n\t * Field key for this field.\n\t */\n\tIdentifierOrIndex,\n\t/**\n\t * Shape of data in this field.\n\t */\n\tShapeIndex,\n]);\n\n/**\n * Used in {@link EncodedValueShape} for special field kind handling.\n */\nexport enum SpecialField {\n\t/**\n\t * Special case for Identifier field kind.\n\t */\n\tIdentifier = 0,\n}\n\n/**\n * Shape of a value on a node.\n *\n * Due to limitations of TypeBox and differences between JavaScript objects, TypeScript types and JSON,\n * the case where no information about the value is captured in the shape is a bit confusing.\n * In TypeBox this is allowed by the user of this type putting it in an optional property.\n * In TypeScript it is modeled using `undefined`.\n * In JavaScript the property may be missing or explicitly `undefined`.\n * In JSON this will serialize as the property being omitted.\n * In this case, the value will be encoded as either:\n * - `false` (when there is no value) OR\n * - `true, value` when there is a value.\n *\n * For a more compact encoding, there are 4 options for the shape:\n * - `true`: there is a value, and it will simply be encoded by putting it in the output buffer (so `value`).\n * - `false`: there is never a value, and it takes up no space in the output buffer.\n * - `[value]`: there is a value, and its always the same.\n * - `SpecialField.Identifier`: special case for node identifier handling.\n * Takes up no space in the output buffer: the value comes from the shape arrays's content.\n * It is wrapped in an array to differentiate value shape types.\n *\n * In the future other value shape formats may be added, likely as objects.\n *\n * @remarks\n * See {@link EncodedNodeShape} for usage.\n */\nexport const EncodedValueShape = Type.Union([\n\tType.Boolean(),\n\tType.Array(Type.Any(), { minItems: 1, maxItems: 1 }),\n\tType.Enum(SpecialField),\n\t// TODO: support delta encoding and/or special node identifier handling\n\t// EncodedCounter,\n]);\nexport type EncodedValueShape = undefined | Static<typeof EncodedValueShape>;\n\n/**\n * The encoded form of a {@link Shape} for a node.\n */\nexport type EncodedNodeShape = Static<typeof EncodedNodeShape>;\nexport const EncodedNodeShape = Type.Object(\n\t{\n\t\t/**\n\t\t * If not provided, inlined in data.\n\t\t */\n\t\ttype: Type.Optional(IdentifierOrIndex),\n\t\tvalue: Type.Optional(EncodedValueShape),\n\t\t/**\n\t\t * Fields with fixed (per key) shapes.\n\t\t * They are encoded in the order they are specified here.\n\t\t * To ensure the order is preserved, this is an array instead of an object with keys.\n\t\t */\n\t\tfields: Type.Optional(Type.Array(EncodedFieldShape)),\n\t\t/**\n\t\t * If undefined, no data. Otherwise, nested array of `[key, ...data]*`\n\t\t * Covers any fields beyond those in `fields`.\n\t\t */\n\t\textraFields: Type.Optional(ShapeIndex),\n\t},\n\t{ additionalProperties: false },\n);\n\n/**\n * The chunk shapes supported by the V1 format.\n * @remarks\n * See {@link EncodedChunkShapeV1}.\n */\nexport const shapesV1 = {\n\t/**\n\t * {@link EncodedNestedArrayShape} union member.\n\t */\n\ta: Type.Optional(EncodedNestedArrayShape),\n\t/**\n\t * {@link EncodedInlineArrayShape} union member.\n\t */\n\tb: Type.Optional(EncodedInlineArrayShape),\n\t/**\n\t * {@link EncodedNodeShape} union member.\n\t */\n\tc: Type.Optional(EncodedNodeShape),\n\t/**\n\t * {@link EncodedAnyShape} union member.\n\t */\n\td: Type.Optional(EncodedAnyShape),\n} as const;\n\n/**\n * Discriminated union that represents the shapes of chunks in the encoded data.\n * \"Chunk\" here refers to a chunk of tree data, rooted at a range of nodes, that is encoded as a\n * single unit in a specific format represented by one of the shapes in this union.\n *\n * The concept of \"chunk\" is same for the tree data in memory and in the encoded wire format.\n * The physical representation of the chunk may differ, but the logical structure remains the same.\n * This is similar to other such concepts in the system.\n *\n * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.\n * @privateRemarks\n * Because the TypeScript types for how we model these unions don't require exactly one property,\n * to prevent a union with more options from being assignable to this one, we include Never.\n * This matters in this case because the V2 format only differs in that it has another entry in this Union.\n */\nexport type EncodedChunkShapeV1 = Static<typeof EncodedChunkShapeV1>;\nexport const EncodedChunkShapeV1 = Type.Object(\n\t{ ...shapesV1, e: Type.Optional(Type.Never()) },\n\tunionOptions,\n);\n"]}
@@ -2,32 +2,53 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { type Static } from "@sinclair/typebox";
5
+ import * as Type from "@sinclair/typebox";
6
+ import type { Static } from "@sinclair/typebox";
6
7
  /**
7
8
  * Encoded content is a {@link ChunkReferenceId}.
8
9
  * This represents the shape of a chunk that is encoded separately and is referenced by its {@link ChunkReferenceId}.
9
10
  */
10
11
  export type EncodedIncrementalChunkShape = Static<typeof EncodedIncrementalChunkShape>;
11
- export declare const EncodedIncrementalChunkShape: import("@sinclair/typebox").TLiteral<0>;
12
+ export declare const EncodedIncrementalChunkShape: Type.TLiteral<0>;
13
+ /**
14
+ * The chunk shapes supported by the V2 format.
15
+ * @remarks
16
+ * See {@link EncodedChunkShapeV2}.
17
+ */
18
+ export declare const shapesV2: {
19
+ readonly e: Type.TOptional<Type.TLiteral<0>>;
20
+ readonly a: Type.TOptional<Type.TNumber>;
21
+ readonly b: Type.TOptional<Type.TObject<{
22
+ length: Type.TNumber;
23
+ shape: Type.TNumber;
24
+ }>>;
25
+ readonly c: Type.TOptional<Type.TObject<{
26
+ type: Type.TOptional<Type.TUnion<[Type.TString, Type.TNumber]>>;
27
+ value: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TArray<Type.TAny>, Type.TEnum<typeof import("./formatV1.js").SpecialField>]>>;
28
+ fields: Type.TOptional<Type.TArray<Type.TTuple<[Type.TUnion<[Type.TString, Type.TNumber]>, Type.TNumber]>>>;
29
+ extraFields: Type.TOptional<Type.TNumber>;
30
+ }>>;
31
+ readonly d: Type.TOptional<Type.TLiteral<0>>;
32
+ };
12
33
  /**
13
34
  * V2 extension of {@link EncodedChunkShapeV1}.
14
35
  * @remarks
15
36
  * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.
16
37
  */
17
38
  export type EncodedChunkShapeV2 = Static<typeof EncodedChunkShapeV2>;
18
- export declare const EncodedChunkShapeV2: import("@sinclair/typebox").TObject<{
19
- e: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<0>>;
20
- a: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
21
- b: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
22
- length: import("@sinclair/typebox").TNumber;
23
- shape: import("@sinclair/typebox").TNumber;
39
+ export declare const EncodedChunkShapeV2: Type.TObject<{
40
+ readonly e: Type.TOptional<Type.TLiteral<0>>;
41
+ readonly a: Type.TOptional<Type.TNumber>;
42
+ readonly b: Type.TOptional<Type.TObject<{
43
+ length: Type.TNumber;
44
+ shape: Type.TNumber;
24
45
  }>>;
25
- c: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
26
- type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>>;
27
- value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>, import("@sinclair/typebox").TEnum<typeof import("./formatV1.js").SpecialField>]>>;
28
- fields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>, import("@sinclair/typebox").TNumber]>>>;
29
- extraFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
46
+ readonly c: Type.TOptional<Type.TObject<{
47
+ type: Type.TOptional<Type.TUnion<[Type.TString, Type.TNumber]>>;
48
+ value: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TArray<Type.TAny>, Type.TEnum<typeof import("./formatV1.js").SpecialField>]>>;
49
+ fields: Type.TOptional<Type.TArray<Type.TTuple<[Type.TUnion<[Type.TString, Type.TNumber]>, Type.TNumber]>>>;
50
+ extraFields: Type.TOptional<Type.TNumber>;
30
51
  }>>;
31
- d: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<0>>;
52
+ readonly d: Type.TOptional<Type.TLiteral<0>>;
32
53
  }>;
33
54
  //# sourceMappingURL=formatV2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatV2.d.ts","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatV2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAMtD;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACvF,eAAO,MAAM,4BAA4B,yCAAkB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;EAM/B,CAAC"}
1
+ {"version":3,"file":"formatV2.d.ts","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatV2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACvF,eAAO,MAAM,4BAA4B,kBAAkB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;CAGX,CAAC;AAEX;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;EAAsC,CAAC"}
@@ -3,14 +3,43 @@
3
3
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
4
  * Licensed under the MIT License.
5
5
  */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
6
29
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.EncodedChunkShapeV2 = exports.EncodedIncrementalChunkShape = void 0;
8
- const typebox_1 = require("@sinclair/typebox");
30
+ exports.EncodedChunkShapeV2 = exports.shapesV2 = exports.EncodedIncrementalChunkShape = void 0;
31
+ const Type = __importStar(require("@sinclair/typebox"));
9
32
  const index_js_1 = require("../../../../codec/index.js");
10
33
  const formatV1_js_1 = require("./formatV1.js");
11
- exports.EncodedIncrementalChunkShape = typebox_1.Type.Literal(0);
12
- exports.EncodedChunkShapeV2 = typebox_1.Type.Object({
34
+ exports.EncodedIncrementalChunkShape = Type.Literal(0);
35
+ /**
36
+ * The chunk shapes supported by the V2 format.
37
+ * @remarks
38
+ * See {@link EncodedChunkShapeV2}.
39
+ */
40
+ exports.shapesV2 = {
13
41
  ...formatV1_js_1.shapesV1,
14
- e: typebox_1.Type.Optional(exports.EncodedIncrementalChunkShape),
15
- }, index_js_1.unionOptions);
42
+ e: Type.Optional(exports.EncodedIncrementalChunkShape),
43
+ };
44
+ exports.EncodedChunkShapeV2 = Type.Object(exports.shapesV2, index_js_1.unionOptions);
16
45
  //# sourceMappingURL=formatV2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatV2.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatV2.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+CAAsD;AAEtD,yDAA0D;AAE1D,+CAAyC;AAO5B,QAAA,4BAA4B,GAAG,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAQ/C,QAAA,mBAAmB,GAAG,cAAI,CAAC,MAAM,CAC7C;IACC,GAAG,sBAAQ;IACX,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,oCAA4B,CAAC;CAC9C,EACD,uBAAY,CACZ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { type Static, Type } from \"@sinclair/typebox\";\n\nimport { unionOptions } from \"../../../../codec/index.js\";\n\nimport { shapesV1 } from \"./formatV1.js\";\n\n/**\n * Encoded content is a {@link ChunkReferenceId}.\n * This represents the shape of a chunk that is encoded separately and is referenced by its {@link ChunkReferenceId}.\n */\nexport type EncodedIncrementalChunkShape = Static<typeof EncodedIncrementalChunkShape>;\nexport const EncodedIncrementalChunkShape = Type.Literal(0);\n\n/**\n * V2 extension of {@link EncodedChunkShapeV1}.\n * @remarks\n * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.\n */\nexport type EncodedChunkShapeV2 = Static<typeof EncodedChunkShapeV2>;\nexport const EncodedChunkShapeV2 = Type.Object(\n\t{\n\t\t...shapesV1,\n\t\te: Type.Optional(EncodedIncrementalChunkShape),\n\t},\n\tunionOptions,\n);\n"]}
1
+ {"version":3,"file":"formatV2.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatV2.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wDAA0C;AAG1C,yDAA0D;AAE1D,+CAAyC;AAO5B,QAAA,4BAA4B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE5D;;;;GAIG;AACU,QAAA,QAAQ,GAAG;IACvB,GAAG,sBAAQ;IACX,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,oCAA4B,CAAC;CACrC,CAAC;AAQE,QAAA,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAQ,EAAE,uBAAY,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport * as Type from \"@sinclair/typebox\";\nimport type { Static } from \"@sinclair/typebox\";\n\nimport { unionOptions } from \"../../../../codec/index.js\";\n\nimport { shapesV1 } from \"./formatV1.js\";\n\n/**\n * Encoded content is a {@link ChunkReferenceId}.\n * This represents the shape of a chunk that is encoded separately and is referenced by its {@link ChunkReferenceId}.\n */\nexport type EncodedIncrementalChunkShape = Static<typeof EncodedIncrementalChunkShape>;\nexport const EncodedIncrementalChunkShape = Type.Literal(0);\n\n/**\n * The chunk shapes supported by the V2 format.\n * @remarks\n * See {@link EncodedChunkShapeV2}.\n */\nexport const shapesV2 = {\n\t...shapesV1,\n\te: Type.Optional(EncodedIncrementalChunkShape),\n} as const;\n\n/**\n * V2 extension of {@link EncodedChunkShapeV1}.\n * @remarks\n * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.\n */\nexport type EncodedChunkShapeV2 = Static<typeof EncodedChunkShapeV2>;\nexport const EncodedChunkShapeV2 = Type.Object(shapesV2, unionOptions);\n"]}
@@ -0,0 +1,106 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import * as Type from "@sinclair/typebox";
6
+ import type { Static } from "@sinclair/typebox";
7
+ /**
8
+ * A node shape that derives from another node shape by overlaying property-level overrides.
9
+ *
10
+ * @remarks
11
+ * Compresses runs of node shapes that differ only in a few properties: a base node shape
12
+ * defines the structural skeleton, and the specialization narrows specific properties.
13
+ *
14
+ * For example, a base `FormatNode` with a variable-boolean `bold` field can be specialized
15
+ * to a shape that pins `bold` to a constant `true` — every node decoded with the
16
+ * specialization contributes zero stream tokens for `bold`.
17
+ *
18
+ * Specialization rules: `type` is always inherited from the resolved base. `fields` overrides
19
+ * apply per-key: entries whose key matches a base field replace that entry's shape index in
20
+ * place; entries with new keys are appended after all base fields. For `value` and
21
+ * `extraFields`: if the property is absent on the wire, the base's value is inherited; if
22
+ * `null`, the resulting shape has no value / no extraFields (explicit clear); any other value
23
+ * replaces the base's.
24
+ *
25
+ * The `null` sentinel exists because JSON does not preserve `undefined`-valued properties,
26
+ * so override-vs-inherit cannot be discriminated by property presence after persistence.
27
+ *
28
+ * Decoded by {@link applySpecialization}.
29
+ */
30
+ export type EncodedSpecializedNodeShape = Static<typeof EncodedSpecializedNodeShape>;
31
+ export declare const EncodedSpecializedNodeShape: Type.TObject<{
32
+ /**
33
+ * Index into the enclosing batch's shapes array of the shape this specializes.
34
+ * Must resolve to either an {@link EncodedNodeShape} or another
35
+ * `EncodedSpecializedNodeShape`; chains are followed transitively until a node shape
36
+ * is reached. This restriction is enforced at runtime, not by the schema.
37
+ */
38
+ base: Type.TNumber;
39
+ /**
40
+ * Field-level overrides applied to the resolved base's `fields`. Entries whose key
41
+ * matches a base field replace that field's shape index in place; entries with new
42
+ * keys are appended after all base fields, in the order given here. Base field order
43
+ * is preserved — this is the stream consumption order at decode time, so encoders
44
+ * must serialize per-field tokens in the resulting field order, not in this list's order.
45
+ */
46
+ fields: Type.TOptional<Type.TArray<Type.TTuple<[Type.TUnion<[Type.TString, Type.TNumber]>, Type.TNumber]>>>;
47
+ /**
48
+ * If absent, inherits the resolved base's value shape. If `null`, the resulting shape
49
+ * has no value shape (explicit clear). Any other value replaces the base's.
50
+ */
51
+ value: Type.TOptional<Type.TUnion<[Type.TUnion<[Type.TBoolean, Type.TArray<Type.TAny>, Type.TEnum<typeof import("./formatV1.js").SpecialField>]>, Type.TNull]>>;
52
+ /**
53
+ * If absent, inherits the resolved base's extraFields shape. If `null`, the resulting
54
+ * shape has no extraFields (explicit clear). Any other value replaces the base's.
55
+ */
56
+ extraFields: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
57
+ }>;
58
+ /**
59
+ * Experimental extension of {@link EncodedChunkShapeV2}.
60
+ * @remarks
61
+ * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.
62
+ */
63
+ export type EncodedChunkShapeVTextExperimental = Static<typeof EncodedChunkShapeVTextExperimental>;
64
+ export declare const EncodedChunkShapeVTextExperimental: Type.TObject<{
65
+ f: Type.TOptional<Type.TObject<{
66
+ /**
67
+ * Index into the enclosing batch's shapes array of the shape this specializes.
68
+ * Must resolve to either an {@link EncodedNodeShape} or another
69
+ * `EncodedSpecializedNodeShape`; chains are followed transitively until a node shape
70
+ * is reached. This restriction is enforced at runtime, not by the schema.
71
+ */
72
+ base: Type.TNumber;
73
+ /**
74
+ * Field-level overrides applied to the resolved base's `fields`. Entries whose key
75
+ * matches a base field replace that field's shape index in place; entries with new
76
+ * keys are appended after all base fields, in the order given here. Base field order
77
+ * is preserved — this is the stream consumption order at decode time, so encoders
78
+ * must serialize per-field tokens in the resulting field order, not in this list's order.
79
+ */
80
+ fields: Type.TOptional<Type.TArray<Type.TTuple<[Type.TUnion<[Type.TString, Type.TNumber]>, Type.TNumber]>>>;
81
+ /**
82
+ * If absent, inherits the resolved base's value shape. If `null`, the resulting shape
83
+ * has no value shape (explicit clear). Any other value replaces the base's.
84
+ */
85
+ value: Type.TOptional<Type.TUnion<[Type.TUnion<[Type.TBoolean, Type.TArray<Type.TAny>, Type.TEnum<typeof import("./formatV1.js").SpecialField>]>, Type.TNull]>>;
86
+ /**
87
+ * If absent, inherits the resolved base's extraFields shape. If `null`, the resulting
88
+ * shape has no extraFields (explicit clear). Any other value replaces the base's.
89
+ */
90
+ extraFields: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TNull]>>;
91
+ }>>;
92
+ e: Type.TOptional<Type.TLiteral<0>>;
93
+ a: Type.TOptional<Type.TNumber>;
94
+ b: Type.TOptional<Type.TObject<{
95
+ length: Type.TNumber;
96
+ shape: Type.TNumber;
97
+ }>>;
98
+ c: Type.TOptional<Type.TObject<{
99
+ type: Type.TOptional<Type.TUnion<[Type.TString, Type.TNumber]>>;
100
+ value: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TArray<Type.TAny>, Type.TEnum<typeof import("./formatV1.js").SpecialField>]>>;
101
+ fields: Type.TOptional<Type.TArray<Type.TTuple<[Type.TUnion<[Type.TString, Type.TNumber]>, Type.TNumber]>>>;
102
+ extraFields: Type.TOptional<Type.TNumber>;
103
+ }>>;
104
+ d: Type.TOptional<Type.TLiteral<0>>;
105
+ }>;
106
+ //# sourceMappingURL=formatVText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatVText.d.ts","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatVText.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACrF,eAAO,MAAM,2BAA2B;IAEtC;;;;;OAKG;;IAEH;;;;;;OAMG;;IAEH;;;OAGG;;IAEH;;;OAGG;;EAIJ,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kCAAkC,GAAG,MAAM,CACtD,OAAO,kCAAkC,CACzC,CAAC;AACF,eAAO,MAAM,kCAAkC;;QArC7C;;;;;WAKG;;QAEH;;;;;;WAMG;;QAEH;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;EAoBJ,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.EncodedChunkShapeVTextExperimental = exports.EncodedSpecializedNodeShape = void 0;
31
+ const Type = __importStar(require("@sinclair/typebox"));
32
+ const index_js_1 = require("../../../../codec/index.js");
33
+ const formatGeneric_js_1 = require("./formatGeneric.js");
34
+ const formatV1_js_1 = require("./formatV1.js");
35
+ const formatV2_js_1 = require("./formatV2.js");
36
+ exports.EncodedSpecializedNodeShape = Type.Object({
37
+ /**
38
+ * Index into the enclosing batch's shapes array of the shape this specializes.
39
+ * Must resolve to either an {@link EncodedNodeShape} or another
40
+ * `EncodedSpecializedNodeShape`; chains are followed transitively until a node shape
41
+ * is reached. This restriction is enforced at runtime, not by the schema.
42
+ */
43
+ base: formatGeneric_js_1.ShapeIndex,
44
+ /**
45
+ * Field-level overrides applied to the resolved base's `fields`. Entries whose key
46
+ * matches a base field replace that field's shape index in place; entries with new
47
+ * keys are appended after all base fields, in the order given here. Base field order
48
+ * is preserved — this is the stream consumption order at decode time, so encoders
49
+ * must serialize per-field tokens in the resulting field order, not in this list's order.
50
+ */
51
+ fields: Type.Optional(Type.Array(formatV1_js_1.EncodedFieldShape)),
52
+ /**
53
+ * If absent, inherits the resolved base's value shape. If `null`, the resulting shape
54
+ * has no value shape (explicit clear). Any other value replaces the base's.
55
+ */
56
+ value: Type.Optional(Type.Union([formatV1_js_1.EncodedValueShape, Type.Null()])),
57
+ /**
58
+ * If absent, inherits the resolved base's extraFields shape. If `null`, the resulting
59
+ * shape has no extraFields (explicit clear). Any other value replaces the base's.
60
+ */
61
+ extraFields: Type.Optional(Type.Union([formatGeneric_js_1.ShapeIndex, Type.Null()])),
62
+ }, { additionalProperties: false });
63
+ exports.EncodedChunkShapeVTextExperimental = Type.Object({
64
+ ...formatV2_js_1.shapesV2,
65
+ f: Type.Optional(exports.EncodedSpecializedNodeShape),
66
+ }, index_js_1.unionOptions);
67
+ //# sourceMappingURL=formatVText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatVText.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/formatVText.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wDAA0C;AAG1C,yDAA0D;AAE1D,yDAAgD;AAChD,+CAAqE;AACrE,+CAAyC;AA0B5B,QAAA,2BAA2B,GAAG,IAAI,CAAC,MAAM,CACrD;IACC;;;;;OAKG;IACH,IAAI,EAAE,6BAAU;IAChB;;;;;;OAMG;IACH,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,+BAAiB,CAAC,CAAC;IACpD;;;OAGG;IACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,+BAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE;;;OAGG;IACH,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,6BAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CACjE,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAC/B,CAAC;AAUW,QAAA,kCAAkC,GAAG,IAAI,CAAC,MAAM,CAC5D;IACC,GAAG,sBAAQ;IACX,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,mCAA2B,CAAC;CAC7C,EACD,uBAAY,CACZ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport * as Type from \"@sinclair/typebox\";\nimport type { Static } from \"@sinclair/typebox\";\n\nimport { unionOptions } from \"../../../../codec/index.js\";\n\nimport { ShapeIndex } from \"./formatGeneric.js\";\nimport { EncodedFieldShape, EncodedValueShape } from \"./formatV1.js\";\nimport { shapesV2 } from \"./formatV2.js\";\n\n/**\n * A node shape that derives from another node shape by overlaying property-level overrides.\n *\n * @remarks\n * Compresses runs of node shapes that differ only in a few properties: a base node shape\n * defines the structural skeleton, and the specialization narrows specific properties.\n *\n * For example, a base `FormatNode` with a variable-boolean `bold` field can be specialized\n * to a shape that pins `bold` to a constant `true` — every node decoded with the\n * specialization contributes zero stream tokens for `bold`.\n *\n * Specialization rules: `type` is always inherited from the resolved base. `fields` overrides\n * apply per-key: entries whose key matches a base field replace that entry's shape index in\n * place; entries with new keys are appended after all base fields. For `value` and\n * `extraFields`: if the property is absent on the wire, the base's value is inherited; if\n * `null`, the resulting shape has no value / no extraFields (explicit clear); any other value\n * replaces the base's.\n *\n * The `null` sentinel exists because JSON does not preserve `undefined`-valued properties,\n * so override-vs-inherit cannot be discriminated by property presence after persistence.\n *\n * Decoded by {@link applySpecialization}.\n */\nexport type EncodedSpecializedNodeShape = Static<typeof EncodedSpecializedNodeShape>;\nexport const EncodedSpecializedNodeShape = Type.Object(\n\t{\n\t\t/**\n\t\t * Index into the enclosing batch's shapes array of the shape this specializes.\n\t\t * Must resolve to either an {@link EncodedNodeShape} or another\n\t\t * `EncodedSpecializedNodeShape`; chains are followed transitively until a node shape\n\t\t * is reached. This restriction is enforced at runtime, not by the schema.\n\t\t */\n\t\tbase: ShapeIndex,\n\t\t/**\n\t\t * Field-level overrides applied to the resolved base's `fields`. Entries whose key\n\t\t * matches a base field replace that field's shape index in place; entries with new\n\t\t * keys are appended after all base fields, in the order given here. Base field order\n\t\t * is preserved — this is the stream consumption order at decode time, so encoders\n\t\t * must serialize per-field tokens in the resulting field order, not in this list's order.\n\t\t */\n\t\tfields: Type.Optional(Type.Array(EncodedFieldShape)),\n\t\t/**\n\t\t * If absent, inherits the resolved base's value shape. If `null`, the resulting shape\n\t\t * has no value shape (explicit clear). Any other value replaces the base's.\n\t\t */\n\t\tvalue: Type.Optional(Type.Union([EncodedValueShape, Type.Null()])),\n\t\t/**\n\t\t * If absent, inherits the resolved base's extraFields shape. If `null`, the resulting\n\t\t * shape has no extraFields (explicit clear). Any other value replaces the base's.\n\t\t */\n\t\textraFields: Type.Optional(Type.Union([ShapeIndex, Type.Null()])),\n\t},\n\t{ additionalProperties: false },\n);\n\n/**\n * Experimental extension of {@link EncodedChunkShapeV2}.\n * @remarks\n * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.\n */\nexport type EncodedChunkShapeVTextExperimental = Static<\n\ttypeof EncodedChunkShapeVTextExperimental\n>;\nexport const EncodedChunkShapeVTextExperimental = Type.Object(\n\t{\n\t\t...shapesV2,\n\t\tf: Type.Optional(EncodedSpecializedNodeShape),\n\t},\n\tunionOptions,\n);\n"]}
@@ -5,6 +5,7 @@
5
5
  export type { EncodedChunkShapeV1, EncodedInlineArrayShape, EncodedNestedArrayShape, EncodedNodeShape, EncodedValueShape, EncodedFieldShape, } from "./formatV1.js";
6
6
  export { EncodedAnyShape, SpecialField, } from "./formatV1.js";
7
7
  export { EncodedIncrementalChunkShape, EncodedChunkShapeV2 } from "./formatV2.js";
8
- export { FieldBatchFormatVersion, EncodedFieldBatchV1, EncodedFieldBatchV2, supportsIncrementalEncoding, type EncodedFieldBatchV1OrV2, type EncodedFieldBatchV1AndV2, type EncodedChunkShapeV1OrV2, } from "./versions.js";
8
+ export { EncodedChunkShapeVTextExperimental, EncodedSpecializedNodeShape, } from "./formatVText.js";
9
+ export { FieldBatchFormatVersion, EncodedFieldBatchV1, EncodedFieldBatchV2, EncodedFieldBatchVTextExperimental, supportsIncrementalEncoding, type EncodedFieldBatchV1OrV2, type EncodedFieldBatchV1AndV2, type EncodedChunkShape, } from "./versions.js";
9
10
  export type { ShapeIndex, IdentifierOrIndex, EncodedFieldBatchGeneric, } from "./formatGeneric.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACX,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,eAAe,EACf,YAAY,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC5B,MAAM,eAAe,CAAC;AACvB,YAAY,EACX,UAAU,EACV,iBAAiB,EACjB,wBAAwB,GACxB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACX,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,eAAe,EACf,YAAY,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EACN,kCAAkC,EAClC,2BAA2B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EACX,UAAU,EACV,iBAAiB,EACjB,wBAAwB,GACxB,MAAM,oBAAoB,CAAC"}
@@ -4,16 +4,20 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.supportsIncrementalEncoding = exports.EncodedFieldBatchV2 = exports.EncodedFieldBatchV1 = exports.FieldBatchFormatVersion = exports.EncodedChunkShapeV2 = exports.EncodedIncrementalChunkShape = exports.SpecialField = exports.EncodedAnyShape = void 0;
7
+ exports.supportsIncrementalEncoding = exports.EncodedFieldBatchVTextExperimental = exports.EncodedFieldBatchV2 = exports.EncodedFieldBatchV1 = exports.FieldBatchFormatVersion = exports.EncodedSpecializedNodeShape = exports.EncodedChunkShapeVTextExperimental = exports.EncodedChunkShapeV2 = exports.EncodedIncrementalChunkShape = exports.SpecialField = exports.EncodedAnyShape = void 0;
8
8
  var formatV1_js_1 = require("./formatV1.js");
9
9
  Object.defineProperty(exports, "EncodedAnyShape", { enumerable: true, get: function () { return formatV1_js_1.EncodedAnyShape; } });
10
10
  Object.defineProperty(exports, "SpecialField", { enumerable: true, get: function () { return formatV1_js_1.SpecialField; } });
11
11
  var formatV2_js_1 = require("./formatV2.js");
12
12
  Object.defineProperty(exports, "EncodedIncrementalChunkShape", { enumerable: true, get: function () { return formatV2_js_1.EncodedIncrementalChunkShape; } });
13
13
  Object.defineProperty(exports, "EncodedChunkShapeV2", { enumerable: true, get: function () { return formatV2_js_1.EncodedChunkShapeV2; } });
14
+ var formatVText_js_1 = require("./formatVText.js");
15
+ Object.defineProperty(exports, "EncodedChunkShapeVTextExperimental", { enumerable: true, get: function () { return formatVText_js_1.EncodedChunkShapeVTextExperimental; } });
16
+ Object.defineProperty(exports, "EncodedSpecializedNodeShape", { enumerable: true, get: function () { return formatVText_js_1.EncodedSpecializedNodeShape; } });
14
17
  var versions_js_1 = require("./versions.js");
15
18
  Object.defineProperty(exports, "FieldBatchFormatVersion", { enumerable: true, get: function () { return versions_js_1.FieldBatchFormatVersion; } });
16
19
  Object.defineProperty(exports, "EncodedFieldBatchV1", { enumerable: true, get: function () { return versions_js_1.EncodedFieldBatchV1; } });
17
20
  Object.defineProperty(exports, "EncodedFieldBatchV2", { enumerable: true, get: function () { return versions_js_1.EncodedFieldBatchV2; } });
21
+ Object.defineProperty(exports, "EncodedFieldBatchVTextExperimental", { enumerable: true, get: function () { return versions_js_1.EncodedFieldBatchVTextExperimental; } });
18
22
  Object.defineProperty(exports, "supportsIncrementalEncoding", { enumerable: true, get: function () { return versions_js_1.supportsIncrementalEncoding; } });
19
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAUH,6CAGuB;AAFtB,8GAAA,eAAe,OAAA;AACf,2GAAA,YAAY,OAAA;AAEb,6CAAkF;AAAzE,2HAAA,4BAA4B,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAC1D,6CAQuB;AAPtB,sHAAA,uBAAuB,OAAA;AACvB,kHAAA,mBAAmB,OAAA;AACnB,kHAAA,mBAAmB,OAAA;AACnB,0HAAA,2BAA2B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type {\n\tEncodedChunkShapeV1,\n\tEncodedInlineArrayShape,\n\tEncodedNestedArrayShape,\n\tEncodedNodeShape,\n\tEncodedValueShape,\n\tEncodedFieldShape,\n} from \"./formatV1.js\";\nexport {\n\tEncodedAnyShape,\n\tSpecialField,\n} from \"./formatV1.js\";\nexport { EncodedIncrementalChunkShape, EncodedChunkShapeV2 } from \"./formatV2.js\";\nexport {\n\tFieldBatchFormatVersion,\n\tEncodedFieldBatchV1,\n\tEncodedFieldBatchV2,\n\tsupportsIncrementalEncoding,\n\ttype EncodedFieldBatchV1OrV2,\n\ttype EncodedFieldBatchV1AndV2,\n\ttype EncodedChunkShapeV1OrV2,\n} from \"./versions.js\";\nexport type {\n\tShapeIndex,\n\tIdentifierOrIndex,\n\tEncodedFieldBatchGeneric,\n} from \"./formatGeneric.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAUH,6CAGuB;AAFtB,8GAAA,eAAe,OAAA;AACf,2GAAA,YAAY,OAAA;AAEb,6CAAkF;AAAzE,2HAAA,4BAA4B,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAC1D,mDAG0B;AAFzB,oIAAA,kCAAkC,OAAA;AAClC,6HAAA,2BAA2B,OAAA;AAE5B,6CASuB;AARtB,sHAAA,uBAAuB,OAAA;AACvB,kHAAA,mBAAmB,OAAA;AACnB,kHAAA,mBAAmB,OAAA;AACnB,iIAAA,kCAAkC,OAAA;AAClC,0HAAA,2BAA2B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type {\n\tEncodedChunkShapeV1,\n\tEncodedInlineArrayShape,\n\tEncodedNestedArrayShape,\n\tEncodedNodeShape,\n\tEncodedValueShape,\n\tEncodedFieldShape,\n} from \"./formatV1.js\";\nexport {\n\tEncodedAnyShape,\n\tSpecialField,\n} from \"./formatV1.js\";\nexport { EncodedIncrementalChunkShape, EncodedChunkShapeV2 } from \"./formatV2.js\";\nexport {\n\tEncodedChunkShapeVTextExperimental,\n\tEncodedSpecializedNodeShape,\n} from \"./formatVText.js\";\nexport {\n\tFieldBatchFormatVersion,\n\tEncodedFieldBatchV1,\n\tEncodedFieldBatchV2,\n\tEncodedFieldBatchVTextExperimental,\n\tsupportsIncrementalEncoding,\n\ttype EncodedFieldBatchV1OrV2,\n\ttype EncodedFieldBatchV1AndV2,\n\ttype EncodedChunkShape,\n} from \"./versions.js\";\nexport type {\n\tShapeIndex,\n\tIdentifierOrIndex,\n\tEncodedFieldBatchGeneric,\n} from \"./formatGeneric.js\";\n"]}
@@ -6,6 +6,7 @@ import type { Static } from "@sinclair/typebox";
6
6
  import { type Values } from "../../../../util/index.js";
7
7
  import { EncodedChunkShapeV1 } from "./formatV1.js";
8
8
  import { EncodedChunkShapeV2 } from "./formatV2.js";
9
+ import { EncodedChunkShapeVTextExperimental } from "./formatVText.js";
9
10
  /**
10
11
  * The format version for the field batch.
11
12
  */
@@ -13,6 +14,7 @@ export type FieldBatchFormatVersion = Values<typeof FieldBatchFormatVersion>;
13
14
  export declare const FieldBatchFormatVersion: {
14
15
  readonly v1: import("../../../../util/brand.js").Brand<1, "FieldBatchFormatVersion">;
15
16
  readonly v2: import("../../../../util/brand.js").Brand<2, "FieldBatchFormatVersion">;
17
+ readonly vTextExperimental: import("../../../../util/brand.js").Brand<"text", "FieldBatchFormatVersion">;
16
18
  };
17
19
  /**
18
20
  * Whether the given format version supports incremental chunk encoding.
@@ -59,6 +61,36 @@ export declare const EncodedFieldBatchV2: import("@sinclair/typebox").TObject<{
59
61
  identifiers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
60
62
  version: import("@sinclair/typebox").TLiteral<FieldBatchFormatVersion>;
61
63
  shapes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
64
+ readonly e: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<0>>;
65
+ readonly a: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
66
+ readonly b: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
67
+ length: import("@sinclair/typebox").TNumber;
68
+ shape: import("@sinclair/typebox").TNumber;
69
+ }>>;
70
+ readonly c: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
71
+ type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>>;
72
+ value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>, import("@sinclair/typebox").TEnum<typeof import("./formatV1.js").SpecialField>]>>;
73
+ fields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>, import("@sinclair/typebox").TNumber]>>>;
74
+ extraFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
75
+ }>>;
76
+ readonly d: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<0>>;
77
+ }>>;
78
+ }>;
79
+ /**
80
+ * Encoded {@link FieldBatch} using the experimental text optimized format.
81
+ */
82
+ export type EncodedFieldBatchVTextExperimental = Static<typeof EncodedFieldBatchVTextExperimental>;
83
+ export declare const EncodedFieldBatchVTextExperimental: import("@sinclair/typebox").TObject<{
84
+ data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
85
+ identifiers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
86
+ version: import("@sinclair/typebox").TLiteral<FieldBatchFormatVersion>;
87
+ shapes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
88
+ f: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
89
+ base: import("@sinclair/typebox").TNumber;
90
+ fields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>, import("@sinclair/typebox").TNumber]>>>;
91
+ value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>, import("@sinclair/typebox").TEnum<typeof import("./formatV1.js").SpecialField>]>, import("@sinclair/typebox").TNull]>>;
92
+ extraFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
93
+ }>>;
62
94
  e: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<0>>;
63
95
  a: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
64
96
  b: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
@@ -92,10 +124,12 @@ export type EncodedFieldBatchV1OrV2 = EncodedFieldBatchV1 | EncodedFieldBatchV2;
92
124
  */
93
125
  export type EncodedFieldBatchV1AndV2 = EncodedFieldBatchV1 & EncodedFieldBatchV2;
94
126
  /**
95
- * Encoded chunk shape, which might use V2 features, but might also have been from a V1 encoder.
127
+ * An encoded chunk shape from any known {@link FieldBatchFormatVersion}.
128
+ *
96
129
  * @remarks
97
- * Type wise, equivalent to V2, as that is a superset of V1.
98
- * Used instead of just V2 for clarity.
130
+ * Use this when working with chunk shapes uniformly across versions for example, in the
131
+ * shared decoder dispatcher and in encoder shape base classes. New format versions should
132
+ * add their chunk shape variant to this union.
99
133
  */
100
- export type EncodedChunkShapeV1OrV2 = EncodedChunkShapeV1 | EncodedChunkShapeV2;
134
+ export type EncodedChunkShape = EncodedChunkShapeV1 | EncodedChunkShapeV2 | EncodedChunkShapeVTextExperimental;
101
135
  //# sourceMappingURL=versions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/versions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC7E,eAAO,MAAM,uBAAuB;;;CAclC,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAMrF;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEhF;;;;;;;;GAQG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/versions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC7E,eAAO,MAAM,uBAAuB;;;;CAkBlC,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAMrF;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,MAAM,CACtD,OAAO,kCAAkC,CACzC,CAAC;AACF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;EAG9C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEhF;;;;;;;;GAQG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAC1B,mBAAmB,GACnB,mBAAmB,GACnB,kCAAkC,CAAC"}
@@ -4,11 +4,12 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.EncodedFieldBatchV2 = exports.EncodedFieldBatchV1 = exports.supportsIncrementalEncoding = exports.FieldBatchFormatVersion = void 0;
7
+ exports.EncodedFieldBatchVTextExperimental = exports.EncodedFieldBatchV2 = exports.EncodedFieldBatchV1 = exports.supportsIncrementalEncoding = exports.FieldBatchFormatVersion = void 0;
8
8
  const index_js_1 = require("../../../../util/index.js");
9
9
  const formatGeneric_js_1 = require("./formatGeneric.js");
10
10
  const formatV1_js_1 = require("./formatV1.js");
11
11
  const formatV2_js_1 = require("./formatV2.js");
12
+ const formatVText_js_1 = require("./formatVText.js");
12
13
  exports.FieldBatchFormatVersion = (0, index_js_1.strictEnum)("FieldBatchFormatVersion", {
13
14
  /**
14
15
  * Initial version.
@@ -23,6 +24,10 @@ exports.FieldBatchFormatVersion = (0, index_js_1.strictEnum)("FieldBatchFormatVe
23
24
  * {@link EncodedIncrementalChunkShape} was added in this version.
24
25
  */
25
26
  v2: 2,
27
+ /**
28
+ * Experimental codec with optimizations for text.
29
+ */
30
+ vTextExperimental: "text",
26
31
  });
27
32
  /**
28
33
  * Whether the given format version supports incremental chunk encoding.
@@ -40,4 +45,5 @@ function supportsIncrementalEncoding(version) {
40
45
  exports.supportsIncrementalEncoding = supportsIncrementalEncoding;
41
46
  exports.EncodedFieldBatchV1 = (0, formatGeneric_js_1.EncodedFieldBatchGeneric)(exports.FieldBatchFormatVersion.v1, formatV1_js_1.EncodedChunkShapeV1);
42
47
  exports.EncodedFieldBatchV2 = (0, formatGeneric_js_1.EncodedFieldBatchGeneric)(exports.FieldBatchFormatVersion.v2, formatV2_js_1.EncodedChunkShapeV2);
48
+ exports.EncodedFieldBatchVTextExperimental = (0, formatGeneric_js_1.EncodedFieldBatchGeneric)(exports.FieldBatchFormatVersion.vTextExperimental, formatVText_js_1.EncodedChunkShapeVTextExperimental);
43
49
  //# sourceMappingURL=versions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/versions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,wDAAoE;AAEpE,yDAA8D;AAC9D,+CAAoD;AACpD,+CAAoD;AAMvC,QAAA,uBAAuB,GAAG,IAAA,qBAAU,EAAC,yBAAyB,EAAE;IAC5E;;;;;OAKG;IACH,EAAE,EAAE,CAAC;IACL;;;;OAIG;IACH,EAAE,EAAE,CAAC;CACL,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,SAAgB,2BAA2B,CAAC,OAAgC;IAC3E,IAAI,OAAO,KAAK,+BAAuB,CAAC,EAAE,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAND,kEAMC;AAQY,QAAA,mBAAmB,GAAG,IAAA,2CAAwB,EAC1D,+BAAuB,CAAC,EAAE,EAC1B,iCAAmB,CACnB,CAAC;AAQW,QAAA,mBAAmB,GAAG,IAAA,2CAAwB,EAC1D,+BAAuB,CAAC,EAAE,EAC1B,iCAAmB,CACnB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { Static } from \"@sinclair/typebox\";\n\nimport { strictEnum, type Values } from \"../../../../util/index.js\";\n\nimport { EncodedFieldBatchGeneric } from \"./formatGeneric.js\";\nimport { EncodedChunkShapeV1 } from \"./formatV1.js\";\nimport { EncodedChunkShapeV2 } from \"./formatV2.js\";\n\n/**\n * The format version for the field batch.\n */\nexport type FieldBatchFormatVersion = Values<typeof FieldBatchFormatVersion>;\nexport const FieldBatchFormatVersion = strictEnum(\"FieldBatchFormatVersion\", {\n\t/**\n\t * Initial version.\n\t * @remarks\n\t * For simplicity of implementation the format for this version allows the same chunk shapes as v2, but must not use {@link EncodedIncrementalChunkShape}\n\t * as older clients will not know how to handle that shape but think they can handle this format.\n\t */\n\tv1: 1,\n\t/**\n\t * Adds support for incremental encoding of chunks.\n\t * @remarks\n\t * {@link EncodedIncrementalChunkShape} was added in this version.\n\t */\n\tv2: 2,\n});\n\n/**\n * Whether the given format version supports incremental chunk encoding.\n *\n * @remarks\n * This helper should be used for comparison since experimental versions\n * can be a string.\n */\nexport function supportsIncrementalEncoding(version: FieldBatchFormatVersion): boolean {\n\tif (version === FieldBatchFormatVersion.v1) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Encoded {@link FieldBatch} using V1 format.\n * @remarks\n * Does not support {@link EncodedIncrementalChunkShape}.\n */\nexport type EncodedFieldBatchV1 = Static<typeof EncodedFieldBatchV1>;\nexport const EncodedFieldBatchV1 = EncodedFieldBatchGeneric(\n\tFieldBatchFormatVersion.v1,\n\tEncodedChunkShapeV1,\n);\n\n/**\n * Encoded {@link FieldBatch} using V2 format.\n * @remarks\n * Adds support for {@link EncodedIncrementalChunkShape}.\n */\nexport type EncodedFieldBatchV2 = Static<typeof EncodedFieldBatchV2>;\nexport const EncodedFieldBatchV2 = EncodedFieldBatchGeneric(\n\tFieldBatchFormatVersion.v2,\n\tEncodedChunkShapeV2,\n);\n\n/**\n * Encoded {@link FieldBatch}, which might use V2 features, but might also have been from a V1 encoder.\n * @remarks\n * Type wise, equivalent to V2, as that is a superset of V1.\n * Used instead of just V2 for clarity.\n */\nexport type EncodedFieldBatchV1OrV2 = EncodedFieldBatchV1 | EncodedFieldBatchV2;\n\n/**\n * Encoded data, compatible with both V1 and V2 formats.\n * @remarks\n * This is the intersection of the two versions, which is possible because V2 is a non-breaking extension of V1.\n * This type can be used when the code is compatible with both versions and does not need to distinguish between them.\n *\n * Type wise, equivalent to V1, as that is a subset of V2.\n * Used instead of just V1 for clarity.\n */\nexport type EncodedFieldBatchV1AndV2 = EncodedFieldBatchV1 & EncodedFieldBatchV2;\n\n/**\n * Encoded chunk shape, which might use V2 features, but might also have been from a V1 encoder.\n * @remarks\n * Type wise, equivalent to V2, as that is a superset of V1.\n * Used instead of just V2 for clarity.\n */\nexport type EncodedChunkShapeV1OrV2 = EncodedChunkShapeV1 | EncodedChunkShapeV2;\n"]}
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../src/feature-libraries/chunked-forest/codec/format/versions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,wDAAoE;AAEpE,yDAA8D;AAC9D,+CAAoD;AACpD,+CAAoD;AACpD,qDAAsE;AAMzD,QAAA,uBAAuB,GAAG,IAAA,qBAAU,EAAC,yBAAyB,EAAE;IAC5E;;;;;OAKG;IACH,EAAE,EAAE,CAAC;IACL;;;;OAIG;IACH,EAAE,EAAE,CAAC;IACL;;OAEG;IACH,iBAAiB,EAAE,MAAM;CACzB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,SAAgB,2BAA2B,CAAC,OAAgC;IAC3E,IAAI,OAAO,KAAK,+BAAuB,CAAC,EAAE,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAND,kEAMC;AAQY,QAAA,mBAAmB,GAAG,IAAA,2CAAwB,EAC1D,+BAAuB,CAAC,EAAE,EAC1B,iCAAmB,CACnB,CAAC;AAQW,QAAA,mBAAmB,GAAG,IAAA,2CAAwB,EAC1D,+BAAuB,CAAC,EAAE,EAC1B,iCAAmB,CACnB,CAAC;AAQW,QAAA,kCAAkC,GAAG,IAAA,2CAAwB,EACzE,+BAAuB,CAAC,iBAAiB,EACzC,mDAAkC,CAClC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { Static } from \"@sinclair/typebox\";\n\nimport { strictEnum, type Values } from \"../../../../util/index.js\";\n\nimport { EncodedFieldBatchGeneric } from \"./formatGeneric.js\";\nimport { EncodedChunkShapeV1 } from \"./formatV1.js\";\nimport { EncodedChunkShapeV2 } from \"./formatV2.js\";\nimport { EncodedChunkShapeVTextExperimental } from \"./formatVText.js\";\n\n/**\n * The format version for the field batch.\n */\nexport type FieldBatchFormatVersion = Values<typeof FieldBatchFormatVersion>;\nexport const FieldBatchFormatVersion = strictEnum(\"FieldBatchFormatVersion\", {\n\t/**\n\t * Initial version.\n\t * @remarks\n\t * For simplicity of implementation the format for this version allows the same chunk shapes as v2, but must not use {@link EncodedIncrementalChunkShape}\n\t * as older clients will not know how to handle that shape but think they can handle this format.\n\t */\n\tv1: 1,\n\t/**\n\t * Adds support for incremental encoding of chunks.\n\t * @remarks\n\t * {@link EncodedIncrementalChunkShape} was added in this version.\n\t */\n\tv2: 2,\n\t/**\n\t * Experimental codec with optimizations for text.\n\t */\n\tvTextExperimental: \"text\",\n});\n\n/**\n * Whether the given format version supports incremental chunk encoding.\n *\n * @remarks\n * This helper should be used for comparison since experimental versions\n * can be a string.\n */\nexport function supportsIncrementalEncoding(version: FieldBatchFormatVersion): boolean {\n\tif (version === FieldBatchFormatVersion.v1) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Encoded {@link FieldBatch} using V1 format.\n * @remarks\n * Does not support {@link EncodedIncrementalChunkShape}.\n */\nexport type EncodedFieldBatchV1 = Static<typeof EncodedFieldBatchV1>;\nexport const EncodedFieldBatchV1 = EncodedFieldBatchGeneric(\n\tFieldBatchFormatVersion.v1,\n\tEncodedChunkShapeV1,\n);\n\n/**\n * Encoded {@link FieldBatch} using V2 format.\n * @remarks\n * Adds support for {@link EncodedIncrementalChunkShape}.\n */\nexport type EncodedFieldBatchV2 = Static<typeof EncodedFieldBatchV2>;\nexport const EncodedFieldBatchV2 = EncodedFieldBatchGeneric(\n\tFieldBatchFormatVersion.v2,\n\tEncodedChunkShapeV2,\n);\n\n/**\n * Encoded {@link FieldBatch} using the experimental text optimized format.\n */\nexport type EncodedFieldBatchVTextExperimental = Static<\n\ttypeof EncodedFieldBatchVTextExperimental\n>;\nexport const EncodedFieldBatchVTextExperimental = EncodedFieldBatchGeneric(\n\tFieldBatchFormatVersion.vTextExperimental,\n\tEncodedChunkShapeVTextExperimental,\n);\n\n/**\n * Encoded {@link FieldBatch}, which might use V2 features, but might also have been from a V1 encoder.\n * @remarks\n * Type wise, equivalent to V2, as that is a superset of V1.\n * Used instead of just V2 for clarity.\n */\nexport type EncodedFieldBatchV1OrV2 = EncodedFieldBatchV1 | EncodedFieldBatchV2;\n\n/**\n * Encoded data, compatible with both V1 and V2 formats.\n * @remarks\n * This is the intersection of the two versions, which is possible because V2 is a non-breaking extension of V1.\n * This type can be used when the code is compatible with both versions and does not need to distinguish between them.\n *\n * Type wise, equivalent to V1, as that is a subset of V2.\n * Used instead of just V1 for clarity.\n */\nexport type EncodedFieldBatchV1AndV2 = EncodedFieldBatchV1 & EncodedFieldBatchV2;\n\n/**\n * An encoded chunk shape from any known {@link FieldBatchFormatVersion}.\n *\n * @remarks\n * Use this when working with chunk shapes uniformly across versions — for example, in the\n * shared decoder dispatcher and in encoder shape base classes. New format versions should\n * add their chunk shape variant to this union.\n */\nexport type EncodedChunkShape =\n\t| EncodedChunkShapeV1\n\t| EncodedChunkShapeV2\n\t| EncodedChunkShapeVTextExperimental;\n"]}
@@ -6,14 +6,14 @@ import { type ITreeCursorSynchronous, type TreeNodeSchemaIdentifier } from "../.
6
6
  import type { Counter, DeduplicationTable } from "./chunkCodecUtilities.js";
7
7
  import { type BufferFormat, Shape } from "./chunkEncodingGeneric.js";
8
8
  import { type EncoderContext, type FieldEncoder, type KeyedFieldEncoder, type NodeEncoder } from "./compressedEncode.js";
9
- import type { EncodedChunkShapeV1OrV2, EncodedFieldShape, EncodedValueShape } from "./format/index.js";
9
+ import type { EncodedChunkShape, EncodedFieldShape, EncodedValueShape } from "./format/index.js";
10
10
  /**
11
11
  * Encodes a node with the {@link EncodedNodeShape} shape.
12
12
  * @remarks
13
13
  * The fact this is also a Shape is an implementation detail of the encoder: that allows the shape it uses to be itself,
14
14
  * which is an easy way to keep all the related code together without extra objects.
15
15
  */
16
- export declare class NodeShapeBasedEncoder extends Shape<EncodedChunkShapeV1OrV2> implements NodeEncoder {
16
+ export declare class NodeShapeBasedEncoder extends Shape<EncodedChunkShape> implements NodeEncoder {
17
17
  readonly type: undefined | TreeNodeSchemaIdentifier;
18
18
  readonly value: EncodedValueShape;
19
19
  /**
@@ -57,10 +57,10 @@ export declare class NodeShapeBasedEncoder extends Shape<EncodedChunkShapeV1OrV2
57
57
  */
58
58
  otherFieldsEncoder: undefined | FieldEncoder);
59
59
  private getValueToEncode;
60
- encodeNode(cursor: ITreeCursorSynchronous, context: EncoderContext, outputBuffer: BufferFormat<EncodedChunkShapeV1OrV2>): void;
61
- encodeShape(identifiers: DeduplicationTable<string>, shapes: DeduplicationTable<Shape<EncodedChunkShapeV1OrV2>>): EncodedChunkShapeV1OrV2;
62
- countReferencedShapesAndIdentifiers(identifiers: Counter<string>, shapeDiscovered: (shape: Shape<EncodedChunkShapeV1OrV2>) => void): void;
63
- get shape(): Shape<EncodedChunkShapeV1OrV2>;
60
+ encodeNode(cursor: ITreeCursorSynchronous, context: EncoderContext, outputBuffer: BufferFormat<EncodedChunkShape>): void;
61
+ encodeShape(identifiers: DeduplicationTable<string>, shapes: DeduplicationTable<Shape<EncodedChunkShape>>): EncodedChunkShape;
62
+ countReferencedShapesAndIdentifiers(identifiers: Counter<string>, shapeDiscovered: (shape: Shape<EncodedChunkShape>) => void): void;
63
+ get shape(): Shape<EncodedChunkShape>;
64
64
  }
65
- export declare function encodeFieldShapes(fieldEncoders: readonly KeyedFieldEncoder[], identifiers: DeduplicationTable<string>, shapes: DeduplicationTable<Shape<EncodedChunkShapeV1OrV2>>): EncodedFieldShape[] | undefined;
65
+ export declare function encodeFieldShapes(fieldEncoders: readonly KeyedFieldEncoder[], identifiers: DeduplicationTable<string>, shapes: DeduplicationTable<Shape<EncodedChunkShape>>): EncodedFieldShape[] | undefined;
66
66
  //# sourceMappingURL=nodeEncoder.d.ts.map