@fluidframework/tree 2.0.0-rc.2.0.2 → 2.0.0-rc.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/.eslintrc.cjs +2 -0
- package/CHANGELOG.md +74 -0
- package/api-extractor.json +2 -3
- package/api-report/tree.api.md +208 -154
- package/beta.d.ts +11 -0
- package/dist/beta.d.ts +90 -0
- package/dist/codec/codec.d.ts +10 -4
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +2 -2
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/discriminatedUnions.d.ts.map +1 -1
- package/dist/codec/discriminatedUnions.js +6 -2
- package/dist/codec/discriminatedUnions.js.map +1 -1
- package/dist/codec/index.d.ts +2 -2
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +3 -2
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/noopValidator.d.ts.map +1 -1
- package/dist/codec/noopValidator.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +10 -2
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +28 -6
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/codec/versioned/index.d.ts +1 -1
- package/dist/codec/versioned/index.d.ts.map +1 -1
- package/dist/codec/versioned/index.js +2 -1
- package/dist/codec/versioned/index.js.map +1 -1
- package/dist/core/change-family/changeFamily.d.ts +2 -2
- package/dist/core/change-family/changeFamily.d.ts.map +1 -1
- package/dist/core/change-family/changeFamily.js.map +1 -1
- package/dist/core/forest/editableForest.d.ts +1 -1
- package/dist/core/forest/editableForest.d.ts.map +1 -1
- package/dist/core/forest/editableForest.js +2 -2
- package/dist/core/forest/editableForest.js.map +1 -1
- package/dist/core/forest/forest.d.ts +5 -1
- package/dist/core/forest/forest.d.ts.map +1 -1
- package/dist/core/forest/forest.js +2 -2
- package/dist/core/forest/forest.js.map +1 -1
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +4 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/dist/core/rebase/revisionTagCodec.js +2 -2
- package/dist/core/rebase/revisionTagCodec.js.map +1 -1
- package/dist/core/rebase/types.d.ts +30 -0
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +26 -1
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +11 -10
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/revertible/index.d.ts +1 -1
- package/dist/core/revertible/index.d.ts.map +1 -1
- package/dist/core/revertible/index.js +1 -3
- package/dist/core/revertible/index.js.map +1 -1
- package/dist/core/revertible/revertible.d.ts +15 -49
- package/dist/core/revertible/revertible.d.ts.map +1 -1
- package/dist/core/revertible/revertible.js +3 -33
- package/dist/core/revertible/revertible.js.map +1 -1
- package/dist/core/schema-stored/format.d.ts.map +1 -1
- package/dist/core/schema-stored/format.js.map +1 -1
- package/dist/core/schema-stored/index.d.ts +2 -1
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js +4 -1
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/multiplicity.d.ts.map +1 -0
- package/dist/{feature-libraries → core/schema-stored}/multiplicity.js +2 -2
- package/{lib/feature-libraries → dist/core/schema-stored}/multiplicity.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +32 -9
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +14 -7
- 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.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +31 -16
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +37 -62
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/cursor.d.ts.map +1 -1
- package/dist/core/tree/cursor.js +4 -4
- package/dist/core/tree/cursor.js.map +1 -1
- package/dist/core/tree/delta.d.ts.map +1 -1
- package/dist/core/tree/delta.js.map +1 -1
- package/dist/core/tree/deltaUtil.d.ts +1 -1
- package/dist/core/tree/deltaUtil.d.ts.map +1 -1
- package/dist/core/tree/deltaUtil.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +2 -2
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +15 -15
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.js +4 -4
- package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/core/tree/mapTree.d.ts.map +1 -1
- package/dist/core/tree/mapTree.js.map +1 -1
- package/dist/core/tree/pathTree.d.ts.map +1 -1
- package/dist/core/tree/pathTree.js.map +1 -1
- package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
- package/dist/core/tree/sparseTree.d.ts.map +1 -1
- package/dist/core/tree/sparseTree.js +5 -5
- package/dist/core/tree/sparseTree.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/treeTextFormat.js.map +1 -1
- package/dist/core/tree/types.d.ts +1 -1
- package/dist/core/tree/types.d.ts.map +1 -1
- package/dist/core/tree/types.js +7 -7
- package/dist/core/tree/types.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts +13 -2
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js +47 -18
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/core/tree/visitPath.d.ts +1 -1
- package/dist/core/tree/visitPath.d.ts.map +1 -1
- package/dist/core/tree/visitPath.js +4 -0
- package/dist/core/tree/visitPath.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts +4 -4
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js +2 -2
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/domains/json/jsonCursor.d.ts.map +1 -1
- package/dist/domains/json/jsonCursor.js +7 -7
- package/dist/domains/json/jsonCursor.js.map +1 -1
- package/dist/domains/json/jsonDomainSchema.d.ts.map +1 -1
- package/dist/domains/json/jsonDomainSchema.js.map +1 -1
- package/dist/domains/leafDomain.d.ts.map +1 -1
- package/dist/domains/leafDomain.js +8 -8
- package/dist/domains/leafDomain.js.map +1 -1
- package/dist/domains/nodeKey/nodeKeySchema.d.ts.map +1 -1
- package/dist/domains/nodeKey/nodeKeySchema.js +2 -2
- package/dist/domains/nodeKey/nodeKeySchema.js.map +1 -1
- package/dist/domains/schemaBuilder.d.ts +19 -81
- package/dist/domains/schemaBuilder.d.ts.map +1 -1
- package/dist/domains/schemaBuilder.js +24 -93
- package/dist/domains/schemaBuilder.js.map +1 -1
- package/dist/domains/testRecursiveDomain.d.ts +0 -4
- package/dist/domains/testRecursiveDomain.d.ts.map +1 -1
- package/dist/domains/testRecursiveDomain.js +1 -8
- package/dist/domains/testRecursiveDomain.js.map +1 -1
- package/dist/events/events.d.ts.map +1 -1
- package/dist/events/events.js +2 -2
- package/dist/events/events.js.map +1 -1
- package/dist/external-utilities/typeboxValidator.d.ts.map +1 -1
- package/dist/external-utilities/typeboxValidator.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.d.ts +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js +29 -29
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.js +2 -2
- package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +13 -14
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +25 -24
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +4 -4
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +13 -13
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +3 -3
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -9
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +6 -5
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +8 -8
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/format.js +1 -2
- package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +3 -3
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +4 -5
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js +1 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +21 -21
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/contextuallyTyped.d.ts +5 -9
- package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -1
- package/dist/feature-libraries/contextuallyTyped.js +33 -48
- package/dist/feature-libraries/contextuallyTyped.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -5
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +7 -7
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +18 -4
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +59 -24
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js +2 -1
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts +8 -0
- package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/noChangeCodecs.js +10 -0
- package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -0
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js +2 -2
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +6 -6
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/fieldGenerator.d.ts +1 -1
- package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -1
- package/dist/feature-libraries/fieldGenerator.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +16 -4
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +27 -15
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +43 -36
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +9 -6
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +3 -3
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js +3 -2
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +7 -8
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +12 -17
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +21 -7
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +69 -46
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +12 -9
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +51 -97
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/nodeKeys.js.map +1 -1
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts +7 -70
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
- package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/unboxed.js +1 -1
- package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js +2 -2
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +14 -14
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/format.js +4 -4
- package/dist/feature-libraries/forest-summary/format.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +8 -9
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +9 -9
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.js +2 -2
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
- package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js +20 -20
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +19 -13
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts +3 -4
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +21 -0
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js +7 -0
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -0
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -2
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +4 -4
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +3 -7
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +3 -5
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +7 -7
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +4 -4
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +5 -4
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +3 -2
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.js +10 -11
- package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +4 -5
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +73 -37
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +13 -25
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +261 -169
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +5 -12
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js +0 -10
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +6 -4
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/dist/feature-libraries/node-key/nodeKey.d.ts +1 -1
- package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKey.js.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts +2 -2
- package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyIndex.js +3 -3
- package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +2 -2
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.js +9 -9
- package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +49 -48
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/index.d.ts +1 -1
- package/dist/feature-libraries/optional-field/index.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/index.js +1 -2
- package/dist/feature-libraries/optional-field/index.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +3 -5
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +33 -39
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/{optionalFieldChangeFormat.d.ts → optionalFieldChangeFormatV1.d.ts} +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/{optionalFieldChangeFormat.js → optionalFieldChangeFormatV1.js} +11 -2
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +25 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js +44 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +4 -7
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +12 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js +158 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +12 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +87 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -4
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +7 -150
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts +3 -4
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
- package/dist/feature-libraries/schema-aware/schemaAware.js +1 -1
- package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -1
- package/dist/feature-libraries/schema-edits/index.d.ts +1 -1
- package/dist/feature-libraries/schema-edits/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/index.js +2 -2
- package/dist/feature-libraries/schema-edits/index.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -3
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +13 -5
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts +5 -0
- package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +10 -10
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/format.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/format.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +2 -2
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +4 -4
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/schemaBuilder.d.ts +1 -1
- package/dist/feature-libraries/schemaBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/schemaBuilder.js +1 -1
- package/dist/feature-libraries/schemaBuilder.js.map +1 -1
- package/dist/feature-libraries/schemaBuilderBase.d.ts +1 -1
- package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
- package/dist/feature-libraries/schemaBuilderBase.js +19 -19
- package/dist/feature-libraries/schemaBuilderBase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts +9 -13
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +76 -43
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/format.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/format.js +14 -14
- package/dist/feature-libraries/sequence-field/format.js.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/dist/feature-libraries/sequence-field/index.d.ts +5 -5
- package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/index.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts +1 -2
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +30 -39
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markListFactory.d.ts +4 -4
- package/dist/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.d.ts +7 -7
- package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js +2 -2
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +25 -14
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +20 -11
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/prune.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/prune.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -4
- package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +34 -40
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +2 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +17 -19
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -17
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +10 -10
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/types.d.ts +7 -8
- package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/types.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts +42 -35
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +43 -21
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/storedToViewSchema.d.ts +2 -2
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
- package/dist/feature-libraries/storedToViewSchema.js +3 -3
- package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.d.ts +1 -1
- package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/dist/feature-libraries/treeCursorUtils.js +8 -8
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.d.ts +1 -1
- package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/dist/feature-libraries/treeTextCursor.js +3 -3
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts +1 -2
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +0 -1
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/index.js.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js +14 -14
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts +0 -5
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typeUtils.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +5 -4
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +19 -11
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/feature-libraries/typed-schema/view.d.ts +1 -1
- package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/view.js +10 -10
- package/dist/feature-libraries/typed-schema/view.js.map +1 -1
- package/dist/feature-libraries/valueUtilities.d.ts +6 -3
- package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/valueUtilities.js +11 -10
- package/dist/feature-libraries/valueUtilities.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +90 -0
- package/dist/shared-tree/index.d.ts +3 -3
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +2 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +1 -1
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +11 -11
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +10 -3
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +39 -39
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +58 -8
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +45 -12
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +3 -5
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +18 -11
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +1 -0
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +9 -6
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts +4 -188
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.js +3 -3
- package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +4 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeApi.d.ts +83 -2
- package/dist/shared-tree/treeApi.d.ts.map +1 -1
- package/dist/shared-tree/treeApi.js +37 -14
- package/dist/shared-tree/treeApi.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +41 -20
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +135 -61
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree/treeView.d.ts +3 -3
- package/dist/shared-tree/treeView.d.ts.map +1 -1
- package/dist/shared-tree/treeView.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +5 -32
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +12 -142
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts +2 -15
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +38 -82
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +4 -4
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +24 -10
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.d.ts +4 -5
- package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.js +9 -10
- package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.d.ts +7 -6
- package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +6 -9
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +1 -1
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +2 -2
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts +7 -4
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +21 -4
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +10 -2
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js +1 -0
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/shared-tree-core/messageTypes.d.ts.map +1 -1
- package/dist/shared-tree-core/messageTypes.js.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +10 -5
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +18 -18
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +187 -0
- package/dist/simple-tree/arrayNode.d.ts.map +1 -0
- package/dist/simple-tree/arrayNode.js +438 -0
- package/dist/simple-tree/arrayNode.js.map +1 -0
- package/dist/simple-tree/index.d.ts +10 -8
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +9 -8
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +11 -0
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -0
- package/dist/simple-tree/leafNodeSchema.js +51 -0
- package/dist/simple-tree/leafNodeSchema.js.map +1 -0
- package/dist/simple-tree/mapNode.d.ts +86 -0
- package/dist/simple-tree/mapNode.d.ts.map +1 -0
- package/dist/simple-tree/mapNode.js +204 -0
- package/dist/simple-tree/mapNode.js.map +1 -0
- package/dist/simple-tree/objectNode.d.ts +62 -0
- package/dist/simple-tree/objectNode.d.ts.map +1 -0
- package/dist/simple-tree/objectNode.js +242 -0
- package/dist/simple-tree/objectNode.js.map +1 -0
- package/dist/simple-tree/proxies.d.ts +21 -62
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +128 -679
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/proxyBinding.d.ts +48 -0
- package/dist/simple-tree/proxyBinding.d.ts.map +1 -0
- package/dist/simple-tree/proxyBinding.js +132 -0
- package/dist/simple-tree/proxyBinding.js.map +1 -0
- package/dist/simple-tree/rawNode.d.ts +9 -50
- package/dist/simple-tree/rawNode.d.ts.map +1 -1
- package/dist/simple-tree/rawNode.js +15 -91
- package/dist/simple-tree/rawNode.js.map +1 -1
- package/dist/simple-tree/schemaCaching.d.ts +26 -0
- package/dist/simple-tree/schemaCaching.d.ts.map +1 -0
- package/dist/simple-tree/schemaCaching.js +69 -0
- package/dist/simple-tree/schemaCaching.js.map +1 -0
- package/dist/simple-tree/schemaCreationUtilities.d.ts +2 -1
- package/dist/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
- package/dist/simple-tree/schemaCreationUtilities.js +3 -3
- package/dist/simple-tree/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/schemaFactory.d.ts +92 -43
- package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/schemaFactory.js +124 -177
- package/dist/simple-tree/schemaFactory.js.map +1 -1
- package/dist/simple-tree/schemaFactoryRecursive.d.ts +27 -83
- package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/schemaFactoryRecursive.js +1 -115
- package/dist/simple-tree/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +123 -70
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +86 -5
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/testRecursiveDomain.d.ts +8 -8
- package/dist/simple-tree/testRecursiveDomain.d.ts.map +1 -1
- package/dist/simple-tree/testRecursiveDomain.js +2 -2
- package/dist/simple-tree/testRecursiveDomain.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts +8 -20
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +33 -41
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts +12 -22
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +185 -136
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/tree.d.ts +20 -3
- package/dist/simple-tree/tree.d.ts.map +1 -1
- package/dist/simple-tree/tree.js.map +1 -1
- package/dist/simple-tree/treeApi.d.ts +82 -5
- package/dist/simple-tree/treeApi.d.ts.map +1 -1
- package/dist/simple-tree/treeApi.js +96 -18
- package/dist/simple-tree/treeApi.js.map +1 -1
- package/dist/simple-tree/types.d.ts +1 -142
- package/dist/simple-tree/types.d.ts.map +1 -1
- package/dist/simple-tree/types.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +32 -17
- package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/treeFactory.d.ts +31 -14
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +50 -23
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/brand.d.ts +26 -114
- package/dist/util/brand.d.ts.map +1 -1
- package/dist/util/brand.js +24 -91
- package/dist/util/brand.js.map +1 -1
- package/dist/util/idAllocator.d.ts.map +1 -1
- package/dist/util/idAllocator.js +2 -2
- package/dist/util/idAllocator.js.map +1 -1
- package/dist/util/index.d.ts +5 -3
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +8 -9
- package/dist/util/index.js.map +1 -1
- package/dist/util/nestedSet.d.ts.map +1 -1
- package/dist/util/nestedSet.js.map +1 -1
- package/dist/util/opaque.d.ts +46 -0
- package/dist/util/opaque.d.ts.map +1 -0
- package/dist/util/opaque.js +29 -0
- package/dist/util/opaque.js.map +1 -0
- package/dist/util/referenceCounting.d.ts +1 -1
- package/dist/util/referenceCounting.d.ts.map +1 -1
- package/dist/util/referenceCounting.js +3 -3
- package/dist/util/referenceCounting.js.map +1 -1
- package/dist/util/typeCheckTests.d.ts +1 -1
- package/dist/util/typeCheckTests.d.ts.map +1 -1
- package/dist/util/typeCheckTests.js.map +1 -1
- package/dist/util/typeUtils.d.ts +13 -0
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/dist/util/typeboxBrand.d.ts +17 -0
- package/dist/util/typeboxBrand.d.ts.map +1 -0
- package/dist/util/typeboxBrand.js +32 -0
- package/dist/util/typeboxBrand.js.map +1 -0
- package/dist/util/utils.d.ts +2 -15
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +11 -11
- package/dist/util/utils.js.map +1 -1
- package/docs/main/compatibility.md +95 -0
- package/docs/main/schema2.md +3 -3
- package/docs/main/sequence-field/move-composition.md +46 -0
- package/docs/main/tree-content-apis.md +5 -5
- package/docs/roadmap.md +4 -4
- package/internal.d.ts +11 -0
- package/lib/beta.d.ts +90 -0
- package/lib/codec/codec.d.ts +10 -4
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +2 -2
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/discriminatedUnions.d.ts.map +1 -1
- package/lib/codec/discriminatedUnions.js +5 -1
- package/lib/codec/discriminatedUnions.js.map +1 -1
- package/lib/codec/index.d.ts +2 -2
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/codec/noopValidator.d.ts.map +1 -1
- package/lib/codec/noopValidator.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts +10 -2
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +25 -4
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/codec/versioned/index.d.ts +1 -1
- package/lib/codec/versioned/index.d.ts.map +1 -1
- package/lib/codec/versioned/index.js +1 -1
- package/lib/codec/versioned/index.js.map +1 -1
- package/lib/core/change-family/changeFamily.d.ts +2 -2
- package/lib/core/change-family/changeFamily.d.ts.map +1 -1
- package/lib/core/change-family/changeFamily.js.map +1 -1
- package/lib/core/forest/editableForest.d.ts +1 -1
- package/lib/core/forest/editableForest.d.ts.map +1 -1
- package/lib/core/forest/editableForest.js +2 -2
- package/lib/core/forest/editableForest.js.map +1 -1
- package/lib/core/forest/forest.d.ts +5 -1
- package/lib/core/forest/forest.d.ts.map +1 -1
- package/lib/core/forest/forest.js +1 -1
- package/lib/core/forest/forest.js.map +1 -1
- package/lib/core/index.d.ts +3 -3
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +3 -3
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/lib/core/rebase/revisionTagCodec.js +1 -1
- package/lib/core/rebase/revisionTagCodec.js.map +1 -1
- package/lib/core/rebase/types.d.ts +30 -0
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +23 -0
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +6 -5
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/revertible/index.d.ts +1 -1
- package/lib/core/revertible/index.d.ts.map +1 -1
- package/lib/core/revertible/index.js +1 -1
- package/lib/core/revertible/index.js.map +1 -1
- package/lib/core/revertible/revertible.d.ts +15 -49
- package/lib/core/revertible/revertible.d.ts.map +1 -1
- package/lib/core/revertible/revertible.js +2 -32
- package/lib/core/revertible/revertible.js.map +1 -1
- package/lib/core/schema-stored/format.d.ts.map +1 -1
- package/lib/core/schema-stored/format.js.map +1 -1
- package/lib/core/schema-stored/index.d.ts +2 -1
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +2 -1
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/multiplicity.d.ts.map +1 -0
- package/lib/core/schema-stored/multiplicity.js.map +1 -0
- package/lib/core/schema-stored/schema.d.ts +32 -9
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +13 -7
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +31 -16
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +10 -35
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/cursor.d.ts.map +1 -1
- package/lib/core/tree/cursor.js +1 -1
- package/lib/core/tree/cursor.js.map +1 -1
- package/lib/core/tree/delta.d.ts.map +1 -1
- package/lib/core/tree/delta.js.map +1 -1
- package/lib/core/tree/deltaUtil.d.ts +1 -1
- package/lib/core/tree/deltaUtil.d.ts.map +1 -1
- package/lib/core/tree/deltaUtil.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +2 -2
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +2 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.js +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/core/tree/mapTree.d.ts.map +1 -1
- package/lib/core/tree/mapTree.js.map +1 -1
- package/lib/core/tree/pathTree.d.ts.map +1 -1
- package/lib/core/tree/pathTree.js.map +1 -1
- package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
- package/lib/core/tree/sparseTree.d.ts.map +1 -1
- package/lib/core/tree/sparseTree.js +1 -1
- package/lib/core/tree/sparseTree.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/treeTextFormat.js.map +1 -1
- package/lib/core/tree/types.d.ts +1 -1
- package/lib/core/tree/types.d.ts.map +1 -1
- package/lib/core/tree/types.js +1 -1
- package/lib/core/tree/types.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts +13 -2
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js +43 -14
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/core/tree/visitPath.d.ts +1 -1
- package/lib/core/tree/visitPath.d.ts.map +1 -1
- package/lib/core/tree/visitPath.js +4 -0
- package/lib/core/tree/visitPath.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts +4 -4
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js +1 -1
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/domains/json/jsonCursor.d.ts.map +1 -1
- package/lib/domains/json/jsonCursor.js +1 -1
- package/lib/domains/json/jsonCursor.js.map +1 -1
- package/lib/domains/json/jsonDomainSchema.d.ts.map +1 -1
- package/lib/domains/json/jsonDomainSchema.js.map +1 -1
- package/lib/domains/leafDomain.d.ts.map +1 -1
- package/lib/domains/leafDomain.js +1 -1
- package/lib/domains/leafDomain.js.map +1 -1
- package/lib/domains/nodeKey/nodeKeySchema.d.ts.map +1 -1
- package/lib/domains/nodeKey/nodeKeySchema.js +2 -2
- package/lib/domains/nodeKey/nodeKeySchema.js.map +1 -1
- package/lib/domains/schemaBuilder.d.ts +19 -81
- package/lib/domains/schemaBuilder.d.ts.map +1 -1
- package/lib/domains/schemaBuilder.js +24 -92
- package/lib/domains/schemaBuilder.js.map +1 -1
- package/lib/domains/testRecursiveDomain.d.ts +0 -4
- package/lib/domains/testRecursiveDomain.d.ts.map +1 -1
- package/lib/domains/testRecursiveDomain.js +1 -8
- package/lib/domains/testRecursiveDomain.js.map +1 -1
- package/lib/events/events.d.ts.map +1 -1
- package/lib/events/events.js +1 -1
- package/lib/events/events.js.map +1 -1
- package/lib/external-utilities/typeboxValidator.d.ts.map +1 -1
- package/lib/external-utilities/typeboxValidator.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdCodec.d.ts +1 -1
- package/lib/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
- package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js +4 -4
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +5 -6
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +4 -3
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +3 -3
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -9
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +4 -3
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/format.js +2 -3
- package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +3 -4
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js +1 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +4 -4
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/contextuallyTyped.d.ts +5 -9
- package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -1
- package/lib/feature-libraries/contextuallyTyped.js +6 -20
- package/lib/feature-libraries/contextuallyTyped.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -5
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +6 -6
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +18 -4
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +55 -20
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js +1 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts +8 -0
- package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/noChangeCodecs.js +7 -0
- package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -0
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +1 -1
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/fieldGenerator.d.ts +1 -1
- package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -1
- package/lib/feature-libraries/fieldGenerator.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +16 -4
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +17 -5
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +43 -36
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +8 -5
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +3 -3
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js +2 -2
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +7 -8
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +8 -12
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +21 -7
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +43 -22
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +12 -9
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +35 -80
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/nodeKeys.js.map +1 -1
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts +7 -70
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
- package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/unboxed.js +1 -1
- package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.js +1 -1
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +3 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/format.js +1 -1
- package/lib/feature-libraries/forest-summary/format.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +8 -9
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +6 -7
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.js +2 -2
- package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.js +1 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.js +3 -3
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +19 -13
- 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.d.ts +3 -4
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +21 -0
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -0
- package/lib/{test/codec/codec.spec.d.ts → feature-libraries/modular-schema/fieldKindConfiguration.js} +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -0
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -2
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +3 -3
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +3 -7
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +3 -5
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +7 -7
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +4 -4
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +5 -4
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +2 -2
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.js +6 -7
- package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +4 -5
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +63 -27
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +13 -25
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +202 -110
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +5 -12
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js +2 -12
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +6 -4
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/lib/feature-libraries/node-key/nodeKey.d.ts +1 -1
- package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKey.js.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts +2 -2
- package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyIndex.js +2 -2
- package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +2 -2
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.js +2 -2
- package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +6 -5
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/index.d.ts +1 -1
- package/lib/feature-libraries/optional-field/index.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/index.js +1 -1
- package/lib/feature-libraries/optional-field/index.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +3 -5
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +18 -22
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/{optionalFieldChangeFormat.d.ts → optionalFieldChangeFormatV1.d.ts} +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/{optionalFieldChangeFormat.js → optionalFieldChangeFormatV1.js} +11 -2
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +25 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js +40 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +4 -7
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +12 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js +154 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +12 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +83 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -4
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +7 -150
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts +3 -4
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
- package/lib/feature-libraries/schema-aware/schemaAware.js +1 -1
- package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -1
- package/lib/feature-libraries/schema-edits/index.d.ts +1 -1
- package/lib/feature-libraries/schema-edits/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/index.js +1 -1
- package/lib/feature-libraries/schema-edits/index.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -3
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +10 -2
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts +5 -0
- package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +3 -3
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/format.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/format.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +2 -2
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +2 -2
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/schemaBuilder.d.ts +1 -1
- package/lib/feature-libraries/schemaBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/schemaBuilder.js +1 -1
- package/lib/feature-libraries/schemaBuilder.js.map +1 -1
- package/lib/feature-libraries/schemaBuilderBase.d.ts +1 -1
- package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
- package/lib/feature-libraries/schemaBuilderBase.js +2 -2
- package/lib/feature-libraries/schemaBuilderBase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts +9 -13
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +63 -30
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/format.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/format.js +1 -1
- package/lib/feature-libraries/sequence-field/format.js.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/lib/feature-libraries/sequence-field/index.d.ts +5 -5
- package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/index.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts +1 -2
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +20 -29
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markListFactory.d.ts +4 -4
- package/lib/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.d.ts +7 -7
- package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +25 -14
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.js +15 -6
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/lib/feature-libraries/sequence-field/prune.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/prune.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -4
- package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +11 -17
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +2 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +13 -15
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -17
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +7 -7
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/types.d.ts +7 -8
- package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/types.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts +42 -35
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +28 -7
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/storedToViewSchema.d.ts +2 -2
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
- package/lib/feature-libraries/storedToViewSchema.js +3 -3
- package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.d.ts +1 -1
- package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
- package/lib/feature-libraries/treeCursorUtils.js +2 -2
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/feature-libraries/treeTextCursor.d.ts +1 -1
- package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/lib/feature-libraries/treeTextCursor.js +2 -2
- package/lib/feature-libraries/treeTextCursor.js.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts +1 -2
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +0 -1
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/index.js.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +4 -4
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts +0 -5
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typeUtils.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +5 -4
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +16 -8
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/feature-libraries/typed-schema/view.d.ts +1 -1
- package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/view.js +1 -1
- package/lib/feature-libraries/typed-schema/view.js.map +1 -1
- package/lib/feature-libraries/valueUtilities.d.ts +6 -3
- package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/valueUtilities.js +8 -7
- package/lib/feature-libraries/valueUtilities.js.map +1 -1
- package/lib/index.d.ts +7 -7
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -7
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +90 -0
- package/lib/shared-tree/index.d.ts +3 -3
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +2 -2
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +1 -1
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +6 -6
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +10 -3
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +21 -21
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +58 -8
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +43 -10
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +3 -5
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +18 -10
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +1 -0
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +7 -5
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts +4 -188
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.js +3 -3
- package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +4 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeApi.d.ts +83 -2
- package/lib/shared-tree/treeApi.d.ts.map +1 -1
- package/lib/shared-tree/treeApi.js +30 -7
- package/lib/shared-tree/treeApi.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +41 -20
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +115 -41
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree/treeView.d.ts +3 -3
- package/lib/shared-tree/treeView.d.ts.map +1 -1
- package/lib/shared-tree/treeView.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +5 -32
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +9 -139
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts +2 -15
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +4 -48
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +4 -4
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +19 -6
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.d.ts +4 -5
- package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.js +2 -3
- package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.d.ts +7 -6
- package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +4 -7
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +1 -1
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts +7 -4
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +19 -3
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +10 -2
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js +1 -0
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/shared-tree-core/messageTypes.d.ts.map +1 -1
- package/lib/shared-tree-core/messageTypes.js.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +10 -5
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +12 -12
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +187 -0
- package/lib/simple-tree/arrayNode.d.ts.map +1 -0
- package/lib/simple-tree/arrayNode.js +433 -0
- package/lib/simple-tree/arrayNode.js.map +1 -0
- package/lib/simple-tree/index.d.ts +10 -8
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +4 -4
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +11 -0
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -0
- package/lib/simple-tree/leafNodeSchema.js +48 -0
- package/lib/simple-tree/leafNodeSchema.js.map +1 -0
- package/lib/simple-tree/mapNode.d.ts +86 -0
- package/lib/simple-tree/mapNode.d.ts.map +1 -0
- package/lib/simple-tree/mapNode.js +198 -0
- package/lib/simple-tree/mapNode.js.map +1 -0
- package/lib/simple-tree/objectNode.d.ts +62 -0
- package/lib/simple-tree/objectNode.d.ts.map +1 -0
- package/lib/simple-tree/objectNode.js +236 -0
- package/lib/simple-tree/objectNode.js.map +1 -0
- package/lib/simple-tree/proxies.d.ts +21 -62
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +119 -667
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/proxyBinding.d.ts +48 -0
- package/lib/simple-tree/proxyBinding.d.ts.map +1 -0
- package/lib/simple-tree/proxyBinding.js +124 -0
- package/lib/simple-tree/proxyBinding.js.map +1 -0
- package/lib/simple-tree/rawNode.d.ts +9 -50
- package/lib/simple-tree/rawNode.d.ts.map +1 -1
- package/lib/simple-tree/rawNode.js +12 -85
- package/lib/simple-tree/rawNode.js.map +1 -1
- package/lib/simple-tree/schemaCaching.d.ts +26 -0
- package/lib/simple-tree/schemaCaching.d.ts.map +1 -0
- package/lib/simple-tree/schemaCaching.js +61 -0
- package/lib/simple-tree/schemaCaching.js.map +1 -0
- package/lib/simple-tree/schemaCreationUtilities.d.ts +2 -1
- package/lib/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
- package/lib/simple-tree/schemaCreationUtilities.js +1 -1
- package/lib/simple-tree/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/schemaFactory.d.ts +92 -43
- package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/schemaFactory.js +105 -157
- package/lib/simple-tree/schemaFactory.js.map +1 -1
- package/lib/simple-tree/schemaFactoryRecursive.d.ts +27 -83
- package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/schemaFactoryRecursive.js +1 -114
- package/lib/simple-tree/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +123 -70
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +81 -4
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/testRecursiveDomain.d.ts +8 -8
- package/lib/simple-tree/testRecursiveDomain.d.ts.map +1 -1
- package/lib/simple-tree/testRecursiveDomain.js +2 -2
- package/lib/simple-tree/testRecursiveDomain.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts +8 -20
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +22 -27
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts +12 -22
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +183 -133
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/tree.d.ts +20 -3
- package/lib/simple-tree/tree.d.ts.map +1 -1
- package/lib/simple-tree/tree.js.map +1 -1
- package/lib/simple-tree/treeApi.d.ts +82 -5
- package/lib/simple-tree/treeApi.d.ts.map +1 -1
- package/lib/simple-tree/treeApi.js +90 -12
- package/lib/simple-tree/treeApi.js.map +1 -1
- package/lib/simple-tree/types.d.ts +1 -142
- package/lib/simple-tree/types.d.ts.map +1 -1
- package/lib/simple-tree/types.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +32 -17
- package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/treeFactory.d.ts +31 -14
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +48 -22
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/brand.d.ts +26 -114
- package/lib/util/brand.d.ts.map +1 -1
- package/lib/util/brand.js +23 -83
- package/lib/util/brand.js.map +1 -1
- package/lib/util/idAllocator.d.ts.map +1 -1
- package/lib/util/idAllocator.js +1 -1
- package/lib/util/idAllocator.js.map +1 -1
- package/lib/util/index.d.ts +5 -3
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +3 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/nestedSet.d.ts.map +1 -1
- package/lib/util/nestedSet.js.map +1 -1
- package/lib/util/opaque.d.ts +46 -0
- package/lib/util/opaque.d.ts.map +1 -0
- package/lib/util/opaque.js +24 -0
- package/lib/util/opaque.js.map +1 -0
- package/lib/util/referenceCounting.d.ts +1 -1
- package/lib/util/referenceCounting.d.ts.map +1 -1
- package/lib/util/referenceCounting.js +2 -2
- package/lib/util/referenceCounting.js.map +1 -1
- package/lib/util/typeCheckTests.d.ts +1 -1
- package/lib/util/typeCheckTests.d.ts.map +1 -1
- package/lib/util/typeCheckTests.js.map +1 -1
- package/lib/util/typeUtils.d.ts +13 -0
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/lib/util/typeboxBrand.d.ts +17 -0
- package/lib/util/typeboxBrand.d.ts.map +1 -0
- package/lib/util/typeboxBrand.js +27 -0
- package/lib/util/typeboxBrand.js.map +1 -0
- package/lib/util/utils.d.ts +2 -15
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +3 -3
- package/lib/util/utils.js.map +1 -1
- package/package.json +55 -50
- package/src/codec/codec.ts +15 -7
- package/src/codec/discriminatedUnions.ts +3 -1
- package/src/codec/index.ts +8 -1
- package/src/codec/noopValidator.ts +1 -0
- package/src/codec/versioned/codec.ts +55 -25
- package/src/codec/versioned/index.ts +5 -1
- package/src/core/README.md +1 -5
- package/src/core/change-family/changeFamily.ts +3 -2
- package/src/core/forest/editableForest.ts +7 -5
- package/src/core/forest/forest.ts +11 -4
- package/src/core/index.ts +10 -8
- package/src/core/rebase/changeRebaser.ts +1 -0
- package/src/core/rebase/index.ts +4 -0
- package/src/core/rebase/revisionTagCodec.ts +3 -1
- package/src/core/rebase/types.ts +46 -1
- package/src/core/rebase/utils.ts +9 -6
- package/src/core/revertible/index.ts +1 -1
- package/src/core/revertible/revertible.ts +17 -50
- package/src/core/schema-stored/format.ts +1 -0
- package/src/core/schema-stored/index.ts +5 -2
- package/src/{feature-libraries → core/schema-stored}/multiplicity.ts +1 -0
- package/src/core/schema-stored/schema.ts +51 -23
- package/src/core/schema-stored/storedSchemaRepository.ts +4 -2
- package/src/core/tree/anchorSet.ts +52 -63
- package/src/core/tree/cursor.ts +3 -1
- package/src/core/tree/delta.ts +1 -0
- package/src/core/tree/deltaUtil.ts +2 -1
- package/src/core/tree/detachedFieldIndex.ts +6 -4
- package/src/core/tree/detachedFieldIndexCodec.ts +4 -2
- package/src/core/tree/detachedFieldIndexFormat.ts +2 -0
- package/src/core/tree/detachedFieldIndexTypes.ts +1 -0
- package/src/core/tree/mapTree.ts +1 -0
- package/src/core/tree/pathTree.ts +1 -0
- package/src/core/tree/persistedTreeTextFormat.ts +1 -0
- package/src/core/tree/sparseTree.ts +4 -2
- package/src/core/tree/treeTextFormat.ts +1 -0
- package/src/core/tree/types.ts +2 -1
- package/src/core/tree/visitDelta.ts +65 -18
- package/src/core/tree/visitPath.ts +2 -1
- package/src/core/tree/visitorUtils.ts +7 -5
- package/src/domains/json/jsonCursor.ts +6 -4
- package/src/domains/json/jsonDomainSchema.ts +1 -2
- package/src/domains/leafDomain.ts +1 -1
- package/src/domains/nodeKey/nodeKeySchema.ts +5 -4
- package/src/domains/schemaBuilder.ts +25 -214
- package/src/domains/testRecursiveDomain.ts +2 -25
- package/src/events/events.ts +2 -1
- package/src/external-utilities/typeboxValidator.ts +2 -1
- package/src/feature-libraries/README.md +4 -4
- package/src/feature-libraries/changeAtomIdCodec.ts +4 -4
- package/src/feature-libraries/chunked-forest/basicChunk.ts +12 -10
- package/src/feature-libraries/chunked-forest/chunk.ts +3 -2
- package/src/feature-libraries/chunked-forest/chunkTree.ts +17 -15
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +20 -17
- package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +4 -3
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +16 -14
- package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +5 -3
- package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +2 -1
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +9 -12
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +11 -9
- package/src/feature-libraries/chunked-forest/codec/format.ts +4 -3
- package/src/feature-libraries/chunked-forest/codec/index.ts +1 -6
- package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +8 -6
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncoding.ts +13 -11
- package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +2 -1
- package/src/feature-libraries/chunked-forest/emptyChunk.ts +5 -4
- package/src/feature-libraries/chunked-forest/index.ts +0 -1
- package/src/feature-libraries/chunked-forest/sequenceChunk.ts +3 -2
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +11 -9
- package/src/feature-libraries/contextuallyTyped.ts +23 -36
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +36 -57
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +78 -25
- package/src/feature-libraries/default-schema/defaultSchema.ts +1 -0
- package/src/feature-libraries/default-schema/index.ts +2 -0
- package/src/feature-libraries/default-schema/noChangeCodecs.ts +12 -0
- package/src/feature-libraries/detachedFieldIndexSummarizer.ts +4 -3
- package/src/feature-libraries/editableTreeBinder.ts +3 -1
- package/src/feature-libraries/fieldGenerator.ts +2 -1
- package/src/feature-libraries/flex-tree/README.md +2 -2
- package/src/feature-libraries/flex-tree/context.ts +34 -8
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +63 -45
- package/src/feature-libraries/flex-tree/index.ts +3 -3
- package/src/feature-libraries/flex-tree/lazyEntity.ts +13 -23
- package/src/feature-libraries/flex-tree/lazyField.ts +95 -47
- package/src/feature-libraries/flex-tree/lazyNode.ts +65 -131
- package/src/feature-libraries/flex-tree/nodeKeys.ts +1 -0
- package/src/feature-libraries/flex-tree/treeEvents.ts +7 -73
- package/src/feature-libraries/flex-tree/unboxed.ts +3 -2
- package/src/feature-libraries/flex-tree/utilities.ts +1 -0
- package/src/feature-libraries/forest-summary/codec.ts +3 -1
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +13 -11
- package/src/feature-libraries/forest-summary/format.ts +2 -1
- package/src/feature-libraries/index.ts +13 -12
- package/src/feature-libraries/mapTreeCursor.ts +8 -6
- package/src/feature-libraries/memoizedIdRangeAllocator.ts +3 -3
- package/src/feature-libraries/modular-schema/comparison.ts +11 -9
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +29 -28
- package/src/feature-libraries/modular-schema/fieldKind.ts +8 -4
- package/src/feature-libraries/modular-schema/fieldKindConfiguration.ts +24 -0
- package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +7 -5
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +12 -20
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +18 -31
- package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +2 -2
- package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +4 -4
- package/src/feature-libraries/modular-schema/index.ts +5 -2
- package/src/feature-libraries/modular-schema/isNeverTree.ts +12 -12
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +151 -56
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +460 -251
- package/src/feature-libraries/modular-schema/modularChangeFormat.ts +4 -22
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +7 -3
- package/src/feature-libraries/node-key/nodeKey.ts +2 -1
- package/src/feature-libraries/node-key/nodeKeyIndex.ts +5 -3
- package/src/feature-libraries/node-key/nodeKeyManager.ts +6 -4
- package/src/feature-libraries/object-forest/objectForest.ts +25 -23
- package/src/feature-libraries/optional-field/index.ts +1 -1
- package/src/feature-libraries/optional-field/optionalField.ts +38 -44
- package/src/feature-libraries/optional-field/{optionalFieldChangeFormat.ts → optionalFieldChangeFormatV1.ts} +10 -1
- package/src/feature-libraries/optional-field/optionalFieldChangeFormatV2.ts +60 -0
- package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +4 -7
- package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +204 -0
- package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +135 -0
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +11 -207
- package/src/feature-libraries/schema-aware/README.md +1 -1
- package/src/feature-libraries/schema-aware/schemaAware.ts +13 -9
- package/src/feature-libraries/schema-edits/index.ts +1 -1
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +23 -3
- package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +1 -0
- package/src/feature-libraries/schema-edits/schemaChangeTypes.ts +6 -0
- package/src/feature-libraries/schema-index/codec.ts +8 -7
- package/src/feature-libraries/schema-index/format.ts +1 -0
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +10 -8
- package/src/feature-libraries/schemaBuilder.ts +2 -1
- package/src/feature-libraries/schemaBuilderBase.ts +16 -14
- package/src/feature-libraries/sequence-field/compose.ts +283 -176
- package/src/feature-libraries/sequence-field/format.ts +2 -1
- package/src/feature-libraries/sequence-field/helperTypes.ts +5 -5
- package/src/feature-libraries/sequence-field/index.ts +4 -5
- package/src/feature-libraries/sequence-field/invert.ts +49 -82
- package/src/feature-libraries/sequence-field/markListFactory.ts +4 -4
- package/src/feature-libraries/sequence-field/markQueue.ts +12 -10
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +61 -31
- package/src/feature-libraries/sequence-field/prune.ts +4 -8
- package/src/feature-libraries/sequence-field/rebase.ts +128 -141
- package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +9 -10
- package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +3 -2
- package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +3 -2
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +31 -38
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +38 -59
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +15 -15
- package/src/feature-libraries/sequence-field/types.ts +7 -9
- package/src/feature-libraries/sequence-field/utils.ts +95 -76
- package/src/feature-libraries/storedToViewSchema.ts +13 -12
- package/src/feature-libraries/treeCursorUtils.ts +9 -8
- package/src/feature-libraries/treeTextCursor.ts +12 -10
- package/src/feature-libraries/typed-schema/flexList.ts +1 -3
- package/src/feature-libraries/typed-schema/index.ts +0 -2
- package/src/feature-libraries/typed-schema/schemaCollection.ts +11 -10
- package/src/feature-libraries/typed-schema/typeUtils.ts +0 -6
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +32 -18
- package/src/feature-libraries/typed-schema/view.ts +6 -5
- package/src/feature-libraries/valueUtilities.ts +11 -9
- package/src/index.ts +34 -26
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +9 -1
- package/src/shared-tree/schematizeTree.ts +12 -10
- package/src/shared-tree/schematizingTreeView.ts +47 -28
- package/src/shared-tree/sharedTree.ts +131 -44
- package/src/shared-tree/sharedTreeChangeCodecs.ts +79 -62
- package/src/shared-tree/sharedTreeChangeFamily.ts +13 -7
- package/src/shared-tree/sharedTreeChangeFormat.ts +4 -3
- package/src/shared-tree/sharedTreeEditBuilder.ts +5 -1
- package/src/shared-tree/treeApi.ts +141 -10
- package/src/shared-tree/treeCheckout.ts +203 -60
- package/src/shared-tree/treeView.ts +5 -4
- package/src/shared-tree-core/branch.ts +20 -204
- package/src/shared-tree-core/editManager.ts +20 -78
- package/src/shared-tree-core/editManagerCodecs.ts +111 -63
- package/src/shared-tree-core/editManagerFormat.ts +7 -8
- package/src/shared-tree-core/editManagerSummarizer.ts +14 -36
- package/src/shared-tree-core/index.ts +2 -0
- package/src/shared-tree-core/messageCodecs.ts +62 -5
- package/src/shared-tree-core/messageFormat.ts +12 -2
- package/src/shared-tree-core/messageTypes.ts +1 -0
- package/src/shared-tree-core/sequenceIdUtils.ts +1 -0
- package/src/shared-tree-core/sharedTreeCore.ts +40 -22
- package/src/simple-tree/ProxyBinding.md +102 -0
- package/src/simple-tree/README.md +0 -6
- package/src/simple-tree/arrayNode.ts +769 -0
- package/src/simple-tree/index.ts +16 -9
- package/src/simple-tree/leafNodeSchema.ts +72 -0
- package/src/simple-tree/mapNode.ts +343 -0
- package/src/simple-tree/objectNode.ts +411 -0
- package/src/simple-tree/proxies.ts +197 -932
- package/src/simple-tree/proxyBinding.ts +182 -0
- package/src/simple-tree/rawNode.ts +19 -135
- package/src/simple-tree/schemaCaching.ts +90 -0
- package/src/simple-tree/schemaCreationUtilities.ts +6 -9
- package/src/simple-tree/schemaFactory.ts +247 -261
- package/src/simple-tree/schemaFactoryRecursive.ts +32 -185
- package/src/simple-tree/schemaTypes.ts +149 -81
- package/src/simple-tree/testRecursiveDomain.ts +3 -3
- package/src/simple-tree/toFlexSchema.ts +39 -47
- package/src/simple-tree/toMapTree.ts +236 -196
- package/src/simple-tree/tree.ts +24 -3
- package/src/simple-tree/treeApi.ts +209 -24
- package/src/simple-tree/types.ts +1 -173
- package/src/simple-tree/typesUnsafe.ts +42 -21
- package/src/treeFactory.ts +51 -26
- package/src/util/brand.ts +36 -168
- package/src/util/idAllocator.ts +2 -1
- package/src/util/index.ts +4 -18
- package/src/util/nestedSet.ts +1 -1
- package/src/util/opaque.ts +68 -0
- package/src/util/referenceCounting.ts +3 -3
- package/src/util/typeCheckTests.ts +7 -7
- package/src/util/typeUtils.ts +14 -0
- package/src/util/typeboxBrand.ts +31 -0
- package/src/util/utils.ts +3 -17
- package/tsconfig.json +1 -1
- package/api-extractor-cjs.json +0 -18
- package/api-extractor-esm.json +0 -14
- package/dist/feature-libraries/multiplicity.d.ts.map +0 -1
- package/dist/feature-libraries/multiplicity.js.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +0 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +0 -1
- package/dist/simple-tree/flexNode.d.ts +0 -35
- package/dist/simple-tree/flexNode.d.ts.map +0 -1
- package/dist/simple-tree/flexNode.js +0 -62
- package/dist/simple-tree/flexNode.js.map +0 -1
- package/dist/simple-tree/treeArrayNode.d.ts +0 -46
- package/dist/simple-tree/treeArrayNode.d.ts.map +0 -1
- package/dist/simple-tree/treeArrayNode.js +0 -50
- package/dist/simple-tree/treeArrayNode.js.map +0 -1
- package/dist/tree-alpha.d.ts +0 -2159
- package/dist/tree-beta.d.ts +0 -2159
- package/dist/tree-public.d.ts +0 -1942
- package/dist/tree-untrimmed.d.ts +0 -6880
- package/lib/feature-libraries/multiplicity.d.ts.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +0 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +0 -1
- package/lib/simple-tree/flexNode.d.ts +0 -35
- package/lib/simple-tree/flexNode.d.ts.map +0 -1
- package/lib/simple-tree/flexNode.js +0 -55
- package/lib/simple-tree/flexNode.js.map +0 -1
- package/lib/simple-tree/treeArrayNode.d.ts +0 -46
- package/lib/simple-tree/treeArrayNode.d.ts.map +0 -1
- package/lib/simple-tree/treeArrayNode.js +0 -46
- package/lib/simple-tree/treeArrayNode.js.map +0 -1
- package/lib/test/codec/ajvValidator.cjs +0 -70
- package/lib/test/codec/ajvValidator.cjs.map +0 -1
- package/lib/test/codec/ajvValidator.d.cts +0 -13
- package/lib/test/codec/ajvValidator.d.cts.map +0 -1
- package/lib/test/codec/codec.spec.d.ts.map +0 -1
- package/lib/test/codec/codec.spec.js +0 -36
- package/lib/test/codec/codec.spec.js.map +0 -1
- package/lib/test/codec/index.d.ts +0 -7
- package/lib/test/codec/index.d.ts.map +0 -1
- package/lib/test/codec/index.js +0 -7
- package/lib/test/codec/index.js.map +0 -1
- package/lib/test/codec/utils.d.ts +0 -58
- package/lib/test/codec/utils.d.ts.map +0 -1
- package/lib/test/codec/utils.js +0 -61
- package/lib/test/codec/utils.js.map +0 -1
- package/lib/test/cursorTestSuite.d.ts +0 -106
- package/lib/test/cursorTestSuite.d.ts.map +0 -1
- package/lib/test/cursorTestSuite.js +0 -680
- package/lib/test/cursorTestSuite.js.map +0 -1
- package/lib/test/domains/json/benchmarks.d.ts +0 -17
- package/lib/test/domains/json/benchmarks.d.ts.map +0 -1
- package/lib/test/domains/json/benchmarks.js +0 -61
- package/lib/test/domains/json/benchmarks.js.map +0 -1
- package/lib/test/domains/json/canada.d.ts +0 -33
- package/lib/test/domains/json/canada.d.ts.map +0 -1
- package/lib/test/domains/json/canada.js +0 -81
- package/lib/test/domains/json/canada.js.map +0 -1
- package/lib/test/domains/json/citm.d.ts +0 -81
- package/lib/test/domains/json/citm.d.ts.map +0 -1
- package/lib/test/domains/json/citm.js +0 -515
- package/lib/test/domains/json/citm.js.map +0 -1
- package/lib/test/domains/json/jsDirectObject.bench.d.ts +0 -13
- package/lib/test/domains/json/jsDirectObject.bench.d.ts.map +0 -1
- package/lib/test/domains/json/jsDirectObject.bench.js +0 -74
- package/lib/test/domains/json/jsDirectObject.bench.js.map +0 -1
- package/lib/test/domains/json/jsObjectUtil.d.ts +0 -12
- package/lib/test/domains/json/jsObjectUtil.d.ts.map +0 -1
- package/lib/test/domains/json/jsObjectUtil.js +0 -36
- package/lib/test/domains/json/jsObjectUtil.js.map +0 -1
- package/lib/test/domains/json/jsonCursor.bench.d.ts +0 -11
- package/lib/test/domains/json/jsonCursor.bench.d.ts.map +0 -1
- package/lib/test/domains/json/jsonCursor.bench.js +0 -220
- package/lib/test/domains/json/jsonCursor.bench.js.map +0 -1
- package/lib/test/domains/json/jsonCursor.spec.d.ts +0 -6
- package/lib/test/domains/json/jsonCursor.spec.d.ts.map +0 -1
- package/lib/test/domains/json/jsonCursor.spec.js +0 -75
- package/lib/test/domains/json/jsonCursor.spec.js.map +0 -1
- package/lib/test/domains/json/jsonGeneratorUtils.d.ts +0 -9
- package/lib/test/domains/json/jsonGeneratorUtils.d.ts.map +0 -1
- package/lib/test/domains/json/jsonGeneratorUtils.js +0 -36
- package/lib/test/domains/json/jsonGeneratorUtils.js.map +0 -1
- package/lib/test/domains/json/twitter.d.ts +0 -204
- package/lib/test/domains/json/twitter.d.ts.map +0 -1
- package/lib/test/domains/json/twitter.js +0 -7413
- package/lib/test/domains/json/twitter.js.map +0 -1
- package/lib/test/domains/schemaBuilder.spec.d.ts +0 -6
- package/lib/test/domains/schemaBuilder.spec.d.ts.map +0 -1
- package/lib/test/domains/schemaBuilder.spec.js +0 -148
- package/lib/test/domains/schemaBuilder.spec.js.map +0 -1
- package/lib/test/editMinter.d.ts +0 -8
- package/lib/test/editMinter.d.ts.map +0 -1
- package/lib/test/editMinter.js +0 -21
- package/lib/test/editMinter.js.map +0 -1
- package/lib/test/events/eventEmitter.spec.d.ts +0 -6
- package/lib/test/events/eventEmitter.spec.d.ts.map +0 -1
- package/lib/test/events/eventEmitter.spec.js +0 -159
- package/lib/test/events/eventEmitter.spec.js.map +0 -1
- package/lib/test/exhaustiveRebaserUtils.d.ts +0 -78
- package/lib/test/exhaustiveRebaserUtils.d.ts.map +0 -1
- package/lib/test/exhaustiveRebaserUtils.js +0 -53
- package/lib/test/exhaustiveRebaserUtils.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.js +0 -161
- package/lib/test/feature-libraries/chunked-forest/basicChunk.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.d.ts +0 -2
- package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.js +0 -102
- package/lib/test/feature-libraries/chunked-forest/chunkEncodingEndToEnd.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.js +0 -259
- package/lib/test/feature-libraries/chunked-forest/chunkTree.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.js +0 -47
- package/lib/test/feature-libraries/chunked-forest/chunkedForest.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.d.ts +0 -9
- package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.js +0 -124
- package/lib/test/feature-libraries/chunked-forest/codec/checkEncode.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.js +0 -187
- package/lib/test/feature-libraries/chunked-forest/codec/chunkCodecUtilities.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.js +0 -308
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecoding.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.js +0 -123
- package/lib/test/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.d.ts +0 -7
- package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.js +0 -135
- package/lib/test/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.d.ts +0 -11
- package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.js +0 -211
- package/lib/test/feature-libraries/chunked-forest/codec/compressedEncode.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/format.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/codec/format.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/format.spec.js +0 -15
- package/lib/test/feature-libraries/chunked-forest/codec/format.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.js +0 -98
- package/lib/test/feature-libraries/chunked-forest/codec/nodeShape.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.js +0 -176
- package/lib/test/feature-libraries/chunked-forest/codec/schemaBasedEncoding.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.js +0 -29
- package/lib/test/feature-libraries/chunked-forest/codec/uncompressedEncode.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.d.ts +0 -12
- package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.js +0 -38
- package/lib/test/feature-libraries/chunked-forest/fieldCursorTestUtilities.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.d.ts +0 -6
- package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.js +0 -138
- package/lib/test/feature-libraries/chunked-forest/uniformChunk.spec.js.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.d.ts +0 -34
- package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.d.ts.map +0 -1
- package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.js +0 -114
- package/lib/test/feature-libraries/chunked-forest/uniformChunkTestData.js.map +0 -1
- package/lib/test/feature-libraries/contextuallyTyped.spec.d.ts +0 -6
- package/lib/test/feature-libraries/contextuallyTyped.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/contextuallyTyped.spec.js +0 -107
- package/lib/test/feature-libraries/contextuallyTyped.spec.js.map +0 -1
- package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.d.ts +0 -6
- package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.js +0 -850
- package/lib/test/feature-libraries/default-field-kinds/defaultChangeFamily.spec.js.map +0 -1
- package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.d.ts +0 -6
- package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.js +0 -110
- package/lib/test/feature-libraries/default-field-kinds/defaultFieldKinds.spec.js.map +0 -1
- package/lib/test/feature-libraries/deltaUtils.spec.d.ts +0 -6
- package/lib/test/feature-libraries/deltaUtils.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/deltaUtils.spec.js +0 -87
- package/lib/test/feature-libraries/deltaUtils.spec.js.map +0 -1
- package/lib/test/feature-libraries/fieldKindTestUtils.d.ts +0 -20
- package/lib/test/feature-libraries/fieldKindTestUtils.d.ts.map +0 -1
- package/lib/test/feature-libraries/fieldKindTestUtils.js +0 -42
- package/lib/test/feature-libraries/fieldKindTestUtils.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.d.ts +0 -6
- package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.js +0 -91
- package/lib/test/feature-libraries/flex-tree/editableTree.identifier.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.d.ts +0 -6
- package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.js +0 -225
- package/lib/test/feature-libraries/flex-tree/editableTreeTypes.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/events.spec.d.ts +0 -2
- package/lib/test/feature-libraries/flex-tree/events.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/events.spec.js +0 -605
- package/lib/test/feature-libraries/flex-tree/events.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/lazyField.spec.d.ts +0 -6
- package/lib/test/feature-libraries/flex-tree/lazyField.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/lazyField.spec.js +0 -326
- package/lib/test/feature-libraries/flex-tree/lazyField.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/lazyNode.spec.d.ts +0 -6
- package/lib/test/feature-libraries/flex-tree/lazyNode.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/lazyNode.spec.js +0 -381
- package/lib/test/feature-libraries/flex-tree/lazyNode.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/navigation.spec.d.ts +0 -6
- package/lib/test/feature-libraries/flex-tree/navigation.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/navigation.spec.js +0 -50
- package/lib/test/feature-libraries/flex-tree/navigation.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/unboxed.spec.d.ts +0 -6
- package/lib/test/feature-libraries/flex-tree/unboxed.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/unboxed.spec.js +0 -197
- package/lib/test/feature-libraries/flex-tree/unboxed.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/utilities.spec.d.ts +0 -6
- package/lib/test/feature-libraries/flex-tree/utilities.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/utilities.spec.js +0 -109
- package/lib/test/feature-libraries/flex-tree/utilities.spec.js.map +0 -1
- package/lib/test/feature-libraries/flex-tree/utils.d.ts +0 -32
- package/lib/test/feature-libraries/flex-tree/utils.d.ts.map +0 -1
- package/lib/test/feature-libraries/flex-tree/utils.js +0 -50
- package/lib/test/feature-libraries/flex-tree/utils.js.map +0 -1
- package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.d.ts +0 -6
- package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.js +0 -115
- package/lib/test/feature-libraries/forest-summary/forestSummarizerCodec.spec.js.map +0 -1
- package/lib/test/feature-libraries/mapTreeCursor.spec.d.ts +0 -6
- package/lib/test/feature-libraries/mapTreeCursor.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/mapTreeCursor.spec.js +0 -8
- package/lib/test/feature-libraries/mapTreeCursor.spec.js.map +0 -1
- package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.d.ts +0 -6
- package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.js +0 -80
- package/lib/test/feature-libraries/memoizedIdRangeAllocator.spec.js.map +0 -1
- package/lib/test/feature-libraries/mitigatedChangeFamily.spec.d.ts +0 -6
- package/lib/test/feature-libraries/mitigatedChangeFamily.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/mitigatedChangeFamily.spec.js +0 -96
- package/lib/test/feature-libraries/mitigatedChangeFamily.spec.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/basicRebasers.d.ts +0 -44
- package/lib/test/feature-libraries/modular-schema/basicRebasers.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/basicRebasers.js +0 -77
- package/lib/test/feature-libraries/modular-schema/basicRebasers.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/comparison.spec.d.ts +0 -6
- package/lib/test/feature-libraries/modular-schema/comparison.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/comparison.spec.js +0 -264
- package/lib/test/feature-libraries/modular-schema/comparison.spec.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.d.ts +0 -6
- package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.js +0 -345
- package/lib/test/feature-libraries/modular-schema/genericFieldKind.spec.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.d.ts +0 -6
- package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.js +0 -49
- package/lib/test/feature-libraries/modular-schema/genericFieldSnapshots.test.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.d.ts +0 -6
- package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.js +0 -126
- package/lib/test/feature-libraries/modular-schema/isNeverTree.spec.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.d.ts +0 -6
- package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.js +0 -1070
- package/lib/test/feature-libraries/modular-schema/modularChangeFamily.spec.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/rangeMap.spec.d.ts +0 -6
- package/lib/test/feature-libraries/modular-schema/rangeMap.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/rangeMap.spec.js +0 -182
- package/lib/test/feature-libraries/modular-schema/rangeMap.spec.js.map +0 -1
- package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.d.ts +0 -6
- package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.js +0 -390
- package/lib/test/feature-libraries/modular-schema/schemaEvolutionExamples.spec.js.map +0 -1
- package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.d.ts +0 -6
- package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.js +0 -556
- package/lib/test/feature-libraries/modularChangeFamilyIntegration.spec.js.map +0 -1
- package/lib/test/feature-libraries/node-key/nodeKey.spec.d.ts +0 -6
- package/lib/test/feature-libraries/node-key/nodeKey.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/node-key/nodeKey.spec.js +0 -74
- package/lib/test/feature-libraries/node-key/nodeKey.spec.js.map +0 -1
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.d.ts +0 -6
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.d.ts.map +0 -1
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.js +0 -258
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.bench.js.map +0 -1
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.d.ts +0 -6
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.js +0 -262
- package/lib/test/feature-libraries/node-key/nodeKeyIndex.spec.js.map +0 -1
- package/lib/test/feature-libraries/objectForest.spec.d.ts +0 -6
- package/lib/test/feature-libraries/objectForest.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/objectForest.spec.js +0 -62
- package/lib/test/feature-libraries/objectForest.spec.js.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.d.ts +0 -6
- package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.js +0 -352
- package/lib/test/feature-libraries/optional-field/optionalChangeRebaser.test.js.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalField.spec.d.ts +0 -6
- package/lib/test/feature-libraries/optional-field/optionalField.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalField.spec.js +0 -396
- package/lib/test/feature-libraries/optional-field/optionalField.spec.js.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.d.ts +0 -6
- package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.js +0 -50
- package/lib/test/feature-libraries/optional-field/optionalFieldChangeCodecs.test.js.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.d.ts +0 -6
- package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.js +0 -59
- package/lib/test/feature-libraries/optional-field/optionalFieldSnapshots.test.js.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalFieldUtils.d.ts +0 -62
- package/lib/test/feature-libraries/optional-field/optionalFieldUtils.d.ts.map +0 -1
- package/lib/test/feature-libraries/optional-field/optionalFieldUtils.js +0 -232
- package/lib/test/feature-libraries/optional-field/optionalFieldUtils.js.map +0 -1
- package/lib/test/feature-libraries/schema-aware/schemaAware.spec.d.ts +0 -6
- package/lib/test/feature-libraries/schema-aware/schemaAware.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/schema-aware/schemaAware.spec.js +0 -133
- package/lib/test/feature-libraries/schema-aware/schemaAware.spec.js.map +0 -1
- package/lib/test/feature-libraries/schema-aware/schemaComplex.d.ts +0 -16
- package/lib/test/feature-libraries/schema-aware/schemaComplex.d.ts.map +0 -1
- package/lib/test/feature-libraries/schema-aware/schemaComplex.js +0 -40
- package/lib/test/feature-libraries/schema-aware/schemaComplex.js.map +0 -1
- package/lib/test/feature-libraries/schema-aware/schemaSimple.d.ts +0 -13
- package/lib/test/feature-libraries/schema-aware/schemaSimple.d.ts.map +0 -1
- package/lib/test/feature-libraries/schema-aware/schemaSimple.js +0 -28
- package/lib/test/feature-libraries/schema-aware/schemaSimple.js.map +0 -1
- package/lib/test/feature-libraries/schema-index/codec.spec.d.ts +0 -6
- package/lib/test/feature-libraries/schema-index/codec.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/schema-index/codec.spec.js +0 -81
- package/lib/test/feature-libraries/schema-index/codec.spec.js.map +0 -1
- package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.d.ts +0 -6
- package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.js +0 -28
- package/lib/test/feature-libraries/schema-index/schemaSummarizer.spec.js.map +0 -1
- package/lib/test/feature-libraries/schemaBuilder.spec.d.ts +0 -6
- package/lib/test/feature-libraries/schemaBuilder.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/schemaBuilder.spec.js +0 -88
- package/lib/test/feature-libraries/schemaBuilder.spec.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/compose.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/compose.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/compose.test.js +0 -1431
- package/lib/test/feature-libraries/sequence-field/compose.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/invert.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/invert.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/invert.test.js +0 -418
- package/lib/test/feature-libraries/sequence-field/invert.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/markListFactory.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/markListFactory.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/markListFactory.test.js +0 -239
- package/lib/test/feature-libraries/sequence-field/markListFactory.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/populatedMarks.d.ts +0 -18
- package/lib/test/feature-libraries/sequence-field/populatedMarks.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/populatedMarks.js +0 -95
- package/lib/test/feature-libraries/sequence-field/populatedMarks.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.d.ts +0 -12
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.js +0 -35
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.js +0 -42
- package/lib/test/feature-libraries/sequence-field/randomChangeGenerator.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/rebase.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/rebase.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/rebase.test.js +0 -1038
- package/lib/test/feature-libraries/sequence-field/rebase.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.js +0 -211
- package/lib/test/feature-libraries/sequence-field/relevantRemovedRoots.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.d.ts +0 -11
- package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.js +0 -784
- package/lib/test/feature-libraries/sequence-field/sequenceChangeRebaser.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceField.spec.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/sequenceField.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceField.spec.js +0 -36
- package/lib/test/feature-libraries/sequence-field/sequenceField.spec.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.js +0 -34
- package/lib/test/feature-libraries/sequence-field/sequenceFieldCodecs.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.js +0 -38
- package/lib/test/feature-libraries/sequence-field/sequenceFieldEditor.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.js +0 -34
- package/lib/test/feature-libraries/sequence-field/sequenceFieldSnapshots.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.js +0 -417
- package/lib/test/feature-libraries/sequence-field/sequenceFieldToDelta.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.d.ts +0 -6
- package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.js +0 -40
- package/lib/test/feature-libraries/sequence-field/sequenceFieldUtils.test.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/testEdits.d.ts +0 -124
- package/lib/test/feature-libraries/sequence-field/testEdits.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/testEdits.js +0 -270
- package/lib/test/feature-libraries/sequence-field/testEdits.js.map +0 -1
- package/lib/test/feature-libraries/sequence-field/utils.d.ts +0 -106
- package/lib/test/feature-libraries/sequence-field/utils.d.ts.map +0 -1
- package/lib/test/feature-libraries/sequence-field/utils.js +0 -535
- package/lib/test/feature-libraries/sequence-field/utils.js.map +0 -1
- package/lib/test/feature-libraries/storedToViewSchema.spec.d.ts +0 -6
- package/lib/test/feature-libraries/storedToViewSchema.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/storedToViewSchema.spec.js +0 -117
- package/lib/test/feature-libraries/storedToViewSchema.spec.js.map +0 -1
- package/lib/test/feature-libraries/treeCursorUtils.spec.d.ts +0 -6
- package/lib/test/feature-libraries/treeCursorUtils.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/treeCursorUtils.spec.js +0 -237
- package/lib/test/feature-libraries/treeCursorUtils.spec.js.map +0 -1
- package/lib/test/feature-libraries/treeTextCursor.spec.d.ts +0 -6
- package/lib/test/feature-libraries/treeTextCursor.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/treeTextCursor.spec.js +0 -8
- package/lib/test/feature-libraries/treeTextCursor.spec.js.map +0 -1
- package/lib/test/feature-libraries/typedSchema/example.spec.d.ts +0 -6
- package/lib/test/feature-libraries/typedSchema/example.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/typedSchema/example.spec.js +0 -20
- package/lib/test/feature-libraries/typedSchema/example.spec.js.map +0 -1
- package/lib/test/feature-libraries/typedSchema/flexList.spec.d.ts +0 -6
- package/lib/test/feature-libraries/typedSchema/flexList.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/typedSchema/flexList.spec.js +0 -52
- package/lib/test/feature-libraries/typedSchema/flexList.spec.js.map +0 -1
- package/lib/test/feature-libraries/typedSchema/typeUtils.spec.d.ts +0 -6
- package/lib/test/feature-libraries/typedSchema/typeUtils.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/typedSchema/typeUtils.spec.js +0 -10
- package/lib/test/feature-libraries/typedSchema/typeUtils.spec.js.map +0 -1
- package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.d.ts +0 -6
- package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.js +0 -83
- package/lib/test/feature-libraries/typedSchema/typedTreeSchema.spec.js.map +0 -1
- package/lib/test/feature-libraries/valueUtilities.spec.d.ts +0 -6
- package/lib/test/feature-libraries/valueUtilities.spec.d.ts.map +0 -1
- package/lib/test/feature-libraries/valueUtilities.spec.js +0 -69
- package/lib/test/feature-libraries/valueUtilities.spec.js.map +0 -1
- package/lib/test/forestTestSuite.d.ts +0 -26
- package/lib/test/forestTestSuite.d.ts.map +0 -1
- package/lib/test/forestTestSuite.js +0 -793
- package/lib/test/forestTestSuite.js.map +0 -1
- package/lib/test/objMerge.d.ts +0 -24
- package/lib/test/objMerge.d.ts.map +0 -1
- package/lib/test/objMerge.js +0 -181
- package/lib/test/objMerge.js.map +0 -1
- package/lib/test/rebase/findAncestor.spec.d.ts +0 -6
- package/lib/test/rebase/findAncestor.spec.d.ts.map +0 -1
- package/lib/test/rebase/findAncestor.spec.js +0 -139
- package/lib/test/rebase/findAncestor.spec.js.map +0 -1
- package/lib/test/rebase/fuzz.d.ts +0 -16
- package/lib/test/rebase/fuzz.d.ts.map +0 -1
- package/lib/test/rebase/fuzz.js +0 -57
- package/lib/test/rebase/fuzz.js.map +0 -1
- package/lib/test/rebase/generateFuzzyCombinedChange.spec.d.ts +0 -6
- package/lib/test/rebase/generateFuzzyCombinedChange.spec.d.ts.map +0 -1
- package/lib/test/rebase/generateFuzzyCombinedChange.spec.js +0 -42
- package/lib/test/rebase/generateFuzzyCombinedChange.spec.js.map +0 -1
- package/lib/test/rebase/rebaseBranch.spec.d.ts +0 -6
- package/lib/test/rebase/rebaseBranch.spec.d.ts.map +0 -1
- package/lib/test/rebase/rebaseBranch.spec.js +0 -208
- package/lib/test/rebase/rebaseBranch.spec.js.map +0 -1
- package/lib/test/rebase/rebaser.spec.d.ts +0 -14
- package/lib/test/rebase/rebaser.spec.d.ts.map +0 -1
- package/lib/test/rebase/rebaser.spec.js +0 -166
- package/lib/test/rebase/rebaser.spec.js.map +0 -1
- package/lib/test/rebase/revisionTagCodec.spec.d.ts +0 -6
- package/lib/test/rebase/revisionTagCodec.spec.d.ts.map +0 -1
- package/lib/test/rebase/revisionTagCodec.spec.js +0 -56
- package/lib/test/rebase/revisionTagCodec.spec.js.map +0 -1
- package/lib/test/rebase/verifyChangeRebaser.spec.d.ts +0 -6
- package/lib/test/rebase/verifyChangeRebaser.spec.d.ts.map +0 -1
- package/lib/test/rebase/verifyChangeRebaser.spec.js +0 -52
- package/lib/test/rebase/verifyChangeRebaser.spec.js.map +0 -1
- package/lib/test/rebaserAxiomaticTests.d.ts +0 -15
- package/lib/test/rebaserAxiomaticTests.d.ts.map +0 -1
- package/lib/test/rebaserAxiomaticTests.js +0 -202
- package/lib/test/rebaserAxiomaticTests.js.map +0 -1
- package/lib/test/scalableTestTrees.d.ts +0 -89
- package/lib/test/scalableTestTrees.d.ts.map +0 -1
- package/lib/test/scalableTestTrees.js +0 -188
- package/lib/test/scalableTestTrees.js.map +0 -1
- package/lib/test/shared-tree/editing.spec.d.ts +0 -2
- package/lib/test/shared-tree/editing.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/editing.spec.js +0 -2091
- package/lib/test/shared-tree/editing.spec.js.map +0 -1
- package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.d.ts +0 -2
- package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.js +0 -161
- package/lib/test/shared-tree/fuzz/anchorStability.fuzz.spec.js.map +0 -1
- package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.d.ts +0 -2
- package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.js +0 -105
- package/lib/test/shared-tree/fuzz/composeVsIndividual.fuzz.spec.js.map +0 -1
- package/lib/test/shared-tree/fuzz/fuzzEditGenerators.d.ts +0 -127
- package/lib/test/shared-tree/fuzz/fuzzEditGenerators.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/fuzzEditGenerators.js +0 -439
- package/lib/test/shared-tree/fuzz/fuzzEditGenerators.js.map +0 -1
- package/lib/test/shared-tree/fuzz/fuzzEditReducers.d.ts +0 -21
- package/lib/test/shared-tree/fuzz/fuzzEditReducers.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/fuzzEditReducers.js +0 -214
- package/lib/test/shared-tree/fuzz/fuzzEditReducers.js.map +0 -1
- package/lib/test/shared-tree/fuzz/fuzzUtils.d.ts +0 -33
- package/lib/test/shared-tree/fuzz/fuzzUtils.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/fuzzUtils.js +0 -78
- package/lib/test/shared-tree/fuzz/fuzzUtils.js.map +0 -1
- package/lib/test/shared-tree/fuzz/operationTypes.d.ts +0 -116
- package/lib/test/shared-tree/fuzz/operationTypes.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/operationTypes.js +0 -6
- package/lib/test/shared-tree/fuzz/operationTypes.js.map +0 -1
- package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.d.ts +0 -2
- package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.js +0 -110
- package/lib/test/shared-tree/fuzz/topLevel.fuzz.spec.js.map +0 -1
- package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.d.ts +0 -6
- package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.js +0 -220
- package/lib/test/shared-tree/fuzz/undoRedo.fuzz.spec.js.map +0 -1
- package/lib/test/shared-tree/opSize.bench.d.ts +0 -2
- package/lib/test/shared-tree/opSize.bench.d.ts.map +0 -1
- package/lib/test/shared-tree/opSize.bench.js +0 -559
- package/lib/test/shared-tree/opSize.bench.js.map +0 -1
- package/lib/test/shared-tree/schematizeTree.spec.d.ts +0 -6
- package/lib/test/shared-tree/schematizeTree.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/schematizeTree.spec.js +0 -331
- package/lib/test/shared-tree/schematizeTree.spec.js.map +0 -1
- package/lib/test/shared-tree/schematizingTreeView.spec.d.ts +0 -6
- package/lib/test/shared-tree/schematizingTreeView.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/schematizingTreeView.spec.js +0 -137
- package/lib/test/shared-tree/schematizingTreeView.spec.js.map +0 -1
- package/lib/test/shared-tree/sharedTree.bench.d.ts +0 -2
- package/lib/test/shared-tree/sharedTree.bench.d.ts.map +0 -1
- package/lib/test/shared-tree/sharedTree.bench.js +0 -349
- package/lib/test/shared-tree/sharedTree.bench.js.map +0 -1
- package/lib/test/shared-tree/sharedTree.spec.d.ts +0 -2
- package/lib/test/shared-tree/sharedTree.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/sharedTree.spec.js +0 -1375
- package/lib/test/shared-tree/sharedTree.spec.js.map +0 -1
- package/lib/test/shared-tree/sharedTreeChangeCodec.spec.d.ts +0 -6
- package/lib/test/shared-tree/sharedTreeChangeCodec.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/sharedTreeChangeCodec.spec.js +0 -52
- package/lib/test/shared-tree/sharedTreeChangeCodec.spec.js.map +0 -1
- package/lib/test/shared-tree/sharedTreeChangeFamily.spec.d.ts +0 -6
- package/lib/test/shared-tree/sharedTreeChangeFamily.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/sharedTreeChangeFamily.spec.js +0 -139
- package/lib/test/shared-tree/sharedTreeChangeFamily.spec.js.map +0 -1
- package/lib/test/shared-tree/summary.bench.d.ts +0 -6
- package/lib/test/shared-tree/summary.bench.d.ts.map +0 -1
- package/lib/test/shared-tree/summary.bench.js +0 -111
- package/lib/test/shared-tree/summary.bench.js.map +0 -1
- package/lib/test/shared-tree/treeApi.spec.d.ts +0 -2
- package/lib/test/shared-tree/treeApi.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/treeApi.spec.js +0 -151
- package/lib/test/shared-tree/treeApi.spec.js.map +0 -1
- package/lib/test/shared-tree/treeCheckout.spec.d.ts +0 -2
- package/lib/test/shared-tree/treeCheckout.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/treeCheckout.spec.js +0 -678
- package/lib/test/shared-tree/treeCheckout.spec.js.map +0 -1
- package/lib/test/shared-tree/treeView.spec.d.ts +0 -2
- package/lib/test/shared-tree/treeView.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/treeView.spec.js +0 -16
- package/lib/test/shared-tree/treeView.spec.js.map +0 -1
- package/lib/test/shared-tree/undo.spec.d.ts +0 -2
- package/lib/test/shared-tree/undo.spec.d.ts.map +0 -1
- package/lib/test/shared-tree/undo.spec.js +0 -298
- package/lib/test/shared-tree/undo.spec.js.map +0 -1
- package/lib/test/shared-tree-core/branch.spec.d.ts +0 -6
- package/lib/test/shared-tree-core/branch.spec.d.ts.map +0 -1
- package/lib/test/shared-tree-core/branch.spec.js +0 -766
- package/lib/test/shared-tree-core/branch.spec.js.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManager.bench.d.ts +0 -6
- package/lib/test/shared-tree-core/edit-manager/editManager.bench.d.ts.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManager.bench.js +0 -227
- package/lib/test/shared-tree-core/edit-manager/editManager.bench.js.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManager.spec.d.ts +0 -6
- package/lib/test/shared-tree-core/edit-manager/editManager.spec.d.ts.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManager.spec.js +0 -13
- package/lib/test/shared-tree-core/edit-manager/editManager.spec.js.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.d.ts +0 -6
- package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.d.ts.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.js +0 -161
- package/lib/test/shared-tree-core/edit-manager/editManagerCodecs.test.js.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.d.ts +0 -6
- package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.d.ts.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.js +0 -568
- package/lib/test/shared-tree-core/edit-manager/editManagerCorrectness.test.js.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.d.ts +0 -6
- package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.d.ts.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.js +0 -442
- package/lib/test/shared-tree-core/edit-manager/editManagerPerf.test.js.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerScenario.d.ts +0 -80
- package/lib/test/shared-tree-core/edit-manager/editManagerScenario.d.ts.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerScenario.js +0 -267
- package/lib/test/shared-tree-core/edit-manager/editManagerScenario.js.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.d.ts +0 -211
- package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.d.ts.map +0 -1
- package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.js +0 -130
- package/lib/test/shared-tree-core/edit-manager/editManagerTestUtils.js.map +0 -1
- package/lib/test/shared-tree-core/message.spec.d.ts +0 -2
- package/lib/test/shared-tree-core/message.spec.d.ts.map +0 -1
- package/lib/test/shared-tree-core/message.spec.js +0 -99
- package/lib/test/shared-tree-core/message.spec.js.map +0 -1
- package/lib/test/shared-tree-core/sharedTreeCore.spec.d.ts +0 -2
- package/lib/test/shared-tree-core/sharedTreeCore.spec.d.ts.map +0 -1
- package/lib/test/shared-tree-core/sharedTreeCore.spec.js +0 -316
- package/lib/test/shared-tree-core/sharedTreeCore.spec.js.map +0 -1
- package/lib/test/shared-tree-core/utils.d.ts +0 -19
- package/lib/test/shared-tree-core/utils.d.ts.map +0 -1
- package/lib/test/shared-tree-core/utils.js +0 -26
- package/lib/test/shared-tree-core/utils.js.map +0 -1
- package/lib/test/simple-tree/list.spec.d.ts +0 -6
- package/lib/test/simple-tree/list.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/list.spec.js +0 -613
- package/lib/test/simple-tree/list.spec.js.map +0 -1
- package/lib/test/simple-tree/object.spec.d.ts +0 -6
- package/lib/test/simple-tree/object.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/object.spec.js +0 -390
- package/lib/test/simple-tree/object.spec.js.map +0 -1
- package/lib/test/simple-tree/objectFactory.spec.d.ts +0 -6
- package/lib/test/simple-tree/objectFactory.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/objectFactory.spec.js +0 -210
- package/lib/test/simple-tree/objectFactory.spec.js.map +0 -1
- package/lib/test/simple-tree/primitives.spec.d.ts +0 -6
- package/lib/test/simple-tree/primitives.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/primitives.spec.js +0 -134
- package/lib/test/simple-tree/primitives.spec.js.map +0 -1
- package/lib/test/simple-tree/proxies.spec.d.ts +0 -6
- package/lib/test/simple-tree/proxies.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/proxies.spec.js +0 -597
- package/lib/test/simple-tree/proxies.spec.js.map +0 -1
- package/lib/test/simple-tree/rawObjectNode.spec.d.ts +0 -6
- package/lib/test/simple-tree/rawObjectNode.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/rawObjectNode.spec.js +0 -73
- package/lib/test/simple-tree/rawObjectNode.spec.js.map +0 -1
- package/lib/test/simple-tree/schemaCreationUtilities.spec.d.ts +0 -6
- package/lib/test/simple-tree/schemaCreationUtilities.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/schemaCreationUtilities.spec.js +0 -153
- package/lib/test/simple-tree/schemaCreationUtilities.spec.js.map +0 -1
- package/lib/test/simple-tree/schemaFactory.examples.spec.d.ts +0 -6
- package/lib/test/simple-tree/schemaFactory.examples.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/schemaFactory.examples.spec.js +0 -107
- package/lib/test/simple-tree/schemaFactory.examples.spec.js.map +0 -1
- package/lib/test/simple-tree/schemaFactory.spec.d.ts +0 -6
- package/lib/test/simple-tree/schemaFactory.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/schemaFactory.spec.js +0 -515
- package/lib/test/simple-tree/schemaFactory.spec.js.map +0 -1
- package/lib/test/simple-tree/schemaFactoryRecursive.spec.d.ts +0 -6
- package/lib/test/simple-tree/schemaFactoryRecursive.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/schemaFactoryRecursive.spec.js +0 -282
- package/lib/test/simple-tree/schemaFactoryRecursive.spec.js.map +0 -1
- package/lib/test/simple-tree/schemaTypes.spec.d.ts +0 -6
- package/lib/test/simple-tree/schemaTypes.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/schemaTypes.spec.js +0 -89
- package/lib/test/simple-tree/schemaTypes.spec.js.map +0 -1
- package/lib/test/simple-tree/toFlexSchema.spec.d.ts +0 -6
- package/lib/test/simple-tree/toFlexSchema.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/toFlexSchema.spec.js +0 -30
- package/lib/test/simple-tree/toFlexSchema.spec.js.map +0 -1
- package/lib/test/simple-tree/toMapTree.spec.d.ts +0 -6
- package/lib/test/simple-tree/toMapTree.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/toMapTree.spec.js +0 -423
- package/lib/test/simple-tree/toMapTree.spec.js.map +0 -1
- package/lib/test/simple-tree/tree.spec.d.ts +0 -6
- package/lib/test/simple-tree/tree.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/tree.spec.js +0 -71
- package/lib/test/simple-tree/tree.spec.js.map +0 -1
- package/lib/test/simple-tree/treeApi.spec.d.ts +0 -6
- package/lib/test/simple-tree/treeApi.spec.d.ts.map +0 -1
- package/lib/test/simple-tree/treeApi.spec.js +0 -146
- package/lib/test/simple-tree/treeApi.spec.js.map +0 -1
- package/lib/test/simple-tree/utils.d.ts +0 -16
- package/lib/test/simple-tree/utils.d.ts.map +0 -1
- package/lib/test/simple-tree/utils.js +0 -33
- package/lib/test/simple-tree/utils.js.map +0 -1
- package/lib/test/snapshots/gc.spec.d.ts +0 -6
- package/lib/test/snapshots/gc.spec.d.ts.map +0 -1
- package/lib/test/snapshots/gc.spec.js +0 -106
- package/lib/test/snapshots/gc.spec.js.map +0 -1
- package/lib/test/snapshots/index.d.ts +0 -6
- package/lib/test/snapshots/index.d.ts.map +0 -1
- package/lib/test/snapshots/index.js +0 -6
- package/lib/test/snapshots/index.js.map +0 -1
- package/lib/test/snapshots/schema.spec.d.ts +0 -6
- package/lib/test/snapshots/schema.spec.d.ts.map +0 -1
- package/lib/test/snapshots/schema.spec.js +0 -17
- package/lib/test/snapshots/schema.spec.js.map +0 -1
- package/lib/test/snapshots/snapshotTools.d.ts +0 -25
- package/lib/test/snapshots/snapshotTools.d.ts.map +0 -1
- package/lib/test/snapshots/snapshotTools.js +0 -85
- package/lib/test/snapshots/snapshotTools.js.map +0 -1
- package/lib/test/snapshots/summary.spec.d.ts +0 -6
- package/lib/test/snapshots/summary.spec.d.ts.map +0 -1
- package/lib/test/snapshots/summary.spec.js +0 -26
- package/lib/test/snapshots/summary.spec.js.map +0 -1
- package/lib/test/snapshots/testTrees.d.ts +0 -15
- package/lib/test/snapshots/testTrees.d.ts.map +0 -1
- package/lib/test/snapshots/testTrees.js +0 -374
- package/lib/test/snapshots/testTrees.js.map +0 -1
- package/lib/test/snapshots/utils.d.ts +0 -7
- package/lib/test/snapshots/utils.d.ts.map +0 -1
- package/lib/test/snapshots/utils.js +0 -106
- package/lib/test/snapshots/utils.js.map +0 -1
- package/lib/test/testChange.d.ts +0 -90
- package/lib/test/testChange.d.ts.map +0 -1
- package/lib/test/testChange.js +0 -234
- package/lib/test/testChange.js.map +0 -1
- package/lib/test/testChange.spec.d.ts +0 -6
- package/lib/test/testChange.spec.d.ts.map +0 -1
- package/lib/test/testChange.spec.js +0 -113
- package/lib/test/testChange.spec.js.map +0 -1
- package/lib/test/testTrees.d.ts +0 -56
- package/lib/test/testTrees.d.ts.map +0 -1
- package/lib/test/testTrees.js +0 -175
- package/lib/test/testTrees.js.map +0 -1
- package/lib/test/tree/anchorSet.spec.d.ts +0 -6
- package/lib/test/tree/anchorSet.spec.d.ts.map +0 -1
- package/lib/test/tree/anchorSet.spec.js +0 -593
- package/lib/test/tree/anchorSet.spec.js.map +0 -1
- package/lib/test/tree/detachedFieldIndex.spec.d.ts +0 -11
- package/lib/test/tree/detachedFieldIndex.spec.d.ts.map +0 -1
- package/lib/test/tree/detachedFieldIndex.spec.js +0 -218
- package/lib/test/tree/detachedFieldIndex.spec.js.map +0 -1
- package/lib/test/tree/pathTree.spec.d.ts +0 -6
- package/lib/test/tree/pathTree.spec.d.ts.map +0 -1
- package/lib/test/tree/pathTree.spec.js +0 -122
- package/lib/test/tree/pathTree.spec.js.map +0 -1
- package/lib/test/tree/visitDelta.spec.d.ts +0 -6
- package/lib/test/tree/visitDelta.spec.d.ts.map +0 -1
- package/lib/test/tree/visitDelta.spec.js +0 -1055
- package/lib/test/tree/visitDelta.spec.js.map +0 -1
- package/lib/test/util/brand.spec.d.ts +0 -22
- package/lib/test/util/brand.spec.d.ts.map +0 -1
- package/lib/test/util/brand.spec.js +0 -19
- package/lib/test/util/brand.spec.js.map +0 -1
- package/lib/test/util/deepFreeze.spec.d.ts +0 -6
- package/lib/test/util/deepFreeze.spec.d.ts.map +0 -1
- package/lib/test/util/deepFreeze.spec.js +0 -176
- package/lib/test/util/deepFreeze.spec.js.map +0 -1
- package/lib/test/util/nestedMap.spec.d.ts +0 -6
- package/lib/test/util/nestedMap.spec.d.ts.map +0 -1
- package/lib/test/util/nestedMap.spec.js +0 -190
- package/lib/test/util/nestedMap.spec.js.map +0 -1
- package/lib/test/util/offsetList.spec.d.ts +0 -6
- package/lib/test/util/offsetList.spec.d.ts.map +0 -1
- package/lib/test/util/offsetList.spec.js +0 -35
- package/lib/test/util/offsetList.spec.js.map +0 -1
- package/lib/test/util/testTreeProvider.spec.d.ts +0 -6
- package/lib/test/util/testTreeProvider.spec.d.ts.map +0 -1
- package/lib/test/util/testTreeProvider.spec.js +0 -56
- package/lib/test/util/testTreeProvider.spec.js.map +0 -1
- package/lib/test/util/typeUtils.spec.d.ts +0 -6
- package/lib/test/util/typeUtils.spec.d.ts.map +0 -1
- package/lib/test/util/typeUtils.spec.js +0 -19
- package/lib/test/util/typeUtils.spec.js.map +0 -1
- package/lib/test/util/utils.spec.d.ts +0 -6
- package/lib/test/util/utils.spec.d.ts.map +0 -1
- package/lib/test/util/utils.spec.js +0 -27
- package/lib/test/util/utils.spec.js.map +0 -1
- package/lib/test/utils.d.ts +0 -313
- package/lib/test/utils.d.ts.map +0 -1
- package/lib/test/utils.js +0 -765
- package/lib/test/utils.js.map +0 -1
- package/lib/tree-alpha.d.ts +0 -2159
- package/lib/tree-beta.d.ts +0 -2159
- package/lib/tree-public.d.ts +0 -1942
- package/lib/tree-untrimmed.d.ts +0 -6880
- package/src/simple-tree/flexNode.ts +0 -96
- package/src/simple-tree/treeArrayNode.ts +0 -70
- /package/dist/{feature-libraries → core/schema-stored}/multiplicity.d.ts +0 -0
- /package/lib/{feature-libraries → core/schema-stored}/multiplicity.d.ts +0 -0
- /package/lib/{feature-libraries → core/schema-stored}/multiplicity.js +0 -0
- /package/{dist → lib}/tsdoc-metadata.json +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sharedTree.spec.js","sourceRoot":"","sources":["../../../src/test/shared-tree/sharedTree.spec.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 */\nimport { strict as assert } from \"assert\";\nimport { createIdCompressor } from \"@fluidframework/id-compressor\";\nimport {\n\tMockContainerRuntimeFactory,\n\tMockFluidDataStoreRuntime,\n\tMockStorage,\n} from \"@fluidframework/test-runtime-utils\";\nimport { ITestFluidObject, waitForContainerConnection } from \"@fluidframework/test-utils\";\nimport { IContainerExperimental } from \"@fluidframework/container-loader\";\nimport { SummaryType } from \"@fluidframework/protocol-definitions\";\nimport {\n\tcursorForJsonableTreeNode,\n\tAny,\n\tTreeStatus,\n\tFlexFieldSchema,\n\tSchemaBuilderInternal,\n\tFieldKinds,\n\ttypeNameSymbol,\n\tFlexTreeSchema,\n\tintoStoredSchema,\n\tSchemaBuilderBase,\n\tFlexTreeTypedField,\n\tViewSchema,\n\tdefaultSchemaPolicy,\n\tcreateMockNodeKeyManager,\n\tnodeKeyFieldKey,\n\tTreeCompressionStrategy,\n} from \"../../feature-libraries/index.js\";\nimport {\n\tChunkedForest,\n\t// eslint-disable-next-line import/no-internal-modules\n} from \"../../feature-libraries/chunked-forest/chunkedForest.js\";\nimport {\n\tObjectForest,\n\t// eslint-disable-next-line import/no-internal-modules\n} from \"../../feature-libraries/object-forest/objectForest.js\";\nimport { brand, disposeSymbol, fail } from \"../../util/index.js\";\nimport {\n\tSharedTreeTestFactory,\n\tSummarizeType,\n\tTestTreeProvider,\n\tTestTreeProviderLite,\n\tcreateTestUndoRedoStacks,\n\temptyStringSequenceConfig,\n\texpectSchemaEqual,\n\tjsonSequenceRootSchema,\n\tstringSequenceRootSchema,\n\tvalidateTreeConsistency,\n\tvalidateTreeContent,\n\tvalidateViewConsistency,\n\tnumberSequenceRootSchema,\n\tConnectionSetter,\n\tSharedTreeWithConnectionStateSetter,\n\ttype ITestTreeProvider,\n\ttreeTestFactory,\n\tschematizeFlexTree,\n} from \"../utils.js\";\nimport {\n\tForestType,\n\tISharedTree,\n\tFlexTreeView,\n\tInitializeAndSchematizeConfiguration,\n\tSharedTree,\n\tSharedTreeFactory,\n\tCheckoutFlexTreeView,\n\trunSynchronous,\n} from \"../../shared-tree/index.js\";\nimport {\n\tcompareUpPaths,\n\trootFieldKey,\n\tUpPath,\n\tmoveToDetachedField,\n\tAllowedUpdateType,\n\tstoredEmptyFieldSchema,\n\tRevertible,\n\tRevertibleKind,\n\tRevertibleResult,\n\tJsonableTree,\n} from \"../../core/index.js\";\nimport { typeboxValidator } from \"../../external-utilities/index.js\";\nimport { EditManager } from \"../../shared-tree-core/index.js\";\nimport { leaf, SchemaBuilder } from \"../../domains/index.js\";\nimport { SchemaFactory, TreeConfiguration } from \"../../simple-tree/index.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { requireSchema } from \"../../shared-tree/schematizingTreeView.js\";\n\ndescribe(\"SharedTree\", () => {\n\tdescribe(\"schematize\", () => {\n\t\tconst factory = new SharedTreeFactory({\n\t\t\tjsonValidator: typeboxValidator,\n\t\t\tforest: ForestType.Reference,\n\t\t});\n\n\t\tconst builder = new SchemaBuilderBase(FieldKinds.optional, {\n\t\t\tlibraries: [leaf.library],\n\t\t\tscope: \"test\",\n\t\t\tname: \"Schematize Tree Tests\",\n\t\t});\n\t\tconst schema = builder.intoSchema(leaf.number);\n\t\tconst storedSchema = intoStoredSchema(schema);\n\n\t\tconst builderGeneralized = new SchemaBuilderBase(FieldKinds.optional, {\n\t\t\tlibraries: [leaf.library],\n\t\t\tscope: \"test\",\n\t\t\tname: \"Schematize Tree Tests Generalized\",\n\t\t});\n\n\t\tconst schemaGeneralized = builderGeneralized.intoSchema(Any);\n\t\tconst storedSchemaGeneralized = intoStoredSchema(schemaGeneralized);\n\n\t\tit(\"concurrent Schematize\", () => {\n\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\tconst content = {\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [\"x\"],\n\t\t\t} satisfies InitializeAndSchematizeConfiguration;\n\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], content);\n\t\t\tschematizeFlexTree(provider.trees[1], content);\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...tree1.flexTree], [\"x\"]);\n\t\t});\n\n\t\tit(\"initialize tree\", () => {\n\t\t\tconst tree = treeTestFactory();\n\t\t\tassert.deepEqual(tree.contentSnapshot().schema.rootFieldSchema, storedEmptyFieldSchema);\n\n\t\t\tconst view = schematizeFlexTree(tree, {\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: 10,\n\t\t\t\tschema,\n\t\t\t});\n\t\t\tassert.equal(view.flexTree.content, 10);\n\t\t});\n\n\t\tit(\"noop upgrade\", () => {\n\t\t\tconst tree = factory.create(\n\t\t\t\tnew MockFluidDataStoreRuntime({ idCompressor: createIdCompressor() }),\n\t\t\t\t\"the tree\",\n\t\t\t) as SharedTree;\n\t\t\ttree.checkout.updateSchema(storedSchema);\n\n\t\t\t// No op upgrade with AllowedUpdateType.None does not error\n\t\t\tconst schematized = schematizeFlexTree(tree, {\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.None,\n\t\t\t\tinitialTree: 10,\n\t\t\t\tschema,\n\t\t\t});\n\t\t\t// And does not add initial tree:\n\t\t\tassert.equal(schematized.flexTree.content, undefined);\n\t\t});\n\n\t\tit(\"incompatible upgrade errors\", () => {\n\t\t\tconst tree = factory.create(\n\t\t\t\tnew MockFluidDataStoreRuntime({ idCompressor: createIdCompressor() }),\n\t\t\t\t\"the tree\",\n\t\t\t) as SharedTree;\n\t\t\ttree.checkout.updateSchema(storedSchemaGeneralized);\n\t\t\tassert.throws(() => {\n\t\t\t\tschematizeFlexTree(tree, {\n\t\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\t\tinitialTree: 5,\n\t\t\t\t\tschema,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tit(\"upgrade schema\", () => {\n\t\t\tconst tree = factory.create(\n\t\t\t\tnew MockFluidDataStoreRuntime({ idCompressor: createIdCompressor() }),\n\t\t\t\t\"the tree\",\n\t\t\t) as SharedTree;\n\t\t\ttree.checkout.updateSchema(storedSchema);\n\t\t\tconst schematized = schematizeFlexTree(tree, {\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.SchemaCompatible,\n\t\t\t\tinitialTree: 5,\n\t\t\t\tschema: schemaGeneralized,\n\t\t\t});\n\t\t\t// Initial tree should not be applied\n\t\t\tassert.equal(schematized.flexTree.content, undefined);\n\t\t});\n\n\t\t// TODO: ensure unhydrated initialTree input is correctly hydrated.\n\t\tit.skip(\"unhydrated tree input\", () => {\n\t\t\tconst tree = factory.create(new MockFluidDataStoreRuntime(), \"the tree\") as SharedTree;\n\t\t\tconst sb = new SchemaFactory(\"test-factory\");\n\t\t\tclass Foo extends sb.object(\"Foo\", {}) {}\n\n\t\t\tconst unhydratedInitialTree = new Foo({});\n\t\t\tconst view = tree.schematize(new TreeConfiguration(Foo, () => unhydratedInitialTree));\n\t\t\tassert(view.root === unhydratedInitialTree);\n\t\t});\n\t});\n\n\tdescribe(\"requireSchema\", () => {\n\t\tconst factory = new SharedTreeFactory({\n\t\t\tjsonValidator: typeboxValidator,\n\t\t\tforest: ForestType.Reference,\n\t\t});\n\t\tconst schemaEmpty = new SchemaBuilderInternal({\n\t\t\tscope: \"com.fluidframework.test\",\n\t\t\tlint: { rejectEmpty: false, rejectForbidden: false },\n\t\t}).intoSchema(FlexFieldSchema.empty);\n\n\t\tfunction updateSchema(tree: SharedTree, schema: FlexTreeSchema): void {\n\t\t\ttree.checkout.updateSchema(intoStoredSchema(schema));\n\t\t\t// Workaround to trigger for schema update batching kludge in afterSchemaChanges\n\t\t\ttree.checkout.events.emit(\"afterBatch\");\n\t\t}\n\n\t\tit(\"empty\", () => {\n\t\t\tconst tree = factory.create(\n\t\t\t\tnew MockFluidDataStoreRuntime({ idCompressor: createIdCompressor() }),\n\t\t\t\t\"the tree\",\n\t\t\t) as SharedTree;\n\t\t\tconst view = assertSchema(tree, schemaEmpty);\n\t\t\tassert.deepEqual([...view.flexTree.boxedIterator()], []);\n\t\t});\n\n\t\tit(\"differing schema errors and schema change callback\", () => {\n\t\t\tconst tree = factory.create(\n\t\t\t\tnew MockFluidDataStoreRuntime({ idCompressor: createIdCompressor() }),\n\t\t\t\t\"the tree\",\n\t\t\t) as SharedTree;\n\t\t\tconst builder = new SchemaBuilderBase(FieldKinds.optional, {\n\t\t\t\tscope: \"test\",\n\t\t\t\tlibraries: [leaf.library],\n\t\t\t});\n\t\t\tconst schemaGeneralized = builder.intoSchema(Any);\n\t\t\tassert.throws(() => assertSchema(tree, schemaGeneralized));\n\n\t\t\tconst log: string[] = [];\n\t\t\t{\n\t\t\t\tassertSchema(tree, schemaEmpty, () => log.push(\"empty\"));\n\t\t\t}\n\t\t\tassert.deepEqual(log, []);\n\t\t\tupdateSchema(tree, schemaGeneralized);\n\n\t\t\tassert.deepEqual(log, [\"empty\"]);\n\n\t\t\tassertSchema(tree, schemaGeneralized, () =>\n\t\t\t\t// TypeScript's type narrowing turned \"log\" into never[] here since it assumes methods never modify anything, so we have to cast it back to a string[]:\n\t\t\t\t(log as string[]).push(\"general\"),\n\t\t\t);\n\n\t\t\tassert.deepEqual(log, [\"empty\"]);\n\t\t\tupdateSchema(tree, schemaEmpty);\n\t\t\tassert.deepEqual(log, [\"empty\", \"general\"]);\n\t\t});\n\t});\n\n\tit(\"handle in op\", async () => {\n\t\t// TODO: ADO#7111 schema should be specified to enable compressed encoding.\n\t\tconst provider = await TestTreeProvider.create(\n\t\t\t2,\n\t\t\tSummarizeType.disabled,\n\t\t\tnew SharedTreeFactory({\n\t\t\t\tjsonValidator: typeboxValidator,\n\t\t\t\ttreeEncodeType: TreeCompressionStrategy.Uncompressed,\n\t\t\t}),\n\t\t);\n\t\tassert(provider.trees[0].isAttached());\n\t\tassert(provider.trees[1].isAttached());\n\n\t\tconst field = provider.trees[0].editor.optionalField({\n\t\t\tparent: undefined,\n\t\t\tfield: rootFieldKey,\n\t\t});\n\t\tfield.set(\n\t\t\tcursorForJsonableTreeNode({ type: leaf.handle.name, value: provider.trees[0].handle }),\n\t\t\ttrue,\n\t\t);\n\t});\n\n\tit(\"flex-tree-end-to-end\", () => {\n\t\tconst builder = new SchemaBuilderBase(FieldKinds.required, {\n\t\t\tscope: \"e2e\",\n\t\t\tlibraries: [leaf.library],\n\t\t});\n\t\tconst schema = builder.intoSchema(leaf.number);\n\t\tconst factory = new SharedTreeFactory({\n\t\t\tjsonValidator: typeboxValidator,\n\t\t\tforest: ForestType.Reference,\n\t\t});\n\t\tconst sharedTree = treeTestFactory();\n\t\tconst view = schematizeFlexTree(sharedTree, {\n\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\tinitialTree: 1,\n\t\t\tschema,\n\t\t});\n\t\tconst root = view.flexTree;\n\t\tconst leafNode = root.boxedContent;\n\t\tassert.equal(leafNode.value, 1);\n\t\troot.content = 2;\n\t\tassert(leafNode.treeStatus() !== TreeStatus.InDocument);\n\t\tassert.equal(root.content, 2);\n\t});\n\n\tit(\"contentSnapshot\", () => {\n\t\tconst sharedTree = treeTestFactory();\n\t\t{\n\t\t\tconst snapshot = sharedTree.contentSnapshot();\n\t\t\tassert.deepEqual(snapshot.tree, []);\n\t\t\texpectSchemaEqual(snapshot.schema, {\n\t\t\t\trootFieldSchema: storedEmptyFieldSchema,\n\t\t\t\tnodeSchema: new Map(),\n\t\t\t});\n\t\t}\n\t\tschematizeFlexTree(sharedTree, {\n\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\tinitialTree: [\"x\"],\n\t\t\tschema: stringSequenceRootSchema,\n\t\t});\n\t\t{\n\t\t\tconst snapshot = sharedTree.contentSnapshot();\n\t\t\tassert.deepEqual(snapshot.tree, [{ type: leaf.string.name, value: \"x\" }]);\n\t\t\texpectSchemaEqual(snapshot.schema, intoStoredSchema(stringSequenceRootSchema));\n\t\t}\n\t});\n\n\tit(\"can be connected to another tree\", async () => {\n\t\tconst provider = await TestTreeProvider.create(2);\n\t\tassert(provider.trees[0].isAttached());\n\t\tassert(provider.trees[1].isAttached());\n\n\t\tconst value = \"42\";\n\n\t\t// Apply an edit to the first tree which inserts a node with a value\n\t\tconst view1 = schematizeFlexTree(provider.trees[0], {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\tinitialTree: [value],\n\t\t});\n\n\t\t// Ensure that the first tree has the state we expect\n\t\tassert.deepEqual([...view1.flexTree], [value]);\n\t\texpectSchemaEqual(\n\t\t\tprovider.trees[0].storedSchema,\n\t\t\tintoStoredSchema(stringSequenceRootSchema),\n\t\t);\n\t\t// Ensure that the second tree receives the expected state from the first tree\n\t\tawait provider.ensureSynchronized();\n\t\tvalidateTreeConsistency(provider.trees[0], provider.trees[1]);\n\t\t// Ensure that a tree which connects after the edit has already happened also catches up\n\t\tconst joinedLaterTree = await provider.createTree();\n\t\tvalidateTreeConsistency(provider.trees[0], joinedLaterTree);\n\t});\n\n\tit(\"can summarize and load\", async () => {\n\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand);\n\t\tconst value = 42;\n\t\tschematizeFlexTree(provider.trees[0], {\n\t\t\tschema: jsonSequenceRootSchema,\n\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\tinitialTree: [value],\n\t\t});\n\t\tawait provider.summarize();\n\t\tawait provider.ensureSynchronized();\n\t\tconst loadingTree = await provider.createTree();\n\t\tvalidateTreeContent(loadingTree.checkout, {\n\t\t\tschema: jsonSequenceRootSchema,\n\t\t\tinitialTree: [value],\n\t\t});\n\t});\n\n\tasync function validateSchemaStringType(\n\t\tprovider: ITestTreeProvider,\n\t\ttreeId: string,\n\t\tsummaryType: SummaryType,\n\t) {\n\t\tconst a = (await provider.containers[0].getEntryPoint()) as ITestFluidObject;\n\t\tconst id = a.runtime.id;\n\n\t\tconst { summaryTree } = await provider.summarize();\n\n\t\tassert(\n\t\t\tsummaryTree.tree[\".channels\"].type === SummaryType.Tree,\n\t\t\t\"Runtime summary tree not created for blob dds test\",\n\t\t);\n\t\tconst dataObjectTree = summaryTree.tree[\".channels\"].tree[id];\n\t\tassert(\n\t\t\tdataObjectTree.type === SummaryType.Tree,\n\t\t\t\"Data store summary tree not created for blob dds test\",\n\t\t);\n\t\tconst dataObjectChannelsTree = dataObjectTree.tree[\".channels\"];\n\t\tassert(\n\t\t\tdataObjectChannelsTree.type === SummaryType.Tree,\n\t\t\t\"Data store channels tree not created for blob dds test\",\n\t\t);\n\t\tconst ddsTree = dataObjectChannelsTree.tree[treeId];\n\t\tassert(ddsTree.type === SummaryType.Tree, \"Blob dds tree not created\");\n\t\tconst indexes = ddsTree.tree.indexes;\n\t\tassert(indexes.type === SummaryType.Tree, \"Blob Indexes tree not created\");\n\t\tconst schema = indexes.tree.Schema;\n\t\tassert(schema.type === SummaryType.Tree, \"Blob Schema tree not created\");\n\t\tassert(schema.tree.SchemaString.type === summaryType, \"incorrect SchemaString type\");\n\t}\n\n\tdescribe(\"schema index summarization\", () => {\n\t\tdescribe(\"incrementally reuses previous blobs\", () => {\n\t\t\tit(\"on a client which never uploaded a blob\", async () => {\n\t\t\t\tconst containerRuntimeFactory = new MockContainerRuntimeFactory();\n\t\t\t\tconst dataStoreRuntime1 = new MockFluidDataStoreRuntime({\n\t\t\t\t\tidCompressor: createIdCompressor(),\n\t\t\t\t});\n\t\t\t\tconst dataStoreRuntime2 = new MockFluidDataStoreRuntime({\n\t\t\t\t\tidCompressor: createIdCompressor(),\n\t\t\t\t});\n\t\t\t\tconst factory = new SharedTreeTestFactory(() => {});\n\n\t\t\t\tcontainerRuntimeFactory.createContainerRuntime(dataStoreRuntime1);\n\t\t\t\tcontainerRuntimeFactory.createContainerRuntime(dataStoreRuntime2);\n\t\t\t\tconst tree1 = factory.create(dataStoreRuntime1, \"A\");\n\t\t\t\ttree1.connect({\n\t\t\t\t\tdeltaConnection: dataStoreRuntime1.createDeltaConnection(),\n\t\t\t\t\tobjectStorage: new MockStorage(),\n\t\t\t\t});\n\n\t\t\t\tconst b = new SchemaBuilderBase(FieldKinds.optional, {\n\t\t\t\t\tscope: \"test\",\n\t\t\t\t\tlibraries: [leaf.library],\n\t\t\t\t});\n\t\t\t\tconst node = b.objectRecursive(\"test node\", {\n\t\t\t\t\tchild: FlexFieldSchema.createUnsafe(FieldKinds.optional, [\n\t\t\t\t\t\t() => node,\n\t\t\t\t\t\tleaf.number,\n\t\t\t\t\t]),\n\t\t\t\t});\n\t\t\t\tconst schema = b.intoSchema(node);\n\n\t\t\t\tconst config = {\n\t\t\t\t\tschema,\n\t\t\t\t\tinitialTree: undefined,\n\t\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\t} satisfies InitializeAndSchematizeConfiguration;\n\t\t\t\tconst view1 = schematizeFlexTree(tree1, config);\n\t\t\t\tconst editable1 = view1.flexTree;\n\n\t\t\t\teditable1.content = { [typeNameSymbol]: node.name, child: undefined };\n\t\t\t\tcontainerRuntimeFactory.processAllMessages();\n\n\t\t\t\tconst tree2 = await factory.load(\n\t\t\t\t\tdataStoreRuntime2,\n\t\t\t\t\t\"B\",\n\t\t\t\t\t{\n\t\t\t\t\t\tdeltaConnection: dataStoreRuntime2.createDeltaConnection(),\n\t\t\t\t\t\tobjectStorage: MockStorage.createFromSummary(\n\t\t\t\t\t\t\t(await tree1.summarize()).summary,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tfactory.attributes,\n\t\t\t\t);\n\n\t\t\t\tcontainerRuntimeFactory.processAllMessages();\n\t\t\t\tconst incrementalSummaryContext = {\n\t\t\t\t\tsummarySequenceNumber: dataStoreRuntime1.deltaManager.lastSequenceNumber,\n\n\t\t\t\t\tlatestSummarySequenceNumber: dataStoreRuntime1.deltaManager.lastSequenceNumber,\n\n\t\t\t\t\tsummaryPath: \"test\",\n\t\t\t\t};\n\t\t\t\tconst summaryTree = await tree2.summarize(\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tincrementalSummaryContext,\n\t\t\t\t);\n\t\t\t\tcontainerRuntimeFactory.processAllMessages();\n\t\t\t\tconst indexes = summaryTree.summary.tree.indexes;\n\t\t\t\tassert(indexes.type === SummaryType.Tree, \"Indexes must be a tree\");\n\t\t\t\tconst schemaBlob = indexes.tree.Schema;\n\t\t\t\tassert(schemaBlob.type === SummaryType.Tree, \"Blob Schema tree not created\");\n\t\t\t\tassert(\n\t\t\t\t\tschemaBlob.tree.SchemaString.type === SummaryType.Handle,\n\t\t\t\t\t\"schemaString should be a handle\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(\"on a client which uploaded a blob\", async () => {\n\t\t\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand);\n\n\t\t\t\tawait provider.ensureSynchronized();\n\t\t\t\tconst tree1 = provider.trees[0];\n\t\t\t\ttree1.checkout.updateSchema(intoStoredSchema(stringSequenceRootSchema));\n\n\t\t\t\tawait provider.ensureSynchronized();\n\t\t\t\tawait provider.summarize();\n\n\t\t\t\tconst view1 = assertSchema(tree1, stringSequenceRootSchema);\n\t\t\t\tview1.flexTree.insertAt(0, [\"A\"]);\n\n\t\t\t\tawait provider.ensureSynchronized();\n\n\t\t\t\tawait validateSchemaStringType(provider, provider.trees[0].id, SummaryType.Handle);\n\t\t\t});\n\t\t});\n\n\t\tdescribe(\"uploads new schema data\", () => {\n\t\t\tit(\"without incremental summary context\", async () => {\n\t\t\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand);\n\t\t\t\tawait provider.ensureSynchronized();\n\t\t\t\tconst summaryTree = await provider.trees[0].summarize();\n\t\t\t\tconst indexes = summaryTree.summary.tree.indexes;\n\t\t\t\tassert(indexes.type === SummaryType.Tree, \"Indexes must be a tree\");\n\t\t\t\tconst schemaBlob = indexes.tree.Schema;\n\t\t\t\tassert(schemaBlob.type === SummaryType.Tree, \"Blob Schema tree not created\");\n\t\t\t\tassert(\n\t\t\t\t\tschemaBlob.tree.SchemaString.type === SummaryType.Blob,\n\t\t\t\t\t\"schemaString should be a Blob\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(\"when it has changed since the last summary\", async () => {\n\t\t\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand);\n\n\t\t\t\tawait provider.ensureSynchronized();\n\t\t\t\tconst tree1 = provider.trees[0];\n\t\t\t\ttree1.checkout.updateSchema(intoStoredSchema(stringSequenceRootSchema));\n\t\t\t\tawait provider.ensureSynchronized();\n\t\t\t\tawait provider.summarize();\n\n\t\t\t\tconst view1 = assertSchema(tree1, stringSequenceRootSchema);\n\t\t\t\tview1.flexTree.insertAt(0, [\"A\"]);\n\n\t\t\t\tawait provider.ensureSynchronized();\n\t\t\t\tawait validateSchemaStringType(provider, provider.trees[0].id, SummaryType.Handle);\n\n\t\t\t\ttree1.checkout.updateSchema(intoStoredSchema(stringSequenceRootSchema));\n\t\t\t\tawait provider.ensureSynchronized();\n\t\t\t\tawait validateSchemaStringType(provider, provider.trees[0].id, SummaryType.Blob);\n\t\t\t});\n\t\t});\n\t});\n\n\tit(\"can process ops after loading from summary\", async () => {\n\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand);\n\t\tconst tree2 = await provider.createTree();\n\t\tconst tree3 = await provider.createTree();\n\n\t\tconst [container1, container2, container3] = provider.containers;\n\n\t\tconst tree1 = schematizeFlexTree(provider.trees[0], {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\tinitialTree: [\"Z\", \"A\", \"C\"],\n\t\t});\n\n\t\tawait provider.ensureSynchronized();\n\n\t\tconst view1 = tree1.flexTree;\n\t\tconst view2 = assertSchema(tree2, stringSequenceRootSchema).flexTree;\n\t\tconst view3 = assertSchema(tree3, stringSequenceRootSchema).flexTree;\n\n\t\t// Stop the processing of incoming changes on tree3 so that it does not learn about the deletion of Z\n\t\tawait provider.opProcessingController.pauseProcessing(container3);\n\n\t\t// Remove Z\n\t\tview2.removeAt(0);\n\n\t\t// Ensure tree2 has a chance to send deletion of Z\n\t\tawait provider.opProcessingController.processOutgoing(container2);\n\n\t\t// Ensure tree1 has a chance to receive the deletion of Z before putting out a summary\n\t\tawait provider.opProcessingController.processIncoming(container1);\n\t\tassert.deepEqual([...view1], [\"A\", \"C\"]);\n\n\t\t// Have tree1 make a summary\n\t\t// Summarized state: A C\n\t\tawait provider.summarize();\n\n\t\t// Insert B between A and C (without knowing of Z being removed)\n\t\tview3.insertAt(2, [\"B\"]);\n\n\t\t// Ensure the insertion of B is sent for processing by tree3 before tree3 receives the deletion of Z\n\t\tawait provider.opProcessingController.processOutgoing(container3);\n\n\t\t// Allow tree3 to receive further changes (i.e., the deletion of Z)\n\t\tprovider.opProcessingController.resumeProcessing(container3);\n\n\t\t// Ensure all trees are now caught up\n\t\tawait provider.ensureSynchronized();\n\n\t\t// Load the last summary (state: \"AC\") and process the deletion of Z and insertion of B\n\t\tconst tree4 = assertSchema(await provider.createTree(), stringSequenceRootSchema);\n\n\t\t// Ensure tree4 has a chance to process trailing ops.\n\t\tawait provider.ensureSynchronized();\n\n\t\t// Trees 1 through 3 should get the correct end state (ABC) whether we include EditManager data\n\t\t// in summaries or not.\n\t\tconst expectedValues = [\"A\", \"B\", \"C\"];\n\t\tassert.deepEqual([...view1], expectedValues);\n\t\tassert.deepEqual([...view2], expectedValues);\n\t\tassert.deepEqual([...view3], expectedValues);\n\t\t// tree4 should only get the correct end state if it was able to get the adequate\n\t\t// EditManager state from the summary. Specifically, in order to correctly rebase the insert\n\t\t// of B, tree4 needs to have a local copy of the edit that removed Z, so it can\n\t\t// rebase the insertion of B over that edit.\n\t\t// Without that, it will interpret the insertion of B based on the current state, yielding\n\t\t// the order ACB.\n\t\tassert.deepEqual([...tree4.flexTree], expectedValues);\n\t});\n\n\tit(\"can load a summary from a tree and receive edits of the new state\", async () => {\n\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand);\n\t\tconst [summarizingTree] = provider.trees;\n\n\t\tschematizeFlexTree(summarizingTree, {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\tinitialTree: [\"a\", \"b\", \"c\"],\n\t\t});\n\n\t\tawait provider.ensureSynchronized();\n\t\tawait provider.summarize();\n\n\t\tconst loadingTree = await provider.createTree();\n\n\t\tsummarizingTree.editor\n\t\t\t.sequenceField({\n\t\t\t\tfield: rootFieldKey,\n\t\t\t\tparent: undefined,\n\t\t\t})\n\t\t\t.remove(0, 1);\n\n\t\tawait provider.ensureSynchronized();\n\n\t\tvalidateTreeContent(loadingTree.checkout, {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tinitialTree: [\"b\", \"c\"],\n\t\t});\n\t});\n\n\tit(\"can load a summary from a tree and receive edits that require repair data\", async () => {\n\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand);\n\t\tconst [summarizingTree] = provider.trees;\n\n\t\tschematizeFlexTree(summarizingTree, {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\tinitialTree: [\"a\", \"b\", \"c\"],\n\t\t});\n\n\t\tconst { undoStack, unsubscribe } = createTestUndoRedoStacks(\n\t\t\tsummarizingTree.checkout.events,\n\t\t);\n\n\t\tsummarizingTree.editor\n\t\t\t.sequenceField({ parent: undefined, field: rootFieldKey })\n\t\t\t.remove(0, 1);\n\n\t\tvalidateTreeContent(summarizingTree.checkout, {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tinitialTree: [\"b\", \"c\"],\n\t\t});\n\n\t\tawait provider.ensureSynchronized();\n\t\tawait provider.summarize();\n\n\t\tconst loadingTree = await provider.createTree();\n\n\t\tconst revertible = undoStack.pop();\n\t\tassert(revertible !== undefined, \"expected undo stack to have an entry\");\n\t\trevertible.revert();\n\n\t\tvalidateTreeContent(summarizingTree.checkout, {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tinitialTree: [\"a\", \"b\", \"c\"],\n\t\t});\n\n\t\tawait provider.ensureSynchronized();\n\n\t\tvalidateTreeContent(loadingTree.checkout, {\n\t\t\tschema: stringSequenceRootSchema,\n\t\t\tinitialTree: [\"a\", \"b\", \"c\"],\n\t\t});\n\t\tunsubscribe();\n\t});\n\n\tit(\"can summarize local edits in the attach summary\", async () => {\n\t\tconst onCreate = (tree: SharedTree) => {\n\t\t\tconst view = schematizeFlexTree(tree, emptyStringSequenceConfig);\n\t\t\tview.flexTree.insertAtStart([\"A\"]);\n\t\t\tview.flexTree.insertAtEnd([\"C\"]);\n\t\t\tassert.deepEqual([...view.flexTree], [\"A\", \"C\"]);\n\t\t\tview[disposeSymbol]();\n\t\t};\n\t\tconst provider = await TestTreeProvider.create(\n\t\t\t1,\n\t\t\tSummarizeType.onDemand,\n\t\t\tnew SharedTreeTestFactory(onCreate),\n\t\t);\n\t\tconst tree1 = assertSchema(provider.trees[0], stringSequenceRootSchema);\n\t\tassert.deepEqual([...tree1.flexTree], [\"A\", \"C\"]);\n\t\tawait provider.ensureSynchronized();\n\t\tconst tree2 = assertSchema(await provider.createTree(), stringSequenceRootSchema);\n\t\t// Check that the joining tree was initialized with data from the attach summary\n\t\tassert.deepEqual([...tree2.flexTree], [\"A\", \"C\"]);\n\n\t\t// Check that further edits are interpreted properly\n\t\ttree1.flexTree.insertAt(1, \"B\");\n\t\tawait provider.ensureSynchronized();\n\t\tassert.deepEqual([...tree1.flexTree], [\"A\", \"B\", \"C\"]);\n\t\tassert.deepEqual([...tree2.flexTree], [\"A\", \"B\", \"C\"]);\n\t});\n\n\tit(\"can tolerate local edits submitted as part of a transaction in the attach summary\", async () => {\n\t\tconst onCreate = (tree: SharedTree) => {\n\t\t\t// Schematize uses a transaction as well\n\t\t\tconst view = schematizeFlexTree(tree, emptyStringSequenceConfig);\n\t\t\tview.checkout.transaction.start();\n\t\t\tview.flexTree.insertAtStart([\"A\"]);\n\t\t\tview.flexTree.insertAt(1, [\"C\"]);\n\t\t\tview.checkout.transaction.commit();\n\t\t\tassert.deepEqual([...view.flexTree], [\"A\", \"C\"]);\n\t\t\tview[disposeSymbol]();\n\t\t};\n\t\tconst provider = await TestTreeProvider.create(\n\t\t\t1,\n\t\t\tSummarizeType.onDemand,\n\t\t\tnew SharedTreeTestFactory(onCreate),\n\t\t);\n\t\tconst tree1 = assertSchema(provider.trees[0], stringSequenceRootSchema);\n\t\tassert.deepEqual([...tree1.flexTree], [\"A\", \"C\"]);\n\t\tconst tree2 = assertSchema(await provider.createTree(), stringSequenceRootSchema);\n\t\t// Check that the joining tree was initialized with data from the attach summary\n\t\tassert.deepEqual([...tree2.flexTree], [\"A\", \"C\"]);\n\n\t\t// Check that further edits are interpreted properly\n\t\ttree1.flexTree.insertAt(1, \"B\");\n\t\tawait provider.ensureSynchronized();\n\t\tassert.deepEqual([...tree1.flexTree], [\"A\", \"B\", \"C\"]);\n\t\tassert.deepEqual([...tree2.flexTree], [\"A\", \"B\", \"C\"]);\n\t});\n\n\t// AB#5745: Enable this test once it passes.\n\t// TODO: above mentioned task is done, but this still fails. Fix it.\n\tit.skip(\"can tolerate incomplete transactions when attaching\", async () => {\n\t\tconst onCreate = (tree: SharedTree) => {\n\t\t\ttree.checkout.updateSchema(intoStoredSchema(stringSequenceRootSchema));\n\t\t\ttree.checkout.transaction.start();\n\t\t\tconst view = assertSchema(tree, stringSequenceRootSchema).flexTree;\n\t\t\tview.insertAtStart([\"A\"]);\n\t\t\tview.insertAt(1, [\"C\"]);\n\t\t\tassert.deepEqual([...view], [\"A\", \"C\"]);\n\t\t};\n\t\tconst provider = await TestTreeProvider.create(\n\t\t\t1,\n\t\t\tSummarizeType.onDemand,\n\t\t\tnew SharedTreeTestFactory(onCreate),\n\t\t);\n\t\tconst tree1 = assertSchema(provider.trees[0], stringSequenceRootSchema);\n\t\tassert.deepEqual([...tree1.flexTree], [\"A\", \"C\"]);\n\t\tconst tree2 = assertSchema(await provider.createTree(), stringSequenceRootSchema);\n\t\ttree1.checkout.transaction.commit();\n\t\t// Check that the joining tree was initialized with data from the attach summary\n\t\tassert.deepEqual(tree2, []);\n\n\t\tawait provider.ensureSynchronized();\n\t\tassert.deepEqual([...tree1.flexTree], [\"A\", \"C\"]);\n\t\tassert.deepEqual([...tree2.flexTree], [\"A\", \"C\"]);\n\n\t\t// Check that further edits are interpreted properly\n\t\ttree1.flexTree.insertAt(1, [\"B\"]);\n\t\tawait provider.ensureSynchronized();\n\t\tassert.deepEqual([...tree1.flexTree], [\"A\", \"B\", \"C\"]);\n\t\tassert.deepEqual([...tree2.flexTree], [\"A\", \"B\", \"C\"]);\n\t});\n\n\tit(\"has bounded memory growth in EditManager\", () => {\n\t\tconst provider = new TestTreeProviderLite(2);\n\t\tschematizeFlexTree(provider.trees[0], emptyStringSequenceConfig)[disposeSymbol]();\n\t\tprovider.processMessages();\n\n\t\tconst [tree1, tree2] = provider.trees.map(\n\t\t\t(t) => assertSchema(t, stringSequenceRootSchema).flexTree,\n\t\t);\n\n\t\t// Make some arbitrary number of edits\n\t\tfor (let i = 0; i < 10; ++i) {\n\t\t\ttree1.insertAtStart([\"\"]);\n\t\t}\n\n\t\tprovider.processMessages();\n\n\t\t// These two edit will have ref numbers that correspond to the last of the above edits\n\t\ttree1.insertAtStart([\"\"]);\n\t\ttree2.insertAtStart([\"\"]);\n\n\t\t// This synchronization point should ensure that both trees see the edits with the higher ref numbers.\n\t\tprovider.processMessages();\n\n\t\t// It's not clear if we'll ever want to expose the EditManager to ISharedTree consumers or\n\t\t// if we'll ever expose some memory stats in which the trunk length would be included.\n\t\t// If we do then this test should be updated to use that code path.\n\t\tconst t1 = provider.trees[0] as unknown as { editManager?: EditManager<any, any, any> };\n\t\tconst t2 = provider.trees[1] as unknown as { editManager?: EditManager<any, any, any> };\n\t\tassert(\n\t\t\tt1.editManager !== undefined && t2.editManager !== undefined,\n\t\t\t\"EditManager has moved. This test must be updated.\",\n\t\t);\n\t\tassert(t1.editManager.getTrunkChanges().length < 10);\n\t\tassert(t2.editManager.getTrunkChanges().length < 10);\n\t});\n\n\tit(\"can process changes while detached\", async () => {\n\t\tconst onCreate = (t: SharedTree) => {\n\t\t\tconst view = schematizeFlexTree(t, emptyStringSequenceConfig);\n\t\t\tview.flexTree.insertAtStart([\"B\"]);\n\t\t\tview.flexTree.insertAtStart([\"A\"]);\n\t\t\tassert.deepEqual([...view.flexTree], [\"A\", \"B\"]);\n\t\t\tview[disposeSymbol]();\n\t\t};\n\t\tconst provider = await TestTreeProvider.create(\n\t\t\t1,\n\t\t\tundefined,\n\t\t\tnew SharedTreeTestFactory(onCreate),\n\t\t);\n\t\tconst tree = assertSchema(provider.trees[0], stringSequenceRootSchema);\n\t\tassert.deepEqual([...tree.flexTree], [\"A\", \"B\"]);\n\t});\n\n\tdescribe(\"Undo and redo\", () => {\n\t\tit(\"the insert of a node in a sequence field\", () => {\n\t\t\tconst value = \"42\";\n\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], emptyStringSequenceConfig);\n\t\t\tconst { undoStack, redoStack, unsubscribe } = createTestUndoRedoStacks(\n\t\t\t\ttree1.checkout.events,\n\t\t\t);\n\t\t\tprovider.processMessages();\n\t\t\tconst tree2 = schematizeFlexTree(provider.trees[1], emptyStringSequenceConfig);\n\t\t\tprovider.processMessages();\n\n\t\t\t// Insert node\n\t\t\ttree1.flexTree.insertAtStart([value]);\n\t\t\tprovider.processMessages();\n\n\t\t\t// Validate insertion\n\t\t\tassert.deepEqual([...tree2.flexTree], [value]);\n\n\t\t\t// Undo node insertion\n\t\t\tundoStack.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...tree1.flexTree], []);\n\t\t\tassert.deepEqual([...tree2.flexTree], []);\n\n\t\t\t// Redo node insertion\n\t\t\tredoStack.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...tree1.flexTree], [value]);\n\t\t\tassert.deepEqual([...tree2.flexTree], [value]);\n\t\t\tunsubscribe();\n\t\t});\n\n\t\tit(\"inserts of multiple nodes in a sequence field\", () => {\n\t\t\tconst value = \"A\";\n\t\t\tconst value2 = \"B\";\n\t\t\tconst value3 = \"C\";\n\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], emptyStringSequenceConfig);\n\t\t\tconst { undoStack, redoStack, unsubscribe } = createTestUndoRedoStacks(\n\t\t\t\ttree1.checkout.events,\n\t\t\t);\n\t\t\tprovider.processMessages();\n\t\t\tconst tree2 = schematizeFlexTree(provider.trees[1], emptyStringSequenceConfig);\n\t\t\tprovider.processMessages();\n\n\t\t\t// Insert node\n\t\t\ttree1.flexTree.insertAtStart(value3);\n\t\t\ttree1.flexTree.insertAtStart(value2);\n\t\t\ttree1.flexTree.insertAtStart(value);\n\t\t\tprovider.processMessages();\n\n\t\t\t// Validate insertion\n\t\t\tassert.deepEqual([...tree1.flexTree], [value, value2, value3]);\n\t\t\tassert.deepEqual([...tree2.flexTree], [value, value2, value3]);\n\n\t\t\t// Undo node insertion\n\t\t\tundoStack.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...tree1.flexTree], [value2, value3]);\n\t\t\tassert.deepEqual([...tree2.flexTree], [value2, value3]);\n\n\t\t\t// Undo node insertion\n\t\t\tundoStack.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...tree1.flexTree], [value3]);\n\t\t\tassert.deepEqual([...tree2.flexTree], [value3]);\n\n\t\t\t// Undo node insertion\n\t\t\tundoStack.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...tree1.flexTree], []);\n\t\t\tassert.deepEqual([...tree2.flexTree], []);\n\n\t\t\t// Redo node insertion\n\t\t\tredoStack.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...tree1.flexTree], [value3]);\n\t\t\tassert.deepEqual([...tree2.flexTree], [value3]);\n\t\t\tunsubscribe();\n\t\t});\n\n\t\tit(\"rebased edits\", () => {\n\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\tconst content = {\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [\"A\", \"B\", \"C\", \"D\"],\n\t\t\t} satisfies InitializeAndSchematizeConfiguration;\n\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], content);\n\n\t\t\tconst {\n\t\t\t\tundoStack: undoStack1,\n\t\t\t\tredoStack: redoStack1,\n\t\t\t\tunsubscribe: unsubscribe1,\n\t\t\t} = createTestUndoRedoStacks(tree1.checkout.events);\n\n\t\t\tprovider.processMessages();\n\t\t\tconst tree2 = assertSchema(provider.trees[1], content.schema);\n\t\t\tconst {\n\t\t\t\tundoStack: undoStack2,\n\t\t\t\tredoStack: redoStack2,\n\t\t\t\tunsubscribe: unsubscribe2,\n\t\t\t} = createTestUndoRedoStacks(tree2.checkout.events);\n\n\t\t\t// Validate insertion\n\t\t\tvalidateTreeContent(tree2.checkout, content);\n\n\t\t\tconst root1 = tree1.flexTree;\n\t\t\tconst root2 = tree2.flexTree;\n\t\t\t// Insert nodes on both trees\n\t\t\troot1.insertAt(1, [\"x\"]);\n\t\t\tassert.deepEqual([...root1], [\"A\", \"x\", \"B\", \"C\", \"D\"]);\n\n\t\t\troot2.insertAt(3, [\"y\"]);\n\t\t\tassert.deepEqual([...root2], [\"A\", \"B\", \"C\", \"y\", \"D\"]);\n\n\t\t\t// Syncing will cause both trees to rebase their local changes\n\t\t\tprovider.processMessages();\n\n\t\t\t// Undo node insertion on both trees\n\t\t\tundoStack1.pop()?.revert();\n\t\t\tassert.deepEqual([...root1], [\"A\", \"B\", \"C\", \"y\", \"D\"]);\n\n\t\t\tundoStack2.pop()?.revert();\n\t\t\tassert.deepEqual([...root2], [\"A\", \"x\", \"B\", \"C\", \"D\"]);\n\n\t\t\tprovider.processMessages();\n\t\t\tvalidateTreeContent(tree1.checkout, content);\n\t\t\tvalidateTreeContent(tree2.checkout, content);\n\n\t\t\t// Insert additional node at the beginning to require rebasing\n\t\t\troot1.insertAt(0, [\"0\"]);\n\t\t\tassert.deepEqual([...root1], [\"0\", \"A\", \"B\", \"C\", \"D\"]);\n\n\t\t\tconst expectedAfterRedo = [\"0\", \"A\", \"x\", \"B\", \"C\", \"y\", \"D\"];\n\t\t\t// Redo node insertion on both trees\n\t\t\tredoStack1.pop()?.revert();\n\t\t\tassert.deepEqual([...root1], [\"0\", \"A\", \"x\", \"B\", \"C\", \"D\"]);\n\n\t\t\tredoStack2.pop()?.revert();\n\t\t\tassert.deepEqual([...root2], [\"A\", \"B\", \"C\", \"y\", \"D\"]);\n\n\t\t\tprovider.processMessages();\n\t\t\tassert.deepEqual([...tree1.flexTree], expectedAfterRedo);\n\t\t\tassert.deepEqual([...tree2.flexTree], expectedAfterRedo);\n\t\t\tunsubscribe1();\n\t\t\tunsubscribe2();\n\t\t});\n\n\t\t/**\n\t\t * the collab window includes all sequenced edits after the minimum sequence number\n\t\t * these tests test that undoing edits behind (i.e., with a seq# less than) the minimum sequence number works\n\t\t */\n\t\tit(\"refresher for repair data out of collab window\", () => {\n\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\tconst content = {\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [\"A\", \"B\", \"C\", \"D\"],\n\t\t\t} satisfies InitializeAndSchematizeConfiguration;\n\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], content);\n\n\t\t\tconst { undoStack, redoStack, unsubscribe } = createTestUndoRedoStacks(\n\t\t\t\ttree1.checkout.events,\n\t\t\t);\n\n\t\t\tprovider.processMessages();\n\t\t\tconst tree2 = schematizeFlexTree(provider.trees[1], content);\n\n\t\t\tconst root1 = tree1.flexTree;\n\t\t\tconst root2 = tree2.flexTree;\n\n\t\t\t// remove in first tree\n\t\t\troot1.removeAt(0);\n\n\t\t\tprovider.processMessages();\n\t\t\tconst removeSequenceNumber = provider.sequenceNumber;\n\t\t\tassert.deepEqual([...root1], [\"B\", \"C\", \"D\"]);\n\t\t\tassert.deepEqual([...root2], [\"B\", \"C\", \"D\"]);\n\n\t\t\t// send edits to move the collab window up\n\t\t\troot2.insertAt(3, [\"y\"]);\n\t\t\tprovider.processMessages();\n\t\t\troot1.removeAt(3);\n\t\t\tprovider.processMessages();\n\t\t\troot2.insertAt(3, [\"y\"]);\n\t\t\tprovider.processMessages();\n\t\t\troot1.removeAt(3);\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.deepEqual([...root1], [\"B\", \"C\", \"D\"]);\n\t\t\tassert.deepEqual([...root2], [\"B\", \"C\", \"D\"]);\n\n\t\t\t// ensure the remove is out of the collab window\n\t\t\tassert(removeSequenceNumber < provider.minimumSequenceNumber);\n\t\t\tundoStack[0]?.revert();\n\n\t\t\tprovider.processMessages();\n\t\t\tassert.deepEqual([...root1], [\"A\", \"B\", \"C\", \"D\"]);\n\t\t\tassert.deepEqual([...root2], [\"A\", \"B\", \"C\", \"D\"]);\n\n\t\t\tassert.equal(redoStack.length, 1);\n\t\t\tredoStack.pop()?.revert();\n\n\t\t\tprovider.processMessages();\n\t\t\tassert.deepEqual([...root1], [\"B\", \"C\", \"D\"]);\n\t\t\tassert.deepEqual([...root2], [\"B\", \"C\", \"D\"]);\n\n\t\t\tunsubscribe();\n\t\t});\n\n\t\tdescribe(\"can concurrently restore and edit removed tree\", () => {\n\t\t\tconst sb = new SchemaBuilder({ scope: \"shared tree undo tests\" });\n\t\t\tconst schema = sb.intoSchema(sb.list(sb.list(sb.string)));\n\n\t\t\tfor (const scenario of [\"restore then change\", \"change then restore\"]) {\n\t\t\t\tit(`with the ${scenario} sequenced`, () => {\n\t\t\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\t\t\tconst content = {\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\t\t\tinitialTree: [[\"a\"]],\n\t\t\t\t\t} satisfies InitializeAndSchematizeConfiguration;\n\t\t\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], content);\n\t\t\t\t\tconst { undoStack: undoStack1, unsubscribe: unsubscribe1 } =\n\t\t\t\t\t\tcreateTestUndoRedoStacks(tree1.checkout.events);\n\n\t\t\t\t\t// This test does not correctly handle views getting invalidated by schema changes, so avoid concurrent schematize\n\t\t\t\t\t// which causes view invalidation when resolving the merge.\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\tconst tree2 = schematizeFlexTree(provider.trees[1], content);\n\t\t\t\t\tconst { undoStack: undoStack2, unsubscribe: unsubscribe2 } =\n\t\t\t\t\t\tcreateTestUndoRedoStacks(tree2.checkout.events);\n\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\t// Validate insertion\n\t\t\t\t\tvalidateTreeContent(tree2.checkout, content);\n\n\t\t\t\t\t// edit subtree\n\t\t\t\t\tconst outerList = tree2.flexTree.content.content;\n\t\t\t\t\tconst innerList = (outerList.at(0) ?? assert.fail()).content;\n\t\t\t\t\tinnerList.insertAtEnd(\"b\");\n\t\t\t\t\tprovider.processMessages();\n\t\t\t\t\tassert.deepEqual(\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\t\t[...tree1.flexTree.content.content.at(0)!.content],\n\t\t\t\t\t\t[\"a\", \"b\"],\n\t\t\t\t\t);\n\t\t\t\t\tassert.deepEqual([...innerList], [\"a\", \"b\"]);\n\n\t\t\t\t\t// remove subtree\n\t\t\t\t\ttree1.flexTree.content.content.removeAt(0);\n\t\t\t\t\tprovider.processMessages();\n\t\t\t\t\tassert.deepEqual([...tree1.flexTree.content.content], []);\n\t\t\t\t\tassert.deepEqual([...tree2.flexTree.content.content], []);\n\n\t\t\t\t\tif (scenario === \"restore then change\") {\n\t\t\t\t\t\tundoStack1.pop()?.revert();\n\t\t\t\t\t\tundoStack2.pop()?.revert();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tundoStack2.pop()?.revert();\n\t\t\t\t\t\tundoStack1.pop()?.revert();\n\t\t\t\t\t}\n\n\t\t\t\t\tprovider.processMessages();\n\t\t\t\t\t// check the undo happened\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tassert.deepEqual([...tree1.flexTree.content.content.at(0)!.content], [\"a\"]);\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tassert.deepEqual([...tree2.flexTree.content.content.at(0)!.content], [\"a\"]);\n\n\t\t\t\t\tunsubscribe1();\n\t\t\t\t\tunsubscribe2();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tdescribe(\"can rebase during resubmit\", () => {\n\t\t\tconst sb = new SchemaBuilderBase(FieldKinds.required, {\n\t\t\t\tscope: \"shared tree undo tests\",\n\t\t\t\tlibraries: [leaf.library],\n\t\t\t});\n\t\t\tconst innerListSchema = FlexFieldSchema.create(FieldKinds.sequence, [leaf.string]);\n\t\t\tconst innerListNodeSchema = sb.fieldNode(\"stringList\", innerListSchema);\n\t\t\tconst outerListSchema = FlexFieldSchema.create(FieldKinds.sequence, [\n\t\t\t\tinnerListNodeSchema,\n\t\t\t]);\n\t\t\tconst schema = sb.intoSchema(outerListSchema);\n\t\t\tconst config = {\n\t\t\t\tschema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [[\"a\"]],\n\t\t\t};\n\n\t\t\ttype TreeView = CheckoutFlexTreeView<typeof outerListSchema>;\n\n\t\t\tinterface Peer extends ConnectionSetter {\n\t\t\t\treadonly view: TreeView;\n\t\t\t\treadonly outerList: FlexTreeTypedField<typeof outerListSchema>;\n\t\t\t\treadonly innerList: FlexTreeTypedField<typeof innerListSchema>;\n\t\t\t\tassertOuterListEquals(expected: readonly (readonly string[])[]): void;\n\t\t\t\tassertInnerListEquals(expected: readonly string[]): void;\n\t\t\t}\n\n\t\t\tfunction makeUndoableEdit(peer: Peer, edit: () => void): Revertible {\n\t\t\t\tconst undos: Revertible[] = [];\n\t\t\t\tconst unsubscribe = peer.view.checkout.events.on(\n\t\t\t\t\t\"newRevertible\",\n\t\t\t\t\t(revertible: Revertible) => {\n\t\t\t\t\t\tif (revertible.kind !== RevertibleKind.Undo) {\n\t\t\t\t\t\t\trevertible.retain();\n\t\t\t\t\t\t\tundos.push(revertible);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tedit();\n\n\t\t\t\tunsubscribe();\n\t\t\t\tassert.equal(undos.length, 1);\n\t\t\t\treturn undos[0];\n\t\t\t}\n\n\t\t\tfunction undoableInsertInInnerList(peer: Peer, value: string): Revertible {\n\t\t\t\treturn makeUndoableEdit(peer, () => {\n\t\t\t\t\tpeer.innerList.insertAtEnd([value]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction undoableRemoveOfOuterList(peer: Peer): Revertible {\n\t\t\t\treturn makeUndoableEdit(peer, () => {\n\t\t\t\t\tpeer.outerList.removeAt(0);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction peerFromSharedTree(tree: SharedTreeWithConnectionStateSetter): Peer {\n\t\t\t\tconst view = schematizeFlexTree(tree, config);\n\t\t\t\tconst peer: Peer = {\n\t\t\t\t\tview,\n\t\t\t\t\touterList: view.flexTree,\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tinnerList: view.flexTree.at(0)!.content,\n\t\t\t\t\tsetConnected: tree.setConnected,\n\t\t\t\t\tassertOuterListEquals(expected: readonly (readonly string[])[]) {\n\t\t\t\t\t\tconst actual = [...this.outerList].map((inner) => [...inner.content]);\n\t\t\t\t\t\tassert.deepEqual(actual, expected);\n\t\t\t\t\t},\n\t\t\t\t\tassertInnerListEquals(expected: readonly string[]) {\n\t\t\t\t\t\tconst actual = [...this.innerList];\n\t\t\t\t\t\tassert.deepEqual(actual, expected);\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treturn peer;\n\t\t\t}\n\n\t\t\tfunction setupResubmitTest(): {\n\t\t\t\tprovider: TestTreeProviderLite;\n\t\t\t\tsubmitter: Peer;\n\t\t\t\tresubmitter: Peer;\n\t\t\t} {\n\t\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\t\tconst submitter = peerFromSharedTree(provider.trees[0]);\n\t\t\t\tprovider.processMessages();\n\t\t\t\tconst resubmitter = peerFromSharedTree(provider.trees[1]);\n\t\t\t\tprovider.processMessages();\n\t\t\t\treturn { provider, submitter, resubmitter };\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * These tests follow a pattern:\n\t\t\t * 1. Two peers are setup with a two-level tree of nested lists.\n\t\t\t * 2. Edits are made to the inner list by both peers.\n\t\t\t * One of the peers removes the inner list.\n\t\t\t * 4. The \"resubmitter\" peer is disconnected and reverts its stage-2 edits.\n\t\t\t * Concurrently, the \"submitter\" peer also reverts its stage-2 edits (while connected).\n\t\t\t * 5. The \"resubmitter\" peer is reconnected, forcing its edits to go through a resubmit where they are rebased\n\t\t\t * over the edits made by the \"submitter\" peer.\n\t\t\t */\n\t\t\tfor (const scenario of [\"restore and edit\", \"edit and restore\"] as const) {\n\t\t\t\tit(`${scenario} to the removed tree over two edits to the removed tree`, () => {\n\t\t\t\t\tconst { provider, submitter, resubmitter } = setupResubmitTest();\n\n\t\t\t\t\tconst rEdit = undoableInsertInInnerList(resubmitter, \"r\");\n\t\t\t\t\tconst rRemove = undoableRemoveOfOuterList(resubmitter);\n\t\t\t\t\tconst s1 = undoableInsertInInnerList(submitter, \"s1\");\n\t\t\t\t\tconst s2 = undoableInsertInInnerList(submitter, \"s2\");\n\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\tsubmitter.assertOuterListEquals([]);\n\t\t\t\t\tresubmitter.assertOuterListEquals([]);\n\t\t\t\t\tconst initialState = [\"a\", \"s1\", \"s2\", \"r\"];\n\t\t\t\t\tsubmitter.assertInnerListEquals(initialState);\n\t\t\t\t\tresubmitter.assertInnerListEquals(initialState);\n\n\t\t\t\t\tresubmitter.setConnected(false);\n\n\t\t\t\t\tassert.equal(s2.revert(), RevertibleResult.Success);\n\t\t\t\t\tassert.equal(s1.revert(), RevertibleResult.Success);\n\t\t\t\t\tsubmitter.assertOuterListEquals([]);\n\t\t\t\t\tsubmitter.assertInnerListEquals([\"a\", \"r\"]);\n\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\tif (scenario === \"restore and edit\") {\n\t\t\t\t\t\tassert.equal(rRemove.revert(), RevertibleResult.Success);\n\t\t\t\t\t\tassert.equal(rEdit.revert(), RevertibleResult.Success);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassert.equal(rEdit.revert(), RevertibleResult.Success);\n\t\t\t\t\t\tassert.equal(rRemove.revert(), RevertibleResult.Success);\n\t\t\t\t\t}\n\t\t\t\t\tresubmitter.assertOuterListEquals([[\"a\", \"s1\", \"s2\"]]);\n\n\t\t\t\t\tresubmitter.setConnected(true);\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\tconst finalState = [[\"a\"]];\n\t\t\t\t\tsubmitter.assertOuterListEquals(finalState);\n\t\t\t\t\tresubmitter.assertOuterListEquals(finalState);\n\t\t\t\t});\n\n\t\t\t\tit(`two edits to the removed tree over ${scenario} to the removed tree`, () => {\n\t\t\t\t\tconst { provider, submitter, resubmitter } = setupResubmitTest();\n\n\t\t\t\t\tconst r1 = undoableInsertInInnerList(resubmitter, \"r1\");\n\t\t\t\t\tconst r2 = undoableInsertInInnerList(resubmitter, \"r2\");\n\t\t\t\t\tconst sEdit = undoableInsertInInnerList(submitter, \"s\");\n\t\t\t\t\tconst sRemove = undoableRemoveOfOuterList(submitter);\n\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\tsubmitter.assertOuterListEquals([]);\n\t\t\t\t\tresubmitter.assertOuterListEquals([]);\n\t\t\t\t\tconst initialState = [\"a\", \"s\", \"r1\", \"r2\"];\n\t\t\t\t\tsubmitter.assertInnerListEquals(initialState);\n\t\t\t\t\tresubmitter.assertInnerListEquals(initialState);\n\n\t\t\t\t\tresubmitter.setConnected(false);\n\n\t\t\t\t\tif (scenario === \"restore and edit\") {\n\t\t\t\t\t\tassert.equal(sRemove.revert(), RevertibleResult.Success);\n\t\t\t\t\t\tassert.equal(sEdit.revert(), RevertibleResult.Success);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassert.equal(sEdit.revert(), RevertibleResult.Success);\n\t\t\t\t\t\tassert.equal(sRemove.revert(), RevertibleResult.Success);\n\t\t\t\t\t}\n\t\t\t\t\tsubmitter.assertOuterListEquals([[\"a\", \"r1\", \"r2\"]]);\n\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\tassert.equal(r2.revert(), RevertibleResult.Success);\n\t\t\t\t\tassert.equal(r1.revert(), RevertibleResult.Success);\n\t\t\t\t\tresubmitter.assertOuterListEquals([]);\n\t\t\t\t\tresubmitter.assertInnerListEquals([\"a\", \"s\"]);\n\n\t\t\t\t\tresubmitter.setConnected(true);\n\t\t\t\t\tprovider.processMessages();\n\n\t\t\t\t\tconst finalState = [[\"a\"]];\n\t\t\t\t\tsubmitter.assertOuterListEquals(finalState);\n\t\t\t\t\tresubmitter.assertOuterListEquals(finalState);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tit(\"the restore of a tree edited on a branch\", () => {\n\t\t\t\tconst { provider, submitter, resubmitter } = setupResubmitTest();\n\n\t\t\t\tresubmitter.setConnected(false);\n\n\t\t\t\t// This is the edit that will be rebased over during the re-submit phase\n\t\t\t\tundoableInsertInInnerList(submitter, \"s\");\n\t\t\t\tprovider.processMessages();\n\n\t\t\t\t// fork the tree\n\t\t\t\tconst branch = resubmitter.view.fork();\n\n\t\t\t\t// edit the removed tree on the fork\n\t\t\t\tconst outerList = branch.flexTree;\n\t\t\t\tconst innerList = (outerList.at(0) ?? assert.fail()).content;\n\t\t\t\tinnerList.insertAtEnd(\"f\");\n\n\t\t\t\tconst rRemove = undoableRemoveOfOuterList(resubmitter);\n\t\t\t\tresubmitter.view.checkout.merge(branch.checkout);\n\t\t\t\tresubmitter.assertOuterListEquals([]);\n\t\t\t\tresubmitter.assertInnerListEquals([\"a\", \"f\"]);\n\n\t\t\t\tassert.equal(rRemove.revert(), RevertibleResult.Success);\n\t\t\t\tresubmitter.assertOuterListEquals([[\"a\", \"f\"]]);\n\n\t\t\t\tresubmitter.setConnected(true);\n\t\t\t\tprovider.processMessages();\n\n\t\t\t\tconst finalState = [[\"a\", \"f\", \"s\"]];\n\t\t\t\tresubmitter.assertOuterListEquals(finalState);\n\t\t\t\tsubmitter.assertOuterListEquals(finalState);\n\t\t\t});\n\t\t});\n\t});\n\n\t// TODO: many of these events tests should be tests of SharedTreeView instead.\n\tdescribe(\"Events\", () => {\n\t\tconst builder = new SchemaBuilder({ scope: \"Events test schema\" });\n\t\tconst rootTreeNodeSchema = builder.object(\"root\", {\n\t\t\tx: builder.number,\n\t\t});\n\t\tconst schema = builder.intoSchema(builder.optional(Any));\n\n\t\tit(\"triggers revertible events for local changes\", () => {\n\t\t\tconst value = \"42\";\n\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], emptyStringSequenceConfig);\n\t\t\tprovider.processMessages();\n\t\t\tconst tree2 = assertSchema(provider.trees[1], stringSequenceRootSchema);\n\n\t\t\tconst {\n\t\t\t\tundoStack: undoStack1,\n\t\t\t\tredoStack: redoStack1,\n\t\t\t\tunsubscribe: unsubscribe1,\n\t\t\t} = createTestUndoRedoStacks(tree1.checkout.events);\n\t\t\tconst {\n\t\t\t\tundoStack: undoStack2,\n\t\t\t\tredoStack: redoStack2,\n\t\t\t\tunsubscribe: unsubscribe2,\n\t\t\t} = createTestUndoRedoStacks(tree2.checkout.events);\n\n\t\t\t// Insert node\n\t\t\ttree1.flexTree.insertAtStart([value]);\n\t\t\tprovider.processMessages();\n\n\t\t\t// Validate insertion\n\t\t\tassert.deepEqual([...tree2.flexTree], [value]);\n\t\t\tassert.equal(undoStack1.length, 1);\n\t\t\tassert.equal(undoStack2.length, 0);\n\n\t\t\tundoStack1.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\t// Insert node\n\t\t\ttree2.flexTree.insertAtStart([\"43\"]);\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.equal(undoStack1.length, 0);\n\t\t\tassert.equal(redoStack1.length, 1);\n\t\t\tassert.equal(undoStack2.length, 1);\n\t\t\tassert.equal(redoStack2.length, 0);\n\n\t\t\tredoStack1.pop()?.revert();\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.equal(undoStack1.length, 1);\n\t\t\tassert.equal(redoStack1.length, 0);\n\t\t\tassert.equal(undoStack2.length, 1);\n\t\t\tassert.equal(redoStack2.length, 0);\n\n\t\t\tunsubscribe1();\n\t\t\tunsubscribe2();\n\t\t});\n\n\t\tit(\"doesn't trigger a revertible event for rebases\", () => {\n\t\t\tconst provider = new TestTreeProviderLite(2);\n\t\t\t// Initialize the tree\n\t\t\tconst tree1 = schematizeFlexTree(provider.trees[0], {\n\t\t\t\tinitialTree: [\"A\", \"B\", \"C\", \"D\"],\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t});\n\t\t\tprovider.processMessages();\n\t\t\tconst tree2 = assertSchema(provider.trees[1], stringSequenceRootSchema);\n\n\t\t\t// Validate initialization\n\t\t\tvalidateViewConsistency(tree1.checkout, tree2.checkout);\n\n\t\t\tconst { undoStack: undoStack1, unsubscribe: unsubscribe1 } = createTestUndoRedoStacks(\n\t\t\t\ttree1.checkout.events,\n\t\t\t);\n\t\t\tconst { undoStack: undoStack2, unsubscribe: unsubscribe2 } = createTestUndoRedoStacks(\n\t\t\t\ttree2.checkout.events,\n\t\t\t);\n\n\t\t\tconst root1 = tree1.flexTree;\n\t\t\tconst root2 = tree2.flexTree;\n\t\t\t// Insert a node on tree 2\n\t\t\troot2.insertAt(4, [\"z\"]);\n\t\t\tassert.deepEqual([...root2], [\"A\", \"B\", \"C\", \"D\", \"z\"]);\n\n\t\t\t// Insert nodes on both trees\n\t\t\troot1.insertAt(1, [\"x\"]);\n\t\t\tassert.deepEqual([...root1], [\"A\", \"x\", \"B\", \"C\", \"D\"]);\n\n\t\t\troot2.insertAt(3, [\"y\"]);\n\t\t\tassert.deepEqual([...root2], [\"A\", \"B\", \"C\", \"y\", \"D\", \"z\"]);\n\n\t\t\t// Syncing will cause both trees to rebase their local changes\n\t\t\tprovider.processMessages();\n\n\t\t\tassert.equal(undoStack1.length, 1);\n\t\t\tassert.equal(undoStack2.length, 2);\n\n\t\t\tunsubscribe1();\n\t\t\tunsubscribe2();\n\t\t});\n\t});\n\n\t// TODO:\n\t// These tests should either be tests of SharedTreeView, EditManager, or the relevant field kind's rebase function.\n\t// Keeping a couple integration tests for rebase at this level might be ok (for example schema vs other edits), but that should be minimal,\n\t// and those tests should setup proper schema, and use the high levels editing APIs (editable tree) if they are serving as integration tests of SharedTree,\n\tdescribe(\"Rebasing\", () => {\n\t\tit(\"rebases stashed ops with prior state present\", async () => {\n\t\t\tconst provider = await TestTreeProvider.create(2);\n\t\t\tconst config = {\n\t\t\t\tinitialTree: [\"a\"],\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t};\n\t\t\tconst view1 = schematizeFlexTree(provider.trees[0], config);\n\t\t\tawait provider.ensureSynchronized();\n\n\t\t\tconst pausedContainer: IContainerExperimental = provider.containers[0];\n\t\t\tconst url = (await pausedContainer.getAbsoluteUrl(\"\")) ?? fail(\"didn't get url\");\n\t\t\tconst pausedTree = view1;\n\t\t\tawait provider.opProcessingController.pauseProcessing(pausedContainer);\n\t\t\tpausedTree.flexTree.insertAt(1, [\"b\"]);\n\t\t\tpausedTree.flexTree.insertAt(2, [\"c\"]);\n\t\t\tconst pendingOps = await pausedContainer.closeAndGetPendingLocalState?.();\n\t\t\tprovider.opProcessingController.resumeProcessing();\n\n\t\t\tconst otherLoadedTree = assertSchema(\n\t\t\t\tprovider.trees[1],\n\t\t\t\tstringSequenceRootSchema,\n\t\t\t).flexTree;\n\t\t\totherLoadedTree.insertAtStart([\"d\"]);\n\t\t\tawait provider.ensureSynchronized();\n\n\t\t\tconst loader = provider.makeTestLoader();\n\t\t\tconst loadedContainer = await loader.resolve({ url }, pendingOps);\n\t\t\tconst dataStore = (await loadedContainer.getEntryPoint()) as ITestFluidObject;\n\t\t\tconst tree = assertSchema(\n\t\t\t\tawait dataStore.getSharedObject<SharedTree>(\"TestSharedTree\"),\n\t\t\t\tstringSequenceRootSchema,\n\t\t\t);\n\t\t\tawait waitForContainerConnection(loadedContainer, true);\n\t\t\tawait provider.ensureSynchronized();\n\t\t\tassert.deepEqual([...tree.flexTree], [\"d\", \"a\", \"b\", \"c\"]);\n\t\t\tassert.deepEqual([...otherLoadedTree], [\"d\", \"a\", \"b\", \"c\"]);\n\t\t});\n\t});\n\n\tdescribe(\"Anchors\", () => {\n\t\tit(\"Anchors can be created and dereferenced\", () => {\n\t\t\tconst provider = new TestTreeProviderLite();\n\n\t\t\tschematizeFlexTree(provider.trees[0], {\n\t\t\t\tschema: numberSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [0, 1, 2],\n\t\t\t});\n\n\t\t\tconst tree = provider.trees[0].checkout;\n\n\t\t\tconst cursor = tree.forest.allocateCursor();\n\t\t\tmoveToDetachedField(tree.forest, cursor);\n\n\t\t\tcursor.enterNode(0);\n\t\t\tcursor.seekNodes(1);\n\t\t\tconst anchor = cursor.buildAnchor();\n\t\t\tcursor.free();\n\t\t\tconst childPath = tree.locate(anchor);\n\t\t\tconst expected: UpPath = {\n\t\t\t\tparent: undefined,\n\t\t\t\tparentField: rootFieldKey,\n\t\t\t\tparentIndex: 1,\n\t\t\t};\n\t\t\tassert(compareUpPaths(childPath, expected));\n\t\t});\n\t});\n\n\tit(\"don't send ops before committing\", () => {\n\t\tconst provider = new TestTreeProviderLite(2);\n\t\tconst tree1 = schematizeFlexTree(provider.trees[0], emptyStringSequenceConfig);\n\t\tprovider.processMessages();\n\t\tconst tree2 = provider.trees[1];\n\t\tlet opsReceived = 0;\n\t\ttree2.on(\"op\", () => (opsReceived += 1));\n\t\ttree1.checkout.transaction.start();\n\t\ttree1.flexTree.insertAtStart([\"x\"]);\n\t\tprovider.processMessages();\n\t\tassert.equal(opsReceived, 0);\n\t\ttree1.checkout.transaction.commit();\n\t\tprovider.processMessages();\n\t\tassert.equal(opsReceived, 1);\n\t\tassert.deepEqual([...assertSchema(tree2, stringSequenceRootSchema).flexTree], [\"x\"]);\n\t});\n\n\tit(\"send only one op after committing\", () => {\n\t\tconst provider = new TestTreeProviderLite(2);\n\t\tconst tree1 = schematizeFlexTree(provider.trees[0], emptyStringSequenceConfig);\n\t\tprovider.processMessages();\n\t\tconst tree2 = provider.trees[1];\n\t\tlet opsReceived = 0;\n\t\ttree2.on(\"op\", () => (opsReceived += 1));\n\t\ttree1.checkout.transaction.start();\n\t\ttree1.flexTree.insertAtStart([\"B\"]);\n\t\ttree1.flexTree.insertAtStart([\"A\"]);\n\t\ttree1.checkout.transaction.commit();\n\t\tprovider.processMessages();\n\t\tassert.equal(opsReceived, 1);\n\t\tassert.deepEqual([...assertSchema(tree2, stringSequenceRootSchema).flexTree], [\"A\", \"B\"]);\n\t});\n\n\tit(\"do not send an op after committing if nested\", () => {\n\t\tconst provider = new TestTreeProviderLite(2);\n\t\tconst tree1 = schematizeFlexTree(provider.trees[0], emptyStringSequenceConfig);\n\t\tprovider.processMessages();\n\t\tconst tree2 = provider.trees[1];\n\t\tlet opsReceived = 0;\n\t\ttree2.on(\"op\", () => (opsReceived += 1));\n\t\ttree1.checkout.transaction.start();\n\t\ttree1.checkout.transaction.start();\n\t\ttree1.flexTree.insertAtStart(\"A\");\n\t\ttree1.checkout.transaction.commit();\n\t\tprovider.processMessages();\n\t\tassert.equal(opsReceived, 0);\n\t\tconst view2 = assertSchema(tree2, stringSequenceRootSchema).flexTree;\n\t\tassert.deepEqual([...view2], []);\n\t\ttree1.flexTree.insertAtEnd([\"B\"]);\n\t\ttree1.checkout.transaction.commit();\n\t\tprovider.processMessages();\n\t\tassert.equal(opsReceived, 1);\n\t\tassert.deepEqual([...view2], [\"A\", \"B\"]);\n\t});\n\n\tit(\"process changes while detached\", async () => {\n\t\tconst onCreate = (parentTree: SharedTree) => {\n\t\t\tconst parent = schematizeFlexTree(parentTree, {\n\t\t\t\tinitialTree: [\"A\"],\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t});\n\t\t\tparent.checkout.transaction.start();\n\t\t\tparent.flexTree.insertAtStart([\"B\"]);\n\t\t\tparent.checkout.transaction.commit();\n\t\t\tconst child = parent.fork();\n\t\t\tchild.checkout.transaction.start();\n\t\t\tchild.flexTree.insertAtStart([\"C\"]);\n\t\t\tchild.checkout.transaction.commit();\n\t\t\tparent.checkout.merge(child.checkout);\n\t\t\tchild[disposeSymbol]();\n\t\t\tassert.deepEqual([...parent.flexTree], [\"C\", \"B\", \"A\"]);\n\t\t\tparent[disposeSymbol]();\n\t\t};\n\t\tconst provider = await TestTreeProvider.create(\n\t\t\t1,\n\t\t\tundefined,\n\t\t\tnew SharedTreeTestFactory(onCreate),\n\t\t);\n\t\tconst [tree] = provider.trees;\n\t\tassert.deepEqual(\n\t\t\t[...assertSchema(tree, stringSequenceRootSchema).flexTree],\n\t\t\t[\"C\", \"B\", \"A\"],\n\t\t);\n\t});\n\n\tit(\"doesn't submit an op for a change that crashes\", () => {\n\t\tconst provider = new TestTreeProviderLite(2);\n\t\tconst [tree1, tree2] = provider.trees;\n\n\t\ttree2.on(\"pre-op\", () => {\n\t\t\tassert.fail();\n\t\t});\n\n\t\tassert.throws(() =>\n\t\t\t// This change is a well-formed change object, but will attempt to do an operation that is illegal given the current (empty) state of the tree\n\t\t\ttree1.editor.sequenceField({ parent: undefined, field: rootFieldKey }).remove(0, 99),\n\t\t);\n\n\t\tprovider.processMessages();\n\t});\n\n\tdescribe(\"Schema changes\", () => {\n\t\tit(\"handles two trees schematizing identically at the same time\", async () => {\n\t\t\tconst provider = await TestTreeProvider.create(2, SummarizeType.disabled);\n\t\t\tconst value1 = \"42\";\n\t\t\tconst value2 = \"42\";\n\n\t\t\tconst view1 = schematizeFlexTree(provider.trees[0], {\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [value1],\n\t\t\t});\n\n\t\t\tschematizeFlexTree(provider.trees[1], {\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [value2],\n\t\t\t});\n\n\t\t\tawait provider.ensureSynchronized();\n\t\t\tassert.deepEqual([...view1.flexTree], [value1]);\n\t\t\texpectSchemaEqual(\n\t\t\t\tprovider.trees[1].storedSchema,\n\t\t\t\tintoStoredSchema(stringSequenceRootSchema),\n\t\t\t);\n\t\t\tvalidateTreeConsistency(provider.trees[0], provider.trees[1]);\n\t\t});\n\n\t\tit(\"can be undone at the tip\", async () => {\n\t\t\tconst provider = await TestTreeProvider.create(2, SummarizeType.disabled);\n\n\t\t\tconst tree = provider.trees[0];\n\t\t\tconst { undoStack } = createTestUndoRedoStacks(tree.checkout.events);\n\n\t\t\ttree.checkout.updateSchema(intoStoredSchema(stringSequenceRootSchema));\n\t\t\texpectSchemaEqual(tree.storedSchema, intoStoredSchema(stringSequenceRootSchema));\n\n\t\t\ttree.checkout.updateSchema(intoStoredSchema(jsonSequenceRootSchema));\n\t\t\texpectSchemaEqual(tree.storedSchema, intoStoredSchema(jsonSequenceRootSchema));\n\n\t\t\tconst revertible = undoStack.pop();\n\t\t\trevertible?.revert();\n\n\t\t\texpectSchemaEqual(tree.storedSchema, intoStoredSchema(stringSequenceRootSchema));\n\t\t});\n\t});\n\n\tdescribe(\"Stashed ops\", () => {\n\t\t// Fails because 'ranges finalized out of order' in deltaQueue.ts on the ensureSynchronized call.\n\t\t// This doesn't bubble up b/c of issues using TestTreeProvider without proper listening to errors coming\n\t\t// from containers.\n\t\tit(\"can apply and resubmit stashed schema ops\", async () => {\n\t\t\tconst provider = await TestTreeProvider.create(2);\n\n\t\t\tconst pausedContainer: IContainerExperimental = provider.containers[0];\n\t\t\tconst url = (await pausedContainer.getAbsoluteUrl(\"\")) ?? fail(\"didn't get url\");\n\t\t\tconst pausedTree = provider.trees[0];\n\t\t\tawait provider.opProcessingController.pauseProcessing(pausedContainer);\n\t\t\tpausedTree.checkout.updateSchema(intoStoredSchema(stringSequenceRootSchema));\n\t\t\tconst pendingOps = await pausedContainer.closeAndGetPendingLocalState?.();\n\t\t\tprovider.opProcessingController.resumeProcessing();\n\n\t\t\tconst loader = provider.makeTestLoader();\n\t\t\tconst loadedContainer = await loader.resolve({ url }, pendingOps);\n\t\t\tconst dataStore = (await loadedContainer.getEntryPoint()) as ITestFluidObject;\n\t\t\tconst tree = await dataStore.getSharedObject<ISharedTree>(\"TestSharedTree\");\n\t\t\tawait waitForContainerConnection(loadedContainer, true);\n\t\t\tawait provider.ensureSynchronized();\n\n\t\t\tconst otherLoadedTree = provider.trees[1];\n\t\t\texpectSchemaEqual(\n\t\t\t\ttree.contentSnapshot().schema,\n\t\t\t\tintoStoredSchema(stringSequenceRootSchema),\n\t\t\t);\n\t\t\texpectSchemaEqual(\n\t\t\t\totherLoadedTree.storedSchema,\n\t\t\t\tintoStoredSchema(stringSequenceRootSchema),\n\t\t\t);\n\t\t});\n\t});\n\n\tdescribe(\"Creates a SharedTree using specific ForestType\", () => {\n\t\tit(\"unspecified ForestType uses ObjectForest\", () => {\n\t\t\tconst { trees } = new TestTreeProviderLite(\n\t\t\t\t1,\n\t\t\t\tnew SharedTreeFactory({\n\t\t\t\t\tjsonValidator: typeboxValidator,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tassert.equal(trees[0].checkout.forest instanceof ObjectForest, true);\n\t\t});\n\n\t\tit(\"ForestType.Reference uses ObjectForest\", () => {\n\t\t\tconst { trees } = new TestTreeProviderLite(\n\t\t\t\t1,\n\t\t\t\tnew SharedTreeFactory({\n\t\t\t\t\tjsonValidator: typeboxValidator,\n\t\t\t\t\tforest: ForestType.Reference,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tassert.equal(trees[0].checkout.forest instanceof ObjectForest, true);\n\t\t});\n\n\t\tit(\"ForestType.Optimized uses ChunkedForest\", () => {\n\t\t\tconst { trees } = new TestTreeProviderLite(\n\t\t\t\t1,\n\t\t\t\tnew SharedTreeFactory({\n\t\t\t\t\tjsonValidator: typeboxValidator,\n\t\t\t\t\tforest: ForestType.Optimized,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tassert.equal(trees[0].checkout.forest instanceof ChunkedForest, true);\n\t\t});\n\t});\n\tdescribe(\"Schema based op encoding\", () => {\n\t\tit(\"uses the correct schema for subsequent edits after schema change.\", async () => {\n\t\t\tconst factory = new SharedTreeFactory({\n\t\t\t\tjsonValidator: typeboxValidator,\n\t\t\t\ttreeEncodeType: TreeCompressionStrategy.Compressed,\n\t\t\t});\n\t\t\tconst provider = new TestTreeProviderLite(2, factory);\n\t\t\tconst tree = provider.trees[0].checkout;\n\n\t\t\t// Initial schema which allows sequence of strings under field \"foo\".\n\t\t\tconst schemaBuilder = new SchemaBuilder({ scope: \"op-encoding-test-schema-1\" });\n\t\t\tconst nodeSchema = schemaBuilder.object(\"Node\", {\n\t\t\t\tfoo: SchemaBuilder.sequence(leaf.string),\n\t\t\t});\n\t\t\tconst rootFieldSchema = SchemaBuilder.required(nodeSchema);\n\t\t\tconst schema = schemaBuilder.intoSchema(rootFieldSchema);\n\n\t\t\t// Updated schema which allows all primitives under field \"foo\".\n\t\t\tconst schemaBuilder2 = new SchemaBuilder({ scope: \"op-encoding-test-schema-2\" });\n\t\t\tconst nodeSchema2 = schemaBuilder2.object(\"Node\", {\n\t\t\t\tfoo: SchemaBuilder.sequence(leaf.primitives),\n\t\t\t});\n\t\t\tconst rootFieldSchema2 = SchemaBuilder.required(nodeSchema2);\n\t\t\tconst schema2 = schemaBuilder2.intoSchema(rootFieldSchema2);\n\n\t\t\tconst initialState: JsonableTree = {\n\t\t\t\ttype: nodeSchema.name,\n\t\t\t\tfields: {\n\t\t\t\t\tfoo: [{ type: leaf.string.name, value: \"a\" }],\n\t\t\t\t},\n\t\t\t};\n\n\t\t\ttree.transaction.start();\n\t\t\trunSynchronous(tree, () => {\n\t\t\t\ttree.updateSchema(intoStoredSchema(schema));\n\t\t\t\tconst fieldEditor = tree.editor.sequenceField({\n\t\t\t\t\tfield: rootFieldKey,\n\t\t\t\t\tparent: undefined,\n\t\t\t\t});\n\t\t\t\tfieldEditor.insert(0, cursorForJsonableTreeNode(initialState));\n\n\t\t\t\tconst rootPath = {\n\t\t\t\t\tparent: undefined,\n\t\t\t\t\tparentField: rootFieldKey,\n\t\t\t\t\tparentIndex: 0,\n\t\t\t\t};\n\n\t\t\t\tconst field = tree.editor.sequenceField({ parent: rootPath, field: brand(\"foo\") });\n\t\t\t\tfield.insert(0, cursorForJsonableTreeNode({ type: leaf.string.name, value: \"b\" }));\n\n\t\t\t\t// Update schema which now allows all primitives under field \"foo\".\n\t\t\t\ttree.updateSchema(intoStoredSchema(schema2));\n\t\t\t\tfield.insert(0, cursorForJsonableTreeNode({ type: leaf.number.name, value: 1 }));\n\t\t\t});\n\t\t\ttree.transaction.commit();\n\t\t\tprovider.processMessages();\n\t\t});\n\n\t\tit(\"properly encodes ops using specified compression strategy\", async () => {\n\t\t\t// Check that ops are using uncompressed encoding with \"Uncompressed\" treeEncodeType\n\t\t\tconst factory = new SharedTreeFactory({\n\t\t\t\tjsonValidator: typeboxValidator,\n\t\t\t\ttreeEncodeType: TreeCompressionStrategy.Uncompressed,\n\t\t\t});\n\t\t\tconst provider = await TestTreeProvider.create(1, SummarizeType.onDemand, factory);\n\t\t\tschematizeFlexTree(provider.trees[0], {\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [\"A\", \"B\", \"C\"],\n\t\t\t});\n\n\t\t\tawait provider.ensureSynchronized();\n\t\t\tconst summary = (await provider.trees[0].summarize()).summary;\n\t\t\tconst indexesSummary = summary.tree.indexes;\n\t\t\tassert(indexesSummary.type === SummaryType.Tree);\n\t\t\tconst editManagerSummary = indexesSummary.tree.EditManager;\n\t\t\tassert(editManagerSummary.type === SummaryType.Tree);\n\t\t\tconst editManagerSummaryBlob = editManagerSummary.tree.String;\n\t\t\tassert(editManagerSummaryBlob.type === SummaryType.Blob);\n\t\t\tconst changesSummary = JSON.parse(editManagerSummaryBlob.content as string);\n\t\t\tconst encodedTreeData = changesSummary.trunk[0].change[1].data.builds.trees;\n\t\t\tconst expectedUncompressedTreeData = [\n\t\t\t\t\"com.fluidframework.leaf.string\",\n\t\t\t\ttrue,\n\t\t\t\t\"A\",\n\t\t\t\t[],\n\t\t\t\t\"com.fluidframework.leaf.string\",\n\t\t\t\ttrue,\n\t\t\t\t\"B\",\n\t\t\t\t[],\n\t\t\t\t\"com.fluidframework.leaf.string\",\n\t\t\t\ttrue,\n\t\t\t\t\"C\",\n\t\t\t\t[],\n\t\t\t];\n\t\t\tassert.deepEqual(encodedTreeData.data[0][1], expectedUncompressedTreeData);\n\n\t\t\t// Check that ops are encoded using schema based compression with \"Compressed\" treeEncodeType\n\t\t\tconst factory2 = new SharedTreeFactory({\n\t\t\t\tjsonValidator: typeboxValidator,\n\t\t\t\ttreeEncodeType: TreeCompressionStrategy.Compressed,\n\t\t\t});\n\t\t\tconst provider2 = await TestTreeProvider.create(1, SummarizeType.onDemand, factory2);\n\n\t\t\tschematizeFlexTree(provider2.trees[0], {\n\t\t\t\tschema: stringSequenceRootSchema,\n\t\t\t\tallowedSchemaModifications: AllowedUpdateType.Initialize,\n\t\t\t\tinitialTree: [\"A\", \"B\", \"C\"],\n\t\t\t});\n\n\t\t\tawait provider2.ensureSynchronized();\n\t\t\tconst summary2 = (await provider2.trees[0].summarize()).summary;\n\t\t\tconst indexesSummary2 = summary2.tree.indexes;\n\t\t\tassert(indexesSummary2.type === SummaryType.Tree);\n\t\t\tconst editManagerSummary2 = indexesSummary2.tree.EditManager;\n\t\t\tassert(editManagerSummary2.type === SummaryType.Tree);\n\t\t\tconst editManagerSummaryBlob2 = editManagerSummary2.tree.String;\n\t\t\tassert(editManagerSummaryBlob2.type === SummaryType.Blob);\n\t\t\tconst changesSummary2 = JSON.parse(editManagerSummaryBlob2.content as string);\n\t\t\tconst encodedTreeData2 = changesSummary2.trunk[0].change[1].data.builds.trees;\n\t\t\tconst expectedCompressedTreeData = [0, \"A\", 0, \"B\", 0, \"C\"];\n\t\t\tassert.deepEqual(encodedTreeData2.data[0][1], expectedCompressedTreeData);\n\t\t});\n\t});\n});\n\nfunction assertSchema<TRoot extends FlexFieldSchema>(\n\ttree: SharedTree,\n\tschema: FlexTreeSchema<TRoot>,\n\tonDispose: () => void = () => assert.fail(),\n): FlexTreeView<TRoot> {\n\tconst viewSchema = new ViewSchema(defaultSchemaPolicy, {}, schema);\n\treturn requireSchema(\n\t\ttree.checkout,\n\t\tviewSchema,\n\t\tonDispose,\n\t\tcreateMockNodeKeyManager(),\n\t\tbrand(nodeKeyFieldKey),\n\t);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sharedTreeChangeCodec.spec.d.ts","sourceRoot":"","sources":["../../../src/test/shared-tree/sharedTreeChangeCodec.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { strict as assert } from "assert";
|
|
6
|
-
import { defaultSchemaPolicy, fieldKinds, makeV0Codec, } from "../../feature-libraries/index.js";
|
|
7
|
-
import { TreeStoredSchemaRepository } from "../../core/index.js";
|
|
8
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
9
|
-
import { sequence } from "../../feature-libraries/default-schema/defaultFieldKinds.js";
|
|
10
|
-
import { noopValidator } from "../../codec/index.js";
|
|
11
|
-
import { ajvValidator } from "../codec/index.js";
|
|
12
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
13
|
-
import { makeSharedTreeChangeCodec } from "../../shared-tree/sharedTreeChangeCodecs.js";
|
|
14
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
15
|
-
import { brand } from "../../util/brand.js";
|
|
16
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
17
|
-
import { uncompressedEncode } from "../../feature-libraries/chunked-forest/codec/uncompressedEncode.js";
|
|
18
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
19
|
-
import { decode } from "../../feature-libraries/chunked-forest/codec/chunkDecoding.js";
|
|
20
|
-
import { testRevisionTagCodec } from "../utils.js";
|
|
21
|
-
const codecOptions = { jsonValidator: ajvValidator };
|
|
22
|
-
describe("sharedTreeChangeCodec", () => {
|
|
23
|
-
it("passes down the context's schema to the fieldBatchCodec", () => {
|
|
24
|
-
const dummyFieldBatchCodec = {
|
|
25
|
-
encode: (data, context) => {
|
|
26
|
-
// Checks that the context's schema matches the schema passed into the sharedTreeChangeCodec.
|
|
27
|
-
assert.equal(context.schema?.schema, dummyTestSchema);
|
|
28
|
-
return uncompressedEncode(data);
|
|
29
|
-
},
|
|
30
|
-
decode: (data) => {
|
|
31
|
-
return decode(data).map((chunk) => chunk.cursor());
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
const modularChangeCodec = makeV0Codec(fieldKinds, testRevisionTagCodec, dummyFieldBatchCodec, codecOptions);
|
|
35
|
-
const sharedTreeChangeCodec = makeSharedTreeChangeCodec(modularChangeCodec, {
|
|
36
|
-
jsonValidator: noopValidator,
|
|
37
|
-
});
|
|
38
|
-
const dummyTestSchema = new TreeStoredSchemaRepository();
|
|
39
|
-
const dummyContext = {
|
|
40
|
-
originatorId: "dummySessionID",
|
|
41
|
-
schema: { policy: defaultSchemaPolicy, schema: dummyTestSchema },
|
|
42
|
-
};
|
|
43
|
-
const changeA = [];
|
|
44
|
-
const dummyModularChangeSet = {
|
|
45
|
-
fieldChanges: new Map([
|
|
46
|
-
[brand("fA"), { fieldKind: sequence.identifier, change: brand(changeA) }],
|
|
47
|
-
]),
|
|
48
|
-
};
|
|
49
|
-
sharedTreeChangeCodec.encode({ changes: [{ type: "data", innerChange: dummyModularChangeSet }] }, dummyContext);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=sharedTreeChangeCodec.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sharedTreeChangeCodec.spec.js","sourceRoot":"","sources":["../../../src/test/shared-tree/sharedTreeChangeCodec.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAKN,mBAAmB,EACnB,UAAU,EACV,WAAW,GACX,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,sDAAsD;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6DAA6D,CAAC;AACvF,OAAO,EAAiB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,sDAAsD;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,sDAAsD;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,sDAAsD;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AACxG,sDAAsD;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,+DAA+D,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,YAAY,GAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAEpE,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAClE,MAAM,oBAAoB,GAAG;YAC5B,MAAM,EAAE,CAAC,IAAgB,EAAE,OAAkC,EAAqB,EAAE;gBACnF,6FAA6F;gBAC7F,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;gBACtD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,MAAM,EAAE,CAAC,IAAuB,EAAc,EAAE;gBAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACpD,CAAC;SACD,CAAC;QACF,MAAM,kBAAkB,GAAG,WAAW,CACrC,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,CACZ,CAAC;QACF,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,kBAAkB,EAAE;YAC3E,aAAa,EAAE,aAAa;SAC5B,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG;YACpB,YAAY,EAAE,gBAA6B;YAC3C,MAAM,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE;SAChE,CAAC;QACF,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,MAAM,qBAAqB,GAAqB;YAC/C,YAAY,EAAE,IAAI,GAAG,CAAC;gBACrB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;aACzE,CAAC;SACF,CAAC;QACF,qBAAqB,CAAC,MAAM,CAC3B,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,EAAE,EACnE,YAAY,CACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"assert\";\nimport { SessionId } from \"@fluidframework/id-compressor\";\nimport {\n\tFieldBatch,\n\tFieldBatchEncodingContext,\n\tModularChangeset,\n\tSequenceField,\n\tdefaultSchemaPolicy,\n\tfieldKinds,\n\tmakeV0Codec,\n} from \"../../feature-libraries/index.js\";\nimport { TreeStoredSchemaRepository } from \"../../core/index.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { sequence } from \"../../feature-libraries/default-schema/defaultFieldKinds.js\";\nimport { ICodecOptions, noopValidator } from \"../../codec/index.js\";\nimport { ajvValidator } from \"../codec/index.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { makeSharedTreeChangeCodec } from \"../../shared-tree/sharedTreeChangeCodecs.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { brand } from \"../../util/brand.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { EncodedFieldBatch } from \"../../feature-libraries/chunked-forest/index.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { uncompressedEncode } from \"../../feature-libraries/chunked-forest/codec/uncompressedEncode.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { decode } from \"../../feature-libraries/chunked-forest/codec/chunkDecoding.js\";\nimport { testRevisionTagCodec } from \"../utils.js\";\n\nconst codecOptions: ICodecOptions = { jsonValidator: ajvValidator };\n\ndescribe(\"sharedTreeChangeCodec\", () => {\n\tit(\"passes down the context's schema to the fieldBatchCodec\", () => {\n\t\tconst dummyFieldBatchCodec = {\n\t\t\tencode: (data: FieldBatch, context: FieldBatchEncodingContext): EncodedFieldBatch => {\n\t\t\t\t// Checks that the context's schema matches the schema passed into the sharedTreeChangeCodec.\n\t\t\t\tassert.equal(context.schema?.schema, dummyTestSchema);\n\t\t\t\treturn uncompressedEncode(data);\n\t\t\t},\n\t\t\tdecode: (data: EncodedFieldBatch): FieldBatch => {\n\t\t\t\treturn decode(data).map((chunk) => chunk.cursor());\n\t\t\t},\n\t\t};\n\t\tconst modularChangeCodec = makeV0Codec(\n\t\t\tfieldKinds,\n\t\t\ttestRevisionTagCodec,\n\t\t\tdummyFieldBatchCodec,\n\t\t\tcodecOptions,\n\t\t);\n\t\tconst sharedTreeChangeCodec = makeSharedTreeChangeCodec(modularChangeCodec, {\n\t\t\tjsonValidator: noopValidator,\n\t\t});\n\n\t\tconst dummyTestSchema = new TreeStoredSchemaRepository();\n\t\tconst dummyContext = {\n\t\t\toriginatorId: \"dummySessionID\" as SessionId,\n\t\t\tschema: { policy: defaultSchemaPolicy, schema: dummyTestSchema },\n\t\t};\n\t\tconst changeA: SequenceField.Changeset = [];\n\t\tconst dummyModularChangeSet: ModularChangeset = {\n\t\t\tfieldChanges: new Map([\n\t\t\t\t[brand(\"fA\"), { fieldKind: sequence.identifier, change: brand(changeA) }],\n\t\t\t]),\n\t\t};\n\t\tsharedTreeChangeCodec.encode(\n\t\t\t{ changes: [{ type: \"data\", innerChange: dummyModularChangeSet }] },\n\t\t\tdummyContext,\n\t\t);\n\t});\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sharedTreeChangeFamily.spec.d.ts","sourceRoot":"","sources":["../../../src/test/shared-tree/sharedTreeChangeFamily.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { strict as assert } from "assert";
|
|
6
|
-
import { DefaultEditBuilder, ModularChangeFamily, cursorForJsonableTreeNode, fieldKinds, } from "../../feature-libraries/index.js";
|
|
7
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
8
|
-
import { SharedTreeChangeFamily } from "../../shared-tree/sharedTreeChangeFamily.js";
|
|
9
|
-
import { makeAnonChange, revisionMetadataSourceFromInfo, rootFieldKey, } from "../../core/index.js";
|
|
10
|
-
import { leaf } from "../../domains/index.js";
|
|
11
|
-
// eslint-disable-next-line import/no-internal-modules
|
|
12
|
-
import { forbidden } from "../../feature-libraries/default-schema/defaultFieldKinds.js";
|
|
13
|
-
import { testRevisionTagCodec } from "../utils.js";
|
|
14
|
-
import { ajvValidator } from "../codec/index.js";
|
|
15
|
-
const dataChanges = [];
|
|
16
|
-
const codecOptions = { jsonValidator: ajvValidator };
|
|
17
|
-
const fieldBatchCodec = {
|
|
18
|
-
encode: () => assert.fail("Unexpected encode"),
|
|
19
|
-
decode: () => assert.fail("Unexpected decode"),
|
|
20
|
-
};
|
|
21
|
-
const modularFamily = new ModularChangeFamily(fieldKinds, testRevisionTagCodec, fieldBatchCodec, codecOptions);
|
|
22
|
-
const defaultEditor = new DefaultEditBuilder(modularFamily, (change) => dataChanges.push(change));
|
|
23
|
-
const nodeX = { type: leaf.string.name, value: "X" };
|
|
24
|
-
const nodeY = { type: leaf.string.name, value: "Y" };
|
|
25
|
-
// Side effects results in `dataChanges` being populated
|
|
26
|
-
defaultEditor
|
|
27
|
-
.valueField({ parent: undefined, field: rootFieldKey })
|
|
28
|
-
.set(cursorForJsonableTreeNode(nodeX));
|
|
29
|
-
defaultEditor
|
|
30
|
-
.valueField({ parent: undefined, field: rootFieldKey })
|
|
31
|
-
.set(cursorForJsonableTreeNode(nodeY));
|
|
32
|
-
const dataChange1 = dataChanges[0];
|
|
33
|
-
const dataChange2 = dataChanges[1];
|
|
34
|
-
const stDataChange1 = {
|
|
35
|
-
changes: [{ type: "data", innerChange: dataChange1 }],
|
|
36
|
-
};
|
|
37
|
-
const stDataChange2 = {
|
|
38
|
-
changes: [{ type: "data", innerChange: dataChange2 }],
|
|
39
|
-
};
|
|
40
|
-
const emptySchema = {
|
|
41
|
-
nodeSchema: new Map(),
|
|
42
|
-
rootFieldSchema: {
|
|
43
|
-
kind: forbidden,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
const stSchemaChange = {
|
|
47
|
-
changes: [{ type: "schema", innerChange: { schema: { new: emptySchema, old: emptySchema } } }],
|
|
48
|
-
};
|
|
49
|
-
const stEmptyChange = {
|
|
50
|
-
changes: [],
|
|
51
|
-
};
|
|
52
|
-
const sharedTreeFamily = new SharedTreeChangeFamily(testRevisionTagCodec, fieldBatchCodec, codecOptions);
|
|
53
|
-
describe("SharedTreeChangeFamily", () => {
|
|
54
|
-
it("composition composes runs of data changes", () => {
|
|
55
|
-
assert.deepEqual(sharedTreeFamily.compose([
|
|
56
|
-
makeAnonChange(stDataChange1),
|
|
57
|
-
makeAnonChange(stDataChange2),
|
|
58
|
-
makeAnonChange(stSchemaChange),
|
|
59
|
-
makeAnonChange(stDataChange1),
|
|
60
|
-
makeAnonChange(stDataChange2),
|
|
61
|
-
makeAnonChange(stDataChange2),
|
|
62
|
-
]), {
|
|
63
|
-
changes: [
|
|
64
|
-
{
|
|
65
|
-
type: "data",
|
|
66
|
-
innerChange: modularFamily.compose([
|
|
67
|
-
makeAnonChange(dataChange1),
|
|
68
|
-
makeAnonChange(dataChange2),
|
|
69
|
-
]),
|
|
70
|
-
},
|
|
71
|
-
stSchemaChange.changes[0],
|
|
72
|
-
{
|
|
73
|
-
type: "data",
|
|
74
|
-
innerChange: modularFamily.compose([
|
|
75
|
-
makeAnonChange(dataChange1),
|
|
76
|
-
makeAnonChange(dataChange2),
|
|
77
|
-
makeAnonChange(dataChange2),
|
|
78
|
-
]),
|
|
79
|
-
},
|
|
80
|
-
],
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
it("empty changes result in no-op rebases", () => {
|
|
84
|
-
assert.deepEqual(sharedTreeFamily.rebase(stSchemaChange, makeAnonChange(stEmptyChange), revisionMetadataSourceFromInfo([])), stSchemaChange);
|
|
85
|
-
assert.deepEqual(sharedTreeFamily.rebase(stDataChange1, makeAnonChange(stEmptyChange), revisionMetadataSourceFromInfo([])), stDataChange1);
|
|
86
|
-
});
|
|
87
|
-
it("schema edits cause all concurrent changes to conflict", () => {
|
|
88
|
-
assert.deepEqual(sharedTreeFamily.rebase(stSchemaChange, makeAnonChange(stDataChange1), revisionMetadataSourceFromInfo([])), {
|
|
89
|
-
changes: [],
|
|
90
|
-
});
|
|
91
|
-
assert.deepEqual(sharedTreeFamily.rebase(stDataChange1, makeAnonChange(stSchemaChange), revisionMetadataSourceFromInfo([])), {
|
|
92
|
-
changes: [],
|
|
93
|
-
});
|
|
94
|
-
assert.deepEqual(sharedTreeFamily.rebase(stSchemaChange, makeAnonChange(stSchemaChange), revisionMetadataSourceFromInfo([])), {
|
|
95
|
-
changes: [],
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
describe("without schema edits should behave identically to ModularChangeFamily", () => {
|
|
99
|
-
it("when composing", () => {
|
|
100
|
-
assert.deepEqual(sharedTreeFamily.compose([
|
|
101
|
-
makeAnonChange(stDataChange1),
|
|
102
|
-
makeAnonChange(stDataChange2),
|
|
103
|
-
]), {
|
|
104
|
-
changes: [
|
|
105
|
-
{
|
|
106
|
-
type: "data",
|
|
107
|
-
innerChange: modularFamily.compose([
|
|
108
|
-
makeAnonChange(dataChange1),
|
|
109
|
-
makeAnonChange(dataChange2),
|
|
110
|
-
]),
|
|
111
|
-
},
|
|
112
|
-
],
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
it("when rebasing", () => {
|
|
116
|
-
assert.deepEqual(sharedTreeFamily.rebase(stDataChange1, makeAnonChange(stDataChange2), revisionMetadataSourceFromInfo([])), {
|
|
117
|
-
changes: [
|
|
118
|
-
{
|
|
119
|
-
type: "data",
|
|
120
|
-
innerChange: modularFamily.rebase(dataChange1, makeAnonChange(dataChange2), revisionMetadataSourceFromInfo([])),
|
|
121
|
-
},
|
|
122
|
-
],
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
for (const isRollback of [true, false]) {
|
|
126
|
-
it(`when inverting (isRollback = ${isRollback})`, () => {
|
|
127
|
-
assert.deepEqual(sharedTreeFamily.invert(makeAnonChange(stDataChange1), isRollback), {
|
|
128
|
-
changes: [
|
|
129
|
-
{
|
|
130
|
-
type: "data",
|
|
131
|
-
innerChange: modularFamily.invert(makeAnonChange(dataChange1), isRollback),
|
|
132
|
-
},
|
|
133
|
-
],
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
//# sourceMappingURL=sharedTreeChangeFamily.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sharedTreeChangeFamily.spec.js","sourceRoot":"","sources":["../../../src/test/shared-tree/sharedTreeChangeFamily.spec.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 { strict as assert } from \"assert\";\nimport {\n\tDefaultEditBuilder,\n\tModularChangeFamily,\n\tModularChangeset,\n\tcursorForJsonableTreeNode,\n\tfieldKinds,\n} from \"../../feature-libraries/index.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { SharedTreeChangeFamily } from \"../../shared-tree/sharedTreeChangeFamily.js\";\nimport {\n\tTreeStoredSchema,\n\tmakeAnonChange,\n\trevisionMetadataSourceFromInfo,\n\trootFieldKey,\n} from \"../../core/index.js\";\nimport { leaf } from \"../../domains/index.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { SharedTreeChange } from \"../../shared-tree/sharedTreeChangeTypes.js\";\n// eslint-disable-next-line import/no-internal-modules\nimport { forbidden } from \"../../feature-libraries/default-schema/defaultFieldKinds.js\";\nimport { testRevisionTagCodec } from \"../utils.js\";\nimport { ICodecOptions } from \"../../codec/index.js\";\nimport { ajvValidator } from \"../codec/index.js\";\n\nconst dataChanges: ModularChangeset[] = [];\nconst codecOptions: ICodecOptions = { jsonValidator: ajvValidator };\nconst fieldBatchCodec = {\n\tencode: () => assert.fail(\"Unexpected encode\"),\n\tdecode: () => assert.fail(\"Unexpected decode\"),\n};\n\nconst modularFamily = new ModularChangeFamily(\n\tfieldKinds,\n\ttestRevisionTagCodec,\n\tfieldBatchCodec,\n\tcodecOptions,\n);\nconst defaultEditor = new DefaultEditBuilder(modularFamily, (change) => dataChanges.push(change));\n\nconst nodeX = { type: leaf.string.name, value: \"X\" };\nconst nodeY = { type: leaf.string.name, value: \"Y\" };\n\n// Side effects results in `dataChanges` being populated\ndefaultEditor\n\t.valueField({ parent: undefined, field: rootFieldKey })\n\t.set(cursorForJsonableTreeNode(nodeX));\ndefaultEditor\n\t.valueField({ parent: undefined, field: rootFieldKey })\n\t.set(cursorForJsonableTreeNode(nodeY));\n\nconst dataChange1 = dataChanges[0];\nconst dataChange2 = dataChanges[1];\nconst stDataChange1: SharedTreeChange = {\n\tchanges: [{ type: \"data\", innerChange: dataChange1 }],\n};\nconst stDataChange2: SharedTreeChange = {\n\tchanges: [{ type: \"data\", innerChange: dataChange2 }],\n};\nconst emptySchema: TreeStoredSchema = {\n\tnodeSchema: new Map(),\n\trootFieldSchema: {\n\t\tkind: forbidden,\n\t},\n};\nconst stSchemaChange: SharedTreeChange = {\n\tchanges: [{ type: \"schema\", innerChange: { schema: { new: emptySchema, old: emptySchema } } }],\n};\nconst stEmptyChange: SharedTreeChange = {\n\tchanges: [],\n};\n\nconst sharedTreeFamily = new SharedTreeChangeFamily(\n\ttestRevisionTagCodec,\n\tfieldBatchCodec,\n\tcodecOptions,\n);\n\ndescribe(\"SharedTreeChangeFamily\", () => {\n\tit(\"composition composes runs of data changes\", () => {\n\t\tassert.deepEqual(\n\t\t\tsharedTreeFamily.compose([\n\t\t\t\tmakeAnonChange(stDataChange1),\n\t\t\t\tmakeAnonChange(stDataChange2),\n\t\t\t\tmakeAnonChange(stSchemaChange),\n\t\t\t\tmakeAnonChange(stDataChange1),\n\t\t\t\tmakeAnonChange(stDataChange2),\n\t\t\t\tmakeAnonChange(stDataChange2),\n\t\t\t]),\n\t\t\t{\n\t\t\t\tchanges: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"data\",\n\t\t\t\t\t\tinnerChange: modularFamily.compose([\n\t\t\t\t\t\t\tmakeAnonChange(dataChange1),\n\t\t\t\t\t\t\tmakeAnonChange(dataChange2),\n\t\t\t\t\t\t]),\n\t\t\t\t\t},\n\t\t\t\t\tstSchemaChange.changes[0],\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"data\",\n\t\t\t\t\t\tinnerChange: modularFamily.compose([\n\t\t\t\t\t\t\tmakeAnonChange(dataChange1),\n\t\t\t\t\t\t\tmakeAnonChange(dataChange2),\n\t\t\t\t\t\t\tmakeAnonChange(dataChange2),\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\tit(\"empty changes result in no-op rebases\", () => {\n\t\tassert.deepEqual(\n\t\t\tsharedTreeFamily.rebase(\n\t\t\t\tstSchemaChange,\n\t\t\t\tmakeAnonChange(stEmptyChange),\n\t\t\t\trevisionMetadataSourceFromInfo([]),\n\t\t\t),\n\t\t\tstSchemaChange,\n\t\t);\n\n\t\tassert.deepEqual(\n\t\t\tsharedTreeFamily.rebase(\n\t\t\t\tstDataChange1,\n\t\t\t\tmakeAnonChange(stEmptyChange),\n\t\t\t\trevisionMetadataSourceFromInfo([]),\n\t\t\t),\n\t\t\tstDataChange1,\n\t\t);\n\t});\n\n\tit(\"schema edits cause all concurrent changes to conflict\", () => {\n\t\tassert.deepEqual(\n\t\t\tsharedTreeFamily.rebase(\n\t\t\t\tstSchemaChange,\n\t\t\t\tmakeAnonChange(stDataChange1),\n\t\t\t\trevisionMetadataSourceFromInfo([]),\n\t\t\t),\n\t\t\t{\n\t\t\t\tchanges: [],\n\t\t\t},\n\t\t);\n\n\t\tassert.deepEqual(\n\t\t\tsharedTreeFamily.rebase(\n\t\t\t\tstDataChange1,\n\t\t\t\tmakeAnonChange(stSchemaChange),\n\t\t\t\trevisionMetadataSourceFromInfo([]),\n\t\t\t),\n\t\t\t{\n\t\t\t\tchanges: [],\n\t\t\t},\n\t\t);\n\n\t\tassert.deepEqual(\n\t\t\tsharedTreeFamily.rebase(\n\t\t\t\tstSchemaChange,\n\t\t\t\tmakeAnonChange(stSchemaChange),\n\t\t\t\trevisionMetadataSourceFromInfo([]),\n\t\t\t),\n\t\t\t{\n\t\t\t\tchanges: [],\n\t\t\t},\n\t\t);\n\t});\n\n\tdescribe(\"without schema edits should behave identically to ModularChangeFamily\", () => {\n\t\tit(\"when composing\", () => {\n\t\t\tassert.deepEqual(\n\t\t\t\tsharedTreeFamily.compose([\n\t\t\t\t\tmakeAnonChange(stDataChange1),\n\t\t\t\t\tmakeAnonChange(stDataChange2),\n\t\t\t\t]),\n\t\t\t\t{\n\t\t\t\t\tchanges: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"data\",\n\t\t\t\t\t\t\tinnerChange: modularFamily.compose([\n\t\t\t\t\t\t\t\tmakeAnonChange(dataChange1),\n\t\t\t\t\t\t\t\tmakeAnonChange(dataChange2),\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\n\t\tit(\"when rebasing\", () => {\n\t\t\tassert.deepEqual(\n\t\t\t\tsharedTreeFamily.rebase(\n\t\t\t\t\tstDataChange1,\n\t\t\t\t\tmakeAnonChange(stDataChange2),\n\t\t\t\t\trevisionMetadataSourceFromInfo([]),\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tchanges: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"data\",\n\t\t\t\t\t\t\tinnerChange: modularFamily.rebase(\n\t\t\t\t\t\t\t\tdataChange1,\n\t\t\t\t\t\t\t\tmakeAnonChange(dataChange2),\n\t\t\t\t\t\t\t\trevisionMetadataSourceFromInfo([]),\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\n\t\tfor (const isRollback of [true, false]) {\n\t\t\tit(`when inverting (isRollback = ${isRollback})`, () => {\n\t\t\t\tassert.deepEqual(\n\t\t\t\t\tsharedTreeFamily.invert(makeAnonChange(stDataChange1), isRollback),\n\t\t\t\t\t{\n\t\t\t\t\t\tchanges: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"data\",\n\t\t\t\t\t\t\t\tinnerChange: modularFamily.invert(\n\t\t\t\t\t\t\t\t\tmakeAnonChange(dataChange1),\n\t\t\t\t\t\t\t\t\tisRollback,\n\t\t\t\t\t\t\t\t),\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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summary.bench.d.ts","sourceRoot":"","sources":["../../../src/test/shared-tree/summary.bench.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|