@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
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
FieldKinds,
|
|
8
|
-
type FlexFieldKind,
|
|
9
|
-
type FlexFieldSchema,
|
|
10
|
-
type FlexImplicitAllowedTypes,
|
|
11
|
-
type FlexImplicitFieldSchema,
|
|
12
|
-
type FlexObjectNodeSchema,
|
|
13
|
-
type NormalizeAllowedTypes,
|
|
14
|
-
SchemaBuilderBase,
|
|
15
|
-
type SchemaBuilderOptions,
|
|
16
|
-
type Unenforced,
|
|
17
|
-
} from "../feature-libraries/index.js";
|
|
18
|
-
import type { RestrictiveReadonlyRecord } from "../util/index.js";
|
|
19
|
-
|
|
20
|
-
import { leaf } from "./leafDomain.js";
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Builds schema libraries, and the schema within them.
|
|
24
|
-
*
|
|
25
|
-
* @remarks
|
|
26
|
-
* Fields, when inferred from {@link FlexImplicitFieldSchema}, default to the `Required` {@link FlexFieldKind} (except for in Maps, which default to `Optional`).
|
|
27
|
-
* Implicitly includes `leaf` schema library by default.
|
|
28
|
-
*
|
|
29
|
-
* This type has some built in defaults which impact compatibility.
|
|
30
|
-
* This includes which {@link FlexFieldKind}s it uses.
|
|
31
|
-
* To ensure that these defaults can be updated without compatibility issues,
|
|
32
|
-
* this class is versioned: the number in its name indicates its compatibility,
|
|
33
|
-
* and if its defaults are changed to ones that would not be compatible with a version of the application using the previous versions,
|
|
34
|
-
* this number will be updated to make it impossible for an app to implicitly do a compatibility breaking change by updating this package.
|
|
35
|
-
* Major package version updates are allowed to break API compatibility, but must not break content compatibility unless a corresponding code change is made in the app to opt in.
|
|
36
|
-
*
|
|
37
|
-
* @privateRemarks
|
|
38
|
-
* TODO: Maybe rename to DefaultSchemaBuilder1 because of the versioning implications above.
|
|
39
|
-
* Same applies to SchemaBuilder.
|
|
40
|
-
* TODO: figure out a way to link `leaf` above without breaking API Extractor.
|
|
41
|
-
* @sealed
|
|
42
|
-
* @deprecated Users of this class should either use {@link SchemaBuilderBase} and explicitly work with {@link FlexFieldSchema}, or use SchemaFactory and work at its higher level of abstraction.
|
|
43
|
-
*/
|
|
44
|
-
export class SchemaBuilder<
|
|
45
|
-
TScope extends string = string,
|
|
46
|
-
TName extends string | number = string,
|
|
47
|
-
> extends SchemaBuilderBase<TScope, typeof FieldKinds.required, TName> {
|
|
48
|
-
public constructor(options: SchemaBuilderOptions<TScope>) {
|
|
49
|
-
super(FieldKinds.required, {
|
|
50
|
-
...options,
|
|
51
|
-
libraries: [...(options.libraries ?? []), leaf.library],
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
56
|
-
public override objectRecursive<
|
|
57
|
-
const Name extends TName,
|
|
58
|
-
const T extends Unenforced<RestrictiveReadonlyRecord<string, FlexImplicitFieldSchema>>,
|
|
59
|
-
>(name: Name, t: T) {
|
|
60
|
-
return this.object(
|
|
61
|
-
name,
|
|
62
|
-
t as unknown as RestrictiveReadonlyRecord<string, FlexImplicitFieldSchema>,
|
|
63
|
-
) as unknown as FlexObjectNodeSchema<`${TScope}.${Name}`, T>;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Define a schema for an {@link FieldKinds.optional|optional field}.
|
|
68
|
-
* @remarks
|
|
69
|
-
* Shorthand for passing `FieldKinds.optional` to {@link FlexFieldSchema.create}.
|
|
70
|
-
*
|
|
71
|
-
* This method is also available as an instance method on {@link SchemaBuilder}.
|
|
72
|
-
*/
|
|
73
|
-
public static optional = fieldHelper(FieldKinds.optional);
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Define a schema for an {@link FieldKinds.optional|optional field}.
|
|
77
|
-
* @remarks
|
|
78
|
-
* Shorthand for passing `FieldKinds.optional` to {@link FlexFieldSchema.create}.
|
|
79
|
-
*
|
|
80
|
-
* Since this creates a {@link FlexFieldSchema} (and not a {@link FlexTreeNodeSchema}), the resulting schema is structurally typed, and not impacted by the {@link SchemaBuilderBase.scope}:
|
|
81
|
-
* therefore this method is the same as the static version.
|
|
82
|
-
*/
|
|
83
|
-
public readonly optional = SchemaBuilder.optional;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Define a schema for a {@link FieldKinds.required|required field}.
|
|
87
|
-
* @remarks
|
|
88
|
-
* Shorthand for passing `FieldKinds.required` to {@link FlexFieldSchema.create}.
|
|
89
|
-
*
|
|
90
|
-
* This method is also available as an instance method on {@link SchemaBuilder}.
|
|
91
|
-
*/
|
|
92
|
-
public static required = fieldHelper(FieldKinds.required);
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Define a schema for a {@link FieldKinds.required|required field}.
|
|
96
|
-
* @remarks
|
|
97
|
-
* Shorthand for passing `FieldKinds.required` to {@link FlexFieldSchema.create}.
|
|
98
|
-
* Note that `FieldKinds.required` is the current default field kind, so APIs accepting {@link FlexImplicitFieldSchema}
|
|
99
|
-
* can be passed the `allowedTypes` and will implicitly wrap it up in a {@link FieldKinds.required|required field}.
|
|
100
|
-
*
|
|
101
|
-
* Since this creates a {@link FlexFieldSchema} (and not a {@link FlexTreeNodeSchema}), the resulting schema is structurally typed, and not impacted by the {@link SchemaBuilderBase.scope}:
|
|
102
|
-
* therefore this method is the same as the static version.
|
|
103
|
-
*/
|
|
104
|
-
public readonly required = SchemaBuilder.required;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Define a schema for a {@link FieldKinds.sequence|sequence field}.
|
|
108
|
-
* @remarks
|
|
109
|
-
* Shorthand for passing `FieldKinds.sequence` to {@link FlexFieldSchema.create}.
|
|
110
|
-
*
|
|
111
|
-
* This method is also available as an instance method on {@link SchemaBuilder}
|
|
112
|
-
*/
|
|
113
|
-
public static sequence = fieldHelper(FieldKinds.sequence);
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Define a schema for a {@link FieldKinds.sequence|sequence field}.
|
|
117
|
-
* @remarks
|
|
118
|
-
* Shorthand for passing `FieldKinds.sequence` to {@link FlexFieldSchema.create}.
|
|
119
|
-
*
|
|
120
|
-
* Since this creates a {@link FlexFieldSchema} (and not a {@link FlexTreeNodeSchema}), the resulting schema is structurally typed, and not impacted by the {@link SchemaBuilderBase.scope}:
|
|
121
|
-
* therefore this method is the same as the static version.
|
|
122
|
-
*/
|
|
123
|
-
public readonly sequence = SchemaBuilder.sequence;
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Define a schema for an {@link FieldKinds.identifier|identifier field}.
|
|
127
|
-
* @remarks
|
|
128
|
-
* Shorthand for passing `FieldKinds.identifier` to {@link TreeFieldSchema.create}.
|
|
129
|
-
*
|
|
130
|
-
* This method is also available as an instance method on {@link SchemaBuilder}
|
|
131
|
-
*/
|
|
132
|
-
public static identifier = fieldHelper(FieldKinds.identifier);
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Define a schema for a {@link FieldKinds.identifier|identifier field}.
|
|
136
|
-
* @remarks
|
|
137
|
-
* Shorthand for passing `FieldKinds.identifier` to {@link TreeFieldSchema.create}.
|
|
138
|
-
*
|
|
139
|
-
* Since this creates a {@link TreeFieldSchema} (and not a {@link FlexTreeNodeSchema}), the resulting schema is structurally typed, and not impacted by the {@link SchemaBuilderBase.scope}:
|
|
140
|
-
* therefore this method is the same as the static version.
|
|
141
|
-
*/
|
|
142
|
-
public readonly identifier = SchemaBuilder.identifier;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Returns a wrapper around SchemaBuilder.field for a specific FieldKind.
|
|
147
|
-
*/
|
|
148
|
-
function fieldHelper<Kind extends FlexFieldKind>(kind: Kind) {
|
|
149
|
-
return <const T extends FlexImplicitAllowedTypes>(
|
|
150
|
-
allowedTypes: T,
|
|
151
|
-
): FlexFieldSchema<Kind, NormalizeAllowedTypes<T>> =>
|
|
152
|
-
SchemaBuilder.field(kind, allowedTypes);
|
|
153
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* This file exists and is package exported to aid in testing of exporting recursive types across package boundaries.
|
|
8
|
-
* Sometimes when TypeScript generates d.ts files, they type check significantly differently than the original source (One example of this: https://github.com/microsoft/TypeScript/issues/20979).
|
|
9
|
-
* Unfortunately our recursive schema types are an example of types that have this kind of issue: the d.ts files tend to get "any" instead of the recursive type reference.
|
|
10
|
-
* Currently we do not have tooling in place to test this in our test suite, and exporting these types here is a temporary crutch to aid in diagnosing this issue.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { FieldKinds, FlexFieldSchema, SchemaBuilderBase } from "../feature-libraries/index.js";
|
|
14
|
-
|
|
15
|
-
import { leaf } from "./leafDomain.js";
|
|
16
|
-
|
|
17
|
-
const builder = new SchemaBuilderBase(FieldKinds.optional, { scope: "Test Recursive Domain" });
|
|
18
|
-
|
|
19
|
-
export const recursiveObject = builder.objectRecursive("object", {
|
|
20
|
-
recursive: FlexFieldSchema.createUnsafe(FieldKinds.optional, [() => recursiveObject]),
|
|
21
|
-
number: leaf.number,
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
export const library = builder.intoLibrary();
|
|
25
|
-
|
|
26
|
-
{
|
|
27
|
-
const b = new SchemaBuilderBase(FieldKinds.optional, { scope: "Test Recursive Domain" });
|
|
28
|
-
const node = b.objectRecursive("object", {
|
|
29
|
-
child: FlexFieldSchema.createUnsafe(FieldKinds.optional, [() => node]),
|
|
30
|
-
});
|
|
31
|
-
const _field = FlexFieldSchema.createUnsafe(FieldKinds.optional, [node]);
|
|
32
|
-
// All these cause TSC to "RangeError: Maximum call stack size exceeded"
|
|
33
|
-
// const _field4 = FlexFieldSchema.create(FieldKinds.optional, [node]);
|
|
34
|
-
// const _field2 = b.optional(node);
|
|
35
|
-
// const _field3 = SchemaBuilder.optional(node);
|
|
36
|
-
// const schema = b.intoSchema(field);
|
|
37
|
-
// const schema = b.intoSchema(_field);
|
|
38
|
-
}
|
package/src/events/fence.json
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { ValueSchema } from "../core/index.js";
|
|
7
|
-
|
|
8
|
-
import { FieldKinds } from "./default-schema/index.js";
|
|
9
|
-
import { SchemaBuilderBase, type SchemaBuilderOptions } from "./schemaBuilderBase.js";
|
|
10
|
-
import { LeafNodeSchema } from "./typed-schema/index.js";
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Extends {@link SchemaBuilderBase} with functionality only used to create built in special libraries.
|
|
14
|
-
* Defaults to "required" fields.
|
|
15
|
-
* @privateRemarks Should not be package exported.
|
|
16
|
-
*/
|
|
17
|
-
export class SchemaBuilderInternal<
|
|
18
|
-
TScope extends `com.fluidframework.${string}`,
|
|
19
|
-
> extends SchemaBuilderBase<TScope, typeof FieldKinds.required> {
|
|
20
|
-
public constructor(options: SchemaBuilderOptions<TScope>) {
|
|
21
|
-
super(FieldKinds.required, options);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Define (and add to this library) a {@link TreeNodeSchema} for a node that wraps a value.
|
|
26
|
-
* Such nodes will be implicitly unwrapped to the value in some APIs.
|
|
27
|
-
*
|
|
28
|
-
* The name must be unique among all TreeNodeSchema in the the document schema.
|
|
29
|
-
*
|
|
30
|
-
* In addition to the normal properties of all nodes (having a schema for example),
|
|
31
|
-
* Leaf nodes only contain a value.
|
|
32
|
-
* Leaf nodes cannot have fields.
|
|
33
|
-
*
|
|
34
|
-
* TODO: Maybe ban undefined from allowed values here.
|
|
35
|
-
* TODO: Decide and document how unwrapping works for non-primitive terminals.
|
|
36
|
-
*/
|
|
37
|
-
public leaf<Name extends string, const T extends ValueSchema>(
|
|
38
|
-
name: Name,
|
|
39
|
-
t: T,
|
|
40
|
-
): LeafNodeSchema<`${TScope}.${Name}`, T> {
|
|
41
|
-
const schema = LeafNodeSchema.create(this, this.scoped(name), t);
|
|
42
|
-
this.addNodeSchema(schema);
|
|
43
|
-
return schema;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
-
|
|
8
|
-
import type { Adapters, TreeNodeSchemaIdentifier } from "../core/index.js";
|
|
9
|
-
import {
|
|
10
|
-
type Assume,
|
|
11
|
-
type RestrictiveReadonlyRecord,
|
|
12
|
-
transformObjectMap,
|
|
13
|
-
} from "../util/index.js";
|
|
14
|
-
|
|
15
|
-
import { defaultSchemaPolicy } from "./default-schema/index.js";
|
|
16
|
-
import type { FlexFieldKind } from "./modular-schema/index.js";
|
|
17
|
-
import {
|
|
18
|
-
Any,
|
|
19
|
-
type FlexAllowedTypes,
|
|
20
|
-
FlexFieldSchema,
|
|
21
|
-
type FlexList,
|
|
22
|
-
type FlexMapFieldSchema,
|
|
23
|
-
FlexMapNodeSchema,
|
|
24
|
-
FlexObjectNodeSchema,
|
|
25
|
-
type FlexTreeNodeSchema,
|
|
26
|
-
type FlexTreeSchema,
|
|
27
|
-
type SchemaCollection,
|
|
28
|
-
type SchemaLibraryData,
|
|
29
|
-
type SchemaLintConfiguration,
|
|
30
|
-
TreeNodeSchemaBase,
|
|
31
|
-
type Unenforced,
|
|
32
|
-
aggregateSchemaLibraries,
|
|
33
|
-
schemaLintDefault,
|
|
34
|
-
} from "./typed-schema/index.js";
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Configuration for a SchemaBuilder.
|
|
38
|
-
*/
|
|
39
|
-
export interface SchemaBuilderOptions<TScope extends string = string> {
|
|
40
|
-
/**
|
|
41
|
-
* Prefix appended to the identifiers of all {@link FlexTreeNodeSchema} produced by this builder.
|
|
42
|
-
* Use of [Reverse domain name notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation) or a UUIDv4 is recommended to avoid collisions.
|
|
43
|
-
*/
|
|
44
|
-
scope: TScope;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Name used to refer to this builder in error messages.
|
|
48
|
-
* Has no impact on the actual generated schema.
|
|
49
|
-
* Defaults to scope.
|
|
50
|
-
*/
|
|
51
|
-
name?: string;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Optional configuration for "linting".
|
|
55
|
-
* See {@link SchemaLintConfiguration}. Currently defaults to enabling all lints.
|
|
56
|
-
*/
|
|
57
|
-
lint?: Partial<SchemaLintConfiguration>;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Libraries to include in this one.
|
|
61
|
-
*
|
|
62
|
-
* @remarks
|
|
63
|
-
* Unlike adding of individual schema, adding of libraries is idempotent.
|
|
64
|
-
* If a single library is added multiple times (even indirectly via libraries it was added into),
|
|
65
|
-
* only a single copy will be included, so they will not conflict.
|
|
66
|
-
* This allows adding any library this one depends on without risk of conflicts for users of this library.
|
|
67
|
-
* Contents within the added libraries can still conflict however.
|
|
68
|
-
* Such errors will be reported when finalizing this builder into a library or document schema.
|
|
69
|
-
*/
|
|
70
|
-
libraries?: SchemaLibrary[];
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Builds schema libraries, and the schema within them.
|
|
75
|
-
* *
|
|
76
|
-
* @privateRemarks
|
|
77
|
-
* This class does not directly depend on any specific field kinds,
|
|
78
|
-
* or bake in any defaults that might have compatibility implications.
|
|
79
|
-
* All use of such implicit defaults is done by subclasses, which thus get versioning implications.
|
|
80
|
-
*/
|
|
81
|
-
export class SchemaBuilderBase<
|
|
82
|
-
TScope extends string,
|
|
83
|
-
TDefaultKind extends FlexFieldKind,
|
|
84
|
-
TName extends number | string = string,
|
|
85
|
-
> {
|
|
86
|
-
private readonly lintConfiguration: SchemaLintConfiguration;
|
|
87
|
-
private readonly libraries: Set<SchemaLibraryData>;
|
|
88
|
-
private finalized: boolean = false;
|
|
89
|
-
private readonly treeNodeSchema: Map<TreeNodeSchemaIdentifier, FlexTreeNodeSchema> =
|
|
90
|
-
new Map();
|
|
91
|
-
private readonly adapters: Adapters = {};
|
|
92
|
-
/**
|
|
93
|
-
* Prefix appended to the identifiers of all {@link FlexTreeNodeSchema} produced by this builder.
|
|
94
|
-
*/
|
|
95
|
-
public readonly scope: TScope;
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Used in error messages to identify content produced by this builder.
|
|
99
|
-
*/
|
|
100
|
-
public readonly name: string;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* @param defaultKind - The default field kind to use when inferring a {@link FlexFieldSchema} from {@link FlexImplicitAllowedTypes}.
|
|
104
|
-
*/
|
|
105
|
-
public constructor(
|
|
106
|
-
private readonly defaultKind: TDefaultKind,
|
|
107
|
-
options: SchemaBuilderOptions<TScope>,
|
|
108
|
-
) {
|
|
109
|
-
this.name = options.name ?? options.scope;
|
|
110
|
-
this.lintConfiguration = { ...schemaLintDefault, ...options.lint };
|
|
111
|
-
this.libraries = new Set();
|
|
112
|
-
this.addLibraries(...(options.libraries ?? []));
|
|
113
|
-
this.scope = options.scope;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
protected scoped<Name extends TName>(
|
|
117
|
-
name: Name,
|
|
118
|
-
): TreeNodeSchemaIdentifier<`${TScope}.${Name}`> {
|
|
119
|
-
return `${this.scope}.${name}` as TreeNodeSchemaIdentifier<`${TScope}.${Name}`>;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Adds more libraries to this one.
|
|
124
|
-
*
|
|
125
|
-
* Unlike adding of individual schema, adding of libraries is idempotent.
|
|
126
|
-
* If a single library is added multiple times (even indirectly via libraries it was added into),
|
|
127
|
-
* only a single copy will be included, so they will not conflict.
|
|
128
|
-
* This allows adding any library this one depends on without risk of conflicts for users of this library.
|
|
129
|
-
* Contents within the added libraries can still conflict however.
|
|
130
|
-
* Such errors will be reported when finalizing this builder into a library of document schema.
|
|
131
|
-
*/
|
|
132
|
-
private addLibraries(...libraries: SchemaLibrary[]): void {
|
|
133
|
-
for (const libs of libraries) {
|
|
134
|
-
for (const lib of libs.libraries) {
|
|
135
|
-
this.libraries.add(lib);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
protected addNodeSchema<T extends FlexTreeNodeSchema>(schema: T): void {
|
|
141
|
-
assert(
|
|
142
|
-
!this.treeNodeSchema.has(schema.name),
|
|
143
|
-
0x799 /* Conflicting TreeNodeSchema names */,
|
|
144
|
-
);
|
|
145
|
-
this.treeNodeSchema.set(schema.name, schema);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
private finalizeCommon(field?: FlexFieldSchema): SchemaLibraryData {
|
|
149
|
-
assert(!this.finalized, 0x79a /* SchemaBuilder can only be finalized once. */);
|
|
150
|
-
this.finalized = true;
|
|
151
|
-
this.libraries.add({
|
|
152
|
-
name: this.name,
|
|
153
|
-
nodeSchema: this.treeNodeSchema,
|
|
154
|
-
adapters: this.adapters,
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
// Check for errors and aggregate data
|
|
158
|
-
return aggregateSchemaLibraries(this.name, this.lintConfiguration, this.libraries, field);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Produce SchemaLibraries which capture the content added to this builder, as well as any additional SchemaLibraries that were added to it.
|
|
163
|
-
* May only be called once after adding content to builder is complete.
|
|
164
|
-
*/
|
|
165
|
-
public intoLibrary(): SchemaLibrary {
|
|
166
|
-
const aggregated = this.finalizeCommon();
|
|
167
|
-
|
|
168
|
-
// Full library set (instead of just aggregated) is kept since it is required to handle deduplication of libraries included through different paths.
|
|
169
|
-
return { nodeSchema: aggregated.nodeSchema, libraries: this.libraries };
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Produce a TreeSchema which captures the content added to this builder, any additional SchemaLibraries that were added to it and a root field.
|
|
174
|
-
* Can be used with schematize to provide schema aware access to document content.
|
|
175
|
-
*
|
|
176
|
-
* @remarks
|
|
177
|
-
* May only be called once after adding content to builder is complete.
|
|
178
|
-
*/
|
|
179
|
-
public intoSchema<const TSchema extends FlexImplicitFieldSchema>(
|
|
180
|
-
root: TSchema,
|
|
181
|
-
): FlexTreeSchema<NormalizeField<TSchema, TDefaultKind>> {
|
|
182
|
-
// return this.toDocumentSchemaInternal(normalizeField(root, DefaultFieldKind));
|
|
183
|
-
const field: NormalizeField<TSchema, TDefaultKind> = this.normalizeField(root);
|
|
184
|
-
const library = this.finalizeCommon(field);
|
|
185
|
-
|
|
186
|
-
const typed: FlexTreeSchema<NormalizeField<TSchema, TDefaultKind>> = {
|
|
187
|
-
nodeSchema: library.nodeSchema,
|
|
188
|
-
adapters: library.adapters,
|
|
189
|
-
rootFieldSchema: field,
|
|
190
|
-
policy: defaultSchemaPolicy,
|
|
191
|
-
};
|
|
192
|
-
return typed;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Define (and add to this library) a {@link FlexObjectNodeSchema}.
|
|
197
|
-
*
|
|
198
|
-
* The name must be unique among all TreeNodeSchema in the the document schema.
|
|
199
|
-
*/
|
|
200
|
-
public object<
|
|
201
|
-
const Name extends TName,
|
|
202
|
-
const T extends RestrictiveReadonlyRecord<string, FlexImplicitFieldSchema>,
|
|
203
|
-
>(
|
|
204
|
-
name: Name,
|
|
205
|
-
t: T,
|
|
206
|
-
): FlexObjectNodeSchema<
|
|
207
|
-
`${TScope}.${Name}`,
|
|
208
|
-
{ [key in keyof T]: NormalizeField<T[key], TDefaultKind> }
|
|
209
|
-
> {
|
|
210
|
-
const schema = FlexObjectNodeSchema.create(
|
|
211
|
-
this,
|
|
212
|
-
this.scoped(name),
|
|
213
|
-
transformObjectMap(t, (field): FlexFieldSchema => this.normalizeField(field)) as {
|
|
214
|
-
[key in keyof T]: NormalizeField<T[key], TDefaultKind>;
|
|
215
|
-
},
|
|
216
|
-
);
|
|
217
|
-
this.addNodeSchema(schema);
|
|
218
|
-
return schema;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Same as `object` but with less type safety and works for recursive objects.
|
|
223
|
-
* Reduced type safety is a side effect of a workaround for a TypeScript limitation.
|
|
224
|
-
*
|
|
225
|
-
* See {@link Unenforced} for details.
|
|
226
|
-
*
|
|
227
|
-
* TODO: Make this work with ImplicitFieldSchema.
|
|
228
|
-
*/
|
|
229
|
-
public objectRecursive<
|
|
230
|
-
const Name extends TName,
|
|
231
|
-
const T extends Unenforced<RestrictiveReadonlyRecord<string, FlexImplicitFieldSchema>>,
|
|
232
|
-
>(name: Name, t: T): FlexObjectNodeSchema<`${TScope}.${Name}`, T> {
|
|
233
|
-
return this.object(
|
|
234
|
-
name,
|
|
235
|
-
t as unknown as RestrictiveReadonlyRecord<string, FlexImplicitFieldSchema>,
|
|
236
|
-
) as unknown as FlexObjectNodeSchema<`${TScope}.${Name}`, T>;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Define (and add to this library) a {@link FlexMapNodeSchema}.
|
|
241
|
-
*/
|
|
242
|
-
public map<Name extends TName, const T extends FlexMapFieldSchema>(
|
|
243
|
-
name: Name,
|
|
244
|
-
fieldSchema: T,
|
|
245
|
-
): FlexMapNodeSchema<`${TScope}.${Name}`, T> {
|
|
246
|
-
const schema = FlexMapNodeSchema.create(this, this.scoped(name), fieldSchema);
|
|
247
|
-
this.addNodeSchema(schema);
|
|
248
|
-
return schema;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Same as `map` but with less type safety and works for recursive objects.
|
|
253
|
-
* Reduced type safety is a side effect of a workaround for a TypeScript limitation.
|
|
254
|
-
*
|
|
255
|
-
* See {@link Unenforced} for details.
|
|
256
|
-
*
|
|
257
|
-
* TODO: Make this work with ImplicitFieldSchema.
|
|
258
|
-
*/
|
|
259
|
-
public mapRecursive<Name extends TName, const T extends Unenforced<FlexMapFieldSchema>>(
|
|
260
|
-
name: Name,
|
|
261
|
-
t: T,
|
|
262
|
-
): FlexMapNodeSchema<`${TScope}.${Name}`, T> {
|
|
263
|
-
return this.map(name, t as FlexMapFieldSchema) as FlexMapNodeSchema<
|
|
264
|
-
`${TScope}.${Name}`,
|
|
265
|
-
T
|
|
266
|
-
>;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Define a {@link FlexFieldSchema}.
|
|
271
|
-
*
|
|
272
|
-
* @param kind - The [kind](https://en.wikipedia.org/wiki/Kind_(type_theory)) of this field.
|
|
273
|
-
* Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.
|
|
274
|
-
* @param allowedTypes - What types of children are allowed in this field.
|
|
275
|
-
* @returns a {@link FlexFieldSchema} which can be used as a object field (see {@link SchemaBuilderBase.object}),
|
|
276
|
-
* a map field (see {@link SchemaBuilderBase.map}), a field node (see {@link SchemaBuilderBase.fieldNode}) or the root field (see {@link SchemaBuilderBase.intoSchema}).
|
|
277
|
-
*
|
|
278
|
-
* @privateRemarks
|
|
279
|
-
* TODO:
|
|
280
|
-
* If a solution to TreeFieldSchema not being able to have extends clauses gets found,
|
|
281
|
-
* consider just having users do `new TreeFieldSchema` instead?
|
|
282
|
-
*/
|
|
283
|
-
public static field<Kind extends FlexFieldKind, T extends FlexImplicitAllowedTypes>(
|
|
284
|
-
kind: Kind,
|
|
285
|
-
allowedTypes: T,
|
|
286
|
-
): FlexFieldSchema<Kind, NormalizeAllowedTypes<T>> {
|
|
287
|
-
return FlexFieldSchema.create(kind, normalizeAllowedTypes(allowedTypes));
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* Define a schema for a field.
|
|
292
|
-
* Same as {@link SchemaBuilderBase.field} but is less type safe and supports recursive types.
|
|
293
|
-
* This API is less safe to work around a [limitation of TypeScript](https://github.com/microsoft/TypeScript/issues/55758).
|
|
294
|
-
*
|
|
295
|
-
* T must extends `AllowedTypes`: This cannot be enforced via TypeScript since such an "extends" clauses cause recursive types to error with:
|
|
296
|
-
* "'theSchema' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."
|
|
297
|
-
*
|
|
298
|
-
* TODO: Try and find a way to provide a more specific type without triggering the above error.
|
|
299
|
-
*/
|
|
300
|
-
public static fieldRecursive<
|
|
301
|
-
Kind extends FlexFieldKind,
|
|
302
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments
|
|
303
|
-
T extends FlexList<Unenforced<FlexTreeNodeSchema>>,
|
|
304
|
-
>(kind: Kind, ...allowedTypes: T): FlexFieldSchema<Kind, T> {
|
|
305
|
-
return FlexFieldSchema.createUnsafe(kind, allowedTypes);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
/**
|
|
309
|
-
* Normalizes an {@link FlexImplicitFieldSchema} into a {@link FlexFieldSchema} using this schema builder's `defaultKind`.
|
|
310
|
-
*/
|
|
311
|
-
protected normalizeField<TSchema extends FlexImplicitFieldSchema>(
|
|
312
|
-
schema: TSchema,
|
|
313
|
-
): NormalizeField<TSchema, TDefaultKind> {
|
|
314
|
-
return normalizeField(schema, this.defaultKind);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Schema information collected by a SchemaBuilder, including referenced libraries.
|
|
320
|
-
* Can be aggregated into other libraries by adding to their builders.
|
|
321
|
-
*/
|
|
322
|
-
export interface SchemaLibrary extends SchemaCollection {
|
|
323
|
-
/**
|
|
324
|
-
* Schema data aggregated from a collection of libraries by a SchemaBuilder.
|
|
325
|
-
*/
|
|
326
|
-
readonly libraries: ReadonlySet<SchemaLibraryData>;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Generalized version of AllowedTypes allowing for more concise expressions in some cases.
|
|
331
|
-
*/
|
|
332
|
-
export type FlexImplicitAllowedTypes = FlexAllowedTypes | FlexTreeNodeSchema | Any;
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* Normalizes an {@link FlexImplicitAllowedTypes} into {@link FlexAllowedTypes}.
|
|
336
|
-
*/
|
|
337
|
-
export type NormalizeAllowedTypes<TSchema extends FlexImplicitAllowedTypes> =
|
|
338
|
-
TSchema extends FlexTreeNodeSchema
|
|
339
|
-
? readonly [TSchema]
|
|
340
|
-
: TSchema extends Any
|
|
341
|
-
? readonly [Any]
|
|
342
|
-
: TSchema;
|
|
343
|
-
|
|
344
|
-
/**
|
|
345
|
-
* Normalizes an {@link FlexImplicitAllowedTypes} into {@link FlexAllowedTypes}.
|
|
346
|
-
*/
|
|
347
|
-
export function normalizeAllowedTypes<TSchema extends FlexImplicitAllowedTypes>(
|
|
348
|
-
schema: TSchema,
|
|
349
|
-
): NormalizeAllowedTypes<TSchema> {
|
|
350
|
-
if (schema === Any) {
|
|
351
|
-
return [Any] as unknown as NormalizeAllowedTypes<TSchema>;
|
|
352
|
-
}
|
|
353
|
-
if (schema instanceof TreeNodeSchemaBase) {
|
|
354
|
-
return [schema] as unknown as NormalizeAllowedTypes<TSchema>;
|
|
355
|
-
}
|
|
356
|
-
assert(Array.isArray(schema), 0x7c6 /* invalid ImplicitAllowedTypes */);
|
|
357
|
-
return schema as unknown as NormalizeAllowedTypes<TSchema>;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/**
|
|
361
|
-
* Normalizes an {@link FlexImplicitFieldSchema} into a {@link FlexFieldSchema}.
|
|
362
|
-
*/
|
|
363
|
-
export type NormalizeField<
|
|
364
|
-
TSchema extends FlexImplicitFieldSchema,
|
|
365
|
-
TDefault extends FlexFieldKind,
|
|
366
|
-
> = TSchema extends FlexFieldSchema
|
|
367
|
-
? TSchema
|
|
368
|
-
: FlexFieldSchema<
|
|
369
|
-
TDefault,
|
|
370
|
-
NormalizeAllowedTypes<Assume<TSchema, FlexImplicitAllowedTypes>>
|
|
371
|
-
>;
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* Normalizes an {@link FlexImplicitFieldSchema} into a {@link FlexFieldSchema}.
|
|
375
|
-
*/
|
|
376
|
-
export function normalizeField<
|
|
377
|
-
TSchema extends FlexImplicitFieldSchema,
|
|
378
|
-
TDefault extends FlexFieldKind,
|
|
379
|
-
>(schema: TSchema, defaultKind: TDefault): NormalizeField<TSchema, TDefault> {
|
|
380
|
-
if (schema instanceof FlexFieldSchema) {
|
|
381
|
-
return schema as NormalizeField<TSchema, TDefault>;
|
|
382
|
-
}
|
|
383
|
-
const allowedTypes = normalizeAllowedTypes(schema);
|
|
384
|
-
return FlexFieldSchema.create(defaultKind, allowedTypes) as unknown as NormalizeField<
|
|
385
|
-
TSchema,
|
|
386
|
-
TDefault
|
|
387
|
-
>;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
/**
|
|
391
|
-
* Type that when combined with a default {@link FlexFieldKind} can be normalized into a {@link FlexFieldSchema}.
|
|
392
|
-
*/
|
|
393
|
-
export type FlexImplicitFieldSchema = FlexFieldSchema | FlexImplicitAllowedTypes;
|