@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
|
@@ -18,6 +18,10 @@ import {
|
|
|
18
18
|
type ValueSchema,
|
|
19
19
|
} from "../../core/index.js";
|
|
20
20
|
|
|
21
|
+
// TODO:
|
|
22
|
+
// The comparisons in this file seem redundant with those in comparison.ts.
|
|
23
|
+
// Rather than both existing, one of which just returns boolean and the other which returns additional details, a simple comparison which returns everything needed should be used.
|
|
24
|
+
|
|
21
25
|
/**
|
|
22
26
|
* @remarks
|
|
23
27
|
*
|
|
@@ -298,22 +302,9 @@ function trackFieldDiscrepancies(
|
|
|
298
302
|
a: TreeTypeSet,
|
|
299
303
|
b: TreeTypeSet,
|
|
300
304
|
): [TreeNodeSchemaIdentifier[], TreeNodeSchemaIdentifier[]] => {
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
if (a !== undefined && b !== undefined) {
|
|
306
|
-
const aDiff = [...a].filter((value) => !b.has(value));
|
|
307
|
-
const bDiff = [...b].filter((value) => !a.has(value));
|
|
308
|
-
return [aDiff, bDiff];
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
if (a !== undefined) {
|
|
312
|
-
return [[...a], []];
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
316
|
-
return [[], [...b!]];
|
|
305
|
+
const aDiff = [...a].filter((value) => !b.has(value));
|
|
306
|
+
const bDiff = [...b].filter((value) => !a.has(value));
|
|
307
|
+
return [aDiff, bDiff];
|
|
317
308
|
};
|
|
318
309
|
|
|
319
310
|
const allowedTypesDiscrepancies = findSetDiscrepancies(view.types, stored.types);
|
|
@@ -382,7 +382,10 @@ function makeModularChangeCodec(
|
|
|
382
382
|
});
|
|
383
383
|
const getChunk = (index: number): TreeChunk => {
|
|
384
384
|
assert(index < chunks.length, 0x898 /* out of bounds index for build chunk */);
|
|
385
|
-
return chunkFieldSingle(chunks[index] ?? oob(),
|
|
385
|
+
return chunkFieldSingle(chunks[index] ?? oob(), {
|
|
386
|
+
policy: defaultChunkPolicy,
|
|
387
|
+
idCompressor: context.idCompressor,
|
|
388
|
+
});
|
|
386
389
|
};
|
|
387
390
|
|
|
388
391
|
const map: ModularChangeset["builds"] = newTupleBTree();
|
|
@@ -87,6 +87,7 @@ import type {
|
|
|
87
87
|
NodeId,
|
|
88
88
|
TupleBTree,
|
|
89
89
|
} from "./modularChangeTypes.js";
|
|
90
|
+
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
90
91
|
|
|
91
92
|
/**
|
|
92
93
|
* Implementation of ChangeFamily which delegates work in a given field to the appropriate FieldKind
|
|
@@ -673,7 +674,7 @@ export class ModularChangeFamily
|
|
|
673
674
|
0x89a /* Unexpected destroys in change to invert */,
|
|
674
675
|
);
|
|
675
676
|
|
|
676
|
-
if ((change.change
|
|
677
|
+
if (hasConflicts(change.change)) {
|
|
677
678
|
return makeModularChangeset(
|
|
678
679
|
undefined,
|
|
679
680
|
undefined,
|
|
@@ -827,6 +828,10 @@ export class ModularChangeFamily
|
|
|
827
828
|
over: TaggedChange<ModularChangeset>,
|
|
828
829
|
revisionMetadata: RevisionMetadataSource,
|
|
829
830
|
): ModularChangeset {
|
|
831
|
+
if (hasConflicts(over.change)) {
|
|
832
|
+
return taggedChange.change;
|
|
833
|
+
}
|
|
834
|
+
|
|
830
835
|
const change = taggedChange.change;
|
|
831
836
|
const maxId = Math.max(change.maxId ?? -1, over.change.maxId ?? -1);
|
|
832
837
|
const idState: IdAllocationState = { maxId };
|
|
@@ -1845,7 +1850,7 @@ export function intoDelta(
|
|
|
1845
1850
|
const idAllocator = MemoizedIdRangeAllocator.fromNextId();
|
|
1846
1851
|
const rootDelta: Mutable<DeltaRoot> = {};
|
|
1847
1852
|
|
|
1848
|
-
if ((change
|
|
1853
|
+
if (!hasConflicts(change)) {
|
|
1849
1854
|
// If there are no constraint violations, then tree changes apply.
|
|
1850
1855
|
const fieldDeltas = intoDeltaImpl(
|
|
1851
1856
|
change.fieldChanges,
|
|
@@ -2466,15 +2471,20 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
|
|
|
2466
2471
|
public buildTrees(
|
|
2467
2472
|
firstId: ChangesetLocalId,
|
|
2468
2473
|
content: ITreeCursorSynchronous,
|
|
2474
|
+
idCompressor?: IIdCompressor,
|
|
2469
2475
|
): GlobalEditDescription {
|
|
2470
2476
|
if (content.mode === CursorLocationType.Fields && content.getFieldLength() === 0) {
|
|
2471
2477
|
return { type: "global" };
|
|
2472
2478
|
}
|
|
2473
2479
|
const builds: ChangeAtomIdBTree<TreeChunk> = newTupleBTree();
|
|
2480
|
+
const chunkCompressor = {
|
|
2481
|
+
policy: defaultChunkPolicy,
|
|
2482
|
+
idCompressor,
|
|
2483
|
+
};
|
|
2474
2484
|
const chunk =
|
|
2475
2485
|
content.mode === CursorLocationType.Fields
|
|
2476
|
-
? chunkFieldSingle(content,
|
|
2477
|
-
: chunkTree(content,
|
|
2486
|
+
? chunkFieldSingle(content, chunkCompressor)
|
|
2487
|
+
: chunkTree(content, chunkCompressor);
|
|
2478
2488
|
builds.set([undefined, firstId], chunk);
|
|
2479
2489
|
|
|
2480
2490
|
return {
|
|
@@ -17,7 +17,6 @@ import { fail } from "../util/index.js";
|
|
|
17
17
|
|
|
18
18
|
import { defaultSchemaPolicy } from "./default-schema/index.js";
|
|
19
19
|
import {
|
|
20
|
-
Any,
|
|
21
20
|
type FlexAllowedTypes,
|
|
22
21
|
FlexFieldSchema,
|
|
23
22
|
type FlexMapFieldSchema,
|
|
@@ -42,7 +41,7 @@ export function treeSchemaFromStoredSchema(schema: TreeStoredSchema): FlexTreeSc
|
|
|
42
41
|
if (innerSchema instanceof LeafNodeStoredSchema) {
|
|
43
42
|
map.set(
|
|
44
43
|
identifier,
|
|
45
|
-
LeafNodeSchema
|
|
44
|
+
new LeafNodeSchema({ name: "intoTypedSchema" }, identifier, innerSchema.leafValue),
|
|
46
45
|
);
|
|
47
46
|
} else if (innerSchema instanceof MapNodeStoredSchema) {
|
|
48
47
|
map.set(
|
|
@@ -93,9 +92,9 @@ export function fieldSchemaFromStoredSchema(
|
|
|
93
92
|
map: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>,
|
|
94
93
|
): FlexFieldSchema {
|
|
95
94
|
const kind = defaultSchemaPolicy.fieldKinds.get(schema.kind) ?? fail("missing field kind");
|
|
96
|
-
const types: FlexAllowedTypes =
|
|
97
|
-
schema.types
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
const types: FlexAllowedTypes = Array.from(
|
|
96
|
+
schema.types,
|
|
97
|
+
(v) => () => map.get(v) ?? fail("missing schema"),
|
|
98
|
+
);
|
|
100
99
|
return FlexFieldSchema.create(kind, types);
|
|
101
100
|
}
|
|
@@ -45,7 +45,7 @@ export function markEager<T>(t: T): T {
|
|
|
45
45
|
* To force a `"function"` item to be treated as an eager item, call `markEager` before putting it in the list.
|
|
46
46
|
* This is necessary e.g. when the eager list items are function types and the lazy items are functions that _return_ function types.
|
|
47
47
|
* `FlexList`s are processed by `normalizeFlexList` and `normalizeFlexListEager`.
|
|
48
|
-
* @public
|
|
48
|
+
* @system @public
|
|
49
49
|
*/
|
|
50
50
|
export type FlexList<Item = unknown> = readonly LazyItem<Item>[];
|
|
51
51
|
|
|
@@ -94,7 +94,7 @@ export type NormalizedLazyFlexList<Item> = (() => Item)[];
|
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
96
|
* Get the `Item` type from a `LazyItem<Item>`.
|
|
97
|
-
* @public
|
|
97
|
+
* @system @public
|
|
98
98
|
*/
|
|
99
99
|
export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result
|
|
100
100
|
? Result
|
|
@@ -120,7 +120,7 @@ export type FlexListToNonLazyArray<List extends FlexList> =
|
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
122
|
* Normalize FlexList type to a union.
|
|
123
|
-
* @public
|
|
123
|
+
* @system @public
|
|
124
124
|
*/
|
|
125
125
|
export type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
|
|
126
126
|
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
export {
|
|
7
7
|
type FlexTreeNodeSchema,
|
|
8
8
|
FlexFieldSchema,
|
|
9
|
-
Any,
|
|
10
9
|
allowedTypesToTypeSet,
|
|
11
10
|
type FlexAllowedTypes,
|
|
12
11
|
type LazyTreeNodeSchema,
|
|
@@ -23,8 +22,6 @@ export {
|
|
|
23
22
|
schemaIsLeaf,
|
|
24
23
|
schemaIsMap,
|
|
25
24
|
schemaIsObjectNode,
|
|
26
|
-
type NormalizeObjectNodeFields,
|
|
27
|
-
type NormalizeField,
|
|
28
25
|
intoStoredSchema,
|
|
29
26
|
allowedTypesSchemaSet,
|
|
30
27
|
intoStoredSchemaCollection,
|
|
@@ -47,4 +44,5 @@ export {
|
|
|
47
44
|
type NormalizeLazyItem,
|
|
48
45
|
type FlexListToUnion,
|
|
49
46
|
type ExtractItemType,
|
|
47
|
+
normalizeFlexListEager,
|
|
50
48
|
} from "./flexList.js";
|
|
@@ -22,7 +22,6 @@ import {
|
|
|
22
22
|
type FlexTreeNodeSchema,
|
|
23
23
|
LeafNodeSchema,
|
|
24
24
|
type SchemaCollection,
|
|
25
|
-
allowedTypesIsAny,
|
|
26
25
|
} from "./typedTreeSchema.js";
|
|
27
26
|
import type { Sourced } from "./view.js";
|
|
28
27
|
|
|
@@ -168,11 +167,11 @@ export function validateSchemaCollection(
|
|
|
168
167
|
validateField(
|
|
169
168
|
lintConfiguration,
|
|
170
169
|
collection,
|
|
171
|
-
tree.info,
|
|
170
|
+
tree.info as FlexFieldSchema,
|
|
172
171
|
() => `Map fields of "${identifier}" schema from library "${tree.builder.name}"`,
|
|
173
172
|
errors,
|
|
174
173
|
);
|
|
175
|
-
if ((tree.info.kind.multiplicity
|
|
174
|
+
if ((tree.info as FlexFieldSchema).kind.multiplicity === Multiplicity.Single) {
|
|
176
175
|
errors.push(
|
|
177
176
|
`Map fields of "${identifier}" schema from library "${tree.builder.name}" has kind with multiplicity "Single". This is invalid since it requires all possible field keys to have a value under them.`,
|
|
178
177
|
);
|
|
@@ -213,24 +212,23 @@ export function validateField(
|
|
|
213
212
|
errors: string[],
|
|
214
213
|
): void {
|
|
215
214
|
const types = field.allowedTypes;
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
errors.push(
|
|
222
|
-
`${describeField()} references type "${type.name}" from library "${
|
|
223
|
-
type.builder.name
|
|
224
|
-
}" which is not defined. Perhaps another type was intended, or that library needs to be added.`,
|
|
225
|
-
);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
if (types.length === 0 && lintConfiguration.rejectEmpty) {
|
|
215
|
+
|
|
216
|
+
const normalizedTypes = normalizeFlexListEager(types);
|
|
217
|
+
for (const type of normalizedTypes) {
|
|
218
|
+
const referenced = collection.nodeSchema.get(type.name);
|
|
219
|
+
if (referenced === undefined) {
|
|
229
220
|
errors.push(
|
|
230
|
-
`${describeField()}
|
|
221
|
+
`${describeField()} references type "${type.name}" from library "${
|
|
222
|
+
type.builder.name
|
|
223
|
+
}" which is not defined. Perhaps another type was intended, or that library needs to be added.`,
|
|
231
224
|
);
|
|
232
225
|
}
|
|
233
226
|
}
|
|
227
|
+
if (types.length === 0 && lintConfiguration.rejectEmpty) {
|
|
228
|
+
errors.push(
|
|
229
|
+
`${describeField()} requires children to have a type from a set of zero types. This means the field must always be empty.`,
|
|
230
|
+
);
|
|
231
|
+
}
|
|
234
232
|
|
|
235
233
|
const kind = field.kind;
|
|
236
234
|
const kindFromPolicy = defaultSchemaPolicy.fieldKinds.get(kind.identifier);
|
|
@@ -21,7 +21,6 @@ import {
|
|
|
21
21
|
identifierFieldKindIdentifier,
|
|
22
22
|
} from "../../core/index.js";
|
|
23
23
|
import {
|
|
24
|
-
type Assume,
|
|
25
24
|
type MakeNominal,
|
|
26
25
|
type Named,
|
|
27
26
|
compareSets,
|
|
@@ -29,6 +28,7 @@ import {
|
|
|
29
28
|
oneFromSet,
|
|
30
29
|
type requireAssignableTo,
|
|
31
30
|
filterIterable,
|
|
31
|
+
brand,
|
|
32
32
|
} from "../../util/index.js";
|
|
33
33
|
import { FieldKinds } from "../default-schema/index.js";
|
|
34
34
|
import type { FlexFieldKind, FullSchemaPolicy } from "../modular-schema/index.js";
|
|
@@ -42,12 +42,6 @@ export interface FlexObjectNodeFields {
|
|
|
42
42
|
readonly [key: string]: FlexFieldSchema;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
/**
|
|
46
|
-
*/
|
|
47
|
-
export type NormalizeObjectNodeFields<T extends FlexObjectNodeFields> = {
|
|
48
|
-
readonly [Property in keyof T]: NormalizeField<T[Property]>;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
45
|
/**
|
|
52
46
|
* A placeholder to use in {@link https://www.typescriptlang.org/docs/handbook/2/generics.html#generic-constraints | extends constraints} when using the real type breaks compilation of some recursive types due to {@link https://github.com/microsoft/TypeScript/issues/55758 | a design limitation of TypeScript}.
|
|
53
47
|
*
|
|
@@ -67,14 +61,11 @@ export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
|
67
61
|
* This can not be enforced using TypeScript since doing so breaks recursive type support.
|
|
68
62
|
* See note on SchemaBuilder.fieldRecursive.
|
|
69
63
|
*/
|
|
70
|
-
export abstract class TreeNodeSchemaBase<
|
|
71
|
-
const out Name extends string = string,
|
|
72
|
-
const out Specification = unknown,
|
|
73
|
-
> {
|
|
64
|
+
export abstract class TreeNodeSchemaBase<const out Specification = unknown> {
|
|
74
65
|
protected _typeCheck!: MakeNominal;
|
|
75
66
|
protected constructor(
|
|
76
67
|
public readonly builder: Named<string>,
|
|
77
|
-
public readonly name: TreeNodeSchemaIdentifier
|
|
68
|
+
public readonly name: TreeNodeSchemaIdentifier,
|
|
78
69
|
public readonly info: Specification,
|
|
79
70
|
public readonly stored: TreeNodeStoredSchema,
|
|
80
71
|
) {}
|
|
@@ -83,23 +74,17 @@ export abstract class TreeNodeSchemaBase<
|
|
|
83
74
|
|
|
84
75
|
/**
|
|
85
76
|
*/
|
|
86
|
-
export class FlexMapNodeSchema
|
|
87
|
-
const out Name extends string = string,
|
|
88
|
-
const out Specification extends Unenforced<FlexMapFieldSchema> = FlexMapFieldSchema,
|
|
89
|
-
> extends TreeNodeSchemaBase<Name, Specification> {
|
|
77
|
+
export class FlexMapNodeSchema extends TreeNodeSchemaBase {
|
|
90
78
|
public get mapFields(): FlexMapFieldSchema {
|
|
91
79
|
return this.info as FlexMapFieldSchema;
|
|
92
80
|
}
|
|
93
81
|
|
|
94
82
|
protected _typeCheck2?: MakeNominal;
|
|
95
|
-
public static create<
|
|
96
|
-
const Name extends string,
|
|
97
|
-
const Specification extends FlexMapFieldSchema,
|
|
98
|
-
>(
|
|
83
|
+
public static create<const Name extends string>(
|
|
99
84
|
builder: Named<string>,
|
|
100
85
|
name: TreeNodeSchemaIdentifier<Name>,
|
|
101
|
-
specification:
|
|
102
|
-
): FlexMapNodeSchema
|
|
86
|
+
specification: FlexMapFieldSchema,
|
|
87
|
+
): FlexMapNodeSchema {
|
|
103
88
|
return new FlexMapNodeSchema(
|
|
104
89
|
builder,
|
|
105
90
|
name,
|
|
@@ -115,26 +100,10 @@ export class FlexMapNodeSchema<
|
|
|
115
100
|
|
|
116
101
|
/**
|
|
117
102
|
*/
|
|
118
|
-
export class LeafNodeSchema<
|
|
119
|
-
const out Name extends string = string,
|
|
120
|
-
const out Specification extends Unenforced<ValueSchema> = ValueSchema,
|
|
121
|
-
> extends TreeNodeSchemaBase<Name, Specification> {
|
|
122
|
-
public get leafValue(): ValueSchema {
|
|
123
|
-
return this.info as ValueSchema;
|
|
124
|
-
}
|
|
125
|
-
|
|
103
|
+
export class LeafNodeSchema extends TreeNodeSchemaBase<ValueSchema> {
|
|
126
104
|
protected _typeCheck2?: MakeNominal;
|
|
127
|
-
public
|
|
128
|
-
builder
|
|
129
|
-
name: TreeNodeSchemaIdentifier<Name>,
|
|
130
|
-
specification: Specification,
|
|
131
|
-
): LeafNodeSchema<Name, Specification> {
|
|
132
|
-
return new LeafNodeSchema(
|
|
133
|
-
builder,
|
|
134
|
-
name,
|
|
135
|
-
specification,
|
|
136
|
-
new LeafNodeStoredSchema(specification),
|
|
137
|
-
);
|
|
105
|
+
public constructor(builder: Named<string>, name: string, specification: ValueSchema) {
|
|
106
|
+
super(builder, brand(name), specification, new LeafNodeStoredSchema(specification));
|
|
138
107
|
}
|
|
139
108
|
|
|
140
109
|
public override getFieldSchema(field: FieldKey): FlexFieldSchema {
|
|
@@ -144,28 +113,18 @@ export class LeafNodeSchema<
|
|
|
144
113
|
|
|
145
114
|
/**
|
|
146
115
|
*/
|
|
147
|
-
export class FlexObjectNodeSchema
|
|
148
|
-
const out Name extends string = string,
|
|
149
|
-
const out Specification extends Unenforced<FlexObjectNodeFields> = FlexObjectNodeFields,
|
|
150
|
-
> extends TreeNodeSchemaBase<Name, Specification> {
|
|
116
|
+
export class FlexObjectNodeSchema extends TreeNodeSchemaBase {
|
|
151
117
|
protected _typeCheck2?: MakeNominal;
|
|
152
118
|
public readonly identifierFieldKeys: readonly FieldKey[] = [];
|
|
153
119
|
|
|
154
|
-
public static create
|
|
155
|
-
const Name extends string,
|
|
156
|
-
const Specification extends FlexObjectNodeFields,
|
|
157
|
-
>(
|
|
120
|
+
public static create(
|
|
158
121
|
builder: Named<string>,
|
|
159
|
-
name: TreeNodeSchemaIdentifier
|
|
160
|
-
specification:
|
|
161
|
-
): FlexObjectNodeSchema
|
|
162
|
-
const objectNodeFieldsObject
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
NormalizeObjectNodeFields<Specification>,
|
|
166
|
-
FieldKey,
|
|
167
|
-
FlexFieldSchema
|
|
168
|
-
> = objectToMapTyped(objectNodeFieldsObject);
|
|
122
|
+
name: TreeNodeSchemaIdentifier,
|
|
123
|
+
specification: FlexObjectNodeFields,
|
|
124
|
+
): FlexObjectNodeSchema {
|
|
125
|
+
const objectNodeFieldsObject = normalizeStructFields(specification);
|
|
126
|
+
const objectNodeFields: ObjectToMap<FlexObjectNodeFields, FieldKey, FlexFieldSchema> =
|
|
127
|
+
objectToMapTyped(objectNodeFieldsObject);
|
|
169
128
|
return new FlexObjectNodeSchema(
|
|
170
129
|
builder,
|
|
171
130
|
name,
|
|
@@ -177,11 +136,9 @@ export class FlexObjectNodeSchema<
|
|
|
177
136
|
|
|
178
137
|
private constructor(
|
|
179
138
|
builder: Named<string>,
|
|
180
|
-
name: TreeNodeSchemaIdentifier
|
|
181
|
-
info:
|
|
182
|
-
public readonly objectNodeFieldsObject:
|
|
183
|
-
Assume<Specification, FlexObjectNodeFields>
|
|
184
|
-
>,
|
|
139
|
+
name: TreeNodeSchemaIdentifier,
|
|
140
|
+
info: FlexObjectNodeFields,
|
|
141
|
+
public readonly objectNodeFieldsObject: FlexObjectNodeFields,
|
|
185
142
|
// Allows reading fields through the normal map.
|
|
186
143
|
// Stricter typing caused Specification to no longer be covariant, so has been removed.
|
|
187
144
|
public readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>,
|
|
@@ -211,16 +168,9 @@ export class FlexObjectNodeSchema<
|
|
|
211
168
|
*/
|
|
212
169
|
export type FlexTreeNodeSchema = TreeNodeSchemaBase;
|
|
213
170
|
|
|
214
|
-
/**
|
|
215
|
-
* Convert FieldSchemaSpecification | undefined into TreeFieldSchema.
|
|
216
|
-
*/
|
|
217
|
-
export type NormalizeField<T extends FlexFieldSchema | undefined> = T extends FlexFieldSchema
|
|
218
|
-
? T
|
|
219
|
-
: FlexFieldSchema<typeof FieldKinds.forbidden, []>;
|
|
220
|
-
|
|
221
171
|
function normalizeStructFields<T extends FlexObjectNodeFields>(
|
|
222
172
|
fields: T,
|
|
223
|
-
):
|
|
173
|
+
): FlexObjectNodeFields {
|
|
224
174
|
const out: Record<string, FlexFieldSchema> = {};
|
|
225
175
|
// eslint-disable-next-line no-restricted-syntax
|
|
226
176
|
for (const key in fields) {
|
|
@@ -229,27 +179,18 @@ function normalizeStructFields<T extends FlexObjectNodeFields>(
|
|
|
229
179
|
out[key] = normalizeField(element);
|
|
230
180
|
}
|
|
231
181
|
}
|
|
232
|
-
return out
|
|
182
|
+
return out;
|
|
233
183
|
}
|
|
234
184
|
|
|
235
|
-
function normalizeField
|
|
185
|
+
function normalizeField(t: FlexFieldSchema | undefined): FlexFieldSchema {
|
|
236
186
|
if (t === undefined) {
|
|
237
|
-
return FlexFieldSchema.empty
|
|
187
|
+
return FlexFieldSchema.empty;
|
|
238
188
|
}
|
|
239
189
|
|
|
240
190
|
assert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);
|
|
241
|
-
return t
|
|
191
|
+
return t;
|
|
242
192
|
}
|
|
243
193
|
|
|
244
|
-
/**
|
|
245
|
-
* Allow any node (as long as it meets the schema for its own type).
|
|
246
|
-
*/
|
|
247
|
-
export const Any = "Any" as const;
|
|
248
|
-
/**
|
|
249
|
-
* Allow any node (as long as it meets the schema for its own type).
|
|
250
|
-
*/
|
|
251
|
-
export type Any = typeof Any;
|
|
252
|
-
|
|
253
194
|
/**
|
|
254
195
|
* Tree type, but can be wrapped in a function to allow referring to types before they are declared.
|
|
255
196
|
* This makes recursive and co-recursive types possible.
|
|
@@ -258,17 +199,8 @@ export type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema)
|
|
|
258
199
|
|
|
259
200
|
/**
|
|
260
201
|
* Types for use in fields.
|
|
261
|
-
*
|
|
262
|
-
* "Any" is boxed in an array to allow use as variadic parameter.
|
|
263
202
|
*/
|
|
264
|
-
export type FlexAllowedTypes = readonly
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Checks if an {@link FlexAllowedTypes} is {@link (Any:type)}.
|
|
268
|
-
*/
|
|
269
|
-
export function allowedTypesIsAny(t: FlexAllowedTypes): t is readonly [Any] {
|
|
270
|
-
return t.length === 1 && t[0] === Any;
|
|
271
|
-
}
|
|
203
|
+
export type FlexAllowedTypes = readonly LazyItem<FlexTreeNodeSchema>[];
|
|
272
204
|
|
|
273
205
|
/**
|
|
274
206
|
* Subset of TreeFieldSchema thats legal in maps.
|
|
@@ -292,10 +224,7 @@ export type FlexMapFieldSchema = FlexFieldSchema<
|
|
|
292
224
|
*
|
|
293
225
|
* @sealed
|
|
294
226
|
*/
|
|
295
|
-
export class FlexFieldSchema<
|
|
296
|
-
out TKind extends FlexFieldKind = FlexFieldKind,
|
|
297
|
-
const out TTypes extends Unenforced<FlexAllowedTypes> = FlexAllowedTypes,
|
|
298
|
-
> {
|
|
227
|
+
export class FlexFieldSchema<out TKind extends FlexFieldKind = FlexFieldKind> {
|
|
299
228
|
/**
|
|
300
229
|
* Schema for a field which must always be empty.
|
|
301
230
|
*/
|
|
@@ -306,23 +235,10 @@ export class FlexFieldSchema<
|
|
|
306
235
|
* @privateRemarks
|
|
307
236
|
* Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).
|
|
308
237
|
*/
|
|
309
|
-
public static create<TKind extends FlexFieldKind
|
|
238
|
+
public static create<TKind extends FlexFieldKind>(
|
|
310
239
|
kind: TKind,
|
|
311
|
-
allowedTypes:
|
|
312
|
-
): FlexFieldSchema<TKind
|
|
313
|
-
return new FlexFieldSchema(kind, allowedTypes);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Constructs a TreeFieldSchema, but missing the extends clause which breaks most recursive types.
|
|
318
|
-
* @remarks
|
|
319
|
-
* `Types` here must extend `AllowedTypes`, but this cannot be enforced with an "extends" clause: see {@link Unenforced} for details.
|
|
320
|
-
* Prefer {@link FlexFieldSchema.create} when possible.
|
|
321
|
-
*/
|
|
322
|
-
public static createUnsafe<
|
|
323
|
-
TKind extends FlexFieldKind,
|
|
324
|
-
const Types extends Unenforced<FlexAllowedTypes>,
|
|
325
|
-
>(kind: TKind, allowedTypes: Types): FlexFieldSchema<TKind, Types> {
|
|
240
|
+
allowedTypes: FlexAllowedTypes,
|
|
241
|
+
): FlexFieldSchema<TKind> {
|
|
326
242
|
return new FlexFieldSchema(kind, allowedTypes);
|
|
327
243
|
}
|
|
328
244
|
|
|
@@ -344,14 +260,12 @@ export class FlexFieldSchema<
|
|
|
344
260
|
*/
|
|
345
261
|
private constructor(
|
|
346
262
|
public readonly kind: TKind,
|
|
347
|
-
public readonly allowedTypes:
|
|
263
|
+
public readonly allowedTypes: FlexAllowedTypes,
|
|
348
264
|
) {
|
|
349
265
|
// Since this class can't have the desired extends clause, do some extra runtime validation:
|
|
350
266
|
assert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);
|
|
351
267
|
for (const allowedType of allowedTypes) {
|
|
352
|
-
if (allowedType
|
|
353
|
-
assert(allowedTypes.length === 1, 0x7bd /* Invalid Any in allowedTypes */);
|
|
354
|
-
} else if (typeof allowedType !== "function") {
|
|
268
|
+
if (typeof allowedType !== "function") {
|
|
355
269
|
assert(
|
|
356
270
|
allowedType instanceof TreeNodeSchemaBase,
|
|
357
271
|
0x7be /* Invalid entry in allowedTypes */,
|
|
@@ -365,7 +279,7 @@ export class FlexFieldSchema<
|
|
|
365
279
|
return {
|
|
366
280
|
names: allowedTypesToTypeSet(input),
|
|
367
281
|
schema,
|
|
368
|
-
monomorphicChildType:
|
|
282
|
+
monomorphicChildType: oneFromSet(schema),
|
|
369
283
|
};
|
|
370
284
|
});
|
|
371
285
|
|
|
@@ -444,15 +358,12 @@ export class FlexFieldSchema<
|
|
|
444
358
|
* See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.
|
|
445
359
|
* See {@link FlexAllowedTypes} for a compile time optimized version.
|
|
446
360
|
*/
|
|
447
|
-
export type AllowedTypeSet =
|
|
361
|
+
export type AllowedTypeSet = ReadonlySet<FlexTreeNodeSchema>;
|
|
448
362
|
|
|
449
363
|
/**
|
|
450
364
|
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
451
365
|
*/
|
|
452
366
|
export function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {
|
|
453
|
-
if (allowedTypesIsAny(t)) {
|
|
454
|
-
return Any;
|
|
455
|
-
}
|
|
456
367
|
const list: FlexTreeNodeSchema[] = t.map((value: LazyItem<FlexTreeNodeSchema>) => {
|
|
457
368
|
if (typeof value === "function") {
|
|
458
369
|
return value();
|
|
@@ -467,9 +378,6 @@ export function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {
|
|
|
467
378
|
*/
|
|
468
379
|
export function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet {
|
|
469
380
|
const list = allowedTypesSchemaSet(t);
|
|
470
|
-
if (list === Any) {
|
|
471
|
-
return undefined;
|
|
472
|
-
}
|
|
473
381
|
const names = Array.from(list, (type) => {
|
|
474
382
|
assert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);
|
|
475
383
|
return type.name;
|
|
@@ -19,27 +19,18 @@ import {
|
|
|
19
19
|
isNeverTree,
|
|
20
20
|
} from "../modular-schema/index.js";
|
|
21
21
|
|
|
22
|
-
import {
|
|
23
|
-
type FlexFieldSchema,
|
|
24
|
-
type FlexTreeSchema,
|
|
25
|
-
intoStoredSchema,
|
|
26
|
-
} from "./typedTreeSchema.js";
|
|
27
|
-
|
|
28
22
|
/**
|
|
29
23
|
* A collection of View information for schema, including policy.
|
|
30
24
|
*/
|
|
31
|
-
export class ViewSchema
|
|
25
|
+
export class ViewSchema {
|
|
32
26
|
/**
|
|
33
|
-
* Cached conversion of
|
|
27
|
+
* @param storedSchema - Cached conversion of view schema into a stored schema.
|
|
34
28
|
*/
|
|
35
|
-
public readonly storedSchema: TreeStoredSchema;
|
|
36
29
|
public constructor(
|
|
37
30
|
public readonly policy: FullSchemaPolicy,
|
|
38
31
|
public readonly adapters: Adapters,
|
|
39
|
-
public readonly
|
|
40
|
-
) {
|
|
41
|
-
this.storedSchema = intoStoredSchema(schema);
|
|
42
|
-
}
|
|
32
|
+
public readonly storedSchema: TreeStoredSchema,
|
|
33
|
+
) {}
|
|
43
34
|
|
|
44
35
|
/**
|
|
45
36
|
* Determines the compatibility of a stored document
|
package/src/index.ts
CHANGED
|
@@ -28,6 +28,7 @@ export {
|
|
|
28
28
|
ObjectNodeStoredSchema,
|
|
29
29
|
MapNodeStoredSchema,
|
|
30
30
|
LeafNodeStoredSchema,
|
|
31
|
+
type RevertibleFactory,
|
|
31
32
|
} from "./core/index.js";
|
|
32
33
|
export { type Brand } from "./util/index.js";
|
|
33
34
|
|
|
@@ -50,7 +51,6 @@ export {
|
|
|
50
51
|
type SharedTreeOptions,
|
|
51
52
|
ForestType,
|
|
52
53
|
type SharedTreeContentSnapshot,
|
|
53
|
-
type RevertibleFactory,
|
|
54
54
|
type SharedTreeFormatOptions,
|
|
55
55
|
SharedTreeFormatVersion,
|
|
56
56
|
Tree,
|
|
@@ -93,6 +93,7 @@ export {
|
|
|
93
93
|
type FieldProps,
|
|
94
94
|
type InternalTreeNode,
|
|
95
95
|
type WithType,
|
|
96
|
+
type NodeChangedData,
|
|
96
97
|
// Types not really intended for public use, but used in links.
|
|
97
98
|
// Can not be moved to internalTypes since doing so causes app code to throw errors like:
|
|
98
99
|
// Error: src/simple-tree/objectNode.ts:72:1 - (ae-unresolved-link) The @link reference could not be resolved: The package "@fluidframework/tree" does not have an export "TreeNodeApi"
|
|
@@ -124,6 +125,9 @@ export {
|
|
|
124
125
|
test_RecursiveObject,
|
|
125
126
|
test_RecursiveObject_base,
|
|
126
127
|
test_RecursiveObjectPojoMode,
|
|
128
|
+
// Beta APIs
|
|
129
|
+
TreeBeta,
|
|
130
|
+
type TreeChangeEventsBeta,
|
|
127
131
|
// Back to normal types
|
|
128
132
|
type JsonTreeSchema,
|
|
129
133
|
type JsonSchemaId,
|
package/src/packageVersion.ts
CHANGED