@fluidframework/tree 2.0.0-dev-rc.5.0.0.271045 → 2.0.0-dev-rc.5.0.0.271717
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 +5 -0
- package/api-report/tree.alpha.api.md +10 -21
- package/api-report/tree.beta.api.md +10 -21
- package/api-report/tree.public.api.md +10 -21
- package/dist/beta.d.ts +0 -1
- package/dist/codec/codec.d.ts +2 -2
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +0 -1
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/discriminatedUnions.d.ts +2 -2
- package/dist/codec/discriminatedUnions.d.ts.map +1 -1
- package/dist/codec/discriminatedUnions.js +0 -1
- package/dist/codec/discriminatedUnions.js.map +1 -1
- package/dist/codec/noopValidator.d.ts +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 +3 -3
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js.map +1 -1
- package/dist/codec/versioned/format.d.ts +1 -1
- package/dist/codec/versioned/format.d.ts.map +1 -1
- package/dist/codec/versioned/format.js.map +1 -1
- package/dist/core/change-family/changeFamily.d.ts +5 -5
- package/dist/core/change-family/changeFamily.d.ts.map +1 -1
- package/dist/core/change-family/changeFamily.js.map +1 -1
- package/dist/core/change-family/editBuilder.d.ts +1 -1
- package/dist/core/change-family/editBuilder.d.ts.map +1 -1
- package/dist/core/change-family/editBuilder.js +0 -2
- package/dist/core/change-family/editBuilder.js.map +1 -1
- package/dist/core/forest/editableForest.d.ts +5 -5
- package/dist/core/forest/editableForest.d.ts.map +1 -1
- package/dist/core/forest/editableForest.js.map +1 -1
- package/dist/core/forest/forest.d.ts +3 -3
- package/dist/core/forest/forest.d.ts.map +1 -1
- package/dist/core/forest/forest.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +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/revisionTagCodec.d.ts +4 -4
- package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/dist/core/rebase/revisionTagCodec.js +0 -2
- package/dist/core/rebase/revisionTagCodec.js.map +1 -1
- package/dist/core/rebase/types.d.ts +3 -3
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.d.ts +2 -2
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/format.d.ts +2 -2
- 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/schema.d.ts +3 -3
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +0 -4
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts +3 -3
- package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.js +1 -3
- package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/dist/core/schema-view/view.d.ts +1 -1
- package/dist/core/schema-view/view.d.ts.map +1 -1
- package/dist/core/schema-view/view.js +0 -2
- package/dist/core/schema-view/view.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +56 -18
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +97 -52
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/cursor.d.ts +3 -3
- package/dist/core/tree/cursor.d.ts.map +1 -1
- package/dist/core/tree/cursor.js.map +1 -1
- package/dist/core/tree/delta.d.ts +3 -3
- 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 +2 -2
- 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 +7 -7
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +2 -8
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.d.ts +4 -4
- package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodec.js +0 -3
- package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexFormat.d.ts +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +3 -3
- 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 +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 +2 -2
- package/dist/core/tree/sparseTree.d.ts.map +1 -1
- package/dist/core/tree/sparseTree.js +11 -15
- package/dist/core/tree/sparseTree.js.map +1 -1
- package/dist/core/tree/treeTextFormat.d.ts +2 -2
- 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 +3 -3
- package/dist/core/tree/types.d.ts.map +1 -1
- package/dist/core/tree/types.js +0 -1
- package/dist/core/tree/types.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts +5 -5
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/core/tree/visitPath.d.ts +2 -2
- package/dist/core/tree/visitPath.d.ts.map +1 -1
- package/dist/core/tree/visitPath.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts +7 -7
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/domains/json/jsonCursor.d.ts +2 -2
- package/dist/domains/json/jsonCursor.d.ts.map +1 -1
- package/dist/domains/json/jsonCursor.js.map +1 -1
- package/dist/domains/json/jsonDomainSchema.js.map +1 -1
- package/dist/domains/schemaBuilder.d.ts +2 -2
- package/dist/domains/schemaBuilder.d.ts.map +1 -1
- package/dist/domains/schemaBuilder.js +70 -70
- package/dist/domains/schemaBuilder.js.map +1 -1
- package/dist/events/events.js +1 -2
- package/dist/events/events.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdCodec.d.ts +2 -2
- 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 +2 -2
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js +1 -14
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +4 -4
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +6 -13
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -4
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +2 -9
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +3 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +17 -7
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -11
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +8 -8
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +2 -5
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +3 -3
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +0 -1
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +6 -5
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +4 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +13 -25
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/fieldBatch.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.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +5 -5
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +5 -8
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +6 -6
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +2 -2
- 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 +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/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 +0 -1
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +5 -40
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/contextuallyTyped.d.ts +5 -5
- package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -1
- package/dist/feature-libraries/contextuallyTyped.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -3
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +0 -2
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts +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/noChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/deltaUtils.d.ts +1 -1
- package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/dist/feature-libraries/deltaUtils.js.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +4 -4
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js +1 -2
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts +3 -3
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +12 -13
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/fieldGenerator.d.ts +2 -2
- package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -1
- package/dist/feature-libraries/fieldGenerator.js.map +1 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +5 -5
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +11 -12
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +8 -8
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +3 -7
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +9 -9
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js +1 -4
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +4 -4
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +22 -13
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +6 -6
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +0 -6
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +5 -5
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +19 -13
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts +1 -13
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/treeEvents.js +0 -31
- package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
- package/dist/feature-libraries/flex-tree/unboxed.d.ts +5 -5
- package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.d.ts +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 +3 -3
- package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +7 -7
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -6
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/format.d.ts +1 -1
- package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/format.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +1 -1
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +1 -3
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts +2 -2
- package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
- package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts +1 -1
- package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
- package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -7
- 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 +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKind.js +0 -2
- package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -3
- package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +4 -4
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +1 -1
- 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/isNeverTree.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +5 -5
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +2 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +6 -6
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +2 -5
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +3 -3
- 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/mockNodeKeyManager.d.ts +2 -2
- package/dist/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/mockNodeKeyManager.js +4 -2
- package/dist/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
- package/dist/feature-libraries/node-key/nodeKey.d.ts +3 -3
- 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 +4 -4
- package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyIndex.js +0 -3
- package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts +2 -2
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +28 -23
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +3 -3
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +3 -1
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +2 -2
- 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 +3 -3
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +3 -3
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts +4 -4
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
- package/dist/feature-libraries/schema-aware/schemaAware.js +0 -2
- package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +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 +1 -1
- 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 +2 -2
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/feature-libraries/schema-index/format.d.ts +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 +7 -7
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -5
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/schemaBuilder.d.ts +2 -2
- package/dist/feature-libraries/schemaBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/schemaBuilder.js.map +1 -1
- package/dist/feature-libraries/schemaBuilderBase.d.ts +4 -4
- package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
- package/dist/feature-libraries/schemaBuilderBase.js +3 -14
- package/dist/feature-libraries/schemaBuilderBase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts +5 -5
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +0 -6
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts +1 -1
- 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/invert.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markListFactory.d.ts +1 -1
- package/dist/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markListFactory.js +4 -3
- package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js +2 -4
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +5 -5
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- 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 -3
- package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +0 -6
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +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.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +5 -5
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +5 -5
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +4 -4
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/feature-libraries/sequence-field/types.d.ts +2 -2
- 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 +5 -5
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- 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.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 +9 -13
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.d.ts +2 -2
- package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +3 -3
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +4 -4
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +4 -23
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/feature-libraries/typed-schema/view.d.ts +4 -4
- package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/view.js +0 -7
- package/dist/feature-libraries/typed-schema/view.js.map +1 -1
- package/dist/feature-libraries/valueUtilities.d.ts +2 -2
- package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/dist/feature-libraries/valueUtilities.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- 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 +0 -1
- package/dist/shared-tree/schematizeTree.d.ts +3 -3
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +4 -4
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +10 -27
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +15 -11
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +13 -10
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +4 -4
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +3 -3
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js +11 -14
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +3 -5
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeTypes.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +3 -3
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +0 -2
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeApi.d.ts +1 -1
- package/dist/shared-tree/treeApi.d.ts.map +1 -1
- package/dist/shared-tree/treeApi.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +7 -7
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +11 -22
- 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 +0 -6
- package/dist/shared-tree/treeView.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +2 -2
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +25 -31
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts +2 -2
- package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js +9 -12
- package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/dist/shared-tree-core/changeEnricher.d.ts +1 -1
- package/dist/shared-tree-core/changeEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/changeEnricher.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts +2 -2
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +19 -21
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts +3 -3
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +37 -53
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +5 -5
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.d.ts +4 -4
- package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.d.ts +9 -9
- package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +1 -5
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts +5 -5
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +4 -4
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/shared-tree-core/messageTypes.d.ts +2 -2
- 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/resubmitMachine.d.ts +1 -1
- package/dist/shared-tree-core/resubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/resubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts +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 -10
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +7 -24
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.d.ts +2 -2
- package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.js +1 -3
- package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
- package/dist/shared-tree-core/transactionStack.d.ts +1 -1
- package/dist/shared-tree-core/transactionStack.d.ts.map +1 -1
- package/dist/shared-tree-core/transactionStack.js +3 -1
- package/dist/shared-tree-core/transactionStack.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +2 -2
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +34 -26
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +2 -4
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +2 -2
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +5 -5
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/nodeKeys.d.ts +2 -2
- package/dist/simple-tree/nodeKeys.d.ts.map +1 -1
- package/dist/simple-tree/nodeKeys.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +5 -5
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +6 -6
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/proxies.d.ts +4 -4
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +6 -4
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/proxyBinding.d.ts +6 -6
- package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
- package/dist/simple-tree/proxyBinding.js.map +1 -1
- package/dist/simple-tree/schemaCaching.d.ts +2 -2
- package/dist/simple-tree/schemaCaching.d.ts.map +1 -1
- package/dist/simple-tree/schemaCaching.js.map +1 -1
- package/dist/simple-tree/schemaCreationUtilities.d.ts +5 -5
- package/dist/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
- package/dist/simple-tree/schemaCreationUtilities.js.map +1 -1
- package/dist/simple-tree/schemaFactory.d.ts +25 -12
- package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/schemaFactory.js +65 -53
- package/dist/simple-tree/schemaFactory.js.map +1 -1
- package/dist/simple-tree/schemaFactoryRecursive.d.ts +6 -6
- package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +6 -6
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +3 -12
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/testRecursiveDomain.d.ts +1 -1
- package/dist/simple-tree/testRecursiveDomain.d.ts.map +1 -1
- package/dist/simple-tree/testRecursiveDomain.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts +4 -4
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts +2 -2
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/tree.d.ts +6 -27
- package/dist/simple-tree/tree.d.ts.map +1 -1
- package/dist/simple-tree/tree.js +0 -21
- package/dist/simple-tree/tree.js.map +1 -1
- package/dist/simple-tree/treeNodeApi.d.ts +30 -27
- package/dist/simple-tree/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeApi.js +8 -3
- package/dist/simple-tree/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/types.d.ts +29 -9
- package/dist/simple-tree/types.d.ts.map +1 -1
- package/dist/simple-tree/types.js +79 -54
- package/dist/simple-tree/types.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +5 -5
- package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/treeFactory.d.ts +5 -5
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +10 -9
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/brand.js +0 -1
- package/dist/util/brand.js.map +1 -1
- package/dist/util/brandedMap.d.ts +1 -1
- package/dist/util/brandedMap.d.ts.map +1 -1
- package/dist/util/brandedMap.js.map +1 -1
- package/dist/util/nestedMap.d.ts +1 -1
- package/dist/util/nestedMap.d.ts.map +1 -1
- package/dist/util/nestedMap.js +4 -2
- package/dist/util/nestedMap.js.map +1 -1
- package/dist/util/nestedSet.d.ts +1 -1
- package/dist/util/nestedSet.d.ts.map +1 -1
- package/dist/util/nestedSet.js.map +1 -1
- package/dist/util/offsetList.js +4 -2
- package/dist/util/offsetList.js.map +1 -1
- package/dist/util/referenceCounting.js +0 -1
- package/dist/util/referenceCounting.js.map +1 -1
- package/dist/util/stackyIterator.js +2 -3
- package/dist/util/stackyIterator.js.map +1 -1
- package/dist/util/typeboxBrand.d.ts +1 -1
- package/dist/util/typeboxBrand.d.ts.map +1 -1
- package/dist/util/typeboxBrand.js.map +1 -1
- package/lib/beta.d.ts +0 -1
- package/lib/codec/codec.d.ts +2 -2
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +0 -1
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/discriminatedUnions.d.ts +2 -2
- package/lib/codec/discriminatedUnions.d.ts.map +1 -1
- package/lib/codec/discriminatedUnions.js +0 -1
- package/lib/codec/discriminatedUnions.js.map +1 -1
- package/lib/codec/noopValidator.d.ts +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 +3 -3
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js.map +1 -1
- package/lib/codec/versioned/format.d.ts +1 -1
- package/lib/codec/versioned/format.d.ts.map +1 -1
- package/lib/codec/versioned/format.js.map +1 -1
- package/lib/core/change-family/changeFamily.d.ts +5 -5
- package/lib/core/change-family/changeFamily.d.ts.map +1 -1
- package/lib/core/change-family/changeFamily.js.map +1 -1
- package/lib/core/change-family/editBuilder.d.ts +1 -1
- package/lib/core/change-family/editBuilder.d.ts.map +1 -1
- package/lib/core/change-family/editBuilder.js +0 -2
- package/lib/core/change-family/editBuilder.js.map +1 -1
- package/lib/core/forest/editableForest.d.ts +5 -5
- package/lib/core/forest/editableForest.d.ts.map +1 -1
- package/lib/core/forest/editableForest.js.map +1 -1
- package/lib/core/forest/forest.d.ts +3 -3
- package/lib/core/forest/forest.d.ts.map +1 -1
- package/lib/core/forest/forest.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +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/revisionTagCodec.d.ts +4 -4
- package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
- package/lib/core/rebase/revisionTagCodec.js +0 -2
- package/lib/core/rebase/revisionTagCodec.js.map +1 -1
- package/lib/core/rebase/types.d.ts +3 -3
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.d.ts +2 -2
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/format.d.ts +2 -2
- 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/schema.d.ts +3 -3
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +0 -4
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts +3 -3
- package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.js +1 -3
- package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/lib/core/schema-view/view.d.ts +1 -1
- package/lib/core/schema-view/view.d.ts.map +1 -1
- package/lib/core/schema-view/view.js +0 -2
- package/lib/core/schema-view/view.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +56 -18
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +97 -52
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/cursor.d.ts +3 -3
- package/lib/core/tree/cursor.d.ts.map +1 -1
- package/lib/core/tree/cursor.js.map +1 -1
- package/lib/core/tree/delta.d.ts +3 -3
- 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 +2 -2
- 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 +7 -7
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +2 -8
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.d.ts +4 -4
- package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodec.js +1 -4
- package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexFormat.d.ts +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +3 -3
- 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 +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 +2 -2
- package/lib/core/tree/sparseTree.d.ts.map +1 -1
- package/lib/core/tree/sparseTree.js +11 -15
- package/lib/core/tree/sparseTree.js.map +1 -1
- package/lib/core/tree/treeTextFormat.d.ts +2 -2
- 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 +3 -3
- package/lib/core/tree/types.d.ts.map +1 -1
- package/lib/core/tree/types.js +1 -2
- package/lib/core/tree/types.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts +5 -5
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/core/tree/visitPath.d.ts +2 -2
- package/lib/core/tree/visitPath.d.ts.map +1 -1
- package/lib/core/tree/visitPath.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts +7 -7
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/domains/json/jsonCursor.d.ts +2 -2
- package/lib/domains/json/jsonCursor.d.ts.map +1 -1
- package/lib/domains/json/jsonCursor.js.map +1 -1
- package/lib/domains/json/jsonDomainSchema.js.map +1 -1
- package/lib/domains/schemaBuilder.d.ts +2 -2
- package/lib/domains/schemaBuilder.d.ts.map +1 -1
- package/lib/domains/schemaBuilder.js +70 -70
- package/lib/domains/schemaBuilder.js.map +1 -1
- package/lib/events/events.js +1 -2
- package/lib/events/events.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdCodec.d.ts +2 -2
- 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 +2 -2
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -14
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +4 -4
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +6 -13
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -4
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +2 -9
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +3 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +17 -7
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -11
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +8 -8
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +3 -6
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +3 -3
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +0 -1
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +6 -5
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +5 -2
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +13 -25
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/fieldBatch.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.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +5 -5
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +5 -8
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +6 -6
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts +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/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 +0 -1
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +5 -40
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/contextuallyTyped.d.ts +5 -5
- package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -1
- package/lib/feature-libraries/contextuallyTyped.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -3
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +0 -2
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts +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/noChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/deltaUtils.d.ts +1 -1
- package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/lib/feature-libraries/deltaUtils.js +1 -1
- package/lib/feature-libraries/deltaUtils.js.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +4 -4
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js +1 -2
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts +3 -3
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +12 -13
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/fieldGenerator.d.ts +2 -2
- package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -1
- package/lib/feature-libraries/fieldGenerator.js.map +1 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +5 -5
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +11 -12
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +8 -8
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +3 -7
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +9 -9
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js +0 -1
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +4 -4
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +23 -14
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +6 -6
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +0 -6
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +5 -5
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +19 -13
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts +1 -13
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/treeEvents.js +1 -28
- package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
- package/lib/feature-libraries/flex-tree/unboxed.d.ts +5 -5
- package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.d.ts +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 +3 -3
- 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 +7 -7
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -6
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/format.d.ts +1 -1
- package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/format.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +1 -1
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +1 -1
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts +2 -2
- package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts +1 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
- package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -7
- 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 +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKind.js +0 -2
- package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -3
- package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +4 -4
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- 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.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +1 -1
- 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/isNeverTree.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +5 -5
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +2 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +6 -6
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +2 -5
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +3 -3
- 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/mockNodeKeyManager.d.ts +2 -2
- package/lib/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/mockNodeKeyManager.js +4 -2
- package/lib/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
- package/lib/feature-libraries/node-key/nodeKey.d.ts +3 -3
- 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 +4 -4
- package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyIndex.js +0 -3
- package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
- package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts +2 -2
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +28 -23
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +3 -3
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +3 -1
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +2 -2
- 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 +3 -3
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +3 -3
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts +4 -4
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
- package/lib/feature-libraries/schema-aware/schemaAware.js +1 -2
- package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +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 +1 -1
- 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 +2 -2
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +1 -1
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/feature-libraries/schema-index/format.d.ts +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 +7 -7
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +2 -6
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/schemaBuilder.d.ts +2 -2
- package/lib/feature-libraries/schemaBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/schemaBuilder.js.map +1 -1
- package/lib/feature-libraries/schemaBuilderBase.d.ts +4 -4
- package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
- package/lib/feature-libraries/schemaBuilderBase.js +3 -14
- package/lib/feature-libraries/schemaBuilderBase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts +5 -5
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +0 -6
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV2.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts +1 -1
- 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/invert.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markListFactory.d.ts +1 -1
- package/lib/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markListFactory.js +4 -3
- package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js +2 -4
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +5 -5
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- 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 -3
- package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +0 -6
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +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.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +5 -5
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +5 -5
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +4 -4
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +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.map +1 -1
- package/lib/feature-libraries/sequence-field/types.d.ts +2 -2
- 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 +5 -5
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- 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.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 +9 -13
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
- package/lib/feature-libraries/treeTextCursor.d.ts +2 -2
- package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/lib/feature-libraries/treeTextCursor.js +1 -1
- package/lib/feature-libraries/treeTextCursor.js.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +3 -3
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +4 -4
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +4 -23
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/feature-libraries/typed-schema/view.d.ts +4 -4
- package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/view.js +0 -7
- package/lib/feature-libraries/typed-schema/view.js.map +1 -1
- package/lib/feature-libraries/valueUtilities.d.ts +2 -2
- package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
- package/lib/feature-libraries/valueUtilities.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- 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 +0 -1
- package/lib/shared-tree/schematizeTree.d.ts +3 -3
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +4 -4
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +11 -28
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +15 -11
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +14 -11
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +4 -4
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +3 -3
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js +11 -14
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +4 -6
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeTypes.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +3 -3
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +0 -2
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeApi.d.ts +1 -1
- package/lib/shared-tree/treeApi.d.ts.map +1 -1
- package/lib/shared-tree/treeApi.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +7 -7
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +12 -23
- 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 +0 -6
- package/lib/shared-tree/treeView.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +2 -2
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +25 -31
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts +2 -2
- package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js +9 -12
- package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/lib/shared-tree-core/changeEnricher.d.ts +1 -1
- package/lib/shared-tree-core/changeEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/changeEnricher.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts +2 -2
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +19 -21
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts +3 -3
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +37 -53
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +5 -5
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.d.ts +4 -4
- package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.d.ts +9 -9
- package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +1 -5
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts +5 -5
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +4 -4
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/shared-tree-core/messageTypes.d.ts +2 -2
- 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/resubmitMachine.d.ts +1 -1
- package/lib/shared-tree-core/resubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/resubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts +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 -10
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +7 -24
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.d.ts +2 -2
- package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.js +1 -3
- package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
- package/lib/shared-tree-core/transactionStack.d.ts +1 -1
- package/lib/shared-tree-core/transactionStack.d.ts.map +1 -1
- package/lib/shared-tree-core/transactionStack.js +3 -1
- package/lib/shared-tree-core/transactionStack.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +2 -2
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +35 -27
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +2 -4
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +2 -2
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +5 -5
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/nodeKeys.d.ts +2 -2
- package/lib/simple-tree/nodeKeys.d.ts.map +1 -1
- package/lib/simple-tree/nodeKeys.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +5 -5
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +6 -6
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/proxies.d.ts +4 -4
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +7 -5
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/proxyBinding.d.ts +6 -6
- package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
- package/lib/simple-tree/proxyBinding.js.map +1 -1
- package/lib/simple-tree/schemaCaching.d.ts +2 -2
- package/lib/simple-tree/schemaCaching.d.ts.map +1 -1
- package/lib/simple-tree/schemaCaching.js.map +1 -1
- package/lib/simple-tree/schemaCreationUtilities.d.ts +5 -5
- package/lib/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
- package/lib/simple-tree/schemaCreationUtilities.js.map +1 -1
- package/lib/simple-tree/schemaFactory.d.ts +25 -12
- package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/schemaFactory.js +66 -54
- package/lib/simple-tree/schemaFactory.js.map +1 -1
- package/lib/simple-tree/schemaFactoryRecursive.d.ts +6 -6
- package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/schemaFactoryRecursive.js +1 -1
- package/lib/simple-tree/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +6 -6
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +3 -12
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/testRecursiveDomain.d.ts +1 -1
- package/lib/simple-tree/testRecursiveDomain.d.ts.map +1 -1
- package/lib/simple-tree/testRecursiveDomain.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts +4 -4
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts +2 -2
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/tree.d.ts +6 -27
- package/lib/simple-tree/tree.d.ts.map +1 -1
- package/lib/simple-tree/tree.js +0 -21
- package/lib/simple-tree/tree.js.map +1 -1
- package/lib/simple-tree/treeNodeApi.d.ts +30 -27
- package/lib/simple-tree/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeApi.js +8 -3
- package/lib/simple-tree/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/types.d.ts +29 -9
- package/lib/simple-tree/types.d.ts.map +1 -1
- package/lib/simple-tree/types.js +78 -54
- package/lib/simple-tree/types.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +5 -5
- package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/treeFactory.d.ts +5 -5
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +10 -9
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/brand.js +0 -1
- package/lib/util/brand.js.map +1 -1
- package/lib/util/brandedMap.d.ts +1 -1
- package/lib/util/brandedMap.d.ts.map +1 -1
- package/lib/util/brandedMap.js.map +1 -1
- package/lib/util/nestedMap.d.ts +1 -1
- package/lib/util/nestedMap.d.ts.map +1 -1
- package/lib/util/nestedMap.js +4 -2
- package/lib/util/nestedMap.js.map +1 -1
- package/lib/util/nestedSet.d.ts +1 -1
- package/lib/util/nestedSet.d.ts.map +1 -1
- package/lib/util/nestedSet.js.map +1 -1
- package/lib/util/offsetList.js +4 -2
- package/lib/util/offsetList.js.map +1 -1
- package/lib/util/referenceCounting.js +0 -1
- package/lib/util/referenceCounting.js.map +1 -1
- package/lib/util/stackyIterator.js +2 -3
- package/lib/util/stackyIterator.js.map +1 -1
- package/lib/util/typeboxBrand.d.ts +1 -1
- package/lib/util/typeboxBrand.d.ts.map +1 -1
- package/lib/util/typeboxBrand.js.map +1 -1
- package/package.json +20 -20
- package/src/codec/codec.ts +2 -2
- package/src/codec/discriminatedUnions.ts +2 -2
- package/src/codec/noopValidator.ts +1 -1
- package/src/codec/versioned/codec.ts +4 -4
- package/src/codec/versioned/format.ts +1 -1
- package/src/core/change-family/changeFamily.ts +5 -5
- package/src/core/change-family/editBuilder.ts +1 -1
- package/src/core/forest/editableForest.ts +9 -9
- package/src/core/forest/forest.ts +8 -8
- package/src/core/rebase/changeRebaser.ts +1 -1
- package/src/core/rebase/revisionTagCodec.ts +4 -4
- package/src/core/rebase/types.ts +5 -5
- package/src/core/rebase/utils.ts +6 -6
- package/src/core/schema-stored/format.ts +2 -2
- package/src/core/schema-stored/schema.ts +7 -7
- package/src/core/schema-stored/storedSchemaRepository.ts +6 -6
- package/src/core/schema-view/view.ts +1 -1
- package/src/core/tree/anchorSet.ts +115 -23
- package/src/core/tree/cursor.ts +3 -3
- package/src/core/tree/delta.ts +3 -3
- package/src/core/tree/deltaUtil.ts +4 -4
- package/src/core/tree/detachedFieldIndex.ts +11 -11
- package/src/core/tree/detachedFieldIndexCodec.ts +11 -7
- package/src/core/tree/detachedFieldIndexFormat.ts +2 -2
- package/src/core/tree/detachedFieldIndexTypes.ts +3 -3
- package/src/core/tree/mapTree.ts +2 -2
- package/src/core/tree/pathTree.ts +3 -3
- package/src/core/tree/persistedTreeTextFormat.ts +1 -1
- package/src/core/tree/sparseTree.ts +2 -2
- package/src/core/tree/treeTextFormat.ts +2 -2
- package/src/core/tree/types.ts +10 -4
- package/src/core/tree/visitDelta.ts +8 -8
- package/src/core/tree/visitPath.ts +2 -2
- package/src/core/tree/visitorUtils.ts +9 -9
- package/src/domains/json/jsonCursor.ts +5 -5
- package/src/domains/json/jsonDomainSchema.ts +2 -2
- package/src/domains/schemaBuilder.ts +9 -9
- package/src/feature-libraries/changeAtomIdCodec.ts +2 -2
- package/src/feature-libraries/chunked-forest/basicChunk.ts +9 -9
- package/src/feature-libraries/chunked-forest/chunk.ts +4 -4
- package/src/feature-libraries/chunked-forest/chunkTree.ts +12 -12
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +17 -17
- package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +3 -3
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +33 -17
- package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +12 -7
- package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +5 -5
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +14 -6
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +16 -16
- package/src/feature-libraries/chunked-forest/codec/fieldBatch.ts +1 -1
- package/src/feature-libraries/chunked-forest/codec/format.ts +1 -1
- package/src/feature-libraries/chunked-forest/codec/formatGeneric.ts +1 -1
- package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +19 -14
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncoding.ts +11 -11
- package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +10 -5
- package/src/feature-libraries/chunked-forest/emptyChunk.ts +5 -5
- package/src/feature-libraries/chunked-forest/sequenceChunk.ts +1 -1
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +8 -8
- package/src/feature-libraries/contextuallyTyped.ts +12 -12
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +17 -17
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +11 -11
- package/src/feature-libraries/default-schema/defaultSchema.ts +1 -1
- package/src/feature-libraries/default-schema/noChangeCodecs.ts +2 -2
- package/src/feature-libraries/deltaUtils.ts +7 -2
- package/src/feature-libraries/detachedFieldIndexSummarizer.ts +5 -5
- package/src/feature-libraries/editableTreeBinder.ts +10 -10
- package/src/feature-libraries/fieldGenerator.ts +2 -2
- package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +32 -32
- package/src/feature-libraries/flex-tree/context.ts +11 -11
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +15 -12
- package/src/feature-libraries/flex-tree/index.ts +1 -1
- package/src/feature-libraries/flex-tree/lazyEntity.ts +9 -4
- package/src/feature-libraries/flex-tree/lazyField.ts +22 -22
- package/src/feature-libraries/flex-tree/lazyNode.ts +32 -38
- package/src/feature-libraries/flex-tree/treeEvents.ts +1 -38
- package/src/feature-libraries/flex-tree/unboxed.ts +7 -7
- package/src/feature-libraries/flex-tree/utilities.ts +2 -2
- package/src/feature-libraries/forest-summary/codec.ts +7 -3
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +15 -15
- package/src/feature-libraries/forest-summary/format.ts +1 -1
- package/src/feature-libraries/index.ts +0 -2
- package/src/feature-libraries/mapTreeCursor.ts +6 -6
- package/src/feature-libraries/memoizedIdRangeAllocator.ts +3 -3
- package/src/feature-libraries/mitigatedChangeFamily.ts +1 -1
- package/src/feature-libraries/modular-schema/comparison.ts +6 -6
- package/src/feature-libraries/modular-schema/crossFieldQueries.ts +3 -3
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +7 -7
- package/src/feature-libraries/modular-schema/fieldKind.ts +1 -1
- package/src/feature-libraries/modular-schema/fieldKindConfiguration.ts +2 -2
- package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +3 -3
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +10 -10
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +3 -3
- package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +1 -1
- package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +1 -1
- package/src/feature-libraries/modular-schema/isNeverTree.ts +4 -4
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +25 -20
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +34 -34
- package/src/feature-libraries/modular-schema/modularChangeFormat.ts +3 -3
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +3 -3
- package/src/feature-libraries/node-key/mockNodeKeyManager.ts +2 -2
- package/src/feature-libraries/node-key/nodeKey.ts +3 -3
- package/src/feature-libraries/node-key/nodeKeyIndex.ts +4 -4
- package/src/feature-libraries/node-key/nodeKeyManager.ts +1 -1
- package/src/feature-libraries/object-forest/objectForest.ts +22 -22
- package/src/feature-libraries/optional-field/optionalField.ts +20 -20
- package/src/feature-libraries/optional-field/optionalFieldChangeFormatV1.ts +1 -1
- package/src/feature-libraries/optional-field/optionalFieldChangeFormatV2.ts +1 -1
- package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +2 -2
- package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +4 -4
- package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +4 -4
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +2 -2
- package/src/feature-libraries/schema-aware/schemaAware.ts +8 -4
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +3 -3
- package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +1 -1
- package/src/feature-libraries/schema-edits/schemaChangeTypes.ts +1 -1
- package/src/feature-libraries/schema-index/codec.ts +8 -4
- package/src/feature-libraries/schema-index/format.ts +1 -1
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +11 -7
- package/src/feature-libraries/schemaBuilder.ts +2 -2
- package/src/feature-libraries/schemaBuilderBase.ts +12 -12
- package/src/feature-libraries/sequence-field/compose.ts +18 -18
- package/src/feature-libraries/sequence-field/formatV1.ts +1 -1
- package/src/feature-libraries/sequence-field/formatV2.ts +1 -1
- package/src/feature-libraries/sequence-field/helperTypes.ts +1 -1
- package/src/feature-libraries/sequence-field/invert.ts +14 -14
- package/src/feature-libraries/sequence-field/markListFactory.ts +1 -1
- package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +5 -5
- package/src/feature-libraries/sequence-field/prune.ts +2 -2
- package/src/feature-libraries/sequence-field/rebase.ts +18 -18
- package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +3 -3
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +7 -7
- package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +3 -3
- package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +2 -2
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +17 -17
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +16 -16
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +4 -4
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +12 -3
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +7 -7
- package/src/feature-libraries/sequence-field/types.ts +2 -2
- package/src/feature-libraries/sequence-field/utils.ts +25 -25
- package/src/feature-libraries/storedToViewSchema.ts +7 -7
- package/src/feature-libraries/treeCursorUtils.ts +8 -8
- package/src/feature-libraries/treeTextCursor.ts +10 -6
- package/src/feature-libraries/typed-schema/schemaCollection.ts +11 -6
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +16 -16
- package/src/feature-libraries/typed-schema/view.ts +8 -8
- package/src/feature-libraries/valueUtilities.ts +2 -2
- package/src/index.ts +0 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/schematizeTree.ts +7 -7
- package/src/shared-tree/schematizingTreeView.ts +19 -16
- package/src/shared-tree/sharedTree.ts +28 -16
- package/src/shared-tree/sharedTreeChangeCodecs.ts +11 -8
- package/src/shared-tree/sharedTreeChangeEnricher.ts +8 -8
- package/src/shared-tree/sharedTreeChangeFamily.ts +21 -15
- package/src/shared-tree/sharedTreeChangeFormat.ts +1 -1
- package/src/shared-tree/sharedTreeChangeTypes.ts +1 -1
- package/src/shared-tree/sharedTreeEditBuilder.ts +4 -4
- package/src/shared-tree/treeApi.ts +5 -5
- package/src/shared-tree/treeCheckout.ts +28 -23
- package/src/shared-tree/treeView.ts +8 -8
- package/src/shared-tree-core/branch.ts +8 -8
- package/src/shared-tree-core/branchCommitEnricher.ts +2 -2
- package/src/shared-tree-core/changeEnricher.ts +1 -1
- package/src/shared-tree-core/defaultResubmitMachine.ts +2 -2
- package/src/shared-tree-core/editManager.ts +8 -8
- package/src/shared-tree-core/editManagerCodecs.ts +13 -8
- package/src/shared-tree-core/editManagerFormat.ts +5 -5
- package/src/shared-tree-core/editManagerSummarizer.ts +13 -9
- package/src/shared-tree-core/messageCodecs.ts +7 -7
- package/src/shared-tree-core/messageFormat.ts +4 -4
- package/src/shared-tree-core/messageTypes.ts +2 -2
- package/src/shared-tree-core/resubmitMachine.ts +1 -1
- package/src/shared-tree-core/sequenceIdUtils.ts +1 -1
- package/src/shared-tree-core/sharedTreeCore.ts +20 -20
- package/src/shared-tree-core/transactionEnricher.ts +2 -2
- package/src/shared-tree-core/transactionStack.ts +1 -1
- package/src/simple-tree/arrayNode.ts +32 -28
- package/src/simple-tree/leafNodeSchema.ts +4 -4
- package/src/simple-tree/mapNode.ts +10 -10
- package/src/simple-tree/nodeKeys.ts +2 -2
- package/src/simple-tree/objectNode.ts +18 -18
- package/src/simple-tree/proxies.ts +21 -27
- package/src/simple-tree/proxyBinding.ts +14 -14
- package/src/simple-tree/schemaCaching.ts +5 -5
- package/src/simple-tree/schemaCreationUtilities.ts +5 -5
- package/src/simple-tree/schemaFactory.ts +39 -22
- package/src/simple-tree/schemaFactoryRecursive.ts +13 -13
- package/src/simple-tree/schemaTypes.ts +8 -8
- package/src/simple-tree/testRecursiveDomain.ts +1 -1
- package/src/simple-tree/toFlexSchema.ts +13 -13
- package/src/simple-tree/toMapTree.ts +4 -4
- package/src/simple-tree/tree.ts +6 -31
- package/src/simple-tree/treeNodeApi.ts +45 -33
- package/src/simple-tree/types.ts +60 -12
- package/src/simple-tree/typesUnsafe.ts +6 -6
- package/src/treeFactory.ts +5 -5
- package/src/util/brandedMap.ts +1 -1
- package/src/util/nestedMap.ts +1 -1
- package/src/util/nestedSet.ts +1 -1
- package/src/util/typeboxBrand.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrayNode.js","sourceRoot":"","sources":["../../src/simple-tree/arrayNode.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 { EmptyKey, ITreeCursorSynchronous, TreeNodeSchemaIdentifier } from \"../core/index.js\";\nimport {\n\tFlexAllowedTypes,\n\tFlexFieldNodeSchema,\n\tFlexTreeNode,\n\tFlexTreeSequenceField,\n\tMapTreeNode,\n\tcursorForMapTreeField,\n\tgetOrCreateMapTreeNode,\n\tgetSchemaAndPolicy,\n\tisMapTreeNode,\n} from \"../feature-libraries/index.js\";\nimport {\n\tInsertableContent,\n\tgetOrCreateNodeProxy,\n\tmarkContentType,\n\tprepareContentForHydration,\n} from \"./proxies.js\";\nimport { getFlexNode } from \"./proxyBinding.js\";\nimport {\n\tNodeKind,\n\ttype ImplicitAllowedTypes,\n\ttype InsertableTreeNodeFromImplicitAllowedTypes,\n\ttype TreeNodeFromImplicitAllowedTypes,\n\tTreeNodeSchemaClass,\n\tWithType,\n\tTreeNodeSchema,\n\ttype,\n\tnormalizeFieldSchema,\n} from \"./schemaTypes.js\";\nimport { mapTreeFromNodeData } from \"./toMapTree.js\";\nimport { TreeNode, TreeNodeValid } from \"./types.js\";\nimport { fail } from \"../util/index.js\";\nimport { getFlexSchema } from \"./toFlexSchema.js\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\n/**\n * A generic array type, used to defined types like {@link (TreeArrayNode:interface)}.\n *\n * @privateRemarks\n * Inlining this into TreeArrayNode causes recursive array use to stop compiling.\n *\n * @public\n */\nexport interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom>\n\textends ReadonlyArray<T>,\n\t\tTreeNode {\n\t/**\n\t * Inserts new item(s) at a specified location.\n\t * @param index - The index at which to insert `value`.\n\t * @param value - The content to insert.\n\t * @throws Throws if `index` is not in the range [0, `array.length`).\n\t */\n\tinsertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;\n\n\t/**\n\t * Inserts new item(s) at the start of the array.\n\t * @param value - The content to insert.\n\t */\n\tinsertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;\n\n\t/**\n\t * Inserts new item(s) at the end of the array.\n\t * @param value - The content to insert.\n\t */\n\tinsertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;\n\n\t/**\n\t * Removes the item at the specified location.\n\t * @param index - The index at which to remove the item.\n\t * @throws Throws if `index` is not in the range [0, `array.length`).\n\t */\n\tremoveAt(index: number): void;\n\n\t/**\n\t * Removes all items between the specified indices.\n\t * @param start - The starting index of the range to remove (inclusive). Defaults to the start of the array.\n\t * @param end - The ending index of the range to remove (exclusive). Defaults to `array.length`.\n\t * @throws Throws if `start` is not in the range [0, `array.length`].\n\t * @throws Throws if `end` is less than `start`.\n\t * If `end` is not supplied or is greater than the length of the array, all items after `start` are removed.\n\t *\n\t * @remarks\n\t * The default values for start and end are computed when this is called,\n\t * and thus the behavior is the same as providing them explicitly, even with respect to merge resolution with concurrent edits.\n\t * For example, two concurrent transactions both emptying the array with `node.removeRange()` then inserting an item,\n\t * will merge to result in the array having both inserted items.\n\t */\n\tremoveRange(start?: number, end?: number): void;\n\n\t/**\n\t * Moves the specified item to the start of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToStart(sourceIndex: number): void;\n\n\t/**\n\t * Moves the specified item to the start of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @param source - The source array to move the item out of.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToStart(sourceIndex: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified item to the end of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToEnd(sourceIndex: number): void;\n\n\t/**\n\t * Moves the specified item to the end of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @param source - The source array to move the item out of.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToEnd(sourceIndex: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified item to the desired location in the array.\n\t * @param index - The index to move the item to.\n\t * This is based on the state of the array before moving the source item.\n\t * @param sourceIndex - The index of the item to move.\n\t * @throws Throws if any of the input indices are not in the range [0, `array.length`).\n\t */\n\tmoveToIndex(index: number, sourceIndex: number): void;\n\n\t/**\n\t * Moves the specified item to the desired location in the array.\n\t * @param index - The index to move the item to.\n\t * @param sourceIndex - The index of the item to move.\n\t * @param source - The source array to move the item out of.\n\t * @throws Throws if any of the input indices are not in the range [0, `array.length`).\n\t */\n\tmoveToIndex(index: number, sourceIndex: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified items to the start of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @throws Throws if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToStart(sourceStart: number, sourceEnd: number): void;\n\n\t/**\n\t * Moves the specified items to the start of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @param source - The source array to move items out of.\n\t * @throws Throws if the types of any of the items being moved are not allowed in the destination array,\n\t * if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToStart(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified items to the end of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @throws Throws if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToEnd(sourceStart: number, sourceEnd: number): void;\n\n\t/**\n\t * Moves the specified items to the end of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @param source - The source array to move items out of.\n\t * @throws Throws if the types of any of the items being moved are not allowed in the destination array,\n\t * if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified items to the desired location within the array.\n\t * @param index - The index to move the items to.\n\t * This is based on the state of the array before moving the source items.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @throws Throws if any of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;\n\n\t/**\n\t * Moves the specified items to the desired location within the array.\n\t * @param index - The index to move the items to.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @param source - The source array to move items out of.\n\t * @throws Throws if the types of any of the items being moved are not allowed in the destination array,\n\t * if any of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToIndex(\n\t\tindex: number,\n\t\tsourceStart: number,\n\t\tsourceEnd: number,\n\t\tsource: TMoveFrom,\n\t): void;\n}\n\n/**\n * A {@link TreeNode} which implements 'readonly T[]' and the array mutation APIs.\n *\n * @typeParam TAllowedTypes - Schema for types which are allowed as members of this array.\n *\n * @public\n */\nexport interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes>\n\textends TreeArrayNodeBase<\n\t\tTreeNodeFromImplicitAllowedTypes<TAllowedTypes>,\n\t\tInsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>,\n\t\tTreeArrayNode\n\t> {}\n\n/**\n * A {@link TreeNode} which implements 'readonly T[]' and the array mutation APIs.\n * @public\n */\nexport const TreeArrayNode = {\n\t/**\n\t * Wrap an iterable of items to inserted as consecutive items in a array.\n\t * @remarks\n\t * The object returned by this function can be inserted into a {@link (TreeArrayNode:interface)}.\n\t * Its contents will be inserted consecutively in the corresponding location in the array.\n\t * @example\n\t * ```ts\n\t * array.insertAtEnd(TreeArrayNode.spread(iterable))\n\t * ```\n\t */\n\tspread: <T>(content: Iterable<T>) => create(content),\n};\n\n/**\n * Package internal construction API.\n * Use {@link (TreeArrayNode:variable).spread} to create an instance of this type instead.\n */\nlet create: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;\n\n/**\n * Used to insert iterable content into a {@link (TreeArrayNode:interface)}.\n * Use {@link (TreeArrayNode:variable).spread} to create an instance of this type.\n * @public\n */\nexport class IterableTreeArrayContent<T> implements Iterable<T> {\n\tstatic {\n\t\tcreate = <T2>(content: Iterable<T2>) => new IterableTreeArrayContent(content);\n\t}\n\n\tprivate constructor(private readonly content: Iterable<T>) {}\n\n\t/**\n\t * Iterates over content for nodes to insert.\n\t */\n\tpublic [Symbol.iterator](): Iterator<T> {\n\t\treturn this.content[Symbol.iterator]();\n\t}\n}\n\n/**\n * Given a array node proxy, returns its underlying LazySequence field.\n */\nfunction getSequenceField<\n\tTTypes extends FlexAllowedTypes,\n\tTSimpleType extends ImplicitAllowedTypes,\n>(arrayNode: TreeArrayNode<TSimpleType>): FlexTreeSequenceField<TTypes> {\n\treturn getFlexNode(arrayNode).getBoxed(EmptyKey) as FlexTreeSequenceField<TTypes>;\n}\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\nconst arrayPrototypeKeys = [\n\t\"concat\",\n\t\"entries\",\n\t\"every\",\n\t\"filter\",\n\t\"find\",\n\t\"findIndex\",\n\t\"flat\",\n\t\"flatMap\",\n\t\"forEach\",\n\t\"includes\",\n\t\"indexOf\",\n\t\"join\",\n\t\"keys\",\n\t\"lastIndexOf\",\n\t\"map\",\n\t\"reduce\",\n\t\"reduceRight\",\n\t\"slice\",\n\t\"some\",\n\t\"toLocaleString\",\n\t\"toString\",\n\t\"values\",\n\n\t// \"copyWithin\",\n\t// \"fill\",\n\t// \"length\",\n\t// \"pop\",\n\t// \"push\",\n\t// \"reverse\",\n\t// \"shift\",\n\t// \"sort\",\n\t// \"splice\",\n\t// \"unshift\",\n] as const;\n\n/**\n * {@link TreeNodeValid}, but modified to add members from Array.prototype named in {@link arrayPrototypeKeys}.\n * @privateRemarks\n * Since a lot of scratch types and values are involved with creating this,\n * it's generating using an immediately invoked function expression (IIFE).\n * This is a common JavaScript pattern for cases like this to avoid cluttering the scope.\n */\nconst TreeNodeWithArrayFeatures = (() => {\n\t/**\n\t * {@link TreeNodeValid}, but modified to add members from Array.prototype named in {@link arrayPrototypeKeys}.\n\t */\n\tabstract class TreeNodeWithArrayFeaturesUntyped<\n\t\tconst T extends ImplicitAllowedTypes,\n\t> extends TreeNodeValid<Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>> {}\n\n\t// Modify TreeNodeWithArrayFeaturesUntyped to add the members from Array.prototype\n\tarrayPrototypeKeys.forEach((key) => {\n\t\tObject.defineProperty(TreeNodeWithArrayFeaturesUntyped.prototype, key, {\n\t\t\tvalue: Array.prototype[key],\n\t\t});\n\t});\n\n\treturn TreeNodeWithArrayFeaturesUntyped as unknown as typeof NodeWithArrayFeatures;\n})();\n\n/**\n * Type of {@link TreeNodeValid}, but with array members added to the instance type.\n *\n * TypeScript has a rule that `Base constructors must all have the same return type.ts(2510)`.\n * This means that intersecting two types with different constructors to create a type with a more constrained constructor (ex: more specific return type)\n * is not supported.\n *\n * TypeScript also has a limitation that there is no way to replace or remove just the constructor of a type without losing all the private and protected members.\n * See https://github.com/microsoft/TypeScript/issues/35416 for details.\n *\n * TypeScript also does not support explicitly specifying the instance type in a class definition as the constructor return type.\n *\n * Thus to replace the instance type, while preserving the protected static members of TreeNodeValid,\n * the only option seems to be actually declaring a class with all the members explicitly inline.\n *\n * To avoid incurring any bundle size / runtime overhead from this and having to stub out the function bodies,\n * the class uses `declare`.\n * TypeScript does not support `declare` inside scopes, so this is not inside the function scope above.\n *\n * The members of this class were generated using the \"implement interface\" refactoring.\n * Since that refactoring does not add `public`, the lint to require it is disabled for this section of the file.\n * To update this class delete all members and reapply the \"implement interface\" refactoring.\n * As these signatures get formatted to be over three times as many lines with prettier (which is not helpful), it is also suppressed.\n */\n/* eslint-disable @typescript-eslint/explicit-member-accessibility, @typescript-eslint/no-explicit-any */\n// prettier-ignore\ndeclare abstract class NodeWithArrayFeatures<Input, T>\n\textends TreeNodeValid<Input>\n\timplements Pick<readonly T[], (typeof arrayPrototypeKeys)[number]>\n{\n\tconcat(...items: ConcatArray<T>[]): T[];\n\tconcat(...items: (T | ConcatArray<T>)[]): T[];\n\tjoin(separator?: string | undefined): string;\n\tslice(start?: number | undefined, end?: number | undefined): T[];\n\tindexOf(searchElement: T, fromIndex?: number | undefined): number;\n\tlastIndexOf(searchElement: T, fromIndex?: number | undefined): number;\n\tevery<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): this is readonly S[];\n\tevery(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n\tsome(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n\tforEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\n\tmap<U>(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\n\tfilter<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\n\tfilter(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\n\treduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n\treduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n\treduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n\treduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n\treduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n\treduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n\tfind<S extends T>(predicate: (value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;\n\tfind(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;\n\tfindIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;\n\tentries(): IterableIterator<[number, T]>;\n\tkeys(): IterableIterator<number>;\n\tvalues(): IterableIterator<T>;\n\tincludes(searchElement: T, fromIndex?: number | undefined): boolean;\n\tflatMap<U, This = undefined>(callback: (this: This, value: T, index: number, array: T[]) => U | readonly U[], thisArg?: This | undefined): U[];\n\tflat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];\n\ttoString(): string;\n\ttoLocaleString(): string;\n}\n/* eslint-enable @typescript-eslint/explicit-member-accessibility, @typescript-eslint/no-explicit-any */\n\n/**\n * Attempts to coerce the given property key to an integer index property.\n * @param key - The property key to coerce.\n * @param exclusiveMax - This restricts the range in which the resulting index is allowed to be.\n * The coerced index of `key` must be less than `exclusiveMax` or else this function will return `undefined`.\n * This is useful for reading an array within the bounds of its length, e.g. `asIndex(key, array.length)`.\n */\nexport function asIndex(key: string | symbol, exclusiveMax: number): number | undefined {\n\tif (typeof key !== \"string\") {\n\t\treturn undefined;\n\t}\n\n\t// TODO: It may be worth a '0' <= ch <= '9' check before calling 'Number' to quickly\n\t// reject 'length' as an index, or even parsing integers ourselves.\n\tconst asNumber = Number(key);\n\tif (!Number.isInteger(asNumber)) {\n\t\treturn undefined;\n\t}\n\n\t// Check that the original string is the same after converting to a number and back again.\n\t// This prevents keys like \"5.0\", \"0x5\", \" 5\" from coercing to 5, and keys like \" \" or \"\" from coercing to 0.\n\tconst asString = String(asNumber);\n\tif (asString !== key) {\n\t\treturn undefined;\n\t}\n\n\t// TODO: See 'matrix/range.ts' for fast integer coercing + range check.\n\treturn 0 <= asNumber && asNumber < exclusiveMax ? asNumber : undefined;\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 proxyTarget - Target object of the proxy. Must provide an own `length` value property\n * (which is not used but must exist for getOwnPropertyDescriptor invariants) and the array functionality from {@link arrayNodePrototype}.\n * Controls the prototype exposed by the produced proxy.\n * @param dispatchTarget - provides the functionally of the node, implementing all fields.\n */\nfunction createArrayNodeProxy(\n\tallowAdditionalProperties: boolean,\n\tproxyTarget: object,\n\tdispatchTarget: object,\n): TreeArrayNode {\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>(proxyTarget as TreeArrayNode, {\n\t\tget: (target, key, receiver) => {\n\t\t\tconst field = getSequenceField(receiver);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\n\t\t\tif (maybeIndex === undefined) {\n\t\t\t\tif (key === \"length\") {\n\t\t\t\t\treturn field.length;\n\t\t\t\t}\n\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(dispatchTarget, key, receiver) 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\tif (key === \"length\") {\n\t\t\t\t// To allow \"length\" to look like \"length\" on an array, getOwnPropertyDescriptor has to report it as a writable value.\n\t\t\t\t// This means the proxy target must provide a length value, but since it can't use getters and setters, it can't be correct.\n\t\t\t\t// Therefor length has to be handled in this proxy.\n\t\t\t\t// Since it's not actually mutable, return false so setting it will produce a type error.\n\t\t\t\treturn false;\n\t\t\t}\n\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(dispatchTarget, key, newValue, receiver);\n\t\t\t}\n\n\t\t\t// Array nodes treat all non-negative integer indexes as array access.\n\t\t\t// Using Infinity here (rather than length) ensures that indexing past the end doesn't create additional session local properties.\n\t\t\tconst maybeIndex = asIndex(key, Number.POSITIVE_INFINITY);\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\t// To ensure a clear and actionable error experience, we will throw explicitly here, rather than just returning false.\n\t\t\t\tthrow new UsageError(\n\t\t\t\t\t\"Cannot set indexed properties on array nodes. Use array node mutation APIs to alter the array.\",\n\t\t\t\t);\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(dispatchTarget, 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\tconst keys: (string | symbol)[] = Array.from(\n\t\t\t\t{ length: field.length },\n\t\t\t\t(_, index) => `${index}`,\n\t\t\t);\n\n\t\t\tif (allowAdditionalProperties) {\n\t\t\t\tkeys.push(...Reflect.ownKeys(target));\n\t\t\t} else {\n\t\t\t\tkeys.push(\"length\");\n\t\t\t}\n\t\t\treturn keys;\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: field.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(dispatchTarget, key);\n\t\t},\n\t\tdefineProperty(target, key, attributes) {\n\t\t\tconst maybeIndex = asIndex(key, Number.POSITIVE_INFINITY);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\tthrow new UsageError(\"Shadowing of array indices is not permitted.\");\n\t\t\t}\n\t\t\treturn Reflect.defineProperty(dispatchTarget, key, attributes);\n\t\t},\n\t});\n\treturn proxy;\n}\n\ntype Insertable<T extends ImplicitAllowedTypes> = readonly (\n\t| InsertableTreeNodeFromImplicitAllowedTypes<T>\n\t| IterableTreeArrayContent<InsertableTreeNodeFromImplicitAllowedTypes<T>>\n)[];\n\nabstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>\n\textends TreeNodeWithArrayFeatures<\n\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\tTreeNodeFromImplicitAllowedTypes<T>\n\t>\n\timplements TreeArrayNode<T>\n{\n\t// Indexing must be provided by subclass.\n\t[k: number]: TreeNodeFromImplicitAllowedTypes<T>;\n\n\tpublic static readonly kind = NodeKind.Array;\n\n\tprotected abstract get simpleSchema(): T;\n\n\t#cursorFromFieldData(value: Insertable<T>): ITreeCursorSynchronous {\n\t\tif (isMapTreeNode(getFlexNode(this))) {\n\t\t\tthrow new UsageError(`An array cannot be mutated before being inserted into the tree`);\n\t\t}\n\n\t\tconst sequenceField = getSequenceField(this);\n\t\t// TODO: this is not valid since this is a value field schema, not a sequence one (which does not exist in the simple tree layer),\n\t\t// but it works since cursorFromFieldData special cases arrays.\n\t\tconst simpleFieldSchema = normalizeFieldSchema(this.simpleSchema);\n\t\tconst content = value as readonly (\n\t\t\t| InsertableContent\n\t\t\t| IterableTreeArrayContent<InsertableContent>\n\t\t)[];\n\n\t\tconst mapTrees = content\n\t\t\t.flatMap((c): InsertableContent[] =>\n\t\t\t\tc instanceof IterableTreeArrayContent ? Array.from(c) : [c],\n\t\t\t)\n\t\t\t.map((c) =>\n\t\t\t\tmapTreeFromNodeData(\n\t\t\t\t\tc,\n\t\t\t\t\tsimpleFieldSchema.allowedTypes,\n\t\t\t\t\tsequenceField.context.nodeKeyManager,\n\t\t\t\t\tgetSchemaAndPolicy(sequenceField),\n\t\t\t\t),\n\t\t\t);\n\n\t\tprepareContentForHydration(mapTrees, sequenceField.context.checkout.forest);\n\t\treturn cursorForMapTreeField(mapTrees);\n\t}\n\n\tpublic toJSON(): unknown {\n\t\t// This override causes the class instance to `JSON.stringify` as `[a, b]` rather than `{0: a, 1: b}`.\n\t\treturn Array.from(this as unknown as TreeArrayNode);\n\t}\n\n\t// Instances of this class are used as the dispatch object for the proxy,\n\t// and thus its set of keys is used to implement `has` (for the `in` operator) for the non-numeric cases.\n\t// Therefore it must include `length`,\n\t// even though this \"length\" is never invoked (due to being shadowed by the proxy provided own property).\n\tpublic get length(): number {\n\t\treturn fail(\"Proxy should intercept length\");\n\t}\n\n\tpublic [Symbol.iterator](): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>> {\n\t\treturn this.values();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n\tpublic get [Symbol.unscopables]() {\n\t\t// This might not be the exact right set of values, but it only matters for `with` clauses which are deprecated and are banned in strict mode, so it shouldn't matter much.\n\t\t// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with for details.\n\t\treturn Array.prototype[Symbol.unscopables];\n\t}\n\n\tpublic at(\n\t\tthis: TreeArrayNode<T>,\n\t\tindex: number,\n\t): TreeNodeFromImplicitAllowedTypes<T> | undefined {\n\t\tconst field = getSequenceField(this);\n\t\tconst val = field.boxedAt(index);\n\n\t\tif (val === undefined) {\n\t\t\treturn val;\n\t\t}\n\n\t\treturn getOrCreateNodeProxy(val) as TreeNodeFromImplicitAllowedTypes<T>;\n\t}\n\tpublic insertAt(index: number, ...value: Insertable<T>): void {\n\t\tgetSequenceField(this).insertAt(index, this.#cursorFromFieldData(value));\n\t}\n\tpublic insertAtStart(...value: Insertable<T>): void {\n\t\tgetSequenceField(this).insertAtStart(this.#cursorFromFieldData(value));\n\t}\n\tpublic insertAtEnd(...value: Insertable<T>): void {\n\t\tgetSequenceField(this).insertAtEnd(this.#cursorFromFieldData(value));\n\t}\n\tpublic removeAt(index: number): void {\n\t\tgetSequenceField(this).removeAt(index);\n\t}\n\tpublic removeRange(start?: number, end?: number): void {\n\t\tconst field = getSequenceField(this);\n\t\tconst fieldEditor = field.sequenceEditor();\n\t\tconst { length } = field;\n\t\tconst removeStart = start ?? 0;\n\t\tconst removeEnd = Math.min(length, end ?? length);\n\t\tvalidatePositiveIndex(removeStart);\n\t\tvalidatePositiveIndex(removeEnd);\n\t\tif (removeEnd < removeStart) {\n\t\t\t// This catches both the case where start is > array.length and when start is > end.\n\t\t\tthrow new UsageError('Too large of \"start\" value passed to TreeArrayNode.removeRange.');\n\t\t}\n\t\tfieldEditor.remove(removeStart, removeEnd - removeStart);\n\t}\n\tpublic moveToStart(sourceIndex: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveToStart(sourceIndex, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveToStart(sourceIndex);\n\t\t}\n\t}\n\tpublic moveToEnd(sourceIndex: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveToEnd(sourceIndex, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveToEnd(sourceIndex);\n\t\t}\n\t}\n\tpublic moveToIndex(index: number, sourceIndex: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex);\n\t\t}\n\t}\n\tpublic moveRangeToStart(sourceStart: number, sourceEnd: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveRangeToStart(\n\t\t\t\tsourceStart,\n\t\t\t\tsourceEnd,\n\t\t\t\tgetSequenceField(source),\n\t\t\t);\n\t\t} else {\n\t\t\tgetSequenceField(this).moveRangeToStart(sourceStart, sourceEnd);\n\t\t}\n\t}\n\tpublic moveRangeToEnd(sourceStart: number, sourceEnd: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveRangeToEnd(sourceStart, sourceEnd, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveRangeToEnd(sourceStart, sourceEnd);\n\t\t}\n\t}\n\tpublic moveRangeToIndex(\n\t\tindex: number,\n\t\tsourceStart: number,\n\t\tsourceEnd: number,\n\t\tsource?: TreeArrayNode,\n\t): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveRangeToIndex(\n\t\t\t\tindex,\n\t\t\t\tsourceStart,\n\t\t\t\tsourceEnd,\n\t\t\t\tgetSequenceField(source),\n\t\t\t);\n\t\t} else {\n\t\t\tgetSequenceField(this).moveRangeToIndex(index, sourceStart, sourceEnd);\n\t\t}\n\t}\n}\n\n/**\n * Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.\n *\n * @param name - Unique identifier for this schema including the factory's scope.\n */\nexport function arraySchema<\n\tTName extends string,\n\tconst T extends ImplicitAllowedTypes,\n\tconst ImplicitlyConstructable extends boolean,\n>(\n\tidentifier: TName,\n\tinfo: T,\n\timplicitlyConstructable: ImplicitlyConstructable,\n\tcustomizable: boolean,\n): TreeNodeSchemaClass<\n\tTName,\n\tNodeKind.Array,\n\tTreeArrayNode<T> & WithType<TName>,\n\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\tImplicitlyConstructable,\n\tT\n> {\n\tlet flexSchema: FlexFieldNodeSchema;\n\n\t// This class returns a proxy from its constructor to handle numeric indexing.\n\t// Alternatively it could extend a normal class which gets tons of numeric properties added.\n\tclass schema extends CustomArrayNodeBase<T> {\n\t\tpublic static override prepareInstance<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tflexNode: FlexTreeNode,\n\t\t): TreeNodeValid<T2> {\n\t\t\tconst proxyTarget = customizable ? instance : [];\n\n\t\t\tif (customizable) {\n\t\t\t\t// Since proxy reports this as a \"non-configurable\" property, it must exist on the underlying object used as the proxy target, not as an inherited property.\n\t\t\t\t// This should not get used as the proxy should intercept all use.\n\t\t\t\tObject.defineProperty(instance, \"length\", {\n\t\t\t\t\tvalue: NaN,\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 createArrayNodeProxy(customizable, proxyTarget, instance) as unknown as schema;\n\t\t}\n\n\t\tpublic static override buildRawNode<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tinput: T2,\n\t\t): MapTreeNode {\n\t\t\treturn getOrCreateMapTreeNode(\n\t\t\t\tflexSchema,\n\t\t\t\tmapTreeFromNodeData(\n\t\t\t\t\tcopyContent(\n\t\t\t\t\t\tflexSchema.name,\n\t\t\t\t\t\tinput as Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\t\t\t\t) as object,\n\t\t\t\t\tthis as unknown as ImplicitAllowedTypes,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\tprotected static override constructorCached: typeof TreeNodeValid | undefined = undefined;\n\n\t\tprotected static override oneTimeSetup<T2>(this: typeof TreeNodeValid<T2>): void {\n\t\t\tflexSchema = getFlexSchema(this as unknown as TreeNodeSchema) as FlexFieldNodeSchema;\n\n\t\t\t// First run, do extra validation.\n\t\t\t// TODO: provide a way for TreeConfiguration to trigger this same validation to ensure it gets run early.\n\t\t\t// Scan for shadowing inherited members which won't work, but stop scan early to allow shadowing built in (which seems to work ok).\n\t\t\t{\n\t\t\t\tlet prototype: object = this.prototype;\n\t\t\t\t// There isn't a clear cleaner way to author this loop.\n\t\t\t\twhile (prototype !== schema.prototype) {\n\t\t\t\t\t// Search prototype keys and check for positive integers. Throw if any are found.\n\t\t\t\t\t// Shadowing of index properties on array nodes is not supported.\n\t\t\t\t\tfor (const key of Object.getOwnPropertyNames(prototype)) {\n\t\t\t\t\t\tconst maybeIndex = asIndex(key, Number.POSITIVE_INFINITY);\n\t\t\t\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\t\t\t\tthrow new UsageError(\n\t\t\t\t\t\t\t\t`Schema ${identifier} defines an inherited index property \"${key.toString()}\" which shadows a possible array index. Shadowing of array indices is not permitted.`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Since this stops at the array node base schema, it should never see a null prototype, so this case is safe.\n\t\t\t\t\t// Additionally, if the prototype chain is ever messed up such that the array base schema is not in it,\n\t\t\t\t\t// the null that would show up here does at least ensure this code throws instead of hanging.\n\t\t\t\t\tprototype = Reflect.getPrototypeOf(prototype) as object;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tpublic static readonly identifier = identifier;\n\t\tpublic static readonly info = info;\n\t\tpublic static readonly implicitlyConstructable: ImplicitlyConstructable =\n\t\t\timplicitlyConstructable;\n\n\t\tpublic get [type](): TName {\n\t\t\treturn identifier;\n\t\t}\n\n\t\tprotected get simpleSchema(): T {\n\t\t\treturn info;\n\t\t}\n\t}\n\n\treturn schema;\n}\n\nfunction copyContent<T>(typeName: TreeNodeSchemaIdentifier, content: Iterable<T>): T[] {\n\tconst copy = Array.from(content);\n\tmarkContentType(typeName, copy);\n\treturn copy;\n}\n\nfunction validateSafeInteger(index: number): void {\n\tif (!Number.isSafeInteger(index)) {\n\t\tthrow new UsageError(`Expected a safe integer, got ${index}.`);\n\t}\n}\n\nfunction validatePositiveIndex(index: number): void {\n\tvalidateSafeInteger(index);\n\tif (index < 0) {\n\t\tthrow new UsageError(`Expected non-negative index, got ${index}.`);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"arrayNode.js","sourceRoot":"","sources":["../../src/simple-tree/arrayNode.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 {\n\tEmptyKey,\n\ttype ITreeCursorSynchronous,\n\ttype TreeNodeSchemaIdentifier,\n} from \"../core/index.js\";\nimport {\n\ttype FlexAllowedTypes,\n\ttype FlexFieldNodeSchema,\n\ttype FlexTreeNode,\n\ttype FlexTreeSequenceField,\n\ttype MapTreeNode,\n\tcursorForMapTreeField,\n\tgetOrCreateMapTreeNode,\n\tgetSchemaAndPolicy,\n\tisMapTreeNode,\n} from \"../feature-libraries/index.js\";\nimport {\n\ttype InsertableContent,\n\tgetOrCreateNodeProxy,\n\tmarkContentType,\n\tprepareContentForHydration,\n} from \"./proxies.js\";\nimport { getFlexNode } from \"./proxyBinding.js\";\nimport {\n\tNodeKind,\n\ttype ImplicitAllowedTypes,\n\ttype InsertableTreeNodeFromImplicitAllowedTypes,\n\ttype TreeNodeFromImplicitAllowedTypes,\n\ttype TreeNodeSchemaClass,\n\ttype WithType,\n\ttype TreeNodeSchema,\n\ttype,\n\tnormalizeFieldSchema,\n} from \"./schemaTypes.js\";\nimport { mapTreeFromNodeData } from \"./toMapTree.js\";\nimport { type TreeNode, TreeNodeValid } from \"./types.js\";\nimport { fail } from \"../util/index.js\";\nimport { getFlexSchema } from \"./toFlexSchema.js\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\n/**\n * A generic array type, used to defined types like {@link (TreeArrayNode:interface)}.\n *\n * @privateRemarks\n * Inlining this into TreeArrayNode causes recursive array use to stop compiling.\n *\n * @public\n */\nexport interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom>\n\textends ReadonlyArray<T>,\n\t\tTreeNode {\n\t/**\n\t * Inserts new item(s) at a specified location.\n\t * @param index - The index at which to insert `value`.\n\t * @param value - The content to insert.\n\t * @throws Throws if `index` is not in the range [0, `array.length`).\n\t */\n\tinsertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;\n\n\t/**\n\t * Inserts new item(s) at the start of the array.\n\t * @param value - The content to insert.\n\t */\n\tinsertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;\n\n\t/**\n\t * Inserts new item(s) at the end of the array.\n\t * @param value - The content to insert.\n\t */\n\tinsertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;\n\n\t/**\n\t * Removes the item at the specified location.\n\t * @param index - The index at which to remove the item.\n\t * @throws Throws if `index` is not in the range [0, `array.length`).\n\t */\n\tremoveAt(index: number): void;\n\n\t/**\n\t * Removes all items between the specified indices.\n\t * @param start - The starting index of the range to remove (inclusive). Defaults to the start of the array.\n\t * @param end - The ending index of the range to remove (exclusive). Defaults to `array.length`.\n\t * @throws Throws if `start` is not in the range [0, `array.length`].\n\t * @throws Throws if `end` is less than `start`.\n\t * If `end` is not supplied or is greater than the length of the array, all items after `start` are removed.\n\t *\n\t * @remarks\n\t * The default values for start and end are computed when this is called,\n\t * and thus the behavior is the same as providing them explicitly, even with respect to merge resolution with concurrent edits.\n\t * For example, two concurrent transactions both emptying the array with `node.removeRange()` then inserting an item,\n\t * will merge to result in the array having both inserted items.\n\t */\n\tremoveRange(start?: number, end?: number): void;\n\n\t/**\n\t * Moves the specified item to the start of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToStart(sourceIndex: number): void;\n\n\t/**\n\t * Moves the specified item to the start of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @param source - The source array to move the item out of.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToStart(sourceIndex: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified item to the end of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToEnd(sourceIndex: number): void;\n\n\t/**\n\t * Moves the specified item to the end of the array.\n\t * @param sourceIndex - The index of the item to move.\n\t * @param source - The source array to move the item out of.\n\t * @throws Throws if `sourceIndex` is not in the range [0, `array.length`).\n\t */\n\tmoveToEnd(sourceIndex: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified item to the desired location in the array.\n\t * @param index - The index to move the item to.\n\t * This is based on the state of the array before moving the source item.\n\t * @param sourceIndex - The index of the item to move.\n\t * @throws Throws if any of the input indices are not in the range [0, `array.length`).\n\t */\n\tmoveToIndex(index: number, sourceIndex: number): void;\n\n\t/**\n\t * Moves the specified item to the desired location in the array.\n\t * @param index - The index to move the item to.\n\t * @param sourceIndex - The index of the item to move.\n\t * @param source - The source array to move the item out of.\n\t * @throws Throws if any of the input indices are not in the range [0, `array.length`).\n\t */\n\tmoveToIndex(index: number, sourceIndex: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified items to the start of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @throws Throws if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToStart(sourceStart: number, sourceEnd: number): void;\n\n\t/**\n\t * Moves the specified items to the start of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @param source - The source array to move items out of.\n\t * @throws Throws if the types of any of the items being moved are not allowed in the destination array,\n\t * if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToStart(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified items to the end of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @throws Throws if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToEnd(sourceStart: number, sourceEnd: number): void;\n\n\t/**\n\t * Moves the specified items to the end of the array.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @param source - The source array to move items out of.\n\t * @throws Throws if the types of any of the items being moved are not allowed in the destination array,\n\t * if either of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;\n\n\t/**\n\t * Moves the specified items to the desired location within the array.\n\t * @param index - The index to move the items to.\n\t * This is based on the state of the array before moving the source items.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @throws Throws if any of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;\n\n\t/**\n\t * Moves the specified items to the desired location within the array.\n\t * @param index - The index to move the items to.\n\t * @param sourceStart - The starting index of the range to move (inclusive).\n\t * @param sourceEnd - The ending index of the range to move (exclusive)\n\t * @param source - The source array to move items out of.\n\t * @throws Throws if the types of any of the items being moved are not allowed in the destination array,\n\t * if any of the input indices are not in the range [0, `array.length`) or if `sourceStart` is greater than `sourceEnd`.\n\t */\n\tmoveRangeToIndex(\n\t\tindex: number,\n\t\tsourceStart: number,\n\t\tsourceEnd: number,\n\t\tsource: TMoveFrom,\n\t): void;\n}\n\n/**\n * A {@link TreeNode} which implements 'readonly T[]' and the array mutation APIs.\n *\n * @typeParam TAllowedTypes - Schema for types which are allowed as members of this array.\n *\n * @public\n */\nexport interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes>\n\textends TreeArrayNodeBase<\n\t\tTreeNodeFromImplicitAllowedTypes<TAllowedTypes>,\n\t\tInsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>,\n\t\tTreeArrayNode\n\t> {}\n\n/**\n * A {@link TreeNode} which implements 'readonly T[]' and the array mutation APIs.\n * @public\n */\nexport const TreeArrayNode = {\n\t/**\n\t * Wrap an iterable of items to inserted as consecutive items in a array.\n\t * @remarks\n\t * The object returned by this function can be inserted into a {@link (TreeArrayNode:interface)}.\n\t * Its contents will be inserted consecutively in the corresponding location in the array.\n\t * @example\n\t * ```ts\n\t * array.insertAtEnd(TreeArrayNode.spread(iterable))\n\t * ```\n\t */\n\tspread: <T>(content: Iterable<T>) => create(content),\n};\n\n/**\n * Package internal construction API.\n * Use {@link (TreeArrayNode:variable).spread} to create an instance of this type instead.\n */\nlet create: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;\n\n/**\n * Used to insert iterable content into a {@link (TreeArrayNode:interface)}.\n * Use {@link (TreeArrayNode:variable).spread} to create an instance of this type.\n * @public\n */\nexport class IterableTreeArrayContent<T> implements Iterable<T> {\n\tstatic {\n\t\tcreate = <T2>(content: Iterable<T2>) => new IterableTreeArrayContent(content);\n\t}\n\n\tprivate constructor(private readonly content: Iterable<T>) {}\n\n\t/**\n\t * Iterates over content for nodes to insert.\n\t */\n\tpublic [Symbol.iterator](): Iterator<T> {\n\t\treturn this.content[Symbol.iterator]();\n\t}\n}\n\n/**\n * Given a array node proxy, returns its underlying LazySequence field.\n */\nfunction getSequenceField<\n\tTTypes extends FlexAllowedTypes,\n\tTSimpleType extends ImplicitAllowedTypes,\n>(arrayNode: TreeArrayNode<TSimpleType>): FlexTreeSequenceField<TTypes> {\n\treturn getFlexNode(arrayNode).getBoxed(EmptyKey) as FlexTreeSequenceField<TTypes>;\n}\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\nconst arrayPrototypeKeys = [\n\t\"concat\",\n\t\"entries\",\n\t\"every\",\n\t\"filter\",\n\t\"find\",\n\t\"findIndex\",\n\t\"flat\",\n\t\"flatMap\",\n\t\"forEach\",\n\t\"includes\",\n\t\"indexOf\",\n\t\"join\",\n\t\"keys\",\n\t\"lastIndexOf\",\n\t\"map\",\n\t\"reduce\",\n\t\"reduceRight\",\n\t\"slice\",\n\t\"some\",\n\t\"toLocaleString\",\n\t\"toString\",\n\t\"values\",\n\n\t// \"copyWithin\",\n\t// \"fill\",\n\t// \"length\",\n\t// \"pop\",\n\t// \"push\",\n\t// \"reverse\",\n\t// \"shift\",\n\t// \"sort\",\n\t// \"splice\",\n\t// \"unshift\",\n] as const;\n\n/**\n * {@link TreeNodeValid}, but modified to add members from Array.prototype named in {@link arrayPrototypeKeys}.\n * @privateRemarks\n * Since a lot of scratch types and values are involved with creating this,\n * it's generating using an immediately invoked function expression (IIFE).\n * This is a common JavaScript pattern for cases like this to avoid cluttering the scope.\n */\nconst TreeNodeWithArrayFeatures = (() => {\n\t/**\n\t * {@link TreeNodeValid}, but modified to add members from Array.prototype named in {@link arrayPrototypeKeys}.\n\t */\n\tabstract class TreeNodeWithArrayFeaturesUntyped<\n\t\tconst T extends ImplicitAllowedTypes,\n\t> extends TreeNodeValid<Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>> {}\n\n\t// Modify TreeNodeWithArrayFeaturesUntyped to add the members from Array.prototype\n\tarrayPrototypeKeys.forEach((key) => {\n\t\tObject.defineProperty(TreeNodeWithArrayFeaturesUntyped.prototype, key, {\n\t\t\tvalue: Array.prototype[key],\n\t\t});\n\t});\n\n\treturn TreeNodeWithArrayFeaturesUntyped as unknown as typeof NodeWithArrayFeatures;\n})();\n\n/**\n * Type of {@link TreeNodeValid}, but with array members added to the instance type.\n *\n * TypeScript has a rule that `Base constructors must all have the same return type.ts(2510)`.\n * This means that intersecting two types with different constructors to create a type with a more constrained constructor (ex: more specific return type)\n * is not supported.\n *\n * TypeScript also has a limitation that there is no way to replace or remove just the constructor of a type without losing all the private and protected members.\n * See https://github.com/microsoft/TypeScript/issues/35416 for details.\n *\n * TypeScript also does not support explicitly specifying the instance type in a class definition as the constructor return type.\n *\n * Thus to replace the instance type, while preserving the protected static members of TreeNodeValid,\n * the only option seems to be actually declaring a class with all the members explicitly inline.\n *\n * To avoid incurring any bundle size / runtime overhead from this and having to stub out the function bodies,\n * the class uses `declare`.\n * TypeScript does not support `declare` inside scopes, so this is not inside the function scope above.\n *\n * The members of this class were generated using the \"implement interface\" refactoring.\n * Since that refactoring does not add `public`, the lint to require it is disabled for this section of the file.\n * To update this class delete all members and reapply the \"implement interface\" refactoring.\n * As these signatures get formatted to be over three times as many lines with prettier (which is not helpful), it is also suppressed.\n */\n/* eslint-disable @typescript-eslint/explicit-member-accessibility, @typescript-eslint/no-explicit-any */\n// prettier-ignore\ndeclare abstract class NodeWithArrayFeatures<Input, T>\n\textends TreeNodeValid<Input>\n\timplements Pick<readonly T[], (typeof arrayPrototypeKeys)[number]>\n{\n\tconcat(...items: ConcatArray<T>[]): T[];\n\tconcat(...items: (T | ConcatArray<T>)[]): T[];\n\tentries(): IterableIterator<[number, T]>;\n\tevery<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): this is readonly S[];\n\tevery(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n\tfilter<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\n\tfilter(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\n\tfind<S extends T>(predicate: (value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;\n\tfind(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;\n\tfindIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;\n\tflat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];\n\tflatMap<U, This = undefined>(callback: (this: This, value: T, index: number, array: T[]) => U | readonly U[], thisArg?: This | undefined): U[];\n\tforEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\n\tincludes(searchElement: T, fromIndex?: number | undefined): boolean;\n\tindexOf(searchElement: T, fromIndex?: number | undefined): number;\n\tjoin(separator?: string | undefined): string;\n\tkeys(): IterableIterator<number>;\n\tlastIndexOf(searchElement: T, fromIndex?: number | undefined): number;\n\tmap<U>(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\n\treduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n\treduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n\treduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n\treduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n\treduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n\treduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n\tslice(start?: number | undefined, end?: number | undefined): T[];\n\tsome(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n\ttoLocaleString(): string;\n\ttoString(): string;\n\tvalues(): IterableIterator<T>;\n}\n/* eslint-enable @typescript-eslint/explicit-member-accessibility, @typescript-eslint/no-explicit-any */\n\n/**\n * Attempts to coerce the given property key to an integer index property.\n * @param key - The property key to coerce.\n * @param exclusiveMax - This restricts the range in which the resulting index is allowed to be.\n * The coerced index of `key` must be less than `exclusiveMax` or else this function will return `undefined`.\n * This is useful for reading an array within the bounds of its length, e.g. `asIndex(key, array.length)`.\n */\nexport function asIndex(key: string | symbol, exclusiveMax: number): number | undefined {\n\tif (typeof key !== \"string\") {\n\t\treturn undefined;\n\t}\n\n\t// TODO: It may be worth a '0' <= ch <= '9' check before calling 'Number' to quickly\n\t// reject 'length' as an index, or even parsing integers ourselves.\n\tconst asNumber = Number(key);\n\tif (!Number.isInteger(asNumber)) {\n\t\treturn undefined;\n\t}\n\n\t// Check that the original string is the same after converting to a number and back again.\n\t// This prevents keys like \"5.0\", \"0x5\", \" 5\" from coercing to 5, and keys like \" \" or \"\" from coercing to 0.\n\tconst asString = String(asNumber);\n\tif (asString !== key) {\n\t\treturn undefined;\n\t}\n\n\t// TODO: See 'matrix/range.ts' for fast integer coercing + range check.\n\treturn 0 <= asNumber && asNumber < exclusiveMax ? asNumber : undefined;\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 proxyTarget - Target object of the proxy. Must provide an own `length` value property\n * (which is not used but must exist for getOwnPropertyDescriptor invariants) and the array functionality from {@link arrayNodePrototype}.\n * Controls the prototype exposed by the produced proxy.\n * @param dispatchTarget - provides the functionally of the node, implementing all fields.\n */\nfunction createArrayNodeProxy(\n\tallowAdditionalProperties: boolean,\n\tproxyTarget: object,\n\tdispatchTarget: object,\n): TreeArrayNode {\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>(proxyTarget as TreeArrayNode, {\n\t\tget: (target, key, receiver) => {\n\t\t\tconst field = getSequenceField(receiver);\n\t\t\tconst maybeIndex = asIndex(key, field.length);\n\n\t\t\tif (maybeIndex === undefined) {\n\t\t\t\tif (key === \"length\") {\n\t\t\t\t\treturn field.length;\n\t\t\t\t}\n\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(dispatchTarget, key, receiver) 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\tif (key === \"length\") {\n\t\t\t\t// To allow \"length\" to look like \"length\" on an array, getOwnPropertyDescriptor has to report it as a writable value.\n\t\t\t\t// This means the proxy target must provide a length value, but since it can't use getters and setters, it can't be correct.\n\t\t\t\t// Therefor length has to be handled in this proxy.\n\t\t\t\t// Since it's not actually mutable, return false so setting it will produce a type error.\n\t\t\t\treturn false;\n\t\t\t}\n\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(dispatchTarget, key, newValue, receiver);\n\t\t\t}\n\n\t\t\t// Array nodes treat all non-negative integer indexes as array access.\n\t\t\t// Using Infinity here (rather than length) ensures that indexing past the end doesn't create additional session local properties.\n\t\t\tconst maybeIndex = asIndex(key, Number.POSITIVE_INFINITY);\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\t// To ensure a clear and actionable error experience, we will throw explicitly here, rather than just returning false.\n\t\t\t\tthrow new UsageError(\n\t\t\t\t\t\"Cannot set indexed properties on array nodes. Use array node mutation APIs to alter the array.\",\n\t\t\t\t);\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(dispatchTarget, 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\tconst keys: (string | symbol)[] = Array.from(\n\t\t\t\t{ length: field.length },\n\t\t\t\t(_, index) => `${index}`,\n\t\t\t);\n\n\t\t\tif (allowAdditionalProperties) {\n\t\t\t\tkeys.push(...Reflect.ownKeys(target));\n\t\t\t} else {\n\t\t\t\tkeys.push(\"length\");\n\t\t\t}\n\t\t\treturn keys;\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: field.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(dispatchTarget, key);\n\t\t},\n\t\tdefineProperty(target, key, attributes) {\n\t\t\tconst maybeIndex = asIndex(key, Number.POSITIVE_INFINITY);\n\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\tthrow new UsageError(\"Shadowing of array indices is not permitted.\");\n\t\t\t}\n\t\t\treturn Reflect.defineProperty(dispatchTarget, key, attributes);\n\t\t},\n\t});\n\treturn proxy;\n}\n\ntype Insertable<T extends ImplicitAllowedTypes> = readonly (\n\t| InsertableTreeNodeFromImplicitAllowedTypes<T>\n\t| IterableTreeArrayContent<InsertableTreeNodeFromImplicitAllowedTypes<T>>\n)[];\n\nabstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>\n\textends TreeNodeWithArrayFeatures<\n\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\tTreeNodeFromImplicitAllowedTypes<T>\n\t>\n\timplements TreeArrayNode<T>\n{\n\t// Indexing must be provided by subclass.\n\t[k: number]: TreeNodeFromImplicitAllowedTypes<T>;\n\n\tpublic static readonly kind = NodeKind.Array;\n\n\tprotected abstract get simpleSchema(): T;\n\n\t#cursorFromFieldData(value: Insertable<T>): ITreeCursorSynchronous {\n\t\tif (isMapTreeNode(getFlexNode(this))) {\n\t\t\tthrow new UsageError(`An array cannot be mutated before being inserted into the tree`);\n\t\t}\n\n\t\tconst sequenceField = getSequenceField(this);\n\t\t// TODO: this is not valid since this is a value field schema, not a sequence one (which does not exist in the simple tree layer),\n\t\t// but it works since cursorFromFieldData special cases arrays.\n\t\tconst simpleFieldSchema = normalizeFieldSchema(this.simpleSchema);\n\t\tconst content = value as readonly (\n\t\t\t| InsertableContent\n\t\t\t| IterableTreeArrayContent<InsertableContent>\n\t\t)[];\n\n\t\tconst mapTrees = content\n\t\t\t.flatMap((c): InsertableContent[] =>\n\t\t\t\tc instanceof IterableTreeArrayContent ? Array.from(c) : [c],\n\t\t\t)\n\t\t\t.map((c) =>\n\t\t\t\tmapTreeFromNodeData(\n\t\t\t\t\tc,\n\t\t\t\t\tsimpleFieldSchema.allowedTypes,\n\t\t\t\t\tsequenceField.context.nodeKeyManager,\n\t\t\t\t\tgetSchemaAndPolicy(sequenceField),\n\t\t\t\t),\n\t\t\t);\n\n\t\tprepareContentForHydration(mapTrees, sequenceField.context.checkout.forest);\n\t\treturn cursorForMapTreeField(mapTrees);\n\t}\n\n\tpublic toJSON(): unknown {\n\t\t// This override causes the class instance to `JSON.stringify` as `[a, b]` rather than `{0: a, 1: b}`.\n\t\treturn Array.from(this as unknown as TreeArrayNode);\n\t}\n\n\t// Instances of this class are used as the dispatch object for the proxy,\n\t// and thus its set of keys is used to implement `has` (for the `in` operator) for the non-numeric cases.\n\t// Therefore it must include `length`,\n\t// even though this \"length\" is never invoked (due to being shadowed by the proxy provided own property).\n\tpublic get length(): number {\n\t\treturn fail(\"Proxy should intercept length\");\n\t}\n\n\tpublic [Symbol.iterator](): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>> {\n\t\treturn this.values();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n\tpublic get [Symbol.unscopables]() {\n\t\t// This might not be the exact right set of values, but it only matters for `with` clauses which are deprecated and are banned in strict mode, so it shouldn't matter much.\n\t\t// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with for details.\n\t\treturn Array.prototype[Symbol.unscopables];\n\t}\n\n\tpublic at(\n\t\tthis: TreeArrayNode<T>,\n\t\tindex: number,\n\t): TreeNodeFromImplicitAllowedTypes<T> | undefined {\n\t\tconst field = getSequenceField(this);\n\t\tconst val = field.boxedAt(index);\n\n\t\tif (val === undefined) {\n\t\t\treturn val;\n\t\t}\n\n\t\treturn getOrCreateNodeProxy(val) as TreeNodeFromImplicitAllowedTypes<T>;\n\t}\n\tpublic insertAt(index: number, ...value: Insertable<T>): void {\n\t\tgetSequenceField(this).insertAt(index, this.#cursorFromFieldData(value));\n\t}\n\tpublic insertAtStart(...value: Insertable<T>): void {\n\t\tgetSequenceField(this).insertAtStart(this.#cursorFromFieldData(value));\n\t}\n\tpublic insertAtEnd(...value: Insertable<T>): void {\n\t\tgetSequenceField(this).insertAtEnd(this.#cursorFromFieldData(value));\n\t}\n\tpublic removeAt(index: number): void {\n\t\tgetSequenceField(this).removeAt(index);\n\t}\n\tpublic removeRange(start?: number, end?: number): void {\n\t\tconst field = getSequenceField(this);\n\t\tconst fieldEditor = field.sequenceEditor();\n\t\tconst { length } = field;\n\t\tconst removeStart = start ?? 0;\n\t\tconst removeEnd = Math.min(length, end ?? length);\n\t\tvalidatePositiveIndex(removeStart);\n\t\tvalidatePositiveIndex(removeEnd);\n\t\tif (removeEnd < removeStart) {\n\t\t\t// This catches both the case where start is > array.length and when start is > end.\n\t\t\tthrow new UsageError('Too large of \"start\" value passed to TreeArrayNode.removeRange.');\n\t\t}\n\t\tfieldEditor.remove(removeStart, removeEnd - removeStart);\n\t}\n\tpublic moveToStart(sourceIndex: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveToStart(sourceIndex, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveToStart(sourceIndex);\n\t\t}\n\t}\n\tpublic moveToEnd(sourceIndex: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveToEnd(sourceIndex, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveToEnd(sourceIndex);\n\t\t}\n\t}\n\tpublic moveToIndex(index: number, sourceIndex: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveToIndex(index, sourceIndex);\n\t\t}\n\t}\n\tpublic moveRangeToStart(sourceStart: number, sourceEnd: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveRangeToStart(\n\t\t\t\tsourceStart,\n\t\t\t\tsourceEnd,\n\t\t\t\tgetSequenceField(source),\n\t\t\t);\n\t\t} else {\n\t\t\tgetSequenceField(this).moveRangeToStart(sourceStart, sourceEnd);\n\t\t}\n\t}\n\tpublic moveRangeToEnd(sourceStart: number, sourceEnd: number, source?: TreeArrayNode): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveRangeToEnd(sourceStart, sourceEnd, getSequenceField(source));\n\t\t} else {\n\t\t\tgetSequenceField(this).moveRangeToEnd(sourceStart, sourceEnd);\n\t\t}\n\t}\n\tpublic moveRangeToIndex(\n\t\tindex: number,\n\t\tsourceStart: number,\n\t\tsourceEnd: number,\n\t\tsource?: TreeArrayNode,\n\t): void {\n\t\tif (source !== undefined) {\n\t\t\tgetSequenceField(this).moveRangeToIndex(\n\t\t\t\tindex,\n\t\t\t\tsourceStart,\n\t\t\t\tsourceEnd,\n\t\t\t\tgetSequenceField(source),\n\t\t\t);\n\t\t} else {\n\t\t\tgetSequenceField(this).moveRangeToIndex(index, sourceStart, sourceEnd);\n\t\t}\n\t}\n}\n\n/**\n * Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.\n *\n * @param name - Unique identifier for this schema including the factory's scope.\n */\nexport function arraySchema<\n\tTName extends string,\n\tconst T extends ImplicitAllowedTypes,\n\tconst ImplicitlyConstructable extends boolean,\n>(\n\tidentifier: TName,\n\tinfo: T,\n\timplicitlyConstructable: ImplicitlyConstructable,\n\tcustomizable: boolean,\n): TreeNodeSchemaClass<\n\tTName,\n\tNodeKind.Array,\n\tTreeArrayNode<T> & WithType<TName>,\n\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\tImplicitlyConstructable,\n\tT\n> {\n\tlet flexSchema: FlexFieldNodeSchema;\n\n\t// This class returns a proxy from its constructor to handle numeric indexing.\n\t// Alternatively it could extend a normal class which gets tons of numeric properties added.\n\tclass schema extends CustomArrayNodeBase<T> {\n\t\tpublic static override prepareInstance<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tflexNode: FlexTreeNode,\n\t\t): TreeNodeValid<T2> {\n\t\t\tconst proxyTarget = customizable ? instance : [];\n\n\t\t\tif (customizable) {\n\t\t\t\t// Since proxy reports this as a \"non-configurable\" property, it must exist on the underlying object used as the proxy target, not as an inherited property.\n\t\t\t\t// This should not get used as the proxy should intercept all use.\n\t\t\t\tObject.defineProperty(instance, \"length\", {\n\t\t\t\t\tvalue: NaN,\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 createArrayNodeProxy(customizable, proxyTarget, instance) as unknown as schema;\n\t\t}\n\n\t\tpublic static override buildRawNode<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tinput: T2,\n\t\t): MapTreeNode {\n\t\t\treturn getOrCreateMapTreeNode(\n\t\t\t\tflexSchema,\n\t\t\t\tmapTreeFromNodeData(\n\t\t\t\t\tcopyContent(\n\t\t\t\t\t\tflexSchema.name,\n\t\t\t\t\t\tinput as Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\t\t\t\t) as object,\n\t\t\t\t\tthis as unknown as ImplicitAllowedTypes,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\tprotected static override constructorCached: typeof TreeNodeValid | undefined = undefined;\n\n\t\tprotected static override oneTimeSetup<T2>(this: typeof TreeNodeValid<T2>): void {\n\t\t\tflexSchema = getFlexSchema(this as unknown as TreeNodeSchema) as FlexFieldNodeSchema;\n\n\t\t\t// First run, do extra validation.\n\t\t\t// TODO: provide a way for TreeConfiguration to trigger this same validation to ensure it gets run early.\n\t\t\t// Scan for shadowing inherited members which won't work, but stop scan early to allow shadowing built in (which seems to work ok).\n\t\t\t{\n\t\t\t\tlet prototype: object = this.prototype;\n\t\t\t\t// There isn't a clear cleaner way to author this loop.\n\t\t\t\twhile (prototype !== schema.prototype) {\n\t\t\t\t\t// Search prototype keys and check for positive integers. Throw if any are found.\n\t\t\t\t\t// Shadowing of index properties on array nodes is not supported.\n\t\t\t\t\tfor (const key of Object.getOwnPropertyNames(prototype)) {\n\t\t\t\t\t\tconst maybeIndex = asIndex(key, Number.POSITIVE_INFINITY);\n\t\t\t\t\t\tif (maybeIndex !== undefined) {\n\t\t\t\t\t\t\tthrow new UsageError(\n\t\t\t\t\t\t\t\t`Schema ${identifier} defines an inherited index property \"${key.toString()}\" which shadows a possible array index. Shadowing of array indices is not permitted.`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Since this stops at the array node base schema, it should never see a null prototype, so this case is safe.\n\t\t\t\t\t// Additionally, if the prototype chain is ever messed up such that the array base schema is not in it,\n\t\t\t\t\t// the null that would show up here does at least ensure this code throws instead of hanging.\n\t\t\t\t\tprototype = Reflect.getPrototypeOf(prototype) as object;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tpublic static readonly identifier = identifier;\n\t\tpublic static readonly info = info;\n\t\tpublic static readonly implicitlyConstructable: ImplicitlyConstructable =\n\t\t\timplicitlyConstructable;\n\n\t\tpublic get [type](): TName {\n\t\t\treturn identifier;\n\t\t}\n\n\t\tprotected get simpleSchema(): T {\n\t\t\treturn info;\n\t\t}\n\t}\n\n\treturn schema;\n}\n\nfunction copyContent<T>(typeName: TreeNodeSchemaIdentifier, content: Iterable<T>): T[] {\n\tconst copy = Array.from(content);\n\tmarkContentType(typeName, copy);\n\treturn copy;\n}\n\nfunction validateSafeInteger(index: number): void {\n\tif (!Number.isSafeInteger(index)) {\n\t\tthrow new UsageError(`Expected a safe integer, got ${index}.`);\n\t}\n}\n\nfunction validatePositiveIndex(index: number): void {\n\tvalidateSafeInteger(index);\n\tif (index < 0) {\n\t\tthrow new UsageError(`Expected non-negative index, got ${index}.`);\n\t}\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { NodeKind, TreeNodeSchema } from "./schemaTypes.js";
|
|
5
|
+
import { NodeKind, type TreeNodeSchema } from "./schemaTypes.js";
|
|
6
6
|
export declare const stringSchema: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
|
|
7
7
|
export declare const numberSchema: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
8
8
|
export declare const booleanSchema: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leafNodeSchema.d.ts","sourceRoot":"","sources":["../../src/simple-tree/leafNodeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAAE,QAAQ,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"leafNodeSchema.d.ts","sourceRoot":"","sources":["../../src/simple-tree/leafNodeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAA+B,MAAM,kBAAkB,CAAC;AAkD9F,eAAO,MAAM,YAAY,iFAAwB,CAAC;AAClD,eAAO,MAAM,YAAY,iFAAwB,CAAC;AAClD,eAAO,MAAM,aAAa,oFAAyB,CAAC;AACpD,eAAO,MAAM,UAAU,2EAAsB,CAAC;AAC9C,eAAO,MAAM,YAAY,mMAAwB,CAAC"}
|
|
@@ -17,10 +17,6 @@ import { NodeKind } from "./schemaTypes.js";
|
|
|
17
17
|
* This class refers to the underlying flex tree schema in its constructor, so this class can't be included in the package API.
|
|
18
18
|
*/
|
|
19
19
|
class LeafNodeSchema {
|
|
20
|
-
identifier;
|
|
21
|
-
kind = NodeKind.Leaf;
|
|
22
|
-
info;
|
|
23
|
-
implicitlyConstructable = true;
|
|
24
20
|
create(data) {
|
|
25
21
|
if (isFlexTreeNode(data)) {
|
|
26
22
|
const value = data.value;
|
|
@@ -30,6 +26,8 @@ class LeafNodeSchema {
|
|
|
30
26
|
return data;
|
|
31
27
|
}
|
|
32
28
|
constructor(schema) {
|
|
29
|
+
this.kind = NodeKind.Leaf;
|
|
30
|
+
this.implicitlyConstructable = true;
|
|
33
31
|
setFlexSchemaFromClassSchema(this, schema);
|
|
34
32
|
this.identifier = schema.name;
|
|
35
33
|
this.info = schema.info;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leafNodeSchema.js","sourceRoot":"","sources":["../../src/simple-tree/leafNodeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAG7D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAGN,cAAc,EACd,iBAAiB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"leafNodeSchema.js","sourceRoot":"","sources":["../../src/simple-tree/leafNodeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAG7D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAGN,cAAc,EACd,iBAAiB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAoD,MAAM,kBAAkB,CAAC;AAQ9F;;;;;;;;GAQG;AACH,MAAM,cAAc;IAOZ,MAAM,CAAC,IAAyC;QACtD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvE,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,YAAmB,MAAS;QAZZ,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAErB,4BAAuB,GAAG,IAAa,CAAC;QAWvD,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAwB,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;CACD;AAED;;GAEG;AACH,SAAS,QAAQ,CAChB,MAAS;IAET,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,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 type { TreeNodeSchemaIdentifier, TreeValue } from \"../core/index.js\";\nimport { leaf } from \"../domains/index.js\";\nimport {\n\ttype LeafNodeSchema as FlexLeafNodeSchema,\n\ttype FlexTreeNode,\n\tisFlexTreeNode,\n\tvalueSchemaAllows,\n} from \"../feature-libraries/index.js\";\n\nimport { setFlexSchemaFromClassSchema } from \"./schemaCaching.js\";\nimport { NodeKind, type TreeNodeSchema, type TreeNodeSchemaNonClass } from \"./schemaTypes.js\";\n\ntype UnbrandedName<T extends FlexLeafNodeSchema> = T[\"name\"] extends TreeNodeSchemaIdentifier<\n\tinfer Name extends string\n>\n\t? Name\n\t: T[\"name\"];\n\n/**\n * Instances of this class are schema for leaf nodes.\n * @remarks\n * Unlike other schema, leaf schema are class instances instead of classes themselves.\n * This is because the instance type (the tree node type) for leaves are not objects,\n * so those instances can't be instances of a schema based class.\n * @privateRemarks\n * This class refers to the underlying flex tree schema in its constructor, so this class can't be included in the package API.\n */\nclass LeafNodeSchema<T extends FlexLeafNodeSchema>\n\timplements TreeNodeSchemaNonClass<UnbrandedName<T>, NodeKind.Leaf, TreeValue<T[\"info\"]>>\n{\n\tpublic readonly identifier: UnbrandedName<T>;\n\tpublic readonly kind = NodeKind.Leaf;\n\tpublic readonly info: T[\"info\"];\n\tpublic readonly implicitlyConstructable = true as const;\n\tpublic create(data: TreeValue<T[\"info\"]> | FlexTreeNode): TreeValue<T[\"info\"]> {\n\t\tif (isFlexTreeNode(data)) {\n\t\t\tconst value = data.value;\n\t\t\tassert(valueSchemaAllows(this.info, value), 0x916 /* invalid value */);\n\t\t\treturn value;\n\t\t}\n\t\treturn data;\n\t}\n\n\tpublic constructor(schema: T) {\n\t\tsetFlexSchemaFromClassSchema(this, schema);\n\t\tthis.identifier = schema.name as UnbrandedName<T>;\n\t\tthis.info = schema.info;\n\t}\n}\n\n/**\n * Wrapper around LeafNodeSchema's constructor that provides the return type that is desired in the package public API.\n */\nfunction makeLeaf<T extends FlexLeafNodeSchema>(\n\tschema: T,\n): TreeNodeSchema<UnbrandedName<T>, NodeKind.Leaf, TreeValue<T[\"info\"]>, TreeValue<T[\"info\"]>> {\n\treturn new LeafNodeSchema(schema);\n}\n\n// Leaf schema shared between all SchemaFactory instances.\nexport const stringSchema = makeLeaf(leaf.string);\nexport const numberSchema = makeLeaf(leaf.number);\nexport const booleanSchema = makeLeaf(leaf.boolean);\nexport const nullSchema = makeLeaf(leaf.null);\nexport const handleSchema = makeLeaf(leaf.handle);\n"]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { NodeKind, type ImplicitAllowedTypes, type InsertableTreeNodeFromImplicitAllowedTypes, TreeNodeSchemaClass, WithType, TreeNodeFromImplicitAllowedTypes } from "./schemaTypes.js";
|
|
6
|
-
import { TreeNode } from "./types.js";
|
|
5
|
+
import { NodeKind, type ImplicitAllowedTypes, type InsertableTreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type WithType, type TreeNodeFromImplicitAllowedTypes } from "./schemaTypes.js";
|
|
6
|
+
import { type TreeNode } from "./types.js";
|
|
7
7
|
/**
|
|
8
8
|
* A map of string keys to tree objects.
|
|
9
9
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/mapNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,EACN,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,0CAA0C,EAC/C,mBAAmB,
|
|
1
|
+
{"version":3,"file":"mapNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/mapNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,EACN,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,0CAA0C,EAC/C,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EAEb,KAAK,gCAAgC,EAErC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAI1D;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,CACjF,SAAQ,WAAW,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAC/D,QAAQ;IACT;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,0CAA0C,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAEzF;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;;;OAMG;IACH,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,MAAM,IAAI,gBAAgB,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E;;;;;;OAMG;IACH,OAAO,CACN,UAAU,EAAE,CACX,KAAK,EAAE,gCAAgC,CAAC,CAAC,CAAC,EAC1C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,CAAC,CAAC,KACzD,IAAI,EAGT,OAAO,CAAC,EAAE,GAAG,GACX,IAAI,CAAC;CACR;AAsFD;;;;;GAKG;AAEH,wBAAgB,SAAS,CACxB,KAAK,SAAS,MAAM,EACpB,KAAK,CAAC,CAAC,SAAS,oBAAoB,EACpC,KAAK,CAAC,uBAAuB,SAAS,OAAO,EAE7C,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,CAAC,EACP,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,OAAO,6KAsDxB"}
|
|
@@ -17,7 +17,6 @@ const handler = {
|
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
class CustomMapNodeBase extends TreeNodeValid {
|
|
20
|
-
static kind = NodeKind.Map;
|
|
21
20
|
[Symbol.iterator]() {
|
|
22
21
|
return this.entries();
|
|
23
22
|
}
|
|
@@ -77,6 +76,7 @@ class CustomMapNodeBase extends TreeNodeValid {
|
|
|
77
76
|
}
|
|
78
77
|
}
|
|
79
78
|
}
|
|
79
|
+
CustomMapNodeBase.kind = NodeKind.Map;
|
|
80
80
|
/**
|
|
81
81
|
* Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.
|
|
82
82
|
*
|
|
@@ -96,17 +96,17 @@ export function mapSchema(identifier, info, implicitlyConstructable, useMapProto
|
|
|
96
96
|
static buildRawNode(instance, input) {
|
|
97
97
|
return getOrCreateMapTreeNode(flexSchema, mapTreeFromNodeData(copyContent(flexSchema.name, input), this));
|
|
98
98
|
}
|
|
99
|
-
static constructorCached = undefined;
|
|
100
99
|
static oneTimeSetup() {
|
|
101
100
|
flexSchema = getFlexSchema(this);
|
|
102
101
|
}
|
|
103
|
-
static identifier = identifier;
|
|
104
|
-
static info = info;
|
|
105
|
-
static implicitlyConstructable = implicitlyConstructable;
|
|
106
102
|
get [type]() {
|
|
107
103
|
return identifier;
|
|
108
104
|
}
|
|
109
105
|
}
|
|
106
|
+
schema.constructorCached = undefined;
|
|
107
|
+
schema.identifier = identifier;
|
|
108
|
+
schema.info = info;
|
|
109
|
+
schema.implicitlyConstructable = implicitlyConstructable;
|
|
110
110
|
const schemaErased = schema;
|
|
111
111
|
return schemaErased;
|
|
112
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapNode.js","sourceRoot":"","sources":["../../src/simple-tree/mapNode.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 { TreeNodeSchemaIdentifier } from \"../core/index.js\";\nimport {\n\tFlexMapNodeSchema,\n\tFlexTreeNode,\n\tMapTreeNode,\n\tcursorForMapTreeNode,\n\tgetOrCreateMapTreeNode,\n\tgetSchemaAndPolicy,\n\tisMapTreeNode,\n} from \"../feature-libraries/index.js\";\nimport {\n\tInsertableContent,\n\tgetProxyForField,\n\tmarkContentType,\n\tprepareContentForHydration,\n} from \"./proxies.js\";\nimport { getFlexNode } from \"./proxyBinding.js\";\nimport { getSimpleNodeSchema } from \"./schemaCaching.js\";\nimport {\n\tNodeKind,\n\ttype ImplicitAllowedTypes,\n\ttype InsertableTreeNodeFromImplicitAllowedTypes,\n\tTreeNodeSchemaClass,\n\tWithType,\n\tTreeNodeSchema,\n\tTreeNodeFromImplicitAllowedTypes,\n\ttype,\n} from \"./schemaTypes.js\";\nimport { mapTreeFromNodeData } from \"./toMapTree.js\";\nimport { TreeNode, TreeNodeValid } from \"./types.js\";\nimport { getFlexSchema } from \"./toFlexSchema.js\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\n/**\n * A map of string keys to tree objects.\n *\n * @privateRemarks\n * Add support for `clear` once we have established merge semantics for it.\n *\n * @public\n */\nexport interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTypes>\n\textends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>,\n\t\tTreeNode {\n\t/**\n\t * Adds or updates an entry in the map with a specified `key` and a `value`.\n\t *\n\t * @param key - The key of the element to add to the map.\n\t * @param value - The value of the element to add to the map.\n\t *\n\t * @remarks\n\t * Setting the value at a key to `undefined` is equivalent to calling {@link TreeMapNode.delete} with that key.\n\t */\n\tset(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T> | undefined): void;\n\n\t/**\n\t * Removes the specified element from this map by its `key`.\n\t *\n\t * @remarks\n\t * Note: unlike JavaScript's Map API, this method does not return a flag indicating whether or not the value was\n\t * deleted.\n\t *\n\t * @privateRemarks\n\t * Regarding the choice to not return a boolean: Since this data structure is distributed in nature, it isn't\n\t * possible to tell whether or not the item was deleted as a result of this method call. Returning a \"best guess\"\n\t * is more likely to create issues / promote bad usage patterns than offer useful information.\n\t *\n\t * @param key - The key of the element to remove from the map.\n\t */\n\tdelete(key: string): void;\n\n\t/**\n\t * Returns an iterable of keys in the map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order of the keys returned.\n\t * If your usage scenario depends on consistent ordering, you will need to sort these yourself.\n\t */\n\tkeys(): IterableIterator<string>;\n\n\t/**\n\t * Returns an iterable of values in the map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order of the values returned.\n\t * If your usage scenario depends on consistent ordering, you will need to sort these yourself.\n\t */\n\tvalues(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>>;\n\n\t/**\n\t * Returns an iterable of key, value pairs for every entry in the map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order of the entries returned.\n\t * If your usage scenario depends on consistent ordering, you will need to sort these yourself.\n\t */\n\tentries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]>;\n\n\t/**\n\t * Executes the provided function once per each key/value pair in this map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order in which the function is called with respect to the map's entries.\n\t * If your usage scenario depends on consistent ordering, you will need to account for this.\n\t */\n\tforEach(\n\t\tcallbackfn: (\n\t\t\tvalue: TreeNodeFromImplicitAllowedTypes<T>,\n\t\t\tkey: string,\n\t\t\tmap: ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>,\n\t\t) => void,\n\t\t// Typing inherited from `ReadonlyMap`.\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tthisArg?: any,\n\t): void;\n}\n\nconst handler: ProxyHandler<TreeMapNode> = {\n\tgetPrototypeOf: () => {\n\t\treturn Map.prototype;\n\t},\n};\n\nabstract class CustomMapNodeBase<const T extends ImplicitAllowedTypes> extends TreeNodeValid<\n\tIterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>\n> {\n\tpublic static readonly kind = NodeKind.Map;\n\n\tpublic [Symbol.iterator](): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]> {\n\t\treturn this.entries();\n\t}\n\tpublic delete(key: string): void {\n\t\tconst node = getFlexNode(this);\n\t\tif (isMapTreeNode(node)) {\n\t\t\tthrow new UsageError(`A map cannot be mutated before being inserted into the tree`);\n\t\t}\n\n\t\tnode.delete(key);\n\t}\n\tpublic *entries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]> {\n\t\tconst node = getFlexNode(this);\n\t\tfor (const key of node.keys()) {\n\t\t\tyield [\n\t\t\t\tkey,\n\t\t\t\tgetProxyForField(node.getBoxed(key)) as TreeNodeFromImplicitAllowedTypes<T>,\n\t\t\t];\n\t\t}\n\t}\n\tpublic get(key: string): TreeNodeFromImplicitAllowedTypes<T> {\n\t\tconst node = getFlexNode(this);\n\t\tconst field = node.getBoxed(key);\n\t\treturn getProxyForField(field) as TreeNodeFromImplicitAllowedTypes<T>;\n\t}\n\tpublic has(key: string): boolean {\n\t\tconst node = getFlexNode(this);\n\t\treturn node.has(key);\n\t}\n\tpublic keys(): IterableIterator<string> {\n\t\tconst node = getFlexNode(this);\n\t\treturn node.keys();\n\t}\n\tpublic set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T>): TreeMapNode {\n\t\tconst node = getFlexNode(this);\n\t\tif (isMapTreeNode(node)) {\n\t\t\tthrow new UsageError(`A map cannot be mutated before being inserted into the tree`);\n\t\t}\n\n\t\tconst classSchema = getSimpleNodeSchema(node.schema);\n\t\tconst mapTree = mapTreeFromNodeData(\n\t\t\tvalue as InsertableContent,\n\t\t\tclassSchema.info as ImplicitAllowedTypes,\n\t\t\tnode.context.nodeKeyManager,\n\t\t\tgetSchemaAndPolicy(node),\n\t\t);\n\n\t\tprepareContentForHydration(mapTree, node.context.checkout.forest);\n\t\tconst cursor = mapTree !== undefined ? cursorForMapTreeNode(mapTree) : undefined;\n\t\tnode.set(key, cursor);\n\t\treturn this;\n\t}\n\tpublic get size(): number {\n\t\treturn getFlexNode(this).size;\n\t}\n\tpublic *values(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>> {\n\t\tfor (const [, value] of this.entries()) {\n\t\t\tyield value;\n\t\t}\n\t}\n\tpublic forEach<TThis extends TreeMapNode<T>>(\n\t\tthis: TThis,\n\t\tcallbackFn: (value: TreeNodeFromImplicitAllowedTypes<T>, key: string, map: TThis) => void,\n\t\tthisArg?: unknown,\n\t): void {\n\t\tfor (const field of getFlexNode(this).boxedIterator()) {\n\t\t\tconst node = getProxyForField(field) as TreeNodeFromImplicitAllowedTypes<T>;\n\t\t\tcallbackFn.call(thisArg, node, field.key, this);\n\t\t}\n\t}\n\t// TODO: add `clear` once we have established merge semantics for it.\n}\n\n/**\n * Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.\n *\n * @param base - base schema type to extend.\n * @param useMapPrototype - should this type emulate a ES6 Map object (by faking its prototype with a proxy).\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function mapSchema<\n\tTName extends string,\n\tconst T extends ImplicitAllowedTypes,\n\tconst ImplicitlyConstructable extends boolean,\n>(\n\tidentifier: TName,\n\tinfo: T,\n\timplicitlyConstructable: ImplicitlyConstructable,\n\tuseMapPrototype: boolean,\n) {\n\tlet flexSchema: FlexMapNodeSchema;\n\n\tclass schema extends CustomMapNodeBase<T> implements TreeMapNode<T> {\n\t\tpublic static override prepareInstance<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tflexNode: FlexTreeNode,\n\t\t): TreeNodeValid<T2> {\n\t\t\tif (useMapPrototype) {\n\t\t\t\treturn new Proxy<schema>(instance as schema, handler);\n\t\t\t}\n\t\t\treturn instance;\n\t\t}\n\n\t\tpublic static override buildRawNode<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tinput: T2,\n\t\t): MapTreeNode {\n\t\t\treturn getOrCreateMapTreeNode(\n\t\t\t\tflexSchema,\n\t\t\t\tmapTreeFromNodeData(\n\t\t\t\t\tcopyContent(flexSchema.name, input as Iterable<[string, InsertableContent]>),\n\t\t\t\t\tthis as unknown as ImplicitAllowedTypes,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\tprotected static override constructorCached: typeof TreeNodeValid | undefined = undefined;\n\n\t\tprotected static override oneTimeSetup<T2>(this: typeof TreeNodeValid<T2>): void {\n\t\t\tflexSchema = getFlexSchema(this as unknown as TreeNodeSchema) as FlexMapNodeSchema;\n\t\t}\n\n\t\tpublic static readonly identifier = identifier;\n\t\tpublic static readonly info = info;\n\t\tpublic static readonly implicitlyConstructable: ImplicitlyConstructable =\n\t\t\timplicitlyConstructable;\n\n\t\tpublic get [type](): TName {\n\t\t\treturn identifier;\n\t\t}\n\t}\n\tconst schemaErased: TreeNodeSchemaClass<\n\t\tTName,\n\t\tNodeKind.Map,\n\t\tTreeMapNode<T> & WithType<TName>,\n\t\tIterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>,\n\t\tImplicitlyConstructable,\n\t\tT\n\t> = schema;\n\treturn schemaErased;\n}\n\nfunction copyContent<T>(\n\ttypeName: TreeNodeSchemaIdentifier,\n\tcontent: Iterable<[string, T]>,\n): Map<string, T> {\n\tconst copy = new Map(content);\n\tmarkContentType(typeName, copy);\n\treturn copy;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mapNode.js","sourceRoot":"","sources":["../../src/simple-tree/mapNode.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 type { TreeNodeSchemaIdentifier } from \"../core/index.js\";\nimport {\n\ttype FlexMapNodeSchema,\n\ttype FlexTreeNode,\n\ttype MapTreeNode,\n\tcursorForMapTreeNode,\n\tgetOrCreateMapTreeNode,\n\tgetSchemaAndPolicy,\n\tisMapTreeNode,\n} from \"../feature-libraries/index.js\";\nimport {\n\ttype InsertableContent,\n\tgetProxyForField,\n\tmarkContentType,\n\tprepareContentForHydration,\n} from \"./proxies.js\";\nimport { getFlexNode } from \"./proxyBinding.js\";\nimport { getSimpleNodeSchema } from \"./schemaCaching.js\";\nimport {\n\tNodeKind,\n\ttype ImplicitAllowedTypes,\n\ttype InsertableTreeNodeFromImplicitAllowedTypes,\n\ttype TreeNodeSchemaClass,\n\ttype WithType,\n\ttype TreeNodeSchema,\n\ttype TreeNodeFromImplicitAllowedTypes,\n\ttype,\n} from \"./schemaTypes.js\";\nimport { mapTreeFromNodeData } from \"./toMapTree.js\";\nimport { type TreeNode, TreeNodeValid } from \"./types.js\";\nimport { getFlexSchema } from \"./toFlexSchema.js\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\n/**\n * A map of string keys to tree objects.\n *\n * @privateRemarks\n * Add support for `clear` once we have established merge semantics for it.\n *\n * @public\n */\nexport interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTypes>\n\textends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>,\n\t\tTreeNode {\n\t/**\n\t * Adds or updates an entry in the map with a specified `key` and a `value`.\n\t *\n\t * @param key - The key of the element to add to the map.\n\t * @param value - The value of the element to add to the map.\n\t *\n\t * @remarks\n\t * Setting the value at a key to `undefined` is equivalent to calling {@link TreeMapNode.delete} with that key.\n\t */\n\tset(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T> | undefined): void;\n\n\t/**\n\t * Removes the specified element from this map by its `key`.\n\t *\n\t * @remarks\n\t * Note: unlike JavaScript's Map API, this method does not return a flag indicating whether or not the value was\n\t * deleted.\n\t *\n\t * @privateRemarks\n\t * Regarding the choice to not return a boolean: Since this data structure is distributed in nature, it isn't\n\t * possible to tell whether or not the item was deleted as a result of this method call. Returning a \"best guess\"\n\t * is more likely to create issues / promote bad usage patterns than offer useful information.\n\t *\n\t * @param key - The key of the element to remove from the map.\n\t */\n\tdelete(key: string): void;\n\n\t/**\n\t * Returns an iterable of keys in the map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order of the keys returned.\n\t * If your usage scenario depends on consistent ordering, you will need to sort these yourself.\n\t */\n\tkeys(): IterableIterator<string>;\n\n\t/**\n\t * Returns an iterable of values in the map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order of the values returned.\n\t * If your usage scenario depends on consistent ordering, you will need to sort these yourself.\n\t */\n\tvalues(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>>;\n\n\t/**\n\t * Returns an iterable of key, value pairs for every entry in the map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order of the entries returned.\n\t * If your usage scenario depends on consistent ordering, you will need to sort these yourself.\n\t */\n\tentries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]>;\n\n\t/**\n\t * Executes the provided function once per each key/value pair in this map.\n\t *\n\t * @remarks\n\t * Note: no guarantees are made regarding the order in which the function is called with respect to the map's entries.\n\t * If your usage scenario depends on consistent ordering, you will need to account for this.\n\t */\n\tforEach(\n\t\tcallbackfn: (\n\t\t\tvalue: TreeNodeFromImplicitAllowedTypes<T>,\n\t\t\tkey: string,\n\t\t\tmap: ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>,\n\t\t) => void,\n\t\t// Typing inherited from `ReadonlyMap`.\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tthisArg?: any,\n\t): void;\n}\n\nconst handler: ProxyHandler<TreeMapNode> = {\n\tgetPrototypeOf: () => {\n\t\treturn Map.prototype;\n\t},\n};\n\nabstract class CustomMapNodeBase<const T extends ImplicitAllowedTypes> extends TreeNodeValid<\n\tIterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>\n> {\n\tpublic static readonly kind = NodeKind.Map;\n\n\tpublic [Symbol.iterator](): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]> {\n\t\treturn this.entries();\n\t}\n\tpublic delete(key: string): void {\n\t\tconst node = getFlexNode(this);\n\t\tif (isMapTreeNode(node)) {\n\t\t\tthrow new UsageError(`A map cannot be mutated before being inserted into the tree`);\n\t\t}\n\n\t\tnode.delete(key);\n\t}\n\tpublic *entries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]> {\n\t\tconst node = getFlexNode(this);\n\t\tfor (const key of node.keys()) {\n\t\t\tyield [\n\t\t\t\tkey,\n\t\t\t\tgetProxyForField(node.getBoxed(key)) as TreeNodeFromImplicitAllowedTypes<T>,\n\t\t\t];\n\t\t}\n\t}\n\tpublic get(key: string): TreeNodeFromImplicitAllowedTypes<T> {\n\t\tconst node = getFlexNode(this);\n\t\tconst field = node.getBoxed(key);\n\t\treturn getProxyForField(field) as TreeNodeFromImplicitAllowedTypes<T>;\n\t}\n\tpublic has(key: string): boolean {\n\t\tconst node = getFlexNode(this);\n\t\treturn node.has(key);\n\t}\n\tpublic keys(): IterableIterator<string> {\n\t\tconst node = getFlexNode(this);\n\t\treturn node.keys();\n\t}\n\tpublic set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T>): TreeMapNode {\n\t\tconst node = getFlexNode(this);\n\t\tif (isMapTreeNode(node)) {\n\t\t\tthrow new UsageError(`A map cannot be mutated before being inserted into the tree`);\n\t\t}\n\n\t\tconst classSchema = getSimpleNodeSchema(node.schema);\n\t\tconst mapTree = mapTreeFromNodeData(\n\t\t\tvalue as InsertableContent,\n\t\t\tclassSchema.info as ImplicitAllowedTypes,\n\t\t\tnode.context.nodeKeyManager,\n\t\t\tgetSchemaAndPolicy(node),\n\t\t);\n\n\t\tprepareContentForHydration(mapTree, node.context.checkout.forest);\n\t\tconst cursor = mapTree !== undefined ? cursorForMapTreeNode(mapTree) : undefined;\n\t\tnode.set(key, cursor);\n\t\treturn this;\n\t}\n\tpublic get size(): number {\n\t\treturn getFlexNode(this).size;\n\t}\n\tpublic *values(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>> {\n\t\tfor (const [, value] of this.entries()) {\n\t\t\tyield value;\n\t\t}\n\t}\n\tpublic forEach<TThis extends TreeMapNode<T>>(\n\t\tthis: TThis,\n\t\tcallbackFn: (value: TreeNodeFromImplicitAllowedTypes<T>, key: string, map: TThis) => void,\n\t\tthisArg?: unknown,\n\t): void {\n\t\tfor (const field of getFlexNode(this).boxedIterator()) {\n\t\t\tconst node = getProxyForField(field) as TreeNodeFromImplicitAllowedTypes<T>;\n\t\t\tcallbackFn.call(thisArg, node, field.key, this);\n\t\t}\n\t}\n\t// TODO: add `clear` once we have established merge semantics for it.\n}\n\n/**\n * Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.\n *\n * @param base - base schema type to extend.\n * @param useMapPrototype - should this type emulate a ES6 Map object (by faking its prototype with a proxy).\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function mapSchema<\n\tTName extends string,\n\tconst T extends ImplicitAllowedTypes,\n\tconst ImplicitlyConstructable extends boolean,\n>(\n\tidentifier: TName,\n\tinfo: T,\n\timplicitlyConstructable: ImplicitlyConstructable,\n\tuseMapPrototype: boolean,\n) {\n\tlet flexSchema: FlexMapNodeSchema;\n\n\tclass schema extends CustomMapNodeBase<T> implements TreeMapNode<T> {\n\t\tpublic static override prepareInstance<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tflexNode: FlexTreeNode,\n\t\t): TreeNodeValid<T2> {\n\t\t\tif (useMapPrototype) {\n\t\t\t\treturn new Proxy<schema>(instance as schema, handler);\n\t\t\t}\n\t\t\treturn instance;\n\t\t}\n\n\t\tpublic static override buildRawNode<T2>(\n\t\t\tthis: typeof TreeNodeValid<T2>,\n\t\t\tinstance: TreeNodeValid<T2>,\n\t\t\tinput: T2,\n\t\t): MapTreeNode {\n\t\t\treturn getOrCreateMapTreeNode(\n\t\t\t\tflexSchema,\n\t\t\t\tmapTreeFromNodeData(\n\t\t\t\t\tcopyContent(flexSchema.name, input as Iterable<[string, InsertableContent]>),\n\t\t\t\t\tthis as unknown as ImplicitAllowedTypes,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\tprotected static override constructorCached: typeof TreeNodeValid | undefined = undefined;\n\n\t\tprotected static override oneTimeSetup<T2>(this: typeof TreeNodeValid<T2>): void {\n\t\t\tflexSchema = getFlexSchema(this as unknown as TreeNodeSchema) as FlexMapNodeSchema;\n\t\t}\n\n\t\tpublic static readonly identifier = identifier;\n\t\tpublic static readonly info = info;\n\t\tpublic static readonly implicitlyConstructable: ImplicitlyConstructable =\n\t\t\timplicitlyConstructable;\n\n\t\tpublic get [type](): TName {\n\t\t\treturn identifier;\n\t\t}\n\t}\n\tconst schemaErased: TreeNodeSchemaClass<\n\t\tTName,\n\t\tNodeKind.Map,\n\t\tTreeMapNode<T> & WithType<TName>,\n\t\tIterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>,\n\t\tImplicitlyConstructable,\n\t\tT\n\t> = schema;\n\treturn schemaErased;\n}\n\nfunction copyContent<T>(\n\ttypeName: TreeNodeSchemaIdentifier,\n\tcontent: Iterable<[string, T]>,\n): Map<string, T> {\n\tconst copy = new Map(content);\n\tmarkContentType(typeName, copy);\n\treturn copy;\n}\n"]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { LocalNodeKey, StableNodeKey } from "../feature-libraries/index.js";
|
|
6
|
-
import { TreeNode } from "./types.js";
|
|
5
|
+
import type { LocalNodeKey, StableNodeKey } from "../feature-libraries/index.js";
|
|
6
|
+
import type { TreeNode } from "./types.js";
|
|
7
7
|
/**
|
|
8
8
|
* A collection of utilities for managing {@link StableNodeKey}s.
|
|
9
9
|
* A node key can be assigned to a node and allows that node to be easily retrieved from the tree at a later time. (see `nodeKey.map`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeKeys.d.ts","sourceRoot":"","sources":["../../src/simple-tree/nodeKeys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"nodeKeys.d.ts","sourceRoot":"","sources":["../../src/simple-tree/nodeKeys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACxB;;OAEG;IACH,QAAQ,IAAI,YAAY,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,CAAC;IAC3C;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACnD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;CAClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeKeys.js","sourceRoot":"","sources":["../../src/simple-tree/nodeKeys.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { LocalNodeKey, StableNodeKey } from \"../feature-libraries/index.js\";\nimport { TreeNode } from \"./types.js\";\n\n/**\n * A collection of utilities for managing {@link StableNodeKey}s.\n * A node key can be assigned to a node and allows that node to be easily retrieved from the tree at a later time. (see `nodeKey.map`).\n * @remarks {@link LocalNodeKey}s are put on {@link FlexTreeObjectNode}s via a special field.\n * A node with a node key in its schema must always have a node key.\n * TODO: A node key index leveraging this {@link NodeKeys} interface should be implemented for the simple tree layer.\n * @internal\n */\nexport interface NodeKeys {\n\t/**\n\t * Create a new {@link LocalNodeKey} which can be used as the key for a node in the tree.\n\t */\n\tgenerate(): LocalNodeKey;\n\t/**\n\t * Convert the given {@link LocalNodeKey} into a UUID that can be serialized.\n\t * @param key - the key to convert\n\t */\n\tstabilize(key: LocalNodeKey): StableNodeKey;\n\t/**\n\t * Convert a {@link StableNodeKey} back into its {@link LocalNodeKey} form.\n\t * @param key - the key to convert\n\t */\n\tlocalize(key: StableNodeKey): LocalNodeKey;\n\t/**\n\t * Attempts to recompress a string key back into its {@link LocalNodeKey} form.\n\t * @param key - The key to convert.\n\t * @returns The {@link LocalNodeKey} associated with `key` or undefined if the key was not generated by any session known to this compressor.\n\t */\n\ttryLocalize(key: string): LocalNodeKey | undefined;\n\t/**\n\t * A map of all {@link LocalNodeKey}s in the document to their corresponding nodes.\n\t */\n\treadonly map: ReadonlyMap<LocalNodeKey, TreeNode>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nodeKeys.js","sourceRoot":"","sources":["../../src/simple-tree/nodeKeys.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { LocalNodeKey, StableNodeKey } from \"../feature-libraries/index.js\";\nimport type { TreeNode } from \"./types.js\";\n\n/**\n * A collection of utilities for managing {@link StableNodeKey}s.\n * A node key can be assigned to a node and allows that node to be easily retrieved from the tree at a later time. (see `nodeKey.map`).\n * @remarks {@link LocalNodeKey}s are put on {@link FlexTreeObjectNode}s via a special field.\n * A node with a node key in its schema must always have a node key.\n * TODO: A node key index leveraging this {@link NodeKeys} interface should be implemented for the simple tree layer.\n * @internal\n */\nexport interface NodeKeys {\n\t/**\n\t * Create a new {@link LocalNodeKey} which can be used as the key for a node in the tree.\n\t */\n\tgenerate(): LocalNodeKey;\n\t/**\n\t * Convert the given {@link LocalNodeKey} into a UUID that can be serialized.\n\t * @param key - the key to convert\n\t */\n\tstabilize(key: LocalNodeKey): StableNodeKey;\n\t/**\n\t * Convert a {@link StableNodeKey} back into its {@link LocalNodeKey} form.\n\t * @param key - the key to convert\n\t */\n\tlocalize(key: StableNodeKey): LocalNodeKey;\n\t/**\n\t * Attempts to recompress a string key back into its {@link LocalNodeKey} form.\n\t * @param key - The key to convert.\n\t * @returns The {@link LocalNodeKey} associated with `key` or undefined if the key was not generated by any session known to this compressor.\n\t */\n\ttryLocalize(key: string): LocalNodeKey | undefined;\n\t/**\n\t * A map of all {@link LocalNodeKey}s in the document to their corresponding nodes.\n\t */\n\treadonly map: ReadonlyMap<LocalNodeKey, TreeNode>;\n}\n"]}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { FlexTreeField } from "../feature-libraries/index.js";
|
|
6
|
-
import { InsertableContent } from "./proxies.js";
|
|
7
|
-
import { NodeKind, ImplicitFieldSchema, TreeNodeSchemaClass, WithType, TreeNodeSchema, TreeFieldFromImplicitField, InsertableTreeFieldFromImplicitField, FieldSchema, FieldKind } from "./schemaTypes.js";
|
|
8
|
-
import { TreeNode } from "./types.js";
|
|
9
|
-
import { type RestrictiveReadonlyRecord, InternalUtilTypes } from "../util/index.js";
|
|
5
|
+
import { type FlexTreeField } from "../feature-libraries/index.js";
|
|
6
|
+
import { type InsertableContent } from "./proxies.js";
|
|
7
|
+
import { NodeKind, type ImplicitFieldSchema, type TreeNodeSchemaClass, type WithType, type TreeNodeSchema, type TreeFieldFromImplicitField, type InsertableTreeFieldFromImplicitField, type FieldSchema, FieldKind } from "./schemaTypes.js";
|
|
8
|
+
import { type TreeNode } from "./types.js";
|
|
9
|
+
import { type RestrictiveReadonlyRecord, type InternalUtilTypes } from "../util/index.js";
|
|
10
10
|
/**
|
|
11
11
|
* Helper used to produce types for object nodes.
|
|
12
12
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/objectNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAKN,aAAa,
|
|
1
|
+
{"version":3,"file":"objectNode.d.ts","sourceRoot":"","sources":["../../src/simple-tree/objectNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,8 +121,8 @@ export function setField(field, simpleFieldSchema, value) {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
class CustomObjectNodeBase extends TreeNodeValid {
|
|
124
|
-
static kind = NodeKind.Object;
|
|
125
124
|
}
|
|
125
|
+
CustomObjectNodeBase.kind = NodeKind.Object;
|
|
126
126
|
/**
|
|
127
127
|
* Define a {@link TreeNodeSchema} for a {@link TreeObjectNode}.
|
|
128
128
|
*
|
|
@@ -139,7 +139,6 @@ export function objectSchema(identifier, info, implicitlyConstructable) {
|
|
|
139
139
|
let customizable;
|
|
140
140
|
let flexSchema;
|
|
141
141
|
class CustomObjectNode extends CustomObjectNodeBase {
|
|
142
|
-
static fields = new Map([...flexKeyMap].map(([key, value]) => [key, value.schema]));
|
|
143
142
|
static prepareInstance(instance, flexNode) {
|
|
144
143
|
// Differentiate between the following cases:
|
|
145
144
|
//
|
|
@@ -167,7 +166,6 @@ export function objectSchema(identifier, info, implicitlyConstructable) {
|
|
|
167
166
|
static buildRawNode(instance, input) {
|
|
168
167
|
return getOrCreateMapTreeNode(flexSchema, mapTreeFromNodeData(copyContent(flexSchema.name, input), this));
|
|
169
168
|
}
|
|
170
|
-
static constructorCached = undefined;
|
|
171
169
|
static oneTimeSetup() {
|
|
172
170
|
// One time initialization that required knowing the most derived type (from this.constructor) and thus has to be lazy.
|
|
173
171
|
customizable = this !== CustomObjectNode;
|
|
@@ -195,13 +193,15 @@ export function objectSchema(identifier, info, implicitlyConstructable) {
|
|
|
195
193
|
}
|
|
196
194
|
}
|
|
197
195
|
}
|
|
198
|
-
static identifier = identifier;
|
|
199
|
-
static info = info;
|
|
200
|
-
static implicitlyConstructable = implicitlyConstructable;
|
|
201
196
|
get [type]() {
|
|
202
197
|
return identifier;
|
|
203
198
|
}
|
|
204
199
|
}
|
|
200
|
+
CustomObjectNode.fields = new Map([...flexKeyMap].map(([key, value]) => [key, value.schema]));
|
|
201
|
+
CustomObjectNode.constructorCached = undefined;
|
|
202
|
+
CustomObjectNode.identifier = identifier;
|
|
203
|
+
CustomObjectNode.info = info;
|
|
204
|
+
CustomObjectNode.implicitlyConstructable = implicitlyConstructable;
|
|
205
205
|
return CustomObjectNode;
|
|
206
206
|
}
|
|
207
207
|
const targetToProxy = new WeakMap();
|