@fluidframework/tree 2.117.0 → 3.0.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/CHANGELOG.md +385 -7
- package/README.md +55 -52
- package/{api-extractor.json → api-extractor/api-extractor-model.json} +1 -1
- package/api-report/tree.alpha.api.md +174 -146
- package/api-report/tree.beta.api.md +160 -91
- package/api-report/tree.legacy.beta.api.md +160 -91
- package/api-report/tree.legacy.public.api.md +26 -43
- package/api-report/tree.public.api.md +26 -43
- package/dist/api.d.ts +9 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +2 -3
- package/dist/api.js.map +1 -1
- package/dist/codec/codec.d.ts +2 -2
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +9 -7
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/discriminatedUnions.js +1 -0
- package/dist/codec/discriminatedUnions.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +4 -2
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/componentApi.d.ts.map +1 -1
- package/dist/componentApi.js +20 -17
- package/dist/componentApi.js.map +1 -1
- package/dist/core/change-family/editBuilder.js +1 -0
- package/dist/core/change-family/editBuilder.js.map +1 -1
- package/dist/core/forest/editableForest.js +1 -2
- package/dist/core/forest/editableForest.js.map +1 -1
- package/dist/core/forest/forest.js +3 -3
- 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 +9 -5
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.js +5 -5
- 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 +2 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/revisionTagCodec.d.ts +1 -1
- package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/dist/core/rebase/revisionTagCodec.js +3 -1
- package/dist/core/rebase/revisionTagCodec.js.map +1 -1
- package/dist/core/rebase/types.d.ts +12 -1
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +19 -15
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.js +9 -10
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/schema.js +9 -4
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.js +6 -4
- package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +1 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +62 -55
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/chunk.js +2 -2
- package/dist/core/tree/chunk.js.map +1 -1
- package/dist/core/tree/cursor.js +12 -12
- package/dist/core/tree/cursor.js.map +1 -1
- package/dist/core/tree/deltaUtil.d.ts +34 -9
- package/dist/core/tree/deltaUtil.d.ts.map +1 -1
- package/dist/core/tree/deltaUtil.js +51 -17
- package/dist/core/tree/deltaUtil.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +23 -21
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts +10 -10
- package/dist/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecCommon.js +1 -2
- package/dist/core/tree/detachedFieldIndexCodecCommon.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV1.js +3 -2
- package/dist/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecV2.js +3 -2
- package/dist/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts +3 -3
- package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormatV1.d.ts +1 -1
- package/dist/core/tree/detachedFieldIndexFormatV2.d.ts +2 -2
- package/dist/core/tree/detachedFieldIndexFormatV2.d.ts.map +1 -1
- package/dist/core/tree/index.d.ts +1 -1
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +7 -4
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/mapTree.js +1 -2
- package/dist/core/tree/mapTree.js.map +1 -1
- package/dist/core/tree/pathTree.js +7 -8
- package/dist/core/tree/pathTree.js.map +1 -1
- package/dist/core/tree/persistedTreeTextFormat.d.ts +4 -4
- package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/sparseTree.js +17 -13
- package/dist/core/tree/sparseTree.js.map +1 -1
- package/dist/core/tree/treeTextFormat.js +4 -5
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/core/tree/types.js +3 -3
- package/dist/core/tree/types.js.map +1 -1
- package/dist/core/tree/visitDelta.js +1 -2
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/core/tree/visitorUtils.js +5 -6
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/entrypoints/alpha.d.ts +1 -1
- package/dist/entrypoints/alpha.d.ts.map +1 -1
- package/dist/entrypoints/alpha.js +6 -4
- package/dist/entrypoints/alpha.js.map +1 -1
- package/dist/entrypoints/beta.d.ts +1 -1
- package/dist/entrypoints/beta.d.ts.map +1 -1
- package/dist/entrypoints/beta.js +2 -2
- package/dist/entrypoints/beta.js.map +1 -1
- package/dist/entrypoints/legacy.d.ts +1 -1
- package/dist/entrypoints/legacy.d.ts.map +1 -1
- package/dist/entrypoints/legacy.js +2 -2
- package/dist/entrypoints/legacy.js.map +1 -1
- package/dist/entrypoints/public.d.ts +1 -1
- package/dist/entrypoints/public.d.ts.map +1 -1
- package/dist/entrypoints/public.js +1 -2
- package/dist/entrypoints/public.js.map +1 -1
- package/dist/extensibleUnionNode.d.ts.map +1 -1
- package/dist/extensibleUnionNode.js +1 -1
- package/dist/extensibleUnionNode.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.js +3 -4
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.js +1 -2
- package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js +14 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +28 -20
- 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 +22 -16
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +9 -11
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +15 -7
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +7 -3
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +3 -2
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +2 -0
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +33 -17
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format/versions.js +2 -2
- package/dist/feature-libraries/chunked-forest/codec/format/versions.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js +11 -2
- package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +5 -6
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +2 -3
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js +1 -0
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +73 -15
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/comparison-forest/comparisonForest.js +79 -79
- package/dist/feature-libraries/comparison-forest/comparisonForest.js.map +1 -1
- package/dist/feature-libraries/cursorComparator.d.ts +8 -0
- package/dist/feature-libraries/cursorComparator.d.ts.map +1 -1
- package/dist/feature-libraries/cursorComparator.js +43 -10
- package/dist/feature-libraries/cursorComparator.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +6 -3
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +2 -2
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js +2 -0
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/dist/feature-libraries/deltaUtils.js +2 -3
- package/dist/feature-libraries/deltaUtils.js.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js +2 -0
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +1 -2
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +19 -3
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +2 -2
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +14 -14
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +28 -30
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +24 -23
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/observer.js +2 -2
- package/dist/feature-libraries/flex-tree/observer.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +5 -5
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +122 -117
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +49 -32
- package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/dist/feature-libraries/forest-summary/summaryTypes.js +2 -3
- package/dist/feature-libraries/forest-summary/summaryTypes.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +1 -1
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +35 -31
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.js +6 -7
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +2 -3
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js +6 -7
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js +4 -4
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -12
- package/dist/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +63 -10
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js +3 -3
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.js +10 -0
- package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/filterEdits.d.ts +13 -0
- package/dist/feature-libraries/modular-schema/filterEdits.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/filterEdits.js +51 -0
- package/dist/feature-libraries/modular-schema/filterEdits.js.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +7 -4
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +1 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js +1 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/invert.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/invert.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/invert.js +5 -30
- package/dist/feature-libraries/modular-schema/invert.js.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.js +4 -5
- package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/dist/feature-libraries/modular-schema/minimizeModularChange.d.ts +5 -7
- package/dist/feature-libraries/modular-schema/minimizeModularChange.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/minimizeModularChange.js +459 -10
- package/dist/feature-libraries/modular-schema/minimizeModularChange.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +14 -15
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js +1 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +2 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +1 -10
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +30 -97
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts +9 -9
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +4 -4
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js +1 -2
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeUtils.d.ts +13 -1
- package/dist/feature-libraries/modular-schema/modularChangeUtils.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeUtils.js +115 -12
- package/dist/feature-libraries/modular-schema/modularChangeUtils.js.map +1 -1
- package/dist/feature-libraries/modular-schema/prune.d.ts +2 -3
- package/dist/feature-libraries/modular-schema/prune.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/prune.js +25 -8
- package/dist/feature-libraries/modular-schema/prune.js.map +1 -1
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js +1 -3
- package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/dist/feature-libraries/node-identifier/nodeIdentifier.js +2 -2
- package/dist/feature-libraries/node-identifier/nodeIdentifier.js.map +1 -1
- package/dist/feature-libraries/node-identifier/nodeIdentifierManager.js +3 -3
- package/dist/feature-libraries/node-identifier/nodeIdentifierManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +274 -267
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +27 -35
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +7 -7
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +8 -8
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +1 -2
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +1 -2
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +3 -0
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/schemaChecker.d.ts +9 -19
- package/dist/feature-libraries/schemaChecker.d.ts.map +1 -1
- package/dist/feature-libraries/schemaChecker.js +135 -51
- package/dist/feature-libraries/schemaChecker.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +8 -2
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/filterEdits.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/filterEdits.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/filterEdits.js +29 -11
- package/dist/feature-libraries/sequence-field/filterEdits.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.d.ts +102 -102
- package/dist/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +79 -79
- package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV3.d.ts +56 -56
- package/dist/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +1 -2
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markListFactory.js +3 -4
- package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js +4 -2
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +9 -9
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/prune.js +1 -2
- package/dist/feature-libraries/sequence-field/prune.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +7 -2
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +1 -2
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +1 -2
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +2 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +1 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +9 -9
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +1 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +54 -67
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.js +19 -15
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.js +8 -8
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/feature-libraries/valueUtilities.js +4 -5
- package/dist/feature-libraries/valueUtilities.js.map +1 -1
- package/dist/index.d.ts +4 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -9
- 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/serializableDomainSchema.d.ts +1 -1
- package/dist/shared-tree/history.d.ts.map +1 -1
- package/dist/shared-tree/history.js +32 -13
- package/dist/shared-tree/history.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts +27 -3
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +36 -7
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +2 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +6 -2
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/isAuditableFromOutcome.js +1 -2
- package/dist/shared-tree/isAuditableFromOutcome.js.map +1 -1
- package/dist/shared-tree/schematizeTree.js +3 -4
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +14 -4
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +107 -37
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +28 -19
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +3 -3
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js +12 -4
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +11 -8
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.js +2 -3
- package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +2 -0
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/transactionMinimize.d.ts.map +1 -1
- package/dist/shared-tree/transactionMinimize.js +2 -1
- package/dist/shared-tree/transactionMinimize.js.map +1 -1
- package/dist/shared-tree/transactionPostProcessor.js +2 -3
- package/dist/shared-tree/transactionPostProcessor.js.map +1 -1
- package/dist/shared-tree/tree.js +2 -2
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +5 -16
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +18 -11
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/{lib/simple-tree/api → dist/shared-tree}/treeBeta.d.ts +8 -65
- package/dist/shared-tree/treeBeta.d.ts.map +1 -0
- package/dist/shared-tree/treeBeta.js +70 -0
- package/dist/shared-tree/treeBeta.js.map +1 -0
- package/dist/shared-tree/treeCheckout.d.ts +5 -0
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +986 -907
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree/unhydratedTreeContext.js +3 -4
- package/dist/shared-tree/unhydratedTreeContext.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +24 -20
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchCommitCounter.js +35 -32
- package/dist/shared-tree-core/branchCommitCounter.js.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js +9 -8
- package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/dist/shared-tree-core/branchIdCodec.js +2 -3
- package/dist/shared-tree-core/branchIdCodec.js.map +1 -1
- package/dist/shared-tree-core/customMetadataCodec.js +2 -3
- package/dist/shared-tree-core/customMetadataCodec.js.map +1 -1
- package/dist/shared-tree-core/customMetadataFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +11 -9
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +73 -44
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +3 -3
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.js +33 -36
- package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js +1 -2
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js +1 -2
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts +11 -11
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +5 -4
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatVSharedBranches.d.ts +10 -9
- package/dist/shared-tree-core/editManagerFormatVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +6 -1
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js +1 -2
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.js +1 -2
- package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +3 -3
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +3 -2
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormatVSharedBranches.d.ts +3 -2
- package/dist/shared-tree-core/messageFormatVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +44 -22
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/summaryTypes.js +2 -2
- package/dist/shared-tree-core/summaryTypes.js.map +1 -1
- package/dist/shared-tree-core/transaction.js +36 -39
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/shared-tree-core/versionedSummarizer.js +4 -0
- package/dist/shared-tree-core/versionedSummarizer.js.map +1 -1
- package/dist/simple-tree/api/cloneTree.d.ts +11 -0
- package/dist/simple-tree/api/cloneTree.d.ts.map +1 -0
- package/dist/simple-tree/api/cloneTree.js +31 -0
- package/dist/simple-tree/api/cloneTree.js.map +1 -0
- package/dist/simple-tree/api/conciseTree.js +2 -3
- package/dist/simple-tree/api/conciseTree.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +4 -4
- package/dist/simple-tree/api/configuration.d.ts.map +1 -1
- package/dist/simple-tree/api/configuration.js +21 -2
- package/dist/simple-tree/api/configuration.js.map +1 -1
- package/dist/simple-tree/api/create.js +2 -3
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/customTree.js +6 -6
- package/dist/simple-tree/api/customTree.js.map +1 -1
- package/dist/simple-tree/api/dirtyIndex.js +1 -2
- package/dist/simple-tree/api/dirtyIndex.js.map +1 -1
- package/dist/simple-tree/api/discrepancies.d.ts +36 -3
- package/dist/simple-tree/api/discrepancies.d.ts.map +1 -1
- package/dist/simple-tree/api/discrepancies.js +42 -17
- package/dist/simple-tree/api/discrepancies.js.map +1 -1
- package/dist/simple-tree/api/eraseSchemaDetails.js +2 -3
- package/dist/simple-tree/api/eraseSchemaDetails.js.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.js +1 -2
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js +1 -2
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/dist/simple-tree/api/identifierIndex.js +1 -2
- package/dist/simple-tree/api/identifierIndex.js.map +1 -1
- package/dist/simple-tree/api/incrementalAllowedTypes.js +2 -2
- package/dist/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +5 -4
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +5 -7
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.d.ts +22 -3
- package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCompatibilityTester.js +140 -11
- package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts +3 -7
- package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaCreationUtilities.js +6 -9
- package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +4 -9
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +13 -12
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +20 -22
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +78 -81
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts +7 -9
- package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.js +32 -35
- package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js +1 -2
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js +1 -2
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/schemaStatics.d.ts +7 -7
- package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaCodec.js +2 -3
- package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +2 -3
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js +1 -2
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +46 -2
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js +54 -12
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +2 -3
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/transactionTypes.d.ts +4 -4
- package/dist/simple-tree/api/transactionTypes.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +243 -58
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +3 -5
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeChangeEvents.d.ts +16 -4
- package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
- package/dist/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/dist/simple-tree/api/treeChangeEventsBeta.d.ts +209 -0
- package/dist/simple-tree/api/treeChangeEventsBeta.d.ts.map +1 -0
- package/dist/simple-tree/api/{treeAlpha.js → treeChangeEventsBeta.js} +1 -1
- package/dist/simple-tree/api/treeChangeEventsBeta.js.map +1 -0
- package/dist/simple-tree/api/treeNodeApi.d.ts +1 -75
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +7 -7
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +8 -6
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +5 -6
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/core/allowedTypes.js +22 -13
- package/dist/simple-tree/core/allowedTypes.js.map +1 -1
- package/dist/simple-tree/core/context.js +3 -0
- package/dist/simple-tree/core/context.js.map +1 -1
- package/dist/simple-tree/core/flexList.js +2 -3
- package/dist/simple-tree/core/flexList.js.map +1 -1
- package/dist/simple-tree/core/getOrCreateNode.js +2 -3
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +1 -1
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +2 -2
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/toStored.d.ts +7 -0
- package/dist/simple-tree/core/toStored.d.ts.map +1 -1
- package/dist/simple-tree/core/toStored.js.map +1 -1
- package/dist/simple-tree/core/treeNode.d.ts +3 -4
- package/dist/simple-tree/core/treeNode.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNode.js +31 -32
- package/dist/simple-tree/core/treeNode.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +194 -192
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js +3 -3
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeValid.js +25 -25
- package/dist/simple-tree/core/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/core/types.js +1 -2
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +177 -150
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/core/walkSchema.js +2 -3
- package/dist/simple-tree/core/walkSchema.js.map +1 -1
- package/dist/simple-tree/core/withType.d.ts +7 -9
- package/dist/simple-tree/core/withType.d.ts.map +1 -1
- package/dist/simple-tree/core/withType.js +6 -7
- package/dist/simple-tree/core/withType.js.map +1 -1
- package/dist/simple-tree/createContext.js +2 -3
- package/dist/simple-tree/createContext.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +33 -15
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/getTreeNodeForField.js +1 -2
- package/dist/simple-tree/getTreeNodeForField.js.map +1 -1
- package/dist/simple-tree/index.d.ts +2 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +6 -8
- package/dist/simple-tree/index.js.map +1 -1
- 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 +18 -17
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +3 -2
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +31 -33
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js +2 -2
- package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
- package/dist/simple-tree/node-kinds/common.js +1 -2
- package/dist/simple-tree/node-kinds/common.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts +6 -6
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +10 -16
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.js +2 -2
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +27 -28
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.js +2 -2
- package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +10 -13
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +3 -2
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.js +2 -2
- package/dist/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
- package/dist/simple-tree/prepareForInsertion.js +4 -5
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +11 -11
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/simple-tree/treeSchema.js +1 -2
- package/dist/simple-tree/treeSchema.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +3 -4
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/simple-tree/walkFieldSchema.js +1 -2
- package/dist/simple-tree/walkFieldSchema.js.map +1 -1
- package/dist/tableSchema.d.ts +2 -87
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +309 -275
- package/dist/tableSchema.js.map +1 -1
- package/dist/text/codePointUtils.d.ts +16 -3
- package/dist/text/codePointUtils.d.ts.map +1 -1
- package/dist/text/codePointUtils.js +24 -13
- package/dist/text/codePointUtils.js.map +1 -1
- package/dist/text/textDomain.d.ts +7 -1
- package/dist/text/textDomain.d.ts.map +1 -1
- package/dist/text/textDomain.js +32 -28
- package/dist/text/textDomain.js.map +1 -1
- package/dist/text/textDomainFormatted.d.ts.map +1 -1
- package/dist/text/textDomainFormatted.js +45 -34
- package/dist/text/textDomainFormatted.js.map +1 -1
- package/dist/text/textDomainFormattedDefault.js +2 -5
- package/dist/text/textDomainFormattedDefault.js.map +1 -1
- package/dist/treeDataStore.js +2 -3
- package/dist/treeDataStore.js.map +1 -1
- package/dist/treeFactory.js +7 -7
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/arrayUtilities.js +5 -6
- package/dist/util/arrayUtilities.js.map +1 -1
- package/dist/util/bTreeUtils.js +3 -4
- package/dist/util/bTreeUtils.js.map +1 -1
- package/dist/util/brand.js +6 -5
- package/dist/util/brand.js.map +1 -1
- package/dist/util/brandedMap.js +2 -3
- package/dist/util/brandedMap.js.map +1 -1
- package/dist/util/breakable.d.ts.map +1 -1
- package/dist/util/breakable.js +7 -4
- package/dist/util/breakable.js.map +1 -1
- package/dist/util/cloneWithReplacements.js +1 -2
- package/dist/util/cloneWithReplacements.js.map +1 -1
- package/dist/util/compressedIds.js +29 -7
- package/dist/util/compressedIds.js.map +1 -1
- package/dist/util/idAllocator.js +3 -3
- package/dist/util/idAllocator.js.map +1 -1
- package/dist/util/nestedMap.js +15 -17
- package/dist/util/nestedMap.js.map +1 -1
- package/dist/util/nestedSet.js +2 -3
- package/dist/util/nestedSet.js.map +1 -1
- package/dist/util/offsetList.js +2 -4
- package/dist/util/offsetList.js.map +1 -1
- package/dist/util/opaque.js +2 -3
- package/dist/util/opaque.js.map +1 -1
- package/dist/util/rangeMap.js +6 -2
- package/dist/util/rangeMap.js.map +1 -1
- package/dist/util/readSnapshotBlob.d.ts.map +1 -1
- package/dist/util/referenceCounting.js +1 -0
- package/dist/util/referenceCounting.js.map +1 -1
- package/dist/util/stackyIterator.js +3 -2
- package/dist/util/stackyIterator.js.map +1 -1
- package/dist/util/typeUtils.js +1 -2
- package/dist/util/typeUtils.js.map +1 -1
- package/dist/util/typeboxBrand.js +2 -3
- package/dist/util/typeboxBrand.js.map +1 -1
- package/dist/util/utils.d.ts +2 -2
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +32 -32
- package/dist/util/utils.js.map +1 -1
- package/lib/api.d.ts +9 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js.map +1 -1
- package/lib/codec/codec.d.ts +2 -2
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +2 -0
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/discriminatedUnions.js +1 -0
- package/lib/codec/discriminatedUnions.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +2 -0
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/componentApi.d.ts.map +1 -1
- package/lib/componentApi.js +20 -17
- package/lib/componentApi.js.map +1 -1
- package/lib/core/change-family/editBuilder.js +1 -0
- package/lib/core/change-family/editBuilder.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/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/revisionTagCodec.js +3 -1
- package/lib/core/rebase/revisionTagCodec.js.map +1 -1
- package/lib/core/rebase/types.d.ts +12 -1
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +3 -0
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/schema-stored/schema.js +5 -0
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.js +4 -2
- package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/lib/core/tree/anchorSet.js +61 -54
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/deltaUtil.d.ts +34 -9
- package/lib/core/tree/deltaUtil.d.ts.map +1 -1
- package/lib/core/tree/deltaUtil.js +41 -10
- package/lib/core/tree/deltaUtil.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +23 -21
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts +10 -10
- package/lib/core/tree/detachedFieldIndexCodecCommon.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV1.js +2 -0
- package/lib/core/tree/detachedFieldIndexCodecV1.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecV2.js +2 -0
- package/lib/core/tree/detachedFieldIndexCodecV2.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts +3 -3
- package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
- package/lib/core/tree/index.d.ts +1 -1
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/persistedTreeTextFormat.d.ts +4 -4
- package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/sparseTree.js +15 -11
- package/lib/core/tree/sparseTree.js.map +1 -1
- package/lib/entrypoints/alpha.d.ts +1 -1
- package/lib/entrypoints/alpha.d.ts.map +1 -1
- package/lib/entrypoints/alpha.js +1 -1
- package/lib/entrypoints/alpha.js.map +1 -1
- package/lib/entrypoints/beta.d.ts +1 -1
- package/lib/entrypoints/beta.d.ts.map +1 -1
- package/lib/entrypoints/beta.js +1 -1
- package/lib/entrypoints/beta.js.map +1 -1
- package/lib/entrypoints/legacy.d.ts +1 -1
- package/lib/entrypoints/legacy.d.ts.map +1 -1
- package/lib/entrypoints/legacy.js +1 -1
- package/lib/entrypoints/legacy.js.map +1 -1
- package/lib/entrypoints/public.d.ts +1 -1
- package/lib/entrypoints/public.d.ts.map +1 -1
- package/lib/entrypoints/public.js +1 -1
- package/lib/entrypoints/public.js.map +1 -1
- package/lib/extensibleUnionNode.d.ts.map +1 -1
- package/lib/extensibleUnionNode.js +2 -2
- package/lib/extensibleUnionNode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js +14 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +14 -6
- 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 +18 -12
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +1 -3
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +8 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +4 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +2 -0
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +28 -12
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js +9 -0
- package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js +1 -0
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +71 -13
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/comparison-forest/comparisonForest.js +79 -79
- package/lib/feature-libraries/comparison-forest/comparisonForest.js.map +1 -1
- package/lib/feature-libraries/cursorComparator.d.ts +8 -0
- package/lib/feature-libraries/cursorComparator.d.ts.map +1 -1
- package/lib/feature-libraries/cursorComparator.js +43 -9
- package/lib/feature-libraries/cursorComparator.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +3 -0
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js +2 -0
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js +2 -0
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +19 -3
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +12 -12
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +25 -27
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +22 -21
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +122 -117
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +49 -32
- package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +1 -1
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +33 -29
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js +14 -12
- package/lib/feature-libraries/modular-schema/defaultRevisionReplacer.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +63 -10
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.js +10 -0
- package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/filterEdits.d.ts +13 -0
- package/lib/feature-libraries/modular-schema/filterEdits.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/filterEdits.js +46 -0
- package/lib/feature-libraries/modular-schema/filterEdits.js.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +5 -2
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/invert.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/invert.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/invert.js +6 -30
- package/lib/feature-libraries/modular-schema/invert.js.map +1 -1
- package/lib/feature-libraries/modular-schema/minimizeModularChange.d.ts +5 -7
- package/lib/feature-libraries/modular-schema/minimizeModularChange.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/minimizeModularChange.js +458 -8
- package/lib/feature-libraries/modular-schema/minimizeModularChange.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +1 -10
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +20 -85
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeUtils.d.ts +13 -1
- package/lib/feature-libraries/modular-schema/modularChangeUtils.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeUtils.js +100 -3
- package/lib/feature-libraries/modular-schema/modularChangeUtils.js.map +1 -1
- package/lib/feature-libraries/modular-schema/prune.d.ts +2 -3
- package/lib/feature-libraries/modular-schema/prune.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/prune.js +25 -7
- package/lib/feature-libraries/modular-schema/prune.js.map +1 -1
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js +1 -3
- package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
- package/lib/feature-libraries/node-identifier/nodeIdentifierManager.js +1 -0
- package/lib/feature-libraries/node-identifier/nodeIdentifierManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +273 -266
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +24 -32
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +3 -0
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/schemaChecker.d.ts +9 -19
- package/lib/feature-libraries/schemaChecker.d.ts.map +1 -1
- package/lib/feature-libraries/schemaChecker.js +133 -49
- package/lib/feature-libraries/schemaChecker.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +6 -0
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/filterEdits.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/filterEdits.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/filterEdits.js +31 -12
- package/lib/feature-libraries/sequence-field/filterEdits.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/formatV1.d.ts.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/formatV3.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markListFactory.js +3 -4
- package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js +4 -2
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +6 -0
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +9 -9
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +3 -15
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.js +13 -9
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/index.d.ts +4 -29
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -17
- 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/serializableDomainSchema.d.ts +1 -1
- package/lib/shared-tree/history.d.ts.map +1 -1
- package/lib/shared-tree/history.js +32 -13
- package/lib/shared-tree/history.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts +27 -3
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +30 -2
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +2 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +2 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +14 -4
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +109 -39
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +24 -15
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js +12 -4
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +6 -3
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +2 -0
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/transactionMinimize.d.ts.map +1 -1
- package/lib/shared-tree/transactionMinimize.js +4 -3
- package/lib/shared-tree/transactionMinimize.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +5 -16
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +13 -6
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/{dist/simple-tree/api → lib/shared-tree}/treeBeta.d.ts +8 -65
- package/lib/shared-tree/treeBeta.d.ts.map +1 -0
- package/lib/shared-tree/treeBeta.js +64 -0
- package/lib/shared-tree/treeBeta.js.map +1 -0
- package/lib/shared-tree/treeCheckout.d.ts +5 -0
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +985 -906
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree/unhydratedTreeContext.js +3 -4
- package/lib/shared-tree/unhydratedTreeContext.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +22 -18
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchCommitCounter.js +35 -32
- package/lib/shared-tree-core/branchCommitCounter.js.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js +9 -8
- package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/lib/shared-tree-core/customMetadataFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +11 -9
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +73 -44
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.js +32 -34
- package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts +4 -4
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatVSharedBranches.d.ts +2 -1
- package/lib/shared-tree-core/editManagerFormatVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +6 -1
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +2 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormatVSharedBranches.d.ts +2 -1
- package/lib/shared-tree-core/messageFormatVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +45 -23
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.js +36 -39
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/shared-tree-core/versionedSummarizer.js +4 -0
- package/lib/shared-tree-core/versionedSummarizer.js.map +1 -1
- package/lib/simple-tree/api/cloneTree.d.ts +11 -0
- package/lib/simple-tree/api/cloneTree.d.ts.map +1 -0
- package/lib/simple-tree/api/cloneTree.js +28 -0
- package/lib/simple-tree/api/cloneTree.js.map +1 -0
- package/lib/simple-tree/api/configuration.d.ts +4 -4
- package/lib/simple-tree/api/configuration.d.ts.map +1 -1
- package/lib/simple-tree/api/configuration.js +19 -0
- package/lib/simple-tree/api/configuration.js.map +1 -1
- package/lib/simple-tree/api/discrepancies.d.ts +36 -3
- package/lib/simple-tree/api/discrepancies.d.ts.map +1 -1
- package/lib/simple-tree/api/discrepancies.js +40 -14
- package/lib/simple-tree/api/discrepancies.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +5 -4
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +2 -2
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.d.ts +22 -3
- package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCompatibilityTester.js +136 -7
- package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts +3 -7
- package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaCreationUtilities.js +1 -3
- package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +4 -9
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +9 -8
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +18 -20
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +78 -81
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts +7 -9
- package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.js +32 -35
- package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/lib/simple-tree/api/schemaStatics.d.ts +7 -7
- package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -1
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +46 -2
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js +48 -6
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/lib/simple-tree/api/transactionTypes.d.ts +4 -4
- package/lib/simple-tree/api/transactionTypes.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +243 -58
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +2 -3
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeChangeEvents.d.ts +16 -4
- package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
- package/lib/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/lib/simple-tree/api/treeChangeEventsBeta.d.ts +209 -0
- package/lib/simple-tree/api/treeChangeEventsBeta.d.ts.map +1 -0
- package/lib/simple-tree/api/{treeAlpha.js → treeChangeEventsBeta.js} +1 -1
- package/lib/simple-tree/api/treeChangeEventsBeta.js.map +1 -0
- package/lib/simple-tree/api/treeNodeApi.d.ts +1 -75
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +1 -1
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +8 -6
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/core/allowedTypes.js +12 -3
- package/lib/simple-tree/core/allowedTypes.js.map +1 -1
- package/lib/simple-tree/core/context.js +3 -0
- package/lib/simple-tree/core/context.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +1 -1
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +1 -1
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/toStored.d.ts +7 -0
- package/lib/simple-tree/core/toStored.d.ts.map +1 -1
- package/lib/simple-tree/core/toStored.js.map +1 -1
- package/lib/simple-tree/core/treeNode.d.ts +3 -4
- package/lib/simple-tree/core/treeNode.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNode.js +29 -30
- package/lib/simple-tree/core/treeNode.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +181 -179
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeValid.js +22 -22
- package/lib/simple-tree/core/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +173 -146
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/core/withType.d.ts +7 -9
- package/lib/simple-tree/core/withType.d.ts.map +1 -1
- package/lib/simple-tree/core/withType.js +5 -6
- package/lib/simple-tree/core/withType.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +23 -5
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +2 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +2 -2
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +16 -15
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +3 -2
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +28 -32
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts +6 -6
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +10 -17
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +25 -28
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +1 -1
- package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +10 -14
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +3 -2
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
- package/lib/tableSchema.d.ts +2 -87
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +309 -275
- package/lib/tableSchema.js.map +1 -1
- package/lib/text/codePointUtils.d.ts +16 -3
- package/lib/text/codePointUtils.d.ts.map +1 -1
- package/lib/text/codePointUtils.js +22 -10
- package/lib/text/codePointUtils.js.map +1 -1
- package/lib/text/textDomain.d.ts +7 -1
- package/lib/text/textDomain.d.ts.map +1 -1
- package/lib/text/textDomain.js +21 -17
- package/lib/text/textDomain.js.map +1 -1
- package/lib/text/textDomainFormatted.d.ts.map +1 -1
- package/lib/text/textDomainFormatted.js +43 -32
- package/lib/text/textDomainFormatted.js.map +1 -1
- package/lib/text/textDomainFormattedDefault.js +2 -5
- package/lib/text/textDomainFormattedDefault.js.map +1 -1
- package/lib/util/brand.js +1 -0
- package/lib/util/brand.js.map +1 -1
- package/lib/util/breakable.d.ts.map +1 -1
- package/lib/util/breakable.js +3 -0
- package/lib/util/breakable.js.map +1 -1
- package/lib/util/compressedIds.js +22 -0
- package/lib/util/compressedIds.js.map +1 -1
- package/lib/util/nestedMap.js +2 -4
- package/lib/util/nestedMap.js.map +1 -1
- package/lib/util/offsetList.js +2 -4
- package/lib/util/offsetList.js.map +1 -1
- package/lib/util/rangeMap.js +4 -0
- package/lib/util/rangeMap.js.map +1 -1
- package/lib/util/readSnapshotBlob.d.ts.map +1 -1
- package/lib/util/referenceCounting.js +1 -0
- package/lib/util/referenceCounting.js.map +1 -1
- package/lib/util/stackyIterator.js +3 -2
- package/lib/util/stackyIterator.js.map +1 -1
- package/lib/util/utils.d.ts +2 -2
- package/lib/util/utils.d.ts.map +1 -1
- package/package.json +67 -95
- package/src/api.ts +11 -0
- package/src/core/index.ts +6 -2
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/types.ts +16 -1
- package/src/core/tree/anchorSet.ts +2 -2
- package/src/core/tree/deltaUtil.ts +67 -13
- package/src/core/tree/index.ts +5 -2
- package/src/entrypoints/alpha.ts +21 -20
- package/src/entrypoints/beta.ts +14 -5
- package/src/entrypoints/legacy.ts +14 -5
- package/src/entrypoints/public.ts +1 -5
- package/src/extensibleUnionNode.ts +1 -2
- package/src/feature-libraries/cursorComparator.ts +57 -9
- package/src/feature-libraries/index.ts +1 -1
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +77 -12
- package/src/feature-libraries/modular-schema/filterEdits.ts +108 -0
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +7 -4
- package/src/feature-libraries/modular-schema/index.ts +5 -2
- package/src/feature-libraries/modular-schema/invert.ts +16 -61
- package/src/feature-libraries/modular-schema/minimizeModularChange.ts +831 -10
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +10 -124
- package/src/feature-libraries/modular-schema/modularChangeUtils.ts +164 -2
- package/src/feature-libraries/modular-schema/prune.ts +52 -10
- package/src/feature-libraries/optional-field/optionalField.ts +30 -42
- package/src/feature-libraries/schemaChecker.ts +198 -82
- package/src/feature-libraries/sequence-field/filterEdits.ts +62 -26
- package/src/feature-libraries/sequence-field/utils.ts +7 -19
- package/src/index.ts +10 -39
- package/src/internalTypes.ts +1 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/history.ts +41 -19
- package/src/shared-tree/independentView.ts +40 -3
- package/src/shared-tree/index.ts +5 -1
- package/src/shared-tree/schematizingTreeView.ts +77 -23
- package/src/shared-tree/sharedTree.ts +2 -1
- package/src/shared-tree/transactionMinimize.ts +13 -4
- package/src/shared-tree/treeAlpha.ts +17 -31
- package/src/{simple-tree/api → shared-tree}/treeBeta.ts +56 -167
- package/src/shared-tree/treeCheckout.ts +82 -9
- package/src/shared-tree-core/editManager.ts +16 -8
- package/src/shared-tree-core/editManagerCodecsCommons.ts +30 -34
- package/src/shared-tree-core/editManagerCodecsV1toV4.ts +1 -1
- package/src/shared-tree-core/editManagerCodecsVSharedBranches.ts +2 -2
- package/src/simple-tree/api/cloneTree.ts +47 -0
- package/src/simple-tree/api/configuration.ts +4 -4
- package/src/simple-tree/api/discrepancies.ts +100 -5
- package/src/simple-tree/api/index.ts +22 -22
- package/src/simple-tree/api/schemaCompatibilityTester.ts +185 -11
- package/src/simple-tree/api/schemaFactoryAlpha.ts +2 -2
- package/src/simple-tree/api/snapshotCompatibilityChecker.ts +87 -6
- package/src/simple-tree/api/transactionTypes.ts +4 -4
- package/src/simple-tree/api/tree.ts +318 -87
- package/src/simple-tree/api/treeChangeEvents.ts +16 -4
- package/src/simple-tree/api/treeChangeEventsBeta.ts +245 -0
- package/src/simple-tree/api/treeNodeApi.ts +6 -85
- package/src/simple-tree/api/typesUnsafe.ts +8 -6
- package/src/simple-tree/core/index.ts +1 -1
- package/src/simple-tree/core/toStored.ts +8 -0
- package/src/simple-tree/core/treeNode.ts +3 -10
- package/src/simple-tree/core/treeNodeValid.ts +3 -1
- package/src/simple-tree/core/withType.ts +8 -11
- package/src/simple-tree/index.ts +7 -7
- package/src/simple-tree/node-kinds/array/arrayNode.ts +14 -12
- package/src/simple-tree/node-kinds/map/mapNode.ts +14 -15
- package/src/simple-tree/node-kinds/object/objectNode.ts +3 -6
- package/src/simple-tree/node-kinds/record/recordNode.ts +6 -8
- package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +2 -1
- package/src/tableSchema.ts +8 -187
- package/src/text/codePointUtils.ts +25 -14
- package/src/text/textDomain.ts +15 -2
- package/src/text/textDomainFormatted.ts +9 -4
- package/tsconfig.json +1 -1
- package/alpha.d.ts +0 -11
- package/beta.d.ts +0 -11
- package/dist/simple-tree/api/treeAlpha.d.ts +0 -126
- package/dist/simple-tree/api/treeAlpha.d.ts.map +0 -1
- package/dist/simple-tree/api/treeAlpha.js.map +0 -1
- package/dist/simple-tree/api/treeBeta.d.ts.map +0 -1
- package/dist/simple-tree/api/treeBeta.js +0 -83
- package/dist/simple-tree/api/treeBeta.js.map +0 -1
- package/docs/main/runtime-schema-upgrade.md +0 -208
- package/internal.d.ts +0 -11
- package/legacy.d.ts +0 -11
- package/lib/simple-tree/api/treeAlpha.d.ts +0 -126
- package/lib/simple-tree/api/treeAlpha.d.ts.map +0 -1
- package/lib/simple-tree/api/treeAlpha.js.map +0 -1
- package/lib/simple-tree/api/treeBeta.d.ts.map +0 -1
- package/lib/simple-tree/api/treeBeta.js +0 -77
- package/lib/simple-tree/api/treeBeta.js.map +0 -1
- package/src/simple-tree/api/treeAlpha.ts +0 -153
- /package/api-extractor/{api-extractor.current.json → api-extractor-report.current.json} +0 -0
- /package/api-extractor/{api-extractor.legacy.json → api-extractor-report.legacy.json} +0 -0
|
@@ -19,6 +19,21 @@ const schematizeTree_js_1 = require("./schematizeTree.js");
|
|
|
19
19
|
* exists and error if creating a second.
|
|
20
20
|
*/
|
|
21
21
|
exports.ViewSlot = (0, index_js_1.anchorSlot)();
|
|
22
|
+
function throwIfSchemaIsIncompatible(compatibility) {
|
|
23
|
+
if (compatibility.canView) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const resolution = compatibility.canInitialize
|
|
27
|
+
? "The document is uninitialized; call TreeView.initialize() before reading or writing TreeView.root."
|
|
28
|
+
: compatibility.canUpgrade
|
|
29
|
+
? "The stored schema can be upgraded; call TreeView.upgradeSchema() before reading or writing TreeView.root."
|
|
30
|
+
: "The schemas cannot be upgraded automatically. Use a compatible view schema or explicitly migrate the document schema and data.";
|
|
31
|
+
throw new internal_2.UsageError(`TreeView.root is unavailable because the view schema is incompatible with the stored schema. ${resolution}`, (0, internal_2.tagSchemaArtifacts)({
|
|
32
|
+
schemaIncompatibilityDetails: compatibility.discrepancies === undefined
|
|
33
|
+
? undefined
|
|
34
|
+
: JSON.stringify(compatibility.discrepancies),
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
22
37
|
/**
|
|
23
38
|
* Implementation of TreeView wrapping a FlexTreeView.
|
|
24
39
|
*/
|
|
@@ -27,29 +42,70 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
27
42
|
let _classDescriptor;
|
|
28
43
|
let _classExtraInitializers = [];
|
|
29
44
|
let _classThis;
|
|
30
|
-
var SchematizingSimpleTreeView =
|
|
45
|
+
var SchematizingSimpleTreeView = class {
|
|
46
|
+
static { _classThis = this; }
|
|
47
|
+
static {
|
|
48
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
49
|
+
tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
50
|
+
SchematizingSimpleTreeView = _classThis = _classDescriptor.value;
|
|
51
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
52
|
+
tslib_1.__runInitializers(_classThis, _classExtraInitializers);
|
|
53
|
+
}
|
|
54
|
+
checkout;
|
|
55
|
+
config;
|
|
56
|
+
nodeKeyManager;
|
|
57
|
+
onDispose;
|
|
58
|
+
/**
|
|
59
|
+
* This is set to undefined when this object is disposed or the view schema does not support viewing the document's stored schema.
|
|
60
|
+
*
|
|
61
|
+
* The view schema may be incompatible with the stored schema. Use `compatibility` to check.
|
|
62
|
+
*/
|
|
63
|
+
flexTreeContext;
|
|
64
|
+
/**
|
|
65
|
+
* Undefined if and only if uninitialized or disposed.
|
|
66
|
+
*/
|
|
67
|
+
currentCompatibility;
|
|
68
|
+
/**
|
|
69
|
+
* Cached map of upgrade statuses, computed alongside compatibility.
|
|
70
|
+
* @remarks Undefined if and only if uninitialized or disposed.
|
|
71
|
+
*/
|
|
72
|
+
currentEnabledUpgrades;
|
|
73
|
+
events = (0, client_utils_1.createEmitter)();
|
|
74
|
+
/**
|
|
75
|
+
* The schema for this view, captured at construction time for compatibility checking.
|
|
76
|
+
*/
|
|
77
|
+
viewSchema;
|
|
78
|
+
/**
|
|
79
|
+
* Stored-schema generation policy from the view configuration, frozen at construction time.
|
|
80
|
+
*/
|
|
81
|
+
stagedUpgradePolicy;
|
|
82
|
+
/**
|
|
83
|
+
* Events to unregister upon flex-tree view disposal.
|
|
84
|
+
*/
|
|
85
|
+
flexTreeViewUnregisterCallbacks = new Set();
|
|
86
|
+
/**
|
|
87
|
+
* Events to unregister upon disposal.
|
|
88
|
+
*/
|
|
89
|
+
unregisterCallbacks = new Set();
|
|
90
|
+
disposed = false;
|
|
91
|
+
/**
|
|
92
|
+
* This is set to true while an edit impacting the document schema is in progress.
|
|
93
|
+
* This allows suppressing extra rootChanged / schemaChanged events until the edit concludes.
|
|
94
|
+
* This is useful especially for some initialization edits, since document initialization can involve transient schemas
|
|
95
|
+
* which are implementation details and should not be exposed to the user.
|
|
96
|
+
*/
|
|
97
|
+
midUpgrade = false;
|
|
98
|
+
/**
|
|
99
|
+
* Hydration work deferred until Context has been created.
|
|
100
|
+
*/
|
|
101
|
+
pendingHydration;
|
|
102
|
+
rootFieldSchema;
|
|
103
|
+
breaker;
|
|
31
104
|
constructor(checkout, config, nodeKeyManager, onDispose) {
|
|
32
105
|
this.checkout = checkout;
|
|
33
106
|
this.config = config;
|
|
34
107
|
this.nodeKeyManager = nodeKeyManager;
|
|
35
108
|
this.onDispose = onDispose;
|
|
36
|
-
this.events = (0, client_utils_1.createEmitter)();
|
|
37
|
-
/**
|
|
38
|
-
* Events to unregister upon flex-tree view disposal.
|
|
39
|
-
*/
|
|
40
|
-
this.flexTreeViewUnregisterCallbacks = new Set();
|
|
41
|
-
/**
|
|
42
|
-
* Events to unregister upon disposal.
|
|
43
|
-
*/
|
|
44
|
-
this.unregisterCallbacks = new Set();
|
|
45
|
-
this.disposed = false;
|
|
46
|
-
/**
|
|
47
|
-
* This is set to true while an edit impacting the document schema is in progress.
|
|
48
|
-
* This allows suppressing extra rootChanged / schemaChanged events until the edit concludes.
|
|
49
|
-
* This is useful especially for some initialization edits, since document initialization can involve transient schemas
|
|
50
|
-
* which are implementation details and should not be exposed to the user.
|
|
51
|
-
*/
|
|
52
|
-
this.midUpgrade = false;
|
|
53
109
|
this.breaker = checkout.breaker;
|
|
54
110
|
if (checkout.forest.anchors.slots.has(exports.ViewSlot)) {
|
|
55
111
|
throw new internal_2.UsageError("Cannot create a second tree view from the same checkout");
|
|
@@ -58,9 +114,7 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
58
114
|
this.rootFieldSchema = (0, index_js_3.normalizeFieldSchema)(config.schema);
|
|
59
115
|
const stagedUpgradePolicy = config instanceof index_js_3.TreeViewConfigurationAlpha ? config.stagedUpgradePolicy : undefined;
|
|
60
116
|
const configAlpha = new index_js_3.TreeViewConfigurationAlpha({
|
|
61
|
-
|
|
62
|
-
enableSchemaValidation: config.enableSchemaValidation,
|
|
63
|
-
preventAmbiguity: config.preventAmbiguity,
|
|
117
|
+
...config,
|
|
64
118
|
stagedUpgradePolicy,
|
|
65
119
|
});
|
|
66
120
|
this.stagedUpgradePolicy = configAlpha.stagedUpgradePolicy;
|
|
@@ -72,7 +126,9 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
72
126
|
canUpgrade: true,
|
|
73
127
|
isEquivalent: false,
|
|
74
128
|
canInitialize: true,
|
|
129
|
+
discrepancies: undefined,
|
|
75
130
|
};
|
|
131
|
+
this.currentEnabledUpgrades = new Map();
|
|
76
132
|
this.update();
|
|
77
133
|
this.unregisterCallbacks.add(this.checkout.events.on("changed", (data, getRevertible) => {
|
|
78
134
|
this.events.emit("changed", data, getRevertible);
|
|
@@ -135,7 +191,7 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
135
191
|
}
|
|
136
192
|
upgradeSchema() {
|
|
137
193
|
this.ensureUndisposed();
|
|
138
|
-
const newSchema = (0, index_js_3.toUpgradeSchema)(this.viewSchema.root, this.
|
|
194
|
+
const newSchema = (0, index_js_3.toUpgradeSchema)(this.viewSchema.root, this.effectiveUpgradePolicy);
|
|
139
195
|
const storedSchema = this.checkout.storedSchema.clone();
|
|
140
196
|
if (!(0, index_js_2.allowsRepoSuperset)(index_js_2.defaultSchemaPolicy, storedSchema, newSchema)) {
|
|
141
197
|
throw new internal_2.UsageError("Existing stored schema cannot be upgraded to the requested schema (see TreeView.compatibility.canUpgrade).");
|
|
@@ -146,6 +202,27 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
146
202
|
}
|
|
147
203
|
this.runSchemaEdit(() => this.checkout.updateSchema(newSchema));
|
|
148
204
|
}
|
|
205
|
+
isStagedUpgradeEnabled(upgrade) {
|
|
206
|
+
if (!this.currentEnabledUpgrades) {
|
|
207
|
+
this.failDisposed();
|
|
208
|
+
}
|
|
209
|
+
return this.currentEnabledUpgrades.get(upgrade) ?? "disabled";
|
|
210
|
+
}
|
|
211
|
+
get effectiveUpgradePolicy() {
|
|
212
|
+
const configuredPolicy = this.stagedUpgradePolicy;
|
|
213
|
+
if (configuredPolicy.includeAlreadyEnabledUpgrades === false) {
|
|
214
|
+
return configuredPolicy;
|
|
215
|
+
}
|
|
216
|
+
const enabledUpgrades = this.currentEnabledUpgrades;
|
|
217
|
+
(0, internal_1.assert)(enabledUpgrades !== undefined, 0xd3e /* Enabled upgrades must be available for an active view */);
|
|
218
|
+
if (enabledUpgrades.size === 0) {
|
|
219
|
+
return configuredPolicy;
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
includeStaged: (upgrade) => configuredPolicy.includeStaged(upgrade) || enabledUpgrades.has(upgrade),
|
|
223
|
+
includeStagedOptional: (upgrade) => configuredPolicy.includeStagedOptional(upgrade) || enabledUpgrades.has(upgrade),
|
|
224
|
+
};
|
|
225
|
+
}
|
|
149
226
|
/**
|
|
150
227
|
* Gets the flex-tree context. Throws when disposed or out of schema.
|
|
151
228
|
*/
|
|
@@ -233,8 +310,12 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
233
310
|
this.events.emit("rootChanged");
|
|
234
311
|
}
|
|
235
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* Computes the current schema compatibility status and updates the cached enabled upgrades.
|
|
315
|
+
*/
|
|
236
316
|
computeCompatibility() {
|
|
237
|
-
const compatibility = (0, index_js_3.checkSchemaCompatibility)(this.viewSchema, this.checkout.storedSchema, this.stagedUpgradePolicy);
|
|
317
|
+
const { enabledUpgrades, ...compatibility } = (0, index_js_3.checkSchemaCompatibility)(this.viewSchema, this.checkout.storedSchema, this.stagedUpgradePolicy);
|
|
318
|
+
this.currentEnabledUpgrades = enabledUpgrades;
|
|
238
319
|
return {
|
|
239
320
|
...compatibility,
|
|
240
321
|
canInitialize: (0, schematizeTree_js_1.canInitialize)(this.checkout),
|
|
@@ -284,6 +365,7 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
284
365
|
}
|
|
285
366
|
this.checkout.forest.anchors.slots.delete(exports.ViewSlot);
|
|
286
367
|
this.currentCompatibility = undefined;
|
|
368
|
+
this.currentEnabledUpgrades = undefined;
|
|
287
369
|
this.onDispose?.();
|
|
288
370
|
if (!this.checkout.isSharedBranch && !this.checkout.disposed) {
|
|
289
371
|
// All non-shared branches are 1:1 with views, so if a user manually disposes a view, we should also dispose the checkout/branch.
|
|
@@ -292,9 +374,7 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
292
374
|
}
|
|
293
375
|
get flexRoot() {
|
|
294
376
|
this.breaker.use();
|
|
295
|
-
|
|
296
|
-
throw new internal_2.UsageError("Document is out of schema. Check TreeView.compatibility before accessing TreeView.root.");
|
|
297
|
-
}
|
|
377
|
+
throwIfSchemaIsIncompatible(this.compatibility);
|
|
298
378
|
const view = this.getFlexTreeContext();
|
|
299
379
|
(0, internal_1.assert)(view.root.is(index_js_2.FieldKinds.optional) ||
|
|
300
380
|
view.root.is(index_js_2.FieldKinds.required) ||
|
|
@@ -306,9 +386,7 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
306
386
|
}
|
|
307
387
|
set root(newRoot) {
|
|
308
388
|
this.breaker.use();
|
|
309
|
-
|
|
310
|
-
throw new internal_2.UsageError("Document is out of schema. Check TreeView.compatibility before accessing TreeView.root.");
|
|
311
|
-
}
|
|
389
|
+
throwIfSchemaIsIncompatible(this.compatibility);
|
|
312
390
|
const view = this.getFlexTreeContext();
|
|
313
391
|
(0, index_js_3.setField)(view.root, this.rootFieldSchema, newRoot, this.checkout.storedSchema.rootFieldSchema);
|
|
314
392
|
}
|
|
@@ -339,14 +417,6 @@ let SchematizingSimpleTreeView = (() => {
|
|
|
339
417
|
return this.checkout.branchHistory;
|
|
340
418
|
}
|
|
341
419
|
};
|
|
342
|
-
tslib_1.__setFunctionName(_classThis, "SchematizingSimpleTreeView");
|
|
343
|
-
(() => {
|
|
344
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
345
|
-
tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
346
|
-
SchematizingSimpleTreeView = _classThis = _classDescriptor.value;
|
|
347
|
-
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
348
|
-
tslib_1.__runInitializers(_classThis, _classExtraInitializers);
|
|
349
|
-
})();
|
|
350
420
|
return SchematizingSimpleTreeView = _classThis;
|
|
351
421
|
})();
|
|
352
422
|
exports.SchematizingSimpleTreeView = SchematizingSimpleTreeView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schematizingTreeView.js","sourceRoot":"","sources":["../../src/shared-tree/schematizingTreeView.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { createEmitter } from \"@fluid-internal/client-utils\";\nimport type {\n\tHasListeners,\n\tIEmitter,\n\tListenable,\n} from \"@fluidframework/core-interfaces/internal\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { anchorSlot, rootFieldKey, type RevertToOptionsAlpha } from \"../core/index.js\";\nimport {\n\ttype NodeIdentifierManager,\n\tdefaultSchemaPolicy,\n\tcursorForMapTreeField,\n\tContext,\n\tcombineChunks,\n\ttype FlexTreeOptionalField,\n\ttype FlexTreeUnknownUnboxed,\n\tFieldKinds,\n\ttype FlexTreeRequiredField,\n\tallowsRepoSuperset,\n} from \"../feature-libraries/index.js\";\nimport {\n\ttype ImplicitFieldSchema,\n\ttype SchemaCompatibilityStatus,\n\ttype TreeView,\n\ttype TreeViewEvents,\n\ttryGetTreeNodeForField,\n\tsetField,\n\tnormalizeFieldSchema,\n\tcheckSchemaCompatibility,\n\ttype InsertableContent,\n\ttype StagedSchemaUpgradePolicy,\n\ttype TreeViewConfiguration,\n\ttype TreeViewAlpha,\n\ttype InsertableField,\n\ttype ReadableField,\n\ttype ReadSchema,\n\ttype UnsafeUnknownSchema,\n\ttype TreeBranchEvents,\n\ttype VoidTransactionCallbackStatusAlpha,\n\ttype TransactionCallbackStatusAlpha,\n\ttype TransactionVoidResult,\n\ttype TransactionValueResult,\n\ttype RunTransactionParamsAlpha,\n\tHydratedContext,\n\tSimpleContextSlot,\n\tareImplicitFieldSchemaEqual,\n\tprepareForInsertionContextless,\n\ttype FieldSchema,\n\ttryDisposeTreeNode,\n\tFieldSchemaAlpha,\n\tTreeViewConfigurationAlpha,\n\ttoInitialSchema,\n\ttoUpgradeSchema,\n\ttype TreeBranchHistory,\n\ttype UntypedTreeViewAlpha,\n\ttype TreeSchema,\n} from \"../simple-tree/index.js\";\nimport {\n\ttype Breakable,\n\tbreakingClass,\n\tdisposeSymbol,\n\ttype JsonCompatibleReadOnly,\n\ttype WithBreakable,\n} from \"../util/index.js\";\n\nimport { canInitialize, initialize, initializerFromChunk } from \"./schematizeTree.js\";\nimport type { TreeCheckout } from \"./treeCheckout.js\";\n\n/**\n * Creating multiple tree views from the same checkout is not supported. This slot is used to detect if one already\n * exists and error if creating a second.\n */\nexport const ViewSlot = anchorSlot<TreeView<ImplicitFieldSchema>>();\n\n/**\n * Implementation of TreeView wrapping a FlexTreeView.\n */\n@breakingClass\nexport class SchematizingSimpleTreeView<\n\tin out TRootSchema extends ImplicitFieldSchema | UnsafeUnknownSchema,\n> implements TreeViewAlpha<TRootSchema>, WithBreakable\n{\n\t/**\n\t * This is set to undefined when this object is disposed or the view schema does not support viewing the document's stored schema.\n\t *\n\t * The view schema may be incompatible with the stored schema. Use `compatibility` to check.\n\t */\n\tprivate flexTreeContext: Context | undefined;\n\n\t/**\n\t * Undefined iff uninitialized or disposed.\n\t */\n\tprivate currentCompatibility: SchemaCompatibilityStatus | undefined;\n\tpublic readonly events: Listenable<TreeViewEvents & TreeBranchEvents> &\n\t\tIEmitter<TreeViewEvents & TreeBranchEvents> &\n\t\tHasListeners<TreeViewEvents & TreeBranchEvents> = createEmitter();\n\n\t/**\n\t * The schema for this view, captured at construction time for compatibility checking.\n\t */\n\tprivate readonly viewSchema: TreeSchema;\n\t/**\n\t * Stored-schema generation policy from the view configuration, frozen at construction time.\n\t */\n\tprivate readonly stagedUpgradePolicy: StagedSchemaUpgradePolicy;\n\n\t/**\n\t * Events to unregister upon flex-tree view disposal.\n\t */\n\tprivate readonly flexTreeViewUnregisterCallbacks = new Set<() => void>();\n\n\t/**\n\t * Events to unregister upon disposal.\n\t */\n\tprivate readonly unregisterCallbacks = new Set<() => void>();\n\n\tpublic disposed = false;\n\t/**\n\t * This is set to true while an edit impacting the document schema is in progress.\n\t * This allows suppressing extra rootChanged / schemaChanged events until the edit concludes.\n\t * This is useful especially for some initialization edits, since document initialization can involve transient schemas\n\t * which are implementation details and should not be exposed to the user.\n\t */\n\tprivate midUpgrade = false;\n\n\t/**\n\t * Hydration work deferred until Context has been created.\n\t */\n\tprivate pendingHydration?: () => void;\n\n\tprivate readonly rootFieldSchema: FieldSchema;\n\tpublic readonly breaker: Breakable;\n\n\tpublic constructor(\n\t\tpublic readonly checkout: TreeCheckout,\n\t\tpublic readonly config: TreeViewConfiguration<ReadSchema<TRootSchema>>,\n\t\tpublic readonly nodeKeyManager: NodeIdentifierManager,\n\t\tprivate readonly onDispose?: () => void,\n\t) {\n\t\tthis.breaker = checkout.breaker;\n\t\tif (checkout.forest.anchors.slots.has(ViewSlot)) {\n\t\t\tthrow new UsageError(\"Cannot create a second tree view from the same checkout\");\n\t\t}\n\t\tcheckout.forest.anchors.slots.set(ViewSlot, this);\n\n\t\tthis.rootFieldSchema = normalizeFieldSchema(config.schema);\n\n\t\tconst stagedUpgradePolicy =\n\t\t\tconfig instanceof TreeViewConfigurationAlpha ? config.stagedUpgradePolicy : undefined;\n\t\tconst configAlpha = new TreeViewConfigurationAlpha({\n\t\t\tschema: config.schema,\n\t\t\tenableSchemaValidation: config.enableSchemaValidation,\n\t\t\tpreventAmbiguity: config.preventAmbiguity,\n\t\t\tstagedUpgradePolicy,\n\t\t});\n\t\tthis.stagedUpgradePolicy = configAlpha.stagedUpgradePolicy;\n\n\t\t// Store viewSchema directly from the configuration (TreeViewConfigurationAlpha implements TreeSchema)\n\t\tthis.viewSchema = configAlpha;\n\t\t// This must be initialized before `update` can be called.\n\t\tthis.currentCompatibility = {\n\t\t\tcanView: false,\n\t\t\tcanUpgrade: true,\n\t\t\tisEquivalent: false,\n\t\t\tcanInitialize: true,\n\t\t};\n\t\tthis.update();\n\n\t\tthis.unregisterCallbacks.add(\n\t\t\tthis.checkout.events.on(\"changed\", (data, getRevertible) => {\n\t\t\t\tthis.events.emit(\"changed\", data, getRevertible);\n\t\t\t\tthis.events.emit(\"commitApplied\", data, getRevertible);\n\t\t\t}),\n\t\t);\n\t}\n\n\tpublic isBranch(): this is UntypedTreeViewAlpha {\n\t\treturn this.isView();\n\t}\n\n\tpublic isView(): this is UntypedTreeViewAlpha {\n\t\treturn true;\n\t}\n\n\tpublic applyChange(change: JsonCompatibleReadOnly): void {\n\t\tthis.checkout.applySerializedChange(change);\n\t}\n\n\tpublic hasRootSchema<TSchema extends ImplicitFieldSchema>(\n\t\tschema: TSchema,\n\t): this is TreeViewAlpha<TSchema> {\n\t\treturn areImplicitFieldSchemaEqual(this.rootFieldSchema, schema);\n\t}\n\n\tpublic get schema(): ReadSchema<TRootSchema> {\n\t\treturn this.config.schema;\n\t}\n\n\tpublic initialize(content: InsertableField<TRootSchema>): void {\n\t\tthis.ensureUndisposed();\n\n\t\tconst compatibility = this.compatibility;\n\t\tif (!compatibility.canInitialize) {\n\t\t\tthrow new UsageError(\"Tree cannot be initialized more than once.\");\n\t\t}\n\n\t\tthis.runSchemaEdit(() => {\n\t\t\tconst schema = toInitialSchema(this.config.schema, this.stagedUpgradePolicy);\n\t\t\t// This has to be the contextless version, since when \"initialize\" is called (right after this),\n\t\t\t// it will do a schema change which would dispose of the current context (see inside `update`).\n\t\t\t// Thus using the current context (if any) would hydrate nodes then\n\t\t\t// immediately dispose them instead of having them actually be useable after initialize.\n\t\t\t// For this to work,\n\t\t\t// the hydration must be deferred until after the content is inserted into the tree and the final schema change is done (for required roots),\n\t\t\t// but before any user event could could run.\n\t\t\tconst mapTree = prepareForInsertionContextless(\n\t\t\t\tcontent as InsertableContent | undefined,\n\t\t\t\tthis.rootFieldSchema,\n\t\t\t\t{\n\t\t\t\t\tschema,\n\t\t\t\t\tpolicy: defaultSchemaPolicy,\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t\tschema.rootFieldSchema,\n\t\t\t\t(batches, doHydration) => {\n\t\t\t\t\tassert(\n\t\t\t\t\t\tthis.pendingHydration === undefined,\n\t\t\t\t\t\t0xc74 /* pendingHydration already set */,\n\t\t\t\t\t);\n\t\t\t\t\tthis.pendingHydration = () => {\n\t\t\t\t\t\tassert(\n\t\t\t\t\t\t\tbatches.length <= 1,\n\t\t\t\t\t\t\t0xc75 /* initialize should at most one hydration batch */,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor (const batch of batches) {\n\t\t\t\t\t\t\tdoHydration(batch, {\n\t\t\t\t\t\t\t\tparent: undefined,\n\t\t\t\t\t\t\t\tparentField: rootFieldKey,\n\t\t\t\t\t\t\t\tparentIndex: 0,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.runTransaction(() => {\n\t\t\t\tinitialize(\n\t\t\t\t\tthis.checkout,\n\t\t\t\t\tschema,\n\t\t\t\t\tinitializerFromChunk(this.checkout, () => {\n\t\t\t\t\t\t// This must be done after initial schema is set!\n\t\t\t\t\t\treturn combineChunks(\n\t\t\t\t\t\t\tthis.checkout.forest.chunkField(\n\t\t\t\t\t\t\t\tcursorForMapTreeField(mapTree === undefined ? [] : [mapTree]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic upgradeSchema(): void {\n\t\tthis.ensureUndisposed();\n\n\t\tconst newSchema = toUpgradeSchema(this.viewSchema.root, this.stagedUpgradePolicy);\n\t\tconst storedSchema = this.checkout.storedSchema.clone();\n\t\tif (!allowsRepoSuperset(defaultSchemaPolicy, storedSchema, newSchema)) {\n\t\t\tthrow new UsageError(\n\t\t\t\t\"Existing stored schema cannot be upgraded to the requested schema (see TreeView.compatibility.canUpgrade).\",\n\t\t\t);\n\t\t}\n\t\tif (allowsRepoSuperset(defaultSchemaPolicy, newSchema, storedSchema)) {\n\t\t\t// No-op\n\t\t\treturn;\n\t\t}\n\n\t\tthis.runSchemaEdit(() => this.checkout.updateSchema(newSchema));\n\t}\n\n\t/**\n\t * Gets the flex-tree context. Throws when disposed or out of schema.\n\t */\n\tpublic getFlexTreeContext(): Context {\n\t\tthis.ensureUndisposed();\n\t\tassert(this.flexTreeContext !== undefined, 0x8c0 /* unexpected getViewOrError */);\n\t\treturn this.flexTreeContext;\n\t}\n\n\tpublic runTransaction<TSuccessValue, TFailureValue>(\n\t\ttransaction: () => TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): TransactionValueResult<TSuccessValue, TFailureValue>;\n\tpublic runTransaction(\n\t\ttransaction: () => VoidTransactionCallbackStatusAlpha | void,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): TransactionVoidResult;\n\tpublic runTransaction<TSuccessValue, TFailureValue>(\n\t\ttransaction: () =>\n\t\t\t| TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>\n\t\t\t| VoidTransactionCallbackStatusAlpha\n\t\t\t| void,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): TransactionValueResult<TSuccessValue, TFailureValue> | TransactionVoidResult {\n\t\tthis.ensureUndisposed();\n\t\treturn this.checkout.runTransaction(transaction, params);\n\t}\n\n\tpublic runTransactionAsync<TSuccessValue, TFailureValue>(\n\t\ttransaction: () => Promise<TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>>,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): Promise<TransactionValueResult<TSuccessValue, TFailureValue>>;\n\tpublic runTransactionAsync(\n\t\ttransaction: () => Promise<VoidTransactionCallbackStatusAlpha | void>,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): Promise<TransactionVoidResult>;\n\tpublic async runTransactionAsync<TSuccessValue, TFailureValue>(\n\t\ttransaction: () => Promise<\n\t\t\t| TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>\n\t\t\t| VoidTransactionCallbackStatusAlpha\n\t\t\t| void\n\t\t>,\n\t\tparams: RunTransactionParamsAlpha | undefined,\n\t): Promise<TransactionValueResult<TSuccessValue, TFailureValue> | TransactionVoidResult> {\n\t\tthis.ensureUndisposed();\n\t\tif (this.checkout.transaction.size > 0) {\n\t\t\t// breaker.break() sets brokenBy synchronously before throwing.\n\t\t\t// A plain `throw` inside an async function would be captured as a rejected Promise\n\t\t\t// before @breakingClass could set brokenBy. By setting it here first, the\n\t\t\t// subsequent call to unmountTransaction (also @breakingClass-wrapped) will see the\n\t\t\t// broken state and throw synchronously, propagating out of the outer runTransaction\n\t\t\t// to its caller.\n\t\t\tthis.breaker.break(\n\t\t\t\tnew UsageError(\n\t\t\t\t\t\"An asynchronous transaction cannot be started while another transaction is already in progress.\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\treturn this.checkout.runTransactionAsync(transaction, params);\n\t}\n\n\tprivate ensureUndisposed(): void {\n\t\tif (this.disposed) {\n\t\t\tthis.failDisposed();\n\t\t}\n\t}\n\n\tprivate failDisposed(): never {\n\t\tthrow new UsageError(\"Accessed a disposed TreeView.\");\n\t}\n\n\t/**\n\t * Updates `this.view` and the current compatibility status.\n\t * Invoked during initialization and when `this.view` needs to be replaced due to stored schema changes.\n\t * Handles re-registering for events to call update in the future.\n\t * @remarks\n\t * This does not check if the view needs to be replaced, it replaces it unconditionally:\n\t * callers should do any checking to detect if it's really needed before calling `update`.\n\t * @privateRemarks\n\t * This implementation avoids making any edits, which prevents it from being invoked reentrantly.\n\t * If implicit initialization (or some other edit) is desired, it should be done outside of this method.\n\t */\n\tprivate update(): void {\n\t\tthis.disposeFlexView();\n\n\t\tconst compatibility = this.computeCompatibility();\n\t\tthis.currentCompatibility = compatibility;\n\n\t\tconst anchors = this.checkout.forest.anchors;\n\t\tconst slots = anchors.slots;\n\n\t\tif (compatibility.canView) {\n\t\t\tthis.flexTreeContext = new Context(\n\t\t\t\tdefaultSchemaPolicy,\n\t\t\t\tthis.checkout,\n\t\t\t\tthis.nodeKeyManager,\n\t\t\t);\n\t\t\tassert(!slots.has(SimpleContextSlot), 0xa47 /* extra simple tree context */);\n\t\t\tassert(\n\t\t\t\tthis.rootFieldSchema instanceof FieldSchemaAlpha,\n\t\t\t\t0xbfa /* all field schema should be FieldSchemaAlpha */,\n\t\t\t);\n\t\t\tslots.set(\n\t\t\t\tSimpleContextSlot,\n\t\t\t\tnew HydratedContext(\n\t\t\t\t\tthis.flexTreeContext,\n\t\t\t\t\tHydratedContext.schemaMapFromRootSchema(\n\t\t\t\t\t\tthis.rootFieldSchema.allowedTypesFull.evaluate(),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\t// Trigger \"rootChanged\" events if the root changes in the future.\n\t\t\t{\n\t\t\t\t// Currently there is no good way to do this as FlexTreeField has no events for changes.\n\t\t\t\t// this.root.on(????)\n\t\t\t\t// As a workaround for the above, trigger \"rootChanged\" in \"afterBatch\".\n\t\t\t\t// Ideally these events would be just events for changes within the root.\n\t\t\t\t// TODO: provide a better event: this.view.flexTree.on(????) and/or integrate with with the normal event code paths.\n\n\t\t\t\t// Track what the root was before to be able to detect changes.\n\t\t\t\t// This uses the flex tree root to avoid demanding the simple-tree TreeNode when it might not be hydrated yet.\n\t\t\t\tlet lastRoot: FlexTreeUnknownUnboxed | undefined = (\n\t\t\t\t\tthis.flexTreeContext.root as FlexTreeOptionalField\n\t\t\t\t).content;\n\n\t\t\t\tthis.flexTreeViewUnregisterCallbacks.add(\n\t\t\t\t\tthis.checkout.events.on(\"afterBatch\", () => {\n\t\t\t\t\t\t// In the initialization flow, this event is raised before the correct compatibility w.r.t the new schema is calculated.\n\t\t\t\t\t\t// Accessing `this.root` in that case can throw. It's OK to ignore this because:\n\t\t\t\t\t\t// - The rootChanged event will already be raised at the end of the current upgrade\n\t\t\t\t\t\t// - It doesn't matter that `lastRoot` isn't updated in this case, because `update` will be called again before the upgrade\n\t\t\t\t\t\t// completes (at which point this callback and the `lastRoot` captured here will be out of scope anyway)\n\t\t\t\t\t\tif (!this.midUpgrade && lastRoot !== this.flexRoot.content) {\n\t\t\t\t\t\t\tlastRoot = this.flexRoot.content;\n\t\t\t\t\t\t\tthis.events.emit(\"rootChanged\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.flexTreeViewUnregisterCallbacks.add(\n\t\t\t// Will dispose the old view (if there is one) when its no longer valid, and create a new one if appropriate.\n\t\t\tthis.checkout.storedSchema.events.on(\"afterSchemaChange\", () => this.update()),\n\t\t);\n\n\t\tif (!this.midUpgrade) {\n\t\t\tassert(\n\t\t\t\tthis.pendingHydration === undefined,\n\t\t\t\t0xc76 /* no nodes should be pending hydration when triggering events that could access nodes */,\n\t\t\t);\n\t\t\tthis.events.emit(\"schemaChanged\");\n\t\t\tthis.events.emit(\"rootChanged\");\n\t\t}\n\t}\n\n\tprivate computeCompatibility(): SchemaCompatibilityStatus {\n\t\tconst compatibility = checkSchemaCompatibility(\n\t\t\tthis.viewSchema,\n\t\t\tthis.checkout.storedSchema,\n\t\t\tthis.stagedUpgradePolicy,\n\t\t);\n\t\treturn {\n\t\t\t...compatibility,\n\t\t\tcanInitialize: canInitialize(this.checkout),\n\t\t};\n\t}\n\n\tprivate runSchemaEdit(edit: () => void): void {\n\t\tthis.midUpgrade = true;\n\t\ttry {\n\t\t\tedit();\n\t\t} finally {\n\t\t\tthis.midUpgrade = false;\n\t\t}\n\t\t// Ensure hydration is flushed before events run which could access nodes.\n\t\tthis.pendingHydration?.();\n\t\tthis.pendingHydration = undefined;\n\t\tthis.events.emit(\"schemaChanged\");\n\t\tthis.events.emit(\"rootChanged\");\n\t}\n\n\tprivate disposeFlexView(): void {\n\t\tconst anchors = this.checkout.forest.anchors;\n\t\tif (this.flexTreeContext !== undefined) {\n\t\t\t// Cleanup any TreeNodes cached in the AnchorSet when disposing the flex-tree which they wrap.\n\t\t\tfor (const anchorNode of anchors) {\n\t\t\t\ttryDisposeTreeNode(anchorNode);\n\t\t\t}\n\n\t\t\tthis.flexTreeContext[disposeSymbol]();\n\t\t\tthis.flexTreeContext = undefined;\n\t\t}\n\t\tfor (const unregister of this.flexTreeViewUnregisterCallbacks) {\n\t\t\tunregister();\n\t\t}\n\t\tthis.flexTreeViewUnregisterCallbacks.clear();\n\t\tanchors.slots.delete(SimpleContextSlot);\n\t}\n\n\tpublic get compatibility(): SchemaCompatibilityStatus {\n\t\tif (!this.currentCompatibility) {\n\t\t\tthis.failDisposed();\n\t\t}\n\t\treturn this.currentCompatibility;\n\t}\n\n\tpublic dispose(): void {\n\t\tthis.disposed = true;\n\t\tthis.disposeFlexView();\n\t\tfor (const unregister of this.unregisterCallbacks) {\n\t\t\tunregister();\n\t\t}\n\t\tthis.checkout.forest.anchors.slots.delete(ViewSlot);\n\t\tthis.currentCompatibility = undefined;\n\t\tthis.onDispose?.();\n\t\tif (!this.checkout.isSharedBranch && !this.checkout.disposed) {\n\t\t\t// All non-shared branches are 1:1 with views, so if a user manually disposes a view, we should also dispose the checkout/branch.\n\t\t\tthis.checkout.dispose();\n\t\t}\n\t}\n\n\tprivate get flexRoot(): FlexTreeOptionalField | FlexTreeRequiredField {\n\t\tthis.breaker.use();\n\t\tif (!this.compatibility.canView) {\n\t\t\tthrow new UsageError(\n\t\t\t\t\"Document is out of schema. Check TreeView.compatibility before accessing TreeView.root.\",\n\t\t\t);\n\t\t}\n\t\tconst view = this.getFlexTreeContext();\n\t\tassert(\n\t\t\tview.root.is(FieldKinds.optional) ||\n\t\t\t\tview.root.is(FieldKinds.required) ||\n\t\t\t\tview.root.is(FieldKinds.identifier),\n\t\t\t0xc77 /* unexpected root field kind */,\n\t\t);\n\t\treturn view.root;\n\t}\n\n\tpublic get root(): ReadableField<TRootSchema> {\n\t\treturn tryGetTreeNodeForField(this.flexRoot) as ReadableField<TRootSchema>;\n\t}\n\n\tpublic set root(newRoot: InsertableField<TRootSchema>) {\n\t\tthis.breaker.use();\n\t\tif (!this.compatibility.canView) {\n\t\t\tthrow new UsageError(\n\t\t\t\t\"Document is out of schema. Check TreeView.compatibility before accessing TreeView.root.\",\n\t\t\t);\n\t\t}\n\t\tconst view = this.getFlexTreeContext();\n\t\tsetField(\n\t\t\tview.root,\n\t\t\tthis.rootFieldSchema,\n\t\t\tnewRoot as InsertableContent | undefined,\n\t\t\tthis.checkout.storedSchema.rootFieldSchema,\n\t\t);\n\t}\n\n\t// #region Branching\n\n\tpublic fork(): ReturnType<UntypedTreeViewAlpha[\"fork\"]> &\n\t\tSchematizingSimpleTreeView<TRootSchema> {\n\t\treturn this.checkout.fork().viewWith(this.config);\n\t}\n\n\tpublic rewindTo(revision: string): void {\n\t\tthis.checkout.rewindTo(revision);\n\t}\n\n\tpublic revertTo(revision: string, options?: RevertToOptionsAlpha): void {\n\t\tthis.checkout.revertTo(revision, options);\n\t}\n\n\tpublic merge(context: UntypedTreeViewAlpha, disposeMerged = true): void {\n\t\tthis.checkout.merge(context, disposeMerged);\n\t}\n\n\tpublic rebaseOnto(context: UntypedTreeViewAlpha): void {\n\t\tthis.checkout.rebaseOnto(context);\n\t}\n\n\tpublic isMissingEditsFrom(context: UntypedTreeViewAlpha): boolean {\n\t\treturn this.checkout.isMissingEditsFrom(context);\n\t}\n\n\tpublic computeNetChangeIfRebasedOnto(\n\t\tcontext: UntypedTreeViewAlpha,\n\t): JsonCompatibleReadOnly | undefined {\n\t\treturn this.checkout.computeNetChangeIfRebasedOnto(context);\n\t}\n\n\t// #endregion Branching\n\n\tpublic get branchHistory(): TreeBranchHistory {\n\t\treturn this.checkout.branchHistory;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"schematizingTreeView.js","sourceRoot":"","sources":["../../src/shared-tree/schematizingTreeView.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { createEmitter } from \"@fluid-internal/client-utils\";\nimport type {\n\tHasListeners,\n\tIEmitter,\n\tListenable,\n} from \"@fluidframework/core-interfaces/internal\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { tagSchemaArtifacts, UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { anchorSlot, rootFieldKey, type RevertToOptionsAlpha } from \"../core/index.js\";\nimport {\n\ttype NodeIdentifierManager,\n\tdefaultSchemaPolicy,\n\tcursorForMapTreeField,\n\tContext,\n\tcombineChunks,\n\ttype FlexTreeOptionalField,\n\ttype FlexTreeUnknownUnboxed,\n\tFieldKinds,\n\ttype FlexTreeRequiredField,\n\tallowsRepoSuperset,\n} from \"../feature-libraries/index.js\";\nimport {\n\ttype ImplicitFieldSchema,\n\ttype SchemaCompatibilityStatusBeta,\n\ttype TreeContextAlpha,\n\ttype TreeViewEvents,\n\ttryGetTreeNodeForField,\n\tsetField,\n\tnormalizeFieldSchema,\n\tcheckSchemaCompatibility,\n\ttype InsertableContent,\n\ttype StagedSchemaUpgradePolicy,\n\ttype TreeViewConfiguration,\n\ttype TreeViewAlpha,\n\ttype InsertableField,\n\ttype ReadableField,\n\ttype ReadSchema,\n\ttype UnsafeUnknownSchema,\n\ttype TreeBranchEvents,\n\ttype VoidTransactionCallbackStatusAlpha,\n\ttype TransactionCallbackStatusAlpha,\n\ttype TransactionVoidResult,\n\ttype TransactionValueResult,\n\ttype RunTransactionParamsAlpha,\n\tHydratedContext,\n\tSimpleContextSlot,\n\tareImplicitFieldSchemaEqual,\n\tprepareForInsertionContextless,\n\ttype FieldSchema,\n\ttryDisposeTreeNode,\n\tFieldSchemaAlpha,\n\tTreeViewConfigurationAlpha,\n\ttoInitialSchema,\n\ttoUpgradeSchema,\n\ttype TreeBranchHistory,\n\ttype UntypedTreeViewAlpha,\n\ttype TreeSchema,\n\ttype SchemaUpgrade,\n\ttype StagedUpgradeStatus,\n} from \"../simple-tree/index.js\";\nimport {\n\ttype Breakable,\n\tbreakingClass,\n\tdisposeSymbol,\n\ttype JsonCompatibleReadOnly,\n\ttype WithBreakable,\n} from \"../util/index.js\";\n\nimport { canInitialize, initialize, initializerFromChunk } from \"./schematizeTree.js\";\nimport type { TreeCheckout } from \"./treeCheckout.js\";\n\n/**\n * Creating multiple tree views from the same checkout is not supported. This slot is used to detect if one already\n * exists and error if creating a second.\n */\nexport const ViewSlot = anchorSlot<TreeContextAlpha>();\n\nfunction throwIfSchemaIsIncompatible(compatibility: SchemaCompatibilityStatusBeta): void {\n\tif (compatibility.canView) {\n\t\treturn;\n\t}\n\n\tconst resolution = compatibility.canInitialize\n\t\t? \"The document is uninitialized; call TreeView.initialize() before reading or writing TreeView.root.\"\n\t\t: compatibility.canUpgrade\n\t\t\t? \"The stored schema can be upgraded; call TreeView.upgradeSchema() before reading or writing TreeView.root.\"\n\t\t\t: \"The schemas cannot be upgraded automatically. Use a compatible view schema or explicitly migrate the document schema and data.\";\n\tthrow new UsageError(\n\t\t`TreeView.root is unavailable because the view schema is incompatible with the stored schema. ${resolution}`,\n\t\ttagSchemaArtifacts({\n\t\t\tschemaIncompatibilityDetails:\n\t\t\t\tcompatibility.discrepancies === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: JSON.stringify(compatibility.discrepancies),\n\t\t}),\n\t);\n}\n\n/**\n * Implementation of TreeView wrapping a FlexTreeView.\n */\n@breakingClass\nexport class SchematizingSimpleTreeView<\n\tin out TRootSchema extends ImplicitFieldSchema | UnsafeUnknownSchema,\n> implements TreeViewAlpha<TRootSchema>, WithBreakable\n{\n\t/**\n\t * This is set to undefined when this object is disposed or the view schema does not support viewing the document's stored schema.\n\t *\n\t * The view schema may be incompatible with the stored schema. Use `compatibility` to check.\n\t */\n\tprivate flexTreeContext: Context | undefined;\n\n\t/**\n\t * Undefined if and only if uninitialized or disposed.\n\t */\n\tprivate currentCompatibility: SchemaCompatibilityStatusBeta | undefined;\n\t/**\n\t * Cached map of upgrade statuses, computed alongside compatibility.\n\t * @remarks Undefined if and only if uninitialized or disposed.\n\t */\n\tprivate currentEnabledUpgrades: ReadonlyMap<SchemaUpgrade, StagedUpgradeStatus> | undefined;\n\tpublic readonly events: Listenable<TreeViewEvents & TreeBranchEvents> &\n\t\tIEmitter<TreeViewEvents & TreeBranchEvents> &\n\t\tHasListeners<TreeViewEvents & TreeBranchEvents> = createEmitter();\n\n\t/**\n\t * The schema for this view, captured at construction time for compatibility checking.\n\t */\n\tprivate readonly viewSchema: TreeSchema;\n\t/**\n\t * Stored-schema generation policy from the view configuration, frozen at construction time.\n\t */\n\tprivate readonly stagedUpgradePolicy: StagedSchemaUpgradePolicy;\n\n\t/**\n\t * Events to unregister upon flex-tree view disposal.\n\t */\n\tprivate readonly flexTreeViewUnregisterCallbacks = new Set<() => void>();\n\n\t/**\n\t * Events to unregister upon disposal.\n\t */\n\tprivate readonly unregisterCallbacks = new Set<() => void>();\n\n\tpublic disposed = false;\n\t/**\n\t * This is set to true while an edit impacting the document schema is in progress.\n\t * This allows suppressing extra rootChanged / schemaChanged events until the edit concludes.\n\t * This is useful especially for some initialization edits, since document initialization can involve transient schemas\n\t * which are implementation details and should not be exposed to the user.\n\t */\n\tprivate midUpgrade = false;\n\n\t/**\n\t * Hydration work deferred until Context has been created.\n\t */\n\tprivate pendingHydration?: () => void;\n\n\tprivate readonly rootFieldSchema: FieldSchema;\n\tpublic readonly breaker: Breakable;\n\n\tpublic constructor(\n\t\tpublic readonly checkout: TreeCheckout,\n\t\tpublic readonly config: TreeViewConfiguration<ReadSchema<TRootSchema>>,\n\t\tpublic readonly nodeKeyManager: NodeIdentifierManager,\n\t\tprivate readonly onDispose?: () => void,\n\t) {\n\t\tthis.breaker = checkout.breaker;\n\t\tif (checkout.forest.anchors.slots.has(ViewSlot)) {\n\t\t\tthrow new UsageError(\"Cannot create a second tree view from the same checkout\");\n\t\t}\n\t\tcheckout.forest.anchors.slots.set(ViewSlot, this);\n\n\t\tthis.rootFieldSchema = normalizeFieldSchema(config.schema);\n\n\t\tconst stagedUpgradePolicy =\n\t\t\tconfig instanceof TreeViewConfigurationAlpha ? config.stagedUpgradePolicy : undefined;\n\t\tconst configAlpha = new TreeViewConfigurationAlpha({\n\t\t\t...config,\n\t\t\tstagedUpgradePolicy,\n\t\t});\n\t\tthis.stagedUpgradePolicy = configAlpha.stagedUpgradePolicy;\n\n\t\t// Store viewSchema directly from the configuration (TreeViewConfigurationAlpha implements TreeSchema)\n\t\tthis.viewSchema = configAlpha;\n\t\t// This must be initialized before `update` can be called.\n\t\tthis.currentCompatibility = {\n\t\t\tcanView: false,\n\t\t\tcanUpgrade: true,\n\t\t\tisEquivalent: false,\n\t\t\tcanInitialize: true,\n\t\t\tdiscrepancies: undefined,\n\t\t};\n\t\tthis.currentEnabledUpgrades = new Map();\n\t\tthis.update();\n\n\t\tthis.unregisterCallbacks.add(\n\t\t\tthis.checkout.events.on(\"changed\", (data, getRevertible) => {\n\t\t\t\tthis.events.emit(\"changed\", data, getRevertible);\n\t\t\t\tthis.events.emit(\"commitApplied\", data, getRevertible);\n\t\t\t}),\n\t\t);\n\t}\n\n\tpublic isBranch(): this is UntypedTreeViewAlpha {\n\t\treturn this.isView();\n\t}\n\n\tpublic isView(): this is UntypedTreeViewAlpha {\n\t\treturn true;\n\t}\n\n\tpublic applyChange(change: JsonCompatibleReadOnly): void {\n\t\tthis.checkout.applySerializedChange(change);\n\t}\n\n\tpublic hasRootSchema<TSchema extends ImplicitFieldSchema>(\n\t\tschema: TSchema,\n\t): this is TreeViewAlpha<TSchema> {\n\t\treturn areImplicitFieldSchemaEqual(this.rootFieldSchema, schema);\n\t}\n\n\tpublic get schema(): ReadSchema<TRootSchema> {\n\t\treturn this.config.schema;\n\t}\n\n\tpublic initialize(content: InsertableField<TRootSchema>): void {\n\t\tthis.ensureUndisposed();\n\n\t\tconst compatibility = this.compatibility;\n\t\tif (!compatibility.canInitialize) {\n\t\t\tthrow new UsageError(\"Tree cannot be initialized more than once.\");\n\t\t}\n\n\t\tthis.runSchemaEdit(() => {\n\t\t\tconst schema = toInitialSchema(this.config.schema, this.stagedUpgradePolicy);\n\t\t\t// This has to be the contextless version, since when \"initialize\" is called (right after this),\n\t\t\t// it will do a schema change which would dispose of the current context (see inside `update`).\n\t\t\t// Thus using the current context (if any) would hydrate nodes then\n\t\t\t// immediately dispose them instead of having them actually be useable after initialize.\n\t\t\t// For this to work,\n\t\t\t// the hydration must be deferred until after the content is inserted into the tree and the final schema change is done (for required roots),\n\t\t\t// but before any user event could could run.\n\t\t\tconst mapTree = prepareForInsertionContextless(\n\t\t\t\tcontent as InsertableContent | undefined,\n\t\t\t\tthis.rootFieldSchema,\n\t\t\t\t{\n\t\t\t\t\tschema,\n\t\t\t\t\tpolicy: defaultSchemaPolicy,\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t\tschema.rootFieldSchema,\n\t\t\t\t(batches, doHydration) => {\n\t\t\t\t\tassert(\n\t\t\t\t\t\tthis.pendingHydration === undefined,\n\t\t\t\t\t\t0xc74 /* pendingHydration already set */,\n\t\t\t\t\t);\n\t\t\t\t\tthis.pendingHydration = () => {\n\t\t\t\t\t\tassert(\n\t\t\t\t\t\t\tbatches.length <= 1,\n\t\t\t\t\t\t\t0xc75 /* initialize should at most one hydration batch */,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor (const batch of batches) {\n\t\t\t\t\t\t\tdoHydration(batch, {\n\t\t\t\t\t\t\t\tparent: undefined,\n\t\t\t\t\t\t\t\tparentField: rootFieldKey,\n\t\t\t\t\t\t\t\tparentIndex: 0,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.runTransaction(() => {\n\t\t\t\tinitialize(\n\t\t\t\t\tthis.checkout,\n\t\t\t\t\tschema,\n\t\t\t\t\tinitializerFromChunk(this.checkout, () => {\n\t\t\t\t\t\t// This must be done after initial schema is set!\n\t\t\t\t\t\treturn combineChunks(\n\t\t\t\t\t\t\tthis.checkout.forest.chunkField(\n\t\t\t\t\t\t\t\tcursorForMapTreeField(mapTree === undefined ? [] : [mapTree]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic upgradeSchema(): void {\n\t\tthis.ensureUndisposed();\n\n\t\tconst newSchema = toUpgradeSchema(this.viewSchema.root, this.effectiveUpgradePolicy);\n\t\tconst storedSchema = this.checkout.storedSchema.clone();\n\t\tif (!allowsRepoSuperset(defaultSchemaPolicy, storedSchema, newSchema)) {\n\t\t\tthrow new UsageError(\n\t\t\t\t\"Existing stored schema cannot be upgraded to the requested schema (see TreeView.compatibility.canUpgrade).\",\n\t\t\t);\n\t\t}\n\t\tif (allowsRepoSuperset(defaultSchemaPolicy, newSchema, storedSchema)) {\n\t\t\t// No-op\n\t\t\treturn;\n\t\t}\n\n\t\tthis.runSchemaEdit(() => this.checkout.updateSchema(newSchema));\n\t}\n\n\tpublic isStagedUpgradeEnabled(upgrade: SchemaUpgrade): StagedUpgradeStatus {\n\t\tif (!this.currentEnabledUpgrades) {\n\t\t\tthis.failDisposed();\n\t\t}\n\t\treturn this.currentEnabledUpgrades.get(upgrade) ?? \"disabled\";\n\t}\n\n\tprivate get effectiveUpgradePolicy(): StagedSchemaUpgradePolicy {\n\t\tconst configuredPolicy = this.stagedUpgradePolicy;\n\t\tif (configuredPolicy.includeAlreadyEnabledUpgrades === false) {\n\t\t\treturn configuredPolicy;\n\t\t}\n\t\tconst enabledUpgrades = this.currentEnabledUpgrades;\n\t\tassert(\n\t\t\tenabledUpgrades !== undefined,\n\t\t\t0xd3e /* Enabled upgrades must be available for an active view */,\n\t\t);\n\t\tif (enabledUpgrades.size === 0) {\n\t\t\treturn configuredPolicy;\n\t\t}\n\n\t\treturn {\n\t\t\tincludeStaged: (upgrade) =>\n\t\t\t\tconfiguredPolicy.includeStaged(upgrade) || enabledUpgrades.has(upgrade),\n\t\t\tincludeStagedOptional: (upgrade) =>\n\t\t\t\tconfiguredPolicy.includeStagedOptional(upgrade) || enabledUpgrades.has(upgrade),\n\t\t};\n\t}\n\n\t/**\n\t * Gets the flex-tree context. Throws when disposed or out of schema.\n\t */\n\tpublic getFlexTreeContext(): Context {\n\t\tthis.ensureUndisposed();\n\t\tassert(this.flexTreeContext !== undefined, 0x8c0 /* unexpected getViewOrError */);\n\t\treturn this.flexTreeContext;\n\t}\n\n\tpublic runTransaction<TSuccessValue, TFailureValue>(\n\t\ttransaction: () => TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): TransactionValueResult<TSuccessValue, TFailureValue>;\n\tpublic runTransaction(\n\t\ttransaction: () => VoidTransactionCallbackStatusAlpha | void,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): TransactionVoidResult;\n\tpublic runTransaction<TSuccessValue, TFailureValue>(\n\t\ttransaction: () =>\n\t\t\t| TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>\n\t\t\t| VoidTransactionCallbackStatusAlpha\n\t\t\t| void,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): TransactionValueResult<TSuccessValue, TFailureValue> | TransactionVoidResult {\n\t\tthis.ensureUndisposed();\n\t\treturn this.checkout.runTransaction(transaction, params);\n\t}\n\n\tpublic runTransactionAsync<TSuccessValue, TFailureValue>(\n\t\ttransaction: () => Promise<TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>>,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): Promise<TransactionValueResult<TSuccessValue, TFailureValue>>;\n\tpublic runTransactionAsync(\n\t\ttransaction: () => Promise<VoidTransactionCallbackStatusAlpha | void>,\n\t\tparams?: RunTransactionParamsAlpha,\n\t): Promise<TransactionVoidResult>;\n\tpublic async runTransactionAsync<TSuccessValue, TFailureValue>(\n\t\ttransaction: () => Promise<\n\t\t\t| TransactionCallbackStatusAlpha<TSuccessValue, TFailureValue>\n\t\t\t| VoidTransactionCallbackStatusAlpha\n\t\t\t| void\n\t\t>,\n\t\tparams: RunTransactionParamsAlpha | undefined,\n\t): Promise<TransactionValueResult<TSuccessValue, TFailureValue> | TransactionVoidResult> {\n\t\tthis.ensureUndisposed();\n\t\tif (this.checkout.transaction.size > 0) {\n\t\t\t// breaker.break() sets brokenBy synchronously before throwing.\n\t\t\t// A plain `throw` inside an async function would be captured as a rejected Promise\n\t\t\t// before @breakingClass could set brokenBy. By setting it here first, the\n\t\t\t// subsequent call to unmountTransaction (also @breakingClass-wrapped) will see the\n\t\t\t// broken state and throw synchronously, propagating out of the outer runTransaction\n\t\t\t// to its caller.\n\t\t\tthis.breaker.break(\n\t\t\t\tnew UsageError(\n\t\t\t\t\t\"An asynchronous transaction cannot be started while another transaction is already in progress.\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\treturn this.checkout.runTransactionAsync(transaction, params);\n\t}\n\n\tprivate ensureUndisposed(): void {\n\t\tif (this.disposed) {\n\t\t\tthis.failDisposed();\n\t\t}\n\t}\n\n\tprivate failDisposed(): never {\n\t\tthrow new UsageError(\"Accessed a disposed TreeView.\");\n\t}\n\n\t/**\n\t * Updates `this.view` and the current compatibility status.\n\t * Invoked during initialization and when `this.view` needs to be replaced due to stored schema changes.\n\t * Handles re-registering for events to call update in the future.\n\t * @remarks\n\t * This does not check if the view needs to be replaced, it replaces it unconditionally:\n\t * callers should do any checking to detect if it's really needed before calling `update`.\n\t * @privateRemarks\n\t * This implementation avoids making any edits, which prevents it from being invoked reentrantly.\n\t * If implicit initialization (or some other edit) is desired, it should be done outside of this method.\n\t */\n\tprivate update(): void {\n\t\tthis.disposeFlexView();\n\n\t\tconst compatibility = this.computeCompatibility();\n\t\tthis.currentCompatibility = compatibility;\n\n\t\tconst anchors = this.checkout.forest.anchors;\n\t\tconst slots = anchors.slots;\n\n\t\tif (compatibility.canView) {\n\t\t\tthis.flexTreeContext = new Context(\n\t\t\t\tdefaultSchemaPolicy,\n\t\t\t\tthis.checkout,\n\t\t\t\tthis.nodeKeyManager,\n\t\t\t);\n\t\t\tassert(!slots.has(SimpleContextSlot), 0xa47 /* extra simple tree context */);\n\t\t\tassert(\n\t\t\t\tthis.rootFieldSchema instanceof FieldSchemaAlpha,\n\t\t\t\t0xbfa /* all field schema should be FieldSchemaAlpha */,\n\t\t\t);\n\t\t\tslots.set(\n\t\t\t\tSimpleContextSlot,\n\t\t\t\tnew HydratedContext(\n\t\t\t\t\tthis.flexTreeContext,\n\t\t\t\t\tHydratedContext.schemaMapFromRootSchema(\n\t\t\t\t\t\tthis.rootFieldSchema.allowedTypesFull.evaluate(),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\t// Trigger \"rootChanged\" events if the root changes in the future.\n\t\t\t{\n\t\t\t\t// Currently there is no good way to do this as FlexTreeField has no events for changes.\n\t\t\t\t// this.root.on(????)\n\t\t\t\t// As a workaround for the above, trigger \"rootChanged\" in \"afterBatch\".\n\t\t\t\t// Ideally these events would be just events for changes within the root.\n\t\t\t\t// TODO: provide a better event: this.view.flexTree.on(????) and/or integrate with with the normal event code paths.\n\n\t\t\t\t// Track what the root was before to be able to detect changes.\n\t\t\t\t// This uses the flex tree root to avoid demanding the simple-tree TreeNode when it might not be hydrated yet.\n\t\t\t\tlet lastRoot: FlexTreeUnknownUnboxed | undefined = (\n\t\t\t\t\tthis.flexTreeContext.root as FlexTreeOptionalField\n\t\t\t\t).content;\n\n\t\t\t\tthis.flexTreeViewUnregisterCallbacks.add(\n\t\t\t\t\tthis.checkout.events.on(\"afterBatch\", () => {\n\t\t\t\t\t\t// In the initialization flow, this event is raised before the correct compatibility w.r.t the new schema is calculated.\n\t\t\t\t\t\t// Accessing `this.root` in that case can throw. It's OK to ignore this because:\n\t\t\t\t\t\t// - The rootChanged event will already be raised at the end of the current upgrade\n\t\t\t\t\t\t// - It doesn't matter that `lastRoot` isn't updated in this case, because `update` will be called again before the upgrade\n\t\t\t\t\t\t// completes (at which point this callback and the `lastRoot` captured here will be out of scope anyway)\n\t\t\t\t\t\tif (!this.midUpgrade && lastRoot !== this.flexRoot.content) {\n\t\t\t\t\t\t\tlastRoot = this.flexRoot.content;\n\t\t\t\t\t\t\tthis.events.emit(\"rootChanged\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.flexTreeViewUnregisterCallbacks.add(\n\t\t\t// Will dispose the old view (if there is one) when its no longer valid, and create a new one if appropriate.\n\t\t\tthis.checkout.storedSchema.events.on(\"afterSchemaChange\", () => this.update()),\n\t\t);\n\n\t\tif (!this.midUpgrade) {\n\t\t\tassert(\n\t\t\t\tthis.pendingHydration === undefined,\n\t\t\t\t0xc76 /* no nodes should be pending hydration when triggering events that could access nodes */,\n\t\t\t);\n\t\t\tthis.events.emit(\"schemaChanged\");\n\t\t\tthis.events.emit(\"rootChanged\");\n\t\t}\n\t}\n\n\t/**\n\t * Computes the current schema compatibility status and updates the cached enabled upgrades.\n\t */\n\tprivate computeCompatibility(): SchemaCompatibilityStatusBeta {\n\t\tconst { enabledUpgrades, ...compatibility } = checkSchemaCompatibility(\n\t\t\tthis.viewSchema,\n\t\t\tthis.checkout.storedSchema,\n\t\t\tthis.stagedUpgradePolicy,\n\t\t);\n\t\tthis.currentEnabledUpgrades = enabledUpgrades;\n\t\treturn {\n\t\t\t...compatibility,\n\t\t\tcanInitialize: canInitialize(this.checkout),\n\t\t};\n\t}\n\n\tprivate runSchemaEdit(edit: () => void): void {\n\t\tthis.midUpgrade = true;\n\t\ttry {\n\t\t\tedit();\n\t\t} finally {\n\t\t\tthis.midUpgrade = false;\n\t\t}\n\t\t// Ensure hydration is flushed before events run which could access nodes.\n\t\tthis.pendingHydration?.();\n\t\tthis.pendingHydration = undefined;\n\t\tthis.events.emit(\"schemaChanged\");\n\t\tthis.events.emit(\"rootChanged\");\n\t}\n\n\tprivate disposeFlexView(): void {\n\t\tconst anchors = this.checkout.forest.anchors;\n\t\tif (this.flexTreeContext !== undefined) {\n\t\t\t// Cleanup any TreeNodes cached in the AnchorSet when disposing the flex-tree which they wrap.\n\t\t\tfor (const anchorNode of anchors) {\n\t\t\t\ttryDisposeTreeNode(anchorNode);\n\t\t\t}\n\n\t\t\tthis.flexTreeContext[disposeSymbol]();\n\t\t\tthis.flexTreeContext = undefined;\n\t\t}\n\t\tfor (const unregister of this.flexTreeViewUnregisterCallbacks) {\n\t\t\tunregister();\n\t\t}\n\t\tthis.flexTreeViewUnregisterCallbacks.clear();\n\t\tanchors.slots.delete(SimpleContextSlot);\n\t}\n\n\tpublic get compatibility(): SchemaCompatibilityStatusBeta {\n\t\tif (!this.currentCompatibility) {\n\t\t\tthis.failDisposed();\n\t\t}\n\t\treturn this.currentCompatibility;\n\t}\n\n\tpublic dispose(): void {\n\t\tthis.disposed = true;\n\t\tthis.disposeFlexView();\n\t\tfor (const unregister of this.unregisterCallbacks) {\n\t\t\tunregister();\n\t\t}\n\t\tthis.checkout.forest.anchors.slots.delete(ViewSlot);\n\t\tthis.currentCompatibility = undefined;\n\t\tthis.currentEnabledUpgrades = undefined;\n\t\tthis.onDispose?.();\n\t\tif (!this.checkout.isSharedBranch && !this.checkout.disposed) {\n\t\t\t// All non-shared branches are 1:1 with views, so if a user manually disposes a view, we should also dispose the checkout/branch.\n\t\t\tthis.checkout.dispose();\n\t\t}\n\t}\n\n\tprivate get flexRoot(): FlexTreeOptionalField | FlexTreeRequiredField {\n\t\tthis.breaker.use();\n\t\tthrowIfSchemaIsIncompatible(this.compatibility);\n\t\tconst view = this.getFlexTreeContext();\n\t\tassert(\n\t\t\tview.root.is(FieldKinds.optional) ||\n\t\t\t\tview.root.is(FieldKinds.required) ||\n\t\t\t\tview.root.is(FieldKinds.identifier),\n\t\t\t0xc77 /* unexpected root field kind */,\n\t\t);\n\t\treturn view.root;\n\t}\n\n\tpublic get root(): ReadableField<TRootSchema> {\n\t\treturn tryGetTreeNodeForField(this.flexRoot) as ReadableField<TRootSchema>;\n\t}\n\n\tpublic set root(newRoot: InsertableField<TRootSchema>) {\n\t\tthis.breaker.use();\n\t\tthrowIfSchemaIsIncompatible(this.compatibility);\n\t\tconst view = this.getFlexTreeContext();\n\t\tsetField(\n\t\t\tview.root,\n\t\t\tthis.rootFieldSchema,\n\t\t\tnewRoot as InsertableContent | undefined,\n\t\t\tthis.checkout.storedSchema.rootFieldSchema,\n\t\t);\n\t}\n\n\t// #region Branching\n\n\tpublic fork(): ReturnType<UntypedTreeViewAlpha[\"fork\"]> &\n\t\tSchematizingSimpleTreeView<TRootSchema> {\n\t\treturn this.checkout.fork().viewWith(this.config);\n\t}\n\n\tpublic rewindTo(revision: string): void {\n\t\tthis.checkout.rewindTo(revision);\n\t}\n\n\tpublic revertTo(revision: string, options?: RevertToOptionsAlpha): void {\n\t\tthis.checkout.revertTo(revision, options);\n\t}\n\n\tpublic merge(context: UntypedTreeViewAlpha, disposeMerged = true): void {\n\t\tthis.checkout.merge(context, disposeMerged);\n\t}\n\n\tpublic rebaseOnto(context: UntypedTreeViewAlpha): void {\n\t\tthis.checkout.rebaseOnto(context);\n\t}\n\n\tpublic isMissingEditsFrom(context: UntypedTreeViewAlpha): boolean {\n\t\treturn this.checkout.isMissingEditsFrom(context);\n\t}\n\n\tpublic computeNetChangeIfRebasedOnto(\n\t\tcontext: UntypedTreeViewAlpha,\n\t): JsonCompatibleReadOnly | undefined {\n\t\treturn this.checkout.computeNetChangeIfRebasedOnto(context);\n\t}\n\n\t// #endregion Branching\n\n\tpublic get branchHistory(): TreeBranchHistory {\n\t\treturn this.checkout.branchHistory;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedTree.d.ts","sourceRoot":"","sources":["../../src/shared-tree/sharedTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE3F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,KAAK,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"sharedTree.d.ts","sourceRoot":"","sources":["../../src/shared-tree/sharedTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.defaultSharedTreeOptions = exports.
|
|
7
|
+
exports.defaultSharedTreeOptions = exports.ForestTypeExpensiveDebug = exports.ForestTypeOptimized = exports.ForestTypeReference = exports.changeFormatVersionForMessage = exports.changeFormatVersionForEditManager = exports.SharedTreeKernel = void 0;
|
|
8
|
+
exports.exportSimpleSchema = exportSimpleSchema;
|
|
9
|
+
exports.persistedToSimpleSchema = persistedToSimpleSchema;
|
|
10
|
+
exports.getCodecTreeForSharedTreeFormat = getCodecTreeForSharedTreeFormat;
|
|
11
|
+
exports.buildConfiguredForest = buildConfiguredForest;
|
|
8
12
|
const tslib_1 = require("tslib");
|
|
9
13
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
10
14
|
const internal_2 = require("@fluidframework/telemetry-utils/internal");
|
|
15
|
+
const semver_ts_1 = require("semver-ts");
|
|
11
16
|
const index_js_1 = require("../codec/index.js");
|
|
12
17
|
const index_js_2 = require("../core/index.js");
|
|
13
18
|
const index_js_3 = require("../feature-libraries/index.js");
|
|
@@ -31,16 +36,36 @@ let SharedTreeKernel = (() => {
|
|
|
31
36
|
let _classSuper = index_js_5.SharedTreeCore;
|
|
32
37
|
let _instanceExtraInitializers = [];
|
|
33
38
|
let _contentSnapshot_decorators;
|
|
34
|
-
var SharedTreeKernel =
|
|
39
|
+
var SharedTreeKernel = class extends _classSuper {
|
|
40
|
+
static { _classThis = this; }
|
|
41
|
+
static {
|
|
42
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
43
|
+
_contentSnapshot_decorators = [index_js_7.throwIfBroken];
|
|
44
|
+
tslib_1.__esDecorate(this, null, _contentSnapshot_decorators, { kind: "method", name: "contentSnapshot", static: false, private: false, access: { has: obj => "contentSnapshot" in obj, get: obj => obj.contentSnapshot }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
45
|
+
tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
46
|
+
SharedTreeKernel = _classThis = _classDescriptor.value;
|
|
47
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
48
|
+
tslib_1.__runInitializers(_classThis, _classExtraInitializers);
|
|
49
|
+
}
|
|
50
|
+
checkout = tslib_1.__runInitializers(this, _instanceExtraInitializers);
|
|
35
51
|
get storedSchema() {
|
|
36
52
|
return this.checkout.storedSchema;
|
|
37
53
|
}
|
|
54
|
+
checkouts = new Map();
|
|
55
|
+
/**
|
|
56
|
+
* The app-facing API for SharedTree implemented by this Kernel.
|
|
57
|
+
* @remarks
|
|
58
|
+
* This is the API grafted onto the ISharedObject which apps can access.
|
|
59
|
+
* It includes both the APIs used for internal testing, and public facing APIs (both stable and unstable).
|
|
60
|
+
* Different users will have access to different subsets of this API, see {@link ITree}, {@link ITreeAlpha} and {@link ITreeInternal} which this {@link ITreePrivate} extends.
|
|
61
|
+
*/
|
|
62
|
+
view;
|
|
38
63
|
constructor(breaker, sharedObject, serializer, submitLocalMessage, lastSequenceNumber, initialSequenceNumber, idCompressor, optionsParam) {
|
|
39
64
|
const options = {
|
|
40
65
|
...exports.defaultSharedTreeOptions,
|
|
41
66
|
...optionsParam,
|
|
42
67
|
};
|
|
43
|
-
if (options.minVersionForCollab
|
|
68
|
+
if ((0, semver_ts_1.lt)(options.minVersionForCollab, index_js_1.FluidClientVersion.v2_0)) {
|
|
44
69
|
throw new internal_2.UsageError("SharedTree requires minVersionForCollab of at least 2.0.0");
|
|
45
70
|
}
|
|
46
71
|
const schema = new index_js_2.TreeStoredSchemaRepository();
|
|
@@ -91,8 +116,6 @@ let SharedTreeKernel = (() => {
|
|
|
91
116
|
throw error;
|
|
92
117
|
});
|
|
93
118
|
super(breaker, sharedObject, serializer, submitLocalMessage, [schemaSummarizer, forestSummarizer, removedRootsSummarizer], changeFamily, options, exports.changeFormatVersionForEditManager, exports.changeFormatVersionForMessage, idCompressor, schema, index_js_3.defaultSchemaPolicy);
|
|
94
|
-
this.checkout = tslib_1.__runInitializers(this, _instanceExtraInitializers);
|
|
95
|
-
this.checkouts = new Map();
|
|
96
119
|
this.checkout = (0, treeCheckout_js_1.createTreeCheckout)(idCompressor, this.mintRevisionTag, revisionTagCodec, {
|
|
97
120
|
branch: this.getLocalBranch(),
|
|
98
121
|
changeFamily,
|
|
@@ -192,16 +215,6 @@ let SharedTreeKernel = (() => {
|
|
|
192
215
|
}
|
|
193
216
|
onDisconnect() { }
|
|
194
217
|
};
|
|
195
|
-
tslib_1.__setFunctionName(_classThis, "SharedTreeKernel");
|
|
196
|
-
(() => {
|
|
197
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
198
|
-
_contentSnapshot_decorators = [index_js_7.throwIfBroken];
|
|
199
|
-
tslib_1.__esDecorate(_classThis, null, _contentSnapshot_decorators, { kind: "method", name: "contentSnapshot", static: false, private: false, access: { has: obj => "contentSnapshot" in obj, get: obj => obj.contentSnapshot }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
200
|
-
tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
201
|
-
SharedTreeKernel = _classThis = _classDescriptor.value;
|
|
202
|
-
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
203
|
-
tslib_1.__runInitializers(_classThis, _classExtraInitializers);
|
|
204
|
-
})();
|
|
205
218
|
return SharedTreeKernel = _classThis;
|
|
206
219
|
})();
|
|
207
220
|
exports.SharedTreeKernel = SharedTreeKernel;
|
|
@@ -213,7 +226,6 @@ function exportSimpleSchema(storedSchema) {
|
|
|
213
226
|
})),
|
|
214
227
|
};
|
|
215
228
|
}
|
|
216
|
-
exports.exportSimpleSchema = exportSimpleSchema;
|
|
217
229
|
/**
|
|
218
230
|
* A way to parse schema in the persisted format from {@link extractPersistedSchema}.
|
|
219
231
|
* @remarks
|
|
@@ -231,7 +243,6 @@ function persistedToSimpleSchema(persisted, options) {
|
|
|
231
243
|
const stored = schemaCodec.decode(persisted);
|
|
232
244
|
return exportSimpleSchema(stored);
|
|
233
245
|
}
|
|
234
|
-
exports.persistedToSimpleSchema = persistedToSimpleSchema;
|
|
235
246
|
/**
|
|
236
247
|
* Defines for each EditManagerFormatVersion the SharedTreeChangeFormatVersion to use.
|
|
237
248
|
* This is an arbitrary mapping that is injected in the EditManger codec.
|
|
@@ -285,7 +296,6 @@ function getCodecTreeForSharedTreeFormat(clientVersion) {
|
|
|
285
296
|
children,
|
|
286
297
|
};
|
|
287
298
|
}
|
|
288
|
-
exports.getCodecTreeForSharedTreeFormat = getCodecTreeForSharedTreeFormat;
|
|
289
299
|
/**
|
|
290
300
|
* Reference implementation of forest.
|
|
291
301
|
* @remarks
|
|
@@ -326,7 +336,6 @@ function toForestType(factory) {
|
|
|
326
336
|
function buildConfiguredForest(breaker, factory, schema, idCompressor, shouldEncodeIncrementally) {
|
|
327
337
|
return factory(breaker, schema, idCompressor, shouldEncodeIncrementally);
|
|
328
338
|
}
|
|
329
|
-
exports.buildConfiguredForest = buildConfiguredForest;
|
|
330
339
|
exports.defaultSharedTreeOptions = {
|
|
331
340
|
jsonValidator: index_js_1.FormatValidatorNoOp,
|
|
332
341
|
minVersionForCollab: index_js_1.FluidClientVersion.v2_0,
|