@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":"compose.test.js","sourceRoot":"","sources":["../../../../src/test/feature-libraries/sequence-field/compose.test.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, fail } from \"assert\";\nimport { mintRevisionTag } from \"../../utils.js\";\nimport {\n\tRevisionTag,\n\tmakeAnonChange,\n\ttagChange,\n\tTreeNodeSchemaIdentifier,\n\ttagRollbackInverse,\n\tChangesetLocalId,\n\tChangeAtomId,\n\tRevisionInfo,\n} from \"../../../core/index.js\";\nimport { SequenceField as SF } from \"../../../feature-libraries/index.js\";\nimport { brand } from \"../../../util/index.js\";\nimport { TestChange } from \"../../testChange.js\";\nimport { cases, ChangeMaker as Change, MarkMaker as Mark, TestChangeset } from \"./testEdits.js\";\nimport {\n\tareComposable,\n\tassertChangesetsEqual,\n\tcompose,\n\tcomposeNoVerify,\n\tdescribeForBothConfigs,\n\tshallowCompose,\n\tskipOnLineageMethod,\n\twithOrderingMethod,\n} from \"./utils.js\";\n\nconst type: TreeNodeSchemaIdentifier = brand(\"Node\");\nconst tag1: RevisionTag = mintRevisionTag();\nconst tag2: RevisionTag = mintRevisionTag();\nconst tag3: RevisionTag = mintRevisionTag();\nconst tag4: RevisionTag = mintRevisionTag();\nconst tag5: RevisionTag = mintRevisionTag();\nconst tag6: RevisionTag = mintRevisionTag();\nconst revInfos: RevisionInfo[] = [\n\t{ revision: tag1 },\n\t{ revision: tag2 },\n\t{ revision: tag3 },\n\t{ revision: tag4 },\n\t{ revision: tag5 },\n\t{ revision: tag6 },\n];\n\nconst defaultInsertId: ChangesetLocalId = brand(0);\n\nexport function testCompose() {\n\tdescribeForBothConfigs(\"Compose\", (config) => {\n\t\tconst withConfig = (fn: () => void) => withOrderingMethod(config.cellOrdering, fn);\n\t\tdescribe(\"associativity of triplets\", () => {\n\t\t\tconst entries = Object.entries(cases);\n\t\t\tfor (const a of entries) {\n\t\t\t\tconst taggedA = tagChange(a[1], tag1);\n\t\t\t\tfor (const b of entries) {\n\t\t\t\t\tconst taggedB = tagChange(b[1], tag2);\n\t\t\t\t\tfor (const c of entries) {\n\t\t\t\t\t\tconst taggedC = tagChange(c[1], tag3);\n\t\t\t\t\t\tconst title = `((${a[0]}, ${b[0]}), ${c[0]}) === (${a[0]}, (${b[0]}, ${c[0]}))`;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttitle.startsWith(\"((remove, insert), revive)\") ||\n\t\t\t\t\t\t\ttitle.startsWith(\"((move, insert), revive)\") ||\n\t\t\t\t\t\t\t!areComposable([taggedA, taggedB, taggedC])\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// These changes do not form a valid sequence of composable changes\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttitle.startsWith(\"((transient_insert, insert), revive)\") ||\n\t\t\t\t\t\t\ttitle.startsWith(\"((transient_insert, modify_insert), revive)\") ||\n\t\t\t\t\t\t\ttitle.startsWith(\"((move, modify_insert), revive)\") ||\n\t\t\t\t\t\t\ttitle.startsWith(\"((remove, modify_insert), revive)\")\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tit.skip(title, () => {\n\t\t\t\t\t\t\t\t// This test fails due to the revive lacking lineage about a detach in one of the prior edits\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tit(title, () =>\n\t\t\t\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\t\t\t\tconst ab = composeNoVerify([taggedA, taggedB]);\n\t\t\t\t\t\t\t\t\tconst left = composeNoVerify(\n\t\t\t\t\t\t\t\t\t\t[makeAnonChange(ab), taggedC],\n\t\t\t\t\t\t\t\t\t\trevInfos,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tconst bc = composeNoVerify([taggedB, taggedC]);\n\t\t\t\t\t\t\t\t\tconst right = composeNoVerify(\n\t\t\t\t\t\t\t\t\t\t[taggedA, makeAnonChange(bc)],\n\t\t\t\t\t\t\t\t\t\trevInfos,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tassertChangesetsEqual(left, right);\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\n\t\tit(\"no changes\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst actual = shallowCompose([]);\n\t\t\t\tassertChangesetsEqual(actual, cases.no_change);\n\t\t\t}));\n\n\t\tit(\"populates cell revision info\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst tomb = tagChange([Mark.tomb(tag1, brand(0))], tag2);\n\t\t\t\tconst insert = tagChange([Mark.insert(1, brand(0))], tag1);\n\t\t\t\tconst expected = [Mark.insert(1, { revision: tag1, localId: brand(0) })];\n\t\t\t\tconst actual = shallowCompose([tomb, insert]);\n\t\t\t\tassert.deepEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove ○ revive => Noop\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst deletion = tagChange(Change.remove(0, 1), tag1);\n\t\t\t\tconst insertion = tagRollbackInverse(\n\t\t\t\t\tChange.revive(0, 1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\ttag2,\n\t\t\t\t\ttag1,\n\t\t\t\t);\n\t\t\t\tconst actual = shallowCompose([deletion, insertion]);\n\t\t\t\tassertChangesetsEqual(actual, cases.no_change);\n\t\t\t}));\n\n\t\tit(\"insert ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insert = Change.insert(0, 2);\n\t\t\t\tconst modify = Change.modify(0, TestChange.mint([], 42));\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(1, brand(0), { changes: TestChange.mint([], 42) }),\n\t\t\t\t\tMark.insert(1, brand(1)),\n\t\t\t\t];\n\t\t\t\tconst actual = compose([makeAnonChange(insert), makeAnonChange(modify)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"insert ○ remove ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst insertMark = Mark.insert(2, brand(0));\n\t\t\t\tconst insert = tagChange([insertMark], tag1);\n\t\t\t\tconst del = tagChange([Mark.remove(2, brand(1))], tag2);\n\t\t\t\tconst modify = tagChange(\n\t\t\t\t\t[Mark.modify(changes, { revision: tag2, localId: brand(1) })],\n\t\t\t\t\ttag3,\n\t\t\t\t);\n\t\t\t\tconst actual = compose([insert, del, modify], revInfos);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\t\tMark.remove(1, brand(1), { revision: tag2 }),\n\t\t\t\t\t\t{ changes },\n\t\t\t\t\t),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { revision: tag1, localId: brand(1) }),\n\t\t\t\t\t\tMark.remove(1, brand(2), { revision: tag2 }),\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"transient revive ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst inputId: ChangeAtomId = {\n\t\t\t\t\trevision: tag1,\n\t\t\t\t\tlocalId: brand(0),\n\t\t\t\t};\n\t\t\t\tconst outputId: ChangeAtomId = {\n\t\t\t\t\trevision: tag2,\n\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t};\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst transientRevive = [Mark.remove(1, outputId, { cellId: inputId })];\n\t\t\t\tconst modify = [Mark.modify(changes, outputId)];\n\t\t\t\tconst expected = [Mark.remove(1, outputId, { cellId: inputId, changes })];\n\t\t\t\tconst actual = compose(\n\t\t\t\t\t[makeAnonChange(transientRevive), makeAnonChange(modify)],\n\t\t\t\t\trevInfos,\n\t\t\t\t);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"transient insert ○ revive & modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst transientDetach: ChangeAtomId = {\n\t\t\t\t\trevision: tag2,\n\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t};\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst insert = [\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\t\tMark.remove(1, brand(1), { revision: tag2 }),\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tconst revive = [Mark.revive(1, transientDetach, { changes })];\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(1, { revision: tag1, localId: brand(0) }, { changes }),\n\t\t\t\t];\n\t\t\t\tconst actual = compose([makeAnonChange(insert), makeAnonChange(revive)], revInfos);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"modify insert ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst childChangeA = TestChange.mint([0], 1);\n\t\t\t\tconst childChangeB = TestChange.mint([0, 1], 2);\n\t\t\t\tconst childChangeAB = TestChange.compose(childChangeA, childChangeB);\n\t\t\t\tconst insert = [\n\t\t\t\t\tMark.insert(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ localId: defaultInsertId, revision: tag1 },\n\t\t\t\t\t\t{ changes: childChangeA },\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tconst modify = Change.modify(0, childChangeB);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ localId: defaultInsertId, revision: tag1 },\n\t\t\t\t\t\t{ changes: childChangeAB },\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tconst actual = compose([tagChange(insert, tag1), tagChange(modify, tag2)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst deletion = Change.remove(0, 3);\n\t\t\t\tconst childChange = TestChange.mint([0, 1], 2);\n\t\t\t\tconst modify = Change.modify(0, childChange);\n\t\t\t\tconst expected = [Mark.remove(3, brand(0)), Mark.modify(childChange)];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(deletion), makeAnonChange(modify)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"revive ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst revive = Change.revive(0, 3, { revision: tag1, localId: brand(0) });\n\t\t\t\tconst changes = TestChange.mint([0, 1], 2);\n\t\t\t\tconst modify = Change.modify(0, changes);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(1, { revision: tag1, localId: brand(0) }, { changes }),\n\t\t\t\t\tMark.revive(2, { revision: tag1, localId: brand(1) }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(revive), makeAnonChange(modify)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"revive and modify ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst childChangeA = TestChange.mint([0], 1);\n\t\t\t\tconst childChangeB = TestChange.mint([0, 1], 2);\n\t\t\t\tconst childChangeAB = TestChange.compose(childChangeA, childChangeB);\n\t\t\t\tconst revive = [\n\t\t\t\t\tMark.revive(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t{ changes: childChangeA },\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tconst modify = Change.modify(0, childChangeB);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t{ changes: childChangeAB },\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tconst actual = compose([makeAnonChange(revive), makeAnonChange(modify)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"modify ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst childChangeA = TestChange.mint([0], 1);\n\t\t\t\tconst childChangeB = TestChange.mint([0, 1], 2);\n\t\t\t\tconst childChangeAB = TestChange.compose(childChangeA, childChangeB);\n\t\t\t\tconst modifyA = [Mark.modify(childChangeA)];\n\t\t\t\tconst modifyB = [Mark.modify(childChangeB)];\n\t\t\t\tconst expected = [Mark.modify(childChangeAB)];\n\t\t\t\tconst actual = compose([makeAnonChange(modifyA), makeAnonChange(modifyB)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"Remove and modify ○ transient revive\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst changes = TestChange.mint([0], 1);\n\t\t\t\tconst cellId: ChangeAtomId = { revision: tag1, localId: brand(0) };\n\t\t\t\tconst del = tagChange([Mark.remove(1, cellId, { changes })], tag1);\n\t\t\t\tconst transient = tagChange([Mark.remove(1, brand(1), { cellId })], tag2);\n\n\t\t\t\tconst composed = compose([del, transient]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.remove(1, { revision: tag2, localId: brand(1) }, { changes }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t}));\n\n\t\tit(\"Transient insert ○ transient revive\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insert = tagChange(\n\t\t\t\t\t[Mark.attachAndDetach(Mark.insert(1, brand(0)), Mark.remove(1, brand(1)))],\n\t\t\t\t\ttag1,\n\t\t\t\t);\n\n\t\t\t\tconst revive = tagChange(\n\t\t\t\t\t[Mark.remove(1, brand(0), { cellId: { revision: tag1, localId: brand(1) } })],\n\t\t\t\t\ttag2,\n\t\t\t\t);\n\n\t\t\t\tconst composed = compose([insert, revive]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { revision: tag1, localId: brand(0) }, { revision: tag1 }),\n\t\t\t\t\t\tMark.remove(1, brand(0), { revision: tag2 }),\n\t\t\t\t\t),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t}));\n\n\t\tit(\"insert ○ remove (within insert)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insert = tagChange(Change.insert(0, 3, brand(1)), tag1);\n\t\t\t\tconst deletion = tagChange(Change.remove(1, 1), tag2);\n\t\t\t\tconst actual = shallowCompose([insert, deletion]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(1, { localId: brand(1), revision: tag1 }),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { localId: brand(2), revision: tag1 }),\n\t\t\t\t\t\tMark.remove(1, brand(0), { revision: tag2 }),\n\t\t\t\t\t),\n\t\t\t\t\tMark.insert(1, { localId: brand(3), revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"insert ○ move (within insert)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insert = Change.insert(0, 3, brand(1));\n\t\t\t\tconst move = Change.move(1, 1, 0);\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(insert), makeAnonChange(move)]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.moveIn(1, brand(0)),\n\t\t\t\t\tMark.insert(1, { localId: brand(1) }),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { localId: brand(2) }),\n\t\t\t\t\t\tMark.moveOut(1, brand(0)),\n\t\t\t\t\t),\n\t\t\t\t\tMark.insert(1, { localId: brand(3) }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"insert ○ remove (across inserts)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insert = [\n\t\t\t\t\tMark.insert(2, { localId: brand(1), revision: tag1 }),\n\t\t\t\t\tMark.insert(2, { localId: brand(3), revision: tag2 }),\n\t\t\t\t\tMark.insert(2, { localId: brand(5), revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tconst deletion = tagChange(Change.remove(1, 4), tag2);\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(insert), deletion], revInfos);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(1, { localId: brand(1), revision: tag1 }),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { localId: brand(2), revision: tag1 }),\n\t\t\t\t\t\tMark.remove(1, brand(0), { revision: tag2 }),\n\t\t\t\t\t),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(2, { localId: brand(3), revision: tag2 }),\n\t\t\t\t\t\tMark.remove(2, brand(1), { revision: tag2 }),\n\t\t\t\t\t),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { localId: brand(5), revision: tag1 }),\n\t\t\t\t\t\tMark.remove(1, brand(3), { revision: tag2 }),\n\t\t\t\t\t),\n\t\t\t\t\tMark.insert(1, { localId: brand(6), revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"insert ○ move (across inserts)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insert = [\n\t\t\t\t\tMark.insert(2, { localId: brand(1), revision: tag1 }),\n\t\t\t\t\tMark.insert(2, { localId: brand(3), revision: tag2 }),\n\t\t\t\t\tMark.insert(2, { localId: brand(5), revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tconst move = Change.move(1, 4, 0);\n\t\t\t\tconst actual = shallowCompose(\n\t\t\t\t\t[makeAnonChange(insert), makeAnonChange(move)],\n\t\t\t\t\trevInfos,\n\t\t\t\t);\n\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.moveIn(4, brand(0)),\n\t\t\t\t\tMark.insert(1, { localId: brand(1), revision: tag1 }),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { localId: brand(2), revision: tag1 }),\n\t\t\t\t\t\tMark.moveOut(1, brand(0)),\n\t\t\t\t\t),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(2, { localId: brand(3), revision: tag2 }),\n\t\t\t\t\t\tMark.moveOut(2, brand(1)),\n\t\t\t\t\t),\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.insert(1, { localId: brand(5), revision: tag1 }),\n\t\t\t\t\t\tMark.moveOut(1, brand(3)),\n\t\t\t\t\t),\n\t\t\t\t\tMark.insert(1, { localId: brand(6), revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"modify ○ remove\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst changes = TestChange.mint([0, 1], 2);\n\t\t\t\tconst modify = Change.modify(0, changes);\n\t\t\t\tconst deletion = Change.remove(0, 1);\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(modify), makeAnonChange(deletion)]);\n\t\t\t\tconst expected = [Mark.remove(1, brand(0), { changes })];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove ○ remove\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\t// Removes ABC-----IJKLM\n\t\t\t\tconst removeA = [Mark.remove(3, brand(0)), { count: 5 }, Mark.remove(5, brand(3))];\n\t\t\t\t// Removes DEFG--OP\n\t\t\t\tconst removeB = [Mark.remove(4, brand(0)), { count: 2 }, Mark.remove(2, brand(4))];\n\t\t\t\tconst actual = shallowCompose([tagChange(removeA, tag1), tagChange(removeB, tag2)]);\n\t\t\t\t// Removes ABCDEFG-IJKLM-OP\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.remove(3, brand(0), { revision: tag1 }),\n\t\t\t\t\tMark.remove(4, brand(0), { revision: tag2 }),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.remove(5, brand(3), { revision: tag1 }),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.remove(2, brand(4), { revision: tag2 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"revive ○ remove\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\t// Revive ABCDE\n\t\t\t\tconst revive = Change.revive(0, 5, { revision: tag1, localId: brand(0) });\n\t\t\t\t// Remove _B_DEF\n\t\t\t\tconst deletion = [\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.remove(1, brand(0)),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.remove(3, brand(1)),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(revive), tagChange(deletion, tag2)]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\tMark.remove(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag2, localId: brand(0) },\n\t\t\t\t\t\t{ cellId: { revision: tag1, localId: brand(1) } },\n\t\t\t\t\t),\n\t\t\t\t\tMark.revive(1, { revision: tag1, localId: brand(2) }),\n\t\t\t\t\tMark.remove(\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t{ revision: tag2, localId: brand(1) },\n\t\t\t\t\t\t{ cellId: { revision: tag1, localId: brand(3) } },\n\t\t\t\t\t),\n\t\t\t\t\tMark.remove(1, brand(3), { revision: tag2 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"revive and modify ○ remove\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst changes = TestChange.mint([0, 1], 2);\n\t\t\t\tconst detachEvent: ChangeAtomId = { revision: tag1, localId: brand(0) };\n\t\t\t\tconst revive = [Mark.revive(1, detachEvent, { changes })];\n\t\t\t\tconst deletion = [Mark.remove(2, brand(0))];\n\t\t\t\tconst actual = shallowCompose([tagChange(revive, tag2), tagChange(deletion, tag3)]);\n\t\t\t\tconst expected: TestChangeset = [\n\t\t\t\t\tMark.remove(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ localId: brand(0), revision: tag3 },\n\t\t\t\t\t\t{ cellId: detachEvent, changes },\n\t\t\t\t\t),\n\t\t\t\t\tMark.remove(1, { localId: brand(1), revision: tag3 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"modify ○ insert\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst childChange = TestChange.mint([0, 1], 2);\n\t\t\t\tconst modify = Change.modify(0, childChange);\n\t\t\t\tconst insert = Change.insert(0, 1, brand(2));\n\t\t\t\tconst expected = [Mark.insert(1, brand(2)), Mark.modify(childChange)];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(modify), makeAnonChange(insert)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove ○ insert\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst deletion = Change.remove(0, 3);\n\t\t\t\tconst insert = Change.insert(0, 1, brand(2));\n\t\t\t\t// TODO: test with merge-right policy as well\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(1, { localId: brand(2), revision: tag2 }),\n\t\t\t\t\tMark.remove(3, brand(0), { revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([tagChange(deletion, tag1), tagChange(insert, tag2)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"revive ○ insert\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst revive = Change.revive(0, 5, { revision: tag1, localId: brand(0) });\n\t\t\t\tconst insert = Change.insert(0, 1, brand(2));\n\t\t\t\t// TODO: test with merge-right policy as well\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(1, brand(2)),\n\t\t\t\t\tMark.revive(5, { revision: tag1, localId: brand(0) }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(revive), makeAnonChange(insert)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"insert ○ insert\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insertA = [\n\t\t\t\t\tMark.insert(1, brand(1), { revision: tag1 }),\n\t\t\t\t\t{ count: 2 },\n\t\t\t\t\tMark.insert(2, brand(2), { revision: tag2 }),\n\t\t\t\t];\n\n\t\t\t\tconst insertB = [\n\t\t\t\t\tMark.insert(1, brand(4), { revision: tag3 }),\n\t\t\t\t\t{ count: 4 },\n\t\t\t\t\tMark.insert(1, brand(5), { revision: tag4 }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose(\n\t\t\t\t\t[makeAnonChange(insertA), makeAnonChange(insertB)],\n\t\t\t\t\trevInfos,\n\t\t\t\t);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.insert(1, brand(4), { revision: tag3 }),\n\t\t\t\t\tMark.insert(1, brand(1), { revision: tag1 }),\n\t\t\t\t\t{ count: 2 },\n\t\t\t\t\tMark.insert(1, brand(2), { revision: tag2 }),\n\t\t\t\t\tMark.insert(1, brand(5), { revision: tag4 }),\n\t\t\t\t\tMark.insert(1, brand(3), { revision: tag2 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"modify ○ revive\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst childChange = TestChange.mint([0, 1], 2);\n\t\t\t\tconst modify = Change.modify(0, childChange);\n\t\t\t\tconst revive = Change.revive(0, 2, { revision: tag1, localId: brand(0) });\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(2, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\tMark.modify(childChange),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(modify), makeAnonChange(revive)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove ○ revive (different earlier nodes)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst deletion = tagChange(Change.remove(0, 2), tag1);\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag1, id: brand(0), count: 2, offset: 0 },\n\t\t\t\t];\n\t\t\t\tconst revive = makeAnonChange([\n\t\t\t\t\tMark.revive(2, { revision: tag2, localId: brand(0), lineage }),\n\t\t\t\t\tMark.tomb(tag1, brand(0), 2),\n\t\t\t\t]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(2, { revision: tag2, localId: brand(0), lineage }),\n\t\t\t\t\tMark.remove(2, brand(0), { revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([deletion, revive]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove ○ revive (different in-between nodes)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst deletion = tagChange(Change.remove(0, 2), tag1);\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag1, id: brand(0), count: 2, offset: 1 },\n\t\t\t\t];\n\t\t\t\tconst revive = makeAnonChange([\n\t\t\t\t\tMark.tomb(tag1),\n\t\t\t\t\tMark.revive(2, { revision: tag2, localId: brand(0), lineage }),\n\t\t\t\t\tMark.tomb(tag1, brand(1)),\n\t\t\t\t]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.remove(1, brand(0), { revision: tag1 }),\n\t\t\t\t\tMark.revive(2, { revision: tag2, localId: brand(0), lineage }),\n\t\t\t\t\tMark.remove(1, brand(1), { revision: tag1 }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([deletion, revive]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove ○ revive (different later nodes)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst deletion = tagChange(Change.remove(0, 2), tag1);\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag1, id: brand(0), count: 2, offset: 2 },\n\t\t\t\t];\n\t\t\t\tconst revive = makeAnonChange([\n\t\t\t\t\tMark.tomb(tag1, brand(0), 2),\n\t\t\t\t\tMark.revive(2, { revision: tag2, localId: brand(0), lineage }),\n\t\t\t\t]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.remove(2, brand(0), { revision: tag1 }),\n\t\t\t\t\tMark.revive(2, { revision: tag2, localId: brand(0), lineage }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([deletion, revive]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove1 ○ remove2 ○ revive (remove1)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst remove1 = Change.remove(1, 3);\n\t\t\t\tconst remove2 = Change.remove(0, 2);\n\t\t\t\t// The revive needs lineage to describe the precise gap in which it is reviving the nodes.\n\t\t\t\t// Such lineage would normally be acquired by rebasing the revive over the second remove.\n\t\t\t\tconst revive = [\n\t\t\t\t\tMark.tomb(tag2),\n\t\t\t\t\tMark.tomb(tag1),\n\t\t\t\t\tMark.revive(1, {\n\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(0), count: 2, offset: 1 }],\n\t\t\t\t\t}),\n\t\t\t\t\tMark.tomb(tag1, brand(2)),\n\t\t\t\t\tMark.tomb(tag2, brand(1)),\n\t\t\t\t];\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.remove(1, brand(0), { revision: tag2 }),\n\t\t\t\t\tMark.remove(1, brand(0), { revision: tag1 }),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.remove(1, brand(2), { revision: tag1 }),\n\t\t\t\t\tMark.remove(1, brand(1), { revision: tag2 }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([\n\t\t\t\t\ttagChange(remove1, tag1),\n\t\t\t\t\ttagChange(remove2, tag2),\n\t\t\t\t\ttagChange(revive, tag3),\n\t\t\t\t]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"remove1 ○ remove2 ○ revive (remove2)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst remove1 = Change.remove(1, 3);\n\t\t\t\tconst remove2 = Change.remove(0, 2);\n\t\t\t\tconst revive = [Mark.revive(2, { revision: tag2, localId: brand(0) })];\n\t\t\t\tconst expected = [{ count: 1 }, Mark.remove(3, brand(0), { revision: tag1 })];\n\t\t\t\tconst actual = shallowCompose([\n\t\t\t\t\ttagChange(remove1, tag1),\n\t\t\t\t\ttagChange(remove2, tag2),\n\t\t\t\t\ttagChange(revive, tag3),\n\t\t\t\t]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"reviveAA ○ reviveB => BAA\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag2, id: brand(0), count: 1, offset: 1 },\n\t\t\t\t];\n\t\t\t\tconst reviveAA = [\n\t\t\t\t\tMark.tomb(tag2),\n\t\t\t\t\tMark.revive(2, { revision: tag1, localId: brand(1), lineage }),\n\t\t\t\t];\n\t\t\t\tconst reviveB = Change.revive(0, 1, { revision: tag2, localId: brand(0) });\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\tMark.revive(2, { revision: tag1, localId: brand(1), lineage }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(reviveAA), makeAnonChange(reviveB)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"reviveA ○ reviveBB => BAB\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag2, id: brand(0), count: 2, offset: 1 },\n\t\t\t\t];\n\t\t\t\tconst reviveA = [\n\t\t\t\t\tMark.tomb(tag2),\n\t\t\t\t\tMark.revive(1, { revision: tag1, localId: brand(1), lineage }),\n\t\t\t\t\tMark.tomb(tag2, brand(1)),\n\t\t\t\t];\n\t\t\t\tconst reviveB1 = Change.revive(0, 1, { revision: tag2, localId: brand(0) });\n\t\t\t\tconst reviveB2 = Change.revive(2, 1, { revision: tag2, localId: brand(1) });\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\tMark.revive(1, { revision: tag1, localId: brand(1), lineage }),\n\t\t\t\t\tMark.revive(1, { revision: tag2, localId: brand(1) }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([\n\t\t\t\t\tmakeAnonChange(reviveA),\n\t\t\t\t\tmakeAnonChange(reviveB1),\n\t\t\t\t\tmakeAnonChange(reviveB2),\n\t\t\t\t]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"reviveAA ○ reviveB => AAB\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag2, id: brand(0), count: 1, offset: 0 },\n\t\t\t\t];\n\t\t\t\tconst reviveA = [\n\t\t\t\t\tMark.revive(2, { revision: tag1, localId: brand(0), lineage }),\n\t\t\t\t\tMark.tomb(tag2),\n\t\t\t\t];\n\t\t\t\tconst reviveB = Change.revive(2, 1, { revision: tag2, localId: brand(0) });\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(2, { revision: tag1, localId: brand(0), lineage }),\n\t\t\t\t\tMark.revive(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(reviveA), makeAnonChange(reviveB)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"revive ○ redundant revive\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst reviveA = Change.revive(0, 2, { revision: tag1, localId: brand(0) });\n\t\t\t\tconst reviveB = Change.redundantRevive(0, 2, { revision: tag1, localId: brand(0) });\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.revive(2, { revision: tag1, localId: brand(0) }, { revision: tag2 }),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([tagChange(reviveA, tag2), makeAnonChange(reviveB)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move = Change.move(0, 1, 2);\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst modify = Change.modify(1, changes);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.moveOut(1, brand(0), { changes }),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveIn(1, brand(0)),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(move), makeAnonChange(modify)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ modify and return\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move = [Mark.moveIn(1, brand(0)), { count: 1 }, Mark.moveOut(1, brand(0))];\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst moveBack = [\n\t\t\t\t\tMark.moveOut(1, brand(0), { changes }),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.returnTo(1, brand(0), { revision: tag1, localId: brand(0) }),\n\t\t\t\t];\n\t\t\t\tconst expected = [Mark.tomb(tag1), { count: 1 }, Mark.modify(changes)];\n\t\t\t\tconst actual = shallowCompose([\n\t\t\t\t\ttagChange(move, tag1),\n\t\t\t\t\ttagRollbackInverse(moveBack, tag3, tag1),\n\t\t\t\t]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ remove\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move = Change.move(1, 1, 4, brand(0));\n\t\t\t\tconst deletion = Change.remove(3, 1, brand(1));\n\t\t\t\tconst expected = [\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveOut(1, brand(0)),\n\t\t\t\t\t{ count: 2 },\n\t\t\t\t\tMark.attachAndDetach(Mark.moveIn(1, brand(0)), Mark.remove(1, brand(1))),\n\t\t\t\t];\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(move), makeAnonChange(deletion)]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"return ○ return\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst cellId1: ChangeAtomId = { revision: tag2, localId: brand(0) };\n\t\t\t\tconst cellId2: ChangeAtomId = { revision: tag3, localId: brand(0) };\n\t\t\t\tconst return1 = tagChange(Change.return(0, 1, 4, cellId1), tag3);\n\t\t\t\tconst return2 = tagChange(Change.return(3, 1, 0, cellId2), tag4);\n\t\t\t\tconst actual = shallowCompose([return1, return2]);\n\n\t\t\t\t// We expect vestigial moves to exist to record that the cell's ID was changed.\n\t\t\t\tconst expected = [\n\t\t\t\t\t{ count: 4 },\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.returnTo(1, { revision: tag3, localId: brand(0) }, cellId1),\n\t\t\t\t\t\tMark.moveOut(1, { revision: tag4, localId: brand(0) }),\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"modify ○ return\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst modify = tagChange(Change.modify(3, changes), tag3);\n\t\t\t\tconst ret = tagChange(\n\t\t\t\t\tChange.return(3, 2, 0, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\ttag4,\n\t\t\t\t);\n\t\t\t\tconst actual = shallowCompose([modify, ret]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.returnTo(\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t{ revision: tag4, localId: brand(0) },\n\t\t\t\t\t\t{ revision: tag1, localId: brand(0) },\n\t\t\t\t\t),\n\t\t\t\t\t{ count: 3 },\n\t\t\t\t\tMark.moveOut(1, brand(0), { revision: tag4, changes }),\n\t\t\t\t\tMark.moveOut(1, brand(1), { revision: tag4 }),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ move with node changes\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move1 = [\n\t\t\t\t\tMark.moveIn(1, brand(0)),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveOut(1, brand(0), { changes: TestChange.mint([], 0) }),\n\t\t\t\t];\n\n\t\t\t\tconst move2 = [\n\t\t\t\t\tMark.moveOut(1, brand(0), { changes: TestChange.mint([0], 1) }),\n\t\t\t\t\t{ count: 2 },\n\t\t\t\t\tMark.moveIn(1, brand(0)),\n\t\t\t\t];\n\n\t\t\t\tconst composed = compose([tagChange(move1, tag1), tagChange(move2, tag2)]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.moveIn(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\t\tMark.moveOut(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\t),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveOut(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tchanges: TestChange.mint([], [0, 1]),\n\t\t\t\t\t\t\tfinalEndpoint: { revision: tag2, localId: brand(0) },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveIn(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag2, localId: brand(0) },\n\t\t\t\t\t\t{ finalEndpoint: { revision: tag1, localId: brand(0) } },\n\t\t\t\t\t),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ move (forward)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move1 = Change.move(0, 1, 2, brand(0));\n\t\t\t\tconst move2 = Change.move(1, 1, 3, brand(1));\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(move1), makeAnonChange(move2)]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.moveOut(1, brand(0), {\n\t\t\t\t\t\tfinalEndpoint: { revision: undefined, localId: brand(1) },\n\t\t\t\t\t}),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.attachAndDetach(Mark.moveIn(1, brand(0)), Mark.moveOut(1, brand(1))),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveIn(1, brand(1), {\n\t\t\t\t\t\tfinalEndpoint: { revision: undefined, localId: brand(0) },\n\t\t\t\t\t}),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ move (back)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move1 = Change.move(2, 1, 1, brand(0));\n\t\t\t\tconst move2 = Change.move(1, 1, 0, brand(1));\n\t\t\t\tconst actual = shallowCompose([makeAnonChange(move1), makeAnonChange(move2)]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.moveIn(1, brand(1), {\n\t\t\t\t\t\tfinalEndpoint: { revision: undefined, localId: brand(0) },\n\t\t\t\t\t}),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.attachAndDetach(Mark.moveIn(1, brand(0)), Mark.moveOut(1, brand(1))),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveOut(1, brand(0), {\n\t\t\t\t\t\tfinalEndpoint: { revision: undefined, localId: brand(1) },\n\t\t\t\t\t}),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ move adjacent to starting position (back and forward)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move1 = Change.move(1, 1, 0);\n\t\t\t\tconst move2 = Change.move(0, 1, 2);\n\t\t\t\tconst actual = shallowCompose([tagChange(move1, tag1), tagChange(move2, tag2)]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.moveIn(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\t\tMark.moveOut(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\t),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveIn(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag2, localId: brand(0) },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfinalEndpoint: { revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\tMark.moveOut(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfinalEndpoint: { revision: tag2, localId: brand(0) },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move ○ move adjacent to starting position (forward and back)\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move1 = Change.move(0, 1, 2);\n\t\t\t\tconst move2 = Change.move(1, 1, 0);\n\t\t\t\tconst actual = shallowCompose([tagChange(move1, tag1), tagChange(move2, tag2)]);\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.moveIn(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag2, localId: brand(0) },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfinalEndpoint: { revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\tMark.moveOut(\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t{ revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfinalEndpoint: { revision: tag2, localId: brand(0) },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.moveIn(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\t\tMark.moveOut(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\t),\n\t\t\t\t];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"adjacent detached modifies 1\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\t// Starting state [A B]\n\t\t\t\t// Revision 1 removes A\n\t\t\t\t// Revision 2 removes B\n\t\t\t\t// Revision 3 modifies A\n\t\t\t\t// Revision 4 modifies B\n\t\t\t\tconst nodeChange1 = \"Change1\";\n\t\t\t\tconst nodeChange2 = \"Change2\";\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag2, id: brand(0), count: 1, offset: 0 },\n\t\t\t\t];\n\t\t\t\tconst detach1: SF.CellId = { revision: tag1, localId: brand(0), lineage };\n\t\t\t\tconst detach2: SF.CellId = { revision: tag2, localId: brand(0) };\n\n\t\t\t\tconst modify1 = [Mark.modify(nodeChange1, detach1), Mark.tomb(tag2)];\n\t\t\t\tconst modify2 = [Mark.modify(nodeChange2, detach2)];\n\t\t\t\tconst actual = shallowCompose([tagChange(modify1, tag3), tagChange(modify2, tag4)]);\n\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.modify(nodeChange1, detach1),\n\t\t\t\t\tMark.modify(nodeChange2, detach2),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"adjacent detached modifies 2\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\t// Starting state [A B]\n\t\t\t\t// Revision 1 removes B\n\t\t\t\t// Revision 2 removes A\n\t\t\t\t// Revision 3 modifies B\n\t\t\t\t// Revision 4 modifies A\n\t\t\t\tconst nodeChange1 = \"Change1\";\n\t\t\t\tconst nodeChange2 = \"Change2\";\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag2, id: brand(0), count: 1, offset: 1 },\n\t\t\t\t];\n\t\t\t\tconst detach1: SF.CellId = { revision: tag1, localId: brand(1), lineage };\n\t\t\t\tconst detach2: SF.CellId = { revision: tag2, localId: brand(0) };\n\n\t\t\t\tconst modify1 = [Mark.tomb(tag2), Mark.modify(nodeChange1, detach1)];\n\t\t\t\tconst modify2 = [Mark.modify(nodeChange2, detach2)];\n\t\t\t\tconst actual = shallowCompose([tagChange(modify1, tag3), tagChange(modify2, tag4)]);\n\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.modify(nodeChange2, detach2),\n\t\t\t\t\tMark.modify(nodeChange1, detach1),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"adjacent detached modifies 3\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\t// Starting state [A B]\n\t\t\t\t// Revision 1 removes A\n\t\t\t\t// Revision 2 removes B\n\t\t\t\t// Revision 3 modifies B\n\t\t\t\t// Revision 4 modifies A\n\t\t\t\tconst nodeChange1 = \"Change1\";\n\t\t\t\tconst nodeChange2 = \"Change2\";\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag2, id: brand(0), count: 1, offset: 0 },\n\t\t\t\t];\n\t\t\t\tconst detach1: SF.CellId = { revision: tag1, localId: brand(0), lineage };\n\t\t\t\tconst detach2: SF.CellId = { revision: tag2, localId: brand(0) };\n\n\t\t\t\tconst modify1 = [Mark.modify(nodeChange1, detach2)];\n\t\t\t\tconst modify2 = [Mark.modify(nodeChange2, detach1), Mark.tomb(tag2)];\n\t\t\t\tconst actual = shallowCompose([tagChange(modify1, tag3), tagChange(modify2, tag4)]);\n\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.modify(nodeChange2, detach1),\n\t\t\t\t\tMark.modify(nodeChange1, detach2),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"adjacent detached modifies 4\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\t// Starting state [A B]\n\t\t\t\t// Revision 1 removes B\n\t\t\t\t// Revision 2 removes A\n\t\t\t\t// Revision 3 modifies A\n\t\t\t\t// Revision 4 modifies B\n\t\t\t\tconst nodeChange1 = \"Change1\";\n\t\t\t\tconst nodeChange2 = \"Change2\";\n\n\t\t\t\tconst lineage: SF.LineageEvent[] = [\n\t\t\t\t\t{ revision: tag2, id: brand(0), count: 1, offset: 1 },\n\t\t\t\t];\n\t\t\t\tconst detach1: SF.CellId = { revision: tag1, localId: brand(1), lineage };\n\t\t\t\tconst detach2: SF.CellId = { revision: tag2, localId: brand(0) };\n\n\t\t\t\tconst modify1 = [Mark.modify(nodeChange1, detach2)];\n\t\t\t\tconst modify2 = [Mark.tomb(tag2), Mark.modify(nodeChange2, detach1)];\n\t\t\t\tconst actual = shallowCompose([tagChange(modify1, tag3), tagChange(modify2, tag4)]);\n\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.modify(nodeChange1, detach2),\n\t\t\t\t\tMark.modify(nodeChange2, detach1),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"move, remove, revive\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move = tagChange(Change.move(1, 1, 0), tag1);\n\t\t\t\tconst del = tagChange(Change.remove(0, 1), tag2);\n\t\t\t\tconst revive = tagChange(\n\t\t\t\t\tChange.revive(0, 1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\ttag3,\n\t\t\t\t);\n\t\t\t\tconst actual = shallowCompose([move, del, revive]);\n\t\t\t\tconst expected = shallowCompose([move]);\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\t// This test leads compose to output a vestigial endpoint.\n\t\tit.skip(\"return-to, remove, move-out\", () => {\n\t\t\tconst returnTo = tagRollbackInverse(\n\t\t\t\t[\n\t\t\t\t\tMark.returnTo(1, brand(0), { revision: tag1, localId: brand(0) }),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveOut(1, brand(0), {\n\t\t\t\t\t\tidOverride: {\n\t\t\t\t\t\t\ttype: SF.DetachIdOverrideType.Redetach,\n\t\t\t\t\t\t\tid: { revision: tag1, localId: brand(0) },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t\ttag3,\n\t\t\t\ttag1,\n\t\t\t);\n\t\t\tconst del = tagChange([Mark.remove(1, brand(0))], tag2);\n\t\t\tconst move = tagChange(\n\t\t\t\t[\n\t\t\t\t\tMark.moveOut(1, brand(0), { cellId: { revision: tag2, localId: brand(0) } }),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.moveIn(1, brand(0)),\n\t\t\t\t],\n\t\t\t\ttag1,\n\t\t\t);\n\t\t\tconst actual = shallowCompose([returnTo, del, move]);\n\t\t\tassertChangesetsEqual(actual, []);\n\t\t});\n\n\t\tit(\"move1, move2, return2\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tfor (const [a, b, c] of [\n\t\t\t\t\t[0, 1, 2],\n\t\t\t\t\t[2, 1, 0],\n\t\t\t\t]) {\n\t\t\t\t\tconst move1 = tagChange(Change.move(a, 1, b > a ? b + 1 : b), tag1);\n\t\t\t\t\tconst move2 = tagChange(Change.move(b, 1, c > b ? c + 1 : c), tag2);\n\t\t\t\t\tconst return2 = tagRollbackInverse(\n\t\t\t\t\t\tChange.return(c, 1, b > c ? b + 1 : b, {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(0),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttag3,\n\t\t\t\t\t\ttag2,\n\t\t\t\t\t);\n\n\t\t\t\t\tconst composed = shallowCompose([move1, move2, return2]);\n\t\t\t\t\tconst expected = shallowCompose(\n\t\t\t\t\t\ta < b\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\tmove1,\n\t\t\t\t\t\t\t\t\tmakeAnonChange([\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag1),\n\t\t\t\t\t\t\t\t\t\tMark.skip(3),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag2),\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\tmove1,\n\t\t\t\t\t\t\t\t\tmakeAnonChange([\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag2),\n\t\t\t\t\t\t\t\t\t\tMark.skip(3),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag1),\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ],\n\t\t\t\t\t);\n\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t}\n\t\t\t}));\n\n\t\tit(\"move1 ○ [return1, move2]\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tfor (const [a, b, c] of [\n\t\t\t\t\t[0, 1, 2],\n\t\t\t\t\t[2, 1, 0],\n\t\t\t\t]) {\n\t\t\t\t\tconst move1 = tagChange(Change.move(a, 1, b > a ? b + 1 : b), tag1);\n\t\t\t\t\tconst return1 = tagRollbackInverse(\n\t\t\t\t\t\tChange.return(b, 1, a > b ? a + 1 : a, {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(0),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttag2,\n\t\t\t\t\t\ttag1,\n\t\t\t\t\t);\n\t\t\t\t\tconst move2 = tagChange(Change.move(a, 1, c > a ? c + 1 : c), tag3);\n\t\t\t\t\tconst part2 = shallowCompose([return1, move2]);\n\t\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t\t[move1, makeAnonChange(part2)],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t{ revision: tag1 },\n\t\t\t\t\t\t\t{ revision: tag2, rollbackOf: tag1 },\n\t\t\t\t\t\t\t{ revision: tag3 },\n\t\t\t\t\t\t],\n\t\t\t\t\t);\n\t\t\t\t\tconst expected = shallowCompose(\n\t\t\t\t\t\ta < b\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\tmove2,\n\t\t\t\t\t\t\t\t\tmakeAnonChange([\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag3),\n\t\t\t\t\t\t\t\t\t\tMark.skip(1),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag1),\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\tmove2,\n\t\t\t\t\t\t\t\t\tmakeAnonChange([\n\t\t\t\t\t\t\t\t\t\tMark.skip(2),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag1),\n\t\t\t\t\t\t\t\t\t\tMark.skip(1),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag3),\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ],\n\t\t\t\t\t);\n\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t}\n\t\t\t}));\n\n\t\tit(\"move1 ○ [return1, move2, move3]\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move1 = tagChange(Change.move(3, 1, 2), tag1);\n\t\t\t\tconst return1 = tagRollbackInverse(\n\t\t\t\t\tChange.return(2, 1, 4, {\n\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\tlocalId: brand(0),\n\t\t\t\t\t}),\n\t\t\t\t\ttag2,\n\t\t\t\t\ttag1,\n\t\t\t\t);\n\t\t\t\tconst move2 = tagChange(Change.move(3, 1, 1), tag3);\n\t\t\t\tconst move3 = tagChange(Change.move(1, 1, 0), tag4);\n\t\t\t\tconst part2 = shallowCompose([return1, move2, move3]);\n\n\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t[move1, makeAnonChange(part2)],\n\t\t\t\t\t[\n\t\t\t\t\t\t{ revision: tag1 },\n\t\t\t\t\t\t{ revision: tag2, rollbackOf: tag1 },\n\t\t\t\t\t\t{ revision: tag3 },\n\t\t\t\t\t\t{ revision: tag4 },\n\t\t\t\t\t],\n\t\t\t\t);\n\n\t\t\t\tconst moveId1: ChangeAtomId = { revision: tag3, localId: brand(0) };\n\t\t\t\tconst moveId2: ChangeAtomId = { revision: tag4, localId: brand(0) };\n\n\t\t\t\tconst [moveOut1, moveIn1] = Mark.move(1, moveId1);\n\t\t\t\tmoveOut1.finalEndpoint = moveId2;\n\n\t\t\t\tconst [moveOut2, moveIn2] = Mark.move(1, moveId2);\n\t\t\t\tmoveIn2.finalEndpoint = moveId1;\n\n\t\t\t\tconst expected = [\n\t\t\t\t\tmoveIn2,\n\t\t\t\t\tMark.skip(1),\n\t\t\t\t\tMark.attachAndDetach(moveIn1, moveOut2),\n\t\t\t\t\tMark.skip(1),\n\t\t\t\t\tMark.tomb(tag1, brand(0)),\n\t\t\t\t\tMark.skip(1),\n\t\t\t\t\tmoveOut1,\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t}));\n\n\t\tit(\"[move1, move2] ○ [return2, move3]\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tfor (const [a, b, c, d] of [\n\t\t\t\t\t[0, 1, 2, 3],\n\t\t\t\t\t[3, 2, 1, 0],\n\t\t\t\t]) {\n\t\t\t\t\tconst move1 = tagChange(Change.move(a, 1, b > a ? b + 1 : b), tag1);\n\t\t\t\t\tconst move2 = tagChange(Change.move(b, 1, c > b ? c + 1 : c), tag2);\n\t\t\t\t\tconst part1 = shallowCompose([move1, move2]);\n\t\t\t\t\tconst return2 = tagRollbackInverse(\n\t\t\t\t\t\tChange.return(c, 1, b > c ? b + 1 : b, {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(0),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttag3,\n\t\t\t\t\t\ttag2,\n\t\t\t\t\t);\n\t\t\t\t\tconst move3 = tagChange(Change.move(b, 1, d > b ? d + 1 : d), tag4);\n\t\t\t\t\tconst part2 = shallowCompose([return2, move3]);\n\t\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t\t[makeAnonChange(part1), makeAnonChange(part2)],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t{ revision: tag1 },\n\t\t\t\t\t\t\t{ revision: tag2 },\n\t\t\t\t\t\t\t{ revision: tag3, rollbackOf: tag2 },\n\t\t\t\t\t\t\t{ revision: tag4 },\n\t\t\t\t\t\t],\n\t\t\t\t\t);\n\t\t\t\t\tconst expected = shallowCompose(\n\t\t\t\t\t\ta < b\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\tmove1,\n\t\t\t\t\t\t\t\t\tmove3,\n\t\t\t\t\t\t\t\t\tmakeAnonChange([\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag1), // a\n\t\t\t\t\t\t\t\t\t\tMark.skip(1),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag4), // b\n\t\t\t\t\t\t\t\t\t\tMark.skip(1),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag2), // c\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\tmove1,\n\t\t\t\t\t\t\t\t\tmove3,\n\t\t\t\t\t\t\t\t\tmakeAnonChange([\n\t\t\t\t\t\t\t\t\t\tMark.skip(1), // d\n\t\t\t\t\t\t\t\t\t\tMark.skip(1),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag2), // c\n\t\t\t\t\t\t\t\t\t\tMark.skip(1),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag4), // b\n\t\t\t\t\t\t\t\t\t\tMark.skip(1),\n\t\t\t\t\t\t\t\t\t\tMark.tomb(tag1), // a\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t ],\n\t\t\t\t\t);\n\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t}\n\t\t\t}));\n\n\t\tit(\"[move1, move2] ○ return1\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst move1 = tagChange(Change.move(0, 1, 2), tag1);\n\t\t\t\tconst move2 = tagChange(Change.move(1, 1, 3), tag2);\n\t\t\t\tconst return1 = tagChange(\n\t\t\t\t\tChange.return(2, 1, 0, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\ttag3,\n\t\t\t\t);\n\n\t\t\t\tconst composed = shallowCompose([move1, move2, return1]);\n\t\t\t\tconst expected = [\n\t\t\t\t\t{ count: 2 },\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.moveIn(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t\t\tMark.moveOut(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\t),\n\t\t\t\t\t{ count: 1 },\n\t\t\t\t\tMark.attachAndDetach(\n\t\t\t\t\t\tMark.moveIn(1, { revision: tag2, localId: brand(0) }),\n\t\t\t\t\t\tMark.moveOut(1, { revision: tag3, localId: brand(0) }),\n\t\t\t\t\t),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t}));\n\n\t\tit(\"remove (rollback) ○ insert\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst insertA = tagChange([Mark.insert(1, brand(0))], tag1);\n\t\t\t\tconst removeB = tagRollbackInverse([Mark.remove(1, brand(0))], tag3, tag2);\n\t\t\t\tconst composed = shallowCompose([removeB, insertA]);\n\n\t\t\t\t// B is the inverse of a new attach. Since that new attach comes after A (temporally),\n\t\t\t\t// its tiebreak policy causes the cell to come before A's insert (spatially).\n\t\t\t\t// When composing the rollback with A's insert, the remove should come before the insert,\n\t\t\t\t// even though A's insert has a tiebreak policy which puts it before other new cells.\n\t\t\t\tconst expected = [\n\t\t\t\t\tMark.remove(1, { revision: tag3, localId: brand(0) }),\n\t\t\t\t\tMark.insert(1, { revision: tag1, localId: brand(0) }),\n\t\t\t\t];\n\n\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t}));\n\n\t\tit(\"move-in+remove ○ modify\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst [mo, mi] = Mark.move(1, { revision: tag1, localId: brand(1) });\n\t\t\t\tconst attachDetach = Mark.attachAndDetach(\n\t\t\t\t\tmi,\n\t\t\t\t\tMark.remove(1, { revision: tag2, localId: brand(2) }),\n\t\t\t\t);\n\t\t\t\tconst base = makeAnonChange([mo, attachDetach]);\n\t\t\t\tconst modify = tagChange(\n\t\t\t\t\t[Mark.modify(changes, { revision: tag2, localId: brand(2) })],\n\t\t\t\t\ttag3,\n\t\t\t\t);\n\t\t\t\tconst actual = shallowCompose([base, modify]);\n\t\t\t\tconst expected = [{ ...mo, changes }, attachDetach];\n\t\t\t\tassertChangesetsEqual(actual, expected);\n\t\t\t}));\n\n\t\tit(\"effect management for [move, modify, move]\", () =>\n\t\t\twithConfig(() => {\n\t\t\t\tconst changes = TestChange.mint([], 42);\n\t\t\t\tconst [mo, mi] = Mark.move(1, brand(0));\n\t\t\t\tconst move = tagChange([mo, mi], tag1);\n\t\t\t\tconst modify = tagChange([Mark.modify(changes)], tag2);\n\t\t\t\tconst moveBack = tagChange([mi, mo], tag3);\n\t\t\t\tconst childComposer = (\n\t\t\t\t\tchange1: TestChange | undefined,\n\t\t\t\t\tchange2: TestChange | undefined,\n\t\t\t\t): TestChange => {\n\t\t\t\t\tassert(change1 === undefined || change2 === undefined);\n\t\t\t\t\tconst nodeChange = change1 ?? change2 ?? fail(\"Expected a node change\");\n\t\t\t\t\tassert.deepEqual(nodeChange, changes);\n\t\t\t\t\treturn nodeChange;\n\t\t\t\t};\n\t\t\t\tcompose([move, modify, moveBack], undefined, childComposer);\n\t\t\t}));\n\n\t\tdescribe(\"empty cell ordering\", () => {\n\t\t\tconst tombA = Mark.tomb(tag1, brand(1));\n\t\t\tconst tombB = Mark.tomb(tag1, brand(2));\n\t\t\tconst tombC = Mark.tomb(tag1, brand(3));\n\n\t\t\tdescribe(\"cells named in the same earlier revision\", () => {\n\t\t\t\tit(\"A ○ A\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst adjacentCells: SF.IdRange[] = [{ id: brand(1), count: 1 }];\n\t\t\t\t\t\tconst markA = Mark.modify(TestChange.mint([], 1), {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\tadjacentCells,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markB = Mark.modify(TestChange.mint([1], 2), {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\tadjacentCells,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markA], tag2);\n\t\t\t\t\t\tconst changeY = tagChange([markB], tag3);\n\t\t\t\t\t\tconst composedAB = compose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [\n\t\t\t\t\t\t\tMark.modify(TestChange.mint([], [1, 2]), {\n\t\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t\tadjacentCells,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t];\n\t\t\t\t\t\tassertChangesetsEqual(composedAB, expected);\n\t\t\t\t\t}));\n\n\t\t\t\tit(\"A ○ B\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst adjacentCells: SF.IdRange[] = [{ id: brand(1), count: 2 }];\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\tadjacentCells,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\tadjacentCells,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeA = tagChange([markA, tombB], tag2);\n\t\t\t\t\t\tconst changeB = tagChange([tombA, markB], tag3);\n\t\t\t\t\t\tconst composedAB = shallowCompose([changeA, changeB]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedAB, expected);\n\t\t\t\t\t}));\n\n\t\t\t\tit(\"B ○ A\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst adjacentCells: SF.IdRange[] = [{ id: brand(1), count: 2 }];\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\tadjacentCells,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\tadjacentCells,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeA = tagChange([markA, tombB], tag2);\n\t\t\t\t\t\tconst changeB = tagChange([tombA, markB], tag3);\n\t\t\t\t\t\tconst composedBA = shallowCompose([changeB, changeA]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedBA, expected);\n\t\t\t\t\t}));\n\t\t\t});\n\n\t\t\tdescribe(\"cells named in different earlier revisions\", () => {\n\t\t\t\tit(\"older A ○ newer B\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(2), count: 1, offset: 0 }],\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markA, Mark.tomb(tag2, brand(2))], tag3);\n\t\t\t\t\t\tconst changeY = tagChange([markB], tag4);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\n\t\t\t\tit(\"newer A ○ older B\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(1), count: 1, offset: 1 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markA], tag3);\n\t\t\t\t\t\tconst changeY = tagChange([Mark.tomb(tag2, brand(1)), markB], tag4);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\n\t\t\t\tit(\"older B ○ newer A\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(1), count: 1, offset: 1 }],\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([Mark.tomb(tag2, brand(1)), markB], tag3);\n\t\t\t\t\t\tconst changeY = tagChange([markA], tag4);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\n\t\t\t\tit(\"newer B ○ older A\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(2), count: 1, offset: 0 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markB], tag3);\n\t\t\t\t\t\tconst changeY = tagChange([markA, Mark.tomb(tag2, brand(2))], tag4);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\t\t\t});\n\n\t\t\tdescribe(\"cell for later change named in base\", () => {\n\t\t\t\tit(\"ABC ○ B\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst changeX = tagChange(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tMark.modify(\"A\", { revision: tag1, localId: brand(1) }),\n\t\t\t\t\t\t\t\tMark.remove(\n\t\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\t\t{ revision: tag2, localId: brand(2) },\n\t\t\t\t\t\t\t\t\t{ cellId: { revision: tag1, localId: brand(2) } },\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tMark.modify(\"C\", { revision: tag1, localId: brand(3) }),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttag2,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\tadjacentCells: [{ id: brand(2), count: 1 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeY = tagChange([tombA, markB, tombC], tag3);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [\n\t\t\t\t\t\t\tMark.modify(\"A\", { revision: tag1, localId: brand(1) }),\n\t\t\t\t\t\t\tMark.remove(\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\t{ revision: tag2, localId: brand(2) },\n\t\t\t\t\t\t\t\t{ cellId: { revision: tag1, localId: brand(2) }, changes: \"B\" },\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tMark.modify(\"C\", { revision: tag1, localId: brand(3) }),\n\t\t\t\t\t\t];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\t\t\t});\n\n\t\t\tdescribe(\"both cells named in their own change\", () => {\n\t\t\t\tit(\"B ○ A - no lineage\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst cellA = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst cellB = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag2,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t\t\t[makeAnonChange([cellB]), makeAnonChange([cellA])],\n\t\t\t\t\t\t\t[{ revision: tag2 }, { revision: tag2 }],\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst expected = [cellA, cellB];\n\t\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t\t}));\n\n\t\t\t\t// TODO: make this pass with CellOrderingMethod.Lineage\n\t\t\t\tskipOnLineageMethod(config, \"A ○ C - with lineage for B on both marks\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst cellA = Mark.remove(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcellId: {\n\t\t\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t\t\tlineage: [\n\t\t\t\t\t\t\t\t\t\t{ revision: tag2, id: brand(2), count: 1, offset: 0 },\n\t\t\t\t\t\t\t\t\t],\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\tconst cellC = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag4,\n\t\t\t\t\t\t\tlocalId: brand(3),\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(2), count: 1, offset: 1 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t\t\t[makeAnonChange([cellA, tombB]), makeAnonChange([tombB, cellC])],\n\t\t\t\t\t\t\t[{ revision: tag3 }, { revision: tag4 }],\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst expected = [cellA, tombB, cellC];\n\t\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tit(\"C ○ A - with lineage for B on both marks\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst cellA = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag4,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(2), count: 1, offset: 0 }],\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst cellC = Mark.remove(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcellId: {\n\t\t\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t\t\tlineage: [\n\t\t\t\t\t\t\t\t\t\t{ revision: tag2, id: brand(2), count: 1, offset: 0 },\n\t\t\t\t\t\t\t\t\t],\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\n\t\t\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t\t\t[makeAnonChange([tombB, cellC]), makeAnonChange([cellA, tombB])],\n\t\t\t\t\t\t\t[{ revision: tag3 }, { revision: tag4 }],\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst expected = [cellA, tombB, cellC];\n\t\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t\t}));\n\n\t\t\t\t// TODO: make this pass with CellOrderingMethod.Lineage\n\t\t\t\tskipOnLineageMethod(config, \"A ○ C - with lineage for B on C\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst cellA = Mark.remove(1, { revision: tag2, localId: brand(1) });\n\t\t\t\t\t\tconst cellC = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\tlocalId: brand(3),\n\t\t\t\t\t\t\tlineage: [{ revision: tag1, id: brand(2), count: 1, offset: 1 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t\t\t[makeAnonChange([cellA]), makeAnonChange([tombB, cellC])],\n\t\t\t\t\t\t\t[{ revision: tag2 }, { revision: tag3 }],\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst expected = [cellA, tombB, cellC];\n\t\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tit(\"C ○ A - with lineage for B on C\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst cellA = Mark.modify(\"A\", { revision: tag2, localId: brand(1) });\n\t\t\t\t\t\tconst cellC = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\tlocalId: brand(3),\n\t\t\t\t\t\t\tlineage: [{ revision: tag1, id: brand(2), count: 1, offset: 1 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst composed = shallowCompose(\n\t\t\t\t\t\t\t[makeAnonChange([tombB, cellC]), makeAnonChange([cellA])],\n\t\t\t\t\t\t\t[{ revision: tag2 }, { revision: tag3 }],\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst expected = [cellA, tombB, cellC];\n\t\t\t\t\t\tassertChangesetsEqual(composed, expected);\n\t\t\t\t\t}));\n\t\t\t});\n\n\t\t\tdescribe(\"both cells named in earlier change\", () => {\n\t\t\t\t// This is the only test that makes sense because the earlier change must include marks\n\t\t\t\t// for all the cells that it names.\n\t\t\t\tit(\"ABC ○ B\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markABC = Mark.remove(3, { revision: tag1, localId: brand(1) });\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\tadjacentCells: [{ id: brand(1), count: 3 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markABC], tag1);\n\t\t\t\t\t\tconst changeY = tagChange([tombA, markB, tombC], tag2);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [\n\t\t\t\t\t\t\tMark.remove(1, { revision: tag1, localId: brand(1) }),\n\t\t\t\t\t\t\tMark.remove(1, { revision: tag1, localId: brand(2) }, { changes: \"B\" }),\n\t\t\t\t\t\t\tMark.remove(1, { revision: tag1, localId: brand(3) }),\n\t\t\t\t\t\t];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\t\t\t});\n\n\t\t\tdescribe(\"cell for earlier change named earlier - cell for later change named in later change\", () => {\n\t\t\t\t// This case requires Tiebreak.Right to be supported.\n\t\t\t\tit.skip(\"A ○ B\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markB = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\t// tiebreak: Tiebreak.Right,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markA], tag2);\n\t\t\t\t\t\tconst changeY = tagChange([markB], tag3);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\t\t\t\tit(\"B ○ A\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst markA = Mark.insert(1, {\n\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markB], tag2);\n\t\t\t\t\t\tconst changeY = tagChange([markA], tag3);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\t\t\t});\n\n\t\t\tdescribe(\"cell for earlier change named earlier - cell for later change named after earlier change\", () => {\n\t\t\t\tdescribe(\"cell for later change named through removal\", () => {\n\t\t\t\t\tit(\"A ○ B\", () =>\n\t\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst markNamesB = Mark.remove(1, {\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst change2 = tagChange([markA], tag2);\n\t\t\t\t\t\t\tconst change3 = tagChange([markNamesB], tag3);\n\t\t\t\t\t\t\tconst change4 = tagChange([markB], tag4);\n\t\t\t\t\t\t\tconst composedXY = shallowCompose([change2, change3, change4]);\n\n\t\t\t\t\t\t\tconst expected = [markA, { ...markNamesB, changes: \"B\" }];\n\t\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t\t}));\n\n\t\t\t\t\tit(\"B ○ A\", () =>\n\t\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst markNamesA = Mark.remove(1, {\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst change2 = tagChange([Mark.skip(1), markB], tag2);\n\t\t\t\t\t\t\tconst change3 = tagChange([markNamesA], tag3);\n\t\t\t\t\t\t\tconst change4 = tagChange([markA], tag4);\n\t\t\t\t\t\t\tconst composedXY = shallowCompose([change2, change3, change4]);\n\n\t\t\t\t\t\t\tconst expected = [{ ...markNamesA, changes: \"A\" }, markB];\n\t\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t\t}));\n\t\t\t\t});\n\n\t\t\t\tdescribe(\"cell for later change named through insert\", () => {\n\t\t\t\t\t// This case requires Tiebreak.Right to be supported.\n\t\t\t\t\tit.skip(\"A ○ B\", () =>\n\t\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst markNamesB = Mark.attachAndDetach(\n\t\t\t\t\t\t\t\tMark.insert(1, {\n\t\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\t\t\t// tiebreak: Tiebreak.Right,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tMark.remove(1, { revision: tag3, localId: brand(2) }),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst change2 = tagChange([markA], tag2);\n\t\t\t\t\t\t\tconst change3 = tagChange([markNamesB], tag3);\n\t\t\t\t\t\t\tconst change4 = tagChange([markB], tag4);\n\t\t\t\t\t\t\tconst composedXY = shallowCompose([change2, change3, change4]);\n\n\t\t\t\t\t\t\tconst expected = [markA, { ...markNamesB, changes: \"B\" }];\n\t\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t\t}));\n\n\t\t\t\t\tit(\"B ○ A\", () =>\n\t\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst markNamesA = Mark.attachAndDetach(\n\t\t\t\t\t\t\t\tMark.insert(1, { revision: tag3, localId: brand(1) }),\n\t\t\t\t\t\t\t\tMark.remove(1, { revision: tag3, localId: brand(1) }),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\t\trevision: tag3,\n\t\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst change2 = tagChange([markB], tag2);\n\t\t\t\t\t\t\tconst change3 = tagChange([markNamesA], tag3);\n\t\t\t\t\t\t\tconst change4 = tagChange([markA], tag4);\n\t\t\t\t\t\t\tconst composedXY = shallowCompose([change2, change3, change4]);\n\n\t\t\t\t\t\t\tconst expected = [{ ...markNamesA, changes: \"A\" }, markB];\n\t\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t\t}));\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdescribe(\"cell for earlier change named in earlier change - cell for later change named before earlier change\", () => {\n\t\t\t\tit(\"A ○ B\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markA = Mark.attachAndDetach(\n\t\t\t\t\t\t\tMark.insert(1, { revision: tag2, localId: brand(1) }),\n\t\t\t\t\t\t\tMark.remove(1, { revision: tag2, localId: brand(1) }),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst markB = Mark.modify(\"B\", {\n\t\t\t\t\t\t\tlocalId: brand(2),\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(1), count: 1, offset: 1 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markA], tag2);\n\t\t\t\t\t\tconst changeY = tagChange([Mark.tomb(tag2, brand(1)), markB], tag3);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\t\t\t\tit(\"B ○ A\", () =>\n\t\t\t\t\twithConfig(() => {\n\t\t\t\t\t\tconst markB = Mark.attachAndDetach(\n\t\t\t\t\t\t\tMark.insert(1, { revision: tag2, localId: brand(2) }),\n\t\t\t\t\t\t\tMark.remove(1, { revision: tag2, localId: brand(2) }),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst markA = Mark.modify(\"A\", {\n\t\t\t\t\t\t\tlocalId: brand(1),\n\t\t\t\t\t\t\trevision: tag1,\n\t\t\t\t\t\t\tlineage: [{ revision: tag2, id: brand(2), count: 1, offset: 0 }],\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst changeX = tagChange([markB], tag2);\n\t\t\t\t\t\tconst changeY = tagChange([markA, Mark.tomb(tag2, brand(2))], tag3);\n\t\t\t\t\t\tconst composedXY = shallowCompose([changeX, changeY]);\n\n\t\t\t\t\t\tconst expected = [markA, markB];\n\t\t\t\t\t\tassertChangesetsEqual(composedXY, expected);\n\t\t\t\t\t}));\n\t\t\t});\n\t\t});\n\t});\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invert.test.d.ts","sourceRoot":"","sources":["../../../../src/test/feature-libraries/sequence-field/invert.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmCH,wBAAgB,UAAU,SAmezB"}
|