@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":"proxies.js","sourceRoot":"","sources":["../../src/simple-tree/proxies.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 } from \"@fluidframework/core-utils\";\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { brand, fail, isReadonlyArray } from \"../util/index.js\";\nimport {\n\tFlexAllowedTypes,\n\tFlexFieldSchema,\n\tFlexObjectNodeSchema,\n\tFlexTreeNodeSchema,\n\tschemaIsFieldNode,\n\tschemaIsLeaf,\n\tschemaIsMap,\n\tschemaIsObjectNode,\n\tFlexMapNodeSchema,\n\tFlexFieldNodeSchema,\n\tFieldKinds,\n\tFlexTreeFieldNode,\n\tFlexTreeMapNode,\n\tFlexTreeObjectNode,\n\tFlexTreeOptionalField,\n\tFlexTreeRequiredField,\n\tFlexTreeSequenceField,\n\tFlexTreeNode,\n\tFlexTreeTypedField,\n\tonNextChange,\n\ttypeNameSymbol,\n\tisFluidHandle,\n\tFlexTreeField,\n} from \"../feature-libraries/index.js\";\nimport { EmptyKey, FieldKey, TreeNodeSchemaIdentifier, TreeValue } from \"../core/index.js\";\n// TODO: decide how to deal with dependencies on flex-tree implementation.\n// eslint-disable-next-line import/no-internal-modules\nimport { LazyObjectNode, getBoxedField } from \"../feature-libraries/flex-tree/lazyNode.js\";\nimport {\n\ttype TreeNodeSchema as TreeNodeSchemaClass,\n\ttype InsertableTypedNode,\n\tNodeKind,\n\tTreeMapNode,\n} from \"./schemaTypes.js\";\nimport { IterableTreeArrayContent, TreeArrayNode } from \"./treeArrayNode.js\";\nimport { Unhydrated, TreeNode } from \"./types.js\";\nimport { tryGetFlexNodeTarget, setFlexNode, getFlexNode, tryGetFlexNode } from \"./flexNode.js\";\nimport { cursorFromFieldData, cursorFromNodeData } from \"./toMapTree.js\";\nimport { RawTreeNode, createRawNode, extractRawNodeContent } from \"./rawNode.js\";\n\n/**\n * Detects if the given 'candidate' is a TreeNode.\n *\n * @remarks\n * Supports both Hydrated and {@link Unhydrated} TreeNodes, both of which return true.\n *\n * Because the common usage is to check if a value being inserted/set is a TreeNode,\n * this function permits calling with primitives as well as objects.\n *\n * Primitives will always return false (as they are copies of data, not references to nodes).\n *\n * @param candidate - Value which may be a TreeNode\n * @returns true if the given 'candidate' is a hydrated TreeNode.\n */\nexport function isTreeNode(candidate: unknown): candidate is TreeNode | Unhydrated<TreeNode> {\n\treturn tryGetFlexNode(candidate) !== undefined;\n}\n\n/**\n * Retrieve the associated proxy for the given field.\n * */\nexport function getProxyForField(field: FlexTreeField): TreeNode | TreeValue | undefined {\n\tswitch (field.schema.kind) {\n\t\tcase FieldKinds.required: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.required>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(asValue.boxedContent);\n\t\t}\n\t\tcase FieldKinds.optional: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.optional>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\n\t\t\tconst maybeContent = asValue.boxedContent;\n\n\t\t\t// Normally, empty fields are unreachable due to the behavior of 'tryGetField'. However, the\n\t\t\t// root field is a special case where the field is always present (even if empty).\n\t\t\treturn maybeContent === undefined ? undefined : getOrCreateNodeProxy(maybeContent);\n\t\t}\n\t\t// TODO: Remove if/when 'FieldNode' is removed.\n\t\tcase FieldKinds.sequence: {\n\t\t\t// 'getProxyForNode' handles FieldNodes by unconditionally creating a array node proxy, making\n\t\t\t// this case unreachable as long as users follow the 'array recipe'.\n\t\t\tfail(\"'sequence' field is unexpected.\");\n\t\t}\n\t\tdefault:\n\t\t\tfail(\"invalid field kind\");\n\t}\n}\n\n/**\n * A symbol for storing TreeNodeSchemaClass on FlexTreeNode's schema.\n */\nexport const simpleSchemaSymbol: unique symbol = Symbol(`simpleSchema`);\n\nexport function getClassSchema(schema: FlexTreeNodeSchema): TreeNodeSchemaClass | undefined {\n\tif (simpleSchemaSymbol in schema) {\n\t\treturn schema[simpleSchemaSymbol] as TreeNodeSchemaClass;\n\t}\n\treturn undefined;\n}\n\nexport function getOrCreateNodeProxy(flexNode: FlexTreeNode): TreeNode | TreeValue {\n\tconst cachedProxy = tryGetFlexNodeTarget(flexNode);\n\tif (cachedProxy !== undefined) {\n\t\treturn cachedProxy;\n\t}\n\n\tconst schema = flexNode.schema;\n\tlet output: TreeNode | TreeValue;\n\tconst classSchema = getClassSchema(schema);\n\tif (classSchema !== undefined) {\n\t\tif (typeof classSchema === \"function\") {\n\t\t\tconst simpleSchema = classSchema as unknown as new (dummy: FlexTreeNode) => TreeNode;\n\t\t\toutput = new simpleSchema(flexNode);\n\t\t} else {\n\t\t\toutput = (schema as unknown as { create: (data: FlexTreeNode) => TreeNode }).create(\n\t\t\t\tflexNode,\n\t\t\t);\n\t\t}\n\t} else {\n\t\t// Fallback to createNodeProxy if needed.\n\t\t// TODO: maybe remove this fallback and error once migration to class based schema is done.\n\t\toutput = createNodeProxy(flexNode, false);\n\t}\n\treturn output;\n}\n\n/**\n * @param flexNode - underlying tree node which this proxy should wrap.\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided an empty collection of the relevant type is used for the target and a separate object created to dispatch methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide needed functionality depending on the schema kind.\n */\nexport function createNodeProxy(\n\tflexNode: FlexTreeNode,\n\tallowAdditionalProperties: boolean,\n\ttargetObject?: object,\n): TreeNode | TreeValue {\n\tconst schema = flexNode.schema;\n\tif (schemaIsLeaf(schema)) {\n\t\t// Can't use `??` here since null is a valid TreeValue.\n\t\tassert(flexNode.value !== undefined, 0x887 /* Leaf must have value */);\n\t\treturn flexNode.value;\n\t}\n\tlet proxy: TreeNode;\n\tif (schemaIsMap(schema)) {\n\t\tproxy = createMapProxy(allowAdditionalProperties, targetObject);\n\t} else if (schemaIsFieldNode(schema)) {\n\t\tproxy = createArrayNodeProxy(allowAdditionalProperties, targetObject);\n\t} else if (schemaIsObjectNode(schema)) {\n\t\tproxy = createObjectProxy(schema, allowAdditionalProperties, targetObject);\n\t} else {\n\t\tfail(\"unrecognized node kind\");\n\t}\n\tsetFlexNode(proxy, flexNode);\n\treturn proxy;\n}\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `{}` is used for the target.\n */\nexport function createObjectProxy<TSchema extends FlexObjectNodeSchema>(\n\tschema: TSchema,\n\tallowAdditionalProperties: boolean,\n\ttargetObject: object = {},\n): TreeNode {\n\t// To satisfy 'deepEquals' level scrutiny, the target of the proxy must be an object with the same\n\t// prototype as an object literal '{}'. This is because 'deepEquals' uses 'Object.getPrototypeOf'\n\t// as a way to quickly reject objects with different prototype chains.\n\t//\n\t// (Note that the prototype of an object literal appears as '[Object: null prototype] {}', not because\n\t// the prototype is null, but because the prototype object itself has a null prototype.)\n\n\t// TODO: Although the target is an object literal, it's still worthwhile to try experimenting with\n\t// a dispatch object to see if it improves performance.\n\tconst proxy = new Proxy(targetObject, {\n\t\tget(target, key): unknown {\n\t\t\tconst field = getFlexNode(proxy).tryGetField(key as FieldKey);\n\t\t\tif (field !== undefined) {\n\t\t\t\treturn getProxyForField(field);\n\t\t\t}\n\n\t\t\t// Pass the proxy as the receiver here, so that any methods on the prototype receive `proxy` as `this`.\n\t\t\treturn Reflect.get(target, key, proxy);\n\t\t},\n\t\tset(target, key, value: InsertableContent) {\n\t\t\tconst flexNode = getFlexNode(proxy);\n\t\t\tconst flexNodeSchema = flexNode.schema;\n\t\t\tassert(flexNodeSchema instanceof FlexObjectNodeSchema, 0x888 /* invalid schema */);\n\t\t\tconst fieldSchema = flexNodeSchema.objectNodeFields.get(key as FieldKey);\n\n\t\t\tif (fieldSchema === undefined) {\n\t\t\t\treturn allowAdditionalProperties ? Reflect.set(target, key, value) : false;\n\t\t\t}\n\n\t\t\t// TODO: Is it safe to assume 'content' is a LazyObjectNode?\n\t\t\tassert(flexNode instanceof LazyObjectNode, 0x7e0 /* invalid content */);\n\t\t\tassert(typeof key === \"string\", 0x7e1 /* invalid key */);\n\t\t\tconst field = getBoxedField(flexNode, brand(key), fieldSchema);\n\n\t\t\tswitch (field.schema.kind) {\n\t\t\t\tcase FieldKinds.required:\n\t\t\t\tcase FieldKinds.optional: {\n\t\t\t\t\tconst typedField = field as\n\t\t\t\t\t\t| FlexTreeRequiredField<FlexAllowedTypes>\n\t\t\t\t\t\t| FlexTreeOptionalField<FlexAllowedTypes>;\n\n\t\t\t\t\tconst { content, hydrateProxies } = extractFactoryContent(value);\n\t\t\t\t\tconst cursor = cursorFromNodeData(\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tflexNode.context.schema,\n\t\t\t\t\t\tfieldSchema.allowedTypeSet,\n\t\t\t\t\t);\n\t\t\t\t\tmodifyChildren(\n\t\t\t\t\t\tflexNode,\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\ttypedField.content = cursor;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => hydrateProxies(typedField.boxedContent),\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdefault:\n\t\t\t\t\tfail(\"invalid FieldKind\");\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\thas: (target, key) => {\n\t\t\treturn (\n\t\t\t\tschema.objectNodeFields.has(key as FieldKey) ||\n\t\t\t\t(allowAdditionalProperties ? Reflect.has(target, key) : false)\n\t\t\t);\n\t\t},\n\t\townKeys: (target) => {\n\t\t\treturn [\n\t\t\t\t...schema.objectNodeFields.keys(),\n\t\t\t\t...(allowAdditionalProperties ? Reflect.ownKeys(target) : []),\n\t\t\t];\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key) => {\n\t\t\tconst field = getFlexNode(proxy).tryGetField(key as FieldKey);\n\n\t\t\tif (field === undefined) {\n\t\t\t\treturn allowAdditionalProperties\n\t\t\t\t\t? Reflect.getOwnPropertyDescriptor(target, key)\n\t\t\t\t\t: undefined;\n\t\t\t}\n\n\t\t\tconst p: PropertyDescriptor = {\n\t\t\t\tvalue: getProxyForField(field),\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true, // Must be 'configurable' if property is absent from proxy target.\n\t\t\t};\n\n\t\t\treturn p;\n\t\t},\n\t}) as TreeNode;\n\treturn proxy;\n}\n\n/**\n * Given a array node proxy, returns its underlying LazySequence field.\n */\nexport const getSequenceField = <TTypes extends FlexAllowedTypes>(arrayNode: TreeArrayNode) =>\n\tgetFlexNode(arrayNode).content as FlexTreeSequenceField<TTypes>;\n\n// Used by 'insert*()' APIs to converts new content (expressed as a proxy union) to contextually\n// typed data prior to forwarding to 'LazySequence.insert*()'.\nfunction contextualizeInsertedArrayContent(\n\tinsertedAtIndex: number,\n\tcontent: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[],\n): ExtractedFactoryContent {\n\treturn extractFactoryContent(\n\t\tcontent.flatMap((c): InsertableContent[] =>\n\t\t\tc instanceof IterableTreeArrayContent ? Array.from(c) : [c],\n\t\t),\n\t\tinsertedAtIndex,\n\t);\n}\n\n// #region Create dispatch map for array nodes\n\n// TODO: Experiment with alternative dispatch methods to see if we can improve performance.\n\n/**\n * PropertyDescriptorMap used to build the prototype for our array node dispatch object.\n */\nexport const arrayNodePrototypeProperties: PropertyDescriptorMap = {\n\t// We manually add [Symbol.iterator] to the dispatch map rather than use '[fn.name] = fn' as\n\t// below when adding 'Array.prototype.*' properties to this map because 'Array.prototype[Symbol.iterator].name'\n\t// returns \"values\" (i.e., Symbol.iterator is an alias for the '.values()' function.)\n\t[Symbol.iterator]: {\n\t\tvalue: Array.prototype[Symbol.iterator],\n\t},\n\tat: {\n\t\tvalue(this: TreeArrayNode, index: number): TreeNode | TreeValue | undefined {\n\t\t\tconst field = getSequenceField(this);\n\t\t\tconst val = field.boxedAt(index);\n\n\t\t\tif (val === undefined) {\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\treturn getOrCreateNodeProxy(val);\n\t\t},\n\t},\n\tinsertAt: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tindex: number,\n\t\t\t...value: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedArrayContent(index, value);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAt(index, cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tinsertAtStart: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\t...value: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedArrayContent(0, value);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAtStart(cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tinsertAtEnd: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\t...value: readonly (InsertableContent | IterableTreeArrayContent<InsertableContent>)[]\n\t\t): void {\n\t\t\tconst sequenceField = getSequenceField(this);\n\n\t\t\tconst { content, hydrateProxies } = contextualizeInsertedArrayContent(\n\t\t\t\tthis.length,\n\t\t\t\tvalue,\n\t\t\t);\n\t\t\tconst cursor = cursorFromFieldData(\n\t\t\t\tcontent,\n\t\t\t\tsequenceField.context.schema,\n\t\t\t\tsequenceField.schema,\n\t\t\t);\n\n\t\t\tmodifyChildren(\n\t\t\t\tgetFlexNode(this),\n\t\t\t\t() => sequenceField.insertAtEnd(cursor),\n\t\t\t\t(listFlexNode) => hydrateProxies(listFlexNode),\n\t\t\t);\n\t\t},\n\t},\n\tremoveAt: {\n\t\tvalue(this: TreeArrayNode, index: number): void {\n\t\t\tgetSequenceField(this).removeAt(index);\n\t\t},\n\t},\n\tremoveRange: {\n\t\tvalue(this: TreeArrayNode, start?: number, end?: number): void {\n\t\t\tgetSequenceField(this).removeRange(start, end);\n\t\t},\n\t},\n\tmoveToStart: {\n\t\tvalue(this: TreeArrayNode, sourceIndex: number, source?: TreeArrayNode): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToStart(sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToStart(sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveToEnd: {\n\t\tvalue(this: TreeArrayNode, sourceIndex: number, source?: TreeArrayNode): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToEnd(sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToEnd(sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveToIndex: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tindex: number,\n\t\t\tsourceIndex: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex, getSequenceField(source));\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToStart: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToStart(\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToStart(sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToEnd: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToEnd(\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToEnd(sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n\tmoveRangeToIndex: {\n\t\tvalue(\n\t\t\tthis: TreeArrayNode,\n\t\t\tindex: number,\n\t\t\tsourceStart: number,\n\t\t\tsourceEnd: number,\n\t\t\tsource?: TreeArrayNode,\n\t\t): void {\n\t\t\tif (source !== undefined) {\n\t\t\t\tgetSequenceField(this).moveRangeToIndex(\n\t\t\t\t\tindex,\n\t\t\t\t\tsourceStart,\n\t\t\t\t\tsourceEnd,\n\t\t\t\t\tgetSequenceField(source),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tgetSequenceField(this).moveRangeToIndex(index, sourceStart, sourceEnd);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/* eslint-disable @typescript-eslint/unbound-method */\n\n// For compatibility, we are initially implement 'readonly T[]' by applying the Array.prototype methods\n// to the array node proxy. Over time, we should replace these with efficient implementations on LazySequence\n// to avoid re-entering the proxy as these methods access 'length' and the indexed properties.\n//\n// For brevity, the current implementation dynamically builds a property descriptor map from a list of\n// Array functions we want to re-expose via the proxy.\n\n// TODO: This assumes 'Function.name' matches the property name on 'Array.prototype', which may be\n// dubious across JS engines.\n[\n\tArray.prototype.concat,\n\t// Array.prototype.copyWithin,\n\tArray.prototype.entries,\n\tArray.prototype.every,\n\t// Array.prototype.fill,\n\tArray.prototype.filter,\n\tArray.prototype.find,\n\tArray.prototype.findIndex,\n\tArray.prototype.flat,\n\tArray.prototype.flatMap,\n\tArray.prototype.forEach,\n\tArray.prototype.includes,\n\tArray.prototype.indexOf,\n\tArray.prototype.join,\n\tArray.prototype.keys,\n\tArray.prototype.lastIndexOf,\n\t// Array.prototype.length,\n\tArray.prototype.map,\n\t// Array.prototype.pop,\n\t// Array.prototype.push,\n\tArray.prototype.reduce,\n\tArray.prototype.reduceRight,\n\t// Array.prototype.reverse,\n\t// Array.prototype.shift,\n\tArray.prototype.slice,\n\tArray.prototype.some,\n\t// Array.prototype.sort,\n\t// Array.prototype.splice,\n\tArray.prototype.toLocaleString,\n\tArray.prototype.toString,\n\t// Array.prototype.unshift,\n\tArray.prototype.values,\n].forEach((fn) => {\n\tarrayNodePrototypeProperties[fn.name] = { value: fn };\n});\n\n/* eslint-enable @typescript-eslint/unbound-method */\n\nconst arrayNodePrototype = Object.create(Object.prototype, arrayNodePrototypeProperties);\n\n// #endregion\n\n/**\n * Helper to coerce property keys to integer indexes (or undefined if not an in-range integer).\n */\nfunction asIndex(key: string | symbol, length: number) {\n\tif (typeof key === \"string\") {\n\t\t// TODO: It may be worth a '0' <= ch <= '9' check before calling 'Number' to quickly\n\t\t// reject 'length' as an index, or even parsing integers ourselves.\n\t\tconst asNumber = Number(key);\n\n\t\t// TODO: See 'matrix/range.ts' for fast integer coercing + range check.\n\t\tif (Number.isInteger(asNumber)) {\n\t\t\treturn 0 <= asNumber && asNumber < length ? asNumber : undefined;\n\t\t}\n\t}\n}\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `[]` is used for the target and a separate object created to dispatch array methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide `length` and the array functionality from {@link arrayNodePrototype}.\n */\nfunction createArrayNodeProxy(\n\tallowAdditionalProperties: boolean,\n\tcustomTargetObject?: object,\n): TreeArrayNode {\n\tconst targetObject = customTargetObject ?? [];\n\n\t// Create a 'dispatch' object that this Proxy forwards to instead of the proxy target, because we need\n\t// the proxy target to be a plain JS array (see comments below when we instantiate the Proxy).\n\t// Own properties on the dispatch object are surfaced as own properties of the proxy.\n\t// (e.g., 'length', which is defined below).\n\t//\n\t// Properties normally inherited from 'Array.prototype' are surfaced via the prototype chain.\n\tconst dispatch: object =\n\t\tcustomTargetObject ??\n\t\tObject.create(arrayNodePrototype, {\n\t\t\tlength: {\n\t\t\t\tget(this: TreeArrayNode) {\n\t\t\t\t\treturn getSequenceField(this).length;\n\t\t\t\t},\n\t\t\t\tset() {},\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t},\n\t\t});\n\n\t// To satisfy 'deepEquals' level scrutiny, the target of the proxy must be an array literal in order\n\t// to pass 'Object.getPrototypeOf'. It also satisfies 'Array.isArray' and 'Object.prototype.toString'\n\t// requirements without use of Array[Symbol.species], which is potentially on a path ot deprecation.\n\tconst proxy: TreeArrayNode = new Proxy<TreeArrayNode>(targetObject as any, {\n\t\tget: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\n\t\t\tif (maybeIndex === undefined) {\n\t\t\t\t// Pass the proxy as the receiver here, so that any methods on\n\t\t\t\t// the prototype receive `proxy` as `this`.\n\t\t\t\treturn Reflect.get(dispatch, key, proxy) as unknown;\n\t\t\t}\n\n\t\t\tconst value = field.boxedAt(maybeIndex);\n\n\t\t\tif (value === undefined) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(value);\n\t\t},\n\t\tset: (target, key, newValue, receiver) => {\n\t\t\t// 'Symbol.isConcatSpreadable' may be set on an Array instance to modify the behavior of\n\t\t\t// the concat method. We allow this property to be added to the dispatch object.\n\t\t\tif (key === Symbol.isConcatSpreadable) {\n\t\t\t\treturn Reflect.set(dispatch, key, newValue, proxy);\n\t\t\t}\n\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\t// For MVP, we otherwise disallow setting properties (mutation is only available via the array node mutation APIs).\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn allowAdditionalProperties ? Reflect.set(target, key, newValue) : false;\n\t\t},\n\t\thas: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\treturn maybeIndex !== undefined || Reflect.has(dispatch, key);\n\t\t},\n\t\townKeys: (target) => {\n\t\t\tconst field = getSequenceField(proxy);\n\n\t\t\t// TODO: Would a lazy iterator to produce the indexes work / be more efficient?\n\t\t\t// TODO: Need to surface 'Symbol.isConcatSpreadable' as an own key.\n\t\t\treturn Array.from({ length: field.length }, (_, index) => `${index}`).concat(\"length\");\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key) => {\n\t\t\tconst field = getSequenceField(proxy);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\tconst val = field.boxedAt(maybeIndex);\n\t\t\t\t// To satisfy 'deepEquals' level scrutiny, the property descriptor for indexed properties must\n\t\t\t\t// be a simple value property (as opposed to using getter) and declared writable/enumerable/configurable.\n\t\t\t\treturn {\n\t\t\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t\t\t// as simple as calling '.at' since this skips the node and returns the FieldNode's\n\t\t\t\t\t// inner field.\n\t\t\t\t\tvalue: val === undefined ? val : getOrCreateNodeProxy(val),\n\t\t\t\t\twritable: true, // For MVP, disallow setting indexed properties.\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t};\n\t\t\t} else if (key === \"length\") {\n\t\t\t\t// To satisfy 'deepEquals' level scrutiny, the property descriptor for 'length' must be a simple\n\t\t\t\t// value property (as opposed to using getter) and be declared writable / non-configurable.\n\t\t\t\treturn {\n\t\t\t\t\tvalue: getSequenceField(proxy).length,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn Reflect.getOwnPropertyDescriptor(dispatch, key);\n\t\t},\n\t});\n\treturn proxy;\n}\n\n// #region Create dispatch map for maps\n\nexport const mapStaticDispatchMap: PropertyDescriptorMap = {\n\t[Symbol.iterator]: {\n\t\tvalue(this: TreeMapNode) {\n\t\t\treturn this.entries();\n\t\t},\n\t},\n\tdelete: {\n\t\tvalue(this: TreeMapNode, key: string): void {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tnode.delete(key);\n\t\t},\n\t},\n\tentries: {\n\t\t*value(this: TreeMapNode): IterableIterator<[string, unknown]> {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tfor (const key of node.keys()) {\n\t\t\t\tyield [key, getProxyForField(node.getBoxed(key))];\n\t\t\t}\n\t\t},\n\t},\n\tget: {\n\t\tvalue(this: TreeMapNode, key: string): unknown {\n\t\t\tconst node = getFlexNode(this);\n\t\t\tconst field = node.getBoxed(key);\n\t\t\treturn getProxyForField(field);\n\t\t},\n\t},\n\thas: {\n\t\tvalue(this: TreeMapNode, key: string): boolean {\n\t\t\tconst node = getFlexNode(this);\n\t\t\treturn node.has(key);\n\t\t},\n\t},\n\tkeys: {\n\t\tvalue(this: TreeMapNode): IterableIterator<string> {\n\t\t\tconst node = getFlexNode(this);\n\t\t\treturn node.keys();\n\t\t},\n\t},\n\tset: {\n\t\tvalue(\n\t\t\tthis: TreeMapNode,\n\t\t\tkey: string,\n\t\t\tvalue: InsertableTypedNode<TreeNodeSchemaClass>,\n\t\t): TreeMapNode {\n\t\t\tconst node = getFlexNode(this);\n\n\t\t\tconst { content, hydrateProxies } = extractFactoryContent(value as FactoryContent);\n\t\t\tconst cursor = cursorFromNodeData(\n\t\t\t\tcontent,\n\t\t\t\tnode.context.schema,\n\t\t\t\tnode.schema.mapFields.allowedTypeSet,\n\t\t\t);\n\t\t\tmodifyChildren(\n\t\t\t\tnode,\n\t\t\t\t(mapNode) => mapNode.set(key, cursor),\n\t\t\t\t(mapNode) => hydrateProxies(getMapChildNode(mapNode, key)),\n\t\t\t);\n\t\t\treturn this;\n\t\t},\n\t},\n\tsize: {\n\t\tget(this: TreeMapNode) {\n\t\t\treturn getFlexNode(this).size;\n\t\t},\n\t},\n\tvalues: {\n\t\t*value(this: TreeMapNode): IterableIterator<unknown> {\n\t\t\tfor (const [, value] of this.entries()) {\n\t\t\t\tyield value;\n\t\t\t}\n\t\t},\n\t},\n\t// TODO: add `clear` once we have established merge semantics for it.\n};\n\nconst mapPrototype = Object.create(Object.prototype, mapStaticDispatchMap);\n\n// #endregion\n\n/**\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `new Map()` is used for the target and a separate object created to dispatch map methods.\n * If provided, the customTargetObject will be used as both the dispatch object and the proxy target, and therefor must provide the map functionality from {@link mapPrototype}.\n */\nfunction createMapProxy(\n\tallowAdditionalProperties: boolean,\n\tcustomTargetObject?: object,\n): TreeMapNode {\n\t// Create a 'dispatch' object that this Proxy forwards to instead of the proxy target.\n\tconst dispatch: object =\n\t\tcustomTargetObject ??\n\t\tObject.create(mapPrototype, {\n\t\t\t// Empty - JavaScript Maps do not expose any \"own\" properties.\n\t\t});\n\tconst targetObject: object = customTargetObject ?? new Map<string, TreeNode>();\n\n\t// TODO: Although the target is an object literal, it's still worthwhile to try experimenting with\n\t// a dispatch object to see if it improves performance.\n\tconst proxy = new Proxy<TreeMapNode>(targetObject as TreeMapNode, {\n\t\tget: (target, key, receiver): unknown => {\n\t\t\t// Pass the proxy as the receiver here, so that any methods on the prototype receive `proxy` as `this`.\n\t\t\treturn Reflect.get(dispatch, key, proxy);\n\t\t},\n\t\tgetOwnPropertyDescriptor: (target, key): PropertyDescriptor | undefined => {\n\t\t\treturn Reflect.getOwnPropertyDescriptor(dispatch, key);\n\t\t},\n\t\thas: (target, key) => {\n\t\t\treturn Reflect.has(dispatch, key);\n\t\t},\n\t\tset: (target, key, newValue): boolean => {\n\t\t\treturn allowAdditionalProperties ? Reflect.set(dispatch, key, newValue) : false;\n\t\t},\n\t\townKeys: (target) => {\n\t\t\t// All of Map's properties are inherited via its prototype, so there is nothing to return here,\n\t\t\treturn [];\n\t\t},\n\t});\n\treturn proxy;\n}\n\n/**\n * Create a proxy to a {@link TreeObjectNode} that is backed by a raw object node (see {@link createRawNode}).\n * @param schema - the schema of the object node\n * @param content - the content to be stored in the raw node.\n * A copy of content is stored, the input `content` is not modified and can be safely reused in another call to {@link createRawObjectProxy}.\n * @param allowAdditionalProperties - If true, setting of unexpected properties will be forwarded to the target object.\n * Otherwise setting of unexpected properties will error.\n * @param customTargetObject - Target object of the proxy.\n * If not provided `{}` is used for the target.\n * @remarks\n * Because this proxy is backed by a raw node, it has the same limitations as the node created by {@link createRawNode}.\n * Most of its properties and methods will error if read/called.\n */\nexport function createRawNodeProxy(\n\tschema: FlexTreeNodeSchema,\n\tcontent: InsertableTypedNode<TreeNodeSchemaClass> & object,\n\tallowAdditionalProperties: boolean,\n\ttarget?: object,\n): Unhydrated<TreeNode> {\n\t// Shallow copy the content and then add the type name symbol to it.\n\tlet flexNode: RawTreeNode<FlexTreeNodeSchema, InsertableTypedNode<TreeNodeSchemaClass>>;\n\tlet proxy: TreeNode;\n\tif (schema instanceof FlexObjectNodeSchema) {\n\t\tconst contentCopy = copyContent(schema.name, content);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createObjectProxy(schema, allowAdditionalProperties, target);\n\t} else if (schema instanceof FlexFieldNodeSchema) {\n\t\t// simple-tree uses field nodes exclusively to represent array nodes\n\t\tconst contentCopy = copyContent(schema.name, content);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createArrayNodeProxy(allowAdditionalProperties, target);\n\t} else if (schema instanceof FlexMapNodeSchema) {\n\t\tconst contentCopy = copyContent(schema.name, content);\n\t\tflexNode = createRawNode(schema, contentCopy);\n\t\tproxy = createMapProxy(allowAdditionalProperties, target);\n\t} else {\n\t\tfail(\"Unrecognized content schema\");\n\t}\n\n\treturn setFlexNode(proxy, flexNode);\n}\n\nfunction copyContent<T extends object>(typeName: TreeNodeSchemaIdentifier, content: T): T {\n\tconst copy =\n\t\tcontent instanceof Map\n\t\t\t? (new Map(content) as T)\n\t\t\t: Array.isArray(content)\n\t\t\t? (content.slice() as T)\n\t\t\t: { ...content };\n\n\treturn Object.defineProperty(copy, typeNameSymbol, { value: typeName });\n}\n\ntype ProxyHydrator = (flexNode: FlexTreeNode | undefined) => void;\nconst noopHydrator: ProxyHydrator = () => {};\n\n/** The result returned by {@link extractFactoryContent} and its related helpers. */\ninterface ExtractedFactoryContent<out T = FactoryContent> {\n\t/** The content with the factory subtrees replaced. */\n\treadonly content: T;\n\t/**\n\t * A function which walks all factory-created object that underwent replacement/extraction.\n\t * Before hydration, those objects are unusable (see {@link createRawObjectProxy}).\n\t * However, after the content is fully inserted into the tree the `hydrateProxies` function may be invoked in order to update the contents of these objects such that they become a mirror of the content in the tree.\n\t * This must be done before any calls to {@link getOrCreateNodeProxy} so that the \"edit node to proxy\" mapping is correctly updated (see {@link setFlexNode}).\n\t */\n\treadonly hydrateProxies: ProxyHydrator;\n}\n\n/**\n * Given a content tree that is to be inserted into the shared tree, replace all subtrees that were created by factories\n * (via {@link SharedTreeObjectFactory.create}) with the content that was passed to those factories.\n * @param content - the content being inserted which may be, and/or may contain, factory-created content\n * @param insertedAtIndex - if the content being inserted is array node content, this must be the index in the array node at which the content is being inserted\n * @returns the result of the content replacement and a {@link ExtractedFactoryContent.hydrateProxies} function which must be invoked if present.\n * @remarks\n * This functions works recursively.\n * Factory-created objects that are nested inside of the content passed to other factory-created objects, and so on, will be in-lined.\n * This function also adds the hidden {@link typeNameSymbol} of each object schema to the output.\n * @example\n * ```ts\n * const x = foo.create({\n * a: 3, b: bar.create({\n * c: [baz.create({ d: 5 })]\n * })\n * });\n * const y = extractFactoryContent(x);\n * y === {\n * [typeNameSymbol]: \"foo\", a: 3, b: {\n * [typeNameSymbol]: \"bar\", c: [{ [typeNameSymbol]: \"baz\", d: 5 }]\n * }\n * }\n * ```\n */\nexport function extractFactoryContent(\n\tinput: InsertableContent,\n\tinsertedAtIndex = 0,\n): ExtractedFactoryContent {\n\tlet content: FactoryContent;\n\tlet fromFactory = false;\n\tconst rawFlexNode = tryGetFlexNode(input);\n\tif (rawFlexNode !== undefined) {\n\t\tconst factoryContent = extractRawNodeContent(rawFlexNode);\n\t\tif (factoryContent === undefined) {\n\t\t\t// We were passed a proxy, but that proxy doesn't have any raw content.\n\t\t\tthrow new Error(\"Cannot insert a node that is already in the tree\");\n\t\t}\n\t\tcontent = factoryContent;\n\t\tfromFactory = true;\n\t} else {\n\t\tcontent = input as FactoryContent;\n\t}\n\n\tassert(!isTreeNode(content), 0x844 /* Unhydrated insertion content should have FlexNode */);\n\n\tlet type: NodeKind;\n\tlet extractedContent: ExtractedFactoryContent;\n\tif (isReadonlyArray(content)) {\n\t\ttype = NodeKind.Array;\n\t\textractedContent = extractContentArray(\n\t\t\tcontent as readonly FactoryContent[],\n\t\t\tinsertedAtIndex,\n\t\t);\n\t} else if (content instanceof Map) {\n\t\ttype = NodeKind.Map;\n\t\textractedContent = extractContentMap(content as ReadonlyMap<string, FactoryContent>);\n\t} else if (typeof content === \"object\" && content !== null && !isFluidHandle(content)) {\n\t\ttype = NodeKind.Object;\n\t\textractedContent = extractContentObject(content as object);\n\t} else {\n\t\textractedContent = { content, hydrateProxies: noopHydrator };\n\t\ttype = NodeKind.Leaf;\n\t}\n\n\tif (isTreeNode(input)) {\n\t\tconst kindFromSchema = getNodeKind(input);\n\t\tassert(kindFromSchema === type, 0x845 /* kind of data should match kind of schema */);\n\t}\n\n\tif (fromFactory) {\n\t\treturn {\n\t\t\tcontent: extractedContent.content,\n\t\t\thydrateProxies: (flexNode) => {\n\t\t\t\t// This makes the input proxy usable and updates the proxy cache\n\t\t\t\tsetFlexNode(input as TreeNode, flexNode ?? fail(\"Expected edit node\"));\n\t\t\t\textractedContent.hydrateProxies(flexNode);\n\t\t\t},\n\t\t};\n\t}\n\n\treturn extractedContent;\n}\n\n/**\n * @param insertedAtIndex - Supply this if the extracted array content will be inserted into an existing array node in the tree.\n */\nfunction extractContentArray(\n\tinput: readonly FactoryContent[],\n\tinsertedAtIndex: number,\n): ExtractedFactoryContent {\n\tconst output: FactoryContent[] = [];\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [index: number, hydrate: ProxyHydrator][] = [];\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(input[i]);\n\t\toutput.push(childContent);\n\t\t// The conditional here is an optimization so that primitive items don't incur boxed reads for hydration\n\t\tif (hydrateProxies !== noopHydrator) {\n\t\t\thydrators.push([i, hydrateProxies]);\n\t\t}\n\t}\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7f6 /* Expected edit node to be defined when hydrating array node */,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tschemaIsFieldNode(flexNode.schema),\n\t\t\t\t0x7f7 /* Expected field node when hydrating array node */,\n\t\t\t);\n\t\t\thydrators.forEach(([i, hydrate]) =>\n\t\t\t\thydrate(\n\t\t\t\t\tgetArrayNodeChildNode(\n\t\t\t\t\t\tflexNode as FlexTreeFieldNode<FlexFieldNodeSchema>,\n\t\t\t\t\t\tinsertedAtIndex + i,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t};\n}\n\nfunction extractContentMap(input: ReadonlyMap<string, FactoryContent>): ExtractedFactoryContent {\n\tconst output = new Map();\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [key: string, hydrate: ProxyHydrator][] = [];\n\tfor (const [key, value] of input) {\n\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(value);\n\t\toutput.set(key, childContent);\n\t\t// The conditional here is an optimization so that primitive values don't incur boxed reads for hydration\n\t\tif (hydrateProxies !== noopHydrator) {\n\t\t\thydrators.push([key, hydrateProxies]);\n\t\t}\n\t}\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7f8 /* Expected edit node to be defined when hydrating map */,\n\t\t\t);\n\t\t\tassert(schemaIsMap(flexNode.schema), 0x7f9 /* Expected map node when hydrating map */);\n\t\t\thydrators.forEach(([key, hydrate]) =>\n\t\t\t\thydrate(getMapChildNode(flexNode as FlexTreeMapNode<FlexMapNodeSchema>, key)),\n\t\t\t);\n\t\t},\n\t};\n}\n\nfunction extractContentObject(input: {\n\treadonly [P in string]?: FactoryContent;\n}): ExtractedFactoryContent {\n\tconst output: Record<string, FactoryContent> = {};\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tconst hydrators: [key: string, hydrate: ProxyHydrator][] = [];\n\tfor (const [key, value] of Object.entries(input)) {\n\t\t// Treat undefined fields and missing fields the same.\n\t\t// Generally tree does not require explicit undefined values at runtime despite some of the schema aware type checking currently requiring it.\n\t\tif (value !== undefined) {\n\t\t\tconst { content: childContent, hydrateProxies } = extractFactoryContent(value);\n\t\t\toutput[key] = childContent;\n\t\t\thydrators.push([key, hydrateProxies]);\n\t\t}\n\t}\n\n\treturn {\n\t\tcontent: output,\n\t\thydrateProxies: (flexNode: FlexTreeNode | undefined) => {\n\t\t\tassert(\n\t\t\t\tflexNode !== undefined,\n\t\t\t\t0x7fa /* Expected edit node to be defined when hydrating object */,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tschemaIsObjectNode(flexNode.schema),\n\t\t\t\t0x7fb /* Expected object node when hydrating object content */,\n\t\t\t);\n\t\t\thydrators.forEach(([key, hydrate]) =>\n\t\t\t\thydrate(getObjectChildNode(flexNode as FlexTreeObjectNode, key)),\n\t\t\t);\n\t\t},\n\t};\n}\n\n/**\n * Content which can be used to build a node.\n * @remarks\n * Can contain unhydrated nodes, but can not be an unhydrated node at the root.\n */\nexport type FactoryContent =\n\t| IFluidHandle\n\t| string\n\t| number\n\t| boolean\n\t// eslint-disable-next-line @rushstack/no-new-null\n\t| null\n\t| ReadonlyMap<string, InsertableContent>\n\t| readonly InsertableContent[]\n\t| {\n\t\t\treadonly [P in string]?: InsertableContent;\n\t };\n\n/**\n * Content which can be inserted into a tree.\n */\nexport type InsertableContent = Unhydrated<TreeNode> | FactoryContent;\n\nfunction getArrayNodeChildNode(\n\tarrayNode: FlexTreeFieldNode<FlexFieldNodeSchema>,\n\tindex: number,\n): FlexTreeNode | undefined {\n\tconst field = arrayNode.tryGetField(EmptyKey);\n\tassert(\n\t\tfield?.schema.kind === FieldKinds.sequence,\n\t\t0x7fc /* Expected sequence field when hydrating array node */,\n\t);\n\treturn (field as FlexTreeSequenceField<FlexAllowedTypes>).boxedAt(index);\n}\n\nfunction getMapChildNode(\n\tmapNode: FlexTreeMapNode<FlexMapNodeSchema>,\n\tkey: string,\n): FlexTreeNode | undefined {\n\tconst field = mapNode.getBoxed(key);\n\tassert(\n\t\tfield.schema.kind === FieldKinds.optional,\n\t\t0x7fd /* Sequence field kind is unsupported as map values */,\n\t);\n\treturn (field as FlexTreeOptionalField<FlexAllowedTypes>).boxedContent;\n}\n\nfunction getObjectChildNode(objectNode: FlexTreeObjectNode, key: string): FlexTreeNode | undefined {\n\tconst field =\n\t\tobjectNode.tryGetField(brand(key)) ?? fail(\"Expected a field for inserted content\");\n\tassert(\n\t\tfield.schema.kind === FieldKinds.required || field.schema.kind === FieldKinds.optional,\n\t\t0x7fe /* Expected required or optional field kind */,\n\t);\n\treturn (\n\t\tfield as FlexTreeRequiredField<FlexAllowedTypes> | FlexTreeOptionalField<FlexAllowedTypes>\n\t).boxedContent;\n}\n\n/**\n * Run the given function `modify`.\n * If the function results in any changes to the direct children of `parent`, `after` will be run immediately thereafter.\n */\nfunction modifyChildren<T extends FlexTreeNode>(\n\tparent: T,\n\tmodify: (parent: T) => void,\n\tafter?: (parent: T) => void,\n): void {\n\tconst offNextChange = parent[onNextChange](() => after?.(parent));\n\tmodify(parent);\n\t// `onNextChange` unsubscribes itself after firing once. However, there is no guarantee that it will fire.\n\t// For example, the `modify` function may result in a no-op that doesn't trigger an edit (e.g. inserting `[]` into an array node).\n\t// In those cases, we must unsubscribe manually here. If `modify` was not a no-op, it does no harm to call this function anyway.\n\toffNextChange();\n}\n\n// TODO: Replace this with calls to `Tree.schema(node).kind` when dependency cycles are no longer a problem.\nfunction getNodeKind(node: TreeNode): NodeKind {\n\treturn (\n\t\tgetClassSchema(getFlexNode(node).schema)?.kind ??\n\t\tfail(\"NodeBase should always have class schema\")\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"proxies.js","sourceRoot":"","sources":["../../src/simple-tree/proxies.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 { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\tEmptyKey,\n\tIForestSubscription,\n\tTreeNodeSchemaIdentifier,\n\tTreeValue,\n\tUpPath,\n} from \"../core/index.js\";\n\nimport {\n\tFieldKinds,\n\tFlexFieldSchema,\n\tFlexTreeField,\n\tFlexTreeNode,\n\tFlexTreeTypedField,\n\tisFluidHandle,\n\ttypeNameSymbol,\n} from \"../feature-libraries/index.js\";\nimport { Mutable, brand, fail, isReadonlyArray } from \"../util/index.js\";\n\nimport { anchorProxy, tryGetFlexNode, tryGetProxy } from \"./proxyBinding.js\";\nimport { extractRawNodeContent } from \"./rawNode.js\";\nimport { tryGetSimpleNodeSchema } from \"./schemaCaching.js\";\nimport { NodeKind } from \"./schemaTypes.js\";\nimport { TreeNode, Unhydrated } from \"./types.js\";\n\n/**\n * Detects if the given 'candidate' is a TreeNode.\n *\n * @remarks\n * Supports both Hydrated and {@link Unhydrated} TreeNodes, both of which return true.\n *\n * Because the common usage is to check if a value being inserted/set is a TreeNode,\n * this function permits calling with primitives as well as objects.\n *\n * Primitives will always return false (as they are copies of data, not references to nodes).\n *\n * @param candidate - Value which may be a TreeNode\n * @returns true if the given 'candidate' is a hydrated TreeNode.\n */\nexport function isTreeNode(candidate: unknown): candidate is TreeNode | Unhydrated<TreeNode> {\n\treturn tryGetFlexNode(candidate) !== undefined;\n}\n\n/**\n * Retrieve the associated proxy for the given field.\n * */\nexport function getProxyForField(field: FlexTreeField): TreeNode | TreeValue | undefined {\n\tswitch (field.schema.kind) {\n\t\tcase FieldKinds.required: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.required>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\t\t\treturn getOrCreateNodeProxy(asValue.boxedContent);\n\t\t}\n\t\tcase FieldKinds.optional: {\n\t\t\tconst asValue = field as FlexTreeTypedField<\n\t\t\t\tFlexFieldSchema<typeof FieldKinds.optional>\n\t\t\t>;\n\n\t\t\t// TODO: Ideally, we would return leaves without first boxing them. However, this is not\n\t\t\t// as simple as calling '.content' since this skips the node and returns the FieldNode's\n\t\t\t// inner field.\n\n\t\t\tconst maybeContent = asValue.boxedContent;\n\n\t\t\t// Normally, empty fields are unreachable due to the behavior of 'tryGetField'. However, the\n\t\t\t// root field is a special case where the field is always present (even if empty).\n\t\t\treturn maybeContent === undefined ? undefined : getOrCreateNodeProxy(maybeContent);\n\t\t}\n\t\t// TODO: Remove if/when 'FieldNode' is removed.\n\t\tcase FieldKinds.sequence: {\n\t\t\t// 'getProxyForNode' handles FieldNodes by unconditionally creating a array node proxy, making\n\t\t\t// this case unreachable as long as users follow the 'array recipe'.\n\t\t\tfail(\"'sequence' field is unexpected.\");\n\t\t}\n\t\tcase FieldKinds.identifier: {\n\t\t\tconst identifier = field.boxedAt(0);\n\t\t\tassert(identifier !== undefined, 0x91a /* identifier must exist */);\n\t\t\treturn getOrCreateNodeProxy(identifier);\n\t\t}\n\n\t\tdefault:\n\t\t\tfail(\"invalid field kind\");\n\t}\n}\n\nexport function getOrCreateNodeProxy(flexNode: FlexTreeNode): TreeNode | TreeValue {\n\tconst cachedProxy = tryGetProxy(flexNode);\n\tif (cachedProxy !== undefined) {\n\t\treturn cachedProxy;\n\t}\n\n\tconst schema = flexNode.schema;\n\tconst classSchema = tryGetSimpleNodeSchema(schema);\n\tassert(classSchema !== undefined, 0x91b /* node without schema */);\n\tif (typeof classSchema === \"function\") {\n\t\tconst simpleSchema = classSchema as unknown as new (dummy: FlexTreeNode) => TreeNode;\n\t\treturn new simpleSchema(flexNode);\n\t} else {\n\t\treturn (classSchema as { create(data: FlexTreeNode): TreeNode }).create(flexNode);\n\t}\n}\n\n// #region Content insertion and proxy binding\n\n/** The path of a proxy, relative to the root of the content tree that the proxy belongs to */\ninterface RelativeProxyPath {\n\treadonly path: UpPath;\n\treadonly proxy: TreeNode;\n}\n\n/** All {@link RelativeProxyPath}s that are under the given root path */\ninterface RootedProxyPaths {\n\treadonly rootPath: UpPath;\n\treadonly proxyPaths: RelativeProxyPath[];\n}\n\n/**\n * Records any proxies in the given content tree and does the necessary bookkeeping to ensure they are synchronized with subsequent reads of the tree.\n * @remarks If the content tree contains any proxies, this function must be called just prior to inserting the content into the tree.\n * Specifically, no other content may be inserted into the tree between the invocation of this function and the insertion of `content`.\n * The insertion of `content` must occur or else this function will cause memory leaks.\n * @param content - the tree of content to be inserted, of which any of its object/map/array nodes might be a proxy\n * @param anchors - the {@link AnchorSet} for the tree\n * @returns The content after having all proxies replaced inline with plain javascript objects.\n * See {@link extractFactoryContent} for more details.\n */\nexport function prepareContentForInsert(\n\tcontent: InsertableContent,\n\tforest: IForestSubscription,\n): FactoryContent {\n\tif (isReadonlyArray(content)) {\n\t\treturn prepareArrayContentForInsert(content, forest);\n\t}\n\n\tconst proxies: RootedProxyPaths = {\n\t\trootPath: { parent: undefined, parentField: EmptyKey, parentIndex: 0 },\n\t\tproxyPaths: [],\n\t};\n\tconst extractedContent = extractFactoryContent(content, {\n\t\tpath: proxies.rootPath,\n\t\tonVisitProxy: (p, proxy) => {\n\t\t\tproxies.proxyPaths.push({ path: p, proxy });\n\t\t},\n\t});\n\n\tbindProxies([proxies], forest);\n\treturn extractedContent;\n}\n\nfunction prepareArrayContentForInsert(\n\tcontent: readonly InsertableContent[],\n\tforest: IForestSubscription,\n): FactoryContent {\n\tconst proxies: RootedProxyPaths[] = [];\n\tconst extractedContent: FactoryContent[] = [];\n\tfor (let i = 0; i < content.length; i++) {\n\t\tproxies.push({\n\t\t\trootPath: {\n\t\t\t\tparent: undefined,\n\t\t\t\tparentField: EmptyKey,\n\t\t\t\tparentIndex: 0,\n\t\t\t},\n\t\t\tproxyPaths: [],\n\t\t});\n\t\textractedContent.push(\n\t\t\textractFactoryContent(content[i], {\n\t\t\t\tpath: proxies[i].rootPath,\n\t\t\t\tonVisitProxy: (p, proxy) => {\n\t\t\t\t\tproxies[i].proxyPaths.push({ path: p, proxy });\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\tbindProxies(proxies, forest);\n\treturn extractedContent;\n}\n\nfunction bindProxies(proxies: RootedProxyPaths[], forest: IForestSubscription): void {\n\t// Only subscribe to the event if there is at least one proxy tree to hydrate - this is not the case when inserting an empty array [].\n\tif (proxies.length > 0) {\n\t\t// Creating a new array emits one event per element in the array, so listen to the event once for each element\n\t\tlet i = 0;\n\t\tconst off = forest.on(\"afterRootFieldCreated\", (fieldKey) => {\n\t\t\t(proxies[i].rootPath as Mutable<UpPath>).parentField = fieldKey;\n\t\t\tfor (const { path, proxy } of proxies[i].proxyPaths) {\n\t\t\t\tanchorProxy(forest.anchors, path, proxy);\n\t\t\t}\n\t\t\tif (++i === proxies.length) {\n\t\t\t\toff();\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * Given a content tree that is to be inserted into the shared tree, replace all subtrees that were created by factories\n * (via {@link SharedTreeObjectFactory.create}) with the content that was passed to those factories.\n * @param content - the content being inserted which may be, and/or may contain, factory-created content\n * @param onVisitProxy - an optional callback that will run for each proxy (i.e. object created by a factory) found in the inserted content\n * @param insertedAtIndex - if the content being inserted is array node content, this must be the index in the array node at which the content is being inserted\n * @returns the result of the content replacement and a {@link ExtractedFactoryContent.hydrateProxies} function which must be invoked if present.\n * @remarks\n * This functions works recursively.\n * Factory-created objects that are nested inside of the content passed to other factory-created objects, and so on, will be in-lined.\n * This function also adds the hidden {@link typeNameSymbol} of each object schema to the output.\n * @example\n * ```ts\n * const x = foo.create({\n * a: 3, b: bar.create({\n * c: [baz.create({ d: 5 })]\n * })\n * });\n * const y = extractFactoryContent(x);\n * y === {\n * [typeNameSymbol]: \"foo\", a: 3, b: {\n * [typeNameSymbol]: \"bar\", c: [{ [typeNameSymbol]: \"baz\", d: 5 }]\n * }\n * }\n * ```\n */\nexport function extractFactoryContent(\n\tinput: InsertableContent,\n\tvisitProxies?: {\n\t\tpath: UpPath;\n\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t},\n): FactoryContent {\n\tlet content: FactoryContent;\n\tconst rawFlexNode = tryGetFlexNode(input);\n\tif (rawFlexNode !== undefined) {\n\t\tconst factoryContent = extractRawNodeContent(rawFlexNode);\n\t\tif (factoryContent === undefined) {\n\t\t\t// We were passed a proxy, but that proxy doesn't have any raw content.\n\t\t\tthrow new Error(\"Cannot insert a node that is already in the tree\");\n\t\t}\n\t\tvisitProxies?.onVisitProxy(visitProxies.path, input as TreeNode);\n\t\tcontent = factoryContent;\n\t} else {\n\t\tcontent = input as FactoryContent;\n\t}\n\n\tassert(!isTreeNode(content), 0x844 /* Unhydrated insertion content should have FlexNode */);\n\n\tlet type: NodeKind;\n\tlet extractedContent: FactoryContent;\n\tif (isReadonlyArray(content)) {\n\t\ttype = NodeKind.Array;\n\t\textractedContent = extractContentArray(content as readonly FactoryContent[], visitProxies);\n\t} else if (content instanceof Map) {\n\t\ttype = NodeKind.Map;\n\t\textractedContent = extractContentMap(\n\t\t\tcontent as ReadonlyMap<string, FactoryContent>,\n\t\t\tvisitProxies,\n\t\t);\n\t} else if (typeof content === \"object\" && content !== null && !isFluidHandle(content)) {\n\t\ttype = NodeKind.Object;\n\t\textractedContent = extractContentObject(content as object, visitProxies);\n\t} else {\n\t\textractedContent = content;\n\t\ttype = NodeKind.Leaf;\n\t}\n\n\tif (rawFlexNode !== undefined) {\n\t\tconst kindFromSchema =\n\t\t\ttryGetSimpleNodeSchema(rawFlexNode.schema)?.kind ??\n\t\t\tfail(\"NodeBase should always have class schema\");\n\n\t\tassert(kindFromSchema === type, 0x845 /* kind of data should match kind of schema */);\n\t}\n\n\treturn extractedContent;\n}\n\nfunction extractContentArray(\n\tinput: readonly FactoryContent[],\n\tvisitProxies:\n\t\t| {\n\t\t\t\tpath: UpPath;\n\t\t\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t\t }\n\t\t| undefined,\n): FactoryContent {\n\tconst output: FactoryContent[] = [];\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst childContent = extractFactoryContent(\n\t\t\tinput[i],\n\t\t\tvisitProxies !== undefined\n\t\t\t\t? {\n\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\tparent: visitProxies.path,\n\t\t\t\t\t\t\tparentField: EmptyKey,\n\t\t\t\t\t\t\tparentIndex: i,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonVisitProxy: visitProxies?.onVisitProxy,\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\t);\n\t\toutput.push(childContent);\n\t}\n\treturn output;\n}\n\nfunction extractContentMap(\n\tinput: ReadonlyMap<string, FactoryContent>,\n\tvisitProxies:\n\t\t| {\n\t\t\t\tpath: UpPath;\n\t\t\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t\t }\n\t\t| undefined,\n): FactoryContent {\n\tconst output = new Map();\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tfor (const [key, value] of input) {\n\t\tconst childContent = extractFactoryContent(\n\t\t\tvalue,\n\t\t\tvisitProxies !== undefined\n\t\t\t\t? {\n\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\tparent: visitProxies.path,\n\t\t\t\t\t\t\tparentField: brand(key),\n\t\t\t\t\t\t\tparentIndex: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonVisitProxy: visitProxies?.onVisitProxy,\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\t);\n\t\toutput.set(key, childContent);\n\t}\n\treturn output;\n}\n\nfunction extractContentObject(\n\tinput: {\n\t\treadonly [P in string]?: FactoryContent;\n\t},\n\tvisitProxies:\n\t\t| {\n\t\t\t\tpath: UpPath;\n\t\t\t\tonVisitProxy: (path: UpPath, proxy: TreeNode) => void;\n\t\t }\n\t\t| undefined,\n): FactoryContent {\n\tconst output: Record<string, FactoryContent> = {};\n\tif (typeNameSymbol in input) {\n\t\tObject.defineProperty(output, typeNameSymbol, { value: input[typeNameSymbol] });\n\t}\n\tfor (const [key, value] of Object.entries(input)) {\n\t\t// Treat undefined fields and missing fields the same.\n\t\t// Generally tree does not require explicit undefined values at runtime despite some of the schema aware type checking currently requiring it.\n\t\tif (value !== undefined) {\n\t\t\tconst childContent = extractFactoryContent(\n\t\t\t\tvalue,\n\t\t\t\tvisitProxies !== undefined\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpath: {\n\t\t\t\t\t\t\t\tparent: visitProxies.path,\n\t\t\t\t\t\t\t\tparentField: brand(key),\n\t\t\t\t\t\t\t\tparentIndex: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonVisitProxy: visitProxies?.onVisitProxy,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t);\n\t\t\toutput[key] = childContent;\n\t\t}\n\t}\n\treturn output;\n}\n\n// #endregion Content insertion and proxy binding\n\n/**\n * Content which can be used to build a node.\n * @remarks\n * Can contain unhydrated nodes, but can not be an unhydrated node at the root.\n */\nexport type FactoryContent =\n\t| IFluidHandle\n\t| string\n\t| number\n\t| boolean\n\t// eslint-disable-next-line @rushstack/no-new-null\n\t| null\n\t| ReadonlyMap<string, InsertableContent>\n\t| readonly InsertableContent[]\n\t| {\n\t\t\treadonly [P in string]?: InsertableContent;\n\t };\n\n/**\n * Content which can be inserted into a tree.\n */\nexport type InsertableContent = Unhydrated<TreeNode> | FactoryContent;\n\n/**\n * Brand `copy` with the type (under {@link typeNameSymbol}) to avoid ambiguity when inferring types from this data.\n */\nexport function markContentType(typeName: TreeNodeSchemaIdentifier, copy: object): void {\n\tObject.defineProperty(copy, typeNameSymbol, { value: typeName });\n}\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
import { AnchorSet, UpPath } from "../core/index.js";
|
|
6
|
+
import { FlexTreeNodeSchema, FlexMapNodeSchema, FlexObjectNodeSchema, FlexTreeMapNode, FlexTreeNode, FlexTreeObjectNode } from "../feature-libraries/index.js";
|
|
7
|
+
import { WithType } from "./schemaTypes.js";
|
|
8
|
+
import { TreeArrayNode } from "./arrayNode.js";
|
|
9
|
+
import { TreeNode } from "./types.js";
|
|
10
|
+
import { TreeMapNode } from "./mapNode.js";
|
|
11
|
+
/**
|
|
12
|
+
* Creates an anchor node and associates it with the given proxy.
|
|
13
|
+
* @privateRemarks Use `forgetters` to cleanup the anchor allocated by this function once the anchor is no longer needed.
|
|
14
|
+
* In practice, this happens when either the anchor node is destroyed, or another anchor to the same node is created by a new flex node.
|
|
15
|
+
*/
|
|
16
|
+
export declare function anchorProxy(anchors: AnchorSet, path: UpPath, proxy: TreeNode): void;
|
|
17
|
+
/**
|
|
18
|
+
* Retrieves the flex node associated with the given target via {@link setFlexNode}.
|
|
19
|
+
* @remarks Fails if the flex node has not been set.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getFlexNode(proxy: TypedNode<FlexObjectNodeSchema>, allowFreed?: true): FlexTreeObjectNode;
|
|
22
|
+
export declare function getFlexNode(proxy: TreeArrayNode, allowFreed?: true): FlexTreeNode;
|
|
23
|
+
export declare function getFlexNode(proxy: TreeMapNode, allowFreed?: true): FlexTreeMapNode<FlexMapNodeSchema>;
|
|
24
|
+
export declare function getFlexNode(proxy: TreeNode, allowFreed?: true): FlexTreeNode;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves the flex node associated with the given target via {@link setFlexNode}, if any.
|
|
27
|
+
*/
|
|
28
|
+
export declare function tryGetFlexNode(target: unknown): FlexTreeNode | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Retrieves the proxy associated with the given flex node via {@link setFlexNode}, if any.
|
|
31
|
+
*/
|
|
32
|
+
export declare function tryGetProxy(flexNode: FlexTreeNode): TreeNode | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Associate the given proxy and the given flex node.
|
|
35
|
+
* @returns The proxy
|
|
36
|
+
* @remarks
|
|
37
|
+
* This creates a 1:1 mapping between the proxy and tree node.
|
|
38
|
+
* Either can be retrieved from the other via {@link getFlexNode}/{@link tryGetFlexNode} or {@link tryGetProxy}.
|
|
39
|
+
* If the given proxy is already mapped to an flex node, the existing mapping will be overwritten.
|
|
40
|
+
* If the given flex node is already mapped to a different proxy, this function will fail.
|
|
41
|
+
*/
|
|
42
|
+
export declare function setFlexNode<TProxy extends TreeNode>(proxy: TProxy, flexNode: FlexTreeNode): TProxy;
|
|
43
|
+
/**
|
|
44
|
+
* Given a node's schema, return the corresponding object in the proxy-based API.
|
|
45
|
+
*/
|
|
46
|
+
type TypedNode<TSchema extends FlexTreeNodeSchema> = TreeNode & WithType<TSchema["name"]>;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=proxyBinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyBinding.d.ts","sourceRoot":"","sources":["../../src/simple-tree/proxyBinding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAc,SAAS,EAAE,MAAM,EAAc,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAEN,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAGlB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA0B3C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAcnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,KAAK,EAAE,SAAS,CAAC,oBAAoB,CAAC,EACtC,UAAU,CAAC,EAAE,IAAI,GACf,kBAAkB,CAAC;AACtB,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC;AACnF,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,IAAI,GACf,eAAe,CAAC,iBAAiB,CAAC,CAAC;AACtC,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC;AAyB9E;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAOxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,SAAS,QAAQ,EAClD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,GACpB,MAAM,CAgBR;AAmBD;;GAEG;AACH,KAAK,SAAS,CAAC,OAAO,SAAS,kBAAkB,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.setFlexNode = exports.tryGetProxy = exports.tryGetFlexNode = exports.getFlexNode = exports.anchorProxy = void 0;
|
|
8
|
+
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
|
+
const index_js_1 = require("../core/index.js");
|
|
10
|
+
const index_js_2 = require("../feature-libraries/index.js");
|
|
11
|
+
const index_js_3 = require("../util/index.js");
|
|
12
|
+
const rawNode_js_1 = require("./rawNode.js");
|
|
13
|
+
// TODO: decide how to deal with dependencies on flex-tree implementation.
|
|
14
|
+
// eslint-disable-next-line import/no-internal-modules
|
|
15
|
+
const lazyNode_js_1 = require("../feature-libraries/flex-tree/lazyNode.js");
|
|
16
|
+
// This file contains various maps and helpers for supporting proxy binding (a.k.a. proxy hydration).
|
|
17
|
+
// See ./ProxyBinding.md for a high-level overview of the process.
|
|
18
|
+
/**
|
|
19
|
+
* An anchor slot which associates an anchor with its corresponding node proxy, if there is one.
|
|
20
|
+
*/
|
|
21
|
+
const proxySlot = (0, index_js_1.anchorSlot)();
|
|
22
|
+
// The following records are maintained as WeakMaps, rather than a private symbol (e.g. like `targetSymbol`) on the node proxy itself.
|
|
23
|
+
// The map behaves essentially the same, except that performing a lookup in the map will not perform a property read/get on the key object (as is the case with a symbol).
|
|
24
|
+
// Since `SharedTreeNodes` are proxies with non-trivial `get` traps, this choice is meant to prevent the confusion of the lookup passing through multiple objects
|
|
25
|
+
// via the trap, or the trap not properly handling the special symbol, etc.
|
|
26
|
+
/** A reverse mapping of {@link proxySlot} that is updated at the same time. */
|
|
27
|
+
const proxyToAnchorNode = new WeakMap();
|
|
28
|
+
/**
|
|
29
|
+
* Maps proxies to their "raw" tree nodes.
|
|
30
|
+
* The raw node exists when the proxy is first created but before it has been associated with a real {@link FlexTreeNode}.
|
|
31
|
+
* For example, after a user calls `const proxy = new Foo({})` but before `proxy` is inserted into the tree and queried.
|
|
32
|
+
*/
|
|
33
|
+
const proxyToRawFlexNode = new WeakMap();
|
|
34
|
+
/** Used by `anchorProxy` as an optimization to ensure that only one anchor is remembered at a time for a given anchor node */
|
|
35
|
+
const anchorForgetters = new WeakMap();
|
|
36
|
+
/**
|
|
37
|
+
* Creates an anchor node and associates it with the given proxy.
|
|
38
|
+
* @privateRemarks Use `forgetters` to cleanup the anchor allocated by this function once the anchor is no longer needed.
|
|
39
|
+
* In practice, this happens when either the anchor node is destroyed, or another anchor to the same node is created by a new flex node.
|
|
40
|
+
*/
|
|
41
|
+
function anchorProxy(anchors, path, proxy) {
|
|
42
|
+
(0, internal_1.assert)(!anchorForgetters.has(proxy), 0x91c /* Proxy anchor should not be set twice */);
|
|
43
|
+
const anchor = anchors.track(path);
|
|
44
|
+
const anchorNode = anchors.locate(anchor) ?? (0, index_js_3.fail)("Expected anchor node to be present");
|
|
45
|
+
bindProxyToAnchorNode(proxy, anchorNode);
|
|
46
|
+
const forget = () => {
|
|
47
|
+
if (anchors.locate(anchor)) {
|
|
48
|
+
anchors.forget(anchor);
|
|
49
|
+
}
|
|
50
|
+
anchorForgetters.delete(proxy);
|
|
51
|
+
off();
|
|
52
|
+
};
|
|
53
|
+
anchorForgetters.set(proxy, forget);
|
|
54
|
+
const off = anchorNode.on("afterDestroy", forget);
|
|
55
|
+
}
|
|
56
|
+
exports.anchorProxy = anchorProxy;
|
|
57
|
+
function getFlexNode(proxy, allowFreed = false) {
|
|
58
|
+
const anchorNode = proxyToAnchorNode.get(proxy);
|
|
59
|
+
if (anchorNode !== undefined) {
|
|
60
|
+
// The proxy is bound to an anchor node, but it may or may not have an actual flex node yet
|
|
61
|
+
const flexNode = anchorNode.slots.get(index_js_2.flexTreeSlot);
|
|
62
|
+
if (flexNode !== undefined) {
|
|
63
|
+
return flexNode; // If it does have a flex node, return it...
|
|
64
|
+
} // ...otherwise, the flex node must be created
|
|
65
|
+
const context = anchorNode.anchorSet.slots.get(index_js_2.ContextSlot) ?? (0, index_js_3.fail)("missing context");
|
|
66
|
+
const cursor = context.forest.allocateCursor();
|
|
67
|
+
context.forest.moveCursorToPath(anchorNode, cursor);
|
|
68
|
+
const newFlexNode = (0, lazyNode_js_1.makeTree)(context, cursor);
|
|
69
|
+
cursor.free();
|
|
70
|
+
// Calling this is a performance improvement, however, do this only after demand to avoid momentarily having no anchors to anchorNode
|
|
71
|
+
anchorForgetters?.get(proxy)?.();
|
|
72
|
+
if (!allowFreed) {
|
|
73
|
+
(0, index_js_2.assertFlexTreeEntityNotFreed)(newFlexNode);
|
|
74
|
+
}
|
|
75
|
+
return newFlexNode;
|
|
76
|
+
}
|
|
77
|
+
return proxyToRawFlexNode.get(proxy) ?? (0, index_js_3.fail)("Expected raw tree node for proxy");
|
|
78
|
+
}
|
|
79
|
+
exports.getFlexNode = getFlexNode;
|
|
80
|
+
/**
|
|
81
|
+
* Retrieves the flex node associated with the given target via {@link setFlexNode}, if any.
|
|
82
|
+
*/
|
|
83
|
+
function tryGetFlexNode(target) {
|
|
84
|
+
// Calling 'WeakMap.get()' with primitives (numbers, strings, etc.) will return undefined.
|
|
85
|
+
// This is in contrast to 'WeakMap.set()', which will throw a TypeError if given a non-object key.
|
|
86
|
+
return (proxyToAnchorNode.get(target)?.slots.get(index_js_2.flexTreeSlot) ??
|
|
87
|
+
proxyToRawFlexNode.get(target));
|
|
88
|
+
}
|
|
89
|
+
exports.tryGetFlexNode = tryGetFlexNode;
|
|
90
|
+
/**
|
|
91
|
+
* Retrieves the proxy associated with the given flex node via {@link setFlexNode}, if any.
|
|
92
|
+
*/
|
|
93
|
+
function tryGetProxy(flexNode) {
|
|
94
|
+
return flexNode.anchorNode.slots.get(proxySlot);
|
|
95
|
+
}
|
|
96
|
+
exports.tryGetProxy = tryGetProxy;
|
|
97
|
+
/**
|
|
98
|
+
* Associate the given proxy and the given flex node.
|
|
99
|
+
* @returns The proxy
|
|
100
|
+
* @remarks
|
|
101
|
+
* This creates a 1:1 mapping between the proxy and tree node.
|
|
102
|
+
* Either can be retrieved from the other via {@link getFlexNode}/{@link tryGetFlexNode} or {@link tryGetProxy}.
|
|
103
|
+
* If the given proxy is already mapped to an flex node, the existing mapping will be overwritten.
|
|
104
|
+
* If the given flex node is already mapped to a different proxy, this function will fail.
|
|
105
|
+
*/
|
|
106
|
+
function setFlexNode(proxy, flexNode) {
|
|
107
|
+
const existingFlexNode = proxyToAnchorNode.get(proxy)?.slots.get(index_js_2.flexTreeSlot);
|
|
108
|
+
(0, internal_1.assert)(existingFlexNode === undefined, 0x91d /* Cannot associate a flex node with multiple targets */);
|
|
109
|
+
if (flexNode instanceof rawNode_js_1.RawTreeNode) {
|
|
110
|
+
proxyToRawFlexNode.set(proxy, flexNode);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
(0, internal_1.assert)(tryGetProxy(flexNode) === undefined, 0x7f5 /* Cannot associate an flex node with multiple targets */);
|
|
114
|
+
bindProxyToAnchorNode(proxy, flexNode.anchorNode);
|
|
115
|
+
}
|
|
116
|
+
return proxy;
|
|
117
|
+
}
|
|
118
|
+
exports.setFlexNode = setFlexNode;
|
|
119
|
+
/**
|
|
120
|
+
* Bi-directionally associates the given proxy to the given anchor node.
|
|
121
|
+
* @remarks Cleans up mappings to raw flex nodes - it is assumed that they are no longer needed once the proxy has an anchor node.
|
|
122
|
+
*/
|
|
123
|
+
function bindProxyToAnchorNode(proxy, anchorNode) {
|
|
124
|
+
// If the proxy currently has a raw node, forget it
|
|
125
|
+
proxyToRawFlexNode.delete(proxy);
|
|
126
|
+
// Once a proxy has been associated with an anchor node, it should never change to another anchor node
|
|
127
|
+
(0, internal_1.assert)(!proxyToAnchorNode.has(proxy), 0x91e /* Proxy has already been bound to a different anchor node */);
|
|
128
|
+
proxyToAnchorNode.set(proxy, anchorNode);
|
|
129
|
+
// However, it's fine for an anchor node to rotate through different proxies when the content at that place in the tree is replaced.
|
|
130
|
+
anchorNode.slots.set(proxySlot, proxy);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=proxyBinding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxyBinding.js","sourceRoot":"","sources":["../../src/simple-tree/proxyBinding.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA6D;AAE7D,+CAA6E;AAC7E,4DAUuC;AACvC,+CAAwC;AACxC,6CAA2C;AAI3C,0EAA0E;AAC1E,sDAAsD;AACtD,4EAAsE;AAGtE,qGAAqG;AACrG,kEAAkE;AAElE;;GAEG;AACH,MAAM,SAAS,GAAG,IAAA,qBAAU,GAAY,CAAC;AAEzC,sIAAsI;AACtI,0KAA0K;AAC1K,iKAAiK;AACjK,2EAA2E;AAE3E,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAwB,CAAC;AAC9D;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAsD,CAAC;AAC7F,8HAA8H;AAC9H,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAwB,CAAC;AAE7D;;;;GAIG;AACH,SAAgB,WAAW,CAAC,OAAkB,EAAE,IAAY,EAAE,KAAe;IAC5E,IAAA,iBAAM,EAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAA,eAAI,EAAC,oCAAoC,CAAC,CAAC;IACxF,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACvB;QACD,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,GAAG,EAAE,CAAC;IACP,CAAC,CAAC;IACF,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAdD,kCAcC;AAgBD,SAAgB,WAAW,CAAC,KAAe,EAAE,UAAU,GAAG,KAAK;IAC9D,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,SAAS,EAAE;QAC7B,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAY,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,OAAO,QAAQ,CAAC,CAAC,4CAA4C;SAC7D,CAAC,8CAA8C;QAChD,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAW,CAAC,IAAI,IAAA,eAAI,EAAC,iBAAiB,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,IAAA,sBAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,qIAAqI;QACrI,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE;YAChB,IAAA,uCAA4B,EAAC,WAAW,CAAC,CAAC;SAC1C;QACD,OAAO,WAAW,CAAC;KACnB;IAED,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAA,eAAI,EAAC,kCAAkC,CAAC,CAAC;AAClF,CAAC;AAtBD,kCAsBC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAe;IAC7C,0FAA0F;IAC1F,kGAAkG;IAClG,OAAO,CACN,iBAAiB,CAAC,GAAG,CAAC,MAAkB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,uBAAY,CAAC;QAClE,kBAAkB,CAAC,GAAG,CAAC,MAAkB,CAAC,CAC1C,CAAC;AACH,CAAC;AAPD,wCAOC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,QAAsB;IACjD,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAFD,kCAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAC1B,KAAa,EACb,QAAsB;IAEtB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,uBAAY,CAAC,CAAC;IAC/E,IAAA,iBAAM,EACL,gBAAgB,KAAK,SAAS,EAC9B,KAAK,CAAC,wDAAwD,CAC9D,CAAC;IACF,IAAI,QAAQ,YAAY,wBAAW,EAAE;QACpC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACxC;SAAM;QACN,IAAA,iBAAM,EACL,WAAW,CAAC,QAAQ,CAAC,KAAK,SAAS,EACnC,KAAK,CAAC,yDAAyD,CAC/D,CAAC;QACF,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;KAClD;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAnBD,kCAmBC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,KAAe,EAAE,UAAsB;IACrE,mDAAmD;IACnD,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,sGAAsG;IACtG,IAAA,iBAAM,EACL,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAC7B,KAAK,CAAC,6DAA6D,CACnE,CAAC;IACF,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACzC,oIAAoI;IACpI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACxC,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 { AnchorNode, AnchorSet, UpPath, anchorSlot } from \"../core/index.js\";\nimport {\n\tContextSlot,\n\tFlexTreeNodeSchema,\n\tFlexMapNodeSchema,\n\tFlexObjectNodeSchema,\n\tFlexTreeMapNode,\n\tFlexTreeNode,\n\tFlexTreeObjectNode,\n\tassertFlexTreeEntityNotFreed,\n\tflexTreeSlot,\n} from \"../feature-libraries/index.js\";\nimport { fail } from \"../util/index.js\";\nimport { RawTreeNode } from \"./rawNode.js\";\nimport { WithType } from \"./schemaTypes.js\";\nimport { TreeArrayNode } from \"./arrayNode.js\";\nimport { TreeNode } from \"./types.js\";\n// TODO: decide how to deal with dependencies on flex-tree implementation.\n// eslint-disable-next-line import/no-internal-modules\nimport { makeTree } from \"../feature-libraries/flex-tree/lazyNode.js\";\nimport { TreeMapNode } from \"./mapNode.js\";\n\n// This file contains various maps and helpers for supporting proxy binding (a.k.a. proxy hydration).\n// See ./ProxyBinding.md for a high-level overview of the process.\n\n/**\n * An anchor slot which associates an anchor with its corresponding node proxy, if there is one.\n */\nconst proxySlot = anchorSlot<TreeNode>();\n\n// The following records are maintained as WeakMaps, rather than a private symbol (e.g. like `targetSymbol`) on the node proxy itself.\n// The map behaves essentially the same, except that performing a lookup in the map will not perform a property read/get on the key object (as is the case with a symbol).\n// Since `SharedTreeNodes` are proxies with non-trivial `get` traps, this choice is meant to prevent the confusion of the lookup passing through multiple objects\n// via the trap, or the trap not properly handling the special symbol, etc.\n\n/** A reverse mapping of {@link proxySlot} that is updated at the same time. */\nconst proxyToAnchorNode = new WeakMap<TreeNode, AnchorNode>();\n/**\n * Maps proxies to their \"raw\" tree nodes.\n * The raw node exists when the proxy is first created but before it has been associated with a real {@link FlexTreeNode}.\n * For example, after a user calls `const proxy = new Foo({})` but before `proxy` is inserted into the tree and queried.\n */\nconst proxyToRawFlexNode = new WeakMap<TreeNode, RawTreeNode<FlexTreeNodeSchema, unknown>>();\n/** Used by `anchorProxy` as an optimization to ensure that only one anchor is remembered at a time for a given anchor node */\nconst anchorForgetters = new WeakMap<TreeNode, () => void>();\n\n/**\n * Creates an anchor node and associates it with the given proxy.\n * @privateRemarks Use `forgetters` to cleanup the anchor allocated by this function once the anchor is no longer needed.\n * In practice, this happens when either the anchor node is destroyed, or another anchor to the same node is created by a new flex node.\n */\nexport function anchorProxy(anchors: AnchorSet, path: UpPath, proxy: TreeNode): void {\n\tassert(!anchorForgetters.has(proxy), 0x91c /* Proxy anchor should not be set twice */);\n\tconst anchor = anchors.track(path);\n\tconst anchorNode = anchors.locate(anchor) ?? fail(\"Expected anchor node to be present\");\n\tbindProxyToAnchorNode(proxy, anchorNode);\n\tconst forget = () => {\n\t\tif (anchors.locate(anchor)) {\n\t\t\tanchors.forget(anchor);\n\t\t}\n\t\tanchorForgetters.delete(proxy);\n\t\toff();\n\t};\n\tanchorForgetters.set(proxy, forget);\n\tconst off = anchorNode.on(\"afterDestroy\", forget);\n}\n\n/**\n * Retrieves the flex node associated with the given target via {@link setFlexNode}.\n * @remarks Fails if the flex node has not been set.\n */\nexport function getFlexNode(\n\tproxy: TypedNode<FlexObjectNodeSchema>,\n\tallowFreed?: true,\n): FlexTreeObjectNode;\nexport function getFlexNode(proxy: TreeArrayNode, allowFreed?: true): FlexTreeNode;\nexport function getFlexNode(\n\tproxy: TreeMapNode,\n\tallowFreed?: true,\n): FlexTreeMapNode<FlexMapNodeSchema>;\nexport function getFlexNode(proxy: TreeNode, allowFreed?: true): FlexTreeNode;\nexport function getFlexNode(proxy: TreeNode, allowFreed = false): FlexTreeNode {\n\tconst anchorNode = proxyToAnchorNode.get(proxy);\n\tif (anchorNode !== undefined) {\n\t\t// The proxy is bound to an anchor node, but it may or may not have an actual flex node yet\n\t\tconst flexNode = anchorNode.slots.get(flexTreeSlot);\n\t\tif (flexNode !== undefined) {\n\t\t\treturn flexNode; // If it does have a flex node, return it...\n\t\t} // ...otherwise, the flex node must be created\n\t\tconst context = anchorNode.anchorSet.slots.get(ContextSlot) ?? fail(\"missing context\");\n\t\tconst cursor = context.forest.allocateCursor();\n\t\tcontext.forest.moveCursorToPath(anchorNode, cursor);\n\t\tconst newFlexNode = makeTree(context, cursor);\n\t\tcursor.free();\n\t\t// Calling this is a performance improvement, however, do this only after demand to avoid momentarily having no anchors to anchorNode\n\t\tanchorForgetters?.get(proxy)?.();\n\t\tif (!allowFreed) {\n\t\t\tassertFlexTreeEntityNotFreed(newFlexNode);\n\t\t}\n\t\treturn newFlexNode;\n\t}\n\n\treturn proxyToRawFlexNode.get(proxy) ?? fail(\"Expected raw tree node for proxy\");\n}\n\n/**\n * Retrieves the flex node associated with the given target via {@link setFlexNode}, if any.\n */\nexport function tryGetFlexNode(target: unknown): FlexTreeNode | undefined {\n\t// Calling 'WeakMap.get()' with primitives (numbers, strings, etc.) will return undefined.\n\t// This is in contrast to 'WeakMap.set()', which will throw a TypeError if given a non-object key.\n\treturn (\n\t\tproxyToAnchorNode.get(target as TreeNode)?.slots.get(flexTreeSlot) ??\n\t\tproxyToRawFlexNode.get(target as TreeNode)\n\t);\n}\n\n/**\n * Retrieves the proxy associated with the given flex node via {@link setFlexNode}, if any.\n */\nexport function tryGetProxy(flexNode: FlexTreeNode): TreeNode | undefined {\n\treturn flexNode.anchorNode.slots.get(proxySlot);\n}\n\n/**\n * Associate the given proxy and the given flex node.\n * @returns The proxy\n * @remarks\n * This creates a 1:1 mapping between the proxy and tree node.\n * Either can be retrieved from the other via {@link getFlexNode}/{@link tryGetFlexNode} or {@link tryGetProxy}.\n * If the given proxy is already mapped to an flex node, the existing mapping will be overwritten.\n * If the given flex node is already mapped to a different proxy, this function will fail.\n */\nexport function setFlexNode<TProxy extends TreeNode>(\n\tproxy: TProxy,\n\tflexNode: FlexTreeNode,\n): TProxy {\n\tconst existingFlexNode = proxyToAnchorNode.get(proxy)?.slots.get(flexTreeSlot);\n\tassert(\n\t\texistingFlexNode === undefined,\n\t\t0x91d /* Cannot associate a flex node with multiple targets */,\n\t);\n\tif (flexNode instanceof RawTreeNode) {\n\t\tproxyToRawFlexNode.set(proxy, flexNode);\n\t} else {\n\t\tassert(\n\t\t\ttryGetProxy(flexNode) === undefined,\n\t\t\t0x7f5 /* Cannot associate an flex node with multiple targets */,\n\t\t);\n\t\tbindProxyToAnchorNode(proxy, flexNode.anchorNode);\n\t}\n\treturn proxy;\n}\n\n/**\n * Bi-directionally associates the given proxy to the given anchor node.\n * @remarks Cleans up mappings to raw flex nodes - it is assumed that they are no longer needed once the proxy has an anchor node.\n */\nfunction bindProxyToAnchorNode(proxy: TreeNode, anchorNode: AnchorNode): void {\n\t// If the proxy currently has a raw node, forget it\n\tproxyToRawFlexNode.delete(proxy);\n\t// Once a proxy has been associated with an anchor node, it should never change to another anchor node\n\tassert(\n\t\t!proxyToAnchorNode.has(proxy),\n\t\t0x91e /* Proxy has already been bound to a different anchor node */,\n\t);\n\tproxyToAnchorNode.set(proxy, anchorNode);\n\t// However, it's fine for an anchor node to rotate through different proxies when the content at that place in the tree is replaced.\n\tanchorNode.slots.set(proxySlot, proxy);\n}\n\n/**\n * Given a node's schema, return the corresponding object in the proxy-based API.\n */\ntype TypedNode<TSchema extends FlexTreeNodeSchema> = TreeNode & WithType<TSchema[\"name\"]>;\n"]}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { FieldKey, TreeNodeSchemaIdentifier } from "../core/index.js";
|
|
6
|
-
import {
|
|
7
|
-
import { InsertableContent } from "./proxies.js";
|
|
5
|
+
import { AnchorNode, FieldKey, TreeNodeSchemaIdentifier } from "../core/index.js";
|
|
6
|
+
import { FlexTreeContext, FlexTreeEntityKind, FlexTreeField, FlexTreeNode, FlexTreeNodeEvents, FlexTreeNodeSchema, FlexTreeTypedNode, TreeStatus, flexTreeMarker } from "../feature-libraries/index.js";
|
|
8
7
|
/** Stores the content of the raw node, i.e. the data that was passed to the factory */
|
|
9
|
-
declare const nodeContent: unique symbol;
|
|
8
|
+
export declare const nodeContent: unique symbol;
|
|
10
9
|
interface HasNodeContent<T> {
|
|
11
10
|
[nodeContent]: T;
|
|
12
11
|
}
|
|
@@ -18,18 +17,15 @@ interface HasNodeContent<T> {
|
|
|
18
17
|
*/
|
|
19
18
|
export declare function extractRawNodeContent(node: object): object | undefined;
|
|
20
19
|
/**
|
|
21
|
-
*
|
|
20
|
+
* Node that pretends to satisfy the given schema while wrapping the given node content.
|
|
22
21
|
* Retrieve the node content via {@link extractRawNodeContent}.
|
|
23
22
|
*
|
|
24
23
|
* @remarks This is useful for creating "raw" nodes: nodes which capture data about a pending insertion but are not yet inserted.
|
|
25
24
|
* These raw nodes can be then used on the right-hand side of an assignment (via `=`) to the tree.
|
|
26
25
|
* However, many of their properties and methods are currently unimplemented and will error if accessed.
|
|
27
26
|
*/
|
|
28
|
-
export declare function createRawNode(schema: FlexTreeNodeSchema, content: InsertableContent): RawTreeNode<FlexTreeNodeSchema, InsertableContent>;
|
|
29
|
-
/**
|
|
30
|
-
* The base implementation of a node created by {@link createRawNode}.
|
|
31
|
-
*/
|
|
32
27
|
export declare abstract class RawTreeNode<TSchema extends FlexTreeNodeSchema, TContent> implements FlexTreeNode, HasNodeContent<TContent> {
|
|
28
|
+
#private;
|
|
33
29
|
readonly schema: TSchema;
|
|
34
30
|
readonly [flexTreeMarker]: FlexTreeEntityKind.Node;
|
|
35
31
|
readonly [nodeContent]: TContent;
|
|
@@ -42,50 +38,13 @@ export declare abstract class RawTreeNode<TSchema extends FlexTreeNodeSchema, TC
|
|
|
42
38
|
};
|
|
43
39
|
is<TSchemaInner extends FlexTreeNodeSchema>(schema: TSchemaInner): this is FlexTreeTypedNode<TSchemaInner>;
|
|
44
40
|
tryGetField(key: FieldKey): FlexTreeField | undefined;
|
|
41
|
+
getBoxed(key: string): never;
|
|
45
42
|
boxedIterator(): IterableIterator<FlexTreeField>;
|
|
46
43
|
treeStatus(): TreeStatus;
|
|
47
44
|
value: undefined;
|
|
48
|
-
on<K extends keyof
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* The implementation of an object node created by {@link createRawNode}.
|
|
53
|
-
*/
|
|
54
|
-
export declare class RawObjectNode<TSchema extends FlexObjectNodeSchema, TContent extends object> extends RawTreeNode<TSchema, TContent> implements FlexTreeObjectNode {
|
|
55
|
-
get localNodeKey(): LocalNodeKey | undefined;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* The implementation of a map node created by {@link createRawNode}.
|
|
59
|
-
*/
|
|
60
|
-
export declare class RawMapNode<TSchema extends FlexMapNodeSchema> extends RawTreeNode<TSchema, ReadonlyMap<string, InsertableContent>> implements FlexTreeMapNode<TSchema> {
|
|
61
|
-
get size(): number;
|
|
62
|
-
has(key: string): boolean;
|
|
63
|
-
get(key: string): FlexTreeUnboxField<TSchema["info"]>;
|
|
64
|
-
getBoxed(key: string): FlexTreeTypedField<TSchema["info"]>;
|
|
65
|
-
keys(): IterableIterator<FieldKey>;
|
|
66
|
-
values(): IterableIterator<FlexTreeUnboxField<TSchema["info"], "notEmpty">>;
|
|
67
|
-
entries(): IterableIterator<[
|
|
68
|
-
FieldKey,
|
|
69
|
-
FlexTreeUnboxField<TSchema["info"], "notEmpty">
|
|
70
|
-
]>;
|
|
71
|
-
forEach(callbackFn: (value: FlexTreeUnboxField<TSchema["info"], "notEmpty">, key: FieldKey, map: FlexTreeMapNode<TSchema>) => void, thisArg?: any): void;
|
|
72
|
-
set(key: string, value: FlexibleFieldContent<TSchema["info"]> | undefined): void;
|
|
73
|
-
delete(key: string): void;
|
|
74
|
-
get asObject(): {
|
|
75
|
-
readonly [P in FieldKey]?: FlexTreeUnboxField<TSchema["info"], "notEmpty">;
|
|
76
|
-
};
|
|
77
|
-
[Symbol.iterator](): IterableIterator<[
|
|
78
|
-
FieldKey,
|
|
79
|
-
FlexTreeUnboxField<TSchema["info"], "notEmpty">
|
|
80
|
-
]>;
|
|
81
|
-
boxedIterator(): IterableIterator<FlexTreeTypedField<TSchema["info"]>>;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* The implementation of a field node created by {@link createRawNode}.
|
|
85
|
-
*/
|
|
86
|
-
export declare class RawFieldNode<TSchema extends FlexFieldNodeSchema> extends RawTreeNode<TSchema, InsertableContent> implements FlexTreeFieldNode<TSchema> {
|
|
87
|
-
get content(): FlexTreeUnboxField<TSchema["info"]>;
|
|
88
|
-
get boxedContent(): FlexTreeTypedField<TSchema["info"]>;
|
|
45
|
+
on<K extends keyof FlexTreeNodeEvents>(eventName: K, listener: FlexTreeNodeEvents[K]): () => void;
|
|
46
|
+
get anchorNode(): AnchorNode;
|
|
89
47
|
}
|
|
48
|
+
export declare function rawError(message?: string): Error;
|
|
90
49
|
export {};
|
|
91
50
|
//# sourceMappingURL=rawNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rawNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/rawNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"rawNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/rawNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,MAAM,+BAA+B,CAAC;AAGvC,uFAAuF;AACvF,eAAO,MAAM,WAAW,eAAW,CAAC;AACpC,UAAU,cAAc,CAAC,CAAC;IACzB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED;;;;;;;GAOG;AACH,8BAAsB,WAAW,CAAC,OAAO,SAAS,kBAAkB,EAAE,QAAQ,CAC7E,YAAW,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC;;aAUhC,MAAM,EAAE,OAAO;IARhC,SAAgB,CAAC,cAAc,CAAC,0BAAoC;IACpE,SAAgB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;IAIxC,SAAgB,IAAI,EAAE,wBAAwB,CAAC;gBAG9B,MAAM,EAAE,OAAO,EAC/B,OAAO,EAAE,QAAQ;IAMlB,IAAW,OAAO,IAAI,eAAe,CAEpC;IAED,IAAW,WAAW,IAAI;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAEjE;IAEM,EAAE,CAAC,YAAY,SAAS,kBAAkB,EAChD,MAAM,EAAE,YAAY,GAClB,IAAI,IAAI,iBAAiB,CAAC,YAAY,CAAC;IAInC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;IAIrD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAI5B,aAAa,IAAI,gBAAgB,CAAC,aAAa,CAAC;IAIhD,UAAU,IAAI,UAAU;IAKxB,KAAK,EAAE,SAAS,CAAC;IAEjB,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC3C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,MAAM,IAAI;IAIb,IAAW,UAAU,IAAI,UAAU,CAElC;CACD;AAED,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAMhD"}
|