@fluidframework/tree 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dependency-cruiser-known-violations.json +28 -40
- package/.vscode/Tree.code-workspace +0 -2
- package/CHANGELOG.md +92 -0
- package/README.md +6 -0
- package/alpha.d.ts +11 -0
- package/api-extractor/api-extractor-lint-alpha.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-alpha.esm.json +5 -0
- package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
- package/api-extractor/api-extractor.current.json +8 -0
- package/api-extractor/api-extractor.legacy.json +4 -0
- package/api-extractor.json +1 -1
- package/api-report/tree.alpha.api.md +21 -6
- package/api-report/tree.beta.api.md +21 -6
- package/api-report/tree.legacy.alpha.api.md +562 -0
- package/api-report/tree.legacy.public.api.md +559 -0
- package/api-report/tree.public.api.md +6 -6
- package/dist/alpha.d.ts +102 -0
- package/dist/beta.d.ts +6 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/{revertible/revertible.d.ts → revertible.d.ts} +12 -0
- package/dist/core/revertible.d.ts.map +1 -0
- package/dist/core/revertible.js.map +1 -0
- package/dist/core/schema-stored/format.d.ts +3 -3
- package/dist/core/schema-stored/format.js +1 -1
- package/dist/core/schema-stored/format.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +2 -7
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +4 -6
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +4 -6
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +15 -1
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +0 -1
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +1 -0
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts +7 -2
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/events/emitter.d.ts +127 -0
- package/dist/events/emitter.d.ts.map +1 -0
- package/dist/events/{events.js → emitter.js} +49 -28
- package/dist/events/emitter.js.map +1 -0
- package/dist/events/index.d.ts +2 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +4 -5
- package/dist/events/index.js.map +1 -1
- package/dist/events/interop.d.ts +36 -0
- package/dist/events/interop.d.ts.map +1 -0
- package/dist/{core/revertible/index.d.ts → events/interop.js} +3 -2
- package/dist/events/interop.js.map +1 -0
- package/dist/events/listeners.d.ts +65 -0
- package/dist/events/listeners.d.ts.map +1 -0
- package/{lib/core/revertible/index.d.ts → dist/events/listeners.js} +3 -2
- package/dist/events/listeners.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +25 -7
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +36 -15
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -2
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +12 -5
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +15 -2
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +28 -2
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +5 -4
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts +1 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-map-tree/index.js +2 -1
- package/dist/feature-libraries/flex-map-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +35 -35
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +82 -115
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +30 -14
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +10 -7
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +57 -281
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +15 -32
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +2 -3
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js +1 -3
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +3 -3
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +2 -10
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +26 -29
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +11 -17
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +6 -34
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +23 -159
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/unboxed.d.ts +4 -16
- package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/unboxed.js +7 -41
- package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.d.ts +2 -2
- package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +3 -6
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +4 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +3 -5
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +5 -13
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/comparison.js +3 -6
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/dist/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/discrepancies.js +3 -13
- package/dist/feature-libraries/modular-schema/discrepancies.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +4 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +12 -5
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +6 -6
- package/dist/feature-libraries/schema-index/format.d.ts +3 -3
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
- package/dist/feature-libraries/storedToViewSchema.js +2 -4
- package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts +3 -3
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +2 -2
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/index.js +2 -2
- package/dist/feature-libraries/typed-schema/index.js.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js +8 -10
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +17 -48
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +5 -37
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/feature-libraries/typed-schema/view.d.ts +4 -6
- package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/view.js +5 -4
- package/dist/feature-libraries/typed-schema/view.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +83 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +53 -0
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
- package/dist/shared-tree/{treeView.js → checkoutFlexTreeView.js} +28 -6
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -0
- package/dist/shared-tree/index.d.ts +3 -3
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +2 -2
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +15 -4
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +7 -8
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +9 -4
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +25 -12
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +2 -2
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +3 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js +6 -2
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +3 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +3 -2
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +2 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +2 -2
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeApi.d.ts +1 -3
- package/dist/shared-tree/treeApi.d.ts.map +1 -1
- package/dist/shared-tree/treeApi.js +6 -4
- package/dist/shared-tree/treeApi.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +2 -13
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +17 -1
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.js +1 -1
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +1 -1
- package/dist/simple-tree/api/create.js.map +1 -1
- package/{lib/simple-tree → dist/simple-tree/api}/getJsonSchema.d.ts +1 -1
- package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -0
- package/dist/simple-tree/{getJsonSchema.js → api/getJsonSchema.js} +1 -1
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -0
- package/{lib/simple-tree → dist/simple-tree/api}/getSimpleSchema.d.ts +1 -1
- package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -0
- package/dist/simple-tree/{getSimpleSchema.js → api/getSimpleSchema.js} +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -0
- package/dist/simple-tree/api/index.d.ts +5 -0
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +7 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/{lib/simple-tree → dist/simple-tree/api}/jsonSchema.d.ts +1 -1
- package/dist/simple-tree/api/jsonSchema.d.ts.map +1 -0
- package/dist/simple-tree/api/jsonSchema.js.map +1 -0
- package/dist/simple-tree/api/schemaFactory.d.ts +45 -14
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +43 -12
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +4 -4
- package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -0
- package/dist/simple-tree/api/simpleSchema.js.map +1 -0
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -0
- package/dist/simple-tree/{simpleSchemaToJsonSchema.js → api/simpleSchemaToJsonSchema.js} +4 -4
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
- package/dist/simple-tree/api/tree.d.ts +1 -21
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +3 -38
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeApiBeta.d.ts +79 -0
- package/dist/simple-tree/api/treeApiBeta.d.ts.map +1 -0
- package/dist/simple-tree/api/treeApiBeta.js +26 -0
- package/dist/simple-tree/api/treeApiBeta.js.map +1 -0
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +51 -21
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +2 -2
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/dist/simple-tree/{viewSchemaToSimpleSchema.d.ts → api/viewSchemaToSimpleSchema.d.ts} +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -0
- package/dist/simple-tree/{viewSchemaToSimpleSchema.js → api/viewSchemaToSimpleSchema.js} +4 -4
- package/{lib/simple-tree → dist/simple-tree/api}/viewSchemaToSimpleSchema.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 +33 -38
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +2 -2
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +4 -1
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/schemaCaching.d.ts +5 -0
- package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/dist/simple-tree/core/schemaCaching.js +10 -1
- package/dist/simple-tree/core/schemaCaching.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +78 -7
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +219 -30
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/core/types.d.ts +23 -8
- package/dist/simple-tree/core/types.d.ts.map +1 -1
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/withType.d.ts +3 -2
- package/dist/simple-tree/core/withType.d.ts.map +1 -1
- package/dist/simple-tree/core/withType.js.map +1 -1
- package/dist/simple-tree/index.d.ts +7 -9
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +15 -6
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +7 -9
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +13 -11
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +1 -1
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +38 -29
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +9 -7
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +37 -31
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/proxies.d.ts +1 -14
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +12 -15
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/proxyBinding.d.ts +2 -62
- package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
- package/dist/simple-tree/proxyBinding.js +8 -181
- package/dist/simple-tree/proxyBinding.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +7 -7
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +4 -4
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts +11 -1
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +54 -31
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts +25 -37
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +53 -16
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +7 -10
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +13 -13
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/walkSchema.d.ts +26 -0
- package/dist/simple-tree/walkSchema.d.ts.map +1 -0
- package/dist/simple-tree/walkSchema.js +49 -0
- package/dist/simple-tree/walkSchema.js.map +1 -0
- package/dist/treeFactory.d.ts +2 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +2 -1
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/typeUtils.d.ts +2 -2
- package/dist/util/typeUtils.js.map +1 -1
- package/legacy.d.ts +11 -0
- package/lib/alpha.d.ts +102 -0
- package/lib/beta.d.ts +6 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/{revertible/revertible.d.ts → revertible.d.ts} +12 -0
- package/lib/core/revertible.d.ts.map +1 -0
- package/lib/core/revertible.js.map +1 -0
- package/lib/core/schema-stored/format.d.ts +3 -3
- package/lib/core/schema-stored/format.js +1 -1
- package/lib/core/schema-stored/format.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +2 -7
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +4 -6
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +4 -6
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +15 -1
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +0 -1
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +1 -0
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts +7 -2
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/events/emitter.d.ts +127 -0
- package/lib/events/emitter.d.ts.map +1 -0
- package/lib/events/{events.js → emitter.js} +49 -27
- package/lib/events/emitter.js.map +1 -0
- package/lib/events/index.d.ts +2 -1
- package/lib/events/index.d.ts.map +1 -1
- package/lib/events/index.js +1 -1
- package/lib/events/index.js.map +1 -1
- package/lib/events/interop.d.ts +36 -0
- package/lib/events/interop.d.ts.map +1 -0
- package/{src/core/revertible/index.ts → lib/events/interop.js} +2 -2
- package/lib/events/interop.js.map +1 -0
- package/lib/events/listeners.d.ts +65 -0
- package/lib/events/listeners.d.ts.map +1 -0
- package/lib/{core/revertible/index.js → events/listeners.js} +2 -2
- package/lib/events/listeners.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +25 -7
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +37 -16
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -2
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +12 -5
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +15 -2
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +28 -2
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +5 -4
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts +1 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-map-tree/index.js +1 -1
- package/lib/feature-libraries/flex-map-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +35 -35
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +83 -116
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +30 -14
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +10 -7
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +57 -281
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +15 -31
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +2 -3
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js +2 -2
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +3 -3
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +2 -10
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +26 -29
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +11 -16
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +6 -34
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +24 -156
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/unboxed.d.ts +4 -16
- package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/unboxed.js +5 -37
- package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.d.ts +2 -2
- package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js +3 -6
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +4 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +3 -5
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +5 -5
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/comparison.js +3 -6
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
- package/lib/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/discrepancies.js +3 -13
- package/lib/feature-libraries/modular-schema/discrepancies.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +4 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +12 -5
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +6 -6
- package/lib/feature-libraries/schema-index/format.d.ts +3 -3
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
- package/lib/feature-libraries/storedToViewSchema.js +3 -5
- package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts +3 -3
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +2 -2
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/index.js +2 -2
- package/lib/feature-libraries/typed-schema/index.js.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +9 -11
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +17 -48
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +5 -36
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/feature-libraries/typed-schema/view.d.ts +4 -6
- package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/view.js +5 -4
- package/lib/feature-libraries/typed-schema/view.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +83 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +53 -0
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
- package/lib/shared-tree/{treeView.js → checkoutFlexTreeView.js} +26 -5
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -0
- package/lib/shared-tree/index.d.ts +3 -3
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +15 -4
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +8 -9
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +9 -4
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +26 -13
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +2 -2
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +3 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js +6 -2
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +3 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +3 -2
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +2 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +2 -2
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeApi.d.ts +1 -3
- package/lib/shared-tree/treeApi.d.ts.map +1 -1
- package/lib/shared-tree/treeApi.js +7 -5
- package/lib/shared-tree/treeApi.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +2 -13
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +18 -2
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.js +1 -1
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +2 -2
- package/lib/simple-tree/api/create.js.map +1 -1
- package/{dist/simple-tree → lib/simple-tree/api}/getJsonSchema.d.ts +1 -1
- package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -0
- package/lib/simple-tree/{getJsonSchema.js → api/getJsonSchema.js} +1 -1
- package/lib/simple-tree/api/getJsonSchema.js.map +1 -0
- package/{dist/simple-tree → lib/simple-tree/api}/getSimpleSchema.d.ts +1 -1
- package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -0
- package/lib/simple-tree/{getSimpleSchema.js → api/getSimpleSchema.js} +1 -1
- package/lib/simple-tree/api/getSimpleSchema.js.map +1 -0
- package/lib/simple-tree/api/index.d.ts +5 -0
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +3 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/{dist/simple-tree → lib/simple-tree/api}/jsonSchema.d.ts +1 -1
- package/lib/simple-tree/api/jsonSchema.d.ts.map +1 -0
- package/lib/simple-tree/api/jsonSchema.js.map +1 -0
- package/lib/simple-tree/api/schemaFactory.d.ts +45 -14
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +43 -12
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +4 -4
- package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -0
- package/lib/simple-tree/api/simpleSchema.js.map +1 -0
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -0
- package/lib/simple-tree/{simpleSchemaToJsonSchema.js → api/simpleSchemaToJsonSchema.js} +4 -4
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
- package/lib/simple-tree/api/tree.d.ts +1 -21
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +2 -34
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeApiBeta.d.ts +79 -0
- package/lib/simple-tree/api/treeApiBeta.d.ts.map +1 -0
- package/lib/simple-tree/api/treeApiBeta.js +23 -0
- package/lib/simple-tree/api/treeApiBeta.js.map +1 -0
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +53 -23
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +1 -1
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/lib/simple-tree/{viewSchemaToSimpleSchema.d.ts → api/viewSchemaToSimpleSchema.d.ts} +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -0
- package/lib/simple-tree/{viewSchemaToSimpleSchema.js → api/viewSchemaToSimpleSchema.js} +4 -4
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -0
- 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 +36 -41
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +2 -2
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +2 -2
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/schemaCaching.d.ts +5 -0
- package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/lib/simple-tree/core/schemaCaching.js +8 -0
- package/lib/simple-tree/core/schemaCaching.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +78 -7
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +211 -24
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/core/types.d.ts +23 -8
- package/lib/simple-tree/core/types.d.ts.map +1 -1
- package/lib/simple-tree/core/types.js.map +1 -1
- package/lib/simple-tree/core/withType.d.ts +3 -2
- package/lib/simple-tree/core/withType.d.ts.map +1 -1
- package/lib/simple-tree/core/withType.js.map +1 -1
- package/lib/simple-tree/index.d.ts +7 -9
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +5 -5
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +7 -9
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +14 -12
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +1 -1
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +38 -29
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +9 -7
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +40 -34
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/proxies.d.ts +1 -14
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +11 -14
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/proxyBinding.d.ts +2 -62
- package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
- package/lib/simple-tree/proxyBinding.js +6 -174
- package/lib/simple-tree/proxyBinding.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +7 -7
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +4 -4
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts +11 -1
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +29 -8
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts +25 -37
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +54 -17
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +8 -11
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +13 -13
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/walkSchema.d.ts +26 -0
- package/lib/simple-tree/walkSchema.d.ts.map +1 -0
- package/lib/simple-tree/walkSchema.js +43 -0
- package/lib/simple-tree/walkSchema.js.map +1 -0
- package/lib/treeFactory.d.ts +2 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +2 -1
- package/lib/treeFactory.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/lib/util/typeUtils.d.ts +2 -2
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +58 -36
- package/src/core/index.ts +1 -1
- package/src/core/{revertible/revertible.ts → revertible.ts} +15 -0
- package/src/core/schema-stored/format.ts +1 -1
- package/src/core/schema-stored/schema.ts +6 -13
- package/src/core/tree/anchorSet.ts +35 -9
- package/src/core/tree/detachedFieldIndex.ts +6 -5
- package/src/core/tree/visitDelta.ts +7 -2
- package/src/events/{events.ts → emitter.ts} +55 -134
- package/src/events/index.ts +7 -7
- package/src/events/interop.ts +49 -0
- package/src/events/listeners.ts +68 -0
- package/src/feature-libraries/chunked-forest/chunkTree.ts +63 -18
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +18 -4
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +33 -0
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +5 -3
- package/src/feature-libraries/flex-map-tree/index.ts +1 -0
- package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +135 -231
- package/src/feature-libraries/flex-tree/README.md +4 -75
- package/src/feature-libraries/flex-tree/context.ts +37 -16
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +69 -458
- package/src/feature-libraries/flex-tree/index.ts +7 -29
- package/src/feature-libraries/flex-tree/lazyEntity.ts +2 -11
- package/src/feature-libraries/flex-tree/lazyField.ts +49 -79
- package/src/feature-libraries/flex-tree/lazyNode.ts +26 -306
- package/src/feature-libraries/flex-tree/unboxed.ts +9 -68
- package/src/feature-libraries/flex-tree/utilities.ts +4 -8
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +4 -1
- package/src/feature-libraries/index.ts +2 -41
- package/src/feature-libraries/modular-schema/comparison.ts +4 -6
- package/src/feature-libraries/modular-schema/discrepancies.ts +7 -16
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +4 -1
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +14 -4
- package/src/feature-libraries/storedToViewSchema.ts +5 -6
- package/src/feature-libraries/typed-schema/flexList.ts +3 -3
- package/src/feature-libraries/typed-schema/index.ts +1 -3
- package/src/feature-libraries/typed-schema/schemaCollection.ts +15 -17
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +35 -127
- package/src/feature-libraries/typed-schema/view.ts +4 -13
- package/src/index.ts +5 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +89 -0
- package/src/shared-tree/index.ts +2 -7
- package/src/shared-tree/schematizeTree.ts +23 -12
- package/src/shared-tree/schematizingTreeView.ts +34 -24
- package/src/shared-tree/sharedTree.ts +6 -1
- package/src/shared-tree/sharedTreeChangeEnricher.ts +6 -1
- package/src/shared-tree/sharedTreeChangeFamily.ts +7 -1
- package/src/shared-tree/sharedTreeEditBuilder.ts +9 -4
- package/src/shared-tree/treeApi.ts +10 -10
- package/src/shared-tree/treeCheckout.ts +26 -15
- package/src/shared-tree-core/branch.ts +1 -1
- package/src/simple-tree/ProxyBinding.md +23 -23
- package/src/simple-tree/api/create.ts +8 -3
- package/src/simple-tree/{getJsonSchema.ts → api/getJsonSchema.ts} +3 -3
- package/src/simple-tree/{getSimpleSchema.ts → api/getSimpleSchema.ts} +3 -3
- package/src/simple-tree/api/index.ts +20 -0
- package/src/simple-tree/{jsonSchema.ts → api/jsonSchema.ts} +1 -1
- package/src/simple-tree/api/schemaFactory.ts +44 -13
- package/src/simple-tree/{simpleSchema.ts → api/simpleSchema.ts} +4 -4
- package/src/simple-tree/{simpleSchemaToJsonSchema.ts → api/simpleSchemaToJsonSchema.ts} +4 -4
- package/src/simple-tree/api/tree.ts +2 -71
- package/src/simple-tree/api/treeApiBeta.ts +101 -0
- package/src/simple-tree/api/treeNodeApi.ts +63 -22
- package/src/simple-tree/api/verboseTree.ts +1 -1
- package/src/simple-tree/{viewSchemaToSimpleSchema.ts → api/viewSchemaToSimpleSchema.ts} +5 -5
- package/src/simple-tree/arrayNode.ts +38 -41
- package/src/simple-tree/core/index.ts +4 -0
- package/src/simple-tree/core/schemaCaching.ts +10 -0
- package/src/simple-tree/core/treeNodeKernel.ts +279 -27
- package/src/simple-tree/core/treeNodeSchema.ts +1 -1
- package/src/simple-tree/core/types.ts +23 -8
- package/src/simple-tree/core/withType.ts +3 -1
- package/src/simple-tree/index.ts +29 -20
- package/src/simple-tree/leafNodeSchema.ts +24 -28
- package/src/simple-tree/mapNode.ts +47 -29
- package/src/simple-tree/objectNode.ts +51 -46
- package/src/simple-tree/proxies.ts +22 -51
- package/src/simple-tree/proxyBinding.ts +3 -254
- package/src/simple-tree/schemaTypes.ts +8 -8
- package/src/simple-tree/toFlexSchema.ts +40 -7
- package/src/simple-tree/toMapTree.ts +113 -79
- package/src/simple-tree/treeNodeValid.ts +10 -13
- package/src/simple-tree/typesUnsafe.ts +13 -13
- package/src/simple-tree/walkSchema.ts +81 -0
- package/src/treeFactory.ts +2 -1
- package/src/util/typeUtils.ts +2 -2
- package/dist/core/revertible/index.d.ts.map +0 -1
- package/dist/core/revertible/index.js +0 -10
- package/dist/core/revertible/index.js.map +0 -1
- package/dist/core/revertible/revertible.d.ts.map +0 -1
- package/dist/core/revertible/revertible.js.map +0 -1
- package/dist/domains/index.d.ts +0 -8
- package/dist/domains/index.d.ts.map +0 -1
- package/dist/domains/index.js +0 -20
- package/dist/domains/index.js.map +0 -1
- package/dist/domains/json/index.d.ts +0 -7
- package/dist/domains/json/index.d.ts.map +0 -1
- package/dist/domains/json/index.js +0 -17
- package/dist/domains/json/index.js.map +0 -1
- package/dist/domains/json/jsonCursor.d.ts +0 -52
- package/dist/domains/json/jsonCursor.d.ts.map +0 -1
- package/dist/domains/json/jsonCursor.js +0 -197
- package/dist/domains/json/jsonCursor.js.map +0 -1
- package/dist/domains/json/jsonDomainSchema.d.ts +0 -24
- package/dist/domains/json/jsonDomainSchema.d.ts.map +0 -1
- package/dist/domains/json/jsonDomainSchema.js +0 -32
- package/dist/domains/json/jsonDomainSchema.js.map +0 -1
- package/dist/domains/leafDomain.d.ts +0 -72
- package/dist/domains/leafDomain.d.ts.map +0 -1
- package/dist/domains/leafDomain.js +0 -88
- package/dist/domains/leafDomain.js.map +0 -1
- package/dist/domains/schemaBuilder.d.ts +0 -103
- package/dist/domains/schemaBuilder.d.ts.map +0 -1
- package/dist/domains/schemaBuilder.js +0 -121
- package/dist/domains/schemaBuilder.js.map +0 -1
- package/dist/domains/testRecursiveDomain.d.ts +0 -17
- package/dist/domains/testRecursiveDomain.d.ts.map +0 -1
- package/dist/domains/testRecursiveDomain.js +0 -35
- package/dist/domains/testRecursiveDomain.js.map +0 -1
- package/dist/events/events.d.ts +0 -201
- package/dist/events/events.d.ts.map +0 -1
- package/dist/events/events.js.map +0 -1
- package/dist/feature-libraries/schemaBuilder.d.ts +0 -31
- package/dist/feature-libraries/schemaBuilder.d.ts.map +0 -1
- package/dist/feature-libraries/schemaBuilder.js +0 -40
- package/dist/feature-libraries/schemaBuilder.js.map +0 -1
- package/dist/feature-libraries/schemaBuilderBase.d.ts +0 -191
- package/dist/feature-libraries/schemaBuilderBase.d.ts.map +0 -1
- package/dist/feature-libraries/schemaBuilderBase.js +0 -201
- package/dist/feature-libraries/schemaBuilderBase.js.map +0 -1
- package/dist/shared-tree/treeView.d.ts +0 -73
- package/dist/shared-tree/treeView.d.ts.map +0 -1
- package/dist/shared-tree/treeView.js.map +0 -1
- package/dist/simple-tree/getJsonSchema.d.ts.map +0 -1
- package/dist/simple-tree/getJsonSchema.js.map +0 -1
- package/dist/simple-tree/getSimpleSchema.d.ts.map +0 -1
- package/dist/simple-tree/getSimpleSchema.js.map +0 -1
- package/dist/simple-tree/jsonSchema.d.ts.map +0 -1
- package/dist/simple-tree/jsonSchema.js.map +0 -1
- package/dist/simple-tree/simpleSchema.d.ts.map +0 -1
- package/dist/simple-tree/simpleSchema.js.map +0 -1
- package/dist/simple-tree/simpleSchemaToJsonSchema.d.ts.map +0 -1
- package/dist/simple-tree/simpleSchemaToJsonSchema.js.map +0 -1
- package/dist/simple-tree/viewSchemaToSimpleSchema.d.ts.map +0 -1
- package/dist/simple-tree/viewSchemaToSimpleSchema.js.map +0 -1
- package/lib/core/revertible/index.d.ts.map +0 -1
- package/lib/core/revertible/index.js.map +0 -1
- package/lib/core/revertible/revertible.d.ts.map +0 -1
- package/lib/core/revertible/revertible.js.map +0 -1
- package/lib/domains/index.d.ts +0 -8
- package/lib/domains/index.d.ts.map +0 -1
- package/lib/domains/index.js +0 -8
- package/lib/domains/index.js.map +0 -1
- package/lib/domains/json/index.d.ts +0 -7
- package/lib/domains/json/index.d.ts.map +0 -1
- package/lib/domains/json/index.js +0 -7
- package/lib/domains/json/index.js.map +0 -1
- package/lib/domains/json/jsonCursor.d.ts +0 -52
- package/lib/domains/json/jsonCursor.d.ts.map +0 -1
- package/lib/domains/json/jsonCursor.js +0 -192
- package/lib/domains/json/jsonCursor.js.map +0 -1
- package/lib/domains/json/jsonDomainSchema.d.ts +0 -24
- package/lib/domains/json/jsonDomainSchema.d.ts.map +0 -1
- package/lib/domains/json/jsonDomainSchema.js +0 -29
- package/lib/domains/json/jsonDomainSchema.js.map +0 -1
- package/lib/domains/leafDomain.d.ts +0 -72
- package/lib/domains/leafDomain.d.ts.map +0 -1
- package/lib/domains/leafDomain.js +0 -85
- package/lib/domains/leafDomain.js.map +0 -1
- package/lib/domains/schemaBuilder.d.ts +0 -103
- package/lib/domains/schemaBuilder.d.ts.map +0 -1
- package/lib/domains/schemaBuilder.js +0 -117
- package/lib/domains/schemaBuilder.js.map +0 -1
- package/lib/domains/testRecursiveDomain.d.ts +0 -17
- package/lib/domains/testRecursiveDomain.d.ts.map +0 -1
- package/lib/domains/testRecursiveDomain.js +0 -32
- package/lib/domains/testRecursiveDomain.js.map +0 -1
- package/lib/events/events.d.ts +0 -201
- package/lib/events/events.d.ts.map +0 -1
- package/lib/events/events.js.map +0 -1
- package/lib/feature-libraries/schemaBuilder.d.ts +0 -31
- package/lib/feature-libraries/schemaBuilder.d.ts.map +0 -1
- package/lib/feature-libraries/schemaBuilder.js +0 -36
- package/lib/feature-libraries/schemaBuilder.js.map +0 -1
- package/lib/feature-libraries/schemaBuilderBase.d.ts +0 -191
- package/lib/feature-libraries/schemaBuilderBase.d.ts.map +0 -1
- package/lib/feature-libraries/schemaBuilderBase.js +0 -195
- package/lib/feature-libraries/schemaBuilderBase.js.map +0 -1
- package/lib/shared-tree/treeView.d.ts +0 -73
- package/lib/shared-tree/treeView.d.ts.map +0 -1
- package/lib/shared-tree/treeView.js.map +0 -1
- package/lib/simple-tree/getJsonSchema.d.ts.map +0 -1
- package/lib/simple-tree/getJsonSchema.js.map +0 -1
- package/lib/simple-tree/getSimpleSchema.d.ts.map +0 -1
- package/lib/simple-tree/getSimpleSchema.js.map +0 -1
- package/lib/simple-tree/jsonSchema.d.ts.map +0 -1
- package/lib/simple-tree/jsonSchema.js.map +0 -1
- package/lib/simple-tree/simpleSchema.d.ts.map +0 -1
- package/lib/simple-tree/simpleSchema.js.map +0 -1
- package/lib/simple-tree/simpleSchemaToJsonSchema.d.ts.map +0 -1
- package/lib/simple-tree/simpleSchemaToJsonSchema.js.map +0 -1
- package/lib/simple-tree/viewSchemaToSimpleSchema.d.ts.map +0 -1
- package/src/domains/README.md +0 -6
- package/src/domains/fence.json +0 -5
- package/src/domains/index.ts +0 -19
- package/src/domains/json/fence.json +0 -5
- package/src/domains/json/index.ts +0 -13
- package/src/domains/json/jsonCursor.ts +0 -247
- package/src/domains/json/jsonDomainSchema.ts +0 -47
- package/src/domains/leafDomain.ts +0 -97
- package/src/domains/schemaBuilder.ts +0 -153
- package/src/domains/testRecursiveDomain.ts +0 -38
- package/src/events/fence.json +0 -5
- package/src/feature-libraries/schemaBuilder.ts +0 -45
- package/src/feature-libraries/schemaBuilderBase.ts +0 -393
- package/src/shared-tree/treeView.ts +0 -113
- /package/dist/core/{revertible/revertible.js → revertible.js} +0 -0
- /package/dist/simple-tree/{jsonSchema.js → api/jsonSchema.js} +0 -0
- /package/dist/simple-tree/{simpleSchema.js → api/simpleSchema.js} +0 -0
- /package/dist/simple-tree/{simpleSchemaToJsonSchema.d.ts → api/simpleSchemaToJsonSchema.d.ts} +0 -0
- /package/lib/core/{revertible/revertible.js → revertible.js} +0 -0
- /package/lib/simple-tree/{jsonSchema.js → api/jsonSchema.js} +0 -0
- /package/lib/simple-tree/{simpleSchema.js → api/simpleSchema.js} +0 -0
- /package/lib/simple-tree/{simpleSchemaToJsonSchema.d.ts → api/simpleSchemaToJsonSchema.d.ts} +0 -0
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { type AnchorNode, type ExclusiveMapTree, type FieldKey, type MapTree, type TreeNodeSchemaIdentifier, type Value } from "../../core/index.js";
|
|
6
|
-
import { FlexTreeEntityKind, type FlexTreeField, type
|
|
7
|
-
import {
|
|
5
|
+
import { type AnchorNode, type ExclusiveMapTree, type FieldKey, type FieldUpPath, type MapTree, type TreeFieldStoredSchema, type TreeNodeSchemaIdentifier, type TreeStoredSchema, type Value } from "../../core/index.js";
|
|
6
|
+
import { type FlexTreeContext, FlexTreeEntityKind, type FlexTreeField, type FlexTreeNode, type FlexTreeSequenceField, type FlexTreeTypedField, flexTreeMarker, type FlexTreeHydratedContext } from "../flex-tree/index.js";
|
|
7
|
+
import { FlexFieldSchema, type FlexTreeNodeSchema, type FlexTreeSchema } from "../typed-schema/index.js";
|
|
8
8
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
9
9
|
import { type SequenceFieldEditBuilder } from "../default-schema/index.js";
|
|
10
10
|
/**
|
|
@@ -22,12 +22,12 @@ export declare function isMapTreeNode(flexNode: FlexTreeNode): flexNode is MapTr
|
|
|
22
22
|
/**
|
|
23
23
|
* Checks if the given {@link FlexTreeField} is a {@link MapTreeSequenceField}.
|
|
24
24
|
*/
|
|
25
|
-
export declare function isMapTreeSequenceField
|
|
25
|
+
export declare function isMapTreeSequenceField(field: FlexTreeSequenceField | FlexTreeField): field is MapTreeSequenceField;
|
|
26
26
|
/**
|
|
27
27
|
* An unhydrated {@link FlexTreeSequenceField}, which has additional editing capabilities.
|
|
28
28
|
* @remarks When doing a removal edit, a {@link MapTreeSequenceField}'s `editor` returns ownership of the removed {@link ExclusiveMapTree}s to the caller.
|
|
29
29
|
*/
|
|
30
|
-
export interface MapTreeSequenceField
|
|
30
|
+
export interface MapTreeSequenceField extends FlexTreeSequenceField {
|
|
31
31
|
readonly editor: MapTreeSequenceFieldEditBuilder;
|
|
32
32
|
}
|
|
33
33
|
interface MapTreeSequenceFieldEditBuilder extends SequenceFieldEditBuilder<ExclusiveMapTree[]> {
|
|
@@ -51,11 +51,13 @@ interface LocationInField {
|
|
|
51
51
|
* MapTreeNodes are unconditionally cached -
|
|
52
52
|
* when retrieved via {@link getOrCreateNode}, the same {@link MapTree} object will always produce the same `MapTreeNode` object.
|
|
53
53
|
*/
|
|
54
|
-
export declare class EagerMapTreeNode
|
|
55
|
-
readonly
|
|
54
|
+
export declare class EagerMapTreeNode implements MapTreeNode {
|
|
55
|
+
readonly context: UnhydratedContext;
|
|
56
|
+
readonly flexSchema: FlexTreeNodeSchema;
|
|
56
57
|
/** The underlying {@link MapTree} that this `MapTreeNode` reads its data from */
|
|
57
58
|
readonly mapTree: ExclusiveMapTree;
|
|
58
59
|
private location;
|
|
60
|
+
get schema(): TreeNodeSchemaIdentifier;
|
|
59
61
|
readonly [flexTreeMarker]: FlexTreeEntityKind.Node;
|
|
60
62
|
/**
|
|
61
63
|
* Create a new MapTreeNode.
|
|
@@ -65,7 +67,7 @@ export declare class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implem
|
|
|
65
67
|
* A `MapTreeNode` may never be constructed more than once for the same {@link MapTree} object.
|
|
66
68
|
* Instead, it should always be acquired via {@link getOrCreateNode}.
|
|
67
69
|
*/
|
|
68
|
-
constructor(
|
|
70
|
+
constructor(context: UnhydratedContext, flexSchema: FlexTreeNodeSchema,
|
|
69
71
|
/** The underlying {@link MapTree} that this `MapTreeNode` reads its data from */
|
|
70
72
|
mapTree: ExclusiveMapTree, location?: LocationInField);
|
|
71
73
|
get type(): TreeNodeSchemaIdentifier;
|
|
@@ -83,32 +85,28 @@ export declare class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implem
|
|
|
83
85
|
* @remarks If this node is unparented, this method will return the special {@link unparentedLocation} as the parent.
|
|
84
86
|
*/
|
|
85
87
|
get parentField(): LocationInField;
|
|
86
|
-
is
|
|
87
|
-
tryGetField(key: FieldKey): EagerMapTreeField
|
|
88
|
+
is(schema: FlexTreeNodeSchema): boolean;
|
|
89
|
+
tryGetField(key: FieldKey): EagerMapTreeField | undefined;
|
|
88
90
|
getBoxed(key: string): FlexTreeField;
|
|
89
91
|
boxedIterator(): IterableIterator<FlexTreeField>;
|
|
92
|
+
keys(): IterableIterator<FieldKey>;
|
|
90
93
|
get value(): Value;
|
|
91
|
-
context: undefined;
|
|
92
94
|
get anchorNode(): AnchorNode;
|
|
93
95
|
private walkTree;
|
|
94
96
|
}
|
|
95
97
|
/**
|
|
96
|
-
*
|
|
98
|
+
* Implementation of `FlexTreeContext`.
|
|
99
|
+
*
|
|
100
|
+
* @remarks An editor is required to edit the FlexTree.
|
|
97
101
|
*/
|
|
98
|
-
export declare class
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
getBoxed(key: string): FlexTreeTypedField<TSchema["info"]>;
|
|
107
|
-
[Symbol.iterator](): IterableIterator<[
|
|
108
|
-
FieldKey,
|
|
109
|
-
FlexTreeUnboxField<TSchema["info"], "notEmpty">
|
|
110
|
-
]>;
|
|
111
|
-
boxedIterator(): IterableIterator<FlexTreeTypedField<TSchema["info"]>>;
|
|
102
|
+
export declare class UnhydratedContext implements FlexTreeContext {
|
|
103
|
+
readonly flexSchema: FlexTreeSchema;
|
|
104
|
+
readonly schema: TreeStoredSchema;
|
|
105
|
+
/**
|
|
106
|
+
* @param flexSchema - Schema to use when working with the tree.
|
|
107
|
+
*/
|
|
108
|
+
constructor(flexSchema: FlexTreeSchema);
|
|
109
|
+
isHydrated(): this is FlexTreeHydratedContext;
|
|
112
110
|
}
|
|
113
111
|
/**
|
|
114
112
|
* A readonly {@link FlexTreeField} which wraps an array of {@link MapTrees}.
|
|
@@ -118,18 +116,19 @@ export declare class EagerMapTreeMapNode<TSchema extends FlexMapNodeSchema> exte
|
|
|
118
116
|
interface MapTreeField extends FlexTreeField {
|
|
119
117
|
readonly mapTrees: readonly MapTree[];
|
|
120
118
|
}
|
|
121
|
-
declare class EagerMapTreeField
|
|
122
|
-
readonly
|
|
119
|
+
declare class EagerMapTreeField implements MapTreeField {
|
|
120
|
+
readonly context: UnhydratedContext;
|
|
121
|
+
readonly flexSchema: FlexFieldSchema;
|
|
123
122
|
readonly key: FieldKey;
|
|
124
|
-
readonly parent: EagerMapTreeNode
|
|
123
|
+
readonly parent: EagerMapTreeNode;
|
|
125
124
|
[flexTreeMarker]: FlexTreeEntityKind.Field;
|
|
126
|
-
|
|
125
|
+
get schema(): TreeFieldStoredSchema;
|
|
126
|
+
constructor(context: UnhydratedContext, flexSchema: FlexFieldSchema, key: FieldKey, parent: EagerMapTreeNode);
|
|
127
127
|
get mapTrees(): readonly ExclusiveMapTree[];
|
|
128
128
|
get length(): number;
|
|
129
|
-
is<
|
|
130
|
-
boxedIterator(): IterableIterator<
|
|
131
|
-
boxedAt(index: number):
|
|
132
|
-
context: undefined;
|
|
129
|
+
is<TKind2 extends FlexFieldKind>(kind: TKind2): this is FlexTreeTypedField<TKind2>;
|
|
130
|
+
boxedIterator(): IterableIterator<FlexTreeNode>;
|
|
131
|
+
boxedAt(index: number): FlexTreeNode | undefined;
|
|
133
132
|
/**
|
|
134
133
|
* Mutate this field.
|
|
135
134
|
* @param edit - A function which receives the current `MapTree`s that comprise the contents of the field so that it may be mutated.
|
|
@@ -139,6 +138,7 @@ declare class EagerMapTreeField<T extends FlexAllowedTypes> implements MapTreeFi
|
|
|
139
138
|
* This function ensures that the parent MapTree has no empty fields (which is an invariant of `MapTree`) after the mutation.
|
|
140
139
|
*/
|
|
141
140
|
protected edit(edit: (mapTrees: ExclusiveMapTree[]) => void | ExclusiveMapTree[]): void;
|
|
141
|
+
getFieldPath(): FieldUpPath;
|
|
142
142
|
}
|
|
143
143
|
/**
|
|
144
144
|
* If there exists a {@link EagerMapTreeNode} for the given {@link MapTree}, returns it, otherwise returns `undefined`.
|
|
@@ -151,7 +151,7 @@ export declare function tryGetMapTreeNode(mapTree: MapTree): MapTreeNode | undef
|
|
|
151
151
|
* @param mapTree - the {@link MapTree} containing the data for this node.
|
|
152
152
|
* @remarks It must conform to the `nodeSchema`.
|
|
153
153
|
*/
|
|
154
|
-
export declare function getOrCreateMapTreeNode(nodeSchema: FlexTreeNodeSchema, mapTree: ExclusiveMapTree): EagerMapTreeNode
|
|
154
|
+
export declare function getOrCreateMapTreeNode(context: UnhydratedContext, nodeSchema: FlexTreeNodeSchema, mapTree: ExclusiveMapTree): EagerMapTreeNode;
|
|
155
155
|
export declare function unsupportedUsageError(message?: string): Error;
|
|
156
156
|
export {};
|
|
157
157
|
//# sourceMappingURL=mapTreeNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapTreeNode.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-map-tree/mapTreeNode.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"mapTreeNode.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-map-tree/mapTreeNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,12 @@
|
|
|
4
4
|
*/
|
|
5
5
|
var _a, _b;
|
|
6
6
|
import { assert, oob } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
7
8
|
import { EmptyKey, } from "../../core/index.js";
|
|
8
|
-
import { brand, fail, getOrCreate, mapIterable } from "../../util/index.js";
|
|
9
|
+
import { brand, fail, getOrCreate, isReadonlyArray, mapIterable } from "../../util/index.js";
|
|
9
10
|
import { FlexTreeEntityKind, flexTreeMarker, indexForAt, } from "../flex-tree/index.js";
|
|
10
|
-
import { FlexFieldSchema,
|
|
11
|
-
import {
|
|
12
|
-
import { FieldKinds } from "../default-schema/index.js";
|
|
13
|
-
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
11
|
+
import { FlexFieldSchema, intoStoredSchemaCollection, isLazy, } from "../typed-schema/index.js";
|
|
12
|
+
import { defaultSchemaPolicy, FieldKinds, } from "../default-schema/index.js";
|
|
14
13
|
/**
|
|
15
14
|
* Checks if the given {@link FlexTreeNode} is a {@link MapTreeNode}.
|
|
16
15
|
*/
|
|
@@ -31,6 +30,9 @@ export function isMapTreeSequenceField(field) {
|
|
|
31
30
|
* when retrieved via {@link getOrCreateNode}, the same {@link MapTree} object will always produce the same `MapTreeNode` object.
|
|
32
31
|
*/
|
|
33
32
|
export class EagerMapTreeNode {
|
|
33
|
+
get schema() {
|
|
34
|
+
return this.flexSchema.name;
|
|
35
|
+
}
|
|
34
36
|
/**
|
|
35
37
|
* Create a new MapTreeNode.
|
|
36
38
|
* @param location - the parentage of this node, if it is being created underneath an existing node and field, or undefined if not
|
|
@@ -39,14 +41,14 @@ export class EagerMapTreeNode {
|
|
|
39
41
|
* A `MapTreeNode` may never be constructed more than once for the same {@link MapTree} object.
|
|
40
42
|
* Instead, it should always be acquired via {@link getOrCreateNode}.
|
|
41
43
|
*/
|
|
42
|
-
constructor(
|
|
44
|
+
constructor(context, flexSchema,
|
|
43
45
|
/** The underlying {@link MapTree} that this `MapTreeNode` reads its data from */
|
|
44
46
|
mapTree, location = unparentedLocation) {
|
|
45
|
-
this.
|
|
47
|
+
this.context = context;
|
|
48
|
+
this.flexSchema = flexSchema;
|
|
46
49
|
this.mapTree = mapTree;
|
|
47
50
|
this.location = location;
|
|
48
51
|
this[_a] = FlexTreeEntityKind.Node;
|
|
49
|
-
this.context = undefined;
|
|
50
52
|
assert(!nodeCache.has(mapTree), 0x98b /* A node already exists for the given MapTree */);
|
|
51
53
|
nodeCache.set(mapTree, this);
|
|
52
54
|
// Fully demand the tree to ensure that parent pointers are present and accurate on all nodes.
|
|
@@ -59,7 +61,7 @@ export class EagerMapTreeNode {
|
|
|
59
61
|
this.walkTree();
|
|
60
62
|
}
|
|
61
63
|
get type() {
|
|
62
|
-
return this.
|
|
64
|
+
return this.flexSchema.name;
|
|
63
65
|
}
|
|
64
66
|
adoptBy(parent, index) {
|
|
65
67
|
if (parent !== undefined) {
|
|
@@ -80,21 +82,25 @@ export class EagerMapTreeNode {
|
|
|
80
82
|
return this.location;
|
|
81
83
|
}
|
|
82
84
|
is(schema) {
|
|
83
|
-
return schema === this.
|
|
85
|
+
return schema === this.flexSchema;
|
|
84
86
|
}
|
|
85
87
|
tryGetField(key) {
|
|
86
88
|
const field = this.mapTree.fields.get(key);
|
|
87
89
|
// Only return the field if it is not empty, in order to fulfill the contract of `tryGetField`.
|
|
88
90
|
if (field !== undefined && field.length > 0) {
|
|
89
|
-
return getOrCreateField(this, key, this.
|
|
91
|
+
return getOrCreateField(this, key, this.flexSchema.getFieldSchema(key));
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
94
|
getBoxed(key) {
|
|
93
95
|
const fieldKey = brand(key);
|
|
94
|
-
return getOrCreateField(this, fieldKey, this.
|
|
96
|
+
return getOrCreateField(this, fieldKey, this.flexSchema.getFieldSchema(fieldKey));
|
|
95
97
|
}
|
|
96
98
|
boxedIterator() {
|
|
97
|
-
return mapIterable(this.mapTree.fields.entries(), ([key]) => getOrCreateField(this, key, this.
|
|
99
|
+
return mapIterable(this.mapTree.fields.entries(), ([key]) => getOrCreateField(this, key, this.flexSchema.getFieldSchema(key)));
|
|
100
|
+
}
|
|
101
|
+
keys() {
|
|
102
|
+
// TODO: how this should handle missing defaults (and empty keys if they end up being allowed) needs to be determined.
|
|
103
|
+
return this.mapTree.fields.keys();
|
|
98
104
|
}
|
|
99
105
|
get value() {
|
|
100
106
|
return this.mapTree.value;
|
|
@@ -106,9 +112,9 @@ export class EagerMapTreeNode {
|
|
|
106
112
|
}
|
|
107
113
|
walkTree() {
|
|
108
114
|
for (const [key, mapTrees] of this.mapTree.fields) {
|
|
109
|
-
const field = getOrCreateField(this, key, this.
|
|
115
|
+
const field = getOrCreateField(this, key, this.flexSchema.getFieldSchema(key));
|
|
110
116
|
for (let index = 0; index < field.length; index++) {
|
|
111
|
-
const child = getOrCreateChild(mapTrees[index] ?? oob(), this.
|
|
117
|
+
const child = getOrCreateChild(this.context, mapTrees[index] ?? oob(), this.flexSchema.getFieldSchema(key).allowedTypes, { parent: field, index });
|
|
112
118
|
// These next asserts detect the case where `getOrCreateChild` gets a cache hit of a different node than the one we're trying to create
|
|
113
119
|
assert(child.location !== undefined, 0x98d /* Expected node to have parent */);
|
|
114
120
|
assert(child.location.parent.parent === this, 0x98e /* Node may not be multi-parented */);
|
|
@@ -119,43 +125,33 @@ export class EagerMapTreeNode {
|
|
|
119
125
|
}
|
|
120
126
|
}
|
|
121
127
|
_a = flexTreeMarker;
|
|
128
|
+
// #endregion Nodes
|
|
122
129
|
/**
|
|
123
|
-
*
|
|
130
|
+
* Implementation of `FlexTreeContext`.
|
|
131
|
+
*
|
|
132
|
+
* @remarks An editor is required to edit the FlexTree.
|
|
124
133
|
*/
|
|
125
|
-
export class
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
unboxedField(this.tryGetField(key) ?? fail("Unexpected empty map field"), key, this.mapTree, this),
|
|
136
|
-
]);
|
|
137
|
-
}
|
|
138
|
-
forEach(callbackFn, thisArg) {
|
|
139
|
-
const fn = thisArg !== undefined ? callbackFn.bind(thisArg) : callbackFn;
|
|
140
|
-
for (const [key, value] of this.entries()) {
|
|
141
|
-
fn(value, key, this);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
getBoxed(key) {
|
|
145
|
-
return super.getBoxed(key);
|
|
146
|
-
}
|
|
147
|
-
[Symbol.iterator]() {
|
|
148
|
-
return this.entries();
|
|
134
|
+
export class UnhydratedContext {
|
|
135
|
+
/**
|
|
136
|
+
* @param flexSchema - Schema to use when working with the tree.
|
|
137
|
+
*/
|
|
138
|
+
constructor(flexSchema) {
|
|
139
|
+
this.flexSchema = flexSchema;
|
|
140
|
+
this.schema = {
|
|
141
|
+
rootFieldSchema: flexSchema.rootFieldSchema.stored,
|
|
142
|
+
...intoStoredSchemaCollection(flexSchema),
|
|
143
|
+
};
|
|
149
144
|
}
|
|
150
|
-
|
|
151
|
-
return
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
class EagerMapTreeLeafNode extends EagerMapTreeNode {
|
|
155
|
-
get value() {
|
|
156
|
-
return super.value;
|
|
145
|
+
isHydrated() {
|
|
146
|
+
return false;
|
|
157
147
|
}
|
|
158
148
|
}
|
|
149
|
+
const emptyContext = new UnhydratedContext({
|
|
150
|
+
adapters: {},
|
|
151
|
+
nodeSchema: new Map(),
|
|
152
|
+
policy: defaultSchemaPolicy,
|
|
153
|
+
rootFieldSchema: FlexFieldSchema.empty,
|
|
154
|
+
});
|
|
159
155
|
/**
|
|
160
156
|
* A special singleton that is the implicit {@link LocationInField} of all un-parented {@link EagerMapTreeNode}s.
|
|
161
157
|
* @remarks This exists because {@link EagerMapTreeNode.parentField} must return a field.
|
|
@@ -170,8 +166,8 @@ const unparentedLocation = {
|
|
|
170
166
|
length: 0,
|
|
171
167
|
key: EmptyKey,
|
|
172
168
|
parent: undefined,
|
|
173
|
-
is(
|
|
174
|
-
return schema ===
|
|
169
|
+
is(kind) {
|
|
170
|
+
return this.schema.kind === kind.identifier;
|
|
175
171
|
},
|
|
176
172
|
boxedIterator() {
|
|
177
173
|
return [].values();
|
|
@@ -179,15 +175,22 @@ const unparentedLocation = {
|
|
|
179
175
|
boxedAt(index) {
|
|
180
176
|
return undefined;
|
|
181
177
|
},
|
|
182
|
-
schema: FlexFieldSchema.empty,
|
|
183
|
-
context:
|
|
178
|
+
schema: FlexFieldSchema.empty.stored,
|
|
179
|
+
context: emptyContext,
|
|
184
180
|
mapTrees: [],
|
|
181
|
+
getFieldPath() {
|
|
182
|
+
fail("unsupported");
|
|
183
|
+
},
|
|
185
184
|
},
|
|
186
185
|
index: -1,
|
|
187
186
|
};
|
|
188
187
|
class EagerMapTreeField {
|
|
189
|
-
|
|
190
|
-
this.
|
|
188
|
+
get schema() {
|
|
189
|
+
return this.flexSchema.stored;
|
|
190
|
+
}
|
|
191
|
+
constructor(context, flexSchema, key, parent) {
|
|
192
|
+
this.context = context;
|
|
193
|
+
this.flexSchema = flexSchema;
|
|
191
194
|
this.key = key;
|
|
192
195
|
this.parent = parent;
|
|
193
196
|
this[_b] = FlexTreeEntityKind.Field;
|
|
@@ -212,12 +215,12 @@ class EagerMapTreeField {
|
|
|
212
215
|
get length() {
|
|
213
216
|
return this.mapTrees.length;
|
|
214
217
|
}
|
|
215
|
-
is(
|
|
216
|
-
return this.schema.
|
|
218
|
+
is(kind) {
|
|
219
|
+
return this.schema.kind === kind.identifier;
|
|
217
220
|
}
|
|
218
221
|
boxedIterator() {
|
|
219
222
|
return this.mapTrees
|
|
220
|
-
.map((m, index) => getOrCreateChild(m, this.
|
|
223
|
+
.map((m, index) => getOrCreateChild(this.context, m, this.flexSchema.allowedTypes, {
|
|
221
224
|
parent: this,
|
|
222
225
|
index,
|
|
223
226
|
}))
|
|
@@ -230,7 +233,7 @@ class EagerMapTreeField {
|
|
|
230
233
|
}
|
|
231
234
|
const m = this.mapTrees[i];
|
|
232
235
|
if (m !== undefined) {
|
|
233
|
-
return getOrCreateChild(m, this.
|
|
236
|
+
return getOrCreateChild(this.context, m, this.flexSchema.allowedTypes, {
|
|
234
237
|
parent: this,
|
|
235
238
|
index: i,
|
|
236
239
|
});
|
|
@@ -254,6 +257,9 @@ class EagerMapTreeField {
|
|
|
254
257
|
this.parent.mapTree.fields.delete(this.key);
|
|
255
258
|
}
|
|
256
259
|
}
|
|
260
|
+
getFieldPath() {
|
|
261
|
+
throw unsupportedUsageError("Editing an array");
|
|
262
|
+
}
|
|
257
263
|
}
|
|
258
264
|
_b = flexTreeMarker;
|
|
259
265
|
class EagerMapTreeOptionalField extends EagerMapTreeField {
|
|
@@ -284,7 +290,7 @@ class EagerMapTreeOptionalField extends EagerMapTreeField {
|
|
|
284
290
|
get content() {
|
|
285
291
|
const value = this.mapTrees[0];
|
|
286
292
|
if (value !== undefined) {
|
|
287
|
-
return
|
|
293
|
+
return unboxed(this.flexSchema, value, {
|
|
288
294
|
parent: this,
|
|
289
295
|
index: 0,
|
|
290
296
|
});
|
|
@@ -337,22 +343,16 @@ class EagerMapTreeSequenceField extends EagerMapTreeField {
|
|
|
337
343
|
if (i === undefined) {
|
|
338
344
|
return undefined;
|
|
339
345
|
}
|
|
340
|
-
return
|
|
346
|
+
return unboxed(this.flexSchema, this.mapTrees[i] ?? oob(), { parent: this, index: i });
|
|
341
347
|
}
|
|
342
348
|
map(callbackfn) {
|
|
343
349
|
return Array.from(this, callbackfn);
|
|
344
350
|
}
|
|
345
|
-
mapBoxed(callbackfn) {
|
|
346
|
-
return Array.from(this.boxedIterator(), callbackfn);
|
|
347
|
-
}
|
|
348
351
|
*[Symbol.iterator]() {
|
|
349
352
|
for (const [i, mapTree] of this.mapTrees.entries()) {
|
|
350
|
-
yield
|
|
353
|
+
yield unboxed(this.flexSchema, mapTree, { parent: this, index: i });
|
|
351
354
|
}
|
|
352
355
|
}
|
|
353
|
-
getFieldPath() {
|
|
354
|
-
throw unsupportedUsageError("Editing an array");
|
|
355
|
-
}
|
|
356
356
|
}
|
|
357
357
|
// #endregion Fields
|
|
358
358
|
// #region Caching and unboxing utilities
|
|
@@ -375,36 +375,26 @@ export function tryGetMapTreeNode(mapTree) {
|
|
|
375
375
|
* @param mapTree - the {@link MapTree} containing the data for this node.
|
|
376
376
|
* @remarks It must conform to the `nodeSchema`.
|
|
377
377
|
*/
|
|
378
|
-
export function getOrCreateMapTreeNode(nodeSchema, mapTree) {
|
|
379
|
-
return nodeCache.get(mapTree) ?? createNode(nodeSchema, mapTree, undefined);
|
|
378
|
+
export function getOrCreateMapTreeNode(context, nodeSchema, mapTree) {
|
|
379
|
+
return nodeCache.get(mapTree) ?? createNode(context, nodeSchema, mapTree, undefined);
|
|
380
380
|
}
|
|
381
381
|
/** Helper for creating a `MapTreeNode` given the parent field (e.g. when "walking down") */
|
|
382
|
-
function getOrCreateChild(mapTree,
|
|
382
|
+
function getOrCreateChild(context, mapTree, allowedTypes, parent) {
|
|
383
383
|
const cached = nodeCache.get(mapTree);
|
|
384
384
|
if (cached !== undefined) {
|
|
385
385
|
return cached;
|
|
386
386
|
}
|
|
387
|
-
|
|
387
|
+
assert(isReadonlyArray(allowedTypes), 0xa25 /* invalid types */);
|
|
388
388
|
const nodeSchema = allowedTypes
|
|
389
389
|
.map((t) => (isLazy(t) ? t() : t))
|
|
390
390
|
.find((t) => {
|
|
391
|
-
assert(t !== "Any", 0x993 /* 'Any' type is not supported */);
|
|
392
391
|
return t.name === mapTree.type;
|
|
393
392
|
}) ?? fail("Unsupported node schema");
|
|
394
|
-
return createNode(nodeSchema, mapTree, parent);
|
|
393
|
+
return createNode(context, nodeSchema, mapTree, parent);
|
|
395
394
|
}
|
|
396
395
|
/** Always constructs a new node, therefore may not be called twice for the same `MapTree`. */
|
|
397
|
-
function createNode(nodeSchema, mapTree, parentField) {
|
|
398
|
-
|
|
399
|
-
return new EagerMapTreeLeafNode(nodeSchema, mapTree, parentField);
|
|
400
|
-
}
|
|
401
|
-
if (schemaIsMap(nodeSchema)) {
|
|
402
|
-
return new EagerMapTreeMapNode(nodeSchema, mapTree, parentField);
|
|
403
|
-
}
|
|
404
|
-
if (schemaIsObjectNode(nodeSchema)) {
|
|
405
|
-
return new EagerMapTreeNode(nodeSchema, mapTree, parentField);
|
|
406
|
-
}
|
|
407
|
-
assert(false, 0x994 /* Unrecognized node kind */);
|
|
396
|
+
function createNode(context, nodeSchema, mapTree, parentField) {
|
|
397
|
+
return new EagerMapTreeNode(context, nodeSchema, mapTree, parentField);
|
|
408
398
|
}
|
|
409
399
|
/** Creates a field with the given attributes, or returns a cached field if there is one */
|
|
410
400
|
function getOrCreateField(parent, key, schema) {
|
|
@@ -414,46 +404,23 @@ function getOrCreateField(parent, key, schema) {
|
|
|
414
404
|
}
|
|
415
405
|
if (schema.kind.identifier === FieldKinds.required.identifier ||
|
|
416
406
|
schema.kind.identifier === FieldKinds.identifier.identifier) {
|
|
417
|
-
return new EagerMapTreeRequiredField(schema, key, parent);
|
|
407
|
+
return new EagerMapTreeRequiredField(parent.context, schema, key, parent);
|
|
418
408
|
}
|
|
419
409
|
if (schema.kind.identifier === FieldKinds.optional.identifier) {
|
|
420
|
-
return new EagerMapTreeOptionalField(schema, key, parent);
|
|
410
|
+
return new EagerMapTreeOptionalField(parent.context, schema, key, parent);
|
|
421
411
|
}
|
|
422
412
|
if (schema.kind.identifier === FieldKinds.sequence.identifier) {
|
|
423
|
-
return new EagerMapTreeSequenceField(schema, key, parent);
|
|
413
|
+
return new EagerMapTreeSequenceField(parent.context, schema, key, parent);
|
|
424
414
|
}
|
|
425
|
-
return new EagerMapTreeField(schema, key, parent);
|
|
415
|
+
return new EagerMapTreeField(parent.context, schema, key, parent);
|
|
426
416
|
}
|
|
427
|
-
/** Unboxes
|
|
428
|
-
function
|
|
429
|
-
const
|
|
430
|
-
if (
|
|
431
|
-
|
|
432
|
-
return mapTree.value;
|
|
433
|
-
}
|
|
434
|
-
return getOrCreateChild(mapTree, type, parent);
|
|
435
|
-
}
|
|
436
|
-
return getOrCreateChild(mapTree, schema.allowedTypes, parent);
|
|
437
|
-
}
|
|
438
|
-
/** Unboxes non-polymorphic required and optional fields holding leaf nodes to their values, if applicable */
|
|
439
|
-
function unboxedField(field, key, mapTree, parentNode) {
|
|
440
|
-
const fieldSchema = field.schema;
|
|
441
|
-
const mapTrees = mapTree.fields.get(key) ?? fail("Key does not exist in unhydrated map tree");
|
|
442
|
-
if (fieldSchema.kind === FieldKinds.required) {
|
|
443
|
-
return unboxedUnion(fieldSchema, mapTrees[0] ?? oob(), {
|
|
444
|
-
parent: field,
|
|
445
|
-
index: 0,
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
if (fieldSchema.kind === FieldKinds.optional) {
|
|
449
|
-
return (mapTrees.length > 0
|
|
450
|
-
? unboxedUnion(fieldSchema, mapTrees[0] ?? oob(), {
|
|
451
|
-
parent: field,
|
|
452
|
-
index: 0,
|
|
453
|
-
})
|
|
454
|
-
: undefined);
|
|
417
|
+
/** Unboxes leaf nodes to their values */
|
|
418
|
+
function unboxed(schema, mapTree, parent) {
|
|
419
|
+
const value = mapTree.value;
|
|
420
|
+
if (value !== undefined) {
|
|
421
|
+
return value;
|
|
455
422
|
}
|
|
456
|
-
return
|
|
423
|
+
return getOrCreateChild(parent.parent.context, mapTree, schema.allowedTypes, parent);
|
|
457
424
|
}
|
|
458
425
|
// #endregion Caching and unboxing utilities
|
|
459
426
|
export function unsupportedUsageError(message) {
|