@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
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { assert, oob } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
8
|
+
|
|
7
9
|
import {
|
|
8
10
|
type AnchorNode,
|
|
9
11
|
EmptyKey,
|
|
@@ -11,43 +13,40 @@ import {
|
|
|
11
13
|
type FieldKey,
|
|
12
14
|
type FieldUpPath,
|
|
13
15
|
type MapTree,
|
|
16
|
+
type TreeFieldStoredSchema,
|
|
14
17
|
type TreeNodeSchemaIdentifier,
|
|
15
|
-
type
|
|
18
|
+
type TreeStoredSchema,
|
|
16
19
|
type Value,
|
|
17
20
|
} from "../../core/index.js";
|
|
18
|
-
import { brand, fail, getOrCreate, mapIterable } from "../../util/index.js";
|
|
21
|
+
import { brand, fail, getOrCreate, isReadonlyArray, mapIterable } from "../../util/index.js";
|
|
19
22
|
import {
|
|
23
|
+
type FlexTreeContext,
|
|
20
24
|
FlexTreeEntityKind,
|
|
21
25
|
type FlexTreeField,
|
|
22
|
-
type FlexTreeLeafNode,
|
|
23
|
-
type FlexTreeMapNode,
|
|
24
26
|
type FlexTreeNode,
|
|
25
27
|
type FlexTreeOptionalField,
|
|
26
28
|
type FlexTreeRequiredField,
|
|
27
29
|
type FlexTreeSequenceField,
|
|
28
30
|
type FlexTreeTypedField,
|
|
29
|
-
type
|
|
30
|
-
type FlexTreeTypedNodeUnion,
|
|
31
|
-
type FlexTreeUnboxField,
|
|
32
|
-
type FlexTreeUnboxNodeUnion,
|
|
31
|
+
type FlexTreeUnknownUnboxed,
|
|
33
32
|
flexTreeMarker,
|
|
34
33
|
indexForAt,
|
|
34
|
+
type FlexTreeHydratedContext,
|
|
35
35
|
} from "../flex-tree/index.js";
|
|
36
36
|
import {
|
|
37
37
|
type FlexAllowedTypes,
|
|
38
38
|
FlexFieldSchema,
|
|
39
|
-
type FlexMapNodeSchema,
|
|
40
39
|
type FlexTreeNodeSchema,
|
|
41
|
-
type
|
|
40
|
+
type FlexTreeSchema,
|
|
41
|
+
intoStoredSchemaCollection,
|
|
42
42
|
isLazy,
|
|
43
|
-
schemaIsLeaf,
|
|
44
|
-
schemaIsMap,
|
|
45
|
-
schemaIsObjectNode,
|
|
46
43
|
} from "../typed-schema/index.js";
|
|
47
|
-
import { type FlexImplicitAllowedTypes, normalizeAllowedTypes } from "../schemaBuilderBase.js";
|
|
48
44
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
49
|
-
import {
|
|
50
|
-
|
|
45
|
+
import {
|
|
46
|
+
defaultSchemaPolicy,
|
|
47
|
+
FieldKinds,
|
|
48
|
+
type SequenceFieldEditBuilder,
|
|
49
|
+
} from "../default-schema/index.js";
|
|
51
50
|
|
|
52
51
|
// #region Nodes
|
|
53
52
|
|
|
@@ -70,9 +69,9 @@ export function isMapTreeNode(flexNode: FlexTreeNode): flexNode is MapTreeNode {
|
|
|
70
69
|
/**
|
|
71
70
|
* Checks if the given {@link FlexTreeField} is a {@link MapTreeSequenceField}.
|
|
72
71
|
*/
|
|
73
|
-
export function isMapTreeSequenceField
|
|
74
|
-
field: FlexTreeSequenceField
|
|
75
|
-
): field is MapTreeSequenceField
|
|
72
|
+
export function isMapTreeSequenceField(
|
|
73
|
+
field: FlexTreeSequenceField | FlexTreeField,
|
|
74
|
+
): field is MapTreeSequenceField {
|
|
76
75
|
return field instanceof EagerMapTreeSequenceField;
|
|
77
76
|
}
|
|
78
77
|
|
|
@@ -80,8 +79,7 @@ export function isMapTreeSequenceField<T extends FlexAllowedTypes>(
|
|
|
80
79
|
* An unhydrated {@link FlexTreeSequenceField}, which has additional editing capabilities.
|
|
81
80
|
* @remarks When doing a removal edit, a {@link MapTreeSequenceField}'s `editor` returns ownership of the removed {@link ExclusiveMapTree}s to the caller.
|
|
82
81
|
*/
|
|
83
|
-
export interface MapTreeSequenceField
|
|
84
|
-
extends FlexTreeSequenceField<T> {
|
|
82
|
+
export interface MapTreeSequenceField extends FlexTreeSequenceField {
|
|
85
83
|
readonly editor: MapTreeSequenceFieldEditBuilder;
|
|
86
84
|
}
|
|
87
85
|
|
|
@@ -109,7 +107,11 @@ interface LocationInField {
|
|
|
109
107
|
* MapTreeNodes are unconditionally cached -
|
|
110
108
|
* when retrieved via {@link getOrCreateNode}, the same {@link MapTree} object will always produce the same `MapTreeNode` object.
|
|
111
109
|
*/
|
|
112
|
-
export class EagerMapTreeNode
|
|
110
|
+
export class EagerMapTreeNode implements MapTreeNode {
|
|
111
|
+
public get schema(): TreeNodeSchemaIdentifier {
|
|
112
|
+
return this.flexSchema.name;
|
|
113
|
+
}
|
|
114
|
+
|
|
113
115
|
public readonly [flexTreeMarker] = FlexTreeEntityKind.Node as const;
|
|
114
116
|
|
|
115
117
|
/**
|
|
@@ -121,7 +123,8 @@ export class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements Map
|
|
|
121
123
|
* Instead, it should always be acquired via {@link getOrCreateNode}.
|
|
122
124
|
*/
|
|
123
125
|
public constructor(
|
|
124
|
-
public readonly
|
|
126
|
+
public readonly context: UnhydratedContext,
|
|
127
|
+
public readonly flexSchema: FlexTreeNodeSchema,
|
|
125
128
|
/** The underlying {@link MapTree} that this `MapTreeNode` reads its data from */
|
|
126
129
|
public readonly mapTree: ExclusiveMapTree,
|
|
127
130
|
private location = unparentedLocation,
|
|
@@ -140,7 +143,7 @@ export class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements Map
|
|
|
140
143
|
}
|
|
141
144
|
|
|
142
145
|
public get type(): TreeNodeSchemaIdentifier {
|
|
143
|
-
return this.
|
|
146
|
+
return this.flexSchema.name;
|
|
144
147
|
}
|
|
145
148
|
|
|
146
149
|
/**
|
|
@@ -177,37 +180,38 @@ export class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements Map
|
|
|
177
180
|
return this.location;
|
|
178
181
|
}
|
|
179
182
|
|
|
180
|
-
public is
|
|
181
|
-
schema
|
|
182
|
-
): this is FlexTreeTypedNode<TSchemaInner> {
|
|
183
|
-
return (schema as unknown) === this.schema;
|
|
183
|
+
public is(schema: FlexTreeNodeSchema): boolean {
|
|
184
|
+
return (schema as unknown) === this.flexSchema;
|
|
184
185
|
}
|
|
185
186
|
|
|
186
|
-
public tryGetField(key: FieldKey): EagerMapTreeField
|
|
187
|
+
public tryGetField(key: FieldKey): EagerMapTreeField | undefined {
|
|
187
188
|
const field = this.mapTree.fields.get(key);
|
|
188
189
|
// Only return the field if it is not empty, in order to fulfill the contract of `tryGetField`.
|
|
189
190
|
if (field !== undefined && field.length > 0) {
|
|
190
|
-
return getOrCreateField(this, key, this.
|
|
191
|
+
return getOrCreateField(this, key, this.flexSchema.getFieldSchema(key));
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
public getBoxed(key: string): FlexTreeField {
|
|
195
196
|
const fieldKey: FieldKey = brand(key);
|
|
196
|
-
return getOrCreateField(this, fieldKey, this.
|
|
197
|
+
return getOrCreateField(this, fieldKey, this.flexSchema.getFieldSchema(fieldKey));
|
|
197
198
|
}
|
|
198
199
|
|
|
199
200
|
public boxedIterator(): IterableIterator<FlexTreeField> {
|
|
200
201
|
return mapIterable(this.mapTree.fields.entries(), ([key]) =>
|
|
201
|
-
getOrCreateField(this, key, this.
|
|
202
|
+
getOrCreateField(this, key, this.flexSchema.getFieldSchema(key)),
|
|
202
203
|
);
|
|
203
204
|
}
|
|
204
205
|
|
|
206
|
+
public keys(): IterableIterator<FieldKey> {
|
|
207
|
+
// TODO: how this should handle missing defaults (and empty keys if they end up being allowed) needs to be determined.
|
|
208
|
+
return this.mapTree.fields.keys();
|
|
209
|
+
}
|
|
210
|
+
|
|
205
211
|
public get value(): Value {
|
|
206
212
|
return this.mapTree.value;
|
|
207
213
|
}
|
|
208
214
|
|
|
209
|
-
public context = undefined;
|
|
210
|
-
|
|
211
215
|
public get anchorNode(): AnchorNode {
|
|
212
216
|
// This API is relevant to `LazyTreeNode`s, but not `MapTreeNode`s.
|
|
213
217
|
// TODO: Refactor the FlexTreeNode interface so that stubbing this out isn't necessary.
|
|
@@ -216,11 +220,12 @@ export class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements Map
|
|
|
216
220
|
|
|
217
221
|
private walkTree(): void {
|
|
218
222
|
for (const [key, mapTrees] of this.mapTree.fields) {
|
|
219
|
-
const field = getOrCreateField(this, key, this.
|
|
223
|
+
const field = getOrCreateField(this, key, this.flexSchema.getFieldSchema(key));
|
|
220
224
|
for (let index = 0; index < field.length; index++) {
|
|
221
225
|
const child = getOrCreateChild(
|
|
226
|
+
this.context,
|
|
222
227
|
mapTrees[index] ?? oob(),
|
|
223
|
-
this.
|
|
228
|
+
this.flexSchema.getFieldSchema(key).allowedTypes,
|
|
224
229
|
{ parent: field, index },
|
|
225
230
|
);
|
|
226
231
|
// These next asserts detect the case where `getOrCreateChild` gets a cache hit of a different node than the one we're trying to create
|
|
@@ -236,84 +241,31 @@ export class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements Map
|
|
|
236
241
|
}
|
|
237
242
|
}
|
|
238
243
|
|
|
244
|
+
// #endregion Nodes
|
|
245
|
+
|
|
239
246
|
/**
|
|
240
|
-
*
|
|
247
|
+
* Implementation of `FlexTreeContext`.
|
|
248
|
+
*
|
|
249
|
+
* @remarks An editor is required to edit the FlexTree.
|
|
241
250
|
*/
|
|
242
|
-
export class
|
|
243
|
-
|
|
244
|
-
implements FlexTreeMapNode<TSchema>
|
|
245
|
-
{
|
|
246
|
-
public keys(): IterableIterator<FieldKey> {
|
|
247
|
-
return this.mapTree.fields.keys();
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
public values(): IterableIterator<FlexTreeUnboxField<TSchema["info"], "notEmpty">> {
|
|
251
|
-
return mapIterable(
|
|
252
|
-
this.mapTree.fields.keys(),
|
|
253
|
-
(key) =>
|
|
254
|
-
unboxedField(
|
|
255
|
-
this.tryGetField(key) ?? fail("Unexpected empty map field"),
|
|
256
|
-
key,
|
|
257
|
-
this.mapTree,
|
|
258
|
-
this,
|
|
259
|
-
) as FlexTreeUnboxField<TSchema["info"], "notEmpty">,
|
|
260
|
-
);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
public entries(): IterableIterator<
|
|
264
|
-
[FieldKey, FlexTreeUnboxField<TSchema["info"], "notEmpty">]
|
|
265
|
-
> {
|
|
266
|
-
return mapIterable(this.mapTree.fields.keys(), (key) => [
|
|
267
|
-
key,
|
|
268
|
-
unboxedField(
|
|
269
|
-
this.tryGetField(key) ?? fail("Unexpected empty map field"),
|
|
270
|
-
key,
|
|
271
|
-
this.mapTree,
|
|
272
|
-
this,
|
|
273
|
-
) as FlexTreeUnboxField<TSchema["info"], "notEmpty">,
|
|
274
|
-
]);
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
public forEach(
|
|
278
|
-
callbackFn: (
|
|
279
|
-
value: FlexTreeUnboxField<TSchema["info"], "notEmpty">,
|
|
280
|
-
key: FieldKey,
|
|
281
|
-
map: FlexTreeMapNode<TSchema>,
|
|
282
|
-
) => void,
|
|
283
|
-
thisArg?: unknown,
|
|
284
|
-
): void {
|
|
285
|
-
const fn = thisArg !== undefined ? callbackFn.bind(thisArg) : callbackFn;
|
|
286
|
-
for (const [key, value] of this.entries()) {
|
|
287
|
-
fn(value, key, this);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
251
|
+
export class UnhydratedContext implements FlexTreeContext {
|
|
252
|
+
public readonly schema: TreeStoredSchema;
|
|
290
253
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
254
|
+
/**
|
|
255
|
+
* @param flexSchema - Schema to use when working with the tree.
|
|
256
|
+
*/
|
|
257
|
+
public constructor(public readonly flexSchema: FlexTreeSchema) {
|
|
258
|
+
this.schema = {
|
|
259
|
+
rootFieldSchema: flexSchema.rootFieldSchema.stored,
|
|
260
|
+
...intoStoredSchemaCollection(flexSchema),
|
|
261
|
+
};
|
|
299
262
|
}
|
|
300
263
|
|
|
301
|
-
public
|
|
302
|
-
return
|
|
264
|
+
public isHydrated(): this is FlexTreeHydratedContext {
|
|
265
|
+
return false;
|
|
303
266
|
}
|
|
304
267
|
}
|
|
305
268
|
|
|
306
|
-
class EagerMapTreeLeafNode<TSchema extends LeafNodeSchema>
|
|
307
|
-
extends EagerMapTreeNode<TSchema>
|
|
308
|
-
implements FlexTreeLeafNode<TSchema>
|
|
309
|
-
{
|
|
310
|
-
public override get value(): TreeValue<TSchema["info"]> {
|
|
311
|
-
return super.value as TreeValue<TSchema["info"]>;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// #endregion Nodes
|
|
316
|
-
|
|
317
269
|
// #region Fields
|
|
318
270
|
|
|
319
271
|
/**
|
|
@@ -325,6 +277,13 @@ interface MapTreeField extends FlexTreeField {
|
|
|
325
277
|
readonly mapTrees: readonly MapTree[];
|
|
326
278
|
}
|
|
327
279
|
|
|
280
|
+
const emptyContext = new UnhydratedContext({
|
|
281
|
+
adapters: {},
|
|
282
|
+
nodeSchema: new Map(),
|
|
283
|
+
policy: defaultSchemaPolicy,
|
|
284
|
+
rootFieldSchema: FlexFieldSchema.empty,
|
|
285
|
+
});
|
|
286
|
+
|
|
328
287
|
/**
|
|
329
288
|
* A special singleton that is the implicit {@link LocationInField} of all un-parented {@link EagerMapTreeNode}s.
|
|
330
289
|
* @remarks This exists because {@link EagerMapTreeNode.parentField} must return a field.
|
|
@@ -339,8 +298,8 @@ const unparentedLocation: LocationInField = {
|
|
|
339
298
|
length: 0,
|
|
340
299
|
key: EmptyKey,
|
|
341
300
|
parent: undefined,
|
|
342
|
-
is<
|
|
343
|
-
return schema ===
|
|
301
|
+
is<TKind2 extends FlexFieldKind>(kind: TKind2) {
|
|
302
|
+
return this.schema.kind === kind.identifier;
|
|
344
303
|
},
|
|
345
304
|
boxedIterator(): IterableIterator<FlexTreeNode> {
|
|
346
305
|
return [].values();
|
|
@@ -348,20 +307,28 @@ const unparentedLocation: LocationInField = {
|
|
|
348
307
|
boxedAt(index: number): FlexTreeNode | undefined {
|
|
349
308
|
return undefined;
|
|
350
309
|
},
|
|
351
|
-
schema: FlexFieldSchema.empty,
|
|
352
|
-
context:
|
|
310
|
+
schema: FlexFieldSchema.empty.stored,
|
|
311
|
+
context: emptyContext,
|
|
353
312
|
mapTrees: [],
|
|
313
|
+
getFieldPath() {
|
|
314
|
+
fail("unsupported");
|
|
315
|
+
},
|
|
354
316
|
},
|
|
355
317
|
index: -1,
|
|
356
318
|
};
|
|
357
319
|
|
|
358
|
-
class EagerMapTreeField
|
|
320
|
+
class EagerMapTreeField implements MapTreeField {
|
|
359
321
|
public [flexTreeMarker] = FlexTreeEntityKind.Field as const;
|
|
360
322
|
|
|
323
|
+
public get schema(): TreeFieldStoredSchema {
|
|
324
|
+
return this.flexSchema.stored;
|
|
325
|
+
}
|
|
326
|
+
|
|
361
327
|
public constructor(
|
|
362
|
-
public readonly
|
|
328
|
+
public readonly context: UnhydratedContext,
|
|
329
|
+
public readonly flexSchema: FlexFieldSchema,
|
|
363
330
|
public readonly key: FieldKey,
|
|
364
|
-
public readonly parent: EagerMapTreeNode
|
|
331
|
+
public readonly parent: EagerMapTreeNode,
|
|
365
332
|
) {
|
|
366
333
|
const fieldKeyCache = getFieldKeyCache(parent);
|
|
367
334
|
assert(!fieldKeyCache.has(key), 0x990 /* A field already exists for the given MapTrees */);
|
|
@@ -388,40 +355,36 @@ class EagerMapTreeField<T extends FlexAllowedTypes> implements MapTreeField {
|
|
|
388
355
|
return this.mapTrees.length;
|
|
389
356
|
}
|
|
390
357
|
|
|
391
|
-
public is<
|
|
392
|
-
schema
|
|
393
|
-
): this is FlexTreeTypedField<TSchemaInner> {
|
|
394
|
-
return this.schema.equals(schema);
|
|
358
|
+
public is<TKind2 extends FlexFieldKind>(kind: TKind2): this is FlexTreeTypedField<TKind2> {
|
|
359
|
+
return this.schema.kind === kind.identifier;
|
|
395
360
|
}
|
|
396
361
|
|
|
397
|
-
public boxedIterator(): IterableIterator<
|
|
362
|
+
public boxedIterator(): IterableIterator<FlexTreeNode> {
|
|
398
363
|
return this.mapTrees
|
|
399
364
|
.map(
|
|
400
365
|
(m, index) =>
|
|
401
|
-
getOrCreateChild(m, this.
|
|
366
|
+
getOrCreateChild(this.context, m, this.flexSchema.allowedTypes, {
|
|
402
367
|
parent: this,
|
|
403
368
|
index,
|
|
404
|
-
}) as FlexTreeNode
|
|
369
|
+
}) as FlexTreeNode,
|
|
405
370
|
)
|
|
406
371
|
.values();
|
|
407
372
|
}
|
|
408
373
|
|
|
409
|
-
public boxedAt(index: number):
|
|
374
|
+
public boxedAt(index: number): FlexTreeNode | undefined {
|
|
410
375
|
const i = indexForAt(index, this.length);
|
|
411
376
|
if (i === undefined) {
|
|
412
377
|
return undefined;
|
|
413
378
|
}
|
|
414
379
|
const m = this.mapTrees[i];
|
|
415
380
|
if (m !== undefined) {
|
|
416
|
-
return getOrCreateChild(m, this.
|
|
381
|
+
return getOrCreateChild(this.context, m, this.flexSchema.allowedTypes, {
|
|
417
382
|
parent: this,
|
|
418
383
|
index: i,
|
|
419
|
-
}) as FlexTreeNode
|
|
384
|
+
}) as FlexTreeNode;
|
|
420
385
|
}
|
|
421
386
|
}
|
|
422
387
|
|
|
423
|
-
public context: undefined;
|
|
424
|
-
|
|
425
388
|
/**
|
|
426
389
|
* Mutate this field.
|
|
427
390
|
* @param edit - A function which receives the current `MapTree`s that comprise the contents of the field so that it may be mutated.
|
|
@@ -439,12 +402,13 @@ class EagerMapTreeField<T extends FlexAllowedTypes> implements MapTreeField {
|
|
|
439
402
|
this.parent.mapTree.fields.delete(this.key);
|
|
440
403
|
}
|
|
441
404
|
}
|
|
405
|
+
|
|
406
|
+
public getFieldPath(): FieldUpPath {
|
|
407
|
+
throw unsupportedUsageError("Editing an array");
|
|
408
|
+
}
|
|
442
409
|
}
|
|
443
410
|
|
|
444
|
-
class EagerMapTreeOptionalField
|
|
445
|
-
extends EagerMapTreeField<T>
|
|
446
|
-
implements FlexTreeOptionalField<T>
|
|
447
|
-
{
|
|
411
|
+
class EagerMapTreeOptionalField extends EagerMapTreeField implements FlexTreeOptionalField {
|
|
448
412
|
public readonly editor = {
|
|
449
413
|
set: (newContent: ExclusiveMapTree | undefined): void => {
|
|
450
414
|
// If the new content is a MapTreeNode, it needs to have its parent pointer updated
|
|
@@ -467,10 +431,10 @@ class EagerMapTreeOptionalField<T extends FlexAllowedTypes>
|
|
|
467
431
|
},
|
|
468
432
|
};
|
|
469
433
|
|
|
470
|
-
public get content():
|
|
434
|
+
public get content(): FlexTreeUnknownUnboxed | undefined {
|
|
471
435
|
const value = this.mapTrees[0];
|
|
472
436
|
if (value !== undefined) {
|
|
473
|
-
return
|
|
437
|
+
return unboxed(this.flexSchema, value, {
|
|
474
438
|
parent: this,
|
|
475
439
|
index: 0,
|
|
476
440
|
});
|
|
@@ -480,19 +444,16 @@ class EagerMapTreeOptionalField<T extends FlexAllowedTypes>
|
|
|
480
444
|
}
|
|
481
445
|
}
|
|
482
446
|
|
|
483
|
-
class EagerMapTreeRequiredField
|
|
484
|
-
extends EagerMapTreeOptionalField
|
|
485
|
-
implements FlexTreeRequiredField
|
|
447
|
+
class EagerMapTreeRequiredField
|
|
448
|
+
extends EagerMapTreeOptionalField
|
|
449
|
+
implements FlexTreeRequiredField
|
|
486
450
|
{
|
|
487
|
-
public override get content():
|
|
451
|
+
public override get content(): FlexTreeUnknownUnboxed {
|
|
488
452
|
return super.content ?? fail("Expected EagerMapTree required field to have a value");
|
|
489
453
|
}
|
|
490
454
|
}
|
|
491
455
|
|
|
492
|
-
class EagerMapTreeSequenceField
|
|
493
|
-
extends EagerMapTreeField<T>
|
|
494
|
-
implements FlexTreeSequenceField<T>
|
|
495
|
-
{
|
|
456
|
+
class EagerMapTreeSequenceField extends EagerMapTreeField implements FlexTreeSequenceField {
|
|
496
457
|
public readonly editor: MapTreeSequenceFieldEditBuilder = {
|
|
497
458
|
insert: (index, newContent): void => {
|
|
498
459
|
for (let i = 0; i < newContent.length; i++) {
|
|
@@ -524,44 +485,32 @@ class EagerMapTreeSequenceField<T extends FlexAllowedTypes>
|
|
|
524
485
|
},
|
|
525
486
|
};
|
|
526
487
|
|
|
527
|
-
public at(index: number):
|
|
488
|
+
public at(index: number): FlexTreeUnknownUnboxed | undefined {
|
|
528
489
|
const i = indexForAt(index, this.length);
|
|
529
490
|
if (i === undefined) {
|
|
530
491
|
return undefined;
|
|
531
492
|
}
|
|
532
|
-
return
|
|
493
|
+
return unboxed(this.flexSchema, this.mapTrees[i] ?? oob(), { parent: this, index: i });
|
|
533
494
|
}
|
|
534
|
-
public map<U>(callbackfn: (value:
|
|
495
|
+
public map<U>(callbackfn: (value: FlexTreeUnknownUnboxed, index: number) => U): U[] {
|
|
535
496
|
return Array.from(this, callbackfn);
|
|
536
497
|
}
|
|
537
|
-
public mapBoxed<U>(callbackfn: (value: FlexTreeTypedNodeUnion<T>, index: number) => U): U[] {
|
|
538
|
-
return Array.from(this.boxedIterator(), callbackfn);
|
|
539
|
-
}
|
|
540
498
|
|
|
541
|
-
public *[Symbol.iterator](): IterableIterator<
|
|
499
|
+
public *[Symbol.iterator](): IterableIterator<FlexTreeUnknownUnboxed> {
|
|
542
500
|
for (const [i, mapTree] of this.mapTrees.entries()) {
|
|
543
|
-
yield
|
|
501
|
+
yield unboxed(this.flexSchema, mapTree, { parent: this, index: i });
|
|
544
502
|
}
|
|
545
503
|
}
|
|
546
|
-
|
|
547
|
-
public getFieldPath(): FieldUpPath {
|
|
548
|
-
throw unsupportedUsageError("Editing an array");
|
|
549
|
-
}
|
|
550
504
|
}
|
|
551
505
|
|
|
552
506
|
// #endregion Fields
|
|
553
507
|
|
|
554
508
|
// #region Caching and unboxing utilities
|
|
555
509
|
|
|
556
|
-
const nodeCache = new WeakMap<MapTree, EagerMapTreeNode
|
|
510
|
+
const nodeCache = new WeakMap<MapTree, EagerMapTreeNode>();
|
|
557
511
|
/** Node Parent -\> Field Key -\> Field */
|
|
558
|
-
const fieldCache = new WeakMap<
|
|
559
|
-
|
|
560
|
-
Map<FieldKey, EagerMapTreeField<FlexAllowedTypes>>
|
|
561
|
-
>();
|
|
562
|
-
function getFieldKeyCache(
|
|
563
|
-
parent: MapTreeNode,
|
|
564
|
-
): WeakMap<FieldKey, EagerMapTreeField<FlexAllowedTypes>> {
|
|
512
|
+
const fieldCache = new WeakMap<MapTreeNode, Map<FieldKey, EagerMapTreeField>>();
|
|
513
|
+
function getFieldKeyCache(parent: MapTreeNode): WeakMap<FieldKey, EagerMapTreeField> {
|
|
565
514
|
return getOrCreate(fieldCache, parent, () => new Map());
|
|
566
515
|
}
|
|
567
516
|
|
|
@@ -580,59 +529,52 @@ export function tryGetMapTreeNode(mapTree: MapTree): MapTreeNode | undefined {
|
|
|
580
529
|
* @remarks It must conform to the `nodeSchema`.
|
|
581
530
|
*/
|
|
582
531
|
export function getOrCreateMapTreeNode(
|
|
532
|
+
context: UnhydratedContext,
|
|
583
533
|
nodeSchema: FlexTreeNodeSchema,
|
|
584
534
|
mapTree: ExclusiveMapTree,
|
|
585
|
-
): EagerMapTreeNode
|
|
586
|
-
return nodeCache.get(mapTree) ?? createNode(nodeSchema, mapTree, undefined);
|
|
535
|
+
): EagerMapTreeNode {
|
|
536
|
+
return nodeCache.get(mapTree) ?? createNode(context, nodeSchema, mapTree, undefined);
|
|
587
537
|
}
|
|
588
538
|
|
|
589
539
|
/** Helper for creating a `MapTreeNode` given the parent field (e.g. when "walking down") */
|
|
590
540
|
function getOrCreateChild(
|
|
541
|
+
context: UnhydratedContext,
|
|
591
542
|
mapTree: ExclusiveMapTree,
|
|
592
|
-
|
|
543
|
+
allowedTypes: FlexAllowedTypes,
|
|
593
544
|
parent: LocationInField | undefined,
|
|
594
|
-
): EagerMapTreeNode
|
|
545
|
+
): EagerMapTreeNode {
|
|
595
546
|
const cached = nodeCache.get(mapTree);
|
|
596
547
|
if (cached !== undefined) {
|
|
597
548
|
return cached;
|
|
598
549
|
}
|
|
599
550
|
|
|
600
|
-
|
|
551
|
+
assert(isReadonlyArray(allowedTypes), 0xa25 /* invalid types */);
|
|
601
552
|
const nodeSchema =
|
|
602
553
|
allowedTypes
|
|
603
554
|
.map((t) => (isLazy(t) ? t() : t))
|
|
604
555
|
.find((t): t is FlexTreeNodeSchema => {
|
|
605
|
-
assert(t !== "Any", 0x993 /* 'Any' type is not supported */);
|
|
606
556
|
return t.name === mapTree.type;
|
|
607
557
|
}) ?? fail("Unsupported node schema");
|
|
608
558
|
|
|
609
|
-
return createNode(nodeSchema, mapTree, parent);
|
|
559
|
+
return createNode(context, nodeSchema, mapTree, parent);
|
|
610
560
|
}
|
|
611
561
|
|
|
612
562
|
/** Always constructs a new node, therefore may not be called twice for the same `MapTree`. */
|
|
613
|
-
function createNode
|
|
614
|
-
|
|
563
|
+
function createNode(
|
|
564
|
+
context: UnhydratedContext,
|
|
565
|
+
nodeSchema: FlexTreeNodeSchema,
|
|
615
566
|
mapTree: ExclusiveMapTree,
|
|
616
567
|
parentField: LocationInField | undefined,
|
|
617
|
-
): EagerMapTreeNode
|
|
618
|
-
|
|
619
|
-
return new EagerMapTreeLeafNode(nodeSchema, mapTree, parentField);
|
|
620
|
-
}
|
|
621
|
-
if (schemaIsMap(nodeSchema)) {
|
|
622
|
-
return new EagerMapTreeMapNode(nodeSchema, mapTree, parentField);
|
|
623
|
-
}
|
|
624
|
-
if (schemaIsObjectNode(nodeSchema)) {
|
|
625
|
-
return new EagerMapTreeNode(nodeSchema, mapTree, parentField);
|
|
626
|
-
}
|
|
627
|
-
assert(false, 0x994 /* Unrecognized node kind */);
|
|
568
|
+
): EagerMapTreeNode {
|
|
569
|
+
return new EagerMapTreeNode(context, nodeSchema, mapTree, parentField);
|
|
628
570
|
}
|
|
629
571
|
|
|
630
572
|
/** Creates a field with the given attributes, or returns a cached field if there is one */
|
|
631
573
|
function getOrCreateField(
|
|
632
|
-
parent: EagerMapTreeNode
|
|
574
|
+
parent: EagerMapTreeNode,
|
|
633
575
|
key: FieldKey,
|
|
634
576
|
schema: FlexFieldSchema,
|
|
635
|
-
): EagerMapTreeField
|
|
577
|
+
): EagerMapTreeField {
|
|
636
578
|
const cached = getFieldKeyCache(parent).get(key);
|
|
637
579
|
if (cached !== undefined) {
|
|
638
580
|
return cached;
|
|
@@ -642,70 +584,32 @@ function getOrCreateField(
|
|
|
642
584
|
schema.kind.identifier === FieldKinds.required.identifier ||
|
|
643
585
|
schema.kind.identifier === FieldKinds.identifier.identifier
|
|
644
586
|
) {
|
|
645
|
-
return new EagerMapTreeRequiredField(schema, key, parent);
|
|
587
|
+
return new EagerMapTreeRequiredField(parent.context, schema, key, parent);
|
|
646
588
|
}
|
|
647
589
|
|
|
648
590
|
if (schema.kind.identifier === FieldKinds.optional.identifier) {
|
|
649
|
-
return new EagerMapTreeOptionalField(schema, key, parent);
|
|
591
|
+
return new EagerMapTreeOptionalField(parent.context, schema, key, parent);
|
|
650
592
|
}
|
|
651
593
|
|
|
652
594
|
if (schema.kind.identifier === FieldKinds.sequence.identifier) {
|
|
653
|
-
return new EagerMapTreeSequenceField(schema, key, parent);
|
|
595
|
+
return new EagerMapTreeSequenceField(parent.context, schema, key, parent);
|
|
654
596
|
}
|
|
655
597
|
|
|
656
|
-
return new EagerMapTreeField(schema, key, parent);
|
|
598
|
+
return new EagerMapTreeField(parent.context, schema, key, parent);
|
|
657
599
|
}
|
|
658
600
|
|
|
659
|
-
/** Unboxes
|
|
660
|
-
function
|
|
661
|
-
schema: FlexFieldSchema
|
|
601
|
+
/** Unboxes leaf nodes to their values */
|
|
602
|
+
function unboxed(
|
|
603
|
+
schema: FlexFieldSchema,
|
|
662
604
|
mapTree: ExclusiveMapTree,
|
|
663
605
|
parent: LocationInField,
|
|
664
|
-
):
|
|
665
|
-
const
|
|
666
|
-
if (
|
|
667
|
-
|
|
668
|
-
return mapTree.value as FlexTreeUnboxNodeUnion<TTypes>;
|
|
669
|
-
}
|
|
670
|
-
return getOrCreateChild(mapTree, type, parent) as FlexTreeUnboxNodeUnion<TTypes>;
|
|
606
|
+
): FlexTreeUnknownUnboxed {
|
|
607
|
+
const value = mapTree.value;
|
|
608
|
+
if (value !== undefined) {
|
|
609
|
+
return value;
|
|
671
610
|
}
|
|
672
611
|
|
|
673
|
-
return getOrCreateChild(
|
|
674
|
-
mapTree,
|
|
675
|
-
schema.allowedTypes,
|
|
676
|
-
parent,
|
|
677
|
-
) as FlexTreeUnboxNodeUnion<TTypes>;
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
/** Unboxes non-polymorphic required and optional fields holding leaf nodes to their values, if applicable */
|
|
681
|
-
function unboxedField<TFieldSchema extends FlexFieldSchema>(
|
|
682
|
-
field: EagerMapTreeField<FlexAllowedTypes>,
|
|
683
|
-
key: FieldKey,
|
|
684
|
-
mapTree: ExclusiveMapTree,
|
|
685
|
-
parentNode: EagerMapTreeNode<FlexTreeNodeSchema>,
|
|
686
|
-
): FlexTreeUnboxField<TFieldSchema> {
|
|
687
|
-
const fieldSchema = field.schema;
|
|
688
|
-
const mapTrees =
|
|
689
|
-
mapTree.fields.get(key) ?? fail("Key does not exist in unhydrated map tree");
|
|
690
|
-
|
|
691
|
-
if (fieldSchema.kind === FieldKinds.required) {
|
|
692
|
-
return unboxedUnion(fieldSchema, mapTrees[0] ?? oob(), {
|
|
693
|
-
parent: field,
|
|
694
|
-
index: 0,
|
|
695
|
-
}) as FlexTreeUnboxField<TFieldSchema>;
|
|
696
|
-
}
|
|
697
|
-
if (fieldSchema.kind === FieldKinds.optional) {
|
|
698
|
-
return (
|
|
699
|
-
mapTrees.length > 0
|
|
700
|
-
? unboxedUnion(fieldSchema, mapTrees[0] ?? oob(), {
|
|
701
|
-
parent: field,
|
|
702
|
-
index: 0,
|
|
703
|
-
})
|
|
704
|
-
: undefined
|
|
705
|
-
) as FlexTreeUnboxField<TFieldSchema>;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
return getOrCreateField(parentNode, key, fieldSchema) as FlexTreeUnboxField<TFieldSchema>;
|
|
612
|
+
return getOrCreateChild(parent.parent.context, mapTree, schema.allowedTypes, parent);
|
|
709
613
|
}
|
|
710
614
|
|
|
711
615
|
// #endregion Caching and unboxing utilities
|