@fluidframework/tree 2.1.0-281041 → 2.2.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/.mocharc.customBenchmarks.cjs +33 -0
- package/.vscode/Tree.code-workspace +2 -1
- package/CHANGELOG.md +335 -0
- package/README.md +40 -10
- package/api-extractor.json +17 -0
- package/api-report/tree.alpha.api.md +120 -26
- package/api-report/tree.beta.api.md +52 -26
- package/api-report/tree.public.api.md +52 -26
- package/dist/beta.d.ts +3 -1
- package/dist/codec/discriminatedUnions.d.ts +11 -5
- package/dist/codec/discriminatedUnions.d.ts.map +1 -1
- package/dist/codec/discriminatedUnions.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js.map +1 -1
- package/dist/core/forest/editableForest.d.ts +1 -5
- package/dist/core/forest/editableForest.d.ts.map +1 -1
- package/dist/core/forest/editableForest.js +4 -2
- package/dist/core/forest/editableForest.js.map +1 -1
- package/dist/core/forest/forest.d.ts +0 -6
- package/dist/core/forest/forest.d.ts.map +1 -1
- package/dist/core/forest/forest.js +0 -2
- package/dist/core/forest/forest.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 +0 -4
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +1 -3
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +1 -8
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +1 -9
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.d.ts +0 -1
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +12 -7
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/multiplicity.d.ts +0 -1
- package/dist/core/schema-stored/multiplicity.d.ts.map +1 -1
- package/dist/core/schema-stored/multiplicity.js +0 -1
- package/dist/core/schema-stored/multiplicity.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +0 -7
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +0 -4
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts +0 -3
- package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/dist/core/schema-view/view.d.ts +0 -3
- package/dist/core/schema-view/view.d.ts.map +1 -1
- package/dist/core/schema-view/view.js +0 -1
- package/dist/core/schema-view/view.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +1 -10
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +14 -4
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/cursor.d.ts +1 -6
- package/dist/core/tree/cursor.d.ts.map +1 -1
- package/dist/core/tree/cursor.js +0 -2
- package/dist/core/tree/cursor.js.map +1 -1
- package/dist/core/tree/delta.d.ts +0 -11
- package/dist/core/tree/delta.d.ts.map +1 -1
- package/dist/core/tree/delta.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +48 -11
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +144 -20
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.js +16 -6
- package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormat.d.ts +1 -1
- package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +38 -4
- package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/core/tree/index.d.ts +3 -2
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +3 -1
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/mapTree.d.ts +20 -4
- package/dist/core/tree/mapTree.d.ts.map +1 -1
- package/dist/core/tree/mapTree.js +29 -0
- package/dist/core/tree/mapTree.js.map +1 -1
- package/dist/core/tree/pathTree.d.ts +0 -11
- package/dist/core/tree/pathTree.d.ts.map +1 -1
- package/dist/core/tree/pathTree.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/treeTextFormat.js +3 -2
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/core/tree/types.d.ts +0 -11
- package/dist/core/tree/types.d.ts.map +1 -1
- package/dist/core/tree/types.js +0 -4
- package/dist/core/tree/types.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts +3 -2
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js +33 -17
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/core/tree/visitPath.d.ts +0 -2
- package/dist/core/tree/visitPath.d.ts.map +1 -1
- package/dist/core/tree/visitPath.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts +3 -4
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js +4 -4
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/domains/index.d.ts +1 -1
- package/dist/domains/index.d.ts.map +1 -1
- package/dist/domains/index.js +2 -1
- package/dist/domains/index.js.map +1 -1
- package/dist/domains/json/index.d.ts +1 -1
- package/dist/domains/json/index.d.ts.map +1 -1
- package/dist/domains/json/index.js +2 -1
- package/dist/domains/json/index.js.map +1 -1
- package/dist/domains/json/jsonCursor.d.ts +36 -2
- package/dist/domains/json/jsonCursor.d.ts.map +1 -1
- package/dist/domains/json/jsonCursor.js +76 -5
- package/dist/domains/json/jsonCursor.js.map +1 -1
- package/dist/domains/json/jsonDomainSchema.d.ts +13 -3
- package/dist/domains/json/jsonDomainSchema.d.ts.map +1 -1
- package/dist/domains/json/jsonDomainSchema.js +12 -4
- package/dist/domains/json/jsonDomainSchema.js.map +1 -1
- package/dist/domains/leafDomain.d.ts +0 -1
- package/dist/domains/leafDomain.d.ts.map +1 -1
- package/dist/domains/leafDomain.js +0 -1
- package/dist/domains/leafDomain.js.map +1 -1
- package/dist/domains/schemaBuilder.d.ts +1 -7
- package/dist/domains/schemaBuilder.d.ts.map +1 -1
- package/dist/domains/schemaBuilder.js +0 -10
- package/dist/domains/schemaBuilder.js.map +1 -1
- package/dist/events/events.d.ts +0 -4
- package/dist/events/events.d.ts.map +1 -1
- package/dist/events/events.js +0 -1
- package/dist/events/events.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js +8 -3
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +3 -3
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +7 -5
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.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 +8 -5
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +5 -3
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +12 -24
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +9 -19
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +0 -6
- 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/defaultSchema.d.ts +0 -1
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.js +0 -1
- package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js +2 -1
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts +6 -0
- package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/schemaChecker.js +6 -0
- package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts +0 -67
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +6 -25
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/fieldGenerator.d.ts +0 -3
- package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -1
- package/dist/feature-libraries/fieldGenerator.js +0 -1
- package/dist/feature-libraries/fieldGenerator.js.map +1 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts +1 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-map-tree/index.js +2 -2
- package/dist/feature-libraries/flex-map-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +57 -56
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +168 -217
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +0 -1
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +18 -295
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +0 -6
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +3 -2
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js +5 -1
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +1 -2
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +9 -27
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +36 -117
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +2 -13
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +3 -69
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts +0 -2
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.d.ts +2 -1
- package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +4 -0
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js +2 -2
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +6 -8
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +10 -18
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts +6 -2
- package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.js +9 -1
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
- package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts +0 -4
- package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
- package/dist/feature-libraries/memoizedIdRangeAllocator.js +0 -1
- package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +0 -2
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js +0 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/discrepancies.d.ts +18 -0
- package/dist/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/discrepancies.js +108 -5
- package/dist/feature-libraries/modular-schema/discrepancies.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +0 -8
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js +0 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts +1 -3
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.js +1 -2
- package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +1 -2
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +57 -85
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +5 -8
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +3 -14
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js +6 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +2 -1
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +40 -23
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +9 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +205 -244
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +8 -14
- 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-key/nodeKey.d.ts +0 -4
- package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKey.js +0 -2
- package/dist/feature-libraries/node-key/nodeKey.js.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +0 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts +3 -2
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +6 -14
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +6 -6
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +7 -7
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/schemaBuilderBase.d.ts +2 -28
- package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
- package/dist/feature-libraries/schemaBuilderBase.js +1 -27
- package/dist/feature-libraries/schemaBuilderBase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +24 -21
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.js +7 -6
- package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV3.d.ts +195 -0
- package/dist/feature-libraries/sequence-field/formatV3.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/formatV3.js +23 -0
- package/dist/feature-libraries/sequence-field/formatV3.js.map +1 -0
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts +11 -0
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/dist/feature-libraries/sequence-field/index.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/index.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +21 -13
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +24 -6
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +16 -3
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js +38 -4
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +54 -9
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +11 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +85 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +2 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +4 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/types.d.ts +23 -4
- package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/types.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts +5 -4
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +70 -42
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/storedToViewSchema.d.ts +0 -1
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
- package/dist/feature-libraries/storedToViewSchema.js +0 -1
- package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.d.ts +0 -6
- package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.js +8 -6
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.d.ts +0 -2
- package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/dist/feature-libraries/treeTextCursor.js +0 -2
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts +0 -3
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/index.js +1 -3
- package/dist/feature-libraries/typed-schema/index.js.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js +0 -4
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +2 -41
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +1 -40
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/feature-libraries/typed-schema/view.d.ts +0 -1
- package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/view.js.map +1 -1
- package/dist/index.d.ts +8 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -90
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +1 -1
- package/dist/internalTypes.d.ts.map +1 -1
- package/dist/internalTypes.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +3 -1
- package/dist/shared-tree/schematizeTree.d.ts +2 -11
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +13 -2
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +4 -4
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +2 -2
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +9 -18
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +12 -9
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +4 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +2 -2
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +0 -2
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeApi.js +3 -3
- package/dist/shared-tree/treeApi.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +10 -6
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +51 -6
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree/treeView.d.ts +3 -6
- package/dist/shared-tree/treeView.d.ts.map +1 -1
- package/dist/shared-tree/treeView.js +7 -3
- package/dist/shared-tree/treeView.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +6 -0
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +13 -6
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +3 -3
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +1 -0
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.d.ts +2 -2
- package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.js +6 -1
- package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +1 -0
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +4 -0
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +9 -1
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +54 -0
- package/dist/simple-tree/api/create.d.ts.map +1 -0
- package/dist/simple-tree/api/create.js +99 -0
- package/dist/simple-tree/api/create.js.map +1 -0
- package/dist/simple-tree/api/index.d.ts +12 -0
- package/dist/simple-tree/api/index.d.ts.map +1 -0
- package/dist/simple-tree/api/index.js +28 -0
- package/dist/simple-tree/api/index.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/api}/schemaCreationUtilities.d.ts +7 -4
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -0
- package/dist/simple-tree/{schemaCreationUtilities.js → api/schemaCreationUtilities.js} +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -0
- package/dist/simple-tree/{schemaFactory.d.ts → api/schemaFactory.d.ts} +15 -14
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -0
- package/dist/simple-tree/{schemaFactory.js → api/schemaFactory.js} +10 -9
- package/dist/simple-tree/api/schemaFactory.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/api}/schemaFactoryRecursive.d.ts +40 -7
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -0
- package/dist/simple-tree/{schemaFactoryRecursive.js → api/schemaFactoryRecursive.js} +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -0
- package/dist/simple-tree/api/testRecursiveDomain.d.ts +62 -0
- package/dist/simple-tree/api/testRecursiveDomain.d.ts.map +1 -0
- package/dist/simple-tree/api/testRecursiveDomain.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/api}/tree.d.ts +111 -20
- package/dist/simple-tree/api/tree.d.ts.map +1 -0
- package/dist/simple-tree/api/tree.js +173 -0
- package/dist/simple-tree/api/tree.js.map +1 -0
- package/dist/simple-tree/api/treeNodeApi.d.ts +87 -0
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -0
- package/dist/simple-tree/{treeNodeApi.js → api/treeNodeApi.js} +33 -33
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -0
- package/dist/simple-tree/api/verboseTree.d.ts +136 -0
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -0
- package/dist/simple-tree/api/verboseTree.js +220 -0
- package/dist/simple-tree/api/verboseTree.js.map +1 -0
- package/dist/simple-tree/arrayNode.d.ts +3 -3
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +70 -69
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +10 -0
- package/dist/simple-tree/core/index.d.ts.map +1 -0
- package/dist/simple-tree/core/index.js +27 -0
- package/dist/simple-tree/core/index.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/core}/schemaCaching.d.ts +2 -9
- package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -0
- package/dist/simple-tree/{schemaCaching.js → core/schemaCaching.js} +2 -23
- package/dist/simple-tree/core/schemaCaching.js.map +1 -0
- package/dist/simple-tree/core/treeNodeKernel.d.ts +57 -0
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -0
- package/dist/simple-tree/core/treeNodeKernel.js +128 -0
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -0
- package/dist/simple-tree/core/treeNodeSchema.d.ts +149 -0
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -0
- package/dist/simple-tree/core/treeNodeSchema.js +35 -0
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -0
- package/dist/simple-tree/core/types.d.ts +178 -0
- package/dist/simple-tree/core/types.d.ts.map +1 -0
- package/dist/simple-tree/core/types.js +117 -0
- package/dist/simple-tree/core/types.js.map +1 -0
- package/dist/simple-tree/core/withType.d.ts +82 -0
- package/dist/simple-tree/core/withType.d.ts.map +1 -0
- package/dist/simple-tree/core/withType.js +39 -0
- package/dist/simple-tree/core/withType.js.map +1 -0
- package/dist/simple-tree/getJsonSchema.d.ts +55 -0
- package/dist/simple-tree/getJsonSchema.d.ts.map +1 -0
- package/dist/simple-tree/getJsonSchema.js +69 -0
- package/dist/simple-tree/getJsonSchema.js.map +1 -0
- package/dist/simple-tree/getSimpleFieldSchema.d.ts +14 -0
- package/dist/simple-tree/getSimpleFieldSchema.d.ts.map +1 -0
- package/dist/simple-tree/getSimpleFieldSchema.js +29 -0
- package/dist/simple-tree/getSimpleFieldSchema.js.map +1 -0
- package/dist/simple-tree/getSimpleSchema.d.ts +58 -0
- package/dist/simple-tree/getSimpleSchema.d.ts.map +1 -0
- package/dist/simple-tree/getSimpleSchema.js +68 -0
- package/dist/simple-tree/getSimpleSchema.js.map +1 -0
- package/dist/simple-tree/index.d.ts +12 -13
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +27 -23
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/jsonSchema.d.ts +206 -0
- package/dist/simple-tree/jsonSchema.d.ts.map +1 -0
- package/dist/{feature-libraries/schema-aware/index.js → simple-tree/jsonSchema.js} +1 -1
- package/dist/simple-tree/jsonSchema.js.map +1 -0
- package/dist/simple-tree/leafNodeSchema.d.ts +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +3 -4
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +9 -3
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +33 -35
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +18 -16
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +43 -44
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/objectNodeTypes.d.ts +38 -0
- package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -0
- package/dist/simple-tree/objectNodeTypes.js +19 -0
- package/dist/simple-tree/objectNodeTypes.js.map +1 -0
- package/dist/simple-tree/proxies.d.ts +6 -25
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +54 -81
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/proxyBinding.d.ts +46 -19
- package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
- package/dist/simple-tree/proxyBinding.js +101 -44
- package/dist/simple-tree/proxyBinding.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +10 -159
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +11 -42
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts +124 -0
- package/dist/simple-tree/simpleSchema.d.ts.map +1 -0
- package/dist/{feature-libraries/schema-aware/schemaAware.js → simple-tree/simpleSchema.js} +1 -1
- package/dist/simple-tree/simpleSchema.js.map +1 -0
- package/dist/simple-tree/simpleSchemaToJsonSchema.d.ts +12 -0
- package/dist/simple-tree/simpleSchemaToJsonSchema.d.ts.map +1 -0
- package/dist/simple-tree/simpleSchemaToJsonSchema.js +146 -0
- package/dist/simple-tree/simpleSchemaToJsonSchema.js.map +1 -0
- package/dist/simple-tree/toFlexSchema.d.ts +4 -12
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +42 -52
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts +39 -39
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +227 -171
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/{types.d.ts → treeNodeValid.d.ts} +2 -80
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -0
- package/dist/simple-tree/{types.js → treeNodeValid.js} +102 -107
- package/dist/simple-tree/treeNodeValid.js.map +1 -0
- package/dist/simple-tree/typesUnsafe.d.ts +35 -4
- package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/viewSchemaToSimpleSchema.d.ts +11 -0
- package/dist/simple-tree/viewSchemaToSimpleSchema.d.ts.map +1 -0
- package/dist/simple-tree/viewSchemaToSimpleSchema.js +171 -0
- package/dist/simple-tree/viewSchemaToSimpleSchema.js.map +1 -0
- package/dist/util/brand.d.ts +0 -3
- package/dist/util/brand.d.ts.map +1 -1
- package/dist/util/brand.js +1 -2
- package/dist/util/brand.js.map +1 -1
- package/dist/util/brandedMap.d.ts +0 -5
- package/dist/util/brandedMap.d.ts.map +1 -1
- package/dist/util/brandedMap.js +0 -1
- package/dist/util/brandedMap.js.map +1 -1
- package/dist/util/breakable.js +1 -1
- package/dist/util/breakable.js.map +1 -1
- package/dist/util/idAllocator.d.ts +0 -2
- package/dist/util/idAllocator.d.ts.map +1 -1
- package/dist/util/idAllocator.js +0 -1
- package/dist/util/idAllocator.js.map +1 -1
- package/dist/util/index.d.ts +2 -2
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +4 -2
- package/dist/util/index.js.map +1 -1
- package/dist/util/nestedMap.d.ts +5 -19
- package/dist/util/nestedMap.d.ts.map +1 -1
- package/dist/util/nestedMap.js +17 -17
- package/dist/util/nestedMap.js.map +1 -1
- package/dist/util/opaque.d.ts +0 -4
- package/dist/util/opaque.d.ts.map +1 -1
- package/dist/util/opaque.js +0 -2
- package/dist/util/opaque.js.map +1 -1
- package/dist/util/rangeMap.d.ts +0 -2
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +4 -3
- package/dist/util/rangeMap.js.map +1 -1
- package/dist/util/transactionResult.d.ts +0 -1
- package/dist/util/transactionResult.d.ts.map +1 -1
- package/dist/util/transactionResult.js +0 -1
- package/dist/util/transactionResult.js.map +1 -1
- package/dist/util/typeCheck.d.ts +2 -20
- package/dist/util/typeCheck.d.ts.map +1 -1
- package/dist/util/typeCheck.js.map +1 -1
- package/dist/util/typeCheckTests.d.ts +4 -4
- package/dist/util/typeCheckTests.d.ts.map +1 -1
- package/dist/util/typeCheckTests.js.map +1 -1
- package/dist/util/typeUtils.d.ts +0 -7
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/dist/util/utils.d.ts +6 -8
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +14 -5
- package/dist/util/utils.js.map +1 -1
- package/lib/beta.d.ts +3 -1
- package/lib/codec/discriminatedUnions.d.ts +11 -5
- package/lib/codec/discriminatedUnions.d.ts.map +1 -1
- package/lib/codec/discriminatedUnions.js.map +1 -1
- package/lib/codec/index.d.ts +1 -1
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/core/forest/editableForest.d.ts +1 -5
- package/lib/core/forest/editableForest.d.ts.map +1 -1
- package/lib/core/forest/editableForest.js +4 -2
- package/lib/core/forest/editableForest.js.map +1 -1
- package/lib/core/forest/forest.d.ts +0 -6
- package/lib/core/forest/forest.d.ts.map +1 -1
- package/lib/core/forest/forest.js +0 -2
- package/lib/core/forest/forest.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 +0 -4
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +1 -8
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +1 -7
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.d.ts +0 -1
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +13 -8
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/multiplicity.d.ts +0 -1
- package/lib/core/schema-stored/multiplicity.d.ts.map +1 -1
- package/lib/core/schema-stored/multiplicity.js +0 -1
- package/lib/core/schema-stored/multiplicity.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +0 -7
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +0 -4
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts +0 -3
- package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/lib/core/schema-view/view.d.ts +0 -3
- package/lib/core/schema-view/view.d.ts.map +1 -1
- package/lib/core/schema-view/view.js +0 -1
- package/lib/core/schema-view/view.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +1 -10
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +14 -4
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/cursor.d.ts +1 -6
- package/lib/core/tree/cursor.d.ts.map +1 -1
- package/lib/core/tree/cursor.js +0 -2
- package/lib/core/tree/cursor.js.map +1 -1
- package/lib/core/tree/delta.d.ts +0 -11
- package/lib/core/tree/delta.d.ts.map +1 -1
- package/lib/core/tree/delta.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +48 -11
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +145 -21
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.js +17 -7
- package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormat.d.ts +1 -1
- package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +38 -4
- package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/core/tree/index.d.ts +3 -2
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -0
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/mapTree.d.ts +20 -4
- package/lib/core/tree/mapTree.d.ts.map +1 -1
- package/lib/core/tree/mapTree.js +27 -1
- package/lib/core/tree/mapTree.js.map +1 -1
- package/lib/core/tree/pathTree.d.ts +0 -11
- package/lib/core/tree/pathTree.d.ts.map +1 -1
- package/lib/core/tree/pathTree.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/treeTextFormat.js +3 -2
- package/lib/core/tree/treeTextFormat.js.map +1 -1
- package/lib/core/tree/types.d.ts +0 -11
- package/lib/core/tree/types.d.ts.map +1 -1
- package/lib/core/tree/types.js +0 -4
- package/lib/core/tree/types.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts +3 -2
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js +33 -17
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/core/tree/visitPath.d.ts +0 -2
- package/lib/core/tree/visitPath.d.ts.map +1 -1
- package/lib/core/tree/visitPath.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts +3 -4
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js +4 -4
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/domains/index.d.ts +1 -1
- package/lib/domains/index.d.ts.map +1 -1
- package/lib/domains/index.js +1 -1
- package/lib/domains/index.js.map +1 -1
- package/lib/domains/json/index.d.ts +1 -1
- package/lib/domains/json/index.d.ts.map +1 -1
- package/lib/domains/json/index.js +1 -1
- package/lib/domains/json/index.js.map +1 -1
- package/lib/domains/json/jsonCursor.d.ts +36 -2
- package/lib/domains/json/jsonCursor.d.ts.map +1 -1
- package/lib/domains/json/jsonCursor.js +76 -5
- package/lib/domains/json/jsonCursor.js.map +1 -1
- package/lib/domains/json/jsonDomainSchema.d.ts +13 -3
- package/lib/domains/json/jsonDomainSchema.d.ts.map +1 -1
- package/lib/domains/json/jsonDomainSchema.js +9 -1
- package/lib/domains/json/jsonDomainSchema.js.map +1 -1
- package/lib/domains/leafDomain.d.ts +0 -1
- package/lib/domains/leafDomain.d.ts.map +1 -1
- package/lib/domains/leafDomain.js +0 -1
- package/lib/domains/leafDomain.js.map +1 -1
- package/lib/domains/schemaBuilder.d.ts +1 -7
- package/lib/domains/schemaBuilder.d.ts.map +1 -1
- package/lib/domains/schemaBuilder.js +1 -11
- package/lib/domains/schemaBuilder.js.map +1 -1
- package/lib/events/events.d.ts +0 -4
- package/lib/events/events.d.ts.map +1 -1
- package/lib/events/events.js +0 -1
- package/lib/events/events.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js +9 -4
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +4 -4
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +8 -6
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +2 -2
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.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 +9 -6
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +6 -4
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +12 -24
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +6 -16
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +0 -6
- 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/defaultSchema.d.ts +0 -1
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.js +0 -1
- package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js +1 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts +6 -0
- package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/schemaChecker.js +6 -0
- package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts +0 -67
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +7 -26
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/fieldGenerator.d.ts +0 -3
- package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -1
- package/lib/feature-libraries/fieldGenerator.js +0 -1
- package/lib/feature-libraries/fieldGenerator.js.map +1 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts +1 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-map-tree/index.js +1 -1
- package/lib/feature-libraries/flex-map-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +57 -56
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +169 -217
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +0 -1
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +18 -295
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +0 -6
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +3 -2
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js +2 -1
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +1 -2
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +9 -27
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +39 -120
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +2 -13
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +7 -72
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts +0 -2
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.d.ts +2 -1
- package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js +4 -0
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.js +3 -3
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +6 -8
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +6 -7
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts +6 -2
- package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.js +7 -0
- package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts +0 -4
- package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.js +0 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +0 -2
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js +0 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/lib/feature-libraries/modular-schema/discrepancies.d.ts +18 -0
- package/lib/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/discrepancies.js +106 -4
- package/lib/feature-libraries/modular-schema/discrepancies.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +0 -8
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js +0 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts +1 -3
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.js +1 -2
- package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +1 -2
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +56 -83
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +6 -9
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +3 -14
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js +4 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +43 -26
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +9 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +182 -222
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +8 -14
- 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-key/nodeKey.d.ts +0 -4
- package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKey.js +0 -2
- package/lib/feature-libraries/node-key/nodeKey.js.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +0 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts +3 -2
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +7 -15
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +6 -6
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +7 -7
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/schemaBuilderBase.d.ts +2 -28
- package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
- package/lib/feature-libraries/schemaBuilderBase.js +2 -28
- package/lib/feature-libraries/schemaBuilderBase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +25 -22
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV2.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV2.js +3 -3
- package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV3.d.ts +195 -0
- package/lib/feature-libraries/sequence-field/formatV3.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/formatV3.js +19 -0
- package/lib/feature-libraries/sequence-field/formatV3.js.map +1 -0
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts +11 -0
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/lib/feature-libraries/sequence-field/index.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/index.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +22 -14
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js +2 -2
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +25 -7
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +16 -3
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js +40 -6
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +55 -11
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +11 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +81 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +2 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +5 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/types.d.ts +23 -4
- package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/types.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts +5 -4
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +67 -41
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/storedToViewSchema.d.ts +0 -1
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
- package/lib/feature-libraries/storedToViewSchema.js +0 -1
- package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.d.ts +0 -6
- package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.js +9 -7
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/feature-libraries/treeTextCursor.d.ts +0 -2
- package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/lib/feature-libraries/treeTextCursor.js +0 -2
- package/lib/feature-libraries/treeTextCursor.js.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts +0 -3
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/index.js +1 -1
- package/lib/feature-libraries/typed-schema/index.js.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +1 -5
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +2 -41
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +1 -38
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/feature-libraries/typed-schema/view.d.ts +0 -1
- package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/view.js.map +1 -1
- package/lib/index.d.ts +8 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -9
- package/lib/index.js.map +1 -1
- package/lib/internalTypes.d.ts +1 -1
- package/lib/internalTypes.d.ts.map +1 -1
- package/lib/internalTypes.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +3 -1
- package/lib/shared-tree/schematizeTree.d.ts +2 -11
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +15 -4
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +4 -4
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +3 -3
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +9 -18
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +14 -11
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +4 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +3 -3
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +0 -2
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeApi.js +4 -4
- package/lib/shared-tree/treeApi.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +10 -6
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +52 -7
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree/treeView.d.ts +3 -6
- package/lib/shared-tree/treeView.d.ts.map +1 -1
- package/lib/shared-tree/treeView.js +4 -0
- package/lib/shared-tree/treeView.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +6 -0
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +14 -7
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +4 -4
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +1 -0
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.d.ts +2 -2
- package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.js +6 -1
- package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +1 -0
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +4 -0
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +10 -2
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +54 -0
- package/lib/simple-tree/api/create.d.ts.map +1 -0
- package/lib/simple-tree/api/create.js +92 -0
- package/lib/simple-tree/api/create.js.map +1 -0
- package/lib/simple-tree/api/index.d.ts +12 -0
- package/lib/simple-tree/api/index.d.ts.map +1 -0
- package/lib/simple-tree/api/index.js +13 -0
- package/lib/simple-tree/api/index.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/api}/schemaCreationUtilities.d.ts +7 -4
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -0
- package/lib/simple-tree/{schemaCreationUtilities.js → api/schemaCreationUtilities.js} +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -0
- package/lib/simple-tree/{schemaFactory.d.ts → api/schemaFactory.d.ts} +15 -14
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -0
- package/lib/simple-tree/{schemaFactory.js → api/schemaFactory.js} +9 -8
- package/lib/simple-tree/api/schemaFactory.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/api}/schemaFactoryRecursive.d.ts +40 -7
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -0
- package/lib/simple-tree/{schemaFactoryRecursive.js → api/schemaFactoryRecursive.js} +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -0
- package/lib/simple-tree/api/testRecursiveDomain.d.ts +62 -0
- package/lib/simple-tree/api/testRecursiveDomain.d.ts.map +1 -0
- package/lib/simple-tree/api/testRecursiveDomain.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/api}/tree.d.ts +111 -20
- package/lib/simple-tree/api/tree.d.ts.map +1 -0
- package/lib/simple-tree/api/tree.js +165 -0
- package/lib/simple-tree/api/tree.js.map +1 -0
- package/lib/simple-tree/api/treeNodeApi.d.ts +87 -0
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -0
- package/lib/simple-tree/{treeNodeApi.js → api/treeNodeApi.js} +32 -32
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -0
- package/lib/simple-tree/api/verboseTree.d.ts +136 -0
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -0
- package/lib/simple-tree/api/verboseTree.js +213 -0
- package/lib/simple-tree/api/verboseTree.js.map +1 -0
- package/lib/simple-tree/arrayNode.d.ts +3 -3
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +57 -54
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +10 -0
- package/lib/simple-tree/core/index.d.ts.map +1 -0
- package/lib/simple-tree/core/index.js +10 -0
- package/lib/simple-tree/core/index.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/core}/schemaCaching.d.ts +2 -9
- package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -0
- package/lib/simple-tree/{schemaCaching.js → core/schemaCaching.js} +1 -21
- package/lib/simple-tree/core/schemaCaching.js.map +1 -0
- package/lib/simple-tree/core/treeNodeKernel.d.ts +57 -0
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -0
- package/lib/simple-tree/core/treeNodeKernel.js +121 -0
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -0
- package/lib/simple-tree/core/treeNodeSchema.d.ts +149 -0
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -0
- package/lib/simple-tree/core/treeNodeSchema.js +32 -0
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -0
- package/lib/simple-tree/core/types.d.ts +178 -0
- package/lib/simple-tree/core/types.d.ts.map +1 -0
- package/lib/simple-tree/core/types.js +111 -0
- package/lib/simple-tree/core/types.js.map +1 -0
- package/lib/simple-tree/core/withType.d.ts +82 -0
- package/lib/simple-tree/core/withType.d.ts.map +1 -0
- package/lib/simple-tree/core/withType.js +36 -0
- package/lib/simple-tree/core/withType.js.map +1 -0
- package/lib/simple-tree/getJsonSchema.d.ts +55 -0
- package/lib/simple-tree/getJsonSchema.d.ts.map +1 -0
- package/lib/simple-tree/getJsonSchema.js +65 -0
- package/lib/simple-tree/getJsonSchema.js.map +1 -0
- package/lib/simple-tree/getSimpleFieldSchema.d.ts +14 -0
- package/lib/simple-tree/getSimpleFieldSchema.d.ts.map +1 -0
- package/lib/simple-tree/getSimpleFieldSchema.js +25 -0
- package/lib/simple-tree/getSimpleFieldSchema.js.map +1 -0
- package/lib/simple-tree/getSimpleSchema.d.ts +58 -0
- package/lib/simple-tree/getSimpleSchema.d.ts.map +1 -0
- package/lib/simple-tree/getSimpleSchema.js +64 -0
- package/lib/simple-tree/getSimpleSchema.js.map +1 -0
- package/lib/simple-tree/index.d.ts +12 -13
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +8 -11
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/jsonSchema.d.ts +206 -0
- package/lib/simple-tree/jsonSchema.d.ts.map +1 -0
- package/lib/simple-tree/{nodeKeys.js → jsonSchema.js} +1 -1
- package/lib/simple-tree/jsonSchema.js.map +1 -0
- package/lib/simple-tree/leafNodeSchema.d.ts +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +1 -2
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +9 -3
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +36 -36
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +18 -16
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +36 -34
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/objectNodeTypes.d.ts +38 -0
- package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -0
- package/lib/simple-tree/objectNodeTypes.js +15 -0
- package/lib/simple-tree/objectNodeTypes.js.map +1 -0
- package/lib/simple-tree/proxies.d.ts +6 -25
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +50 -75
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/proxyBinding.d.ts +46 -19
- package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
- package/lib/simple-tree/proxyBinding.js +95 -39
- package/lib/simple-tree/proxyBinding.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +10 -159
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +9 -41
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts +124 -0
- package/lib/simple-tree/simpleSchema.d.ts.map +1 -0
- package/lib/{feature-libraries/schema-aware/schemaAware.js → simple-tree/simpleSchema.js} +1 -1
- package/lib/simple-tree/simpleSchema.js.map +1 -0
- package/lib/simple-tree/simpleSchemaToJsonSchema.d.ts +12 -0
- package/lib/simple-tree/simpleSchemaToJsonSchema.d.ts.map +1 -0
- package/lib/simple-tree/simpleSchemaToJsonSchema.js +142 -0
- package/lib/simple-tree/simpleSchemaToJsonSchema.js.map +1 -0
- package/lib/simple-tree/toFlexSchema.d.ts +4 -12
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +9 -18
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts +39 -39
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +214 -158
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/{types.d.ts → treeNodeValid.d.ts} +2 -80
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -0
- package/lib/simple-tree/{types.js → treeNodeValid.js} +94 -96
- package/lib/simple-tree/treeNodeValid.js.map +1 -0
- package/lib/simple-tree/typesUnsafe.d.ts +35 -4
- package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/viewSchemaToSimpleSchema.d.ts +11 -0
- package/lib/simple-tree/viewSchemaToSimpleSchema.d.ts.map +1 -0
- package/lib/simple-tree/viewSchemaToSimpleSchema.js +167 -0
- package/lib/simple-tree/viewSchemaToSimpleSchema.js.map +1 -0
- package/lib/util/brand.d.ts +0 -3
- package/lib/util/brand.d.ts.map +1 -1
- package/lib/util/brand.js +1 -2
- package/lib/util/brand.js.map +1 -1
- package/lib/util/brandedMap.d.ts +0 -5
- package/lib/util/brandedMap.d.ts.map +1 -1
- package/lib/util/brandedMap.js +0 -1
- package/lib/util/brandedMap.js.map +1 -1
- package/lib/util/breakable.js +1 -1
- package/lib/util/breakable.js.map +1 -1
- package/lib/util/idAllocator.d.ts +0 -2
- package/lib/util/idAllocator.d.ts.map +1 -1
- package/lib/util/idAllocator.js +0 -1
- package/lib/util/idAllocator.js.map +1 -1
- package/lib/util/index.d.ts +2 -2
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +2 -2
- package/lib/util/index.js.map +1 -1
- package/lib/util/nestedMap.d.ts +5 -19
- package/lib/util/nestedMap.d.ts.map +1 -1
- package/lib/util/nestedMap.js +15 -16
- package/lib/util/nestedMap.js.map +1 -1
- package/lib/util/opaque.d.ts +0 -4
- package/lib/util/opaque.d.ts.map +1 -1
- package/lib/util/opaque.js +0 -2
- package/lib/util/opaque.js.map +1 -1
- package/lib/util/rangeMap.d.ts +0 -2
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +4 -3
- package/lib/util/rangeMap.js.map +1 -1
- package/lib/util/transactionResult.d.ts +0 -1
- package/lib/util/transactionResult.d.ts.map +1 -1
- package/lib/util/transactionResult.js +0 -1
- package/lib/util/transactionResult.js.map +1 -1
- package/lib/util/typeCheck.d.ts +2 -20
- package/lib/util/typeCheck.d.ts.map +1 -1
- package/lib/util/typeCheck.js.map +1 -1
- package/lib/util/typeCheckTests.d.ts +4 -4
- package/lib/util/typeCheckTests.d.ts.map +1 -1
- package/lib/util/typeCheckTests.js.map +1 -1
- package/lib/util/typeUtils.d.ts +0 -7
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/lib/util/utils.d.ts +6 -8
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +12 -4
- package/lib/util/utils.js.map +1 -1
- package/package.json +36 -25
- package/src/codec/discriminatedUnions.ts +20 -10
- package/src/codec/index.ts +5 -1
- package/src/core/forest/README.md +4 -2
- package/src/core/forest/editableForest.ts +10 -7
- package/src/core/forest/forest.ts +0 -6
- package/src/core/index.ts +2 -2
- package/src/core/rebase/changeRebaser.ts +0 -4
- package/src/core/rebase/index.ts +0 -2
- package/src/core/rebase/types.ts +1 -23
- package/src/core/rebase/utils.ts +13 -11
- package/src/core/schema-stored/multiplicity.ts +0 -1
- package/src/core/schema-stored/schema.ts +0 -7
- package/src/core/schema-stored/storedSchemaRepository.ts +0 -3
- package/src/core/schema-view/view.ts +0 -3
- package/src/core/tree/anchorSet.ts +21 -17
- package/src/core/tree/cursor.ts +1 -6
- package/src/core/tree/delta.ts +0 -11
- package/src/core/tree/detachedFieldIndex.ts +217 -35
- package/src/core/tree/detachedFieldIndexCodec.ts +21 -11
- package/src/core/tree/detachedFieldIndexFormat.ts +1 -1
- package/src/core/tree/detachedFieldIndexTypes.ts +40 -5
- package/src/core/tree/index.ts +3 -2
- package/src/core/tree/mapTree.ts +45 -4
- package/src/core/tree/pathTree.ts +0 -11
- package/src/core/tree/treeTextFormat.ts +3 -2
- package/src/core/tree/types.ts +0 -11
- package/src/core/tree/visitDelta.ts +59 -19
- package/src/core/tree/visitPath.ts +0 -2
- package/src/core/tree/visitorUtils.ts +7 -5
- package/src/domains/index.ts +3 -0
- package/src/domains/json/index.ts +7 -1
- package/src/domains/json/jsonCursor.ts +113 -6
- package/src/domains/json/jsonDomainSchema.ts +4 -5
- package/src/domains/leafDomain.ts +0 -1
- package/src/domains/schemaBuilder.ts +0 -22
- package/src/events/events.ts +0 -4
- package/src/feature-libraries/chunked-forest/README.md +9 -1
- package/src/feature-libraries/chunked-forest/basicChunk.ts +14 -9
- package/src/feature-libraries/chunked-forest/chunk.ts +1 -1
- package/src/feature-libraries/chunked-forest/chunkTree.ts +4 -4
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +8 -6
- package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +2 -2
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +9 -6
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +6 -4
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +18 -46
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +11 -6
- package/src/feature-libraries/default-schema/defaultSchema.ts +0 -1
- package/src/feature-libraries/default-schema/index.ts +1 -1
- package/src/feature-libraries/default-schema/schemaChecker.ts +6 -0
- package/src/feature-libraries/editableTreeBinder.ts +7 -79
- package/src/feature-libraries/fieldGenerator.ts +0 -3
- package/src/feature-libraries/flex-map-tree/index.ts +2 -1
- package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +235 -328
- package/src/feature-libraries/flex-tree/context.ts +0 -1
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +27 -376
- package/src/feature-libraries/flex-tree/index.ts +7 -2
- package/src/feature-libraries/flex-tree/lazyEntity.ts +0 -3
- package/src/feature-libraries/flex-tree/lazyField.ts +52 -234
- package/src/feature-libraries/flex-tree/lazyNode.ts +6 -108
- package/src/feature-libraries/flex-tree/treeEvents.ts +0 -2
- package/src/feature-libraries/flex-tree/utilities.ts +6 -1
- package/src/feature-libraries/forest-summary/codec.ts +3 -3
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +1 -0
- package/src/feature-libraries/index.ts +8 -35
- package/src/feature-libraries/mapTreeCursor.ts +13 -4
- package/src/feature-libraries/memoizedIdRangeAllocator.ts +0 -4
- package/src/feature-libraries/modular-schema/crossFieldQueries.ts +0 -2
- package/src/feature-libraries/modular-schema/discrepancies.ts +120 -4
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +0 -8
- package/src/feature-libraries/modular-schema/fieldKind.ts +1 -3
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +69 -92
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +7 -14
- package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +6 -15
- package/src/feature-libraries/modular-schema/index.ts +2 -2
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +69 -35
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +350 -354
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +7 -14
- package/src/feature-libraries/node-key/nodeKey.ts +0 -4
- package/src/feature-libraries/node-key/nodeKeyManager.ts +0 -1
- package/src/feature-libraries/object-forest/objectForest.ts +8 -16
- package/src/feature-libraries/schemaBuilderBase.ts +1 -49
- package/src/feature-libraries/sequence-field/compose.ts +41 -20
- package/src/feature-libraries/sequence-field/formatV2.ts +3 -3
- package/src/feature-libraries/sequence-field/formatV3.ts +65 -0
- package/src/feature-libraries/sequence-field/helperTypes.ts +33 -0
- package/src/feature-libraries/sequence-field/index.ts +1 -0
- package/src/feature-libraries/sequence-field/invert.ts +28 -18
- package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +2 -2
- package/src/feature-libraries/sequence-field/rebase.ts +30 -13
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +27 -3
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +52 -7
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +92 -19
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +134 -0
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +2 -0
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +8 -2
- package/src/feature-libraries/sequence-field/types.ts +24 -4
- package/src/feature-libraries/sequence-field/utils.ts +78 -50
- package/src/feature-libraries/storedToViewSchema.ts +0 -1
- package/src/feature-libraries/treeCursorUtils.ts +11 -11
- package/src/feature-libraries/treeTextCursor.ts +0 -2
- package/src/feature-libraries/typed-schema/flexList.ts +0 -3
- package/src/feature-libraries/typed-schema/index.ts +0 -2
- package/src/feature-libraries/typed-schema/schemaCollection.ts +0 -5
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +2 -68
- package/src/feature-libraries/typed-schema/view.ts +0 -1
- package/src/index.ts +27 -245
- package/src/internalTypes.ts +1 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/schematizeTree.ts +25 -21
- package/src/shared-tree/schematizingTreeView.ts +6 -6
- package/src/shared-tree/sharedTree.ts +16 -40
- package/src/shared-tree/sharedTreeChangeCodecs.ts +8 -0
- package/src/shared-tree/sharedTreeChangeEnricher.ts +1 -1
- package/src/shared-tree/sharedTreeChangeFamily.ts +3 -3
- package/src/shared-tree/sharedTreeEditBuilder.ts +0 -2
- package/src/shared-tree/treeApi.ts +4 -4
- package/src/shared-tree/treeCheckout.ts +61 -12
- package/src/shared-tree/treeView.ts +8 -6
- package/src/shared-tree-core/branch.ts +29 -8
- package/src/shared-tree-core/defaultResubmitMachine.ts +4 -4
- package/src/shared-tree-core/editManagerCodecs.ts +1 -0
- package/src/shared-tree-core/editManagerFormat.ts +7 -2
- package/src/shared-tree-core/messageCodecs.ts +2 -1
- package/src/shared-tree-core/sharedTreeCore.ts +12 -3
- package/src/simple-tree/ProxyBinding.md +2 -0
- package/src/simple-tree/api/README.md +7 -0
- package/src/simple-tree/api/create.ts +179 -0
- package/src/simple-tree/api/index.ts +36 -0
- package/src/simple-tree/{schemaCreationUtilities.ts → api/schemaCreationUtilities.ts} +13 -5
- package/src/simple-tree/{schemaFactory.ts → api/schemaFactory.ts} +36 -34
- package/src/simple-tree/{schemaFactoryRecursive.ts → api/schemaFactoryRecursive.ts} +47 -10
- package/src/simple-tree/{testRecursiveDomain.ts → api/testRecursiveDomain.ts} +3 -1
- package/src/simple-tree/{tree.ts → api/tree.ts} +250 -35
- package/src/simple-tree/{treeNodeApi.ts → api/treeNodeApi.ts} +57 -128
- package/src/simple-tree/api/verboseTree.ts +415 -0
- package/src/simple-tree/arrayNode.ts +101 -99
- package/src/simple-tree/core/README.md +11 -0
- package/src/simple-tree/core/index.ts +33 -0
- package/src/simple-tree/{schemaCaching.ts → core/schemaCaching.ts} +3 -37
- package/src/simple-tree/core/treeNodeKernel.ts +141 -0
- package/src/simple-tree/core/treeNodeSchema.ts +184 -0
- package/src/simple-tree/core/types.ts +255 -0
- package/src/simple-tree/core/withType.ts +89 -0
- package/src/simple-tree/getJsonSchema.ts +70 -0
- package/src/simple-tree/getSimpleFieldSchema.ts +36 -0
- package/src/simple-tree/getSimpleSchema.ts +69 -0
- package/src/simple-tree/index.ts +58 -33
- package/src/simple-tree/jsonSchema.ts +230 -0
- package/src/simple-tree/leafNodeSchema.ts +6 -3
- package/src/simple-tree/mapNode.ts +56 -55
- package/src/simple-tree/objectNode.ts +66 -90
- package/src/simple-tree/objectNodeTypes.ts +68 -0
- package/src/simple-tree/proxies.ts +56 -93
- package/src/simple-tree/proxyBinding.ts +134 -56
- package/src/simple-tree/schemaTypes.ts +29 -194
- package/src/simple-tree/simpleSchema.ts +138 -0
- package/src/simple-tree/simpleSchemaToJsonSchema.ts +178 -0
- package/src/simple-tree/toFlexSchema.ts +9 -42
- package/src/simple-tree/toMapTree.ts +270 -296
- package/src/simple-tree/{types.ts → treeNodeValid.ts} +166 -151
- package/src/simple-tree/typesUnsafe.ts +51 -5
- package/src/simple-tree/viewSchemaToSimpleSchema.ts +209 -0
- package/src/util/brand.ts +1 -4
- package/src/util/brandedMap.ts +0 -5
- package/src/util/breakable.ts +1 -1
- package/src/util/idAllocator.ts +0 -2
- package/src/util/index.ts +3 -0
- package/src/util/nestedMap.ts +23 -20
- package/src/util/opaque.ts +0 -4
- package/src/util/rangeMap.ts +5 -5
- package/src/util/transactionResult.ts +0 -1
- package/src/util/typeCheck.ts +2 -20
- package/src/util/typeCheckTests.ts +4 -4
- package/src/util/typeUtils.ts +0 -7
- package/src/util/utils.ts +13 -8
- package/tsconfig.json +0 -1
- package/dist/feature-libraries/contextuallyTyped.d.ts +0 -209
- package/dist/feature-libraries/contextuallyTyped.d.ts.map +0 -1
- package/dist/feature-libraries/contextuallyTyped.js +0 -328
- package/dist/feature-libraries/contextuallyTyped.js.map +0 -1
- package/dist/feature-libraries/schema-aware/index.d.ts +0 -6
- package/dist/feature-libraries/schema-aware/index.d.ts.map +0 -1
- package/dist/feature-libraries/schema-aware/index.js.map +0 -1
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts +0 -76
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +0 -1
- package/dist/feature-libraries/schema-aware/schemaAware.js.map +0 -1
- package/dist/simple-tree/nodeKeys.d.ts +0 -41
- package/dist/simple-tree/nodeKeys.d.ts.map +0 -1
- package/dist/simple-tree/nodeKeys.js +0 -7
- package/dist/simple-tree/nodeKeys.js.map +0 -1
- package/dist/simple-tree/schemaCaching.d.ts.map +0 -1
- package/dist/simple-tree/schemaCaching.js.map +0 -1
- package/dist/simple-tree/schemaCreationUtilities.d.ts.map +0 -1
- package/dist/simple-tree/schemaCreationUtilities.js.map +0 -1
- package/dist/simple-tree/schemaFactory.d.ts.map +0 -1
- package/dist/simple-tree/schemaFactory.js.map +0 -1
- package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +0 -1
- package/dist/simple-tree/schemaFactoryRecursive.js.map +0 -1
- package/dist/simple-tree/testRecursiveDomain.d.ts +0 -61
- package/dist/simple-tree/testRecursiveDomain.d.ts.map +0 -1
- package/dist/simple-tree/testRecursiveDomain.js.map +0 -1
- package/dist/simple-tree/tree.d.ts.map +0 -1
- package/dist/simple-tree/tree.js +0 -73
- package/dist/simple-tree/tree.js.map +0 -1
- package/dist/simple-tree/treeNodeApi.d.ts +0 -159
- package/dist/simple-tree/treeNodeApi.d.ts.map +0 -1
- package/dist/simple-tree/treeNodeApi.js.map +0 -1
- package/dist/simple-tree/types.d.ts.map +0 -1
- package/dist/simple-tree/types.js.map +0 -1
- package/lib/feature-libraries/contextuallyTyped.d.ts +0 -209
- package/lib/feature-libraries/contextuallyTyped.d.ts.map +0 -1
- package/lib/feature-libraries/contextuallyTyped.js +0 -311
- package/lib/feature-libraries/contextuallyTyped.js.map +0 -1
- package/lib/feature-libraries/schema-aware/index.d.ts +0 -6
- package/lib/feature-libraries/schema-aware/index.d.ts.map +0 -1
- package/lib/feature-libraries/schema-aware/index.js +0 -6
- package/lib/feature-libraries/schema-aware/index.js.map +0 -1
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts +0 -76
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +0 -1
- package/lib/feature-libraries/schema-aware/schemaAware.js.map +0 -1
- package/lib/simple-tree/nodeKeys.d.ts +0 -41
- package/lib/simple-tree/nodeKeys.d.ts.map +0 -1
- package/lib/simple-tree/nodeKeys.js.map +0 -1
- package/lib/simple-tree/schemaCaching.d.ts.map +0 -1
- package/lib/simple-tree/schemaCaching.js.map +0 -1
- package/lib/simple-tree/schemaCreationUtilities.d.ts.map +0 -1
- package/lib/simple-tree/schemaCreationUtilities.js.map +0 -1
- package/lib/simple-tree/schemaFactory.d.ts.map +0 -1
- package/lib/simple-tree/schemaFactory.js.map +0 -1
- package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +0 -1
- package/lib/simple-tree/schemaFactoryRecursive.js.map +0 -1
- package/lib/simple-tree/testRecursiveDomain.d.ts +0 -61
- package/lib/simple-tree/testRecursiveDomain.d.ts.map +0 -1
- package/lib/simple-tree/testRecursiveDomain.js.map +0 -1
- package/lib/simple-tree/tree.d.ts.map +0 -1
- package/lib/simple-tree/tree.js +0 -66
- package/lib/simple-tree/tree.js.map +0 -1
- package/lib/simple-tree/treeNodeApi.d.ts +0 -159
- package/lib/simple-tree/treeNodeApi.d.ts.map +0 -1
- package/lib/simple-tree/treeNodeApi.js.map +0 -1
- package/lib/simple-tree/types.d.ts.map +0 -1
- package/lib/simple-tree/types.js.map +0 -1
- package/src/feature-libraries/contextuallyTyped.ts +0 -582
- package/src/feature-libraries/schema-aware/README.md +0 -19
- package/src/feature-libraries/schema-aware/index.ts +0 -16
- package/src/feature-libraries/schema-aware/schemaAware.ts +0 -135
- package/src/simple-tree/nodeKeys.ts +0 -42
- /package/dist/simple-tree/{testRecursiveDomain.js → api/testRecursiveDomain.js} +0 -0
- /package/lib/simple-tree/{testRecursiveDomain.js → api/testRecursiveDomain.js} +0 -0
|
@@ -8,7 +8,6 @@ import { BTree } from "@tylerbu/sorted-btree-es6";
|
|
|
8
8
|
|
|
9
9
|
import type { ICodecFamily } from "../../codec/index.js";
|
|
10
10
|
import {
|
|
11
|
-
type ChangeAtomIdMap,
|
|
12
11
|
type ChangeEncodingContext,
|
|
13
12
|
type ChangeFamily,
|
|
14
13
|
type ChangeFamilyEditor,
|
|
@@ -37,9 +36,7 @@ import {
|
|
|
37
36
|
mapCursorField,
|
|
38
37
|
replaceAtomRevisions,
|
|
39
38
|
revisionMetadataSourceFromInfo,
|
|
40
|
-
setInChangeAtomIdMap,
|
|
41
39
|
areEqualChangeAtomIds,
|
|
42
|
-
getFromChangeAtomIdMap,
|
|
43
40
|
type ChangeAtomId,
|
|
44
41
|
} from "../../core/index.js";
|
|
45
42
|
import {
|
|
@@ -47,19 +44,11 @@ import {
|
|
|
47
44
|
type IdAllocator,
|
|
48
45
|
type Mutable,
|
|
49
46
|
brand,
|
|
50
|
-
deleteFromNestedMap,
|
|
51
47
|
fail,
|
|
52
|
-
forEachInNestedMap,
|
|
53
|
-
getOrAddInMap,
|
|
54
48
|
idAllocatorFromMaxId,
|
|
55
49
|
idAllocatorFromState,
|
|
56
|
-
nestedMapFromFlatList,
|
|
57
|
-
nestedMapToFlatList,
|
|
58
|
-
populateNestedMap,
|
|
59
|
-
setInNestedMap,
|
|
60
|
-
tryGetFromNestedMap,
|
|
61
|
-
type NestedMap,
|
|
62
50
|
type RangeQueryResult,
|
|
51
|
+
getOrAddInMapLazy,
|
|
63
52
|
} from "../../util/index.js";
|
|
64
53
|
import {
|
|
65
54
|
type TreeChunk,
|
|
@@ -86,6 +75,7 @@ import { type FieldKindWithEditor, withEditor } from "./fieldKindWithEditor.js";
|
|
|
86
75
|
import { convertGenericChange, genericFieldKind } from "./genericFieldKind.js";
|
|
87
76
|
import type { GenericChangeset } from "./genericFieldKindTypes.js";
|
|
88
77
|
import type {
|
|
78
|
+
ChangeAtomIdBTree,
|
|
89
79
|
CrossFieldKeyRange,
|
|
90
80
|
CrossFieldKeyTable,
|
|
91
81
|
FieldChange,
|
|
@@ -211,35 +201,31 @@ export class ModularChangeFamily
|
|
|
211
201
|
const { revInfos, maxId } = getRevInfoFromTaggedChanges(changes);
|
|
212
202
|
const idState: IdAllocationState = { maxId };
|
|
213
203
|
|
|
214
|
-
|
|
215
|
-
(
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
nodeAliases: new Map(),
|
|
222
|
-
crossFieldKeys: newCrossFieldKeyTable(),
|
|
223
|
-
}),
|
|
224
|
-
).change;
|
|
204
|
+
if (changes.length === 0) {
|
|
205
|
+
return makeModularChangeset();
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return changes
|
|
209
|
+
.map((change) => change.change)
|
|
210
|
+
.reduce((change1, change2) => this.composePair(change1, change2, revInfos, idState));
|
|
225
211
|
}
|
|
226
212
|
|
|
227
213
|
private composePair(
|
|
228
|
-
change1:
|
|
229
|
-
change2:
|
|
214
|
+
change1: ModularChangeset,
|
|
215
|
+
change2: ModularChangeset,
|
|
230
216
|
revInfos: RevisionInfo[],
|
|
231
217
|
idState: IdAllocationState,
|
|
232
218
|
): ModularChangeset {
|
|
233
219
|
const { fieldChanges, nodeChanges, nodeToParent, nodeAliases, crossFieldKeys } =
|
|
234
|
-
this.composeAllFields(change1
|
|
220
|
+
this.composeAllFields(change1, change2, revInfos, idState);
|
|
235
221
|
|
|
236
|
-
const { allBuilds, allDestroys, allRefreshers } = composeBuildsDestroysAndRefreshers(
|
|
222
|
+
const { allBuilds, allDestroys, allRefreshers } = composeBuildsDestroysAndRefreshers(
|
|
237
223
|
change1,
|
|
238
224
|
change2,
|
|
239
|
-
|
|
225
|
+
);
|
|
240
226
|
|
|
241
227
|
return makeModularChangeset(
|
|
242
|
-
|
|
228
|
+
fieldChanges,
|
|
243
229
|
nodeChanges,
|
|
244
230
|
nodeToParent,
|
|
245
231
|
nodeAliases,
|
|
@@ -262,10 +248,10 @@ export class ModularChangeFamily
|
|
|
262
248
|
if (hasConflicts(change1) && hasConflicts(change2)) {
|
|
263
249
|
return {
|
|
264
250
|
fieldChanges: new Map(),
|
|
265
|
-
nodeChanges:
|
|
266
|
-
nodeToParent:
|
|
267
|
-
nodeAliases:
|
|
268
|
-
crossFieldKeys:
|
|
251
|
+
nodeChanges: newTupleBTree(),
|
|
252
|
+
nodeToParent: newTupleBTree(),
|
|
253
|
+
nodeAliases: newTupleBTree(),
|
|
254
|
+
crossFieldKeys: newTupleBTree(),
|
|
269
255
|
};
|
|
270
256
|
} else if (hasConflicts(change1)) {
|
|
271
257
|
return change2;
|
|
@@ -280,21 +266,21 @@ export class ModularChangeFamily
|
|
|
280
266
|
|
|
281
267
|
// We merge nodeChanges, nodeToParent, and nodeAliases from the two changesets.
|
|
282
268
|
// The merged tables will have correct entries for all nodes which are only referenced in one of the input changesets.
|
|
283
|
-
// During composeFieldMaps and
|
|
269
|
+
// During composeFieldMaps and composeInvalidatedElements we will find all nodes referenced in both input changesets
|
|
284
270
|
// and adjust these tables as necessary.
|
|
285
271
|
// Note that when merging these tables we may encounter key collisions and will arbitrarily drop values in that case.
|
|
286
272
|
// A collision for a node ID means that that node is referenced in both changesets
|
|
287
273
|
// (since we assume that if two changesets use the same node ID they are referring to the same node),
|
|
288
274
|
// therefore all collisions will be addressed when processing the intersection of the changesets.
|
|
289
|
-
const composedNodeChanges:
|
|
290
|
-
change1.nodeChanges,
|
|
291
|
-
change2.nodeChanges,
|
|
275
|
+
const composedNodeChanges: ChangeAtomIdBTree<NodeChangeset> = brand(
|
|
276
|
+
mergeBTrees(change1.nodeChanges, change2.nodeChanges),
|
|
292
277
|
);
|
|
293
278
|
|
|
294
|
-
const composedNodeToParent =
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
279
|
+
const composedNodeToParent: ChangeAtomIdBTree<FieldId> = brand(
|
|
280
|
+
mergeBTrees(change1.nodeToParent, change2.nodeToParent),
|
|
281
|
+
);
|
|
282
|
+
const composedNodeAliases: ChangeAtomIdBTree<NodeId> = brand(
|
|
283
|
+
mergeBTrees(change1.nodeAliases, change2.nodeAliases),
|
|
298
284
|
);
|
|
299
285
|
|
|
300
286
|
const composedFields = this.composeFieldMaps(
|
|
@@ -305,7 +291,7 @@ export class ModularChangeFamily
|
|
|
305
291
|
revisionMetadata,
|
|
306
292
|
);
|
|
307
293
|
|
|
308
|
-
this.
|
|
294
|
+
this.composeInvalidatedElements(
|
|
309
295
|
crossFieldTable,
|
|
310
296
|
composedFields,
|
|
311
297
|
composedNodeChanges,
|
|
@@ -371,12 +357,12 @@ export class ModularChangeFamily
|
|
|
371
357
|
*
|
|
372
358
|
* Updating an element may invalidate further elements. This function runs until there is no more invalidation.
|
|
373
359
|
*/
|
|
374
|
-
private
|
|
360
|
+
private composeInvalidatedElements(
|
|
375
361
|
table: ComposeTable,
|
|
376
362
|
composedFields: FieldChangeMap,
|
|
377
|
-
composedNodes:
|
|
378
|
-
composedNodeToParent:
|
|
379
|
-
nodeAliases:
|
|
363
|
+
composedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
364
|
+
composedNodeToParent: ChangeAtomIdBTree<FieldId>,
|
|
365
|
+
nodeAliases: ChangeAtomIdBTree<NodeId>,
|
|
380
366
|
genId: IdAllocator,
|
|
381
367
|
metadata: RevisionMetadataSource,
|
|
382
368
|
): void {
|
|
@@ -460,7 +446,7 @@ export class ModularChangeFamily
|
|
|
460
446
|
areBaseFields: boolean,
|
|
461
447
|
affectedFields: BTree<FieldIdKey, true>,
|
|
462
448
|
composedFields: FieldChangeMap,
|
|
463
|
-
composedNodes:
|
|
449
|
+
composedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
464
450
|
genId: IdAllocator,
|
|
465
451
|
metadata: RevisionMetadataSource,
|
|
466
452
|
): void {
|
|
@@ -604,11 +590,11 @@ export class ModularChangeFamily
|
|
|
604
590
|
}
|
|
605
591
|
|
|
606
592
|
private composeNodesById(
|
|
607
|
-
nodeChanges1:
|
|
608
|
-
nodeChanges2:
|
|
609
|
-
composedNodes:
|
|
610
|
-
composedNodeToParent:
|
|
611
|
-
nodeAliases:
|
|
593
|
+
nodeChanges1: ChangeAtomIdBTree<NodeChangeset>,
|
|
594
|
+
nodeChanges2: ChangeAtomIdBTree<NodeChangeset>,
|
|
595
|
+
composedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
596
|
+
composedNodeToParent: ChangeAtomIdBTree<FieldId>,
|
|
597
|
+
nodeAliases: ChangeAtomIdBTree<NodeId>,
|
|
612
598
|
id1: NodeId,
|
|
613
599
|
id2: NodeId,
|
|
614
600
|
idAllocator: IdAllocator,
|
|
@@ -628,12 +614,12 @@ export class ModularChangeFamily
|
|
|
628
614
|
setInChangeAtomIdMap(composedNodes, id1, composedNodeChangeset);
|
|
629
615
|
|
|
630
616
|
if (!areEqualChangeAtomIds(id1, id2)) {
|
|
631
|
-
|
|
632
|
-
|
|
617
|
+
composedNodes.delete([id2.revision, id2.localId]);
|
|
618
|
+
composedNodeToParent.delete([id2.revision, id2.localId]);
|
|
633
619
|
setInChangeAtomIdMap(nodeAliases, id2, id1);
|
|
634
620
|
|
|
635
621
|
// We need to delete id1 to avoid forming a cycle in case id1 already had an alias.
|
|
636
|
-
|
|
622
|
+
nodeAliases.delete([id1.revision, id1.localId]);
|
|
637
623
|
}
|
|
638
624
|
|
|
639
625
|
crossFieldTable.composedNodes.add(composedNodeChangeset);
|
|
@@ -679,9 +665,7 @@ export class ModularChangeFamily
|
|
|
679
665
|
isRollback: boolean,
|
|
680
666
|
): ModularChangeset {
|
|
681
667
|
// Rollback changesets destroy the nodes created by the change being rolled back.
|
|
682
|
-
const destroys = isRollback
|
|
683
|
-
? invertBuilds(change.change.builds, change.revision)
|
|
684
|
-
: undefined;
|
|
668
|
+
const destroys = isRollback ? invertBuilds(change.change.builds) : undefined;
|
|
685
669
|
|
|
686
670
|
// Destroys only occur in rollback changesets, which are never inverted.
|
|
687
671
|
assert(
|
|
@@ -705,12 +689,11 @@ export class ModularChangeFamily
|
|
|
705
689
|
}
|
|
706
690
|
|
|
707
691
|
const genId: IdAllocator = idAllocatorFromMaxId(change.change.maxId ?? -1);
|
|
708
|
-
const invertedNodeToParent = cloneNestedMap(change.change.nodeToParent);
|
|
709
692
|
|
|
710
693
|
const crossFieldTable: InvertTable = {
|
|
711
694
|
...newCrossFieldTable<FieldChange>(),
|
|
712
695
|
originalFieldToContext: new Map(),
|
|
713
|
-
invertedNodeToParent,
|
|
696
|
+
invertedNodeToParent: brand(change.change.nodeToParent.clone()),
|
|
714
697
|
};
|
|
715
698
|
|
|
716
699
|
const { revInfos } = getRevInfoFromTaggedChanges([change]);
|
|
@@ -725,12 +708,10 @@ export class ModularChangeFamily
|
|
|
725
708
|
revisionMetadata,
|
|
726
709
|
);
|
|
727
710
|
|
|
728
|
-
const invertedNodes:
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
revision,
|
|
733
|
-
localId,
|
|
711
|
+
const invertedNodes: ChangeAtomIdBTree<NodeChangeset> = newTupleBTree();
|
|
712
|
+
change.change.nodeChanges.forEachPair(([revision, localId], nodeChangeset) => {
|
|
713
|
+
invertedNodes.set(
|
|
714
|
+
[revision, localId],
|
|
734
715
|
this.invertNodeChange(
|
|
735
716
|
nodeChangeset,
|
|
736
717
|
{ revision, localId },
|
|
@@ -773,7 +754,7 @@ export class ModularChangeFamily
|
|
|
773
754
|
return makeModularChangeset(
|
|
774
755
|
invertedFields,
|
|
775
756
|
invertedNodes,
|
|
776
|
-
invertedNodeToParent,
|
|
757
|
+
crossFieldTable.invertedNodeToParent,
|
|
777
758
|
change.change.nodeAliases,
|
|
778
759
|
crossFieldKeys,
|
|
779
760
|
genId.getMaxId(),
|
|
@@ -856,15 +837,16 @@ export class ModularChangeFamily
|
|
|
856
837
|
newChange: change,
|
|
857
838
|
baseChange: over.change,
|
|
858
839
|
baseFieldToContext: new Map(),
|
|
859
|
-
baseToRebasedNodeId:
|
|
840
|
+
baseToRebasedNodeId: newTupleBTree(),
|
|
860
841
|
rebasedFields: new Set(),
|
|
861
|
-
rebasedNodeToParent:
|
|
842
|
+
rebasedNodeToParent: brand(change.nodeToParent.clone()),
|
|
862
843
|
rebasedCrossFieldKeys: brand(change.crossFieldKeys.clone()),
|
|
863
844
|
nodeIdPairs: [],
|
|
864
|
-
affectedBaseFields:
|
|
845
|
+
affectedBaseFields: newTupleBTree(),
|
|
846
|
+
fieldsWithUnattachedChild: new Set(),
|
|
865
847
|
};
|
|
866
848
|
|
|
867
|
-
|
|
849
|
+
const constraintState = newConstraintState(change.constraintViolationCount ?? 0);
|
|
868
850
|
|
|
869
851
|
const getBaseRevisions = (): RevisionTag[] =>
|
|
870
852
|
revisionInfoFromTaggedChange(over).map((info) => info.revision);
|
|
@@ -875,7 +857,7 @@ export class ModularChangeFamily
|
|
|
875
857
|
getBaseRevisions,
|
|
876
858
|
};
|
|
877
859
|
|
|
878
|
-
const rebasedNodes:
|
|
860
|
+
const rebasedNodes: ChangeAtomIdBTree<NodeChangeset> = brand(change.nodeChanges.clone());
|
|
879
861
|
|
|
880
862
|
const rebasedFields = this.rebaseIntersectingFields(
|
|
881
863
|
crossFieldTable,
|
|
@@ -885,64 +867,14 @@ export class ModularChangeFamily
|
|
|
885
867
|
rebaseMetadata,
|
|
886
868
|
);
|
|
887
869
|
|
|
888
|
-
this.
|
|
870
|
+
this.rebaseInvalidatedElements(
|
|
889
871
|
rebasedFields,
|
|
890
872
|
rebasedNodes,
|
|
891
873
|
crossFieldTable,
|
|
892
|
-
genId,
|
|
893
874
|
rebaseMetadata,
|
|
875
|
+
genId,
|
|
894
876
|
);
|
|
895
877
|
|
|
896
|
-
if (crossFieldTable.invalidatedFields.size > 0) {
|
|
897
|
-
const fieldsToUpdate = crossFieldTable.invalidatedFields;
|
|
898
|
-
crossFieldTable.invalidatedFields = new Set();
|
|
899
|
-
constraintState = newConstraintState(change.constraintViolationCount ?? 0);
|
|
900
|
-
for (const field of fieldsToUpdate) {
|
|
901
|
-
const context = crossFieldTable.baseFieldToContext.get(field);
|
|
902
|
-
assert(context !== undefined, 0x852 /* Every field should have a context */);
|
|
903
|
-
const {
|
|
904
|
-
changeHandler,
|
|
905
|
-
change1: fieldChangeset,
|
|
906
|
-
change2: baseChangeset,
|
|
907
|
-
} = this.normalizeFieldChanges(
|
|
908
|
-
context.newChange,
|
|
909
|
-
context.baseChange,
|
|
910
|
-
genId,
|
|
911
|
-
revisionMetadata,
|
|
912
|
-
);
|
|
913
|
-
|
|
914
|
-
const rebaseChild = (
|
|
915
|
-
curr: NodeId | undefined,
|
|
916
|
-
base: NodeId | undefined,
|
|
917
|
-
): NodeId | undefined => {
|
|
918
|
-
if (curr !== undefined) {
|
|
919
|
-
return curr;
|
|
920
|
-
}
|
|
921
|
-
|
|
922
|
-
if (base !== undefined) {
|
|
923
|
-
for (const id of context.baseNodeIds) {
|
|
924
|
-
if (areEqualChangeAtomIds(base, id)) {
|
|
925
|
-
return base;
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
}
|
|
929
|
-
|
|
930
|
-
return undefined;
|
|
931
|
-
};
|
|
932
|
-
|
|
933
|
-
context.rebasedChange.change = brand(
|
|
934
|
-
changeHandler.rebaser.rebase(
|
|
935
|
-
fieldChangeset,
|
|
936
|
-
baseChangeset,
|
|
937
|
-
rebaseChild,
|
|
938
|
-
genId,
|
|
939
|
-
new RebaseManager(crossFieldTable, field, context.fieldId),
|
|
940
|
-
rebaseMetadata,
|
|
941
|
-
),
|
|
942
|
-
);
|
|
943
|
-
}
|
|
944
|
-
}
|
|
945
|
-
|
|
946
878
|
this.updateConstraintsForFields(
|
|
947
879
|
rebasedFields,
|
|
948
880
|
NodeAttachState.Attached,
|
|
@@ -969,7 +901,7 @@ export class ModularChangeFamily
|
|
|
969
901
|
// TODO: Can we also handle additional passes in this method?
|
|
970
902
|
private rebaseIntersectingFields(
|
|
971
903
|
crossFieldTable: RebaseTable,
|
|
972
|
-
rebasedNodes:
|
|
904
|
+
rebasedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
973
905
|
genId: IdAllocator,
|
|
974
906
|
constraintState: ConstraintState,
|
|
975
907
|
metadata: RebaseRevisionMetadata,
|
|
@@ -1006,7 +938,7 @@ export class ModularChangeFamily
|
|
|
1006
938
|
// This processes fields which have no new changes but have been invalidated by another field.
|
|
1007
939
|
private rebaseFieldsWithoutNewChanges(
|
|
1008
940
|
rebasedFields: FieldChangeMap,
|
|
1009
|
-
rebasedNodes:
|
|
941
|
+
rebasedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
1010
942
|
crossFieldTable: RebaseTable,
|
|
1011
943
|
genId: IdAllocator,
|
|
1012
944
|
metadata: RebaseRevisionMetadata,
|
|
@@ -1024,7 +956,10 @@ export class ModularChangeFamily
|
|
|
1024
956
|
baseNodeId,
|
|
1025
957
|
).get(fieldKey);
|
|
1026
958
|
|
|
1027
|
-
assert(
|
|
959
|
+
assert(
|
|
960
|
+
baseFieldChange !== undefined,
|
|
961
|
+
0x9c2 /* Cross field key registered for empty field */,
|
|
962
|
+
);
|
|
1028
963
|
if (crossFieldTable.baseFieldToContext.has(baseFieldChange)) {
|
|
1029
964
|
// This field has already been processed because there were changes to rebase.
|
|
1030
965
|
continue;
|
|
@@ -1037,7 +972,7 @@ export class ModularChangeFamily
|
|
|
1037
972
|
baseChild: NodeId | undefined,
|
|
1038
973
|
stateChange: NodeAttachState | undefined,
|
|
1039
974
|
): NodeId | undefined => {
|
|
1040
|
-
assert(child === undefined,
|
|
975
|
+
assert(child === undefined, 0x9c3 /* There should be no new changes in this field */);
|
|
1041
976
|
return undefined;
|
|
1042
977
|
};
|
|
1043
978
|
|
|
@@ -1089,9 +1024,102 @@ export class ModularChangeFamily
|
|
|
1089
1024
|
}
|
|
1090
1025
|
}
|
|
1091
1026
|
|
|
1027
|
+
private rebaseInvalidatedElements(
|
|
1028
|
+
rebasedFields: FieldChangeMap,
|
|
1029
|
+
rebasedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
1030
|
+
table: RebaseTable,
|
|
1031
|
+
metadata: RebaseRevisionMetadata,
|
|
1032
|
+
idAllocator: IdAllocator,
|
|
1033
|
+
): void {
|
|
1034
|
+
this.rebaseFieldsWithoutNewChanges(
|
|
1035
|
+
rebasedFields,
|
|
1036
|
+
rebasedNodes,
|
|
1037
|
+
table,
|
|
1038
|
+
idAllocator,
|
|
1039
|
+
metadata,
|
|
1040
|
+
);
|
|
1041
|
+
|
|
1042
|
+
this.rebaseFieldsWithUnattachedChild(table, metadata, idAllocator);
|
|
1043
|
+
this.rebaseInvalidatedFields(table, metadata, idAllocator);
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
private rebaseInvalidatedFields(
|
|
1047
|
+
crossFieldTable: RebaseTable,
|
|
1048
|
+
rebaseMetadata: RebaseRevisionMetadata,
|
|
1049
|
+
genId: IdAllocator,
|
|
1050
|
+
): void {
|
|
1051
|
+
const fieldsToUpdate = crossFieldTable.invalidatedFields;
|
|
1052
|
+
crossFieldTable.invalidatedFields = new Set();
|
|
1053
|
+
for (const field of fieldsToUpdate) {
|
|
1054
|
+
this.rebaseInvalidatedField(field, crossFieldTable, rebaseMetadata, genId);
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
private rebaseFieldsWithUnattachedChild(
|
|
1059
|
+
table: RebaseTable,
|
|
1060
|
+
metadata: RebaseRevisionMetadata,
|
|
1061
|
+
idAllocator: IdAllocator,
|
|
1062
|
+
): void {
|
|
1063
|
+
for (const field of table.fieldsWithUnattachedChild) {
|
|
1064
|
+
table.invalidatedFields.delete(field);
|
|
1065
|
+
this.rebaseInvalidatedField(field, table, metadata, idAllocator, true);
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
private rebaseInvalidatedField(
|
|
1070
|
+
baseField: FieldChange,
|
|
1071
|
+
crossFieldTable: RebaseTable,
|
|
1072
|
+
rebaseMetadata: RebaseRevisionMetadata,
|
|
1073
|
+
genId: IdAllocator,
|
|
1074
|
+
allowInval = false,
|
|
1075
|
+
): void {
|
|
1076
|
+
const context = crossFieldTable.baseFieldToContext.get(baseField);
|
|
1077
|
+
assert(context !== undefined, 0x852 /* Every field should have a context */);
|
|
1078
|
+
const {
|
|
1079
|
+
changeHandler,
|
|
1080
|
+
change1: fieldChangeset,
|
|
1081
|
+
change2: baseChangeset,
|
|
1082
|
+
} = this.normalizeFieldChanges(
|
|
1083
|
+
context.newChange,
|
|
1084
|
+
context.baseChange,
|
|
1085
|
+
genId,
|
|
1086
|
+
rebaseMetadata,
|
|
1087
|
+
);
|
|
1088
|
+
|
|
1089
|
+
const rebaseChild = (
|
|
1090
|
+
curr: NodeId | undefined,
|
|
1091
|
+
base: NodeId | undefined,
|
|
1092
|
+
): NodeId | undefined => {
|
|
1093
|
+
if (curr !== undefined) {
|
|
1094
|
+
return curr;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
if (base !== undefined) {
|
|
1098
|
+
for (const id of context.baseNodeIds) {
|
|
1099
|
+
if (areEqualChangeAtomIds(base, id)) {
|
|
1100
|
+
return base;
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
return undefined;
|
|
1106
|
+
};
|
|
1107
|
+
|
|
1108
|
+
context.rebasedChange.change = brand(
|
|
1109
|
+
changeHandler.rebaser.rebase(
|
|
1110
|
+
fieldChangeset,
|
|
1111
|
+
baseChangeset,
|
|
1112
|
+
rebaseChild,
|
|
1113
|
+
genId,
|
|
1114
|
+
new RebaseManager(crossFieldTable, baseField, context.fieldId, allowInval),
|
|
1115
|
+
rebaseMetadata,
|
|
1116
|
+
),
|
|
1117
|
+
);
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1092
1120
|
private attachRebasedField(
|
|
1093
1121
|
rebasedFields: FieldChangeMap,
|
|
1094
|
-
rebasedNodes:
|
|
1122
|
+
rebasedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
1095
1123
|
table: RebaseTable,
|
|
1096
1124
|
rebasedField: FieldChange,
|
|
1097
1125
|
{ nodeId, field: fieldKey }: FieldId,
|
|
@@ -1109,7 +1137,7 @@ export class ModularChangeFamily
|
|
|
1109
1137
|
return;
|
|
1110
1138
|
}
|
|
1111
1139
|
|
|
1112
|
-
assert(!rebasedNode.fieldChanges.has(fieldKey),
|
|
1140
|
+
assert(!rebasedNode.fieldChanges.has(fieldKey), 0x9c4 /* Expected an empty field */);
|
|
1113
1141
|
rebasedNode.fieldChanges.set(fieldKey, rebasedField);
|
|
1114
1142
|
return;
|
|
1115
1143
|
}
|
|
@@ -1136,7 +1164,7 @@ export class ModularChangeFamily
|
|
|
1136
1164
|
|
|
1137
1165
|
private attachRebasedNode(
|
|
1138
1166
|
rebasedFields: FieldChangeMap,
|
|
1139
|
-
rebasedNodes:
|
|
1167
|
+
rebasedNodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
1140
1168
|
table: RebaseTable,
|
|
1141
1169
|
baseNodeId: NodeId,
|
|
1142
1170
|
parentFieldIdBase: FieldId,
|
|
@@ -1155,9 +1183,9 @@ export class ModularChangeFamily
|
|
|
1155
1183
|
const context = table.baseFieldToContext.get(baseFieldChange);
|
|
1156
1184
|
if (context !== undefined) {
|
|
1157
1185
|
// We've already processed this field.
|
|
1158
|
-
// The new child node
|
|
1186
|
+
// The new child node will be attached in rebaseFieldsWithUnattachedChild.
|
|
1159
1187
|
context.baseNodeIds.push(baseNodeId);
|
|
1160
|
-
table.
|
|
1188
|
+
table.fieldsWithUnattachedChild.add(baseFieldChange);
|
|
1161
1189
|
return;
|
|
1162
1190
|
}
|
|
1163
1191
|
|
|
@@ -1311,7 +1339,7 @@ export class ModularChangeFamily
|
|
|
1311
1339
|
fields: FieldChangeMap,
|
|
1312
1340
|
parentAttachState: NodeAttachState,
|
|
1313
1341
|
constraintState: ConstraintState,
|
|
1314
|
-
nodes:
|
|
1342
|
+
nodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
1315
1343
|
): void {
|
|
1316
1344
|
for (const field of fields.values()) {
|
|
1317
1345
|
const handler = getChangeHandler(this.fieldKinds, field.fieldKind);
|
|
@@ -1330,11 +1358,9 @@ export class ModularChangeFamily
|
|
|
1330
1358
|
nodeId: NodeId,
|
|
1331
1359
|
attachState: NodeAttachState,
|
|
1332
1360
|
constraintState: ConstraintState,
|
|
1333
|
-
nodes:
|
|
1361
|
+
nodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
1334
1362
|
): void {
|
|
1335
|
-
const node =
|
|
1336
|
-
tryGetFromNestedMap(nodes, nodeId.revision, nodeId.localId) ?? fail("Unknown node ID");
|
|
1337
|
-
|
|
1363
|
+
const node = nodes.get([nodeId.revision, nodeId.localId]) ?? fail("Unknown node ID");
|
|
1338
1364
|
if (node.nodeExistsConstraint !== undefined) {
|
|
1339
1365
|
const isNowViolated = attachState === NodeAttachState.Detached;
|
|
1340
1366
|
if (node.nodeExistsConstraint.violated !== isNowViolated) {
|
|
@@ -1353,7 +1379,7 @@ export class ModularChangeFamily
|
|
|
1353
1379
|
|
|
1354
1380
|
private pruneFieldMap(
|
|
1355
1381
|
changeset: FieldChangeMap | undefined,
|
|
1356
|
-
nodeMap:
|
|
1382
|
+
nodeMap: ChangeAtomIdBTree<NodeChangeset>,
|
|
1357
1383
|
): FieldChangeMap | undefined {
|
|
1358
1384
|
if (changeset === undefined) {
|
|
1359
1385
|
return undefined;
|
|
@@ -1377,7 +1403,7 @@ export class ModularChangeFamily
|
|
|
1377
1403
|
|
|
1378
1404
|
private pruneNodeChange(
|
|
1379
1405
|
nodeId: NodeId,
|
|
1380
|
-
nodeMap:
|
|
1406
|
+
nodeMap: ChangeAtomIdBTree<NodeChangeset>,
|
|
1381
1407
|
): NodeId | undefined {
|
|
1382
1408
|
const changeset = nodeChangeFromId(nodeMap, nodeId);
|
|
1383
1409
|
const prunedFields =
|
|
@@ -1391,7 +1417,7 @@ export class ModularChangeFamily
|
|
|
1391
1417
|
}
|
|
1392
1418
|
|
|
1393
1419
|
if (isEmptyNodeChangeset(prunedChange)) {
|
|
1394
|
-
|
|
1420
|
+
nodeMap.delete([nodeId.revision, nodeId.localId]);
|
|
1395
1421
|
return undefined;
|
|
1396
1422
|
} else {
|
|
1397
1423
|
setInChangeAtomIdMap(nodeMap, nodeId, prunedChange);
|
|
@@ -1415,25 +1441,25 @@ export class ModularChangeFamily
|
|
|
1415
1441
|
newRevision,
|
|
1416
1442
|
);
|
|
1417
1443
|
|
|
1418
|
-
const updatedNodes:
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
id,
|
|
1444
|
+
const updatedNodes: ChangeAtomIdBTree<NodeChangeset> = newTupleBTree();
|
|
1445
|
+
for (const [[revision, id], nodeChangeset] of change.nodeChanges.entries()) {
|
|
1446
|
+
updatedNodes.set(
|
|
1447
|
+
[replaceRevision(revision, oldRevisions, newRevision), id],
|
|
1422
1448
|
this.replaceNodeChangesetRevisions(nodeChangeset, oldRevisions, newRevision),
|
|
1423
|
-
|
|
1424
|
-
|
|
1449
|
+
);
|
|
1450
|
+
}
|
|
1425
1451
|
|
|
1426
|
-
const updatedNodeToParent:
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
id,
|
|
1452
|
+
const updatedNodeToParent: ChangeAtomIdBTree<FieldId> = newTupleBTree();
|
|
1453
|
+
for (const [[revision, id], fieldId] of change.nodeToParent.entries()) {
|
|
1454
|
+
updatedNodeToParent.set(
|
|
1455
|
+
[replaceRevision(revision, oldRevisions, newRevision), id],
|
|
1430
1456
|
replaceFieldIdRevision(
|
|
1431
1457
|
normalizeFieldId(fieldId, change.nodeAliases),
|
|
1432
1458
|
oldRevisions,
|
|
1433
1459
|
newRevision,
|
|
1434
1460
|
),
|
|
1435
|
-
|
|
1436
|
-
|
|
1461
|
+
);
|
|
1462
|
+
}
|
|
1437
1463
|
|
|
1438
1464
|
const updated: Mutable<ModularChangeset> = {
|
|
1439
1465
|
...change,
|
|
@@ -1442,7 +1468,7 @@ export class ModularChangeFamily
|
|
|
1442
1468
|
nodeToParent: updatedNodeToParent,
|
|
1443
1469
|
|
|
1444
1470
|
// We've updated all references to old node IDs, so we no longer need an alias table.
|
|
1445
|
-
nodeAliases:
|
|
1471
|
+
nodeAliases: newTupleBTree(),
|
|
1446
1472
|
crossFieldKeys: replaceCrossFieldKeyTableRevisions(
|
|
1447
1473
|
change.crossFieldKeys,
|
|
1448
1474
|
oldRevisions,
|
|
@@ -1514,11 +1540,11 @@ export class ModularChangeFamily
|
|
|
1514
1540
|
|
|
1515
1541
|
private makeCrossFieldKeyTable(
|
|
1516
1542
|
fields: FieldChangeMap,
|
|
1517
|
-
nodes:
|
|
1543
|
+
nodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
1518
1544
|
): CrossFieldKeyTable {
|
|
1519
1545
|
const keys: CrossFieldKeyTable = newCrossFieldKeyTable();
|
|
1520
1546
|
this.populateCrossFieldKeyTableForFieldMap(keys, fields, undefined);
|
|
1521
|
-
|
|
1547
|
+
nodes.forEachPair(([revision, localId], node) => {
|
|
1522
1548
|
if (node.fieldChanges !== undefined) {
|
|
1523
1549
|
this.populateCrossFieldKeyTableForFieldMap(keys, node.fieldChanges, {
|
|
1524
1550
|
revision,
|
|
@@ -1559,9 +1585,9 @@ function replaceCrossFieldKeyTableRevisions(
|
|
|
1559
1585
|
table: CrossFieldKeyTable,
|
|
1560
1586
|
oldRevisions: Set<RevisionTag | undefined>,
|
|
1561
1587
|
newRevision: RevisionTag | undefined,
|
|
1562
|
-
nodeAliases:
|
|
1588
|
+
nodeAliases: ChangeAtomIdBTree<NodeId>,
|
|
1563
1589
|
): CrossFieldKeyTable {
|
|
1564
|
-
const updated: CrossFieldKeyTable =
|
|
1590
|
+
const updated: CrossFieldKeyTable = newTupleBTree();
|
|
1565
1591
|
table.forEachPair(([target, revision, id, count], field) => {
|
|
1566
1592
|
const updatedKey: CrossFieldKeyRange = [
|
|
1567
1593
|
target,
|
|
@@ -1596,122 +1622,92 @@ function replaceRevision(
|
|
|
1596
1622
|
}
|
|
1597
1623
|
|
|
1598
1624
|
function replaceIdMapRevisions<T>(
|
|
1599
|
-
map:
|
|
1625
|
+
map: ChangeAtomIdBTree<T>,
|
|
1600
1626
|
oldRevisions: Set<RevisionTag | undefined>,
|
|
1601
1627
|
newRevision: RevisionTag | undefined,
|
|
1602
|
-
):
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
);
|
|
1628
|
+
): ChangeAtomIdBTree<T> {
|
|
1629
|
+
const updated: ChangeAtomIdBTree<T> = newTupleBTree();
|
|
1630
|
+
for (const [[revision, id], value] of map.entries()) {
|
|
1631
|
+
updated.set([replaceRevision(revision, oldRevisions, newRevision), id], value);
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1634
|
+
return updated;
|
|
1610
1635
|
}
|
|
1611
1636
|
|
|
1612
1637
|
interface BuildsDestroysAndRefreshers {
|
|
1613
|
-
readonly allBuilds:
|
|
1614
|
-
readonly allDestroys:
|
|
1615
|
-
readonly allRefreshers:
|
|
1638
|
+
readonly allBuilds: ChangeAtomIdBTree<TreeChunk>;
|
|
1639
|
+
readonly allDestroys: ChangeAtomIdBTree<number>;
|
|
1640
|
+
readonly allRefreshers: ChangeAtomIdBTree<TreeChunk>;
|
|
1616
1641
|
}
|
|
1617
1642
|
|
|
1618
1643
|
function composeBuildsDestroysAndRefreshers(
|
|
1619
|
-
|
|
1644
|
+
change1: ModularChangeset,
|
|
1645
|
+
change2: ModularChangeset,
|
|
1620
1646
|
): BuildsDestroysAndRefreshers {
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1647
|
+
// Duplicate builds can happen in compositions of commits that needed to include detached tree refreshers (e.g., undos):
|
|
1648
|
+
// In that case, it's possible for the refreshers to contain different trees because the latter
|
|
1649
|
+
// refresher may already reflect the changes made by the commit that includes the earlier
|
|
1650
|
+
// refresher. This composition includes the changes made by the commit that includes the
|
|
1651
|
+
// earlier refresher, so we need to include the build for the earlier refresher, otherwise
|
|
1652
|
+
// the produced changeset will build a tree one which those changes have already been applied
|
|
1653
|
+
// and also try to apply the changes again, effectively applying them twice.
|
|
1654
|
+
// Note that it would in principle be possible to adopt the later build and exclude from the
|
|
1655
|
+
// composition all the changes already reflected on the tree, but that is not something we
|
|
1656
|
+
// care to support at this time.
|
|
1657
|
+
const allBuilds: ChangeAtomIdBTree<TreeChunk> = brand(
|
|
1658
|
+
mergeBTrees(change1.builds ?? newTupleBTree(), change2.builds ?? newTupleBTree(), true),
|
|
1659
|
+
);
|
|
1660
|
+
|
|
1661
|
+
const allDestroys: ChangeAtomIdBTree<number> = brand(
|
|
1662
|
+
mergeBTrees(change1.destroys ?? newTupleBTree(), change2.destroys ?? newTupleBTree()),
|
|
1663
|
+
);
|
|
1664
|
+
|
|
1665
|
+
const allRefreshers: ChangeAtomIdBTree<TreeChunk> = brand(
|
|
1666
|
+
mergeBTrees(
|
|
1667
|
+
change1.refreshers ?? newTupleBTree(),
|
|
1668
|
+
change2.refreshers ?? newTupleBTree(),
|
|
1669
|
+
true,
|
|
1670
|
+
),
|
|
1671
|
+
);
|
|
1672
|
+
|
|
1673
|
+
if (change1.destroys !== undefined && change2.builds !== undefined) {
|
|
1674
|
+
for (const [key, chunk] of change2.builds.entries()) {
|
|
1675
|
+
const destroyCount = change1.destroys.get(key);
|
|
1676
|
+
if (destroyCount !== undefined) {
|
|
1677
|
+
assert(
|
|
1678
|
+
destroyCount === chunk.topLevelLength,
|
|
1679
|
+
0x89b /* Expected build and destroy to have the same length */,
|
|
1634
1680
|
);
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
// In that case, it's possible for the refreshers to contain different trees because the latter
|
|
1639
|
-
// refresher may already reflect the changes made by the commit that includes the earlier
|
|
1640
|
-
// refresher. This composition includes the changes made by the commit that includes the
|
|
1641
|
-
// earlier refresher, so we need to include the build for the earlier refresher, otherwise
|
|
1642
|
-
// the produced changeset will build a tree one which those changes have already been applied
|
|
1643
|
-
// and also try to apply the changes again, effectively applying them twice.
|
|
1644
|
-
// Note that it would in principle be possible to adopt the later build and exclude from the
|
|
1645
|
-
// composition all the changes already reflected on the tree, but that is not something we
|
|
1646
|
-
// care to support at this time.
|
|
1647
|
-
if (!innerDstMap.has(id)) {
|
|
1648
|
-
// Check for earlier destroys that this build might cancel-out with.
|
|
1649
|
-
const destroyCount = tryGetFromNestedMap(allDestroys, setRevisionKey, id);
|
|
1650
|
-
if (destroyCount === undefined) {
|
|
1651
|
-
innerDstMap.set(id, chunk);
|
|
1652
|
-
} else {
|
|
1653
|
-
assert(
|
|
1654
|
-
destroyCount === chunk.topLevelLength,
|
|
1655
|
-
0x89b /* Expected build and destroy to have the same length */,
|
|
1656
|
-
);
|
|
1657
|
-
deleteFromNestedMap(allDestroys, setRevisionKey, id);
|
|
1658
|
-
}
|
|
1659
|
-
}
|
|
1660
|
-
}
|
|
1661
|
-
if (innerDstMap.size === 0) {
|
|
1662
|
-
allBuilds.delete(setRevisionKey);
|
|
1663
|
-
}
|
|
1681
|
+
|
|
1682
|
+
allBuilds.delete(key);
|
|
1683
|
+
allDestroys.delete(key);
|
|
1664
1684
|
}
|
|
1665
1685
|
}
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1688
|
+
if (change1.builds !== undefined && change2.destroys !== undefined) {
|
|
1689
|
+
for (const [key, chunk] of change1.builds.entries()) {
|
|
1690
|
+
const destroyCount = change2.destroys.get(key);
|
|
1691
|
+
if (destroyCount !== undefined) {
|
|
1692
|
+
assert(
|
|
1693
|
+
destroyCount === chunk.topLevelLength,
|
|
1694
|
+
0x9f0 /* Expected build and destroy to have the same length */,
|
|
1673
1695
|
);
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
if (chunk === undefined) {
|
|
1678
|
-
innerDstMap.set(id, count);
|
|
1679
|
-
} else {
|
|
1680
|
-
assert(
|
|
1681
|
-
count === chunk.topLevelLength,
|
|
1682
|
-
0x89c /* Expected build and destroy to have the same length */,
|
|
1683
|
-
);
|
|
1684
|
-
deleteFromNestedMap(allBuilds, setRevisionKey, id);
|
|
1685
|
-
}
|
|
1686
|
-
}
|
|
1687
|
-
if (innerDstMap.size === 0) {
|
|
1688
|
-
allDestroys.delete(setRevisionKey);
|
|
1689
|
-
}
|
|
1696
|
+
|
|
1697
|
+
allBuilds.delete(key);
|
|
1698
|
+
allDestroys.delete(key);
|
|
1690
1699
|
}
|
|
1691
1700
|
}
|
|
1692
|
-
// add all refreshers while preferring earlier ones
|
|
1693
|
-
if (change.refreshers) {
|
|
1694
|
-
populateNestedMap(change.refreshers, allRefreshers, false);
|
|
1695
|
-
}
|
|
1696
1701
|
}
|
|
1702
|
+
|
|
1697
1703
|
return { allBuilds, allDestroys, allRefreshers };
|
|
1698
1704
|
}
|
|
1699
1705
|
|
|
1700
1706
|
function invertBuilds(
|
|
1701
|
-
builds:
|
|
1702
|
-
|
|
1703
|
-
): ChangeAtomIdMap<number> | undefined {
|
|
1707
|
+
builds: ChangeAtomIdBTree<TreeChunk> | undefined,
|
|
1708
|
+
): ChangeAtomIdBTree<number> | undefined {
|
|
1704
1709
|
if (builds !== undefined) {
|
|
1705
|
-
|
|
1706
|
-
for (const [revision, innerBuildMap] of builds) {
|
|
1707
|
-
const initializedRevision = revision ?? fallbackRevision;
|
|
1708
|
-
const innerDestroyMap: Map<ChangesetLocalId, number> = new Map();
|
|
1709
|
-
for (const [id, chunk] of innerBuildMap) {
|
|
1710
|
-
innerDestroyMap.set(id, chunk.topLevelLength);
|
|
1711
|
-
}
|
|
1712
|
-
destroys.set(initializedRevision, innerDestroyMap);
|
|
1713
|
-
}
|
|
1714
|
-
return destroys;
|
|
1710
|
+
return brand(builds.mapValues((chunk) => chunk.topLevelLength));
|
|
1715
1711
|
}
|
|
1716
1712
|
return undefined;
|
|
1717
1713
|
}
|
|
@@ -1740,7 +1736,7 @@ export function* relevantRemovedRoots(
|
|
|
1740
1736
|
|
|
1741
1737
|
function* relevantRemovedRootsFromFields(
|
|
1742
1738
|
change: FieldChangeMap,
|
|
1743
|
-
nodeChanges:
|
|
1739
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
|
|
1744
1740
|
fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
|
|
1745
1741
|
): Iterable<DeltaDetachedNodeId> {
|
|
1746
1742
|
for (const [_, fieldChange] of change) {
|
|
@@ -1776,15 +1772,13 @@ export function updateRefreshers(
|
|
|
1776
1772
|
removedRoots: Iterable<DeltaDetachedNodeId>,
|
|
1777
1773
|
requireRefreshers: boolean = true,
|
|
1778
1774
|
): ModularChangeset {
|
|
1779
|
-
const refreshers:
|
|
1775
|
+
const refreshers: ChangeAtomIdBTree<TreeChunk> = newTupleBTree();
|
|
1780
1776
|
const chunkLengths: Map<RevisionTag | undefined, BTree<number, number>> = new Map();
|
|
1781
1777
|
|
|
1782
1778
|
if (change.builds !== undefined) {
|
|
1783
|
-
for (const [
|
|
1784
|
-
const lengthTree =
|
|
1785
|
-
|
|
1786
|
-
lengthTree.set(id, chunk.topLevelLength);
|
|
1787
|
-
}
|
|
1779
|
+
for (const [[revision, id], chunk] of change.builds.entries()) {
|
|
1780
|
+
const lengthTree = getOrAddInMapLazy(chunkLengths, revision, () => new BTree());
|
|
1781
|
+
lengthTree.set(id, chunk.topLevelLength);
|
|
1788
1782
|
}
|
|
1789
1783
|
}
|
|
1790
1784
|
|
|
@@ -1810,7 +1804,7 @@ export function updateRefreshers(
|
|
|
1810
1804
|
if (node === undefined) {
|
|
1811
1805
|
assert(!requireRefreshers, 0x8cd /* detached node should exist */);
|
|
1812
1806
|
} else {
|
|
1813
|
-
|
|
1807
|
+
refreshers.set([root.major, brand(root.minor)], node);
|
|
1814
1808
|
}
|
|
1815
1809
|
}
|
|
1816
1810
|
|
|
@@ -1870,12 +1864,12 @@ export function intoDelta(
|
|
|
1870
1864
|
}
|
|
1871
1865
|
if (change.destroys !== undefined && change.destroys.size > 0) {
|
|
1872
1866
|
const destroys: DeltaDetachedNodeDestruction[] = [];
|
|
1873
|
-
|
|
1867
|
+
for (const [[major, minor], count] of change.destroys.entries()) {
|
|
1874
1868
|
destroys.push({
|
|
1875
1869
|
id: makeDetachedNodeId(major, minor),
|
|
1876
1870
|
count,
|
|
1877
1871
|
});
|
|
1878
|
-
}
|
|
1872
|
+
}
|
|
1879
1873
|
rootDelta.destroy = destroys;
|
|
1880
1874
|
}
|
|
1881
1875
|
if (change.refreshers && change.refreshers.size > 0) {
|
|
@@ -1885,10 +1879,10 @@ export function intoDelta(
|
|
|
1885
1879
|
}
|
|
1886
1880
|
|
|
1887
1881
|
function copyDetachedNodes(
|
|
1888
|
-
detachedNodes:
|
|
1882
|
+
detachedNodes: ChangeAtomIdBTree<TreeChunk>,
|
|
1889
1883
|
): DeltaDetachedNodeBuild[] | undefined {
|
|
1890
1884
|
const copiedDetachedNodes: DeltaDetachedNodeBuild[] = [];
|
|
1891
|
-
|
|
1885
|
+
for (const [[major, minor], chunk] of detachedNodes.entries()) {
|
|
1892
1886
|
if (chunk.topLevelLength > 0) {
|
|
1893
1887
|
const trees = mapCursorField(chunk.cursor(), (c) =>
|
|
1894
1888
|
cursorForMapTreeNode(mapTreeFromCursor(c)),
|
|
@@ -1898,7 +1892,7 @@ function copyDetachedNodes(
|
|
|
1898
1892
|
trees,
|
|
1899
1893
|
});
|
|
1900
1894
|
}
|
|
1901
|
-
}
|
|
1895
|
+
}
|
|
1902
1896
|
return copiedDetachedNodes.length > 0 ? copiedDetachedNodes : undefined;
|
|
1903
1897
|
}
|
|
1904
1898
|
|
|
@@ -1907,7 +1901,7 @@ function copyDetachedNodes(
|
|
|
1907
1901
|
*/
|
|
1908
1902
|
function intoDeltaImpl(
|
|
1909
1903
|
change: FieldChangeMap,
|
|
1910
|
-
nodeChanges:
|
|
1904
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
|
|
1911
1905
|
idAllocator: MemoizedIdRangeAllocator,
|
|
1912
1906
|
fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
|
|
1913
1907
|
): Map<FieldKey, DeltaFieldChanges> {
|
|
@@ -1930,7 +1924,7 @@ function intoDeltaImpl(
|
|
|
1930
1924
|
|
|
1931
1925
|
function deltaFromNodeChange(
|
|
1932
1926
|
change: NodeChangeset,
|
|
1933
|
-
nodeChanges:
|
|
1927
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
|
|
1934
1928
|
idAllocator: MemoizedIdRangeAllocator,
|
|
1935
1929
|
fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
|
|
1936
1930
|
): DeltaFieldMap {
|
|
@@ -1942,7 +1936,6 @@ function deltaFromNodeChange(
|
|
|
1942
1936
|
}
|
|
1943
1937
|
|
|
1944
1938
|
/**
|
|
1945
|
-
* @internal
|
|
1946
1939
|
* @param revInfos - This should describe the revision being rebased and all revisions in the rebase path,
|
|
1947
1940
|
* even if not part of the current base changeset.
|
|
1948
1941
|
* For example, when rebasing change B from a local branch [A, B, C] over a branch [X, Y], the `revInfos` must include
|
|
@@ -2009,7 +2002,7 @@ interface CrossFieldTable<TFieldData> {
|
|
|
2009
2002
|
|
|
2010
2003
|
interface InvertTable extends CrossFieldTable<FieldChange> {
|
|
2011
2004
|
originalFieldToContext: Map<FieldChange, InvertContext>;
|
|
2012
|
-
invertedNodeToParent:
|
|
2005
|
+
invertedNodeToParent: ChangeAtomIdBTree<FieldId>;
|
|
2013
2006
|
}
|
|
2014
2007
|
|
|
2015
2008
|
interface InvertContext {
|
|
@@ -2026,9 +2019,9 @@ interface RebaseTable extends CrossFieldTable<FieldChange> {
|
|
|
2026
2019
|
* to the context for the field.
|
|
2027
2020
|
*/
|
|
2028
2021
|
readonly baseFieldToContext: Map<FieldChange, RebaseFieldContext>;
|
|
2029
|
-
readonly baseToRebasedNodeId:
|
|
2022
|
+
readonly baseToRebasedNodeId: ChangeAtomIdBTree<NodeId>;
|
|
2030
2023
|
readonly rebasedFields: Set<FieldChange>;
|
|
2031
|
-
readonly rebasedNodeToParent:
|
|
2024
|
+
readonly rebasedNodeToParent: ChangeAtomIdBTree<FieldId>;
|
|
2032
2025
|
readonly rebasedCrossFieldKeys: CrossFieldKeyTable;
|
|
2033
2026
|
|
|
2034
2027
|
/**
|
|
@@ -2036,6 +2029,11 @@ interface RebaseTable extends CrossFieldTable<FieldChange> {
|
|
|
2036
2029
|
*/
|
|
2037
2030
|
readonly nodeIdPairs: [NodeId, NodeId, NodeAttachState | undefined][];
|
|
2038
2031
|
readonly affectedBaseFields: TupleBTree<FieldIdKey, boolean>;
|
|
2032
|
+
|
|
2033
|
+
/**
|
|
2034
|
+
* Set of base fields which contain a node which needs to be attached in the rebased changeset.
|
|
2035
|
+
*/
|
|
2036
|
+
readonly fieldsWithUnattachedChild: Set<FieldChange>;
|
|
2039
2037
|
}
|
|
2040
2038
|
|
|
2041
2039
|
type FieldIdKey = [RevisionTag | undefined, ChangesetLocalId | undefined, FieldKey];
|
|
@@ -2063,12 +2061,12 @@ function newComposeTable(
|
|
|
2063
2061
|
newChange,
|
|
2064
2062
|
fieldToContext: new Map(),
|
|
2065
2063
|
newFieldToBaseField: new Map(),
|
|
2066
|
-
newToBaseNodeId:
|
|
2064
|
+
newToBaseNodeId: newTupleBTree(),
|
|
2067
2065
|
composedNodes: new Set(),
|
|
2068
2066
|
pendingCompositions: {
|
|
2069
2067
|
nodeIdsToCompose: [],
|
|
2070
|
-
affectedBaseFields:
|
|
2071
|
-
affectedNewFields:
|
|
2068
|
+
affectedBaseFields: newTupleBTree(),
|
|
2069
|
+
affectedNewFields: newTupleBTree(),
|
|
2072
2070
|
},
|
|
2073
2071
|
};
|
|
2074
2072
|
}
|
|
@@ -2082,7 +2080,7 @@ interface ComposeTable extends CrossFieldTable<FieldChange> {
|
|
|
2082
2080
|
*/
|
|
2083
2081
|
readonly fieldToContext: Map<FieldChange, ComposeFieldContext>;
|
|
2084
2082
|
readonly newFieldToBaseField: Map<FieldChange, FieldChange>;
|
|
2085
|
-
readonly newToBaseNodeId:
|
|
2083
|
+
readonly newToBaseNodeId: ChangeAtomIdBTree<NodeId>;
|
|
2086
2084
|
readonly composedNodes: Set<NodeChangeset>;
|
|
2087
2085
|
readonly pendingCompositions: PendingCompositions;
|
|
2088
2086
|
}
|
|
@@ -2122,7 +2120,6 @@ function newCrossFieldTable<T>(): CrossFieldTable<T> {
|
|
|
2122
2120
|
}
|
|
2123
2121
|
|
|
2124
2122
|
/**
|
|
2125
|
-
* @internal
|
|
2126
2123
|
*/
|
|
2127
2124
|
interface ConstraintState {
|
|
2128
2125
|
violationCount: number;
|
|
@@ -2233,7 +2230,7 @@ class InvertManager extends CrossFieldManagerI<FieldChange> {
|
|
|
2233
2230
|
id: ChangesetLocalId,
|
|
2234
2231
|
count: number,
|
|
2235
2232
|
): void {
|
|
2236
|
-
assert(false,
|
|
2233
|
+
assert(false, 0x9c5 /* Keys should not be moved manually during invert */);
|
|
2237
2234
|
}
|
|
2238
2235
|
|
|
2239
2236
|
private get table(): InvertTable {
|
|
@@ -2269,7 +2266,7 @@ class RebaseManager extends CrossFieldManagerI<FieldChange> {
|
|
|
2269
2266
|
|
|
2270
2267
|
assert(
|
|
2271
2268
|
newFieldIds.length === 0,
|
|
2272
|
-
|
|
2269
|
+
0x9c6 /* TODO: Modifying a cross-field key from the new changeset is currently unsupported */,
|
|
2273
2270
|
);
|
|
2274
2271
|
|
|
2275
2272
|
const baseFieldIds = getFieldsForCrossFieldKey(this.table.baseChange, [
|
|
@@ -2279,7 +2276,10 @@ class RebaseManager extends CrossFieldManagerI<FieldChange> {
|
|
|
2279
2276
|
count,
|
|
2280
2277
|
]);
|
|
2281
2278
|
|
|
2282
|
-
assert(
|
|
2279
|
+
assert(
|
|
2280
|
+
baseFieldIds.length > 0,
|
|
2281
|
+
0x9c7 /* Cross field key not registered in base or new change */,
|
|
2282
|
+
);
|
|
2283
2283
|
|
|
2284
2284
|
for (const baseFieldId of baseFieldIds) {
|
|
2285
2285
|
this.table.affectedBaseFields.set(
|
|
@@ -2356,7 +2356,7 @@ class ComposeManager extends CrossFieldManagerI<FieldChange> {
|
|
|
2356
2356
|
|
|
2357
2357
|
assert(
|
|
2358
2358
|
baseFieldIds.length > 0,
|
|
2359
|
-
|
|
2359
|
+
0x9c8 /* Cross field key not registered in base or new change */,
|
|
2360
2360
|
);
|
|
2361
2361
|
|
|
2362
2362
|
for (const baseFieldId of baseFieldIds) {
|
|
@@ -2390,22 +2390,22 @@ class ComposeManager extends CrossFieldManagerI<FieldChange> {
|
|
|
2390
2390
|
|
|
2391
2391
|
function makeModularChangeset(
|
|
2392
2392
|
fieldChanges: FieldChangeMap | undefined = undefined,
|
|
2393
|
-
nodeChanges:
|
|
2394
|
-
nodeToParent:
|
|
2395
|
-
nodeAliases:
|
|
2393
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset> | undefined = undefined,
|
|
2394
|
+
nodeToParent: ChangeAtomIdBTree<FieldId> | undefined = undefined,
|
|
2395
|
+
nodeAliases: ChangeAtomIdBTree<NodeId> | undefined = undefined,
|
|
2396
2396
|
crossFieldKeys: CrossFieldKeyTable | undefined = undefined,
|
|
2397
2397
|
maxId: number = -1,
|
|
2398
2398
|
revisions: readonly RevisionInfo[] | undefined = undefined,
|
|
2399
2399
|
constraintViolationCount: number | undefined = undefined,
|
|
2400
|
-
builds?:
|
|
2401
|
-
destroys?:
|
|
2402
|
-
refreshers?:
|
|
2400
|
+
builds?: ChangeAtomIdBTree<TreeChunk>,
|
|
2401
|
+
destroys?: ChangeAtomIdBTree<number>,
|
|
2402
|
+
refreshers?: ChangeAtomIdBTree<TreeChunk>,
|
|
2403
2403
|
): ModularChangeset {
|
|
2404
2404
|
const changeset: Mutable<ModularChangeset> = {
|
|
2405
2405
|
fieldChanges: fieldChanges ?? new Map(),
|
|
2406
|
-
nodeChanges: nodeChanges ??
|
|
2407
|
-
nodeToParent: nodeToParent ??
|
|
2408
|
-
nodeAliases: nodeAliases ??
|
|
2406
|
+
nodeChanges: nodeChanges ?? newTupleBTree(),
|
|
2407
|
+
nodeToParent: nodeToParent ?? newTupleBTree(),
|
|
2408
|
+
nodeAliases: nodeAliases ?? newTupleBTree(),
|
|
2409
2409
|
crossFieldKeys: crossFieldKeys ?? newCrossFieldKeyTable(),
|
|
2410
2410
|
};
|
|
2411
2411
|
|
|
@@ -2470,14 +2470,12 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2470
2470
|
if (content.mode === CursorLocationType.Fields && content.getFieldLength() === 0) {
|
|
2471
2471
|
return { type: "global" };
|
|
2472
2472
|
}
|
|
2473
|
-
const builds:
|
|
2474
|
-
const innerMap = new Map();
|
|
2475
|
-
builds.set(undefined, innerMap);
|
|
2473
|
+
const builds: ChangeAtomIdBTree<TreeChunk> = newTupleBTree();
|
|
2476
2474
|
const chunk =
|
|
2477
2475
|
content.mode === CursorLocationType.Fields
|
|
2478
2476
|
? chunkFieldSingle(content, defaultChunkPolicy)
|
|
2479
2477
|
: chunkTree(content, defaultChunkPolicy);
|
|
2480
|
-
|
|
2478
|
+
builds.set([undefined, firstId], chunk);
|
|
2481
2479
|
|
|
2482
2480
|
return {
|
|
2483
2481
|
type: "global",
|
|
@@ -2504,8 +2502,8 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2504
2502
|
const modularChange = buildModularChangesetFromField(
|
|
2505
2503
|
field,
|
|
2506
2504
|
{ fieldKind, change },
|
|
2507
|
-
|
|
2508
|
-
|
|
2505
|
+
newTupleBTree(),
|
|
2506
|
+
newTupleBTree(),
|
|
2509
2507
|
newCrossFieldKeyTable(),
|
|
2510
2508
|
this.idAllocator,
|
|
2511
2509
|
crossFieldKeys,
|
|
@@ -2539,8 +2537,8 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2539
2537
|
fieldKind: change.fieldKind,
|
|
2540
2538
|
change: change.change,
|
|
2541
2539
|
},
|
|
2542
|
-
|
|
2543
|
-
|
|
2540
|
+
newTupleBTree(),
|
|
2541
|
+
newTupleBTree(),
|
|
2544
2542
|
newCrossFieldKeyTable(),
|
|
2545
2543
|
this.idAllocator,
|
|
2546
2544
|
getChangeHandler(this.fieldKinds, change.fieldKind).getCrossFieldKeys(
|
|
@@ -2572,8 +2570,8 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2572
2570
|
buildModularChangesetFromNode(
|
|
2573
2571
|
path,
|
|
2574
2572
|
nodeChange,
|
|
2575
|
-
|
|
2576
|
-
|
|
2573
|
+
newTupleBTree(),
|
|
2574
|
+
newTupleBTree(),
|
|
2577
2575
|
newCrossFieldKeyTable(),
|
|
2578
2576
|
this.idAllocator,
|
|
2579
2577
|
),
|
|
@@ -2584,8 +2582,8 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2584
2582
|
function buildModularChangesetFromField(
|
|
2585
2583
|
path: FieldUpPath,
|
|
2586
2584
|
fieldChange: FieldChange,
|
|
2587
|
-
nodeChanges:
|
|
2588
|
-
nodeToParent:
|
|
2585
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
|
|
2586
|
+
nodeToParent: ChangeAtomIdBTree<FieldId>,
|
|
2589
2587
|
crossFieldKeys: CrossFieldKeyTable,
|
|
2590
2588
|
idAllocator: IdAllocator = idAllocatorFromMaxId(),
|
|
2591
2589
|
localCrossFieldKeys: CrossFieldKeyRange[] = [],
|
|
@@ -2646,8 +2644,8 @@ function buildModularChangesetFromField(
|
|
|
2646
2644
|
function buildModularChangesetFromNode(
|
|
2647
2645
|
path: UpPath,
|
|
2648
2646
|
nodeChange: NodeChangeset,
|
|
2649
|
-
nodeChanges:
|
|
2650
|
-
nodeToParent:
|
|
2647
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
|
|
2648
|
+
nodeToParent: ChangeAtomIdBTree<FieldId>,
|
|
2651
2649
|
crossFieldKeys: CrossFieldKeyTable,
|
|
2652
2650
|
idAllocator: IdAllocator,
|
|
2653
2651
|
nodeId: NodeId = { localId: brand(idAllocator.allocate()) },
|
|
@@ -2676,7 +2674,6 @@ function buildModularChangesetFromNode(
|
|
|
2676
2674
|
}
|
|
2677
2675
|
|
|
2678
2676
|
/**
|
|
2679
|
-
* @internal
|
|
2680
2677
|
*/
|
|
2681
2678
|
export interface FieldEditDescription {
|
|
2682
2679
|
type: "field";
|
|
@@ -2686,15 +2683,13 @@ export interface FieldEditDescription {
|
|
|
2686
2683
|
}
|
|
2687
2684
|
|
|
2688
2685
|
/**
|
|
2689
|
-
* @internal
|
|
2690
2686
|
*/
|
|
2691
2687
|
export interface GlobalEditDescription {
|
|
2692
2688
|
type: "global";
|
|
2693
|
-
builds?:
|
|
2689
|
+
builds?: ChangeAtomIdBTree<TreeChunk>;
|
|
2694
2690
|
}
|
|
2695
2691
|
|
|
2696
2692
|
/**
|
|
2697
|
-
* @internal
|
|
2698
2693
|
*/
|
|
2699
2694
|
export type EditDescription = FieldEditDescription | GlobalEditDescription;
|
|
2700
2695
|
|
|
@@ -2745,43 +2740,30 @@ function revisionInfoFromTaggedChange(
|
|
|
2745
2740
|
return revInfos;
|
|
2746
2741
|
}
|
|
2747
2742
|
|
|
2748
|
-
function
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2743
|
+
function mergeBTrees<K extends readonly unknown[], V>(
|
|
2744
|
+
tree1: TupleBTree<K, V> | undefined,
|
|
2745
|
+
tree2: TupleBTree<K, V> | undefined,
|
|
2746
|
+
preferLeft = true,
|
|
2747
|
+
): TupleBTree<K, V> {
|
|
2748
|
+
if (tree1 === undefined) {
|
|
2749
|
+
return tree2 !== undefined ? brand(tree2.clone()) : newTupleBTree<K, V>();
|
|
2750
|
+
}
|
|
2753
2751
|
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
if (revInfos === undefined || revInfos.length !== 1) {
|
|
2758
|
-
return undefined;
|
|
2752
|
+
const result: TupleBTree<K, V> = brand(tree1.clone());
|
|
2753
|
+
if (tree2 === undefined) {
|
|
2754
|
+
return result;
|
|
2759
2755
|
}
|
|
2760
|
-
return revInfos[0].revision;
|
|
2761
|
-
}
|
|
2762
2756
|
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
result.set(k, v);
|
|
2767
|
-
});
|
|
2757
|
+
for (const [key, value] of tree2.entries()) {
|
|
2758
|
+
result.set(key, value, !preferLeft);
|
|
2759
|
+
}
|
|
2768
2760
|
|
|
2769
2761
|
return result;
|
|
2770
2762
|
}
|
|
2771
2763
|
|
|
2772
|
-
function mergeNestedMaps<K1, K2, V>(
|
|
2773
|
-
map1: NestedMap<K1, K2, V>,
|
|
2774
|
-
map2: NestedMap<K1, K2, V>,
|
|
2775
|
-
): NestedMap<K1, K2, V> {
|
|
2776
|
-
const merged: NestedMap<K1, K2, V> = new Map();
|
|
2777
|
-
populateNestedMap(map1, merged, true);
|
|
2778
|
-
populateNestedMap(map2, merged, true);
|
|
2779
|
-
return merged;
|
|
2780
|
-
}
|
|
2781
|
-
|
|
2782
2764
|
function fieldChangeFromId(
|
|
2783
2765
|
fields: FieldChangeMap,
|
|
2784
|
-
nodes:
|
|
2766
|
+
nodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
2785
2767
|
id: FieldId,
|
|
2786
2768
|
): FieldChange {
|
|
2787
2769
|
const fieldMap = fieldMapFromNodeId(fields, nodes, id.nodeId);
|
|
@@ -2790,7 +2772,7 @@ function fieldChangeFromId(
|
|
|
2790
2772
|
|
|
2791
2773
|
function fieldMapFromNodeId(
|
|
2792
2774
|
rootFieldMap: FieldChangeMap,
|
|
2793
|
-
nodes:
|
|
2775
|
+
nodes: ChangeAtomIdBTree<NodeChangeset>,
|
|
2794
2776
|
nodeId: NodeId | undefined,
|
|
2795
2777
|
): FieldChangeMap {
|
|
2796
2778
|
if (nodeId === undefined) {
|
|
@@ -2798,7 +2780,7 @@ function fieldMapFromNodeId(
|
|
|
2798
2780
|
}
|
|
2799
2781
|
|
|
2800
2782
|
const node = nodeChangeFromId(nodes, nodeId);
|
|
2801
|
-
assert(node.fieldChanges !== undefined,
|
|
2783
|
+
assert(node.fieldChanges !== undefined, 0x9c9 /* Expected node to have field changes */);
|
|
2802
2784
|
return node.fieldChanges;
|
|
2803
2785
|
}
|
|
2804
2786
|
|
|
@@ -2814,9 +2796,9 @@ function rebasedNodeIdFromBaseNodeId(table: RebaseTable, baseId: NodeId): NodeId
|
|
|
2814
2796
|
return getFromChangeAtomIdMap(table.baseToRebasedNodeId, baseId) ?? baseId;
|
|
2815
2797
|
}
|
|
2816
2798
|
|
|
2817
|
-
function nodeChangeFromId(nodes:
|
|
2799
|
+
function nodeChangeFromId(nodes: ChangeAtomIdBTree<NodeChangeset>, id: NodeId): NodeChangeset {
|
|
2818
2800
|
const node = getFromChangeAtomIdMap(nodes, id);
|
|
2819
|
-
assert(node !== undefined,
|
|
2801
|
+
assert(node !== undefined, 0x9ca /* Unknown node ID */);
|
|
2820
2802
|
return node;
|
|
2821
2803
|
}
|
|
2822
2804
|
|
|
@@ -2850,7 +2832,7 @@ function replaceFieldIdRevision(
|
|
|
2850
2832
|
|
|
2851
2833
|
export function getParentFieldId(changeset: ModularChangeset, nodeId: NodeId): FieldId {
|
|
2852
2834
|
const parentId = getFromChangeAtomIdMap(changeset.nodeToParent, nodeId);
|
|
2853
|
-
assert(parentId !== undefined,
|
|
2835
|
+
assert(parentId !== undefined, 0x9cb /* Parent field should be defined */);
|
|
2854
2836
|
return normalizeFieldId(parentId, changeset.nodeAliases);
|
|
2855
2837
|
}
|
|
2856
2838
|
|
|
@@ -2951,7 +2933,7 @@ function setInCrossFieldKeyTable(
|
|
|
2951
2933
|
table.set([target, revision, id, count], value);
|
|
2952
2934
|
}
|
|
2953
2935
|
|
|
2954
|
-
function normalizeFieldId(fieldId: FieldId, nodeAliases:
|
|
2936
|
+
function normalizeFieldId(fieldId: FieldId, nodeAliases: ChangeAtomIdBTree<NodeId>): FieldId {
|
|
2955
2937
|
return fieldId.nodeId !== undefined
|
|
2956
2938
|
? { ...fieldId, nodeId: normalizeNodeId(fieldId.nodeId, nodeAliases) }
|
|
2957
2939
|
: fieldId;
|
|
@@ -2960,7 +2942,7 @@ function normalizeFieldId(fieldId: FieldId, nodeAliases: ChangeAtomIdMap<NodeId>
|
|
|
2960
2942
|
/**
|
|
2961
2943
|
* @returns The canonical form of nodeId, according to nodeAliases
|
|
2962
2944
|
*/
|
|
2963
|
-
function normalizeNodeId(nodeId: NodeId, nodeAliases:
|
|
2945
|
+
function normalizeNodeId(nodeId: NodeId, nodeAliases: ChangeAtomIdBTree<NodeId>): NodeId {
|
|
2964
2946
|
let currentId = nodeId;
|
|
2965
2947
|
|
|
2966
2948
|
// eslint-disable-next-line no-constant-condition
|
|
@@ -2979,11 +2961,13 @@ function hasConflicts(change: ModularChangeset): boolean {
|
|
|
2979
2961
|
}
|
|
2980
2962
|
|
|
2981
2963
|
export function newCrossFieldKeyTable(): CrossFieldKeyTable {
|
|
2982
|
-
return
|
|
2964
|
+
return newTupleBTree();
|
|
2983
2965
|
}
|
|
2984
2966
|
|
|
2985
|
-
function
|
|
2986
|
-
|
|
2967
|
+
export function newTupleBTree<K extends readonly unknown[], V>(
|
|
2968
|
+
entries?: [K, V][],
|
|
2969
|
+
): TupleBTree<K, V> {
|
|
2970
|
+
return brand(new BTree<K, V>(entries, compareTuples));
|
|
2987
2971
|
}
|
|
2988
2972
|
|
|
2989
2973
|
// This assumes that the arrays are the same length.
|
|
@@ -2993,7 +2977,14 @@ function compareTuples(arrayA: readonly unknown[], arrayB: readonly unknown[]):
|
|
|
2993
2977
|
const a = arrayA[i] as any;
|
|
2994
2978
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2995
2979
|
const b = arrayB[i] as any;
|
|
2996
|
-
|
|
2980
|
+
|
|
2981
|
+
// Less-than and greater-than always return false if either value is undefined,
|
|
2982
|
+
// so we handle undefined separately, treating it as less than all other values.
|
|
2983
|
+
if (a === undefined && b !== undefined) {
|
|
2984
|
+
return -1;
|
|
2985
|
+
} else if (b === undefined && a !== undefined) {
|
|
2986
|
+
return 1;
|
|
2987
|
+
} else if (a < b) {
|
|
2997
2988
|
return -1;
|
|
2998
2989
|
} else if (a > b) {
|
|
2999
2990
|
return 1;
|
|
@@ -3005,14 +2996,19 @@ function compareTuples(arrayA: readonly unknown[], arrayB: readonly unknown[]):
|
|
|
3005
2996
|
|
|
3006
2997
|
interface ModularChangesetContent {
|
|
3007
2998
|
fieldChanges: FieldChangeMap;
|
|
3008
|
-
nodeChanges:
|
|
3009
|
-
nodeToParent:
|
|
3010
|
-
nodeAliases:
|
|
2999
|
+
nodeChanges: ChangeAtomIdBTree<NodeChangeset>;
|
|
3000
|
+
nodeToParent: ChangeAtomIdBTree<FieldId>;
|
|
3001
|
+
nodeAliases: ChangeAtomIdBTree<NodeId>;
|
|
3011
3002
|
crossFieldKeys: CrossFieldKeyTable;
|
|
3012
3003
|
}
|
|
3013
3004
|
|
|
3014
|
-
function
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3005
|
+
function getFromChangeAtomIdMap<T>(
|
|
3006
|
+
map: ChangeAtomIdBTree<T>,
|
|
3007
|
+
id: ChangeAtomId,
|
|
3008
|
+
): T | undefined {
|
|
3009
|
+
return map.get([id.revision, id.localId]);
|
|
3010
|
+
}
|
|
3011
|
+
|
|
3012
|
+
function setInChangeAtomIdMap<T>(map: ChangeAtomIdBTree<T>, id: ChangeAtomId, value: T): void {
|
|
3013
|
+
map.set([id.revision, id.localId], value);
|
|
3018
3014
|
}
|