@fluidframework/tree 2.74.0 → 2.80.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/.eslintrc.cjs +1 -16
- package/CHANGELOG.md +18 -0
- package/api-report/tree.alpha.api.md +20 -2
- package/dist/alpha.d.ts +4 -0
- package/dist/codec/codec.d.ts +31 -3
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +10 -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 -2
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +80 -22
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +137 -15
- 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 -2
- package/dist/codec/versioned/index.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +36 -2
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/index.d.ts +2 -2
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +1 -2
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +6 -2
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +1 -12
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.js +3 -3
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/schema.js +3 -3
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +3 -4
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +1 -2
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +12 -56
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts +18 -10
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.js +6 -6
- package/dist/core/tree/detachedFieldIndexCodecCommon.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts +2 -3
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.js +4 -5
- package/dist/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.d.ts +2 -3
- package/dist/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.js +4 -6
- package/dist/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts +5 -6
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.js +11 -41
- package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/dist/core/tree/index.d.ts +1 -1
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +2 -2
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/mapTree.js +1 -1
- package/dist/core/tree/mapTree.js.map +1 -1
- package/dist/core/tree/sparseTree.d.ts.map +1 -1
- package/dist/core/tree/sparseTree.js +1 -0
- package/dist/core/tree/sparseTree.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/treeTextFormat.js +5 -9
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.d.ts +10 -0
- package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -0
- package/dist/feature-libraries/changeAtomIdBTree.js +16 -0
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/basicChunk.js +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +6 -6
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +7 -4
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +19 -11
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.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/schemaBasedEncode.js +9 -5
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +15 -5
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +19 -14
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +11 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts +2 -0
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js +6 -0
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +11 -13
- package/dist/feature-libraries/flex-tree/lazyField.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 +9 -7
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +6 -6
- 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 +10 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js +12 -9
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +25 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +59 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -0
- 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 +4 -4
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +4 -2
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +11 -7
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +49 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +315 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +15 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js +31 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +25 -288
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +225 -195
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/{modularChangeFormat.d.ts → modularChangeFormatV1.d.ts} +5 -6
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/{modularChangeFormat.js → modularChangeFormatV1.js} +7 -7
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +112 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +21 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +13 -3
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js +1 -1
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +4 -4
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +34 -39
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +14 -2
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts +7 -21
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +28 -70
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/index.d.ts +2 -2
- package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/index.js +2 -5
- package/dist/feature-libraries/schema-index/index.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -9
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -12
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/schemaChecker.js +11 -6
- package/dist/feature-libraries/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +17 -13
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +5 -4
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +15 -9
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +26 -18
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +40 -35
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +16 -8
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +4 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +6 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +46 -27
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.js +7 -7
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.js +2 -2
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/valueUtilities.js +16 -8
- package/dist/feature-libraries/valueUtilities.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- 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/schematizingTreeView.d.ts +2 -3
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +20 -9
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +61 -44
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +9 -8
- 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 +4 -2
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +3 -2
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +19 -14
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +35 -29
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +21 -23
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +2 -0
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +31 -18
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +3 -1
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +5 -3
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/dist/shared-tree-core/editManager.js +1 -1
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +9 -4
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts +1 -0
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.js +6 -0
- package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.js +1 -0
- package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +3 -3
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.js +2 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +8 -4
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +1 -0
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js +6 -0
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +3 -2
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js +8 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.js +4 -4
- package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +12 -8
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +25 -8
- package/dist/shared-tree-core/transaction.d.ts.map +1 -1
- package/dist/shared-tree-core/transaction.js +65 -30
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.d.ts +2 -2
- package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.js +3 -3
- package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
- package/dist/simple-tree/api/configuration.js +1 -1
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts.map +1 -1
- package/dist/simple-tree/api/customTree.js +13 -9
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/discrepancies.d.ts.map +1 -1
- package/dist/simple-tree/api/discrepancies.js +21 -17
- package/dist/simple-tree/api/discrepancies.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -1
- 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 +12 -8
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js +18 -9
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaCodec.js +10 -5
- package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +15 -11
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js +10 -10
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +2 -3
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/transactionTypes.d.ts +17 -4
- package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/dist/simple-tree/api/transactionTypes.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +21 -13
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +14 -9
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +6 -3
- 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 +20 -15
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.d.ts.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.js +2 -1
- package/dist/simple-tree/getTreeNodeForField.js.map +1 -1
- package/dist/simple-tree/index.d.ts +1 -1
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +9 -6
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +15 -15
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +4 -5
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +2 -3
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +9 -5
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/treeFactory.js +7 -3
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/bTreeUtils.js +1 -1
- package/dist/util/bTreeUtils.js.map +1 -1
- package/dist/util/breakable.js +7 -9
- package/dist/util/breakable.js.map +1 -1
- package/dist/util/idAllocator.d.ts.map +1 -1
- package/dist/util/idAllocator.js +1 -2
- package/dist/util/idAllocator.js.map +1 -1
- package/dist/util/nestedMap.d.ts.map +1 -1
- package/dist/util/nestedMap.js +1 -1
- package/dist/util/nestedMap.js.map +1 -1
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +16 -15
- package/dist/util/utils.js.map +1 -1
- package/eslint.config.mts +1 -16
- package/lib/alpha.d.ts +4 -0
- package/lib/codec/codec.d.ts +31 -3
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +10 -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 +80 -22
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +138 -15
- 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/index.d.ts +2 -2
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -2
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +36 -2
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/index.d.ts +2 -2
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +6 -2
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +0 -10
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.js +3 -3
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/schema.js +3 -3
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +3 -4
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +1 -2
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +13 -57
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts +18 -10
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.js +4 -4
- package/lib/core/tree/detachedFieldIndexCodecCommon.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts +2 -3
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.js +4 -5
- package/lib/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV2.d.ts +2 -3
- package/lib/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV2.js +4 -6
- package/lib/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts +5 -6
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.js +12 -39
- package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/lib/core/tree/index.d.ts +1 -1
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/mapTree.js +1 -1
- package/lib/core/tree/mapTree.js.map +1 -1
- package/lib/core/tree/sparseTree.d.ts.map +1 -1
- package/lib/core/tree/sparseTree.js +1 -0
- package/lib/core/tree/sparseTree.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/treeTextFormat.js +5 -9
- package/lib/core/tree/treeTextFormat.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.d.ts +10 -0
- package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -0
- package/lib/feature-libraries/changeAtomIdBTree.js +11 -0
- package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +6 -6
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +7 -4
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +19 -11
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +3 -3
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +9 -5
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +15 -5
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +19 -14
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +11 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts +2 -0
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js +6 -0
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +11 -13
- package/lib/feature-libraries/flex-tree/lazyField.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.js +6 -6
- 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 +10 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.js +12 -9
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +25 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +55 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -0
- 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 +5 -5
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +4 -2
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +3 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +49 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +298 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +15 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js +27 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +27 -290
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +118 -88
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/{modularChangeFormat.d.ts → modularChangeFormatV1.d.ts} +5 -6
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/{modularChangeFormat.js → modularChangeFormatV1.js} +4 -4
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +112 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js +18 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +13 -3
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js +1 -1
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +4 -4
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +35 -40
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +15 -3
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts +7 -21
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +30 -68
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/index.d.ts +2 -2
- package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/index.js +2 -2
- package/lib/feature-libraries/schema-index/index.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -9
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +0 -10
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/schemaChecker.js +11 -6
- package/lib/feature-libraries/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +17 -13
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +5 -4
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.js +15 -9
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +26 -18
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +41 -36
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +16 -8
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +4 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +6 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +46 -27
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.js +7 -7
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/feature-libraries/treeTextCursor.js +2 -2
- package/lib/feature-libraries/treeTextCursor.js.map +1 -1
- package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/valueUtilities.js +16 -8
- package/lib/feature-libraries/valueUtilities.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +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/schematizingTreeView.d.ts +2 -3
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +20 -9
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +30 -13
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +9 -8
- 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 +4 -2
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +3 -2
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +19 -14
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +35 -29
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +21 -23
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +2 -0
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +32 -19
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +3 -1
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +5 -3
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js +2 -2
- package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/lib/shared-tree-core/editManager.js +1 -1
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +9 -4
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts +1 -0
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.js +6 -0
- package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.js +1 -0
- package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +3 -3
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.js +2 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +8 -4
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +1 -0
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js +6 -0
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +3 -2
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js +8 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.js +4 -4
- package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +12 -8
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +25 -8
- package/lib/shared-tree-core/transaction.d.ts.map +1 -1
- package/lib/shared-tree-core/transaction.js +67 -32
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.d.ts +2 -2
- package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.js +3 -3
- package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
- package/lib/simple-tree/api/configuration.js +1 -1
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts.map +1 -1
- package/lib/simple-tree/api/customTree.js +13 -9
- package/lib/simple-tree/api/customTree.js.map +1 -1
- package/lib/simple-tree/api/discrepancies.d.ts.map +1 -1
- package/lib/simple-tree/api/discrepancies.js +21 -17
- package/lib/simple-tree/api/discrepancies.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -1
- 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 +12 -8
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js +18 -9
- package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaCodec.js +10 -5
- package/lib/simple-tree/api/simpleSchemaCodec.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +15 -11
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.js +10 -10
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +4 -7
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/transactionTypes.d.ts +17 -4
- package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/lib/simple-tree/api/transactionTypes.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +21 -13
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +14 -9
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +6 -3
- 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 +20 -15
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/getTreeNodeForField.d.ts.map +1 -1
- package/lib/simple-tree/getTreeNodeForField.js +2 -1
- package/lib/simple-tree/getTreeNodeForField.js.map +1 -1
- package/lib/simple-tree/index.d.ts +1 -1
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +9 -6
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +15 -15
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +4 -5
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +2 -3
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +9 -5
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/treeFactory.js +7 -3
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/bTreeUtils.js +1 -1
- package/lib/util/bTreeUtils.js.map +1 -1
- package/lib/util/breakable.js +7 -9
- package/lib/util/breakable.js.map +1 -1
- package/lib/util/idAllocator.d.ts.map +1 -1
- package/lib/util/idAllocator.js +1 -2
- package/lib/util/idAllocator.js.map +1 -1
- package/lib/util/nestedMap.d.ts.map +1 -1
- package/lib/util/nestedMap.js +1 -1
- package/lib/util/nestedMap.js.map +1 -1
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +16 -15
- package/lib/util/utils.js.map +1 -1
- package/package.json +32 -32
- package/src/codec/codec.ts +48 -8
- package/src/codec/index.ts +4 -1
- package/src/codec/versioned/codec.ts +340 -22
- package/src/codec/versioned/index.ts +3 -1
- package/src/core/index.ts +2 -2
- package/src/core/rebase/changeRebaser.ts +40 -6
- package/src/core/rebase/index.ts +1 -1
- package/src/core/rebase/types.ts +6 -18
- package/src/core/rebase/utils.ts +3 -3
- package/src/core/schema-stored/schema.ts +3 -3
- package/src/core/tree/anchorSet.ts +3 -4
- package/src/core/tree/detachedFieldIndex.ts +13 -74
- package/src/core/tree/detachedFieldIndexCodecCommon.ts +4 -8
- package/src/core/tree/detachedFieldIndexCodecV1.ts +3 -7
- package/src/core/tree/detachedFieldIndexCodecV2.ts +5 -9
- package/src/core/tree/detachedFieldIndexCodecs.ts +21 -64
- package/src/core/tree/index.ts +1 -1
- package/src/core/tree/mapTree.ts +1 -1
- package/src/core/tree/sparseTree.ts +1 -0
- package/src/core/tree/treeTextFormat.ts +5 -9
- package/src/feature-libraries/changeAtomIdBTree.ts +24 -0
- package/src/feature-libraries/chunked-forest/basicChunk.ts +1 -1
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +5 -5
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +7 -4
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +19 -11
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +3 -3
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +9 -5
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +1 -1
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +48 -17
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +12 -2
- package/src/feature-libraries/default-schema/mappedEditBuilder.ts +6 -0
- package/src/feature-libraries/flex-tree/lazyField.ts +13 -14
- package/src/feature-libraries/index.ts +10 -5
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +5 -5
- package/src/feature-libraries/mitigatedChangeFamily.ts +11 -6
- package/src/feature-libraries/modular-schema/comparison.ts +12 -9
- package/src/feature-libraries/modular-schema/defaultRevisionReplacer.ts +70 -0
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +3 -6
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +5 -7
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +1 -1
- package/src/feature-libraries/modular-schema/index.ts +5 -2
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +703 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +89 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +39 -523
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +159 -125
- package/src/feature-libraries/modular-schema/{modularChangeFormat.ts → modularChangeFormatV1.ts} +4 -4
- package/src/feature-libraries/modular-schema/modularChangeFormatV2.ts +34 -0
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +13 -4
- package/src/feature-libraries/node-identifier/mockNodeIdentifierManager.ts +1 -1
- package/src/feature-libraries/object-forest/objectForest.ts +4 -4
- package/src/feature-libraries/optional-field/optionalField.ts +34 -46
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +18 -3
- package/src/feature-libraries/schema-index/codec.ts +30 -90
- package/src/feature-libraries/schema-index/index.ts +2 -4
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +0 -17
- package/src/feature-libraries/schemaChecker.ts +11 -6
- package/src/feature-libraries/sequence-field/compose.ts +17 -13
- package/src/feature-libraries/sequence-field/invert.ts +5 -4
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +15 -9
- package/src/feature-libraries/sequence-field/rebase.ts +26 -18
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +52 -56
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +16 -8
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +4 -2
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +6 -3
- package/src/feature-libraries/sequence-field/utils.ts +46 -27
- package/src/feature-libraries/treeCursorUtils.ts +7 -7
- package/src/feature-libraries/treeTextCursor.ts +2 -2
- package/src/feature-libraries/valueUtilities.ts +16 -8
- package/src/index.ts +4 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/schematizingTreeView.ts +23 -13
- package/src/shared-tree/sharedTree.ts +30 -14
- package/src/shared-tree/sharedTreeChangeCodecs.ts +10 -9
- package/src/shared-tree/sharedTreeChangeEnricher.ts +4 -2
- package/src/shared-tree/sharedTreeChangeFamily.ts +29 -19
- package/src/shared-tree/sharedTreeEditBuilder.ts +9 -5
- package/src/shared-tree/treeAlpha.ts +60 -51
- package/src/shared-tree/treeCheckout.ts +66 -50
- package/src/shared-tree-core/branch.ts +8 -3
- package/src/shared-tree-core/branchCommitEnricher.ts +3 -8
- package/src/shared-tree-core/editManager.ts +1 -1
- package/src/shared-tree-core/editManagerCodecs.ts +9 -4
- package/src/shared-tree-core/editManagerFormatCommons.ts +6 -0
- package/src/shared-tree-core/editManagerFormatV1toV4.ts +3 -1
- package/src/shared-tree-core/editManagerSummarizer.ts +3 -3
- package/src/shared-tree-core/messageCodecV1ToV4.ts +2 -1
- package/src/shared-tree-core/messageCodecVSharedBranches.ts +2 -1
- package/src/shared-tree-core/messageCodecs.ts +8 -4
- package/src/shared-tree-core/messageFormat.ts +6 -1
- package/src/shared-tree-core/messageFormatV1ToV4.ts +16 -2
- package/src/shared-tree-core/sequenceIdUtils.ts +4 -4
- package/src/shared-tree-core/sharedTreeCore.ts +11 -7
- package/src/shared-tree-core/transaction.ts +115 -56
- package/src/shared-tree-core/transactionEnricher.ts +5 -6
- package/src/simple-tree/api/configuration.ts +1 -1
- package/src/simple-tree/api/customTree.ts +14 -10
- package/src/simple-tree/api/discrepancies.ts +23 -17
- package/src/simple-tree/api/index.ts +2 -0
- package/src/simple-tree/api/schemaFactory.ts +11 -7
- package/src/simple-tree/api/schemaFromSimple.ts +18 -9
- package/src/simple-tree/api/simpleSchemaCodec.ts +10 -5
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +17 -13
- package/src/simple-tree/api/simpleTreeIndex.ts +8 -8
- package/src/simple-tree/api/storedSchema.ts +10 -7
- package/src/simple-tree/api/transactionTypes.ts +19 -4
- package/src/simple-tree/api/treeNodeApi.ts +21 -13
- package/src/simple-tree/api/verboseTree.ts +14 -9
- package/src/simple-tree/core/treeNodeKernel.ts +6 -3
- package/src/simple-tree/core/unhydratedFlexTree.ts +22 -17
- package/src/simple-tree/getTreeNodeForField.ts +2 -1
- package/src/simple-tree/index.ts +2 -0
- package/src/simple-tree/leafNodeSchema.ts +8 -5
- package/src/simple-tree/node-kinds/array/arrayNode.ts +23 -23
- package/src/simple-tree/node-kinds/object/objectNode.ts +4 -5
- package/src/simple-tree/node-kinds/record/recordNode.ts +2 -3
- package/src/simple-tree/toStoredSchema.ts +9 -5
- package/src/treeFactory.ts +10 -5
- package/src/util/bTreeUtils.ts +1 -1
- package/src/util/breakable.ts +9 -9
- package/src/util/idAllocator.ts +1 -2
- package/src/util/nestedMap.ts +1 -3
- package/src/util/utils.ts +14 -13
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +0 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +0 -1
package/src/core/index.ts
CHANGED
|
@@ -105,7 +105,7 @@ export {
|
|
|
105
105
|
tryGetChunk,
|
|
106
106
|
type ChunkedCursor,
|
|
107
107
|
DetachedFieldIndexFormatVersion,
|
|
108
|
-
|
|
108
|
+
detachedFieldIndexCodecBuilder,
|
|
109
109
|
} from "./tree/index.js";
|
|
110
110
|
|
|
111
111
|
export {
|
|
@@ -204,7 +204,6 @@ export {
|
|
|
204
204
|
offsetChangeAtomId,
|
|
205
205
|
StableIdSchema,
|
|
206
206
|
subtractChangeAtomIds,
|
|
207
|
-
replaceAtomRevisions,
|
|
208
207
|
replaceChange,
|
|
209
208
|
type RebaseStats,
|
|
210
209
|
type RebaseStatsWithDuration,
|
|
@@ -213,6 +212,7 @@ export {
|
|
|
213
212
|
newChangeAtomIdRangeMap,
|
|
214
213
|
compareRevisions,
|
|
215
214
|
diffHistories,
|
|
215
|
+
type RevisionReplacer,
|
|
216
216
|
} from "./rebase/index.js";
|
|
217
217
|
|
|
218
218
|
export {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import type { Invariant } from "../../util/index.js";
|
|
7
7
|
|
|
8
|
-
import type { RevisionTag } from "./types.js";
|
|
8
|
+
import type { ChangeAtomId, RevisionTag } from "./types.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Rebasing logic for a particular kind of change.
|
|
@@ -89,11 +89,45 @@ export interface ChangeRebaser<TChangeset> {
|
|
|
89
89
|
revisionMetadata: RevisionMetadataSource,
|
|
90
90
|
): TChangeset;
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Retrieves the set of revisions associated with the given change.
|
|
94
|
+
*/
|
|
95
|
+
getRevisions(change: TChangeset): Set<RevisionTag | undefined>;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Produces a changeset that is equivalent to the given `change`, but with all references to its own revisions replaced according to the given `replacer`.
|
|
99
|
+
* @param change - The change to update. Not modified.
|
|
100
|
+
* @param replacer - The replacer to use.
|
|
101
|
+
* @returns A changeset equivalent to `change`, but with all references to its own revision replaced according to `replacer`.
|
|
102
|
+
*/
|
|
103
|
+
changeRevision(change: TChangeset, replacer: RevisionReplacer): TChangeset;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* A type that can update references to a set of obsolete revisions across multiple changesets.
|
|
108
|
+
*/
|
|
109
|
+
export interface RevisionReplacer {
|
|
110
|
+
/**
|
|
111
|
+
* The revision to use in place of the obsolete revisions.
|
|
112
|
+
*/
|
|
113
|
+
readonly updatedRevision: RevisionTag;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Predicate to determine if a revision needs replacing.
|
|
117
|
+
* @param revision - The revision that may need replacing.
|
|
118
|
+
* @returns true iff the given `revision` needs replacing.
|
|
119
|
+
*/
|
|
120
|
+
isObsolete(revision: RevisionTag | undefined): boolean;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Returns the updated ID for the given ID.
|
|
124
|
+
* @param id - The ID to update.
|
|
125
|
+
* @returns an updated ID iff the given `id` needs updating, otherwise returns the given `id`.
|
|
126
|
+
* @remarks
|
|
127
|
+
* This function always maps the same input {@link ChangeAtomId.revision | revision} and {@link ChangeAtomId.localId | local ID} to the same output revision local ID.
|
|
128
|
+
* This means multiple references to the same atom of change will remain consistent after revision replacement.
|
|
129
|
+
*/
|
|
130
|
+
getUpdatedAtomId<T extends ChangeAtomId>(id: T): T;
|
|
97
131
|
}
|
|
98
132
|
|
|
99
133
|
export interface TaggedChange<TChangeset, TTag = RevisionTag | undefined> {
|
package/src/core/rebase/index.ts
CHANGED
|
@@ -27,7 +27,6 @@ export {
|
|
|
27
27
|
offsetChangeAtomId,
|
|
28
28
|
StableIdSchema,
|
|
29
29
|
subtractChangeAtomIds,
|
|
30
|
-
replaceAtomRevisions,
|
|
31
30
|
type ChangeAtomIdRangeMap,
|
|
32
31
|
newChangeAtomIdRangeMap,
|
|
33
32
|
compareRevisions,
|
|
@@ -44,6 +43,7 @@ export {
|
|
|
44
43
|
type TaggedChange,
|
|
45
44
|
type RevisionMetadataSource,
|
|
46
45
|
type RevisionInfo,
|
|
46
|
+
type RevisionReplacer,
|
|
47
47
|
} from "./changeRebaser.js";
|
|
48
48
|
export {
|
|
49
49
|
findAncestor,
|
package/src/core/rebase/types.ts
CHANGED
|
@@ -125,28 +125,16 @@ export function offsetChangeAtomId(id: ChangeAtomId, offset: number): ChangeAtom
|
|
|
125
125
|
return { ...id, localId: brand(id.localId + offset) };
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
export function replaceAtomRevisions(
|
|
129
|
-
id: ChangeAtomId,
|
|
130
|
-
oldRevisions: Set<RevisionTag | undefined>,
|
|
131
|
-
newRevision: RevisionTag | undefined,
|
|
132
|
-
): ChangeAtomId {
|
|
133
|
-
return oldRevisions.has(id.revision) ? atomWithRevision(id, newRevision) : id;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
function atomWithRevision(id: ChangeAtomId, revision: RevisionTag | undefined): ChangeAtomId {
|
|
137
|
-
const updated = { ...id, revision };
|
|
138
|
-
if (revision === undefined) {
|
|
139
|
-
delete updated.revision;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return updated;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
128
|
/**
|
|
146
129
|
* A node in a graph of commits. A commit's parent is the commit on which it was based.
|
|
147
130
|
*/
|
|
148
131
|
export interface GraphCommit<TChange> {
|
|
149
|
-
/**
|
|
132
|
+
/**
|
|
133
|
+
* The tag for this commit.
|
|
134
|
+
* @remarks
|
|
135
|
+
* If this commit is rebased, the corresponding rebased commit will retain this tag.
|
|
136
|
+
* With the exception of transaction commits (which all share the same tag), this tag is unique within a given branch history.
|
|
137
|
+
*/
|
|
150
138
|
readonly revision: RevisionTag;
|
|
151
139
|
/** The change that will result from applying this commit */
|
|
152
140
|
readonly change: TChange;
|
package/src/core/rebase/utils.ts
CHANGED
|
@@ -200,7 +200,7 @@ export function rebaseBranch<TChange>(
|
|
|
200
200
|
const sourceBranchLength = sourcePath.length;
|
|
201
201
|
|
|
202
202
|
// Find where `targetCommit` is in the target branch
|
|
203
|
-
const targetCommitIndex = targetPath.
|
|
203
|
+
const targetCommitIndex = targetPath.indexOf(targetCommit);
|
|
204
204
|
if (targetCommitIndex === -1) {
|
|
205
205
|
// If the targetCommit is not in the target path, then it is either disjoint from `target` or it is behind/at
|
|
206
206
|
// the commit where source and target diverge (ancestor), in which case there is nothing more to rebase
|
|
@@ -292,7 +292,7 @@ export function rebaseBranch<TChange>(
|
|
|
292
292
|
const revInfos = getRevInfoFromTaggedChanges([...targetRebasePath, ...sourcePath]);
|
|
293
293
|
// Note that the `revisionMetadata` gets updated as `revInfos` gets updated.
|
|
294
294
|
const revisionMetadata = revisionMetadataSourceFromInfo(revInfos);
|
|
295
|
-
let editsToCompose: TaggedChange<TChange>[] = targetRebasePath
|
|
295
|
+
let editsToCompose: TaggedChange<TChange>[] = [...targetRebasePath];
|
|
296
296
|
for (const c of sourcePath) {
|
|
297
297
|
const rollback = rollbackFromCommit(changeRebaser, c, mintRevisionTag, true /* cache */);
|
|
298
298
|
if (sourceSet.has(c.revision)) {
|
|
@@ -388,7 +388,7 @@ export function revisionMetadataSourceFromInfo(
|
|
|
388
388
|
};
|
|
389
389
|
|
|
390
390
|
const hasRollback = (revision: RevisionTag): boolean => {
|
|
391
|
-
return revInfos.
|
|
391
|
+
return revInfos.some((info) => info.rollbackOf === revision);
|
|
392
392
|
};
|
|
393
393
|
|
|
394
394
|
return { getIndex, tryGetInfo, hasRollback };
|
|
@@ -394,9 +394,9 @@ export function encodeFieldSchemaV2(schema: TreeFieldStoredSchema): FieldSchemaF
|
|
|
394
394
|
const fieldSchema: FieldSchemaFormatV1 = encodeFieldSchemaV1(schema);
|
|
395
395
|
|
|
396
396
|
// Omit metadata from the output if it is undefined
|
|
397
|
-
return schema.persistedMetadata
|
|
398
|
-
? { ...fieldSchema
|
|
399
|
-
: { ...fieldSchema };
|
|
397
|
+
return schema.persistedMetadata === undefined
|
|
398
|
+
? { ...fieldSchema }
|
|
399
|
+
: { ...fieldSchema, metadata: schema.persistedMetadata };
|
|
400
400
|
}
|
|
401
401
|
|
|
402
402
|
export function decodeFieldSchema(schema: FieldSchemaFormatV2): TreeFieldStoredSchema {
|
|
@@ -424,10 +424,8 @@ export class AnchorSet implements AnchorLocator {
|
|
|
424
424
|
* Does not add a ref!
|
|
425
425
|
*/
|
|
426
426
|
public find(path: UpPath): PathNode | undefined {
|
|
427
|
-
if (path instanceof PathNode) {
|
|
428
|
-
|
|
429
|
-
return path;
|
|
430
|
-
}
|
|
427
|
+
if (path instanceof PathNode && path.anchorSet === this) {
|
|
428
|
+
return path;
|
|
431
429
|
}
|
|
432
430
|
const parent = path.parent ?? this.root;
|
|
433
431
|
const parentPath = this.find(parent);
|
|
@@ -1185,6 +1183,7 @@ class PathNode extends ReferenceCountedBase implements AnchorNode {
|
|
|
1185
1183
|
assert(this.status !== Status.Disposed, 0x41d /* PathNode must not be disposed */);
|
|
1186
1184
|
if (this.isUnreferenced() && this.children.size === 0 && !this.events.hasListeners()) {
|
|
1187
1185
|
if (this.status === Status.Alive) {
|
|
1186
|
+
// eslint-disable-next-line unicorn/prefer-dom-node-remove -- Custom tree structure, not DOM
|
|
1188
1187
|
this.parentPath?.removeChild(this);
|
|
1189
1188
|
}
|
|
1190
1189
|
this.status = Status.Disposed;
|
|
@@ -35,7 +35,7 @@ import type {
|
|
|
35
35
|
Major,
|
|
36
36
|
Minor,
|
|
37
37
|
} from "./detachedFieldIndexTypes.js";
|
|
38
|
-
import {
|
|
38
|
+
import { detachedFieldIndexCodecBuilder } from "./detachedFieldIndexCodecs.js";
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* Readonly interface for {@link DetachedFieldIndex}.
|
|
@@ -120,7 +120,11 @@ export class DetachedFieldIndex implements ReadOnlyDetachedFieldIndex {
|
|
|
120
120
|
jsonValidator: FormatValidatorNoOp,
|
|
121
121
|
minVersionForCollab: FluidClientVersion.v2_0,
|
|
122
122
|
};
|
|
123
|
-
this.codec =
|
|
123
|
+
this.codec = detachedFieldIndexCodecBuilder.build({
|
|
124
|
+
...this.options,
|
|
125
|
+
revisionTagCodec,
|
|
126
|
+
idCompressor,
|
|
127
|
+
});
|
|
124
128
|
}
|
|
125
129
|
|
|
126
130
|
public clone(): DetachedFieldIndex {
|
|
@@ -165,17 +169,17 @@ export class DetachedFieldIndex implements ReadOnlyDetachedFieldIndex {
|
|
|
165
169
|
id: Delta.DetachedNodeId;
|
|
166
170
|
}> {
|
|
167
171
|
for (const [major, innerMap] of this.detachedNodeToField) {
|
|
168
|
-
if (major
|
|
172
|
+
if (major === undefined) {
|
|
169
173
|
for (const [minor, { root, latestRelevantRevision }] of innerMap) {
|
|
170
|
-
yield latestRelevantRevision
|
|
171
|
-
? { id: {
|
|
172
|
-
: { id: {
|
|
174
|
+
yield latestRelevantRevision === undefined
|
|
175
|
+
? { id: { minor }, root }
|
|
176
|
+
: { id: { minor }, root, latestRelevantRevision };
|
|
173
177
|
}
|
|
174
178
|
} else {
|
|
175
179
|
for (const [minor, { root, latestRelevantRevision }] of innerMap) {
|
|
176
|
-
yield latestRelevantRevision
|
|
177
|
-
? { id: { minor }, root
|
|
178
|
-
: { id: { minor }, root };
|
|
180
|
+
yield latestRelevantRevision === undefined
|
|
181
|
+
? { id: { major, minor }, root }
|
|
182
|
+
: { id: { major, minor }, root, latestRelevantRevision };
|
|
179
183
|
}
|
|
180
184
|
}
|
|
181
185
|
}
|
|
@@ -189,71 +193,6 @@ export class DetachedFieldIndex implements ReadOnlyDetachedFieldIndex {
|
|
|
189
193
|
this.latestRelevantRevisionToFields.clear();
|
|
190
194
|
}
|
|
191
195
|
|
|
192
|
-
public updateMajor(current: Major, updated: Major): void {
|
|
193
|
-
// Update latestRelevantRevision information corresponding to `current`
|
|
194
|
-
{
|
|
195
|
-
const inner = this.latestRelevantRevisionToFields.get(current);
|
|
196
|
-
if (inner !== undefined) {
|
|
197
|
-
for (const nodeId of inner.values()) {
|
|
198
|
-
const entry = tryGetFromNestedMap(
|
|
199
|
-
this.detachedNodeToField,
|
|
200
|
-
nodeId.major,
|
|
201
|
-
nodeId.minor,
|
|
202
|
-
);
|
|
203
|
-
assert(
|
|
204
|
-
entry !== undefined,
|
|
205
|
-
0x9b8 /* Inconsistent data: missing detached node entry */,
|
|
206
|
-
);
|
|
207
|
-
setInNestedMap(this.detachedNodeToField, nodeId.major, nodeId.minor, {
|
|
208
|
-
...entry,
|
|
209
|
-
latestRelevantRevision: updated,
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
this.latestRelevantRevisionToFields.delete(current);
|
|
213
|
-
|
|
214
|
-
const updatedInner = this.latestRelevantRevisionToFields.get(updated);
|
|
215
|
-
if (updatedInner !== undefined) {
|
|
216
|
-
for (const [root, nodeId] of inner) {
|
|
217
|
-
updatedInner.set(root, nodeId);
|
|
218
|
-
}
|
|
219
|
-
} else {
|
|
220
|
-
this.latestRelevantRevisionToFields.set(updated, inner);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// Update the major keys corresponding to `current`
|
|
226
|
-
{
|
|
227
|
-
const innerCurrent = this.detachedNodeToField.get(current);
|
|
228
|
-
if (innerCurrent !== undefined) {
|
|
229
|
-
this.detachedNodeToField.delete(current);
|
|
230
|
-
const innerUpdated = this.detachedNodeToField.get(updated);
|
|
231
|
-
if (innerUpdated === undefined) {
|
|
232
|
-
this.detachedNodeToField.set(updated, innerCurrent);
|
|
233
|
-
} else {
|
|
234
|
-
for (const [minor, entry] of innerCurrent) {
|
|
235
|
-
assert(
|
|
236
|
-
innerUpdated.get(minor) === undefined,
|
|
237
|
-
0x7a9 /* Collision during index update */,
|
|
238
|
-
);
|
|
239
|
-
innerUpdated.set(minor, entry);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
for (const [minor, entry] of innerCurrent) {
|
|
244
|
-
const entryInLatest = this.latestRelevantRevisionToFields.get(
|
|
245
|
-
entry.latestRelevantRevision,
|
|
246
|
-
);
|
|
247
|
-
assert(
|
|
248
|
-
entryInLatest !== undefined,
|
|
249
|
-
0x9b9 /* Inconsistent data: missing node entry in latestRelevantRevision */,
|
|
250
|
-
);
|
|
251
|
-
entryInLatest.set(entry.root, { major: updated, minor });
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
|
|
257
196
|
public toFieldKey(id: ForestRootId): FieldKey {
|
|
258
197
|
return brand(`${this.name}-${id}`);
|
|
259
198
|
}
|
|
@@ -3,11 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
type ICodecOptions,
|
|
8
|
-
type IJsonCodec,
|
|
9
|
-
makeVersionedValidatedCodec,
|
|
10
|
-
} from "../../codec/index.js";
|
|
6
|
+
import type { IJsonCodec } from "../../codec/index.js";
|
|
11
7
|
import { hasSingle } from "../../util/index.js";
|
|
12
8
|
|
|
13
9
|
import {
|
|
@@ -30,13 +26,13 @@ export function makeDetachedFieldIndexCodecFromMajorCodec<
|
|
|
30
26
|
TEncodedRevisionTagSchema extends TSchema,
|
|
31
27
|
TVersion extends DetachedFieldIndexFormatVersion,
|
|
32
28
|
>(
|
|
33
|
-
options: ICodecOptions,
|
|
34
29
|
majorCodec: IJsonCodec<Major, TEncodedRevisionTag>,
|
|
35
30
|
version: TVersion,
|
|
36
31
|
encodedRevisionTagSchema: TEncodedRevisionTagSchema,
|
|
37
32
|
) {
|
|
38
33
|
const formatSchema = Format(version, encodedRevisionTagSchema);
|
|
39
|
-
return
|
|
34
|
+
return {
|
|
35
|
+
schema: formatSchema,
|
|
40
36
|
encode: (data: DetachedFieldSummaryData): Static<typeof formatSchema> => {
|
|
41
37
|
const rootsForRevisions: EncodedRootsForRevision[] = [];
|
|
42
38
|
for (const [major, innerMap] of data.data) {
|
|
@@ -84,5 +80,5 @@ export function makeDetachedFieldIndexCodecFromMajorCodec<
|
|
|
84
80
|
maxId: parsed.maxId,
|
|
85
81
|
};
|
|
86
82
|
},
|
|
87
|
-
}
|
|
83
|
+
};
|
|
88
84
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
8
8
|
|
|
9
|
-
import type {
|
|
9
|
+
import type { CodecAndSchema, IJsonCodec } from "../../codec/index.js";
|
|
10
10
|
import {
|
|
11
11
|
type EncodedRevisionTag,
|
|
12
12
|
type RevisionTagCodec,
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
RevisionTagSchema,
|
|
15
15
|
} from "../rebase/index.js";
|
|
16
16
|
|
|
17
|
-
import type { FormatV1 } from "./detachedFieldIndexFormatV1.js";
|
|
18
17
|
import type { DetachedFieldSummaryData, Major } from "./detachedFieldIndexTypes.js";
|
|
19
18
|
import { makeDetachedFieldIndexCodecFromMajorCodec } from "./detachedFieldIndexCodecCommon.js";
|
|
20
19
|
import { DetachedFieldIndexFormatVersion } from "./detachedFieldIndexFormatCommon.js";
|
|
@@ -23,7 +22,6 @@ import { brand } from "../../util/index.js";
|
|
|
23
22
|
class MajorCodec implements IJsonCodec<Major, EncodedRevisionTag> {
|
|
24
23
|
public constructor(
|
|
25
24
|
private readonly revisionTagCodec: RevisionTagCodec,
|
|
26
|
-
private readonly options: ICodecOptions,
|
|
27
25
|
private readonly idCompressor: IIdCompressor,
|
|
28
26
|
) {}
|
|
29
27
|
|
|
@@ -69,12 +67,10 @@ class MajorCodec implements IJsonCodec<Major, EncodedRevisionTag> {
|
|
|
69
67
|
|
|
70
68
|
export function makeDetachedNodeToFieldCodecV1(
|
|
71
69
|
revisionTagCodec: RevisionTagCodec,
|
|
72
|
-
options: ICodecOptions,
|
|
73
70
|
idCompressor: IIdCompressor,
|
|
74
|
-
):
|
|
75
|
-
const majorCodec = new MajorCodec(revisionTagCodec,
|
|
71
|
+
): CodecAndSchema<DetachedFieldSummaryData> {
|
|
72
|
+
const majorCodec = new MajorCodec(revisionTagCodec, idCompressor);
|
|
76
73
|
return makeDetachedFieldIndexCodecFromMajorCodec(
|
|
77
|
-
options,
|
|
78
74
|
majorCodec,
|
|
79
75
|
brand(DetachedFieldIndexFormatVersion.v1),
|
|
80
76
|
RevisionTagSchema,
|
|
@@ -6,20 +6,18 @@
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import type { IIdCompressor, StableId } from "@fluidframework/id-compressor";
|
|
8
8
|
|
|
9
|
-
import type {
|
|
9
|
+
import type { CodecAndSchema, IJsonCodec } from "../../codec/index.js";
|
|
10
10
|
import type { EncodedRevisionTag, RevisionTagCodec, RevisionTag } from "../rebase/index.js";
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { StableOrFinalRevisionTag } from "./detachedFieldIndexFormatV2.js";
|
|
13
13
|
import type { DetachedFieldSummaryData, Major } from "./detachedFieldIndexTypes.js";
|
|
14
14
|
import { makeDetachedFieldIndexCodecFromMajorCodec } from "./detachedFieldIndexCodecCommon.js";
|
|
15
15
|
import { isStableId } from "@fluidframework/id-compressor/internal";
|
|
16
16
|
import { DetachedFieldIndexFormatVersion } from "./detachedFieldIndexFormatCommon.js";
|
|
17
|
-
import { brand } from "../../util/index.js";
|
|
18
17
|
|
|
19
18
|
class MajorCodec implements IJsonCodec<Major> {
|
|
20
19
|
public constructor(
|
|
21
20
|
private readonly revisionTagCodec: RevisionTagCodec,
|
|
22
|
-
private readonly options: ICodecOptions,
|
|
23
21
|
private readonly idCompressor: IIdCompressor,
|
|
24
22
|
) {}
|
|
25
23
|
|
|
@@ -57,14 +55,12 @@ class MajorCodec implements IJsonCodec<Major> {
|
|
|
57
55
|
|
|
58
56
|
export function makeDetachedNodeToFieldCodecV2(
|
|
59
57
|
revisionTagCodec: RevisionTagCodec,
|
|
60
|
-
options: ICodecOptions,
|
|
61
58
|
idCompressor: IIdCompressor,
|
|
62
|
-
):
|
|
63
|
-
const majorCodec = new MajorCodec(revisionTagCodec,
|
|
59
|
+
): CodecAndSchema<DetachedFieldSummaryData> {
|
|
60
|
+
const majorCodec = new MajorCodec(revisionTagCodec, idCompressor);
|
|
64
61
|
return makeDetachedFieldIndexCodecFromMajorCodec(
|
|
65
|
-
options,
|
|
66
62
|
majorCodec,
|
|
67
|
-
|
|
63
|
+
DetachedFieldIndexFormatVersion.v2,
|
|
68
64
|
StableOrFinalRevisionTag,
|
|
69
65
|
);
|
|
70
66
|
}
|
|
@@ -4,79 +4,36 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
getConfigForMinVersionForCollab,
|
|
10
|
-
lowestMinVersionForCollab,
|
|
11
|
-
} from "@fluidframework/runtime-utils/internal";
|
|
7
|
+
import { lowestMinVersionForCollab } from "@fluidframework/runtime-utils/internal";
|
|
12
8
|
|
|
13
9
|
import {
|
|
14
|
-
|
|
10
|
+
ClientVersionDispatchingCodecBuilder,
|
|
15
11
|
type CodecWriteOptions,
|
|
16
12
|
FluidClientVersion,
|
|
17
|
-
type ICodecFamily,
|
|
18
|
-
type IJsonCodec,
|
|
19
|
-
makeCodecFamily,
|
|
20
|
-
makeVersionDispatchingCodec,
|
|
21
13
|
} from "../../codec/index.js";
|
|
22
14
|
import type { RevisionTagCodec } from "../rebase/index.js";
|
|
23
15
|
|
|
24
16
|
import { makeDetachedNodeToFieldCodecV1 } from "./detachedFieldIndexCodecV1.js";
|
|
25
17
|
import { makeDetachedNodeToFieldCodecV2 } from "./detachedFieldIndexCodecV2.js";
|
|
26
|
-
import type { DetachedFieldSummaryData } from "./detachedFieldIndexTypes.js";
|
|
27
18
|
import { DetachedFieldIndexFormatVersion } from "./detachedFieldIndexFormatCommon.js";
|
|
28
|
-
import { brand } from "../../util/index.js";
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Convert a MinimumVersionForCollab to a version for detached field codecs.
|
|
32
|
-
* @param clientVersion - The MinimumVersionForCollab to convert.
|
|
33
|
-
* @returns The detached field codec version that corresponds to the provided MinimumVersionForCollab.
|
|
34
|
-
*/
|
|
35
|
-
function clientVersionToDetachedFieldVersion(
|
|
36
|
-
clientVersion: MinimumVersionForCollab,
|
|
37
|
-
): DetachedFieldIndexFormatVersion {
|
|
38
|
-
return brand(
|
|
39
|
-
getConfigForMinVersionForCollab(clientVersion, {
|
|
40
|
-
[lowestMinVersionForCollab]: DetachedFieldIndexFormatVersion.v1,
|
|
41
|
-
[FluidClientVersion.v2_52]: DetachedFieldIndexFormatVersion.v2,
|
|
42
|
-
}),
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function makeDetachedFieldIndexCodec(
|
|
47
|
-
revisionTagCodec: RevisionTagCodec,
|
|
48
|
-
options: CodecWriteOptions,
|
|
49
|
-
idCompressor: IIdCompressor,
|
|
50
|
-
): IJsonCodec<DetachedFieldSummaryData> {
|
|
51
|
-
const family = makeDetachedFieldIndexCodecFamily(revisionTagCodec, options, idCompressor);
|
|
52
|
-
return makeVersionDispatchingCodec(family, {
|
|
53
|
-
...options,
|
|
54
|
-
writeVersion: clientVersionToDetachedFieldVersion(options.minVersionForCollab),
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
19
|
|
|
58
|
-
|
|
59
|
-
revisionTagCodec: RevisionTagCodec
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
): ICodecFamily<DetachedFieldSummaryData> {
|
|
63
|
-
return makeCodecFamily([
|
|
64
|
-
[
|
|
65
|
-
DetachedFieldIndexFormatVersion.v1,
|
|
66
|
-
makeDetachedNodeToFieldCodecV1(revisionTagCodec, options, idCompressor),
|
|
67
|
-
],
|
|
68
|
-
[
|
|
69
|
-
DetachedFieldIndexFormatVersion.v2,
|
|
70
|
-
makeDetachedNodeToFieldCodecV2(revisionTagCodec, options, idCompressor),
|
|
71
|
-
],
|
|
72
|
-
]);
|
|
73
|
-
}
|
|
20
|
+
type BuildData = CodecWriteOptions & {
|
|
21
|
+
revisionTagCodec: RevisionTagCodec;
|
|
22
|
+
idCompressor: IIdCompressor;
|
|
23
|
+
};
|
|
74
24
|
|
|
75
|
-
export
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
25
|
+
export const detachedFieldIndexCodecBuilder = ClientVersionDispatchingCodecBuilder.build(
|
|
26
|
+
"DetachedFieldIndex",
|
|
27
|
+
{
|
|
28
|
+
[lowestMinVersionForCollab]: {
|
|
29
|
+
formatVersion: DetachedFieldIndexFormatVersion.v1,
|
|
30
|
+
codec: (buildData: BuildData) =>
|
|
31
|
+
makeDetachedNodeToFieldCodecV1(buildData.revisionTagCodec, buildData.idCompressor),
|
|
32
|
+
},
|
|
33
|
+
[FluidClientVersion.v2_52]: {
|
|
34
|
+
formatVersion: DetachedFieldIndexFormatVersion.v2,
|
|
35
|
+
codec: (buildData: BuildData) =>
|
|
36
|
+
makeDetachedNodeToFieldCodecV2(buildData.revisionTagCodec, buildData.idCompressor),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
);
|
package/src/core/tree/index.ts
CHANGED
|
@@ -123,7 +123,7 @@ export {
|
|
|
123
123
|
type ReadOnlyDetachedFieldIndex,
|
|
124
124
|
} from "./detachedFieldIndex.js";
|
|
125
125
|
|
|
126
|
-
export {
|
|
126
|
+
export { detachedFieldIndexCodecBuilder } from "./detachedFieldIndexCodecs.js";
|
|
127
127
|
export { DetachedFieldIndexFormatVersion } from "./detachedFieldIndexFormatCommon.js";
|
|
128
128
|
export { type FormatV1 } from "./detachedFieldIndexFormatV1.js";
|
|
129
129
|
|
package/src/core/tree/mapTree.ts
CHANGED
|
@@ -50,7 +50,7 @@ export function deepCopyMapTree(mapTree: MinimalMapTreeNodeView): ExclusiveMapTr
|
|
|
50
50
|
): ExclusiveMapTree {
|
|
51
51
|
return {
|
|
52
52
|
type: child.type,
|
|
53
|
-
...(child.value
|
|
53
|
+
...(child.value === undefined ? {} : { value: child.value }),
|
|
54
54
|
fields,
|
|
55
55
|
};
|
|
56
56
|
}
|
|
@@ -140,6 +140,7 @@ export class SparseNode<TData> implements UpPath {
|
|
|
140
140
|
* Allowed when dangling (but not when disposed).
|
|
141
141
|
*/
|
|
142
142
|
private disposeThis(): void {
|
|
143
|
+
// eslint-disable-next-line unicorn/prefer-dom-node-remove -- Custom tree structure, not DOM
|
|
143
144
|
this.parentPath?.removeChild(this);
|
|
144
145
|
}
|
|
145
146
|
}
|
|
@@ -165,15 +165,11 @@ export function genericTreeDeleteIfEmpty<T>(
|
|
|
165
165
|
removeMapObject: boolean,
|
|
166
166
|
): void {
|
|
167
167
|
const children = getGenericTreeFieldMap(node, false);
|
|
168
|
-
if (Object.prototype.hasOwnProperty.call(children, key)) {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if (Object.keys(children).length === 0) {
|
|
174
|
-
delete node.fields;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
168
|
+
if (Object.prototype.hasOwnProperty.call(children, key) && children[key]?.length === 0) {
|
|
169
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
170
|
+
delete children[key];
|
|
171
|
+
if (removeMapObject && Object.keys(children).length === 0) {
|
|
172
|
+
delete node.fields;
|
|
177
173
|
}
|
|
178
174
|
}
|
|
179
175
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { ChangeAtomId, ChangesetLocalId, RevisionTag } from "../core/index.js";
|
|
7
|
+
import type { TupleBTree } from "../util/index.js";
|
|
8
|
+
|
|
9
|
+
export type ChangeAtomIdBTree<V> = TupleBTree<[RevisionTag | undefined, ChangesetLocalId], V>;
|
|
10
|
+
|
|
11
|
+
export function getFromChangeAtomIdMap<T>(
|
|
12
|
+
map: ChangeAtomIdBTree<T>,
|
|
13
|
+
id: ChangeAtomId,
|
|
14
|
+
): T | undefined {
|
|
15
|
+
return map.get([id.revision, id.localId]);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function setInChangeAtomIdMap<T>(
|
|
19
|
+
map: ChangeAtomIdBTree<T>,
|
|
20
|
+
id: ChangeAtomId,
|
|
21
|
+
value: T,
|
|
22
|
+
): void {
|
|
23
|
+
map.set([id.revision, id.localId], value);
|
|
24
|
+
}
|
|
@@ -471,7 +471,7 @@ export class BasicChunkCursor extends SynchronousCursor implements ChunkedCursor
|
|
|
471
471
|
0x55d /* can only initNestedCursor when in Nodes */,
|
|
472
472
|
);
|
|
473
473
|
const chunk = (this.siblings as TreeChunk[])[this.indexOfChunk] ?? oob();
|
|
474
|
-
this.nestedCursor =
|
|
474
|
+
this.nestedCursor = chunk instanceof BasicChunk ? undefined : chunk.cursor();
|
|
475
475
|
this.nestedCursor?.enterNode(this.indexWithinChunk);
|
|
476
476
|
}
|
|
477
477
|
|
|
@@ -196,7 +196,11 @@ export class ChunkedForest implements IEditableForest {
|
|
|
196
196
|
assertValidRange(source, sourceField);
|
|
197
197
|
const newField = sourceField.splice(source.start, source.end - source.start);
|
|
198
198
|
|
|
199
|
-
if (destination
|
|
199
|
+
if (destination === undefined) {
|
|
200
|
+
for (const child of newField) {
|
|
201
|
+
child.referenceRemoved();
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
200
204
|
assert(
|
|
201
205
|
!this.forest.roots.fields.has(destination),
|
|
202
206
|
0x7af /* Destination must be a new empty detached field */,
|
|
@@ -204,10 +208,6 @@ export class ChunkedForest implements IEditableForest {
|
|
|
204
208
|
if (newField.length > 0) {
|
|
205
209
|
this.forest.roots.fields.set(destination, newField);
|
|
206
210
|
}
|
|
207
|
-
} else {
|
|
208
|
-
for (const child of newField) {
|
|
209
|
-
child.referenceRemoved();
|
|
210
|
-
}
|
|
211
211
|
}
|
|
212
212
|
// This check is performed after the transfer to ensure that the field is not removed in scenarios
|
|
213
213
|
// where the source and destination are the same.
|