@fluidframework/tree 2.74.0 → 2.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +1 -16
- package/CHANGELOG.md +18 -0
- package/api-report/tree.alpha.api.md +20 -2
- package/dist/alpha.d.ts +4 -0
- package/dist/codec/codec.d.ts +31 -3
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +10 -0
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +2 -2
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +2 -2
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +80 -22
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +137 -15
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/codec/versioned/index.d.ts +1 -1
- package/dist/codec/versioned/index.d.ts.map +1 -1
- package/dist/codec/versioned/index.js +2 -2
- package/dist/codec/versioned/index.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +36 -2
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/index.d.ts +2 -2
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +1 -2
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +6 -2
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +1 -12
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.js +3 -3
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/schema.js +3 -3
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +3 -4
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +1 -2
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +12 -56
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts +18 -10
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.js +6 -6
- package/dist/core/tree/detachedFieldIndexCodecCommon.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts +2 -3
- package/dist/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.js +4 -5
- package/dist/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.d.ts +2 -3
- package/dist/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.js +4 -6
- package/dist/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts +5 -6
- package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.js +11 -41
- package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/dist/core/tree/index.d.ts +1 -1
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +2 -2
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/mapTree.js +1 -1
- package/dist/core/tree/mapTree.js.map +1 -1
- package/dist/core/tree/sparseTree.d.ts.map +1 -1
- package/dist/core/tree/sparseTree.js +1 -0
- package/dist/core/tree/sparseTree.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/treeTextFormat.js +5 -9
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.d.ts +10 -0
- package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -0
- package/dist/feature-libraries/changeAtomIdBTree.js +16 -0
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/basicChunk.js +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +6 -6
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +7 -4
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +19 -11
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +3 -3
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +9 -5
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +15 -5
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +19 -14
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +11 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts +2 -0
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js +6 -0
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +11 -13
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +3 -2
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +9 -7
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +6 -6
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +10 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js +12 -9
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +25 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +59 -0
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -0
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +4 -4
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +4 -2
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +11 -7
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +49 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +315 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +15 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js +31 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +25 -288
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +225 -195
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/{modularChangeFormat.d.ts → modularChangeFormatV1.d.ts} +5 -6
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/{modularChangeFormat.js → modularChangeFormatV1.js} +7 -7
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +112 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +21 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +13 -3
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js +1 -1
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +4 -4
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +34 -39
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +14 -2
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts +7 -21
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +28 -70
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/index.d.ts +2 -2
- package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/index.js +2 -5
- package/dist/feature-libraries/schema-index/index.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -9
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -12
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/schemaChecker.js +11 -6
- package/dist/feature-libraries/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +17 -13
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +5 -4
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +15 -9
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +26 -18
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +40 -35
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +16 -8
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +4 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +6 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +46 -27
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.js +7 -7
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.js +2 -2
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/valueUtilities.js +16 -8
- package/dist/feature-libraries/valueUtilities.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +2 -3
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +20 -9
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +61 -44
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +9 -8
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js +4 -2
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +3 -2
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +19 -14
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +35 -29
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +21 -23
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +2 -0
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +31 -18
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +3 -1
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +5 -3
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/dist/shared-tree-core/editManager.js +1 -1
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +9 -4
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts +1 -0
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.js +6 -0
- package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.js +1 -0
- package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +3 -3
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.js +2 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +8 -4
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +1 -0
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js +6 -0
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +3 -2
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js +8 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.js +4 -4
- package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +12 -8
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +25 -8
- package/dist/shared-tree-core/transaction.d.ts.map +1 -1
- package/dist/shared-tree-core/transaction.js +65 -30
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.d.ts +2 -2
- package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.js +3 -3
- package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
- package/dist/simple-tree/api/configuration.js +1 -1
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/customTree.d.ts.map +1 -1
- package/dist/simple-tree/api/customTree.js +13 -9
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/discrepancies.d.ts.map +1 -1
- package/dist/simple-tree/api/discrepancies.js +21 -17
- package/dist/simple-tree/api/discrepancies.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +12 -8
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js +18 -9
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaCodec.js +10 -5
- package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +15 -11
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js +10 -10
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +2 -3
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/transactionTypes.d.ts +17 -4
- package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/dist/simple-tree/api/transactionTypes.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +21 -13
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +14 -9
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +6 -3
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +20 -15
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.d.ts.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.js +2 -1
- package/dist/simple-tree/getTreeNodeForField.js.map +1 -1
- package/dist/simple-tree/index.d.ts +1 -1
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +9 -6
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +15 -15
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +4 -5
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +2 -3
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +9 -5
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/treeFactory.js +7 -3
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/bTreeUtils.js +1 -1
- package/dist/util/bTreeUtils.js.map +1 -1
- package/dist/util/breakable.js +7 -9
- package/dist/util/breakable.js.map +1 -1
- package/dist/util/idAllocator.d.ts.map +1 -1
- package/dist/util/idAllocator.js +1 -2
- package/dist/util/idAllocator.js.map +1 -1
- package/dist/util/nestedMap.d.ts.map +1 -1
- package/dist/util/nestedMap.js +1 -1
- package/dist/util/nestedMap.js.map +1 -1
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +16 -15
- package/dist/util/utils.js.map +1 -1
- package/eslint.config.mts +1 -16
- package/lib/alpha.d.ts +4 -0
- package/lib/codec/codec.d.ts +31 -3
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +10 -0
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +2 -2
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts +80 -22
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +138 -15
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/codec/versioned/index.d.ts +1 -1
- package/lib/codec/versioned/index.d.ts.map +1 -1
- package/lib/codec/versioned/index.js +1 -1
- package/lib/codec/versioned/index.js.map +1 -1
- package/lib/core/index.d.ts +2 -2
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -2
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +36 -2
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/index.d.ts +2 -2
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +6 -2
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +0 -10
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.js +3 -3
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/schema.js +3 -3
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +3 -4
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +1 -2
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +13 -57
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts +18 -10
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.js +4 -4
- package/lib/core/tree/detachedFieldIndexCodecCommon.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts +2 -3
- package/lib/core/tree/detachedFieldIndexCodecV1.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.js +4 -5
- package/lib/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV2.d.ts +2 -3
- package/lib/core/tree/detachedFieldIndexCodecV2.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV2.js +4 -6
- package/lib/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts +5 -6
- package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.js +12 -39
- package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
- package/lib/core/tree/index.d.ts +1 -1
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/mapTree.js +1 -1
- package/lib/core/tree/mapTree.js.map +1 -1
- package/lib/core/tree/sparseTree.d.ts.map +1 -1
- package/lib/core/tree/sparseTree.js +1 -0
- package/lib/core/tree/sparseTree.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/treeTextFormat.js +5 -9
- package/lib/core/tree/treeTextFormat.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.d.ts +10 -0
- package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -0
- package/lib/feature-libraries/changeAtomIdBTree.js +11 -0
- package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +6 -6
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +7 -4
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +19 -11
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +3 -3
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +9 -5
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +15 -5
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +19 -14
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +11 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts +2 -0
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js +6 -0
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +11 -13
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +3 -2
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +3 -2
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +6 -6
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js +10 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.js +12 -9
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts +25 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +55 -0
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -0
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +5 -5
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +4 -2
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +3 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +49 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +298 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +15 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js +27 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +27 -290
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +118 -88
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/{modularChangeFormat.d.ts → modularChangeFormatV1.d.ts} +5 -6
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/{modularChangeFormat.js → modularChangeFormatV1.js} +4 -4
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +112 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js +18 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +13 -3
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js +1 -1
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +4 -4
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +35 -40
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +15 -3
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts +7 -21
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +30 -68
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/index.d.ts +2 -2
- package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/index.js +2 -2
- package/lib/feature-libraries/schema-index/index.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -9
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +0 -10
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/schemaChecker.js +11 -6
- package/lib/feature-libraries/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +17 -13
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +5 -4
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.js +15 -9
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +26 -18
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +41 -36
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +16 -8
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +4 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +6 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +46 -27
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.js +7 -7
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/feature-libraries/treeTextCursor.js +2 -2
- package/lib/feature-libraries/treeTextCursor.js.map +1 -1
- package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/valueUtilities.js +16 -8
- package/lib/feature-libraries/valueUtilities.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +2 -3
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +20 -9
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +30 -13
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +9 -8
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js +4 -2
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +3 -2
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +19 -14
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +35 -29
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +21 -23
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +2 -0
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +32 -19
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +3 -1
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +5 -3
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js +2 -2
- package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/lib/shared-tree-core/editManager.js +1 -1
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +9 -4
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts +1 -0
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.js +6 -0
- package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.js +1 -0
- package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +3 -3
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.js +2 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +8 -4
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +1 -0
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js +6 -0
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +3 -2
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js +8 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.js +4 -4
- package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +12 -8
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +25 -8
- package/lib/shared-tree-core/transaction.d.ts.map +1 -1
- package/lib/shared-tree-core/transaction.js +67 -32
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.d.ts +2 -2
- package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.js +3 -3
- package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
- package/lib/simple-tree/api/configuration.js +1 -1
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/customTree.d.ts.map +1 -1
- package/lib/simple-tree/api/customTree.js +13 -9
- package/lib/simple-tree/api/customTree.js.map +1 -1
- package/lib/simple-tree/api/discrepancies.d.ts.map +1 -1
- package/lib/simple-tree/api/discrepancies.js +21 -17
- package/lib/simple-tree/api/discrepancies.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +12 -8
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js +18 -9
- package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaCodec.js +10 -5
- package/lib/simple-tree/api/simpleSchemaCodec.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +15 -11
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.js +10 -10
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +4 -7
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/transactionTypes.d.ts +17 -4
- package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -1
- package/lib/simple-tree/api/transactionTypes.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +21 -13
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +14 -9
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +6 -3
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +20 -15
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/getTreeNodeForField.d.ts.map +1 -1
- package/lib/simple-tree/getTreeNodeForField.js +2 -1
- package/lib/simple-tree/getTreeNodeForField.js.map +1 -1
- package/lib/simple-tree/index.d.ts +1 -1
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +9 -6
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +15 -15
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +4 -5
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +2 -3
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +9 -5
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/treeFactory.js +7 -3
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/bTreeUtils.js +1 -1
- package/lib/util/bTreeUtils.js.map +1 -1
- package/lib/util/breakable.js +7 -9
- package/lib/util/breakable.js.map +1 -1
- package/lib/util/idAllocator.d.ts.map +1 -1
- package/lib/util/idAllocator.js +1 -2
- package/lib/util/idAllocator.js.map +1 -1
- package/lib/util/nestedMap.d.ts.map +1 -1
- package/lib/util/nestedMap.js +1 -1
- package/lib/util/nestedMap.js.map +1 -1
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +16 -15
- package/lib/util/utils.js.map +1 -1
- package/package.json +32 -32
- package/src/codec/codec.ts +48 -8
- package/src/codec/index.ts +4 -1
- package/src/codec/versioned/codec.ts +340 -22
- package/src/codec/versioned/index.ts +3 -1
- package/src/core/index.ts +2 -2
- package/src/core/rebase/changeRebaser.ts +40 -6
- package/src/core/rebase/index.ts +1 -1
- package/src/core/rebase/types.ts +6 -18
- package/src/core/rebase/utils.ts +3 -3
- package/src/core/schema-stored/schema.ts +3 -3
- package/src/core/tree/anchorSet.ts +3 -4
- package/src/core/tree/detachedFieldIndex.ts +13 -74
- package/src/core/tree/detachedFieldIndexCodecCommon.ts +4 -8
- package/src/core/tree/detachedFieldIndexCodecV1.ts +3 -7
- package/src/core/tree/detachedFieldIndexCodecV2.ts +5 -9
- package/src/core/tree/detachedFieldIndexCodecs.ts +21 -64
- package/src/core/tree/index.ts +1 -1
- package/src/core/tree/mapTree.ts +1 -1
- package/src/core/tree/sparseTree.ts +1 -0
- package/src/core/tree/treeTextFormat.ts +5 -9
- package/src/feature-libraries/changeAtomIdBTree.ts +24 -0
- package/src/feature-libraries/chunked-forest/basicChunk.ts +1 -1
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +5 -5
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +7 -4
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +19 -11
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +3 -3
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +9 -5
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +1 -1
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +48 -17
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +12 -2
- package/src/feature-libraries/default-schema/mappedEditBuilder.ts +6 -0
- package/src/feature-libraries/flex-tree/lazyField.ts +13 -14
- package/src/feature-libraries/index.ts +10 -5
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +5 -5
- package/src/feature-libraries/mitigatedChangeFamily.ts +11 -6
- package/src/feature-libraries/modular-schema/comparison.ts +12 -9
- package/src/feature-libraries/modular-schema/defaultRevisionReplacer.ts +70 -0
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +3 -6
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +5 -7
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +1 -1
- package/src/feature-libraries/modular-schema/index.ts +5 -2
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +703 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +89 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +39 -523
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +159 -125
- package/src/feature-libraries/modular-schema/{modularChangeFormat.ts → modularChangeFormatV1.ts} +4 -4
- package/src/feature-libraries/modular-schema/modularChangeFormatV2.ts +34 -0
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +13 -4
- package/src/feature-libraries/node-identifier/mockNodeIdentifierManager.ts +1 -1
- package/src/feature-libraries/object-forest/objectForest.ts +4 -4
- package/src/feature-libraries/optional-field/optionalField.ts +34 -46
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +18 -3
- package/src/feature-libraries/schema-index/codec.ts +30 -90
- package/src/feature-libraries/schema-index/index.ts +2 -4
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +0 -17
- package/src/feature-libraries/schemaChecker.ts +11 -6
- package/src/feature-libraries/sequence-field/compose.ts +17 -13
- package/src/feature-libraries/sequence-field/invert.ts +5 -4
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +15 -9
- package/src/feature-libraries/sequence-field/rebase.ts +26 -18
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +52 -56
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +16 -8
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +4 -2
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +6 -3
- package/src/feature-libraries/sequence-field/utils.ts +46 -27
- package/src/feature-libraries/treeCursorUtils.ts +7 -7
- package/src/feature-libraries/treeTextCursor.ts +2 -2
- package/src/feature-libraries/valueUtilities.ts +16 -8
- package/src/index.ts +4 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/schematizingTreeView.ts +23 -13
- package/src/shared-tree/sharedTree.ts +30 -14
- package/src/shared-tree/sharedTreeChangeCodecs.ts +10 -9
- package/src/shared-tree/sharedTreeChangeEnricher.ts +4 -2
- package/src/shared-tree/sharedTreeChangeFamily.ts +29 -19
- package/src/shared-tree/sharedTreeEditBuilder.ts +9 -5
- package/src/shared-tree/treeAlpha.ts +60 -51
- package/src/shared-tree/treeCheckout.ts +66 -50
- package/src/shared-tree-core/branch.ts +8 -3
- package/src/shared-tree-core/branchCommitEnricher.ts +3 -8
- package/src/shared-tree-core/editManager.ts +1 -1
- package/src/shared-tree-core/editManagerCodecs.ts +9 -4
- package/src/shared-tree-core/editManagerFormatCommons.ts +6 -0
- package/src/shared-tree-core/editManagerFormatV1toV4.ts +3 -1
- package/src/shared-tree-core/editManagerSummarizer.ts +3 -3
- package/src/shared-tree-core/messageCodecV1ToV4.ts +2 -1
- package/src/shared-tree-core/messageCodecVSharedBranches.ts +2 -1
- package/src/shared-tree-core/messageCodecs.ts +8 -4
- package/src/shared-tree-core/messageFormat.ts +6 -1
- package/src/shared-tree-core/messageFormatV1ToV4.ts +16 -2
- package/src/shared-tree-core/sequenceIdUtils.ts +4 -4
- package/src/shared-tree-core/sharedTreeCore.ts +11 -7
- package/src/shared-tree-core/transaction.ts +115 -56
- package/src/shared-tree-core/transactionEnricher.ts +5 -6
- package/src/simple-tree/api/configuration.ts +1 -1
- package/src/simple-tree/api/customTree.ts +14 -10
- package/src/simple-tree/api/discrepancies.ts +23 -17
- package/src/simple-tree/api/index.ts +2 -0
- package/src/simple-tree/api/schemaFactory.ts +11 -7
- package/src/simple-tree/api/schemaFromSimple.ts +18 -9
- package/src/simple-tree/api/simpleSchemaCodec.ts +10 -5
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +17 -13
- package/src/simple-tree/api/simpleTreeIndex.ts +8 -8
- package/src/simple-tree/api/storedSchema.ts +10 -7
- package/src/simple-tree/api/transactionTypes.ts +19 -4
- package/src/simple-tree/api/treeNodeApi.ts +21 -13
- package/src/simple-tree/api/verboseTree.ts +14 -9
- package/src/simple-tree/core/treeNodeKernel.ts +6 -3
- package/src/simple-tree/core/unhydratedFlexTree.ts +22 -17
- package/src/simple-tree/getTreeNodeForField.ts +2 -1
- package/src/simple-tree/index.ts +2 -0
- package/src/simple-tree/leafNodeSchema.ts +8 -5
- package/src/simple-tree/node-kinds/array/arrayNode.ts +23 -23
- package/src/simple-tree/node-kinds/object/objectNode.ts +4 -5
- package/src/simple-tree/node-kinds/record/recordNode.ts +2 -3
- package/src/simple-tree/toStoredSchema.ts +9 -5
- package/src/treeFactory.ts +10 -5
- package/src/util/bTreeUtils.ts +1 -1
- package/src/util/breakable.ts +9 -9
- package/src/util/idAllocator.ts +1 -2
- package/src/util/nestedMap.ts +1 -3
- package/src/util/utils.ts +14 -13
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +0 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +0 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +0 -1
|
@@ -7,19 +7,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.normalizeFieldId = exports.getParentFieldId = exports.ModularEditBuilder = exports.getChangeHandler = exports.getFieldKind = exports.rebaseRevisionMetadataFromInfo = exports.intoDelta = exports.updateRefreshers = exports.relevantRemovedRoots = exports.ModularChangeFamily = void 0;
|
|
8
8
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
9
|
const sorted_btree_es6_1 = require("@tylerbu/sorted-btree-es6");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const internal_2 = require("@fluidframework/telemetry-utils/internal");
|
|
11
|
+
const index_js_1 = require("../../codec/index.js");
|
|
12
|
+
const index_js_2 = require("../../core/index.js");
|
|
13
|
+
const index_js_3 = require("../../util/index.js");
|
|
12
14
|
const crossFieldQueries_js_1 = require("./crossFieldQueries.js");
|
|
13
15
|
const fieldChangeHandler_js_1 = require("./fieldChangeHandler.js");
|
|
14
16
|
const genericFieldKind_js_1 = require("./genericFieldKind.js");
|
|
15
17
|
const modularChangeTypes_js_1 = require("./modularChangeTypes.js");
|
|
18
|
+
const changeAtomIdBTree_js_1 = require("../changeAtomIdBTree.js");
|
|
19
|
+
const semver_ts_1 = require("semver-ts");
|
|
16
20
|
/**
|
|
17
21
|
* Implementation of ChangeFamily which delegates work in a given field to the appropriate FieldKind
|
|
18
22
|
* as determined by the schema.
|
|
19
23
|
*/
|
|
20
24
|
class ModularChangeFamily {
|
|
21
|
-
constructor(fieldKinds, codecs) {
|
|
25
|
+
constructor(fieldKinds, codecs, codecOptions) {
|
|
22
26
|
this.codecs = codecs;
|
|
27
|
+
this.codecOptions = codecOptions;
|
|
23
28
|
this.fieldKinds = fieldKinds;
|
|
24
29
|
}
|
|
25
30
|
get rebaser() {
|
|
@@ -34,9 +39,9 @@ class ModularChangeFamily {
|
|
|
34
39
|
*/
|
|
35
40
|
normalizeFieldChanges(change1, change2) {
|
|
36
41
|
// TODO: Handle the case where changes have conflicting field kinds
|
|
37
|
-
const kind = change1.fieldKind
|
|
38
|
-
?
|
|
39
|
-
:
|
|
42
|
+
const kind = change1.fieldKind === genericFieldKind_js_1.genericFieldKind.identifier
|
|
43
|
+
? change2.fieldKind
|
|
44
|
+
: change1.fieldKind;
|
|
40
45
|
if (kind === genericFieldKind_js_1.genericFieldKind.identifier) {
|
|
41
46
|
// Both changes are generic
|
|
42
47
|
return {
|
|
@@ -73,11 +78,14 @@ class ModularChangeFamily {
|
|
|
73
78
|
return this.composePair(left, right, revInfos, idState);
|
|
74
79
|
};
|
|
75
80
|
const innerChanges = changes.map((change) => change.change);
|
|
76
|
-
return (0,
|
|
81
|
+
return (0, index_js_3.balancedReduce)(innerChanges, pairwiseDelegate, makeModularChangeset);
|
|
77
82
|
}
|
|
78
83
|
composePair(change1, change2, revInfos, idState) {
|
|
79
84
|
const { fieldChanges, nodeChanges, nodeToParent, nodeAliases, crossFieldKeys } = this.composeAllFields(change1, change2, revInfos, idState);
|
|
80
85
|
const { allBuilds, allDestroys, allRefreshers } = composeBuildsDestroysAndRefreshers(change1, change2);
|
|
86
|
+
// The composed changeset has a "no change" constraint if either change has one
|
|
87
|
+
const noChangeConstraint = change1.noChangeConstraint ?? change2.noChangeConstraint;
|
|
88
|
+
const noChangeConstraintOnRevert = change1.noChangeConstraintOnRevert ?? change2.noChangeConstraintOnRevert;
|
|
81
89
|
return makeModularChangeset({
|
|
82
90
|
fieldChanges,
|
|
83
91
|
nodeChanges,
|
|
@@ -86,6 +94,8 @@ class ModularChangeFamily {
|
|
|
86
94
|
crossFieldKeys,
|
|
87
95
|
maxId: idState.maxId,
|
|
88
96
|
revisions: revInfos,
|
|
97
|
+
noChangeConstraint,
|
|
98
|
+
noChangeConstraintOnRevert,
|
|
89
99
|
builds: allBuilds,
|
|
90
100
|
destroys: allDestroys,
|
|
91
101
|
refreshers: allRefreshers,
|
|
@@ -97,8 +107,8 @@ class ModularChangeFamily {
|
|
|
97
107
|
// TODO: remove once AB#46104 is completed
|
|
98
108
|
const change1 = this.getEffectiveChange(potentiallyConflictedChange1);
|
|
99
109
|
const change2 = this.getEffectiveChange(potentiallyConflictedChange2);
|
|
100
|
-
const genId = (0,
|
|
101
|
-
const revisionMetadata = (0,
|
|
110
|
+
const genId = (0, index_js_3.idAllocatorFromState)(idState);
|
|
111
|
+
const revisionMetadata = (0, index_js_2.revisionMetadataSourceFromInfo)(revInfos);
|
|
102
112
|
// We merge nodeChanges, nodeToParent, and nodeAliases from the two changesets.
|
|
103
113
|
// The merged tables will have correct entries for all nodes which are only referenced in one of the input changesets.
|
|
104
114
|
// During composeFieldMaps and composeInvalidatedElements we will find all nodes referenced in both input changesets
|
|
@@ -107,14 +117,14 @@ class ModularChangeFamily {
|
|
|
107
117
|
// A collision for a node ID means that that node is referenced in both changesets
|
|
108
118
|
// (since we assume that if two changesets use the same node ID they are referring to the same node),
|
|
109
119
|
// therefore all collisions will be addressed when processing the intersection of the changesets.
|
|
110
|
-
const composedNodeChanges = (0,
|
|
111
|
-
const composedNodeToParent = (0,
|
|
112
|
-
const composedNodeAliases = (0,
|
|
120
|
+
const composedNodeChanges = (0, index_js_3.brand)((0, index_js_3.mergeTupleBTrees)(change1.nodeChanges, change2.nodeChanges));
|
|
121
|
+
const composedNodeToParent = (0, index_js_3.brand)((0, index_js_3.mergeTupleBTrees)(change1.nodeToParent, change2.nodeToParent));
|
|
122
|
+
const composedNodeAliases = (0, index_js_3.brand)((0, index_js_3.mergeTupleBTrees)(change1.nodeAliases, change2.nodeAliases));
|
|
113
123
|
const crossFieldTable = newComposeTable(change1, change2, composedNodeToParent);
|
|
114
124
|
const composedFields = this.composeFieldMaps(change1.fieldChanges, change2.fieldChanges, undefined, genId, crossFieldTable, revisionMetadata);
|
|
115
125
|
this.composeInvalidatedElements(crossFieldTable, composedFields, composedNodeChanges, composedNodeToParent, composedNodeAliases, genId, revisionMetadata);
|
|
116
126
|
// Currently no field kinds require making changes to cross-field keys during composition, so we can just merge the two tables.
|
|
117
|
-
const composedCrossFieldKeys =
|
|
127
|
+
const composedCrossFieldKeys = index_js_3.RangeMap.union(change1.crossFieldKeys, change2.crossFieldKeys);
|
|
118
128
|
return {
|
|
119
129
|
fieldChanges: composedFields,
|
|
120
130
|
nodeChanges: composedNodeChanges,
|
|
@@ -131,14 +141,14 @@ class ModularChangeFamily {
|
|
|
131
141
|
const composeNodes = (child1, child2) => {
|
|
132
142
|
if (child1 !== undefined &&
|
|
133
143
|
child2 !== undefined &&
|
|
134
|
-
getFromChangeAtomIdMap(crossFieldTable.newToBaseNodeId, child2) === undefined) {
|
|
135
|
-
setInChangeAtomIdMap(crossFieldTable.newToBaseNodeId, child2, child1);
|
|
144
|
+
(0, changeAtomIdBTree_js_1.getFromChangeAtomIdMap)(crossFieldTable.newToBaseNodeId, child2) === undefined) {
|
|
145
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(crossFieldTable.newToBaseNodeId, child2, child1);
|
|
136
146
|
crossFieldTable.pendingCompositions.nodeIdsToCompose.push([child1, child2]);
|
|
137
147
|
}
|
|
138
148
|
return child1 ?? child2 ?? (0, internal_1.fail)(0xb22 /* Should not compose two undefined nodes */);
|
|
139
149
|
};
|
|
140
150
|
const amendedChange = rebaser.compose(fieldChange1, fieldChange2, composeNodes, genId, new ComposeManager(crossFieldTable, fieldChange, fieldId, false), revisionMetadata);
|
|
141
|
-
composedChange.change = (0,
|
|
151
|
+
composedChange.change = (0, index_js_3.brand)(amendedChange);
|
|
142
152
|
}
|
|
143
153
|
/**
|
|
144
154
|
* Updates everything in the composed output which may no longer be valid.
|
|
@@ -204,11 +214,11 @@ class ModularChangeFamily {
|
|
|
204
214
|
composedFields.set(fieldId.field, composedField);
|
|
205
215
|
continue;
|
|
206
216
|
}
|
|
207
|
-
const nodeId = getFromChangeAtomIdMap(table.newToBaseNodeId, fieldId.nodeId) ?? fieldId.nodeId;
|
|
217
|
+
const nodeId = (0, changeAtomIdBTree_js_1.getFromChangeAtomIdMap)(table.newToBaseNodeId, fieldId.nodeId) ?? fieldId.nodeId;
|
|
208
218
|
let nodeChangeset = nodeChangeFromId(composedNodes, nodeId);
|
|
209
219
|
if (!table.composedNodes.has(nodeChangeset)) {
|
|
210
220
|
nodeChangeset = cloneNodeChangeset(nodeChangeset);
|
|
211
|
-
setInChangeAtomIdMap(composedNodes, nodeId, nodeChangeset);
|
|
221
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(composedNodes, nodeId, nodeChangeset);
|
|
212
222
|
}
|
|
213
223
|
if (nodeChangeset.fieldChanges === undefined) {
|
|
214
224
|
nodeChangeset.fieldChanges = new Map();
|
|
@@ -225,9 +235,9 @@ class ModularChangeFamily {
|
|
|
225
235
|
for (const [field, fieldChange1] of change1) {
|
|
226
236
|
const fieldId = { nodeId: parentId, field };
|
|
227
237
|
const fieldChange2 = change2.get(field);
|
|
228
|
-
const composedField = fieldChange2
|
|
229
|
-
?
|
|
230
|
-
: fieldChange1;
|
|
238
|
+
const composedField = fieldChange2 === undefined
|
|
239
|
+
? fieldChange1
|
|
240
|
+
: this.composeFieldChanges(fieldId, fieldChange1, fieldChange2, genId, crossFieldTable, revisionMetadata);
|
|
231
241
|
composedFields.set(field, composedField);
|
|
232
242
|
}
|
|
233
243
|
for (const [field, fieldChange2] of change2) {
|
|
@@ -253,14 +263,14 @@ class ModularChangeFamily {
|
|
|
253
263
|
const manager = new ComposeManager(crossFieldTable, change1, fieldId);
|
|
254
264
|
const composedChange = changeHandler.rebaser.compose(change1Normalized, change2Normalized, (child1, child2) => {
|
|
255
265
|
if (child1 !== undefined && child2 !== undefined) {
|
|
256
|
-
setInChangeAtomIdMap(crossFieldTable.newToBaseNodeId, child2, child1);
|
|
266
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(crossFieldTable.newToBaseNodeId, child2, child1);
|
|
257
267
|
crossFieldTable.pendingCompositions.nodeIdsToCompose.push([child1, child2]);
|
|
258
268
|
}
|
|
259
269
|
return child1 ?? child2 ?? (0, internal_1.fail)(0xb23 /* Should not compose two undefined nodes */);
|
|
260
270
|
}, idAllocator, manager, revisionMetadata);
|
|
261
271
|
const composedField = {
|
|
262
272
|
fieldKind,
|
|
263
|
-
change: (0,
|
|
273
|
+
change: (0, index_js_3.brand)(composedChange),
|
|
264
274
|
};
|
|
265
275
|
crossFieldTable.fieldToContext.set(change1, {
|
|
266
276
|
fieldId,
|
|
@@ -275,11 +285,11 @@ class ModularChangeFamily {
|
|
|
275
285
|
const nodeChangeset1 = nodeChangeFromId(nodeChanges1, id1);
|
|
276
286
|
const nodeChangeset2 = nodeChangeFromId(nodeChanges2, id2);
|
|
277
287
|
const composedNodeChangeset = this.composeNodeChanges(id1, nodeChangeset1, nodeChangeset2, idAllocator, crossFieldTable, revisionMetadata);
|
|
278
|
-
setInChangeAtomIdMap(composedNodes, id1, composedNodeChangeset);
|
|
279
|
-
if (!(0,
|
|
288
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(composedNodes, id1, composedNodeChangeset);
|
|
289
|
+
if (!(0, index_js_2.areEqualChangeAtomIds)(id1, id2)) {
|
|
280
290
|
composedNodes.delete([id2.revision, id2.localId]);
|
|
281
291
|
composedNodeToParent.delete([id2.revision, id2.localId]);
|
|
282
|
-
setInChangeAtomIdMap(nodeAliases, id2, id1);
|
|
292
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(nodeAliases, id2, id1);
|
|
283
293
|
// We need to delete id1 to avoid forming a cycle in case id1 already had an alias.
|
|
284
294
|
nodeAliases.delete([id1.revision, id1.localId]);
|
|
285
295
|
}
|
|
@@ -314,8 +324,8 @@ class ModularChangeFamily {
|
|
|
314
324
|
/**
|
|
315
325
|
* @param change - The change to invert.
|
|
316
326
|
* @param isRollback - Whether the inverted change is meant to rollback a change on a branch as is the case when
|
|
317
|
-
* @param revisionForInvert - The revision for the invert changeset.
|
|
318
327
|
* performing a sandwich rebase.
|
|
328
|
+
* @param revisionForInvert - The revision for the invert changeset.
|
|
319
329
|
*/
|
|
320
330
|
invert(change, isRollback, revisionForInvert) {
|
|
321
331
|
// Rollback changesets destroy the nodes created by the change being rolled back.
|
|
@@ -325,6 +335,8 @@ class ModularChangeFamily {
|
|
|
325
335
|
const revInfos = isRollback
|
|
326
336
|
? [{ revision: revisionForInvert, rollbackOf: change.revision }]
|
|
327
337
|
: [{ revision: revisionForInvert }];
|
|
338
|
+
const noChangeConstraint = change.change.noChangeConstraintOnRevert;
|
|
339
|
+
const noChangeConstraintOnRevert = change.change.noChangeConstraint;
|
|
328
340
|
if (hasConflicts(change.change)) {
|
|
329
341
|
return makeModularChangeset({
|
|
330
342
|
maxId: change.change.maxId,
|
|
@@ -332,16 +344,16 @@ class ModularChangeFamily {
|
|
|
332
344
|
destroys,
|
|
333
345
|
});
|
|
334
346
|
}
|
|
335
|
-
const genId = (0,
|
|
347
|
+
const genId = (0, index_js_3.idAllocatorFromMaxId)(change.change.maxId ?? -1);
|
|
336
348
|
const crossFieldTable = {
|
|
337
349
|
...newCrossFieldTable(),
|
|
338
350
|
originalFieldToContext: new Map(),
|
|
339
|
-
invertedNodeToParent: (0,
|
|
351
|
+
invertedNodeToParent: (0, index_js_3.brand)(change.change.nodeToParent.clone()),
|
|
340
352
|
};
|
|
341
353
|
const { revInfos: oldRevInfos } = getRevInfoFromTaggedChanges([change]);
|
|
342
|
-
const revisionMetadata = (0,
|
|
354
|
+
const revisionMetadata = (0, index_js_2.revisionMetadataSourceFromInfo)(oldRevInfos);
|
|
343
355
|
const invertedFields = this.invertFieldMap(change.change.fieldChanges, undefined, isRollback, genId, crossFieldTable, revisionMetadata, revisionForInvert);
|
|
344
|
-
const invertedNodes = (0,
|
|
356
|
+
const invertedNodes = (0, index_js_3.newTupleBTree)();
|
|
345
357
|
change.change.nodeChanges.forEachPair(([revision, localId], nodeChangeset) => {
|
|
346
358
|
invertedNodes.set([revision, localId], this.invertNodeChange(nodeChangeset, { revision, localId }, isRollback, genId, crossFieldTable, revisionMetadata, revisionForInvert));
|
|
347
359
|
});
|
|
@@ -354,7 +366,7 @@ class ModularChangeFamily {
|
|
|
354
366
|
(0, internal_1.assert)(context !== undefined, 0x851 /* Should have context for every invalidated field */);
|
|
355
367
|
const { invertedField, fieldId } = context;
|
|
356
368
|
const amendedChange = getChangeHandler(this.fieldKinds, fieldChange.fieldKind).rebaser.invert(originalFieldChange, isRollback, genId, revisionForInvert, new InvertManager(crossFieldTable, fieldChange, fieldId), revisionMetadata);
|
|
357
|
-
invertedField.change = (0,
|
|
369
|
+
invertedField.change = (0, index_js_3.brand)(amendedChange);
|
|
358
370
|
}
|
|
359
371
|
}
|
|
360
372
|
const crossFieldKeys = this.makeCrossFieldKeyTable(invertedFields, invertedNodes);
|
|
@@ -368,6 +380,8 @@ class ModularChangeFamily {
|
|
|
368
380
|
revisions: revInfos,
|
|
369
381
|
constraintViolationCount: change.change.constraintViolationCountOnRevert,
|
|
370
382
|
constraintViolationCountOnRevert: change.change.constraintViolationCount,
|
|
383
|
+
noChangeConstraint,
|
|
384
|
+
noChangeConstraintOnRevert,
|
|
371
385
|
destroys,
|
|
372
386
|
});
|
|
373
387
|
}
|
|
@@ -379,7 +393,7 @@ class ModularChangeFamily {
|
|
|
379
393
|
const invertedChange = getChangeHandler(this.fieldKinds, fieldChange.fieldKind).rebaser.invert(fieldChange.change, isRollback, genId, revisionForInvert, manager, revisionMetadata);
|
|
380
394
|
const invertedFieldChange = {
|
|
381
395
|
...fieldChange,
|
|
382
|
-
change: (0,
|
|
396
|
+
change: (0, index_js_3.brand)(invertedChange),
|
|
383
397
|
};
|
|
384
398
|
invertedFields.set(field, invertedFieldChange);
|
|
385
399
|
crossFieldTable.originalFieldToContext.set(fieldChange, {
|
|
@@ -412,22 +426,22 @@ class ModularChangeFamily {
|
|
|
412
426
|
// This means that we must rebase over a muted version of the conflicted changeset.
|
|
413
427
|
// That is, a version that includes its declarations (e.g., new cells) but not its changes.
|
|
414
428
|
// TODO: remove once AB#46104 is completed
|
|
415
|
-
const over = (0,
|
|
429
|
+
const over = (0, index_js_2.mapTaggedChange)(potentiallyConflictedOver, this.getEffectiveChange(potentiallyConflictedOver.change));
|
|
416
430
|
const change = taggedChange.change;
|
|
417
431
|
const maxId = Math.max(change.maxId ?? -1, over.change.maxId ?? -1);
|
|
418
432
|
const idState = { maxId };
|
|
419
|
-
const genId = (0,
|
|
433
|
+
const genId = (0, index_js_3.idAllocatorFromState)(idState);
|
|
420
434
|
const crossFieldTable = {
|
|
421
435
|
...newCrossFieldTable(),
|
|
422
436
|
newChange: change,
|
|
423
437
|
baseChange: over.change,
|
|
424
438
|
baseFieldToContext: new Map(),
|
|
425
|
-
baseToRebasedNodeId: (0,
|
|
439
|
+
baseToRebasedNodeId: (0, index_js_3.newTupleBTree)(),
|
|
426
440
|
rebasedFields: new Set(),
|
|
427
|
-
rebasedNodeToParent: (0,
|
|
441
|
+
rebasedNodeToParent: (0, index_js_3.brand)(change.nodeToParent.clone()),
|
|
428
442
|
rebasedCrossFieldKeys: change.crossFieldKeys.clone(),
|
|
429
443
|
nodeIdPairs: [],
|
|
430
|
-
affectedBaseFields: (0,
|
|
444
|
+
affectedBaseFields: (0, index_js_3.newTupleBTree)(),
|
|
431
445
|
fieldsWithUnattachedChild: new Set(),
|
|
432
446
|
};
|
|
433
447
|
const getBaseRevisions = () => revisionInfoFromTaggedChange(over).map((info) => info.revision);
|
|
@@ -436,11 +450,16 @@ class ModularChangeFamily {
|
|
|
436
450
|
getRevisionToRebase: () => taggedChange.revision,
|
|
437
451
|
getBaseRevisions,
|
|
438
452
|
};
|
|
439
|
-
const rebasedNodes = (0,
|
|
453
|
+
const rebasedNodes = (0, index_js_3.brand)(change.nodeChanges.clone());
|
|
440
454
|
const rebasedFields = this.rebaseIntersectingFields(crossFieldTable, rebasedNodes, genId, rebaseMetadata);
|
|
441
455
|
this.rebaseInvalidatedElements(rebasedFields, rebasedNodes, crossFieldTable, rebaseMetadata, genId);
|
|
442
456
|
const constraintState = newConstraintState(change.constraintViolationCount ?? 0);
|
|
443
457
|
const revertConstraintState = newConstraintState(change.constraintViolationCountOnRevert ?? 0);
|
|
458
|
+
let noChangeConstraint = change.noChangeConstraint;
|
|
459
|
+
if (noChangeConstraint !== undefined && !noChangeConstraint.violated) {
|
|
460
|
+
noChangeConstraint = { violated: true };
|
|
461
|
+
constraintState.violationCount += 1;
|
|
462
|
+
}
|
|
444
463
|
this.updateConstraintsForFields(rebasedFields, fieldChangeHandler_js_1.NodeAttachState.Attached, fieldChangeHandler_js_1.NodeAttachState.Attached, constraintState, revertConstraintState, rebasedNodes);
|
|
445
464
|
const rebased = makeModularChangeset({
|
|
446
465
|
fieldChanges: this.pruneFieldMap(rebasedFields, rebasedNodes),
|
|
@@ -452,6 +471,8 @@ class ModularChangeFamily {
|
|
|
452
471
|
revisions: change.revisions,
|
|
453
472
|
constraintViolationCount: constraintState.violationCount,
|
|
454
473
|
constraintViolationCountOnRevert: revertConstraintState.violationCount,
|
|
474
|
+
noChangeConstraint,
|
|
475
|
+
noChangeConstraintOnRevert: change.noChangeConstraintOnRevert,
|
|
455
476
|
builds: change.builds,
|
|
456
477
|
destroys: change.destroys,
|
|
457
478
|
refreshers: change.refreshers,
|
|
@@ -468,7 +489,7 @@ class ModularChangeFamily {
|
|
|
468
489
|
// Note that the call to `rebaseNodeChange` can add entries to `crossFieldTable.nodeIdPairs`.
|
|
469
490
|
for (const [newId, baseId, _attachState] of crossFieldTable.nodeIdPairs) {
|
|
470
491
|
const rebasedNode = this.rebaseNodeChange(newId, baseId, genId, crossFieldTable, metadata);
|
|
471
|
-
setInChangeAtomIdMap(rebasedNodes, newId, rebasedNode);
|
|
492
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(rebasedNodes, newId, rebasedNode);
|
|
472
493
|
}
|
|
473
494
|
return rebasedFields;
|
|
474
495
|
}
|
|
@@ -476,9 +497,9 @@ class ModularChangeFamily {
|
|
|
476
497
|
rebaseFieldsWithoutNewChanges(rebasedFields, rebasedNodes, crossFieldTable, genId, metadata) {
|
|
477
498
|
const baseChange = crossFieldTable.baseChange;
|
|
478
499
|
for (const [revision, localId, fieldKey] of crossFieldTable.affectedBaseFields.keys()) {
|
|
479
|
-
const baseNodeId = localId
|
|
480
|
-
?
|
|
481
|
-
:
|
|
500
|
+
const baseNodeId = localId === undefined
|
|
501
|
+
? undefined
|
|
502
|
+
: normalizeNodeId({ revision, localId }, baseChange.nodeAliases);
|
|
482
503
|
const baseFieldChange = fieldMapFromNodeId(baseChange.fieldChanges, baseChange.nodeChanges, baseNodeId).get(fieldKey);
|
|
483
504
|
(0, internal_1.assert)(baseFieldChange !== undefined, 0x9c2 /* Cross field key registered for empty field */);
|
|
484
505
|
if (crossFieldTable.baseFieldToContext.has(baseFieldChange)) {
|
|
@@ -494,16 +515,16 @@ class ModularChangeFamily {
|
|
|
494
515
|
const handler = getChangeHandler(this.fieldKinds, baseFieldChange.fieldKind);
|
|
495
516
|
const fieldChange = {
|
|
496
517
|
...baseFieldChange,
|
|
497
|
-
change: (0,
|
|
518
|
+
change: (0, index_js_3.brand)(handler.createEmpty()),
|
|
498
519
|
};
|
|
499
|
-
const rebasedNodeId = baseNodeId
|
|
500
|
-
?
|
|
501
|
-
:
|
|
520
|
+
const rebasedNodeId = baseNodeId === undefined
|
|
521
|
+
? undefined
|
|
522
|
+
: rebasedNodeIdFromBaseNodeId(crossFieldTable, baseNodeId);
|
|
502
523
|
const fieldId = { nodeId: rebasedNodeId, field: fieldKey };
|
|
503
524
|
const rebasedField = handler.rebaser.rebase(fieldChange.change, baseFieldChange.change, rebaseChild, genId, new RebaseManager(crossFieldTable, baseFieldChange, fieldId), metadata);
|
|
504
525
|
const rebasedFieldChange = {
|
|
505
526
|
...baseFieldChange,
|
|
506
|
-
change: (0,
|
|
527
|
+
change: (0, index_js_3.brand)(rebasedField),
|
|
507
528
|
};
|
|
508
529
|
// TODO: Deduplicate
|
|
509
530
|
crossFieldTable.baseFieldToContext.set(baseFieldChange, {
|
|
@@ -545,21 +566,21 @@ class ModularChangeFamily {
|
|
|
545
566
|
}
|
|
546
567
|
if (base !== undefined) {
|
|
547
568
|
for (const id of context.baseNodeIds) {
|
|
548
|
-
if ((0,
|
|
569
|
+
if ((0, index_js_2.areEqualChangeAtomIds)(base, id)) {
|
|
549
570
|
return base;
|
|
550
571
|
}
|
|
551
572
|
}
|
|
552
573
|
}
|
|
553
574
|
return undefined;
|
|
554
575
|
};
|
|
555
|
-
context.rebasedChange.change = (0,
|
|
576
|
+
context.rebasedChange.change = (0, index_js_3.brand)(changeHandler.rebaser.rebase(fieldChangeset, baseChangeset, rebaseChild, genId, new RebaseManager(crossFieldTable, baseField, context.fieldId, allowInval), rebaseMetadata));
|
|
556
577
|
}
|
|
557
578
|
attachRebasedField(rebasedFields, rebasedNodes, table, rebasedField, { nodeId, field: fieldKey }, idAllocator, metadata) {
|
|
558
579
|
if (nodeId === undefined) {
|
|
559
580
|
rebasedFields.set(fieldKey, rebasedField);
|
|
560
581
|
return;
|
|
561
582
|
}
|
|
562
|
-
const rebasedNode = getFromChangeAtomIdMap(rebasedNodes, nodeId);
|
|
583
|
+
const rebasedNode = (0, changeAtomIdBTree_js_1.getFromChangeAtomIdMap)(rebasedNodes, nodeId);
|
|
563
584
|
if (rebasedNode !== undefined) {
|
|
564
585
|
if (rebasedNode.fieldChanges === undefined) {
|
|
565
586
|
rebasedNode.fieldChanges = new Map([[fieldKey, rebasedField]]);
|
|
@@ -572,15 +593,15 @@ class ModularChangeFamily {
|
|
|
572
593
|
const newNode = {
|
|
573
594
|
fieldChanges: new Map([[fieldKey, rebasedField]]),
|
|
574
595
|
};
|
|
575
|
-
setInChangeAtomIdMap(rebasedNodes, nodeId, newNode);
|
|
576
|
-
setInChangeAtomIdMap(table.baseToRebasedNodeId, nodeId, nodeId);
|
|
596
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(rebasedNodes, nodeId, newNode);
|
|
597
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(table.baseToRebasedNodeId, nodeId, nodeId);
|
|
577
598
|
const parentFieldId = getParentFieldId(table.baseChange, nodeId);
|
|
578
599
|
this.attachRebasedNode(rebasedFields, rebasedNodes, table, nodeId, parentFieldId, idAllocator, metadata);
|
|
579
600
|
}
|
|
580
601
|
attachRebasedNode(rebasedFields, rebasedNodes, table, baseNodeId, parentFieldIdBase, idAllocator, metadata) {
|
|
581
602
|
const baseFieldChange = fieldChangeFromId(table.baseChange.fieldChanges, table.baseChange.nodeChanges, parentFieldIdBase);
|
|
582
603
|
const rebasedFieldId = rebasedFieldIdFromBaseId(table, parentFieldIdBase);
|
|
583
|
-
setInChangeAtomIdMap(table.rebasedNodeToParent, baseNodeId, rebasedFieldId);
|
|
604
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(table.rebasedNodeToParent, baseNodeId, rebasedFieldId);
|
|
584
605
|
const context = table.baseFieldToContext.get(baseFieldChange);
|
|
585
606
|
if (context !== undefined) {
|
|
586
607
|
// We've already processed this field.
|
|
@@ -592,12 +613,12 @@ class ModularChangeFamily {
|
|
|
592
613
|
const handler = getChangeHandler(this.fieldKinds, baseFieldChange.fieldKind);
|
|
593
614
|
const fieldChange = {
|
|
594
615
|
...baseFieldChange,
|
|
595
|
-
change: (0,
|
|
616
|
+
change: (0, index_js_3.brand)(handler.createEmpty()),
|
|
596
617
|
};
|
|
597
|
-
const rebasedChangeset = handler.rebaser.rebase(handler.createEmpty(), baseFieldChange.change, (_idNew, idBase) => idBase !== undefined && (0,
|
|
618
|
+
const rebasedChangeset = handler.rebaser.rebase(handler.createEmpty(), baseFieldChange.change, (_idNew, idBase) => idBase !== undefined && (0, index_js_2.areEqualChangeAtomIds)(idBase, baseNodeId)
|
|
598
619
|
? baseNodeId
|
|
599
620
|
: undefined, idAllocator, new RebaseManager(table, baseFieldChange, rebasedFieldId), metadata);
|
|
600
|
-
const rebasedField = { ...baseFieldChange, change: (0,
|
|
621
|
+
const rebasedField = { ...baseFieldChange, change: (0, index_js_3.brand)(rebasedChangeset) };
|
|
601
622
|
table.rebasedFields.add(rebasedField);
|
|
602
623
|
table.baseFieldToContext.set(baseFieldChange, {
|
|
603
624
|
newChange: fieldChange,
|
|
@@ -628,7 +649,7 @@ class ModularChangeFamily {
|
|
|
628
649
|
const rebasedField = changeHandler.rebaser.rebase(fieldChangeset, baseChangeset, rebaseChild, genId, manager, revisionMetadata);
|
|
629
650
|
const rebasedFieldChange = {
|
|
630
651
|
fieldKind,
|
|
631
|
-
change: (0,
|
|
652
|
+
change: (0, index_js_3.brand)(rebasedField),
|
|
632
653
|
};
|
|
633
654
|
rebasedFields.set(field, rebasedFieldChange);
|
|
634
655
|
crossFieldTable.baseFieldToContext.set(baseChange, {
|
|
@@ -659,7 +680,7 @@ class ModularChangeFamily {
|
|
|
659
680
|
if (change?.nodeExistsConstraintOnRevert !== undefined) {
|
|
660
681
|
rebasedChange.nodeExistsConstraintOnRevert = change.nodeExistsConstraintOnRevert;
|
|
661
682
|
}
|
|
662
|
-
setInChangeAtomIdMap(crossFieldTable.baseToRebasedNodeId, baseId, newId);
|
|
683
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(crossFieldTable.baseToRebasedNodeId, baseId, newId);
|
|
663
684
|
return rebasedChange;
|
|
664
685
|
}
|
|
665
686
|
updateConstraintsForFields(fields, parentInputAttachState, parentOutputAttachState, constraintState, revertConstraintState, nodes) {
|
|
@@ -713,16 +734,16 @@ class ModularChangeFamily {
|
|
|
713
734
|
const handler = getChangeHandler(this.fieldKinds, fieldChange.fieldKind);
|
|
714
735
|
const prunedFieldChangeset = handler.rebaser.prune(fieldChange.change, (nodeId) => this.pruneNodeChange(nodeId, nodeMap));
|
|
715
736
|
if (!handler.isEmpty(prunedFieldChangeset)) {
|
|
716
|
-
prunedChangeset.set(field, { ...fieldChange, change: (0,
|
|
737
|
+
prunedChangeset.set(field, { ...fieldChange, change: (0, index_js_3.brand)(prunedFieldChangeset) });
|
|
717
738
|
}
|
|
718
739
|
}
|
|
719
740
|
return prunedChangeset.size > 0 ? prunedChangeset : undefined;
|
|
720
741
|
}
|
|
721
742
|
pruneNodeChange(nodeId, nodeMap) {
|
|
722
743
|
const changeset = nodeChangeFromId(nodeMap, nodeId);
|
|
723
|
-
const prunedFields = changeset.fieldChanges
|
|
724
|
-
?
|
|
725
|
-
:
|
|
744
|
+
const prunedFields = changeset.fieldChanges === undefined
|
|
745
|
+
? undefined
|
|
746
|
+
: this.pruneFieldMap(changeset.fieldChanges, nodeMap);
|
|
726
747
|
const prunedChange = { ...changeset, fieldChanges: prunedFields };
|
|
727
748
|
if (prunedChange.fieldChanges === undefined) {
|
|
728
749
|
delete prunedChange.fieldChanges;
|
|
@@ -732,65 +753,54 @@ class ModularChangeFamily {
|
|
|
732
753
|
return undefined;
|
|
733
754
|
}
|
|
734
755
|
else {
|
|
735
|
-
setInChangeAtomIdMap(nodeMap, nodeId, prunedChange);
|
|
756
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(nodeMap, nodeId, prunedChange);
|
|
736
757
|
return nodeId;
|
|
737
758
|
}
|
|
738
759
|
}
|
|
739
|
-
|
|
740
|
-
const
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
const updatedFields = this.replaceFieldMapRevisions(change.fieldChanges, oldRevisions, newRevision);
|
|
744
|
-
const updatedNodes = (0, index_js_2.newTupleBTree)();
|
|
745
|
-
for (const [[revision, id], nodeChangeset] of change.nodeChanges.entries()) {
|
|
746
|
-
updatedNodes.set([replaceRevision(revision, oldRevisions, newRevision), id], this.replaceNodeChangesetRevisions(nodeChangeset, oldRevisions, newRevision));
|
|
747
|
-
}
|
|
748
|
-
const updatedNodeToParent = (0, index_js_2.newTupleBTree)();
|
|
749
|
-
for (const [[revision, id], fieldId] of change.nodeToParent.entries()) {
|
|
750
|
-
updatedNodeToParent.set([replaceRevision(revision, oldRevisions, newRevision), id], replaceFieldIdRevision(normalizeFieldId(fieldId, change.nodeAliases), oldRevisions, newRevision));
|
|
760
|
+
getRevisions(change) {
|
|
761
|
+
const aggregated = new Set();
|
|
762
|
+
for (const revInfo of change.revisions ?? [{ revision: undefined }]) {
|
|
763
|
+
aggregated.add(revInfo.revision);
|
|
751
764
|
}
|
|
765
|
+
return aggregated;
|
|
766
|
+
}
|
|
767
|
+
changeRevision(change, replacer) {
|
|
768
|
+
const updatedFields = this.replaceFieldMapRevisions(change.fieldChanges, replacer);
|
|
769
|
+
const updatedNodes = replaceIdMapRevisions(change.nodeChanges, replacer, (nodeChangeset) => this.replaceNodeChangesetRevisions(nodeChangeset, replacer));
|
|
770
|
+
const updatedNodeToParent = replaceIdMapRevisions(change.nodeToParent, replacer, (fieldId) => replaceFieldIdRevision(normalizeFieldId(fieldId, change.nodeAliases), replacer));
|
|
752
771
|
const updated = {
|
|
753
772
|
...change,
|
|
754
773
|
fieldChanges: updatedFields,
|
|
755
774
|
nodeChanges: updatedNodes,
|
|
756
775
|
nodeToParent: updatedNodeToParent,
|
|
757
776
|
// We've updated all references to old node IDs, so we no longer need an alias table.
|
|
758
|
-
nodeAliases: (0,
|
|
759
|
-
crossFieldKeys: replaceCrossFieldKeyTableRevisions(change.crossFieldKeys,
|
|
777
|
+
nodeAliases: (0, index_js_3.newTupleBTree)(),
|
|
778
|
+
crossFieldKeys: replaceCrossFieldKeyTableRevisions(change.crossFieldKeys, replacer, change.nodeAliases),
|
|
760
779
|
};
|
|
761
780
|
if (change.builds !== undefined) {
|
|
762
|
-
updated.builds = replaceIdMapRevisions(change.builds,
|
|
781
|
+
updated.builds = replaceIdMapRevisions(change.builds, replacer);
|
|
763
782
|
}
|
|
764
783
|
if (change.destroys !== undefined) {
|
|
765
|
-
updated.destroys = replaceIdMapRevisions(change.destroys,
|
|
784
|
+
updated.destroys = replaceIdMapRevisions(change.destroys, replacer);
|
|
766
785
|
}
|
|
767
786
|
if (change.refreshers !== undefined) {
|
|
768
|
-
updated.refreshers = replaceIdMapRevisions(change.refreshers,
|
|
769
|
-
}
|
|
770
|
-
if (newRevision !== undefined) {
|
|
771
|
-
const revInfo = { revision: newRevision };
|
|
772
|
-
if (rollbackOf !== undefined) {
|
|
773
|
-
revInfo.rollbackOf = rollbackOf;
|
|
774
|
-
}
|
|
775
|
-
updated.revisions = [revInfo];
|
|
776
|
-
}
|
|
777
|
-
else {
|
|
778
|
-
delete updated.revisions;
|
|
787
|
+
updated.refreshers = replaceIdMapRevisions(change.refreshers, replacer);
|
|
779
788
|
}
|
|
789
|
+
updated.revisions = [{ revision: replacer.updatedRevision }];
|
|
780
790
|
return updated;
|
|
781
791
|
}
|
|
782
|
-
replaceNodeChangesetRevisions(nodeChangeset,
|
|
792
|
+
replaceNodeChangesetRevisions(nodeChangeset, replacer) {
|
|
783
793
|
const updated = { ...nodeChangeset };
|
|
784
794
|
if (nodeChangeset.fieldChanges !== undefined) {
|
|
785
|
-
updated.fieldChanges = this.replaceFieldMapRevisions(nodeChangeset.fieldChanges,
|
|
795
|
+
updated.fieldChanges = this.replaceFieldMapRevisions(nodeChangeset.fieldChanges, replacer);
|
|
786
796
|
}
|
|
787
797
|
return updated;
|
|
788
798
|
}
|
|
789
|
-
replaceFieldMapRevisions(fields,
|
|
799
|
+
replaceFieldMapRevisions(fields, replacer) {
|
|
790
800
|
const updatedFields = new Map();
|
|
791
801
|
for (const [field, fieldChange] of fields) {
|
|
792
|
-
const updatedFieldChange = getChangeHandler(this.fieldKinds, fieldChange.fieldKind).rebaser.replaceRevisions(fieldChange.change,
|
|
793
|
-
updatedFields.set(field, { ...fieldChange, change: (0,
|
|
802
|
+
const updatedFieldChange = getChangeHandler(this.fieldKinds, fieldChange.fieldKind).rebaser.replaceRevisions(fieldChange.change, replacer);
|
|
803
|
+
updatedFields.set(field, { ...fieldChange, change: (0, index_js_3.brand)(updatedFieldChange) });
|
|
794
804
|
}
|
|
795
805
|
return updatedFields;
|
|
796
806
|
}
|
|
@@ -815,12 +825,12 @@ class ModularChangeFamily {
|
|
|
815
825
|
}
|
|
816
826
|
}
|
|
817
827
|
}
|
|
818
|
-
buildEditor(changeReceiver) {
|
|
819
|
-
return new ModularEditBuilder(this, this.fieldKinds, changeReceiver);
|
|
828
|
+
buildEditor(mintRevisionTag, changeReceiver) {
|
|
829
|
+
return new ModularEditBuilder(this, this.fieldKinds, changeReceiver, this.codecOptions);
|
|
820
830
|
}
|
|
821
831
|
createEmptyFieldChange(fieldKind) {
|
|
822
832
|
const emptyChange = getChangeHandler(this.fieldKinds, fieldKind).createEmpty();
|
|
823
|
-
return { fieldKind, change: (0,
|
|
833
|
+
return { fieldKind, change: (0, index_js_3.brand)(emptyChange) };
|
|
824
834
|
}
|
|
825
835
|
validateChangeset(change) {
|
|
826
836
|
let numNodes = this.validateFieldChanges(change, change.fieldChanges, undefined);
|
|
@@ -872,7 +882,7 @@ class ModularChangeFamily {
|
|
|
872
882
|
...change,
|
|
873
883
|
crossFieldKeys: (0, modularChangeTypes_js_1.newCrossFieldKeyTable)(),
|
|
874
884
|
fieldChanges: this.muteFieldChanges(change.fieldChanges),
|
|
875
|
-
nodeChanges: (0,
|
|
885
|
+
nodeChanges: (0, index_js_3.brand)(change.nodeChanges.mapValues((v) => this.muteNodeChange(v))),
|
|
876
886
|
};
|
|
877
887
|
return muted;
|
|
878
888
|
}
|
|
@@ -892,26 +902,22 @@ class ModularChangeFamily {
|
|
|
892
902
|
const handler = getChangeHandler(this.fieldKinds, change.fieldKind);
|
|
893
903
|
return {
|
|
894
904
|
fieldKind: change.fieldKind,
|
|
895
|
-
change: (0,
|
|
905
|
+
change: (0, index_js_3.brand)(handler.rebaser.mute(change.change)),
|
|
896
906
|
};
|
|
897
907
|
}
|
|
898
908
|
}
|
|
899
909
|
exports.ModularChangeFamily = ModularChangeFamily;
|
|
900
910
|
ModularChangeFamily.emptyChange = makeModularChangeset();
|
|
901
|
-
function replaceCrossFieldKeyTableRevisions(table,
|
|
911
|
+
function replaceCrossFieldKeyTableRevisions(table, replacer, nodeAliases) {
|
|
902
912
|
const updated = (0, modularChangeTypes_js_1.newCrossFieldKeyTable)();
|
|
903
913
|
for (const entry of table.entries()) {
|
|
904
914
|
const key = entry.start;
|
|
905
|
-
const updatedKey =
|
|
906
|
-
target: key.target,
|
|
907
|
-
revision: replaceRevision(key.revision, oldRevisions, newRevision),
|
|
908
|
-
localId: key.localId,
|
|
909
|
-
};
|
|
915
|
+
const updatedKey = replacer.getUpdatedAtomId(key);
|
|
910
916
|
const field = entry.value;
|
|
911
917
|
const normalizedFieldId = normalizeFieldId(field, nodeAliases);
|
|
912
|
-
const updatedNodeId = normalizedFieldId.nodeId
|
|
913
|
-
?
|
|
914
|
-
:
|
|
918
|
+
const updatedNodeId = normalizedFieldId.nodeId === undefined
|
|
919
|
+
? undefined
|
|
920
|
+
: replacer.getUpdatedAtomId(normalizedFieldId.nodeId);
|
|
915
921
|
const updatedValue = {
|
|
916
922
|
...normalizedFieldId,
|
|
917
923
|
nodeId: updatedNodeId,
|
|
@@ -920,13 +926,11 @@ function replaceCrossFieldKeyTableRevisions(table, oldRevisions, newRevision, no
|
|
|
920
926
|
}
|
|
921
927
|
return updated;
|
|
922
928
|
}
|
|
923
|
-
function
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
for (const [[revision, id], value] of map.entries()) {
|
|
929
|
-
updated.set([replaceRevision(revision, oldRevisions, newRevision), id], value);
|
|
929
|
+
function replaceIdMapRevisions(map, replacer, valueMapper = (value) => value) {
|
|
930
|
+
const updated = (0, index_js_3.newTupleBTree)();
|
|
931
|
+
for (const [[revision, localId], value] of map.entries()) {
|
|
932
|
+
const newAtom = replacer.getUpdatedAtomId({ revision, localId });
|
|
933
|
+
updated.set([newAtom.revision, newAtom.localId], valueMapper(value));
|
|
930
934
|
}
|
|
931
935
|
return updated;
|
|
932
936
|
}
|
|
@@ -941,9 +945,9 @@ function composeBuildsDestroysAndRefreshers(change1, change2) {
|
|
|
941
945
|
// Note that it would in principle be possible to adopt the later build and exclude from the
|
|
942
946
|
// composition all the changes already reflected on the tree, but that is not something we
|
|
943
947
|
// care to support at this time.
|
|
944
|
-
const allBuilds = (0,
|
|
945
|
-
const allDestroys = (0,
|
|
946
|
-
const allRefreshers = (0,
|
|
948
|
+
const allBuilds = (0, index_js_3.brand)((0, index_js_3.mergeTupleBTrees)(change1.builds ?? (0, index_js_3.newTupleBTree)(), change2.builds ?? (0, index_js_3.newTupleBTree)(), true));
|
|
949
|
+
const allDestroys = (0, index_js_3.brand)((0, index_js_3.mergeTupleBTrees)(change1.destroys ?? (0, index_js_3.newTupleBTree)(), change2.destroys ?? (0, index_js_3.newTupleBTree)()));
|
|
950
|
+
const allRefreshers = (0, index_js_3.brand)((0, index_js_3.mergeTupleBTrees)(change1.refreshers ?? (0, index_js_3.newTupleBTree)(), change2.refreshers ?? (0, index_js_3.newTupleBTree)(), true));
|
|
947
951
|
if (change1.destroys !== undefined && change2.builds !== undefined) {
|
|
948
952
|
for (const [key, chunk] of change2.builds.entries()) {
|
|
949
953
|
const destroyCount = change1.destroys.get(key);
|
|
@@ -968,7 +972,7 @@ function composeBuildsDestroysAndRefreshers(change1, change2) {
|
|
|
968
972
|
}
|
|
969
973
|
function invertBuilds(builds) {
|
|
970
974
|
if (builds !== undefined) {
|
|
971
|
-
return (0,
|
|
975
|
+
return (0, index_js_3.brand)(builds.mapValues((chunk) => chunk.topLevelLength));
|
|
972
976
|
}
|
|
973
977
|
return undefined;
|
|
974
978
|
}
|
|
@@ -1015,11 +1019,11 @@ function* relevantRemovedRootsFromFields(change, nodeChanges, fieldKinds) {
|
|
|
1015
1019
|
* corresponding build or refresher.
|
|
1016
1020
|
*/
|
|
1017
1021
|
function updateRefreshers(change, getDetachedNode, removedRoots, requireRefreshers = true) {
|
|
1018
|
-
const refreshers = (0,
|
|
1022
|
+
const refreshers = (0, index_js_3.newTupleBTree)();
|
|
1019
1023
|
const chunkLengths = new Map();
|
|
1020
1024
|
if (change.builds !== undefined) {
|
|
1021
1025
|
for (const [[revision, id], chunk] of change.builds.entries()) {
|
|
1022
|
-
const lengthTree = (0,
|
|
1026
|
+
const lengthTree = (0, index_js_3.getOrCreate)(chunkLengths, revision, () => new sorted_btree_es6_1.BTree());
|
|
1023
1027
|
lengthTree.set(id, chunk.topLevelLength);
|
|
1024
1028
|
}
|
|
1025
1029
|
}
|
|
@@ -1043,16 +1047,16 @@ function updateRefreshers(change, getDetachedNode, removedRoots, requireRefreshe
|
|
|
1043
1047
|
(0, internal_1.assert)(!requireRefreshers, 0x8cd /* detached node should exist */);
|
|
1044
1048
|
}
|
|
1045
1049
|
else {
|
|
1046
|
-
refreshers.set([root.major, (0,
|
|
1050
|
+
refreshers.set([root.major, (0, index_js_3.brand)(root.minor)], node);
|
|
1047
1051
|
}
|
|
1048
1052
|
}
|
|
1049
|
-
const { fieldChanges, nodeChanges, maxId, revisions, constraintViolationCount, constraintViolationCountOnRevert, builds, destroys, } = change;
|
|
1053
|
+
const { fieldChanges, nodeChanges, nodeToParent, nodeAliases, crossFieldKeys, maxId, revisions, constraintViolationCount, constraintViolationCountOnRevert, builds, destroys, } = change;
|
|
1050
1054
|
return makeModularChangeset({
|
|
1051
1055
|
fieldChanges,
|
|
1052
1056
|
nodeChanges,
|
|
1053
|
-
nodeToParent
|
|
1054
|
-
nodeAliases
|
|
1055
|
-
crossFieldKeys
|
|
1057
|
+
nodeToParent,
|
|
1058
|
+
nodeAliases,
|
|
1059
|
+
crossFieldKeys,
|
|
1056
1060
|
maxId: maxId,
|
|
1057
1061
|
revisions,
|
|
1058
1062
|
constraintViolationCount,
|
|
@@ -1095,7 +1099,7 @@ function intoDelta(taggedChange, fieldKinds) {
|
|
|
1095
1099
|
const destroys = [];
|
|
1096
1100
|
for (const [[major, minor], count] of change.destroys.entries()) {
|
|
1097
1101
|
destroys.push({
|
|
1098
|
-
id: (0,
|
|
1102
|
+
id: (0, index_js_2.makeDetachedNodeId)(major, minor),
|
|
1099
1103
|
count,
|
|
1100
1104
|
});
|
|
1101
1105
|
}
|
|
@@ -1113,7 +1117,7 @@ function copyDetachedNodes(detachedNodes) {
|
|
|
1113
1117
|
if (chunk.topLevelLength > 0) {
|
|
1114
1118
|
chunk.referenceAdded();
|
|
1115
1119
|
copiedDetachedNodes.push({
|
|
1116
|
-
id: (0,
|
|
1120
|
+
id: (0, index_js_2.makeDetachedNodeId)(major, minor),
|
|
1117
1121
|
trees: chunk,
|
|
1118
1122
|
});
|
|
1119
1123
|
}
|
|
@@ -1166,7 +1170,7 @@ function rebaseRevisionMetadataFromInfo(revInfos, revisionToRebase, baseRevision
|
|
|
1166
1170
|
}
|
|
1167
1171
|
const getBaseRevisions = () => filteredRevisions;
|
|
1168
1172
|
return {
|
|
1169
|
-
...(0,
|
|
1173
|
+
...(0, index_js_2.revisionMetadataSourceFromInfo)(revInfos),
|
|
1170
1174
|
getRevisionToRebase: () => revisionToRebase,
|
|
1171
1175
|
getBaseRevisions,
|
|
1172
1176
|
};
|
|
@@ -1197,22 +1201,22 @@ function newComposeTable(baseChange, newChange, composedNodeToParent) {
|
|
|
1197
1201
|
newChange,
|
|
1198
1202
|
fieldToContext: new Map(),
|
|
1199
1203
|
newFieldToBaseField: new Map(),
|
|
1200
|
-
newToBaseNodeId: (0,
|
|
1204
|
+
newToBaseNodeId: (0, index_js_3.newTupleBTree)(),
|
|
1201
1205
|
composedNodes: new Set(),
|
|
1202
1206
|
composedNodeToParent,
|
|
1203
1207
|
pendingCompositions: {
|
|
1204
1208
|
nodeIdsToCompose: [],
|
|
1205
|
-
affectedBaseFields: (0,
|
|
1206
|
-
affectedNewFields: (0,
|
|
1209
|
+
affectedBaseFields: (0, index_js_3.newTupleBTree)(),
|
|
1210
|
+
affectedNewFields: (0, index_js_3.newTupleBTree)(),
|
|
1207
1211
|
},
|
|
1208
1212
|
};
|
|
1209
1213
|
}
|
|
1210
1214
|
function newCrossFieldTable() {
|
|
1211
1215
|
return {
|
|
1212
|
-
srcTable: (0,
|
|
1213
|
-
dstTable: (0,
|
|
1214
|
-
srcDependents: (0,
|
|
1215
|
-
dstDependents: (0,
|
|
1216
|
+
srcTable: (0, index_js_2.newChangeAtomIdRangeMap)(),
|
|
1217
|
+
dstTable: (0, index_js_2.newChangeAtomIdRangeMap)(),
|
|
1218
|
+
srcDependents: (0, index_js_2.newChangeAtomIdRangeMap)(),
|
|
1219
|
+
dstDependents: (0, index_js_2.newChangeAtomIdRangeMap)(),
|
|
1216
1220
|
invalidatedFields: new Set(),
|
|
1217
1221
|
};
|
|
1218
1222
|
}
|
|
@@ -1236,7 +1240,7 @@ class CrossFieldManagerI {
|
|
|
1236
1240
|
if (dependentEntry.value !== undefined) {
|
|
1237
1241
|
this.crossFieldTable.invalidatedFields.add(dependentEntry.value);
|
|
1238
1242
|
}
|
|
1239
|
-
firstId = (0,
|
|
1243
|
+
firstId = (0, index_js_3.brand)(firstId + dependentEntry.length);
|
|
1240
1244
|
}
|
|
1241
1245
|
}
|
|
1242
1246
|
(0, crossFieldQueries_js_1.setInCrossFieldMap)(this.getMap(target), revision, id, count, newValue);
|
|
@@ -1267,7 +1271,7 @@ class InvertManager extends CrossFieldManagerI {
|
|
|
1267
1271
|
this.fieldId = fieldId;
|
|
1268
1272
|
}
|
|
1269
1273
|
onMoveIn(id) {
|
|
1270
|
-
setInChangeAtomIdMap(this.table.invertedNodeToParent, id, this.fieldId);
|
|
1274
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(this.table.invertedNodeToParent, id, this.fieldId);
|
|
1271
1275
|
}
|
|
1272
1276
|
moveKey(target, revision, id, count) {
|
|
1273
1277
|
(0, internal_1.assert)(false, 0x9c5 /* Keys should not be moved manually during invert */);
|
|
@@ -1302,7 +1306,7 @@ class RebaseManager extends CrossFieldManagerI {
|
|
|
1302
1306
|
super.set(target, revision, id, count, newValue, invalidateDependents);
|
|
1303
1307
|
}
|
|
1304
1308
|
onMoveIn(id) {
|
|
1305
|
-
setInChangeAtomIdMap(this.table.rebasedNodeToParent, id, this.fieldId);
|
|
1309
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(this.table.rebasedNodeToParent, id, this.fieldId);
|
|
1306
1310
|
}
|
|
1307
1311
|
moveKey(target, revision, id, count) {
|
|
1308
1312
|
this.table.rebasedCrossFieldKeys.set({ target, revision, localId: id }, count, this.fieldId);
|
|
@@ -1344,7 +1348,7 @@ class ComposeManager extends CrossFieldManagerI {
|
|
|
1344
1348
|
super.set(target, revision, id, count, newValue, invalidateDependents);
|
|
1345
1349
|
}
|
|
1346
1350
|
onMoveIn(id) {
|
|
1347
|
-
setInChangeAtomIdMap(this.table.composedNodeToParent, id, this.fieldId);
|
|
1351
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(this.table.composedNodeToParent, id, this.fieldId);
|
|
1348
1352
|
}
|
|
1349
1353
|
moveKey(target, revision, id, count) {
|
|
1350
1354
|
throw new Error("Moving cross-field keys during compose is currently unsupported");
|
|
@@ -1358,16 +1362,16 @@ function makeModularChangeset(props = {
|
|
|
1358
1362
|
}) {
|
|
1359
1363
|
const changeset = {
|
|
1360
1364
|
fieldChanges: props.fieldChanges ?? new Map(),
|
|
1361
|
-
nodeChanges: props.nodeChanges ?? (0,
|
|
1362
|
-
nodeToParent: props.nodeToParent ?? (0,
|
|
1363
|
-
nodeAliases: props.nodeAliases ?? (0,
|
|
1365
|
+
nodeChanges: props.nodeChanges ?? (0, index_js_3.newTupleBTree)(),
|
|
1366
|
+
nodeToParent: props.nodeToParent ?? (0, index_js_3.newTupleBTree)(),
|
|
1367
|
+
nodeAliases: props.nodeAliases ?? (0, index_js_3.newTupleBTree)(),
|
|
1364
1368
|
crossFieldKeys: props.crossFieldKeys ?? (0, modularChangeTypes_js_1.newCrossFieldKeyTable)(),
|
|
1365
1369
|
};
|
|
1366
1370
|
if (props.revisions !== undefined && props.revisions.length > 0) {
|
|
1367
1371
|
changeset.revisions = props.revisions;
|
|
1368
1372
|
}
|
|
1369
1373
|
if (props.maxId >= 0) {
|
|
1370
|
-
changeset.maxId = (0,
|
|
1374
|
+
changeset.maxId = (0, index_js_3.brand)(props.maxId);
|
|
1371
1375
|
}
|
|
1372
1376
|
if (props.constraintViolationCount !== undefined && props.constraintViolationCount > 0) {
|
|
1373
1377
|
changeset.constraintViolationCount = props.constraintViolationCount;
|
|
@@ -1376,6 +1380,12 @@ function makeModularChangeset(props = {
|
|
|
1376
1380
|
props.constraintViolationCountOnRevert > 0) {
|
|
1377
1381
|
changeset.constraintViolationCountOnRevert = props.constraintViolationCountOnRevert;
|
|
1378
1382
|
}
|
|
1383
|
+
if (props.noChangeConstraint !== undefined) {
|
|
1384
|
+
changeset.noChangeConstraint = props.noChangeConstraint;
|
|
1385
|
+
}
|
|
1386
|
+
if (props.noChangeConstraintOnRevert !== undefined) {
|
|
1387
|
+
changeset.noChangeConstraintOnRevert = props.noChangeConstraintOnRevert;
|
|
1388
|
+
}
|
|
1379
1389
|
if (props.builds !== undefined && props.builds.size > 0) {
|
|
1380
1390
|
changeset.builds = props.builds;
|
|
1381
1391
|
}
|
|
@@ -1387,24 +1397,25 @@ function makeModularChangeset(props = {
|
|
|
1387
1397
|
}
|
|
1388
1398
|
return changeset;
|
|
1389
1399
|
}
|
|
1390
|
-
class ModularEditBuilder extends
|
|
1391
|
-
constructor(family, fieldKinds, changeReceiver) {
|
|
1400
|
+
class ModularEditBuilder extends index_js_2.EditBuilder {
|
|
1401
|
+
constructor(family, fieldKinds, changeReceiver, codecOptions) {
|
|
1392
1402
|
super(family, changeReceiver);
|
|
1393
1403
|
this.fieldKinds = fieldKinds;
|
|
1394
1404
|
this.transactionDepth = 0;
|
|
1395
|
-
this.idAllocator = (0,
|
|
1405
|
+
this.idAllocator = (0, index_js_3.idAllocatorFromMaxId)();
|
|
1406
|
+
this.codecOptions = codecOptions;
|
|
1396
1407
|
}
|
|
1397
1408
|
enterTransaction() {
|
|
1398
1409
|
this.transactionDepth += 1;
|
|
1399
1410
|
if (this.transactionDepth === 1) {
|
|
1400
|
-
this.idAllocator = (0,
|
|
1411
|
+
this.idAllocator = (0, index_js_3.idAllocatorFromMaxId)();
|
|
1401
1412
|
}
|
|
1402
1413
|
}
|
|
1403
1414
|
exitTransaction() {
|
|
1404
1415
|
(0, internal_1.assert)(this.transactionDepth > 0, 0x5b9 /* Cannot exit inexistent transaction */);
|
|
1405
1416
|
this.transactionDepth -= 1;
|
|
1406
1417
|
if (this.transactionDepth === 0) {
|
|
1407
|
-
this.idAllocator = (0,
|
|
1418
|
+
this.idAllocator = (0, index_js_3.idAllocatorFromMaxId)();
|
|
1408
1419
|
}
|
|
1409
1420
|
}
|
|
1410
1421
|
/**
|
|
@@ -1422,7 +1433,7 @@ class ModularEditBuilder extends index_js_1.EditBuilder {
|
|
|
1422
1433
|
}
|
|
1423
1434
|
// This content will be added to a GlobalEditDescription whose lifetime exceeds the scope of this function.
|
|
1424
1435
|
content.referenceAdded();
|
|
1425
|
-
const builds = (0,
|
|
1436
|
+
const builds = (0, index_js_3.newTupleBTree)();
|
|
1426
1437
|
builds.set([revision, firstId], content);
|
|
1427
1438
|
return {
|
|
1428
1439
|
type: "global",
|
|
@@ -1442,24 +1453,24 @@ class ModularEditBuilder extends index_js_1.EditBuilder {
|
|
|
1442
1453
|
const modularChange = buildModularChangesetFromField({
|
|
1443
1454
|
path: field,
|
|
1444
1455
|
fieldChange: { fieldKind, change },
|
|
1445
|
-
nodeChanges: (0,
|
|
1446
|
-
nodeToParent: (0,
|
|
1456
|
+
nodeChanges: (0, index_js_3.newTupleBTree)(),
|
|
1457
|
+
nodeToParent: (0, index_js_3.newTupleBTree)(),
|
|
1447
1458
|
crossFieldKeys: (0, modularChangeTypes_js_1.newCrossFieldKeyTable)(),
|
|
1448
1459
|
idAllocator: this.idAllocator,
|
|
1449
1460
|
localCrossFieldKeys,
|
|
1450
1461
|
revision,
|
|
1451
1462
|
});
|
|
1452
|
-
this.applyChange((0,
|
|
1463
|
+
this.applyChange((0, index_js_2.tagChange)(modularChange, revision));
|
|
1453
1464
|
}
|
|
1454
1465
|
submitChanges(changes, revision) {
|
|
1455
1466
|
const modularChange = this.buildChanges(changes);
|
|
1456
|
-
this.applyChange((0,
|
|
1467
|
+
this.applyChange((0, index_js_2.tagChange)(modularChange, revision));
|
|
1457
1468
|
}
|
|
1458
1469
|
buildChanges(changes) {
|
|
1459
1470
|
const revisions = new Set();
|
|
1460
1471
|
const changeMaps = changes.map((change) => {
|
|
1461
1472
|
revisions.add(change.revision);
|
|
1462
|
-
return (0,
|
|
1473
|
+
return (0, index_js_2.makeAnonChange)(change.type === "global"
|
|
1463
1474
|
? makeModularChangeset({
|
|
1464
1475
|
maxId: this.idAllocator.getMaxId(),
|
|
1465
1476
|
builds: change.builds,
|
|
@@ -1471,37 +1482,37 @@ class ModularEditBuilder extends index_js_1.EditBuilder {
|
|
|
1471
1482
|
fieldKind: change.fieldKind,
|
|
1472
1483
|
change: change.change,
|
|
1473
1484
|
},
|
|
1474
|
-
nodeChanges: (0,
|
|
1475
|
-
nodeToParent: (0,
|
|
1485
|
+
nodeChanges: (0, index_js_3.newTupleBTree)(),
|
|
1486
|
+
nodeToParent: (0, index_js_3.newTupleBTree)(),
|
|
1476
1487
|
crossFieldKeys: (0, modularChangeTypes_js_1.newCrossFieldKeyTable)(),
|
|
1477
1488
|
idAllocator: this.idAllocator,
|
|
1478
1489
|
localCrossFieldKeys: getChangeHandler(this.fieldKinds, change.fieldKind).getCrossFieldKeys(change.change),
|
|
1479
1490
|
revision: change.revision,
|
|
1480
1491
|
}));
|
|
1481
1492
|
});
|
|
1482
|
-
const revInfo =
|
|
1493
|
+
const revInfo = [...revisions].map((revision) => ({ revision }));
|
|
1483
1494
|
const composedChange = {
|
|
1484
1495
|
...this.changeFamily.rebaser.compose(changeMaps),
|
|
1485
1496
|
revisions: revInfo,
|
|
1486
1497
|
};
|
|
1487
|
-
const maxId = (0,
|
|
1498
|
+
const maxId = (0, index_js_3.brand)(this.idAllocator.getMaxId());
|
|
1488
1499
|
if (maxId >= 0) {
|
|
1489
1500
|
composedChange.maxId = maxId;
|
|
1490
1501
|
}
|
|
1491
1502
|
return composedChange;
|
|
1492
1503
|
}
|
|
1493
1504
|
generateId(count) {
|
|
1494
|
-
return (0,
|
|
1505
|
+
return (0, index_js_3.brand)(this.idAllocator.allocate(count));
|
|
1495
1506
|
}
|
|
1496
1507
|
addNodeExistsConstraint(path, revision) {
|
|
1497
1508
|
const nodeChange = {
|
|
1498
1509
|
nodeExistsConstraint: { violated: false },
|
|
1499
1510
|
};
|
|
1500
|
-
this.applyChange((0,
|
|
1511
|
+
this.applyChange((0, index_js_2.tagChange)(buildModularChangesetFromNode({
|
|
1501
1512
|
path,
|
|
1502
1513
|
nodeChange,
|
|
1503
|
-
nodeChanges: (0,
|
|
1504
|
-
nodeToParent: (0,
|
|
1514
|
+
nodeChanges: (0, index_js_3.newTupleBTree)(),
|
|
1515
|
+
nodeToParent: (0, index_js_3.newTupleBTree)(),
|
|
1505
1516
|
crossFieldKeys: (0, modularChangeTypes_js_1.newCrossFieldKeyTable)(),
|
|
1506
1517
|
idAllocator: this.idAllocator,
|
|
1507
1518
|
revision,
|
|
@@ -1511,27 +1522,47 @@ class ModularEditBuilder extends index_js_1.EditBuilder {
|
|
|
1511
1522
|
const nodeChange = {
|
|
1512
1523
|
nodeExistsConstraintOnRevert: { violated: false },
|
|
1513
1524
|
};
|
|
1514
|
-
this.applyChange((0,
|
|
1525
|
+
this.applyChange((0, index_js_2.tagChange)(buildModularChangesetFromNode({
|
|
1515
1526
|
path,
|
|
1516
1527
|
nodeChange,
|
|
1517
|
-
nodeChanges: (0,
|
|
1518
|
-
nodeToParent: (0,
|
|
1528
|
+
nodeChanges: (0, index_js_3.newTupleBTree)(),
|
|
1529
|
+
nodeToParent: (0, index_js_3.newTupleBTree)(),
|
|
1519
1530
|
crossFieldKeys: (0, modularChangeTypes_js_1.newCrossFieldKeyTable)(),
|
|
1520
1531
|
idAllocator: this.idAllocator,
|
|
1521
1532
|
revision,
|
|
1522
1533
|
}), revision));
|
|
1523
1534
|
}
|
|
1535
|
+
addNoChangeConstraint(revision) {
|
|
1536
|
+
if ((0, semver_ts_1.lt)(this.codecOptions.minVersionForCollab, index_js_1.FluidClientVersion.v2_80)) {
|
|
1537
|
+
throw new internal_2.UsageError(`No change constraints require min client version of at least ${index_js_1.FluidClientVersion.v2_80}`);
|
|
1538
|
+
}
|
|
1539
|
+
const changeset = makeModularChangeset({
|
|
1540
|
+
maxId: -1,
|
|
1541
|
+
noChangeConstraint: { violated: false },
|
|
1542
|
+
});
|
|
1543
|
+
this.applyChange((0, index_js_2.tagChange)(changeset, revision));
|
|
1544
|
+
}
|
|
1545
|
+
addNoChangeConstraintOnRevert(revision) {
|
|
1546
|
+
if ((0, semver_ts_1.lt)(this.codecOptions.minVersionForCollab, index_js_1.FluidClientVersion.v2_80)) {
|
|
1547
|
+
throw new internal_2.UsageError(`No change constraints require min client version of at least ${index_js_1.FluidClientVersion.v2_80}`);
|
|
1548
|
+
}
|
|
1549
|
+
const changeset = makeModularChangeset({
|
|
1550
|
+
maxId: -1,
|
|
1551
|
+
noChangeConstraintOnRevert: { violated: false },
|
|
1552
|
+
});
|
|
1553
|
+
this.applyChange((0, index_js_2.tagChange)(changeset, revision));
|
|
1554
|
+
}
|
|
1524
1555
|
}
|
|
1525
1556
|
exports.ModularEditBuilder = ModularEditBuilder;
|
|
1526
1557
|
function buildModularChangesetFromField(props) {
|
|
1527
|
-
const { path, fieldChange, nodeChanges, nodeToParent, crossFieldKeys, idAllocator = (0,
|
|
1558
|
+
const { path, fieldChange, nodeChanges, nodeToParent, crossFieldKeys, idAllocator = (0, index_js_3.idAllocatorFromMaxId)(), localCrossFieldKeys = [], childId, revision, } = props;
|
|
1528
1559
|
const fieldChanges = new Map([[path.field, fieldChange]]);
|
|
1529
1560
|
if (path.parent === undefined) {
|
|
1530
1561
|
for (const { key, count } of localCrossFieldKeys) {
|
|
1531
1562
|
crossFieldKeys.set(key, count, { nodeId: undefined, field: path.field });
|
|
1532
1563
|
}
|
|
1533
1564
|
if (childId !== undefined) {
|
|
1534
|
-
setInChangeAtomIdMap(nodeToParent, childId, {
|
|
1565
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(nodeToParent, childId, {
|
|
1535
1566
|
nodeId: undefined,
|
|
1536
1567
|
field: path.field,
|
|
1537
1568
|
});
|
|
@@ -1548,12 +1579,12 @@ function buildModularChangesetFromField(props) {
|
|
|
1548
1579
|
const nodeChangeset = {
|
|
1549
1580
|
fieldChanges,
|
|
1550
1581
|
};
|
|
1551
|
-
const parentId = { localId: (0,
|
|
1582
|
+
const parentId = { localId: (0, index_js_3.brand)(idAllocator.allocate()), revision };
|
|
1552
1583
|
for (const { key, count } of localCrossFieldKeys) {
|
|
1553
1584
|
crossFieldKeys.set(key, count, { nodeId: parentId, field: path.field });
|
|
1554
1585
|
}
|
|
1555
1586
|
if (childId !== undefined) {
|
|
1556
|
-
setInChangeAtomIdMap(nodeToParent, childId, {
|
|
1587
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(nodeToParent, childId, {
|
|
1557
1588
|
nodeId: parentId,
|
|
1558
1589
|
field: path.field,
|
|
1559
1590
|
});
|
|
@@ -1570,8 +1601,8 @@ function buildModularChangesetFromField(props) {
|
|
|
1570
1601
|
});
|
|
1571
1602
|
}
|
|
1572
1603
|
function buildModularChangesetFromNode(props) {
|
|
1573
|
-
const { path, nodeId = { localId: (0,
|
|
1574
|
-
setInChangeAtomIdMap(
|
|
1604
|
+
const { path, idAllocator, revision, nodeChanges, nodeChange, nodeId = { localId: (0, index_js_3.brand)(idAllocator.allocate()), revision }, } = props;
|
|
1605
|
+
(0, changeAtomIdBTree_js_1.setInChangeAtomIdMap)(nodeChanges, nodeId, nodeChange);
|
|
1575
1606
|
const fieldChangeset = genericFieldKind_js_1.genericFieldKind.changeHandler.editor.buildChildChanges([
|
|
1576
1607
|
[path.parentIndex, nodeId],
|
|
1577
1608
|
]);
|
|
@@ -1590,15 +1621,20 @@ function buildModularChangesetFromNode(props) {
|
|
|
1590
1621
|
function getRevInfoFromTaggedChanges(changes) {
|
|
1591
1622
|
let maxId = -1;
|
|
1592
1623
|
const revInfos = [];
|
|
1624
|
+
const revisions = new Set();
|
|
1593
1625
|
for (const taggedChange of changes) {
|
|
1594
1626
|
const change = taggedChange.change;
|
|
1595
1627
|
maxId = Math.max(change.maxId ?? -1, maxId);
|
|
1596
|
-
|
|
1628
|
+
const infosToAdd = revisionInfoFromTaggedChange(taggedChange);
|
|
1629
|
+
for (const info of infosToAdd) {
|
|
1630
|
+
if (!revisions.has(info.revision)) {
|
|
1631
|
+
revisions.add(info.revision);
|
|
1632
|
+
revInfos.push(info);
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1597
1635
|
}
|
|
1598
|
-
const revisions = new Set();
|
|
1599
1636
|
const rolledBackRevisions = [];
|
|
1600
1637
|
for (const info of revInfos) {
|
|
1601
|
-
revisions.add(info.revision);
|
|
1602
1638
|
if (info.rollbackOf !== undefined) {
|
|
1603
1639
|
rolledBackRevisions.push(info.rollbackOf);
|
|
1604
1640
|
}
|
|
@@ -1609,7 +1645,7 @@ function getRevInfoFromTaggedChanges(changes) {
|
|
|
1609
1645
|
revInfos.push({ revision });
|
|
1610
1646
|
}
|
|
1611
1647
|
}
|
|
1612
|
-
return { maxId: (0,
|
|
1648
|
+
return { maxId: (0, index_js_3.brand)(maxId), revInfos };
|
|
1613
1649
|
}
|
|
1614
1650
|
function revisionInfoFromTaggedChange(taggedChange) {
|
|
1615
1651
|
const revInfos = [];
|
|
@@ -1644,15 +1680,15 @@ function rebasedFieldIdFromBaseId(table, baseId) {
|
|
|
1644
1680
|
return { ...baseId, nodeId: rebasedNodeIdFromBaseNodeId(table, baseId.nodeId) };
|
|
1645
1681
|
}
|
|
1646
1682
|
function rebasedNodeIdFromBaseNodeId(table, baseId) {
|
|
1647
|
-
return getFromChangeAtomIdMap(table.baseToRebasedNodeId, baseId) ?? baseId;
|
|
1683
|
+
return (0, changeAtomIdBTree_js_1.getFromChangeAtomIdMap)(table.baseToRebasedNodeId, baseId) ?? baseId;
|
|
1648
1684
|
}
|
|
1649
1685
|
function nodeChangeFromId(nodes, id) {
|
|
1650
|
-
const node = getFromChangeAtomIdMap(nodes, id);
|
|
1686
|
+
const node = (0, changeAtomIdBTree_js_1.getFromChangeAtomIdMap)(nodes, id);
|
|
1651
1687
|
(0, internal_1.assert)(node !== undefined, 0x9ca /* Unknown node ID */);
|
|
1652
1688
|
return node;
|
|
1653
1689
|
}
|
|
1654
1690
|
function fieldIdFromFieldIdKey([revision, localId, field]) {
|
|
1655
|
-
const nodeId = localId
|
|
1691
|
+
const nodeId = localId === undefined ? undefined : { revision, localId };
|
|
1656
1692
|
return { nodeId, field };
|
|
1657
1693
|
}
|
|
1658
1694
|
function cloneNodeChangeset(nodeChangeset) {
|
|
@@ -1661,17 +1697,17 @@ function cloneNodeChangeset(nodeChangeset) {
|
|
|
1661
1697
|
}
|
|
1662
1698
|
return { ...nodeChangeset };
|
|
1663
1699
|
}
|
|
1664
|
-
function replaceFieldIdRevision(fieldId,
|
|
1700
|
+
function replaceFieldIdRevision(fieldId, replacer) {
|
|
1665
1701
|
if (fieldId.nodeId === undefined) {
|
|
1666
1702
|
return fieldId;
|
|
1667
1703
|
}
|
|
1668
1704
|
return {
|
|
1669
1705
|
...fieldId,
|
|
1670
|
-
nodeId:
|
|
1706
|
+
nodeId: replacer.getUpdatedAtomId(fieldId.nodeId),
|
|
1671
1707
|
};
|
|
1672
1708
|
}
|
|
1673
1709
|
function getParentFieldId(changeset, nodeId) {
|
|
1674
|
-
const parentId = getFromChangeAtomIdMap(changeset.nodeToParent, nodeId);
|
|
1710
|
+
const parentId = (0, changeAtomIdBTree_js_1.getFromChangeAtomIdMap)(changeset.nodeToParent, nodeId);
|
|
1675
1711
|
(0, internal_1.assert)(parentId !== undefined, 0x9cb /* Parent field should be defined */);
|
|
1676
1712
|
return normalizeFieldId(parentId, changeset.nodeAliases);
|
|
1677
1713
|
}
|
|
@@ -1683,9 +1719,9 @@ function getFieldsForCrossFieldKey(changeset, key, count) {
|
|
|
1683
1719
|
}
|
|
1684
1720
|
// This is only exported for use in test utilities.
|
|
1685
1721
|
function normalizeFieldId(fieldId, nodeAliases) {
|
|
1686
|
-
return fieldId.nodeId
|
|
1687
|
-
?
|
|
1688
|
-
: fieldId;
|
|
1722
|
+
return fieldId.nodeId === undefined
|
|
1723
|
+
? fieldId
|
|
1724
|
+
: { ...fieldId, nodeId: normalizeNodeId(fieldId.nodeId, nodeAliases) };
|
|
1689
1725
|
}
|
|
1690
1726
|
exports.normalizeFieldId = normalizeFieldId;
|
|
1691
1727
|
/**
|
|
@@ -1695,7 +1731,7 @@ function normalizeNodeId(nodeId, nodeAliases) {
|
|
|
1695
1731
|
let currentId = nodeId;
|
|
1696
1732
|
// eslint-disable-next-line no-constant-condition
|
|
1697
1733
|
while (true) {
|
|
1698
|
-
const dealiased = getFromChangeAtomIdMap(nodeAliases, currentId);
|
|
1734
|
+
const dealiased = (0, changeAtomIdBTree_js_1.getFromChangeAtomIdMap)(nodeAliases, currentId);
|
|
1699
1735
|
if (dealiased === undefined) {
|
|
1700
1736
|
return currentId;
|
|
1701
1737
|
}
|
|
@@ -1705,13 +1741,7 @@ function normalizeNodeId(nodeId, nodeAliases) {
|
|
|
1705
1741
|
function hasConflicts(change) {
|
|
1706
1742
|
return (change.constraintViolationCount ?? 0) > 0;
|
|
1707
1743
|
}
|
|
1708
|
-
function getFromChangeAtomIdMap(map, id) {
|
|
1709
|
-
return map.get([id.revision, id.localId]);
|
|
1710
|
-
}
|
|
1711
|
-
function setInChangeAtomIdMap(map, id, value) {
|
|
1712
|
-
map.set([id.revision, id.localId], value);
|
|
1713
|
-
}
|
|
1714
1744
|
function areEqualFieldIds(a, b) {
|
|
1715
|
-
return (0,
|
|
1745
|
+
return (0, index_js_2.areEqualChangeAtomIdOpts)(a.nodeId, b.nodeId) && a.field === b.field;
|
|
1716
1746
|
}
|
|
1717
1747
|
//# sourceMappingURL=modularChangeFamily.js.map
|