@fluidframework/tree 2.0.0-dev-rc.1.0.0.224419
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 +111 -0
- package/.dependency-cruiser.js +442 -0
- package/.eslintrc.js +34 -0
- package/.mocharc.js +13 -0
- package/.vscode/Tree.code-workspace +15 -0
- package/.vscode/extensions.json +7 -0
- package/.vscode/launch.json +16 -0
- package/.vscode/settings.json +16 -0
- package/CHANGELOG.md +302 -0
- package/DEV.md +3 -0
- package/LICENSE +21 -0
- package/README.md +388 -0
- package/api-extractor-lint.json +13 -0
- package/api-extractor.json +4 -0
- package/api-report/tree.api.md +2022 -0
- package/dist/class-tree/index.d.ts +15 -0
- package/dist/class-tree/index.d.ts.map +1 -0
- package/dist/class-tree/index.js +57 -0
- package/dist/class-tree/index.js.map +1 -0
- package/dist/class-tree/integerIndexable.d.ts +31 -0
- package/dist/class-tree/integerIndexable.d.ts.map +1 -0
- package/dist/class-tree/integerIndexable.js +97 -0
- package/dist/class-tree/integerIndexable.js.map +1 -0
- package/dist/class-tree/internal.d.ts +6 -0
- package/dist/class-tree/internal.d.ts.map +1 -0
- package/dist/class-tree/internal.js +12 -0
- package/dist/class-tree/internal.js.map +1 -0
- package/dist/class-tree/schemaCreationUtilities.d.ts +96 -0
- package/dist/class-tree/schemaCreationUtilities.d.ts.map +1 -0
- package/dist/class-tree/schemaCreationUtilities.js +137 -0
- package/dist/class-tree/schemaCreationUtilities.js.map +1 -0
- package/dist/class-tree/schemaFactory.d.ts +225 -0
- package/dist/class-tree/schemaFactory.d.ts.map +1 -0
- package/dist/class-tree/schemaFactory.js +330 -0
- package/dist/class-tree/schemaFactory.js.map +1 -0
- package/dist/class-tree/schemaFactoryRecursive.d.ts +41 -0
- package/dist/class-tree/schemaFactoryRecursive.d.ts.map +1 -0
- package/dist/class-tree/schemaFactoryRecursive.js +66 -0
- package/dist/class-tree/schemaFactoryRecursive.js.map +1 -0
- package/dist/class-tree/schemaTypes.d.ts +237 -0
- package/dist/class-tree/schemaTypes.d.ts.map +1 -0
- package/dist/class-tree/schemaTypes.js +71 -0
- package/dist/class-tree/schemaTypes.js.map +1 -0
- package/dist/class-tree/testRecursiveDomain.d.ts +28 -0
- package/dist/class-tree/testRecursiveDomain.d.ts.map +1 -0
- package/dist/class-tree/testRecursiveDomain.js +40 -0
- package/dist/class-tree/testRecursiveDomain.js.map +1 -0
- package/dist/class-tree/toFlexSchema.d.ts +58 -0
- package/dist/class-tree/toFlexSchema.d.ts.map +1 -0
- package/dist/class-tree/toFlexSchema.js +207 -0
- package/dist/class-tree/toFlexSchema.js.map +1 -0
- package/dist/class-tree/tree.d.ts +98 -0
- package/dist/class-tree/tree.d.ts.map +1 -0
- package/dist/class-tree/tree.js +46 -0
- package/dist/class-tree/tree.js.map +1 -0
- package/dist/class-tree/treeApi.d.ts +69 -0
- package/dist/class-tree/treeApi.d.ts.map +1 -0
- package/dist/class-tree/treeApi.js +56 -0
- package/dist/class-tree/treeApi.js.map +1 -0
- package/dist/codec/codec.d.ts +214 -0
- package/dist/codec/codec.d.ts.map +1 -0
- package/dist/codec/codec.js +168 -0
- package/dist/codec/codec.js.map +1 -0
- package/dist/codec/discriminatedUnions.d.ts +82 -0
- package/dist/codec/discriminatedUnions.d.ts.map +1 -0
- package/dist/codec/discriminatedUnions.js +91 -0
- package/dist/codec/discriminatedUnions.js.map +1 -0
- package/dist/codec/index.d.ts +8 -0
- package/dist/codec/index.d.ts.map +1 -0
- package/dist/codec/index.js +19 -0
- package/dist/codec/index.js.map +1 -0
- package/dist/codec/noopValidator.d.ts +13 -0
- package/dist/codec/noopValidator.d.ts.map +1 -0
- package/dist/codec/noopValidator.js +17 -0
- package/dist/codec/noopValidator.js.map +1 -0
- package/dist/core/change-family/changeFamily.d.ts +32 -0
- package/dist/core/change-family/changeFamily.d.ts.map +1 -0
- package/dist/core/change-family/changeFamily.js +7 -0
- package/dist/core/change-family/changeFamily.js.map +1 -0
- package/dist/core/change-family/editBuilder.d.ts +19 -0
- package/dist/core/change-family/editBuilder.d.ts.map +1 -0
- package/dist/core/change-family/editBuilder.js +25 -0
- package/dist/core/change-family/editBuilder.js.map +1 -0
- package/dist/core/change-family/index.d.ts +7 -0
- package/dist/core/change-family/index.d.ts.map +1 -0
- package/dist/core/change-family/index.js +10 -0
- package/dist/core/change-family/index.js.map +1 -0
- package/dist/core/forest/editableForest.d.ts +54 -0
- package/dist/core/forest/editableForest.d.ts.map +1 -0
- package/dist/core/forest/editableForest.js +27 -0
- package/dist/core/forest/editableForest.js.map +1 -0
- package/dist/core/forest/forest.d.ts +200 -0
- package/dist/core/forest/forest.d.ts.map +1 -0
- package/dist/core/forest/forest.js +66 -0
- package/dist/core/forest/forest.js.map +1 -0
- package/dist/core/forest/index.d.ts +7 -0
- package/dist/core/forest/index.d.ts.map +1 -0
- package/dist/core/forest/index.js +15 -0
- package/dist/core/forest/index.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +106 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/rebase/changeRebaser.d.ts +132 -0
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -0
- package/dist/core/rebase/changeRebaser.js +34 -0
- package/dist/core/rebase/changeRebaser.js.map +1 -0
- package/dist/core/rebase/index.d.ts +9 -0
- package/dist/core/rebase/index.d.ts.map +1 -0
- package/dist/core/rebase/index.js +32 -0
- package/dist/core/rebase/index.js.map +1 -0
- package/dist/core/rebase/types.d.ts +93 -0
- package/dist/core/rebase/types.d.ts.map +1 -0
- package/dist/core/rebase/types.js +59 -0
- package/dist/core/rebase/types.js.map +1 -0
- package/dist/core/rebase/utils.d.ts +215 -0
- package/dist/core/rebase/utils.d.ts.map +1 -0
- package/dist/core/rebase/utils.js +297 -0
- package/dist/core/rebase/utils.js.map +1 -0
- package/dist/core/rebase/verifyChangeRebaser.d.ts +76 -0
- package/dist/core/rebase/verifyChangeRebaser.d.ts.map +1 -0
- package/dist/core/rebase/verifyChangeRebaser.js +291 -0
- package/dist/core/rebase/verifyChangeRebaser.js.map +1 -0
- package/dist/core/revertible/index.d.ts +6 -0
- package/dist/core/revertible/index.d.ts.map +1 -0
- package/dist/core/revertible/index.js +12 -0
- package/dist/core/revertible/index.js.map +1 -0
- package/dist/core/revertible/revertible.d.ts +72 -0
- package/dist/core/revertible/revertible.d.ts.map +1 -0
- package/dist/core/revertible/revertible.js +51 -0
- package/dist/core/revertible/revertible.js.map +1 -0
- package/dist/core/schema-stored/format.d.ts +97 -0
- package/dist/core/schema-stored/format.d.ts.map +1 -0
- package/dist/core/schema-stored/format.js +65 -0
- package/dist/core/schema-stored/format.js.map +1 -0
- package/dist/core/schema-stored/index.d.ts +10 -0
- package/dist/core/schema-stored/index.d.ts.map +1 -0
- package/dist/core/schema-stored/index.js +47 -0
- package/dist/core/schema-stored/index.js.map +1 -0
- package/dist/core/schema-stored/schema.d.ts +195 -0
- package/dist/core/schema-stored/schema.d.ts.map +1 -0
- package/dist/core/schema-stored/schema.js +174 -0
- package/dist/core/schema-stored/schema.js.map +1 -0
- package/dist/core/schema-stored/storedSchemaRepository.d.ts +71 -0
- package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -0
- package/dist/core/schema-stored/storedSchemaRepository.js +81 -0
- package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -0
- package/dist/core/schema-view/index.d.ts +6 -0
- package/dist/core/schema-view/index.d.ts.map +1 -0
- package/dist/core/schema-view/index.js +12 -0
- package/dist/core/schema-view/index.js.map +1 -0
- package/dist/core/schema-view/view.d.ts +64 -0
- package/dist/core/schema-view/view.d.ts.map +1 -0
- package/dist/core/schema-view/view.js +55 -0
- package/dist/core/schema-view/view.js.map +1 -0
- package/dist/core/tree/anchorSet.d.ts +318 -0
- package/dist/core/tree/anchorSet.d.ts.map +1 -0
- package/dist/core/tree/anchorSet.js +895 -0
- package/dist/core/tree/anchorSet.js.map +1 -0
- package/dist/core/tree/cursor.d.ts +358 -0
- package/dist/core/tree/cursor.d.ts.map +1 -0
- package/dist/core/tree/cursor.js +169 -0
- package/dist/core/tree/cursor.js.map +1 -0
- package/dist/core/tree/delta.d.ts +241 -0
- package/dist/core/tree/delta.d.ts.map +1 -0
- package/dist/core/tree/delta.js +7 -0
- package/dist/core/tree/delta.js.map +1 -0
- package/dist/core/tree/deltaUtil.d.ts +19 -0
- package/dist/core/tree/deltaUtil.d.ts.map +1 -0
- package/dist/core/tree/deltaUtil.js +82 -0
- package/dist/core/tree/deltaUtil.js.map +1 -0
- package/dist/core/tree/detachedFieldIndex.d.ts +64 -0
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndex.js +119 -0
- package/dist/core/tree/detachedFieldIndex.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodec.d.ts +8 -0
- package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexCodec.js +53 -0
- package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexFormat.d.ts +18 -0
- package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexFormat.js +25 -0
- package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -0
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +13 -0
- package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -0
- package/dist/core/tree/detachedFieldIndexTypes.js +7 -0
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -0
- package/dist/core/tree/index.d.ts +19 -0
- package/dist/core/tree/index.d.ts.map +1 -0
- package/dist/core/tree/index.js +67 -0
- package/dist/core/tree/index.js.map +1 -0
- package/dist/core/tree/mapTree.d.ts +22 -0
- package/dist/core/tree/mapTree.d.ts.map +1 -0
- package/dist/core/tree/mapTree.js +25 -0
- package/dist/core/tree/mapTree.js.map +1 -0
- package/dist/core/tree/pathTree.d.ts +156 -0
- package/dist/core/tree/pathTree.d.ts.map +1 -0
- package/dist/core/tree/pathTree.js +99 -0
- package/dist/core/tree/pathTree.js.map +1 -0
- package/dist/core/tree/persistedTreeTextFormat.d.ts +93 -0
- package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -0
- package/dist/core/tree/persistedTreeTextFormat.js +23 -0
- package/dist/core/tree/persistedTreeTextFormat.js.map +1 -0
- package/dist/core/tree/sparseTree.d.ts +91 -0
- package/dist/core/tree/sparseTree.d.ts.map +1 -0
- package/dist/core/tree/sparseTree.js +149 -0
- package/dist/core/tree/sparseTree.js.map +1 -0
- package/dist/core/tree/treeTextFormat.d.ts +94 -0
- package/dist/core/tree/treeTextFormat.d.ts.map +1 -0
- package/dist/core/tree/treeTextFormat.js +88 -0
- package/dist/core/tree/treeTextFormat.js.map +1 -0
- package/dist/core/tree/types.d.ts +145 -0
- package/dist/core/tree/types.d.ts.map +1 -0
- package/dist/core/tree/types.js +60 -0
- package/dist/core/tree/types.js.map +1 -0
- package/dist/core/tree/visitDelta.d.ts +135 -0
- package/dist/core/tree/visitDelta.d.ts.map +1 -0
- package/dist/core/tree/visitDelta.js +304 -0
- package/dist/core/tree/visitDelta.js.map +1 -0
- package/dist/core/tree/visitPath.d.ts +103 -0
- package/dist/core/tree/visitPath.d.ts.map +1 -0
- package/dist/core/tree/visitPath.js +3 -0
- package/dist/core/tree/visitPath.js.map +1 -0
- package/dist/core/tree/visitorUtils.d.ts +37 -0
- package/dist/core/tree/visitorUtils.d.ts.map +1 -0
- package/dist/core/tree/visitorUtils.js +60 -0
- package/dist/core/tree/visitorUtils.js.map +1 -0
- package/dist/domains/index.d.ts +9 -0
- package/dist/domains/index.d.ts.map +1 -0
- package/dist/domains/index.js +23 -0
- package/dist/domains/index.js.map +1 -0
- package/dist/domains/json/index.d.ts +7 -0
- package/dist/domains/json/index.d.ts.map +1 -0
- package/dist/domains/json/index.js +16 -0
- package/dist/domains/json/index.js.map +1 -0
- package/dist/domains/json/jsonCursor.d.ts +18 -0
- package/dist/domains/json/jsonCursor.d.ts.map +1 -0
- package/dist/domains/json/jsonCursor.js +125 -0
- package/dist/domains/json/jsonCursor.js.map +1 -0
- package/dist/domains/json/jsonDomainSchema.d.ts +14 -0
- package/dist/domains/json/jsonDomainSchema.d.ts.map +1 -0
- package/dist/domains/json/jsonDomainSchema.js +24 -0
- package/dist/domains/json/jsonDomainSchema.js.map +1 -0
- package/dist/domains/leafDomain.d.ts +73 -0
- package/dist/domains/leafDomain.d.ts.map +1 -0
- package/dist/domains/leafDomain.js +89 -0
- package/dist/domains/leafDomain.js.map +1 -0
- package/dist/domains/nodeKey/index.d.ts +6 -0
- package/dist/domains/nodeKey/index.d.ts.map +1 -0
- package/dist/domains/nodeKey/index.js +12 -0
- package/dist/domains/nodeKey/index.js.map +1 -0
- package/dist/domains/nodeKey/nodeKeySchema.d.ts +30 -0
- package/dist/domains/nodeKey/nodeKeySchema.d.ts.map +1 -0
- package/dist/domains/nodeKey/nodeKeySchema.js +36 -0
- package/dist/domains/nodeKey/nodeKeySchema.js.map +1 -0
- package/dist/domains/schemaBuilder.d.ts +190 -0
- package/dist/domains/schemaBuilder.d.ts.map +1 -0
- package/dist/domains/schemaBuilder.js +204 -0
- package/dist/domains/schemaBuilder.js.map +1 -0
- package/dist/domains/testRecursiveDomain.d.ts +21 -0
- package/dist/domains/testRecursiveDomain.d.ts.map +1 -0
- package/dist/domains/testRecursiveDomain.js +42 -0
- package/dist/domains/testRecursiveDomain.js.map +1 -0
- package/dist/events/events.d.ts +187 -0
- package/dist/events/events.d.ts.map +1 -0
- package/dist/events/events.js +124 -0
- package/dist/events/events.js.map +1 -0
- package/dist/events/index.d.ts +6 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +11 -0
- package/dist/events/index.js.map +1 -0
- package/dist/external-utilities/index.d.ts +6 -0
- package/dist/external-utilities/index.d.ts.map +1 -0
- package/dist/external-utilities/index.js +10 -0
- package/dist/external-utilities/index.js.map +1 -0
- package/dist/external-utilities/typeboxValidator.d.ts +18 -0
- package/dist/external-utilities/typeboxValidator.d.ts.map +1 -0
- package/dist/external-utilities/typeboxValidator.js +30 -0
- package/dist/external-utilities/typeboxValidator.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts +111 -0
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/basicChunk.js +460 -0
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/chunk.d.ts +89 -0
- package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/chunk.js +28 -0
- package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +156 -0
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/chunkTree.js +357 -0
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +57 -0
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +300 -0
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +114 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +135 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +61 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +219 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +30 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +53 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +81 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +126 -0
- package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +32 -0
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +68 -0
- package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +149 -0
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +280 -0
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +11 -0
- package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/fieldBatch.js +7 -0
- package/dist/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts +208 -0
- package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/format.js +138 -0
- package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +43 -0
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js +45 -0
- package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts +8 -0
- package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/index.js +13 -0
- package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +23 -0
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +94 -0
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +28 -0
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +99 -0
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +16 -0
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +61 -0
- package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts +19 -0
- package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/emptyChunk.js +107 -0
- package/dist/feature-libraries/chunked-forest/emptyChunk.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/index.d.ts +10 -0
- package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/index.js +25 -0
- package/dist/feature-libraries/chunked-forest/index.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts +26 -0
- package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js +51 -0
- package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -0
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +186 -0
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -0
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +397 -0
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -0
- package/dist/feature-libraries/contextuallyTyped.d.ts +212 -0
- package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -0
- package/dist/feature-libraries/contextuallyTyped.js +342 -0
- package/dist/feature-libraries/contextuallyTyped.js.map +1 -0
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +136 -0
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +245 -0
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -0
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +112 -0
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +110 -0
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -0
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts +11 -0
- package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/defaultSchema.js +16 -0
- package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -0
- package/dist/feature-libraries/default-schema/index.d.ts +8 -0
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/index.js +18 -0
- package/dist/feature-libraries/default-schema/index.js.map +1 -0
- package/dist/feature-libraries/deltaUtils.d.ts +62 -0
- package/dist/feature-libraries/deltaUtils.d.ts.map +1 -0
- package/dist/feature-libraries/deltaUtils.js +126 -0
- package/dist/feature-libraries/deltaUtils.js.map +1 -0
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +21 -0
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -0
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js +46 -0
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -0
- package/dist/feature-libraries/editableTreeBinder.d.ts +325 -0
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -0
- package/dist/feature-libraries/editableTreeBinder.js +578 -0
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -0
- package/dist/feature-libraries/fieldGenerator.d.ts +46 -0
- package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -0
- package/dist/feature-libraries/fieldGenerator.js +14 -0
- package/dist/feature-libraries/fieldGenerator.js.map +1 -0
- package/dist/feature-libraries/flex-tree/context.d.ts +87 -0
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/context.js +110 -0
- package/dist/feature-libraries/flex-tree/context.js.map +1 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +793 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +57 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -0
- package/dist/feature-libraries/flex-tree/index.d.ts +11 -0
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/index.js +24 -0
- package/dist/feature-libraries/flex-tree/index.js.map +1 -0
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +49 -0
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/lazyEntity.js +104 -0
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -0
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +87 -0
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/lazyField.js +341 -0
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -0
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +75 -0
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/lazyNode.js +426 -0
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -0
- package/dist/feature-libraries/flex-tree/navigation.d.ts +46 -0
- package/dist/feature-libraries/flex-tree/navigation.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/navigation.js +104 -0
- package/dist/feature-libraries/flex-tree/navigation.js.map +1 -0
- package/dist/feature-libraries/flex-tree/nodeKeys.d.ts +42 -0
- package/dist/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/nodeKeys.js +24 -0
- package/dist/feature-libraries/flex-tree/nodeKeys.js.map +1 -0
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts +111 -0
- package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/treeEvents.js +7 -0
- package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -0
- package/dist/feature-libraries/flex-tree/unboxed.d.ts +24 -0
- package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/unboxed.js +54 -0
- package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -0
- package/dist/feature-libraries/flex-tree/utilities.d.ts +29 -0
- package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/utilities.js +58 -0
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -0
- package/dist/feature-libraries/forest-summary/codec.d.ts +16 -0
- package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -0
- package/dist/feature-libraries/forest-summary/codec.js +39 -0
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -0
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +40 -0
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -0
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +112 -0
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -0
- package/dist/feature-libraries/forest-summary/format.d.ts +16 -0
- package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -0
- package/dist/feature-libraries/forest-summary/format.js +17 -0
- package/dist/feature-libraries/forest-summary/format.js.map +1 -0
- package/dist/feature-libraries/forest-summary/index.d.ts +6 -0
- package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -0
- package/dist/feature-libraries/forest-summary/index.js +10 -0
- package/dist/feature-libraries/forest-summary/index.js.map +1 -0
- package/dist/feature-libraries/incrementalSummarizationUtils.d.ts +20 -0
- package/dist/feature-libraries/incrementalSummarizationUtils.d.ts.map +1 -0
- package/dist/feature-libraries/incrementalSummarizationUtils.js +7 -0
- package/dist/feature-libraries/incrementalSummarizationUtils.js.map +1 -0
- package/dist/feature-libraries/index.d.ts +35 -0
- package/dist/feature-libraries/index.d.ts.map +1 -0
- package/dist/feature-libraries/index.js +181 -0
- package/dist/feature-libraries/index.js.map +1 -0
- package/dist/feature-libraries/mapTreeCursor.d.ts +19 -0
- package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -0
- package/dist/feature-libraries/mapTreeCursor.js +53 -0
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -0
- package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts +42 -0
- package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -0
- package/dist/feature-libraries/memoizedIdRangeAllocator.js +75 -0
- package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -0
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts +22 -0
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -0
- package/dist/feature-libraries/mitigatedChangeFamily.js +55 -0
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -0
- package/dist/feature-libraries/modular-schema/comparison.d.ts +63 -0
- package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/comparison.js +203 -0
- package/dist/feature-libraries/modular-schema/comparison.js.map +1 -0
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +37 -0
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js +29 -0
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -0
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +140 -0
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js +44 -0
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -0
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts +94 -0
- package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/fieldKind.js +101 -0
- package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +27 -0
- package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +168 -0
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +9 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +33 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +34 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js +31 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +23 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js +7 -0
- package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -0
- package/dist/feature-libraries/modular-schema/index.d.ts +15 -0
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/index.js +43 -0
- package/dist/feature-libraries/modular-schema/index.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +12 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +188 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +125 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +733 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +149 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js +77 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +69 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js +7 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -0
- package/dist/feature-libraries/multiplicity.d.ts +55 -0
- package/dist/feature-libraries/multiplicity.d.ts.map +1 -0
- package/dist/feature-libraries/multiplicity.js +59 -0
- package/dist/feature-libraries/multiplicity.js.map +1 -0
- package/dist/feature-libraries/node-key/index.d.ts +8 -0
- package/dist/feature-libraries/node-key/index.d.ts.map +1 -0
- package/dist/feature-libraries/node-key/index.js +17 -0
- package/dist/feature-libraries/node-key/index.js.map +1 -0
- package/dist/feature-libraries/node-key/nodeKey.d.ts +50 -0
- package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -0
- package/dist/feature-libraries/node-key/nodeKey.js +36 -0
- package/dist/feature-libraries/node-key/nodeKey.js.map +1 -0
- package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts +41 -0
- package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -0
- package/dist/feature-libraries/node-key/nodeKeyIndex.js +102 -0
- package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +1 -0
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +36 -0
- package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -0
- package/dist/feature-libraries/node-key/nodeKeyManager.js +66 -0
- package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -0
- package/dist/feature-libraries/object-forest/index.d.ts +6 -0
- package/dist/feature-libraries/object-forest/index.d.ts.map +1 -0
- package/dist/feature-libraries/object-forest/index.js +10 -0
- package/dist/feature-libraries/object-forest/index.js.map +1 -0
- package/dist/feature-libraries/object-forest/objectForest.d.ts +86 -0
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -0
- package/dist/feature-libraries/object-forest/objectForest.js +382 -0
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -0
- package/dist/feature-libraries/optional-field/index.d.ts +8 -0
- package/dist/feature-libraries/optional-field/index.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/index.js +16 -0
- package/dist/feature-libraries/optional-field/index.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalField.d.ts +31 -0
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalField.js +448 -0
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts +38 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.js +26 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +55 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js +7 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +11 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +86 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -0
- package/dist/feature-libraries/schema-aware/index.d.ts +6 -0
- package/dist/feature-libraries/schema-aware/index.d.ts.map +1 -0
- package/dist/feature-libraries/schema-aware/index.js +7 -0
- package/dist/feature-libraries/schema-aware/index.js.map +1 -0
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts +77 -0
- package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -0
- package/dist/feature-libraries/schema-aware/schemaAware.js +9 -0
- package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -0
- package/dist/feature-libraries/schema-edits/index.d.ts +8 -0
- package/dist/feature-libraries/schema-edits/index.d.ts.map +1 -0
- package/dist/feature-libraries/schema-edits/index.js +12 -0
- package/dist/feature-libraries/schema-edits/index.js.map +1 -0
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +9 -0
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -0
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +31 -0
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -0
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +53 -0
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -0
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.js +14 -0
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -0
- package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts +18 -0
- package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -0
- package/dist/feature-libraries/schema-edits/schemaChangeTypes.js +7 -0
- package/dist/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -0
- package/dist/feature-libraries/schema-index/codec.d.ts +13 -0
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -0
- package/dist/feature-libraries/schema-index/codec.js +56 -0
- package/dist/feature-libraries/schema-index/codec.js.map +1 -0
- package/dist/feature-libraries/schema-index/format.d.ts +60 -0
- package/dist/feature-libraries/schema-index/format.d.ts.map +1 -0
- package/dist/feature-libraries/schema-index/format.js +33 -0
- package/dist/feature-libraries/schema-index/format.js.map +1 -0
- package/dist/feature-libraries/schema-index/index.d.ts +8 -0
- package/dist/feature-libraries/schema-index/index.d.ts.map +1 -0
- package/dist/feature-libraries/schema-index/index.js +15 -0
- package/dist/feature-libraries/schema-index/index.js.map +1 -0
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +41 -0
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -0
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +86 -0
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -0
- package/dist/feature-libraries/schemaBuilder.d.ts +31 -0
- package/dist/feature-libraries/schemaBuilder.d.ts.map +1 -0
- package/dist/feature-libraries/schemaBuilder.js +40 -0
- package/dist/feature-libraries/schemaBuilder.js.map +1 -0
- package/dist/feature-libraries/schemaBuilderBase.d.ts +217 -0
- package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -0
- package/dist/feature-libraries/schemaBuilderBase.js +227 -0
- package/dist/feature-libraries/schemaBuilderBase.js.map +1 -0
- package/dist/feature-libraries/sequence-field/compose.d.ts +45 -0
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/compose.js +438 -0
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -0
- package/dist/feature-libraries/sequence-field/format.d.ts +427 -0
- package/dist/feature-libraries/sequence-field/format.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/format.js +78 -0
- package/dist/feature-libraries/sequence-field/format.js.map +1 -0
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts +34 -0
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/helperTypes.js +18 -0
- package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -0
- package/dist/feature-libraries/sequence-field/index.d.ts +18 -0
- package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/index.js +41 -0
- package/dist/feature-libraries/sequence-field/index.js.map +1 -0
- package/dist/feature-libraries/sequence-field/invert.d.ts +19 -0
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/invert.js +221 -0
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -0
- package/dist/feature-libraries/sequence-field/markListFactory.d.ts +21 -0
- package/dist/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/markListFactory.js +55 -0
- package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -0
- package/dist/feature-libraries/sequence-field/markQueue.d.ts +30 -0
- package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/markQueue.js +74 -0
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -0
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +48 -0
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +253 -0
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -0
- package/dist/feature-libraries/sequence-field/prune.d.ts +8 -0
- package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/prune.js +25 -0
- package/dist/feature-libraries/sequence-field/prune.js.map +1 -0
- package/dist/feature-libraries/sequence-field/rebase.d.ts +26 -0
- package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/rebase.js +619 -0
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -0
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +50 -0
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +10 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +22 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +19 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +19 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +10 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +239 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +33 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +113 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +9 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +165 -0
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -0
- package/dist/feature-libraries/sequence-field/types.d.ts +182 -0
- package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/types.js +9 -0
- package/dist/feature-libraries/sequence-field/types.js.map +1 -0
- package/dist/feature-libraries/sequence-field/utils.d.ts +198 -0
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -0
- package/dist/feature-libraries/sequence-field/utils.js +977 -0
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -0
- package/dist/feature-libraries/storedToViewSchema.d.ts +18 -0
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -0
- package/dist/feature-libraries/storedToViewSchema.js +70 -0
- package/dist/feature-libraries/storedToViewSchema.js.map +1 -0
- package/dist/feature-libraries/treeCompressionUtils.d.ts +23 -0
- package/dist/feature-libraries/treeCompressionUtils.d.ts.map +1 -0
- package/dist/feature-libraries/treeCompressionUtils.js +27 -0
- package/dist/feature-libraries/treeCompressionUtils.js.map +1 -0
- package/dist/feature-libraries/treeCursorUtils.d.ts +101 -0
- package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -0
- package/dist/feature-libraries/treeCursorUtils.js +374 -0
- package/dist/feature-libraries/treeCursorUtils.js.map +1 -0
- package/dist/feature-libraries/treeTextCursor.d.ts +62 -0
- package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -0
- package/dist/feature-libraries/treeTextCursor.js +104 -0
- package/dist/feature-libraries/treeTextCursor.js.map +1 -0
- package/dist/feature-libraries/typed-schema/flexList.d.ts +97 -0
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -0
- package/dist/feature-libraries/typed-schema/flexList.js +58 -0
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -0
- package/dist/feature-libraries/typed-schema/index.d.ts +11 -0
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -0
- package/dist/feature-libraries/typed-schema/index.js +61 -0
- package/dist/feature-libraries/typed-schema/index.js.map +1 -0
- package/dist/feature-libraries/typed-schema/internal.d.ts +7 -0
- package/dist/feature-libraries/typed-schema/internal.d.ts.map +1 -0
- package/dist/feature-libraries/typed-schema/internal.js +7 -0
- package/dist/feature-libraries/typed-schema/internal.js.map +1 -0
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +67 -0
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -0
- package/dist/feature-libraries/typed-schema/schemaCollection.js +207 -0
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -0
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts +22 -0
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -0
- package/dist/feature-libraries/typed-schema/typeUtils.js +14 -0
- package/dist/feature-libraries/typed-schema/typeUtils.js.map +1 -0
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +294 -0
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -0
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +334 -0
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -0
- package/dist/feature-libraries/typed-schema/view.d.ts +55 -0
- package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -0
- package/dist/feature-libraries/typed-schema/view.js +117 -0
- package/dist/feature-libraries/typed-schema/view.js.map +1 -0
- package/dist/feature-libraries/utils.d.ts +9 -0
- package/dist/feature-libraries/utils.d.ts.map +1 -0
- package/dist/feature-libraries/utils.js +28 -0
- package/dist/feature-libraries/utils.js.map +1 -0
- package/dist/feature-libraries/valueUtilities.d.ts +21 -0
- package/dist/feature-libraries/valueUtilities.d.ts.map +1 -0
- package/dist/feature-libraries/valueUtilities.js +70 -0
- package/dist/feature-libraries/valueUtilities.js.map +1 -0
- package/dist/feature-libraries/versioned/codec.d.ts +11 -0
- package/dist/feature-libraries/versioned/codec.d.ts.map +1 -0
- package/dist/feature-libraries/versioned/codec.js +31 -0
- package/dist/feature-libraries/versioned/codec.js.map +1 -0
- package/dist/feature-libraries/versioned/format.d.ts +10 -0
- package/dist/feature-libraries/versioned/format.d.ts.map +1 -0
- package/dist/feature-libraries/versioned/format.js +12 -0
- package/dist/feature-libraries/versioned/format.js.map +1 -0
- package/dist/feature-libraries/versioned/index.d.ts +7 -0
- package/dist/feature-libraries/versioned/index.d.ts.map +1 -0
- package/dist/feature-libraries/versioned/index.js +13 -0
- package/dist/feature-libraries/versioned/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +133 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +8 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +11 -0
- package/dist/internal.js.map +1 -0
- package/dist/shared-tree/index.d.ts +10 -0
- package/dist/shared-tree/index.d.ts.map +1 -0
- package/dist/shared-tree/index.js +19 -0
- package/dist/shared-tree/index.js.map +1 -0
- package/dist/shared-tree/schematizedTree.d.ts +94 -0
- package/dist/shared-tree/schematizedTree.d.ts.map +1 -0
- package/dist/shared-tree/schematizedTree.js +158 -0
- package/dist/shared-tree/schematizedTree.js.map +1 -0
- package/dist/shared-tree/sharedTree.d.ts +143 -0
- package/dist/shared-tree/sharedTree.d.ts.map +1 -0
- package/dist/shared-tree/sharedTree.js +220 -0
- package/dist/shared-tree/sharedTree.js.map +1 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +11 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.js +59 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -0
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +25 -0
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -0
- package/dist/shared-tree/sharedTreeChangeFamily.js +120 -0
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -0
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts +178 -0
- package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -0
- package/dist/shared-tree/sharedTreeChangeFormat.js +15 -0
- package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -0
- package/dist/shared-tree/sharedTreeChangeTypes.d.ts +26 -0
- package/dist/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -0
- package/dist/shared-tree/sharedTreeChangeTypes.js +7 -0
- package/dist/shared-tree/sharedTreeChangeTypes.js.map +1 -0
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +42 -0
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -0
- package/dist/shared-tree/sharedTreeEditBuilder.js +34 -0
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -0
- package/dist/shared-tree/treeCheckout.d.ts +228 -0
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -0
- package/dist/shared-tree/treeCheckout.js +190 -0
- package/dist/shared-tree/treeCheckout.js.map +1 -0
- package/dist/shared-tree/treeView.d.ts +66 -0
- package/dist/shared-tree/treeView.d.ts.map +1 -0
- package/dist/shared-tree/treeView.js +33 -0
- package/dist/shared-tree/treeView.js.map +1 -0
- package/dist/shared-tree-core/branch.d.ts +199 -0
- package/dist/shared-tree-core/branch.d.ts.map +1 -0
- package/dist/shared-tree-core/branch.js +413 -0
- package/dist/shared-tree-core/branch.js.map +1 -0
- package/dist/shared-tree-core/editManager.d.ts +126 -0
- package/dist/shared-tree-core/editManager.d.ts.map +1 -0
- package/dist/shared-tree-core/editManager.js +435 -0
- package/dist/shared-tree-core/editManager.js.map +1 -0
- package/dist/shared-tree-core/editManagerCodecs.d.ts +9 -0
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerCodecs.js +52 -0
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -0
- package/dist/shared-tree-core/editManagerFormat.d.ts +68 -0
- package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerFormat.js +58 -0
- package/dist/shared-tree-core/editManagerFormat.js.map +1 -0
- package/dist/shared-tree-core/editManagerSummarizer.d.ts +25 -0
- package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerSummarizer.js +56 -0
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -0
- package/dist/shared-tree-core/index.d.ts +13 -0
- package/dist/shared-tree-core/index.d.ts.map +1 -0
- package/dist/shared-tree-core/index.js +25 -0
- package/dist/shared-tree-core/index.js.map +1 -0
- package/dist/shared-tree-core/messageCodecs.d.ts +9 -0
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -0
- package/dist/shared-tree-core/messageCodecs.js +35 -0
- package/dist/shared-tree-core/messageCodecs.js.map +1 -0
- package/dist/shared-tree-core/messageFormat.d.ts +30 -0
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -0
- package/dist/shared-tree-core/messageFormat.js +16 -0
- package/dist/shared-tree-core/messageFormat.js.map +1 -0
- package/dist/shared-tree-core/messageTypes.d.ts +10 -0
- package/dist/shared-tree-core/messageTypes.d.ts.map +1 -0
- package/dist/shared-tree-core/messageTypes.js +7 -0
- package/dist/shared-tree-core/messageTypes.js.map +1 -0
- package/dist/shared-tree-core/revisionTagCodecs.d.ts +11 -0
- package/dist/shared-tree-core/revisionTagCodecs.d.ts.map +1 -0
- package/dist/shared-tree-core/revisionTagCodecs.js +17 -0
- package/dist/shared-tree-core/revisionTagCodecs.js.map +1 -0
- package/dist/shared-tree-core/sharedTreeCore.d.ts +112 -0
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -0
- package/dist/shared-tree-core/sharedTreeCore.js +197 -0
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -0
- package/dist/shared-tree-core/transactionStack.d.ts +30 -0
- package/dist/shared-tree-core/transactionStack.d.ts.map +1 -0
- package/dist/shared-tree-core/transactionStack.js +42 -0
- package/dist/shared-tree-core/transactionStack.js.map +1 -0
- package/dist/simple-tree/flexNode.d.ts +34 -0
- package/dist/simple-tree/flexNode.d.ts.map +1 -0
- package/dist/simple-tree/flexNode.js +57 -0
- package/dist/simple-tree/flexNode.js.map +1 -0
- package/dist/simple-tree/index.d.ts +10 -0
- package/dist/simple-tree/index.d.ts.map +1 -0
- package/dist/simple-tree/index.js +17 -0
- package/dist/simple-tree/index.js.map +1 -0
- package/dist/simple-tree/insertable.d.ts +44 -0
- package/dist/simple-tree/insertable.d.ts.map +1 -0
- package/dist/simple-tree/insertable.js +7 -0
- package/dist/simple-tree/insertable.js.map +1 -0
- package/dist/simple-tree/objectFactory.d.ts +30 -0
- package/dist/simple-tree/objectFactory.d.ts.map +1 -0
- package/dist/simple-tree/objectFactory.js +20 -0
- package/dist/simple-tree/objectFactory.js.map +1 -0
- package/dist/simple-tree/proxies.d.ts +112 -0
- package/dist/simple-tree/proxies.d.ts.map +1 -0
- package/dist/simple-tree/proxies.js +811 -0
- package/dist/simple-tree/proxies.js.map +1 -0
- package/dist/simple-tree/rawNode.d.ts +96 -0
- package/dist/simple-tree/rawNode.d.ts.map +1 -0
- package/dist/simple-tree/rawNode.js +141 -0
- package/dist/simple-tree/rawNode.js.map +1 -0
- package/dist/simple-tree/toMapTree.d.ts +101 -0
- package/dist/simple-tree/toMapTree.d.ts.map +1 -0
- package/dist/simple-tree/toMapTree.js +299 -0
- package/dist/simple-tree/toMapTree.js.map +1 -0
- package/dist/simple-tree/treeListNode.d.ts +60 -0
- package/dist/simple-tree/treeListNode.d.ts.map +1 -0
- package/dist/simple-tree/treeListNode.js +53 -0
- package/dist/simple-tree/treeListNode.js.map +1 -0
- package/dist/simple-tree/types.d.ts +243 -0
- package/dist/simple-tree/types.d.ts.map +1 -0
- package/dist/simple-tree/types.js +21 -0
- package/dist/simple-tree/types.js.map +1 -0
- package/dist/tree-alpha.d.ts +1789 -0
- package/dist/tree-beta.d.ts +1789 -0
- package/dist/tree-public.d.ts +728 -0
- package/dist/tree-untrimmed.d.ts +6411 -0
- package/dist/treeFactory.d.ts +55 -0
- package/dist/treeFactory.d.ts.map +1 -0
- package/dist/treeFactory.js +85 -0
- package/dist/treeFactory.js.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/util/brand.d.ts +179 -0
- package/dist/util/brand.d.ts.map +1 -0
- package/dist/util/brand.js +130 -0
- package/dist/util/brand.js.map +1 -0
- package/dist/util/brandedMap.d.ts +46 -0
- package/dist/util/brandedMap.d.ts.map +1 -0
- package/dist/util/brandedMap.js +32 -0
- package/dist/util/brandedMap.js.map +1 -0
- package/dist/util/idAllocator.d.ts +29 -0
- package/dist/util/idAllocator.d.ts.map +1 -0
- package/dist/util/idAllocator.js +34 -0
- package/dist/util/idAllocator.js.map +1 -0
- package/dist/util/index.d.ts +18 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +82 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/nestedMap.d.ts +129 -0
- package/dist/util/nestedMap.d.ts.map +1 -0
- package/dist/util/nestedMap.js +239 -0
- package/dist/util/nestedMap.js.map +1 -0
- package/dist/util/nestedSet.d.ts +9 -0
- package/dist/util/nestedSet.d.ts.map +1 -0
- package/dist/util/nestedSet.js +17 -0
- package/dist/util/nestedSet.js.map +1 -0
- package/dist/util/offsetList.d.ts +22 -0
- package/dist/util/offsetList.d.ts.map +1 -0
- package/dist/util/offsetList.js +44 -0
- package/dist/util/offsetList.js.map +1 -0
- package/dist/util/rangeMap.d.ts +40 -0
- package/dist/util/rangeMap.d.ts.map +1 -0
- package/dist/util/rangeMap.js +103 -0
- package/dist/util/rangeMap.js.map +1 -0
- package/dist/util/referenceCounting.d.ts +30 -0
- package/dist/util/referenceCounting.d.ts.map +1 -0
- package/dist/util/referenceCounting.js +34 -0
- package/dist/util/referenceCounting.js.map +1 -0
- package/dist/util/stackyIterator.d.ts +20 -0
- package/dist/util/stackyIterator.d.ts.map +1 -0
- package/dist/util/stackyIterator.js +49 -0
- package/dist/util/stackyIterator.js.map +1 -0
- package/dist/util/transactionResult.d.ts +20 -0
- package/dist/util/transactionResult.d.ts.map +1 -0
- package/dist/util/transactionResult.js +24 -0
- package/dist/util/transactionResult.js.map +1 -0
- package/dist/util/typeCheck.d.ts +183 -0
- package/dist/util/typeCheck.d.ts.map +1 -0
- package/dist/util/typeCheck.js +7 -0
- package/dist/util/typeCheck.js.map +1 -0
- package/dist/util/typeCheckTests.d.ts +60 -0
- package/dist/util/typeCheckTests.d.ts.map +1 -0
- package/dist/util/typeCheckTests.js +7 -0
- package/dist/util/typeCheckTests.js.map +1 -0
- package/dist/util/typeUtils.d.ts +129 -0
- package/dist/util/typeUtils.d.ts.map +1 -0
- package/dist/util/typeUtils.js +11 -0
- package/dist/util/typeUtils.js.map +1 -0
- package/dist/util/utils.d.ts +287 -0
- package/dist/util/utils.d.ts.map +1 -0
- package/dist/util/utils.js +376 -0
- package/dist/util/utils.js.map +1 -0
- package/docs/.attachments/UndoAfterCollab.png +0 -0
- package/docs/.attachments/UndoAfterCollabFast.png +0 -0
- package/docs/.attachments/UndoDangerZone.drawio +1 -0
- package/docs/.attachments/UndoDuringCollab.png +0 -0
- package/docs/.attachments/children.drawio.svg +297 -0
- package/docs/.attachments/data-model.drawio.svg +654 -0
- package/docs/.attachments/explicit-sequence.drawio.svg +180 -0
- package/docs/.attachments/implicit-sequence.drawio.svg +106 -0
- package/docs/.attachments/root.drawio.svg +32 -0
- package/docs/.attachments/scalar-nodes.drawio.svg +87 -0
- package/docs/.markdownlint.json +4 -0
- package/docs/README.md +22 -0
- package/docs/main/cell-model-of-collaborative-editing.md +225 -0
- package/docs/main/compatibility.md +149 -0
- package/docs/main/data-model.md +191 -0
- package/docs/main/indexes-and-branches.md +143 -0
- package/docs/main/modular-change-family.md +125 -0
- package/docs/main/repair-data.md +275 -0
- package/docs/main/schema2.md +141 -0
- package/docs/main/semantic-format.md +315 -0
- package/docs/main/stored-and-view-schema-options.md +120 -0
- package/docs/main/stored-and-view-schema.md +331 -0
- package/docs/main/tree-content-apis.md +104 -0
- package/docs/main/tree-storage.md +816 -0
- package/docs/main/undo.md +191 -0
- package/docs/main/v1-undo-example-flow.md +273 -0
- package/docs/main/v1-undo.md +591 -0
- package/docs/roadmap.md +419 -0
- package/docs/wip/anchorInterfaces.ts +81 -0
- package/docs/wip/changeset.ts +1239 -0
- package/docs/wip/inverse-changes.md +876 -0
- package/lib/class-tree/index.d.ts +15 -0
- package/lib/class-tree/index.d.ts.map +1 -0
- package/lib/class-tree/index.js +18 -0
- package/lib/class-tree/index.js.map +1 -0
- package/lib/class-tree/integerIndexable.d.ts +31 -0
- package/lib/class-tree/integerIndexable.d.ts.map +1 -0
- package/lib/class-tree/integerIndexable.js +92 -0
- package/lib/class-tree/integerIndexable.js.map +1 -0
- package/lib/class-tree/internal.d.ts +6 -0
- package/lib/class-tree/internal.d.ts.map +1 -0
- package/lib/class-tree/internal.js +7 -0
- package/lib/class-tree/internal.js.map +1 -0
- package/lib/class-tree/schemaCreationUtilities.d.ts +96 -0
- package/lib/class-tree/schemaCreationUtilities.d.ts.map +1 -0
- package/lib/class-tree/schemaCreationUtilities.js +130 -0
- package/lib/class-tree/schemaCreationUtilities.js.map +1 -0
- package/lib/class-tree/schemaFactory.d.ts +225 -0
- package/lib/class-tree/schemaFactory.d.ts.map +1 -0
- package/lib/class-tree/schemaFactory.js +325 -0
- package/lib/class-tree/schemaFactory.js.map +1 -0
- package/lib/class-tree/schemaFactoryRecursive.d.ts +41 -0
- package/lib/class-tree/schemaFactoryRecursive.d.ts.map +1 -0
- package/lib/class-tree/schemaFactoryRecursive.js +62 -0
- package/lib/class-tree/schemaFactoryRecursive.js.map +1 -0
- package/lib/class-tree/schemaTypes.d.ts +237 -0
- package/lib/class-tree/schemaTypes.d.ts.map +1 -0
- package/lib/class-tree/schemaTypes.js +67 -0
- package/lib/class-tree/schemaTypes.js.map +1 -0
- package/lib/class-tree/testRecursiveDomain.d.ts +28 -0
- package/lib/class-tree/testRecursiveDomain.d.ts.map +1 -0
- package/lib/class-tree/testRecursiveDomain.js +36 -0
- package/lib/class-tree/testRecursiveDomain.js.map +1 -0
- package/lib/class-tree/toFlexSchema.d.ts +58 -0
- package/lib/class-tree/toFlexSchema.d.ts.map +1 -0
- package/lib/class-tree/toFlexSchema.js +195 -0
- package/lib/class-tree/toFlexSchema.js.map +1 -0
- package/lib/class-tree/tree.d.ts +98 -0
- package/lib/class-tree/tree.d.ts.map +1 -0
- package/lib/class-tree/tree.js +41 -0
- package/lib/class-tree/tree.js.map +1 -0
- package/lib/class-tree/treeApi.d.ts +69 -0
- package/lib/class-tree/treeApi.d.ts.map +1 -0
- package/lib/class-tree/treeApi.js +53 -0
- package/lib/class-tree/treeApi.js.map +1 -0
- package/lib/codec/codec.d.ts +214 -0
- package/lib/codec/codec.d.ts.map +1 -0
- package/lib/codec/codec.js +160 -0
- package/lib/codec/codec.js.map +1 -0
- package/lib/codec/discriminatedUnions.d.ts +82 -0
- package/lib/codec/discriminatedUnions.d.ts.map +1 -0
- package/lib/codec/discriminatedUnions.js +87 -0
- package/lib/codec/discriminatedUnions.js.map +1 -0
- package/lib/codec/index.d.ts +8 -0
- package/lib/codec/index.d.ts.map +1 -0
- package/lib/codec/index.js +8 -0
- package/lib/codec/index.js.map +1 -0
- package/lib/codec/noopValidator.d.ts +13 -0
- package/lib/codec/noopValidator.d.ts.map +1 -0
- package/lib/codec/noopValidator.js +14 -0
- package/lib/codec/noopValidator.js.map +1 -0
- package/lib/core/change-family/changeFamily.d.ts +32 -0
- package/lib/core/change-family/changeFamily.d.ts.map +1 -0
- package/lib/core/change-family/changeFamily.js +6 -0
- package/lib/core/change-family/changeFamily.js.map +1 -0
- package/lib/core/change-family/editBuilder.d.ts +19 -0
- package/lib/core/change-family/editBuilder.d.ts.map +1 -0
- package/lib/core/change-family/editBuilder.js +21 -0
- package/lib/core/change-family/editBuilder.js.map +1 -0
- package/lib/core/change-family/index.d.ts +7 -0
- package/lib/core/change-family/index.d.ts.map +1 -0
- package/lib/core/change-family/index.js +6 -0
- package/lib/core/change-family/index.js.map +1 -0
- package/lib/core/forest/editableForest.d.ts +54 -0
- package/lib/core/forest/editableForest.d.ts.map +1 -0
- package/lib/core/forest/editableForest.js +22 -0
- package/lib/core/forest/editableForest.js.map +1 -0
- package/lib/core/forest/forest.d.ts +200 -0
- package/lib/core/forest/forest.d.ts.map +1 -0
- package/lib/core/forest/forest.js +61 -0
- package/lib/core/forest/forest.js.map +1 -0
- package/lib/core/forest/index.d.ts +7 -0
- package/lib/core/forest/index.d.ts.map +1 -0
- package/lib/core/forest/index.js +7 -0
- package/lib/core/forest/index.js.map +1 -0
- package/lib/core/index.d.ts +12 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/index.js +12 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/rebase/changeRebaser.d.ts +132 -0
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -0
- package/lib/core/rebase/changeRebaser.js +27 -0
- package/lib/core/rebase/changeRebaser.js.map +1 -0
- package/lib/core/rebase/index.d.ts +9 -0
- package/lib/core/rebase/index.d.ts.map +1 -0
- package/lib/core/rebase/index.js +9 -0
- package/lib/core/rebase/index.js.map +1 -0
- package/lib/core/rebase/types.d.ts +93 -0
- package/lib/core/rebase/types.d.ts.map +1 -0
- package/lib/core/rebase/types.js +51 -0
- package/lib/core/rebase/types.js.map +1 -0
- package/lib/core/rebase/utils.d.ts +215 -0
- package/lib/core/rebase/utils.d.ts.map +1 -0
- package/lib/core/rebase/utils.js +288 -0
- package/lib/core/rebase/utils.js.map +1 -0
- package/lib/core/rebase/verifyChangeRebaser.d.ts +76 -0
- package/lib/core/rebase/verifyChangeRebaser.d.ts.map +1 -0
- package/lib/core/rebase/verifyChangeRebaser.js +287 -0
- package/lib/core/rebase/verifyChangeRebaser.js.map +1 -0
- package/lib/core/revertible/index.d.ts +6 -0
- package/lib/core/revertible/index.d.ts.map +1 -0
- package/lib/core/revertible/index.js +6 -0
- package/lib/core/revertible/index.js.map +1 -0
- package/lib/core/revertible/revertible.d.ts +72 -0
- package/lib/core/revertible/revertible.d.ts.map +1 -0
- package/lib/core/revertible/revertible.js +48 -0
- package/lib/core/revertible/revertible.js.map +1 -0
- package/lib/core/schema-stored/format.d.ts +97 -0
- package/lib/core/schema-stored/format.d.ts.map +1 -0
- package/lib/core/schema-stored/format.js +62 -0
- package/lib/core/schema-stored/format.js.map +1 -0
- package/lib/core/schema-stored/index.d.ts +10 -0
- package/lib/core/schema-stored/index.d.ts.map +1 -0
- package/lib/core/schema-stored/index.js +9 -0
- package/lib/core/schema-stored/index.js.map +1 -0
- package/lib/core/schema-stored/schema.d.ts +195 -0
- package/lib/core/schema-stored/schema.d.ts.map +1 -0
- package/lib/core/schema-stored/schema.js +165 -0
- package/lib/core/schema-stored/schema.js.map +1 -0
- package/lib/core/schema-stored/storedSchemaRepository.d.ts +71 -0
- package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -0
- package/lib/core/schema-stored/storedSchemaRepository.js +73 -0
- package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -0
- package/lib/core/schema-view/index.d.ts +6 -0
- package/lib/core/schema-view/index.d.ts.map +1 -0
- package/lib/core/schema-view/index.js +6 -0
- package/lib/core/schema-view/index.js.map +1 -0
- package/lib/core/schema-view/view.d.ts +64 -0
- package/lib/core/schema-view/view.d.ts.map +1 -0
- package/lib/core/schema-view/view.js +51 -0
- package/lib/core/schema-view/view.js.map +1 -0
- package/lib/core/tree/anchorSet.d.ts +318 -0
- package/lib/core/tree/anchorSet.d.ts.map +1 -0
- package/lib/core/tree/anchorSet.js +890 -0
- package/lib/core/tree/anchorSet.js.map +1 -0
- package/lib/core/tree/cursor.d.ts +358 -0
- package/lib/core/tree/cursor.d.ts.map +1 -0
- package/lib/core/tree/cursor.js +156 -0
- package/lib/core/tree/cursor.js.map +1 -0
- package/lib/core/tree/delta.d.ts +241 -0
- package/lib/core/tree/delta.d.ts.map +1 -0
- package/lib/core/tree/delta.js +6 -0
- package/lib/core/tree/delta.js.map +1 -0
- package/lib/core/tree/deltaUtil.d.ts +19 -0
- package/lib/core/tree/deltaUtil.d.ts.map +1 -0
- package/lib/core/tree/deltaUtil.js +70 -0
- package/lib/core/tree/deltaUtil.js.map +1 -0
- package/lib/core/tree/detachedFieldIndex.d.ts +64 -0
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndex.js +115 -0
- package/lib/core/tree/detachedFieldIndex.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodec.d.ts +8 -0
- package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexCodec.js +49 -0
- package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexFormat.d.ts +18 -0
- package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexFormat.js +22 -0
- package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -0
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +13 -0
- package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -0
- package/lib/core/tree/detachedFieldIndexTypes.js +6 -0
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -0
- package/lib/core/tree/index.d.ts +19 -0
- package/lib/core/tree/index.d.ts.map +1 -0
- package/lib/core/tree/index.js +17 -0
- package/lib/core/tree/index.js.map +1 -0
- package/lib/core/tree/mapTree.d.ts +22 -0
- package/lib/core/tree/mapTree.d.ts.map +1 -0
- package/lib/core/tree/mapTree.js +21 -0
- package/lib/core/tree/mapTree.js.map +1 -0
- package/lib/core/tree/pathTree.d.ts +156 -0
- package/lib/core/tree/pathTree.d.ts.map +1 -0
- package/lib/core/tree/pathTree.js +90 -0
- package/lib/core/tree/pathTree.js.map +1 -0
- package/lib/core/tree/persistedTreeTextFormat.d.ts +93 -0
- package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -0
- package/lib/core/tree/persistedTreeTextFormat.js +20 -0
- package/lib/core/tree/persistedTreeTextFormat.js.map +1 -0
- package/lib/core/tree/sparseTree.d.ts +91 -0
- package/lib/core/tree/sparseTree.d.ts.map +1 -0
- package/lib/core/tree/sparseTree.js +144 -0
- package/lib/core/tree/sparseTree.js.map +1 -0
- package/lib/core/tree/treeTextFormat.d.ts +94 -0
- package/lib/core/tree/treeTextFormat.d.ts.map +1 -0
- package/lib/core/tree/treeTextFormat.js +81 -0
- package/lib/core/tree/treeTextFormat.js.map +1 -0
- package/lib/core/tree/types.d.ts +145 -0
- package/lib/core/tree/types.d.ts.map +1 -0
- package/lib/core/tree/types.js +55 -0
- package/lib/core/tree/types.js.map +1 -0
- package/lib/core/tree/visitDelta.d.ts +135 -0
- package/lib/core/tree/visitDelta.d.ts.map +1 -0
- package/lib/core/tree/visitDelta.js +300 -0
- package/lib/core/tree/visitDelta.js.map +1 -0
- package/lib/core/tree/visitPath.d.ts +103 -0
- package/lib/core/tree/visitPath.d.ts.map +1 -0
- package/lib/core/tree/visitPath.js +2 -0
- package/lib/core/tree/visitPath.js.map +1 -0
- package/lib/core/tree/visitorUtils.d.ts +37 -0
- package/lib/core/tree/visitorUtils.d.ts.map +1 -0
- package/lib/core/tree/visitorUtils.js +53 -0
- package/lib/core/tree/visitorUtils.js.map +1 -0
- package/lib/domains/index.d.ts +9 -0
- package/lib/domains/index.d.ts.map +1 -0
- package/lib/domains/index.js +9 -0
- package/lib/domains/index.js.map +1 -0
- package/lib/domains/json/index.d.ts +7 -0
- package/lib/domains/json/index.d.ts.map +1 -0
- package/lib/domains/json/index.js +7 -0
- package/lib/domains/json/index.js.map +1 -0
- package/lib/domains/json/jsonCursor.d.ts +18 -0
- package/lib/domains/json/jsonCursor.d.ts.map +1 -0
- package/lib/domains/json/jsonCursor.js +120 -0
- package/lib/domains/json/jsonCursor.js.map +1 -0
- package/lib/domains/json/jsonDomainSchema.d.ts +14 -0
- package/lib/domains/json/jsonDomainSchema.d.ts.map +1 -0
- package/lib/domains/json/jsonDomainSchema.js +21 -0
- package/lib/domains/json/jsonDomainSchema.js.map +1 -0
- package/lib/domains/leafDomain.d.ts +73 -0
- package/lib/domains/leafDomain.d.ts.map +1 -0
- package/lib/domains/leafDomain.js +86 -0
- package/lib/domains/leafDomain.js.map +1 -0
- package/lib/domains/nodeKey/index.d.ts +6 -0
- package/lib/domains/nodeKey/index.d.ts.map +1 -0
- package/lib/domains/nodeKey/index.js +6 -0
- package/lib/domains/nodeKey/index.js.map +1 -0
- package/lib/domains/nodeKey/nodeKeySchema.d.ts +30 -0
- package/lib/domains/nodeKey/nodeKeySchema.d.ts.map +1 -0
- package/lib/domains/nodeKey/nodeKeySchema.js +33 -0
- package/lib/domains/nodeKey/nodeKeySchema.js.map +1 -0
- package/lib/domains/schemaBuilder.d.ts +190 -0
- package/lib/domains/schemaBuilder.d.ts.map +1 -0
- package/lib/domains/schemaBuilder.js +199 -0
- package/lib/domains/schemaBuilder.js.map +1 -0
- package/lib/domains/testRecursiveDomain.d.ts +21 -0
- package/lib/domains/testRecursiveDomain.d.ts.map +1 -0
- package/lib/domains/testRecursiveDomain.js +39 -0
- package/lib/domains/testRecursiveDomain.js.map +1 -0
- package/lib/events/events.d.ts +187 -0
- package/lib/events/events.d.ts.map +1 -0
- package/lib/events/events.js +119 -0
- package/lib/events/events.js.map +1 -0
- package/lib/events/index.d.ts +6 -0
- package/lib/events/index.d.ts.map +1 -0
- package/lib/events/index.js +6 -0
- package/lib/events/index.js.map +1 -0
- package/lib/external-utilities/index.d.ts +6 -0
- package/lib/external-utilities/index.d.ts.map +1 -0
- package/lib/external-utilities/index.js +6 -0
- package/lib/external-utilities/index.js.map +1 -0
- package/lib/external-utilities/typeboxValidator.d.ts +18 -0
- package/lib/external-utilities/typeboxValidator.d.ts.map +1 -0
- package/lib/external-utilities/typeboxValidator.js +27 -0
- package/lib/external-utilities/typeboxValidator.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts +111 -0
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/basicChunk.js +455 -0
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/chunk.d.ts +89 -0
- package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/chunk.js +24 -0
- package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +156 -0
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/chunkTree.js +340 -0
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +57 -0
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +295 -0
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +114 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +124 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +61 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +209 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +30 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +47 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +81 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +120 -0
- package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +32 -0
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +63 -0
- package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +149 -0
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +269 -0
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +11 -0
- package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/fieldBatch.js +6 -0
- package/lib/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts +208 -0
- package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/format.js +135 -0
- package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +43 -0
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js +41 -0
- package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts +8 -0
- package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/index.js +7 -0
- package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +23 -0
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +89 -0
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +28 -0
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js +91 -0
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +16 -0
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +57 -0
- package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts +19 -0
- package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/emptyChunk.js +104 -0
- package/lib/feature-libraries/chunked-forest/emptyChunk.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/index.d.ts +10 -0
- package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/index.js +10 -0
- package/lib/feature-libraries/chunked-forest/index.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts +26 -0
- package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js +47 -0
- package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -0
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +186 -0
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -0
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +390 -0
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -0
- package/lib/feature-libraries/contextuallyTyped.d.ts +212 -0
- package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -0
- package/lib/feature-libraries/contextuallyTyped.js +324 -0
- package/lib/feature-libraries/contextuallyTyped.js.map +1 -0
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +136 -0
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +238 -0
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -0
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +112 -0
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +107 -0
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -0
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts +11 -0
- package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/defaultSchema.js +13 -0
- package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -0
- package/lib/feature-libraries/default-schema/index.d.ts +8 -0
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/index.js +8 -0
- package/lib/feature-libraries/default-schema/index.js.map +1 -0
- package/lib/feature-libraries/deltaUtils.d.ts +62 -0
- package/lib/feature-libraries/deltaUtils.d.ts.map +1 -0
- package/lib/feature-libraries/deltaUtils.js +117 -0
- package/lib/feature-libraries/deltaUtils.js.map +1 -0
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +21 -0
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -0
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js +42 -0
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -0
- package/lib/feature-libraries/editableTreeBinder.d.ts +325 -0
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -0
- package/lib/feature-libraries/editableTreeBinder.js +567 -0
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -0
- package/lib/feature-libraries/fieldGenerator.d.ts +46 -0
- package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -0
- package/lib/feature-libraries/fieldGenerator.js +13 -0
- package/lib/feature-libraries/fieldGenerator.js.map +1 -0
- package/lib/feature-libraries/flex-tree/context.d.ts +87 -0
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/context.js +105 -0
- package/lib/feature-libraries/flex-tree/context.js.map +1 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +793 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +52 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -0
- package/lib/feature-libraries/flex-tree/index.d.ts +11 -0
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/index.js +8 -0
- package/lib/feature-libraries/flex-tree/index.js.map +1 -0
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +49 -0
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/lazyEntity.js +97 -0
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -0
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +87 -0
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/lazyField.js +331 -0
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -0
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +75 -0
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/lazyNode.js +415 -0
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -0
- package/lib/feature-libraries/flex-tree/navigation.d.ts +46 -0
- package/lib/feature-libraries/flex-tree/navigation.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/navigation.js +97 -0
- package/lib/feature-libraries/flex-tree/navigation.js.map +1 -0
- package/lib/feature-libraries/flex-tree/nodeKeys.d.ts +42 -0
- package/lib/feature-libraries/flex-tree/nodeKeys.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/nodeKeys.js +20 -0
- package/lib/feature-libraries/flex-tree/nodeKeys.js.map +1 -0
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts +111 -0
- package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/treeEvents.js +6 -0
- package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -0
- package/lib/feature-libraries/flex-tree/unboxed.d.ts +24 -0
- package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/unboxed.js +48 -0
- package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -0
- package/lib/feature-libraries/flex-tree/utilities.d.ts +29 -0
- package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/utilities.js +53 -0
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -0
- package/lib/feature-libraries/forest-summary/codec.d.ts +16 -0
- package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -0
- package/lib/feature-libraries/forest-summary/codec.js +35 -0
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -0
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +40 -0
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -0
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +108 -0
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -0
- package/lib/feature-libraries/forest-summary/format.d.ts +16 -0
- package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -0
- package/lib/feature-libraries/forest-summary/format.js +14 -0
- package/lib/feature-libraries/forest-summary/format.js.map +1 -0
- package/lib/feature-libraries/forest-summary/index.d.ts +6 -0
- package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -0
- package/lib/feature-libraries/forest-summary/index.js +6 -0
- package/lib/feature-libraries/forest-summary/index.js.map +1 -0
- package/lib/feature-libraries/incrementalSummarizationUtils.d.ts +20 -0
- package/lib/feature-libraries/incrementalSummarizationUtils.d.ts.map +1 -0
- package/lib/feature-libraries/incrementalSummarizationUtils.js +6 -0
- package/lib/feature-libraries/incrementalSummarizationUtils.js.map +1 -0
- package/lib/feature-libraries/index.d.ts +35 -0
- package/lib/feature-libraries/index.d.ts.map +1 -0
- package/lib/feature-libraries/index.js +34 -0
- package/lib/feature-libraries/index.js.map +1 -0
- package/lib/feature-libraries/mapTreeCursor.d.ts +19 -0
- package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -0
- package/lib/feature-libraries/mapTreeCursor.js +47 -0
- package/lib/feature-libraries/mapTreeCursor.js.map +1 -0
- package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts +42 -0
- package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -0
- package/lib/feature-libraries/memoizedIdRangeAllocator.js +72 -0
- package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -0
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts +22 -0
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -0
- package/lib/feature-libraries/mitigatedChangeFamily.js +50 -0
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -0
- package/lib/feature-libraries/modular-schema/comparison.d.ts +63 -0
- package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/comparison.js +190 -0
- package/lib/feature-libraries/modular-schema/comparison.js.map +1 -0
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +37 -0
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js +23 -0
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -0
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +140 -0
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js +38 -0
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -0
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts +94 -0
- package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/fieldKind.js +95 -0
- package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +27 -0
- package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +163 -0
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +9 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +29 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +34 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js +26 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +23 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js +6 -0
- package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -0
- package/lib/feature-libraries/modular-schema/index.d.ts +15 -0
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/index.js +13 -0
- package/lib/feature-libraries/modular-schema/index.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +12 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +184 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +125 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +723 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +149 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js +74 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +69 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js +6 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -0
- package/lib/feature-libraries/multiplicity.d.ts +55 -0
- package/lib/feature-libraries/multiplicity.d.ts.map +1 -0
- package/lib/feature-libraries/multiplicity.js +56 -0
- package/lib/feature-libraries/multiplicity.js.map +1 -0
- package/lib/feature-libraries/node-key/index.d.ts +8 -0
- package/lib/feature-libraries/node-key/index.d.ts.map +1 -0
- package/lib/feature-libraries/node-key/index.js +8 -0
- package/lib/feature-libraries/node-key/index.js.map +1 -0
- package/lib/feature-libraries/node-key/nodeKey.d.ts +50 -0
- package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -0
- package/lib/feature-libraries/node-key/nodeKey.js +32 -0
- package/lib/feature-libraries/node-key/nodeKey.js.map +1 -0
- package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts +41 -0
- package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -0
- package/lib/feature-libraries/node-key/nodeKeyIndex.js +98 -0
- package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +1 -0
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +36 -0
- package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -0
- package/lib/feature-libraries/node-key/nodeKeyManager.js +61 -0
- package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -0
- package/lib/feature-libraries/object-forest/index.d.ts +6 -0
- package/lib/feature-libraries/object-forest/index.d.ts.map +1 -0
- package/lib/feature-libraries/object-forest/index.js +6 -0
- package/lib/feature-libraries/object-forest/index.js.map +1 -0
- package/lib/feature-libraries/object-forest/objectForest.d.ts +86 -0
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -0
- package/lib/feature-libraries/object-forest/objectForest.js +377 -0
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -0
- package/lib/feature-libraries/optional-field/index.d.ts +8 -0
- package/lib/feature-libraries/optional-field/index.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/index.js +7 -0
- package/lib/feature-libraries/optional-field/index.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalField.d.ts +31 -0
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalField.js +444 -0
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts +38 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.js +22 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormat.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +55 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js +6 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +11 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +82 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -0
- package/lib/feature-libraries/schema-aware/index.d.ts +6 -0
- package/lib/feature-libraries/schema-aware/index.d.ts.map +1 -0
- package/lib/feature-libraries/schema-aware/index.js +6 -0
- package/lib/feature-libraries/schema-aware/index.js.map +1 -0
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts +77 -0
- package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -0
- package/lib/feature-libraries/schema-aware/schemaAware.js +7 -0
- package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -0
- package/lib/feature-libraries/schema-edits/index.d.ts +8 -0
- package/lib/feature-libraries/schema-edits/index.d.ts.map +1 -0
- package/lib/feature-libraries/schema-edits/index.js +7 -0
- package/lib/feature-libraries/schema-edits/index.js.map +1 -0
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +9 -0
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -0
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +27 -0
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -0
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +53 -0
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -0
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +11 -0
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -0
- package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts +18 -0
- package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -0
- package/lib/feature-libraries/schema-edits/schemaChangeTypes.js +6 -0
- package/lib/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -0
- package/lib/feature-libraries/schema-index/codec.d.ts +13 -0
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -0
- package/lib/feature-libraries/schema-index/codec.js +51 -0
- package/lib/feature-libraries/schema-index/codec.js.map +1 -0
- package/lib/feature-libraries/schema-index/format.d.ts +60 -0
- package/lib/feature-libraries/schema-index/format.d.ts.map +1 -0
- package/lib/feature-libraries/schema-index/format.js +30 -0
- package/lib/feature-libraries/schema-index/format.js.map +1 -0
- package/lib/feature-libraries/schema-index/index.d.ts +8 -0
- package/lib/feature-libraries/schema-index/index.d.ts.map +1 -0
- package/lib/feature-libraries/schema-index/index.js +8 -0
- package/lib/feature-libraries/schema-index/index.js.map +1 -0
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +41 -0
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -0
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +81 -0
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -0
- package/lib/feature-libraries/schemaBuilder.d.ts +31 -0
- package/lib/feature-libraries/schemaBuilder.d.ts.map +1 -0
- package/lib/feature-libraries/schemaBuilder.js +36 -0
- package/lib/feature-libraries/schemaBuilder.js.map +1 -0
- package/lib/feature-libraries/schemaBuilderBase.d.ts +217 -0
- package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -0
- package/lib/feature-libraries/schemaBuilderBase.js +221 -0
- package/lib/feature-libraries/schemaBuilderBase.js.map +1 -0
- package/lib/feature-libraries/sequence-field/compose.d.ts +45 -0
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/compose.js +432 -0
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -0
- package/lib/feature-libraries/sequence-field/format.d.ts +427 -0
- package/lib/feature-libraries/sequence-field/format.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/format.js +74 -0
- package/lib/feature-libraries/sequence-field/format.js.map +1 -0
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts +34 -0
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/helperTypes.js +13 -0
- package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -0
- package/lib/feature-libraries/sequence-field/index.d.ts +18 -0
- package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/index.js +17 -0
- package/lib/feature-libraries/sequence-field/index.js.map +1 -0
- package/lib/feature-libraries/sequence-field/invert.d.ts +19 -0
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/invert.js +217 -0
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -0
- package/lib/feature-libraries/sequence-field/markListFactory.d.ts +21 -0
- package/lib/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/markListFactory.js +51 -0
- package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -0
- package/lib/feature-libraries/sequence-field/markQueue.d.ts +30 -0
- package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/markQueue.js +70 -0
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -0
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +48 -0
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/moveEffectTable.js +242 -0
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -0
- package/lib/feature-libraries/sequence-field/prune.d.ts +8 -0
- package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/prune.js +21 -0
- package/lib/feature-libraries/sequence-field/prune.js.map +1 -0
- package/lib/feature-libraries/sequence-field/rebase.d.ts +26 -0
- package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/rebase.js +615 -0
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -0
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +46 -0
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +10 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +19 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +19 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +16 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +10 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +235 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +33 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +110 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +9 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +161 -0
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -0
- package/lib/feature-libraries/sequence-field/types.d.ts +182 -0
- package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/types.js +6 -0
- package/lib/feature-libraries/sequence-field/types.js.map +1 -0
- package/lib/feature-libraries/sequence-field/utils.d.ts +198 -0
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -0
- package/lib/feature-libraries/sequence-field/utils.js +924 -0
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -0
- package/lib/feature-libraries/storedToViewSchema.d.ts +18 -0
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -0
- package/lib/feature-libraries/storedToViewSchema.js +65 -0
- package/lib/feature-libraries/storedToViewSchema.js.map +1 -0
- package/lib/feature-libraries/treeCompressionUtils.d.ts +23 -0
- package/lib/feature-libraries/treeCompressionUtils.d.ts.map +1 -0
- package/lib/feature-libraries/treeCompressionUtils.js +24 -0
- package/lib/feature-libraries/treeCompressionUtils.js.map +1 -0
- package/lib/feature-libraries/treeCursorUtils.d.ts +101 -0
- package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -0
- package/lib/feature-libraries/treeCursorUtils.js +364 -0
- package/lib/feature-libraries/treeCursorUtils.js.map +1 -0
- package/lib/feature-libraries/treeTextCursor.d.ts +62 -0
- package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -0
- package/lib/feature-libraries/treeTextCursor.js +96 -0
- package/lib/feature-libraries/treeTextCursor.js.map +1 -0
- package/lib/feature-libraries/typed-schema/flexList.d.ts +97 -0
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -0
- package/lib/feature-libraries/typed-schema/flexList.js +51 -0
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -0
- package/lib/feature-libraries/typed-schema/index.d.ts +11 -0
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -0
- package/lib/feature-libraries/typed-schema/index.js +12 -0
- package/lib/feature-libraries/typed-schema/index.js.map +1 -0
- package/lib/feature-libraries/typed-schema/internal.d.ts +7 -0
- package/lib/feature-libraries/typed-schema/internal.d.ts.map +1 -0
- package/lib/feature-libraries/typed-schema/internal.js +6 -0
- package/lib/feature-libraries/typed-schema/internal.js.map +1 -0
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +67 -0
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -0
- package/lib/feature-libraries/typed-schema/schemaCollection.js +199 -0
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -0
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts +22 -0
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +1 -0
- package/lib/feature-libraries/typed-schema/typeUtils.js +10 -0
- package/lib/feature-libraries/typed-schema/typeUtils.js.map +1 -0
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +294 -0
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -0
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +316 -0
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -0
- package/lib/feature-libraries/typed-schema/view.d.ts +55 -0
- package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -0
- package/lib/feature-libraries/typed-schema/view.js +113 -0
- package/lib/feature-libraries/typed-schema/view.js.map +1 -0
- package/lib/feature-libraries/utils.d.ts +9 -0
- package/lib/feature-libraries/utils.d.ts.map +1 -0
- package/lib/feature-libraries/utils.js +23 -0
- package/lib/feature-libraries/utils.js.map +1 -0
- package/lib/feature-libraries/valueUtilities.d.ts +21 -0
- package/lib/feature-libraries/valueUtilities.d.ts.map +1 -0
- package/lib/feature-libraries/valueUtilities.js +62 -0
- package/lib/feature-libraries/valueUtilities.js.map +1 -0
- package/lib/feature-libraries/versioned/codec.d.ts +11 -0
- package/lib/feature-libraries/versioned/codec.d.ts.map +1 -0
- package/lib/feature-libraries/versioned/codec.js +26 -0
- package/lib/feature-libraries/versioned/codec.js.map +1 -0
- package/lib/feature-libraries/versioned/format.d.ts +10 -0
- package/lib/feature-libraries/versioned/format.d.ts.map +1 -0
- package/lib/feature-libraries/versioned/format.js +9 -0
- package/lib/feature-libraries/versioned/format.js.map +1 -0
- package/lib/feature-libraries/versioned/index.d.ts +7 -0
- package/lib/feature-libraries/versioned/index.d.ts.map +1 -0
- package/lib/feature-libraries/versioned/index.js +7 -0
- package/lib/feature-libraries/versioned/index.js.map +1 -0
- package/lib/index.d.ts +21 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +26 -0
- package/lib/index.js.map +1 -0
- package/lib/internal.d.ts +8 -0
- package/lib/internal.d.ts.map +1 -0
- package/lib/internal.js +6 -0
- package/lib/internal.js.map +1 -0
- package/lib/shared-tree/index.d.ts +10 -0
- package/lib/shared-tree/index.d.ts.map +1 -0
- package/lib/shared-tree/index.js +9 -0
- package/lib/shared-tree/index.js.map +1 -0
- package/lib/shared-tree/schematizedTree.d.ts +94 -0
- package/lib/shared-tree/schematizedTree.d.ts.map +1 -0
- package/lib/shared-tree/schematizedTree.js +151 -0
- package/lib/shared-tree/schematizedTree.js.map +1 -0
- package/lib/shared-tree/sharedTree.d.ts +143 -0
- package/lib/shared-tree/sharedTree.d.ts.map +1 -0
- package/lib/shared-tree/sharedTree.js +215 -0
- package/lib/shared-tree/sharedTree.js.map +1 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +11 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.js +54 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -0
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +25 -0
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -0
- package/lib/shared-tree/sharedTreeChangeFamily.js +116 -0
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -0
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts +178 -0
- package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -0
- package/lib/shared-tree/sharedTreeChangeFormat.js +12 -0
- package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -0
- package/lib/shared-tree/sharedTreeChangeTypes.d.ts +26 -0
- package/lib/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -0
- package/lib/shared-tree/sharedTreeChangeTypes.js +6 -0
- package/lib/shared-tree/sharedTreeChangeTypes.js.map +1 -0
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +42 -0
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -0
- package/lib/shared-tree/sharedTreeEditBuilder.js +30 -0
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -0
- package/lib/shared-tree/treeCheckout.d.ts +228 -0
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -0
- package/lib/shared-tree/treeCheckout.js +184 -0
- package/lib/shared-tree/treeCheckout.js.map +1 -0
- package/lib/shared-tree/treeView.d.ts +66 -0
- package/lib/shared-tree/treeView.d.ts.map +1 -0
- package/lib/shared-tree/treeView.js +29 -0
- package/lib/shared-tree/treeView.js.map +1 -0
- package/lib/shared-tree-core/branch.d.ts +199 -0
- package/lib/shared-tree-core/branch.d.ts.map +1 -0
- package/lib/shared-tree-core/branch.js +407 -0
- package/lib/shared-tree-core/branch.js.map +1 -0
- package/lib/shared-tree-core/editManager.d.ts +126 -0
- package/lib/shared-tree-core/editManager.d.ts.map +1 -0
- package/lib/shared-tree-core/editManager.js +428 -0
- package/lib/shared-tree-core/editManager.js.map +1 -0
- package/lib/shared-tree-core/editManagerCodecs.d.ts +9 -0
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerCodecs.js +48 -0
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -0
- package/lib/shared-tree-core/editManagerFormat.d.ts +68 -0
- package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerFormat.js +49 -0
- package/lib/shared-tree-core/editManagerFormat.js.map +1 -0
- package/lib/shared-tree-core/editManagerSummarizer.d.ts +25 -0
- package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerSummarizer.js +52 -0
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -0
- package/lib/shared-tree-core/index.d.ts +13 -0
- package/lib/shared-tree-core/index.d.ts.map +1 -0
- package/lib/shared-tree-core/index.js +12 -0
- package/lib/shared-tree-core/index.js.map +1 -0
- package/lib/shared-tree-core/messageCodecs.d.ts +9 -0
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -0
- package/lib/shared-tree-core/messageCodecs.js +31 -0
- package/lib/shared-tree-core/messageCodecs.js.map +1 -0
- package/lib/shared-tree-core/messageFormat.d.ts +30 -0
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -0
- package/lib/shared-tree-core/messageFormat.js +12 -0
- package/lib/shared-tree-core/messageFormat.js.map +1 -0
- package/lib/shared-tree-core/messageTypes.d.ts +10 -0
- package/lib/shared-tree-core/messageTypes.d.ts.map +1 -0
- package/lib/shared-tree-core/messageTypes.js +6 -0
- package/lib/shared-tree-core/messageTypes.js.map +1 -0
- package/lib/shared-tree-core/revisionTagCodecs.d.ts +11 -0
- package/lib/shared-tree-core/revisionTagCodecs.d.ts.map +1 -0
- package/lib/shared-tree-core/revisionTagCodecs.js +13 -0
- package/lib/shared-tree-core/revisionTagCodecs.js.map +1 -0
- package/lib/shared-tree-core/sharedTreeCore.d.ts +112 -0
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -0
- package/lib/shared-tree-core/sharedTreeCore.js +193 -0
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -0
- package/lib/shared-tree-core/transactionStack.d.ts +30 -0
- package/lib/shared-tree-core/transactionStack.d.ts.map +1 -0
- package/lib/shared-tree-core/transactionStack.js +38 -0
- package/lib/shared-tree-core/transactionStack.js.map +1 -0
- package/lib/simple-tree/flexNode.d.ts +34 -0
- package/lib/simple-tree/flexNode.d.ts.map +1 -0
- package/lib/simple-tree/flexNode.js +50 -0
- package/lib/simple-tree/flexNode.js.map +1 -0
- package/lib/simple-tree/index.d.ts +10 -0
- package/lib/simple-tree/index.d.ts.map +1 -0
- package/lib/simple-tree/index.js +9 -0
- package/lib/simple-tree/index.js.map +1 -0
- package/lib/simple-tree/insertable.d.ts +44 -0
- package/lib/simple-tree/insertable.d.ts.map +1 -0
- package/lib/simple-tree/insertable.js +6 -0
- package/lib/simple-tree/insertable.js.map +1 -0
- package/lib/simple-tree/objectFactory.d.ts +30 -0
- package/lib/simple-tree/objectFactory.d.ts.map +1 -0
- package/lib/simple-tree/objectFactory.js +16 -0
- package/lib/simple-tree/objectFactory.js.map +1 -0
- package/lib/simple-tree/proxies.d.ts +112 -0
- package/lib/simple-tree/proxies.d.ts.map +1 -0
- package/lib/simple-tree/proxies.js +800 -0
- package/lib/simple-tree/proxies.js.map +1 -0
- package/lib/simple-tree/rawNode.d.ts +96 -0
- package/lib/simple-tree/rawNode.d.ts.map +1 -0
- package/lib/simple-tree/rawNode.js +132 -0
- package/lib/simple-tree/rawNode.js.map +1 -0
- package/lib/simple-tree/toMapTree.d.ts +101 -0
- package/lib/simple-tree/toMapTree.d.ts.map +1 -0
- package/lib/simple-tree/toMapTree.js +291 -0
- package/lib/simple-tree/toMapTree.js.map +1 -0
- package/lib/simple-tree/treeListNode.d.ts +60 -0
- package/lib/simple-tree/treeListNode.d.ts.map +1 -0
- package/lib/simple-tree/treeListNode.js +49 -0
- package/lib/simple-tree/treeListNode.js.map +1 -0
- package/lib/simple-tree/types.d.ts +243 -0
- package/lib/simple-tree/types.d.ts.map +1 -0
- package/lib/simple-tree/types.js +17 -0
- package/lib/simple-tree/types.js.map +1 -0
- package/lib/treeFactory.d.ts +55 -0
- package/lib/treeFactory.d.ts.map +1 -0
- package/lib/treeFactory.js +80 -0
- package/lib/treeFactory.js.map +1 -0
- package/lib/util/brand.d.ts +179 -0
- package/lib/util/brand.d.ts.map +1 -0
- package/lib/util/brand.js +118 -0
- package/lib/util/brand.js.map +1 -0
- package/lib/util/brandedMap.d.ts +46 -0
- package/lib/util/brandedMap.d.ts.map +1 -0
- package/lib/util/brandedMap.js +27 -0
- package/lib/util/brandedMap.js.map +1 -0
- package/lib/util/idAllocator.d.ts +29 -0
- package/lib/util/idAllocator.d.ts.map +1 -0
- package/lib/util/idAllocator.js +29 -0
- package/lib/util/idAllocator.js.map +1 -0
- package/lib/util/index.d.ts +18 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +16 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/nestedMap.d.ts +129 -0
- package/lib/util/nestedMap.d.ts.map +1 -0
- package/lib/util/nestedMap.js +224 -0
- package/lib/util/nestedMap.js.map +1 -0
- package/lib/util/nestedSet.d.ts +9 -0
- package/lib/util/nestedSet.d.ts.map +1 -0
- package/lib/util/nestedSet.js +12 -0
- package/lib/util/nestedSet.js.map +1 -0
- package/lib/util/offsetList.d.ts +22 -0
- package/lib/util/offsetList.d.ts.map +1 -0
- package/lib/util/offsetList.js +40 -0
- package/lib/util/offsetList.js.map +1 -0
- package/lib/util/rangeMap.d.ts +40 -0
- package/lib/util/rangeMap.d.ts.map +1 -0
- package/lib/util/rangeMap.js +97 -0
- package/lib/util/rangeMap.js.map +1 -0
- package/lib/util/referenceCounting.d.ts +30 -0
- package/lib/util/referenceCounting.d.ts.map +1 -0
- package/lib/util/referenceCounting.js +30 -0
- package/lib/util/referenceCounting.js.map +1 -0
- package/lib/util/stackyIterator.d.ts +20 -0
- package/lib/util/stackyIterator.d.ts.map +1 -0
- package/lib/util/stackyIterator.js +45 -0
- package/lib/util/stackyIterator.js.map +1 -0
- package/lib/util/transactionResult.d.ts +20 -0
- package/lib/util/transactionResult.d.ts.map +1 -0
- package/lib/util/transactionResult.js +21 -0
- package/lib/util/transactionResult.js.map +1 -0
- package/lib/util/typeCheck.d.ts +183 -0
- package/lib/util/typeCheck.d.ts.map +1 -0
- package/lib/util/typeCheck.js +6 -0
- package/lib/util/typeCheck.js.map +1 -0
- package/lib/util/typeCheckTests.d.ts +60 -0
- package/lib/util/typeCheckTests.d.ts.map +1 -0
- package/lib/util/typeCheckTests.js +6 -0
- package/lib/util/typeCheckTests.js.map +1 -0
- package/lib/util/typeUtils.d.ts +129 -0
- package/lib/util/typeUtils.d.ts.map +1 -0
- package/lib/util/typeUtils.js +10 -0
- package/lib/util/typeUtils.js.map +1 -0
- package/lib/util/utils.d.ts +287 -0
- package/lib/util/utils.d.ts.map +1 -0
- package/lib/util/utils.js +346 -0
- package/lib/util/utils.js.map +1 -0
- package/package.json +129 -0
- package/prettier.config.cjs +8 -0
- package/src/class-tree/README.md +67 -0
- package/src/class-tree/index.ts +43 -0
- package/src/class-tree/integerIndexable.ts +120 -0
- package/src/class-tree/internal.ts +20 -0
- package/src/class-tree/schemaCreationUtilities.ts +178 -0
- package/src/class-tree/schemaFactory.ts +685 -0
- package/src/class-tree/schemaFactoryRecursive.ts +95 -0
- package/src/class-tree/schemaTypes.ts +334 -0
- package/src/class-tree/testRecursiveDomain.ts +47 -0
- package/src/class-tree/toFlexSchema.ts +279 -0
- package/src/class-tree/tree.ts +123 -0
- package/src/class-tree/treeApi.ts +147 -0
- package/src/codec/README.md +15 -0
- package/src/codec/codec.ts +346 -0
- package/src/codec/discriminatedUnions.ts +114 -0
- package/src/codec/index.ts +23 -0
- package/src/codec/noopValidator.ts +17 -0
- package/src/core/README.md +9 -0
- package/src/core/change-family/README.md +14 -0
- package/src/core/change-family/changeFamily.ts +36 -0
- package/src/core/change-family/editBuilder.ts +25 -0
- package/src/core/change-family/index.ts +7 -0
- package/src/core/forest/README.md +11 -0
- package/src/core/forest/editableForest.ts +81 -0
- package/src/core/forest/forest.ts +263 -0
- package/src/core/forest/index.ts +22 -0
- package/src/core/index.ts +193 -0
- package/src/core/rebase/README.md +5 -0
- package/src/core/rebase/changeRebaser.ts +169 -0
- package/src/core/rebase/index.ts +51 -0
- package/src/core/rebase/types.ts +129 -0
- package/src/core/rebase/utils.ts +538 -0
- package/src/core/rebase/verifyChangeRebaser.ts +385 -0
- package/src/core/revertible/index.ts +6 -0
- package/src/core/revertible/revertible.ts +75 -0
- package/src/core/schema-stored/README.md +11 -0
- package/src/core/schema-stored/format.ts +115 -0
- package/src/core/schema-stored/index.ts +36 -0
- package/src/core/schema-stored/schema.ts +313 -0
- package/src/core/schema-stored/storedSchemaRepository.ts +136 -0
- package/src/core/schema-view/README.md +9 -0
- package/src/core/schema-view/index.ts +6 -0
- package/src/core/schema-view/view.ts +76 -0
- package/src/core/tree/README.md +15 -0
- package/src/core/tree/anchorSet.ts +1219 -0
- package/src/core/tree/cursor.ts +486 -0
- package/src/core/tree/delta.ts +255 -0
- package/src/core/tree/deltaUtil.ts +102 -0
- package/src/core/tree/detachedFieldIndex.ts +170 -0
- package/src/core/tree/detachedFieldIndexCodec.ts +59 -0
- package/src/core/tree/detachedFieldIndexFormat.ts +35 -0
- package/src/core/tree/detachedFieldIndexTypes.ts +15 -0
- package/src/core/tree/index.ts +114 -0
- package/src/core/tree/mapTree.ts +37 -0
- package/src/core/tree/pathTree.ts +228 -0
- package/src/core/tree/persistedTreeTextFormat.ts +93 -0
- package/src/core/tree/sparseTree.ts +160 -0
- package/src/core/tree/treeTextFormat.ts +179 -0
- package/src/core/tree/types.ts +170 -0
- package/src/core/tree/visitDelta.ts +482 -0
- package/src/core/tree/visitPath.ts +125 -0
- package/src/core/tree/visitorUtils.ts +106 -0
- package/src/domains/README.md +6 -0
- package/src/domains/fence.json +5 -0
- package/src/domains/index.ts +18 -0
- package/src/domains/json/fence.json +5 -0
- package/src/domains/json/index.ts +7 -0
- package/src/domains/json/jsonCursor.ts +137 -0
- package/src/domains/json/jsonDomainSchema.ts +49 -0
- package/src/domains/leafDomain.ts +98 -0
- package/src/domains/nodeKey/fence.json +5 -0
- package/src/domains/nodeKey/index.ts +6 -0
- package/src/domains/nodeKey/nodeKeySchema.ts +43 -0
- package/src/domains/schemaBuilder.ts +392 -0
- package/src/domains/testRecursiveDomain.ts +56 -0
- package/src/events/README.md +3 -0
- package/src/events/events.ts +282 -0
- package/src/events/fence.json +5 -0
- package/src/events/index.ts +17 -0
- package/src/external-utilities/README.md +5 -0
- package/src/external-utilities/fence.json +5 -0
- package/src/external-utilities/index.ts +6 -0
- package/src/external-utilities/typeboxValidator.ts +30 -0
- package/src/feature-libraries/README.md +140 -0
- package/src/feature-libraries/chunked-forest/README.md +13 -0
- package/src/feature-libraries/chunked-forest/basicChunk.ts +564 -0
- package/src/feature-libraries/chunked-forest/chunk.ts +109 -0
- package/src/feature-libraries/chunked-forest/chunkTree.ts +506 -0
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +443 -0
- package/src/feature-libraries/chunked-forest/codec/README.md +55 -0
- package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +183 -0
- package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +274 -0
- package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +72 -0
- package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +179 -0
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +101 -0
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +486 -0
- package/src/feature-libraries/chunked-forest/codec/fieldBatch.ts +12 -0
- package/src/feature-libraries/chunked-forest/codec/format.ts +171 -0
- package/src/feature-libraries/chunked-forest/codec/formatGeneric.ts +63 -0
- package/src/feature-libraries/chunked-forest/codec/index.ts +8 -0
- package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +148 -0
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncoding.ts +148 -0
- package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +65 -0
- package/src/feature-libraries/chunked-forest/emptyChunk.ts +114 -0
- package/src/feature-libraries/chunked-forest/index.ts +23 -0
- package/src/feature-libraries/chunked-forest/sequenceChunk.ts +62 -0
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +524 -0
- package/src/feature-libraries/contextuallyTyped.ts +583 -0
- package/src/feature-libraries/default-schema/README.md +3 -0
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +428 -0
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +218 -0
- package/src/feature-libraries/default-schema/defaultSchema.ts +15 -0
- package/src/feature-libraries/default-schema/index.ts +28 -0
- package/src/feature-libraries/deltaUtils.ts +152 -0
- package/src/feature-libraries/detachedFieldIndexSummarizer.ts +68 -0
- package/src/feature-libraries/editableTreeBinder.ts +1018 -0
- package/src/feature-libraries/fieldGenerator.ts +49 -0
- package/src/feature-libraries/flex-tree/README.md +132 -0
- package/src/feature-libraries/flex-tree/context.ts +163 -0
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +1035 -0
- package/src/feature-libraries/flex-tree/index.ts +59 -0
- package/src/feature-libraries/flex-tree/lazyEntity.ts +152 -0
- package/src/feature-libraries/flex-tree/lazyField.ts +598 -0
- package/src/feature-libraries/flex-tree/lazyNode.ts +690 -0
- package/src/feature-libraries/flex-tree/navigation.ts +121 -0
- package/src/feature-libraries/flex-tree/nodeKeys.ts +51 -0
- package/src/feature-libraries/flex-tree/treeEvents.ts +117 -0
- package/src/feature-libraries/flex-tree/unboxed.ts +77 -0
- package/src/feature-libraries/flex-tree/utilities.ts +74 -0
- package/src/feature-libraries/forest-summary/codec.ts +50 -0
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +176 -0
- package/src/feature-libraries/forest-summary/format.ts +21 -0
- package/src/feature-libraries/forest-summary/index.ts +6 -0
- package/src/feature-libraries/incrementalSummarizationUtils.ts +20 -0
- package/src/feature-libraries/index.ts +299 -0
- package/src/feature-libraries/mapTreeCursor.ts +75 -0
- package/src/feature-libraries/memoizedIdRangeAllocator.ts +120 -0
- package/src/feature-libraries/mitigatedChangeFamily.ts +71 -0
- package/src/feature-libraries/modular-schema/README.md +22 -0
- package/src/feature-libraries/modular-schema/comparison.ts +307 -0
- package/src/feature-libraries/modular-schema/crossFieldQueries.ts +85 -0
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +226 -0
- package/src/feature-libraries/modular-schema/fieldKind.ts +149 -0
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +231 -0
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +39 -0
- package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +45 -0
- package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +25 -0
- package/src/feature-libraries/modular-schema/index.ts +65 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +284 -0
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +1359 -0
- package/src/feature-libraries/modular-schema/modularChangeFormat.ts +147 -0
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +85 -0
- package/src/feature-libraries/multiplicity.ts +54 -0
- package/src/feature-libraries/node-key/README.md +11 -0
- package/src/feature-libraries/node-key/index.ts +16 -0
- package/src/feature-libraries/node-key/nodeKey.ts +58 -0
- package/src/feature-libraries/node-key/nodeKeyIndex.ts +125 -0
- package/src/feature-libraries/node-key/nodeKeyManager.ts +107 -0
- package/src/feature-libraries/object-forest/README.md +7 -0
- package/src/feature-libraries/object-forest/index.ts +6 -0
- package/src/feature-libraries/object-forest/objectForest.ts +505 -0
- package/src/feature-libraries/optional-field/README.md +3 -0
- package/src/feature-libraries/optional-field/index.ts +13 -0
- package/src/feature-libraries/optional-field/optionalField.ts +619 -0
- package/src/feature-libraries/optional-field/optionalFieldChangeFormat.ts +40 -0
- package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +59 -0
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +114 -0
- package/src/feature-libraries/schema-aware/README.md +19 -0
- package/src/feature-libraries/schema-aware/index.ts +17 -0
- package/src/feature-libraries/schema-aware/schemaAware.ts +123 -0
- package/src/feature-libraries/schema-edits/index.ts +8 -0
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +32 -0
- package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +14 -0
- package/src/feature-libraries/schema-edits/schemaChangeTypes.ts +16 -0
- package/src/feature-libraries/schema-index/codec.ts +68 -0
- package/src/feature-libraries/schema-index/format.ts +45 -0
- package/src/feature-libraries/schema-index/index.ts +8 -0
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +138 -0
- package/src/feature-libraries/schemaBuilder.ts +44 -0
- package/src/feature-libraries/schemaBuilderBase.ts +425 -0
- package/src/feature-libraries/sequence-field/README.md +6 -0
- package/src/feature-libraries/sequence-field/compose.ts +745 -0
- package/src/feature-libraries/sequence-field/format.ts +146 -0
- package/src/feature-libraries/sequence-field/helperTypes.ts +57 -0
- package/src/feature-libraries/sequence-field/index.ts +56 -0
- package/src/feature-libraries/sequence-field/invert.ts +370 -0
- package/src/feature-libraries/sequence-field/markListFactory.ts +55 -0
- package/src/feature-libraries/sequence-field/markQueue.ts +90 -0
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +500 -0
- package/src/feature-libraries/sequence-field/prune.ts +28 -0
- package/src/feature-libraries/sequence-field/rebase.ts +1058 -0
- package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +58 -0
- package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +24 -0
- package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +21 -0
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +280 -0
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +181 -0
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +198 -0
- package/src/feature-libraries/sequence-field/types.ts +210 -0
- package/src/feature-libraries/sequence-field/utils.ts +1238 -0
- package/src/feature-libraries/storedToViewSchema.ts +105 -0
- package/src/feature-libraries/treeCompressionUtils.ts +23 -0
- package/src/feature-libraries/treeCursorUtils.ts +489 -0
- package/src/feature-libraries/treeTextCursor.ts +125 -0
- package/src/feature-libraries/typed-schema/README.md +6 -0
- package/src/feature-libraries/typed-schema/flexList.ts +167 -0
- package/src/feature-libraries/typed-schema/index.ts +51 -0
- package/src/feature-libraries/typed-schema/internal.ts +10 -0
- package/src/feature-libraries/typed-schema/schemaCollection.ts +309 -0
- package/src/feature-libraries/typed-schema/typeUtils.ts +39 -0
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +594 -0
- package/src/feature-libraries/typed-schema/view.ts +157 -0
- package/src/feature-libraries/utils.ts +35 -0
- package/src/feature-libraries/valueUtilities.ts +93 -0
- package/src/feature-libraries/versioned/codec.ts +62 -0
- package/src/feature-libraries/versioned/format.ts +11 -0
- package/src/feature-libraries/versioned/index.ts +7 -0
- package/src/index.ts +341 -0
- package/src/internal.ts +17 -0
- package/src/shared-tree/README.md +10 -0
- package/src/shared-tree/index.ts +34 -0
- package/src/shared-tree/schematizedTree.ts +272 -0
- package/src/shared-tree/sharedTree.ts +443 -0
- package/src/shared-tree/sharedTreeChangeCodecs.ts +79 -0
- package/src/shared-tree/sharedTreeChangeFamily.ts +170 -0
- package/src/shared-tree/sharedTreeChangeFormat.ts +18 -0
- package/src/shared-tree/sharedTreeChangeTypes.ts +24 -0
- package/src/shared-tree/sharedTreeEditBuilder.ts +70 -0
- package/src/shared-tree/treeCheckout.ts +451 -0
- package/src/shared-tree/treeView.ts +107 -0
- package/src/shared-tree-core/README.md +19 -0
- package/src/shared-tree-core/branch.ts +612 -0
- package/src/shared-tree-core/editManager.ts +655 -0
- package/src/shared-tree-core/editManagerCodecs.ts +63 -0
- package/src/shared-tree-core/editManagerFormat.ts +119 -0
- package/src/shared-tree-core/editManagerSummarizer.ts +103 -0
- package/src/shared-tree-core/index.ts +32 -0
- package/src/shared-tree-core/messageCodecs.ts +43 -0
- package/src/shared-tree-core/messageFormat.ts +33 -0
- package/src/shared-tree-core/messageTypes.ts +11 -0
- package/src/shared-tree-core/revisionTagCodecs.ts +16 -0
- package/src/shared-tree-core/sharedTreeCore.ts +365 -0
- package/src/shared-tree-core/transactionStack.ts +46 -0
- package/src/simple-tree/README.md +3 -0
- package/src/simple-tree/flexNode.ts +88 -0
- package/src/simple-tree/index.ts +30 -0
- package/src/simple-tree/insertable.ts +106 -0
- package/src/simple-tree/objectFactory.ts +46 -0
- package/src/simple-tree/proxies.ts +1165 -0
- package/src/simple-tree/rawNode.ts +276 -0
- package/src/simple-tree/toMapTree.ts +464 -0
- package/src/simple-tree/treeListNode.ts +81 -0
- package/src/simple-tree/types.ts +346 -0
- package/src/treeFactory.ts +149 -0
- package/src/util/README.md +9 -0
- package/src/util/brand.ts +248 -0
- package/src/util/brandedMap.ts +73 -0
- package/src/util/idAllocator.ts +52 -0
- package/src/util/index.ts +131 -0
- package/src/util/nestedMap.ts +297 -0
- package/src/util/nestedSet.ts +24 -0
- package/src/util/offsetList.ts +45 -0
- package/src/util/rangeMap.ts +149 -0
- package/src/util/referenceCounting.ts +51 -0
- package/src/util/stackyIterator.ts +53 -0
- package/src/util/transactionResult.ts +20 -0
- package/src/util/typeCheck.ts +208 -0
- package/src/util/typeCheckTests.ts +237 -0
- package/src/util/typeUtils.ts +168 -0
- package/src/util/utils.ts +538 -0
- package/tsconfig.esnext.json +7 -0
- package/tsconfig.json +17 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
import { RestrictiveReadonlyRecord } from "../util";
|
|
6
|
+
import { FlexTreeNode } from "../feature-libraries";
|
|
7
|
+
import { TreeValue } from "../core";
|
|
8
|
+
import { TreeArrayNode } from "../simple-tree";
|
|
9
|
+
import { AllowedTypes, FieldKind, FieldSchema, ImplicitAllowedTypes, ImplicitFieldSchema, InsertableObjectFromSchemaRecord, InsertableTreeNodeFromImplicitAllowedTypes, InsertableTypedNode, NodeFromSchema, NodeKind, ObjectFromSchemaRecord, TreeMapNode, TreeNodeFromImplicitAllowedTypes, TreeNodeSchema, TreeNodeSchemaClass } from "./schemaTypes";
|
|
10
|
+
/**
|
|
11
|
+
* Gets the leaf domain schema compatible with a given {@link TreeValue}.
|
|
12
|
+
*/
|
|
13
|
+
export declare function schemaFromValue(value: TreeValue): TreeNodeSchema;
|
|
14
|
+
/**
|
|
15
|
+
* Builds schema libraries, and the schema within them.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam TScope - Scope added as a prefix to the name of every schema produced by this factory.
|
|
18
|
+
* @typeParam TName - Type of names used to identify each schema produced in this factory.
|
|
19
|
+
* Typically this is just `string` but it is also possible to use `string` or `number` based enums if you prefer to identify your types that way.
|
|
20
|
+
*
|
|
21
|
+
* @sealed @beta
|
|
22
|
+
*/
|
|
23
|
+
export declare class SchemaFactory<TScope extends string = string, TName extends number | string = string> {
|
|
24
|
+
readonly scope: TScope;
|
|
25
|
+
private readonly structuralTypes;
|
|
26
|
+
/**
|
|
27
|
+
* @param scope - Prefix appended to the identifiers of all {@link TreeNodeSchema} produced by this builder.
|
|
28
|
+
* Use of [Reverse domain name notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation) or a UUIDv4 is recommended to avoid collisions.
|
|
29
|
+
*/
|
|
30
|
+
constructor(scope: TScope);
|
|
31
|
+
private scoped;
|
|
32
|
+
/**
|
|
33
|
+
* {@link TreeNodeSchema} for holding a JavaScript `string`.
|
|
34
|
+
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.
|
|
37
|
+
*
|
|
38
|
+
* These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.
|
|
39
|
+
* JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.
|
|
40
|
+
* @privateRemarks
|
|
41
|
+
* TODO:
|
|
42
|
+
* We should be much more clear about what happens if you use problematic values.
|
|
43
|
+
* We should validate and/or normalize them when inserting content.
|
|
44
|
+
*/
|
|
45
|
+
readonly string: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* {@link TreeNodeSchema} for holding a JavaScript `number`.
|
|
48
|
+
*
|
|
49
|
+
* @remarks
|
|
50
|
+
* The number is a [double-precision 64-bit binary format IEEE 754](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) value, however there are some exceptions:
|
|
51
|
+
* - `NaN`, and the infinities are converted to `null` (and may therefore only be used where `null` is allowed by the schema).
|
|
52
|
+
* - `-0` may be converted to `0` in some cases.
|
|
53
|
+
*
|
|
54
|
+
* These limitations match the limitations of JSON.
|
|
55
|
+
* @privateRemarks
|
|
56
|
+
* TODO:
|
|
57
|
+
* We should be much more clear about what happens if you use problematic values.
|
|
58
|
+
* We should validate and/or normalize them when inserting content.
|
|
59
|
+
*/
|
|
60
|
+
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
61
|
+
/**
|
|
62
|
+
* {@link TreeNodeSchema} for holding a boolean.
|
|
63
|
+
*/
|
|
64
|
+
readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* {@link TreeNodeSchema} for JavaScript `null`.
|
|
67
|
+
*
|
|
68
|
+
* @remarks
|
|
69
|
+
* There are good [reasons to avoid using null](https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null) in JavaScript, however sometimes it is desired.
|
|
70
|
+
* This {@link TreeNodeSchema} node provides the option to include nulls in trees when desired.
|
|
71
|
+
* Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.
|
|
72
|
+
*/
|
|
73
|
+
readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
|
|
74
|
+
/**
|
|
75
|
+
* {@link TreeNodeSchema} for holding an {@link @fluidframework/core-interfaces#IFluidHandle}.
|
|
76
|
+
*/
|
|
77
|
+
readonly handle: TreeNodeSchema<"com.fluidframework.leaf.handle", NodeKind.Leaf, import("@fluidframework/core-interfaces").IFluidHandle<import("@fluidframework/core-interfaces").FluidObject & import("@fluidframework/core-interfaces").IFluidLoadable>, import("@fluidframework/core-interfaces").IFluidHandle<import("@fluidframework/core-interfaces").FluidObject & import("@fluidframework/core-interfaces").IFluidLoadable>>;
|
|
78
|
+
/**
|
|
79
|
+
* Construct a class that provides the common parts all TreeNodeSchemaClass share.
|
|
80
|
+
* More specific schema extend this class.
|
|
81
|
+
*/
|
|
82
|
+
private nodeSchema;
|
|
83
|
+
/**
|
|
84
|
+
* Define a {@link TreeNodeSchema} for an object node.
|
|
85
|
+
*
|
|
86
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
87
|
+
*/
|
|
88
|
+
object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, t: T): TreeNodeSchemaClass<`${TScope}.${Name}`, NodeKind.Object, ObjectFromSchemaRecord<T>, InsertableObjectFromSchemaRecord<T>, true>;
|
|
89
|
+
/**
|
|
90
|
+
* Define a structurally typed {@link TreeNodeSchema} for a {@link TreeMapNodeBase}.
|
|
91
|
+
*
|
|
92
|
+
* @remarks
|
|
93
|
+
* The {@link TreeNodeSchemaIdentifier} for this Map is defined as a function of the provided types.
|
|
94
|
+
* It is still scoped to this SchemaBuilder, but multiple calls with the same arguments will return the same schema object, providing somewhat structural typing.
|
|
95
|
+
* This does not support recursive types.
|
|
96
|
+
*
|
|
97
|
+
* If using these structurally named maps, other types in this schema builder should avoid names of the form `Map<${string}>`.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* The returned schema should be used as a schema directly:
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const MyMap = factory.map(factory.number);
|
|
103
|
+
* type MyMap = NodeFromSchema<typeof MyMap>;
|
|
104
|
+
* ```
|
|
105
|
+
* Or inline:
|
|
106
|
+
* ```typescript
|
|
107
|
+
* factory.object("Foo", {myMap: factory.map(factory.number)});
|
|
108
|
+
* ```
|
|
109
|
+
* @privateRemarks
|
|
110
|
+
* See note on list.
|
|
111
|
+
*/
|
|
112
|
+
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<`${TScope}.Map<${string}>`, NodeKind.Map, TreeMapNode<T>, ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>, true>;
|
|
113
|
+
/**
|
|
114
|
+
* Define a {@link TreeNodeSchema} for a {@link TreeMapNodeBase}.
|
|
115
|
+
*
|
|
116
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* class NamedMap extends factory.map("name", factory.number) {}
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<`${TScope}.${Name}`, NodeKind.Map, TreeMapNode<T>, ReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>, true>;
|
|
124
|
+
/**
|
|
125
|
+
* Define a {@link TreeNodeSchema} for a {@link (TreeMapNode:interface)}.
|
|
126
|
+
*
|
|
127
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
128
|
+
*
|
|
129
|
+
* @remarks See remarks on {@link SchemaFactory.namedArray}.
|
|
130
|
+
*/
|
|
131
|
+
namedMap<Name extends TName | string, const T extends ImplicitAllowedTypes, const ImplicitlyConstructable extends boolean>(name: Name, allowedTypes: T, customizable: boolean, implicitlyConstructable: ImplicitlyConstructable): TreeNodeSchemaClass<`${TScope}.${Name}`, NodeKind.Map, TreeMapNode<T>, ReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>, ImplicitlyConstructable>;
|
|
132
|
+
/**
|
|
133
|
+
* Define a structurally typed {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.
|
|
134
|
+
*
|
|
135
|
+
* @remarks
|
|
136
|
+
* The identifier for this List is defined as a function of the provided types.
|
|
137
|
+
* It is still scoped to this SchemaFactory, but multiple calls with the same arguments will return the same schema object, providing somewhat structural typing.
|
|
138
|
+
* This does not support recursive types.
|
|
139
|
+
*
|
|
140
|
+
* If using these structurally named lists, other types in this schema builder should avoid names of the form `List<${string}>`.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* The returned schema should be used as a schema directly:
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const MyList = factory.list(factory.number);
|
|
146
|
+
* type MyList = NodeFromSchema<typeof MyList>;
|
|
147
|
+
* ```
|
|
148
|
+
* Or inline:
|
|
149
|
+
* ```typescript
|
|
150
|
+
* factory.object("Foo", {myList: factory.list(factory.number)});
|
|
151
|
+
* ```
|
|
152
|
+
* @privateRemarks
|
|
153
|
+
* The name produced at the type level here is not as specific as it could be, however doing type level sorting and escaping is a real mess.
|
|
154
|
+
* There are cases where not having this full type provided will be less than ideal since TypeScript's structural types.
|
|
155
|
+
* For example attempts to narrow unions of structural lists by name won't work.
|
|
156
|
+
* Planned future changes to move to a class based schema system as well as factor function based node construction should mostly avoid these issues,
|
|
157
|
+
* though there may still be some problematic cases even after that work is done.
|
|
158
|
+
*
|
|
159
|
+
* The return value is a class, but its the type is intentionally not specific enough to indicate it is a class.
|
|
160
|
+
* This prevents callers of this from sub-classing it, which is unlikely to work well (due to the ease of accidentally giving two different calls o this different subclasses)
|
|
161
|
+
* when working with structural typing.
|
|
162
|
+
*/
|
|
163
|
+
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<`${TScope}.List<${string}>`, NodeKind.Array, TreeArrayNode<T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true>;
|
|
164
|
+
/**
|
|
165
|
+
* Define (and add to this library) a {@link FieldNodeSchema} for a {@link (TreeArrayNode:interface)}.
|
|
166
|
+
*
|
|
167
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* class NamedList extends factory.list("name", factory.number) {}
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<`${TScope}.${Name}`, NodeKind.Array, TreeArrayNode<T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true>;
|
|
175
|
+
/**
|
|
176
|
+
* Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.
|
|
177
|
+
*
|
|
178
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
179
|
+
*
|
|
180
|
+
* @remarks
|
|
181
|
+
* This is not intended to be used directly, use the overload of `list` which takes a name instead.
|
|
182
|
+
* This is only public to work around a compiler limitation.
|
|
183
|
+
*
|
|
184
|
+
* @privateRemarks
|
|
185
|
+
* TODO: this should be made private or protected.
|
|
186
|
+
* Doing so breaks due to:
|
|
187
|
+
* `src/class-tree/schemaFactoryRecursive.ts:42:9 - error TS2310: Type 'List' recursively references itself as a base type.`
|
|
188
|
+
* Once recursive APIs are better sorted out and integrated into this class, switch this back to private.
|
|
189
|
+
*/
|
|
190
|
+
namedArray<Name extends TName | string, const T extends ImplicitAllowedTypes, const ImplicitlyConstructable extends boolean>(name: Name, allowedTypes: T, customizable: boolean, implicitlyConstructable: ImplicitlyConstructable): TreeNodeSchemaClass<`${TScope}.${Name}`, NodeKind.Array, TreeArrayNode<T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, ImplicitlyConstructable>;
|
|
191
|
+
/**
|
|
192
|
+
* Make a field optional instead of the default which is required.
|
|
193
|
+
*/
|
|
194
|
+
optional<const T extends ImplicitAllowedTypes>(t: T): FieldSchema<FieldKind.Optional, T>;
|
|
195
|
+
/**
|
|
196
|
+
* Function which can be used for its compile time side-effects to tweak the evaluation order of recursive types to make them compile.
|
|
197
|
+
* @remarks
|
|
198
|
+
* Some related information in https://github.com/microsoft/TypeScript/issues/55758.
|
|
199
|
+
*
|
|
200
|
+
* Also be aware that code which relies on this tends to break VSCode's IntelliSense every time anything related to that code (even comments) is edited.
|
|
201
|
+
* Running the command `TypeScript: Restart TS Server` with the schema file focused should fix it.
|
|
202
|
+
* Sometimes this does not work: closing all open files except the schema before running the command can help.
|
|
203
|
+
* Real compile errors (for example elsewhere in the file) can also cause the IntelliSense to not work correctly ever after `TypeScript: Restart TS Server`.
|
|
204
|
+
*
|
|
205
|
+
* Intellisense has also shown problems when schema files with recursive types are part of a cyclic file dependency.
|
|
206
|
+
* Splitting the schema into its own file with minimal dependencies can help with this.
|
|
207
|
+
*
|
|
208
|
+
* Ensure `"noImplicitAny": true` is set in the `tsconfig.json`.
|
|
209
|
+
* Without it, recursive types that are not working properly can infer `any` and give very non-type-safe results instead of erroring.
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```typescript
|
|
213
|
+
* const factory = new SchemaFactory("example");
|
|
214
|
+
* const recursiveReference = () => RecursiveObject;
|
|
215
|
+
* factory.fixRecursiveReference(recursiveReference);
|
|
216
|
+
* export class RecursiveObject extends factory.object("exampleObject", {
|
|
217
|
+
* recursive: [recursiveReference],
|
|
218
|
+
* }) {}
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
fixRecursiveReference<T extends AllowedTypes>(...types: T): void;
|
|
222
|
+
}
|
|
223
|
+
export declare function createTree<T extends TreeNodeSchema>(schema: T, data: InsertableTypedNode<T> | FlexTreeNode): NodeFromSchema<T>;
|
|
224
|
+
export declare function structuralName<const T extends string>(collectionName: T, allowedTypes: TreeNodeSchema | readonly TreeNodeSchema[]): `${T}<${string}>`;
|
|
225
|
+
//# sourceMappingURL=schemaFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaFactory.d.ts","sourceRoot":"","sources":["../../src/class-tree/schemaFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.structuralName = exports.createTree = exports.SchemaFactory = exports.schemaFromValue = void 0;
|
|
8
|
+
const core_utils_1 = require("@fluidframework/core-utils");
|
|
9
|
+
const util_1 = require("../util");
|
|
10
|
+
const feature_libraries_1 = require("../feature-libraries");
|
|
11
|
+
const domains_1 = require("../domains");
|
|
12
|
+
const proxies_1 = require("../simple-tree/proxies");
|
|
13
|
+
const simple_tree_1 = require("../simple-tree");
|
|
14
|
+
const toFlexSchema_1 = require("./toFlexSchema");
|
|
15
|
+
const schemaTypes_1 = require("./schemaTypes");
|
|
16
|
+
/**
|
|
17
|
+
* Instances of this class are schema for leaf nodes.
|
|
18
|
+
* @remarks
|
|
19
|
+
* Unlike other schema, leaf schema are class instances instead of classes themselves.
|
|
20
|
+
* This is because the instance type (the tree node type) for leaves are not objects,
|
|
21
|
+
* so those instances can't be instances of a schema based class.
|
|
22
|
+
* @privateRemarks
|
|
23
|
+
* This class refers to the underlying flex tree schema in its constructor, so this class can't be included in the package API.
|
|
24
|
+
*/
|
|
25
|
+
class LeafNodeSchema {
|
|
26
|
+
create(data) {
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
constructor(schema) {
|
|
30
|
+
this.kind = schemaTypes_1.NodeKind.Leaf;
|
|
31
|
+
this.implicitlyConstructable = true;
|
|
32
|
+
(0, toFlexSchema_1.setFlexSchemaFromClassSchema)(this, schema);
|
|
33
|
+
this.identifier = schema.name;
|
|
34
|
+
this.info = schema.info;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Wrapper around LeafNodeSchema's constructor that provides the return type that is desired in the package public API.
|
|
39
|
+
*/
|
|
40
|
+
function makeLeaf(schema) {
|
|
41
|
+
return new LeafNodeSchema(schema);
|
|
42
|
+
}
|
|
43
|
+
// Leaf schema shared between all SchemaFactory instances.
|
|
44
|
+
const stringSchema = makeLeaf(domains_1.leaf.string);
|
|
45
|
+
const numberSchema = makeLeaf(domains_1.leaf.number);
|
|
46
|
+
const booleanSchema = makeLeaf(domains_1.leaf.boolean);
|
|
47
|
+
const nullSchema = makeLeaf(domains_1.leaf.null);
|
|
48
|
+
const handleSchema = makeLeaf(domains_1.leaf.handle);
|
|
49
|
+
/**
|
|
50
|
+
* Gets the leaf domain schema compatible with a given {@link TreeValue}.
|
|
51
|
+
*/
|
|
52
|
+
function schemaFromValue(value) {
|
|
53
|
+
switch (typeof value) {
|
|
54
|
+
case "boolean":
|
|
55
|
+
return booleanSchema;
|
|
56
|
+
case "number":
|
|
57
|
+
return numberSchema;
|
|
58
|
+
case "string":
|
|
59
|
+
return stringSchema;
|
|
60
|
+
case "object": {
|
|
61
|
+
if (value === null) {
|
|
62
|
+
return nullSchema;
|
|
63
|
+
}
|
|
64
|
+
(0, core_utils_1.assert)((0, feature_libraries_1.isFluidHandle)(value), "invalid TreeValue");
|
|
65
|
+
return handleSchema;
|
|
66
|
+
}
|
|
67
|
+
default:
|
|
68
|
+
(0, core_utils_1.unreachableCase)(value);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.schemaFromValue = schemaFromValue;
|
|
72
|
+
/**
|
|
73
|
+
* Builds schema libraries, and the schema within them.
|
|
74
|
+
*
|
|
75
|
+
* @typeParam TScope - Scope added as a prefix to the name of every schema produced by this factory.
|
|
76
|
+
* @typeParam TName - Type of names used to identify each schema produced in this factory.
|
|
77
|
+
* Typically this is just `string` but it is also possible to use `string` or `number` based enums if you prefer to identify your types that way.
|
|
78
|
+
*
|
|
79
|
+
* @sealed @beta
|
|
80
|
+
*/
|
|
81
|
+
class SchemaFactory {
|
|
82
|
+
/**
|
|
83
|
+
* @param scope - Prefix appended to the identifiers of all {@link TreeNodeSchema} produced by this builder.
|
|
84
|
+
* Use of [Reverse domain name notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation) or a UUIDv4 is recommended to avoid collisions.
|
|
85
|
+
*/
|
|
86
|
+
constructor(scope) {
|
|
87
|
+
this.scope = scope;
|
|
88
|
+
this.structuralTypes = new Map();
|
|
89
|
+
/**
|
|
90
|
+
* {@link TreeNodeSchema} for holding a JavaScript `string`.
|
|
91
|
+
*
|
|
92
|
+
* @remarks
|
|
93
|
+
* Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.
|
|
94
|
+
*
|
|
95
|
+
* These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.
|
|
96
|
+
* JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.
|
|
97
|
+
* @privateRemarks
|
|
98
|
+
* TODO:
|
|
99
|
+
* We should be much more clear about what happens if you use problematic values.
|
|
100
|
+
* We should validate and/or normalize them when inserting content.
|
|
101
|
+
*/
|
|
102
|
+
this.string = stringSchema;
|
|
103
|
+
/**
|
|
104
|
+
* {@link TreeNodeSchema} for holding a JavaScript `number`.
|
|
105
|
+
*
|
|
106
|
+
* @remarks
|
|
107
|
+
* The number is a [double-precision 64-bit binary format IEEE 754](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) value, however there are some exceptions:
|
|
108
|
+
* - `NaN`, and the infinities are converted to `null` (and may therefore only be used where `null` is allowed by the schema).
|
|
109
|
+
* - `-0` may be converted to `0` in some cases.
|
|
110
|
+
*
|
|
111
|
+
* These limitations match the limitations of JSON.
|
|
112
|
+
* @privateRemarks
|
|
113
|
+
* TODO:
|
|
114
|
+
* We should be much more clear about what happens if you use problematic values.
|
|
115
|
+
* We should validate and/or normalize them when inserting content.
|
|
116
|
+
*/
|
|
117
|
+
this.number = numberSchema;
|
|
118
|
+
/**
|
|
119
|
+
* {@link TreeNodeSchema} for holding a boolean.
|
|
120
|
+
*/
|
|
121
|
+
this.boolean = booleanSchema;
|
|
122
|
+
/**
|
|
123
|
+
* {@link TreeNodeSchema} for JavaScript `null`.
|
|
124
|
+
*
|
|
125
|
+
* @remarks
|
|
126
|
+
* There are good [reasons to avoid using null](https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null) in JavaScript, however sometimes it is desired.
|
|
127
|
+
* This {@link TreeNodeSchema} node provides the option to include nulls in trees when desired.
|
|
128
|
+
* Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.
|
|
129
|
+
*/
|
|
130
|
+
this.null = nullSchema;
|
|
131
|
+
/**
|
|
132
|
+
* {@link TreeNodeSchema} for holding an {@link @fluidframework/core-interfaces#IFluidHandle}.
|
|
133
|
+
*/
|
|
134
|
+
this.handle = handleSchema;
|
|
135
|
+
}
|
|
136
|
+
scoped(name) {
|
|
137
|
+
return `${this.scope}.${name}`;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Construct a class that provides the common parts all TreeNodeSchemaClass share.
|
|
141
|
+
* More specific schema extend this class.
|
|
142
|
+
*/
|
|
143
|
+
nodeSchema(name, kind, t, implicitlyConstructable) {
|
|
144
|
+
const identifier = this.scoped(name);
|
|
145
|
+
class schema extends simple_tree_1.TreeNode {
|
|
146
|
+
/**
|
|
147
|
+
* This constructor only does validation of the input, and should be passed the argument from the derived type unchanged.
|
|
148
|
+
* It is up to the derived type to actually do something with this value.
|
|
149
|
+
*/
|
|
150
|
+
constructor(input) {
|
|
151
|
+
super();
|
|
152
|
+
// Currently this just does validation. All other logic is in the subclass.
|
|
153
|
+
if ((0, feature_libraries_1.isFlexTreeNode)(input)) {
|
|
154
|
+
(0, core_utils_1.assert)((0, proxies_1.getClassSchema)(input.schema) === this.constructor, 0x83b /* building node with wrong schema */);
|
|
155
|
+
}
|
|
156
|
+
// TODO: make this a better user facing error, and explain how to copy explicitly.
|
|
157
|
+
(0, core_utils_1.assert)(!(input instanceof simple_tree_1.TreeNode), 0x83c /* Existing nodes cannot be used as new content to insert. They must either be moved or explicitly copied */);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
schema.identifier = identifier;
|
|
161
|
+
schema.kind = kind;
|
|
162
|
+
schema.info = t;
|
|
163
|
+
schema.implicitlyConstructable = implicitlyConstructable;
|
|
164
|
+
// Class objects are functions (callable), so we need a strong way to distinguish between `schema` and `() => schema` when used as a `LazyItem`.
|
|
165
|
+
(0, feature_libraries_1.markEager)(schema);
|
|
166
|
+
return schema;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Define a {@link TreeNodeSchema} for an object node.
|
|
170
|
+
*
|
|
171
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
172
|
+
*/
|
|
173
|
+
object(name, t) {
|
|
174
|
+
const allowAdditionalProperties = true;
|
|
175
|
+
class schema extends this.nodeSchema(name, schemaTypes_1.NodeKind.Object, t, true) {
|
|
176
|
+
constructor(input) {
|
|
177
|
+
super(input);
|
|
178
|
+
if ((0, feature_libraries_1.isFlexTreeNode)(input)) {
|
|
179
|
+
return (0, proxies_1.createNodeProxy)(input, allowAdditionalProperties, this);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
const flexSchema = (0, toFlexSchema_1.getFlexSchema)(this.constructor);
|
|
183
|
+
return (0, proxies_1.createRawNodeProxy)(flexSchema, input, allowAdditionalProperties, this);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return schema;
|
|
188
|
+
}
|
|
189
|
+
map(nameOrAllowedTypes, allowedTypes) {
|
|
190
|
+
if (allowedTypes === undefined) {
|
|
191
|
+
const types = nameOrAllowedTypes;
|
|
192
|
+
const fullName = structuralName("Map", types);
|
|
193
|
+
return (0, util_1.getOrCreate)(this.structuralTypes, fullName, () => this.namedMap(fullName, nameOrAllowedTypes, false, true));
|
|
194
|
+
}
|
|
195
|
+
return this.namedMap(nameOrAllowedTypes, allowedTypes, true, true);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Define a {@link TreeNodeSchema} for a {@link (TreeMapNode:interface)}.
|
|
199
|
+
*
|
|
200
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
201
|
+
*
|
|
202
|
+
* @remarks See remarks on {@link SchemaFactory.namedArray}.
|
|
203
|
+
*/
|
|
204
|
+
namedMap(name, allowedTypes, customizable, implicitlyConstructable) {
|
|
205
|
+
class schema extends this.nodeSchema(name, schemaTypes_1.NodeKind.Map, allowedTypes, implicitlyConstructable) {
|
|
206
|
+
constructor(input) {
|
|
207
|
+
super(input);
|
|
208
|
+
if ((0, feature_libraries_1.isFlexTreeNode)(input)) {
|
|
209
|
+
return (0, proxies_1.createNodeProxy)(input, customizable, customizable ? this : undefined);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const flexSchema = (0, toFlexSchema_1.getFlexSchema)(this.constructor);
|
|
213
|
+
return (0, proxies_1.createRawNodeProxy)(flexSchema, input, customizable, customizable ? this : undefined);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Setup map functionality
|
|
218
|
+
Object.defineProperties(schema.prototype, proxies_1.mapStaticDispatchMap);
|
|
219
|
+
return schema;
|
|
220
|
+
}
|
|
221
|
+
array(nameOrAllowedTypes, allowedTypes) {
|
|
222
|
+
if (allowedTypes === undefined) {
|
|
223
|
+
const types = nameOrAllowedTypes;
|
|
224
|
+
const fullName = structuralName("List", types);
|
|
225
|
+
return (0, util_1.getOrCreate)(this.structuralTypes, fullName, () => this.namedArray(fullName, nameOrAllowedTypes, false, true));
|
|
226
|
+
}
|
|
227
|
+
return this.namedArray(nameOrAllowedTypes, allowedTypes, true, true);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.
|
|
231
|
+
*
|
|
232
|
+
* @param name - Unique identifier for this schema within this factory's scope.
|
|
233
|
+
*
|
|
234
|
+
* @remarks
|
|
235
|
+
* This is not intended to be used directly, use the overload of `list` which takes a name instead.
|
|
236
|
+
* This is only public to work around a compiler limitation.
|
|
237
|
+
*
|
|
238
|
+
* @privateRemarks
|
|
239
|
+
* TODO: this should be made private or protected.
|
|
240
|
+
* Doing so breaks due to:
|
|
241
|
+
* `src/class-tree/schemaFactoryRecursive.ts:42:9 - error TS2310: Type 'List' recursively references itself as a base type.`
|
|
242
|
+
* Once recursive APIs are better sorted out and integrated into this class, switch this back to private.
|
|
243
|
+
*/
|
|
244
|
+
namedArray(name, allowedTypes, customizable, implicitlyConstructable) {
|
|
245
|
+
// This class returns a proxy from its constructor to handle numeric indexing.
|
|
246
|
+
// Alternatively it could extend a normal class which gets tons of numeric properties added.
|
|
247
|
+
class schema extends this.nodeSchema(name, schemaTypes_1.NodeKind.Array, allowedTypes, implicitlyConstructable) {
|
|
248
|
+
get length() {
|
|
249
|
+
return (0, proxies_1.getSequenceField)(this).length;
|
|
250
|
+
}
|
|
251
|
+
constructor(input) {
|
|
252
|
+
super(input);
|
|
253
|
+
if ((0, feature_libraries_1.isFlexTreeNode)(input)) {
|
|
254
|
+
return (0, proxies_1.createNodeProxy)(input, customizable, customizable ? this : undefined);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
const flexSchema = (0, toFlexSchema_1.getFlexSchema)(this.constructor);
|
|
258
|
+
return (0, proxies_1.createRawNodeProxy)(flexSchema, [...input], customizable, customizable ? this : undefined);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// Setup list functionality
|
|
263
|
+
Object.defineProperties(schema.prototype, proxies_1.listPrototypeProperties);
|
|
264
|
+
return schema;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Make a field optional instead of the default which is required.
|
|
268
|
+
*/
|
|
269
|
+
optional(t) {
|
|
270
|
+
return new schemaTypes_1.FieldSchema(schemaTypes_1.FieldKind.Optional, t);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Function which can be used for its compile time side-effects to tweak the evaluation order of recursive types to make them compile.
|
|
274
|
+
* @remarks
|
|
275
|
+
* Some related information in https://github.com/microsoft/TypeScript/issues/55758.
|
|
276
|
+
*
|
|
277
|
+
* Also be aware that code which relies on this tends to break VSCode's IntelliSense every time anything related to that code (even comments) is edited.
|
|
278
|
+
* Running the command `TypeScript: Restart TS Server` with the schema file focused should fix it.
|
|
279
|
+
* Sometimes this does not work: closing all open files except the schema before running the command can help.
|
|
280
|
+
* Real compile errors (for example elsewhere in the file) can also cause the IntelliSense to not work correctly ever after `TypeScript: Restart TS Server`.
|
|
281
|
+
*
|
|
282
|
+
* Intellisense has also shown problems when schema files with recursive types are part of a cyclic file dependency.
|
|
283
|
+
* Splitting the schema into its own file with minimal dependencies can help with this.
|
|
284
|
+
*
|
|
285
|
+
* Ensure `"noImplicitAny": true` is set in the `tsconfig.json`.
|
|
286
|
+
* Without it, recursive types that are not working properly can infer `any` and give very non-type-safe results instead of erroring.
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* ```typescript
|
|
290
|
+
* const factory = new SchemaFactory("example");
|
|
291
|
+
* const recursiveReference = () => RecursiveObject;
|
|
292
|
+
* factory.fixRecursiveReference(recursiveReference);
|
|
293
|
+
* export class RecursiveObject extends factory.object("exampleObject", {
|
|
294
|
+
* recursive: [recursiveReference],
|
|
295
|
+
* }) {}
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
fixRecursiveReference(...types) { }
|
|
299
|
+
}
|
|
300
|
+
exports.SchemaFactory = SchemaFactory;
|
|
301
|
+
// TODO: unify this with logic in getOrCreateNodeProxy
|
|
302
|
+
function createTree(schema, data) {
|
|
303
|
+
if (typeof schema === "function") {
|
|
304
|
+
return new schema(data);
|
|
305
|
+
}
|
|
306
|
+
return schema.create(data);
|
|
307
|
+
}
|
|
308
|
+
exports.createTree = createTree;
|
|
309
|
+
function structuralName(collectionName, allowedTypes) {
|
|
310
|
+
let inner;
|
|
311
|
+
if (!(0, util_1.isReadonlyArray)(allowedTypes)) {
|
|
312
|
+
return structuralName(collectionName, [allowedTypes]);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
const names = allowedTypes.map((t) => {
|
|
316
|
+
// Ensure that lazy types (functions) don't slip through here.
|
|
317
|
+
(0, core_utils_1.assert)(!(0, feature_libraries_1.isLazy)(t), 0x83d /* invalid type provided */);
|
|
318
|
+
return t.identifier;
|
|
319
|
+
});
|
|
320
|
+
// Ensure name is order independent
|
|
321
|
+
names.sort();
|
|
322
|
+
// Ensure name can't have collisions by quoting and escaping any quotes in the names of types.
|
|
323
|
+
// Using JSON is a simple way to accomplish this.
|
|
324
|
+
// The outer `[]` around the result are also needed so that a single type name "Any" would not collide with the "any" case above.
|
|
325
|
+
inner = JSON.stringify(names);
|
|
326
|
+
}
|
|
327
|
+
return `${collectionName}<${inner}>`;
|
|
328
|
+
}
|
|
329
|
+
exports.structuralName = structuralName;
|
|
330
|
+
//# sourceMappingURL=schemaFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaFactory.js","sourceRoot":"","sources":["../../src/class-tree/schemaFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, unreachableCase } from \"@fluidframework/core-utils\";\nimport { RestrictiveReadonlyRecord, getOrCreate, isReadonlyArray } from \"../util\";\nimport {\n\tFlexTreeNode,\n\tLeafNodeSchema as FlexLeafNodeSchema,\n\tisFlexTreeNode,\n\tObjectNodeSchema,\n\tisLazy,\n\tmarkEager,\n\tMapNodeSchema,\n\tFieldNodeSchema,\n\tisFluidHandle,\n} from \"../feature-libraries\";\nimport { leaf } from \"../domains\";\nimport { TreeNodeSchemaIdentifier, TreeValue } from \"../core\";\nimport {\n\tcreateNodeProxy,\n\tcreateRawNodeProxy,\n\tgetClassSchema,\n\tgetSequenceField,\n\tlistPrototypeProperties,\n\tmapStaticDispatchMap,\n\t// eslint-disable-next-line import/no-internal-modules\n} from \"../simple-tree/proxies\";\nimport { TreeArrayNode, TreeNode } from \"../simple-tree\";\nimport { getFlexSchema, setFlexSchemaFromClassSchema } from \"./toFlexSchema\";\nimport {\n\tAllowedTypes,\n\tFieldKind,\n\tFieldSchema,\n\tImplicitAllowedTypes,\n\tImplicitFieldSchema,\n\tInsertableObjectFromSchemaRecord,\n\tInsertableTreeNodeFromImplicitAllowedTypes,\n\tInsertableTypedNode,\n\tNodeFromSchema,\n\tNodeKind,\n\tObjectFromSchemaRecord,\n\tTreeMapNode,\n\tTreeNodeFromImplicitAllowedTypes,\n\tTreeNodeSchema,\n\tTreeNodeSchemaClass,\n\tTreeNodeSchemaNonClass,\n} from \"./schemaTypes\";\n\n/**\n * Instances of this class are schema for leaf nodes.\n * @remarks\n * Unlike other schema, leaf schema are class instances instead of classes themselves.\n * This is because the instance type (the tree node type) for leaves are not objects,\n * so those instances can't be instances of a schema based class.\n * @privateRemarks\n * This class refers to the underlying flex tree schema in its constructor, so this class can't be included in the package API.\n */\nclass LeafNodeSchema<T extends FlexLeafNodeSchema>\n\timplements TreeNodeSchemaNonClass<UnbrandedName<T>, NodeKind.Leaf, TreeValue<T[\"info\"]>>\n{\n\tpublic readonly identifier: UnbrandedName<T>;\n\tpublic readonly kind = NodeKind.Leaf;\n\tpublic readonly info: T[\"info\"];\n\tpublic readonly implicitlyConstructable = true as const;\n\tpublic create(data: TreeValue<T[\"info\"]>): TreeValue<T[\"info\"]> {\n\t\treturn data;\n\t}\n\n\tpublic constructor(schema: T) {\n\t\tsetFlexSchemaFromClassSchema(this, schema);\n\t\tthis.identifier = schema.name as UnbrandedName<T>;\n\t\tthis.info = schema.info;\n\t}\n}\n\n/**\n * Wrapper around LeafNodeSchema's constructor that provides the return type that is desired in the package public API.\n */\nfunction makeLeaf<T extends FlexLeafNodeSchema>(\n\tschema: T,\n): TreeNodeSchema<UnbrandedName<T>, NodeKind.Leaf, TreeValue<T[\"info\"]>, TreeValue<T[\"info\"]>> {\n\treturn new LeafNodeSchema(schema);\n}\n\n// Leaf schema shared between all SchemaFactory instances.\nconst stringSchema = makeLeaf(leaf.string);\nconst numberSchema = makeLeaf(leaf.number);\nconst booleanSchema = makeLeaf(leaf.boolean);\nconst nullSchema = makeLeaf(leaf.null);\nconst handleSchema = makeLeaf(leaf.handle);\n\n/**\n * Gets the leaf domain schema compatible with a given {@link TreeValue}.\n */\nexport function schemaFromValue(value: TreeValue): TreeNodeSchema {\n\tswitch (typeof value) {\n\t\tcase \"boolean\":\n\t\t\treturn booleanSchema;\n\t\tcase \"number\":\n\t\t\treturn numberSchema;\n\t\tcase \"string\":\n\t\t\treturn stringSchema;\n\t\tcase \"object\": {\n\t\t\tif (value === null) {\n\t\t\t\treturn nullSchema;\n\t\t\t}\n\t\t\tassert(isFluidHandle(value), \"invalid TreeValue\");\n\t\t\treturn handleSchema;\n\t\t}\n\t\tdefault:\n\t\t\tunreachableCase(value);\n\t}\n}\n\ntype UnbrandedName<T extends FlexLeafNodeSchema> = T[\"name\"] extends TreeNodeSchemaIdentifier<\n\tinfer Name extends string\n>\n\t? Name\n\t: T[\"name\"];\n\n/**\n * Builds schema libraries, and the schema within them.\n *\n * @typeParam TScope - Scope added as a prefix to the name of every schema produced by this factory.\n * @typeParam TName - Type of names used to identify each schema produced in this factory.\n * Typically this is just `string` but it is also possible to use `string` or `number` based enums if you prefer to identify your types that way.\n *\n * @sealed @beta\n */\nexport class SchemaFactory<TScope extends string = string, TName extends number | string = string> {\n\tprivate readonly structuralTypes: Map<string, TreeNodeSchema> = new Map();\n\n\t/**\n\t * @param scope - Prefix appended to the identifiers of all {@link TreeNodeSchema} produced by this builder.\n\t * Use of [Reverse domain name notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation) or a UUIDv4 is recommended to avoid collisions.\n\t */\n\tpublic constructor(public readonly scope: TScope) {}\n\n\tprivate scoped<Name extends TName | string>(name: Name): `${TScope}.${Name}` {\n\t\treturn `${this.scope}.${name}`;\n\t}\n\n\t/**\n\t * {@link TreeNodeSchema} for holding a JavaScript `string`.\n\t *\n\t * @remarks\n\t * Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.\n\t *\n\t * These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.\n\t * JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.\n\t * @privateRemarks\n\t * TODO:\n\t * We should be much more clear about what happens if you use problematic values.\n\t * We should validate and/or normalize them when inserting content.\n\t */\n\tpublic readonly string = stringSchema;\n\n\t/**\n\t * {@link TreeNodeSchema} for holding a JavaScript `number`.\n\t *\n\t * @remarks\n\t * The number is a [double-precision 64-bit binary format IEEE 754](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) value, however there are some exceptions:\n\t * - `NaN`, and the infinities are converted to `null` (and may therefore only be used where `null` is allowed by the schema).\n\t * - `-0` may be converted to `0` in some cases.\n\t *\n\t * These limitations match the limitations of JSON.\n\t * @privateRemarks\n\t * TODO:\n\t * We should be much more clear about what happens if you use problematic values.\n\t * We should validate and/or normalize them when inserting content.\n\t */\n\tpublic readonly number = numberSchema;\n\n\t/**\n\t * {@link TreeNodeSchema} for holding a boolean.\n\t */\n\tpublic readonly boolean = booleanSchema;\n\n\t/**\n\t * {@link TreeNodeSchema} for JavaScript `null`.\n\t *\n\t * @remarks\n\t * There are good [reasons to avoid using null](https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null) in JavaScript, however sometimes it is desired.\n\t * This {@link TreeNodeSchema} node provides the option to include nulls in trees when desired.\n\t * Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.\n\t */\n\tpublic readonly null = nullSchema;\n\n\t/**\n\t * {@link TreeNodeSchema} for holding an {@link @fluidframework/core-interfaces#IFluidHandle}.\n\t */\n\tpublic readonly handle = handleSchema;\n\n\t/**\n\t * Construct a class that provides the common parts all TreeNodeSchemaClass share.\n\t * More specific schema extend this class.\n\t */\n\tprivate nodeSchema<\n\t\tconst Name extends TName | string,\n\t\tconst TKind extends NodeKind,\n\t\tT,\n\t\tconst TImplicitlyConstructable extends boolean,\n\t>(\n\t\tname: Name,\n\t\tkind: TKind,\n\t\tt: T,\n\t\timplicitlyConstructable: TImplicitlyConstructable,\n\t): TreeNodeSchemaClass<\n\t\t`${TScope}.${Name}`,\n\t\tTKind,\n\t\tTreeNode,\n\t\tFlexTreeNode | unknown,\n\t\tTImplicitlyConstructable\n\t> {\n\t\tconst identifier = this.scoped(name);\n\t\tclass schema extends TreeNode {\n\t\t\tpublic static readonly identifier = identifier;\n\t\t\tpublic static readonly kind = kind;\n\t\t\tpublic static readonly info = t;\n\t\t\tpublic static readonly implicitlyConstructable: TImplicitlyConstructable =\n\t\t\t\timplicitlyConstructable;\n\t\t\t/**\n\t\t\t * This constructor only does validation of the input, and should be passed the argument from the derived type unchanged.\n\t\t\t * It is up to the derived type to actually do something with this value.\n\t\t\t */\n\t\t\tpublic constructor(input: FlexTreeNode | unknown) {\n\t\t\t\tsuper();\n\t\t\t\t// Currently this just does validation. All other logic is in the subclass.\n\t\t\t\tif (isFlexTreeNode(input)) {\n\t\t\t\t\tassert(\n\t\t\t\t\t\tgetClassSchema(input.schema) === this.constructor,\n\t\t\t\t\t\t0x83b /* building node with wrong schema */,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// TODO: make this a better user facing error, and explain how to copy explicitly.\n\t\t\t\tassert(\n\t\t\t\t\t!(input instanceof TreeNode),\n\t\t\t\t\t0x83c /* Existing nodes cannot be used as new content to insert. They must either be moved or explicitly copied */,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Class objects are functions (callable), so we need a strong way to distinguish between `schema` and `() => schema` when used as a `LazyItem`.\n\t\tmarkEager(schema);\n\t\treturn schema;\n\t}\n\n\t/**\n\t * Define a {@link TreeNodeSchema} for an object node.\n\t *\n\t * @param name - Unique identifier for this schema within this factory's scope.\n\t */\n\tpublic object<\n\t\tconst Name extends TName,\n\t\tconst T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>,\n\t>(\n\t\tname: Name,\n\t\tt: T,\n\t): TreeNodeSchemaClass<\n\t\t`${TScope}.${Name}`,\n\t\tNodeKind.Object,\n\t\tObjectFromSchemaRecord<T>,\n\t\tInsertableObjectFromSchemaRecord<T>,\n\t\ttrue\n\t> {\n\t\tconst allowAdditionalProperties = true;\n\t\tclass schema extends this.nodeSchema(name, NodeKind.Object, t, true) {\n\t\t\tpublic constructor(input: InsertableObjectFromSchemaRecord<T>) {\n\t\t\t\tsuper(input);\n\t\t\t\tif (isFlexTreeNode(input)) {\n\t\t\t\t\treturn createNodeProxy(input, allowAdditionalProperties, this) as schema;\n\t\t\t\t} else {\n\t\t\t\t\tconst flexSchema = getFlexSchema(this.constructor as TreeNodeSchema);\n\t\t\t\t\treturn createRawNodeProxy(\n\t\t\t\t\t\tflexSchema as ObjectNodeSchema,\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tallowAdditionalProperties,\n\t\t\t\t\t\tthis,\n\t\t\t\t\t) as schema;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn schema as TreeNodeSchemaClass<\n\t\t\t`${TScope}.${Name}`,\n\t\t\tNodeKind.Object,\n\t\t\tObjectFromSchemaRecord<T>,\n\t\t\tInsertableObjectFromSchemaRecord<T>,\n\t\t\ttrue\n\t\t>;\n\t}\n\n\t/**\n\t * Define a structurally typed {@link TreeNodeSchema} for a {@link TreeMapNodeBase}.\n\t *\n\t * @remarks\n\t * The {@link TreeNodeSchemaIdentifier} for this Map is defined as a function of the provided types.\n\t * It is still scoped to this SchemaBuilder, but multiple calls with the same arguments will return the same schema object, providing somewhat structural typing.\n\t * This does not support recursive types.\n\t *\n\t * If using these structurally named maps, other types in this schema builder should avoid names of the form `Map<${string}>`.\n\t *\n\t * @example\n\t * The returned schema should be used as a schema directly:\n\t * ```typescript\n\t * const MyMap = factory.map(factory.number);\n\t * type MyMap = NodeFromSchema<typeof MyMap>;\n\t * ```\n\t * Or inline:\n\t * ```typescript\n\t * factory.object(\"Foo\", {myMap: factory.map(factory.number)});\n\t * ```\n\t * @privateRemarks\n\t * See note on list.\n\t */\n\tpublic map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(\n\t\tallowedTypes: T,\n\t): TreeNodeSchema<\n\t\t`${TScope}.Map<${string}>`,\n\t\tNodeKind.Map,\n\t\tTreeMapNode<T>,\n\t\tReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>,\n\t\ttrue\n\t>;\n\n\t/**\n\t * Define a {@link TreeNodeSchema} for a {@link TreeMapNodeBase}.\n\t *\n\t * @param name - Unique identifier for this schema within this factory's scope.\n\t *\n\t * @example\n\t * ```typescript\n\t * class NamedMap extends factory.map(\"name\", factory.number) {}\n\t * ```\n\t */\n\tpublic map<Name extends TName, const T extends ImplicitAllowedTypes>(\n\t\tname: Name,\n\t\tallowedTypes: T,\n\t): TreeNodeSchemaClass<\n\t\t`${TScope}.${Name}`,\n\t\tNodeKind.Map,\n\t\tTreeMapNode<T>,\n\t\tReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\ttrue\n\t>;\n\n\tpublic map<const T extends ImplicitAllowedTypes>(\n\t\tnameOrAllowedTypes: TName | ((T & TreeNodeSchema) | readonly TreeNodeSchema[]),\n\t\tallowedTypes?: T,\n\t): TreeNodeSchema<\n\t\t`${TScope}.${string}`,\n\t\tNodeKind.Map,\n\t\tTreeMapNode<T>,\n\t\tReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\ttrue\n\t> {\n\t\tif (allowedTypes === undefined) {\n\t\t\tconst types = nameOrAllowedTypes as (T & TreeNodeSchema) | readonly TreeNodeSchema[];\n\t\t\tconst fullName = structuralName(\"Map\", types);\n\t\t\treturn getOrCreate(\n\t\t\t\tthis.structuralTypes,\n\t\t\t\tfullName,\n\t\t\t\t() =>\n\t\t\t\t\tthis.namedMap(\n\t\t\t\t\t\tfullName as TName,\n\t\t\t\t\t\tnameOrAllowedTypes as T,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t) as TreeNodeSchema,\n\t\t\t) as TreeNodeSchemaClass<\n\t\t\t\t`${TScope}.${string}`,\n\t\t\t\tNodeKind.Map,\n\t\t\t\tTreeMapNode<T>,\n\t\t\t\tReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\t\t\ttrue\n\t\t\t>;\n\t\t}\n\t\treturn this.namedMap(nameOrAllowedTypes as TName, allowedTypes, true, true);\n\t}\n\n\t/**\n\t * Define a {@link TreeNodeSchema} for a {@link (TreeMapNode:interface)}.\n\t *\n\t * @param name - Unique identifier for this schema within this factory's scope.\n\t *\n\t * @remarks See remarks on {@link SchemaFactory.namedArray}.\n\t */\n\tpublic namedMap<\n\t\tName extends TName | string,\n\t\tconst T extends ImplicitAllowedTypes,\n\t\tconst ImplicitlyConstructable extends boolean,\n\t>(\n\t\tname: Name,\n\t\tallowedTypes: T,\n\t\tcustomizable: boolean,\n\t\timplicitlyConstructable: ImplicitlyConstructable,\n\t): TreeNodeSchemaClass<\n\t\t`${TScope}.${Name}`,\n\t\tNodeKind.Map,\n\t\tTreeMapNode<T>,\n\t\tReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\tImplicitlyConstructable\n\t> {\n\t\tclass schema extends this.nodeSchema(\n\t\t\tname,\n\t\t\tNodeKind.Map,\n\t\t\tallowedTypes,\n\t\t\timplicitlyConstructable,\n\t\t) {\n\t\t\tpublic constructor(\n\t\t\t\tinput: ReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\t\t) {\n\t\t\t\tsuper(input);\n\t\t\t\tif (isFlexTreeNode(input)) {\n\t\t\t\t\treturn createNodeProxy(\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tcustomizable,\n\t\t\t\t\t\tcustomizable ? this : undefined,\n\t\t\t\t\t) as schema;\n\t\t\t\t} else {\n\t\t\t\t\tconst flexSchema = getFlexSchema(this.constructor as TreeNodeSchema);\n\t\t\t\t\treturn createRawNodeProxy(\n\t\t\t\t\t\tflexSchema as MapNodeSchema,\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tcustomizable,\n\t\t\t\t\t\tcustomizable ? this : undefined,\n\t\t\t\t\t) as schema;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Setup map functionality\n\t\tObject.defineProperties(schema.prototype, mapStaticDispatchMap);\n\n\t\treturn schema as TreeNodeSchemaClass<\n\t\t\t`${TScope}.${Name}`,\n\t\t\tNodeKind.Map,\n\t\t\tTreeMapNode<T>,\n\t\t\tReadonlyMap<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\t\tImplicitlyConstructable\n\t\t>;\n\t}\n\n\t/**\n\t * Define a structurally typed {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.\n\t *\n\t * @remarks\n\t * The identifier for this List is defined as a function of the provided types.\n\t * It is still scoped to this SchemaFactory, but multiple calls with the same arguments will return the same schema object, providing somewhat structural typing.\n\t * This does not support recursive types.\n\t *\n\t * If using these structurally named lists, other types in this schema builder should avoid names of the form `List<${string}>`.\n\t *\n\t * @example\n\t * The returned schema should be used as a schema directly:\n\t * ```typescript\n\t * const MyList = factory.list(factory.number);\n\t * type MyList = NodeFromSchema<typeof MyList>;\n\t * ```\n\t * Or inline:\n\t * ```typescript\n\t * factory.object(\"Foo\", {myList: factory.list(factory.number)});\n\t * ```\n\t * @privateRemarks\n\t * The name produced at the type level here is not as specific as it could be, however doing type level sorting and escaping is a real mess.\n\t * There are cases where not having this full type provided will be less than ideal since TypeScript's structural types.\n\t * For example attempts to narrow unions of structural lists by name won't work.\n\t * Planned future changes to move to a class based schema system as well as factor function based node construction should mostly avoid these issues,\n\t * though there may still be some problematic cases even after that work is done.\n\t *\n\t * The return value is a class, but its the type is intentionally not specific enough to indicate it is a class.\n\t * This prevents callers of this from sub-classing it, which is unlikely to work well (due to the ease of accidentally giving two different calls o this different subclasses)\n\t * when working with structural typing.\n\t */\n\tpublic array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(\n\t\tallowedTypes: T,\n\t): TreeNodeSchema<\n\t\t`${TScope}.List<${string}>`,\n\t\tNodeKind.Array,\n\t\tTreeArrayNode<T>,\n\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\ttrue\n\t>;\n\n\t/**\n\t * Define (and add to this library) a {@link FieldNodeSchema} for a {@link (TreeArrayNode:interface)}.\n\t *\n\t * @param name - Unique identifier for this schema within this factory's scope.\n\t *\n\t * @example\n\t * ```typescript\n\t * class NamedList extends factory.list(\"name\", factory.number) {}\n\t * ```\n\t */\n\tpublic array<const Name extends TName, const T extends ImplicitAllowedTypes>(\n\t\tname: Name,\n\t\tallowedTypes: T,\n\t): TreeNodeSchemaClass<\n\t\t`${TScope}.${Name}`,\n\t\tNodeKind.Array,\n\t\tTreeArrayNode<T>,\n\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\ttrue\n\t>;\n\n\tpublic array<const T extends ImplicitAllowedTypes>(\n\t\tnameOrAllowedTypes: TName | ((T & TreeNodeSchema) | readonly TreeNodeSchema[]),\n\t\tallowedTypes?: T,\n\t): TreeNodeSchema<\n\t\t`${TScope}.${string}`,\n\t\tNodeKind.Array,\n\t\tTreeArrayNode<T>,\n\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\ttrue\n\t> {\n\t\tif (allowedTypes === undefined) {\n\t\t\tconst types = nameOrAllowedTypes as (T & TreeNodeSchema) | readonly TreeNodeSchema[];\n\t\t\tconst fullName = structuralName(\"List\", types);\n\t\t\treturn getOrCreate(this.structuralTypes, fullName, () =>\n\t\t\t\tthis.namedArray(fullName, nameOrAllowedTypes as T, false, true),\n\t\t\t) as TreeNodeSchemaClass<\n\t\t\t\t`${TScope}.${string}`,\n\t\t\t\tNodeKind.Array,\n\t\t\t\tTreeArrayNode<T>,\n\t\t\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\t\t\ttrue\n\t\t\t>;\n\t\t}\n\t\treturn this.namedArray(nameOrAllowedTypes as TName, allowedTypes, true, true);\n\t}\n\n\t/**\n\t * Define a {@link TreeNodeSchema} for a {@link (TreeArrayNode:interface)}.\n\t *\n\t * @param name - Unique identifier for this schema within this factory's scope.\n\t *\n\t * @remarks\n\t * This is not intended to be used directly, use the overload of `list` which takes a name instead.\n\t * This is only public to work around a compiler limitation.\n\t *\n\t * @privateRemarks\n\t * TODO: this should be made private or protected.\n\t * Doing so breaks due to:\n\t * `src/class-tree/schemaFactoryRecursive.ts:42:9 - error TS2310: Type 'List' recursively references itself as a base type.`\n\t * Once recursive APIs are better sorted out and integrated into this class, switch this back to private.\n\t */\n\tpublic namedArray<\n\t\tName extends TName | string,\n\t\tconst T extends ImplicitAllowedTypes,\n\t\tconst ImplicitlyConstructable extends boolean,\n\t>(\n\t\tname: Name,\n\t\tallowedTypes: T,\n\t\tcustomizable: boolean,\n\t\timplicitlyConstructable: ImplicitlyConstructable,\n\t): TreeNodeSchemaClass<\n\t\t`${TScope}.${Name}`,\n\t\tNodeKind.Array,\n\t\tTreeArrayNode<T>,\n\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\tImplicitlyConstructable\n\t> {\n\t\t// This class returns a proxy from its constructor to handle numeric indexing.\n\t\t// Alternatively it could extend a normal class which gets tons of numeric properties added.\n\t\tclass schema extends this.nodeSchema(\n\t\t\tname,\n\t\t\tNodeKind.Array,\n\t\t\tallowedTypes,\n\t\t\timplicitlyConstructable,\n\t\t) {\n\t\t\t[x: number]: TreeNodeFromImplicitAllowedTypes<T>;\n\t\t\tpublic get length(): number {\n\t\t\t\treturn getSequenceField(this as unknown as TreeArrayNode).length;\n\t\t\t}\n\t\t\tpublic constructor(input: Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>) {\n\t\t\t\tsuper(input);\n\t\t\t\tif (isFlexTreeNode(input)) {\n\t\t\t\t\treturn createNodeProxy(\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tcustomizable,\n\t\t\t\t\t\tcustomizable ? this : undefined,\n\t\t\t\t\t) as schema;\n\t\t\t\t} else {\n\t\t\t\t\tconst flexSchema = getFlexSchema(this.constructor as TreeNodeSchema);\n\t\t\t\t\treturn createRawNodeProxy(\n\t\t\t\t\t\tflexSchema as FieldNodeSchema,\n\t\t\t\t\t\t[...input],\n\t\t\t\t\t\tcustomizable,\n\t\t\t\t\t\tcustomizable ? this : undefined,\n\t\t\t\t\t) as schema;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Setup list functionality\n\t\tObject.defineProperties(schema.prototype, listPrototypeProperties);\n\n\t\treturn schema as unknown as TreeNodeSchemaClass<\n\t\t\t`${TScope}.${Name}`,\n\t\t\tNodeKind.Array,\n\t\t\tTreeArrayNode<T>,\n\t\t\tIterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,\n\t\t\tImplicitlyConstructable\n\t\t>;\n\t}\n\n\t/**\n\t * Make a field optional instead of the default which is required.\n\t */\n\tpublic optional<const T extends ImplicitAllowedTypes>(\n\t\tt: T,\n\t): FieldSchema<FieldKind.Optional, T> {\n\t\treturn new FieldSchema(FieldKind.Optional, t);\n\t}\n\n\t/**\n\t * Function which can be used for its compile time side-effects to tweak the evaluation order of recursive types to make them compile.\n\t * @remarks\n\t * Some related information in https://github.com/microsoft/TypeScript/issues/55758.\n\t *\n\t * Also be aware that code which relies on this tends to break VSCode's IntelliSense every time anything related to that code (even comments) is edited.\n\t * Running the command `TypeScript: Restart TS Server` with the schema file focused should fix it.\n\t * Sometimes this does not work: closing all open files except the schema before running the command can help.\n\t * Real compile errors (for example elsewhere in the file) can also cause the IntelliSense to not work correctly ever after `TypeScript: Restart TS Server`.\n\t *\n\t * Intellisense has also shown problems when schema files with recursive types are part of a cyclic file dependency.\n\t * Splitting the schema into its own file with minimal dependencies can help with this.\n\t *\n\t * Ensure `\"noImplicitAny\": true` is set in the `tsconfig.json`.\n\t * Without it, recursive types that are not working properly can infer `any` and give very non-type-safe results instead of erroring.\n\t *\n\t * @example\n\t * ```typescript\n\t * const factory = new SchemaFactory(\"example\");\n\t * const recursiveReference = () => RecursiveObject;\n\t * factory.fixRecursiveReference(recursiveReference);\n\t * export class RecursiveObject extends factory.object(\"exampleObject\", {\n\t * \trecursive: [recursiveReference],\n\t * }) {}\n\t * ```\n\t */\n\tpublic fixRecursiveReference<T extends AllowedTypes>(...types: T): void {}\n}\n\n// TODO: unify this with logic in getOrCreateNodeProxy\nexport function createTree<T extends TreeNodeSchema>(\n\tschema: T,\n\tdata: InsertableTypedNode<T> | FlexTreeNode,\n): NodeFromSchema<T> {\n\tif (typeof schema === \"function\") {\n\t\treturn new (schema as TreeNodeSchemaClass<\n\t\t\tany,\n\t\t\tany,\n\t\t\tany,\n\t\t\tInsertableTypedNode<T> | FlexTreeNode\n\t\t>)(data) as NodeFromSchema<T>;\n\t}\n\treturn (\n\t\tschema as TreeNodeSchemaNonClass<any, any, any, InsertableTypedNode<T> | FlexTreeNode>\n\t).create(data) as NodeFromSchema<T>;\n}\n\nexport function structuralName<const T extends string>(\n\tcollectionName: T,\n\tallowedTypes: TreeNodeSchema | readonly TreeNodeSchema[],\n): `${T}<${string}>` {\n\tlet inner: string;\n\tif (!isReadonlyArray(allowedTypes)) {\n\t\treturn structuralName(collectionName, [allowedTypes]);\n\t} else {\n\t\tconst names = allowedTypes.map((t): string => {\n\t\t\t// Ensure that lazy types (functions) don't slip through here.\n\t\t\tassert(!isLazy(t), 0x83d /* invalid type provided */);\n\t\t\treturn t.identifier;\n\t\t});\n\t\t// Ensure name is order independent\n\t\tnames.sort();\n\t\t// Ensure name can't have collisions by quoting and escaping any quotes in the names of types.\n\t\t// Using JSON is a simple way to accomplish this.\n\t\t// The outer `[]` around the result are also needed so that a single type name \"Any\" would not collide with the \"any\" case above.\n\t\tinner = JSON.stringify(names);\n\t}\n\treturn `${collectionName}<${inner}>`;\n}\n"]}
|