@fluidframework/tree 2.4.0-294316 → 2.4.0-297385
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/api-report/tree.alpha.api.md +58 -28
- package/api-report/tree.beta.api.md +38 -27
- package/api-report/tree.legacy.alpha.api.md +38 -27
- package/api-report/tree.legacy.public.api.md +38 -27
- package/api-report/tree.public.api.md +38 -27
- package/dist/alpha.d.ts +6 -0
- package/dist/beta.d.ts +3 -0
- package/dist/core/change-family/changeFamily.d.ts +2 -2
- package/dist/core/change-family/changeFamily.d.ts.map +1 -1
- package/dist/core/change-family/changeFamily.js.map +1 -1
- package/dist/core/change-family/editBuilder.d.ts +3 -2
- package/dist/core/change-family/editBuilder.d.ts.map +1 -1
- package/dist/core/change-family/editBuilder.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +2 -1
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/utils.js +1 -1
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +7 -0
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +9 -0
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +1 -2
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +2 -2
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +13 -2
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +1 -539
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +7 -14
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +3 -3
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +2 -3
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +18 -20
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +4 -7
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +5 -31
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +4 -4
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +12 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +179 -60
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +10 -9
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +9 -7
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -8
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +32 -20
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/dist/feature-libraries/sequence-field/invert.d.ts +6 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +25 -9
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.js +1 -13
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +2 -4
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/index.js +1 -19
- package/dist/feature-libraries/typed-schema/index.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +0 -266
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +1 -1
- package/dist/internalTypes.d.ts.map +1 -1
- package/dist/internalTypes.js.map +1 -1
- package/dist/legacy.d.ts +3 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +3 -0
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
- 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 -3
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +1 -40
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +2 -11
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +8 -7
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +16 -8
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +19 -2
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +11 -3
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +4 -4
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +15 -11
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +71 -41
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +119 -86
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +9 -13
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +21 -25
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +4 -4
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +1 -1
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +2 -2
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +1 -1
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +11 -13
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.js +1 -1
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +6 -6
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +15 -2
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/simpleSchema.d.ts +14 -10
- package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +12 -6
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +4 -4
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +8 -6
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +6 -10
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/{lib/feature-libraries/typed-schema → dist/simple-tree/api}/view.d.ts +4 -11
- package/dist/simple-tree/api/view.d.ts.map +1 -0
- package/dist/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/dist/simple-tree/api/view.js.map +1 -0
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +7 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +147 -14
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +32 -20
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/context.d.ts +55 -0
- package/dist/simple-tree/core/context.d.ts.map +1 -0
- package/dist/simple-tree/core/context.js +60 -0
- package/dist/simple-tree/core/context.js.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.js +36 -0
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/dist/simple-tree/core/index.d.ts +7 -3
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +16 -7
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/schemaCaching.d.ts +5 -13
- package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/dist/simple-tree/core/schemaCaching.js +16 -45
- package/dist/simple-tree/core/schemaCaching.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +94 -58
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/core/types.d.ts +0 -5
- 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/unhydratedFlexTree.d.ts +139 -0
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/dist/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +112 -132
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/dist/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/dist/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/dist/simple-tree/core/walkSchema.js +34 -0
- package/dist/simple-tree/core/walkSchema.js.map +1 -0
- package/dist/simple-tree/createContext.d.ts +11 -0
- package/dist/simple-tree/createContext.d.ts.map +1 -0
- package/dist/simple-tree/createContext.js +25 -0
- package/dist/simple-tree/createContext.js.map +1 -0
- package/dist/simple-tree/index.d.ts +3 -4
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +7 -7
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +1 -0
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +1 -2
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +4 -4
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +9 -5
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +8 -8
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +33 -14
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/objectNodeTypes.d.ts +7 -3
- package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/proxies.d.ts +1 -2
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +6 -22
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +2 -2
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts +6 -36
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +58 -142
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +2 -2
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts +13 -5
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +19 -10
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +4 -4
- package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/walkFieldSchema.d.ts +11 -0
- package/dist/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/dist/simple-tree/walkFieldSchema.js +17 -0
- package/dist/simple-tree/walkFieldSchema.js.map +1 -0
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/typeUtils.d.ts +14 -45
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/lib/alpha.d.ts +6 -0
- package/lib/beta.d.ts +3 -0
- package/lib/core/change-family/changeFamily.d.ts +2 -2
- package/lib/core/change-family/changeFamily.d.ts.map +1 -1
- package/lib/core/change-family/changeFamily.js.map +1 -1
- package/lib/core/change-family/editBuilder.d.ts +3 -2
- package/lib/core/change-family/editBuilder.d.ts.map +1 -1
- package/lib/core/change-family/editBuilder.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +2 -1
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/utils.js +1 -1
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +7 -0
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +9 -0
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +1 -2
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +2 -2
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +13 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +1 -532
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +7 -14
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +3 -3
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +2 -3
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +18 -20
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +4 -7
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +4 -6
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js +4 -4
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +12 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +180 -61
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +10 -9
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +9 -7
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -8
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +32 -20
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/lib/feature-libraries/sequence-field/invert.d.ts +6 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +25 -9
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.js +0 -11
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +2 -4
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/index.js +0 -3
- package/lib/feature-libraries/typed-schema/index.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +1 -253
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internalTypes.d.ts +1 -1
- package/lib/internalTypes.d.ts.map +1 -1
- package/lib/internalTypes.js.map +1 -1
- package/lib/legacy.d.ts +3 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +3 -0
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
- 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 -2
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +1 -40
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +1 -9
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +8 -7
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +19 -11
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +19 -2
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +11 -4
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +4 -4
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +15 -11
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +71 -41
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +122 -89
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +9 -13
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +22 -26
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +4 -4
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +2 -2
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +2 -2
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +1 -1
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +14 -16
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.js +1 -1
- package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +6 -6
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +15 -2
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/simpleSchema.d.ts +14 -10
- package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +12 -6
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +4 -4
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +10 -8
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +6 -10
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/{dist/feature-libraries/typed-schema → lib/simple-tree/api}/view.d.ts +4 -11
- package/lib/simple-tree/api/view.d.ts.map +1 -0
- package/lib/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/lib/simple-tree/api/view.js.map +1 -0
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +7 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +147 -14
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +37 -25
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/context.d.ts +55 -0
- package/lib/simple-tree/core/context.d.ts.map +1 -0
- package/lib/simple-tree/core/context.js +55 -0
- package/lib/simple-tree/core/context.js.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.js +32 -0
- package/lib/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/lib/simple-tree/core/index.d.ts +7 -3
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +6 -2
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/schemaCaching.d.ts +5 -13
- package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/lib/simple-tree/core/schemaCaching.js +13 -39
- package/lib/simple-tree/core/schemaCaching.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +89 -54
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/core/types.d.ts +0 -5
- 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/unhydratedFlexTree.d.ts +139 -0
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/lib/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +110 -128
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/lib/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/lib/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/lib/simple-tree/core/walkSchema.js +29 -0
- package/lib/simple-tree/core/walkSchema.js.map +1 -0
- package/lib/simple-tree/createContext.d.ts +11 -0
- package/lib/simple-tree/createContext.d.ts.map +1 -0
- package/lib/simple-tree/createContext.js +21 -0
- package/lib/simple-tree/createContext.js.map +1 -0
- package/lib/simple-tree/index.d.ts +3 -4
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +3 -4
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +1 -0
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +3 -4
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +4 -4
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +12 -8
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +8 -8
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +36 -17
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/objectNodeTypes.d.ts +7 -3
- package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/proxies.d.ts +1 -2
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +7 -22
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +2 -2
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts +6 -36
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +61 -142
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +4 -4
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts +13 -5
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +21 -12
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +4 -4
- package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/walkFieldSchema.d.ts +11 -0
- package/lib/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/lib/simple-tree/walkFieldSchema.js +13 -0
- package/lib/simple-tree/walkFieldSchema.js.map +1 -0
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/typeUtils.d.ts +14 -45
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +32 -23
- package/src/core/change-family/changeFamily.ts +5 -2
- package/src/core/change-family/editBuilder.ts +3 -2
- package/src/core/rebase/changeRebaser.ts +6 -1
- package/src/core/rebase/utils.ts +1 -1
- package/src/core/schema-stored/schema.ts +17 -0
- package/src/core/tree/anchorSet.ts +3 -4
- package/src/core/tree/detachedFieldIndex.ts +14 -3
- package/src/core/tree/detachedFieldIndexTypes.ts +1 -1
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +92 -47
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +7 -7
- package/src/feature-libraries/editableTreeBinder.ts +2 -915
- package/src/feature-libraries/flex-tree/context.ts +7 -20
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +2 -18
- package/src/feature-libraries/flex-tree/lazyEntity.ts +1 -4
- package/src/feature-libraries/flex-tree/lazyField.ts +22 -78
- package/src/feature-libraries/flex-tree/lazyNode.ts +24 -39
- package/src/feature-libraries/flex-tree/utilities.ts +1 -1
- package/src/feature-libraries/index.ts +3 -71
- package/src/feature-libraries/mitigatedChangeFamily.ts +11 -4
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +218 -175
- package/src/feature-libraries/optional-field/optionalField.ts +21 -17
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +2 -10
- package/src/feature-libraries/sequence-field/compose.ts +67 -58
- package/src/feature-libraries/sequence-field/invert.ts +30 -6
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +65 -19
- package/src/feature-libraries/typed-schema/flexList.ts +3 -84
- package/src/feature-libraries/typed-schema/index.ts +1 -33
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +0 -458
- package/src/index.ts +6 -0
- package/src/internalTypes.ts +0 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +3 -3
- package/src/shared-tree/index.ts +4 -8
- package/src/shared-tree/schematizeTree.ts +2 -56
- package/src/shared-tree/schematizingTreeView.ts +34 -15
- package/src/shared-tree/sharedTree.ts +39 -9
- package/src/shared-tree/sharedTreeChangeFamily.ts +5 -1
- package/src/shared-tree/sharedTreeEditBuilder.ts +23 -12
- package/src/shared-tree/treeCheckout.ts +232 -134
- package/src/shared-tree-core/branch.ts +26 -40
- package/src/shared-tree-core/defaultResubmitMachine.ts +4 -4
- package/src/shared-tree-core/editManager.ts +2 -1
- package/src/shared-tree-core/sharedTreeCore.ts +4 -2
- package/src/simple-tree/api/create.ts +18 -20
- package/src/simple-tree/api/getJsonSchema.ts +3 -3
- package/src/simple-tree/api/getSimpleSchema.ts +2 -2
- package/src/simple-tree/api/index.ts +2 -0
- package/src/simple-tree/api/schemaFactory.ts +41 -12
- package/src/simple-tree/api/schemaFactoryRecursive.ts +3 -6
- package/src/simple-tree/api/simpleSchema.ts +15 -10
- package/src/simple-tree/api/tree.ts +15 -9
- package/src/simple-tree/api/treeNodeApi.ts +12 -10
- package/src/simple-tree/api/verboseTree.ts +6 -12
- package/src/{feature-libraries/typed-schema → simple-tree/api}/view.ts +9 -22
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +11 -2
- package/src/simple-tree/arrayNode.ts +202 -53
- package/src/simple-tree/core/context.ts +78 -0
- package/src/simple-tree/core/getOrCreateNode.ts +38 -0
- package/src/simple-tree/core/index.ts +11 -7
- package/src/simple-tree/core/schemaCaching.ts +13 -50
- package/src/simple-tree/core/treeNodeKernel.ts +117 -78
- package/src/simple-tree/core/treeNodeSchema.ts +35 -1
- package/src/simple-tree/core/types.ts +0 -5
- package/src/{feature-libraries/flex-map-tree/mapTreeNode.ts → simple-tree/core/unhydratedFlexTree.ts} +167 -210
- package/src/simple-tree/{walkSchema.ts → core/walkSchema.ts} +12 -34
- package/src/simple-tree/createContext.ts +24 -0
- package/src/simple-tree/index.ts +5 -2
- package/src/simple-tree/leafNodeSchema.ts +3 -9
- package/src/simple-tree/mapNode.ts +20 -17
- package/src/simple-tree/objectNode.ts +63 -38
- package/src/simple-tree/objectNodeTypes.ts +8 -5
- package/src/simple-tree/proxies.ts +8 -26
- package/src/simple-tree/schemaTypes.ts +2 -2
- package/src/simple-tree/toFlexSchema.ts +71 -204
- package/src/simple-tree/toMapTree.ts +5 -5
- package/src/simple-tree/treeNodeValid.ts +28 -22
- package/src/simple-tree/typesUnsafe.ts +4 -4
- package/src/simple-tree/walkFieldSchema.ts +19 -0
- package/src/util/index.ts +1 -5
- package/src/util/typeUtils.ts +14 -56
- package/dist/feature-libraries/fieldGenerator.d.ts +0 -43
- package/dist/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/dist/feature-libraries/fieldGenerator.js +0 -13
- package/dist/feature-libraries/fieldGenerator.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/dist/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.js +0 -14
- package/dist/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.js +0 -67
- package/dist/feature-libraries/storedToViewSchema.js.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js +0 -160
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.js +0 -14
- package/dist/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/dist/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/view.js.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/dist/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.js +0 -29
- package/dist/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/dist/simple-tree/walkSchema.d.ts.map +0 -1
- package/dist/simple-tree/walkSchema.js +0 -49
- package/dist/simple-tree/walkSchema.js.map +0 -1
- package/lib/feature-libraries/fieldGenerator.d.ts +0 -43
- package/lib/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/lib/feature-libraries/fieldGenerator.js +0 -12
- package/lib/feature-libraries/fieldGenerator.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/lib/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.js +0 -6
- package/lib/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.js +0 -62
- package/lib/feature-libraries/storedToViewSchema.js.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +0 -153
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.js +0 -10
- package/lib/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/lib/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/view.js.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/lib/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.js +0 -25
- package/lib/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/lib/simple-tree/walkSchema.d.ts.map +0 -1
- package/lib/simple-tree/walkSchema.js +0 -43
- package/lib/simple-tree/walkSchema.js.map +0 -1
- package/src/feature-libraries/fieldGenerator.ts +0 -47
- package/src/feature-libraries/flex-map-tree/index.ts +0 -14
- package/src/feature-libraries/storedToViewSchema.ts +0 -100
- package/src/feature-libraries/typed-schema/schemaCollection.ts +0 -254
- package/src/feature-libraries/typed-schema/typeUtils.ts +0 -29
- package/src/simple-tree/getSimpleFieldSchema.ts +0 -36
|
@@ -49,33 +49,17 @@ export function markEager<T>(t: T): T {
|
|
|
49
49
|
*/
|
|
50
50
|
export type FlexList<Item = unknown> = readonly LazyItem<Item>[];
|
|
51
51
|
|
|
52
|
-
/**
|
|
53
|
-
* Given a `FlexList` of eager and lazy items, return an equivalent list where all items are lazy.
|
|
54
|
-
*/
|
|
55
|
-
export function normalizeFlexListLazy<List extends FlexList>(
|
|
56
|
-
t: List,
|
|
57
|
-
): FlexListToLazyArray<List> {
|
|
58
|
-
return t.map((value: LazyItem) => {
|
|
59
|
-
if (isLazy(value)) {
|
|
60
|
-
return value;
|
|
61
|
-
}
|
|
62
|
-
return () => value;
|
|
63
|
-
}) as FlexListToLazyArray<List>;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
52
|
/**
|
|
67
53
|
* Given a `FlexList` of eager and lazy items, return an equivalent list where all items are eager.
|
|
68
54
|
*/
|
|
69
|
-
export function normalizeFlexListEager<
|
|
70
|
-
t:
|
|
71
|
-
): FlexListToNonLazyArray<List> {
|
|
72
|
-
const data: readonly unknown[] = t.map((value: LazyItem) => {
|
|
55
|
+
export function normalizeFlexListEager<T>(t: FlexList<T>): T[] {
|
|
56
|
+
const data: T[] = t.map((value: LazyItem<T>) => {
|
|
73
57
|
if (isLazy(value)) {
|
|
74
58
|
return value();
|
|
75
59
|
}
|
|
76
60
|
return value;
|
|
77
61
|
});
|
|
78
|
-
return data
|
|
62
|
+
return data;
|
|
79
63
|
}
|
|
80
64
|
|
|
81
65
|
/**
|
|
@@ -86,12 +70,6 @@ export function normalizeFlexListEager<List extends FlexList>(
|
|
|
86
70
|
*/
|
|
87
71
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
88
72
|
|
|
89
|
-
/**
|
|
90
|
-
*/
|
|
91
|
-
export type NormalizedFlexList<Item> = readonly Item[];
|
|
92
|
-
|
|
93
|
-
export type NormalizedLazyFlexList<Item> = (() => Item)[];
|
|
94
|
-
|
|
95
73
|
/**
|
|
96
74
|
* Get the `Item` type from a `LazyItem<Item>`.
|
|
97
75
|
* @system @public
|
|
@@ -100,67 +78,8 @@ export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Re
|
|
|
100
78
|
? Result
|
|
101
79
|
: Item;
|
|
102
80
|
|
|
103
|
-
/**
|
|
104
|
-
*/
|
|
105
|
-
export type ExtractListItemType<List extends FlexList> = List extends FlexList<infer Item>
|
|
106
|
-
? Item
|
|
107
|
-
: unknown;
|
|
108
|
-
|
|
109
|
-
export type NormalizeLazyItem<List extends LazyItem> = List extends () => unknown
|
|
110
|
-
? List
|
|
111
|
-
: () => List;
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Normalize FlexList type to a non-lazy array.
|
|
115
|
-
*/
|
|
116
|
-
export type FlexListToNonLazyArray<List extends FlexList> =
|
|
117
|
-
ArrayHasFixedLength<List> extends true
|
|
118
|
-
? ConstantFlexListToNonLazyArray<List>
|
|
119
|
-
: NormalizedFlexList<ExtractListItemType<List>>;
|
|
120
|
-
|
|
121
81
|
/**
|
|
122
82
|
* Normalize FlexList type to a union.
|
|
123
83
|
* @system @public
|
|
124
84
|
*/
|
|
125
85
|
export type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Normalize FlexList type to a non-lazy array.
|
|
129
|
-
*/
|
|
130
|
-
export type ConstantFlexListToNonLazyArray<List extends FlexList> = List extends readonly [
|
|
131
|
-
infer Head,
|
|
132
|
-
...infer Tail,
|
|
133
|
-
]
|
|
134
|
-
? [ExtractItemType<Head>, ...ConstantFlexListToNonLazyArray<Tail>]
|
|
135
|
-
: [];
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Detect if an array is a Tuple (fixed length) or unknown length.
|
|
139
|
-
*
|
|
140
|
-
* Types which many have one of multiple fixed lengths (like `[] | [0]`) count as having a fixed length.
|
|
141
|
-
*
|
|
142
|
-
* @remarks
|
|
143
|
-
* Type operations designed to work on tuples can often behave very badly on regular arrays.
|
|
144
|
-
* For example recursive patterns for processing them often just return the base case,
|
|
145
|
-
* losing all the type information.
|
|
146
|
-
*/
|
|
147
|
-
// This works by determining if the length is `number` (and not a specific number).
|
|
148
|
-
export type ArrayHasFixedLength<List extends readonly unknown[]> =
|
|
149
|
-
number extends List["length"] ? false : true;
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Normalize FlexList type to a lazy array.
|
|
153
|
-
*/
|
|
154
|
-
export type FlexListToLazyArray<List extends FlexList> = ArrayHasFixedLength<List> extends true
|
|
155
|
-
? ConstantFlexListToLazyArray<List>
|
|
156
|
-
: NormalizedLazyFlexList<ExtractListItemType<List>>;
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Normalize FlexList type to a lazy array.
|
|
160
|
-
*/
|
|
161
|
-
export type ConstantFlexListToLazyArray<List extends FlexList> = List extends readonly [
|
|
162
|
-
infer Head,
|
|
163
|
-
...infer Tail,
|
|
164
|
-
]
|
|
165
|
-
? [NormalizeLazyItem<Head>, ...ConstantFlexListToLazyArray<Tail>]
|
|
166
|
-
: [];
|
|
@@ -3,45 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export {
|
|
7
|
-
type FlexTreeNodeSchema,
|
|
8
|
-
FlexFieldSchema,
|
|
9
|
-
allowedTypesToTypeSet,
|
|
10
|
-
type FlexAllowedTypes,
|
|
11
|
-
type LazyTreeNodeSchema,
|
|
12
|
-
LeafNodeSchema,
|
|
13
|
-
FlexMapNodeSchema,
|
|
14
|
-
FlexObjectNodeSchema,
|
|
15
|
-
type FlexTreeSchema,
|
|
16
|
-
type Unenforced,
|
|
17
|
-
type AllowedTypeSet,
|
|
18
|
-
type FlexMapFieldSchema,
|
|
19
|
-
type SchemaCollection,
|
|
20
|
-
TreeNodeSchemaBase,
|
|
21
|
-
type FlexObjectNodeFields,
|
|
22
|
-
schemaIsLeaf,
|
|
23
|
-
schemaIsMap,
|
|
24
|
-
schemaIsObjectNode,
|
|
25
|
-
intoStoredSchema,
|
|
26
|
-
allowedTypesSchemaSet,
|
|
27
|
-
intoStoredSchemaCollection,
|
|
28
|
-
} from "./typedTreeSchema.js";
|
|
29
|
-
|
|
30
|
-
export { ViewSchema } from "./view.js";
|
|
31
|
-
|
|
32
|
-
export {
|
|
33
|
-
type SchemaLibraryData,
|
|
34
|
-
type SchemaLintConfiguration,
|
|
35
|
-
aggregateSchemaLibraries,
|
|
36
|
-
schemaLintDefault,
|
|
37
|
-
} from "./schemaCollection.js";
|
|
6
|
+
export { type Unenforced } from "./typedTreeSchema.js";
|
|
38
7
|
|
|
39
8
|
export {
|
|
40
9
|
type FlexList,
|
|
41
10
|
markEager,
|
|
42
11
|
type LazyItem,
|
|
43
12
|
isLazy,
|
|
44
|
-
type NormalizeLazyItem,
|
|
45
13
|
type FlexListToUnion,
|
|
46
14
|
type ExtractItemType,
|
|
47
15
|
normalizeFlexListEager,
|
|
@@ -3,45 +3,6 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, Lazy } from "@fluidframework/core-utils/internal";
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
type Adapters,
|
|
10
|
-
type FieldKey,
|
|
11
|
-
LeafNodeStoredSchema,
|
|
12
|
-
MapNodeStoredSchema,
|
|
13
|
-
ObjectNodeStoredSchema,
|
|
14
|
-
type StoredSchemaCollection,
|
|
15
|
-
type TreeFieldStoredSchema,
|
|
16
|
-
type TreeNodeSchemaIdentifier,
|
|
17
|
-
type TreeNodeStoredSchema,
|
|
18
|
-
type TreeStoredSchema,
|
|
19
|
-
type TreeTypeSet,
|
|
20
|
-
type ValueSchema,
|
|
21
|
-
identifierFieldKindIdentifier,
|
|
22
|
-
} from "../../core/index.js";
|
|
23
|
-
import {
|
|
24
|
-
type MakeNominal,
|
|
25
|
-
type Named,
|
|
26
|
-
compareSets,
|
|
27
|
-
mapIterable,
|
|
28
|
-
oneFromSet,
|
|
29
|
-
type requireAssignableTo,
|
|
30
|
-
filterIterable,
|
|
31
|
-
brand,
|
|
32
|
-
} from "../../util/index.js";
|
|
33
|
-
import { FieldKinds } from "../default-schema/index.js";
|
|
34
|
-
import type { FlexFieldKind, FullSchemaPolicy } from "../modular-schema/index.js";
|
|
35
|
-
|
|
36
|
-
import type { LazyItem } from "./flexList.js";
|
|
37
|
-
import { type ObjectToMap, objectToMapTyped } from "./typeUtils.js";
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
*/
|
|
41
|
-
export interface FlexObjectNodeFields {
|
|
42
|
-
readonly [key: string]: FlexFieldSchema;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
6
|
/**
|
|
46
7
|
* 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}.
|
|
47
8
|
*
|
|
@@ -51,422 +12,3 @@ export interface FlexObjectNodeFields {
|
|
|
51
12
|
* @public
|
|
52
13
|
*/
|
|
53
14
|
export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
54
|
-
|
|
55
|
-
{
|
|
56
|
-
type _check = requireAssignableTo<FlexTreeNodeSchema, Unenforced<FlexTreeNodeSchema>>;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* T must extend TreeSchemaSpecification.
|
|
61
|
-
* This can not be enforced using TypeScript since doing so breaks recursive type support.
|
|
62
|
-
* See note on SchemaBuilder.fieldRecursive.
|
|
63
|
-
*/
|
|
64
|
-
export abstract class TreeNodeSchemaBase<const out Specification = unknown> {
|
|
65
|
-
protected _typeCheck!: MakeNominal;
|
|
66
|
-
protected constructor(
|
|
67
|
-
public readonly builder: Named<string>,
|
|
68
|
-
public readonly name: TreeNodeSchemaIdentifier,
|
|
69
|
-
public readonly info: Specification,
|
|
70
|
-
public readonly stored: TreeNodeStoredSchema,
|
|
71
|
-
) {}
|
|
72
|
-
public abstract getFieldSchema(field: FieldKey): FlexFieldSchema;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
*/
|
|
77
|
-
export class FlexMapNodeSchema extends TreeNodeSchemaBase {
|
|
78
|
-
public get mapFields(): FlexMapFieldSchema {
|
|
79
|
-
return this.info as FlexMapFieldSchema;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
protected _typeCheck2?: MakeNominal;
|
|
83
|
-
public static create<const Name extends string>(
|
|
84
|
-
builder: Named<string>,
|
|
85
|
-
name: TreeNodeSchemaIdentifier<Name>,
|
|
86
|
-
specification: FlexMapFieldSchema,
|
|
87
|
-
): FlexMapNodeSchema {
|
|
88
|
-
return new FlexMapNodeSchema(
|
|
89
|
-
builder,
|
|
90
|
-
name,
|
|
91
|
-
specification,
|
|
92
|
-
new MapNodeStoredSchema(specification.stored),
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
public override getFieldSchema(field: FieldKey): FlexMapFieldSchema {
|
|
97
|
-
return this.info as FlexMapFieldSchema;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
*/
|
|
103
|
-
export class LeafNodeSchema extends TreeNodeSchemaBase<ValueSchema> {
|
|
104
|
-
protected _typeCheck2?: MakeNominal;
|
|
105
|
-
public constructor(builder: Named<string>, name: string, specification: ValueSchema) {
|
|
106
|
-
super(builder, brand(name), specification, new LeafNodeStoredSchema(specification));
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
public override getFieldSchema(field: FieldKey): FlexFieldSchema {
|
|
110
|
-
return FlexFieldSchema.empty;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
*/
|
|
116
|
-
export class FlexObjectNodeSchema extends TreeNodeSchemaBase {
|
|
117
|
-
protected _typeCheck2?: MakeNominal;
|
|
118
|
-
public readonly identifierFieldKeys: readonly FieldKey[] = [];
|
|
119
|
-
|
|
120
|
-
public static create(
|
|
121
|
-
builder: Named<string>,
|
|
122
|
-
name: TreeNodeSchemaIdentifier,
|
|
123
|
-
specification: FlexObjectNodeFields,
|
|
124
|
-
): FlexObjectNodeSchema {
|
|
125
|
-
const objectNodeFieldsObject = normalizeStructFields(specification);
|
|
126
|
-
const objectNodeFields: ObjectToMap<FlexObjectNodeFields, FieldKey, FlexFieldSchema> =
|
|
127
|
-
objectToMapTyped(objectNodeFieldsObject);
|
|
128
|
-
return new FlexObjectNodeSchema(
|
|
129
|
-
builder,
|
|
130
|
-
name,
|
|
131
|
-
specification,
|
|
132
|
-
objectNodeFieldsObject,
|
|
133
|
-
objectNodeFields,
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
private constructor(
|
|
138
|
-
builder: Named<string>,
|
|
139
|
-
name: TreeNodeSchemaIdentifier,
|
|
140
|
-
info: FlexObjectNodeFields,
|
|
141
|
-
public readonly objectNodeFieldsObject: FlexObjectNodeFields,
|
|
142
|
-
// Allows reading fields through the normal map.
|
|
143
|
-
// Stricter typing caused Specification to no longer be covariant, so has been removed.
|
|
144
|
-
public readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>,
|
|
145
|
-
) {
|
|
146
|
-
const fields = mapIterable(objectNodeFields, ([k, v]) => [k, v.stored] as const);
|
|
147
|
-
super(builder, name, info, new ObjectNodeStoredSchema(new Map(fields)));
|
|
148
|
-
this.identifierFieldKeys = Array.from(
|
|
149
|
-
filterIterable(
|
|
150
|
-
objectNodeFields.entries(),
|
|
151
|
-
([k, f]) => f.kind.identifier === identifierFieldKindIdentifier,
|
|
152
|
-
),
|
|
153
|
-
([k]) => k,
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
public override getFieldSchema(field: FieldKey): FlexFieldSchema {
|
|
158
|
-
return this.objectNodeFields.get(field) ?? FlexFieldSchema.empty;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* @privateRemarks
|
|
164
|
-
* This could be an exhaustive union, or just the common base type.
|
|
165
|
-
* Using just the base type prevents exhaustive matching, which has both pros and cons.
|
|
166
|
-
*
|
|
167
|
-
* For now this is using just the base type since the union is causing issues with schema aware typing, likely due to it being a union and thus distributing over extends clauses.
|
|
168
|
-
*/
|
|
169
|
-
export type FlexTreeNodeSchema = TreeNodeSchemaBase;
|
|
170
|
-
|
|
171
|
-
function normalizeStructFields<T extends FlexObjectNodeFields>(
|
|
172
|
-
fields: T,
|
|
173
|
-
): FlexObjectNodeFields {
|
|
174
|
-
const out: Record<string, FlexFieldSchema> = {};
|
|
175
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
176
|
-
for (const key in fields) {
|
|
177
|
-
if (Object.prototype.hasOwnProperty.call(fields, key)) {
|
|
178
|
-
const element = fields[key];
|
|
179
|
-
out[key] = normalizeField(element);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return out;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
function normalizeField(t: FlexFieldSchema | undefined): FlexFieldSchema {
|
|
186
|
-
if (t === undefined) {
|
|
187
|
-
return FlexFieldSchema.empty;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
assert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);
|
|
191
|
-
return t;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Tree type, but can be wrapped in a function to allow referring to types before they are declared.
|
|
196
|
-
* This makes recursive and co-recursive types possible.
|
|
197
|
-
*/
|
|
198
|
-
export type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema);
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Types for use in fields.
|
|
202
|
-
*/
|
|
203
|
-
export type FlexAllowedTypes = readonly LazyItem<FlexTreeNodeSchema>[];
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Subset of TreeFieldSchema thats legal in maps.
|
|
207
|
-
* This requires empty to be a valid value for the map.
|
|
208
|
-
*/
|
|
209
|
-
export type FlexMapFieldSchema = FlexFieldSchema<
|
|
210
|
-
typeof FieldKinds.optional | typeof FieldKinds.sequence
|
|
211
|
-
>;
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* All policy for a specific field,
|
|
215
|
-
* including functionality that does not have to be kept consistent across versions or deterministic.
|
|
216
|
-
*
|
|
217
|
-
* This can include policy for how to use this schema for "view" purposes, and well as how to expose editing APIs.
|
|
218
|
-
*
|
|
219
|
-
* @remarks
|
|
220
|
-
* `Types` here must extend `AllowedTypes`, but this cannot be enforced with an "extends" clause: see {@link Unenforced} for details.
|
|
221
|
-
*
|
|
222
|
-
* @typeParam TKind - The kind of field.
|
|
223
|
-
* @typeParam TTypes - The types allowed by the field.
|
|
224
|
-
*
|
|
225
|
-
* @sealed
|
|
226
|
-
*/
|
|
227
|
-
export class FlexFieldSchema<out TKind extends FlexFieldKind = FlexFieldKind> {
|
|
228
|
-
/**
|
|
229
|
-
* Schema for a field which must always be empty.
|
|
230
|
-
*/
|
|
231
|
-
public static readonly empty = FlexFieldSchema.create(FieldKinds.forbidden, []);
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Constructs a TreeFieldSchema.
|
|
235
|
-
* @privateRemarks
|
|
236
|
-
* Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).
|
|
237
|
-
*/
|
|
238
|
-
public static create<TKind extends FlexFieldKind>(
|
|
239
|
-
kind: TKind,
|
|
240
|
-
allowedTypes: FlexAllowedTypes,
|
|
241
|
-
): FlexFieldSchema<TKind> {
|
|
242
|
-
return new FlexFieldSchema(kind, allowedTypes);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
protected _typeCheck!: MakeNominal;
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* This is computed lazily since types can be recursive, which makes evaluating this have to happen after all the schema are defined.
|
|
249
|
-
*/
|
|
250
|
-
private readonly lazyTypes: Lazy<{
|
|
251
|
-
names: TreeTypeSet;
|
|
252
|
-
schema: AllowedTypeSet;
|
|
253
|
-
monomorphicChildType?: FlexTreeNodeSchema;
|
|
254
|
-
}>;
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.
|
|
258
|
-
* Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.
|
|
259
|
-
* @param allowedTypes - What types of tree nodes are allowed in this field.
|
|
260
|
-
*/
|
|
261
|
-
private constructor(
|
|
262
|
-
public readonly kind: TKind,
|
|
263
|
-
public readonly allowedTypes: FlexAllowedTypes,
|
|
264
|
-
) {
|
|
265
|
-
// Since this class can't have the desired extends clause, do some extra runtime validation:
|
|
266
|
-
assert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);
|
|
267
|
-
for (const allowedType of allowedTypes) {
|
|
268
|
-
if (typeof allowedType !== "function") {
|
|
269
|
-
assert(
|
|
270
|
-
allowedType instanceof TreeNodeSchemaBase,
|
|
271
|
-
0x7be /* Invalid entry in allowedTypes */,
|
|
272
|
-
);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
const lazy = new Lazy(() => {
|
|
277
|
-
const input = this.allowedTypes as unknown as FlexAllowedTypes;
|
|
278
|
-
const schema = allowedTypesSchemaSet(input);
|
|
279
|
-
return {
|
|
280
|
-
names: allowedTypesToTypeSet(input),
|
|
281
|
-
schema,
|
|
282
|
-
monomorphicChildType: oneFromSet(schema),
|
|
283
|
-
};
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
this.lazyTypes = lazy;
|
|
287
|
-
|
|
288
|
-
this.stored = {
|
|
289
|
-
kind: this.kind.identifier,
|
|
290
|
-
get types() {
|
|
291
|
-
return lazy.value.names;
|
|
292
|
-
},
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
public readonly stored: TreeFieldStoredSchema;
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.
|
|
300
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.
|
|
301
|
-
*/
|
|
302
|
-
public get types(): TreeTypeSet {
|
|
303
|
-
return this.lazyTypes.value.names;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Types which are allowed in this field.
|
|
308
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just as a set with laziness removed.
|
|
309
|
-
* @privateRemarks
|
|
310
|
-
* TODO:
|
|
311
|
-
* 3 ways to access the allowed types are now exposed.
|
|
312
|
-
* Reducing this and/or renaming the more friendly options to take the shorter name (`types`)
|
|
313
|
-
* would be a good idea.
|
|
314
|
-
*/
|
|
315
|
-
public get allowedTypeSet(): AllowedTypeSet {
|
|
316
|
-
return this.lazyTypes.value.schema;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* If exactly one type of child is allowed in this field, it is provided here.
|
|
321
|
-
* @remarks
|
|
322
|
-
* Some code paths (like unboxing and compressed tree encoding) special case schema with exactly one allowed type.
|
|
323
|
-
* This field allows for simple and optimized handling of this case.
|
|
324
|
-
*/
|
|
325
|
-
public get monomorphicChildType(): FlexTreeNodeSchema | undefined {
|
|
326
|
-
return this.lazyTypes.value.monomorphicChildType;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Compare this schema to another.
|
|
331
|
-
*
|
|
332
|
-
* @returns true iff the schema are identical.
|
|
333
|
-
*/
|
|
334
|
-
public equals(other: FlexFieldSchema): boolean {
|
|
335
|
-
if (other.kind !== this.kind) {
|
|
336
|
-
return false;
|
|
337
|
-
}
|
|
338
|
-
if (other.types === undefined) {
|
|
339
|
-
return this.types === undefined;
|
|
340
|
-
}
|
|
341
|
-
if (this.types === undefined) {
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
|
-
return compareSets({
|
|
345
|
-
a: this.types,
|
|
346
|
-
b: other.types,
|
|
347
|
-
aExtra: () => false,
|
|
348
|
-
bExtra: () => false,
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* Types for use in fields.
|
|
355
|
-
* This representation is optimized for runtime use in view-schema.
|
|
356
|
-
*
|
|
357
|
-
* @remarks
|
|
358
|
-
* See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.
|
|
359
|
-
* See {@link FlexAllowedTypes} for a compile time optimized version.
|
|
360
|
-
*/
|
|
361
|
-
export type AllowedTypeSet = ReadonlySet<FlexTreeNodeSchema>;
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
365
|
-
*/
|
|
366
|
-
export function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {
|
|
367
|
-
const list: FlexTreeNodeSchema[] = t.map((value: LazyItem<FlexTreeNodeSchema>) => {
|
|
368
|
-
if (typeof value === "function") {
|
|
369
|
-
return value();
|
|
370
|
-
}
|
|
371
|
-
return value;
|
|
372
|
-
});
|
|
373
|
-
return new Set(list);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
/**
|
|
377
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
378
|
-
*/
|
|
379
|
-
export function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet {
|
|
380
|
-
const list = allowedTypesSchemaSet(t);
|
|
381
|
-
const names = Array.from(list, (type) => {
|
|
382
|
-
assert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);
|
|
383
|
-
return type.name;
|
|
384
|
-
});
|
|
385
|
-
return new Set(names);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
/**
|
|
389
|
-
* Schema data that can be be used to view a document.
|
|
390
|
-
* Strongly typed over its rootFieldSchema.
|
|
391
|
-
*
|
|
392
|
-
* @remarks
|
|
393
|
-
* The type of the rootFieldSchema is used to implement SchemaAware APIs.
|
|
394
|
-
* Cases that do not require being compile time schema aware can omit the explicit type for it.
|
|
395
|
-
*/
|
|
396
|
-
export interface FlexTreeSchema<out T extends FlexFieldSchema = FlexFieldSchema>
|
|
397
|
-
extends SchemaCollection {
|
|
398
|
-
/**
|
|
399
|
-
* Schema for the root field which contains the whole tree.
|
|
400
|
-
*/
|
|
401
|
-
readonly rootFieldSchema: T;
|
|
402
|
-
/**
|
|
403
|
-
* Extra configuration for how this schema is handled at runtime.
|
|
404
|
-
*/
|
|
405
|
-
readonly policy: FullSchemaPolicy;
|
|
406
|
-
/**
|
|
407
|
-
* Compatibility information how how to interact with content who's stored schema is not directly compatible with this schema.
|
|
408
|
-
*/
|
|
409
|
-
readonly adapters: Adapters;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
/**
|
|
413
|
-
* Converts a {@link FlexTreeSchema} into a {@link TreeStoredSchema}.
|
|
414
|
-
*/
|
|
415
|
-
export function intoStoredSchema(treeSchema: FlexTreeSchema): TreeStoredSchema {
|
|
416
|
-
return {
|
|
417
|
-
rootFieldSchema: treeSchema.rootFieldSchema.stored,
|
|
418
|
-
...intoStoredSchemaCollection(treeSchema),
|
|
419
|
-
};
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
/**
|
|
423
|
-
* Converts a {@link SchemaCollection} into a {@link StoredSchemaCollection}.
|
|
424
|
-
*/
|
|
425
|
-
export function intoStoredSchemaCollection(
|
|
426
|
-
treeSchema: SchemaCollection,
|
|
427
|
-
): StoredSchemaCollection {
|
|
428
|
-
return {
|
|
429
|
-
nodeSchema: new Map(
|
|
430
|
-
mapIterable(treeSchema.nodeSchema.entries(), ([k, v]) => [k, v.stored]),
|
|
431
|
-
),
|
|
432
|
-
};
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* Schema data that can be be used to view a document.
|
|
437
|
-
*
|
|
438
|
-
* @privateRemarks
|
|
439
|
-
* It is convenient that this can be used as a StoredSchemaCollection with no conversion.
|
|
440
|
-
* There there isn't a design requirement for this however, so this extends clause can be removed later if needed.
|
|
441
|
-
*/
|
|
442
|
-
export interface SchemaCollection {
|
|
443
|
-
/**
|
|
444
|
-
* {@inheritdoc SchemaCollection}
|
|
445
|
-
*/
|
|
446
|
-
readonly nodeSchema: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
// These schema type narrowing functions are preferred over `instanceof` due to being easier to migrate to class based schema.
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexMapNodeSchema}.
|
|
453
|
-
*/
|
|
454
|
-
export function schemaIsMap(schema: FlexTreeNodeSchema): schema is FlexMapNodeSchema {
|
|
455
|
-
return schema instanceof FlexMapNodeSchema;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link LeafNodeSchema}.
|
|
460
|
-
*/
|
|
461
|
-
export function schemaIsLeaf(schema: FlexTreeNodeSchema): schema is LeafNodeSchema {
|
|
462
|
-
return schema instanceof LeafNodeSchema;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
/**
|
|
466
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexObjectNodeSchema}.
|
|
467
|
-
*/
|
|
468
|
-
export function schemaIsObjectNode(
|
|
469
|
-
schema: FlexTreeNodeSchema,
|
|
470
|
-
): schema is FlexObjectNodeSchema {
|
|
471
|
-
return schema instanceof FlexObjectNodeSchema;
|
|
472
|
-
}
|
package/src/index.ts
CHANGED
|
@@ -58,6 +58,9 @@ export {
|
|
|
58
58
|
type NodeInDocumentConstraint,
|
|
59
59
|
type RunTransaction,
|
|
60
60
|
rollback,
|
|
61
|
+
getBranch,
|
|
62
|
+
type TreeBranch,
|
|
63
|
+
type TreeBranchFork,
|
|
61
64
|
} from "./shared-tree/index.js";
|
|
62
65
|
|
|
63
66
|
export {
|
|
@@ -65,6 +68,7 @@ export {
|
|
|
65
68
|
type Unhydrated,
|
|
66
69
|
IterableTreeArrayContent,
|
|
67
70
|
TreeNode,
|
|
71
|
+
type ViewableTree,
|
|
68
72
|
type ITree,
|
|
69
73
|
type TreeNodeSchema,
|
|
70
74
|
TreeViewConfiguration,
|
|
@@ -113,6 +117,7 @@ export {
|
|
|
113
117
|
type FieldSchemaUnsafe,
|
|
114
118
|
// System types (not in Internal types for various reasons, like doc links or cannot be named errors).
|
|
115
119
|
type typeSchemaSymbol,
|
|
120
|
+
type TreeNodeSchemaNonClass,
|
|
116
121
|
// Recursive Schema APIs
|
|
117
122
|
type ValidateRecursiveSchema,
|
|
118
123
|
type FixRecursiveArraySchema,
|
|
@@ -155,6 +160,7 @@ export {
|
|
|
155
160
|
type Covariant,
|
|
156
161
|
BrandedType,
|
|
157
162
|
type RestrictiveReadonlyRecord,
|
|
163
|
+
type RestrictiveStringRecord,
|
|
158
164
|
type MakeNominal,
|
|
159
165
|
} from "./util/index.js";
|
|
160
166
|
|
package/src/internalTypes.ts
CHANGED
package/src/packageVersion.ts
CHANGED
|
@@ -7,10 +7,10 @@ import { assert } from "@fluidframework/core-utils/internal";
|
|
|
7
7
|
import {
|
|
8
8
|
type Context,
|
|
9
9
|
type FlexTreeField,
|
|
10
|
-
type FlexTreeSchema,
|
|
11
10
|
type NodeKeyManager,
|
|
12
11
|
getTreeContext,
|
|
13
12
|
type FlexTreeHydratedContext,
|
|
13
|
+
type FullSchemaPolicy,
|
|
14
14
|
} from "../feature-libraries/index.js";
|
|
15
15
|
import { tryDisposeTreeNode } from "../simple-tree/index.js";
|
|
16
16
|
import { disposeSymbol } from "../util/index.js";
|
|
@@ -42,7 +42,7 @@ export class CheckoutFlexTreeView<out TCheckout extends ITreeCheckout = ITreeChe
|
|
|
42
42
|
* This is a non-owning reference: disposing of this view does not impact the branch.
|
|
43
43
|
*/
|
|
44
44
|
public readonly checkout: TCheckout,
|
|
45
|
-
public readonly schema:
|
|
45
|
+
public readonly schema: FullSchemaPolicy,
|
|
46
46
|
public readonly nodeKeyManager: NodeKeyManager,
|
|
47
47
|
private readonly onDispose?: () => void,
|
|
48
48
|
) {
|
|
@@ -65,7 +65,7 @@ export class CheckoutFlexTreeView<out TCheckout extends ITreeCheckout = ITreeChe
|
|
|
65
65
|
* Any mutations of the new view will not apply to this view until the new view is merged back into this view via `merge()`.
|
|
66
66
|
*/
|
|
67
67
|
public fork(): CheckoutFlexTreeView<ITreeCheckout & ITreeCheckoutFork> {
|
|
68
|
-
const branch = this.checkout.
|
|
68
|
+
const branch = this.checkout.branch();
|
|
69
69
|
return new CheckoutFlexTreeView(branch, this.schema, this.nodeKeyManager);
|
|
70
70
|
}
|
|
71
71
|
}
|