@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
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import { createIdCompressor } from "@fluidframework/id-compressor/internal";
|
|
13
13
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
14
14
|
import type { IFluidHandle } from "@fluidframework/core-interfaces";
|
|
15
|
-
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
15
|
+
import type { IIdCompressor, SessionSpaceCompressedId } from "@fluidframework/id-compressor";
|
|
16
16
|
|
|
17
17
|
import {
|
|
18
18
|
asIndex,
|
|
@@ -59,6 +59,7 @@ import {
|
|
|
59
59
|
contentSchemaSymbol,
|
|
60
60
|
type TreeNodeSchema,
|
|
61
61
|
getUnhydratedContext,
|
|
62
|
+
type TreeBranchAlpha,
|
|
62
63
|
} from "../simple-tree/index.js";
|
|
63
64
|
import { brand, extractFromOpaque, type JsonCompatible } from "../util/index.js";
|
|
64
65
|
import {
|
|
@@ -83,32 +84,32 @@ import {
|
|
|
83
84
|
type Observer,
|
|
84
85
|
withObservation,
|
|
85
86
|
} from "../feature-libraries/index.js";
|
|
86
|
-
import type { TreeBranchAlpha } from "../simple-tree/index.js";
|
|
87
87
|
import { independentInitializedView, type ViewContent } from "./independentView.js";
|
|
88
88
|
import { SchematizingSimpleTreeView, ViewSlot } from "./schematizingTreeView.js";
|
|
89
89
|
import { isFluidHandle } from "@fluidframework/runtime-utils";
|
|
90
90
|
|
|
91
91
|
const identifier: TreeIdentifierUtils = (node: TreeNode): string | undefined => {
|
|
92
|
-
|
|
93
|
-
if (typeof nodeIdentifier === "number") {
|
|
94
|
-
throw new TypeError("identifier should be uncompressed.");
|
|
95
|
-
}
|
|
96
|
-
return nodeIdentifier;
|
|
92
|
+
return getIdentifierFromNode(node, "uncompressed");
|
|
97
93
|
};
|
|
98
94
|
|
|
99
95
|
identifier.shorten = (branch: TreeBranch, nodeIdentifier: string): number | undefined => {
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
assert(
|
|
97
|
+
branch instanceof SchematizingSimpleTreeView,
|
|
98
|
+
0xcac /* Unexpected branch implementation */,
|
|
99
|
+
);
|
|
100
|
+
const { nodeKeyManager } = branch;
|
|
102
101
|
const localNodeKey = nodeKeyManager.tryLocalizeNodeIdentifier(nodeIdentifier);
|
|
103
|
-
return localNodeKey
|
|
102
|
+
return localNodeKey === undefined ? undefined : extractFromOpaque(localNodeKey);
|
|
104
103
|
};
|
|
105
104
|
|
|
106
105
|
identifier.lengthen = (branch: TreeBranch, nodeIdentifier: number): string => {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
nodeIdentifier as unknown as LocalNodeIdentifier,
|
|
106
|
+
assert(
|
|
107
|
+
branch instanceof SchematizingSimpleTreeView,
|
|
108
|
+
0xcad /* Unexpected branch implementation */,
|
|
111
109
|
);
|
|
110
|
+
const { nodeKeyManager } = branch;
|
|
111
|
+
const local = brand<LocalNodeIdentifier>(nodeIdentifier as SessionSpaceCompressedId);
|
|
112
|
+
return nodeKeyManager.stabilizeNodeIdentifier(local);
|
|
112
113
|
};
|
|
113
114
|
|
|
114
115
|
identifier.getShort = (node: TreeNode): number | undefined => {
|
|
@@ -125,64 +126,70 @@ identifier.create = (branch: TreeBranch): string => {
|
|
|
125
126
|
Object.freeze(identifier);
|
|
126
127
|
|
|
127
128
|
/**
|
|
128
|
-
* A utility interface for
|
|
129
|
-
*
|
|
129
|
+
* A utility interface for manipulating node identifiers.
|
|
130
130
|
* @remarks
|
|
131
131
|
* This provides methods to:
|
|
132
132
|
*
|
|
133
|
-
* - Retrieve
|
|
134
|
-
*
|
|
135
|
-
* - Convert between
|
|
136
|
-
*
|
|
137
|
-
* - Generates long identifiers
|
|
133
|
+
* - Retrieve identifiers from nodes
|
|
134
|
+
* - Generate identifiers
|
|
135
|
+
* - Convert between short numeric identifiers and long string identifiers
|
|
138
136
|
*
|
|
139
137
|
* @alpha @sealed
|
|
140
138
|
*/
|
|
141
139
|
export interface TreeIdentifierUtils {
|
|
142
140
|
/**
|
|
143
|
-
* Returns the
|
|
144
|
-
*
|
|
141
|
+
* Returns the identifier of a node.
|
|
142
|
+
* @remarks
|
|
143
|
+
* This returns the node's UUID if and only if it has exactly one {@link SchemaFactory.identifier | identifier field}.
|
|
144
|
+
* If it has no identifier field, this returns undefined.
|
|
145
|
+
* If it has more than one identifier field, this throws an error.
|
|
146
|
+
* In that case, query the identifier fields directly instead.
|
|
145
147
|
*
|
|
146
148
|
* @param node - The TreeNode you want to get the identifier from,
|
|
147
149
|
*/
|
|
148
150
|
(node: TreeNode): string | undefined;
|
|
149
151
|
|
|
150
152
|
/**
|
|
151
|
-
* Returns the shortened identifier as a number given
|
|
152
|
-
*
|
|
153
|
-
* If the
|
|
153
|
+
* Returns the shortened identifier as a number given a UUID known by the id compressor on the branch.
|
|
154
|
+
* @remarks
|
|
155
|
+
* If the given string is not a valid identifier and/or was not generated by the SharedTree, this will return `undefined`.
|
|
156
|
+
*
|
|
157
|
+
* See {@link TreeIdentifierUtils.getShort} for additional details about shortened identifiers.
|
|
154
158
|
*
|
|
155
|
-
* This method is the inverse of {@link TreeIdentifierUtils.lengthen}.
|
|
156
|
-
* and then immediately pass it to {@link TreeIdentifierUtils.lengthen}, you will get the original string back.
|
|
159
|
+
* This method is the inverse of {@link TreeIdentifierUtils.lengthen}.
|
|
160
|
+
* If you shorten an identifier and then immediately pass it to {@link TreeIdentifierUtils.lengthen}, you will get the original string back.
|
|
157
161
|
*
|
|
158
|
-
* @param branch -
|
|
159
|
-
* @param nodeIdentifier - the stable identifier
|
|
162
|
+
* @param branch - The branch (and/or view) of the SharedTree that will perform the compression.
|
|
163
|
+
* @param nodeIdentifier - the stable identifier to be shortened.
|
|
160
164
|
*/
|
|
161
165
|
shorten(branch: TreeBranch, nodeIdentifier: string): number | undefined;
|
|
162
166
|
|
|
163
167
|
/**
|
|
164
|
-
* Returns the stable id as a string if the identifier is decompressible and known by the id compressor.
|
|
168
|
+
* Returns the stable id as a string if the identifier is decompressible and known by the id compressor.
|
|
169
|
+
* @remarks
|
|
170
|
+
* If the given number does not correspond to a valid identifier generated by the SharedTree, this will return `undefined`.
|
|
165
171
|
*
|
|
166
|
-
* This method is the inverse of {@link TreeIdentifierUtils.shorten}.
|
|
167
|
-
* and then immediately pass it to {@link TreeIdentifierUtils.shorten}, you will get the original short identifier back.
|
|
172
|
+
* This method is the inverse of {@link TreeIdentifierUtils.shorten}.
|
|
173
|
+
* If you lengthen an identifier and then immediately pass it to {@link TreeIdentifierUtils.shorten}, you will get the original short identifier back.
|
|
168
174
|
*
|
|
169
|
-
* @param branch -
|
|
170
|
-
* @param nodeIdentifier - The local identifier
|
|
175
|
+
* @param branch - The branch (and/or view) of the SharedTree that will perform the decompression.
|
|
176
|
+
* @param nodeIdentifier - The local identifier to be lengthened.
|
|
171
177
|
*/
|
|
172
178
|
lengthen(branch: TreeBranch, nodeIdentifier: number): string;
|
|
173
179
|
|
|
174
180
|
/**
|
|
175
|
-
* Returns the {@link
|
|
181
|
+
* Returns the {@link TreeIdentifierUtils.shorten | shortened} form of the identifier {@link SchemaFactory.identifier | identifier} for the given node.
|
|
176
182
|
* @remarks
|
|
177
183
|
* If the node is {@link Unhydrated | hydrated} and its identifier is a valid UUID that was automatically generated by the SharedTree it is part of (or something else using the same {@link @fluidframework/id-compressor#IIdCompressor}), then this will return a process-unique integer corresponding to that identifier.
|
|
178
184
|
* This is useful for performance-sensitive scenarios involving many nodes with identifiers that need to be compactly retained in memory or used for efficient lookup.
|
|
179
|
-
* Note that automatically generated identifiers that were accessed before the node was hydrated will
|
|
185
|
+
* Note that automatically generated identifiers that were accessed before the node was hydrated will not yield a short identifier until after hydration.
|
|
180
186
|
*
|
|
181
|
-
* If the node's identifier is any other user-provided string, then this will return undefined
|
|
187
|
+
* If the node's identifier is any other user-provided string, then this will return `undefined`.
|
|
182
188
|
*
|
|
183
189
|
* If the node has no identifier (that is, it has no {@link SchemaFactory.identifier | identifier} field), then this returns `undefined`.
|
|
184
190
|
*
|
|
185
191
|
* If the node has more than one identifier, then this will throw an error.
|
|
192
|
+
* In that case, retrieve the identifiers individually via their fields instead.
|
|
186
193
|
*
|
|
187
194
|
* The returned integer should not be serialized or preserved outside of the current process.
|
|
188
195
|
* Its lifetime is that of the current in-memory instance of the FF container for this client, and it is not guaranteed to be unique or stable outside of that context.
|
|
@@ -191,10 +198,11 @@ export interface TreeIdentifierUtils {
|
|
|
191
198
|
getShort(node: TreeNode): number | undefined;
|
|
192
199
|
|
|
193
200
|
/**
|
|
194
|
-
* Creates
|
|
195
|
-
*
|
|
201
|
+
* Creates a new identifier.
|
|
202
|
+
* @remarks
|
|
203
|
+
* The returned UUID string can be {@link TreeIdentifierUtils.shorten | shortened} for high-performance scenarios.
|
|
196
204
|
*
|
|
197
|
-
* @param branch -
|
|
205
|
+
* @param branch - The branch (and/or view) of the SharedTree that will generate and manage the identifier.
|
|
198
206
|
*/
|
|
199
207
|
create(branch: TreeBranch): string;
|
|
200
208
|
}
|
|
@@ -629,12 +637,12 @@ class NodeSubscription {
|
|
|
629
637
|
return;
|
|
630
638
|
}
|
|
631
639
|
const subscription = subscriptions.get(flexNode);
|
|
632
|
-
if (subscription
|
|
633
|
-
// Already subscribed to this node.
|
|
634
|
-
subscription.keys = undefined; // Now subscribed to all keys.
|
|
635
|
-
} else {
|
|
640
|
+
if (subscription === undefined) {
|
|
636
641
|
const newSubscription = new NodeSubscription(invalidate, flexNode);
|
|
637
642
|
subscriptions.set(flexNode, newSubscription);
|
|
643
|
+
} else {
|
|
644
|
+
// Already subscribed to this node.
|
|
645
|
+
subscription.keys = undefined; // Now subscribed to all keys.
|
|
638
646
|
}
|
|
639
647
|
},
|
|
640
648
|
observeNodeField(flexNode: FlexTreeNode, key: FieldKey): void {
|
|
@@ -643,15 +651,15 @@ class NodeSubscription {
|
|
|
643
651
|
return;
|
|
644
652
|
}
|
|
645
653
|
const subscription = subscriptions.get(flexNode);
|
|
646
|
-
if (subscription
|
|
654
|
+
if (subscription === undefined) {
|
|
655
|
+
const newSubscription = new NodeSubscription(invalidate, flexNode);
|
|
656
|
+
newSubscription.keys = new Set([key]);
|
|
657
|
+
subscriptions.set(flexNode, newSubscription);
|
|
658
|
+
} else {
|
|
647
659
|
// Already subscribed to this node: if not subscribed to all keys, subscribe to this one.
|
|
648
660
|
// TODO:Performance: due to how JavaScript set ordering works,
|
|
649
661
|
// it might be faster to check `has` and only add if not present in case the same field is viewed many times.
|
|
650
662
|
subscription.keys?.add(key);
|
|
651
|
-
} else {
|
|
652
|
-
const newSubscription = new NodeSubscription(invalidate, flexNode);
|
|
653
|
-
newSubscription.keys = new Set([key]);
|
|
654
|
-
subscriptions.set(flexNode, newSubscription);
|
|
655
663
|
}
|
|
656
664
|
},
|
|
657
665
|
observeParentOf(node: FlexTreeNode): void {
|
|
@@ -943,11 +951,12 @@ export const TreeAlpha: TreeAlpha = {
|
|
|
943
951
|
|
|
944
952
|
return getOrCreateNodeFromInnerUnboxedNode(childFlexTree);
|
|
945
953
|
}
|
|
946
|
-
case NodeKind.Map:
|
|
954
|
+
case NodeKind.Map: {
|
|
947
955
|
if (typeof propertyKey !== "string") {
|
|
948
956
|
// Map nodes only support string keys.
|
|
949
957
|
return undefined;
|
|
950
958
|
}
|
|
959
|
+
}
|
|
951
960
|
// Fall through
|
|
952
961
|
case NodeKind.Record:
|
|
953
962
|
case NodeKind.Object: {
|
|
@@ -11,7 +11,11 @@ import {
|
|
|
11
11
|
UsageError,
|
|
12
12
|
type ITelemetryLoggerExt,
|
|
13
13
|
} from "@fluidframework/telemetry-utils/internal";
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
FluidClientVersion,
|
|
16
|
+
FormatValidatorNoOp,
|
|
17
|
+
type CodecWriteOptions,
|
|
18
|
+
} from "../codec/index.js";
|
|
15
19
|
import {
|
|
16
20
|
type Anchor,
|
|
17
21
|
type AnchorLocator,
|
|
@@ -300,21 +304,23 @@ export function createTreeCheckout(
|
|
|
300
304
|
logger?: ITelemetryLoggerExt;
|
|
301
305
|
breaker?: Breakable;
|
|
302
306
|
disposeForksAfterTransaction?: boolean;
|
|
307
|
+
codecOptions?: Partial<CodecWriteOptions>;
|
|
303
308
|
},
|
|
304
309
|
): TreeCheckout {
|
|
305
310
|
const breaker = args?.breaker ?? new Breakable("TreeCheckout");
|
|
306
311
|
const schema = args?.schema ?? new TreeStoredSchemaRepository();
|
|
307
312
|
const forest = args?.forest ?? buildForest(breaker, schema);
|
|
308
|
-
const defaultCodecOptions = {
|
|
313
|
+
const defaultCodecOptions: CodecWriteOptions = {
|
|
309
314
|
jsonValidator: FormatValidatorNoOp,
|
|
310
315
|
minVersionForCollab: FluidClientVersion.v2_0,
|
|
311
316
|
};
|
|
317
|
+
const codecOptions: CodecWriteOptions = { ...defaultCodecOptions, ...args?.codecOptions };
|
|
312
318
|
const changeFamily =
|
|
313
319
|
args?.changeFamily ??
|
|
314
320
|
new SharedTreeChangeFamily(
|
|
315
321
|
revisionTagCodec,
|
|
316
|
-
args?.fieldBatchCodec ?? makeFieldBatchCodec(
|
|
317
|
-
|
|
322
|
+
args?.fieldBatchCodec ?? makeFieldBatchCodec(codecOptions),
|
|
323
|
+
codecOptions,
|
|
318
324
|
args?.chunkCompressionStrategy,
|
|
319
325
|
idCompressor,
|
|
320
326
|
);
|
|
@@ -449,42 +455,32 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
449
455
|
private createTransactionStack(
|
|
450
456
|
branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>,
|
|
451
457
|
): SquashingTransactionStack<SharedTreeEditBuilder, SharedTreeChange> {
|
|
452
|
-
return new SquashingTransactionStack(
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
},
|
|
464
|
-
() => {
|
|
465
|
-
const disposeForks = this.disposeForksAfterTransaction
|
|
466
|
-
? trackForksForDisposal(this)
|
|
467
|
-
: undefined;
|
|
468
|
-
// When each transaction is started, make a restorable checkpoint of the current state of removed roots
|
|
469
|
-
const restoreRemovedRoots = this._removedRoots.createCheckpoint();
|
|
470
|
-
return (result) => {
|
|
471
|
-
switch (result) {
|
|
472
|
-
case TransactionResult.Abort:
|
|
473
|
-
restoreRemovedRoots();
|
|
474
|
-
break;
|
|
475
|
-
case TransactionResult.Commit:
|
|
476
|
-
if (!this.transaction.isInProgress()) {
|
|
477
|
-
// 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.
|
|
478
|
-
this.validateCommit(this.#transaction.branch.getHead());
|
|
479
|
-
}
|
|
480
|
-
break;
|
|
481
|
-
default:
|
|
482
|
-
unreachableCase(result);
|
|
458
|
+
return new SquashingTransactionStack(branch, this.mintRevisionTag, () => {
|
|
459
|
+
const disposeForks = this.disposeForksAfterTransaction
|
|
460
|
+
? trackForksForDisposal(this)
|
|
461
|
+
: undefined;
|
|
462
|
+
// When each transaction is started, make a restorable checkpoint of the current state of removed roots
|
|
463
|
+
const restoreRemovedRoots = this._removedRoots.createCheckpoint();
|
|
464
|
+
return (result) => {
|
|
465
|
+
switch (result) {
|
|
466
|
+
case TransactionResult.Abort: {
|
|
467
|
+
restoreRemovedRoots();
|
|
468
|
+
break;
|
|
483
469
|
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
470
|
+
case TransactionResult.Commit: {
|
|
471
|
+
if (!this.transaction.isInProgress()) {
|
|
472
|
+
// 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.
|
|
473
|
+
this.validateCommit(this.#transaction.branch.getHead());
|
|
474
|
+
}
|
|
475
|
+
break;
|
|
476
|
+
}
|
|
477
|
+
default: {
|
|
478
|
+
unreachableCase(result);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
disposeForks?.();
|
|
482
|
+
};
|
|
483
|
+
});
|
|
488
484
|
}
|
|
489
485
|
|
|
490
486
|
public exportVerbose(): VerboseTree | undefined {
|
|
@@ -822,6 +818,11 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
822
818
|
this.checkNotDisposed(
|
|
823
819
|
"The parent branch has already been disposed and can no longer create new branches.",
|
|
824
820
|
);
|
|
821
|
+
// Branching after an unfinished transaction would expose the application to a state where its invariants may be violated.
|
|
822
|
+
if (this.transaction.isInProgress()) {
|
|
823
|
+
throw new UsageError("A view cannot be forked while it has a pending transaction.");
|
|
824
|
+
}
|
|
825
|
+
|
|
825
826
|
this.editLock.checkUnlocked("Branching");
|
|
826
827
|
const anchors = new AnchorSet();
|
|
827
828
|
const branch = this.#transaction.activeBranch.fork();
|
|
@@ -879,10 +880,16 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
879
880
|
"The source of the branch rebase has been disposed and cannot be rebased.",
|
|
880
881
|
);
|
|
881
882
|
this.editLock.checkUnlocked("Rebasing");
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
883
|
+
|
|
884
|
+
if (this.transaction.isInProgress()) {
|
|
885
|
+
throw new UsageError(
|
|
886
|
+
"Views cannot be rebased onto a view that has a pending transaction.",
|
|
887
|
+
);
|
|
888
|
+
}
|
|
889
|
+
if (checkout.transaction.isInProgress()) {
|
|
890
|
+
throw new UsageError("A view cannot be rebased while it has a pending transaction.");
|
|
891
|
+
}
|
|
892
|
+
|
|
886
893
|
assert(
|
|
887
894
|
!checkout.isSharedBranch,
|
|
888
895
|
0xa5d /* Shared branches cannot be rebased onto another branch. */,
|
|
@@ -908,12 +915,15 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
908
915
|
"The source of the branch merge has been disposed and cannot be merged.",
|
|
909
916
|
);
|
|
910
917
|
this.editLock.checkUnlocked("Merging");
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
918
|
+
if (this.transaction.isInProgress()) {
|
|
919
|
+
throw new UsageError(
|
|
920
|
+
"Views cannot be merged into a view while it has a pending transaction.",
|
|
921
|
+
);
|
|
922
|
+
}
|
|
923
|
+
if (checkout.transaction.isInProgress()) {
|
|
924
|
+
throw new UsageError(
|
|
925
|
+
"Views with an open transaction cannot be merged into another view.",
|
|
926
|
+
);
|
|
917
927
|
}
|
|
918
928
|
this.#transaction.activeBranch.merge(checkout.#transaction.activeBranch);
|
|
919
929
|
if (disposeMerged && !checkout.isSharedBranch) {
|
|
@@ -962,7 +972,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
962
972
|
const tree = jsonableTreeFromCursor(cursor);
|
|
963
973
|
// This method is used for tree consistency comparison.
|
|
964
974
|
const { major, minor } = id;
|
|
965
|
-
const finalizedMajor = major
|
|
975
|
+
const finalizedMajor = major === undefined ? major : this.revisionTagCodec.encode(major);
|
|
966
976
|
trees.push([finalizedMajor, minor, tree]);
|
|
967
977
|
}
|
|
968
978
|
cursor.free();
|
|
@@ -1186,6 +1196,12 @@ class EditLock {
|
|
|
1186
1196
|
addNodeExistsConstraintOnRevert(path) {
|
|
1187
1197
|
editor.addNodeExistsConstraintOnRevert(path);
|
|
1188
1198
|
},
|
|
1199
|
+
addNoChangeConstraint() {
|
|
1200
|
+
editor.addNoChangeConstraint();
|
|
1201
|
+
},
|
|
1202
|
+
addNoChangeConstraintOnRevert() {
|
|
1203
|
+
editor.addNoChangeConstraintOnRevert();
|
|
1204
|
+
},
|
|
1189
1205
|
};
|
|
1190
1206
|
}
|
|
1191
1207
|
|
|
@@ -117,6 +117,7 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
117
117
|
* Construct a new branch.
|
|
118
118
|
* @param head - the head of the branch
|
|
119
119
|
* @param changeFamily - determines the set of changes that this branch can commit
|
|
120
|
+
* @param mintRevisionTag - used to generate a `RevisionTag` for each change.
|
|
120
121
|
* @param branchTrimmer - an optional event emitter that informs the branch it has been trimmed. If this is not supplied, then the branch must
|
|
121
122
|
* never be trimmed. See {@link BranchTrimmingEvents} for details on trimming.
|
|
122
123
|
*/
|
|
@@ -186,15 +187,19 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
186
187
|
/**
|
|
187
188
|
* Spawn a new branch that is based off of the current state of this branch.
|
|
188
189
|
* @param commit - The commit to base the new branch off of. Defaults to the head of this branch.
|
|
190
|
+
* @param mintRevisionTag - used to generate a `RevisionTag` for each change.
|
|
189
191
|
* @remarks Changes made to the new branch will not be applied to this branch until the new branch is {@link SharedTreeBranch.merge | merged} back in.
|
|
190
192
|
* Forks created during a transaction will be disposed when the transaction ends.
|
|
191
193
|
*/
|
|
192
|
-
public fork(
|
|
194
|
+
public fork(
|
|
195
|
+
commit: GraphCommit<TChange> = this.head,
|
|
196
|
+
mintRevisionTag: () => RevisionTag = this.mintRevisionTag,
|
|
197
|
+
): SharedTreeBranch<TEditor, TChange> {
|
|
193
198
|
this.assertNotDisposed();
|
|
194
199
|
const fork = new SharedTreeBranch(
|
|
195
200
|
commit,
|
|
196
201
|
this.changeFamily,
|
|
197
|
-
|
|
202
|
+
mintRevisionTag,
|
|
198
203
|
this.branchTrimmer,
|
|
199
204
|
);
|
|
200
205
|
this.#events.emit("fork", fork);
|
|
@@ -226,7 +231,7 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
226
231
|
const { deletedSourceCommits, targetCommits, sourceCommits } = commits;
|
|
227
232
|
assert(hasSome(targetCommits), 0xa83 /* Expected commit(s) for a non no-op rebase */);
|
|
228
233
|
|
|
229
|
-
const newCommits = targetCommits
|
|
234
|
+
const newCommits = [...targetCommits, ...sourceCommits];
|
|
230
235
|
const changeEvent = {
|
|
231
236
|
type: "rebase",
|
|
232
237
|
get change() {
|
|
@@ -5,12 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
type ChangeRebaser,
|
|
10
|
-
type GraphCommit,
|
|
11
|
-
replaceChange,
|
|
12
|
-
type RevisionTag,
|
|
13
|
-
} from "../core/index.js";
|
|
8
|
+
import { type ChangeRebaser, type GraphCommit, replaceChange } from "../core/index.js";
|
|
14
9
|
|
|
15
10
|
import type { SharedTreeBranchChange } from "./branch.js";
|
|
16
11
|
import type { ChangeEnricherReadonlyCheckout } from "./changeEnricher.js";
|
|
@@ -36,7 +31,7 @@ export class BranchCommitEnricher<TChange> {
|
|
|
36
31
|
* Calling this function will compute the composition of that transaction's commits.
|
|
37
32
|
* @remarks This function will be reset to undefined after each {@link BranchCommitEnricher.processChange | change is processed}.
|
|
38
33
|
*/
|
|
39
|
-
#getOuterTransactionChange?: (
|
|
34
|
+
#getOuterTransactionChange?: () => TChange;
|
|
40
35
|
|
|
41
36
|
public constructor(
|
|
42
37
|
rebaser: ChangeRebaser<TChange>,
|
|
@@ -54,7 +49,7 @@ export class BranchCommitEnricher<TChange> {
|
|
|
54
49
|
if (change.type === "append") {
|
|
55
50
|
for (const newCommit of change.newCommits) {
|
|
56
51
|
const newChange =
|
|
57
|
-
this.#getOuterTransactionChange?.(
|
|
52
|
+
this.#getOuterTransactionChange?.() ??
|
|
58
53
|
this.#enricher.updateChangeEnrichments(newCommit.change, newCommit.revision);
|
|
59
54
|
|
|
60
55
|
this.#preparedCommits.set(newCommit, replaceChange(newCommit, newChange));
|
|
@@ -58,6 +58,7 @@ export function clientVersionToEditManagerFormatVersion(
|
|
|
58
58
|
getConfigForMinVersionForCollab(clientVersion, {
|
|
59
59
|
[lowestMinVersionForCollab]: EditManagerFormatVersion.v3,
|
|
60
60
|
[FluidClientVersion.v2_43]: EditManagerFormatVersion.v4,
|
|
61
|
+
[FluidClientVersion.v2_80]: EditManagerFormatVersion.v6,
|
|
61
62
|
}),
|
|
62
63
|
);
|
|
63
64
|
|
|
@@ -135,18 +136,21 @@ export function makeEditManagerCodecs<TChangeset>(
|
|
|
135
136
|
][] = Array.from(editManagerFormatVersions, (version) => {
|
|
136
137
|
switch (version) {
|
|
137
138
|
case unbrand(EditManagerFormatVersion.v1):
|
|
138
|
-
case unbrand(EditManagerFormatVersion.v2):
|
|
139
|
+
case unbrand(EditManagerFormatVersion.v2): {
|
|
139
140
|
return [version, makeDiscontinuedCodecVersion(options, version, "2.73.0")];
|
|
141
|
+
}
|
|
140
142
|
case unbrand(EditManagerFormatVersion.v3):
|
|
141
|
-
case unbrand(EditManagerFormatVersion.v4):
|
|
143
|
+
case unbrand(EditManagerFormatVersion.v4):
|
|
144
|
+
case unbrand(EditManagerFormatVersion.v6): {
|
|
142
145
|
const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
|
|
143
146
|
return [
|
|
144
147
|
version,
|
|
145
148
|
makeV1CodecWithVersion(changeCodec, revisionTagCodec, options, version),
|
|
146
149
|
];
|
|
147
150
|
}
|
|
148
|
-
case unbrand(EditManagerFormatVersion.v5):
|
|
151
|
+
case unbrand(EditManagerFormatVersion.v5): {
|
|
149
152
|
return [version, makeDiscontinuedCodecVersion(options, version, "2.74.0")];
|
|
153
|
+
}
|
|
150
154
|
case unbrand(EditManagerFormatVersion.vSharedBranches): {
|
|
151
155
|
const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
|
|
152
156
|
return [
|
|
@@ -154,8 +158,9 @@ export function makeEditManagerCodecs<TChangeset>(
|
|
|
154
158
|
makeSharedBranchesCodecWithVersion(changeCodec, revisionTagCodec, options, version),
|
|
155
159
|
];
|
|
156
160
|
}
|
|
157
|
-
default:
|
|
161
|
+
default: {
|
|
158
162
|
unreachableCase(version);
|
|
163
|
+
}
|
|
159
164
|
}
|
|
160
165
|
});
|
|
161
166
|
return makeCodecFamily(registry);
|
|
@@ -156,6 +156,11 @@ export const EditManagerFormatVersion = strictEnum("editManager.FormatVersion",
|
|
|
156
156
|
* @deprecated Use {@link EditManagerFormatVersion.vSharedBranches} for testing shared branches.
|
|
157
157
|
*/
|
|
158
158
|
v5: 5,
|
|
159
|
+
/**
|
|
160
|
+
* Introduced and made available for writing in 2.80.0
|
|
161
|
+
* Adds support for "no change" constraints.
|
|
162
|
+
*/
|
|
163
|
+
v6: 6,
|
|
159
164
|
/**
|
|
160
165
|
* Not yet released.
|
|
161
166
|
* Only used for testing shared branches.
|
|
@@ -167,6 +172,7 @@ export const supportedEditManagerFormatVersions: ReadonlySet<EditManagerFormatVe
|
|
|
167
172
|
new Set([
|
|
168
173
|
EditManagerFormatVersion.v3,
|
|
169
174
|
EditManagerFormatVersion.v4,
|
|
175
|
+
EditManagerFormatVersion.v6,
|
|
170
176
|
EditManagerFormatVersion.vSharedBranches,
|
|
171
177
|
]);
|
|
172
178
|
export const editManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> = new Set(
|
|
@@ -26,7 +26,8 @@ export interface EncodedEditManager<TChangeset> {
|
|
|
26
26
|
| typeof EditManagerFormatVersion.v1
|
|
27
27
|
| typeof EditManagerFormatVersion.v2
|
|
28
28
|
| typeof EditManagerFormatVersion.v3
|
|
29
|
-
| typeof EditManagerFormatVersion.v4
|
|
29
|
+
| typeof EditManagerFormatVersion.v4
|
|
30
|
+
| typeof EditManagerFormatVersion.v6;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
export const EncodedEditManager = <ChangeSchema extends TSchema>(tChange: ChangeSchema) =>
|
|
@@ -37,6 +38,7 @@ export const EncodedEditManager = <ChangeSchema extends TSchema>(tChange: Change
|
|
|
37
38
|
Type.Literal(EditManagerFormatVersion.v2),
|
|
38
39
|
Type.Literal(EditManagerFormatVersion.v3),
|
|
39
40
|
Type.Literal(EditManagerFormatVersion.v4),
|
|
41
|
+
Type.Literal(EditManagerFormatVersion.v6),
|
|
40
42
|
]),
|
|
41
43
|
trunk: Type.Array(SequencedCommit(tChange)),
|
|
42
44
|
branches: Type.Array(Type.Tuple([SessionIdSchema, SummarySessionBranch(tChange)])),
|
|
@@ -104,9 +104,9 @@ export class EditManagerSummarizer<TChangeset>
|
|
|
104
104
|
}): void {
|
|
105
105
|
const { stringify, builder } = props;
|
|
106
106
|
const context: EditManagerEncodingContext =
|
|
107
|
-
this.schemaAndPolicy
|
|
108
|
-
? {
|
|
109
|
-
: { idCompressor: this.idCompressor };
|
|
107
|
+
this.schemaAndPolicy === undefined
|
|
108
|
+
? { idCompressor: this.idCompressor }
|
|
109
|
+
: { schema: this.schemaAndPolicy, idCompressor: this.idCompressor };
|
|
110
110
|
const jsonCompatible = this.codec.encode(this.editManager.getSummaryData(), context);
|
|
111
111
|
const dataString = stringify(jsonCompatible);
|
|
112
112
|
builder.addBlob(stringKey, dataString);
|
|
@@ -33,7 +33,8 @@ export function makeV1ToV4CodecWithVersion<TChangeset>(
|
|
|
33
33
|
| typeof MessageFormatVersion.v1
|
|
34
34
|
| typeof MessageFormatVersion.v2
|
|
35
35
|
| typeof MessageFormatVersion.v3
|
|
36
|
-
| typeof MessageFormatVersion.v4
|
|
36
|
+
| typeof MessageFormatVersion.v4
|
|
37
|
+
| typeof MessageFormatVersion.v6,
|
|
37
38
|
): IJsonCodec<
|
|
38
39
|
DecodedMessage<TChangeset>,
|
|
39
40
|
JsonCompatibleReadOnly,
|
|
@@ -55,6 +55,7 @@ export function clientVersionToMessageFormatVersion(
|
|
|
55
55
|
getConfigForMinVersionForCollab(clientVersion, {
|
|
56
56
|
[lowestMinVersionForCollab]: MessageFormatVersion.v3,
|
|
57
57
|
[FluidClientVersion.v2_43]: MessageFormatVersion.v4,
|
|
58
|
+
[FluidClientVersion.v2_80]: MessageFormatVersion.v6,
|
|
58
59
|
}),
|
|
59
60
|
);
|
|
60
61
|
return writeVersionOverride ?? compatibleVersion;
|
|
@@ -130,7 +131,7 @@ export function makeMessageCodecs<TChangeset>(
|
|
|
130
131
|
JsonCompatibleReadOnly,
|
|
131
132
|
MessageEncodingContext
|
|
132
133
|
>,
|
|
133
|
-
][] =
|
|
134
|
+
][] = [...messageFormatVersions].map((version) => {
|
|
134
135
|
switch (version) {
|
|
135
136
|
case unbrand(MessageFormatVersion.undefined):
|
|
136
137
|
case unbrand(MessageFormatVersion.v1):
|
|
@@ -143,7 +144,8 @@ export function makeMessageCodecs<TChangeset>(
|
|
|
143
144
|
];
|
|
144
145
|
}
|
|
145
146
|
case unbrand(MessageFormatVersion.v3):
|
|
146
|
-
case unbrand(MessageFormatVersion.v4):
|
|
147
|
+
case unbrand(MessageFormatVersion.v4):
|
|
148
|
+
case unbrand(MessageFormatVersion.v6): {
|
|
147
149
|
const changeCodec = changeCodecs.resolve(
|
|
148
150
|
dependentChangeFormatVersion.lookup(version),
|
|
149
151
|
).json;
|
|
@@ -152,8 +154,9 @@ export function makeMessageCodecs<TChangeset>(
|
|
|
152
154
|
makeV1ToV4CodecWithVersion(changeCodec, revisionTagCodec, options, version),
|
|
153
155
|
];
|
|
154
156
|
}
|
|
155
|
-
case unbrand(MessageFormatVersion.v5):
|
|
157
|
+
case unbrand(MessageFormatVersion.v5): {
|
|
156
158
|
return [version, makeDiscontinuedCodecVersion(options, version, "2.74.0")];
|
|
159
|
+
}
|
|
157
160
|
case unbrand(MessageFormatVersion.vSharedBranches): {
|
|
158
161
|
const changeCodec = changeCodecs.resolve(
|
|
159
162
|
dependentChangeFormatVersion.lookup(version),
|
|
@@ -163,8 +166,9 @@ export function makeMessageCodecs<TChangeset>(
|
|
|
163
166
|
makeSharedBranchesCodecWithVersion(changeCodec, revisionTagCodec, options, version),
|
|
164
167
|
];
|
|
165
168
|
}
|
|
166
|
-
default:
|
|
169
|
+
default: {
|
|
167
170
|
unreachableCase(version);
|
|
171
|
+
}
|
|
168
172
|
}
|
|
169
173
|
});
|
|
170
174
|
return makeCodecFamily(registry);
|