@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":"AAAA;;;GAGG;AAKH,OAAO,EACN,KAAK,UAAU,EAEf,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,KAAK,EACV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,KAAK,eAAe,EACpB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EAGjB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAEvB,cAAc,EAEd,KAAK,uBAAuB,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEN,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAGnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAGN,KAAK,wBAAwB,EAC7B,MAAM,4BAA4B,CAAC;AAIpC;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,YAAY;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,IAAI,WAAW,CAE7E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,qBAAqB,GAAG,aAAa,GAC1C,KAAK,IAAI,oBAAoB,CAE/B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,MAAM,EAAE,+BAA+B,CAAC;CACjD;AAED,UAAU,+BACT,SAAQ,wBAAwB,CAAC,gBAAgB,EAAE,CAAC;IACpD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;CACzD;AAED,wDAAwD;AACxD,UAAU,eAAe;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,WAAW;aAgBlC,OAAO,EAAE,iBAAiB;aAC1B,UAAU,EAAE,kBAAkB;IAC9C,iFAAiF;aACjE,OAAO,EAAE,gBAAgB;IACzC,OAAO,CAAC,QAAQ;IAnBjB,IAAW,MAAM,IAAI,wBAAwB,CAE5C;IAED,SAAgB,CAAC,cAAc,CAAC,0BAAoC;IAEpE;;;;;;;OAOG;gBAEc,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,kBAAkB;IAC9C,iFAAiF;IACjE,OAAO,EAAE,gBAAgB,EACjC,QAAQ,kBAAqB;IAetC,IAAW,IAAI,IAAI,wBAAwB,CAE1C;IAED;;;;;;OAMG;IACI,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAChC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBzD;;;OAGG;IACH,IAAW,WAAW,IAAI,eAAe,CAExC;IAEM,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO;IAIvC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS;IAQzD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAKpC,aAAa,IAAI,gBAAgB,CAAC,aAAa,CAAC;IAMhD,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC;IAKzC,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,IAAW,UAAU,IAAI,UAAU,CAIlC;IAED,OAAO,CAAC,QAAQ;CAqBhB;AAID;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,eAAe;aAMrB,UAAU,EAAE,cAAc;IAL7D,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IAEzC;;OAEG;gBACgC,UAAU,EAAE,cAAc;IAOtD,UAAU,IAAI,IAAI,IAAI,uBAAuB;CAGpD;AAID;;;;GAIG;AACH,UAAU,YAAa,SAAQ,aAAa;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACtC;AA0CD,cAAM,iBAAkB,YAAW,YAAY;aAQ7B,OAAO,EAAE,iBAAiB;aAC1B,UAAU,EAAE,eAAe;aAC3B,GAAG,EAAE,QAAQ;aACb,MAAM,EAAE,gBAAgB;IAVlC,CAAC,cAAc,CAAC,2BAAqC;IAE5D,IAAW,MAAM,IAAI,qBAAqB,CAEzC;gBAGgB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,gBAAgB;IAmBzC,IAAW,QAAQ,IAAI,SAAS,gBAAgB,EAAE,CAEjD;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,EAAE,CAAC,MAAM,SAAS,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC;IAIlF,aAAa,IAAI,gBAAgB,CAAC,YAAY,CAAC;IAY/C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAcvD;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,IAAI,GAAG,gBAAgB,EAAE,GAAG,IAAI;IAUhF,YAAY,IAAI,WAAW;CAGlC;AA4GD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,kBAAkB,EAC9B,OAAO,EAAE,gBAAgB,GACvB,gBAAgB,CAElB;AAgFD,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAM7D"}
|
|
@@ -5,15 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
var _a, _b;
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.unsupportedUsageError = exports.getOrCreateMapTreeNode = exports.tryGetMapTreeNode = exports.
|
|
8
|
+
exports.unsupportedUsageError = exports.getOrCreateMapTreeNode = exports.tryGetMapTreeNode = exports.UnhydratedContext = exports.EagerMapTreeNode = exports.isMapTreeSequenceField = exports.isMapTreeNode = void 0;
|
|
9
9
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
10
|
+
const internal_2 = require("@fluidframework/telemetry-utils/internal");
|
|
10
11
|
const index_js_1 = require("../../core/index.js");
|
|
11
12
|
const index_js_2 = require("../../util/index.js");
|
|
12
13
|
const index_js_3 = require("../flex-tree/index.js");
|
|
13
14
|
const index_js_4 = require("../typed-schema/index.js");
|
|
14
|
-
const schemaBuilderBase_js_1 = require("../schemaBuilderBase.js");
|
|
15
15
|
const index_js_5 = require("../default-schema/index.js");
|
|
16
|
-
const internal_2 = require("@fluidframework/telemetry-utils/internal");
|
|
17
16
|
/**
|
|
18
17
|
* Checks if the given {@link FlexTreeNode} is a {@link MapTreeNode}.
|
|
19
18
|
*/
|
|
@@ -36,6 +35,9 @@ exports.isMapTreeSequenceField = isMapTreeSequenceField;
|
|
|
36
35
|
* when retrieved via {@link getOrCreateNode}, the same {@link MapTree} object will always produce the same `MapTreeNode` object.
|
|
37
36
|
*/
|
|
38
37
|
class EagerMapTreeNode {
|
|
38
|
+
get schema() {
|
|
39
|
+
return this.flexSchema.name;
|
|
40
|
+
}
|
|
39
41
|
/**
|
|
40
42
|
* Create a new MapTreeNode.
|
|
41
43
|
* @param location - the parentage of this node, if it is being created underneath an existing node and field, or undefined if not
|
|
@@ -44,14 +46,14 @@ class EagerMapTreeNode {
|
|
|
44
46
|
* A `MapTreeNode` may never be constructed more than once for the same {@link MapTree} object.
|
|
45
47
|
* Instead, it should always be acquired via {@link getOrCreateNode}.
|
|
46
48
|
*/
|
|
47
|
-
constructor(
|
|
49
|
+
constructor(context, flexSchema,
|
|
48
50
|
/** The underlying {@link MapTree} that this `MapTreeNode` reads its data from */
|
|
49
51
|
mapTree, location = unparentedLocation) {
|
|
50
|
-
this.
|
|
52
|
+
this.context = context;
|
|
53
|
+
this.flexSchema = flexSchema;
|
|
51
54
|
this.mapTree = mapTree;
|
|
52
55
|
this.location = location;
|
|
53
56
|
this[_a] = index_js_3.FlexTreeEntityKind.Node;
|
|
54
|
-
this.context = undefined;
|
|
55
57
|
(0, internal_1.assert)(!nodeCache.has(mapTree), 0x98b /* A node already exists for the given MapTree */);
|
|
56
58
|
nodeCache.set(mapTree, this);
|
|
57
59
|
// Fully demand the tree to ensure that parent pointers are present and accurate on all nodes.
|
|
@@ -64,7 +66,7 @@ class EagerMapTreeNode {
|
|
|
64
66
|
this.walkTree();
|
|
65
67
|
}
|
|
66
68
|
get type() {
|
|
67
|
-
return this.
|
|
69
|
+
return this.flexSchema.name;
|
|
68
70
|
}
|
|
69
71
|
adoptBy(parent, index) {
|
|
70
72
|
if (parent !== undefined) {
|
|
@@ -85,21 +87,25 @@ class EagerMapTreeNode {
|
|
|
85
87
|
return this.location;
|
|
86
88
|
}
|
|
87
89
|
is(schema) {
|
|
88
|
-
return schema === this.
|
|
90
|
+
return schema === this.flexSchema;
|
|
89
91
|
}
|
|
90
92
|
tryGetField(key) {
|
|
91
93
|
const field = this.mapTree.fields.get(key);
|
|
92
94
|
// Only return the field if it is not empty, in order to fulfill the contract of `tryGetField`.
|
|
93
95
|
if (field !== undefined && field.length > 0) {
|
|
94
|
-
return getOrCreateField(this, key, this.
|
|
96
|
+
return getOrCreateField(this, key, this.flexSchema.getFieldSchema(key));
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
getBoxed(key) {
|
|
98
100
|
const fieldKey = (0, index_js_2.brand)(key);
|
|
99
|
-
return getOrCreateField(this, fieldKey, this.
|
|
101
|
+
return getOrCreateField(this, fieldKey, this.flexSchema.getFieldSchema(fieldKey));
|
|
100
102
|
}
|
|
101
103
|
boxedIterator() {
|
|
102
|
-
return (0, index_js_2.mapIterable)(this.mapTree.fields.entries(), ([key]) => getOrCreateField(this, key, this.
|
|
104
|
+
return (0, index_js_2.mapIterable)(this.mapTree.fields.entries(), ([key]) => getOrCreateField(this, key, this.flexSchema.getFieldSchema(key)));
|
|
105
|
+
}
|
|
106
|
+
keys() {
|
|
107
|
+
// TODO: how this should handle missing defaults (and empty keys if they end up being allowed) needs to be determined.
|
|
108
|
+
return this.mapTree.fields.keys();
|
|
103
109
|
}
|
|
104
110
|
get value() {
|
|
105
111
|
return this.mapTree.value;
|
|
@@ -111,9 +117,9 @@ class EagerMapTreeNode {
|
|
|
111
117
|
}
|
|
112
118
|
walkTree() {
|
|
113
119
|
for (const [key, mapTrees] of this.mapTree.fields) {
|
|
114
|
-
const field = getOrCreateField(this, key, this.
|
|
120
|
+
const field = getOrCreateField(this, key, this.flexSchema.getFieldSchema(key));
|
|
115
121
|
for (let index = 0; index < field.length; index++) {
|
|
116
|
-
const child = getOrCreateChild(mapTrees[index] ?? (0, internal_1.oob)(), this.
|
|
122
|
+
const child = getOrCreateChild(this.context, mapTrees[index] ?? (0, internal_1.oob)(), this.flexSchema.getFieldSchema(key).allowedTypes, { parent: field, index });
|
|
117
123
|
// These next asserts detect the case where `getOrCreateChild` gets a cache hit of a different node than the one we're trying to create
|
|
118
124
|
(0, internal_1.assert)(child.location !== undefined, 0x98d /* Expected node to have parent */);
|
|
119
125
|
(0, internal_1.assert)(child.location.parent.parent === this, 0x98e /* Node may not be multi-parented */);
|
|
@@ -125,44 +131,34 @@ class EagerMapTreeNode {
|
|
|
125
131
|
}
|
|
126
132
|
exports.EagerMapTreeNode = EagerMapTreeNode;
|
|
127
133
|
_a = index_js_3.flexTreeMarker;
|
|
134
|
+
// #endregion Nodes
|
|
128
135
|
/**
|
|
129
|
-
*
|
|
136
|
+
* Implementation of `FlexTreeContext`.
|
|
137
|
+
*
|
|
138
|
+
* @remarks An editor is required to edit the FlexTree.
|
|
130
139
|
*/
|
|
131
|
-
class
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
unboxedField(this.tryGetField(key) ?? (0, index_js_2.fail)("Unexpected empty map field"), key, this.mapTree, this),
|
|
142
|
-
]);
|
|
143
|
-
}
|
|
144
|
-
forEach(callbackFn, thisArg) {
|
|
145
|
-
const fn = thisArg !== undefined ? callbackFn.bind(thisArg) : callbackFn;
|
|
146
|
-
for (const [key, value] of this.entries()) {
|
|
147
|
-
fn(value, key, this);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
getBoxed(key) {
|
|
151
|
-
return super.getBoxed(key);
|
|
152
|
-
}
|
|
153
|
-
[Symbol.iterator]() {
|
|
154
|
-
return this.entries();
|
|
140
|
+
class UnhydratedContext {
|
|
141
|
+
/**
|
|
142
|
+
* @param flexSchema - Schema to use when working with the tree.
|
|
143
|
+
*/
|
|
144
|
+
constructor(flexSchema) {
|
|
145
|
+
this.flexSchema = flexSchema;
|
|
146
|
+
this.schema = {
|
|
147
|
+
rootFieldSchema: flexSchema.rootFieldSchema.stored,
|
|
148
|
+
...(0, index_js_4.intoStoredSchemaCollection)(flexSchema),
|
|
149
|
+
};
|
|
155
150
|
}
|
|
156
|
-
|
|
157
|
-
return
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
exports.EagerMapTreeMapNode = EagerMapTreeMapNode;
|
|
161
|
-
class EagerMapTreeLeafNode extends EagerMapTreeNode {
|
|
162
|
-
get value() {
|
|
163
|
-
return super.value;
|
|
151
|
+
isHydrated() {
|
|
152
|
+
return false;
|
|
164
153
|
}
|
|
165
154
|
}
|
|
155
|
+
exports.UnhydratedContext = UnhydratedContext;
|
|
156
|
+
const emptyContext = new UnhydratedContext({
|
|
157
|
+
adapters: {},
|
|
158
|
+
nodeSchema: new Map(),
|
|
159
|
+
policy: index_js_5.defaultSchemaPolicy,
|
|
160
|
+
rootFieldSchema: index_js_4.FlexFieldSchema.empty,
|
|
161
|
+
});
|
|
166
162
|
/**
|
|
167
163
|
* A special singleton that is the implicit {@link LocationInField} of all un-parented {@link EagerMapTreeNode}s.
|
|
168
164
|
* @remarks This exists because {@link EagerMapTreeNode.parentField} must return a field.
|
|
@@ -177,8 +173,8 @@ const unparentedLocation = {
|
|
|
177
173
|
length: 0,
|
|
178
174
|
key: index_js_1.EmptyKey,
|
|
179
175
|
parent: undefined,
|
|
180
|
-
is(
|
|
181
|
-
return schema ===
|
|
176
|
+
is(kind) {
|
|
177
|
+
return this.schema.kind === kind.identifier;
|
|
182
178
|
},
|
|
183
179
|
boxedIterator() {
|
|
184
180
|
return [].values();
|
|
@@ -186,15 +182,22 @@ const unparentedLocation = {
|
|
|
186
182
|
boxedAt(index) {
|
|
187
183
|
return undefined;
|
|
188
184
|
},
|
|
189
|
-
schema: index_js_4.FlexFieldSchema.empty,
|
|
190
|
-
context:
|
|
185
|
+
schema: index_js_4.FlexFieldSchema.empty.stored,
|
|
186
|
+
context: emptyContext,
|
|
191
187
|
mapTrees: [],
|
|
188
|
+
getFieldPath() {
|
|
189
|
+
(0, index_js_2.fail)("unsupported");
|
|
190
|
+
},
|
|
192
191
|
},
|
|
193
192
|
index: -1,
|
|
194
193
|
};
|
|
195
194
|
class EagerMapTreeField {
|
|
196
|
-
|
|
197
|
-
this.
|
|
195
|
+
get schema() {
|
|
196
|
+
return this.flexSchema.stored;
|
|
197
|
+
}
|
|
198
|
+
constructor(context, flexSchema, key, parent) {
|
|
199
|
+
this.context = context;
|
|
200
|
+
this.flexSchema = flexSchema;
|
|
198
201
|
this.key = key;
|
|
199
202
|
this.parent = parent;
|
|
200
203
|
this[_b] = index_js_3.FlexTreeEntityKind.Field;
|
|
@@ -219,12 +222,12 @@ class EagerMapTreeField {
|
|
|
219
222
|
get length() {
|
|
220
223
|
return this.mapTrees.length;
|
|
221
224
|
}
|
|
222
|
-
is(
|
|
223
|
-
return this.schema.
|
|
225
|
+
is(kind) {
|
|
226
|
+
return this.schema.kind === kind.identifier;
|
|
224
227
|
}
|
|
225
228
|
boxedIterator() {
|
|
226
229
|
return this.mapTrees
|
|
227
|
-
.map((m, index) => getOrCreateChild(m, this.
|
|
230
|
+
.map((m, index) => getOrCreateChild(this.context, m, this.flexSchema.allowedTypes, {
|
|
228
231
|
parent: this,
|
|
229
232
|
index,
|
|
230
233
|
}))
|
|
@@ -237,7 +240,7 @@ class EagerMapTreeField {
|
|
|
237
240
|
}
|
|
238
241
|
const m = this.mapTrees[i];
|
|
239
242
|
if (m !== undefined) {
|
|
240
|
-
return getOrCreateChild(m, this.
|
|
243
|
+
return getOrCreateChild(this.context, m, this.flexSchema.allowedTypes, {
|
|
241
244
|
parent: this,
|
|
242
245
|
index: i,
|
|
243
246
|
});
|
|
@@ -261,6 +264,9 @@ class EagerMapTreeField {
|
|
|
261
264
|
this.parent.mapTree.fields.delete(this.key);
|
|
262
265
|
}
|
|
263
266
|
}
|
|
267
|
+
getFieldPath() {
|
|
268
|
+
throw unsupportedUsageError("Editing an array");
|
|
269
|
+
}
|
|
264
270
|
}
|
|
265
271
|
_b = index_js_3.flexTreeMarker;
|
|
266
272
|
class EagerMapTreeOptionalField extends EagerMapTreeField {
|
|
@@ -291,7 +297,7 @@ class EagerMapTreeOptionalField extends EagerMapTreeField {
|
|
|
291
297
|
get content() {
|
|
292
298
|
const value = this.mapTrees[0];
|
|
293
299
|
if (value !== undefined) {
|
|
294
|
-
return
|
|
300
|
+
return unboxed(this.flexSchema, value, {
|
|
295
301
|
parent: this,
|
|
296
302
|
index: 0,
|
|
297
303
|
});
|
|
@@ -344,22 +350,16 @@ class EagerMapTreeSequenceField extends EagerMapTreeField {
|
|
|
344
350
|
if (i === undefined) {
|
|
345
351
|
return undefined;
|
|
346
352
|
}
|
|
347
|
-
return
|
|
353
|
+
return unboxed(this.flexSchema, this.mapTrees[i] ?? (0, internal_1.oob)(), { parent: this, index: i });
|
|
348
354
|
}
|
|
349
355
|
map(callbackfn) {
|
|
350
356
|
return Array.from(this, callbackfn);
|
|
351
357
|
}
|
|
352
|
-
mapBoxed(callbackfn) {
|
|
353
|
-
return Array.from(this.boxedIterator(), callbackfn);
|
|
354
|
-
}
|
|
355
358
|
*[Symbol.iterator]() {
|
|
356
359
|
for (const [i, mapTree] of this.mapTrees.entries()) {
|
|
357
|
-
yield
|
|
360
|
+
yield unboxed(this.flexSchema, mapTree, { parent: this, index: i });
|
|
358
361
|
}
|
|
359
362
|
}
|
|
360
|
-
getFieldPath() {
|
|
361
|
-
throw unsupportedUsageError("Editing an array");
|
|
362
|
-
}
|
|
363
363
|
}
|
|
364
364
|
// #endregion Fields
|
|
365
365
|
// #region Caching and unboxing utilities
|
|
@@ -383,37 +383,27 @@ exports.tryGetMapTreeNode = tryGetMapTreeNode;
|
|
|
383
383
|
* @param mapTree - the {@link MapTree} containing the data for this node.
|
|
384
384
|
* @remarks It must conform to the `nodeSchema`.
|
|
385
385
|
*/
|
|
386
|
-
function getOrCreateMapTreeNode(nodeSchema, mapTree) {
|
|
387
|
-
return nodeCache.get(mapTree) ?? createNode(nodeSchema, mapTree, undefined);
|
|
386
|
+
function getOrCreateMapTreeNode(context, nodeSchema, mapTree) {
|
|
387
|
+
return nodeCache.get(mapTree) ?? createNode(context, nodeSchema, mapTree, undefined);
|
|
388
388
|
}
|
|
389
389
|
exports.getOrCreateMapTreeNode = getOrCreateMapTreeNode;
|
|
390
390
|
/** Helper for creating a `MapTreeNode` given the parent field (e.g. when "walking down") */
|
|
391
|
-
function getOrCreateChild(mapTree,
|
|
391
|
+
function getOrCreateChild(context, mapTree, allowedTypes, parent) {
|
|
392
392
|
const cached = nodeCache.get(mapTree);
|
|
393
393
|
if (cached !== undefined) {
|
|
394
394
|
return cached;
|
|
395
395
|
}
|
|
396
|
-
|
|
396
|
+
(0, internal_1.assert)((0, index_js_2.isReadonlyArray)(allowedTypes), 0xa25 /* invalid types */);
|
|
397
397
|
const nodeSchema = allowedTypes
|
|
398
398
|
.map((t) => ((0, index_js_4.isLazy)(t) ? t() : t))
|
|
399
399
|
.find((t) => {
|
|
400
|
-
(0, internal_1.assert)(t !== "Any", 0x993 /* 'Any' type is not supported */);
|
|
401
400
|
return t.name === mapTree.type;
|
|
402
401
|
}) ?? (0, index_js_2.fail)("Unsupported node schema");
|
|
403
|
-
return createNode(nodeSchema, mapTree, parent);
|
|
402
|
+
return createNode(context, nodeSchema, mapTree, parent);
|
|
404
403
|
}
|
|
405
404
|
/** Always constructs a new node, therefore may not be called twice for the same `MapTree`. */
|
|
406
|
-
function createNode(nodeSchema, mapTree, parentField) {
|
|
407
|
-
|
|
408
|
-
return new EagerMapTreeLeafNode(nodeSchema, mapTree, parentField);
|
|
409
|
-
}
|
|
410
|
-
if ((0, index_js_4.schemaIsMap)(nodeSchema)) {
|
|
411
|
-
return new EagerMapTreeMapNode(nodeSchema, mapTree, parentField);
|
|
412
|
-
}
|
|
413
|
-
if ((0, index_js_4.schemaIsObjectNode)(nodeSchema)) {
|
|
414
|
-
return new EagerMapTreeNode(nodeSchema, mapTree, parentField);
|
|
415
|
-
}
|
|
416
|
-
(0, internal_1.assert)(false, 0x994 /* Unrecognized node kind */);
|
|
405
|
+
function createNode(context, nodeSchema, mapTree, parentField) {
|
|
406
|
+
return new EagerMapTreeNode(context, nodeSchema, mapTree, parentField);
|
|
417
407
|
}
|
|
418
408
|
/** Creates a field with the given attributes, or returns a cached field if there is one */
|
|
419
409
|
function getOrCreateField(parent, key, schema) {
|
|
@@ -423,46 +413,23 @@ function getOrCreateField(parent, key, schema) {
|
|
|
423
413
|
}
|
|
424
414
|
if (schema.kind.identifier === index_js_5.FieldKinds.required.identifier ||
|
|
425
415
|
schema.kind.identifier === index_js_5.FieldKinds.identifier.identifier) {
|
|
426
|
-
return new EagerMapTreeRequiredField(schema, key, parent);
|
|
416
|
+
return new EagerMapTreeRequiredField(parent.context, schema, key, parent);
|
|
427
417
|
}
|
|
428
418
|
if (schema.kind.identifier === index_js_5.FieldKinds.optional.identifier) {
|
|
429
|
-
return new EagerMapTreeOptionalField(schema, key, parent);
|
|
419
|
+
return new EagerMapTreeOptionalField(parent.context, schema, key, parent);
|
|
430
420
|
}
|
|
431
421
|
if (schema.kind.identifier === index_js_5.FieldKinds.sequence.identifier) {
|
|
432
|
-
return new EagerMapTreeSequenceField(schema, key, parent);
|
|
422
|
+
return new EagerMapTreeSequenceField(parent.context, schema, key, parent);
|
|
433
423
|
}
|
|
434
|
-
return new EagerMapTreeField(schema, key, parent);
|
|
424
|
+
return new EagerMapTreeField(parent.context, schema, key, parent);
|
|
435
425
|
}
|
|
436
|
-
/** Unboxes
|
|
437
|
-
function
|
|
438
|
-
const
|
|
439
|
-
if (
|
|
440
|
-
|
|
441
|
-
return mapTree.value;
|
|
442
|
-
}
|
|
443
|
-
return getOrCreateChild(mapTree, type, parent);
|
|
444
|
-
}
|
|
445
|
-
return getOrCreateChild(mapTree, schema.allowedTypes, parent);
|
|
446
|
-
}
|
|
447
|
-
/** Unboxes non-polymorphic required and optional fields holding leaf nodes to their values, if applicable */
|
|
448
|
-
function unboxedField(field, key, mapTree, parentNode) {
|
|
449
|
-
const fieldSchema = field.schema;
|
|
450
|
-
const mapTrees = mapTree.fields.get(key) ?? (0, index_js_2.fail)("Key does not exist in unhydrated map tree");
|
|
451
|
-
if (fieldSchema.kind === index_js_5.FieldKinds.required) {
|
|
452
|
-
return unboxedUnion(fieldSchema, mapTrees[0] ?? (0, internal_1.oob)(), {
|
|
453
|
-
parent: field,
|
|
454
|
-
index: 0,
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
if (fieldSchema.kind === index_js_5.FieldKinds.optional) {
|
|
458
|
-
return (mapTrees.length > 0
|
|
459
|
-
? unboxedUnion(fieldSchema, mapTrees[0] ?? (0, internal_1.oob)(), {
|
|
460
|
-
parent: field,
|
|
461
|
-
index: 0,
|
|
462
|
-
})
|
|
463
|
-
: undefined);
|
|
426
|
+
/** Unboxes leaf nodes to their values */
|
|
427
|
+
function unboxed(schema, mapTree, parent) {
|
|
428
|
+
const value = mapTree.value;
|
|
429
|
+
if (value !== undefined) {
|
|
430
|
+
return value;
|
|
464
431
|
}
|
|
465
|
-
return
|
|
432
|
+
return getOrCreateChild(parent.parent.context, mapTree, schema.allowedTypes, parent);
|
|
466
433
|
}
|
|
467
434
|
// #endregion Caching and unboxing utilities
|
|
468
435
|
function unsupportedUsageError(message) {
|