@fluidframework/tree 2.90.0-378676 → 2.91.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/.vscode/settings.json +6 -5
- package/CHANGELOG.md +342 -0
- package/README.md +1 -1
- package/alpha.d.ts +2 -2
- package/api-extractor/api-extractor-lint-alpha.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-alpha.esm.json +1 -1
- package/api-extractor/api-extractor-lint-beta.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-beta.esm.json +1 -1
- package/api-extractor/api-extractor-lint-bundle.json +1 -1
- package/api-extractor/api-extractor-lint-legacy.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-legacy.esm.json +1 -1
- package/api-extractor/api-extractor-lint-public.cjs.json +1 -1
- package/api-extractor/api-extractor-lint-public.esm.json +1 -1
- package/api-extractor/api-extractor.current.json +1 -1
- package/api-extractor/api-extractor.legacy.json +2 -1
- package/api-extractor.json +1 -0
- package/api-report/tree.alpha.api.md +144 -40
- package/api-report/tree.beta.api.md +30 -0
- package/api-report/tree.legacy.beta.api.md +30 -0
- package/beta.d.ts +2 -2
- package/dist/codec/codec.d.ts +2 -0
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +4 -3
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +2 -1
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +13 -1
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +18 -3
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/codec/versioned/format.d.ts +22 -1
- package/dist/codec/versioned/format.d.ts.map +1 -1
- package/dist/codec/versioned/format.js +16 -3
- package/dist/codec/versioned/format.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 -1
- package/dist/codec/versioned/index.js.map +1 -1
- package/dist/core/change-family/changeFamily.d.ts +1 -4
- package/dist/core/change-family/changeFamily.d.ts.map +1 -1
- package/dist/core/change-family/changeFamily.js.map +1 -1
- package/dist/core/change-family/index.d.ts +1 -1
- package/dist/core/change-family/index.d.ts.map +1 -1
- package/dist/core/change-family/index.js.map +1 -1
- package/dist/core/index.d.ts +3 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -8
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +1 -6
- 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 +1 -1
- 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 +78 -1
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +1 -5
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +7 -25
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/tree/delta.d.ts +0 -5
- package/dist/core/tree/delta.d.ts.map +1 -1
- package/dist/core/tree/delta.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +1 -13
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +1 -14
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +0 -4
- package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/core/tree/index.d.ts +2 -2
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +3 -4
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/pathTree.d.ts +3 -11
- package/dist/core/tree/pathTree.d.ts.map +1 -1
- package/dist/core/tree/pathTree.js +2 -14
- package/dist/core/tree/pathTree.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js +13 -17
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/entrypoints/alpha.d.ts +6 -0
- package/dist/entrypoints/alpha.d.ts.map +1 -0
- package/dist/entrypoints/alpha.js +92 -0
- package/dist/entrypoints/alpha.js.map +1 -0
- package/dist/entrypoints/beta.d.ts +6 -0
- package/dist/entrypoints/beta.d.ts.map +1 -0
- package/dist/entrypoints/beta.js +43 -0
- package/dist/entrypoints/beta.js.map +1 -0
- package/{lib/core/schema-view/index.js → dist/entrypoints/internal.d.ts} +2 -2
- package/dist/entrypoints/internal.d.ts.map +1 -0
- package/dist/entrypoints/internal.js +28 -0
- package/dist/entrypoints/internal.js.map +1 -0
- package/dist/entrypoints/legacy.d.ts +6 -0
- package/dist/entrypoints/legacy.d.ts.map +1 -0
- package/dist/entrypoints/legacy.js +49 -0
- package/dist/entrypoints/legacy.js.map +1 -0
- package/dist/entrypoints/public.d.ts +6 -0
- package/dist/entrypoints/public.d.ts.map +1 -0
- package/dist/entrypoints/public.js +27 -0
- package/dist/entrypoints/public.js.map +1 -0
- package/dist/feature-libraries/changeAtomIdBTree.d.ts +2 -3
- package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.js +2 -15
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +8 -7
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +22 -44
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.js +11 -0
- package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts +3 -2
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js +2 -4
- package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.js +2 -4
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +44 -92
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +70 -220
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +2 -12
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -2
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js +2 -4
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts +6 -7
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js +0 -15
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/dist/feature-libraries/deltaUtils.d.ts +0 -1
- package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/dist/feature-libraries/deltaUtils.js +1 -6
- package/dist/feature-libraries/deltaUtils.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +0 -9
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +0 -6
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +7 -8
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +8 -39
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/observer.d.ts +17 -0
- package/dist/feature-libraries/flex-tree/observer.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/observer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.d.ts +5 -12
- package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js +33 -33
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +2 -2
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +6 -7
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts +6 -4
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.js +13 -11
- package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +19 -14
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +31 -48
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/dist/feature-libraries/forest-summary/index.d.ts +1 -1
- package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/index.js +2 -2
- package/dist/feature-libraries/forest-summary/index.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +6 -6
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +6 -11
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +3 -3
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/dist/feature-libraries/indexing/index.d.ts +1 -1
- package/dist/feature-libraries/indexing/index.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/index.js.map +1 -1
- package/dist/feature-libraries/indexing/types.d.ts +15 -13
- package/dist/feature-libraries/indexing/types.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/types.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +2 -2
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +24 -100
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js +12 -8
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +1 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -6
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +51 -85
- 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 +9 -4
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +3 -2
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +22 -18
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +158 -276
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +0 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +0 -8
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +22 -56
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +468 -1392
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +2 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +3 -3
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +10 -49
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js +3 -3
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +32 -13
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +446 -257
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +31 -31
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +28 -57
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/optional-field/requiredField.d.ts +2 -3
- package/dist/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/requiredField.js +1 -6
- package/dist/feature-libraries/optional-field/requiredField.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts +7 -6
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +259 -81
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts +10 -14
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +167 -65
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +56 -4
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +90 -7
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +116 -109
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +50 -0
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +32 -19
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +2 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -22
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +187 -388
- 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 +62 -20
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -13
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +111 -16
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/types.d.ts +74 -37
- package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/types.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts +25 -20
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +320 -159
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +3 -3
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +1 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +4 -4
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +1 -2
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +10 -1
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +70 -28
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +3 -9
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +8 -11
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +0 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +0 -8
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +2 -2
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +6 -16
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +7 -14
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/tree.js +1 -1
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +8 -1
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +48 -8
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +46 -16
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +131 -74
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree/unhydratedTreeContext.d.ts +20 -0
- package/dist/shared-tree/unhydratedTreeContext.d.ts.map +1 -0
- package/dist/shared-tree/unhydratedTreeContext.js +56 -0
- package/dist/shared-tree/unhydratedTreeContext.js.map +1 -0
- package/dist/shared-tree-core/branch.d.ts +2 -3
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +3 -4
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts +2 -2
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +9 -9
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +0 -4
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +2 -10
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts +0 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.js +0 -6
- 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 +0 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +2 -2
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +1 -3
- package/dist/shared-tree-core/index.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/messageCodecs.d.ts +0 -4
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +2 -10
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +0 -1
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js +0 -6
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +2 -2
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js +0 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +0 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +15 -27
- package/dist/shared-tree-core/transaction.d.ts.map +1 -1
- package/dist/shared-tree-core/transaction.js +7 -11
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +4 -0
- package/dist/simple-tree/api/configuration.d.ts.map +1 -1
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/eraseSchemaDetails.d.ts +43 -0
- package/dist/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
- package/dist/simple-tree/api/eraseSchemaDetails.js.map +1 -1
- package/dist/simple-tree/api/identifierIndex.d.ts +2 -2
- package/dist/simple-tree/api/identifierIndex.d.ts.map +1 -1
- package/dist/simple-tree/api/identifierIndex.js +1 -1
- package/dist/simple-tree/api/identifierIndex.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +6 -5
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +2 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +3 -2
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +3 -2
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +125 -28
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +72 -7
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/dist/simple-tree/api/schemaStatics.d.ts +10 -11
- package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaStatics.js +13 -7
- package/dist/simple-tree/api/schemaStatics.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.d.ts +15 -13
- package/dist/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js +4 -4
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +4 -4
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js +2 -2
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/dist/simple-tree/api/transactionTypes.d.ts +22 -25
- 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/tree.d.ts +69 -132
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +23 -2
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +12 -16
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +8 -59
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts +7 -6
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +3 -4
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +4 -4
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +3 -3
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +3 -5
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/common.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/common.js +1 -1
- package/dist/simple-tree/node-kinds/common.js.map +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +2 -2
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/index.d.ts +2 -2
- package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts +43 -7
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +19 -19
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +26 -2
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +2 -4
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/prepareForInsertion.d.ts +47 -54
- package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/dist/simple-tree/prepareForInsertion.js +125 -183
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +3 -8
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +13 -27
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/text/textDomain.d.ts +27 -9
- package/dist/text/textDomain.d.ts.map +1 -1
- package/dist/text/textDomain.js +43 -7
- package/dist/text/textDomain.js.map +1 -1
- package/dist/text/textDomainFormatted.d.ts +16 -12
- package/dist/text/textDomainFormatted.d.ts.map +1 -1
- package/dist/text/textDomainFormatted.js +97 -25
- package/dist/text/textDomainFormatted.js.map +1 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +2 -12
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +1 -2
- package/dist/util/index.js.map +1 -1
- package/dist/util/rangeMap.d.ts +10 -14
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +22 -62
- package/dist/util/rangeMap.js.map +1 -1
- package/dist/util/typeCheck.d.ts.map +1 -1
- package/dist/util/typeCheck.js.map +1 -1
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/docs/main/sequence-field/move-composition.md +46 -0
- package/eslint.config.mts +10 -2
- package/internal.d.ts +2 -2
- package/legacy.d.ts +4 -3
- package/lib/codec/codec.d.ts +2 -0
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +4 -3
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +1 -1
- 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 +13 -1
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +18 -3
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/codec/versioned/format.d.ts +22 -1
- package/lib/codec/versioned/format.d.ts.map +1 -1
- package/lib/codec/versioned/format.js +15 -2
- package/lib/codec/versioned/format.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/change-family/changeFamily.d.ts +1 -4
- package/lib/core/change-family/changeFamily.d.ts.map +1 -1
- package/lib/core/change-family/changeFamily.js.map +1 -1
- package/lib/core/change-family/index.d.ts +1 -1
- package/lib/core/change-family/index.d.ts.map +1 -1
- package/lib/core/change-family/index.js.map +1 -1
- package/lib/core/index.d.ts +3 -4
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -3
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +1 -6
- 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 +1 -1
- 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 +78 -1
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +0 -3
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +7 -25
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/tree/delta.d.ts +0 -5
- package/lib/core/tree/delta.d.ts.map +1 -1
- package/lib/core/tree/delta.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +1 -13
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +2 -15
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +0 -4
- package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/core/tree/index.d.ts +2 -2
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/pathTree.d.ts +3 -11
- package/lib/core/tree/pathTree.d.ts.map +1 -1
- package/lib/core/tree/pathTree.js +1 -12
- package/lib/core/tree/pathTree.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js +13 -17
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/entrypoints/alpha.d.ts +6 -0
- package/lib/entrypoints/alpha.d.ts.map +1 -0
- package/lib/entrypoints/alpha.js +12 -0
- package/lib/entrypoints/alpha.js.map +1 -0
- package/lib/entrypoints/beta.d.ts +6 -0
- package/lib/entrypoints/beta.d.ts.map +1 -0
- package/lib/entrypoints/beta.js +12 -0
- package/lib/entrypoints/beta.js.map +1 -0
- package/{src/core/schema-view/index.ts → lib/entrypoints/internal.d.ts} +2 -6
- package/lib/entrypoints/internal.d.ts.map +1 -0
- package/lib/entrypoints/internal.js +12 -0
- package/lib/entrypoints/internal.js.map +1 -0
- package/lib/entrypoints/legacy.d.ts +6 -0
- package/lib/entrypoints/legacy.d.ts.map +1 -0
- package/lib/entrypoints/legacy.js +15 -0
- package/lib/entrypoints/legacy.js.map +1 -0
- package/lib/entrypoints/public.d.ts +6 -0
- package/lib/entrypoints/public.d.ts.map +1 -0
- package/lib/entrypoints/public.js +10 -0
- package/lib/entrypoints/public.js.map +1 -0
- package/lib/feature-libraries/changeAtomIdBTree.d.ts +2 -3
- package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.js +3 -15
- package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +8 -7
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +25 -45
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.js +11 -0
- package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts +3 -2
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js +2 -2
- package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.js +1 -1
- package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +44 -92
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +69 -217
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +2 -12
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -2
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js +1 -2
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts +6 -7
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js +0 -15
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/lib/feature-libraries/deltaUtils.d.ts +0 -1
- package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/lib/feature-libraries/deltaUtils.js +1 -5
- package/lib/feature-libraries/deltaUtils.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +0 -9
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +0 -6
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +7 -8
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +9 -40
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/observer.d.ts +17 -0
- package/lib/feature-libraries/flex-tree/observer.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/observer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.d.ts +5 -12
- package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.js +35 -32
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +2 -2
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +7 -8
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts +6 -4
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.js +7 -4
- package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +19 -14
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +30 -47
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/lib/feature-libraries/forest-summary/index.d.ts +1 -1
- package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/index.js +1 -1
- package/lib/feature-libraries/forest-summary/index.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +6 -6
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +5 -5
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +3 -3
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/lib/feature-libraries/indexing/index.d.ts +1 -1
- package/lib/feature-libraries/indexing/index.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/index.js.map +1 -1
- package/lib/feature-libraries/indexing/types.d.ts +15 -13
- package/lib/feature-libraries/indexing/types.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/types.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js +2 -2
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +24 -100
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js +10 -7
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +1 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -6
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +51 -85
- 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 +9 -4
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +22 -18
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +144 -267
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +0 -8
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +22 -56
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +474 -1389
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +2 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +10 -49
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +32 -13
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +442 -254
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +31 -31
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +26 -55
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/optional-field/requiredField.d.ts +2 -3
- package/lib/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/requiredField.js +1 -5
- package/lib/feature-libraries/optional-field/requiredField.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts +7 -6
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +261 -83
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts +10 -14
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +169 -67
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +56 -4
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.js +84 -6
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +118 -111
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +46 -0
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +32 -19
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +3 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -22
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +182 -379
- 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 +63 -21
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -13
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +111 -16
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/types.d.ts +74 -37
- package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/types.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts +25 -20
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +313 -155
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/index.d.ts +9 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +9 -1
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +4 -4
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +1 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +4 -4
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +2 -3
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +10 -1
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +71 -30
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +3 -9
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +9 -12
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +0 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +0 -8
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +3 -3
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +6 -16
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +6 -12
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/tree.js +1 -1
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +8 -1
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +49 -9
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +46 -16
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +134 -77
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree/unhydratedTreeContext.d.ts +20 -0
- package/lib/shared-tree/unhydratedTreeContext.d.ts.map +1 -0
- package/lib/shared-tree/unhydratedTreeContext.js +52 -0
- package/lib/shared-tree/unhydratedTreeContext.js.map +1 -0
- package/lib/shared-tree-core/branch.d.ts +2 -3
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +3 -4
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts +2 -2
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +9 -9
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +0 -4
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +1 -8
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts +0 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.js +0 -6
- 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 +0 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +2 -2
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js +2 -2
- package/lib/shared-tree-core/index.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/messageCodecs.d.ts +0 -4
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +1 -8
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +0 -1
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js +0 -6
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +2 -2
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js +0 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +0 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +15 -27
- package/lib/shared-tree-core/transaction.d.ts.map +1 -1
- package/lib/shared-tree-core/transaction.js +7 -11
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +4 -0
- package/lib/simple-tree/api/configuration.d.ts.map +1 -1
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/eraseSchemaDetails.d.ts +43 -0
- package/lib/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
- package/lib/simple-tree/api/eraseSchemaDetails.js.map +1 -1
- package/lib/simple-tree/api/identifierIndex.d.ts +2 -2
- package/lib/simple-tree/api/identifierIndex.d.ts.map +1 -1
- package/lib/simple-tree/api/identifierIndex.js +2 -2
- package/lib/simple-tree/api/identifierIndex.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +6 -5
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +2 -2
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +3 -2
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +3 -2
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +125 -28
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +66 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/lib/simple-tree/api/schemaStatics.d.ts +10 -11
- package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaStatics.js +14 -8
- package/lib/simple-tree/api/schemaStatics.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.d.ts +15 -13
- package/lib/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.js +2 -2
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +4 -4
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js +2 -2
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/lib/simple-tree/api/transactionTypes.d.ts +22 -25
- 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/tree.d.ts +69 -132
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +23 -2
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +12 -16
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +8 -58
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts +7 -6
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +3 -4
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +4 -4
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +2 -2
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +4 -6
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/common.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/common.js +2 -2
- package/lib/simple-tree/node-kinds/common.js.map +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +2 -2
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.d.ts +2 -2
- package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts +43 -7
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +20 -20
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +26 -2
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +2 -4
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/prepareForInsertion.d.ts +47 -54
- package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/lib/simple-tree/prepareForInsertion.js +125 -184
- package/lib/simple-tree/prepareForInsertion.js.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +3 -8
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +10 -23
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/lib/text/textDomain.d.ts +27 -9
- package/lib/text/textDomain.d.ts.map +1 -1
- package/lib/text/textDomain.js +45 -9
- package/lib/text/textDomain.js.map +1 -1
- package/lib/text/textDomainFormatted.d.ts +16 -12
- package/lib/text/textDomainFormatted.d.ts.map +1 -1
- package/lib/text/textDomainFormatted.js +80 -8
- package/lib/text/textDomainFormatted.js.map +1 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +3 -13
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/rangeMap.d.ts +10 -14
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +22 -61
- package/lib/util/rangeMap.js.map +1 -1
- package/lib/util/typeCheck.d.ts.map +1 -1
- package/lib/util/typeCheck.js.map +1 -1
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +49 -49
- package/scripts/generate-entrypoint-sources.sh +29 -0
- package/src/codec/codec.ts +5 -4
- package/src/codec/index.ts +1 -0
- package/src/codec/versioned/codec.ts +32 -6
- package/src/codec/versioned/format.ts +17 -2
- package/src/codec/versioned/index.ts +1 -1
- package/src/core/change-family/changeFamily.ts +0 -5
- package/src/core/change-family/index.ts +0 -1
- package/src/core/index.ts +3 -10
- package/src/core/rebase/changeRebaser.ts +1 -6
- package/src/core/rebase/index.ts +2 -1
- package/src/core/rebase/types.ts +80 -4
- package/src/core/rebase/utils.ts +7 -31
- package/src/core/tree/delta.ts +0 -6
- package/src/core/tree/detachedFieldIndex.ts +1 -29
- package/src/core/tree/detachedFieldIndexTypes.ts +0 -5
- package/src/core/tree/index.ts +12 -13
- package/src/core/tree/pathTree.ts +4 -16
- package/src/core/tree/visitDelta.ts +11 -31
- package/{dist/alpha.d.ts → src/entrypoints/alpha.ts} +22 -11
- package/{lib/beta.d.ts → src/entrypoints/beta.ts} +6 -6
- package/src/entrypoints/internal.ts +13 -0
- package/{lib/legacy.d.ts → src/entrypoints/legacy.ts} +6 -6
- package/{lib/public.d.ts → src/entrypoints/public.ts} +2 -5
- package/src/feature-libraries/changeAtomIdBTree.ts +3 -28
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +59 -78
- package/src/feature-libraries/chunked-forest/codec/format.ts +11 -0
- package/src/feature-libraries/chunked-forest/codec/index.ts +3 -3
- package/src/feature-libraries/chunked-forest/index.ts +2 -3
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +127 -369
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +4 -13
- package/src/feature-libraries/default-schema/index.ts +5 -16
- package/src/feature-libraries/default-schema/mappedEditBuilder.ts +9 -35
- package/src/feature-libraries/deltaUtils.ts +1 -6
- package/src/feature-libraries/flex-tree/context.ts +0 -17
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +8 -7
- package/src/feature-libraries/flex-tree/lazyField.ts +24 -65
- package/src/feature-libraries/flex-tree/observer.ts +17 -0
- package/src/feature-libraries/forest-summary/codec.ts +46 -56
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +5 -14
- package/src/feature-libraries/forest-summary/formatCommon.ts +14 -19
- package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +44 -74
- package/src/feature-libraries/forest-summary/index.ts +1 -1
- package/src/feature-libraries/index.ts +11 -26
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +3 -5
- package/src/feature-libraries/indexing/index.ts +1 -1
- package/src/feature-libraries/indexing/types.ts +15 -17
- package/src/feature-libraries/mitigatedChangeFamily.ts +1 -3
- package/src/feature-libraries/modular-schema/crossFieldQueries.ts +47 -149
- package/src/feature-libraries/modular-schema/defaultRevisionReplacer.ts +16 -8
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +58 -113
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +18 -7
- package/src/feature-libraries/modular-schema/index.ts +16 -16
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +329 -604
- package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +0 -1
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +0 -14
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +754 -2695
- package/src/feature-libraries/modular-schema/modularChangeFormatV1.ts +0 -1
- package/src/feature-libraries/modular-schema/modularChangeFormatV2.ts +1 -1
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +10 -62
- package/src/feature-libraries/optional-field/optionalField.ts +568 -359
- package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +35 -31
- package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +35 -89
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +1 -5
- package/src/feature-libraries/optional-field/requiredField.ts +2 -15
- package/src/feature-libraries/sequence-field/compose.ts +522 -137
- package/src/feature-libraries/sequence-field/helperTypes.ts +19 -34
- package/src/feature-libraries/sequence-field/invert.ts +228 -102
- package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +195 -8
- package/src/feature-libraries/sequence-field/rebase.ts +207 -171
- package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +57 -0
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +52 -26
- package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +3 -8
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +229 -677
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +70 -56
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +30 -28
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +131 -21
- package/src/feature-libraries/sequence-field/types.ts +79 -40
- package/src/feature-libraries/sequence-field/utils.ts +370 -211
- package/src/index.ts +25 -3
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/independentView.ts +9 -15
- package/src/shared-tree/index.ts +2 -3
- package/src/shared-tree/schematizeTree.ts +8 -21
- package/src/shared-tree/schematizingTreeView.ts +111 -48
- package/src/shared-tree/sharedTree.ts +23 -40
- package/src/shared-tree/sharedTreeChangeCodecs.ts +0 -8
- package/src/shared-tree/sharedTreeChangeFamily.ts +4 -7
- package/src/shared-tree/sharedTreeEditBuilder.ts +8 -43
- package/src/shared-tree/tree.ts +1 -1
- package/src/shared-tree/treeAlpha.ts +64 -11
- package/src/shared-tree/treeCheckout.ts +161 -115
- package/src/shared-tree/unhydratedTreeContext.ts +87 -0
- package/src/shared-tree-core/branch.ts +2 -8
- package/src/shared-tree-core/editManager.ts +2 -16
- package/src/shared-tree-core/editManagerCodecs.ts +1 -11
- package/src/shared-tree-core/editManagerFormatCommons.ts +0 -6
- package/src/shared-tree-core/editManagerFormatV1toV4.ts +1 -3
- package/src/shared-tree-core/index.ts +0 -2
- package/src/shared-tree-core/messageCodecV1ToV4.ts +1 -2
- package/src/shared-tree-core/messageCodecs.ts +1 -11
- package/src/shared-tree-core/messageFormat.ts +0 -6
- package/src/shared-tree-core/messageFormatV1ToV4.ts +1 -3
- package/src/shared-tree-core/sharedTreeCore.ts +1 -4
- package/src/shared-tree-core/transaction.ts +19 -39
- package/src/simple-tree/api/configuration.ts +4 -0
- package/src/simple-tree/api/eraseSchemaDetails.ts +60 -0
- package/src/simple-tree/api/identifierIndex.ts +4 -4
- package/src/simple-tree/api/index.ts +15 -2
- package/src/simple-tree/api/schemaFactory.ts +11 -3
- package/src/simple-tree/api/schemaFactoryAlpha.ts +262 -25
- package/src/simple-tree/api/schemaFactoryBeta.ts +10 -1
- package/src/simple-tree/api/schemaStatics.ts +79 -21
- package/src/simple-tree/api/simpleTreeIndex.ts +26 -20
- package/src/simple-tree/api/snapshotCompatibilityChecker.ts +4 -4
- package/src/simple-tree/api/transactionTypes.ts +24 -26
- package/src/simple-tree/api/tree.ts +92 -131
- package/src/simple-tree/api/typesUnsafe.ts +49 -1
- package/src/simple-tree/core/unhydratedFlexTree.ts +35 -82
- package/src/simple-tree/fieldSchema.ts +33 -11
- package/src/simple-tree/index.ts +15 -4
- package/src/simple-tree/node-kinds/array/arrayNode.ts +5 -7
- package/src/simple-tree/node-kinds/common.ts +5 -2
- package/src/simple-tree/node-kinds/index.ts +3 -0
- package/src/simple-tree/node-kinds/map/mapNode.ts +4 -4
- package/src/simple-tree/node-kinds/object/index.ts +3 -0
- package/src/simple-tree/node-kinds/object/objectNode.ts +95 -37
- package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +33 -2
- package/src/simple-tree/node-kinds/record/recordNode.ts +9 -10
- package/src/simple-tree/prepareForInsertion.ts +200 -342
- package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +15 -35
- package/src/text/textDomain.ts +91 -12
- package/src/text/textDomainFormatted.ts +127 -15
- package/src/treeFactory.ts +4 -16
- package/src/util/index.ts +0 -3
- package/src/util/rangeMap.ts +34 -78
- package/src/util/typeCheck.ts +1 -0
- package/src/util/typeUtils.ts +4 -7
- package/dist/beta.d.ts +0 -149
- package/dist/core/schema-view/index.d.ts +0 -6
- package/dist/core/schema-view/index.d.ts.map +0 -1
- package/dist/core/schema-view/index.js +0 -10
- package/dist/core/schema-view/index.js.map +0 -1
- package/dist/core/schema-view/view.d.ts +0 -31
- package/dist/core/schema-view/view.d.ts.map +0 -1
- package/dist/core/schema-view/view.js +0 -18
- package/dist/core/schema-view/view.js.map +0 -1
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +0 -40
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +0 -1
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js +0 -153
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js.map +0 -1
- package/dist/feature-libraries/forest-summary/formatV1.d.ts +0 -12
- package/dist/feature-libraries/forest-summary/formatV1.d.ts.map +0 -1
- package/dist/feature-libraries/forest-summary/formatV1.js +0 -10
- package/dist/feature-libraries/forest-summary/formatV1.js.map +0 -1
- package/dist/feature-libraries/forest-summary/formatV2.d.ts +0 -12
- package/dist/feature-libraries/forest-summary/formatV2.d.ts.map +0 -1
- package/dist/feature-libraries/forest-summary/formatV2.js +0 -10
- package/dist/feature-libraries/forest-summary/formatV2.js.map +0 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.d.ts +0 -15
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.d.ts.map +0 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.js +0 -296
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.js.map +0 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +0 -74
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +0 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js +0 -35
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts +0 -23
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.js +0 -31
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.js.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.d.ts +0 -12
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.d.ts.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.js +0 -57
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.js.map +0 -1
- package/dist/legacy.d.ts +0 -156
- package/dist/public.d.ts +0 -94
- package/lib/alpha.d.ts +0 -300
- package/lib/core/schema-view/index.d.ts +0 -6
- package/lib/core/schema-view/index.d.ts.map +0 -1
- package/lib/core/schema-view/index.js.map +0 -1
- package/lib/core/schema-view/view.d.ts +0 -31
- package/lib/core/schema-view/view.d.ts.map +0 -1
- package/lib/core/schema-view/view.js +0 -14
- package/lib/core/schema-view/view.js.map +0 -1
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +0 -40
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +0 -1
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js +0 -149
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js.map +0 -1
- package/lib/feature-libraries/forest-summary/formatV1.d.ts +0 -12
- package/lib/feature-libraries/forest-summary/formatV1.d.ts.map +0 -1
- package/lib/feature-libraries/forest-summary/formatV1.js +0 -7
- package/lib/feature-libraries/forest-summary/formatV1.js.map +0 -1
- package/lib/feature-libraries/forest-summary/formatV2.d.ts +0 -12
- package/lib/feature-libraries/forest-summary/formatV2.d.ts.map +0 -1
- package/lib/feature-libraries/forest-summary/formatV2.js +0 -7
- package/lib/feature-libraries/forest-summary/formatV2.js.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.d.ts +0 -15
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.d.ts.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.js +0 -292
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.js.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +0 -74
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js +0 -32
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts +0 -23
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.js +0 -27
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.js.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.d.ts +0 -12
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.d.ts.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.js +0 -53
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.js.map +0 -1
- package/src/core/schema-view/README.md +0 -9
- package/src/core/schema-view/view.ts +0 -38
- package/src/feature-libraries/default-schema/locationBasedEditBuilder.ts +0 -231
- package/src/feature-libraries/forest-summary/formatV1.ts +0 -11
- package/src/feature-libraries/forest-summary/formatV2.ts +0 -11
- package/src/feature-libraries/modular-schema/modularChangeCodecV3.ts +0 -649
- package/src/feature-libraries/modular-schema/modularChangeFormatV3.ts +0 -67
- package/src/feature-libraries/optional-field/optionalFieldChangeFormatV3.ts +0 -45
- package/src/feature-libraries/optional-field/optionalFieldCodecV3.ts +0 -94
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/rebase.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, unreachableCase } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\tareEqualChangeAtomIds,\n\ttype ChangeAtomId,\n\ttype RevisionMetadataSource,\n\ttype RevisionTag,\n} from \"../../core/index.js\";\nimport type { IdAllocator, Mutable } from \"../../util/index.js\";\nimport {\n\ttype RebaseNodeManager,\n\ttype NodeChangeRebaser,\n\tNodeAttachState,\n\ttype NodeId,\n\ttype RebaseRevisionMetadata,\n} from \"../modular-schema/index.js\";\n\nimport { MarkListFactory } from \"./markListFactory.js\";\nimport { MarkQueue } from \"./markQueue.js\";\nimport type { NodeRangeQueryFunc } from \"./moveEffectTable.js\";\nimport {\n\ttype Attach,\n\ttype CellId,\n\ttype CellMark,\n\ttype Changeset,\n\ttype Detach,\n\ttype Mark,\n\ttype MarkEffect,\n\ttype MarkList,\n\ttype MoveId,\n\ttype NoopMark,\n\tNoopMarkType,\n} from \"./types.js\";\nimport {\n\tCellOrder,\n\tareInputCellsEmpty,\n\tcellSourcesFromMarks,\n\tcloneCellId,\n\tcloneMark,\n\tcompareCellPositionsUsingTombstones,\n\textractMarkEffect,\n\tgetAttachedRootId,\n\tgetDetachOutputCellId,\n\tgetDetachedRootId,\n\tgetInputCellId,\n\tgetOutputCellId,\n\tisAttach,\n\tisDetach,\n\tisNewAttach,\n\tisRename,\n\tisTombstone,\n\tmarkEmptiesCells,\n\tmarkFillsCells,\n\twithNodeChange,\n} from \"./utils.js\";\n\n/**\n * Rebases `change` over `base` assuming they both apply to the same initial state.\n * @param change - The changeset to rebase.\n * @param base - The changeset to rebase over.\n * @returns A changeset that performs the changes in `change` but does so assuming `base` has been applied first.\n */\nexport function rebase(\n\tchange: Changeset,\n\tbase: Changeset,\n\trebaseChild: NodeChangeRebaser,\n\tgenId: IdAllocator,\n\tmanager: RebaseNodeManager,\n\trevisionMetadata: RebaseRevisionMetadata,\n): Changeset {\n\treturn rebaseMarkList(change, base, revisionMetadata, rebaseChild, genId, manager);\n}\n\nfunction rebaseMarkList(\n\tcurrMarkList: MarkList,\n\tbaseMarkList: MarkList,\n\tmetadata: RebaseRevisionMetadata,\n\trebaseChild: NodeChangeRebaser,\n\tgenId: IdAllocator,\n\tmoveEffects: RebaseNodeManager,\n): MarkList {\n\tconst factory = new MarkListFactory();\n\tconst queue = new RebaseQueue(baseMarkList, currMarkList, metadata, moveEffects);\n\n\twhile (!queue.isEmpty()) {\n\t\tconst { baseMark, newMark: currMark } = queue.pop();\n\t\tconst rebasedMark = rebaseMark(currMark, baseMark, rebaseChild, moveEffects);\n\t\tfactory.push(rebasedMark);\n\t}\n\n\treturn factory.list;\n}\n\n/**\n * Generates a NoOp mark that targets the same cells as the input mark.\n * @param mark - The mark the NoOp should target.\n * @param revision - The revision, if available.\n * @returns A NoOp mark that targets the same cells as the input mark.\n */\nfunction generateNoOpWithCellId(mark: Mark): CellMark<NoopMark> {\n\tconst length = mark.count;\n\tconst cellId = getInputCellId(mark);\n\treturn cellId === undefined ? { count: length } : { count: length, cellId };\n}\n\nclass RebaseQueue {\n\tprivate readonly baseMarks: MarkQueue;\n\tprivate readonly newMarks: MarkQueue;\n\tprivate readonly baseMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\tprivate readonly newMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\n\tpublic constructor(\n\t\tbaseMarks: Changeset,\n\t\tnewMarks: Changeset,\n\t\tprivate readonly metadata: RevisionMetadataSource,\n\t\tprivate readonly moveEffects: RebaseNodeManager,\n\t) {\n\t\tconst queryFunc: NodeRangeQueryFunc = (mark) => {\n\t\t\tif (isAttach(mark)) {\n\t\t\t\treturn moveEffects.getNewChangesForBaseAttach(getAttachedRootId(mark), mark.count)\n\t\t\t\t\t.length;\n\t\t\t} else if (isDetach(mark)) {\n\t\t\t\treturn moveEffects.doesBaseAttachNodes(getDetachedRootId(mark), mark.count).length;\n\t\t\t}\n\n\t\t\tlet count = mark.count;\n\t\t\tif (mark.type === \"Rename\") {\n\t\t\t\tcount = moveEffects.getNewRenameForBaseRename(mark.idOverride, count).length;\n\t\t\t}\n\n\t\t\treturn mark.cellId === undefined\n\t\t\t\t? count\n\t\t\t\t: moveEffects.doesBaseAttachNodes(mark.cellId, count).length;\n\t\t};\n\n\t\tthis.baseMarks = new MarkQueue(baseMarks, queryFunc);\n\t\tthis.newMarks = new MarkQueue(newMarks, (mark) => mark.count);\n\t\tthis.baseMarksCellSources = cellSourcesFromMarks(baseMarks, getInputCellId);\n\t\tthis.newMarksCellSources = cellSourcesFromMarks(newMarks, getInputCellId);\n\t}\n\n\tpublic isEmpty(): boolean {\n\t\treturn this.baseMarks.isEmpty() && this.newMarks.isEmpty();\n\t}\n\n\tpublic pop(): RebaseMarks {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\t!(baseMark === undefined && newMark === undefined),\n\t\t\t0x722 /* Cannot pop from empty queue */,\n\t\t);\n\n\t\tif (baseMark === undefined) {\n\t\t\tconst dequeuedNewMark = this.newMarks.dequeue();\n\t\t\treturn {\n\t\t\t\tbaseMark: generateNoOpWithCellId(dequeuedNewMark),\n\t\t\t\tnewMark: dequeuedNewMark,\n\t\t\t};\n\t\t} else if (newMark === undefined) {\n\t\t\treturn this.dequeueBase();\n\t\t} else if (areInputCellsEmpty(baseMark) && areInputCellsEmpty(newMark)) {\n\t\t\tconst baseId = getInputCellId(baseMark);\n\t\t\tconst newId = getInputCellId(newMark);\n\t\t\tassert(\n\t\t\t\tbaseId !== undefined && newId !== undefined,\n\t\t\t\t0x89f /* Both marks should have cell IDs */,\n\t\t\t);\n\t\t\tconst comparison = compareCellPositionsUsingTombstones(\n\t\t\t\tbaseId,\n\t\t\t\tnewId,\n\t\t\t\tthis.baseMarksCellSources,\n\t\t\t\tthis.newMarksCellSources,\n\t\t\t\tthis.metadata,\n\t\t\t);\n\t\t\tswitch (comparison) {\n\t\t\t\tcase CellOrder.SameCell: {\n\t\t\t\t\treturn this.dequeueBoth();\n\t\t\t\t}\n\t\t\t\tcase CellOrder.OldThenNew: {\n\t\t\t\t\treturn this.dequeueBase();\n\t\t\t\t}\n\t\t\t\tcase CellOrder.NewThenOld: {\n\t\t\t\t\treturn this.dequeueNew();\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tunreachableCase(comparison);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (areInputCellsEmpty(newMark)) {\n\t\t\treturn this.dequeueNew();\n\t\t} else if (areInputCellsEmpty(baseMark)) {\n\t\t\treturn this.dequeueBase();\n\t\t} else {\n\t\t\treturn this.dequeueBoth();\n\t\t}\n\t}\n\n\tprivate dequeueBase(length?: number): RebaseMarks {\n\t\tconst baseMark =\n\t\t\tlength === undefined ? this.baseMarks.dequeue() : this.baseMarks.dequeueUpTo(length);\n\n\t\tlet newMark: Mark = generateNoOpWithCellId(baseMark);\n\n\t\tconst movedEffect = getMovedEffectFromBaseMark(this.moveEffects, baseMark);\n\n\t\tif (movedEffect !== undefined) {\n\t\t\tnewMark = addMovedMarkEffect(newMark, movedEffect);\n\t\t}\n\n\t\treturn {\n\t\t\tbaseMark,\n\t\t\tnewMark,\n\t\t};\n\t}\n\n\tprivate dequeueNew(): RebaseMarks {\n\t\tconst newMark = this.newMarks.dequeue();\n\t\treturn { newMark, baseMark: generateNoOpWithCellId(newMark) };\n\t}\n\n\tprivate dequeueBoth(): RebaseMarks {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\tbaseMark !== undefined && newMark !== undefined,\n\t\t\t0x69c /* Cannot dequeue both unless both mark queues are non-empty */,\n\t\t);\n\t\tconst length = Math.min(newMark.count, baseMark.count);\n\t\tconst sizedBaseMark = this.baseMarks.dequeueUpTo(length);\n\t\tconst sizedNewMark = this.newMarks.dequeueUpTo(length);\n\t\tconst movedMark = getMovedEffectFromBaseMark(this.moveEffects, sizedBaseMark);\n\t\treturn {\n\t\t\tbaseMark: sizedBaseMark,\n\t\t\tnewMark:\n\t\t\t\tmovedMark === undefined ? sizedNewMark : addMovedMarkEffect(sizedNewMark, movedMark),\n\t\t};\n\t}\n}\n\n/**\n * Combines `mark` and `effect` into a single mark.\n * This function is only intended to handle cases where `mark` is part of a changeset being rebased\n * and `effect` is an effect from the same changeset whose target has been moved by the base changeset.\n * @returns a mark which has the composite effect of `mark` and `effect`.\n */\nfunction addMovedMarkEffect(mark: Mark, effect: Detach): Mark {\n\tif (isAttach(mark) && isDetach(effect)) {\n\t\treturn { ...mark, type: \"Attach\" };\n\t} else if (isRename(mark) && isDetach(effect)) {\n\t\tconst result = { ...effect, count: mark.count };\n\t\tif (!areEqualChangeAtomIds(mark.idOverride, getDetachedRootId(effect))) {\n\t\t\tresult.detachCellId = mark.idOverride;\n\t\t}\n\t\treturn result;\n\t} else if (isTombstone(mark)) {\n\t\treturn { ...mark, ...effect };\n\t}\n\tassert(false, 0x818 /* Unexpected combination of mark effects at source and destination */);\n}\n\n/**\n * Represents the marks rebasing should process next.\n * If `baseMark` and `newMark` are both defined, then they are `SizedMark`s covering the same range of nodes.\n */\ninterface RebaseMarks {\n\tbaseMark: Mark;\n\tnewMark: Mark;\n}\n\nfunction rebaseMark(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\trebaseChild: NodeChangeRebaser,\n\tmoveEffects: RebaseNodeManager,\n): Mark {\n\tconst rebasedMark = rebaseNodeChange(cloneMark(currMark), baseMark, rebaseChild);\n\tconst movedNodeChanges = getMovedChangesFromBaseMark(moveEffects, baseMark);\n\tif (movedNodeChanges !== undefined) {\n\t\tassert(\n\t\t\trebasedMark.changes === undefined,\n\t\t\t0x8dc /* Unexpected collision of new node changes */,\n\t\t);\n\t\trebasedMark.changes = movedNodeChanges;\n\t}\n\n\treturn rebaseMarkIgnoreChild(rebasedMark, baseMark, moveEffects);\n}\n\nfunction rebaseMarkIgnoreChild(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\tmoveEffects: RebaseNodeManager,\n): Mark {\n\tlet rebasedMark: Mark;\n\tif (isDetach(baseMark)) {\n\t\tif (baseMark.cellId !== undefined) {\n\t\t\t// Detaches on empty cells have an implicit revive effect.\n\t\t\tdelete currMark.cellId;\n\t\t}\n\t\tassert(\n\t\t\t!isNewAttach(currMark),\n\t\t\t0x69d /* A new attach should not be rebased over its cell being emptied */,\n\t\t);\n\t\tconst baseCellId = getDetachOutputCellId(baseMark);\n\t\tconst baseDetachId = getDetachedRootId(baseMark);\n\n\t\tconst { remains, follows } = separateEffectsForMove(\n\t\t\textractMarkEffect(currMark),\n\t\t\tbaseMark,\n\t\t\tmoveEffects,\n\t\t);\n\n\t\tmoveRebasedChanges(moveEffects, baseDetachId, baseMark.count, currMark.changes, follows);\n\t\trebasedMark = { ...remains, count: baseMark.count };\n\t\treturn makeDetachedMark(rebasedMark, cloneCellId(baseCellId));\n\t} else if (markFillsCells(baseMark)) {\n\t\treturn withCellId(currMark, undefined);\n\t} else if (isRename(baseMark)) {\n\t\tif (currMark.type === \"Rename\") {\n\t\t\tconst doesBaseMoveAndAttach = moveEffects.doesBaseAttachNodes(\n\t\t\t\tbaseMark.idOverride,\n\t\t\t\tbaseMark.count,\n\t\t\t).value;\n\n\t\t\tassert(baseMark.cellId !== undefined, \"Rename should target empty cells\");\n\t\t\tconst baseRootRename = moveEffects.getBaseRename(baseMark.cellId, baseMark.count).value;\n\t\t\tconst doesBaseMoveAndDetach =\n\t\t\t\tbaseRootRename !== undefined &&\n\t\t\t\t!areEqualChangeAtomIds(baseRootRename, baseMark.idOverride);\n\n\t\t\tif (doesBaseMoveAndAttach || doesBaseMoveAndDetach) {\n\t\t\t\t// `newMark` represents a node-targeting rename.\n\t\t\t\t// The base changeset has moved the node which was last detached from the cell,\n\t\t\t\t// so we should remove the rename from this location.\n\t\t\t\treturn { cellId: baseMark.idOverride, count: baseMark.count };\n\t\t\t}\n\t\t}\n\n\t\tconst newRenameId = moveEffects.getNewRenameForBaseRename(\n\t\t\tbaseMark.idOverride,\n\t\t\tbaseMark.count,\n\t\t).value;\n\n\t\tif (newRenameId !== undefined && currMark.type !== \"Attach\") {\n\t\t\treturn {\n\t\t\t\ttype: \"Rename\",\n\t\t\t\tcellId: baseMark.idOverride,\n\t\t\t\tcount: baseMark.count,\n\t\t\t\tidOverride: newRenameId,\n\t\t\t};\n\t\t}\n\n\t\treturn withCellId(currMark, getOutputCellId(baseMark));\n\t} else {\n\t\treturn currMark;\n\t}\n}\n\n/**\n * Returns a pair of marks that represent the effects which should remain in place in the face of concurrent move,\n * and the effects that should be sent to the move destination.\n */\nfunction separateEffectsForMove(\n\tmark: MarkEffect,\n\tbaseMark: CellMark<Detach>,\n\tnodeManager: RebaseNodeManager,\n): {\n\tremains?: MarkEffect;\n\tfollows?: Detach;\n} {\n\tconst type = mark.type;\n\tswitch (type) {\n\t\tcase NoopMarkType: {\n\t\t\treturn {};\n\t\t}\n\t\tcase \"Detach\": {\n\t\t\tif (mark.cellRename !== undefined) {\n\t\t\t\treturn { remains: { type: \"Rename\", idOverride: mark.cellRename }, follows: mark };\n\t\t\t}\n\n\t\t\tconst baseDetachId = getDetachedRootId(baseMark);\n\t\t\tconst outputCellId = getDetachOutputCellId(baseMark);\n\t\t\tconst doesBaseMoveNodes =\n\t\t\t\t!areEqualChangeAtomIds(outputCellId, baseDetachId) ||\n\t\t\t\tnodeManager.doesBaseAttachNodes(baseDetachId, baseMark.count).value;\n\n\t\t\t// We should rename these cells unless the nodes are reattached elsewhere,\n\t\t\t// in which case we will rename those cells instead.\n\t\t\tconst remains: MarkEffect = doesBaseMoveNodes\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\ttype: \"Rename\",\n\t\t\t\t\t\tidOverride: getDetachOutputCellId(mark),\n\t\t\t\t\t};\n\n\t\t\treturn { remains, follows: mark };\n\t\t}\n\t\tcase \"Rename\": {\n\t\t\treturn { remains: mark };\n\t\t}\n\t\tcase \"Attach\": {\n\t\t\tconst follows: Mutable<Detach> = {\n\t\t\t\ttype: \"Detach\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\n\t\t\tif (mark.detachCellId !== undefined) {\n\t\t\t\tfollows.detachCellId = mark.detachCellId;\n\t\t\t}\n\n\t\t\tconst remains: Attach = {\n\t\t\t\ttype: \"Attach\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\t\t\tif (mark.revision !== undefined) {\n\t\t\t\tfollows.revision = mark.revision;\n\t\t\t\tremains.revision = mark.revision;\n\t\t\t}\n\t\t\treturn { remains, follows };\n\t\t}\n\t\tdefault: {\n\t\t\tunreachableCase(type);\n\t\t}\n\t}\n}\n\nfunction moveRebasedChanges(\n\tmoveEffects: RebaseNodeManager,\n\tbaseId: ChangeAtomId,\n\tcount: number,\n\tnodeChange: NodeId | undefined,\n\tnewDetach: Detach | undefined,\n): void {\n\tconst newId = newDetach === undefined ? undefined : getDetachedRootId(newDetach);\n\tconst detachCellId = newDetach?.detachCellId;\n\tmoveEffects.rebaseOverDetach(baseId, count, newId, nodeChange, detachCellId);\n}\n\nfunction rebaseNodeChange(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\tnodeRebaser: NodeChangeRebaser,\n): Mark {\n\tconst baseChange = baseMark.changes;\n\tconst currChange = currMark.changes;\n\n\tif (baseChange === undefined && currChange === undefined) {\n\t\treturn currMark;\n\t}\n\n\tconst nodeState = nodeStateAfterMark(baseMark);\n\treturn withNodeChange(currMark, nodeRebaser(currChange, baseChange, nodeState));\n}\n\nfunction nodeStateAfterMark(mark: Mark): NodeAttachState {\n\tif (markEmptiesCells(mark)) {\n\t\treturn NodeAttachState.Detached;\n\t} else if (markFillsCells(mark)) {\n\t\treturn NodeAttachState.Attached;\n\t} else {\n\t\treturn mark.cellId === undefined ? NodeAttachState.Attached : NodeAttachState.Detached;\n\t}\n}\n\nfunction makeDetachedMark(mark: Mark, cellId: ChangeAtomId): Mark {\n\tassert(mark.cellId === undefined, 0x69f /* Expected mark to be attached */);\n\treturn { ...mark, cellId };\n}\n\nfunction withCellId<TMark extends Mark>(mark: TMark, cellId: CellId | undefined): TMark {\n\tconst newMark = { ...mark, cellId };\n\tif (cellId === undefined) {\n\t\tdelete newMark.cellId;\n\t}\n\treturn newMark;\n}\n\nfunction getMovedEffectFromBaseMark(\n\tmoveEffects: RebaseNodeManager,\n\tbaseMark: Mark,\n): Detach | undefined {\n\treturn isAttach(baseMark)\n\t\t? getMovedEffect(moveEffects, baseMark.revision, baseMark.id, baseMark.count)\n\t\t: undefined;\n}\n\n// It is expected that the range from `id` to `id + count - 1` has the same move effect.\n// The call sites to this function are making queries about a mark which has already been split by a `MarkQueue`\n// to match the ranges in `moveEffects`.\n// TODO: Reduce the duplication between this and other MoveEffect helpers\nfunction getMovedEffect(\n\tmoveEffects: RebaseNodeManager,\n\trevision: RevisionTag | undefined,\n\tlocalId: MoveId,\n\tcount: number,\n): Detach | undefined {\n\tconst entry = moveEffects.getNewChangesForBaseAttach({ revision, localId }, count);\n\tassert(entry.length === count, 0x6f3 /* Expected effect to cover entire mark */);\n\tconst detachId = entry.value?.detachId;\n\tif (detachId === undefined) {\n\t\tassert(\n\t\t\tentry.value?.cellRename === undefined,\n\t\t\t\"Cell detach should be accompanied by node detach\",\n\t\t);\n\t\treturn undefined;\n\t}\n\n\tconst detach: Mutable<Detach> = {\n\t\ttype: \"Detach\",\n\t\trevision: detachId.revision,\n\t\tid: detachId.localId,\n\t};\n\tif (entry.value?.cellRename !== undefined) {\n\t\tdetach.detachCellId = entry.value.cellRename;\n\t}\n\n\treturn detach;\n}\n\nfunction getMovedChangesFromBaseMark(\n\tmoveEffects: RebaseNodeManager,\n\tbaseMark: Mark,\n): NodeId | undefined {\n\treturn isAttach(baseMark)\n\t\t? getMovedNodeChanges(moveEffects, baseMark.revision, baseMark.id)\n\t\t: undefined;\n}\n\nfunction getMovedNodeChanges(\n\tmoveEffects: RebaseNodeManager,\n\trevision: RevisionTag | undefined,\n\tlocalId: MoveId,\n): NodeId | undefined {\n\treturn moveEffects.getNewChangesForBaseAttach({ revision, localId }, 1).value?.nodeChange;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/rebase.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, unreachableCase } from \"@fluidframework/core-utils/internal\";\n\nimport type { ChangeAtomId, RevisionMetadataSource, RevisionTag } from \"../../core/index.js\";\nimport { type IdAllocator, type Mutable, brand } from \"../../util/index.js\";\nimport {\n\ttype CrossFieldManager,\n\tCrossFieldTarget,\n\ttype NodeChangeRebaser,\n\tNodeAttachState,\n\ttype NodeId,\n\ttype RebaseRevisionMetadata,\n} from \"../modular-schema/index.js\";\n\nimport { MarkListFactory } from \"./markListFactory.js\";\nimport { MarkQueue } from \"./markQueue.js\";\nimport {\n\ttype MoveEffect,\n\ttype MoveEffectTable,\n\tgetMoveEffect,\n\tisMoveIn,\n\tisMoveMark,\n\tisMoveOut,\n\tsetMoveEffect,\n} from \"./moveEffectTable.js\";\nimport {\n\ttype CellId,\n\ttype CellMark,\n\ttype Changeset,\n\ttype Detach,\n\ttype Mark,\n\ttype MarkEffect,\n\ttype MarkList,\n\ttype MoveId,\n\ttype MoveIn,\n\ttype MoveOut,\n\ttype NoopMark,\n\tNoopMarkType,\n} from \"./types.js\";\nimport {\n\tCellOrder,\n\tareInputCellsEmpty,\n\tcellSourcesFromMarks,\n\tcloneCellId,\n\tcloneMark,\n\tcompareCellPositionsUsingTombstones,\n\textractMarkEffect,\n\tgetDetachOutputCellId,\n\tgetEndpoint,\n\tgetInputCellId,\n\tisAttachAndDetachEffect,\n\tisDetach,\n\tisNewAttach,\n\tisRename,\n\tisTombstone,\n\tmarkEmptiesCells,\n\tmarkFillsCells,\n\tsplitMarkEffect,\n\twithNodeChange,\n} from \"./utils.js\";\n\n/**\n * Rebases `change` over `base` assuming they both apply to the same initial state.\n * @param change - The changeset to rebase.\n * @param base - The changeset to rebase over.\n * @returns A changeset that performs the changes in `change` but does so assuming `base` has been applied first.\n */\nexport function rebase(\n\tchange: Changeset,\n\tbase: Changeset,\n\trebaseChild: NodeChangeRebaser,\n\tgenId: IdAllocator,\n\tmanager: CrossFieldManager,\n\trevisionMetadata: RebaseRevisionMetadata,\n): Changeset {\n\treturn rebaseMarkList(\n\t\tchange,\n\t\tbase,\n\t\trevisionMetadata,\n\t\trebaseChild,\n\t\tgenId,\n\t\tmanager as MoveEffectTable,\n\t);\n}\n\nfunction rebaseMarkList(\n\tcurrMarkList: MarkList,\n\tbaseMarkList: MarkList,\n\tmetadata: RebaseRevisionMetadata,\n\trebaseChild: NodeChangeRebaser,\n\tgenId: IdAllocator,\n\tmoveEffects: CrossFieldManager<MoveEffect>,\n): MarkList {\n\tconst factory = new MarkListFactory();\n\tconst queue = new RebaseQueue(baseMarkList, currMarkList, metadata, moveEffects);\n\n\twhile (!queue.isEmpty()) {\n\t\tconst { baseMark, newMark: currMark } = queue.pop();\n\t\tconst rebasedMark = rebaseMark(currMark, baseMark, rebaseChild, moveEffects);\n\t\tfactory.push(rebasedMark);\n\t}\n\n\treturn factory.list;\n}\n\n/**\n * Generates a NoOp mark that targets the same cells as the input mark.\n * @param mark - The mark the NoOp should target.\n * @param revision - The revision, if available.\n * @returns A NoOp mark that targets the same cells as the input mark.\n */\nfunction generateNoOpWithCellId(mark: Mark): CellMark<NoopMark> {\n\tconst length = mark.count;\n\tconst cellId = getInputCellId(mark);\n\treturn cellId === undefined ? { count: length } : { count: length, cellId };\n}\n\nclass RebaseQueue {\n\tprivate readonly baseMarks: MarkQueue;\n\tprivate readonly newMarks: MarkQueue;\n\tprivate readonly baseMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\tprivate readonly newMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\n\tpublic constructor(\n\t\tbaseMarks: Changeset,\n\t\tnewMarks: Changeset,\n\t\tprivate readonly metadata: RevisionMetadataSource,\n\t\tprivate readonly moveEffects: MoveEffectTable,\n\t) {\n\t\tthis.baseMarks = new MarkQueue(baseMarks, moveEffects);\n\t\tthis.newMarks = new MarkQueue(newMarks, moveEffects);\n\t\tthis.baseMarksCellSources = cellSourcesFromMarks(baseMarks, getInputCellId);\n\t\tthis.newMarksCellSources = cellSourcesFromMarks(newMarks, getInputCellId);\n\t}\n\n\tpublic isEmpty(): boolean {\n\t\treturn this.baseMarks.isEmpty() && this.newMarks.isEmpty();\n\t}\n\n\tpublic pop(): RebaseMarks {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\t!(baseMark === undefined && newMark === undefined),\n\t\t\t0x722 /* Cannot pop from empty queue */,\n\t\t);\n\n\t\tif (baseMark === undefined) {\n\t\t\tconst dequeuedNewMark = this.newMarks.dequeue();\n\t\t\treturn {\n\t\t\t\tbaseMark: generateNoOpWithCellId(dequeuedNewMark),\n\t\t\t\tnewMark: dequeuedNewMark,\n\t\t\t};\n\t\t} else if (newMark === undefined) {\n\t\t\treturn this.dequeueBase();\n\t\t} else if (areInputCellsEmpty(baseMark) && areInputCellsEmpty(newMark)) {\n\t\t\tconst baseId = getInputCellId(baseMark);\n\t\t\tconst newId = getInputCellId(newMark);\n\t\t\tassert(\n\t\t\t\tbaseId !== undefined && newId !== undefined,\n\t\t\t\t0x89f /* Both marks should have cell IDs */,\n\t\t\t);\n\t\t\tconst comparison = compareCellPositionsUsingTombstones(\n\t\t\t\tbaseId,\n\t\t\t\tnewId,\n\t\t\t\tthis.baseMarksCellSources,\n\t\t\t\tthis.newMarksCellSources,\n\t\t\t\tthis.metadata,\n\t\t\t);\n\t\t\tswitch (comparison) {\n\t\t\t\tcase CellOrder.SameCell: {\n\t\t\t\t\treturn this.dequeueBoth();\n\t\t\t\t}\n\t\t\t\tcase CellOrder.OldThenNew: {\n\t\t\t\t\treturn this.dequeueBase();\n\t\t\t\t}\n\t\t\t\tcase CellOrder.NewThenOld: {\n\t\t\t\t\treturn this.dequeueNew();\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tunreachableCase(comparison);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (areInputCellsEmpty(newMark)) {\n\t\t\treturn this.dequeueNew();\n\t\t} else if (areInputCellsEmpty(baseMark)) {\n\t\t\treturn this.dequeueBase();\n\t\t} else {\n\t\t\treturn this.dequeueBoth();\n\t\t}\n\t}\n\n\tprivate dequeueBase(length?: number): RebaseMarks {\n\t\tconst baseMark =\n\t\t\tlength === undefined ? this.baseMarks.dequeue() : this.baseMarks.dequeueUpTo(length);\n\n\t\tlet newMark: Mark = generateNoOpWithCellId(baseMark);\n\n\t\tconst movedEffect = getMovedEffectFromBaseMark(this.moveEffects, baseMark);\n\n\t\tif (movedEffect !== undefined) {\n\t\t\tnewMark = addMovedMarkEffect(newMark, movedEffect);\n\t\t}\n\n\t\treturn {\n\t\t\tbaseMark,\n\t\t\tnewMark,\n\t\t};\n\t}\n\n\tprivate dequeueNew(): RebaseMarks {\n\t\tconst newMark = this.newMarks.dequeue();\n\t\treturn { newMark, baseMark: generateNoOpWithCellId(newMark) };\n\t}\n\n\tprivate dequeueBoth(): RebaseMarks {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\tbaseMark !== undefined && newMark !== undefined,\n\t\t\t0x69c /* Cannot dequeue both unless both mark queues are non-empty */,\n\t\t);\n\t\tconst length = Math.min(newMark.count, baseMark.count);\n\t\tconst sizedBaseMark = this.baseMarks.dequeueUpTo(length);\n\t\tconst sizedNewMark = this.newMarks.dequeueUpTo(length);\n\t\tconst movedMark = getMovedEffectFromBaseMark(this.moveEffects, sizedBaseMark);\n\t\treturn {\n\t\t\tbaseMark: sizedBaseMark,\n\t\t\tnewMark:\n\t\t\t\tmovedMark === undefined ? sizedNewMark : addMovedMarkEffect(sizedNewMark, movedMark),\n\t\t};\n\t}\n}\n\n/**\n * Combines `mark` and `effect` into a single mark.\n * This function is only intended to handle cases where `mark` is part of a changeset being rebased\n * and `effect` is an effect from the same changeset whose target has been moved by the base changeset.\n * @returns a mark which has the composite effect of `mark` and `effect`.\n */\nfunction addMovedMarkEffect(mark: Mark, effect: Detach): Mark {\n\tif (isMoveIn(mark) && isMoveOut(effect)) {\n\t\treturn { ...mark, type: \"Insert\" };\n\t} else if (isRename(mark) && isMoveOut(effect)) {\n\t\treturn { ...effect, count: mark.count, idOverride: mark.idOverride };\n\t} else if (isAttachAndDetachEffect(mark) && isMoveIn(mark.attach) && isMoveOut(effect)) {\n\t\treturn { ...mark.detach, count: mark.count };\n\t} else if (isTombstone(mark)) {\n\t\treturn { ...mark, ...effect };\n\t}\n\tassert(false, 0x818 /* Unexpected combination of mark effects at source and destination */);\n}\n\n/**\n * Represents the marks rebasing should process next.\n * If `baseMark` and `newMark` are both defined, then they are `SizedMark`s covering the same range of nodes.\n */\ninterface RebaseMarks {\n\tbaseMark: Mark;\n\tnewMark: Mark;\n}\n\nfunction rebaseMark(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\trebaseChild: NodeChangeRebaser,\n\tmoveEffects: MoveEffectTable,\n): Mark {\n\tconst rebasedMark = rebaseNodeChange(cloneMark(currMark), baseMark, rebaseChild);\n\tconst movedNodeChanges = getMovedChangesFromBaseMark(moveEffects, baseMark);\n\tif (movedNodeChanges !== undefined) {\n\t\tassert(\n\t\t\trebasedMark.changes === undefined,\n\t\t\t0x8dc /* Unexpected collision of new node changes */,\n\t\t);\n\t\trebasedMark.changes = movedNodeChanges;\n\t\tmoveEffects.onMoveIn(movedNodeChanges);\n\t}\n\n\treturn rebaseMarkIgnoreChild(rebasedMark, baseMark, moveEffects);\n}\n\nfunction rebaseMarkIgnoreChild(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\tmoveEffects: MoveEffectTable,\n): Mark {\n\tlet rebasedMark: Mark;\n\tif (isDetach(baseMark)) {\n\t\tif (baseMark.cellId !== undefined) {\n\t\t\t// Detaches on empty cells have an implicit revive effect.\n\t\t\tdelete currMark.cellId;\n\t\t}\n\t\tassert(\n\t\t\t!isNewAttach(currMark),\n\t\t\t0x69d /* A new attach should not be rebased over its cell being emptied */,\n\t\t);\n\t\tconst baseCellId = getDetachOutputCellId(baseMark);\n\n\t\tif (isMoveOut(baseMark)) {\n\t\t\tassert(isMoveMark(baseMark), 0x6f0 /* Only move marks have move IDs */);\n\t\t\tassert(\n\t\t\t\t!isNewAttach(currMark),\n\t\t\t\t0x819 /* New attaches should not be rebased over moves */,\n\t\t\t);\n\t\t\tconst { remains, follows } = separateEffectsForMove(extractMarkEffect(currMark));\n\t\t\tif (follows !== undefined) {\n\t\t\t\tsendEffectToDest(follows, moveEffects, getEndpoint(baseMark), baseMark.count);\n\t\t\t}\n\n\t\t\tif (currMark.changes !== undefined) {\n\t\t\t\tmoveRebasedChanges(currMark.changes, moveEffects, getEndpoint(baseMark));\n\t\t\t}\n\t\t\trebasedMark = { ...remains, count: baseMark.count };\n\t\t} else {\n\t\t\trebasedMark = currMark;\n\t\t}\n\t\trebasedMark = makeDetachedMark(rebasedMark, cloneCellId(baseCellId));\n\t} else if (markFillsCells(baseMark)) {\n\t\trebasedMark = isAttachAndDetachEffect(currMark)\n\t\t\t? withNodeChange({ ...currMark.detach, count: currMark.count }, currMark.changes)\n\t\t\t: withCellId(currMark, undefined);\n\t} else if (isAttachAndDetachEffect(baseMark)) {\n\t\tassert(\n\t\t\tbaseMark.cellId !== undefined,\n\t\t\t0x81a /* AttachAndDetach mark should target an empty cell */,\n\t\t);\n\t\tconst halfRebasedMark = rebaseMarkIgnoreChild(\n\t\t\tcurrMark,\n\t\t\t{ ...baseMark.attach, cellId: cloneCellId(baseMark.cellId), count: baseMark.count },\n\t\t\tmoveEffects,\n\t\t);\n\t\trebasedMark = rebaseMarkIgnoreChild(\n\t\t\thalfRebasedMark,\n\t\t\t{ ...baseMark.detach, count: baseMark.count },\n\t\t\tmoveEffects,\n\t\t);\n\t} else if (isRename(baseMark)) {\n\t\treturn withCellId(currMark, getDetachOutputCellId(baseMark));\n\t} else {\n\t\trebasedMark = currMark;\n\t}\n\treturn rebasedMark;\n}\n\n/**\n * Returns a pair of marks that represent the effects which should remain in place in the face of concurrent move,\n * and the effects that should be sent to the move destination.\n */\nfunction separateEffectsForMove(mark: MarkEffect): {\n\tremains?: MarkEffect;\n\tfollows?: Detach;\n} {\n\tconst type = mark.type;\n\tswitch (type) {\n\t\tcase \"Remove\":\n\t\tcase \"MoveOut\": {\n\t\t\t// There are two scenarios that lead to a Detach mark having an idOverride:\n\t\t\t// 1. The detach is a rollback (the idOverride the original id that the cell had in the input context of the attach being rolled back).\n\t\t\t// 2. The detach has been composed with a Rename (the idOverride is the cell id in the output context of the rename).\n\t\t\t// Since rollbacks are never rebased, we can safely assume that the idOverride is due to a Rename (scenario #2).\n\t\t\t// While the detach must follow the node that it targets, the rename must remain in place because it targets the cell.\n\t\t\tif (mark.idOverride !== undefined) {\n\t\t\t\tconst remains: MarkEffect = { type: \"Rename\", idOverride: mark.idOverride };\n\t\t\t\tconst follows: Mutable<MarkEffect> = { ...mark };\n\t\t\t\tdelete follows.idOverride;\n\t\t\t\treturn { remains, follows };\n\t\t\t}\n\t\t\treturn { follows: mark };\n\t\t}\n\t\tcase \"AttachAndDetach\": {\n\t\t\treturn { follows: mark.detach, remains: mark.attach };\n\t\t}\n\t\tcase \"MoveIn\":\n\t\tcase \"Rename\": {\n\t\t\treturn { remains: mark };\n\t\t}\n\t\tcase NoopMarkType: {\n\t\t\treturn {};\n\t\t}\n\t\tcase \"Insert\": {\n\t\t\tconst follows: MoveOut = {\n\t\t\t\ttype: \"MoveOut\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\t\t\tconst remains: MoveIn = {\n\t\t\t\ttype: \"MoveIn\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\t\t\tif (mark.revision !== undefined) {\n\t\t\t\tfollows.revision = mark.revision;\n\t\t\t\tremains.revision = mark.revision;\n\t\t\t}\n\t\t\treturn { remains, follows };\n\t\t}\n\t\tdefault: {\n\t\t\tunreachableCase(type);\n\t\t}\n\t}\n}\n\n// TODO: Reduce the duplication between this and other MoveEffect helpers\nfunction sendEffectToDest(\n\tmarkEffect: Detach,\n\tmoveEffects: MoveEffectTable,\n\t{ revision, localId: id }: ChangeAtomId,\n\tcount: number,\n): void {\n\tconst effect = getMoveEffect(\n\t\tmoveEffects,\n\t\tCrossFieldTarget.Destination,\n\t\trevision,\n\t\tid,\n\t\tcount,\n\t\tfalse,\n\t);\n\tif (effect.length < count) {\n\t\tconst [markEffect1, markEffect2] = splitMarkEffect(markEffect, effect.length);\n\t\tconst newEffect =\n\t\t\teffect.value === undefined\n\t\t\t\t? { movedMark: markEffect1 }\n\t\t\t\t: { ...effect.value, movedMark: markEffect1 };\n\t\tsetMoveEffect(\n\t\t\tmoveEffects,\n\t\t\tCrossFieldTarget.Destination,\n\t\t\trevision,\n\t\t\tid,\n\t\t\teffect.length,\n\t\t\tnewEffect,\n\t\t);\n\t\tsendEffectToDest(\n\t\t\tmarkEffect2,\n\t\t\tmoveEffects,\n\t\t\t{ revision, localId: brand(id + effect.length) },\n\t\t\tcount - effect.length,\n\t\t);\n\t} else {\n\t\tconst newEffect: MoveEffect =\n\t\t\teffect.value === undefined\n\t\t\t\t? { movedEffect: markEffect }\n\t\t\t\t: { ...effect.value, movedEffect: markEffect };\n\t\tsetMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count, newEffect);\n\t}\n}\n\nfunction moveRebasedChanges(\n\tnodeChange: NodeId,\n\tmoveEffects: MoveEffectTable,\n\t{ revision, localId: id }: ChangeAtomId,\n): void {\n\tconst effect = getMoveEffect(\n\t\tmoveEffects,\n\t\tCrossFieldTarget.Destination,\n\t\trevision,\n\t\tid,\n\t\t1,\n\t\tfalse,\n\t).value;\n\n\tconst newEffect =\n\t\teffect === undefined\n\t\t\t? { rebasedChanges: nodeChange }\n\t\t\t: { ...effect, rebasedChanges: nodeChange };\n\n\tsetMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, 1, newEffect);\n}\n\nfunction rebaseNodeChange(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\tnodeRebaser: NodeChangeRebaser,\n): Mark {\n\tconst baseChange = baseMark.changes;\n\tconst currChange = currMark.changes;\n\n\tif (baseChange === undefined && currChange === undefined) {\n\t\treturn currMark;\n\t}\n\n\tconst nodeState = nodeStateAfterMark(baseMark);\n\treturn withNodeChange(currMark, nodeRebaser(currChange, baseChange, nodeState));\n}\n\nfunction nodeStateAfterMark(mark: Mark): NodeAttachState {\n\tif (markEmptiesCells(mark)) {\n\t\treturn NodeAttachState.Detached;\n\t} else if (markFillsCells(mark)) {\n\t\treturn NodeAttachState.Attached;\n\t} else {\n\t\treturn mark.cellId === undefined ? NodeAttachState.Attached : NodeAttachState.Detached;\n\t}\n}\n\nfunction makeDetachedMark(mark: Mark, cellId: ChangeAtomId): Mark {\n\tassert(mark.cellId === undefined, 0x69f /* Expected mark to be attached */);\n\treturn { ...mark, cellId };\n}\n\nfunction withCellId<TMark extends Mark>(mark: TMark, cellId: CellId | undefined): TMark {\n\tconst newMark = { ...mark, cellId };\n\tif (cellId === undefined) {\n\t\tdelete newMark.cellId;\n\t}\n\treturn newMark;\n}\n\nfunction getMovedEffectFromBaseMark(\n\tmoveEffects: MoveEffectTable,\n\tbaseMark: Mark,\n): Detach | undefined {\n\tif (isMoveIn(baseMark)) {\n\t\treturn getMovedEffect(moveEffects, baseMark.revision, baseMark.id, baseMark.count);\n\t} else if (isAttachAndDetachEffect(baseMark) && isMoveIn(baseMark.attach)) {\n\t\treturn getMovedEffect(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.attach.revision,\n\t\t\tbaseMark.attach.id,\n\t\t\tbaseMark.count,\n\t\t);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\n// It is expected that the range from `id` to `id + count - 1` has the same move effect.\n// The call sites to this function are making queries about a mark which has already been split by a `MarkQueue`\n// to match the ranges in `moveEffects`.\n// TODO: Reduce the duplication between this and other MoveEffect helpers\nfunction getMovedEffect(\n\tmoveEffects: MoveEffectTable,\n\trevision: RevisionTag | undefined,\n\tid: MoveId,\n\tcount: number,\n): Detach | undefined {\n\tconst effect = getMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count);\n\tassert(effect.length === count, 0x6f3 /* Expected effect to cover entire mark */);\n\tconst movedEffect = effect.value?.movedEffect;\n\tif (movedEffect === undefined) {\n\t\treturn undefined;\n\t}\n\tif (isMoveOut(movedEffect)) {\n\t\tmoveEffects.moveKey(CrossFieldTarget.Source, movedEffect.revision, movedEffect.id, count);\n\t}\n\treturn movedEffect;\n}\n\nfunction getMovedChangesFromBaseMark(\n\tmoveEffects: MoveEffectTable,\n\tbaseMark: Mark,\n): NodeId | undefined {\n\tif (isMoveIn(baseMark)) {\n\t\treturn getMovedNodeChanges(moveEffects, baseMark.revision, baseMark.id, baseMark.count);\n\t} else if (isAttachAndDetachEffect(baseMark) && isMoveIn(baseMark.attach)) {\n\t\treturn getMovedNodeChanges(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.attach.revision,\n\t\t\tbaseMark.attach.id,\n\t\t\tbaseMark.count,\n\t\t);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nfunction getMovedNodeChanges(\n\tmoveEffects: MoveEffectTable,\n\trevision: RevisionTag | undefined,\n\tid: MoveId,\n\tcount: number,\n): NodeId | undefined {\n\treturn getMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count).value\n\t\t?.rebasedChanges;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
import { type DeltaDetachedNodeId } from "../../core/index.js";
|
|
6
|
+
import type { RelevantRemovedRootsFromChild } from "../modular-schema/index.js";
|
|
7
|
+
import type { Changeset } from "./types.js";
|
|
8
|
+
export declare function relevantRemovedRoots(change: Changeset, relevantRemovedRootsFromChild: RelevantRemovedRootsFromChild): Iterable<DeltaDetachedNodeId>;
|
|
9
|
+
//# sourceMappingURL=relevantRemovedRoots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevantRemovedRoots.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/relevantRemovedRoots.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAE/E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEhF,OAAO,KAAK,EAAE,SAAS,EAAQ,MAAM,YAAY,CAAC;AAGlD,wBAAiB,oBAAoB,CACpC,MAAM,EAAE,SAAS,EACjB,6BAA6B,EAAE,6BAA6B,GAC1D,QAAQ,CAAC,mBAAmB,CAAC,CAgB/B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
6
|
+
import { offsetDetachId } from "../../core/index.js";
|
|
7
|
+
import { nodeIdFromChangeAtom } from "../deltaUtils.js";
|
|
8
|
+
import { isAttachAndDetachEffect, isDetachOfRemovedNodes, isInsert } from "./utils.js";
|
|
9
|
+
export function* relevantRemovedRoots(change, relevantRemovedRootsFromChild) {
|
|
10
|
+
for (const mark of change) {
|
|
11
|
+
if (refersToRelevantRemovedRoots(mark)) {
|
|
12
|
+
assert(mark.cellId !== undefined, 0x81d /* marks referring to removed trees must have an assigned cell ID */);
|
|
13
|
+
const nodeId = nodeIdFromChangeAtom(mark.cellId);
|
|
14
|
+
for (let i = 0; i < mark.count; i += 1) {
|
|
15
|
+
yield offsetDetachId(nodeId, i);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (mark.changes !== undefined) {
|
|
19
|
+
yield* relevantRemovedRootsFromChild(mark.changes);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function refersToRelevantRemovedRoots(mark) {
|
|
24
|
+
if (mark.cellId !== undefined) {
|
|
25
|
+
const effect = isAttachAndDetachEffect(mark) ? mark.attach : mark;
|
|
26
|
+
if (isInsert(effect)) {
|
|
27
|
+
// This tree is being inserted or restored.
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
else if (isDetachOfRemovedNodes(mark)) {
|
|
31
|
+
// This removed tree is being restored as part of a detach.
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if (mark.changes !== undefined) {
|
|
35
|
+
// This removed tree is being edited.
|
|
36
|
+
// Note: there is a possibility that the child changes only affect a distant descendant
|
|
37
|
+
// which may have been removed from this (removed) subtree. In such a case, this tree is not truly
|
|
38
|
+
// relevant, but including it is the conservative thing to do.
|
|
39
|
+
// In the future, we may represent changes to removed trees using the ID of the lowest removed
|
|
40
|
+
// ancestor, which would allow us to avoid including such trees when they truly are not needed.
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=relevantRemovedRoots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevantRemovedRoots.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/relevantRemovedRoots.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,OAAO,EAA4B,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvF,MAAM,SAAS,CAAC,CAAC,oBAAoB,CACpC,MAAiB,EACjB,6BAA4D;IAE5D,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,CACL,IAAI,CAAC,MAAM,KAAK,SAAS,EACzB,KAAK,CAAC,oEAAoE,CAC1E,CAAC;YACF,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAU;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,2CAA2C;YAC3C,OAAO,IAAI,CAAC;QACb,CAAC;aAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,2DAA2D;YAC3D,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,qCAAqC;YACrC,uFAAuF;YACvF,kGAAkG;YAClG,8DAA8D;YAC9D,8FAA8F;YAC9F,+FAA+F;YAC/F,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport { type DeltaDetachedNodeId, offsetDetachId } from \"../../core/index.js\";\nimport { nodeIdFromChangeAtom } from \"../deltaUtils.js\";\nimport type { RelevantRemovedRootsFromChild } from \"../modular-schema/index.js\";\n\nimport type { Changeset, Mark } from \"./types.js\";\nimport { isAttachAndDetachEffect, isDetachOfRemovedNodes, isInsert } from \"./utils.js\";\n\nexport function* relevantRemovedRoots(\n\tchange: Changeset,\n\trelevantRemovedRootsFromChild: RelevantRemovedRootsFromChild,\n): Iterable<DeltaDetachedNodeId> {\n\tfor (const mark of change) {\n\t\tif (refersToRelevantRemovedRoots(mark)) {\n\t\t\tassert(\n\t\t\t\tmark.cellId !== undefined,\n\t\t\t\t0x81d /* marks referring to removed trees must have an assigned cell ID */,\n\t\t\t);\n\t\t\tconst nodeId = nodeIdFromChangeAtom(mark.cellId);\n\t\t\tfor (let i = 0; i < mark.count; i += 1) {\n\t\t\t\tyield offsetDetachId(nodeId, i);\n\t\t\t}\n\t\t}\n\t\tif (mark.changes !== undefined) {\n\t\t\tyield* relevantRemovedRootsFromChild(mark.changes);\n\t\t}\n\t}\n}\n\nfunction refersToRelevantRemovedRoots(mark: Mark): boolean {\n\tif (mark.cellId !== undefined) {\n\t\tconst effect = isAttachAndDetachEffect(mark) ? mark.attach : mark;\n\t\tif (isInsert(effect)) {\n\t\t\t// This tree is being inserted or restored.\n\t\t\treturn true;\n\t\t} else if (isDetachOfRemovedNodes(mark)) {\n\t\t\t// This removed tree is being restored as part of a detach.\n\t\t\treturn true;\n\t\t}\n\t\tif (mark.changes !== undefined) {\n\t\t\t// This removed tree is being edited.\n\t\t\t// Note: there is a possibility that the child changes only affect a distant descendant\n\t\t\t// which may have been removed from this (removed) subtree. In such a case, this tree is not truly\n\t\t\t// relevant, but including it is the conservative thing to do.\n\t\t\t// In the future, we may represent changes to removed trees using the ID of the lowest removed\n\t\t\t// ancestor, which would allow us to avoid including such trees when they truly are not needed.\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replaceRevisions.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/replaceRevisions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAGN,KAAK,gBAAgB,EAErB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,
|
|
1
|
+
{"version":3,"file":"replaceRevisions.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/replaceRevisions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAGN,KAAK,gBAAgB,EAErB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACN,KAAK,SAAS,EAWd,MAAM,YAAY,CAAC;AAGpB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAQ5F"}
|
|
@@ -6,6 +6,7 @@ import { unreachableCase } from "@fluidframework/core-utils/internal";
|
|
|
6
6
|
import { makeChangeAtomId, } from "../../core/index.js";
|
|
7
7
|
import { MarkListFactory } from "./markListFactory.js";
|
|
8
8
|
import { NoopMarkType, } from "./types.js";
|
|
9
|
+
import { isDetach, isRename } from "./utils.js";
|
|
9
10
|
export function replaceRevisions(changeset, replacer) {
|
|
10
11
|
const updatedMarks = new MarkListFactory();
|
|
11
12
|
for (const mark of changeset) {
|
|
@@ -15,47 +16,59 @@ export function replaceRevisions(changeset, replacer) {
|
|
|
15
16
|
return updatedMarks.list;
|
|
16
17
|
}
|
|
17
18
|
function updateMark(mark, replacer) {
|
|
18
|
-
const updatedMark = { ...
|
|
19
|
+
const updatedMark = { ...updateEffect(mark, mark.count, replacer) };
|
|
19
20
|
if (mark.cellId !== undefined) {
|
|
20
21
|
updatedMark.cellId = replacer.getUpdatedAtomId(mark.cellId, mark.count);
|
|
21
22
|
}
|
|
22
23
|
if (mark.changes !== undefined) {
|
|
23
|
-
updatedMark.changes = replacer.getUpdatedAtomId(mark.changes
|
|
24
|
+
updatedMark.changes = replacer.getUpdatedAtomId(mark.changes);
|
|
24
25
|
}
|
|
25
26
|
return updatedMark;
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
+
function updateEffect(input, count, replacer) {
|
|
29
|
+
const mark = isDetach(input) || isRename(input) ? updateIdOverride(input, count, replacer) : input;
|
|
28
30
|
const type = mark.type;
|
|
29
31
|
switch (type) {
|
|
32
|
+
case "Rename":
|
|
30
33
|
case NoopMarkType: {
|
|
31
34
|
return mark;
|
|
32
35
|
}
|
|
33
|
-
case "
|
|
34
|
-
return updateRevisionAndId(mark, count, replacer);
|
|
35
|
-
}
|
|
36
|
-
case "Detach": {
|
|
37
|
-
return replaceDetachRevisions(mark, count, replacer);
|
|
38
|
-
}
|
|
39
|
-
case "Rename": {
|
|
36
|
+
case "AttachAndDetach": {
|
|
40
37
|
return {
|
|
41
38
|
...mark,
|
|
42
|
-
|
|
39
|
+
attach: updateEffect(mark.attach, count, replacer),
|
|
40
|
+
detach: updateEffect(mark.detach, count, replacer),
|
|
43
41
|
};
|
|
44
42
|
}
|
|
43
|
+
case "MoveIn":
|
|
44
|
+
case "MoveOut": {
|
|
45
|
+
return updateMoveEffect(
|
|
46
|
+
// For some reason, TypeScript is not able to infer that `mark` cannot be a `NoopMark` here.
|
|
47
|
+
mark, count, replacer);
|
|
48
|
+
}
|
|
49
|
+
case "Insert":
|
|
50
|
+
case "Remove": {
|
|
51
|
+
return updateRevisionAndId(mark, count, replacer);
|
|
52
|
+
}
|
|
45
53
|
default: {
|
|
46
54
|
unreachableCase(type);
|
|
47
55
|
}
|
|
48
56
|
}
|
|
49
57
|
}
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
updated.cellRename = replacer.getUpdatedAtomId(updated.cellRename, count);
|
|
54
|
-
}
|
|
55
|
-
if (updated.detachCellId !== undefined) {
|
|
56
|
-
updated.detachCellId = replacer.getUpdatedAtomId(updated.detachCellId, count);
|
|
58
|
+
function updateIdOverride(effect, count, replacer) {
|
|
59
|
+
if (effect.idOverride === undefined) {
|
|
60
|
+
return effect;
|
|
57
61
|
}
|
|
58
|
-
|
|
62
|
+
const idOverride = replacer.getUpdatedAtomId(effect.idOverride, count);
|
|
63
|
+
return { ...effect, idOverride };
|
|
64
|
+
}
|
|
65
|
+
function updateMoveEffect(effect, count, replacer) {
|
|
66
|
+
return effect.finalEndpoint === undefined
|
|
67
|
+
? updateRevisionAndId(effect, count, replacer)
|
|
68
|
+
: updateRevisionAndId({
|
|
69
|
+
...effect,
|
|
70
|
+
finalEndpoint: replacer.getUpdatedAtomId(effect.finalEndpoint, count),
|
|
71
|
+
}, count, replacer);
|
|
59
72
|
}
|
|
60
73
|
function updateRevisionAndId(input, count, replacer) {
|
|
61
74
|
if (!replacer.isObsolete(input.revision)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replaceRevisions.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/replaceRevisions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,OAAO,EACN,gBAAgB,GAIhB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"replaceRevisions.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/replaceRevisions.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { unreachableCase } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\tmakeChangeAtomId,\n\ttype ChangesetLocalId,\n\ttype RevisionReplacer,\n\ttype RevisionTag,\n} from \"../../core/index.js\";\n\nimport type { MoveMarkEffect } from \"./helperTypes.js\";\nimport { MarkListFactory } from \"./markListFactory.js\";\nimport {\n\ttype Changeset,\n\ttype Detach,\n\ttype HasMoveFields,\n\ttype HasMoveId,\n\ttype HasRevisionTag,\n\ttype Insert,\n\ttype Mark,\n\ttype MarkEffect,\n\tNoopMarkType,\n\ttype Remove,\n\ttype Rename,\n} from \"./types.js\";\nimport { isDetach, isRename } from \"./utils.js\";\n\nexport function replaceRevisions(changeset: Changeset, replacer: RevisionReplacer): Changeset {\n\tconst updatedMarks = new MarkListFactory();\n\tfor (const mark of changeset) {\n\t\tconst updatedMark = updateMark(mark, replacer);\n\t\tupdatedMarks.push(updatedMark);\n\t}\n\n\treturn updatedMarks.list;\n}\n\nfunction updateMark(mark: Mark, replacer: RevisionReplacer): Mark {\n\tconst updatedMark = { ...updateEffect(mark, mark.count, replacer) };\n\tif (mark.cellId !== undefined) {\n\t\tupdatedMark.cellId = replacer.getUpdatedAtomId(mark.cellId, mark.count);\n\t}\n\n\tif (mark.changes !== undefined) {\n\t\tupdatedMark.changes = replacer.getUpdatedAtomId(mark.changes);\n\t}\n\n\treturn updatedMark;\n}\n\nfunction updateEffect<TMark extends MarkEffect>(\n\tinput: TMark,\n\tcount: number,\n\treplacer: RevisionReplacer,\n): TMark {\n\tconst mark =\n\t\tisDetach(input) || isRename(input) ? updateIdOverride(input, count, replacer) : input;\n\tconst type = mark.type;\n\tswitch (type) {\n\t\tcase \"Rename\":\n\t\tcase NoopMarkType: {\n\t\t\treturn mark;\n\t\t}\n\t\tcase \"AttachAndDetach\": {\n\t\t\treturn {\n\t\t\t\t...mark,\n\t\t\t\tattach: updateEffect(mark.attach, count, replacer),\n\t\t\t\tdetach: updateEffect(mark.detach, count, replacer),\n\t\t\t};\n\t\t}\n\t\tcase \"MoveIn\":\n\t\tcase \"MoveOut\": {\n\t\t\treturn updateMoveEffect<TMark & MoveMarkEffect>(\n\t\t\t\t// For some reason, TypeScript is not able to infer that `mark` cannot be a `NoopMark` here.\n\t\t\t\tmark as MoveMarkEffect,\n\t\t\t\tcount,\n\t\t\t\treplacer,\n\t\t\t);\n\t\t}\n\t\tcase \"Insert\":\n\t\tcase \"Remove\": {\n\t\t\treturn updateRevisionAndId(mark as (TMark & Insert) | (TMark & Remove), count, replacer);\n\t\t}\n\t\tdefault: {\n\t\t\tunreachableCase(type);\n\t\t}\n\t}\n}\n\nfunction updateIdOverride<TEffect extends Detach | Rename>(\n\teffect: TEffect,\n\tcount: number,\n\treplacer: RevisionReplacer,\n): TEffect {\n\tif (effect.idOverride === undefined) {\n\t\treturn effect;\n\t}\n\tconst idOverride = replacer.getUpdatedAtomId(effect.idOverride, count);\n\treturn { ...effect, idOverride };\n}\n\nfunction updateMoveEffect<TEffect extends HasMoveFields>(\n\teffect: TEffect,\n\tcount: number,\n\treplacer: RevisionReplacer,\n): TEffect {\n\treturn effect.finalEndpoint === undefined\n\t\t? updateRevisionAndId(effect, count, replacer)\n\t\t: updateRevisionAndId(\n\t\t\t\t{\n\t\t\t\t\t...effect,\n\t\t\t\t\tfinalEndpoint: replacer.getUpdatedAtomId(effect.finalEndpoint, count),\n\t\t\t\t},\n\t\t\t\tcount,\n\t\t\t\treplacer,\n\t\t\t);\n}\n\nfunction updateRevisionAndId<T extends HasRevisionTag & HasMoveId>(\n\tinput: T,\n\tcount: number,\n\treplacer: RevisionReplacer,\n): T {\n\tif (!replacer.isObsolete(input.revision)) {\n\t\treturn input;\n\t}\n\tconst newAtom = replacer.getUpdatedAtomId(makeChangeAtomId(input.id, input.revision), count);\n\treturn withRevisionAndId(input, newAtom.revision, newAtom.localId);\n}\n\nfunction withRevisionAndId<T extends HasRevisionTag>(\n\tinput: T,\n\trevision: RevisionTag | undefined,\n\tid: ChangesetLocalId,\n): T {\n\tconst updated = { ...input, revision, id };\n\tif (revision === undefined) {\n\t\tdelete updated.revision;\n\t}\n\n\treturn updated;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldChangeHandler.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"sequenceFieldChangeHandler.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKrE,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,0BAA0B,CAAC;AAEzF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAE5F,eAAO,MAAM,0BAA0B,EAAE,0BAUxC,CAAC"}
|
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
+
import { relevantRemovedRoots } from "./relevantRemovedRoots.js";
|
|
5
6
|
import { sequenceFieldChangeRebaser } from "./sequenceFieldChangeRebaser.js";
|
|
6
7
|
import { sequenceFieldChangeCodecFactory } from "./sequenceFieldCodecs.js";
|
|
7
8
|
import { sequenceFieldEditor } from "./sequenceFieldEditor.js";
|
|
8
9
|
import { sequenceFieldToDelta } from "./sequenceFieldToDelta.js";
|
|
9
|
-
import { createEmpty, getCrossFieldKeys,
|
|
10
|
+
import { createEmpty, getCrossFieldKeys, getNestedChanges, isEmpty } from "./utils.js";
|
|
10
11
|
export const sequenceFieldChangeHandler = {
|
|
11
12
|
rebaser: sequenceFieldChangeRebaser,
|
|
12
13
|
codecsFactory: sequenceFieldChangeCodecFactory,
|
|
13
14
|
editor: sequenceFieldEditor,
|
|
14
15
|
intoDelta: sequenceFieldToDelta,
|
|
16
|
+
relevantRemovedRoots,
|
|
15
17
|
isEmpty,
|
|
16
18
|
getNestedChanges,
|
|
17
19
|
createEmpty,
|
|
18
20
|
getCrossFieldKeys,
|
|
19
|
-
getDetachCellIds,
|
|
20
21
|
};
|
|
21
22
|
//# sourceMappingURL=sequenceFieldChangeHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldChangeHandler.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAA4B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,
|
|
1
|
+
{"version":3,"file":"sequenceFieldChangeHandler.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAA4B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIvF,MAAM,CAAC,MAAM,0BAA0B,GAA+B;IACrE,OAAO,EAAE,0BAA0B;IACnC,aAAa,EAAE,+BAA+B;IAC9C,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,oBAAoB;IAC/B,oBAAoB;IACpB,OAAO;IACP,gBAAgB;IAChB,WAAW;IACX,iBAAiB;CACjB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { FieldChangeHandler } from \"../modular-schema/index.js\";\n\nimport { relevantRemovedRoots } from \"./relevantRemovedRoots.js\";\nimport { sequenceFieldChangeRebaser } from \"./sequenceFieldChangeRebaser.js\";\nimport { sequenceFieldChangeCodecFactory } from \"./sequenceFieldCodecs.js\";\nimport { type SequenceFieldEditor, sequenceFieldEditor } from \"./sequenceFieldEditor.js\";\nimport { sequenceFieldToDelta } from \"./sequenceFieldToDelta.js\";\nimport type { Changeset } from \"./types.js\";\nimport { createEmpty, getCrossFieldKeys, getNestedChanges, isEmpty } from \"./utils.js\";\n\nexport type SequenceFieldChangeHandler = FieldChangeHandler<Changeset, SequenceFieldEditor>;\n\nexport const sequenceFieldChangeHandler: SequenceFieldChangeHandler = {\n\trebaser: sequenceFieldChangeRebaser,\n\tcodecsFactory: sequenceFieldChangeCodecFactory,\n\teditor: sequenceFieldEditor,\n\tintoDelta: sequenceFieldToDelta,\n\trelevantRemovedRoots,\n\tisEmpty,\n\tgetNestedChanges,\n\tcreateEmpty,\n\tgetCrossFieldKeys,\n};\n"]}
|
|
@@ -2,31 +2,13 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import type { TAnySchema } from "@sinclair/typebox";
|
|
6
5
|
import { type IJsonCodec } from "../../codec/index.js";
|
|
7
|
-
import
|
|
6
|
+
import type { ChangeEncodingContext, EncodedRevisionTag, RevisionTag } from "../../core/index.js";
|
|
8
7
|
import { type JsonCompatibleReadOnly } from "../../util/index.js";
|
|
9
|
-
import { type
|
|
8
|
+
import { type FieldChangeEncodingContext } from "../modular-schema/index.js";
|
|
10
9
|
import { type Encoded } from "./formatV2.js";
|
|
11
10
|
import type { SequenceCodecHelpers } from "./helperTypes.js";
|
|
12
|
-
import { type Changeset, type
|
|
13
|
-
export declare function makeV2CodecHelpers(revisionTagCodec: IJsonCodec<RevisionTag, EncodedRevisionTag, EncodedRevisionTag, ChangeEncodingContext>): SequenceCodecHelpers
|
|
14
|
-
export type DecodeMarkEffect = (encoded: Encoded.MarkEffect, count: number, cellId: ChangeAtomId | undefined, context: FieldChangeEncodingContext) => MarkEffect;
|
|
15
|
-
export declare function decodeSequenceChangeset(changeset: Encoded.Changeset<NodeChangeSchema>, context: FieldChangeEncodingContext, changeAtomIdCodec: IJsonCodec<ChangeAtomId, EncodedChangeAtomId, EncodedChangeAtomId, ChangeEncodingContext>, decodeMarkEffect: DecodeMarkEffect): Changeset;
|
|
16
|
-
/**
|
|
17
|
-
* If we want to make the node change aspect of this codec more type-safe, we could adjust generics
|
|
18
|
-
* to be in terms of the schema rather than the concrete type of the node change.
|
|
19
|
-
*/
|
|
20
|
-
type NodeChangeSchema = TAnySchema;
|
|
11
|
+
import { type Changeset, type MarkEffect } from "./types.js";
|
|
12
|
+
export declare function makeV2CodecHelpers(revisionTagCodec: IJsonCodec<RevisionTag, EncodedRevisionTag, EncodedRevisionTag, ChangeEncodingContext>): SequenceCodecHelpers<MarkEffect, Encoded.MarkEffect>;
|
|
21
13
|
export declare function makeV2Codec(revisionTagCodec: IJsonCodec<RevisionTag, EncodedRevisionTag, EncodedRevisionTag, ChangeEncodingContext>): IJsonCodec<Changeset, JsonCompatibleReadOnly, JsonCompatibleReadOnly, FieldChangeEncodingContext>;
|
|
22
|
-
export declare function encodeSequenceChangeset(changeset: Changeset, context: FieldChangeEncodingContext, encodeRevision: (revision: RevisionTag | undefined) => EncodedRevisionTag | undefined, changeAtomIdCodec: IJsonCodec<ChangeAtomId, EncodedChangeAtomId, EncodedChangeAtomId, ChangeEncodingContext>, encodeMarkEffect: EncodeMarkEffect): JsonCompatibleReadOnly & Encoded.Changeset<NodeChangeSchema>;
|
|
23
|
-
type EncodeMarkEffect = (mark: Mark, context: FieldChangeEncodingContext, encodeRevision: (revision: RevisionTag | undefined) => EncodedRevisionTag | undefined, changeAtomIdCodec: IJsonCodec<ChangeAtomId, EncodedChangeAtomId, EncodedChangeAtomId, ChangeEncodingContext>) => Encoded.MarkEffect;
|
|
24
|
-
export declare function encodeRevisionWithContext(revision: RevisionTag | undefined, context: ChangeEncodingContext, revisionTagCodec: IJsonCodec<RevisionTag, EncodedRevisionTag, EncodedRevisionTag, ChangeEncodingContext>): EncodedRevisionTag | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* If the encoded mark effect represents a simple cell rename (with no effect on root nodes),
|
|
27
|
-
* returns the encoded form of the ID the cell is being renamed to,
|
|
28
|
-
* and otherwise returns undefined.
|
|
29
|
-
*/
|
|
30
|
-
export declare function tryGetEncodedCellRename(encoded: Encoded.MarkEffect): EncodedChangeAtomId | undefined;
|
|
31
|
-
export {};
|
|
32
14
|
//# sourceMappingURL=sequenceFieldCodecV2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldCodecV2.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"sequenceFieldCodecV2.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAGN,KAAK,UAAU,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACX,qBAAqB,EAErB,kBAAkB,EAClB,WAAW,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,sBAAsB,EAAuB,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAEN,KAAK,0BAA0B,EAC/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAGN,KAAK,SAAS,EAId,KAAK,UAAU,EAMf,MAAM,YAAY,CAAC;AAGpB,wBAAgB,kBAAkB,CACjC,gBAAgB,EAAE,UAAU,CAC3B,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,CACrB,GACC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAiNtD;AAED,wBAAgB,WAAW,CAC1B,gBAAgB,EAAE,UAAU,CAC3B,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,CACrB,GACC,UAAU,CACZ,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,CAC1B,CAsEA"}
|