@fluidframework/tree 2.3.0-288113 → 2.3.1
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 -42
- package/api-report/tree.beta.api.md +21 -11
- 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 +8 -13
- package/dist/alpha.d.ts +102 -0
- package/dist/beta.d.ts +6 -2
- 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.map +1 -1
- package/dist/core/tree/anchorSet.js +6 -2
- 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} +48 -30
- 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 -33
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +82 -103
- 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 -190
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +15 -3
- 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.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 -28
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +11 -14
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +5 -26
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +23 -74
- 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 -11
- 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 +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -36
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +83 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +0 -1
- package/dist/shared-tree/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 +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +21 -19
- 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 +30 -21
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +3 -3
- 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 +61 -3
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +166 -13
- 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 +17 -20
- 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 -2
- 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.map +1 -1
- package/lib/core/tree/anchorSet.js +6 -2
- 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} +48 -29
- 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 -33
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +83 -104
- 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 -190
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +15 -2
- 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 +1 -1
- 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 -28
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +11 -13
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +5 -26
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +23 -72
- 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 +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -5
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +83 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +0 -1
- package/lib/shared-tree/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 +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +23 -21
- 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 +33 -24
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +3 -3
- 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 +61 -3
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +156 -5
- 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 +17 -20
- 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 +57 -25
- 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 +18 -3
- package/src/core/tree/detachedFieldIndex.ts +6 -5
- package/src/core/tree/visitDelta.ts +7 -2
- package/src/events/{events.ts → emitter.ts} +52 -139
- 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 -210
- 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 -291
- package/src/feature-libraries/flex-tree/index.ts +7 -13
- package/src/feature-libraries/flex-tree/lazyEntity.ts +2 -11
- package/src/feature-libraries/flex-tree/lazyField.ts +49 -73
- package/src/feature-libraries/flex-tree/lazyNode.ts +25 -154
- 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 -27
- 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 +4 -8
- 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 +32 -23
- 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 +37 -31
- package/src/simple-tree/core/index.ts +4 -1
- package/src/simple-tree/core/schemaCaching.ts +10 -0
- package/src/simple-tree/core/treeNodeKernel.ts +198 -5
- package/src/simple-tree/core/treeNodeSchema.ts +1 -1
- package/src/simple-tree/core/types.ts +16 -27
- package/src/simple-tree/core/withType.ts +3 -1
- package/src/simple-tree/index.ts +29 -21
- 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 -207
- 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 -207
- 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
|
@@ -8,10 +8,11 @@ import {
|
|
|
8
8
|
type ExclusiveMapTree,
|
|
9
9
|
type FieldKey,
|
|
10
10
|
type FieldUpPath,
|
|
11
|
+
type TreeFieldStoredSchema,
|
|
12
|
+
type TreeNodeSchemaIdentifier,
|
|
11
13
|
type TreeValue,
|
|
12
14
|
anchorSlot,
|
|
13
15
|
} from "../../core/index.js";
|
|
14
|
-
import type { Assume } from "../../util/index.js";
|
|
15
16
|
import type {
|
|
16
17
|
FieldKinds,
|
|
17
18
|
SequenceFieldEditBuilder,
|
|
@@ -19,18 +20,7 @@ import type {
|
|
|
19
20
|
OptionalFieldEditBuilder,
|
|
20
21
|
} from "../default-schema/index.js";
|
|
21
22
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
22
|
-
import type {
|
|
23
|
-
Any,
|
|
24
|
-
FlexAllowedTypes,
|
|
25
|
-
FlexFieldSchema,
|
|
26
|
-
FlexList,
|
|
27
|
-
FlexListToUnion,
|
|
28
|
-
FlexMapNodeSchema,
|
|
29
|
-
FlexObjectNodeSchema,
|
|
30
|
-
FlexTreeNodeSchema,
|
|
31
|
-
LazyItem,
|
|
32
|
-
LeafNodeSchema,
|
|
33
|
-
} from "../typed-schema/index.js";
|
|
23
|
+
import type { FlexTreeNodeSchema } from "../typed-schema/index.js";
|
|
34
24
|
|
|
35
25
|
import type { FlexTreeContext } from "./context.js";
|
|
36
26
|
|
|
@@ -45,7 +35,7 @@ export const flexTreeSlot = anchorSlot<FlexTreeNode>();
|
|
|
45
35
|
*/
|
|
46
36
|
export const flexTreeMarker = Symbol("flexTreeMarker");
|
|
47
37
|
|
|
48
|
-
|
|
38
|
+
function isFlexTreeEntity(t: unknown): t is FlexTreeEntity {
|
|
49
39
|
return typeof t === "object" && t !== null && flexTreeMarker in t;
|
|
50
40
|
}
|
|
51
41
|
|
|
@@ -74,7 +64,7 @@ export enum FlexTreeEntityKind {
|
|
|
74
64
|
* Design and document iterator invalidation rules and ordering rules.
|
|
75
65
|
* Providing a custom iterator type with place anchor semantics would be a good approach.
|
|
76
66
|
*/
|
|
77
|
-
export interface FlexTreeEntity
|
|
67
|
+
export interface FlexTreeEntity {
|
|
78
68
|
/**
|
|
79
69
|
* Indicates that an object is a specific kind of flex tree FlexTreeEntity.
|
|
80
70
|
* This makes it possible to both down cast FlexTreeEntities safely as well as validate if an object is or is not a FlexTreeEntity.
|
|
@@ -82,24 +72,9 @@ export interface FlexTreeEntity<out TSchema = unknown> {
|
|
|
82
72
|
readonly [flexTreeMarker]: FlexTreeEntityKind;
|
|
83
73
|
|
|
84
74
|
/**
|
|
85
|
-
*
|
|
86
|
-
* If well-formed, it must follow this schema.
|
|
87
|
-
*/
|
|
88
|
-
readonly schema: TSchema;
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* A common context of a "forest" of FlexTrees.
|
|
92
|
-
* @remarks This is `undefined` for unhydrated nodes or fields that have not yet been inserted into the tree.
|
|
93
|
-
*/
|
|
94
|
-
readonly context?: FlexTreeContext;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Iterate through all nodes/fields in this field/node.
|
|
98
|
-
*
|
|
99
|
-
* @remarks
|
|
100
|
-
* No mutations to the current view of the shared tree are permitted during iteration.
|
|
75
|
+
* A common context of FlexTrees.
|
|
101
76
|
*/
|
|
102
|
-
|
|
77
|
+
readonly context: FlexTreeContext;
|
|
103
78
|
}
|
|
104
79
|
|
|
105
80
|
/**
|
|
@@ -124,6 +99,20 @@ export enum TreeStatus {
|
|
|
124
99
|
|
|
125
100
|
/**
|
|
126
101
|
* Is created but has not yet been inserted into the tree.
|
|
102
|
+
* @remarks
|
|
103
|
+
* See also {@link Unhydrated}.
|
|
104
|
+
*
|
|
105
|
+
* Nodes in the new state have some limitations:
|
|
106
|
+
*
|
|
107
|
+
* - Events are not currently triggered for changes. Fixes for this are planned.
|
|
108
|
+
*
|
|
109
|
+
* - Reading identifiers from nodes which were left unspecified (defaulted) when creating the tree will error.
|
|
110
|
+
* This is because allocating unique identifiers in a compressible manner requires knowing which tree the nodes will be inserted into.
|
|
111
|
+
*
|
|
112
|
+
* - Transactions do not work: transactions apply to a single {@link TreeView}, and `New` nodes are not part of one.
|
|
113
|
+
*
|
|
114
|
+
* - `Tree.shortId` (when the identifier was explicitly specified and thus works at all) will just return the full identifier as a string,
|
|
115
|
+
* but might return a compressed form as a number once hydrated.
|
|
127
116
|
*/
|
|
128
117
|
New = 3,
|
|
129
118
|
}
|
|
@@ -144,7 +133,7 @@ export enum TreeStatus {
|
|
|
144
133
|
* the schema aware API may be more ergonomic.
|
|
145
134
|
* All editing is actually done via {@link FlexTreeField}s: the nodes are immutable other than that they contain mutable fields.
|
|
146
135
|
*/
|
|
147
|
-
export interface FlexTreeNode extends FlexTreeEntity
|
|
136
|
+
export interface FlexTreeNode extends FlexTreeEntity {
|
|
148
137
|
readonly [flexTreeMarker]: FlexTreeEntityKind.Node;
|
|
149
138
|
|
|
150
139
|
/**
|
|
@@ -176,7 +165,7 @@ export interface FlexTreeNode extends FlexTreeEntity<FlexTreeNodeSchema> {
|
|
|
176
165
|
/**
|
|
177
166
|
* Type guard for narrowing / down-casting to a specific schema.
|
|
178
167
|
*/
|
|
179
|
-
is
|
|
168
|
+
is(schema: FlexTreeNodeSchema): boolean;
|
|
180
169
|
|
|
181
170
|
boxedIterator(): IterableIterator<FlexTreeField>;
|
|
182
171
|
|
|
@@ -189,6 +178,28 @@ export interface FlexTreeNode extends FlexTreeEntity<FlexTreeNodeSchema> {
|
|
|
189
178
|
* a separate Anchor (and thus ref count) must be allocated to keep it alive.
|
|
190
179
|
*/
|
|
191
180
|
readonly anchorNode: AnchorNode;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Returns an iterable of keys for non-empty fields.
|
|
184
|
+
*
|
|
185
|
+
* @remarks
|
|
186
|
+
* All fields under a map implicitly exist, but `keys` will yield only the keys of fields which contain one or more nodes.
|
|
187
|
+
*
|
|
188
|
+
* No guarantees are made regarding the order of the keys returned.
|
|
189
|
+
*/
|
|
190
|
+
keys(): IterableIterator<FieldKey>;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Schema for this entity.
|
|
194
|
+
* If well-formed, it must follow this schema.
|
|
195
|
+
*/
|
|
196
|
+
readonly schema: TreeNodeSchemaIdentifier;
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Schema for this entity.
|
|
200
|
+
* If well-formed, it must follow this schema.
|
|
201
|
+
*/
|
|
202
|
+
readonly flexSchema: FlexTreeNodeSchema;
|
|
192
203
|
}
|
|
193
204
|
|
|
194
205
|
/**
|
|
@@ -209,7 +220,7 @@ export interface FlexTreeNode extends FlexTreeEntity<FlexTreeNodeSchema> {
|
|
|
209
220
|
* All content in the tree is accessible without down-casting, but if the schema is known,
|
|
210
221
|
* the schema aware API may be more ergonomic.
|
|
211
222
|
*/
|
|
212
|
-
export interface FlexTreeField extends FlexTreeEntity
|
|
223
|
+
export interface FlexTreeField extends FlexTreeEntity {
|
|
213
224
|
readonly [flexTreeMarker]: FlexTreeEntityKind.Field;
|
|
214
225
|
|
|
215
226
|
/**
|
|
@@ -232,7 +243,7 @@ export interface FlexTreeField extends FlexTreeEntity<FlexFieldSchema> {
|
|
|
232
243
|
/**
|
|
233
244
|
* Type guard for narrowing / down-casting to a specific schema.
|
|
234
245
|
*/
|
|
235
|
-
is<
|
|
246
|
+
is<TKind extends FlexFieldKind>(kind: TKind): this is FlexTreeTypedField<TKind>;
|
|
236
247
|
|
|
237
248
|
boxedIterator(): IterableIterator<FlexTreeNode>;
|
|
238
249
|
|
|
@@ -247,117 +258,19 @@ export interface FlexTreeField extends FlexTreeEntity<FlexFieldSchema> {
|
|
|
247
258
|
* Semantics match {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at}.
|
|
248
259
|
*/
|
|
249
260
|
boxedAt(index: number): FlexTreeNode | undefined;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// #region Node Kinds
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* A {@link FlexTreeNode} that behaves like a `Map<string, Field>` for a specific `Field` type.
|
|
256
|
-
*
|
|
257
|
-
* @remarks
|
|
258
|
-
* Unlike TypeScript Map type, {@link FlexTreeMapNode.get} always provides a reference to any field looked up, even if it has never been set.
|
|
259
|
-
*
|
|
260
|
-
* This means that, for example, a `MapNode` of {@link FlexTreeSequenceField} fields will return an empty sequence when a previously unused key is looked up,
|
|
261
|
-
* and that sequence can be used to insert new items into the field.
|
|
262
|
-
* Additionally empty fields (those containing no nodes) are not distinguished from fields which do not exist.
|
|
263
|
-
* This differs from JavaScript Maps which have a subtle distinction between storing undefined as a value in the map and deleting an entry from the map.
|
|
264
|
-
*/
|
|
265
|
-
export interface FlexTreeMapNode<in out TSchema extends FlexMapNodeSchema>
|
|
266
|
-
extends FlexTreeNode {
|
|
267
|
-
readonly schema: TSchema;
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Get the field for `key`.
|
|
271
|
-
* @param key - which map entry to look up.
|
|
272
|
-
*
|
|
273
|
-
* @remarks
|
|
274
|
-
* All fields under a map implicitly exist, so `get` can be called with any key and will always return a field.
|
|
275
|
-
* Even if the field is empty, it will still be returned, and can be edited to insert content into the map.
|
|
276
|
-
*/
|
|
277
|
-
getBoxed(key: string): FlexTreeTypedField<TSchema["info"]>;
|
|
278
261
|
|
|
279
262
|
/**
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
* @remarks
|
|
283
|
-
* All fields under a map implicitly exist, but `keys` will yield only the keys of fields which contain one or more nodes.
|
|
284
|
-
*
|
|
285
|
-
* No guarantees are made regarding the order of the keys returned.
|
|
286
|
-
*/
|
|
287
|
-
keys(): IterableIterator<FieldKey>;
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* Returns an iterable of values in the map.
|
|
291
|
-
*
|
|
292
|
-
* @remarks
|
|
293
|
-
* All fields under a map implicitly exist, but `values` will yield only the fields containing one or more nodes.
|
|
294
|
-
*
|
|
295
|
-
* No guarantees are made regarding the order of the values returned.
|
|
296
|
-
*/
|
|
297
|
-
values(): IterableIterator<FlexTreeUnboxField<TSchema["info"], "notEmpty">>;
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Returns an iterable of key, value pairs for every entry in the map.
|
|
301
|
-
*
|
|
302
|
-
* @remarks
|
|
303
|
-
* All fields under a map implicitly exist, but `entries` will yield only the entries whose fields contain one or more nodes.
|
|
304
|
-
*
|
|
305
|
-
* This iteration provided by `entries()` is equivalent to that provided by direct iteration of the {@link FlexTreeMapNode} (a.k.a. `[Symbol.Iterator]()`).
|
|
306
|
-
*
|
|
307
|
-
* No guarantees are made regarding the order of the entries returned.
|
|
263
|
+
* Gets the FieldUpPath of a field.
|
|
308
264
|
*/
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
[Symbol.iterator](): IterableIterator<
|
|
312
|
-
[FieldKey, FlexTreeUnboxField<TSchema["info"], "notEmpty">]
|
|
313
|
-
>;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* A {@link FlexTreeNode} that behaves like an "object" or "struct", providing properties to access its fields.
|
|
318
|
-
*
|
|
319
|
-
* ObjectNodes consist of a finite collection of fields, each with their own (distinct) key and {@link FlexFieldSchema}.
|
|
320
|
-
*
|
|
321
|
-
* @remarks
|
|
322
|
-
* ObjectNodes require complex typing, and have been split into two parts for implementation purposes.
|
|
323
|
-
*
|
|
324
|
-
* These "Objects" resemble "Structs" from a wide variety of programming languages
|
|
325
|
-
* (Including Algol 68, C, Go, Rust, C# etc.).
|
|
326
|
-
* ObjectNodes also somewhat resemble JavaScript objects: this analogy is less precise (objects don't have a fixed schema for example),
|
|
327
|
-
* but for consistency with other systems in the JavaScript ecosystem (like JSON) is "ObjectNodes" nodes are named "Objects".
|
|
328
|
-
*
|
|
329
|
-
* Another common name for this abstraction is [record](https://en.wikipedia.org/wiki/Record_(computer_science)).
|
|
330
|
-
* The name "Record" is avoided (in favor of Object) here because it has less precise connotations for most TypeScript developers.
|
|
331
|
-
* For example, TypeScript has a built in `Record` type, but it requires all of the fields to have the same type,
|
|
332
|
-
* putting its semantics half way between this library's "Object" schema and {@link FlexTreeMapNode}.
|
|
333
|
-
*/
|
|
334
|
-
export interface FlexTreeObjectNode extends FlexTreeNode {
|
|
335
|
-
readonly schema: FlexObjectNodeSchema;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Leaf holding a value.
|
|
340
|
-
*
|
|
341
|
-
* @remarks
|
|
342
|
-
* Leaves are immutable and have no children.
|
|
343
|
-
* Leaf unboxes its content, so in schema aware APIs which do unboxing, the Leaf itself will be skipped over and its value will be returned directly.
|
|
344
|
-
*/
|
|
345
|
-
export interface FlexTreeLeafNode<in out TSchema extends LeafNodeSchema> extends FlexTreeNode {
|
|
346
|
-
readonly schema: TSchema;
|
|
265
|
+
getFieldPath(): FieldUpPath;
|
|
347
266
|
|
|
348
267
|
/**
|
|
349
|
-
*
|
|
268
|
+
* Schema for this entity.
|
|
269
|
+
* If well-formed, it must follow this schema.
|
|
350
270
|
*/
|
|
351
|
-
readonly
|
|
271
|
+
readonly schema: TreeFieldStoredSchema;
|
|
352
272
|
}
|
|
353
273
|
|
|
354
|
-
/**
|
|
355
|
-
* Field kinds that allow value assignment.
|
|
356
|
-
*/
|
|
357
|
-
export type AssignableFieldKinds = typeof FieldKinds.optional | typeof FieldKinds.required;
|
|
358
|
-
|
|
359
|
-
// #endregion
|
|
360
|
-
|
|
361
274
|
// #region Field Kinds
|
|
362
275
|
|
|
363
276
|
/**
|
|
@@ -370,22 +283,6 @@ export type FlexibleFieldContent = ExclusiveMapTree[];
|
|
|
370
283
|
*/
|
|
371
284
|
export type FlexibleNodeContent = ExclusiveMapTree;
|
|
372
285
|
|
|
373
|
-
/**
|
|
374
|
-
* Tree for inserting a subsequence of nodes.
|
|
375
|
-
*
|
|
376
|
-
* Used to insert a batch of 0 or more nodes into some location in a {@link FlexTreeSequenceField}.
|
|
377
|
-
*/
|
|
378
|
-
export type FlexibleNodeSubSequence = ExclusiveMapTree[];
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* Type to ensures two types overlap in at least one way.
|
|
382
|
-
* It evaluates to the input type if this is true, and never otherwise.
|
|
383
|
-
* Examples:
|
|
384
|
-
* CheckTypesOverlap\<number | boolean, number | object\> = number | boolean
|
|
385
|
-
* CheckTypesOverlap\<number | boolean, string | object\> = never
|
|
386
|
-
*/
|
|
387
|
-
export type CheckTypesOverlap<T, TCheck> = [Extract<T, TCheck> extends never ? never : T][0];
|
|
388
|
-
|
|
389
286
|
/**
|
|
390
287
|
* {@link FlexTreeField} that stores a sequence of children.
|
|
391
288
|
*
|
|
@@ -402,8 +299,7 @@ export type CheckTypesOverlap<T, TCheck> = [Extract<T, TCheck> extends never ? n
|
|
|
402
299
|
* Add anchor API that can actually hold onto locations in a sequence.
|
|
403
300
|
* Currently only nodes can be held onto with anchors, and this does not replicate the behavior implemented for editing.
|
|
404
301
|
*/
|
|
405
|
-
export interface FlexTreeSequenceField
|
|
406
|
-
extends FlexTreeField {
|
|
302
|
+
export interface FlexTreeSequenceField extends FlexTreeField {
|
|
407
303
|
/**
|
|
408
304
|
* Gets a node of this field by its index with unboxing.
|
|
409
305
|
* @param index - Zero-based index of the item to retrieve. Negative values are interpreted from the end of the sequence.
|
|
@@ -414,34 +310,25 @@ export interface FlexTreeSequenceField<in out TTypes extends FlexAllowedTypes>
|
|
|
414
310
|
* @remarks
|
|
415
311
|
* Semantics match {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at}.
|
|
416
312
|
*/
|
|
417
|
-
at(index: number):
|
|
313
|
+
at(index: number): FlexTreeUnknownUnboxed | undefined;
|
|
418
314
|
|
|
419
315
|
/**
|
|
420
316
|
* {@inheritdoc FlexTreeField.boxedAt}
|
|
421
317
|
*/
|
|
422
|
-
boxedAt(index: number):
|
|
318
|
+
boxedAt(index: number): FlexTreeNode | undefined;
|
|
423
319
|
|
|
424
320
|
/**
|
|
425
321
|
* Calls the provided callback function on each child of this sequence, and returns an array that contains the results.
|
|
426
322
|
* @param callbackfn - A function that accepts the child and its index.
|
|
427
323
|
*/
|
|
428
|
-
map<U>(callbackfn: (value:
|
|
429
|
-
|
|
430
|
-
readonly length: number;
|
|
324
|
+
map<U>(callbackfn: (value: FlexTreeUnknownUnboxed, index: number) => U): U[];
|
|
431
325
|
|
|
432
326
|
/**
|
|
433
327
|
* Get an editor for this sequence.
|
|
434
328
|
*/
|
|
435
329
|
readonly editor: SequenceFieldEditBuilder<FlexibleFieldContent>;
|
|
436
330
|
|
|
437
|
-
boxedIterator(): IterableIterator<
|
|
438
|
-
|
|
439
|
-
/**
|
|
440
|
-
* Gets the FieldUpPath of a field.
|
|
441
|
-
*/
|
|
442
|
-
getFieldPath(): FieldUpPath;
|
|
443
|
-
|
|
444
|
-
[Symbol.iterator](): IterableIterator<FlexTreeUnboxNodeUnion<TTypes>>;
|
|
331
|
+
boxedIterator(): IterableIterator<FlexTreeNode>;
|
|
445
332
|
}
|
|
446
333
|
|
|
447
334
|
/**
|
|
@@ -450,9 +337,8 @@ export interface FlexTreeSequenceField<in out TTypes extends FlexAllowedTypes>
|
|
|
450
337
|
* @remarks
|
|
451
338
|
* Unboxes its content, so in schema aware APIs which do unboxing, the RequiredField itself will be skipped over and its content will be returned directly.
|
|
452
339
|
*/
|
|
453
|
-
export interface FlexTreeRequiredField
|
|
454
|
-
|
|
455
|
-
get content(): FlexTreeUnboxNodeUnion<TTypes>;
|
|
340
|
+
export interface FlexTreeRequiredField extends FlexTreeField {
|
|
341
|
+
get content(): FlexTreeUnknownUnboxed;
|
|
456
342
|
|
|
457
343
|
readonly editor: ValueFieldEditBuilder<FlexibleNodeContent>;
|
|
458
344
|
}
|
|
@@ -470,9 +356,8 @@ export interface FlexTreeRequiredField<in out TTypes extends FlexAllowedTypes>
|
|
|
470
356
|
* Better centralize the documentation about what kinds of merge semantics are available for field kinds.
|
|
471
357
|
* Maybe link editor?
|
|
472
358
|
*/
|
|
473
|
-
export interface FlexTreeOptionalField
|
|
474
|
-
|
|
475
|
-
get content(): FlexTreeUnboxNodeUnion<TTypes> | undefined;
|
|
359
|
+
export interface FlexTreeOptionalField extends FlexTreeField {
|
|
360
|
+
get content(): FlexTreeUnknownUnboxed | undefined;
|
|
476
361
|
|
|
477
362
|
readonly editor: OptionalFieldEditBuilder<FlexibleNodeContent>;
|
|
478
363
|
}
|
|
@@ -484,125 +369,18 @@ export interface FlexTreeOptionalField<in out TTypes extends FlexAllowedTypes>
|
|
|
484
369
|
/**
|
|
485
370
|
* Schema aware specialization of {@link FlexTreeField}.
|
|
486
371
|
*/
|
|
487
|
-
export type FlexTreeTypedField<
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
export type FlexTreeTypedFieldInner<
|
|
496
|
-
Kind extends FlexFieldKind,
|
|
497
|
-
Types extends FlexAllowedTypes,
|
|
498
|
-
> = Kind extends typeof FieldKinds.sequence
|
|
499
|
-
? FlexTreeSequenceField<Types>
|
|
500
|
-
: Kind extends typeof FieldKinds.required
|
|
501
|
-
? FlexTreeRequiredField<Types>
|
|
502
|
-
: Kind extends typeof FieldKinds.optional
|
|
503
|
-
? FlexTreeOptionalField<Types>
|
|
504
|
-
: FlexTreeField;
|
|
505
|
-
|
|
506
|
-
/**
|
|
507
|
-
* Schema aware specialization of {@link FlexTreeNode} for a given {@link FlexAllowedTypes}.
|
|
508
|
-
*/
|
|
509
|
-
export type FlexTreeTypedNodeUnion<T extends FlexAllowedTypes> =
|
|
510
|
-
T extends FlexList<FlexTreeNodeSchema>
|
|
511
|
-
? FlexTreeTypedNode<Assume<FlexListToUnion<T>, FlexTreeNodeSchema>>
|
|
512
|
-
: FlexTreeNode;
|
|
513
|
-
|
|
514
|
-
/**
|
|
515
|
-
* Schema aware specialization of {@link FlexTreeNode} for a given {@link FlexTreeNodeSchema}.
|
|
516
|
-
*/
|
|
517
|
-
export type FlexTreeTypedNode<TSchema extends FlexTreeNodeSchema> =
|
|
518
|
-
TSchema extends LeafNodeSchema
|
|
519
|
-
? FlexTreeLeafNode<TSchema>
|
|
520
|
-
: TSchema extends FlexMapNodeSchema
|
|
521
|
-
? FlexTreeMapNode<TSchema>
|
|
522
|
-
: TSchema extends FlexObjectNodeSchema
|
|
523
|
-
? FlexTreeObjectNode
|
|
524
|
-
: FlexTreeNode;
|
|
372
|
+
export type FlexTreeTypedField<Kind extends FlexFieldKind> =
|
|
373
|
+
Kind extends typeof FieldKinds.sequence
|
|
374
|
+
? FlexTreeSequenceField
|
|
375
|
+
: Kind extends typeof FieldKinds.required
|
|
376
|
+
? FlexTreeRequiredField
|
|
377
|
+
: Kind extends typeof FieldKinds.optional
|
|
378
|
+
? FlexTreeOptionalField
|
|
379
|
+
: FlexTreeField;
|
|
525
380
|
|
|
526
381
|
// #endregion
|
|
527
382
|
|
|
528
|
-
// #region Unbox
|
|
529
|
-
|
|
530
|
-
/**
|
|
531
|
-
* Schema aware unboxed field.
|
|
532
|
-
* @remarks
|
|
533
|
-
* Unboxes fields to their content if appropriate for the kind.
|
|
534
|
-
* Recursively unboxes that content (then its content etc.) as well if the node union does unboxing.
|
|
535
|
-
*/
|
|
536
|
-
export type FlexTreeUnboxField<
|
|
537
|
-
TSchema extends FlexFieldSchema,
|
|
538
|
-
// If "notEmpty", then optional fields will unbox to their content (not their content | undefined)
|
|
539
|
-
Emptiness extends "maybeEmpty" | "notEmpty" = "maybeEmpty",
|
|
540
|
-
> = FlexTreeUnboxFieldInner<TSchema["kind"], TSchema["allowedTypes"], Emptiness>;
|
|
541
|
-
|
|
542
|
-
/**
|
|
543
|
-
* Helper for implementing FlexTreeUnboxField.
|
|
544
|
-
*/
|
|
545
|
-
export type FlexTreeUnboxFieldInner<
|
|
546
|
-
Kind extends FlexFieldKind,
|
|
547
|
-
TTypes extends FlexAllowedTypes,
|
|
548
|
-
Emptiness extends "maybeEmpty" | "notEmpty",
|
|
549
|
-
> = Kind extends typeof FieldKinds.sequence
|
|
550
|
-
? FlexTreeSequenceField<TTypes>
|
|
551
|
-
: Kind extends typeof FieldKinds.required
|
|
552
|
-
? FlexTreeUnboxNodeUnion<TTypes>
|
|
553
|
-
: Kind extends typeof FieldKinds.optional
|
|
554
|
-
? FlexTreeUnboxNodeUnion<TTypes> | (Emptiness extends "notEmpty" ? never : undefined)
|
|
555
|
-
: // TODO: forbidden
|
|
556
|
-
unknown;
|
|
557
|
-
|
|
558
|
-
/**
|
|
559
|
-
* Schema aware unboxed union of tree types.
|
|
560
|
-
* @remarks
|
|
561
|
-
* Unboxes when not polymorphic.
|
|
562
|
-
* Recursively unboxes that content as well if the node kind does unboxing.
|
|
563
|
-
*/
|
|
564
|
-
export type FlexTreeUnboxNodeUnion<TTypes extends FlexAllowedTypes> = TTypes extends readonly [
|
|
565
|
-
LazyItem<infer InnerType>,
|
|
566
|
-
]
|
|
567
|
-
? InnerType extends FlexTreeNodeSchema
|
|
568
|
-
? FlexTreeUnboxNode<InnerType>
|
|
569
|
-
: InnerType extends Any
|
|
570
|
-
? FlexTreeNode
|
|
571
|
-
: // This case should not occur. If the result ever ends up unknown, look at places like this to debug.
|
|
572
|
-
unknown
|
|
573
|
-
: boolean extends IsArrayOfOne<TTypes>
|
|
574
|
-
? FlexTreeUnknownUnboxed // Unknown if this will unbox. This should mainly happen when TTypes is AllowedTypes.
|
|
575
|
-
: FlexTreeTypedNodeUnion<TTypes>; // Known to not be a single type, so known not to unbox.
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* `true` if T is known to be an array of one item.
|
|
579
|
-
* `false` if T is known not to be an array of one item.
|
|
580
|
-
* `boolean` if it is unknown if T is an array of one item or not.
|
|
581
|
-
*/
|
|
582
|
-
export type IsArrayOfOne<T extends readonly unknown[]> = T["length"] extends 1
|
|
583
|
-
? true
|
|
584
|
-
: 1 extends T["length"]
|
|
585
|
-
? boolean
|
|
586
|
-
: false;
|
|
587
|
-
|
|
588
|
-
/**
|
|
589
|
-
* Schema aware unboxed tree type.
|
|
590
|
-
* @remarks
|
|
591
|
-
* Unboxes if the node kind does unboxing.
|
|
592
|
-
* Recursively unboxes that content as well if it does unboxing.
|
|
593
|
-
*/
|
|
594
|
-
export type FlexTreeUnboxNode<TSchema extends FlexTreeNodeSchema> =
|
|
595
|
-
TSchema extends LeafNodeSchema
|
|
596
|
-
? TreeValue<TSchema["info"]>
|
|
597
|
-
: TSchema extends FlexMapNodeSchema
|
|
598
|
-
? FlexTreeMapNode<TSchema>
|
|
599
|
-
: TSchema extends FlexObjectNodeSchema
|
|
600
|
-
? FlexTreeObjectNode
|
|
601
|
-
: FlexTreeUnknownUnboxed;
|
|
602
|
-
|
|
603
383
|
/**
|
|
604
384
|
* Unboxed tree type for unknown schema cases.
|
|
605
385
|
*/
|
|
606
386
|
export type FlexTreeUnknownUnboxed = TreeValue | FlexTreeNode;
|
|
607
|
-
|
|
608
|
-
// #endregion
|
|
@@ -8,21 +8,11 @@ export {
|
|
|
8
8
|
type FlexTreeNode,
|
|
9
9
|
type FlexTreeEntity,
|
|
10
10
|
type FlexTreeTypedField,
|
|
11
|
-
type FlexibleFieldContent,
|
|
12
|
-
type FlexibleNodeContent,
|
|
13
|
-
type FlexTreeLeafNode,
|
|
14
|
-
type FlexTreeMapNode,
|
|
15
11
|
type FlexTreeOptionalField,
|
|
16
12
|
type FlexTreeRequiredField,
|
|
17
13
|
type FlexTreeSequenceField,
|
|
18
|
-
type FlexTreeObjectNode,
|
|
19
|
-
type AssignableFieldKinds,
|
|
20
|
-
type FlexTreeTypedNode,
|
|
21
|
-
type FlexTreeTypedNodeUnion,
|
|
22
|
-
type CheckTypesOverlap,
|
|
23
14
|
TreeStatus,
|
|
24
15
|
type FlexTreeUnknownUnboxed,
|
|
25
|
-
type FlexTreeUnboxField,
|
|
26
16
|
flexTreeMarker,
|
|
27
17
|
FlexTreeEntityKind,
|
|
28
18
|
isFlexTreeNode,
|
|
@@ -37,12 +27,16 @@ export {
|
|
|
37
27
|
visitIterableTreeWithState,
|
|
38
28
|
} from "./navigation.js";
|
|
39
29
|
|
|
40
|
-
export {
|
|
30
|
+
export {
|
|
31
|
+
getTreeContext,
|
|
32
|
+
type FlexTreeContext,
|
|
33
|
+
type FlexTreeHydratedContext,
|
|
34
|
+
Context,
|
|
35
|
+
ContextSlot,
|
|
36
|
+
} from "./context.js";
|
|
41
37
|
|
|
42
38
|
export { type FlexTreeNodeEvents } from "./treeEvents.js";
|
|
43
39
|
|
|
44
|
-
export type { FlexTreeUnboxNodeUnion } from "./flexTreeTypes.js";
|
|
45
|
-
|
|
46
40
|
export {
|
|
47
41
|
assertFlexTreeEntityNotFreed,
|
|
48
42
|
isFreedSymbol,
|
|
@@ -44,14 +44,14 @@ export function assertFlexTreeEntityNotFreed(entity: FlexTreeEntity): void {
|
|
|
44
44
|
* This is a base class for lazy (cursor based) UntypedEntity implementations, which uniformly handles cursors and anchors.
|
|
45
45
|
*/
|
|
46
46
|
export abstract class LazyEntity<TSchema = unknown, TAnchor = unknown>
|
|
47
|
-
implements FlexTreeEntity
|
|
47
|
+
implements FlexTreeEntity, IDisposable
|
|
48
48
|
{
|
|
49
49
|
readonly #lazyCursor: ITreeSubscriptionCursor;
|
|
50
50
|
public readonly [anchorSymbol]: TAnchor;
|
|
51
51
|
|
|
52
52
|
protected constructor(
|
|
53
53
|
public readonly context: Context,
|
|
54
|
-
public readonly
|
|
54
|
+
public readonly flexSchema: TSchema,
|
|
55
55
|
cursor: ITreeSubscriptionCursor,
|
|
56
56
|
anchor: TAnchor,
|
|
57
57
|
) {
|
|
@@ -109,12 +109,3 @@ export abstract class LazyEntity<TSchema = unknown, TAnchor = unknown>
|
|
|
109
109
|
*/
|
|
110
110
|
protected abstract [forgetAnchorSymbol](): void;
|
|
111
111
|
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Prevent Entities from inheriting members from Object.prototype including:
|
|
115
|
-
* '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__', '__proto__',
|
|
116
|
-
* 'hasOwnProperty', 'isPrototypeOf', 'valueOf', 'propertyIsEnumerable', 'toLocaleString' and 'toString'.
|
|
117
|
-
*
|
|
118
|
-
* This opens up more options for field names on struct nodes.
|
|
119
|
-
*/
|
|
120
|
-
Object.setPrototypeOf(LazyEntity.prototype, null);
|