@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
|
@@ -103,9 +103,9 @@ export function getMoveEffect(
|
|
|
103
103
|
addDependency: boolean = true,
|
|
104
104
|
): RangeQueryResult<ChangeAtomId, MoveEffect> {
|
|
105
105
|
const result = moveEffects.get(target, revision, id, count, addDependency);
|
|
106
|
-
return result.value
|
|
107
|
-
?
|
|
108
|
-
: result;
|
|
106
|
+
return result.value === undefined
|
|
107
|
+
? result
|
|
108
|
+
: { ...result, value: adjustMoveEffectBasis(result.value as MoveEffectWithBasis, id) };
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
export type MoveMark = CellMark<MoveMarkEffect>;
|
|
@@ -124,12 +124,15 @@ export function isMoveIn(effect: MarkEffect): effect is MoveIn {
|
|
|
124
124
|
|
|
125
125
|
export function getMoveIn(effect: MarkEffect): MoveIn | undefined {
|
|
126
126
|
switch (effect.type) {
|
|
127
|
-
case "MoveIn":
|
|
127
|
+
case "MoveIn": {
|
|
128
128
|
return effect;
|
|
129
|
-
|
|
129
|
+
}
|
|
130
|
+
case "AttachAndDetach": {
|
|
130
131
|
return getMoveIn(effect.attach);
|
|
131
|
-
|
|
132
|
+
}
|
|
133
|
+
default: {
|
|
132
134
|
return undefined;
|
|
135
|
+
}
|
|
133
136
|
}
|
|
134
137
|
}
|
|
135
138
|
|
|
@@ -196,12 +199,15 @@ function getFirstMoveEffectLength(
|
|
|
196
199
|
export function getCrossFieldTargetFromMove(mark: MoveMarkEffect): CrossFieldTarget {
|
|
197
200
|
const type = mark.type;
|
|
198
201
|
switch (type) {
|
|
199
|
-
case "MoveIn":
|
|
202
|
+
case "MoveIn": {
|
|
200
203
|
return CrossFieldTarget.Destination;
|
|
201
|
-
|
|
204
|
+
}
|
|
205
|
+
case "MoveOut": {
|
|
202
206
|
return CrossFieldTarget.Source;
|
|
203
|
-
|
|
207
|
+
}
|
|
208
|
+
default: {
|
|
204
209
|
unreachableCase(type);
|
|
210
|
+
}
|
|
205
211
|
}
|
|
206
212
|
}
|
|
207
213
|
|
|
@@ -172,14 +172,18 @@ class RebaseQueue {
|
|
|
172
172
|
this.metadata,
|
|
173
173
|
);
|
|
174
174
|
switch (comparison) {
|
|
175
|
-
case CellOrder.SameCell:
|
|
175
|
+
case CellOrder.SameCell: {
|
|
176
176
|
return this.dequeueBoth();
|
|
177
|
-
|
|
177
|
+
}
|
|
178
|
+
case CellOrder.OldThenNew: {
|
|
178
179
|
return this.dequeueBase();
|
|
179
|
-
|
|
180
|
+
}
|
|
181
|
+
case CellOrder.NewThenOld: {
|
|
180
182
|
return this.dequeueNew();
|
|
181
|
-
|
|
183
|
+
}
|
|
184
|
+
default: {
|
|
182
185
|
unreachableCase(comparison);
|
|
186
|
+
}
|
|
183
187
|
}
|
|
184
188
|
} else if (areInputCellsEmpty(newMark)) {
|
|
185
189
|
return this.dequeueNew();
|
|
@@ -192,7 +196,7 @@ class RebaseQueue {
|
|
|
192
196
|
|
|
193
197
|
private dequeueBase(length?: number): RebaseMarks {
|
|
194
198
|
const baseMark =
|
|
195
|
-
length
|
|
199
|
+
length === undefined ? this.baseMarks.dequeue() : this.baseMarks.dequeueUpTo(length);
|
|
196
200
|
|
|
197
201
|
let newMark: Mark = generateNoOpWithCellId(baseMark);
|
|
198
202
|
|
|
@@ -368,13 +372,16 @@ function separateEffectsForMove(mark: MarkEffect): {
|
|
|
368
372
|
}
|
|
369
373
|
return { follows: mark };
|
|
370
374
|
}
|
|
371
|
-
case "AttachAndDetach":
|
|
375
|
+
case "AttachAndDetach": {
|
|
372
376
|
return { follows: mark.detach, remains: mark.attach };
|
|
377
|
+
}
|
|
373
378
|
case "MoveIn":
|
|
374
|
-
case "Rename":
|
|
379
|
+
case "Rename": {
|
|
375
380
|
return { remains: mark };
|
|
376
|
-
|
|
381
|
+
}
|
|
382
|
+
case NoopMarkType: {
|
|
377
383
|
return {};
|
|
384
|
+
}
|
|
378
385
|
case "Insert": {
|
|
379
386
|
const follows: MoveOut = {
|
|
380
387
|
type: "MoveOut",
|
|
@@ -390,8 +397,9 @@ function separateEffectsForMove(mark: MarkEffect): {
|
|
|
390
397
|
}
|
|
391
398
|
return { remains, follows };
|
|
392
399
|
}
|
|
393
|
-
default:
|
|
400
|
+
default: {
|
|
394
401
|
unreachableCase(type);
|
|
402
|
+
}
|
|
395
403
|
}
|
|
396
404
|
}
|
|
397
405
|
|
|
@@ -413,9 +421,9 @@ function sendEffectToDest(
|
|
|
413
421
|
if (effect.length < count) {
|
|
414
422
|
const [markEffect1, markEffect2] = splitMarkEffect(markEffect, effect.length);
|
|
415
423
|
const newEffect =
|
|
416
|
-
effect.value
|
|
417
|
-
? {
|
|
418
|
-
: { movedMark: markEffect1 };
|
|
424
|
+
effect.value === undefined
|
|
425
|
+
? { movedMark: markEffect1 }
|
|
426
|
+
: { ...effect.value, movedMark: markEffect1 };
|
|
419
427
|
setMoveEffect(
|
|
420
428
|
moveEffects,
|
|
421
429
|
CrossFieldTarget.Destination,
|
|
@@ -432,9 +440,9 @@ function sendEffectToDest(
|
|
|
432
440
|
);
|
|
433
441
|
} else {
|
|
434
442
|
const newEffect: MoveEffect =
|
|
435
|
-
effect.value
|
|
436
|
-
? {
|
|
437
|
-
: { movedEffect: markEffect };
|
|
443
|
+
effect.value === undefined
|
|
444
|
+
? { movedEffect: markEffect }
|
|
445
|
+
: { ...effect.value, movedEffect: markEffect };
|
|
438
446
|
setMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count, newEffect);
|
|
439
447
|
}
|
|
440
448
|
}
|
|
@@ -454,9 +462,9 @@ function moveRebasedChanges(
|
|
|
454
462
|
).value;
|
|
455
463
|
|
|
456
464
|
const newEffect =
|
|
457
|
-
effect
|
|
458
|
-
? {
|
|
459
|
-
: { rebasedChanges: nodeChange };
|
|
465
|
+
effect === undefined
|
|
466
|
+
? { rebasedChanges: nodeChange }
|
|
467
|
+
: { ...effect, rebasedChanges: nodeChange };
|
|
460
468
|
|
|
461
469
|
setMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, 1, newEffect);
|
|
462
470
|
}
|
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
import { unreachableCase } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
makeChangeAtomId,
|
|
10
|
+
type ChangesetLocalId,
|
|
11
|
+
type RevisionReplacer,
|
|
12
|
+
type RevisionTag,
|
|
13
|
+
} from "../../core/index.js";
|
|
9
14
|
|
|
10
15
|
import type { MoveMarkEffect } from "./helperTypes.js";
|
|
11
16
|
import { MarkListFactory } from "./markListFactory.js";
|
|
@@ -13,40 +18,35 @@ import {
|
|
|
13
18
|
type Changeset,
|
|
14
19
|
type Detach,
|
|
15
20
|
type HasMoveFields,
|
|
21
|
+
type HasMoveId,
|
|
16
22
|
type HasRevisionTag,
|
|
23
|
+
type Insert,
|
|
17
24
|
type Mark,
|
|
18
25
|
type MarkEffect,
|
|
19
26
|
NoopMarkType,
|
|
27
|
+
type Remove,
|
|
20
28
|
type Rename,
|
|
21
29
|
} from "./types.js";
|
|
22
30
|
import { isDetach, isRename } from "./utils.js";
|
|
23
31
|
|
|
24
|
-
export function replaceRevisions(
|
|
25
|
-
changeset: Changeset,
|
|
26
|
-
revisionsToReplace: Set<RevisionTag | undefined>,
|
|
27
|
-
newRevision: RevisionTag | undefined,
|
|
28
|
-
): Changeset {
|
|
32
|
+
export function replaceRevisions(changeset: Changeset, replacer: RevisionReplacer): Changeset {
|
|
29
33
|
const updatedMarks = new MarkListFactory();
|
|
30
34
|
for (const mark of changeset) {
|
|
31
|
-
const updatedMark = updateMark(mark,
|
|
35
|
+
const updatedMark = updateMark(mark, replacer);
|
|
32
36
|
updatedMarks.push(updatedMark);
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
return updatedMarks.list;
|
|
36
40
|
}
|
|
37
41
|
|
|
38
|
-
function updateMark(
|
|
39
|
-
mark
|
|
40
|
-
revisionsToReplace: Set<RevisionTag | undefined>,
|
|
41
|
-
newRevision: RevisionTag | undefined,
|
|
42
|
-
): Mark {
|
|
43
|
-
const updatedMark = { ...updateEffect(mark, revisionsToReplace, newRevision) };
|
|
42
|
+
function updateMark(mark: Mark, replacer: RevisionReplacer): Mark {
|
|
43
|
+
const updatedMark = { ...updateEffect(mark, replacer) };
|
|
44
44
|
if (mark.cellId !== undefined) {
|
|
45
|
-
updatedMark.cellId =
|
|
45
|
+
updatedMark.cellId = replacer.getUpdatedAtomId(mark.cellId);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
if (mark.changes !== undefined) {
|
|
49
|
-
updatedMark.changes =
|
|
49
|
+
updatedMark.changes = replacer.getUpdatedAtomId(mark.changes);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
return updatedMark;
|
|
@@ -54,87 +54,83 @@ function updateMark(
|
|
|
54
54
|
|
|
55
55
|
function updateEffect<TMark extends MarkEffect>(
|
|
56
56
|
input: TMark,
|
|
57
|
-
|
|
58
|
-
newRevision: RevisionTag | undefined,
|
|
57
|
+
replacer: RevisionReplacer,
|
|
59
58
|
): TMark {
|
|
60
|
-
const mark =
|
|
61
|
-
isDetach(input) || isRename(input)
|
|
62
|
-
? updateIdOverride(input, revisionsToReplace, newRevision)
|
|
63
|
-
: input;
|
|
59
|
+
const mark = isDetach(input) || isRename(input) ? updateIdOverride(input, replacer) : input;
|
|
64
60
|
const type = mark.type;
|
|
65
61
|
switch (type) {
|
|
66
62
|
case "Rename":
|
|
67
|
-
case NoopMarkType:
|
|
63
|
+
case NoopMarkType: {
|
|
68
64
|
return mark;
|
|
69
|
-
|
|
65
|
+
}
|
|
66
|
+
case "AttachAndDetach": {
|
|
70
67
|
return {
|
|
71
68
|
...mark,
|
|
72
|
-
attach: updateEffect(mark.attach,
|
|
73
|
-
detach: updateEffect(mark.detach,
|
|
69
|
+
attach: updateEffect(mark.attach, replacer),
|
|
70
|
+
detach: updateEffect(mark.detach, replacer),
|
|
74
71
|
};
|
|
72
|
+
}
|
|
75
73
|
case "MoveIn":
|
|
76
|
-
case "MoveOut":
|
|
74
|
+
case "MoveOut": {
|
|
77
75
|
return updateMoveEffect<TMark & MoveMarkEffect>(
|
|
78
76
|
// For some reason, TypeScript is not able to infer that `mark` cannot be a `NoopMark` here.
|
|
79
77
|
mark as MoveMarkEffect,
|
|
80
|
-
|
|
81
|
-
newRevision,
|
|
78
|
+
replacer,
|
|
82
79
|
);
|
|
80
|
+
}
|
|
83
81
|
case "Insert":
|
|
84
|
-
case "Remove":
|
|
85
|
-
return
|
|
86
|
-
|
|
82
|
+
case "Remove": {
|
|
83
|
+
return updateRevisionAndId(mark as (TMark & Insert) | (TMark & Remove), replacer);
|
|
84
|
+
}
|
|
85
|
+
default: {
|
|
87
86
|
unreachableCase(type);
|
|
87
|
+
}
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
function updateIdOverride<TEffect extends Detach | Rename>(
|
|
92
92
|
effect: TEffect,
|
|
93
|
-
|
|
94
|
-
newRevision: RevisionTag | undefined,
|
|
93
|
+
replacer: RevisionReplacer,
|
|
95
94
|
): TEffect {
|
|
96
|
-
if (effect.idOverride
|
|
97
|
-
const idOverride = replaceAtomRevisions(
|
|
98
|
-
effect.idOverride,
|
|
99
|
-
revisionsToReplace,
|
|
100
|
-
newRevision,
|
|
101
|
-
);
|
|
102
|
-
return { ...effect, idOverride };
|
|
103
|
-
} else {
|
|
95
|
+
if (effect.idOverride === undefined) {
|
|
104
96
|
return effect;
|
|
105
97
|
}
|
|
98
|
+
const idOverride = replacer.getUpdatedAtomId(effect.idOverride);
|
|
99
|
+
return { ...effect, idOverride };
|
|
106
100
|
}
|
|
107
101
|
|
|
108
102
|
function updateMoveEffect<TEffect extends HasMoveFields>(
|
|
109
103
|
effect: TEffect,
|
|
110
|
-
|
|
111
|
-
newRevision: RevisionTag | undefined,
|
|
104
|
+
replacer: RevisionReplacer,
|
|
112
105
|
): TEffect {
|
|
113
|
-
return effect.finalEndpoint
|
|
114
|
-
?
|
|
106
|
+
return effect.finalEndpoint === undefined
|
|
107
|
+
? updateRevisionAndId(effect, replacer)
|
|
108
|
+
: updateRevisionAndId(
|
|
115
109
|
{
|
|
116
110
|
...effect,
|
|
117
|
-
finalEndpoint:
|
|
111
|
+
finalEndpoint: replacer.getUpdatedAtomId(effect.finalEndpoint),
|
|
118
112
|
},
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
)
|
|
122
|
-
: updateRevision(effect, revisionsToReplace, newRevision);
|
|
113
|
+
replacer,
|
|
114
|
+
);
|
|
123
115
|
}
|
|
124
116
|
|
|
125
|
-
function
|
|
117
|
+
function updateRevisionAndId<T extends HasRevisionTag & HasMoveId>(
|
|
126
118
|
input: T,
|
|
127
|
-
|
|
128
|
-
newRevision: RevisionTag | undefined,
|
|
119
|
+
replacer: RevisionReplacer,
|
|
129
120
|
): T {
|
|
130
|
-
|
|
121
|
+
if (!replacer.isObsolete(input.revision)) {
|
|
122
|
+
return input;
|
|
123
|
+
}
|
|
124
|
+
const newAtom = replacer.getUpdatedAtomId(makeChangeAtomId(input.id, input.revision));
|
|
125
|
+
return withRevisionAndId(input, newAtom.revision, newAtom.localId);
|
|
131
126
|
}
|
|
132
127
|
|
|
133
|
-
function
|
|
128
|
+
function withRevisionAndId<T extends HasRevisionTag>(
|
|
134
129
|
input: T,
|
|
135
130
|
revision: RevisionTag | undefined,
|
|
131
|
+
id: ChangesetLocalId,
|
|
136
132
|
): T {
|
|
137
|
-
const updated = { ...input, revision };
|
|
133
|
+
const updated = { ...input, revision, id };
|
|
138
134
|
if (revision === undefined) {
|
|
139
135
|
delete updated.revision;
|
|
140
136
|
}
|
|
@@ -70,7 +70,7 @@ export function makeV2CodecHelpers(
|
|
|
70
70
|
|
|
71
71
|
const type = effect.type;
|
|
72
72
|
switch (type) {
|
|
73
|
-
case "MoveIn":
|
|
73
|
+
case "MoveIn": {
|
|
74
74
|
return {
|
|
75
75
|
moveIn: {
|
|
76
76
|
revision: encodeRevision(effect.revision),
|
|
@@ -81,14 +81,16 @@ export function makeV2CodecHelpers(
|
|
|
81
81
|
id: effect.id,
|
|
82
82
|
},
|
|
83
83
|
};
|
|
84
|
-
|
|
84
|
+
}
|
|
85
|
+
case "Insert": {
|
|
85
86
|
return {
|
|
86
87
|
insert: {
|
|
87
88
|
revision: encodeRevision(effect.revision),
|
|
88
89
|
id: effect.id,
|
|
89
90
|
},
|
|
90
91
|
};
|
|
91
|
-
|
|
92
|
+
}
|
|
93
|
+
case "Remove": {
|
|
92
94
|
return {
|
|
93
95
|
remove: {
|
|
94
96
|
revision: encodeRevision(effect.revision),
|
|
@@ -99,7 +101,8 @@ export function makeV2CodecHelpers(
|
|
|
99
101
|
id: effect.id,
|
|
100
102
|
},
|
|
101
103
|
};
|
|
102
|
-
|
|
104
|
+
}
|
|
105
|
+
case "MoveOut": {
|
|
103
106
|
return {
|
|
104
107
|
moveOut: {
|
|
105
108
|
revision: encodeRevision(effect.revision),
|
|
@@ -114,14 +117,16 @@ export function makeV2CodecHelpers(
|
|
|
114
117
|
id: effect.id,
|
|
115
118
|
},
|
|
116
119
|
};
|
|
117
|
-
|
|
120
|
+
}
|
|
121
|
+
case "AttachAndDetach": {
|
|
118
122
|
return {
|
|
119
123
|
attachAndDetach: {
|
|
120
124
|
attach: markEffectCodec.encode(effect.attach, context) as Encoded.Attach,
|
|
121
125
|
detach: markEffectCodec.encode(effect.detach, context) as Encoded.Detach,
|
|
122
126
|
},
|
|
123
127
|
};
|
|
124
|
-
|
|
128
|
+
}
|
|
129
|
+
case "Rename": {
|
|
125
130
|
// In documents generated by clients on release >=2.2 (i.e., running the code from the PR that added this comment),
|
|
126
131
|
// renames are encoded as AttachAndDetach with a special id.
|
|
127
132
|
// This ensures forward-compatibility of clients on release <=2.1 with documents/ops generated by clients on release >=2.2.
|
|
@@ -133,10 +138,13 @@ export function makeV2CodecHelpers(
|
|
|
133
138
|
},
|
|
134
139
|
context,
|
|
135
140
|
);
|
|
136
|
-
|
|
141
|
+
}
|
|
142
|
+
case NoopMarkType: {
|
|
137
143
|
fail(0xb2c /* Mark type: NoopMarkType should not be encoded. */);
|
|
138
|
-
|
|
144
|
+
}
|
|
145
|
+
default: {
|
|
139
146
|
unreachableCase(type);
|
|
147
|
+
}
|
|
140
148
|
}
|
|
141
149
|
},
|
|
142
150
|
decode(encoded: Encoded.MarkEffect, context: ChangeEncodingContext): MarkEffect {
|
|
@@ -50,14 +50,16 @@ export function makeV3Codec(
|
|
|
50
50
|
encode(effect: MarkEffect, context: ChangeEncodingContext): Encoded.MarkEffect {
|
|
51
51
|
const type = effect.type;
|
|
52
52
|
switch (type) {
|
|
53
|
-
case "Rename":
|
|
53
|
+
case "Rename": {
|
|
54
54
|
return {
|
|
55
55
|
rename: {
|
|
56
56
|
idOverride: atomIdCodec.encode(effect.idOverride, context),
|
|
57
57
|
},
|
|
58
58
|
};
|
|
59
|
-
|
|
59
|
+
}
|
|
60
|
+
default: {
|
|
60
61
|
return markEffectV2Codec.encode(effect, context);
|
|
62
|
+
}
|
|
61
63
|
}
|
|
62
64
|
},
|
|
63
65
|
decode(encoded: Encoded.MarkEffect, context: ChangeEncodingContext): MarkEffect {
|
|
@@ -158,19 +158,22 @@ export function sequenceFieldToDelta(
|
|
|
158
158
|
local.push(deltaMark);
|
|
159
159
|
break;
|
|
160
160
|
}
|
|
161
|
-
case NoopMarkType:
|
|
161
|
+
case NoopMarkType: {
|
|
162
162
|
if (inputCellId === undefined) {
|
|
163
163
|
local.push(deltaMark);
|
|
164
164
|
}
|
|
165
165
|
break;
|
|
166
|
-
|
|
166
|
+
}
|
|
167
|
+
case "Rename": {
|
|
167
168
|
assert(
|
|
168
169
|
mark.cellId !== undefined,
|
|
169
170
|
0x9f9 /* Renames should only target empty cells */,
|
|
170
171
|
);
|
|
171
172
|
break;
|
|
172
|
-
|
|
173
|
+
}
|
|
174
|
+
default: {
|
|
173
175
|
unreachableCase(type);
|
|
176
|
+
}
|
|
174
177
|
}
|
|
175
178
|
}
|
|
176
179
|
}
|
|
@@ -71,8 +71,8 @@ export function getNestedChanges(change: Changeset): NestedChangesIndices {
|
|
|
71
71
|
if (changes !== undefined) {
|
|
72
72
|
output.push([
|
|
73
73
|
changes,
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
areInputCellsEmpty(mark) ? undefined : inputIndex /* inputIndex */,
|
|
75
|
+
areOutputCellsEmpty(mark) ? undefined : outputIndex /* outputIndex */,
|
|
76
76
|
]);
|
|
77
77
|
}
|
|
78
78
|
if (!areInputCellsEmpty(mark)) {
|
|
@@ -208,12 +208,12 @@ export function compareCellPositionsUsingTombstones(
|
|
|
208
208
|
// If both changesets know of both cells, but we've been asked to compare different cells,
|
|
209
209
|
// Then either the changesets they originate from do not represent the same context,
|
|
210
210
|
// or the ordering of their cells in inconsistent.
|
|
211
|
-
// The only exception to this is when we're composing
|
|
211
|
+
// The only exception to this is when we're composing changesets in a transaction since they have the same revision but different sets of cells.
|
|
212
212
|
assert(
|
|
213
|
-
oldMarkCell.revision ===
|
|
213
|
+
oldMarkCell.revision === newMarkCell.revision,
|
|
214
214
|
0x8a0 /* Inconsistent cell ordering */,
|
|
215
215
|
);
|
|
216
|
-
// We are composing
|
|
216
|
+
// We are composing changesets in a transaction. The new changeset is creating a cell in a gap
|
|
217
217
|
// where the old changeset knows of some now empty cell. We order the new cell relative to the old cell in a
|
|
218
218
|
// way that is consistent with its tie-breaking behavior should the old cell be concurrently re-filled.
|
|
219
219
|
// Since only tie-break left is supported at the moment, the new cell comes first.
|
|
@@ -315,8 +315,9 @@ export function getDetachedNodeId(mark: Detach | Rename): ChangeAtomId {
|
|
|
315
315
|
case "MoveOut": {
|
|
316
316
|
return makeChangeAtomId(mark.id, mark.revision);
|
|
317
317
|
}
|
|
318
|
-
default:
|
|
318
|
+
default: {
|
|
319
319
|
unreachableCase(mark);
|
|
320
|
+
}
|
|
320
321
|
}
|
|
321
322
|
}
|
|
322
323
|
|
|
@@ -461,18 +462,22 @@ export function areInputCellsEmpty(mark: Mark): mark is EmptyInputCellMark {
|
|
|
461
462
|
export function areOutputCellsEmpty(mark: Mark): boolean {
|
|
462
463
|
const type = mark.type;
|
|
463
464
|
switch (type) {
|
|
464
|
-
case NoopMarkType:
|
|
465
|
+
case NoopMarkType: {
|
|
465
466
|
return mark.cellId !== undefined;
|
|
467
|
+
}
|
|
466
468
|
case "Remove":
|
|
467
469
|
case "Rename":
|
|
468
470
|
case "MoveOut":
|
|
469
|
-
case "AttachAndDetach":
|
|
471
|
+
case "AttachAndDetach": {
|
|
470
472
|
return true;
|
|
473
|
+
}
|
|
471
474
|
case "MoveIn":
|
|
472
|
-
case "Insert":
|
|
475
|
+
case "Insert": {
|
|
473
476
|
return false;
|
|
474
|
-
|
|
477
|
+
}
|
|
478
|
+
default: {
|
|
475
479
|
unreachableCase(type);
|
|
480
|
+
}
|
|
476
481
|
}
|
|
477
482
|
}
|
|
478
483
|
|
|
@@ -500,10 +505,12 @@ export function settleMark(mark: Mark): Mark {
|
|
|
500
505
|
export function isImpactful(mark: Mark): boolean {
|
|
501
506
|
const type = mark.type;
|
|
502
507
|
switch (type) {
|
|
503
|
-
case NoopMarkType:
|
|
508
|
+
case NoopMarkType: {
|
|
504
509
|
return false;
|
|
505
|
-
|
|
510
|
+
}
|
|
511
|
+
case "Rename": {
|
|
506
512
|
return true;
|
|
513
|
+
}
|
|
507
514
|
case "Remove": {
|
|
508
515
|
const inputId = getInputCellId(mark);
|
|
509
516
|
if (inputId === undefined) {
|
|
@@ -514,17 +521,21 @@ export function isImpactful(mark: Mark): boolean {
|
|
|
514
521
|
return !areEqualChangeAtomIds(inputId, outputId);
|
|
515
522
|
}
|
|
516
523
|
case "AttachAndDetach":
|
|
517
|
-
case "MoveOut":
|
|
524
|
+
case "MoveOut": {
|
|
518
525
|
return true;
|
|
519
|
-
|
|
526
|
+
}
|
|
527
|
+
case "MoveIn": {
|
|
520
528
|
// MoveIn marks always target an empty cell.
|
|
521
529
|
assert(mark.cellId !== undefined, 0x825 /* MoveIn marks should target empty cells */);
|
|
522
530
|
return true;
|
|
523
|
-
|
|
531
|
+
}
|
|
532
|
+
case "Insert": {
|
|
524
533
|
// A Revive has no impact if the nodes are already in the document.
|
|
525
534
|
return mark.cellId !== undefined;
|
|
526
|
-
|
|
535
|
+
}
|
|
536
|
+
default: {
|
|
527
537
|
unreachableCase(type);
|
|
538
|
+
}
|
|
528
539
|
}
|
|
529
540
|
}
|
|
530
541
|
|
|
@@ -726,8 +737,9 @@ function tryMergeEffects(
|
|
|
726
737
|
}
|
|
727
738
|
break;
|
|
728
739
|
}
|
|
729
|
-
default:
|
|
740
|
+
default: {
|
|
730
741
|
unreachableCase(type);
|
|
742
|
+
}
|
|
731
743
|
}
|
|
732
744
|
|
|
733
745
|
return undefined;
|
|
@@ -768,8 +780,9 @@ export function splitMarkEffect<TEffect extends MarkEffect>(
|
|
|
768
780
|
): [TEffect, TEffect] {
|
|
769
781
|
const type = effect.type;
|
|
770
782
|
switch (type) {
|
|
771
|
-
case NoopMarkType:
|
|
783
|
+
case NoopMarkType: {
|
|
772
784
|
return [effect, effect];
|
|
785
|
+
}
|
|
773
786
|
case "Insert": {
|
|
774
787
|
const effect1: TEffect = {
|
|
775
788
|
...effect,
|
|
@@ -841,8 +854,9 @@ export function splitMarkEffect<TEffect extends MarkEffect>(
|
|
|
841
854
|
|
|
842
855
|
return [effect1, effect2];
|
|
843
856
|
}
|
|
844
|
-
default:
|
|
857
|
+
default: {
|
|
845
858
|
unreachableCase(type);
|
|
859
|
+
}
|
|
846
860
|
}
|
|
847
861
|
}
|
|
848
862
|
|
|
@@ -876,10 +890,10 @@ export function withNodeChange<TMark extends CellMark<TKind>, TKind extends Mark
|
|
|
876
890
|
changes: NodeId | undefined,
|
|
877
891
|
): TMark {
|
|
878
892
|
const newMark = { ...mark };
|
|
879
|
-
if (changes
|
|
880
|
-
newMark.changes = changes;
|
|
881
|
-
} else {
|
|
893
|
+
if (changes === undefined) {
|
|
882
894
|
delete newMark.changes;
|
|
895
|
+
} else {
|
|
896
|
+
newMark.changes = changes;
|
|
883
897
|
}
|
|
884
898
|
return newMark;
|
|
885
899
|
}
|
|
@@ -940,7 +954,7 @@ function getCrossFieldKeysForMarkEffect(
|
|
|
940
954
|
count: number,
|
|
941
955
|
): CrossFieldKeyRange[] {
|
|
942
956
|
switch (effect.type) {
|
|
943
|
-
case "Insert":
|
|
957
|
+
case "Insert": {
|
|
944
958
|
// An insert behaves like a move where the source and destination are at the same location.
|
|
945
959
|
// An insert can become a move when after rebasing.
|
|
946
960
|
return [
|
|
@@ -961,7 +975,8 @@ function getCrossFieldKeysForMarkEffect(
|
|
|
961
975
|
count,
|
|
962
976
|
},
|
|
963
977
|
];
|
|
964
|
-
|
|
978
|
+
}
|
|
979
|
+
case "MoveOut": {
|
|
965
980
|
return [
|
|
966
981
|
{
|
|
967
982
|
key: {
|
|
@@ -972,7 +987,8 @@ function getCrossFieldKeysForMarkEffect(
|
|
|
972
987
|
count,
|
|
973
988
|
},
|
|
974
989
|
];
|
|
975
|
-
|
|
990
|
+
}
|
|
991
|
+
case "MoveIn": {
|
|
976
992
|
return [
|
|
977
993
|
{
|
|
978
994
|
key: {
|
|
@@ -983,12 +999,15 @@ function getCrossFieldKeysForMarkEffect(
|
|
|
983
999
|
count,
|
|
984
1000
|
},
|
|
985
1001
|
];
|
|
986
|
-
|
|
1002
|
+
}
|
|
1003
|
+
case "AttachAndDetach": {
|
|
987
1004
|
return [
|
|
988
1005
|
...getCrossFieldKeysForMarkEffect(effect.attach, count),
|
|
989
1006
|
...getCrossFieldKeysForMarkEffect(effect.detach, count),
|
|
990
1007
|
];
|
|
991
|
-
|
|
1008
|
+
}
|
|
1009
|
+
default: {
|
|
992
1010
|
return [];
|
|
1011
|
+
}
|
|
993
1012
|
}
|
|
994
1013
|
}
|
|
@@ -473,18 +473,18 @@ export function prefixFieldPath(
|
|
|
473
473
|
* TODO: tests for this.
|
|
474
474
|
*/
|
|
475
475
|
export function prefixPathPrefix(root: PathRootPrefix, inner: PathRootPrefix): PathRootPrefix {
|
|
476
|
-
if (inner.parent
|
|
476
|
+
if (inner.parent === undefined) {
|
|
477
477
|
const composedPrefix: PathRootPrefix = {
|
|
478
|
-
parent:
|
|
479
|
-
rootFieldOverride: inner.rootFieldOverride,
|
|
480
|
-
indexOffset: inner.indexOffset,
|
|
478
|
+
parent: root.parent,
|
|
479
|
+
rootFieldOverride: root.rootFieldOverride ?? inner.rootFieldOverride,
|
|
480
|
+
indexOffset: (inner.indexOffset ?? 0) + (root.indexOffset ?? 0),
|
|
481
481
|
};
|
|
482
482
|
return composedPrefix;
|
|
483
483
|
} else {
|
|
484
484
|
const composedPrefix: PathRootPrefix = {
|
|
485
|
-
parent: root.parent,
|
|
486
|
-
rootFieldOverride:
|
|
487
|
-
indexOffset:
|
|
485
|
+
parent: new PrefixedPath(root, inner.parent),
|
|
486
|
+
rootFieldOverride: inner.rootFieldOverride,
|
|
487
|
+
indexOffset: inner.indexOffset,
|
|
488
488
|
};
|
|
489
489
|
return composedPrefix;
|
|
490
490
|
}
|