@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/rebase.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 { assert, unreachableCase } from \"@fluidframework/core-utils\";\nimport { IdAllocator, brand, fail, getOrAddEmptyToMap } from \"../../util/index.js\";\nimport {\n\tChangeAtomId,\n\tChangesetLocalId,\n\tRevisionMetadataSource,\n\tRevisionTag,\n\tTaggedChange,\n} from \"../../core/index.js\";\nimport {\n\tCrossFieldManager,\n\tCrossFieldTarget,\n\tNodeExistenceState,\n\tRebaseRevisionMetadata,\n\tgetIntention,\n} from \"../modular-schema/index.js\";\nimport {\n\tisDetach,\n\tcloneMark,\n\tareInputCellsEmpty,\n\tmarkEmptiesCells,\n\tmarkFillsCells,\n\tgetOffsetInCellRange,\n\tcompareLineages,\n\twithNodeChange,\n\tcloneCellId,\n\tareOutputCellsEmpty,\n\tisNewAttach,\n\tgetInputCellId,\n\tisAttachAndDetachEffect,\n\tgetEndpoint,\n\tisAttach,\n\tcompareCellsFromSameRevision,\n\tcellSourcesFromMarks,\n\tisTombstone,\n\tcompareCellPositionsUsingTombstones,\n\tisImpactfulCellRename,\n\tCellOrder,\n\tgetDetachIdForLineage,\n\tgetDetachOutputId,\n\tsplitMarkEffect,\n\textractMarkEffect,\n} from \"./utils.js\";\nimport {\n\tChangeset,\n\tMark,\n\tMarkList,\n\tNoopMark,\n\tMoveId,\n\tNoopMarkType,\n\tHasLineage,\n\tIdRange,\n\tCellMark,\n\tCellId,\n\tMarkEffect,\n\tMoveOut,\n\tMoveIn,\n\tLineageEvent,\n} from \"./types.js\";\nimport { MarkListFactory } from \"./markListFactory.js\";\nimport {\n\tgetMoveEffect,\n\tsetMoveEffect,\n\tisMoveMark,\n\tMoveEffect,\n\tMoveEffectTable,\n\tisMoveOut,\n\tisMoveIn,\n} from \"./moveEffectTable.js\";\nimport { MarkQueue } from \"./markQueue.js\";\nimport { EmptyInputCellMark } from \"./helperTypes.js\";\nimport { CellOrderingMethod, sequenceConfig } from \"./config.js\";\nimport { DetachIdOverrideType } from \"./format.js\";\n\n/**\n * Rebases `change` over `base` assuming they both apply to the same initial state.\n * @param change - The changeset to rebase.\n * @param base - The changeset to rebase over.\n * @returns A changeset that performs the changes in `change` but does so assuming `base` has been applied first.\n */\nexport function rebase<TNodeChange>(\n\tchange: Changeset<TNodeChange>,\n\tbase: TaggedChange<Changeset<TNodeChange>>,\n\trebaseChild: NodeChangeRebaser<TNodeChange>,\n\tgenId: IdAllocator,\n\tmanager: CrossFieldManager,\n\trevisionMetadata: RebaseRevisionMetadata,\n\tnodeExistenceState: NodeExistenceState = NodeExistenceState.Alive,\n): Changeset<TNodeChange> {\n\treturn rebaseMarkList(\n\t\tchange,\n\t\tbase.change,\n\t\tbase.revision,\n\t\trevisionMetadata,\n\t\trebaseChild,\n\t\tgenId,\n\t\tmanager as MoveEffectTable<TNodeChange>,\n\t\tnodeExistenceState,\n\t);\n}\n\nexport type NodeChangeRebaser<TNodeChange> = (\n\tchange: TNodeChange | undefined,\n\tbaseChange: TNodeChange | undefined,\n\tstateChange?: NodeExistenceState,\n) => TNodeChange | undefined;\n\nfunction rebaseMarkList<TNodeChange>(\n\tcurrMarkList: MarkList<TNodeChange>,\n\tbaseMarkList: MarkList<TNodeChange>,\n\tbaseRevision: RevisionTag | undefined,\n\tmetadata: RebaseRevisionMetadata,\n\trebaseChild: NodeChangeRebaser<TNodeChange>,\n\tgenId: IdAllocator,\n\tmoveEffects: CrossFieldManager<MoveEffect<TNodeChange>>,\n\tnodeExistenceState: NodeExistenceState,\n): MarkList<TNodeChange> {\n\tconst rebasedMarks: Mark<TNodeChange>[] = [];\n\tconst queue = new RebaseQueue(baseRevision, baseMarkList, currMarkList, metadata, moveEffects);\n\n\t// Each mark with empty input cells in `currMarkList` should have a lineage event added for all adjacent detaches in the base changeset.\n\t// At the time we process an attach we don't know about detaches of later nodes,\n\t// so we record marks which should have their lineage updated if we encounter a detach.\n\tconst rebasedCellBlocks: CellBlockList = [];\n\n\t// For each revision, stores a list of IDs of detaches encountered in the base changeset which are adjacent to the current position.\n\tconst detachBlocks = new Map<RevisionTag, IdRange[]>();\n\twhile (!queue.isEmpty()) {\n\t\tconst { baseMark, newMark: currMark } = queue.pop();\n\t\tconst rebasedMark = rebaseMark(\n\t\t\tcurrMark,\n\t\t\tbaseMark,\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\trebaseChild,\n\t\t\tmoveEffects,\n\t\t\tnodeExistenceState,\n\t\t);\n\n\t\tif (sequenceConfig.cellOrdering === CellOrderingMethod.Lineage) {\n\t\t\tif (\n\t\t\t\tmarkEmptiesCells(baseMark) ||\n\t\t\t\tisImpactfulCellRename(baseMark, baseRevision, metadata)\n\t\t\t) {\n\t\t\t\t// Note that we want the revision in the detach ID to be the actual revision, not the intention.\n\t\t\t\t// TODO: re-examine why this case needs the two kinds of overrides to be treated differently.\n\t\t\t\tconst detachId = getDetachIdForLineage(baseMark, baseRevision);\n\t\t\t\tassert(\n\t\t\t\t\tdetachId !== undefined,\n\t\t\t\t\t0x816 /* Mark which empties cells should have a detach ID */,\n\t\t\t\t);\n\t\t\t\tassert(\n\t\t\t\t\tdetachId.revision !== undefined,\n\t\t\t\t\t0x74a /* Detach ID should have a revision */,\n\t\t\t\t);\n\t\t\t\tconst detachBlock = getOrAddEmptyToMap(detachBlocks, detachId.revision);\n\t\t\t\taddIdRange(detachBlock, {\n\t\t\t\t\tid: detachId.localId,\n\t\t\t\t\tcount: baseMark.count,\n\t\t\t\t});\n\n\t\t\t\taddLineageToRecipients(\n\t\t\t\t\trebasedCellBlocks,\n\t\t\t\t\tdetachId.revision,\n\t\t\t\t\tdetachId.localId,\n\t\t\t\t\tbaseMark.count,\n\t\t\t\t\tmetadata,\n\t\t\t\t);\n\n\t\t\t\tassert(\n\t\t\t\t\tareInputCellsEmpty(rebasedMark) && rebasedMark.cellId.revision !== undefined,\n\t\t\t\t\t0x817 /* Mark should have empty input cells after rebasing over a cell-emptying mark */,\n\t\t\t\t);\n\n\t\t\t\t// A re-detach sports a cell ID with the adjacent cells from the original detach.\n\t\t\t\t// Marks that are rebased over such a re-detach will adopt this cell ID as-is and do not need to have the\n\t\t\t\t// adjacent cells be updated. Moreover, the base changeset may not have all the detaches from the original\n\t\t\t\t// detach revision, so using such re-detach marks to compile the list of adjacent cells would run the risk\n\t\t\t\t// of ending up with incomplete adjacent cell information in the rebased mark.\n\t\t\t\tif (!isRedetach(baseMark)) {\n\t\t\t\t\t// BUG#6604:\n\t\t\t\t\t// We track blocks of adjacent cells for rollbacks separately from that of the original revision\n\t\t\t\t\t// that they are a rollback of, but all rebased marks use the original revision in their `CellId`.\n\t\t\t\t\t// This means we assign adjacent cells information for the rollback to a `CellId` that advertises\n\t\t\t\t\t// itself as being about the original revision.\n\t\t\t\t\t// This could lead to a situation where we try to compare two cells and fail to order them correctly\n\t\t\t\t\t// because one sports adjacent cells information for the original revision and the other sports\n\t\t\t\t\t// adjacent cells information for the rollback.\n\t\t\t\t\tsetMarkAdjacentCells(rebasedMark, detachBlock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (areInputCellsEmpty(rebasedMark)) {\n\t\t\t\thandleLineage(rebasedMark.cellId, detachBlocks, metadata);\n\t\t\t}\n\t\t\tupdateLineageState(\n\t\t\t\trebasedCellBlocks,\n\t\t\t\tdetachBlocks,\n\t\t\t\tbaseMark,\n\t\t\t\tbaseRevision,\n\t\t\t\trebasedMark,\n\t\t\t\tmetadata,\n\t\t\t);\n\t\t}\n\t\trebasedMarks.push(rebasedMark);\n\t}\n\n\treturn mergeMarkList(rebasedMarks);\n}\n\nfunction mergeMarkList<T>(marks: Mark<T>[]): Mark<T>[] {\n\tconst factory = new MarkListFactory<T>();\n\tfor (const mark of marks) {\n\t\tfactory.push(mark);\n\t}\n\n\treturn factory.list;\n}\n\nexport function isRedetach(effect: MarkEffect): boolean {\n\tswitch (effect.type) {\n\t\tcase \"Remove\":\n\t\tcase \"MoveOut\":\n\t\t\treturn effect.idOverride?.type === DetachIdOverrideType.Redetach;\n\t\tcase \"AttachAndDetach\":\n\t\t\treturn isRedetach(effect.detach);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Generates a NoOp mark that targets the same cells as the input mark.\n * @param mark - The mark the NoOp should target.\n * @param revision - The revision, if available.\n * @returns A NoOp mark that targets the same cells as the input mark.\n */\nfunction generateNoOpWithCellId<T>(\n\tmark: Mark<T>,\n\trevision: RevisionTag | undefined,\n\tmetadata: RevisionMetadataSource,\n): CellMark<NoopMark, T> {\n\tconst length = mark.count;\n\tconst cellId = getInputCellId(mark, revision, metadata);\n\treturn cellId === undefined ? { count: length } : { count: length, cellId };\n}\n\nclass RebaseQueue<T> {\n\tprivate readonly baseMarks: MarkQueue<T>;\n\tprivate readonly newMarks: MarkQueue<T>;\n\tprivate readonly baseMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\tprivate readonly newMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\n\tpublic constructor(\n\t\tbaseRevision: RevisionTag | undefined,\n\t\tbaseMarks: Changeset<T>,\n\t\tnewMarks: Changeset<T>,\n\t\tprivate readonly metadata: RevisionMetadataSource,\n\t\tprivate readonly moveEffects: MoveEffectTable<T>,\n\t) {\n\t\tthis.baseMarks = new MarkQueue(baseMarks, baseRevision, moveEffects);\n\t\tthis.newMarks = new MarkQueue(newMarks, undefined, moveEffects);\n\t\tthis.baseMarksCellSources = cellSourcesFromMarks(\n\t\t\tbaseMarks,\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\tgetInputCellId,\n\t\t);\n\t\tthis.newMarksCellSources = cellSourcesFromMarks(\n\t\t\tnewMarks,\n\t\t\tundefined,\n\t\t\tmetadata,\n\t\t\tgetInputCellId,\n\t\t);\n\t}\n\n\tpublic isEmpty(): boolean {\n\t\treturn this.baseMarks.isEmpty() && this.newMarks.isEmpty();\n\t}\n\n\tpublic pop(): RebaseMarks<T> {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\t!(baseMark === undefined && newMark === undefined),\n\t\t\t0x722 /* Cannot pop from empty queue */,\n\t\t);\n\n\t\tif (baseMark === undefined) {\n\t\t\tconst dequeuedNewMark = this.newMarks.dequeue();\n\t\t\treturn {\n\t\t\t\tbaseMark: generateNoOpWithCellId(dequeuedNewMark, undefined, this.metadata),\n\t\t\t\tnewMark: dequeuedNewMark,\n\t\t\t};\n\t\t} else if (newMark === undefined) {\n\t\t\treturn this.dequeueBase();\n\t\t} else if (areInputCellsEmpty(baseMark) && areInputCellsEmpty(newMark)) {\n\t\t\tswitch (sequenceConfig.cellOrdering) {\n\t\t\t\tcase CellOrderingMethod.Tombstone: {\n\t\t\t\t\tconst baseId = getInputCellId(baseMark, this.baseMarks.revision, this.metadata);\n\t\t\t\t\tconst newId = getInputCellId(newMark, undefined, this.metadata);\n\t\t\t\t\tassert(\n\t\t\t\t\t\tbaseId !== undefined && newId !== undefined,\n\t\t\t\t\t\t0x89f /* Both marks should have cell IDs */,\n\t\t\t\t\t);\n\t\t\t\t\tconst comparison = compareCellPositionsUsingTombstones(\n\t\t\t\t\t\tbaseId,\n\t\t\t\t\t\tnewId,\n\t\t\t\t\t\tthis.baseMarksCellSources,\n\t\t\t\t\t\tthis.newMarksCellSources,\n\t\t\t\t\t\tthis.metadata,\n\t\t\t\t\t);\n\t\t\t\t\tswitch (comparison) {\n\t\t\t\t\t\tcase CellOrder.SameCell:\n\t\t\t\t\t\t\treturn this.dequeueBoth();\n\t\t\t\t\t\tcase CellOrder.OldThenNew:\n\t\t\t\t\t\t\treturn this.dequeueBase();\n\t\t\t\t\t\tcase CellOrder.NewThenOld:\n\t\t\t\t\t\t\treturn this.dequeueNew();\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tunreachableCase(comparison);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcase CellOrderingMethod.Lineage: {\n\t\t\t\t\tconst cmp = compareCellPositions(\n\t\t\t\t\t\tthis.baseMarks.revision,\n\t\t\t\t\t\tbaseMark,\n\t\t\t\t\t\tnewMark,\n\t\t\t\t\t\tthis.metadata,\n\t\t\t\t\t);\n\t\t\t\t\tif (cmp < 0) {\n\t\t\t\t\t\treturn this.dequeueBase(-cmp);\n\t\t\t\t\t} else if (cmp > 0) {\n\t\t\t\t\t\tconst dequeuedNewMark = this.newMarks.dequeueUpTo(cmp);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tnewMark: dequeuedNewMark,\n\t\t\t\t\t\t\tbaseMark: generateNoOpWithCellId(\n\t\t\t\t\t\t\t\tdequeuedNewMark,\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tthis.metadata,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn this.dequeueBoth();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tunreachableCase(sequenceConfig.cellOrdering);\n\t\t\t}\n\t\t} else if (areInputCellsEmpty(newMark)) {\n\t\t\treturn this.dequeueNew();\n\t\t} else if (areInputCellsEmpty(baseMark)) {\n\t\t\treturn this.dequeueBase();\n\t\t} else {\n\t\t\treturn this.dequeueBoth();\n\t\t}\n\t}\n\n\tprivate dequeueBase(length?: number): RebaseMarks<T> {\n\t\tconst baseMark =\n\t\t\tlength !== undefined ? this.baseMarks.dequeueUpTo(length) : this.baseMarks.dequeue();\n\n\t\tlet newMark: Mark<T> = generateNoOpWithCellId(\n\t\t\tbaseMark,\n\t\t\tthis.baseMarks.revision,\n\t\t\tthis.metadata,\n\t\t);\n\n\t\tconst movedEffect = getMovedEffectFromBaseMark(\n\t\t\tthis.moveEffects,\n\t\t\tbaseMark,\n\t\t\tthis.baseMarks.revision,\n\t\t);\n\n\t\tif (movedEffect !== undefined) {\n\t\t\tnewMark = addMovedMarkEffect(newMark, movedEffect);\n\t\t}\n\n\t\treturn {\n\t\t\tbaseMark,\n\t\t\tnewMark,\n\t\t};\n\t}\n\n\tprivate dequeueNew(): RebaseMarks<T> {\n\t\tconst newMark = this.newMarks.dequeue();\n\t\treturn { newMark, baseMark: generateNoOpWithCellId(newMark, undefined, this.metadata) };\n\t}\n\n\tprivate dequeueBoth(): RebaseMarks<T> {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\tbaseMark !== undefined && newMark !== undefined,\n\t\t\t0x69c /* Cannot dequeue both unless both mark queues are non-empty */,\n\t\t);\n\t\tconst length = Math.min(newMark.count, baseMark.count);\n\t\tconst sizedBaseMark = this.baseMarks.dequeueUpTo(length);\n\t\tconst sizedNewMark = this.newMarks.dequeueUpTo(length);\n\t\tconst movedMark = getMovedEffectFromBaseMark(\n\t\t\tthis.moveEffects,\n\t\t\tsizedBaseMark,\n\t\t\tthis.baseMarks.revision,\n\t\t);\n\t\treturn {\n\t\t\tbaseMark: sizedBaseMark,\n\t\t\tnewMark:\n\t\t\t\tmovedMark === undefined\n\t\t\t\t\t? sizedNewMark\n\t\t\t\t\t: addMovedMarkEffect(sizedNewMark, movedMark),\n\t\t};\n\t}\n}\n\n/**\n * Combines `mark` and `effect` into a single mark.\n * This function is only intended to handle cases where `mark` is part of a changeset being rebased\n * and `effect` is an effect from the same changeset whose target has been moved by the base changeset.\n * @returns a mark which has the composite effect of `mark` and `effect`.\n */\nfunction addMovedMarkEffect<T>(mark: Mark<T>, effect: MarkEffect): Mark<T> {\n\tif (isMoveIn(mark) && isMoveOut(effect)) {\n\t\tconst result: Mark<T> = {\n\t\t\t...mark,\n\t\t\ttype: \"Insert\",\n\t\t\tcount: mark.count,\n\t\t\tid: mark.id,\n\t\t};\n\t\tif (effect.revision !== undefined) {\n\t\t\tresult.revision = effect.revision;\n\t\t}\n\t\treturn result;\n\t} else if (isTombstone(mark)) {\n\t\treturn { ...mark, ...effect };\n\t}\n\tassert(false, 0x818 /* Unexpected combination of mark effects at source and destination */);\n}\n\n/**\n * Represents the marks rebasing should process next.\n * If `baseMark` and `newMark` are both defined, then they are `SizedMark`s covering the same range of nodes.\n */\ninterface RebaseMarks<T> {\n\tbaseMark: Mark<T>;\n\tnewMark: Mark<T>;\n}\n\nfunction rebaseMark<TNodeChange>(\n\tcurrMark: Mark<TNodeChange>,\n\tbaseMark: Mark<TNodeChange>,\n\tbaseRevision: RevisionTag | undefined,\n\tmetadata: RevisionMetadataSource,\n\trebaseChild: NodeChangeRebaser<TNodeChange>,\n\tmoveEffects: MoveEffectTable<TNodeChange>,\n\tnodeExistenceState: NodeExistenceState,\n): Mark<TNodeChange> {\n\tconst rebasedMark = rebaseNodeChange(cloneMark(currMark), baseMark, rebaseChild);\n\tconst movedNodeChanges = getMovedChangesFromBaseMark(moveEffects, baseMark, baseRevision);\n\tif (movedNodeChanges !== undefined) {\n\t\tassert(\n\t\t\trebasedMark.changes === undefined,\n\t\t\t0x8dc /* Unexpected collision of new node changes */,\n\t\t);\n\t\trebasedMark.changes = movedNodeChanges;\n\t}\n\n\treturn rebaseMarkIgnoreChild(\n\t\trebasedMark,\n\t\tbaseMark,\n\t\tbaseRevision,\n\t\tmetadata,\n\t\tmoveEffects,\n\t\tnodeExistenceState,\n\t);\n}\n\nfunction rebaseMarkIgnoreChild<TNodeChange>(\n\tcurrMark: Mark<TNodeChange>,\n\tbaseMark: Mark<TNodeChange>,\n\tbaseRevision: RevisionTag | undefined,\n\tmetadata: RevisionMetadataSource,\n\tmoveEffects: MoveEffectTable<TNodeChange>,\n\tnodeExistenceState: NodeExistenceState,\n): Mark<TNodeChange> {\n\tlet rebasedMark: Mark<TNodeChange>;\n\tif (isDetach(baseMark)) {\n\t\tif (baseMark.cellId !== undefined) {\n\t\t\t// Detaches on empty cells have an implicit revive effect.\n\t\t\tdelete currMark.cellId;\n\t\t}\n\t\tassert(\n\t\t\t!isNewAttach(currMark),\n\t\t\t0x69d /* A new attach should not be rebased over its cell being emptied */,\n\t\t);\n\t\tconst baseCellId = getDetachOutputId(baseMark, baseRevision, metadata);\n\n\t\tif (isMoveOut(baseMark)) {\n\t\t\tassert(isMoveMark(baseMark), 0x6f0 /* Only move marks have move IDs */);\n\t\t\tassert(\n\t\t\t\t!isNewAttach(currMark),\n\t\t\t\t0x819 /* New attaches should not be rebased over moves */,\n\t\t\t);\n\t\t\tconst { remains, follows } = separateEffectsForMove(extractMarkEffect(currMark));\n\t\t\tif (follows !== undefined) {\n\t\t\t\tsendEffectToDest(\n\t\t\t\t\tfollows,\n\t\t\t\t\tmoveEffects,\n\t\t\t\t\tgetEndpoint(baseMark, baseRevision),\n\t\t\t\t\tbaseMark.count,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (currMark.changes !== undefined) {\n\t\t\t\tmoveRebasedChanges(\n\t\t\t\t\tcurrMark.changes,\n\t\t\t\t\tmoveEffects,\n\t\t\t\t\tgetEndpoint(baseMark, baseRevision),\n\t\t\t\t);\n\t\t\t}\n\t\t\trebasedMark = { ...(remains ?? {}), count: baseMark.count };\n\t\t} else {\n\t\t\trebasedMark = currMark;\n\t\t}\n\t\trebasedMark = makeDetachedMark(rebasedMark, cloneCellId(baseCellId));\n\t} else if (markFillsCells(baseMark)) {\n\t\trebasedMark = isAttachAndDetachEffect(currMark)\n\t\t\t? withNodeChange({ ...currMark.detach, count: currMark.count }, currMark.changes)\n\t\t\t: withCellId(currMark, undefined);\n\t} else if (isAttachAndDetachEffect(baseMark)) {\n\t\tassert(\n\t\t\tbaseMark.cellId !== undefined,\n\t\t\t0x81a /* AttachAndDetach mark should target an empty cell */,\n\t\t);\n\t\tconst halfRebasedMark = rebaseMarkIgnoreChild(\n\t\t\tcurrMark,\n\t\t\t{ ...baseMark.attach, cellId: cloneCellId(baseMark.cellId), count: baseMark.count },\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\tmoveEffects,\n\t\t\tnodeExistenceState,\n\t\t);\n\t\trebasedMark = rebaseMarkIgnoreChild(\n\t\t\thalfRebasedMark,\n\t\t\t{ ...baseMark.detach, count: baseMark.count },\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\tmoveEffects,\n\t\t\tnodeExistenceState,\n\t\t);\n\t} else {\n\t\trebasedMark = currMark;\n\t}\n\treturn rebasedMark;\n}\n\n/**\n * @returns A pair of marks that represent the effects which should remain in place in the face of concurrent move,\n * and the effects that should be sent to the move destination.\n */\nfunction separateEffectsForMove(mark: MarkEffect): { remains?: MarkEffect; follows?: MarkEffect } {\n\tconst type = mark.type;\n\tswitch (type) {\n\t\tcase \"Remove\":\n\t\tcase \"MoveOut\":\n\t\t\treturn { follows: mark };\n\t\tcase \"AttachAndDetach\":\n\t\t\treturn { follows: mark.detach, remains: mark.attach };\n\t\tcase \"MoveIn\":\n\t\t\treturn { remains: mark };\n\t\tcase NoopMarkType:\n\t\t\treturn {};\n\t\tcase \"Insert\": {\n\t\t\tconst follows: MoveOut = {\n\t\t\t\ttype: \"MoveOut\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\t\t\tconst remains: MoveIn = {\n\t\t\t\ttype: \"MoveIn\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\t\t\tif (mark.revision !== undefined) {\n\t\t\t\tfollows.revision = mark.revision;\n\t\t\t\tremains.revision = mark.revision;\n\t\t\t}\n\t\t\treturn { remains, follows };\n\t\t}\n\t\tdefault:\n\t\t\tunreachableCase(type);\n\t}\n}\n\n// TODO: Reduce the duplication between this and other MoveEffect helpers\nfunction sendEffectToDest(\n\tmarkEffect: MarkEffect,\n\tmoveEffects: MoveEffectTable<unknown>,\n\t{ revision, localId: id }: ChangeAtomId,\n\tcount: number,\n) {\n\tconst effect = getMoveEffect(\n\t\tmoveEffects,\n\t\tCrossFieldTarget.Destination,\n\t\trevision,\n\t\tid,\n\t\tcount,\n\t\tfalse,\n\t);\n\tif (effect.length < count) {\n\t\tconst [markEffect1, markEffect2] = splitMarkEffect(markEffect, effect.length);\n\t\tconst newEffect =\n\t\t\teffect.value !== undefined\n\t\t\t\t? { ...effect.value, movedMark: markEffect1 }\n\t\t\t\t: { movedMark: markEffect1 };\n\t\tsetMoveEffect(\n\t\t\tmoveEffects,\n\t\t\tCrossFieldTarget.Destination,\n\t\t\trevision,\n\t\t\tid,\n\t\t\teffect.length,\n\t\t\tnewEffect,\n\t\t);\n\t\tsendEffectToDest(\n\t\t\tmarkEffect2,\n\t\t\tmoveEffects,\n\t\t\t{ revision, localId: brand(id + effect.length) },\n\t\t\tcount - effect.length,\n\t\t);\n\t} else {\n\t\tconst newEffect: MoveEffect<unknown> =\n\t\t\teffect.value !== undefined\n\t\t\t\t? { ...effect.value, movedEffect: markEffect }\n\t\t\t\t: { movedEffect: markEffect };\n\t\tsetMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count, newEffect);\n\t}\n}\n\nfunction moveRebasedChanges<TNodeChange>(\n\tnodeChange: TNodeChange,\n\tmoveEffects: MoveEffectTable<TNodeChange>,\n\t{ revision, localId: id }: ChangeAtomId,\n) {\n\tconst effect = getMoveEffect(\n\t\tmoveEffects,\n\t\tCrossFieldTarget.Destination,\n\t\trevision,\n\t\tid,\n\t\t1,\n\t\tfalse,\n\t).value;\n\n\tconst newEffect =\n\t\teffect !== undefined\n\t\t\t? { ...effect, rebasedChanges: nodeChange }\n\t\t\t: { rebasedChanges: nodeChange };\n\n\tsetMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, 1, newEffect);\n}\n\nfunction rebaseNodeChange<TNodeChange>(\n\tcurrMark: Mark<TNodeChange>,\n\tbaseMark: Mark<TNodeChange>,\n\tnodeRebaser: NodeChangeRebaser<TNodeChange>,\n): Mark<TNodeChange> {\n\tconst baseChange = baseMark.changes;\n\tconst currChange = currMark.changes;\n\n\tif (baseChange === undefined && currChange === undefined) {\n\t\treturn currMark;\n\t}\n\n\tif (markEmptiesCells(baseMark) && !isMoveMark(baseMark)) {\n\t\treturn withNodeChange(\n\t\t\tcurrMark,\n\t\t\tnodeRebaser(currChange, baseChange, NodeExistenceState.Dead),\n\t\t);\n\t} else if (markFillsCells(baseMark) && !isMoveMark(baseMark)) {\n\t\treturn withNodeChange(\n\t\t\tcurrMark,\n\t\t\tnodeRebaser(currChange, baseChange, NodeExistenceState.Alive),\n\t\t);\n\t}\n\n\treturn withNodeChange(currMark, nodeRebaser(currChange, baseChange));\n}\n\nfunction makeDetachedMark<T>(mark: Mark<T>, cellId: ChangeAtomId): Mark<T> {\n\tassert(mark.cellId === undefined, 0x69f /* Expected mark to be attached */);\n\treturn { ...mark, cellId };\n}\n\nfunction withCellId<TMark extends Mark<unknown>>(mark: TMark, cellId: CellId | undefined): TMark {\n\tconst newMark = { ...mark, cellId };\n\tif (cellId === undefined) {\n\t\tdelete newMark.cellId;\n\t}\n\treturn newMark;\n}\n\nfunction getMovedEffectFromBaseMark(\n\tmoveEffects: MoveEffectTable<unknown>,\n\tbaseMark: Mark<unknown>,\n\tbaseRevision: RevisionTag | undefined,\n): MarkEffect | undefined {\n\tif (isMoveIn(baseMark)) {\n\t\treturn getMovedEffect(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.revision ?? baseRevision,\n\t\t\tbaseMark.id,\n\t\t\tbaseMark.count,\n\t\t);\n\t} else if (isAttachAndDetachEffect(baseMark) && isMoveIn(baseMark.attach)) {\n\t\treturn getMovedEffect(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.attach.revision ?? baseRevision,\n\t\t\tbaseMark.attach.id,\n\t\t\tbaseMark.count,\n\t\t);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\n// It is expected that the range from `id` to `id + count - 1` has the same move effect.\n// The call sites to this function are making queries about a mark which has already been split by a `MarkQueue`\n// to match the ranges in `moveEffects`.\n// TODO: Reduce the duplication between this and other MoveEffect helpers\nfunction getMovedEffect(\n\tmoveEffects: MoveEffectTable<unknown>,\n\trevision: RevisionTag | undefined,\n\tid: MoveId,\n\tcount: number,\n): MarkEffect | undefined {\n\tconst effect = getMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count);\n\tassert(effect.length === count, 0x6f3 /* Expected effect to cover entire mark */);\n\treturn effect.value?.movedEffect;\n}\n\nfunction getMovedChangesFromBaseMark<T>(\n\tmoveEffects: MoveEffectTable<T>,\n\tbaseMark: Mark<T>,\n\tbaseRevision: RevisionTag | undefined,\n): T | undefined {\n\tif (isMoveIn(baseMark)) {\n\t\treturn getMovedNodeChanges(moveEffects, baseMark.revision ?? baseRevision, baseMark.id);\n\t} else if (isAttachAndDetachEffect(baseMark) && isMoveIn(baseMark.attach)) {\n\t\treturn getMovedNodeChanges(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.attach.revision ?? baseRevision,\n\t\t\tbaseMark.attach.id,\n\t\t);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nfunction getMovedNodeChanges<T>(\n\tmoveEffects: MoveEffectTable<T>,\n\trevision: RevisionTag | undefined,\n\tid: MoveId,\n): T | undefined {\n\treturn getMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, 1).value\n\t\t?.rebasedChanges;\n}\n\ntype CellBlockList = CellBlock[];\n\ninterface CellBlock {\n\treadonly cellId: CellId | undefined;\n\n\t// The index of the oldest revision where this cell is full in its output context.\n\t// May be -Infinity if the cell was full in the input context of the base changeset,\n\t// or +Infinity if the cell was empty for all revisions in the base changeset.\n\treadonly firstAttachedRevisionIndex: number;\n\n\t// The index of the newest revision where this cell is full in its output context.\n\t// May be -Infinity if the cell was empty for all revisions in the base changeset,\n\t// or +Infinity if the cell is full in the output context of the base changeset.\n\treadonly lastAttachedRevisionIndex: number;\n}\n\nfunction handleLineage(\n\tcellId: CellId,\n\tdetachBlocks: Map<RevisionTag, IdRange[]>,\n\tmetadata: RebaseRevisionMetadata,\n) {\n\tconst baseRevisions = metadata\n\t\t.getBaseRevisions()\n\t\t.map((r) => getIntention(r, metadata) ?? fail(\"Intention should be defined\"));\n\n\tremoveLineageEvents(cellId, new Set(baseRevisions));\n\n\tfor (const [revision, detachBlock] of detachBlocks.entries()) {\n\t\tif (shouldReceiveLineage(cellId.revision, revision, metadata)) {\n\t\t\tconst intention = metadata.tryGetInfo(revision)?.rollbackOf ?? revision;\n\t\t\tfor (const entry of detachBlock) {\n\t\t\t\taddLineageEntry(cellId, intention, entry.id, entry.count, entry.count);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getRevisionIndex(metadata: RevisionMetadataSource, revision: RevisionTag): number {\n\tconst index = metadata.getIndex(revision);\n\tif (index !== undefined) {\n\t\treturn index;\n\t}\n\n\t// This revision is not in the changesets being handled and must be older than them.\n\treturn -Infinity;\n}\n\nfunction updateLineageState(\n\tcellBlocks: CellBlockList,\n\tdetachBlocks: Map<RevisionTag, IdRange[]>,\n\tbaseMark: Mark<unknown>,\n\tbaseRevision: RevisionTag | undefined,\n\trebasedMark: Mark<unknown>,\n\tmetadata: RevisionMetadataSource,\n) {\n\tconst attachRevisionIndex = getAttachRevisionIndex(metadata, baseMark, baseRevision);\n\tconst detachRevisionIndex = getDetachRevisionIndex(metadata, baseMark, baseRevision);\n\tfor (const revision of detachBlocks.keys()) {\n\t\tconst revisionIndex = getRevisionIndex(metadata, revision);\n\t\t// revisionIndex can be -Infinity if it is from a re-detach\n\t\tif (\n\t\t\trevisionIndex > -Infinity &&\n\t\t\tattachRevisionIndex <= revisionIndex &&\n\t\t\trevisionIndex < detachRevisionIndex\n\t\t) {\n\t\t\tdetachBlocks.delete(revision);\n\t\t}\n\t}\n\n\tcellBlocks.push({\n\t\tcellId: rebasedMark.cellId,\n\t\tfirstAttachedRevisionIndex: attachRevisionIndex,\n\t\tlastAttachedRevisionIndex: detachRevisionIndex - 1,\n\t});\n}\n\nfunction getAttachRevisionIndex(\n\tmetadata: RevisionMetadataSource,\n\tbaseMark: Mark<unknown>,\n\tbaseRevision: RevisionTag | undefined,\n): number {\n\tif (!areInputCellsEmpty(baseMark)) {\n\t\treturn -Infinity;\n\t}\n\n\tif (markFillsCells(baseMark)) {\n\t\tassert(isAttach(baseMark), 0x81b /* Only attach marks can fill cells */);\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\tif (isAttachAndDetachEffect(baseMark)) {\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.attach.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\treturn Infinity;\n}\n\nfunction getDetachRevisionIndex(\n\tmetadata: RevisionMetadataSource,\n\tbaseMark: Mark<unknown>,\n\tbaseRevision: RevisionTag | undefined,\n): number {\n\tif (!areOutputCellsEmpty(baseMark)) {\n\t\treturn Infinity;\n\t}\n\n\tif (markEmptiesCells(baseMark)) {\n\t\tassert(isDetach(baseMark), 0x81c /* Only detach marks can empty cells */);\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\tif (isAttachAndDetachEffect(baseMark)) {\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.detach.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\treturn -Infinity;\n}\n\nfunction addLineageToRecipients(\n\tcellBlocks: CellBlockList,\n\trevision: RevisionTag,\n\tid: ChangesetLocalId,\n\tcount: number,\n\tmetadata: RebaseRevisionMetadata,\n) {\n\tconst rollbackOf = metadata.tryGetInfo(revision)?.rollbackOf;\n\tconst intention = rollbackOf ?? revision;\n\tconst intentionIndex = getRevisionIndex(metadata, intention);\n\tfor (let i = cellBlocks.length - 1; i >= 0; i--) {\n\t\tconst entry = cellBlocks[i];\n\t\tif (\n\t\t\tentry.firstAttachedRevisionIndex <= intentionIndex &&\n\t\t\tintentionIndex <= entry.lastAttachedRevisionIndex\n\t\t) {\n\t\t\t// These cells were full in this revision, so cells earlier in the sequence\n\t\t\t// do not need to know about this lineage event.\n\t\t\treturn;\n\t\t}\n\n\t\t// We only add lineage to cells which were detached before the lineage event occurred.\n\t\tif (entry.cellId === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (shouldReceiveLineage(entry.cellId.revision, revision, metadata)) {\n\t\t\taddLineageEntry(entry.cellId, intention, id, count, 0);\n\t\t}\n\t}\n}\n\nfunction addLineageEntry(\n\tlineageHolder: HasLineage,\n\trevision: RevisionTag,\n\tid: ChangesetLocalId,\n\tcount: number,\n\toffset: number,\n) {\n\tif (lineageHolder.lineage === undefined) {\n\t\tlineageHolder.lineage = [];\n\t}\n\n\tif (lineageHolder.lineage.length > 0) {\n\t\tconst lastEntry = lineageHolder.lineage[lineageHolder.lineage.length - 1];\n\t\tif (lastEntry.revision === revision && (lastEntry.id as number) + lastEntry.count === id) {\n\t\t\tif (lastEntry.offset === lastEntry.count) {\n\t\t\t\tlineageHolder.lineage[lineageHolder.lineage.length - 1] = {\n\t\t\t\t\t...lastEntry,\n\t\t\t\t\tcount: lastEntry.count + count,\n\t\t\t\t\toffset: lastEntry.offset + offset,\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t} else if (offset === 0) {\n\t\t\t\tlineageHolder.lineage[lineageHolder.lineage.length - 1] = {\n\t\t\t\t\t...lastEntry,\n\t\t\t\t\tcount: lastEntry.count + count,\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tlineageHolder.lineage.push({ revision, id, count, offset });\n}\n\nfunction removeLineageEvents(lineageHolder: HasLineage, revisionsToRemove: Set<RevisionTag>) {\n\tif (lineageHolder.lineage === undefined) {\n\t\treturn;\n\t}\n\n\tlineageHolder.lineage = lineageHolder.lineage.filter(\n\t\t(event) => !revisionsToRemove.has(event.revision),\n\t);\n\tif (lineageHolder.lineage.length === 0) {\n\t\tdelete lineageHolder.lineage;\n\t}\n}\n\nfunction addIdRange(lineageEntries: IdRange[], range: IdRange): void {\n\tif (lineageEntries.length > 0) {\n\t\tconst lastEntry = lineageEntries[lineageEntries.length - 1];\n\t\tif ((lastEntry.id as number) + lastEntry.count === range.id) {\n\t\t\tlastEntry.count += range.count;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tlineageEntries.push(range);\n}\n\nfunction setMarkAdjacentCells(mark: Mark<unknown>, adjacentCells: IdRange[]): void {\n\tassert(\n\t\tmark.cellId !== undefined,\n\t\t0x74d /* Can only set adjacent cells on a mark with cell ID */,\n\t);\n\tassert(mark.cellId.adjacentCells === undefined, 0x74e /* Should not overwrite adjacentCells */);\n\tmark.cellId.adjacentCells = adjacentCells;\n}\n\nfunction shouldReceiveLineage(\n\tcellRevision: RevisionTag | undefined,\n\tdetachRevision: RevisionTag,\n\tmetadata: RevisionMetadataSource,\n): boolean {\n\tif (cellRevision === undefined) {\n\t\t// An undefined cell revision means that the cell was created by the changeset we are rebasing.\n\t\t// Since this cell was been empty for all base revisions, it should receive lineage from all of them.\n\t\t// TODO: This cell does not need lineage from roll-forward revisions.\n\t\treturn true;\n\t}\n\n\tconst cellRevisionIndex = getRevisionIndex(metadata, cellRevision);\n\tconst rollbackOf = metadata.tryGetInfo(detachRevision)?.rollbackOf;\n\tconst detachIntention = rollbackOf ?? detachRevision;\n\tconst detachRevisionIndex = getRevisionIndex(metadata, detachIntention);\n\tif (detachRevisionIndex === undefined) {\n\t\t// This case means that these cells are being \"re-detached\" through a `redetachId`.\n\t\t// We could use the revision of the re-detach to determine whether or not this cell needs this lineage entry.\n\t\t// But to be conservative we always add lineage here.\n\t\treturn true;\n\t}\n\n\tconst isRollback = rollbackOf !== undefined;\n\treturn isRollback\n\t\t? detachRevisionIndex < cellRevisionIndex\n\t\t: detachRevisionIndex > cellRevisionIndex;\n}\n\n/**\n * Returns a number N which encodes how the cells of the two marks are aligned.\n * - If N is zero, then the first cell of `baseMark` is the same as the first cell of `newMark`.\n * - If N is positive, then the first N cells of `newMark` (or all its cells if N is greater than its length)\n * are before the first cell of `baseMark`.\n * - If N is negative, then the first N cells of `baseMark` (or all its cells if N is greater than its length)\n * are before the first cell of `newMark`.\n */\nfunction compareCellPositions(\n\tbaseRevision: RevisionTag | undefined,\n\tbaseMark: EmptyInputCellMark<unknown>,\n\tnewMark: EmptyInputCellMark<unknown>,\n\tmetadata: RevisionMetadataSource,\n): number {\n\tconst baseId = getInputCellId(baseMark, baseRevision, metadata);\n\tconst baseLength = baseMark.count;\n\tassert(baseId?.revision !== undefined, 0x6a0 /* baseMark should have cell ID */);\n\tconst newId = getInputCellId(newMark, undefined, metadata);\n\tassert(newId !== undefined, 0x85a /* newMark should have cell ID */);\n\tconst newLength = newMark.count;\n\tif (newId !== undefined && baseId.revision === newId.revision) {\n\t\tconst cmp = compareCellsFromSameRevision(baseId, baseMark.count, newId, newMark.count);\n\t\tif (cmp !== undefined) {\n\t\t\treturn cmp;\n\t\t}\n\t}\n\n\tif (newId !== undefined) {\n\t\tconst offset = getOffsetInCellRange(\n\t\t\tbaseId.lineage,\n\t\t\tnewId.revision,\n\t\t\tnewId.localId,\n\t\t\tnewLength,\n\t\t);\n\t\tif (offset !== undefined) {\n\t\t\treturn offset > 0 ? offset : -Infinity;\n\t\t}\n\n\t\tconst newOffset = getOffsetInCellRange(\n\t\t\tnewId.lineage,\n\t\t\tbaseId.revision,\n\t\t\tbaseId.localId,\n\t\t\tbaseLength,\n\t\t);\n\t\tif (newOffset !== undefined) {\n\t\t\treturn newOffset > 0 ? -newOffset : Infinity;\n\t\t}\n\t}\n\n\tif (newId !== undefined) {\n\t\tconst cmp = compareLineages(baseId, newId);\n\t\tif (cmp !== 0) {\n\t\t\treturn Math.sign(cmp) * Infinity;\n\t\t}\n\n\t\tconst cmp2 = compareMissingLineageEntries(baseId.lineage, newId.lineage, metadata);\n\t\tif (cmp2 !== 0) {\n\t\t\treturn Math.sign(cmp2) * Infinity;\n\t\t}\n\t}\n\n\t// Both cells must never have been filled (in their common history), otherwise they would have some common lineage.\n\t// A new attach targets a cell that has never been filled.\n\t// A mark can also target a cell which was initially filled on another branch, but which has never been filled on the current branch.\n\tif (newId.revision === undefined) {\n\t\t// An undefined revision must mean that the cell was created on the branch we are rebasing.\n\t\t// Since it is newer than the `baseMark`'s cell, it should come first.\n\t\treturn Infinity;\n\t}\n\n\tconst baseRevisionIndex = metadata.getIndex(baseId.revision);\n\tconst newRevisionIndex = metadata.getIndex(newId.revision);\n\n\tif (newRevisionIndex !== undefined && baseRevisionIndex !== undefined) {\n\t\treturn newRevisionIndex > baseRevisionIndex ? Infinity : -Infinity;\n\t}\n\n\tif (newRevisionIndex !== undefined) {\n\t\treturn Infinity;\n\t}\n\n\tif (baseRevisionIndex !== undefined) {\n\t\treturn -Infinity;\n\t}\n\n\t// `newMark` points to cells which were emptied before `baseMark` was created.\n\t// We use `baseMark`'s tiebreak policy as if `newMark`'s cells were created concurrently and before `baseMark`.\n\treturn -Infinity;\n}\n\nfunction compareMissingLineageEntries(\n\tlineage1: LineageEvent[] | undefined,\n\tlineage2: LineageEvent[] | undefined,\n\tmetadata: RevisionMetadataSource,\n): number {\n\tconst events1 = new Map<RevisionTag, LineageEvent>();\n\tfor (const event of lineage1 ?? []) {\n\t\tevents1.set(event.revision, event);\n\t}\n\n\tconst events2 = new Map<RevisionTag, LineageEvent>();\n\tfor (const event of lineage2 ?? []) {\n\t\tevents2.set(event.revision, event);\n\t}\n\n\tfor (const revision of events1.keys()) {\n\t\tif (events2.has(revision)) {\n\t\t\tevents1.delete(revision);\n\t\t\tevents2.delete(revision);\n\t\t}\n\t}\n\n\tfor (const event of events2.values()) {\n\t\t// We've found a cell C that was emptied before the cell1 started tracking lineage.\n\t\t// The cell1 should come before any such cell, so if cell2 comes after C\n\t\t// then we know that cell1 should come before the cell2.\n\t\t// TODO: Account for the cell1's tiebreak policy\n\t\tif (!metadata.hasRollback(event.revision) && event.offset !== 0) {\n\t\t\treturn -1;\n\t\t}\n\t}\n\n\t// cell1Events now contains only revisions which were not in cell2's lineage.\n\tfor (const event of events1.values()) {\n\t\t// We've found a cell C that was emptied before the cell2 started tracking lineage.\n\t\t// The cell2 should come before any such cell, so if cell1 comes after C\n\t\t// then we know that cell2 should come before the cell1.\n\t\t// TODO: Account for the cell2's tiebreak policy\n\t\tif (!metadata.hasRollback(event.revision) && event.offset !== 0) {\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\treturn 0;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/rebase.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 { assert, unreachableCase } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\tChangeAtomId,\n\tChangesetLocalId,\n\tRevisionMetadataSource,\n\tRevisionTag,\n\tTaggedChange,\n} from \"../../core/index.js\";\nimport { IdAllocator, brand, fail, getOrAddEmptyToMap } from \"../../util/index.js\";\nimport {\n\tCrossFieldManager,\n\tCrossFieldTarget,\n\tNodeChangeRebaser,\n\tNodeExistenceState,\n\tNodeId,\n\tRebaseRevisionMetadata,\n\tgetIntention,\n} from \"../modular-schema/index.js\";\n\nimport { CellOrderingMethod, sequenceConfig } from \"./config.js\";\nimport { DetachIdOverrideType } from \"./format.js\";\nimport { EmptyInputCellMark } from \"./helperTypes.js\";\nimport { MarkListFactory } from \"./markListFactory.js\";\nimport { MarkQueue } from \"./markQueue.js\";\nimport {\n\tMoveEffect,\n\tMoveEffectTable,\n\tgetMoveEffect,\n\tisMoveIn,\n\tisMoveMark,\n\tisMoveOut,\n\tsetMoveEffect,\n} from \"./moveEffectTable.js\";\nimport {\n\tCellId,\n\tCellMark,\n\tChangeset,\n\tHasLineage,\n\tIdRange,\n\tLineageEvent,\n\tMark,\n\tMarkEffect,\n\tMarkList,\n\tMoveId,\n\tMoveIn,\n\tMoveOut,\n\tNoopMark,\n\tNoopMarkType,\n} from \"./types.js\";\nimport {\n\tCellOrder,\n\tareInputCellsEmpty,\n\tareOutputCellsEmpty,\n\tcellSourcesFromMarks,\n\tcloneCellId,\n\tcloneMark,\n\tcompareCellPositionsUsingTombstones,\n\tcompareCellsFromSameRevision,\n\tcompareLineages,\n\textractMarkEffect,\n\tgetDetachIdForLineage,\n\tgetDetachOutputCellId,\n\tgetEndpoint,\n\tgetInputCellId,\n\tgetOffsetInCellRange,\n\tisAttach,\n\tisAttachAndDetachEffect,\n\tisDetach,\n\tisImpactfulCellRename,\n\tisNewAttach,\n\tisTombstone,\n\tmarkEmptiesCells,\n\tmarkFillsCells,\n\tsplitMarkEffect,\n\twithNodeChange,\n} from \"./utils.js\";\n\n/**\n * Rebases `change` over `base` assuming they both apply to the same initial state.\n * @param change - The changeset to rebase.\n * @param base - The changeset to rebase over.\n * @returns A changeset that performs the changes in `change` but does so assuming `base` has been applied first.\n */\nexport function rebase(\n\tchange: Changeset,\n\tbase: TaggedChange<Changeset>,\n\trebaseChild: NodeChangeRebaser,\n\tgenId: IdAllocator,\n\tmanager: CrossFieldManager,\n\trevisionMetadata: RebaseRevisionMetadata,\n\tnodeExistenceState: NodeExistenceState = NodeExistenceState.Alive,\n): Changeset {\n\treturn rebaseMarkList(\n\t\tchange,\n\t\tbase.change,\n\t\tbase.revision,\n\t\trevisionMetadata,\n\t\trebaseChild,\n\t\tgenId,\n\t\tmanager as MoveEffectTable,\n\t\tnodeExistenceState,\n\t);\n}\n\nfunction rebaseMarkList(\n\tcurrMarkList: MarkList,\n\tbaseMarkList: MarkList,\n\tbaseRevision: RevisionTag | undefined,\n\tmetadata: RebaseRevisionMetadata,\n\trebaseChild: NodeChangeRebaser,\n\tgenId: IdAllocator,\n\tmoveEffects: CrossFieldManager<MoveEffect>,\n\tnodeExistenceState: NodeExistenceState,\n): MarkList {\n\tconst rebasedMarks: Mark[] = [];\n\tconst queue = new RebaseQueue(baseRevision, baseMarkList, currMarkList, metadata, moveEffects);\n\n\t// Each mark with empty input cells in `currMarkList` should have a lineage event added for all adjacent detaches in the base changeset.\n\t// At the time we process an attach we don't know about detaches of later nodes,\n\t// so we record marks which should have their lineage updated if we encounter a detach.\n\tconst rebasedCellBlocks: CellBlockList = [];\n\n\t// For each revision, stores a list of IDs of detaches encountered in the base changeset which are adjacent to the current position.\n\tconst detachBlocks = new Map<RevisionTag, IdRange[]>();\n\twhile (!queue.isEmpty()) {\n\t\tconst { baseMark, newMark: currMark } = queue.pop();\n\t\tconst rebasedMark = rebaseMark(\n\t\t\tcurrMark,\n\t\t\tbaseMark,\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\trebaseChild,\n\t\t\tmoveEffects,\n\t\t\tnodeExistenceState,\n\t\t);\n\n\t\tif (sequenceConfig.cellOrdering === CellOrderingMethod.Lineage) {\n\t\t\tif (\n\t\t\t\tmarkEmptiesCells(baseMark) ||\n\t\t\t\tisImpactfulCellRename(baseMark, baseRevision, metadata)\n\t\t\t) {\n\t\t\t\t// Note that we want the revision in the detach ID to be the actual revision, not the intention.\n\t\t\t\t// TODO: re-examine why this case needs the two kinds of overrides to be treated differently.\n\t\t\t\tconst detachId = getDetachIdForLineage(baseMark, baseRevision);\n\t\t\t\tassert(\n\t\t\t\t\tdetachId !== undefined,\n\t\t\t\t\t0x816 /* Mark which empties cells should have a detach ID */,\n\t\t\t\t);\n\t\t\t\tassert(\n\t\t\t\t\tdetachId.revision !== undefined,\n\t\t\t\t\t0x74a /* Detach ID should have a revision */,\n\t\t\t\t);\n\t\t\t\tconst detachBlock = getOrAddEmptyToMap(detachBlocks, detachId.revision);\n\t\t\t\taddIdRange(detachBlock, {\n\t\t\t\t\tid: detachId.localId,\n\t\t\t\t\tcount: baseMark.count,\n\t\t\t\t});\n\n\t\t\t\taddLineageToRecipients(\n\t\t\t\t\trebasedCellBlocks,\n\t\t\t\t\tdetachId.revision,\n\t\t\t\t\tdetachId.localId,\n\t\t\t\t\tbaseMark.count,\n\t\t\t\t\tmetadata,\n\t\t\t\t);\n\n\t\t\t\tassert(\n\t\t\t\t\tareInputCellsEmpty(rebasedMark) && rebasedMark.cellId.revision !== undefined,\n\t\t\t\t\t0x817 /* Mark should have empty input cells after rebasing over a cell-emptying mark */,\n\t\t\t\t);\n\n\t\t\t\t// A re-detach sports a cell ID with the adjacent cells from the original detach.\n\t\t\t\t// Marks that are rebased over such a re-detach will adopt this cell ID as-is and do not need to have the\n\t\t\t\t// adjacent cells be updated. Moreover, the base changeset may not have all the detaches from the original\n\t\t\t\t// detach revision, so using such re-detach marks to compile the list of adjacent cells would run the risk\n\t\t\t\t// of ending up with incomplete adjacent cell information in the rebased mark.\n\t\t\t\tif (!isRedetach(baseMark)) {\n\t\t\t\t\t// BUG#6604:\n\t\t\t\t\t// We track blocks of adjacent cells for rollbacks separately from that of the original revision\n\t\t\t\t\t// that they are a rollback of, but all rebased marks use the original revision in their `CellId`.\n\t\t\t\t\t// This means we assign adjacent cells information for the rollback to a `CellId` that advertises\n\t\t\t\t\t// itself as being about the original revision.\n\t\t\t\t\t// This could lead to a situation where we try to compare two cells and fail to order them correctly\n\t\t\t\t\t// because one sports adjacent cells information for the original revision and the other sports\n\t\t\t\t\t// adjacent cells information for the rollback.\n\t\t\t\t\tsetMarkAdjacentCells(rebasedMark, detachBlock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (areInputCellsEmpty(rebasedMark)) {\n\t\t\t\thandleLineage(rebasedMark.cellId, detachBlocks, metadata);\n\t\t\t}\n\t\t\tupdateLineageState(\n\t\t\t\trebasedCellBlocks,\n\t\t\t\tdetachBlocks,\n\t\t\t\tbaseMark,\n\t\t\t\tbaseRevision,\n\t\t\t\trebasedMark,\n\t\t\t\tmetadata,\n\t\t\t);\n\t\t}\n\t\trebasedMarks.push(rebasedMark);\n\t}\n\n\treturn mergeMarkList(rebasedMarks);\n}\n\nfunction mergeMarkList(marks: Mark[]): Mark[] {\n\tconst factory = new MarkListFactory();\n\tfor (const mark of marks) {\n\t\tfactory.push(mark);\n\t}\n\n\treturn factory.list;\n}\n\nexport function isRedetach(effect: MarkEffect): boolean {\n\tswitch (effect.type) {\n\t\tcase \"Remove\":\n\t\tcase \"MoveOut\":\n\t\t\treturn effect.idOverride?.type === DetachIdOverrideType.Redetach;\n\t\tcase \"AttachAndDetach\":\n\t\t\treturn isRedetach(effect.detach);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Generates a NoOp mark that targets the same cells as the input mark.\n * @param mark - The mark the NoOp should target.\n * @param revision - The revision, if available.\n * @returns A NoOp mark that targets the same cells as the input mark.\n */\nfunction generateNoOpWithCellId(\n\tmark: Mark,\n\trevision: RevisionTag | undefined,\n\tmetadata: RevisionMetadataSource,\n): CellMark<NoopMark> {\n\tconst length = mark.count;\n\tconst cellId = getInputCellId(mark, revision, metadata);\n\treturn cellId === undefined ? { count: length } : { count: length, cellId };\n}\n\nclass RebaseQueue {\n\tprivate readonly baseMarks: MarkQueue;\n\tprivate readonly newMarks: MarkQueue;\n\tprivate readonly baseMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\tprivate readonly newMarksCellSources: ReadonlySet<RevisionTag | undefined>;\n\n\tpublic constructor(\n\t\tbaseRevision: RevisionTag | undefined,\n\t\tbaseMarks: Changeset,\n\t\tnewMarks: Changeset,\n\t\tprivate readonly metadata: RevisionMetadataSource,\n\t\tprivate readonly moveEffects: MoveEffectTable,\n\t) {\n\t\tthis.baseMarks = new MarkQueue(baseMarks, baseRevision, moveEffects);\n\t\tthis.newMarks = new MarkQueue(newMarks, undefined, moveEffects);\n\t\tthis.baseMarksCellSources = cellSourcesFromMarks(\n\t\t\tbaseMarks,\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\tgetInputCellId,\n\t\t);\n\t\tthis.newMarksCellSources = cellSourcesFromMarks(\n\t\t\tnewMarks,\n\t\t\tundefined,\n\t\t\tmetadata,\n\t\t\tgetInputCellId,\n\t\t);\n\t}\n\n\tpublic isEmpty(): boolean {\n\t\treturn this.baseMarks.isEmpty() && this.newMarks.isEmpty();\n\t}\n\n\tpublic pop(): RebaseMarks {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\t!(baseMark === undefined && newMark === undefined),\n\t\t\t0x722 /* Cannot pop from empty queue */,\n\t\t);\n\n\t\tif (baseMark === undefined) {\n\t\t\tconst dequeuedNewMark = this.newMarks.dequeue();\n\t\t\treturn {\n\t\t\t\tbaseMark: generateNoOpWithCellId(dequeuedNewMark, undefined, this.metadata),\n\t\t\t\tnewMark: dequeuedNewMark,\n\t\t\t};\n\t\t} else if (newMark === undefined) {\n\t\t\treturn this.dequeueBase();\n\t\t} else if (areInputCellsEmpty(baseMark) && areInputCellsEmpty(newMark)) {\n\t\t\tswitch (sequenceConfig.cellOrdering) {\n\t\t\t\tcase CellOrderingMethod.Tombstone: {\n\t\t\t\t\tconst baseId = getInputCellId(baseMark, this.baseMarks.revision, this.metadata);\n\t\t\t\t\tconst newId = getInputCellId(newMark, undefined, this.metadata);\n\t\t\t\t\tassert(\n\t\t\t\t\t\tbaseId !== undefined && newId !== undefined,\n\t\t\t\t\t\t0x89f /* Both marks should have cell IDs */,\n\t\t\t\t\t);\n\t\t\t\t\tconst comparison = compareCellPositionsUsingTombstones(\n\t\t\t\t\t\tbaseId,\n\t\t\t\t\t\tnewId,\n\t\t\t\t\t\tthis.baseMarksCellSources,\n\t\t\t\t\t\tthis.newMarksCellSources,\n\t\t\t\t\t\tthis.metadata,\n\t\t\t\t\t);\n\t\t\t\t\tswitch (comparison) {\n\t\t\t\t\t\tcase CellOrder.SameCell:\n\t\t\t\t\t\t\treturn this.dequeueBoth();\n\t\t\t\t\t\tcase CellOrder.OldThenNew:\n\t\t\t\t\t\t\treturn this.dequeueBase();\n\t\t\t\t\t\tcase CellOrder.NewThenOld:\n\t\t\t\t\t\t\treturn this.dequeueNew();\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tunreachableCase(comparison);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcase CellOrderingMethod.Lineage: {\n\t\t\t\t\tconst cmp = compareCellPositions(\n\t\t\t\t\t\tthis.baseMarks.revision,\n\t\t\t\t\t\tbaseMark,\n\t\t\t\t\t\tnewMark,\n\t\t\t\t\t\tthis.metadata,\n\t\t\t\t\t);\n\t\t\t\t\tif (cmp < 0) {\n\t\t\t\t\t\treturn this.dequeueBase(-cmp);\n\t\t\t\t\t} else if (cmp > 0) {\n\t\t\t\t\t\tconst dequeuedNewMark = this.newMarks.dequeueUpTo(cmp);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tnewMark: dequeuedNewMark,\n\t\t\t\t\t\t\tbaseMark: generateNoOpWithCellId(\n\t\t\t\t\t\t\t\tdequeuedNewMark,\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tthis.metadata,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn this.dequeueBoth();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tunreachableCase(sequenceConfig.cellOrdering);\n\t\t\t}\n\t\t} else if (areInputCellsEmpty(newMark)) {\n\t\t\treturn this.dequeueNew();\n\t\t} else if (areInputCellsEmpty(baseMark)) {\n\t\t\treturn this.dequeueBase();\n\t\t} else {\n\t\t\treturn this.dequeueBoth();\n\t\t}\n\t}\n\n\tprivate dequeueBase(length?: number): RebaseMarks {\n\t\tconst baseMark =\n\t\t\tlength !== undefined ? this.baseMarks.dequeueUpTo(length) : this.baseMarks.dequeue();\n\n\t\tlet newMark: Mark = generateNoOpWithCellId(\n\t\t\tbaseMark,\n\t\t\tthis.baseMarks.revision,\n\t\t\tthis.metadata,\n\t\t);\n\n\t\tconst movedEffect = getMovedEffectFromBaseMark(\n\t\t\tthis.moveEffects,\n\t\t\tbaseMark,\n\t\t\tthis.baseMarks.revision,\n\t\t);\n\n\t\tif (movedEffect !== undefined) {\n\t\t\tnewMark = addMovedMarkEffect(newMark, movedEffect);\n\t\t}\n\n\t\treturn {\n\t\t\tbaseMark,\n\t\t\tnewMark,\n\t\t};\n\t}\n\n\tprivate dequeueNew(): RebaseMarks {\n\t\tconst newMark = this.newMarks.dequeue();\n\t\treturn { newMark, baseMark: generateNoOpWithCellId(newMark, undefined, this.metadata) };\n\t}\n\n\tprivate dequeueBoth(): RebaseMarks {\n\t\tconst baseMark = this.baseMarks.peek();\n\t\tconst newMark = this.newMarks.peek();\n\t\tassert(\n\t\t\tbaseMark !== undefined && newMark !== undefined,\n\t\t\t0x69c /* Cannot dequeue both unless both mark queues are non-empty */,\n\t\t);\n\t\tconst length = Math.min(newMark.count, baseMark.count);\n\t\tconst sizedBaseMark = this.baseMarks.dequeueUpTo(length);\n\t\tconst sizedNewMark = this.newMarks.dequeueUpTo(length);\n\t\tconst movedMark = getMovedEffectFromBaseMark(\n\t\t\tthis.moveEffects,\n\t\t\tsizedBaseMark,\n\t\t\tthis.baseMarks.revision,\n\t\t);\n\t\treturn {\n\t\t\tbaseMark: sizedBaseMark,\n\t\t\tnewMark:\n\t\t\t\tmovedMark === undefined\n\t\t\t\t\t? sizedNewMark\n\t\t\t\t\t: addMovedMarkEffect(sizedNewMark, movedMark),\n\t\t};\n\t}\n}\n\n/**\n * Combines `mark` and `effect` into a single mark.\n * This function is only intended to handle cases where `mark` is part of a changeset being rebased\n * and `effect` is an effect from the same changeset whose target has been moved by the base changeset.\n * @returns a mark which has the composite effect of `mark` and `effect`.\n */\nfunction addMovedMarkEffect(mark: Mark, effect: MarkEffect): Mark {\n\tif (isMoveIn(mark) && isMoveOut(effect)) {\n\t\treturn { ...mark, type: \"Insert\" };\n\t} else if (isAttachAndDetachEffect(mark) && isMoveIn(mark.attach) && isMoveOut(effect)) {\n\t\treturn { ...mark.detach, count: mark.count };\n\t} else if (isTombstone(mark)) {\n\t\treturn { ...mark, ...effect };\n\t}\n\tassert(false, 0x818 /* Unexpected combination of mark effects at source and destination */);\n}\n\n/**\n * Represents the marks rebasing should process next.\n * If `baseMark` and `newMark` are both defined, then they are `SizedMark`s covering the same range of nodes.\n */\ninterface RebaseMarks {\n\tbaseMark: Mark;\n\tnewMark: Mark;\n}\n\nfunction rebaseMark(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\tbaseRevision: RevisionTag | undefined,\n\tmetadata: RevisionMetadataSource,\n\trebaseChild: NodeChangeRebaser,\n\tmoveEffects: MoveEffectTable,\n\tnodeExistenceState: NodeExistenceState,\n): Mark {\n\tconst rebasedMark = rebaseNodeChange(cloneMark(currMark), baseMark, rebaseChild);\n\tconst movedNodeChanges = getMovedChangesFromBaseMark(moveEffects, baseMark, baseRevision);\n\tif (movedNodeChanges !== undefined) {\n\t\tassert(\n\t\t\trebasedMark.changes === undefined,\n\t\t\t0x8dc /* Unexpected collision of new node changes */,\n\t\t);\n\t\trebasedMark.changes = movedNodeChanges;\n\t}\n\n\treturn rebaseMarkIgnoreChild(\n\t\trebasedMark,\n\t\tbaseMark,\n\t\tbaseRevision,\n\t\tmetadata,\n\t\tmoveEffects,\n\t\tnodeExistenceState,\n\t);\n}\n\nfunction rebaseMarkIgnoreChild(\n\tcurrMark: Mark,\n\tbaseMark: Mark,\n\tbaseRevision: RevisionTag | undefined,\n\tmetadata: RevisionMetadataSource,\n\tmoveEffects: MoveEffectTable,\n\tnodeExistenceState: NodeExistenceState,\n): Mark {\n\tlet rebasedMark: Mark;\n\tif (isDetach(baseMark)) {\n\t\tif (baseMark.cellId !== undefined) {\n\t\t\t// Detaches on empty cells have an implicit revive effect.\n\t\t\tdelete currMark.cellId;\n\t\t}\n\t\tassert(\n\t\t\t!isNewAttach(currMark),\n\t\t\t0x69d /* A new attach should not be rebased over its cell being emptied */,\n\t\t);\n\t\tconst baseCellId = getDetachOutputCellId(baseMark, baseRevision, metadata);\n\n\t\tif (isMoveOut(baseMark)) {\n\t\t\tassert(isMoveMark(baseMark), 0x6f0 /* Only move marks have move IDs */);\n\t\t\tassert(\n\t\t\t\t!isNewAttach(currMark),\n\t\t\t\t0x819 /* New attaches should not be rebased over moves */,\n\t\t\t);\n\t\t\tconst { remains, follows } = separateEffectsForMove(extractMarkEffect(currMark));\n\t\t\tif (follows !== undefined) {\n\t\t\t\tsendEffectToDest(\n\t\t\t\t\tfollows,\n\t\t\t\t\tmoveEffects,\n\t\t\t\t\tgetEndpoint(baseMark, baseRevision),\n\t\t\t\t\tbaseMark.count,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (currMark.changes !== undefined) {\n\t\t\t\tmoveRebasedChanges(\n\t\t\t\t\tcurrMark.changes,\n\t\t\t\t\tmoveEffects,\n\t\t\t\t\tgetEndpoint(baseMark, baseRevision),\n\t\t\t\t);\n\t\t\t}\n\t\t\trebasedMark = { ...(remains ?? {}), count: baseMark.count };\n\t\t} else {\n\t\t\trebasedMark = currMark;\n\t\t}\n\t\trebasedMark = makeDetachedMark(rebasedMark, cloneCellId(baseCellId));\n\t} else if (markFillsCells(baseMark)) {\n\t\trebasedMark = isAttachAndDetachEffect(currMark)\n\t\t\t? withNodeChange({ ...currMark.detach, count: currMark.count }, currMark.changes)\n\t\t\t: withCellId(currMark, undefined);\n\t} else if (isAttachAndDetachEffect(baseMark)) {\n\t\tassert(\n\t\t\tbaseMark.cellId !== undefined,\n\t\t\t0x81a /* AttachAndDetach mark should target an empty cell */,\n\t\t);\n\t\tconst halfRebasedMark = rebaseMarkIgnoreChild(\n\t\t\tcurrMark,\n\t\t\t{ ...baseMark.attach, cellId: cloneCellId(baseMark.cellId), count: baseMark.count },\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\tmoveEffects,\n\t\t\tnodeExistenceState,\n\t\t);\n\t\trebasedMark = rebaseMarkIgnoreChild(\n\t\t\thalfRebasedMark,\n\t\t\t{ ...baseMark.detach, count: baseMark.count },\n\t\t\tbaseRevision,\n\t\t\tmetadata,\n\t\t\tmoveEffects,\n\t\t\tnodeExistenceState,\n\t\t);\n\t} else {\n\t\trebasedMark = currMark;\n\t}\n\treturn rebasedMark;\n}\n\n/**\n * @returns A pair of marks that represent the effects which should remain in place in the face of concurrent move,\n * and the effects that should be sent to the move destination.\n */\nfunction separateEffectsForMove(mark: MarkEffect): { remains?: MarkEffect; follows?: MarkEffect } {\n\tconst type = mark.type;\n\tswitch (type) {\n\t\tcase \"Remove\":\n\t\tcase \"MoveOut\":\n\t\t\treturn { follows: mark };\n\t\tcase \"AttachAndDetach\":\n\t\t\treturn { follows: mark.detach, remains: mark.attach };\n\t\tcase \"MoveIn\":\n\t\t\treturn { remains: mark };\n\t\tcase NoopMarkType:\n\t\t\treturn {};\n\t\tcase \"Insert\": {\n\t\t\tconst follows: MoveOut = {\n\t\t\t\ttype: \"MoveOut\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\t\t\tconst remains: MoveIn = {\n\t\t\t\ttype: \"MoveIn\",\n\t\t\t\tid: mark.id,\n\t\t\t};\n\t\t\tif (mark.revision !== undefined) {\n\t\t\t\tfollows.revision = mark.revision;\n\t\t\t\tremains.revision = mark.revision;\n\t\t\t}\n\t\t\treturn { remains, follows };\n\t\t}\n\t\tdefault:\n\t\t\tunreachableCase(type);\n\t}\n}\n\n// TODO: Reduce the duplication between this and other MoveEffect helpers\nfunction sendEffectToDest(\n\tmarkEffect: MarkEffect,\n\tmoveEffects: MoveEffectTable,\n\t{ revision, localId: id }: ChangeAtomId,\n\tcount: number,\n) {\n\tconst effect = getMoveEffect(\n\t\tmoveEffects,\n\t\tCrossFieldTarget.Destination,\n\t\trevision,\n\t\tid,\n\t\tcount,\n\t\tfalse,\n\t);\n\tif (effect.length < count) {\n\t\tconst [markEffect1, markEffect2] = splitMarkEffect(markEffect, effect.length);\n\t\tconst newEffect =\n\t\t\teffect.value !== undefined\n\t\t\t\t? { ...effect.value, movedMark: markEffect1 }\n\t\t\t\t: { movedMark: markEffect1 };\n\t\tsetMoveEffect(\n\t\t\tmoveEffects,\n\t\t\tCrossFieldTarget.Destination,\n\t\t\trevision,\n\t\t\tid,\n\t\t\teffect.length,\n\t\t\tnewEffect,\n\t\t);\n\t\tsendEffectToDest(\n\t\t\tmarkEffect2,\n\t\t\tmoveEffects,\n\t\t\t{ revision, localId: brand(id + effect.length) },\n\t\t\tcount - effect.length,\n\t\t);\n\t} else {\n\t\tconst newEffect: MoveEffect =\n\t\t\teffect.value !== undefined\n\t\t\t\t? { ...effect.value, movedEffect: markEffect }\n\t\t\t\t: { movedEffect: markEffect };\n\t\tsetMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count, newEffect);\n\t}\n}\n\nfunction moveRebasedChanges(\n\tnodeChange: NodeId,\n\tmoveEffects: MoveEffectTable,\n\t{ revision, localId: id }: ChangeAtomId,\n) {\n\tconst effect = getMoveEffect(\n\t\tmoveEffects,\n\t\tCrossFieldTarget.Destination,\n\t\trevision,\n\t\tid,\n\t\t1,\n\t\tfalse,\n\t).value;\n\n\tconst newEffect =\n\t\teffect !== undefined\n\t\t\t? { ...effect, rebasedChanges: nodeChange }\n\t\t\t: { rebasedChanges: nodeChange };\n\n\tsetMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, 1, newEffect);\n}\n\nfunction rebaseNodeChange(currMark: Mark, baseMark: Mark, nodeRebaser: NodeChangeRebaser): Mark {\n\tconst baseChange = baseMark.changes;\n\tconst currChange = currMark.changes;\n\n\tif (baseChange === undefined && currChange === undefined) {\n\t\treturn currMark;\n\t}\n\n\tif (markEmptiesCells(baseMark) && !isMoveMark(baseMark)) {\n\t\treturn withNodeChange(\n\t\t\tcurrMark,\n\t\t\tnodeRebaser(currChange, baseChange, NodeExistenceState.Dead),\n\t\t);\n\t} else if (markFillsCells(baseMark) && !isMoveMark(baseMark)) {\n\t\treturn withNodeChange(\n\t\t\tcurrMark,\n\t\t\tnodeRebaser(currChange, baseChange, NodeExistenceState.Alive),\n\t\t);\n\t}\n\n\treturn withNodeChange(currMark, nodeRebaser(currChange, baseChange));\n}\n\nfunction makeDetachedMark(mark: Mark, cellId: ChangeAtomId): Mark {\n\tassert(mark.cellId === undefined, 0x69f /* Expected mark to be attached */);\n\treturn { ...mark, cellId };\n}\n\nfunction withCellId<TMark extends Mark>(mark: TMark, cellId: CellId | undefined): TMark {\n\tconst newMark = { ...mark, cellId };\n\tif (cellId === undefined) {\n\t\tdelete newMark.cellId;\n\t}\n\treturn newMark;\n}\n\nfunction getMovedEffectFromBaseMark(\n\tmoveEffects: MoveEffectTable,\n\tbaseMark: Mark,\n\tbaseRevision: RevisionTag | undefined,\n): MarkEffect | undefined {\n\tif (isMoveIn(baseMark)) {\n\t\treturn getMovedEffect(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.revision ?? baseRevision,\n\t\t\tbaseMark.id,\n\t\t\tbaseMark.count,\n\t\t);\n\t} else if (isAttachAndDetachEffect(baseMark) && isMoveIn(baseMark.attach)) {\n\t\treturn getMovedEffect(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.attach.revision ?? baseRevision,\n\t\t\tbaseMark.attach.id,\n\t\t\tbaseMark.count,\n\t\t);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\n// It is expected that the range from `id` to `id + count - 1` has the same move effect.\n// The call sites to this function are making queries about a mark which has already been split by a `MarkQueue`\n// to match the ranges in `moveEffects`.\n// TODO: Reduce the duplication between this and other MoveEffect helpers\nfunction getMovedEffect(\n\tmoveEffects: MoveEffectTable,\n\trevision: RevisionTag | undefined,\n\tid: MoveId,\n\tcount: number,\n): MarkEffect | undefined {\n\tconst effect = getMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, count);\n\tassert(effect.length === count, 0x6f3 /* Expected effect to cover entire mark */);\n\treturn effect.value?.movedEffect;\n}\n\nfunction getMovedChangesFromBaseMark(\n\tmoveEffects: MoveEffectTable,\n\tbaseMark: Mark,\n\tbaseRevision: RevisionTag | undefined,\n): NodeId | undefined {\n\tif (isMoveIn(baseMark)) {\n\t\treturn getMovedNodeChanges(moveEffects, baseMark.revision ?? baseRevision, baseMark.id);\n\t} else if (isAttachAndDetachEffect(baseMark) && isMoveIn(baseMark.attach)) {\n\t\treturn getMovedNodeChanges(\n\t\t\tmoveEffects,\n\t\t\tbaseMark.attach.revision ?? baseRevision,\n\t\t\tbaseMark.attach.id,\n\t\t);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nfunction getMovedNodeChanges(\n\tmoveEffects: MoveEffectTable,\n\trevision: RevisionTag | undefined,\n\tid: MoveId,\n): NodeId | undefined {\n\treturn getMoveEffect(moveEffects, CrossFieldTarget.Destination, revision, id, 1).value\n\t\t?.rebasedChanges;\n}\n\ntype CellBlockList = CellBlock[];\n\ninterface CellBlock {\n\treadonly cellId: CellId | undefined;\n\n\t// The index of the oldest revision where this cell is full in its output context.\n\t// May be -Infinity if the cell was full in the input context of the base changeset,\n\t// or +Infinity if the cell was empty for all revisions in the base changeset.\n\treadonly firstAttachedRevisionIndex: number;\n\n\t// The index of the newest revision where this cell is full in its output context.\n\t// May be -Infinity if the cell was empty for all revisions in the base changeset,\n\t// or +Infinity if the cell is full in the output context of the base changeset.\n\treadonly lastAttachedRevisionIndex: number;\n}\n\nfunction handleLineage(\n\tcellId: CellId,\n\tdetachBlocks: Map<RevisionTag, IdRange[]>,\n\tmetadata: RebaseRevisionMetadata,\n) {\n\tconst baseRevisions = metadata\n\t\t.getBaseRevisions()\n\t\t.map((r) => getIntention(r, metadata) ?? fail(\"Intention should be defined\"));\n\n\tremoveLineageEvents(cellId, new Set(baseRevisions));\n\n\tfor (const [revision, detachBlock] of detachBlocks.entries()) {\n\t\tif (shouldReceiveLineage(cellId.revision, revision, metadata)) {\n\t\t\tconst intention = metadata.tryGetInfo(revision)?.rollbackOf ?? revision;\n\t\t\tfor (const entry of detachBlock) {\n\t\t\t\taddLineageEntry(cellId, intention, entry.id, entry.count, entry.count);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getRevisionIndex(metadata: RevisionMetadataSource, revision: RevisionTag): number {\n\tconst index = metadata.getIndex(revision);\n\tif (index !== undefined) {\n\t\treturn index;\n\t}\n\n\t// This revision is not in the changesets being handled and must be older than them.\n\treturn -Infinity;\n}\n\nfunction updateLineageState(\n\tcellBlocks: CellBlockList,\n\tdetachBlocks: Map<RevisionTag, IdRange[]>,\n\tbaseMark: Mark,\n\tbaseRevision: RevisionTag | undefined,\n\trebasedMark: Mark,\n\tmetadata: RevisionMetadataSource,\n) {\n\tconst attachRevisionIndex = getAttachRevisionIndex(metadata, baseMark, baseRevision);\n\tconst detachRevisionIndex = getDetachRevisionIndex(metadata, baseMark, baseRevision);\n\tfor (const revision of detachBlocks.keys()) {\n\t\tconst revisionIndex = getRevisionIndex(metadata, revision);\n\t\t// revisionIndex can be -Infinity if it is from a re-detach\n\t\tif (\n\t\t\trevisionIndex > -Infinity &&\n\t\t\tattachRevisionIndex <= revisionIndex &&\n\t\t\trevisionIndex < detachRevisionIndex\n\t\t) {\n\t\t\tdetachBlocks.delete(revision);\n\t\t}\n\t}\n\n\tcellBlocks.push({\n\t\tcellId: rebasedMark.cellId,\n\t\tfirstAttachedRevisionIndex: attachRevisionIndex,\n\t\tlastAttachedRevisionIndex: detachRevisionIndex - 1,\n\t});\n}\n\nfunction getAttachRevisionIndex(\n\tmetadata: RevisionMetadataSource,\n\tbaseMark: Mark,\n\tbaseRevision: RevisionTag | undefined,\n): number {\n\tif (!areInputCellsEmpty(baseMark)) {\n\t\treturn -Infinity;\n\t}\n\n\tif (markFillsCells(baseMark)) {\n\t\tassert(isAttach(baseMark), 0x81b /* Only attach marks can fill cells */);\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\tif (isAttachAndDetachEffect(baseMark)) {\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.attach.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\treturn Infinity;\n}\n\nfunction getDetachRevisionIndex(\n\tmetadata: RevisionMetadataSource,\n\tbaseMark: Mark,\n\tbaseRevision: RevisionTag | undefined,\n): number {\n\tif (!areOutputCellsEmpty(baseMark)) {\n\t\treturn Infinity;\n\t}\n\n\tif (markEmptiesCells(baseMark)) {\n\t\tassert(isDetach(baseMark), 0x81c /* Only detach marks can empty cells */);\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\tif (isAttachAndDetachEffect(baseMark)) {\n\t\treturn getRevisionIndex(\n\t\t\tmetadata,\n\t\t\tbaseMark.detach.revision ?? baseRevision ?? fail(\"Mark must have revision\"),\n\t\t);\n\t}\n\n\treturn -Infinity;\n}\n\nfunction addLineageToRecipients(\n\tcellBlocks: CellBlockList,\n\trevision: RevisionTag,\n\tid: ChangesetLocalId,\n\tcount: number,\n\tmetadata: RebaseRevisionMetadata,\n) {\n\tconst rollbackOf = metadata.tryGetInfo(revision)?.rollbackOf;\n\tconst intention = rollbackOf ?? revision;\n\tconst intentionIndex = getRevisionIndex(metadata, intention);\n\tfor (let i = cellBlocks.length - 1; i >= 0; i--) {\n\t\tconst entry = cellBlocks[i];\n\t\tif (\n\t\t\tentry.firstAttachedRevisionIndex <= intentionIndex &&\n\t\t\tintentionIndex <= entry.lastAttachedRevisionIndex\n\t\t) {\n\t\t\t// These cells were full in this revision, so cells earlier in the sequence\n\t\t\t// do not need to know about this lineage event.\n\t\t\treturn;\n\t\t}\n\n\t\t// We only add lineage to cells which were detached before the lineage event occurred.\n\t\tif (entry.cellId === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (shouldReceiveLineage(entry.cellId.revision, revision, metadata)) {\n\t\t\taddLineageEntry(entry.cellId, intention, id, count, 0);\n\t\t}\n\t}\n}\n\nfunction addLineageEntry(\n\tlineageHolder: HasLineage,\n\trevision: RevisionTag,\n\tid: ChangesetLocalId,\n\tcount: number,\n\toffset: number,\n) {\n\tif (lineageHolder.lineage === undefined) {\n\t\tlineageHolder.lineage = [];\n\t}\n\n\tif (lineageHolder.lineage.length > 0) {\n\t\tconst lastEntry = lineageHolder.lineage[lineageHolder.lineage.length - 1];\n\t\tif (lastEntry.revision === revision && (lastEntry.id as number) + lastEntry.count === id) {\n\t\t\tif (lastEntry.offset === lastEntry.count) {\n\t\t\t\tlineageHolder.lineage[lineageHolder.lineage.length - 1] = {\n\t\t\t\t\t...lastEntry,\n\t\t\t\t\tcount: lastEntry.count + count,\n\t\t\t\t\toffset: lastEntry.offset + offset,\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t} else if (offset === 0) {\n\t\t\t\tlineageHolder.lineage[lineageHolder.lineage.length - 1] = {\n\t\t\t\t\t...lastEntry,\n\t\t\t\t\tcount: lastEntry.count + count,\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tlineageHolder.lineage.push({ revision, id, count, offset });\n}\n\nfunction removeLineageEvents(lineageHolder: HasLineage, revisionsToRemove: Set<RevisionTag>) {\n\tif (lineageHolder.lineage === undefined) {\n\t\treturn;\n\t}\n\n\tlineageHolder.lineage = lineageHolder.lineage.filter(\n\t\t(event) => !revisionsToRemove.has(event.revision),\n\t);\n\tif (lineageHolder.lineage.length === 0) {\n\t\tdelete lineageHolder.lineage;\n\t}\n}\n\nfunction addIdRange(lineageEntries: IdRange[], range: IdRange): void {\n\tif (lineageEntries.length > 0) {\n\t\tconst lastEntry = lineageEntries[lineageEntries.length - 1];\n\t\tif ((lastEntry.id as number) + lastEntry.count === range.id) {\n\t\t\tlastEntry.count += range.count;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tlineageEntries.push(range);\n}\n\nfunction setMarkAdjacentCells(mark: Mark, adjacentCells: IdRange[]): void {\n\tassert(\n\t\tmark.cellId !== undefined,\n\t\t0x74d /* Can only set adjacent cells on a mark with cell ID */,\n\t);\n\tassert(mark.cellId.adjacentCells === undefined, 0x74e /* Should not overwrite adjacentCells */);\n\tmark.cellId.adjacentCells = adjacentCells;\n}\n\nfunction shouldReceiveLineage(\n\tcellRevision: RevisionTag | undefined,\n\tdetachRevision: RevisionTag,\n\tmetadata: RevisionMetadataSource,\n): boolean {\n\tif (cellRevision === undefined) {\n\t\t// An undefined cell revision means that the cell was created by the changeset we are rebasing.\n\t\t// Since this cell was been empty for all base revisions, it should receive lineage from all of them.\n\t\t// TODO: This cell does not need lineage from roll-forward revisions.\n\t\treturn true;\n\t}\n\n\tconst cellRevisionIndex = getRevisionIndex(metadata, cellRevision);\n\tconst rollbackOf = metadata.tryGetInfo(detachRevision)?.rollbackOf;\n\tconst detachIntention = rollbackOf ?? detachRevision;\n\tconst detachRevisionIndex = getRevisionIndex(metadata, detachIntention);\n\tif (detachRevisionIndex === undefined) {\n\t\t// This case means that these cells are being \"re-detached\" through a `redetachId`.\n\t\t// We could use the revision of the re-detach to determine whether or not this cell needs this lineage entry.\n\t\t// But to be conservative we always add lineage here.\n\t\treturn true;\n\t}\n\n\tconst isRollback = rollbackOf !== undefined;\n\treturn isRollback\n\t\t? detachRevisionIndex < cellRevisionIndex\n\t\t: detachRevisionIndex > cellRevisionIndex;\n}\n\n/**\n * Returns a number N which encodes how the cells of the two marks are aligned.\n * - If N is zero, then the first cell of `baseMark` is the same as the first cell of `newMark`.\n * - If N is positive, then the first N cells of `newMark` (or all its cells if N is greater than its length)\n * are before the first cell of `baseMark`.\n * - If N is negative, then the first N cells of `baseMark` (or all its cells if N is greater than its length)\n * are before the first cell of `newMark`.\n */\nfunction compareCellPositions(\n\tbaseRevision: RevisionTag | undefined,\n\tbaseMark: EmptyInputCellMark,\n\tnewMark: EmptyInputCellMark,\n\tmetadata: RevisionMetadataSource,\n): number {\n\tconst baseId = getInputCellId(baseMark, baseRevision, metadata);\n\tconst baseLength = baseMark.count;\n\tassert(baseId?.revision !== undefined, 0x6a0 /* baseMark should have cell ID */);\n\tconst newId = getInputCellId(newMark, undefined, metadata);\n\tassert(newId !== undefined, 0x85a /* newMark should have cell ID */);\n\tconst newLength = newMark.count;\n\tif (newId !== undefined && baseId.revision === newId.revision) {\n\t\tconst cmp = compareCellsFromSameRevision(baseId, baseMark.count, newId, newMark.count);\n\t\tif (cmp !== undefined) {\n\t\t\treturn cmp;\n\t\t}\n\t}\n\n\tif (newId !== undefined) {\n\t\tconst offset = getOffsetInCellRange(\n\t\t\tbaseId.lineage,\n\t\t\tnewId.revision,\n\t\t\tnewId.localId,\n\t\t\tnewLength,\n\t\t);\n\t\tif (offset !== undefined) {\n\t\t\treturn offset > 0 ? offset : -Infinity;\n\t\t}\n\n\t\tconst newOffset = getOffsetInCellRange(\n\t\t\tnewId.lineage,\n\t\t\tbaseId.revision,\n\t\t\tbaseId.localId,\n\t\t\tbaseLength,\n\t\t);\n\t\tif (newOffset !== undefined) {\n\t\t\treturn newOffset > 0 ? -newOffset : Infinity;\n\t\t}\n\t}\n\n\tif (newId !== undefined) {\n\t\tconst cmp = compareLineages(baseId, newId);\n\t\tif (cmp !== 0) {\n\t\t\treturn Math.sign(cmp) * Infinity;\n\t\t}\n\n\t\tconst cmp2 = compareMissingLineageEntries(baseId.lineage, newId.lineage, metadata);\n\t\tif (cmp2 !== 0) {\n\t\t\treturn Math.sign(cmp2) * Infinity;\n\t\t}\n\t}\n\n\t// Both cells must never have been filled (in their common history), otherwise they would have some common lineage.\n\t// A new attach targets a cell that has never been filled.\n\t// A mark can also target a cell which was initially filled on another branch, but which has never been filled on the current branch.\n\tif (newId.revision === undefined) {\n\t\t// An undefined revision must mean that the cell was created on the branch we are rebasing.\n\t\t// Since it is newer than the `baseMark`'s cell, it should come first.\n\t\treturn Infinity;\n\t}\n\n\tconst baseRevisionIndex = metadata.getIndex(baseId.revision);\n\tconst newRevisionIndex = metadata.getIndex(newId.revision);\n\n\tif (newRevisionIndex !== undefined && baseRevisionIndex !== undefined) {\n\t\treturn newRevisionIndex > baseRevisionIndex ? Infinity : -Infinity;\n\t}\n\n\tif (newRevisionIndex !== undefined) {\n\t\treturn Infinity;\n\t}\n\n\tif (baseRevisionIndex !== undefined) {\n\t\treturn -Infinity;\n\t}\n\n\t// `newMark` points to cells which were emptied before `baseMark` was created.\n\t// We use `baseMark`'s tiebreak policy as if `newMark`'s cells were created concurrently and before `baseMark`.\n\treturn -Infinity;\n}\n\nfunction compareMissingLineageEntries(\n\tlineage1: LineageEvent[] | undefined,\n\tlineage2: LineageEvent[] | undefined,\n\tmetadata: RevisionMetadataSource,\n): number {\n\tconst events1 = new Map<RevisionTag, LineageEvent>();\n\tfor (const event of lineage1 ?? []) {\n\t\tevents1.set(event.revision, event);\n\t}\n\n\tconst events2 = new Map<RevisionTag, LineageEvent>();\n\tfor (const event of lineage2 ?? []) {\n\t\tevents2.set(event.revision, event);\n\t}\n\n\tfor (const revision of events1.keys()) {\n\t\tif (events2.has(revision)) {\n\t\t\tevents1.delete(revision);\n\t\t\tevents2.delete(revision);\n\t\t}\n\t}\n\n\tfor (const event of events2.values()) {\n\t\t// We've found a cell C that was emptied before the cell1 started tracking lineage.\n\t\t// The cell1 should come before any such cell, so if cell2 comes after C\n\t\t// then we know that cell1 should come before the cell2.\n\t\t// TODO: Account for the cell1's tiebreak policy\n\t\tif (!metadata.hasRollback(event.revision) && event.offset !== 0) {\n\t\t\treturn -1;\n\t\t}\n\t}\n\n\t// cell1Events now contains only revisions which were not in cell2's lineage.\n\tfor (const event of events1.values()) {\n\t\t// We've found a cell C that was emptied before the cell2 started tracking lineage.\n\t\t// The cell2 should come before any such cell, so if cell1 comes after C\n\t\t// then we know that cell2 should come before the cell1.\n\t\t// TODO: Account for the cell2's tiebreak policy\n\t\tif (!metadata.hasRollback(event.revision) && event.offset !== 0) {\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\treturn 0;\n}\n"]}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { DeltaDetachedNodeId, TaggedChange } from "../../core/index.js";
|
|
6
6
|
import { Changeset } from "./types.js";
|
|
7
|
-
|
|
8
|
-
export declare function relevantRemovedRoots
|
|
7
|
+
import { RelevantRemovedRootsFromChild } from "../modular-schema/index.js";
|
|
8
|
+
export declare function relevantRemovedRoots({ change, revision }: TaggedChange<Changeset>, relevantRemovedRootsFromChild: RelevantRemovedRootsFromChild): Iterable<DeltaDetachedNodeId>;
|
|
9
9
|
//# sourceMappingURL=relevantRemovedRoots.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relevantRemovedRoots.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/relevantRemovedRoots.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"relevantRemovedRoots.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/relevantRemovedRoots.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAkB,MAAM,qBAAqB,CAAC;AAGxF,OAAO,EAAE,SAAS,EAAQ,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAE3E,wBAAiB,oBAAoB,CACpC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,EAC7C,6BAA6B,EAAE,6BAA6B,GAC1D,QAAQ,CAAC,mBAAmB,CAAC,CAgB/B"}
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.relevantRemovedRoots = void 0;
|
|
8
|
-
const
|
|
8
|
+
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
9
|
const index_js_1 = require("../../core/index.js");
|
|
10
10
|
const deltaUtils_js_1 = require("../deltaUtils.js");
|
|
11
11
|
const utils_js_1 = require("./utils.js");
|
|
12
12
|
function* relevantRemovedRoots({ change, revision }, relevantRemovedRootsFromChild) {
|
|
13
13
|
for (const mark of change) {
|
|
14
14
|
if (refersToRelevantRemovedRoots(mark)) {
|
|
15
|
-
(0,
|
|
15
|
+
(0, internal_1.assert)(mark.cellId !== undefined, 0x81d /* marks referring to removed trees must have an assigned cell ID */);
|
|
16
16
|
const nodeId = (0, deltaUtils_js_1.nodeIdFromChangeAtom)(mark.cellId, revision);
|
|
17
17
|
for (let i = 0; i < mark.count; i += 1) {
|
|
18
18
|
yield (0, index_js_1.offsetDetachId)(nodeId, i);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relevantRemovedRoots.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/relevantRemovedRoots.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"relevantRemovedRoots.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/relevantRemovedRoots.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA6D;AAE7D,kDAAwF;AACxF,oDAAwD;AAGxD,yCAAuF;AAGvF,QAAe,CAAC,CAAC,oBAAoB,CACpC,EAAE,MAAM,EAAE,QAAQ,EAA2B,EAC7C,6BAA4D;IAE5D,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;QAC1B,IAAI,4BAA4B,CAAC,IAAI,CAAC,EAAE;YACvC,IAAA,iBAAM,EACL,IAAI,CAAC,MAAM,KAAK,SAAS,EACzB,KAAK,CAAC,oEAAoE,CAC1E,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,oCAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;gBACvC,MAAM,IAAA,yBAAc,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAChC;SACD;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC/B,KAAK,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACnD;KACD;AACF,CAAC;AAnBD,oDAmBC;AAED,SAAS,4BAA4B,CAAC,IAAU;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAA,kCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,IAAI,IAAA,mBAAQ,EAAC,MAAM,CAAC,EAAE;YACrB,2CAA2C;YAC3C,OAAO,IAAI,CAAC;SACZ;aAAM,IAAI,IAAA,iCAAsB,EAAC,IAAI,CAAC,EAAE;YACxC,2DAA2D;YAC3D,OAAO,IAAI,CAAC;SACZ;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC/B,qCAAqC;YACrC,uFAAuF;YACvF,kGAAkG;YAClG,8DAA8D;YAC9D,8FAA8F;YAC9F,+FAA+F;YAC/F,OAAO,IAAI,CAAC;SACZ;KACD;IACD,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport { DeltaDetachedNodeId, TaggedChange, offsetDetachId } from \"../../core/index.js\";\nimport { nodeIdFromChangeAtom } from \"../deltaUtils.js\";\n\nimport { Changeset, Mark } from \"./types.js\";\nimport { isAttachAndDetachEffect, isDetachOfRemovedNodes, isInsert } from \"./utils.js\";\nimport { RelevantRemovedRootsFromChild } from \"../modular-schema/index.js\";\n\nexport function* relevantRemovedRoots(\n\t{ change, revision }: TaggedChange<Changeset>,\n\trelevantRemovedRootsFromChild: RelevantRemovedRootsFromChild,\n): Iterable<DeltaDetachedNodeId> {\n\tfor (const mark of change) {\n\t\tif (refersToRelevantRemovedRoots(mark)) {\n\t\t\tassert(\n\t\t\t\tmark.cellId !== undefined,\n\t\t\t\t0x81d /* marks referring to removed trees must have an assigned cell ID */,\n\t\t\t);\n\t\t\tconst nodeId = nodeIdFromChangeAtom(mark.cellId, revision);\n\t\t\tfor (let i = 0; i < mark.count; i += 1) {\n\t\t\t\tyield offsetDetachId(nodeId, i);\n\t\t\t}\n\t\t}\n\t\tif (mark.changes !== undefined) {\n\t\t\tyield* relevantRemovedRootsFromChild(mark.changes);\n\t\t}\n\t}\n}\n\nfunction refersToRelevantRemovedRoots(mark: Mark): boolean {\n\tif (mark.cellId !== undefined) {\n\t\tconst effect = isAttachAndDetachEffect(mark) ? mark.attach : mark;\n\t\tif (isInsert(effect)) {\n\t\t\t// This tree is being inserted or restored.\n\t\t\treturn true;\n\t\t} else if (isDetachOfRemovedNodes(mark)) {\n\t\t\t// This removed tree is being restored as part of a detach.\n\t\t\treturn true;\n\t\t}\n\t\tif (mark.changes !== undefined) {\n\t\t\t// This removed tree is being edited.\n\t\t\t// Note: there is a possibility that the child changes only affect a distant descendant\n\t\t\t// which may have been removed from this (removed) subtree. In such a case, this tree is not truly\n\t\t\t// relevant, but including it is the conservative thing to do.\n\t\t\t// In the future, we may represent changes to removed trees using the ID of the lowest removed\n\t\t\t// ancestor, which would allow us to avoid including such trees when they truly are not needed.\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n"]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { FieldChangeHandler } from "../modular-schema/index.js";
|
|
6
|
-
import { Changeset } from "./types.js";
|
|
7
6
|
import { SequenceFieldEditor } from "./sequenceFieldEditor.js";
|
|
7
|
+
import { Changeset } from "./types.js";
|
|
8
8
|
export type SequenceFieldChangeHandler = FieldChangeHandler<Changeset, SequenceFieldEditor>;
|
|
9
9
|
export declare const sequenceFieldChangeHandler: SequenceFieldChangeHandler;
|
|
10
10
|
//# sourceMappingURL=sequenceFieldChangeHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldChangeHandler.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"sequenceFieldChangeHandler.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKhE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAE5F,eAAO,MAAM,0BAA0B,EAAE,0BAQxC,CAAC"}
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.sequenceFieldChangeHandler = void 0;
|
|
8
|
+
const relevantRemovedRoots_js_1 = require("./relevantRemovedRoots.js");
|
|
8
9
|
const sequenceFieldChangeRebaser_js_1 = require("./sequenceFieldChangeRebaser.js");
|
|
9
10
|
const sequenceFieldCodecs_js_1 = require("./sequenceFieldCodecs.js");
|
|
10
11
|
const sequenceFieldEditor_js_1 = require("./sequenceFieldEditor.js");
|
|
11
12
|
const sequenceFieldToDelta_js_1 = require("./sequenceFieldToDelta.js");
|
|
12
13
|
const utils_js_1 = require("./utils.js");
|
|
13
|
-
const relevantRemovedRoots_js_1 = require("./relevantRemovedRoots.js");
|
|
14
14
|
exports.sequenceFieldChangeHandler = {
|
|
15
15
|
rebaser: sequenceFieldChangeRebaser_js_1.sequenceFieldChangeRebaser,
|
|
16
16
|
codecsFactory: sequenceFieldCodecs_js_1.sequenceFieldChangeCodecFactory,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldChangeHandler.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,mFAA6E;AAC7E,qEAA2E;AAC3E,qEAAoF;AACpF,uEAAiE;
|
|
1
|
+
{"version":3,"file":"sequenceFieldChangeHandler.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,uEAAiE;AACjE,mFAA6E;AAC7E,qEAA2E;AAC3E,qEAAoF;AACpF,uEAAiE;AAEjE,yCAAkD;AAIrC,QAAA,0BAA0B,GAA+B;IACrE,OAAO,EAAE,0DAA0B;IACnC,aAAa,EAAE,wDAA+B;IAC9C,MAAM,EAAE,4CAAmB;IAC3B,SAAS,EAAE,8CAAoB;IAC/B,oBAAoB,EAApB,8CAAoB;IACpB,OAAO,EAAP,kBAAO;IACP,WAAW,EAAX,sBAAW;CACX,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FieldChangeHandler } from \"../modular-schema/index.js\";\n\nimport { relevantRemovedRoots } from \"./relevantRemovedRoots.js\";\nimport { sequenceFieldChangeRebaser } from \"./sequenceFieldChangeRebaser.js\";\nimport { sequenceFieldChangeCodecFactory } from \"./sequenceFieldCodecs.js\";\nimport { SequenceFieldEditor, sequenceFieldEditor } from \"./sequenceFieldEditor.js\";\nimport { sequenceFieldToDelta } from \"./sequenceFieldToDelta.js\";\nimport { Changeset } from \"./types.js\";\nimport { createEmpty, isEmpty } from \"./utils.js\";\n\nexport type SequenceFieldChangeHandler = FieldChangeHandler<Changeset, SequenceFieldEditor>;\n\nexport const sequenceFieldChangeHandler: SequenceFieldChangeHandler = {\n\trebaser: sequenceFieldChangeRebaser,\n\tcodecsFactory: sequenceFieldChangeCodecFactory,\n\teditor: sequenceFieldEditor,\n\tintoDelta: sequenceFieldToDelta,\n\trelevantRemovedRoots,\n\tisEmpty,\n\tcreateEmpty,\n};\n"]}
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { FieldChangeRebaser } from "../modular-schema/index.js";
|
|
6
6
|
import { compose } from "./compose.js";
|
|
7
|
-
import { Changeset } from "./types.js";
|
|
8
7
|
import { invert } from "./invert.js";
|
|
9
|
-
import { rebase } from "./rebase.js";
|
|
10
8
|
import { prune } from "./prune.js";
|
|
9
|
+
import { rebase } from "./rebase.js";
|
|
10
|
+
import { Changeset } from "./types.js";
|
|
11
11
|
export type SequenceChangeRebaser = FieldChangeRebaser<Changeset>;
|
|
12
12
|
export declare const sequenceFieldChangeRebaser: {
|
|
13
13
|
compose: typeof compose;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldChangeRebaser.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"sequenceFieldChangeRebaser.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC"}
|
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.sequenceFieldChangeRebaser = void 0;
|
|
8
8
|
const compose_js_1 = require("./compose.js");
|
|
9
9
|
const invert_js_1 = require("./invert.js");
|
|
10
|
-
const rebase_js_1 = require("./rebase.js");
|
|
11
10
|
const prune_js_1 = require("./prune.js");
|
|
11
|
+
const rebase_js_1 = require("./rebase.js");
|
|
12
12
|
exports.sequenceFieldChangeRebaser = {
|
|
13
13
|
compose: compose_js_1.compose,
|
|
14
14
|
invert: invert_js_1.invert,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldChangeRebaser.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"sequenceFieldChangeRebaser.js","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,6CAAuC;AACvC,2CAAqC;AACrC,yCAAmC;AACnC,2CAAqC;AAKxB,QAAA,0BAA0B,GAAG;IACzC,OAAO,EAAP,oBAAO;IACP,MAAM,EAAN,kBAAM;IACN,MAAM,EAAN,kBAAM;IACN,KAAK,EAAL,gBAAK;CACL,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FieldChangeRebaser } from \"../modular-schema/index.js\";\n\nimport { compose } from \"./compose.js\";\nimport { invert } from \"./invert.js\";\nimport { prune } from \"./prune.js\";\nimport { rebase } from \"./rebase.js\";\nimport { Changeset } from \"./types.js\";\n\nexport type SequenceChangeRebaser = FieldChangeRebaser<Changeset>;\n\nexport const sequenceFieldChangeRebaser = {\n\tcompose,\n\tinvert,\n\trebase,\n\tprune,\n};\n"]}
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { JsonCompatibleReadOnly } from "../../util/index.js";
|
|
6
5
|
import { IJsonCodec } from "../../codec/index.js";
|
|
7
6
|
import { ChangeEncodingContext, EncodedRevisionTag, RevisionTag } from "../../core/index.js";
|
|
8
|
-
import {
|
|
9
|
-
export declare const sequenceFieldChangeCodecFactory:
|
|
7
|
+
import { FieldChangeEncodingContext } from "../index.js";
|
|
8
|
+
export declare const sequenceFieldChangeCodecFactory: (revisionTagCodec: IJsonCodec<RevisionTag, EncodedRevisionTag, EncodedRevisionTag, ChangeEncodingContext>) => import("../../codec/codec.js").ICodecFamily<import("./types.js").MarkList, FieldChangeEncodingContext>;
|
|
10
9
|
//# sourceMappingURL=sequenceFieldCodecs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceFieldCodecs.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldCodecs.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"sequenceFieldCodecs.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/sequence-field/sequenceFieldCodecs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAgC,UAAU,EAAmB,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoB7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,+BAA+B,qBACzB,WACjB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,CACrB,2GAC+F,CAAC"}
|
|
@@ -5,19 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.sequenceFieldChangeCodecFactory = void 0;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const index_js_2 = require("../../codec/index.js");
|
|
8
|
+
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
|
+
const index_js_1 = require("../../codec/index.js");
|
|
10
|
+
const index_js_2 = require("../../util/index.js");
|
|
12
11
|
const changeAtomIdCodec_js_1 = require("../changeAtomIdCodec.js");
|
|
13
|
-
const types_js_1 = require("./types.js");
|
|
14
12
|
const format_js_1 = require("./format.js");
|
|
13
|
+
const types_js_1 = require("./types.js");
|
|
15
14
|
const utils_js_1 = require("./utils.js");
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
]);
|
|
15
|
+
const index_js_3 = require("../modular-schema/index.js");
|
|
16
|
+
const sequenceFieldChangeCodecFactory = (revisionTagCodec) => (0, index_js_1.makeCodecFamily)([[1, makeV1Codec(revisionTagCodec)]]);
|
|
19
17
|
exports.sequenceFieldChangeCodecFactory = sequenceFieldChangeCodecFactory;
|
|
20
|
-
function
|
|
18
|
+
function makeV1Codec(revisionTagCodec) {
|
|
21
19
|
const changeAtomIdCodec = (0, changeAtomIdCodec_js_1.makeChangeAtomIdCodec)(revisionTagCodec);
|
|
22
20
|
const markEffectCodec = {
|
|
23
21
|
encode(effect, context) {
|
|
@@ -85,16 +83,16 @@ function makeV0Codec(childCodec, revisionTagCodec) {
|
|
|
85
83
|
},
|
|
86
84
|
};
|
|
87
85
|
case types_js_1.NoopMarkType:
|
|
88
|
-
(0,
|
|
86
|
+
(0, index_js_2.fail)(`Mark type: ${type} should not be encoded.`);
|
|
89
87
|
default:
|
|
90
|
-
(0,
|
|
88
|
+
(0, internal_1.unreachableCase)(type);
|
|
91
89
|
}
|
|
92
90
|
},
|
|
93
91
|
decode(encoded, context) {
|
|
94
92
|
return decoderLibrary.dispatch(encoded, context);
|
|
95
93
|
},
|
|
96
94
|
};
|
|
97
|
-
const decoderLibrary = new
|
|
95
|
+
const decoderLibrary = new index_js_1.DiscriminatedUnionDispatcher({
|
|
98
96
|
moveIn(encoded, context) {
|
|
99
97
|
const { id, finalEndpoint, revision } = encoded;
|
|
100
98
|
const mark = {
|
|
@@ -215,13 +213,13 @@ function makeV0Codec(childCodec, revisionTagCodec) {
|
|
|
215
213
|
count: mark.count,
|
|
216
214
|
};
|
|
217
215
|
if (!(0, utils_js_1.isNoopMark)(mark)) {
|
|
218
|
-
encodedMark.effect = markEffectCodec.encode(mark, context);
|
|
216
|
+
encodedMark.effect = markEffectCodec.encode(mark, context.baseContext);
|
|
219
217
|
}
|
|
220
218
|
if (mark.cellId !== undefined) {
|
|
221
|
-
encodedMark.cellId = cellIdCodec.encode(mark.cellId, context);
|
|
219
|
+
encodedMark.cellId = cellIdCodec.encode(mark.cellId, context.baseContext);
|
|
222
220
|
}
|
|
223
221
|
if (mark.changes !== undefined) {
|
|
224
|
-
encodedMark.changes =
|
|
222
|
+
encodedMark.changes = context.encodeNode(mark.changes);
|
|
225
223
|
}
|
|
226
224
|
jsonMarks.push(encodedMark);
|
|
227
225
|
}
|
|
@@ -234,19 +232,19 @@ function makeV0Codec(childCodec, revisionTagCodec) {
|
|
|
234
232
|
count: mark.count,
|
|
235
233
|
};
|
|
236
234
|
if (mark.effect !== undefined) {
|
|
237
|
-
Object.assign(decodedMark, markEffectCodec.decode(mark.effect, context));
|
|
235
|
+
Object.assign(decodedMark, markEffectCodec.decode(mark.effect, context.baseContext));
|
|
238
236
|
}
|
|
239
237
|
if (mark.cellId !== undefined) {
|
|
240
|
-
decodedMark.cellId = cellIdCodec.decode(mark.cellId, context);
|
|
238
|
+
decodedMark.cellId = cellIdCodec.decode(mark.cellId, context.baseContext);
|
|
241
239
|
}
|
|
242
240
|
if (mark.changes !== undefined) {
|
|
243
|
-
decodedMark.changes =
|
|
241
|
+
decodedMark.changes = context.decodeNode(mark.changes);
|
|
244
242
|
}
|
|
245
243
|
marks.push(decodedMark);
|
|
246
244
|
}
|
|
247
245
|
return marks;
|
|
248
246
|
},
|
|
249
|
-
encodedSchema: (0, format_js_1.Changeset)(
|
|
247
|
+
encodedSchema: (0, format_js_1.Changeset)(index_js_3.EncodedNodeChangeset),
|
|
250
248
|
};
|
|
251
249
|
}
|
|
252
250
|
//# sourceMappingURL=sequenceFieldCodecs.js.map
|