@fluidframework/tree 2.3.0-288113 → 2.4.0-294316
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 +42 -54
- package/api-report/tree.beta.api.md +35 -16
- package/api-report/tree.legacy.alpha.api.md +571 -0
- package/api-report/tree.legacy.public.api.md +568 -0
- package/api-report/tree.public.api.md +22 -18
- package/dist/alpha.d.ts +103 -0
- package/dist/beta.d.ts +7 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +2 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +1 -0
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +8 -1
- package/dist/core/rebase/types.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 +9 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +73 -22
- 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/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +3 -0
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +1 -4
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- 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 +84 -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 +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +53 -0
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
- package/dist/shared-tree/{treeView.js → checkoutFlexTreeView.js} +28 -6
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -0
- package/dist/shared-tree/index.d.ts +3 -3
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +2 -2
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +15 -4
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +7 -8
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +10 -4
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +28 -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 +14 -15
- 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 +53 -16
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +49 -12
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +8 -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} +34 -21
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
- package/dist/simple-tree/api/tree.d.ts +5 -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} +8 -4
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -0
- 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 +8 -10
- 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 +51 -11
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +14 -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 +103 -0
- package/lib/beta.d.ts +7 -2
- package/lib/core/index.d.ts +2 -2
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -2
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +1 -0
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +6 -0
- package/lib/core/rebase/types.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 +9 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +74 -23
- 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/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +3 -0
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +2 -5
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- 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 +84 -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 +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +53 -0
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
- package/lib/shared-tree/{treeView.js → checkoutFlexTreeView.js} +26 -5
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -0
- package/lib/shared-tree/index.d.ts +3 -3
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +15 -4
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +8 -9
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +10 -4
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +29 -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 +14 -15
- 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 +53 -16
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +49 -12
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +8 -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} +35 -22
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
- package/lib/simple-tree/api/tree.d.ts +5 -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} +8 -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 +8 -10
- 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 +51 -11
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +14 -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 +68 -26
- package/src/core/index.ts +2 -1
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/types.ts +11 -0
- 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 +7 -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 +111 -14
- package/src/feature-libraries/sequence-field/compose.ts +3 -0
- package/src/feature-libraries/sequence-field/utils.ts +2 -4
- package/src/feature-libraries/storedToViewSchema.ts +5 -6
- package/src/feature-libraries/typed-schema/flexList.ts +3 -3
- package/src/feature-libraries/typed-schema/index.ts +1 -3
- package/src/feature-libraries/typed-schema/schemaCollection.ts +15 -17
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +35 -127
- package/src/feature-libraries/typed-schema/view.ts +4 -13
- package/src/index.ts +5 -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 +38 -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} +20 -18
- package/src/simple-tree/api/schemaFactory.ts +56 -19
- package/src/simple-tree/{simpleSchema.ts → api/simpleSchema.ts} +9 -4
- package/src/simple-tree/{simpleSchemaToJsonSchema.ts → api/simpleSchemaToJsonSchema.ts} +43 -22
- package/src/simple-tree/api/tree.ts +7 -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} +11 -6
- 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 +30 -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 +63 -13
- 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/lib/simple-tree/viewSchemaToSimpleSchema.js.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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/tree",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0-294316",
|
|
4
4
|
"description": "Distributed tree",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -23,6 +23,16 @@
|
|
|
23
23
|
"default": "./dist/index.js"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
|
+
"./alpha": {
|
|
27
|
+
"import": {
|
|
28
|
+
"types": "./lib/alpha.d.ts",
|
|
29
|
+
"default": "./lib/index.js"
|
|
30
|
+
},
|
|
31
|
+
"require": {
|
|
32
|
+
"types": "./dist/alpha.d.ts",
|
|
33
|
+
"default": "./dist/index.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
26
36
|
"./beta": {
|
|
27
37
|
"import": {
|
|
28
38
|
"types": "./lib/beta.d.ts",
|
|
@@ -42,6 +52,16 @@
|
|
|
42
52
|
"types": "./dist/index.d.ts",
|
|
43
53
|
"default": "./dist/index.js"
|
|
44
54
|
}
|
|
55
|
+
},
|
|
56
|
+
"./legacy": {
|
|
57
|
+
"import": {
|
|
58
|
+
"types": "./lib/legacy.d.ts",
|
|
59
|
+
"default": "./lib/index.js"
|
|
60
|
+
},
|
|
61
|
+
"require": {
|
|
62
|
+
"types": "./dist/legacy.d.ts",
|
|
63
|
+
"default": "./dist/index.js"
|
|
64
|
+
}
|
|
45
65
|
}
|
|
46
66
|
},
|
|
47
67
|
"main": "lib/index.js",
|
|
@@ -67,17 +87,17 @@
|
|
|
67
87
|
"temp-directory": "nyc/.nyc_output"
|
|
68
88
|
},
|
|
69
89
|
"dependencies": {
|
|
70
|
-
"@fluid-internal/client-utils": "2.
|
|
71
|
-
"@fluidframework/container-runtime": "2.
|
|
72
|
-
"@fluidframework/core-interfaces": "2.
|
|
73
|
-
"@fluidframework/core-utils": "2.
|
|
74
|
-
"@fluidframework/datastore-definitions": "2.
|
|
75
|
-
"@fluidframework/driver-definitions": "2.
|
|
76
|
-
"@fluidframework/id-compressor": "2.
|
|
77
|
-
"@fluidframework/runtime-definitions": "2.
|
|
78
|
-
"@fluidframework/runtime-utils": "2.
|
|
79
|
-
"@fluidframework/shared-object-base": "2.
|
|
80
|
-
"@fluidframework/telemetry-utils": "2.
|
|
90
|
+
"@fluid-internal/client-utils": "2.4.0-294316",
|
|
91
|
+
"@fluidframework/container-runtime": "2.4.0-294316",
|
|
92
|
+
"@fluidframework/core-interfaces": "2.4.0-294316",
|
|
93
|
+
"@fluidframework/core-utils": "2.4.0-294316",
|
|
94
|
+
"@fluidframework/datastore-definitions": "2.4.0-294316",
|
|
95
|
+
"@fluidframework/driver-definitions": "2.4.0-294316",
|
|
96
|
+
"@fluidframework/id-compressor": "2.4.0-294316",
|
|
97
|
+
"@fluidframework/runtime-definitions": "2.4.0-294316",
|
|
98
|
+
"@fluidframework/runtime-utils": "2.4.0-294316",
|
|
99
|
+
"@fluidframework/shared-object-base": "2.4.0-294316",
|
|
100
|
+
"@fluidframework/telemetry-utils": "2.4.0-294316",
|
|
81
101
|
"@sinclair/typebox": "^0.32.29",
|
|
82
102
|
"@tylerbu/sorted-btree-es6": "^1.8.0",
|
|
83
103
|
"@ungap/structured-clone": "^1.2.0",
|
|
@@ -86,21 +106,21 @@
|
|
|
86
106
|
"devDependencies": {
|
|
87
107
|
"@arethetypeswrong/cli": "^0.15.2",
|
|
88
108
|
"@biomejs/biome": "~1.8.3",
|
|
89
|
-
"@fluid-internal/mocha-test-setup": "2.
|
|
90
|
-
"@fluid-private/stochastic-test-utils": "2.
|
|
91
|
-
"@fluid-private/test-dds-utils": "2.
|
|
92
|
-
"@fluid-private/test-drivers": "2.
|
|
109
|
+
"@fluid-internal/mocha-test-setup": "2.4.0-294316",
|
|
110
|
+
"@fluid-private/stochastic-test-utils": "2.4.0-294316",
|
|
111
|
+
"@fluid-private/test-dds-utils": "2.4.0-294316",
|
|
112
|
+
"@fluid-private/test-drivers": "2.4.0-294316",
|
|
93
113
|
"@fluid-tools/benchmark": "^0.50.0",
|
|
94
|
-
"@fluid-tools/build-cli": "^0.
|
|
114
|
+
"@fluid-tools/build-cli": "^0.46.0",
|
|
95
115
|
"@fluidframework/build-common": "^2.0.3",
|
|
96
|
-
"@fluidframework/build-tools": "^0.
|
|
97
|
-
"@fluidframework/container-definitions": "2.
|
|
98
|
-
"@fluidframework/container-loader": "2.
|
|
99
|
-
"@fluidframework/eslint-config-fluid": "^5.
|
|
100
|
-
"@fluidframework/test-runtime-utils": "2.
|
|
101
|
-
"@fluidframework/test-utils": "2.
|
|
102
|
-
"@fluidframework/tree-previous": "npm:@fluidframework/tree@2.
|
|
103
|
-
"@microsoft/api-extractor": "
|
|
116
|
+
"@fluidframework/build-tools": "^0.46.0",
|
|
117
|
+
"@fluidframework/container-definitions": "2.4.0-294316",
|
|
118
|
+
"@fluidframework/container-loader": "2.4.0-294316",
|
|
119
|
+
"@fluidframework/eslint-config-fluid": "^5.4.0",
|
|
120
|
+
"@fluidframework/test-runtime-utils": "2.4.0-294316",
|
|
121
|
+
"@fluidframework/test-utils": "2.4.0-294316",
|
|
122
|
+
"@fluidframework/tree-previous": "npm:@fluidframework/tree@2.3.0",
|
|
123
|
+
"@microsoft/api-extractor": "7.47.8",
|
|
104
124
|
"@types/diff": "^3.5.1",
|
|
105
125
|
"@types/easy-table": "^0.0.32",
|
|
106
126
|
"@types/mocha": "^9.1.1",
|
|
@@ -142,7 +162,18 @@
|
|
|
142
162
|
}
|
|
143
163
|
},
|
|
144
164
|
"typeValidation": {
|
|
145
|
-
"broken": {
|
|
165
|
+
"broken": {
|
|
166
|
+
"Interface_FieldSchemaUnsafe": {
|
|
167
|
+
"forwardCompat": false
|
|
168
|
+
},
|
|
169
|
+
"Interface_ITreeViewConfiguration": {
|
|
170
|
+
"forwardCompat": false
|
|
171
|
+
},
|
|
172
|
+
"TypeAlias_ImplicitFieldSchema": {
|
|
173
|
+
"forwardCompat": false
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"entrypoint": "internal"
|
|
146
177
|
},
|
|
147
178
|
"scripts": {
|
|
148
179
|
"api": "fluid-build . --task api",
|
|
@@ -151,6 +182,9 @@
|
|
|
151
182
|
"bench": "mocha --timeout 999999 --perfMode --parentProcess --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js",
|
|
152
183
|
"bench:profile": "mocha --v8-prof --v8-logfile=profile.log --v8-no-logfile-per-isolate --timeout 999999 --perfMode --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js && node --prof-process profile.log > profile.txt && rimraf profile.log && echo See results in profile.txt",
|
|
153
184
|
"build": "fluid-build . --task build",
|
|
185
|
+
"build:api-reports": "concurrently \"npm:build:api-reports:*\"",
|
|
186
|
+
"build:api-reports:current": "api-extractor run --local --config api-extractor/api-extractor.current.json",
|
|
187
|
+
"build:api-reports:legacy": "api-extractor run --local --config api-extractor/api-extractor.legacy.json",
|
|
154
188
|
"build:commonjs": "fluid-build . --task commonjs",
|
|
155
189
|
"build:compile": "fluid-build . --task compile",
|
|
156
190
|
"build:docs": "api-extractor run --local",
|
|
@@ -163,12 +197,19 @@
|
|
|
163
197
|
"check:biome": "biome check .",
|
|
164
198
|
"check:exports": "concurrently \"npm:check:exports:*\"",
|
|
165
199
|
"check:exports:bundle-release-tags": "api-extractor run --config api-extractor/api-extractor-lint-bundle.json",
|
|
200
|
+
"check:exports:cjs:alpha": "api-extractor run --config api-extractor/api-extractor-lint-alpha.cjs.json",
|
|
166
201
|
"check:exports:cjs:beta": "api-extractor run --config api-extractor/api-extractor-lint-beta.cjs.json",
|
|
202
|
+
"check:exports:cjs:legacy": "api-extractor run --config api-extractor/api-extractor-lint-legacy.cjs.json",
|
|
167
203
|
"check:exports:cjs:public": "api-extractor run --config api-extractor/api-extractor-lint-public.cjs.json",
|
|
204
|
+
"check:exports:esm:alpha": "api-extractor run --config api-extractor/api-extractor-lint-alpha.esm.json",
|
|
168
205
|
"check:exports:esm:beta": "api-extractor run --config api-extractor/api-extractor-lint-beta.esm.json",
|
|
206
|
+
"check:exports:esm:legacy": "api-extractor run --config api-extractor/api-extractor-lint-legacy.esm.json",
|
|
169
207
|
"check:exports:esm:public": "api-extractor run --config api-extractor/api-extractor-lint-public.esm.json",
|
|
170
208
|
"check:format": "npm run check:biome",
|
|
171
209
|
"check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
|
|
210
|
+
"ci:build:api-reports": "concurrently \"npm:ci:build:api-reports:*\"",
|
|
211
|
+
"ci:build:api-reports:current": "api-extractor run --config api-extractor/api-extractor.current.json",
|
|
212
|
+
"ci:build:api-reports:legacy": "api-extractor run --config api-extractor/api-extractor.legacy.json",
|
|
172
213
|
"ci:build:docs": "api-extractor run",
|
|
173
214
|
"clean": "rimraf --glob dist lib \"*.d.ts\" \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
|
|
174
215
|
"depcruise": "depcruise src/ --ignore-known",
|
|
@@ -184,6 +225,7 @@
|
|
|
184
225
|
"test:benchmark:report": "mocha --exit --perfMode --parentProcess --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js --timeout 60000",
|
|
185
226
|
"test:coverage": "c8 npm test",
|
|
186
227
|
"test:customBenchmarks": "mocha --config ./.mocharc.customBenchmarks.cjs",
|
|
228
|
+
"test:customBenchmarks:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:customBenchmarks",
|
|
187
229
|
"test:memory": "mocha --config ./src/test/memory/.mocharc.cjs",
|
|
188
230
|
"test:memory-profiling:report": "mocha --config ./src/test/memory/.mocharc.cjs",
|
|
189
231
|
"test:mocha": "npm run test:mocha:esm && echo skipping cjs to avoid overhead - npm run test:mocha:cjs",
|
package/src/core/index.ts
CHANGED
|
@@ -158,6 +158,7 @@ export {
|
|
|
158
158
|
|
|
159
159
|
export {
|
|
160
160
|
areEqualChangeAtomIds,
|
|
161
|
+
areEqualChangeAtomIdOpts,
|
|
161
162
|
makeChangeAtomId,
|
|
162
163
|
asChangeAtomId,
|
|
163
164
|
type ChangeRebaser,
|
|
@@ -205,4 +206,4 @@ export {
|
|
|
205
206
|
AllowedUpdateType,
|
|
206
207
|
} from "./schema-view/index.js";
|
|
207
208
|
|
|
208
|
-
export { type Revertible, RevertibleStatus } from "./revertible
|
|
209
|
+
export { type Revertible, RevertibleStatus, type RevertibleFactory } from "./revertible.js";
|
package/src/core/rebase/index.ts
CHANGED
package/src/core/rebase/types.ts
CHANGED
|
@@ -81,6 +81,17 @@ export function areEqualChangeAtomIds(a: ChangeAtomId, b: ChangeAtomId): boolean
|
|
|
81
81
|
return a.localId === b.localId && a.revision === b.revision;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
export function areEqualChangeAtomIdOpts(
|
|
85
|
+
a: ChangeAtomId | undefined,
|
|
86
|
+
b: ChangeAtomId | undefined,
|
|
87
|
+
): boolean {
|
|
88
|
+
if (a === undefined || b === undefined) {
|
|
89
|
+
return a === b;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return areEqualChangeAtomIds(a, b);
|
|
93
|
+
}
|
|
94
|
+
|
|
84
95
|
/**
|
|
85
96
|
* @returns a ChangeAtomId with the given revision and local ID.
|
|
86
97
|
*/
|
|
@@ -47,3 +47,18 @@ export enum RevertibleStatus {
|
|
|
47
47
|
/** The revertible has been disposed. Reverting it will have no effect. */
|
|
48
48
|
Disposed,
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Factory for creating a {@link Revertible}.
|
|
53
|
+
* Will error if invoked outside the scope of the `commitApplied` event that provides it, or if invoked multiple times.
|
|
54
|
+
*
|
|
55
|
+
* @param onRevertibleDisposed - A callback that will be invoked when the `Revertible` generated by this factory is disposed.
|
|
56
|
+
* This happens when the `Revertible` is disposed manually, or when the `TreeView` that the `Revertible` belongs to is disposed,
|
|
57
|
+
* whichever happens first.
|
|
58
|
+
* This is typically used to clean up any resources associated with the `Revertible` in the host application.
|
|
59
|
+
*
|
|
60
|
+
* @sealed @public
|
|
61
|
+
*/
|
|
62
|
+
export type RevertibleFactory = (
|
|
63
|
+
onRevertibleDisposed?: (revertible: Revertible) => void,
|
|
64
|
+
) => Revertible;
|
|
@@ -52,7 +52,7 @@ export const TreeNodeSchemaIdentifierSchema = brandedStringType<TreeNodeSchemaId
|
|
|
52
52
|
|
|
53
53
|
const FieldSchemaFormatBase = Type.Object({
|
|
54
54
|
kind: FieldKindIdentifierSchema,
|
|
55
|
-
types: Type.
|
|
55
|
+
types: Type.Array(TreeNodeSchemaIdentifierSchema),
|
|
56
56
|
});
|
|
57
57
|
|
|
58
58
|
const noAdditionalProps: ObjectOptions = { additionalProperties: false };
|
|
@@ -32,11 +32,6 @@ export enum ValueSchema {
|
|
|
32
32
|
* Set of allowed tree types.
|
|
33
33
|
* Providing multiple values here allows polymorphism, tagged union style.
|
|
34
34
|
*
|
|
35
|
-
* If not specified, types are unconstrained
|
|
36
|
-
* (equivalent to the set containing every TreeNodeSchemaIdentifier defined in the document).
|
|
37
|
-
*
|
|
38
|
-
* Note that even when unconstrained, children must still be in-schema for their own type.
|
|
39
|
-
*
|
|
40
35
|
* In the future, this could be extended to allow inlining a TreeNodeStoredSchema here
|
|
41
36
|
* (or some similar structural schema system).
|
|
42
37
|
* For structural types which could go here, there are a few interesting options:
|
|
@@ -58,7 +53,7 @@ export enum ValueSchema {
|
|
|
58
53
|
* Care would need to be taken to make sure this is sound for the schema updating mechanisms.
|
|
59
54
|
* @internal
|
|
60
55
|
*/
|
|
61
|
-
export type TreeTypeSet = ReadonlySet<TreeNodeSchemaIdentifier
|
|
56
|
+
export type TreeTypeSet = ReadonlySet<TreeNodeSchemaIdentifier>;
|
|
62
57
|
|
|
63
58
|
/**
|
|
64
59
|
* Declarative portion of a Field Kind.
|
|
@@ -105,11 +100,12 @@ export interface SchemaPolicy {
|
|
|
105
100
|
*/
|
|
106
101
|
export interface TreeFieldStoredSchema {
|
|
107
102
|
readonly kind: FieldKindIdentifier;
|
|
103
|
+
|
|
108
104
|
/**
|
|
109
105
|
* The set of allowed child types.
|
|
110
106
|
* If not specified, types are unconstrained.
|
|
111
107
|
*/
|
|
112
|
-
readonly types
|
|
108
|
+
readonly types: TreeTypeSet;
|
|
113
109
|
}
|
|
114
110
|
|
|
115
111
|
/**
|
|
@@ -295,20 +291,18 @@ function decodeValueSchema(inMemory: PersistedValueSchema): ValueSchema {
|
|
|
295
291
|
}
|
|
296
292
|
|
|
297
293
|
export function encodeFieldSchema(schema: TreeFieldStoredSchema): FieldSchemaFormat {
|
|
298
|
-
|
|
294
|
+
return {
|
|
299
295
|
kind: schema.kind,
|
|
296
|
+
// Types are sorted by identifier to improve stability of persisted data to increase chance of schema blob reuse.
|
|
297
|
+
types: [...schema.types].sort(),
|
|
300
298
|
};
|
|
301
|
-
if (schema.types !== undefined) {
|
|
302
|
-
out.types = [...schema.types];
|
|
303
|
-
}
|
|
304
|
-
return out;
|
|
305
299
|
}
|
|
306
300
|
|
|
307
301
|
export function decodeFieldSchema(schema: FieldSchemaFormat): TreeFieldStoredSchema {
|
|
308
302
|
const out: TreeFieldStoredSchema = {
|
|
309
303
|
// TODO: maybe provide actual FieldKind objects here, error on unrecognized kinds.
|
|
310
304
|
kind: schema.kind,
|
|
311
|
-
types:
|
|
305
|
+
types: new Set(schema.types),
|
|
312
306
|
};
|
|
313
307
|
return out;
|
|
314
308
|
}
|
|
@@ -713,9 +713,17 @@ export class AnchorSet implements Listenable<AnchorSetRootEvents>, AnchorLocator
|
|
|
713
713
|
pathVisitors: new Map<PathNode, Set<PathVisitor>>(),
|
|
714
714
|
parentField: undefined as FieldKey | undefined,
|
|
715
715
|
parent: undefined as UpPath | undefined,
|
|
716
|
+
|
|
717
|
+
/**
|
|
718
|
+
* Events collected during the visit which get sent as a batch during "free".
|
|
719
|
+
*/
|
|
716
720
|
bufferedEvents: [] as {
|
|
717
721
|
node: PathNode;
|
|
718
722
|
event: keyof AnchorEvents;
|
|
723
|
+
/**
|
|
724
|
+
* The key for the impacted field, if the event is associated with a key.
|
|
725
|
+
* Some events, such as afterDestroy, do not involve a key, and thus leave this undefined.
|
|
726
|
+
*/
|
|
719
727
|
changedField?: FieldKey;
|
|
720
728
|
}[],
|
|
721
729
|
|
|
@@ -760,9 +768,13 @@ export class AnchorSet implements Listenable<AnchorSetRootEvents>, AnchorLocator
|
|
|
760
768
|
}
|
|
761
769
|
emittedEvents?.push(event);
|
|
762
770
|
if (event === "childrenChangedAfterBatch") {
|
|
763
|
-
const fieldKeys = this.bufferedEvents
|
|
771
|
+
const fieldKeys: FieldKey[] = this.bufferedEvents
|
|
764
772
|
.filter((e) => e.node === node && e.event === event)
|
|
765
|
-
.map(
|
|
773
|
+
.map(
|
|
774
|
+
(e) =>
|
|
775
|
+
e.changedField ??
|
|
776
|
+
fail("childrenChangedAfterBatch events should have a changedField"),
|
|
777
|
+
);
|
|
766
778
|
node.events.emit(event, { anchor: node, changedFields: new Set(fieldKeys) });
|
|
767
779
|
} else {
|
|
768
780
|
node.events.emit(event, node);
|
|
@@ -778,7 +790,10 @@ export class AnchorSet implements Listenable<AnchorSetRootEvents>, AnchorLocator
|
|
|
778
790
|
notifyChildrenChanged(): void {
|
|
779
791
|
this.maybeWithNode(
|
|
780
792
|
(p) => {
|
|
781
|
-
assert(
|
|
793
|
+
assert(
|
|
794
|
+
this.parentField !== undefined,
|
|
795
|
+
0xa24 /* Must be in a field to modify its contents */,
|
|
796
|
+
);
|
|
782
797
|
p.events.emit("childrenChanged", p);
|
|
783
798
|
this.bufferedEvents.push({
|
|
784
799
|
node: p,
|
|
@@ -99,11 +99,11 @@ export class DetachedFieldIndex {
|
|
|
99
99
|
return clone;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
public *entries(): Generator<
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
> {
|
|
102
|
+
public *entries(): Generator<{
|
|
103
|
+
root: ForestRootId;
|
|
104
|
+
latestRelevantRevision?: RevisionTag;
|
|
105
|
+
id: Delta.DetachedNodeId;
|
|
106
|
+
}> {
|
|
107
107
|
for (const [major, innerMap] of this.detachedNodeToField) {
|
|
108
108
|
if (major !== undefined) {
|
|
109
109
|
for (const [minor, { root, latestRelevantRevision }] of innerMap) {
|
|
@@ -331,6 +331,7 @@ export class DetachedFieldIndex {
|
|
|
331
331
|
this.isFullyLoaded = false;
|
|
332
332
|
const rootMap = new Map<ForestRootId, Delta.DetachedNodeId>();
|
|
333
333
|
forEachInNestedMap(detachedFieldIndex.data, ({ root }, major, minor) => {
|
|
334
|
+
setInNestedMap(this.detachedNodeToField, major, minor, { root });
|
|
334
335
|
rootMap.set(root, { major, minor });
|
|
335
336
|
});
|
|
336
337
|
|
|
@@ -249,8 +249,13 @@ function transferRoots(
|
|
|
249
249
|
*/
|
|
250
250
|
export interface DeltaVisitor {
|
|
251
251
|
/**
|
|
252
|
-
* Frees/releases the visitor.
|
|
253
|
-
*
|
|
252
|
+
* Frees/releases the visitor.
|
|
253
|
+
*
|
|
254
|
+
* Must be called once the visitor finished traversing the delta for a couple of reasons:
|
|
255
|
+
*
|
|
256
|
+
* 1. Some visitors, such as those from forests, are put into a special mode while they have a visitor, forbidding some actions (like making more visitors).
|
|
257
|
+
*
|
|
258
|
+
* 2. Some visitors, such as those from an anchorSet, defer some events for batching purposes until the visitor is freed.
|
|
254
259
|
*/
|
|
255
260
|
free(): void;
|
|
256
261
|
/**
|
|
@@ -3,116 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Convert a union of types to an intersection of those types. Useful for `TransformEvents`.
|
|
11
|
-
* @privateRemarks
|
|
12
|
-
* First an always true extends clause is used (T extends T) to distribute T into to a union of types contravariant over each member of the T union.
|
|
13
|
-
* Then the constraint on the type parameter in this new context is inferred, giving the intersection.
|
|
14
|
-
*/
|
|
15
|
-
export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (
|
|
16
|
-
k: infer U,
|
|
17
|
-
) => unknown
|
|
18
|
-
? U
|
|
19
|
-
: never;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* `true` iff the given type is an acceptable shape for a {@link Listeners | event} listener
|
|
23
|
-
* @public
|
|
24
|
-
*/
|
|
25
|
-
export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Used to specify the kinds of events emitted by a {@link Listenable}.
|
|
29
|
-
*
|
|
30
|
-
* @remarks
|
|
31
|
-
* Any object type is a valid {@link Listeners}, but only the {@link IsListener | event-like} properties of that
|
|
32
|
-
* type will be included.
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* interface MyEvents {
|
|
37
|
-
* load: (user: string, data: IUserData) => void;
|
|
38
|
-
* error: (errorCode: number) => void;
|
|
39
|
-
* }
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* @public
|
|
43
|
-
*/
|
|
44
|
-
export type Listeners<T extends object> = {
|
|
45
|
-
[P in (string | symbol) & keyof T as IsListener<T[P]> extends true ? P : never]: T[P];
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Converts a {@link Listeners} type (i.e. the event registry for a {@link Listenable}) into a type consumable
|
|
50
|
-
* by an IEventProvider from `@fluidframework/core-interfaces`.
|
|
51
|
-
* @param E - the `Events` type to transform
|
|
52
|
-
* @param Target - an optional `IEvent` type that will be merged into the result along with the transformed `E`
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
*
|
|
56
|
-
* ```typescript
|
|
57
|
-
* interface MyEvents {
|
|
58
|
-
* load: (user: string, data: IUserData) => void;
|
|
59
|
-
* error: (errorCode: number) => void;
|
|
60
|
-
* }
|
|
61
|
-
*
|
|
62
|
-
* class MySharedObject extends SharedObject<TransformEvents<MyEvents, ISharedObjectEvents>> {
|
|
63
|
-
* // ...
|
|
64
|
-
* }
|
|
65
|
-
* ```
|
|
66
|
-
*/
|
|
67
|
-
export type TransformListeners<
|
|
68
|
-
TListeners extends Listeners<TListeners>,
|
|
69
|
-
TTarget extends IEvent = IEvent,
|
|
70
|
-
> = {
|
|
71
|
-
[P in keyof Listeners<TListeners>]: (event: P, listener: TListeners[P]) => void;
|
|
72
|
-
} extends Record<string | number | symbol, infer Z>
|
|
73
|
-
? UnionToIntersection<Z> & TTarget
|
|
74
|
-
: never;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* An object which allows the registration of listeners so that subscribers can be notified when an event happens.
|
|
78
|
-
* @param TListeners - All the {@link Listeners | events} that this subscribable supports
|
|
79
|
-
*
|
|
80
|
-
* @privateRemarks
|
|
81
|
-
* `EventEmitter` can be used as a base class to implement this via extension.
|
|
82
|
-
* ```ts
|
|
83
|
-
* type MyEventEmitter = IEventEmitter<{
|
|
84
|
-
* load: (user: string, data: IUserData) => void;
|
|
85
|
-
* error: (errorCode: number) => void;
|
|
86
|
-
* }>
|
|
87
|
-
* ```
|
|
88
|
-
* {@link createEmitter} can help implement this interface via delegation.
|
|
89
|
-
*
|
|
90
|
-
* @sealed @public
|
|
91
|
-
*/
|
|
92
|
-
export interface Listenable<TListeners extends object> {
|
|
93
|
-
/**
|
|
94
|
-
* Register an event listener.
|
|
95
|
-
* @param eventName - the name of the event
|
|
96
|
-
* @param listener - the handler to run when the event is fired by the emitter
|
|
97
|
-
* @returns a {@link Off | function} which will deregister the listener when called.
|
|
98
|
-
* This deregistration function is idempotent and therefore may be safely called more than once with no effect.
|
|
99
|
-
* @remarks Do not register the exact same `listener` object for the same event more than once.
|
|
100
|
-
* Doing so will result in undefined behavior, and is not guaranteed to behave the same in future versions of this library.
|
|
101
|
-
*/
|
|
102
|
-
on<K extends keyof Listeners<TListeners>>(eventName: K, listener: TListeners[K]): Off;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* A function that, when called, will deregister an event listener subscription that was previously registered.
|
|
107
|
-
* @remarks
|
|
108
|
-
* It is returned by the {@link Listenable.on | event registration function} when event registration occurs.
|
|
109
|
-
* @public
|
|
110
|
-
*/
|
|
111
|
-
export type Off = () => void;
|
|
6
|
+
import { setInNestedMap } from "../util/index.js";
|
|
7
|
+
import type { Listenable, Listeners, Off } from "./listeners.js";
|
|
112
8
|
|
|
113
9
|
/**
|
|
114
10
|
* Interface for an event emitter that can emit typed events to subscribed listeners.
|
|
115
|
-
* @sealed @alpha
|
|
116
11
|
*/
|
|
117
12
|
export interface IEmitter<TListeners extends Listeners<TListeners>> {
|
|
118
13
|
/**
|
|
@@ -141,23 +36,9 @@ export interface IEmitter<TListeners extends Listeners<TListeners>> {
|
|
|
141
36
|
): ReturnType<TListeners[K]>[];
|
|
142
37
|
}
|
|
143
38
|
|
|
144
|
-
/**
|
|
145
|
-
* Create a {@link Listenable} that can be instructed to emit events via the {@link IEmitter} interface.
|
|
146
|
-
*
|
|
147
|
-
* A class can delegate handling {@link Listenable} to the returned value while using it to emit the events.
|
|
148
|
-
* See also `EventEmitter` which be used as a base class to implement {@link Listenable} via extension.
|
|
149
|
-
* @alpha
|
|
150
|
-
*/
|
|
151
|
-
export function createEmitter<TListeners extends object>(
|
|
152
|
-
noListeners?: NoListenersCallback<TListeners>,
|
|
153
|
-
): Listenable<TListeners> & IEmitter<TListeners> & HasListeners<TListeners> {
|
|
154
|
-
return new ComposableEventEmitter<TListeners>(noListeners);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
39
|
/**
|
|
158
40
|
* Called when the last listener for `eventName` is removed.
|
|
159
41
|
* Useful for determining when to clean up resources related to detecting when the event might occurs.
|
|
160
|
-
* @alpha
|
|
161
42
|
*/
|
|
162
43
|
export type NoListenersCallback<TListeners extends object> = (
|
|
163
44
|
eventName: keyof Listeners<TListeners>,
|
|
@@ -165,7 +46,7 @@ export type NoListenersCallback<TListeners extends object> = (
|
|
|
165
46
|
|
|
166
47
|
/**
|
|
167
48
|
* Allows querying if an object has listeners.
|
|
168
|
-
* @sealed
|
|
49
|
+
* @sealed
|
|
169
50
|
*/
|
|
170
51
|
export interface HasListeners<TListeners extends Listeners<TListeners>> {
|
|
171
52
|
/**
|
|
@@ -188,32 +69,34 @@ export interface HasListeners<TListeners extends Listeners<TListeners>> {
|
|
|
188
69
|
*
|
|
189
70
|
* ```typescript
|
|
190
71
|
* interface MyEvents {
|
|
191
|
-
*
|
|
72
|
+
* loaded: () => void;
|
|
73
|
+
* computed: () => number;
|
|
192
74
|
* }
|
|
193
75
|
*
|
|
194
|
-
* class
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
76
|
+
* class MyInheritanceClass extends EventEmitter<MyEvents> {
|
|
77
|
+
* private load() {
|
|
78
|
+
* this.emit("loaded");
|
|
79
|
+
* const results: number[] = this.emitAndCollect("computed");
|
|
80
|
+
* }
|
|
198
81
|
* }
|
|
199
82
|
* ```
|
|
200
83
|
*
|
|
201
84
|
* @example Composing over this class
|
|
202
85
|
*
|
|
203
86
|
* ```typescript
|
|
204
|
-
* class
|
|
205
|
-
*
|
|
87
|
+
* class MyCompositionClass implements Listenable<MyEvents> {
|
|
88
|
+
* private readonly events = createEmitter<MyEvents>();
|
|
206
89
|
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
90
|
+
* private load() {
|
|
91
|
+
* this.events.emit("loaded");
|
|
92
|
+
* const results: number[] = this.events.emitAndCollect("computed");
|
|
93
|
+
* }
|
|
210
94
|
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
95
|
+
* public on<K extends keyof MyEvents>(eventName: K, listener: MyEvents[K]): () => void {
|
|
96
|
+
* return this.events.on(eventName, listener);
|
|
97
|
+
* }
|
|
214
98
|
* }
|
|
215
99
|
* ```
|
|
216
|
-
* @alpha
|
|
217
100
|
*/
|
|
218
101
|
export class EventEmitter<TListeners extends Listeners<TListeners>>
|
|
219
102
|
implements Listenable<TListeners>, HasListeners<TListeners>
|
|
@@ -233,7 +116,7 @@ export class EventEmitter<TListeners extends Listeners<TListeners>>
|
|
|
233
116
|
): void {
|
|
234
117
|
const listeners = this.listeners.get(eventName);
|
|
235
118
|
if (listeners !== undefined) {
|
|
236
|
-
// Current
|
|
119
|
+
// Current tsc (5.4.5) cannot spread `args` into `listener()`.
|
|
237
120
|
const argArray: unknown[] = args;
|
|
238
121
|
|
|
239
122
|
// This explicitly copies listeners so that new listeners added during this call to emit will not receive this event.
|
|
@@ -283,7 +166,7 @@ export class EventEmitter<TListeners extends Listeners<TListeners>>
|
|
|
283
166
|
}
|
|
284
167
|
};
|
|
285
168
|
|
|
286
|
-
|
|
169
|
+
setInNestedMap(this.listeners, eventName, off, listener);
|
|
287
170
|
return off;
|
|
288
171
|
}
|
|
289
172
|
|
|
@@ -298,7 +181,7 @@ export class EventEmitter<TListeners extends Listeners<TListeners>>
|
|
|
298
181
|
/**
|
|
299
182
|
* This class exposes the constructor and the `emit` method of `EventEmitter`, elevating them from protected to public
|
|
300
183
|
*/
|
|
301
|
-
|
|
184
|
+
class ComposableEventEmitter<TListeners extends Listeners<TListeners>>
|
|
302
185
|
extends EventEmitter<TListeners>
|
|
303
186
|
implements IEmitter<TListeners>
|
|
304
187
|
{
|
|
@@ -320,3 +203,33 @@ export class ComposableEventEmitter<TListeners extends Listeners<TListeners>>
|
|
|
320
203
|
return super.emitAndCollect(eventName, ...args);
|
|
321
204
|
}
|
|
322
205
|
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Create a {@link Listenable} that can be instructed to emit events via the {@link IEmitter} interface.
|
|
209
|
+
*
|
|
210
|
+
* A class can delegate handling {@link Listenable} to the returned value while using it to emit the events.
|
|
211
|
+
* See also {@link EventEmitter} which be used as a base class to implement {@link Listenable} via extension.
|
|
212
|
+
* @example Forwarding events to the emitter
|
|
213
|
+
* ```typescript
|
|
214
|
+
* interface MyEvents {
|
|
215
|
+
* loaded(): void;
|
|
216
|
+
* }
|
|
217
|
+
*
|
|
218
|
+
* class MyClass implements Listenable<MyEvents> {
|
|
219
|
+
* private readonly events = createEmitterMinimal<MyEvents>();
|
|
220
|
+
*
|
|
221
|
+
* private load(): void {
|
|
222
|
+
* this.events.emit("loaded");
|
|
223
|
+
* }
|
|
224
|
+
*
|
|
225
|
+
* public on<K extends keyof MyEvents>(eventName: K, listener: MyEvents[K]): Off {
|
|
226
|
+
* return this.events.on(eventName, listener);
|
|
227
|
+
* }
|
|
228
|
+
* }
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
export function createEmitter<TListeners extends object>(
|
|
232
|
+
noListeners?: NoListenersCallback<TListeners>,
|
|
233
|
+
): Listenable<TListeners> & IEmitter<TListeners> & HasListeners<TListeners> {
|
|
234
|
+
return new ComposableEventEmitter<TListeners>(noListeners);
|
|
235
|
+
}
|
package/src/events/index.ts
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
export {
|
|
7
7
|
createEmitter,
|
|
8
8
|
EventEmitter,
|
|
9
|
-
|
|
9
|
+
type IEmitter,
|
|
10
|
+
type NoListenersCallback,
|
|
11
|
+
type HasListeners,
|
|
12
|
+
} from "./emitter.js";
|
|
13
|
+
|
|
14
|
+
export {
|
|
10
15
|
type Listeners,
|
|
11
16
|
type Listenable,
|
|
12
17
|
type Off,
|
|
13
18
|
type IsListener,
|
|
14
|
-
|
|
15
|
-
type UnionToIntersection,
|
|
16
|
-
type IEmitter,
|
|
17
|
-
type NoListenersCallback,
|
|
18
|
-
type HasListeners,
|
|
19
|
-
} from "./events.js";
|
|
19
|
+
} from "./listeners.js";
|