@fluidframework/tree 2.91.0 → 2.92.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.
- package/CHANGELOG.md +118 -0
- package/api-report/tree.alpha.api.md +60 -22
- package/dist/api.d.ts +6 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/codec/codec.d.ts +28 -2
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +1 -0
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +2 -2
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +2 -4
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +18 -36
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +46 -59
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/codec/versioned/index.d.ts +1 -1
- package/dist/codec/versioned/index.d.ts.map +1 -1
- package/dist/codec/versioned/index.js +2 -4
- package/dist/codec/versioned/index.js.map +1 -1
- package/dist/core/forest/forest.d.ts +5 -2
- package/dist/core/forest/forest.d.ts.map +1 -1
- package/dist/core/forest/forest.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +8 -1
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/revisionTagCodec.d.ts +4 -3
- package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/dist/core/rebase/revisionTagCodec.js +2 -0
- package/dist/core/rebase/revisionTagCodec.js.map +1 -1
- package/dist/core/rebase/utils.d.ts +2 -2
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +4 -4
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/formatV2.d.ts +1 -1
- package/dist/core/schema-stored/formatV2.js +1 -1
- package/dist/core/schema-stored/formatV2.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +8 -0
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +42 -7
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/cursor.d.ts +25 -1
- package/dist/core/tree/cursor.d.ts.map +1 -1
- package/dist/core/tree/cursor.js +45 -1
- package/dist/core/tree/cursor.js.map +1 -1
- package/dist/core/tree/deltaUtil.d.ts +13 -1
- package/dist/core/tree/deltaUtil.d.ts.map +1 -1
- package/dist/core/tree/deltaUtil.js +34 -1
- package/dist/core/tree/deltaUtil.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts +5 -5
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/dist/core/tree/index.d.ts +2 -2
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +6 -2
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts +11 -0
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js +1 -1
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js +5 -0
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/entrypoints/alpha.d.ts +1 -1
- package/dist/entrypoints/alpha.d.ts.map +1 -1
- package/dist/entrypoints/alpha.js +2 -3
- package/dist/entrypoints/alpha.js.map +1 -1
- package/dist/entrypoints/beta.js +1 -1
- package/dist/entrypoints/beta.js.map +1 -1
- package/dist/entrypoints/legacy.d.ts +1 -1
- package/dist/entrypoints/legacy.d.ts.map +1 -1
- package/dist/entrypoints/legacy.js +1 -1
- package/dist/entrypoints/legacy.js.map +1 -1
- package/dist/entrypoints/public.js +1 -1
- package/dist/entrypoints/public.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.d.ts +4 -3
- package/dist/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.js +2 -0
- package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +2 -2
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +4 -4
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -6
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -2
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -4
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +6 -6
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +12 -12
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +3 -3
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/{formatGeneric.d.ts → format/formatGeneric.d.ts} +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV1.d.ts +187 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV1.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js +115 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV2.d.ts +33 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV2.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js +16 -0
- package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/index.d.ts +10 -0
- package/dist/feature-libraries/chunked-forest/codec/format/index.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/index.js +18 -0
- package/dist/feature-libraries/chunked-forest/codec/format/index.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/versions.d.ts +93 -0
- package/dist/feature-libraries/chunked-forest/codec/format/versions.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format/versions.js +29 -0
- package/dist/feature-libraries/chunked-forest/codec/format/versions.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js +2 -2
- package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +7 -7
- package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +6 -4
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +3 -3
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
- package/dist/feature-libraries/cursorComparator.d.ts +23 -0
- package/dist/feature-libraries/cursorComparator.d.ts.map +1 -0
- package/dist/feature-libraries/cursorComparator.js +65 -0
- package/dist/feature-libraries/cursorComparator.js.map +1 -0
- package/dist/feature-libraries/forest-summary/codec.d.ts +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +3 -3
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +3 -2
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +5 -5
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +2 -0
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +12 -7
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +2 -2
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +0 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +10 -10
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +2 -4
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +4 -3
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +2 -2
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +4 -4
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +3 -3
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-edits/index.d.ts +1 -1
- package/dist/feature-libraries/schema-edits/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/index.js +2 -3
- package/dist/feature-libraries/schema-edits/index.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +6 -15
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +8 -54
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts +3 -16
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +1 -21
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/formatV2.d.ts +1 -1
- package/dist/feature-libraries/schema-index/formatV2.js +1 -1
- package/dist/feature-libraries/schema-index/formatV2.js.map +1 -1
- package/dist/feature-libraries/schema-index/index.d.ts +1 -1
- package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/index.js +1 -2
- package/dist/feature-libraries/schema-index/index.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -4
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts +1 -1
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +14 -21
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +2 -2
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +1 -2
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +2 -36
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +15 -117
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +3 -22
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +10 -27
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +3 -2
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +23 -16
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +2 -2
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts +8 -7
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.js +13 -5
- package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
- package/dist/shared-tree/tree.d.ts.map +1 -1
- package/dist/shared-tree/tree.js +2 -1
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +13 -1
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +3 -0
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +34 -69
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +885 -678
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree/unhydratedTreeContext.js +3 -3
- package/dist/shared-tree/unhydratedTreeContext.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +23 -12
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +40 -67
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.js +0 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts +10 -2
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js +18 -13
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +2 -2
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js +6 -9
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +3 -3
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +5 -8
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +2 -3
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js +8 -8
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts +2 -3
- package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.js +5 -4
- package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts +15 -14
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +38 -74
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +0 -1
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js +1 -2
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +1 -3
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +12 -2
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/sharedTreeAttributes.d.ts.map +1 -1
- package/dist/sharedTreeAttributes.js +3 -0
- package/dist/sharedTreeAttributes.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -0
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +2 -2
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +6 -6
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +7 -19
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeAlpha.d.ts +69 -0
- package/dist/simple-tree/api/treeAlpha.d.ts.map +1 -0
- package/dist/simple-tree/api/treeAlpha.js +7 -0
- package/dist/simple-tree/api/treeAlpha.js.map +1 -0
- package/dist/simple-tree/api/treeBeta.d.ts +1 -1
- package/dist/simple-tree/api/treeBeta.js.map +1 -1
- package/dist/simple-tree/api/treeChangeEvents.d.ts +3 -0
- package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
- package/dist/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts +49 -0
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +41 -2
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +45 -8
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +5 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/index.d.ts +2 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +16 -0
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +23 -0
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +10 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/index.d.ts +2 -2
- package/dist/simple-tree/node-kinds/array/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/index.js.map +1 -1
- package/dist/text/textDomainFormatted.d.ts +319 -9
- package/dist/text/textDomainFormatted.d.ts.map +1 -1
- package/dist/text/textDomainFormatted.js +100 -25
- package/dist/text/textDomainFormatted.js.map +1 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +5 -2
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/referenceCounting.d.ts.map +1 -1
- package/dist/util/referenceCounting.js +0 -1
- package/dist/util/referenceCounting.js.map +1 -1
- package/legacy.d.ts +2 -3
- package/lib/api.d.ts +6 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js.map +1 -1
- package/lib/codec/codec.d.ts +28 -2
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +1 -0
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +2 -2
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts +18 -36
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +45 -56
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/codec/versioned/index.d.ts +1 -1
- package/lib/codec/versioned/index.d.ts.map +1 -1
- package/lib/codec/versioned/index.js +1 -1
- package/lib/codec/versioned/index.js.map +1 -1
- package/lib/core/forest/forest.d.ts +5 -2
- package/lib/core/forest/forest.d.ts.map +1 -1
- package/lib/core/forest/forest.js.map +1 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +8 -1
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/revisionTagCodec.d.ts +4 -3
- package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/lib/core/rebase/revisionTagCodec.js +2 -0
- package/lib/core/rebase/revisionTagCodec.js.map +1 -1
- package/lib/core/rebase/utils.d.ts +2 -2
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +4 -4
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/formatV2.d.ts +1 -1
- package/lib/core/schema-stored/formatV2.js +1 -1
- package/lib/core/schema-stored/formatV2.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +8 -0
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +42 -7
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/cursor.d.ts +25 -1
- package/lib/core/tree/cursor.d.ts.map +1 -1
- package/lib/core/tree/cursor.js +43 -0
- package/lib/core/tree/cursor.js.map +1 -1
- package/lib/core/tree/deltaUtil.d.ts +13 -1
- package/lib/core/tree/deltaUtil.d.ts.map +1 -1
- package/lib/core/tree/deltaUtil.js +31 -0
- package/lib/core/tree/deltaUtil.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts +5 -5
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/lib/core/tree/index.d.ts +2 -2
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +2 -2
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts +11 -0
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js +1 -1
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js +5 -0
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/entrypoints/alpha.d.ts +1 -1
- package/lib/entrypoints/alpha.d.ts.map +1 -1
- package/lib/entrypoints/alpha.js +2 -2
- package/lib/entrypoints/alpha.js.map +1 -1
- package/lib/entrypoints/beta.js +1 -1
- package/lib/entrypoints/beta.js.map +1 -1
- package/lib/entrypoints/legacy.d.ts +1 -1
- package/lib/entrypoints/legacy.d.ts.map +1 -1
- package/lib/entrypoints/legacy.js +1 -1
- package/lib/entrypoints/legacy.js.map +1 -1
- package/lib/entrypoints/public.js +1 -1
- package/lib/entrypoints/public.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdCodec.d.ts +4 -3
- package/lib/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
- package/lib/feature-libraries/changeAtomIdCodec.js +2 -0
- package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +2 -2
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +4 -4
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +4 -4
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -2
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -4
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +12 -12
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/{formatGeneric.d.ts → format/formatGeneric.d.ts} +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV1.d.ts +187 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV1.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV1.js +112 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV1.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV2.d.ts +33 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV2.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV2.js +13 -0
- package/lib/feature-libraries/chunked-forest/codec/format/formatV2.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/index.d.ts +10 -0
- package/lib/feature-libraries/chunked-forest/codec/format/index.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/index.js +8 -0
- package/lib/feature-libraries/chunked-forest/codec/format/index.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/versions.d.ts +93 -0
- package/lib/feature-libraries/chunked-forest/codec/format/versions.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format/versions.js +26 -0
- package/lib/feature-libraries/chunked-forest/codec/format/versions.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +7 -7
- package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +4 -2
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
- package/lib/feature-libraries/cursorComparator.d.ts +23 -0
- package/lib/feature-libraries/cursorComparator.d.ts.map +1 -0
- package/lib/feature-libraries/cursorComparator.js +61 -0
- package/lib/feature-libraries/cursorComparator.js.map +1 -0
- package/lib/feature-libraries/forest-summary/codec.d.ts +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +3 -3
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +3 -2
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +3 -2
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +2 -0
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +12 -7
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js +2 -2
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +0 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +10 -10
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +2 -4
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +4 -3
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +2 -2
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +4 -4
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +3 -3
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-edits/index.d.ts +1 -1
- package/lib/feature-libraries/schema-edits/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/index.js +1 -1
- package/lib/feature-libraries/schema-edits/index.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +6 -15
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +6 -50
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts +3 -16
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +0 -19
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/formatV2.d.ts +1 -1
- package/lib/feature-libraries/schema-index/formatV2.js +1 -1
- package/lib/feature-libraries/schema-index/formatV2.js.map +1 -1
- package/lib/feature-libraries/schema-index/index.d.ts +1 -1
- package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/index.js +1 -1
- package/lib/feature-libraries/schema-index/index.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -4
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts +1 -1
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +4 -11
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +2 -2
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +2 -36
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +17 -116
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +3 -22
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +11 -27
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +3 -2
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +19 -12
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js +2 -2
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +2 -2
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts +8 -7
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.js +11 -5
- package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
- package/lib/shared-tree/tree.d.ts.map +1 -1
- package/lib/shared-tree/tree.js +2 -1
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +13 -1
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +3 -0
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +34 -69
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +889 -683
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree/unhydratedTreeContext.js +1 -1
- package/lib/shared-tree/unhydratedTreeContext.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +23 -12
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +41 -65
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.js +0 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts +10 -2
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js +16 -11
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +2 -2
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js +5 -8
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +3 -3
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js +3 -3
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +2 -3
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.js +8 -8
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts +2 -3
- package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.js +5 -4
- package/lib/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts +15 -14
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +38 -71
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +0 -1
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js +0 -1
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +1 -3
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +14 -4
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/sharedTreeAttributes.d.ts.map +1 -1
- package/lib/sharedTreeAttributes.js +3 -0
- package/lib/sharedTreeAttributes.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -0
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +2 -2
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +7 -7
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +7 -19
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeAlpha.d.ts +69 -0
- package/lib/simple-tree/api/treeAlpha.d.ts.map +1 -0
- package/lib/simple-tree/api/treeAlpha.js +6 -0
- package/lib/simple-tree/api/treeAlpha.js.map +1 -0
- package/lib/simple-tree/api/treeBeta.d.ts +1 -1
- package/lib/simple-tree/api/treeBeta.js.map +1 -1
- package/lib/simple-tree/api/treeChangeEvents.d.ts +3 -0
- package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
- package/lib/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts +49 -0
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +41 -2
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +45 -8
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +5 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/index.d.ts +2 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +16 -0
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +23 -0
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +10 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/index.d.ts +2 -2
- package/lib/simple-tree/node-kinds/array/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/index.js.map +1 -1
- package/lib/text/textDomainFormatted.d.ts +319 -9
- package/lib/text/textDomainFormatted.d.ts.map +1 -1
- package/lib/text/textDomainFormatted.js +103 -28
- package/lib/text/textDomainFormatted.js.map +1 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +6 -3
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/referenceCounting.d.ts.map +1 -1
- package/lib/util/referenceCounting.js +0 -1
- package/lib/util/referenceCounting.js.map +1 -1
- package/package.json +27 -27
- package/scripts/generate-entrypoint-sources.sh +4 -2
- package/src/api.ts +11 -0
- package/src/codec/codec.ts +32 -2
- package/src/codec/index.ts +2 -3
- package/src/codec/versioned/codec.ts +99 -109
- package/src/codec/versioned/index.ts +1 -3
- package/src/core/forest/forest.ts +5 -2
- package/src/core/index.ts +4 -0
- package/src/core/rebase/changeRebaser.ts +8 -0
- package/src/core/rebase/revisionTagCodec.ts +4 -4
- package/src/core/rebase/utils.ts +9 -2
- package/src/core/schema-stored/formatV2.ts +1 -1
- package/src/core/tree/anchorSet.ts +67 -10
- package/src/core/tree/cursor.ts +52 -1
- package/src/core/tree/deltaUtil.ts +37 -1
- package/src/core/tree/detachedFieldIndexCodecs.ts +4 -4
- package/src/core/tree/index.ts +4 -0
- package/src/core/tree/visitDelta.ts +13 -1
- package/src/core/tree/visitorUtils.ts +5 -0
- package/src/entrypoints/alpha.ts +13 -6
- package/src/entrypoints/beta.ts +2 -2
- package/src/entrypoints/legacy.ts +11 -3
- package/src/entrypoints/public.ts +1 -1
- package/src/feature-libraries/changeAtomIdCodec.ts +8 -7
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +3 -2
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +18 -13
- package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +1 -1
- package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +1 -2
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +16 -10
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +16 -14
- package/src/feature-libraries/chunked-forest/codec/{formatGeneric.ts → format/formatGeneric.ts} +1 -1
- package/src/feature-libraries/chunked-forest/codec/{format.ts → format/formatV1.ts} +41 -111
- package/src/feature-libraries/chunked-forest/codec/format/formatV2.ts +31 -0
- package/src/feature-libraries/chunked-forest/codec/format/index.ts +31 -0
- package/src/feature-libraries/chunked-forest/codec/format/versions.ts +81 -0
- package/src/feature-libraries/chunked-forest/codec/index.ts +6 -2
- package/src/feature-libraries/chunked-forest/codec/nodeEncoder.ts +19 -12
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +6 -4
- package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +10 -10
- package/src/feature-libraries/chunked-forest/index.ts +2 -1
- package/src/feature-libraries/cursorComparator.ts +77 -0
- package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +5 -5
- package/src/feature-libraries/index.ts +5 -3
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +20 -10
- package/src/feature-libraries/mitigatedChangeFamily.ts +4 -1
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +4 -5
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +0 -1
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +19 -26
- package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +4 -4
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +4 -5
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +6 -2
- package/src/feature-libraries/object-forest/objectForest.ts +8 -2
- package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +11 -13
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +4 -5
- package/src/feature-libraries/schema-edits/index.ts +1 -4
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +10 -78
- package/src/feature-libraries/schema-index/codec.ts +0 -25
- package/src/feature-libraries/schema-index/formatV2.ts +1 -1
- package/src/feature-libraries/schema-index/index.ts +1 -4
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +6 -6
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +8 -5
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +4 -5
- package/src/index.ts +10 -3
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/independentView.ts +5 -18
- package/src/shared-tree/index.ts +0 -4
- package/src/shared-tree/schematizingTreeView.ts +19 -165
- package/src/shared-tree/sharedTree.ts +16 -59
- package/src/shared-tree/sharedTreeChangeCodecs.ts +23 -29
- package/src/shared-tree/sharedTreeChangeEnricher.ts +1 -2
- package/src/shared-tree/sharedTreeChangeFamily.ts +2 -0
- package/src/shared-tree/sharedTreeChangeFormat.ts +23 -8
- package/src/shared-tree/tree.ts +2 -5
- package/src/shared-tree/treeAlpha.ts +26 -0
- package/src/shared-tree/treeCheckout.ts +275 -99
- package/src/shared-tree/unhydratedTreeContext.ts +1 -1
- package/src/shared-tree-core/editManagerCodecs.ts +99 -124
- package/src/shared-tree-core/editManagerCodecsCommons.ts +0 -1
- package/src/shared-tree-core/editManagerCodecsV1toV4.ts +54 -59
- package/src/shared-tree-core/editManagerCodecsVSharedBranches.ts +72 -95
- package/src/shared-tree-core/index.ts +4 -8
- package/src/shared-tree-core/messageCodecV1ToV4.ts +56 -71
- package/src/shared-tree-core/messageCodecVSharedBranches.ts +76 -92
- package/src/shared-tree-core/messageCodecs.ts +88 -126
- package/src/shared-tree-core/messageFormat.ts +0 -3
- package/src/shared-tree-core/sharedTreeCore.ts +14 -21
- package/src/sharedTreeAttributes.ts +3 -0
- package/src/simple-tree/api/index.ts +10 -0
- package/src/simple-tree/api/schemaFactory.ts +0 -2
- package/src/simple-tree/api/schemaFactoryAlpha.ts +13 -2
- package/src/simple-tree/api/storedSchema.ts +8 -19
- package/src/simple-tree/api/tree.ts +7 -20
- package/src/simple-tree/api/treeAlpha.ts +90 -0
- package/src/simple-tree/api/treeBeta.ts +1 -1
- package/src/simple-tree/api/treeChangeEvents.ts +3 -0
- package/src/simple-tree/api/treeNodeApi.ts +95 -3
- package/src/simple-tree/core/treeNodeKernel.ts +53 -7
- package/src/simple-tree/core/unhydratedFlexTree.ts +5 -1
- package/src/simple-tree/index.ts +10 -0
- package/src/simple-tree/node-kinds/array/arrayNode.ts +64 -0
- package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +25 -1
- package/src/simple-tree/node-kinds/array/index.ts +2 -0
- package/src/simple-tree/node-kinds/index.ts +2 -0
- package/src/text/textDomainFormatted.ts +113 -11
- package/src/treeFactory.ts +10 -5
- package/src/util/referenceCounting.ts +0 -1
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts +0 -383
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +0 -1
- package/dist/feature-libraries/chunked-forest/codec/format.js +0 -191
- package/dist/feature-libraries/chunked-forest/codec/format.js.map +0 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +0 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +0 -1
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts +0 -383
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +0 -1
- package/lib/feature-libraries/chunked-forest/codec/format.js +0 -188
- package/lib/feature-libraries/chunked-forest/codec/format.js.map +0 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +0 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +0 -1
- /package/dist/feature-libraries/chunked-forest/codec/{formatGeneric.js → format/formatGeneric.js} +0 -0
- /package/lib/feature-libraries/chunked-forest/codec/{formatGeneric.js → format/formatGeneric.js} +0 -0
|
@@ -51,14 +51,10 @@ import { BranchCommitEnricher } from "./branchCommitEnricher.js";
|
|
|
51
51
|
import type { ChangeEnricher } from "./changeEnricher.js";
|
|
52
52
|
import { DefaultResubmitMachine } from "./defaultResubmitMachine.js";
|
|
53
53
|
import { EditManager, minimumPossibleSequenceNumber } from "./editManager.js";
|
|
54
|
-
import {
|
|
54
|
+
import { makeEditManagerCodecBuilder } from "./editManagerCodecs.js";
|
|
55
55
|
import type { EditManagerFormatVersion, SeqNumber } from "./editManagerFormatCommons.js";
|
|
56
56
|
import { EditManagerSummarizer } from "./editManagerSummarizer.js";
|
|
57
|
-
import {
|
|
58
|
-
type MessageCodecOptions,
|
|
59
|
-
type MessageEncodingContext,
|
|
60
|
-
makeMessageCodec,
|
|
61
|
-
} from "./messageCodecs.js";
|
|
57
|
+
import { type MessageEncodingContext, makeMessageCodecBuilder } from "./messageCodecs.js";
|
|
62
58
|
import type { MessageFormatVersion } from "./messageFormat.js";
|
|
63
59
|
import type { DecodedMessage } from "./messageTypes.js";
|
|
64
60
|
import type { ResubmitMachine } from "./resubmitMachine.js";
|
|
@@ -77,10 +73,7 @@ export interface ClonableSchemaAndPolicy extends SchemaAndPolicy {
|
|
|
77
73
|
schema: TreeStoredSchemaRepository;
|
|
78
74
|
}
|
|
79
75
|
|
|
80
|
-
export interface SharedTreeCoreOptionsInternal
|
|
81
|
-
extends CodecWriteOptions,
|
|
82
|
-
EditManagerCodecOptions,
|
|
83
|
-
MessageCodecOptions {}
|
|
76
|
+
export interface SharedTreeCoreOptionsInternal extends CodecWriteOptions {}
|
|
84
77
|
|
|
85
78
|
export interface EnrichmentConfig<TChange> {
|
|
86
79
|
readonly enricher: ChangeEnricher<TChange>;
|
|
@@ -186,12 +179,12 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
|
|
|
186
179
|
this.registerSharedBranch("main");
|
|
187
180
|
|
|
188
181
|
const revisionTagCodec = new RevisionTagCodec(idCompressor);
|
|
189
|
-
const editManagerCodec =
|
|
190
|
-
|
|
191
|
-
|
|
182
|
+
const editManagerCodec = makeEditManagerCodecBuilder<TChange>().build({
|
|
183
|
+
...options,
|
|
184
|
+
changeCodecs: this.editManager.changeFamily.codecs,
|
|
185
|
+
dependentChangeFormatVersion: changeFormatVersionForEditManager,
|
|
192
186
|
revisionTagCodec,
|
|
193
|
-
|
|
194
|
-
);
|
|
187
|
+
});
|
|
195
188
|
this.summarizables = [
|
|
196
189
|
new EditManagerSummarizer(
|
|
197
190
|
this.editManager,
|
|
@@ -207,12 +200,12 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
|
|
|
207
200
|
0x350 /* Index summary element keys must be unique */,
|
|
208
201
|
);
|
|
209
202
|
|
|
210
|
-
this.messageCodec =
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
);
|
|
203
|
+
this.messageCodec = makeMessageCodecBuilder<TChange>().build({
|
|
204
|
+
...options,
|
|
205
|
+
changeCodecs: changeFamily.codecs,
|
|
206
|
+
dependentChangeFormatVersion: changeFormatVersionForMessage,
|
|
207
|
+
revisionTagCodec: new RevisionTagCodec(idCompressor),
|
|
208
|
+
});
|
|
216
209
|
|
|
217
210
|
if (enrichmentConfig !== undefined) {
|
|
218
211
|
this.registerSharedBranchForEditing(
|
|
@@ -12,6 +12,9 @@ import { pkgVersion } from "./packageVersion.js";
|
|
|
12
12
|
* @beta
|
|
13
13
|
* @legacy
|
|
14
14
|
*/
|
|
15
|
+
// New type string, to be activated once the migration has been fully shipped dark and is safe to flip.
|
|
16
|
+
// See LegacyTypeAwareRegistry in packages/runtime/datastore/src/dataStoreRuntime.ts.
|
|
17
|
+
// export const SharedTreeFactoryType = "tree";
|
|
15
18
|
export const SharedTreeFactoryType = "https://graph.microsoft.com/types/tree";
|
|
16
19
|
|
|
17
20
|
/**
|
|
@@ -153,6 +153,16 @@ export {
|
|
|
153
153
|
TreeBeta,
|
|
154
154
|
type TreeChangeEventsBeta,
|
|
155
155
|
} from "./treeBeta.js";
|
|
156
|
+
export {
|
|
157
|
+
type ArrayNodeDeltaOp,
|
|
158
|
+
type ArrayNodeInsertOp,
|
|
159
|
+
type ArrayNodeRemoveOp,
|
|
160
|
+
type ArrayNodeRetainOp,
|
|
161
|
+
type NodeChangedDataAlpha,
|
|
162
|
+
type NodeChangedDataDelta,
|
|
163
|
+
type NodeChangedDataProperties,
|
|
164
|
+
type TreeChangeEventsAlpha,
|
|
165
|
+
} from "./treeAlpha.js";
|
|
156
166
|
export { createTreeIndex, type TreeIndexKey } from "./simpleTreeIndex.js";
|
|
157
167
|
export {
|
|
158
168
|
createIdentifierIndex,
|
|
@@ -10,8 +10,6 @@ import { isFluidHandle } from "@fluidframework/runtime-utils/internal";
|
|
|
10
10
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
11
11
|
|
|
12
12
|
import type { TreeValue } from "../../core/index.js";
|
|
13
|
-
// This import is required for intellisense in @link doc comments on mouseover in VSCode.
|
|
14
|
-
// eslint-disable-next-line unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars
|
|
15
13
|
import type { FlexTreeHydratedContextMinimal } from "../../feature-libraries/index.js";
|
|
16
14
|
import {
|
|
17
15
|
type JsonCompatibleReadOnlyObject,
|
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
import type { LeafSchema } from "../leafNodeSchema.js";
|
|
30
30
|
import {
|
|
31
31
|
type ArrayNodeCustomizableSchema,
|
|
32
|
+
type ArrayNodeCustomizableSchemaAlpha,
|
|
32
33
|
arraySchema,
|
|
33
34
|
type MapNodeCustomizableSchema,
|
|
34
35
|
mapSchema,
|
|
@@ -518,14 +519,24 @@ export class SchemaFactoryAlpha<
|
|
|
518
519
|
name: Name,
|
|
519
520
|
allowedTypes: T,
|
|
520
521
|
options?: NodeSchemaOptionsAlpha<TCustomMetadata>,
|
|
521
|
-
):
|
|
522
|
+
): ArrayNodeCustomizableSchemaAlpha<
|
|
523
|
+
ScopedSchemaName<TScope, Name>,
|
|
524
|
+
T,
|
|
525
|
+
true,
|
|
526
|
+
TCustomMetadata
|
|
527
|
+
> {
|
|
522
528
|
return arraySchema(
|
|
523
529
|
scoped<TScope, TName, Name>(this, name),
|
|
524
530
|
allowedTypes,
|
|
525
531
|
true,
|
|
526
532
|
true,
|
|
527
533
|
options ?? {},
|
|
528
|
-
)
|
|
534
|
+
) as unknown as ArrayNodeCustomizableSchemaAlpha<
|
|
535
|
+
ScopedSchemaName<TScope, Name>,
|
|
536
|
+
T,
|
|
537
|
+
true,
|
|
538
|
+
TCustomMetadata
|
|
539
|
+
>;
|
|
529
540
|
}
|
|
530
541
|
|
|
531
542
|
/**
|
|
@@ -5,17 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import type { MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
FormatValidatorNoOp,
|
|
11
|
-
type ICodecOptions,
|
|
12
|
-
} from "../../codec/index.js";
|
|
13
|
-
import { SchemaFormatVersion } from "../../core/index.js";
|
|
14
|
-
import { makeSchemaCodec } from "../../feature-libraries/index.js";
|
|
15
|
-
import type {
|
|
16
|
-
FormatV1,
|
|
17
|
-
// eslint-disable-next-line import-x/no-internal-modules
|
|
18
|
-
} from "../../feature-libraries/schema-index/index.js";
|
|
8
|
+
import { FormatValidatorNoOp, type ICodecOptions } from "../../codec/index.js";
|
|
9
|
+
import { schemaCodecBuilder } from "../../feature-libraries/index.js";
|
|
19
10
|
import type { JsonCompatible } from "../../util/index.js";
|
|
20
11
|
import type { SchemaUpgrade } from "../core/index.js";
|
|
21
12
|
import { normalizeFieldSchema, type ImplicitFieldSchema } from "../fieldSchema.js";
|
|
@@ -63,7 +54,10 @@ export function extractPersistedSchema(
|
|
|
63
54
|
includeStaged: (upgrade: SchemaUpgrade) => boolean,
|
|
64
55
|
): JsonCompatible {
|
|
65
56
|
const stored = toStoredSchema(schema, { includeStaged });
|
|
66
|
-
const codec =
|
|
57
|
+
const codec = schemaCodecBuilder.build({
|
|
58
|
+
minVersionForCollab,
|
|
59
|
+
jsonValidator: FormatValidatorNoOp,
|
|
60
|
+
});
|
|
67
61
|
return codec.encode(stored) as JsonCompatible;
|
|
68
62
|
}
|
|
69
63
|
|
|
@@ -102,13 +96,8 @@ export function comparePersistedSchema(
|
|
|
102
96
|
view: ImplicitFieldSchema,
|
|
103
97
|
options: ICodecOptions,
|
|
104
98
|
): Omit<SchemaCompatibilityStatus, "canInitialize"> {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const schemaCodec = makeSchemaCodec(
|
|
108
|
-
{ ...options, minVersionForCollab: FluidClientVersion.v2_0 },
|
|
109
|
-
SchemaFormatVersion.v1,
|
|
110
|
-
);
|
|
111
|
-
const stored = schemaCodec.decode(persisted as FormatV1);
|
|
99
|
+
const schemaCodec = schemaCodecBuilder.buildDecoder(options);
|
|
100
|
+
const stored = schemaCodec.decode(persisted);
|
|
112
101
|
const config = new TreeViewConfigurationAlpha({
|
|
113
102
|
schema: normalizeFieldSchema(view),
|
|
114
103
|
});
|
|
@@ -136,6 +136,8 @@ export interface ITreeAlpha extends ITree {
|
|
|
136
136
|
* @remarks A `TreeBranch` allows for the {@link TreeBranch.fork | creation of branches} and for those branches to later be {@link TreeBranch.merge | merged}.
|
|
137
137
|
*
|
|
138
138
|
* The branch associated directly with the {@link ITree | SharedTree} is the "main" branch, and all other branches fork (directly or transitively) from that main branch.
|
|
139
|
+
*
|
|
140
|
+
* See {@link TreeBranchAlpha} for additional APIs that are in an earlier stage of development.
|
|
139
141
|
* @sealed @beta
|
|
140
142
|
*/
|
|
141
143
|
export interface TreeBranch extends IDisposable {
|
|
@@ -352,6 +354,8 @@ export interface TreeBranchAlpha extends TreeBranch, TreeContextAlpha {
|
|
|
352
354
|
* Application authors are encouraged to read {@link https://github.com/microsoft/FluidFramework/blob/main/packages/dds/tree/docs/user-facing/schema-evolution.md | schema-evolution.md}
|
|
353
355
|
* and choose a schema compatibility policy that aligns with their application's needs.
|
|
354
356
|
*
|
|
357
|
+
* See also {@link TreeViewAlpha}, {@link TreeViewBeta} and {@link TreeBranch} for additional APIs that are in earlier stages of development.
|
|
358
|
+
*
|
|
355
359
|
* @privateRemarks
|
|
356
360
|
* From an API design perspective, `upgradeSchema` could be merged into `viewWith` and/or `viewWith` could return errors explicitly on incompatible documents.
|
|
357
361
|
* Such approaches would make it discoverable that out of schema handling may need to be done.
|
|
@@ -559,7 +563,7 @@ export interface SchemaCompatibilityStatus {
|
|
|
559
563
|
* Events for {@link TreeBranch}.
|
|
560
564
|
* @sealed @alpha
|
|
561
565
|
*/
|
|
562
|
-
export interface TreeBranchEvents
|
|
566
|
+
export interface TreeBranchEvents {
|
|
563
567
|
/**
|
|
564
568
|
* Fired when a change is made to the branch. Includes data about the change that is made which listeners
|
|
565
569
|
* can use to filter on changes they care about (e.g. local vs. remote changes).
|
|
@@ -569,29 +573,12 @@ export interface TreeBranchEvents extends Omit<TreeViewEvents, "commitApplied">
|
|
|
569
573
|
* this change is not revertible.
|
|
570
574
|
*/
|
|
571
575
|
changed(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
|
|
572
|
-
|
|
573
|
-
/**
|
|
574
|
-
* Fired when:
|
|
575
|
-
*
|
|
576
|
-
* - a local commit is applied outside of a transaction
|
|
577
|
-
*
|
|
578
|
-
* - a local transaction is committed
|
|
579
|
-
*
|
|
580
|
-
* The event is not fired when:
|
|
581
|
-
*
|
|
582
|
-
* - a local commit is applied within a transaction
|
|
583
|
-
*
|
|
584
|
-
* - a remote commit is applied
|
|
585
|
-
*
|
|
586
|
-
* @param data - information about the commit that was applied
|
|
587
|
-
* @param getRevertible - a function provided that allows users to get a revertible for the commit that was applied. If not provided,
|
|
588
|
-
* this commit is not revertible.
|
|
589
|
-
*/
|
|
590
|
-
commitApplied(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
|
|
591
576
|
}
|
|
592
577
|
|
|
593
578
|
/**
|
|
594
579
|
* Events for {@link TreeView}.
|
|
580
|
+
* @remarks
|
|
581
|
+
* See {@link TreeBranchEvents} for more events related to the underlying branch of the SharedTree.
|
|
595
582
|
* @sealed @public
|
|
596
583
|
*/
|
|
597
584
|
export interface TreeViewEvents {
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { NodeKind, TreeNode, WithType } from "../core/index.js";
|
|
7
|
+
|
|
8
|
+
import type { TreeChangeEvents } from "./treeChangeEvents.js";
|
|
9
|
+
export type {
|
|
10
|
+
ArrayNodeDeltaOp,
|
|
11
|
+
ArrayNodeInsertOp,
|
|
12
|
+
ArrayNodeRemoveOp,
|
|
13
|
+
ArrayNodeRetainOp,
|
|
14
|
+
} from "./treeNodeApi.js";
|
|
15
|
+
import type { ArrayNodeDeltaOp } from "./treeNodeApi.js";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Data included for {@link TreeChangeEventsAlpha.nodeChanged} when the node is an object, map, or record node.
|
|
19
|
+
* @sealed @alpha
|
|
20
|
+
*/
|
|
21
|
+
export interface NodeChangedDataProperties<TNode extends TreeNode = TreeNode> {
|
|
22
|
+
/**
|
|
23
|
+
* Lists all the properties which changed on the node.
|
|
24
|
+
* @remarks
|
|
25
|
+
* This only includes changes to the node itself (which would trigger {@link TreeChangeEvents.nodeChanged}).
|
|
26
|
+
*
|
|
27
|
+
* The set should never be empty, since `nodeChanged` will only be triggered when there is a change, and for the supported node types, the only things that can change are properties.
|
|
28
|
+
*/
|
|
29
|
+
readonly changedProperties: ReadonlySet<
|
|
30
|
+
// For Object nodes, strongly type with the property names from the schema:
|
|
31
|
+
TNode extends WithType<string, NodeKind.Object, infer TInfo>
|
|
32
|
+
? string & keyof TInfo
|
|
33
|
+
: string
|
|
34
|
+
>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Data included for {@link TreeChangeEventsAlpha.nodeChanged} when the node is an array node.
|
|
39
|
+
* @sealed @alpha
|
|
40
|
+
*/
|
|
41
|
+
export interface NodeChangedDataDelta {
|
|
42
|
+
/**
|
|
43
|
+
* The sequential operations describing what changed in the array node.
|
|
44
|
+
* @remarks
|
|
45
|
+
* The value may be `undefined` in two cases:
|
|
46
|
+
* - The node was created locally and has not yet been inserted into a document tree (a known
|
|
47
|
+
* temporary limitation, tracked in AB#63261).
|
|
48
|
+
* - The document was updated in a way that required multiple internal change passes in a single
|
|
49
|
+
* operation (for example, a data change combined with a schema upgrade).
|
|
50
|
+
*
|
|
51
|
+
* See {@link ArrayNodeDeltaOp} for op semantics.
|
|
52
|
+
*/
|
|
53
|
+
readonly delta: readonly ArrayNodeDeltaOp[] | undefined;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The data passed to {@link TreeChangeEventsAlpha.nodeChanged}.
|
|
58
|
+
* @remarks
|
|
59
|
+
* - For array nodes: {@link NodeChangedDataDelta} (includes a {@link NodeChangedDataDelta.delta | delta} payload).
|
|
60
|
+
* - For object, map, and record nodes: {@link NodeChangedDataProperties} (includes {@link NodeChangedDataProperties.changedProperties | changedProperties}).
|
|
61
|
+
* - For a generic/unknown node type: the union of both.
|
|
62
|
+
* @alpha
|
|
63
|
+
*/
|
|
64
|
+
export type NodeChangedDataAlpha<TNode extends TreeNode = TreeNode> =
|
|
65
|
+
TNode extends WithType<string, NodeKind.Array>
|
|
66
|
+
? NodeChangedDataDelta
|
|
67
|
+
: TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record>
|
|
68
|
+
? NodeChangedDataProperties<TNode>
|
|
69
|
+
: NodeChangedDataProperties<TNode> | NodeChangedDataDelta;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Extension of {@link TreeChangeEvents} with a richer `nodeChanged` event.
|
|
73
|
+
* @remarks
|
|
74
|
+
* Provides a `nodeChanged` event that includes a delta payload for array nodes and
|
|
75
|
+
* requires `changedProperties` for object, map, and record nodes.
|
|
76
|
+
* Use via `TreeAlpha.on`.
|
|
77
|
+
* @sealed @alpha
|
|
78
|
+
*/
|
|
79
|
+
export interface TreeChangeEventsAlpha<TNode extends TreeNode = TreeNode>
|
|
80
|
+
extends TreeChangeEvents {
|
|
81
|
+
/**
|
|
82
|
+
* Like `TreeChangeEventsBeta.nodeChanged`, but for array nodes the event data includes
|
|
83
|
+
* a {@link NodeChangedDataDelta.delta | delta} payload describing the changes as a sequence
|
|
84
|
+
* of {@link ArrayNodeDeltaOp} values.
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* This defines a property which is a function instead of using the method syntax to avoid function bi-variance issues with the input data to the callback.
|
|
88
|
+
*/
|
|
89
|
+
nodeChanged: (data: NodeChangedDataAlpha<TNode>) => void;
|
|
90
|
+
}
|
|
@@ -54,7 +54,7 @@ export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
|
54
54
|
* @remarks
|
|
55
55
|
* This only includes changes to the node itself (which would trigger {@link TreeChangeEvents.nodeChanged}).
|
|
56
56
|
*
|
|
57
|
-
*
|
|
57
|
+
* Not present when the {@link NodeKind} does not support this feature (currently just ArrayNodes).
|
|
58
58
|
*
|
|
59
59
|
* When defined, the set should never be empty, since `nodeChanged` will only be triggered when there is a change, and for the supported node types, the only things that can change are properties.
|
|
60
60
|
*/
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* A collection of events that can be emitted by a {@link TreeNode}.
|
|
8
8
|
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* Access these events via the {@link (Tree:variable)}'s {@link TreeNodeApi.on} method.
|
|
11
|
+
*
|
|
9
12
|
* @privateRemarks
|
|
10
13
|
* TODO: add a way to subscribe to a specific field (for nodeChanged and treeChanged).
|
|
11
14
|
* Probably have object node and map node specific APIs for this.
|
|
@@ -8,7 +8,7 @@ import { assert, oob, fail, unreachableCase } from "@fluidframework/core-utils/i
|
|
|
8
8
|
import { isFluidHandle } from "@fluidframework/runtime-utils/internal";
|
|
9
9
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
10
10
|
|
|
11
|
-
import { EmptyKey, rootFieldKey } from "../../core/index.js";
|
|
11
|
+
import { EmptyKey, rootFieldKey, type DeltaMark } from "../../core/index.js";
|
|
12
12
|
import { type TreeStatus, isTreeValue, FieldKinds } from "../../feature-libraries/index.js";
|
|
13
13
|
import { extractFromOpaque } from "../../util/index.js";
|
|
14
14
|
import {
|
|
@@ -39,6 +39,56 @@ import { isArrayNodeSchema, isObjectNodeSchema } from "../node-kinds/index.js";
|
|
|
39
39
|
|
|
40
40
|
import type { TreeChangeEvents } from "./treeChangeEvents.js";
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* A `"retain"` op in an {@link ArrayNodeDeltaOp} sequence.
|
|
44
|
+
* Represents elements that were not added or removed (though they may have nested changes).
|
|
45
|
+
* @sealed @alpha
|
|
46
|
+
*/
|
|
47
|
+
export interface ArrayNodeRetainOp {
|
|
48
|
+
readonly type: "retain";
|
|
49
|
+
readonly count: number;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* An `"insert"` op in an {@link ArrayNodeDeltaOp} sequence.
|
|
54
|
+
* Represents elements added to the array.
|
|
55
|
+
* Read the new element values from the current tree at the positions described by this op.
|
|
56
|
+
* @sealed @alpha
|
|
57
|
+
*/
|
|
58
|
+
export interface ArrayNodeInsertOp {
|
|
59
|
+
readonly type: "insert";
|
|
60
|
+
readonly count: number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A `"remove"` op in an {@link ArrayNodeDeltaOp} sequence.
|
|
65
|
+
* Represents elements removed from the array.
|
|
66
|
+
* @sealed @alpha
|
|
67
|
+
*/
|
|
68
|
+
export interface ArrayNodeRemoveOp {
|
|
69
|
+
readonly type: "remove";
|
|
70
|
+
readonly count: number;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* A single operation in an array node change delta. Used to efficiently sync an external
|
|
75
|
+
* representation of an array (e.g. a text editor or virtual list) with tree changes without
|
|
76
|
+
* needing to snapshot the old state or diff the entire array. Each op describes a contiguous run
|
|
77
|
+
* of positions in the array before the change. For inserts, read the new element values from the
|
|
78
|
+
* current tree at those positions.
|
|
79
|
+
*
|
|
80
|
+
* @remarks
|
|
81
|
+
* There is no dedicated `"move"` op. Moves are represented as `"remove"` + `"insert"`.
|
|
82
|
+
* When an element is moved within the same array it appears
|
|
83
|
+
* as a `"remove"` at the source position followed by an `"insert"` at the destination position.
|
|
84
|
+
* When an element is moved across two different arrays, the source array's delta contains a
|
|
85
|
+
* `"remove"` and the destination array's delta contains an `"insert"` — they cannot be
|
|
86
|
+
* correlated without additional bookkeeping on the caller's side.
|
|
87
|
+
*
|
|
88
|
+
* @sealed @alpha
|
|
89
|
+
*/
|
|
90
|
+
export type ArrayNodeDeltaOp = ArrayNodeRetainOp | ArrayNodeInsertOp | ArrayNodeRemoveOp;
|
|
91
|
+
|
|
42
92
|
/**
|
|
43
93
|
* Provides various functions for analyzing {@link TreeNode}s.
|
|
44
94
|
*
|
|
@@ -105,6 +155,9 @@ export interface TreeNodeApi {
|
|
|
105
155
|
* @param listener - The callback to trigger for the event. The tree can be read during the callback, but it is invalid to modify the tree during this callback.
|
|
106
156
|
* @returns A callback function which will deregister the event.
|
|
107
157
|
* This callback should be called only once.
|
|
158
|
+
* @remarks
|
|
159
|
+
* The returned unsubscribe function should be called any time the need for the `listener` callback ends before the node is {@link TreeStatus.Deleted | deleted} (Not just {@link TreeStatus.Removed | removed}).
|
|
160
|
+
* Doing so removes the overhead of tracking and triggering the event, and also avoids leaking any memory retained by the callback.
|
|
108
161
|
*/
|
|
109
162
|
on<K extends keyof TreeChangeEvents>(
|
|
110
163
|
node: TreeNode,
|
|
@@ -192,8 +245,17 @@ export const treeNodeApi: TreeNodeApi = {
|
|
|
192
245
|
listener({ changedProperties });
|
|
193
246
|
});
|
|
194
247
|
} else if (isArrayNodeSchema(nodeSchema)) {
|
|
195
|
-
return kernel.events.on("childrenChangedAfterBatch", () => {
|
|
196
|
-
|
|
248
|
+
return kernel.events.on("childrenChangedAfterBatch", ({ fieldMarks }) => {
|
|
249
|
+
const marks = fieldMarks.get(EmptyKey);
|
|
250
|
+
// `marks` is undefined when the field was modified across multiple batches
|
|
251
|
+
// within a single flush (e.g. due to an interleaved schema change) and the
|
|
252
|
+
// marks could not be composed. Emit `undefined` so callers know the delta is
|
|
253
|
+
// unavailable rather than receiving stale marks from only the first batch.
|
|
254
|
+
// TODO: Once the eventing stack is rewritten to walk the composed delta at
|
|
255
|
+
// flush time, `marks` will always be defined. Remove the `undefined` fallback
|
|
256
|
+
// and simplify to: `const delta = deltaMarksToArrayOps(marks);`
|
|
257
|
+
const delta = marks === undefined ? undefined : deltaMarksToArrayOps(marks);
|
|
258
|
+
listener({ delta });
|
|
197
259
|
});
|
|
198
260
|
} else {
|
|
199
261
|
return kernel.events.on("childrenChangedAfterBatch", ({ changedFields }) => {
|
|
@@ -234,6 +296,36 @@ export const treeNodeApi: TreeNodeApi = {
|
|
|
234
296
|
},
|
|
235
297
|
};
|
|
236
298
|
|
|
299
|
+
/**
|
|
300
|
+
* Converts an array of internal {@link DeltaMark}s for a sequence field into sequential
|
|
301
|
+
* array delta ops suitable for inclusion in {@link NodeChangedData.delta}.
|
|
302
|
+
*
|
|
303
|
+
* Each mark in the delta describes a contiguous run of positions in the original array:
|
|
304
|
+
* - A mark with only `count` (no attach/detach) → `"retain"` (elements unchanged at this level)
|
|
305
|
+
* - A mark with only `attach` → `"insert"` (new elements added)
|
|
306
|
+
* - A mark with only `detach` → `"remove"` (elements removed)
|
|
307
|
+
* - A mark with both `attach` and `detach` → `"remove"` + `"insert"`
|
|
308
|
+
*
|
|
309
|
+
* @privateRemarks
|
|
310
|
+
* The case where both `attach` and `detach` are set is unreachable today: the sequence-field
|
|
311
|
+
* encoder never emits such marks for array (EmptyKey) fields. It is handled defensively.
|
|
312
|
+
*/
|
|
313
|
+
function deltaMarksToArrayOps(marks: readonly DeltaMark[]): ArrayNodeDeltaOp[] {
|
|
314
|
+
const ops: ArrayNodeDeltaOp[] = [];
|
|
315
|
+
for (const mark of marks) {
|
|
316
|
+
if (mark.detach !== undefined) {
|
|
317
|
+
ops.push({ type: "remove", count: mark.count });
|
|
318
|
+
}
|
|
319
|
+
if (mark.attach !== undefined) {
|
|
320
|
+
ops.push({ type: "insert", count: mark.count });
|
|
321
|
+
} else if (mark.detach === undefined) {
|
|
322
|
+
// Neither attach nor detach: elements retained (may have nested changes in mark.fields).
|
|
323
|
+
ops.push({ type: "retain", count: mark.count });
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return ops;
|
|
327
|
+
}
|
|
328
|
+
|
|
237
329
|
/**
|
|
238
330
|
* Returns a schema for a value if the value is a {@link TreeNode} or a {@link TreeLeafValue}.
|
|
239
331
|
* Returns undefined for other values.
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
anchorSlot,
|
|
18
18
|
type AnchorEvents,
|
|
19
19
|
type AnchorNode,
|
|
20
|
+
type DeltaMark,
|
|
20
21
|
type FieldKey,
|
|
21
22
|
type TreeValue,
|
|
22
23
|
} from "../../core/index.js";
|
|
@@ -362,6 +363,20 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
|
|
|
362
363
|
*/
|
|
363
364
|
readonly #childrenChangedBuffer: Set<FieldKey> = new Set();
|
|
364
365
|
|
|
366
|
+
/**
|
|
367
|
+
* Buffer of field marks accumulated since events were paused.
|
|
368
|
+
* Emitted alongside the buffered changed-fields set when flushed.
|
|
369
|
+
*/
|
|
370
|
+
readonly #fieldMarksBuffer: Map<FieldKey, readonly DeltaMark[]> = new Map();
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Fields whose marks have been permanently invalidated within the current buffer window due to
|
|
374
|
+
* two or more separate delta batches touching the same field.
|
|
375
|
+
* Once a key is in this set it must never be re-added to the marks buffer, even if
|
|
376
|
+
* a third (or later) batch arrives for that field.
|
|
377
|
+
*/
|
|
378
|
+
readonly #invalidatedFieldMarkKeys: Set<FieldKey> = new Set();
|
|
379
|
+
|
|
365
380
|
/**
|
|
366
381
|
* Whether or not the subtree has changed since events were paused.
|
|
367
382
|
* When events are flushed, a single {@link AnchorEvents.subTreeChanged} event will be emitted if and only
|
|
@@ -399,8 +414,10 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
|
|
|
399
414
|
this.#eventSource = newSource;
|
|
400
415
|
|
|
401
416
|
if (this.#events.hasListeners("childrenChangedAfterBatch")) {
|
|
402
|
-
const off = this.#eventSource.on(
|
|
403
|
-
|
|
417
|
+
const off = this.#eventSource.on(
|
|
418
|
+
"childrenChangedAfterBatch",
|
|
419
|
+
({ changedFields, fieldMarks }) =>
|
|
420
|
+
this.#emit("childrenChangedAfterBatch", { changedFields, fieldMarks }),
|
|
404
421
|
);
|
|
405
422
|
this.#disposeSourceListeners.set("childrenChangedAfterBatch", off);
|
|
406
423
|
}
|
|
@@ -421,7 +438,10 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
|
|
|
421
438
|
0xc4f /* Should not have a dispose function without listeners */,
|
|
422
439
|
);
|
|
423
440
|
|
|
424
|
-
const off =
|
|
441
|
+
const off: Off =
|
|
442
|
+
eventName === "childrenChangedAfterBatch"
|
|
443
|
+
? this.#eventSource.on(eventName, (args) => this.#emit(eventName, args))
|
|
444
|
+
: this.#eventSource.on(eventName, () => this.#emit(eventName));
|
|
425
445
|
this.#disposeSourceListeners.set(eventName, off);
|
|
426
446
|
}
|
|
427
447
|
|
|
@@ -444,13 +464,14 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
|
|
|
444
464
|
eventName: keyof KernelEvents,
|
|
445
465
|
arg?: {
|
|
446
466
|
changedFields: ReadonlySet<FieldKey>;
|
|
467
|
+
fieldMarks: ReadonlyMap<FieldKey, readonly DeltaMark[]>;
|
|
447
468
|
},
|
|
448
469
|
): void {
|
|
449
470
|
this.#assertNotDisposed();
|
|
450
471
|
switch (eventName) {
|
|
451
472
|
case "childrenChangedAfterBatch": {
|
|
452
|
-
assert(arg !== undefined,
|
|
453
|
-
return this.#handleChildrenChangedAfterBatch(arg.changedFields);
|
|
473
|
+
assert(arg !== undefined, 0xcea /* childrenChangedAfterBatch requires arg */);
|
|
474
|
+
return this.#handleChildrenChangedAfterBatch(arg.changedFields, arg.fieldMarks);
|
|
454
475
|
}
|
|
455
476
|
case "subtreeChangedAfterBatch": {
|
|
456
477
|
return this.#handleSubtreeChangedAfterBatch();
|
|
@@ -461,13 +482,33 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
|
|
|
461
482
|
}
|
|
462
483
|
}
|
|
463
484
|
|
|
464
|
-
#handleChildrenChangedAfterBatch(
|
|
485
|
+
#handleChildrenChangedAfterBatch(
|
|
486
|
+
changedFields: ReadonlySet<FieldKey>,
|
|
487
|
+
fieldMarks: ReadonlyMap<FieldKey, readonly DeltaMark[]>,
|
|
488
|
+
): void {
|
|
465
489
|
if (bufferTreeEvents) {
|
|
466
490
|
for (const fieldKey of changedFields) {
|
|
467
491
|
this.#childrenChangedBuffer.add(fieldKey);
|
|
468
492
|
}
|
|
493
|
+
for (const [key, marks] of fieldMarks) {
|
|
494
|
+
if (this.#invalidatedFieldMarkKeys.has(key)) {
|
|
495
|
+
// Already permanently invalidated by an earlier collision; ignore this batch too.
|
|
496
|
+
// TODO: Once the eventing stack is rewritten to walk the composed delta at flush
|
|
497
|
+
// time, this collision path will be unreachable and can be removed entirely.
|
|
498
|
+
continue;
|
|
499
|
+
}
|
|
500
|
+
if (this.#fieldMarksBuffer.has(key)) {
|
|
501
|
+
// A second batch of marks arrived for the same field before the buffer was flushed.
|
|
502
|
+
// We have no delta composition logic, so permanently invalidate this field so that
|
|
503
|
+
// any further batches are also discarded rather than incorrectly surfaced.
|
|
504
|
+
this.#fieldMarksBuffer.delete(key);
|
|
505
|
+
this.#invalidatedFieldMarkKeys.add(key);
|
|
506
|
+
} else {
|
|
507
|
+
this.#fieldMarksBuffer.set(key, marks);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
469
510
|
} else {
|
|
470
|
-
this.#events.emit("childrenChangedAfterBatch", { changedFields });
|
|
511
|
+
this.#events.emit("childrenChangedAfterBatch", { changedFields, fieldMarks });
|
|
471
512
|
}
|
|
472
513
|
}
|
|
473
514
|
|
|
@@ -488,8 +529,11 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
|
|
|
488
529
|
if (this.#childrenChangedBuffer.size > 0) {
|
|
489
530
|
this.#events.emit("childrenChangedAfterBatch", {
|
|
490
531
|
changedFields: this.#childrenChangedBuffer,
|
|
532
|
+
fieldMarks: this.#fieldMarksBuffer,
|
|
491
533
|
});
|
|
492
534
|
this.#childrenChangedBuffer.clear();
|
|
535
|
+
this.#fieldMarksBuffer.clear();
|
|
536
|
+
this.#invalidatedFieldMarkKeys.clear();
|
|
493
537
|
}
|
|
494
538
|
|
|
495
539
|
if (this.#subTreeChangedBuffer) {
|
|
@@ -519,6 +563,8 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
|
|
|
519
563
|
this.#disposeSourceListeners.clear();
|
|
520
564
|
|
|
521
565
|
this.#childrenChangedBuffer.clear();
|
|
566
|
+
this.#fieldMarksBuffer.clear();
|
|
567
|
+
this.#invalidatedFieldMarkKeys.clear();
|
|
522
568
|
this.#subTreeChangedBuffer = false;
|
|
523
569
|
|
|
524
570
|
this.#disposed = true;
|
|
@@ -271,7 +271,11 @@ export class UnhydratedFlexTreeNode
|
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
public emitChangedEvent(key: FieldKey): void {
|
|
274
|
-
this._events.emit("childrenChangedAfterBatch", {
|
|
274
|
+
this._events.emit("childrenChangedAfterBatch", {
|
|
275
|
+
changedFields: new Set([key]),
|
|
276
|
+
// Unhydrated nodes are not visited by the delta pipeline, so no field marks are available.
|
|
277
|
+
fieldMarks: new Map(),
|
|
278
|
+
});
|
|
275
279
|
|
|
276
280
|
// Also emit subtree changed event for this node and all ancestors.
|
|
277
281
|
this.#emitSubtreeChangedEvents();
|
package/src/simple-tree/index.ts
CHANGED
|
@@ -91,12 +91,20 @@ export {
|
|
|
91
91
|
singletonSchema,
|
|
92
92
|
treeNodeApi,
|
|
93
93
|
type TreeNodeApi,
|
|
94
|
+
type ArrayNodeDeltaOp,
|
|
95
|
+
type ArrayNodeInsertOp,
|
|
96
|
+
type ArrayNodeRemoveOp,
|
|
97
|
+
type ArrayNodeRetainOp,
|
|
94
98
|
type NodeChangedData,
|
|
99
|
+
type NodeChangedDataAlpha,
|
|
100
|
+
type NodeChangedDataDelta,
|
|
101
|
+
type NodeChangedDataProperties,
|
|
95
102
|
borrowCursorFromTreeNodeOrValue,
|
|
96
103
|
exportConcise,
|
|
97
104
|
importConcise,
|
|
98
105
|
TreeBeta,
|
|
99
106
|
type TreeChangeEventsBeta,
|
|
107
|
+
type TreeChangeEventsAlpha,
|
|
100
108
|
type IdentifierIndex,
|
|
101
109
|
createTreeIndex,
|
|
102
110
|
createIdentifierIndex,
|
|
@@ -248,6 +256,7 @@ export {
|
|
|
248
256
|
export { tryGetTreeNodeForField } from "./getTreeNodeForField.js";
|
|
249
257
|
export {
|
|
250
258
|
type ArrayNodeCustomizableSchema,
|
|
259
|
+
type ArrayNodeCustomizableSchemaAlpha,
|
|
251
260
|
type ArrayNodePojoEmulationSchema,
|
|
252
261
|
ArrayNodeSchema,
|
|
253
262
|
asIndex,
|
|
@@ -255,6 +264,7 @@ export {
|
|
|
255
264
|
IterableTreeArrayContent,
|
|
256
265
|
type ReadonlyArrayNode,
|
|
257
266
|
TreeArrayNode,
|
|
267
|
+
type TreeArrayNodeAlpha,
|
|
258
268
|
type MapNodeCustomizableSchema,
|
|
259
269
|
type MapNodePojoEmulationSchema,
|
|
260
270
|
MapNodeSchema,
|