@fluidframework/tree 2.90.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 +365 -0
- package/alpha.d.ts +2 -2
- package/api-extractor/api-extractor-lint-alpha.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-alpha.esm.json +1 -1
- package/api-extractor/api-extractor-lint-beta.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-beta.esm.json +1 -1
- package/api-extractor/api-extractor-lint-bundle.json +1 -1
- package/api-extractor/api-extractor-lint-legacy.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-legacy.esm.json +1 -1
- package/api-extractor/api-extractor-lint-public.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-public.esm.json +1 -1
- package/api-extractor/api-extractor.current.json +1 -1
- package/api-extractor/api-extractor.legacy.json +2 -1
- package/api-extractor.json +1 -0
- package/api-report/tree.alpha.api.md +141 -37
- package/beta.d.ts +2 -2
- 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 +6 -0
- package/dist/entrypoints/alpha.d.ts.map +1 -0
- package/dist/entrypoints/alpha.js +91 -0
- package/dist/entrypoints/alpha.js.map +1 -0
- package/dist/entrypoints/beta.d.ts +6 -0
- package/dist/entrypoints/beta.d.ts.map +1 -0
- package/dist/entrypoints/beta.js +43 -0
- package/dist/entrypoints/beta.js.map +1 -0
- package/dist/entrypoints/internal.d.ts +6 -0
- package/dist/entrypoints/internal.d.ts.map +1 -0
- package/dist/entrypoints/internal.js +28 -0
- package/dist/entrypoints/internal.js.map +1 -0
- package/dist/entrypoints/legacy.d.ts +6 -0
- package/dist/entrypoints/legacy.d.ts.map +1 -0
- package/dist/entrypoints/legacy.js +49 -0
- package/dist/entrypoints/legacy.js.map +1 -0
- package/dist/entrypoints/public.d.ts +6 -0
- package/dist/entrypoints/public.d.ts.map +1 -0
- package/dist/entrypoints/public.js +27 -0
- package/dist/entrypoints/public.js.map +1 -0
- 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/crossFieldQueries.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +1 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -6
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.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 +11 -6
- 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/moveEffectTable.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.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 +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -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 -677
- 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/eraseSchemaDetails.d.ts +43 -0
- package/dist/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
- package/dist/simple-tree/api/eraseSchemaDetails.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +4 -2
- 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 +126 -29
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +72 -7
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/dist/simple-tree/api/schemaStatics.d.ts +10 -11
- package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaStatics.js +13 -7
- package/dist/simple-tree/api/schemaStatics.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/api/typesUnsafe.d.ts +23 -2
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.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/fieldSchema.d.ts +3 -2
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +3 -4
- package/dist/simple-tree/fieldSchema.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 +2 -2
- 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/simple-tree/node-kinds/object/index.d.ts +2 -2
- package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts +43 -7
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +26 -2
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/dist/text/textDomainFormatted.d.ts +321 -13
- 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/rangeMap.d.ts +25 -18
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +24 -30
- package/dist/util/rangeMap.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/dist/util/typeCheck.d.ts.map +1 -1
- package/dist/util/typeCheck.js.map +1 -1
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/eslint.config.mts +10 -2
- package/internal.d.ts +2 -2
- package/legacy.d.ts +2 -2
- 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 +6 -0
- package/lib/entrypoints/alpha.d.ts.map +1 -0
- package/lib/entrypoints/alpha.js +12 -0
- package/lib/entrypoints/alpha.js.map +1 -0
- package/lib/entrypoints/beta.d.ts +6 -0
- package/lib/entrypoints/beta.d.ts.map +1 -0
- package/lib/entrypoints/beta.js +12 -0
- package/lib/entrypoints/beta.js.map +1 -0
- package/lib/entrypoints/internal.d.ts +6 -0
- package/lib/entrypoints/internal.d.ts.map +1 -0
- package/lib/entrypoints/internal.js +12 -0
- package/lib/entrypoints/internal.js.map +1 -0
- package/lib/entrypoints/legacy.d.ts +6 -0
- package/lib/entrypoints/legacy.d.ts.map +1 -0
- package/lib/entrypoints/legacy.js +15 -0
- package/lib/entrypoints/legacy.js.map +1 -0
- package/lib/entrypoints/public.d.ts +6 -0
- package/lib/entrypoints/public.d.ts.map +1 -0
- package/lib/entrypoints/public.js +10 -0
- package/lib/entrypoints/public.js.map +1 -0
- 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/crossFieldQueries.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +1 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -6
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.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 +11 -6
- 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/moveEffectTable.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.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 +8 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +9 -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 -682
- 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/eraseSchemaDetails.d.ts +43 -0
- package/lib/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
- package/lib/simple-tree/api/eraseSchemaDetails.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +4 -2
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +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 +126 -29
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +66 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/lib/simple-tree/api/schemaStatics.d.ts +10 -11
- package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaStatics.js +14 -8
- package/lib/simple-tree/api/schemaStatics.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/api/typesUnsafe.d.ts +23 -2
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.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/fieldSchema.d.ts +3 -2
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +3 -4
- package/lib/simple-tree/fieldSchema.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 +2 -2
- 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/simple-tree/node-kinds/object/index.d.ts +2 -2
- package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts +43 -7
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +26 -2
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/lib/text/textDomainFormatted.d.ts +321 -13
- 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/rangeMap.d.ts +25 -18
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +25 -31
- package/lib/util/rangeMap.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/lib/util/typeCheck.d.ts.map +1 -1
- package/lib/util/typeCheck.js.map +1 -1
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +50 -50
- package/scripts/generate-entrypoint-sources.sh +31 -0
- 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/{dist/alpha.d.ts → src/entrypoints/alpha.ts} +25 -11
- package/{lib/beta.d.ts → src/entrypoints/beta.ts} +4 -7
- package/src/entrypoints/internal.ts +13 -0
- package/{lib/legacy.d.ts → src/entrypoints/legacy.ts} +13 -8
- package/{dist/public.d.ts → src/entrypoints/public.ts} +3 -6
- 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/crossFieldQueries.ts +3 -8
- package/src/feature-libraries/modular-schema/defaultRevisionReplacer.ts +16 -8
- 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 +15 -6
- 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/moveEffectTable.ts +1 -1
- 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 +29 -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 +277 -100
- 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/eraseSchemaDetails.ts +60 -0
- package/src/simple-tree/api/index.ts +22 -1
- package/src/simple-tree/api/schemaFactory.ts +8 -3
- package/src/simple-tree/api/schemaFactoryAlpha.ts +275 -27
- package/src/simple-tree/api/schemaFactoryBeta.ts +10 -1
- package/src/simple-tree/api/schemaStatics.ts +79 -21
- 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/api/typesUnsafe.ts +49 -1
- package/src/simple-tree/core/treeNodeKernel.ts +53 -7
- package/src/simple-tree/core/unhydratedFlexTree.ts +5 -1
- package/src/simple-tree/fieldSchema.ts +29 -5
- package/src/simple-tree/index.ts +20 -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 +5 -0
- package/src/simple-tree/node-kinds/object/index.ts +3 -0
- package/src/simple-tree/node-kinds/object/objectNode.ts +69 -11
- package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +33 -2
- package/src/text/textDomainFormatted.ts +113 -11
- package/src/treeFactory.ts +10 -5
- package/src/util/rangeMap.ts +54 -50
- package/src/util/referenceCounting.ts +0 -1
- package/src/util/typeCheck.ts +1 -0
- package/src/util/typeUtils.ts +4 -7
- package/dist/beta.d.ts +0 -152
- 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/dist/legacy.d.ts +0 -159
- package/lib/alpha.d.ts +0 -304
- 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/lib/public.d.ts +0 -94
- /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
|
@@ -75,6 +75,7 @@ import {
|
|
|
75
75
|
toInitialSchema,
|
|
76
76
|
type TreeParsingOptions,
|
|
77
77
|
type NodeChangedData,
|
|
78
|
+
type TreeChangeEventsAlpha,
|
|
78
79
|
type ConciseTree,
|
|
79
80
|
importConcise,
|
|
80
81
|
exportConcise,
|
|
@@ -231,6 +232,23 @@ export interface TreeIdentifierUtils {
|
|
|
231
232
|
* @sealed @alpha
|
|
232
233
|
*/
|
|
233
234
|
export interface TreeAlpha {
|
|
235
|
+
/**
|
|
236
|
+
* Register an event listener on the given node.
|
|
237
|
+
* @param node - The node whose events should be subscribed to.
|
|
238
|
+
* @param eventName - Which event to subscribe to.
|
|
239
|
+
* @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.
|
|
240
|
+
* @returns A callback function which will deregister the event.
|
|
241
|
+
* This callback should be called only once.
|
|
242
|
+
* @remarks
|
|
243
|
+
* Provides a richer `nodeChanged` event than {@link (TreeBeta:interface).on} — for array nodes the
|
|
244
|
+
* event data includes a {@link NodeChangedDataDelta.delta | delta} payload.
|
|
245
|
+
*/
|
|
246
|
+
on<K extends keyof TreeChangeEventsAlpha<TNode>, TNode extends TreeNode>(
|
|
247
|
+
node: TNode,
|
|
248
|
+
eventName: K,
|
|
249
|
+
listener: NoInfer<TreeChangeEventsAlpha<TNode>[K]>,
|
|
250
|
+
): () => void;
|
|
251
|
+
|
|
234
252
|
/**
|
|
235
253
|
* Retrieve the {@link TreeBranch | branch}, if any, for the given node.
|
|
236
254
|
* @param node - The node to query
|
|
@@ -787,6 +805,14 @@ function trackObservations<TResult>(
|
|
|
787
805
|
* @alpha
|
|
788
806
|
*/
|
|
789
807
|
export const TreeAlpha: TreeAlpha = {
|
|
808
|
+
on<K extends keyof TreeChangeEventsAlpha<TNode>, TNode extends TreeNode>(
|
|
809
|
+
node: TNode,
|
|
810
|
+
eventName: K,
|
|
811
|
+
listener: NoInfer<TreeChangeEventsAlpha<TNode>[K]>,
|
|
812
|
+
): () => void {
|
|
813
|
+
return treeNodeApi.on(node, eventName, listener);
|
|
814
|
+
},
|
|
815
|
+
|
|
790
816
|
trackObservations<TResult>(
|
|
791
817
|
onInvalidation: () => void,
|
|
792
818
|
trackDuring: () => TResult,
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { createEmitter } from "@fluid-internal/client-utils";
|
|
7
|
-
import type { IDisposable } from "@fluidframework/core-interfaces";
|
|
8
7
|
import type { IFluidHandle, Listenable } from "@fluidframework/core-interfaces/internal";
|
|
9
8
|
import { assert, unreachableCase, fail } from "@fluidframework/core-utils/internal";
|
|
10
9
|
import type { IIdCompressor, SessionId } from "@fluidframework/id-compressor";
|
|
@@ -23,7 +22,6 @@ import {
|
|
|
23
22
|
type Anchor,
|
|
24
23
|
type AnchorLocator,
|
|
25
24
|
type AnchorNode,
|
|
26
|
-
AnchorSet,
|
|
27
25
|
type AnchorSetRootEvents,
|
|
28
26
|
type ChangeFamily,
|
|
29
27
|
CommitKind,
|
|
@@ -61,6 +59,7 @@ import {
|
|
|
61
59
|
type ReadOnlyDetachedFieldIndex,
|
|
62
60
|
makeAnonChange,
|
|
63
61
|
type TaggedChange,
|
|
62
|
+
deltaFieldMapHasVisibleChanges,
|
|
64
63
|
} from "../core/index.js";
|
|
65
64
|
import {
|
|
66
65
|
type FieldBatchCodec,
|
|
@@ -70,13 +69,14 @@ import {
|
|
|
70
69
|
createNodeIdentifierManager,
|
|
71
70
|
defaultSchemaPolicy,
|
|
72
71
|
fieldBatchCodecBuilder,
|
|
72
|
+
TreeStatus,
|
|
73
73
|
intoDelta,
|
|
74
74
|
jsonableTreeFromCursor,
|
|
75
75
|
} from "../feature-libraries/index.js";
|
|
76
76
|
import {
|
|
77
77
|
SquashingTransactionStack,
|
|
78
78
|
SharedTreeBranch,
|
|
79
|
-
TransactionResult,
|
|
79
|
+
TransactionResult as InternalTransactionResult,
|
|
80
80
|
onForkTransitive,
|
|
81
81
|
type SharedTreeBranchChange,
|
|
82
82
|
type Transactor,
|
|
@@ -89,22 +89,34 @@ import {
|
|
|
89
89
|
type UnsafeUnknownSchema,
|
|
90
90
|
type ViewableTree,
|
|
91
91
|
type TreeBranch,
|
|
92
|
+
type TreeBranchAlpha,
|
|
92
93
|
type TreeChangeEvents,
|
|
93
94
|
type VerboseTree,
|
|
95
|
+
type VoidTransactionCallbackStatus,
|
|
96
|
+
type TransactionCallbackStatus,
|
|
97
|
+
type TransactionResult,
|
|
98
|
+
type TransactionResultExt,
|
|
99
|
+
type RunTransactionParams,
|
|
100
|
+
type TransactionConstraintAlpha,
|
|
101
|
+
type TreeViewAlpha,
|
|
102
|
+
getInnerNode,
|
|
103
|
+
getKernel,
|
|
94
104
|
customFromCursorStored,
|
|
95
105
|
type CustomTreeValue,
|
|
96
106
|
type CustomTreeNode,
|
|
97
107
|
} from "../simple-tree/index.js";
|
|
98
108
|
import {
|
|
99
109
|
Breakable,
|
|
110
|
+
breakingMethod,
|
|
100
111
|
disposeSymbol,
|
|
101
112
|
getOrCreate,
|
|
102
113
|
hasSome,
|
|
114
|
+
throwIfBroken,
|
|
103
115
|
type JsonCompatibleReadOnly,
|
|
104
116
|
type WithBreakable,
|
|
105
117
|
} from "../util/index.js";
|
|
106
118
|
|
|
107
|
-
import {
|
|
119
|
+
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
108
120
|
import { SharedTreeChangeEnricher } from "./sharedTreeChangeEnricher.js";
|
|
109
121
|
import { SharedTreeChangeFamily, hasSchemaChange } from "./sharedTreeChangeFamily.js";
|
|
110
122
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
@@ -183,57 +195,6 @@ export interface CheckoutEvents {
|
|
|
183
195
|
dispose(): void;
|
|
184
196
|
}
|
|
185
197
|
|
|
186
|
-
/**
|
|
187
|
-
* A "version control"-style branch of a SharedTree.
|
|
188
|
-
* @remarks Branches may be used to coordinate edits to a SharedTree, e.g. via merge and rebase operations.
|
|
189
|
-
* Changes applied to a branch of a branch only apply to that branch and are isolated from other branches.
|
|
190
|
-
* Changes may be synchronized across branches via merge and rebase operations provided on the branch object.
|
|
191
|
-
* @alpha @sealed
|
|
192
|
-
*/
|
|
193
|
-
export interface BranchableTree extends ViewableTree {
|
|
194
|
-
/**
|
|
195
|
-
* Spawn a new branch which is based off of the current state of this branch.
|
|
196
|
-
* Any mutations of the new branch will not apply to this branch until the new branch is merged back into this branch via `merge()`.
|
|
197
|
-
*/
|
|
198
|
-
branch(): TreeBranchFork;
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Apply all the new changes on the given branch to this branch.
|
|
202
|
-
* @param view - a branch which was created by a call to `branch()`.
|
|
203
|
-
* It is automatically disposed after the merge completes.
|
|
204
|
-
* @remarks All ongoing transactions (if any) in `branch` will be committed before the merge.
|
|
205
|
-
* A "changed" event and a corresponding {@link Revertible} will be emitted on this branch for each new change merged from 'branch'.
|
|
206
|
-
*/
|
|
207
|
-
merge(branch: TreeBranchFork): void;
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Apply all the new changes on the given branch to this branch.
|
|
211
|
-
* @param branch - a branch which was created by a call to `branch()`.
|
|
212
|
-
* @param disposeMerged - whether or not to dispose `branch` after the merge completes.
|
|
213
|
-
* @remarks All ongoing transactions (if any) in `branch` will be committed before the merge.
|
|
214
|
-
*/
|
|
215
|
-
merge(branch: TreeBranchFork, disposeMerged: boolean): void;
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Rebase the given branch onto this branch.
|
|
219
|
-
* @param branch - a branch which was created by a call to `branch()`. It is modified by this operation.
|
|
220
|
-
*/
|
|
221
|
-
rebase(branch: TreeBranchFork): void;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* A {@link BranchableTree | branch} of a SharedTree that has merged from another branch.
|
|
226
|
-
* @remarks This branch should be disposed when it is no longer needed in order to free resources.
|
|
227
|
-
* @alpha @sealed
|
|
228
|
-
*/
|
|
229
|
-
export interface TreeBranchFork extends BranchableTree, IDisposable {
|
|
230
|
-
/**
|
|
231
|
-
* Rebase the changes that have been applied to this branch over all the new changes in the given branch.
|
|
232
|
-
* @param branch - Either the root branch or a branch that was created by a call to `branch()`. It is not modified by this operation.
|
|
233
|
-
*/
|
|
234
|
-
rebaseOnto(branch: BranchableTree): void;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
198
|
/**
|
|
238
199
|
* Provides a means for interacting with a SharedTree.
|
|
239
200
|
* This includes reading data from the tree and running transactions to mutate the tree.
|
|
@@ -242,7 +203,11 @@ export interface TreeBranchFork extends BranchableTree, IDisposable {
|
|
|
242
203
|
* API for interacting with a {@link SharedTreeBranch}.
|
|
243
204
|
* Implementations of this interface must implement the {@link branchKey} property.
|
|
244
205
|
*/
|
|
245
|
-
export interface ITreeCheckout
|
|
206
|
+
export interface ITreeCheckout
|
|
207
|
+
extends TreeBranchAlpha,
|
|
208
|
+
AnchorLocator,
|
|
209
|
+
ViewableTree,
|
|
210
|
+
WithBreakable {
|
|
246
211
|
/**
|
|
247
212
|
* Read and Write access for schema stored in the document.
|
|
248
213
|
*
|
|
@@ -278,13 +243,7 @@ export interface ITreeCheckout extends AnchorLocator, ViewableTree, WithBreakabl
|
|
|
278
243
|
*/
|
|
279
244
|
readonly transaction: Transactor;
|
|
280
245
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
merge(checkout: ITreeCheckoutFork): void;
|
|
284
|
-
|
|
285
|
-
merge(checkout: ITreeCheckoutFork, disposeMerged: boolean): void;
|
|
286
|
-
|
|
287
|
-
rebase(checkout: ITreeCheckoutFork): void;
|
|
246
|
+
fork(): ITreeCheckout;
|
|
288
247
|
|
|
289
248
|
/**
|
|
290
249
|
* Replaces all schema with the provided schema.
|
|
@@ -389,15 +348,6 @@ export function createTreeCheckout(
|
|
|
389
348
|
);
|
|
390
349
|
}
|
|
391
350
|
|
|
392
|
-
/**
|
|
393
|
-
* Branch (like in a version control system) of SharedTree.
|
|
394
|
-
*
|
|
395
|
-
* {@link ITreeCheckout} that has forked off of the main trunk/branch.
|
|
396
|
-
*/
|
|
397
|
-
export interface ITreeCheckoutFork extends ITreeCheckout {
|
|
398
|
-
rebaseOnto(view: ITreeCheckout): void;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
351
|
/**
|
|
402
352
|
* Metrics derived from a revert operation.
|
|
403
353
|
*
|
|
@@ -413,9 +363,93 @@ export interface RevertMetrics {
|
|
|
413
363
|
}
|
|
414
364
|
|
|
415
365
|
/**
|
|
416
|
-
*
|
|
366
|
+
* Get the {@link TreeCheckout} associated with a given {@link TreeBranch}.
|
|
367
|
+
*/
|
|
368
|
+
function getCheckout(context: TreeBranch): TreeCheckout {
|
|
369
|
+
if (context instanceof TreeCheckout) {
|
|
370
|
+
return context;
|
|
371
|
+
}
|
|
372
|
+
if (context instanceof SchematizingSimpleTreeView) {
|
|
373
|
+
return context.checkout;
|
|
374
|
+
}
|
|
375
|
+
throw new UsageError("Unsupported context implementation");
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Adds constraints to a `checkout`'s pending transaction.
|
|
380
|
+
*
|
|
381
|
+
* @param checkout - The checkout whose transaction will have the constraints added to it.
|
|
382
|
+
* @param constraintsOnRevert - If true, use {@link ISharedTreeEditor.addNodeExistsConstraintOnRevert}.
|
|
383
|
+
* @param constraints - The constraints to add to the transaction.
|
|
384
|
+
*
|
|
385
|
+
* @see {@link RunTransactionParams.preconditions}.
|
|
386
|
+
*/
|
|
387
|
+
export function addConstraintsToTransaction(
|
|
388
|
+
checkout: ITreeCheckout,
|
|
389
|
+
constraintsOnRevert: boolean,
|
|
390
|
+
constraints: readonly TransactionConstraintAlpha[] = [],
|
|
391
|
+
): void {
|
|
392
|
+
for (const constraint of constraints) {
|
|
393
|
+
assertValidConstraint(constraint, constraintsOnRevert);
|
|
394
|
+
const constraintType = constraint.type;
|
|
395
|
+
switch (constraintType) {
|
|
396
|
+
case "nodeInDocument": {
|
|
397
|
+
const node = getInnerNode(constraint.node);
|
|
398
|
+
assert(node.isHydrated(), 0xbc2 /* In document node must be hydrated. */);
|
|
399
|
+
if (constraintsOnRevert) {
|
|
400
|
+
checkout.editor.addNodeExistsConstraintOnRevert(node.anchorNode);
|
|
401
|
+
} else {
|
|
402
|
+
checkout.editor.addNodeExistsConstraint(node.anchorNode);
|
|
403
|
+
}
|
|
404
|
+
break;
|
|
405
|
+
}
|
|
406
|
+
case "noChange": {
|
|
407
|
+
if (constraintsOnRevert) {
|
|
408
|
+
checkout.editor.addNoChangeConstraintOnRevert();
|
|
409
|
+
} else {
|
|
410
|
+
checkout.editor.addNoChangeConstraint();
|
|
411
|
+
}
|
|
412
|
+
break;
|
|
413
|
+
}
|
|
414
|
+
default: {
|
|
415
|
+
unreachableCase(constraintType);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Throws if the given {@link TransactionConstraintAlpha | transaction constraint} is not currently satisfied.
|
|
417
423
|
*/
|
|
418
|
-
export
|
|
424
|
+
export function assertValidConstraint(
|
|
425
|
+
constraint: TransactionConstraintAlpha,
|
|
426
|
+
onRevert: boolean,
|
|
427
|
+
): void {
|
|
428
|
+
switch (constraint.type) {
|
|
429
|
+
case "nodeInDocument": {
|
|
430
|
+
const nodeStatus = getKernel(constraint.node).getStatus();
|
|
431
|
+
if (nodeStatus !== TreeStatus.InDocument) {
|
|
432
|
+
const revertText = onRevert ? " on revert" : "";
|
|
433
|
+
throw new UsageError(
|
|
434
|
+
`Attempted to add a "nodeInDocument" constraint${revertText}, but the node is not currently in the document. Node status: ${nodeStatus}`,
|
|
435
|
+
);
|
|
436
|
+
}
|
|
437
|
+
break;
|
|
438
|
+
}
|
|
439
|
+
case "noChange": {
|
|
440
|
+
// This constraint is always satisfied at the time of checking, since it just requires that no changes have been made since the transaction callback returned.
|
|
441
|
+
break;
|
|
442
|
+
}
|
|
443
|
+
default: {
|
|
444
|
+
unreachableCase(constraint);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* An implementation of {@link ITreeCheckout}.
|
|
451
|
+
*/
|
|
452
|
+
export class TreeCheckout implements ITreeCheckout {
|
|
419
453
|
public disposed = false;
|
|
420
454
|
|
|
421
455
|
private editLock: EditLock;
|
|
@@ -622,16 +656,16 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
622
656
|
return (result, viewUpdate: SharedTreeChange | undefined) => {
|
|
623
657
|
const newHead = this.#transaction.branch.getHead();
|
|
624
658
|
switch (result) {
|
|
625
|
-
case
|
|
659
|
+
case InternalTransactionResult.Abort: {
|
|
626
660
|
restoreRemovedRoots();
|
|
627
661
|
if (viewUpdate !== undefined) {
|
|
628
|
-
this.
|
|
662
|
+
this.applyInternalChange(viewUpdate, newHead.revision);
|
|
629
663
|
}
|
|
630
664
|
break;
|
|
631
665
|
}
|
|
632
|
-
case
|
|
666
|
+
case InternalTransactionResult.Commit: {
|
|
633
667
|
if (viewUpdate !== undefined) {
|
|
634
|
-
this.
|
|
668
|
+
this.applyInternalChange(viewUpdate, newHead.revision);
|
|
635
669
|
}
|
|
636
670
|
if (this.transaction.size === 0) {
|
|
637
671
|
// The changes in a transaction squash commit have already applied to the checkout and are known to be valid, so we can validate the squash commit automatically.
|
|
@@ -648,6 +682,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
648
682
|
});
|
|
649
683
|
}
|
|
650
684
|
|
|
685
|
+
@throwIfBroken
|
|
651
686
|
public exportVerbose(): VerboseTree | undefined {
|
|
652
687
|
const cursor = this.forest.allocateCursor("contentSnapshot");
|
|
653
688
|
try {
|
|
@@ -756,7 +791,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
756
791
|
? this.#transaction.activeBranch.getHead().revision
|
|
757
792
|
: event.change.revision;
|
|
758
793
|
|
|
759
|
-
this.
|
|
794
|
+
this.applyInternalChange(event.change.change, revision);
|
|
760
795
|
}
|
|
761
796
|
this.#events.emit("afterBatch");
|
|
762
797
|
this.editLock.unlock();
|
|
@@ -770,6 +805,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
770
805
|
/**
|
|
771
806
|
* Applies the given serialized change (as was produced via a `"changed"` event of another checkout) to this checkout.
|
|
772
807
|
*/
|
|
808
|
+
@throwIfBroken
|
|
773
809
|
public applySerializedChange(serializedChange: JsonCompatibleReadOnly): void {
|
|
774
810
|
if (!isSerializedChange(serializedChange)) {
|
|
775
811
|
throw new UsageError(`Cannot apply change. Invalid serialized change format.`);
|
|
@@ -786,11 +822,119 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
786
822
|
revision,
|
|
787
823
|
};
|
|
788
824
|
const decodedChange = this.changeFamily.codecs.resolve(4).decode(change, context);
|
|
789
|
-
|
|
825
|
+
// Apply the change to the branch, but _not_ the `activeBranch` - we do not support squashing serialized commits in a transaction.
|
|
826
|
+
this.#transaction.branch.apply(tagChange(decodedChange, revision));
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
// #region TreeBranchAlpha
|
|
830
|
+
|
|
831
|
+
@throwIfBroken
|
|
832
|
+
public applyChange(change: JsonCompatibleReadOnly): void {
|
|
833
|
+
this.applySerializedChange(change);
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
public isBranch(): this is TreeBranchAlpha {
|
|
837
|
+
return true;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
public hasRootSchema<TSchema extends ImplicitFieldSchema>(
|
|
841
|
+
_schema: TSchema,
|
|
842
|
+
): this is TreeViewAlpha<TSchema> {
|
|
843
|
+
return false;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
public runTransaction<TSuccessValue, TFailureValue>(
|
|
847
|
+
transaction: () => TransactionCallbackStatus<TSuccessValue, TFailureValue>,
|
|
848
|
+
params?: RunTransactionParams,
|
|
849
|
+
): TransactionResultExt<TSuccessValue, TFailureValue>;
|
|
850
|
+
public runTransaction(
|
|
851
|
+
transaction: () => VoidTransactionCallbackStatus | void,
|
|
852
|
+
params?: RunTransactionParams,
|
|
853
|
+
): TransactionResult;
|
|
854
|
+
@breakingMethod
|
|
855
|
+
public runTransaction<TSuccessValue, TFailureValue>(
|
|
856
|
+
transaction: () =>
|
|
857
|
+
| TransactionCallbackStatus<TSuccessValue, TFailureValue>
|
|
858
|
+
| VoidTransactionCallbackStatus
|
|
859
|
+
| void,
|
|
860
|
+
params?: RunTransactionParams,
|
|
861
|
+
): TransactionResultExt<TSuccessValue, TFailureValue> | TransactionResult {
|
|
862
|
+
this.mountTransaction(params, false);
|
|
863
|
+
const transactionCallbackStatus = transaction();
|
|
864
|
+
return this.unmountTransaction(transactionCallbackStatus, params);
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
public runTransactionAsync<TSuccessValue, TFailureValue>(
|
|
868
|
+
transaction: () => Promise<TransactionCallbackStatus<TSuccessValue, TFailureValue>>,
|
|
869
|
+
params?: RunTransactionParams,
|
|
870
|
+
): Promise<TransactionResultExt<TSuccessValue, TFailureValue>>;
|
|
871
|
+
public runTransactionAsync(
|
|
872
|
+
transaction: () => Promise<VoidTransactionCallbackStatus | void>,
|
|
873
|
+
params?: RunTransactionParams,
|
|
874
|
+
): Promise<TransactionResult>;
|
|
875
|
+
@breakingMethod
|
|
876
|
+
public async runTransactionAsync<TSuccessValue, TFailureValue>(
|
|
877
|
+
transaction: () => Promise<
|
|
878
|
+
| TransactionCallbackStatus<TSuccessValue, TFailureValue>
|
|
879
|
+
| VoidTransactionCallbackStatus
|
|
880
|
+
| void
|
|
881
|
+
>,
|
|
882
|
+
params: RunTransactionParams | undefined,
|
|
883
|
+
): Promise<TransactionResultExt<TSuccessValue, TFailureValue> | TransactionResult> {
|
|
884
|
+
this.mountTransaction(params, true);
|
|
885
|
+
const transactionCallbackStatus = await transaction();
|
|
886
|
+
return this.unmountTransaction(transactionCallbackStatus, params);
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
private mountTransaction(params: RunTransactionParams | undefined, isAsync: boolean): void {
|
|
890
|
+
this.checkNotDisposed();
|
|
891
|
+
if (isAsync && this.transaction.size > 0) {
|
|
892
|
+
throw new UsageError(
|
|
893
|
+
"An asynchronous transaction cannot be started while another transaction is already in progress.",
|
|
894
|
+
);
|
|
895
|
+
}
|
|
896
|
+
this.pushLabelFrame(params?.label);
|
|
897
|
+
this.transaction.start();
|
|
898
|
+
|
|
899
|
+
addConstraintsToTransaction(this, false, params?.preconditions);
|
|
790
900
|
}
|
|
791
901
|
|
|
902
|
+
private unmountTransaction<TSuccessValue, TFailureValue>(
|
|
903
|
+
transactionCallbackStatus:
|
|
904
|
+
| TransactionCallbackStatus<TSuccessValue, TFailureValue>
|
|
905
|
+
| VoidTransactionCallbackStatus
|
|
906
|
+
| void,
|
|
907
|
+
params: RunTransactionParams | undefined,
|
|
908
|
+
): TransactionResultExt<TSuccessValue, TFailureValue> | TransactionResult {
|
|
909
|
+
this.checkNotDisposed();
|
|
910
|
+
const rollback = transactionCallbackStatus?.rollback;
|
|
911
|
+
const value = (
|
|
912
|
+
transactionCallbackStatus as TransactionCallbackStatus<TSuccessValue, TFailureValue>
|
|
913
|
+
)?.value;
|
|
914
|
+
|
|
915
|
+
if (rollback === true) {
|
|
916
|
+
this.popLabelFrame(true);
|
|
917
|
+
this.transaction.abort();
|
|
918
|
+
return value === undefined
|
|
919
|
+
? { success: false }
|
|
920
|
+
: { success: false, value: value as TFailureValue };
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
addConstraintsToTransaction(this, true, transactionCallbackStatus?.preconditionsOnRevert);
|
|
924
|
+
|
|
925
|
+
this.popLabelFrame(false);
|
|
926
|
+
this.runWithTransactionLabel(() => {
|
|
927
|
+
this.transaction.commit();
|
|
928
|
+
}, params?.label);
|
|
929
|
+
return value === undefined
|
|
930
|
+
? { success: true }
|
|
931
|
+
: { success: true, value: value as TSuccessValue };
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
// #endregion TreeBranchAlpha
|
|
935
|
+
|
|
792
936
|
// Revision is the revision of the commit, if any, which caused this change.
|
|
793
|
-
private
|
|
937
|
+
private applyInternalChange(change: SharedTreeChange, revision?: RevisionTag): void {
|
|
794
938
|
// Conflicts due to schema will be empty and thus are not applied.
|
|
795
939
|
for (const innerChange of change.changes) {
|
|
796
940
|
if (innerChange.type === "data") {
|
|
@@ -942,6 +1086,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
942
1086
|
config: TreeViewConfiguration<TRoot>,
|
|
943
1087
|
): TreeView<TRoot>;
|
|
944
1088
|
|
|
1089
|
+
@throwIfBroken
|
|
945
1090
|
public viewWith<TRoot extends ImplicitFieldSchema | UnsafeUnknownSchema>(
|
|
946
1091
|
config: TreeViewConfiguration<ReadSchema<TRoot>>,
|
|
947
1092
|
): SchematizingSimpleTreeView<TRoot> {
|
|
@@ -982,11 +1127,12 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
982
1127
|
* Transactions may nest, meaning that a transaction may be started while a transaction is already ongoing.
|
|
983
1128
|
*
|
|
984
1129
|
* To avoid updating observers of the view state with intermediate results during a transaction,
|
|
985
|
-
* use {@link ITreeCheckout#
|
|
1130
|
+
* use {@link ITreeCheckout#fork} and {@link ISharedTreeFork#merge}.
|
|
986
1131
|
*/
|
|
987
1132
|
#transaction: SquashingTransactionStack<SharedTreeEditBuilder, SharedTreeChange>;
|
|
988
1133
|
|
|
989
|
-
|
|
1134
|
+
@throwIfBroken
|
|
1135
|
+
public fork(): TreeCheckout {
|
|
990
1136
|
this.checkNotDisposed(
|
|
991
1137
|
"The parent branch has already been disposed and can no longer create new branches.",
|
|
992
1138
|
);
|
|
@@ -996,10 +1142,10 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
996
1142
|
}
|
|
997
1143
|
|
|
998
1144
|
this.editLock.checkUnlocked("Branching");
|
|
999
|
-
const anchors = new AnchorSet();
|
|
1000
1145
|
const branch = this.#transaction.activeBranch.fork();
|
|
1001
1146
|
const storedSchema = this.storedSchema.clone();
|
|
1002
|
-
const
|
|
1147
|
+
const forkBreaker = new Breakable("TreeCheckout");
|
|
1148
|
+
const forest = this.forest.clone(storedSchema, forkBreaker);
|
|
1003
1149
|
const checkout = new TreeCheckout(
|
|
1004
1150
|
branch,
|
|
1005
1151
|
false,
|
|
@@ -1011,7 +1157,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
1011
1157
|
this.idCompressor,
|
|
1012
1158
|
this._removedRoots.clone(),
|
|
1013
1159
|
this.logger,
|
|
1014
|
-
|
|
1160
|
+
forkBreaker,
|
|
1015
1161
|
this.disposeForksAfterTransaction,
|
|
1016
1162
|
);
|
|
1017
1163
|
this.#events.emit("fork", checkout);
|
|
@@ -1040,16 +1186,17 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
1040
1186
|
this.registerForBranchEvents();
|
|
1041
1187
|
|
|
1042
1188
|
// TODO: Rework eventing
|
|
1043
|
-
this.
|
|
1189
|
+
this.applyInternalChange(diff);
|
|
1044
1190
|
this.#events.emit("afterBatch");
|
|
1045
1191
|
}
|
|
1046
1192
|
|
|
1047
|
-
|
|
1193
|
+
private rebase(branch: TreeBranch): void {
|
|
1194
|
+
const checkout = getCheckout(branch);
|
|
1048
1195
|
this.checkNotDisposed(
|
|
1049
|
-
"The target of the
|
|
1196
|
+
"The target branch of the rebase has been disposed and cannot be rebased.",
|
|
1050
1197
|
);
|
|
1051
1198
|
checkout.checkNotDisposed(
|
|
1052
|
-
"The source of the
|
|
1199
|
+
"The source branch of the rebase has been disposed and cannot be rebased.",
|
|
1053
1200
|
);
|
|
1054
1201
|
this.editLock.checkUnlocked("Rebasing");
|
|
1055
1202
|
|
|
@@ -1070,21 +1217,19 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
1070
1217
|
checkout.#transaction.activeBranch.rebaseOnto(this.#transaction.activeBranch);
|
|
1071
1218
|
}
|
|
1072
1219
|
|
|
1073
|
-
public rebaseOnto(
|
|
1074
|
-
|
|
1075
|
-
"The target of the branch rebase has been disposed and cannot be rebased.",
|
|
1076
|
-
);
|
|
1077
|
-
checkout.rebase(this);
|
|
1220
|
+
public rebaseOnto(branch: TreeBranch): void {
|
|
1221
|
+
getCheckout(branch).rebase(this);
|
|
1078
1222
|
}
|
|
1079
1223
|
|
|
1080
|
-
public merge(
|
|
1081
|
-
public merge(
|
|
1082
|
-
public merge(
|
|
1224
|
+
public merge(branch: TreeBranch): void;
|
|
1225
|
+
public merge(branch: TreeBranch, disposeMerged: boolean): void;
|
|
1226
|
+
public merge(branch: TreeBranch, disposeMerged = true): void {
|
|
1227
|
+
const checkout = getCheckout(branch);
|
|
1083
1228
|
this.checkNotDisposed(
|
|
1084
|
-
"The target of the
|
|
1229
|
+
"The target branch of the merge has been disposed and cannot be merged.",
|
|
1085
1230
|
);
|
|
1086
1231
|
checkout.checkNotDisposed(
|
|
1087
|
-
"The source of the
|
|
1232
|
+
"The source branch of the merge has been disposed and cannot be merged.",
|
|
1088
1233
|
);
|
|
1089
1234
|
this.editLock.checkUnlocked("Merging");
|
|
1090
1235
|
if (this.transaction.size > 0) {
|
|
@@ -1195,6 +1340,17 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
1195
1340
|
const headCommit = this.#transaction.activeBranch.getHead();
|
|
1196
1341
|
// Rebase the inverted change onto any commits that occurred after the undoable commits.
|
|
1197
1342
|
if (commitToRevert !== headCommit) {
|
|
1343
|
+
// The inverse may be rebased over newer commits which (despite being present in the history)
|
|
1344
|
+
// have no net effect on the document state (e.g. an edit plus its undo).
|
|
1345
|
+
// In that case, a no-change constraint should not be violated during rebase.
|
|
1346
|
+
const diff = diffHistories(
|
|
1347
|
+
this.changeFamily.rebaser,
|
|
1348
|
+
commitToRevert,
|
|
1349
|
+
headCommit,
|
|
1350
|
+
this.mintRevisionTag,
|
|
1351
|
+
);
|
|
1352
|
+
const ignoreNoChangeViolation = !sharedTreeChangeHasVisibleChanges(diff);
|
|
1353
|
+
|
|
1198
1354
|
change = tagChange(
|
|
1199
1355
|
rebaseChange(
|
|
1200
1356
|
this.changeFamily.rebaser,
|
|
@@ -1202,6 +1358,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
1202
1358
|
commitToRevert,
|
|
1203
1359
|
headCommit,
|
|
1204
1360
|
this.mintRevisionTag,
|
|
1361
|
+
ignoreNoChangeViolation,
|
|
1205
1362
|
).change,
|
|
1206
1363
|
revisionForInvert,
|
|
1207
1364
|
);
|
|
@@ -1566,3 +1723,23 @@ function isSerializedChange(value: unknown): value is SerializedChange {
|
|
|
1566
1723
|
change.change !== undefined
|
|
1567
1724
|
);
|
|
1568
1725
|
}
|
|
1726
|
+
|
|
1727
|
+
/**
|
|
1728
|
+
* Enumerates through a shared tree change, looking for schema change and field changes that result in visible changes to the tree (e.g. an insert, move, delete).
|
|
1729
|
+
* This function also considers changes to detached roots to be visible changes, but not renames of roots or builds of new roots.
|
|
1730
|
+
*
|
|
1731
|
+
* @param change - The change to analyze.
|
|
1732
|
+
* @returns True if the change contains any schema changes or any field changes that result in visible changes to the tree, false otherwise.
|
|
1733
|
+
*/
|
|
1734
|
+
function sharedTreeChangeHasVisibleChanges(change: SharedTreeChange): boolean {
|
|
1735
|
+
for (const inner of change.changes) {
|
|
1736
|
+
if (inner.type === "schema") {
|
|
1737
|
+
return true;
|
|
1738
|
+
}
|
|
1739
|
+
const delta = intoDelta(tagChange(inner.innerChange, undefined));
|
|
1740
|
+
if (deltaFieldMapHasVisibleChanges(delta.fields)) {
|
|
1741
|
+
return true;
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1744
|
+
return false;
|
|
1745
|
+
}
|
|
@@ -14,7 +14,7 @@ import type {
|
|
|
14
14
|
WithValue,
|
|
15
15
|
} from "../simple-tree/index.js";
|
|
16
16
|
|
|
17
|
-
import { assertValidConstraint } from "./
|
|
17
|
+
import { assertValidConstraint } from "./treeCheckout.js";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* A {@link TreeContextAlpha | tree context} that can be used for e.g. unhydrated nodes.
|