@fluidframework/tree 2.92.0 → 2.93.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/README.md +1 -1
- package/api-report/tree.alpha.api.md +57 -29
- package/api-report/tree.beta.api.md +41 -12
- package/api-report/tree.legacy.beta.api.md +41 -12
- package/dist/api.d.ts +6 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +21 -0
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/entrypoints/alpha.d.ts +1 -1
- package/dist/entrypoints/alpha.d.ts.map +1 -1
- package/dist/entrypoints/alpha.js +4 -4
- package/dist/entrypoints/alpha.js.map +1 -1
- package/dist/entrypoints/beta.d.ts +1 -1
- package/dist/entrypoints/beta.d.ts.map +1 -1
- package/dist/entrypoints/beta.js +3 -1
- package/dist/entrypoints/beta.js.map +1 -1
- package/dist/entrypoints/legacy.d.ts +1 -1
- package/dist/entrypoints/legacy.d.ts.map +1 -1
- package/dist/entrypoints/legacy.js +3 -1
- package/dist/entrypoints/legacy.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +2 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +13 -5
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +22 -18
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +1 -0
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +3 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/dist/feature-libraries/indexing/types.d.ts +4 -3
- package/dist/feature-libraries/indexing/types.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/types.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/serializableDomainSchema.d.ts +5 -5
- package/dist/serializableDomainSchema.d.ts.map +1 -1
- package/dist/serializableDomainSchema.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +6 -2
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/simple-tree/api/discrepancies.js +4 -1
- package/dist/simple-tree/api/discrepancies.js.map +1 -1
- package/dist/simple-tree/api/identifierIndex.d.ts +2 -2
- package/dist/simple-tree/api/identifierIndex.js +1 -1
- package/dist/simple-tree/api/identifierIndex.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -2
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +31 -2
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +17 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.d.ts +5 -5
- package/dist/simple-tree/api/simpleTreeIndex.js +1 -1
- package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +4 -1
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/treeAlpha.d.ts +70 -13
- package/dist/simple-tree/api/treeAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/treeAlpha.js.map +1 -1
- package/dist/simple-tree/api/treeChangeEvents.d.ts +1 -1
- package/dist/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts +60 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +68 -6
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/core/toStored.d.ts +7 -0
- package/dist/simple-tree/core/toStored.d.ts.map +1 -1
- package/dist/simple-tree/core/toStored.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +17 -3
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +114 -12
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts +6 -1
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js +3 -0
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +2 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +4 -3
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/index.d.ts +1 -1
- package/dist/simple-tree/node-kinds/map/index.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts +13 -0
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +6 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +6 -6
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
- package/dist/simple-tree/simpleSchema.d.ts +17 -0
- package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/simpleSchema.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +23 -1
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/tableSchema.d.ts +4 -5
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +12 -23
- package/dist/tableSchema.js.map +1 -1
- package/dist/text/textDomain.d.ts.map +1 -1
- package/dist/text/textDomain.js +27 -0
- package/dist/text/textDomain.js.map +1 -1
- package/dist/text/textDomainFormatted.d.ts +4 -4
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +2 -3
- package/dist/util/index.js.map +1 -1
- package/dist/util/utils.d.ts +0 -1
- package/dist/util/utils.d.ts.map +1 -1
- package/dist/util/utils.js +1 -6
- package/dist/util/utils.js.map +1 -1
- package/eslint.config.mts +1 -1
- package/lib/api.d.ts +6 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +21 -0
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/entrypoints/alpha.d.ts +1 -1
- package/lib/entrypoints/alpha.d.ts.map +1 -1
- package/lib/entrypoints/alpha.js +1 -1
- package/lib/entrypoints/alpha.js.map +1 -1
- package/lib/entrypoints/beta.d.ts +1 -1
- package/lib/entrypoints/beta.d.ts.map +1 -1
- package/lib/entrypoints/beta.js +1 -1
- package/lib/entrypoints/beta.js.map +1 -1
- package/lib/entrypoints/legacy.d.ts +1 -1
- package/lib/entrypoints/legacy.d.ts.map +1 -1
- package/lib/entrypoints/legacy.js +1 -1
- package/lib/entrypoints/legacy.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +2 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +13 -5
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +22 -18
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +1 -0
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +3 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/lib/feature-libraries/indexing/types.d.ts +4 -3
- package/lib/feature-libraries/indexing/types.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/types.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/serializableDomainSchema.d.ts +5 -5
- package/lib/serializableDomainSchema.d.ts.map +1 -1
- package/lib/serializableDomainSchema.js +4 -1
- package/lib/serializableDomainSchema.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +6 -2
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/simple-tree/api/discrepancies.js +4 -1
- package/lib/simple-tree/api/discrepancies.js.map +1 -1
- package/lib/simple-tree/api/identifierIndex.d.ts +2 -2
- package/lib/simple-tree/api/identifierIndex.js +1 -1
- package/lib/simple-tree/api/identifierIndex.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -2
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +31 -2
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +19 -3
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.d.ts +5 -5
- package/lib/simple-tree/api/simpleTreeIndex.js +1 -1
- package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +4 -1
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/treeAlpha.d.ts +70 -13
- package/lib/simple-tree/api/treeAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/treeAlpha.js.map +1 -1
- package/lib/simple-tree/api/treeChangeEvents.d.ts +1 -1
- package/lib/simple-tree/api/treeChangeEvents.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts +60 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +66 -6
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/core/toStored.d.ts +7 -0
- package/lib/simple-tree/core/toStored.d.ts.map +1 -1
- package/lib/simple-tree/core/toStored.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +17 -3
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +115 -13
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts +6 -1
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js +3 -0
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +2 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/index.d.ts +1 -1
- package/lib/simple-tree/node-kinds/map/index.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts +13 -0
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +6 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +6 -6
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
- package/lib/simple-tree/simpleSchema.d.ts +17 -0
- package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/simpleSchema.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +24 -2
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/tableSchema.d.ts +4 -5
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +12 -23
- package/lib/tableSchema.js.map +1 -1
- package/lib/text/textDomain.d.ts.map +1 -1
- package/lib/text/textDomain.js +29 -0
- package/lib/text/textDomain.js.map +1 -1
- package/lib/text/textDomainFormatted.d.ts +4 -4
- package/lib/tsdoc-metadata.json +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/utils.d.ts +0 -1
- package/lib/util/utils.d.ts.map +1 -1
- package/lib/util/utils.js +0 -1
- package/lib/util/utils.js.map +1 -1
- package/package.json +30 -35
- package/src/api.ts +10 -0
- package/src/core/tree/anchorSet.ts +25 -0
- package/src/entrypoints/alpha.ts +20 -16
- package/src/entrypoints/beta.ts +7 -1
- package/src/entrypoints/legacy.ts +8 -10
- package/src/feature-libraries/chunked-forest/chunkTree.ts +3 -2
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +42 -20
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +1 -0
- package/src/feature-libraries/indexing/types.ts +5 -3
- package/src/index.ts +4 -0
- package/src/packageVersion.ts +1 -1
- package/src/serializableDomainSchema.ts +6 -0
- package/src/shared-tree/treeAlpha.ts +6 -2
- package/src/simple-tree/api/discrepancies.ts +6 -1
- package/src/simple-tree/api/identifierIndex.ts +2 -2
- package/src/simple-tree/api/index.ts +4 -0
- package/src/simple-tree/api/schemaFactoryAlpha.ts +67 -2
- package/src/simple-tree/api/simpleTreeIndex.ts +6 -6
- package/src/simple-tree/api/storedSchema.ts +4 -1
- package/src/simple-tree/api/treeAlpha.ts +75 -12
- package/src/simple-tree/api/treeChangeEvents.ts +1 -1
- package/src/simple-tree/api/treeNodeApi.ts +101 -7
- package/src/simple-tree/core/toStored.ts +8 -0
- package/src/simple-tree/core/unhydratedFlexTree.ts +134 -10
- package/src/simple-tree/fieldSchema.ts +10 -0
- package/src/simple-tree/index.ts +5 -0
- package/src/simple-tree/node-kinds/index.ts +1 -0
- package/src/simple-tree/node-kinds/map/index.ts +1 -0
- package/src/simple-tree/node-kinds/map/mapNode.ts +20 -3
- package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +6 -6
- package/src/simple-tree/simpleSchema.ts +20 -0
- package/src/simple-tree/toStoredSchema.ts +28 -1
- package/src/tableSchema.ts +16 -28
- package/src/text/textDomain.ts +68 -1
- package/src/util/index.ts +0 -1
- package/src/util/utils.ts +0 -2
- package/.mocharc.customBenchmarks.cjs +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapNodeTypes.js","sourceRoot":"","sources":["../../../../src/simple-tree/node-kinds/map/mapNodeTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kDAA+C;AAgE/C;;GAEG;AACU,QAAA,aAAa,GAAG;IAC5B;;OAEG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAqB;QACzC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACQ,CAAC;AAEX;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,MAAsB;IACrD,OAAO,MAAM,CAAC,IAAI,KAAK,mBAAQ,CAAC,GAAG,CAAC;AACrC,CAAC;AAFD,0CAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { NodeKind } from \"../../core/index.js\";\nimport type {\n\tTreeNodeSchemaClass,\n\tTreeNodeSchema,\n\tTreeNodeSchemaNonClass,\n\tWithType,\n\tImplicitAllowedTypes,\n} from \"../../core/index.js\";\nimport type { SchemaType, SimpleMapNodeSchema } from \"../../simpleSchema.js\";\n\nimport type { MapNodeInsertableData,
|
|
1
|
+
{"version":3,"file":"mapNodeTypes.js","sourceRoot":"","sources":["../../../../src/simple-tree/node-kinds/map/mapNodeTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kDAA+C;AAgE/C;;GAEG;AACU,QAAA,aAAa,GAAG;IAC5B;;OAEG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAqB;QACzC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACQ,CAAC;AAEX;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,MAAsB;IACrD,OAAO,MAAM,CAAC,IAAI,KAAK,mBAAQ,CAAC,GAAG,CAAC;AACrC,CAAC;AAFD,0CAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { NodeKind } from \"../../core/index.js\";\nimport type {\n\tTreeNodeSchemaClass,\n\tTreeNodeSchema,\n\tTreeNodeSchemaNonClass,\n\tWithType,\n\tImplicitAllowedTypes,\n} from \"../../core/index.js\";\nimport type { SchemaType, SimpleMapNodeSchema } from \"../../simpleSchema.js\";\n\nimport type { MapNodeInsertableData, TreeMapNodeAlpha } from \"./mapNode.js\";\n\n/**\n * A schema for customizable {@link (TreeMapNodeAlpha:interface)}s.\n * @system @sealed @alpha\n */\nexport interface MapNodeCustomizableSchema<\n\tout TName extends string = string,\n\tin out T extends ImplicitAllowedTypes = ImplicitAllowedTypes,\n\tout ImplicitlyConstructable extends boolean = true,\n\tout TCustomMetadata = unknown,\n> extends TreeNodeSchemaClass<\n\t\t\tTName,\n\t\t\tNodeKind.Map,\n\t\t\tTreeMapNodeAlpha<T> & WithType<TName, NodeKind.Map, T>,\n\t\t\tMapNodeInsertableData<T>,\n\t\t\tImplicitlyConstructable,\n\t\t\tT,\n\t\t\tundefined,\n\t\t\tTCustomMetadata\n\t\t>,\n\t\tSimpleMapNodeSchema<SchemaType.View, TCustomMetadata> {}\n\n/**\n * A schema for POJO emulation mode {@link (TreeMapNodeAlpha:interface)}s.\n * @system @sealed @alpha\n */\nexport interface MapNodePojoEmulationSchema<\n\tout TName extends string = string,\n\tin out T extends ImplicitAllowedTypes = ImplicitAllowedTypes,\n\tout ImplicitlyConstructable extends boolean = true,\n\tout TCustomMetadata = unknown,\n> extends TreeNodeSchemaNonClass<\n\t\t\tTName,\n\t\t\tNodeKind.Map,\n\t\t\tTreeMapNodeAlpha<T> & WithType<TName, NodeKind.Map, T>,\n\t\t\tMapNodeInsertableData<T>,\n\t\t\tImplicitlyConstructable,\n\t\t\tT,\n\t\t\tundefined,\n\t\t\tTCustomMetadata\n\t\t>,\n\t\tSimpleMapNodeSchema<SchemaType.View, TCustomMetadata> {}\n\n/**\n * A schema for {@link (TreeMapNodeAlpha:interface)}s.\n * @privateRemarks\n * This could have generic arguments added and forwarded.\n * The expected use-cases for this don't need them however, and if they did want an argument it would probably be the allowed types;\n * perhaps if moving to an order independent way to pass generic arguments, adding support for them here would make sense.\n * @alpha\n */\nexport type MapNodeSchema = MapNodeCustomizableSchema | MapNodePojoEmulationSchema;\n\n/**\n * @alpha\n */\nexport const MapNodeSchema = {\n\t/**\n\t * instanceof-based narrowing support for MapNodeSchema in Javascript and TypeScript 5.3 or newer.\n\t */\n\t[Symbol.hasInstance](value: TreeNodeSchema): value is MapNodeSchema {\n\t\treturn isMapNodeSchema(value);\n\t},\n} as const;\n\n/**\n * Narrows a {@link (TreeNodeSchema:interface)} to an {@link (MapNodeSchema:interface)}.\n * @privateRemarks\n * If at some point we want to have internal only APIs for MapNodeSchema (like done for objects),\n * this can include those since its not the public facing API.\n */\nexport function isMapNodeSchema(schema: TreeNodeSchema): schema is MapNodeSchema {\n\treturn schema.kind === NodeKind.Map;\n}\n"]}
|
|
@@ -236,6 +236,23 @@ export interface SimpleFieldSchema<Type extends SchemaType = SchemaType> {
|
|
|
236
236
|
* Set via {@link FieldPropsAlpha.persistedMetadata}.
|
|
237
237
|
*/
|
|
238
238
|
readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
|
|
239
|
+
/**
|
|
240
|
+
* Indicates that this field is a {@link SchemaStaticsAlpha.stagedOptional | staged optional} field,
|
|
241
|
+
* allowing the view schema to be compatible with stored schema where the field is required (pre-upgrade) or optional (post-upgrade).
|
|
242
|
+
* New documents and schema upgrades will keep the field as required in the stored schema.
|
|
243
|
+
*
|
|
244
|
+
* `false` if this is a view schema field that is not staged optional.
|
|
245
|
+
* Absent (`undefined`) if derived from a stored schema (where staged optional has no meaning).
|
|
246
|
+
*
|
|
247
|
+
* `false` and `undefined` are both "not staged optional," but distinct: `false` means "view schema field, not staged
|
|
248
|
+
* optional" while `undefined` means "stored schema field." Consumers that need to check for staged optional should
|
|
249
|
+
* compare against `false` (e.g., `!== false`) rather than checking truthiness.
|
|
250
|
+
*
|
|
251
|
+
* @privateRemarks
|
|
252
|
+
* Analogous to {@link SimpleAllowedTypeAttributes.isStaged} for allowed types.
|
|
253
|
+
* Optional (`?`) so that existing code constructing `SimpleFieldSchema` object literals does not need to be updated.
|
|
254
|
+
*/
|
|
255
|
+
readonly isStagedOptional?: Type extends SchemaType.Stored ? undefined : false | SchemaUpgrade;
|
|
239
256
|
}
|
|
240
257
|
/**
|
|
241
258
|
* A simplified representation of a schema for a tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleSchema.d.ts","sourceRoot":"","sources":["../../src/simple-tree/simpleSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvE;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB,CACzC,GAAG,CAAC,IAAI,SAAS,UAAU,EAC3B,GAAG,CAAC,SAAS,SAAS,QAAQ,EAC9B,GAAG,CAAC,eAAe,GAAG,OAAO,CAC5B,SAAQ,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC;IACzD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,iBAAiB,EAAE,4BAA4B,GAAG,SAAS,CAAC;IAGrE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,UAAU,CAAC,GAC9E,CAAC,IAAI,SAAS,UAAU,CAAC,IAAI,GAC1B,OAAO,GACP;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CACvE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,IAAI,WAAW,CACjF,MAAM,EACN,2BAA2B,CAAC,IAAI,CAAC,CACjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB,CACtC,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,GAAG,CAAC,eAAe,GAAG,OAAO,CAC5B,SAAQ,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAC1E;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,QAAQ,CAAC,0BAA0B,EAAE,IAAI,SAAS,UAAU,CAAC,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;CACxF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,CAC5E,SAAQ,iBAAiB,CAAC,IAAI,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB,CACrC,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,GAAG,CAAC,eAAe,GAAG,OAAO,CAC5B,SAAQ,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IACzE;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;CACpF;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CACnC,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,GAAG,CAAC,eAAe,GAAG,OAAO,CAC5B,SAAQ,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IACvE;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;CACpF;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB,CACtC,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,GAAG,CAAC,eAAe,GAAG,OAAO,CAC5B,SAAQ,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAC1E;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;CACpF;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,CACzE,SAAQ,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACtD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,IAC9D,oBAAoB,CAAC,IAAI,CAAC,GAC1B,mBAAmB,CAAC,IAAI,CAAC,GACzB,qBAAqB,CAAC,IAAI,CAAC,GAC3B,sBAAsB,CAAC,IAAI,CAAC,GAC5B,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAEhC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,2BAA2B,CAAC,GAAG,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU;IACpF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,SAAS,UAAU,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;CACtF;AAED;;;;GAIG;AACH,oBAAY,UAAU;IACrB;;OAEG;IACH,MAAM,IAAA;IACN;;OAEG;IACH,IAAI,IAAA;CACJ;AACD;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU;IACtE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpF;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GACrC,CAAC,IAAI,SAAS,UAAU,CAAC,IAAI,GAC1B,OAAO,GACP;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAEvE;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"simpleSchema.d.ts","sourceRoot":"","sources":["../../src/simple-tree/simpleSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleSchema.js","sourceRoot":"","sources":["../../src/simple-tree/simpleSchema.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAqOH;;;;GAIG;AACH,IAAY,UASX;AATD,WAAY,UAAU;IACrB;;OAEG;IACH,+CAAM,CAAA;IACN;;OAEG;IACH,2CAAI,CAAA;AACL,CAAC,EATW,UAAU,0BAAV,UAAU,QASrB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ValueSchema } from \"../core/index.js\";\nimport type { JsonCompatibleReadOnlyObject } from \"../util/index.js\";\n\nimport type { NodeKind, SchemaUpgrade, SimpleNodeSchemaBase } from \"./core/index.js\";\nimport type { FieldKind, FieldSchemaMetadata } from \"./fieldSchema.js\";\n\n/*\n * TODO:\n * - Customize their JSON serialization to use these formats or provide some other serialization scheme.\n */\n\n/**\n * A {@link SimpleNodeSchema} containing fields for alpha features.\n *\n * @system\n * @alpha\n * @sealed\n */\nexport interface SimpleNodeSchemaBaseAlpha<\n\tout Type extends SchemaType,\n\tout TNodeKind extends NodeKind,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBase<TNodeKind, TCustomMetadata> {\n\t/**\n\t * Persisted metadata for this node schema.\n\t * @remarks\n\t * While this can be stored in the document, not all versions / configurations will do so.\n\t * Additionally, this is not part of {@link TreeView.compatibility|schema compatibility}, so different clients\n\t * (even within the same collaborative session) may see different `persistedMetadata` for the same node.\n\t * Specified using {@link NodeSchemaOptionsAlpha.persistedMetadata}.\n\t * @privateRemarks\n\t * How/when this gets updated in documents,\n\t * and how to read it from documents should be documented here when this feature is more mature and these questions have good answers.\n\t * If this does end up getting reflected in some compatibility value, that should also be documented.\n\t */\n\treadonly persistedMetadata: JsonCompatibleReadOnlyObject | undefined;\n\n\t// This overrides the type from SimpleNodeSchemaBase to make it more specific. When stabilized, this should be moved to the base interface.\n\treadonly metadata: SimpleNodeSchemaBase<TNodeKind, TCustomMetadata>[\"metadata\"] &\n\t\t(Type extends SchemaType.View\n\t\t\t? unknown\n\t\t\t: { readonly custom?: undefined; readonly description?: undefined });\n}\n\n/**\n * {@link AllowedTypes} for a location in the tree, expressed for use in the Simple Schema layer of abstraction.\n *\n * @remarks\n * Refers to the types by identifier.\n * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n */\nexport type SimpleAllowedTypes<Type extends SchemaType = SchemaType> = ReadonlyMap<\n\tstring,\n\tSimpleAllowedTypeAttributes<Type>\n>;\n\n/**\n * A {@link SimpleNodeSchema} for an object node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleObjectNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Object, TCustomMetadata> {\n\t/**\n\t * Schemas for each of the object's fields, keyed off of schema's keys.\n\t * @remarks\n\t * The keys are the property keys if known, otherwise they are the stored keys.\n\t * Use {@link SimpleObjectFieldSchema.storedKey} to get the stored key.\n\t * @privateRemarks\n\t * TODO: Provide and link a way to translate from stored keys to the property keys.\n\t * TODO: Consider adding `storedKeysToFields` or something similar to reduce confusion,\n\t * especially if/when TreeNodeSchema for objects provide more maps.\n\t */\n\treadonly fields: ReadonlyMap<string, SimpleObjectFieldSchema<Type>>;\n\n\t/**\n\t * Whether the object node allows unknown optional fields.\n\t *\n\t * @see {@link ObjectSchemaOptions.allowUnknownOptionalFields} for the API where this field is set as part of authoring a schema.\n\t *\n\t * @remarks Only populated for view schemas, undefined otherwise. Relevant for compatibility checking scenarios.\n\t */\n\treadonly allowUnknownOptionalFields: Type extends SchemaType.View ? boolean : undefined;\n}\n\n/**\n * A {@link SimpleFieldSchema} for an {@link SimpleObjectNodeSchema} field.\n * @remarks\n * The only other case fields are uses in the root schema.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleObjectFieldSchema<Type extends SchemaType = SchemaType>\n\textends SimpleFieldSchema<Type> {\n\t/**\n\t * The stored key of the field.\n\t * @remarks\n\t * See {@link FieldProps.key} for more information.\n\t */\n\treadonly storedKey: string;\n}\n\n/**\n * A {@link SimpleNodeSchema} for an array node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleArrayNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Array, TCustomMetadata> {\n\t/**\n\t * The types allowed in the array.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n}\n\n/**\n * A {@link SimpleNodeSchema} for a map node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleMapNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Map, TCustomMetadata> {\n\t/**\n\t * The types allowed as values in the map.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n}\n\n/**\n * A {@link SimpleNodeSchema} for a map node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleRecordNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Record, TCustomMetadata> {\n\t/**\n\t * The types allowed as values in the record.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n}\n\n/**\n * A {@link SimpleNodeSchema} for a leaf node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleLeafNodeSchema<Type extends SchemaType = SchemaType>\n\textends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Leaf> {\n\t/**\n\t * The kind of leaf node.\n\t */\n\treadonly leafKind: ValueSchema;\n}\n\n/**\n * A simple, shallow representation of a schema for a node.\n *\n * @remarks This definition is incomplete, and references child types by identifiers.\n * To be useful, this generally needs to be used as a part of a complete {@link SimpleTreeSchema}, which\n * contains backing {@link SimpleTreeSchema.definitions} for each referenced identifier.\n *\n * Note that, as documented on {@link NodeKind}, more kinds of nodes may be added,\n * and therefore code should not assume that switching over all these cases can be done exhaustively.\n * @privateRemarks\n * Because of the above mentioned extensibility of node kinds, does it make sense to stabilize this?\n *\n * @alpha\n */\nexport type SimpleNodeSchema<Type extends SchemaType = SchemaType> =\n\t| SimpleLeafNodeSchema<Type>\n\t| SimpleMapNodeSchema<Type>\n\t| SimpleArrayNodeSchema<Type>\n\t| SimpleObjectNodeSchema<Type>\n\t| SimpleRecordNodeSchema<Type>;\n\n/**\n * Information about allowed types under a field.\n *\n * @privateRemarks\n * Variance annotations should not be used to change type checking: they are only used by the compiler as an optimization hint.\n * However in this case, for unknown reasons, TypeScript makes this interface bi-variant without `out` on `Type`.\n * That is bad as it allows schema of unknown type to be used as stored or view without errors.\n * To mitigate this, `out` is added to make this interface properly covariant in `Type`.\n * This may not be robust if TypeScript checks this type structurally,\n * but whatever bug causes the bi-variant likely does not occur in that case anyway.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleAllowedTypeAttributes<out Type extends SchemaType = SchemaType> {\n\t/**\n\t * {@link SchemaUpgrade} if this schema is included as a {@link SchemaStaticsBeta.staged | staged} schema upgrade,\n\t * allowing the view schema be compatible with stored schema with (post upgrade) or without it (pre-upgrade).\n\t * New documents and schema upgrades will omit any staged schema.\n\t *\n\t * Undefined if derived from a stored schema.\n\t *\n\t * @privateRemarks\n\t * The false and undefined cases here are a bit odd.\n\t * This API should be reevaluated before stabilizing.\n\t */\n\treadonly isStaged: Type extends SchemaType.Stored ? undefined : false | SchemaUpgrade;\n}\n\n/**\n * The type of simple schema being represented.\n *\n * @alpha\n */\nexport enum SchemaType {\n\t/**\n\t * The schema is a stored schema, meaning it expresses exactly what could be validly persisted in a SharedTree.\n\t */\n\tStored,\n\t/**\n\t * The schema is a view schema, meaning it expresses how to view data which is using a compatible stored schema.\n\t */\n\tView,\n}\n/**\n * A simple, shallow representation of a schema for a field.\n *\n * @remarks This definition is incomplete, and references child types by identifiers.\n * To be useful, this generally needs to be used as a part of a complete {@link SimpleTreeSchema}, which\n * contains backing {@link SimpleTreeSchema.definitions} for each referenced identifier.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleFieldSchema<Type extends SchemaType = SchemaType> {\n\t/**\n\t * The kind of tree field.\n\t */\n\treadonly kind: FieldKind;\n\n\t/**\n\t * Information about the allowed types under this field.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n\n\t/**\n\t * Metadata for this field schema, see {@link FieldSchemaMetadata}.\n\t * @remarks\n\t * As this is the non-persisted portion of the metadata, it is forced to store only undefined in the `SchemaType.Stored` case.\n\t */\n\treadonly metadata: FieldSchemaMetadata &\n\t\t(Type extends SchemaType.View\n\t\t\t? unknown\n\t\t\t: { readonly custom?: undefined; readonly description?: undefined });\n\n\t/**\n\t * Persisted metadata for this field schema.\n\t * @remarks\n\t * Like {@link SimpleNodeSchemaBaseAlpha.persistedMetadata} but for fields.\n\t * Set via {@link FieldPropsAlpha.persistedMetadata}.\n\t */\n\treadonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;\n}\n\n/**\n * A simplified representation of a schema for a tree.\n *\n * @remarks Contains the complete set of schema {@link SimpleTreeSchema.definitions} required to resolve references,\n * which are represented inline with identifiers.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleTreeSchema<Type extends SchemaType = SchemaType> {\n\t/**\n\t * The tree field representing the root of the tree.\n\t */\n\treadonly root: SimpleFieldSchema<Type>;\n\t/**\n\t * The complete set of node schema definitions recursively referenced by the tree's {@link SimpleTreeSchema.root}.\n\t *\n\t * @remarks\n\t * The keys are the schemas' {@link TreeNodeSchemaCore.identifier | identifiers}.\n\t *\n\t * Information about if a schema is {@link SchemaStaticsBeta.staged | staged} or not is not available as the \"Simple Schema\" layer of abstraction: they are included unconditionally.\n\t * Options for filtering out staged schemas from view schema are available in {@link extractPersistedSchema}.\n\t */\n\treadonly definitions: ReadonlyMap<string, SimpleNodeSchema<Type>>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"simpleSchema.js","sourceRoot":"","sources":["../../src/simple-tree/simpleSchema.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAqOH;;;;GAIG;AACH,IAAY,UASX;AATD,WAAY,UAAU;IACrB;;OAEG;IACH,+CAAM,CAAA;IACN;;OAEG;IACH,2CAAI,CAAA;AACL,CAAC,EATW,UAAU,0BAAV,UAAU,QASrB","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ValueSchema } from \"../core/index.js\";\nimport type { JsonCompatibleReadOnlyObject } from \"../util/index.js\";\n\nimport type { NodeKind, SchemaUpgrade, SimpleNodeSchemaBase } from \"./core/index.js\";\nimport type { FieldKind, FieldSchemaMetadata } from \"./fieldSchema.js\";\n\n/*\n * TODO:\n * - Customize their JSON serialization to use these formats or provide some other serialization scheme.\n */\n\n/**\n * A {@link SimpleNodeSchema} containing fields for alpha features.\n *\n * @system\n * @alpha\n * @sealed\n */\nexport interface SimpleNodeSchemaBaseAlpha<\n\tout Type extends SchemaType,\n\tout TNodeKind extends NodeKind,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBase<TNodeKind, TCustomMetadata> {\n\t/**\n\t * Persisted metadata for this node schema.\n\t * @remarks\n\t * While this can be stored in the document, not all versions / configurations will do so.\n\t * Additionally, this is not part of {@link TreeView.compatibility|schema compatibility}, so different clients\n\t * (even within the same collaborative session) may see different `persistedMetadata` for the same node.\n\t * Specified using {@link NodeSchemaOptionsAlpha.persistedMetadata}.\n\t * @privateRemarks\n\t * How/when this gets updated in documents,\n\t * and how to read it from documents should be documented here when this feature is more mature and these questions have good answers.\n\t * If this does end up getting reflected in some compatibility value, that should also be documented.\n\t */\n\treadonly persistedMetadata: JsonCompatibleReadOnlyObject | undefined;\n\n\t// This overrides the type from SimpleNodeSchemaBase to make it more specific. When stabilized, this should be moved to the base interface.\n\treadonly metadata: SimpleNodeSchemaBase<TNodeKind, TCustomMetadata>[\"metadata\"] &\n\t\t(Type extends SchemaType.View\n\t\t\t? unknown\n\t\t\t: { readonly custom?: undefined; readonly description?: undefined });\n}\n\n/**\n * {@link AllowedTypes} for a location in the tree, expressed for use in the Simple Schema layer of abstraction.\n *\n * @remarks\n * Refers to the types by identifier.\n * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n */\nexport type SimpleAllowedTypes<Type extends SchemaType = SchemaType> = ReadonlyMap<\n\tstring,\n\tSimpleAllowedTypeAttributes<Type>\n>;\n\n/**\n * A {@link SimpleNodeSchema} for an object node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleObjectNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Object, TCustomMetadata> {\n\t/**\n\t * Schemas for each of the object's fields, keyed off of schema's keys.\n\t * @remarks\n\t * The keys are the property keys if known, otherwise they are the stored keys.\n\t * Use {@link SimpleObjectFieldSchema.storedKey} to get the stored key.\n\t * @privateRemarks\n\t * TODO: Provide and link a way to translate from stored keys to the property keys.\n\t * TODO: Consider adding `storedKeysToFields` or something similar to reduce confusion,\n\t * especially if/when TreeNodeSchema for objects provide more maps.\n\t */\n\treadonly fields: ReadonlyMap<string, SimpleObjectFieldSchema<Type>>;\n\n\t/**\n\t * Whether the object node allows unknown optional fields.\n\t *\n\t * @see {@link ObjectSchemaOptions.allowUnknownOptionalFields} for the API where this field is set as part of authoring a schema.\n\t *\n\t * @remarks Only populated for view schemas, undefined otherwise. Relevant for compatibility checking scenarios.\n\t */\n\treadonly allowUnknownOptionalFields: Type extends SchemaType.View ? boolean : undefined;\n}\n\n/**\n * A {@link SimpleFieldSchema} for an {@link SimpleObjectNodeSchema} field.\n * @remarks\n * The only other case fields are uses in the root schema.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleObjectFieldSchema<Type extends SchemaType = SchemaType>\n\textends SimpleFieldSchema<Type> {\n\t/**\n\t * The stored key of the field.\n\t * @remarks\n\t * See {@link FieldProps.key} for more information.\n\t */\n\treadonly storedKey: string;\n}\n\n/**\n * A {@link SimpleNodeSchema} for an array node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleArrayNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Array, TCustomMetadata> {\n\t/**\n\t * The types allowed in the array.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n}\n\n/**\n * A {@link SimpleNodeSchema} for a map node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleMapNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Map, TCustomMetadata> {\n\t/**\n\t * The types allowed as values in the map.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n}\n\n/**\n * A {@link SimpleNodeSchema} for a map node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleRecordNodeSchema<\n\tType extends SchemaType = SchemaType,\n\tout TCustomMetadata = unknown,\n> extends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Record, TCustomMetadata> {\n\t/**\n\t * The types allowed as values in the record.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n}\n\n/**\n * A {@link SimpleNodeSchema} for a leaf node.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleLeafNodeSchema<Type extends SchemaType = SchemaType>\n\textends SimpleNodeSchemaBaseAlpha<Type, NodeKind.Leaf> {\n\t/**\n\t * The kind of leaf node.\n\t */\n\treadonly leafKind: ValueSchema;\n}\n\n/**\n * A simple, shallow representation of a schema for a node.\n *\n * @remarks This definition is incomplete, and references child types by identifiers.\n * To be useful, this generally needs to be used as a part of a complete {@link SimpleTreeSchema}, which\n * contains backing {@link SimpleTreeSchema.definitions} for each referenced identifier.\n *\n * Note that, as documented on {@link NodeKind}, more kinds of nodes may be added,\n * and therefore code should not assume that switching over all these cases can be done exhaustively.\n * @privateRemarks\n * Because of the above mentioned extensibility of node kinds, does it make sense to stabilize this?\n *\n * @alpha\n */\nexport type SimpleNodeSchema<Type extends SchemaType = SchemaType> =\n\t| SimpleLeafNodeSchema<Type>\n\t| SimpleMapNodeSchema<Type>\n\t| SimpleArrayNodeSchema<Type>\n\t| SimpleObjectNodeSchema<Type>\n\t| SimpleRecordNodeSchema<Type>;\n\n/**\n * Information about allowed types under a field.\n *\n * @privateRemarks\n * Variance annotations should not be used to change type checking: they are only used by the compiler as an optimization hint.\n * However in this case, for unknown reasons, TypeScript makes this interface bi-variant without `out` on `Type`.\n * That is bad as it allows schema of unknown type to be used as stored or view without errors.\n * To mitigate this, `out` is added to make this interface properly covariant in `Type`.\n * This may not be robust if TypeScript checks this type structurally,\n * but whatever bug causes the bi-variant likely does not occur in that case anyway.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleAllowedTypeAttributes<out Type extends SchemaType = SchemaType> {\n\t/**\n\t * {@link SchemaUpgrade} if this schema is included as a {@link SchemaStaticsBeta.staged | staged} schema upgrade,\n\t * allowing the view schema be compatible with stored schema with (post upgrade) or without it (pre-upgrade).\n\t * New documents and schema upgrades will omit any staged schema.\n\t *\n\t * Undefined if derived from a stored schema.\n\t *\n\t * @privateRemarks\n\t * The false and undefined cases here are a bit odd.\n\t * This API should be reevaluated before stabilizing.\n\t */\n\treadonly isStaged: Type extends SchemaType.Stored ? undefined : false | SchemaUpgrade;\n}\n\n/**\n * The type of simple schema being represented.\n *\n * @alpha\n */\nexport enum SchemaType {\n\t/**\n\t * The schema is a stored schema, meaning it expresses exactly what could be validly persisted in a SharedTree.\n\t */\n\tStored,\n\t/**\n\t * The schema is a view schema, meaning it expresses how to view data which is using a compatible stored schema.\n\t */\n\tView,\n}\n/**\n * A simple, shallow representation of a schema for a field.\n *\n * @remarks This definition is incomplete, and references child types by identifiers.\n * To be useful, this generally needs to be used as a part of a complete {@link SimpleTreeSchema}, which\n * contains backing {@link SimpleTreeSchema.definitions} for each referenced identifier.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleFieldSchema<Type extends SchemaType = SchemaType> {\n\t/**\n\t * The kind of tree field.\n\t */\n\treadonly kind: FieldKind;\n\n\t/**\n\t * Information about the allowed types under this field.\n\t *\n\t * @remarks Refers to the types by identifier.\n\t * A {@link SimpleTreeSchema} is needed to resolve these identifiers to their schema {@link SimpleTreeSchema.definitions}.\n\t */\n\treadonly simpleAllowedTypes: ReadonlyMap<string, SimpleAllowedTypeAttributes<Type>>;\n\n\t/**\n\t * Metadata for this field schema, see {@link FieldSchemaMetadata}.\n\t * @remarks\n\t * As this is the non-persisted portion of the metadata, it is forced to store only undefined in the `SchemaType.Stored` case.\n\t */\n\treadonly metadata: FieldSchemaMetadata &\n\t\t(Type extends SchemaType.View\n\t\t\t? unknown\n\t\t\t: { readonly custom?: undefined; readonly description?: undefined });\n\n\t/**\n\t * Persisted metadata for this field schema.\n\t * @remarks\n\t * Like {@link SimpleNodeSchemaBaseAlpha.persistedMetadata} but for fields.\n\t * Set via {@link FieldPropsAlpha.persistedMetadata}.\n\t */\n\treadonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;\n\n\t/**\n\t * Indicates that this field is a {@link SchemaStaticsAlpha.stagedOptional | staged optional} field,\n\t * allowing the view schema to be compatible with stored schema where the field is required (pre-upgrade) or optional (post-upgrade).\n\t * New documents and schema upgrades will keep the field as required in the stored schema.\n\t *\n\t * `false` if this is a view schema field that is not staged optional.\n\t * Absent (`undefined`) if derived from a stored schema (where staged optional has no meaning).\n\t *\n\t * `false` and `undefined` are both \"not staged optional,\" but distinct: `false` means \"view schema field, not staged\n\t * optional\" while `undefined` means \"stored schema field.\" Consumers that need to check for staged optional should\n\t * compare against `false` (e.g., `!== false`) rather than checking truthiness.\n\t *\n\t * @privateRemarks\n\t * Analogous to {@link SimpleAllowedTypeAttributes.isStaged} for allowed types.\n\t * Optional (`?`) so that existing code constructing `SimpleFieldSchema` object literals does not need to be updated.\n\t */\n\treadonly isStagedOptional?: Type extends SchemaType.Stored\n\t\t? undefined\n\t\t: false | SchemaUpgrade;\n}\n\n/**\n * A simplified representation of a schema for a tree.\n *\n * @remarks Contains the complete set of schema {@link SimpleTreeSchema.definitions} required to resolve references,\n * which are represented inline with identifiers.\n *\n * @alpha\n * @sealed\n */\nexport interface SimpleTreeSchema<Type extends SchemaType = SchemaType> {\n\t/**\n\t * The tree field representing the root of the tree.\n\t */\n\treadonly root: SimpleFieldSchema<Type>;\n\t/**\n\t * The complete set of node schema definitions recursively referenced by the tree's {@link SimpleTreeSchema.root}.\n\t *\n\t * @remarks\n\t * The keys are the schemas' {@link TreeNodeSchemaCore.identifier | identifiers}.\n\t *\n\t * Information about if a schema is {@link SchemaStaticsBeta.staged | staged} or not is not available as the \"Simple Schema\" layer of abstraction: they are included unconditionally.\n\t * Options for filtering out staged schemas from view schema are available in {@link extractPersistedSchema}.\n\t */\n\treadonly definitions: ReadonlyMap<string, SimpleNodeSchema<Type>>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toStoredSchema.d.ts","sourceRoot":"","sources":["../../src/simple-tree/toStoredSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAON,KAAK,qBAAqB,EAE1B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAErB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS/E,OAAO,EACN,YAAY,
|
|
1
|
+
{"version":3,"file":"toStoredSchema.d.ts","sourceRoot":"","sources":["../../src/simple-tree/toStoredSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAON,KAAK,qBAAqB,EAE1B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAErB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS/E,OAAO,EACN,YAAY,EAGZ,SAAS,EACT,KAAK,iCAAiC,EACtC,KAAK,qCAAqC,EAE1C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAwB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,KAAK,EACX,UAAU,EAEV,kBAAkB,EAElB,iBAAiB,EAGjB,gBAAgB,EAGhB,gBAAgB,EAChB,MAAM,mBAAmB,CAAC;AAa3B;;;;;GAKG;AACH,eAAO,MAAM,wCAAwC,EAAE,qCAIrD,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uCAAuC,EAAE,qCAGrD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAE3E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAE3E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,uCAA0C,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,qCAAqC,GAC5C,gBAAgB,CAOlB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EACzC,OAAO,EAAE,qCAAqC,GAC5C,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvC;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAC3C,OAAO,EAAE,YAAY,GACnB,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,UAAU,EACzD,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,SAAS,GAChB,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAEvB;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iCAAiC,GACxC,gBAAgB,CAAC;AAwDpB;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC/C,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,GAC7C,gBAAgB,CAQlB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,GAC1C,qBAAqB,CAKvB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,SAAS,EAAE,aAAa,CAOjE,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,GACzC,oBAAoB,CAiCtB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EACzC,OAAO,EAAE,qCAAqC,GAC5C,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvC;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iCAAiC,GACxC,gBAAgB,CAAC;AAoEpB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,iCAAiC,GACxC,kBAAkB,CAUpB"}
|
|
@@ -26,6 +26,7 @@ const viewToStoredCache = new WeakMap();
|
|
|
26
26
|
*/
|
|
27
27
|
exports.restrictiveStoredSchemaGenerationOptions = {
|
|
28
28
|
includeStaged: () => false,
|
|
29
|
+
includeStagedOptional: () => false,
|
|
29
30
|
};
|
|
30
31
|
/**
|
|
31
32
|
* Maximally permissive transformation of a view to stored schema.
|
|
@@ -41,6 +42,7 @@ exports.restrictiveStoredSchemaGenerationOptions = {
|
|
|
41
42
|
*/
|
|
42
43
|
exports.permissiveStoredSchemaGenerationOptions = {
|
|
43
44
|
includeStaged: () => true,
|
|
45
|
+
includeStagedOptional: () => true,
|
|
44
46
|
};
|
|
45
47
|
/**
|
|
46
48
|
* Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema} for use in schema upgrades.
|
|
@@ -281,8 +283,11 @@ function filterAllowedTypes(schema, options) {
|
|
|
281
283
|
}
|
|
282
284
|
exports.filterAllowedTypes = filterAllowedTypes;
|
|
283
285
|
function filterFieldAllowedTypes(f, options) {
|
|
286
|
+
const isStagedOptional = preservesViewData(options) && f.isStagedOptional instanceof index_js_4.SchemaUpgrade
|
|
287
|
+
? f.isStagedOptional
|
|
288
|
+
: undefined;
|
|
284
289
|
return {
|
|
285
|
-
kind: f
|
|
290
|
+
kind: getStoredFieldKind(f, options),
|
|
286
291
|
persistedMetadata: f.persistedMetadata,
|
|
287
292
|
metadata: preservesViewData(options)
|
|
288
293
|
? {
|
|
@@ -291,8 +296,25 @@ function filterFieldAllowedTypes(f, options) {
|
|
|
291
296
|
}
|
|
292
297
|
: {},
|
|
293
298
|
simpleAllowedTypes: filterAllowedTypes(f.simpleAllowedTypes, options),
|
|
299
|
+
...(isStagedOptional === undefined ? {} : { isStagedOptional }),
|
|
294
300
|
};
|
|
295
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Returns the field kind to use in the stored schema for the given view field schema.
|
|
304
|
+
* @remarks
|
|
305
|
+
* For {@link SchemaFactoryAlpha.stagedOptional | staged optional} fields, the stored field kind is Required
|
|
306
|
+
* when the staged optional is not being included (i.e., restrictive options).
|
|
307
|
+
*/
|
|
308
|
+
function getStoredFieldKind(f, options) {
|
|
309
|
+
if (!isStoredFromView(options)) {
|
|
310
|
+
return f.kind;
|
|
311
|
+
}
|
|
312
|
+
const { isStagedOptional } = f;
|
|
313
|
+
if (isStagedOptional === undefined || isStagedOptional === false)
|
|
314
|
+
return f.kind;
|
|
315
|
+
// isStagedOptional is a SchemaUpgrade — use includeStagedOptional to decide the stored kind.
|
|
316
|
+
return options.includeStagedOptional(isStagedOptional) ? f.kind : fieldSchema_js_1.FieldKind.Required;
|
|
317
|
+
}
|
|
296
318
|
/**
|
|
297
319
|
* Converts a stored {@link SimpleAllowedTypes} to a {@link TreeTypeSet}.
|
|
298
320
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toStoredSchema.js","sourceRoot":"","sources":["../../src/simple-tree/toStoredSchema.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 {\n\tunreachableCase,\n\tfail,\n\ttransformMapValues,\n\tassert,\n} from \"@fluidframework/core-utils/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport {\n\tEmptyKey,\n\tLeafNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tObjectNodeStoredSchema,\n\ttype FieldKey,\n\ttype FieldKindIdentifier,\n\ttype TreeFieldStoredSchema,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeNodeStoredSchema,\n\ttype TreeStoredSchema,\n\ttype TreeTypeSet,\n} from \"../core/index.js\";\nimport { FieldKinds, type FlexFieldKind } from \"../feature-libraries/index.js\";\nimport {\n\tbrand,\n\tfilterIterable,\n\tgetOrCreate,\n\tmapIterable,\n\ttype JsonCompatibleReadOnlyObject,\n} from \"../util/index.js\";\n\nimport {\n\tExpectStored,\n\tNodeKind,\n\tUnchanged,\n\ttype SimpleSchemaTransformationOptions,\n\ttype StoredFromViewSchemaGenerationOptions,\n\ttype StoredSchemaGenerationOptions,\n} from \"./core/index.js\";\nimport { FieldKind, normalizeFieldSchema, type ImplicitFieldSchema } from \"./fieldSchema.js\";\nimport type {\n\tSchemaType,\n\tSimpleAllowedTypeAttributes,\n\tSimpleAllowedTypes,\n\tSimpleArrayNodeSchema,\n\tSimpleFieldSchema,\n\tSimpleLeafNodeSchema,\n\tSimpleMapNodeSchema,\n\tSimpleNodeSchema,\n\tSimpleObjectNodeSchema,\n\tSimpleRecordNodeSchema,\n\tSimpleTreeSchema,\n} from \"./simpleSchema.js\";\nimport { createTreeSchema } from \"./treeSchema.js\";\n\n// TODO: this file, src/simple-tree/api/storedSchema.ts and src/simple-tree/core/toStored.ts should be refactored to group the logic more logically.\n// The content of src/simple-tree/api/storedSchema.ts should probably removed from the API surface, replaced by simple schema snapshotting APIs.\n// The logic from this file for converting stored-simple-schema to the persisted format can be moved to its own file.\n// The simple-schema related logic from this file and src/simple-tree/core/toStored.ts can be unified and `toStoredSchema` and its other ImplicitFieldSchema consuming variants should probably be removed in favor of acting on TreeSchema and SimpleTreeSchema directly.\n\nconst viewToStoredCache = new WeakMap<\n\tStoredFromViewSchemaGenerationOptions,\n\tWeakMap<ImplicitFieldSchema, TreeStoredSchema>\n>();\n\n/**\n * Maximally restrictive transformation of a view to stored schema.\n * @remarks\n * This should only be used when the intent is to produce a stored schema is as restrictive as possible while still being compatible with the input view schema.\n * This is typically used for cases where backwards compatibility with past versions of an application is required, like {@link toUpgradeSchema} or {@link toInitialSchema}.\n */\nexport const restrictiveStoredSchemaGenerationOptions: StoredFromViewSchemaGenerationOptions =\n\t{\n\t\tincludeStaged: () => false,\n\t};\n\n/**\n * Maximally permissive transformation of a view to stored schema.\n * @remarks\n * This should only be used when the intent is to produce a stored schema which allows as much as possible while still being compatible with the input view schema.\n * This is typically used for cases where forwards compatibility with future versions of an application is required, like {@link toUnhydratedSchema}.\n *\n * This is unable to include unknown optional fields in the output, which makes it not truly maximally permissive.\n *\n * TODO: {@link StoredFromViewSchemaGenerationOptions} could be updated to allow a way to inject extra optional fields.\n * If done, then this could take in an existing stored schema, and attempt to generate a valid superset.\n * This could be useful to use as the schema for unhydrated content cloned from hydrated content.\n */\nexport const permissiveStoredSchemaGenerationOptions: StoredFromViewSchemaGenerationOptions = {\n\tincludeStaged: () => true,\n};\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema} for use in schema upgrades.\n *\n * TODO: once upgrades are more flexible, this should take in more options, including the old schema and specific upgrades to enable.\n */\nexport function toUpgradeSchema(root: ImplicitFieldSchema): TreeStoredSchema {\n\treturn toStoredSchema(root, restrictiveStoredSchemaGenerationOptions);\n}\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema} for use as initial document schema.\n */\nexport function toInitialSchema(root: ImplicitFieldSchema): TreeStoredSchema {\n\treturn toStoredSchema(root, restrictiveStoredSchemaGenerationOptions);\n}\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema} to used for unhydrated nodes.\n * @remarks\n * This allows as much as possible, relying on further validation when inserting the content.\n *\n * TODO: this should get additional options to enable support for unknown optional fields.\n */\nexport const toUnhydratedSchema = permissiveStoredSchemaGenerationOptions;\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema}.\n *\n * @privateRemarks\n * TODO:#38722 When runtime schema upgrades are implemented, this will need to be updated to check if\n * a staged allowed type has been upgraded and if so, include it in the conversion.\n *\n * Even if this took in a SimpleTreeSchema,\n * it would still need to walk the schema to avoid including schema that become unreachable due to filtered out staged schema.\n *\n * @throws\n * Throws a `UsageError` if multiple schemas are encountered with the same identifier.\n */\nexport function toStoredSchema(\n\troot: ImplicitFieldSchema,\n\toptions: StoredFromViewSchemaGenerationOptions,\n): TreeStoredSchema {\n\tconst cache = getOrCreate(viewToStoredCache, options, () => new WeakMap());\n\treturn getOrCreate(cache, root, () => {\n\t\tconst treeSchema = createTreeSchema(normalizeFieldSchema(root));\n\t\tconst simpleSchema = transformSimpleSchema(treeSchema, options);\n\t\treturn simpleStoredSchemaToStoredSchema(simpleSchema);\n\t});\n}\n\n/**\n * Converts a {@link SimpleTreeSchema} from `SchemaType.View` to `SchemaType.Stored`.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema<SchemaType.View>,\n\toptions: StoredFromViewSchemaGenerationOptions,\n): SimpleTreeSchema<SchemaType.Stored>;\n\n/**\n * Copies a `SchemaType.Stored` {@link SimpleTreeSchema}.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema<SchemaType.Stored>,\n\toptions: ExpectStored,\n): SimpleTreeSchema<SchemaType.Stored>;\n\n/**\n * Copies a {@link SimpleTreeSchema}.\n */\nexport function transformSimpleSchema<T extends SchemaType>(\n\tschema: SimpleTreeSchema<T>,\n\toptions: Unchanged,\n): SimpleTreeSchema<T>;\n\n/**\n * Converts a {@link SimpleTreeSchema}.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleTreeSchema;\n\n/**\n * TODO:#38722 When runtime schema upgrades are implemented, this will need to be updated to check if\n * a staged allowed type has been upgraded and if so, include it in the conversion.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleTreeSchema {\n\tconst simpleNodeSchema = new Map<string, SimpleNodeSchema>();\n\tconst root = filterFieldAllowedTypes(schema.root, options);\n\tconst queue = [...root.simpleAllowedTypes.keys()];\n\tfor (const identifier of queue) {\n\t\tgetOrCreate(simpleNodeSchema, identifier, (id) => {\n\t\t\tconst nodeSchema = schema.definitions.get(id) ?? fail(0xca8 /* missing schema */);\n\t\t\tconst transformed = transformSimpleNodeSchema(nodeSchema, options);\n\t\t\tconst kind = transformed.kind;\n\t\t\tswitch (kind) {\n\t\t\t\tcase NodeKind.Leaf: {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase NodeKind.Array:\n\t\t\t\tcase NodeKind.Map:\n\t\t\t\tcase NodeKind.Record: {\n\t\t\t\t\tqueue.push(...transformed.simpleAllowedTypes.keys());\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase NodeKind.Object: {\n\t\t\t\t\tfor (const fieldSchema of transformed.fields.values()) {\n\t\t\t\t\t\tqueue.push(...fieldSchema.simpleAllowedTypes.keys());\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tunreachableCase(kind);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn transformed;\n\t\t});\n\t}\n\t// Copy simpleNodeSchema, but in the order from the original schema.definitions\n\t// Currently we do not specify anything about the order of definitions, but it is nicer to have a stable order and some tests rely on it.\n\tconst definitions = new Map<string, SimpleNodeSchema>(\n\t\tmapIterable(\n\t\t\tfilterIterable(schema.definitions.keys(), (id) => simpleNodeSchema.has(id)),\n\t\t\t(id) => [id, simpleNodeSchema.get(id) ?? fail(0xca9 /* missing schema */)],\n\t\t),\n\t);\n\tassert(\n\t\tdefinitions.size === simpleNodeSchema.size,\n\t\t0xcaa /* Reachable schema missing from input TreeSchema */,\n\t);\n\treturn { root, definitions };\n}\n\n/**\n * Convert a {@link SimpleTreeSchema} for a stored schema into a {@link TreeStoredSchema}.\n * @remarks\n * This only supports simple schemas that are already logically stored schemas.\n * @privateRemarks\n * To correctly support view schema here, this would need to filter out unreferenced schema after excluding staged schema.\n * @see {@link ExpectStored}.\n */\nexport function simpleStoredSchemaToStoredSchema(\n\ttreeSchema: SimpleTreeSchema<SchemaType.Stored>,\n): TreeStoredSchema {\n\tconst result: TreeStoredSchema = {\n\t\tnodeSchema: transformMapValues(treeSchema.definitions, (schema) =>\n\t\t\tgetStoredSchema(schema),\n\t\t) as Map<TreeNodeSchemaIdentifier, TreeNodeStoredSchema>,\n\t\trootFieldSchema: convertField(treeSchema.root),\n\t};\n\treturn result;\n}\n\n/**\n * Convert a {@link SimpleFieldSchema} into a {@link TreeFieldStoredSchema}.\n */\nexport function convertField(\n\tschema: SimpleFieldSchema<SchemaType.Stored>,\n): TreeFieldStoredSchema {\n\tconst kind: FieldKindIdentifier =\n\t\tconvertFieldKind.get(schema.kind)?.identifier ?? fail(0xae3 /* Invalid field kind */);\n\tconst types = convertAllowedTypes(schema.simpleAllowedTypes);\n\treturn { kind, types, persistedMetadata: schema.persistedMetadata };\n}\n\n/**\n * A map that converts {@link FieldKind} to {@link FlexFieldKind}.\n */\nexport const convertFieldKind: ReadonlyMap<FieldKind, FlexFieldKind> = new Map<\n\tFieldKind,\n\tFlexFieldKind\n>([\n\t[FieldKind.Optional, FieldKinds.optional],\n\t[FieldKind.Required, FieldKinds.required],\n\t[FieldKind.Identifier, FieldKinds.identifier],\n]);\n\n/**\n * Converts a {@link TreeNodeSchema} into a {@link TreeNodeStoredSchema}.\n * @privateRemarks\n * TODO: Persist node metadata once schema FormatV2 is supported.\n */\nexport function getStoredSchema(\n\tschema: SimpleNodeSchema<SchemaType.Stored>,\n): TreeNodeStoredSchema {\n\tconst kind = schema.kind;\n\tswitch (kind) {\n\t\tcase NodeKind.Leaf: {\n\t\t\treturn new LeafNodeStoredSchema(schema.leafKind);\n\t\t}\n\t\tcase NodeKind.Map:\n\t\tcase NodeKind.Record: {\n\t\t\tconst types = convertAllowedTypes(schema.simpleAllowedTypes);\n\t\t\treturn new MapNodeStoredSchema(\n\t\t\t\t{\n\t\t\t\t\tkind: FieldKinds.optional.identifier,\n\t\t\t\t\ttypes,\n\t\t\t\t\tpersistedMetadata: schema.persistedMetadata,\n\t\t\t\t},\n\t\t\t\t// TODO: Find a way to avoid injecting persistedMetadata twice in these constructor calls.\n\t\t\t\tschema.persistedMetadata,\n\t\t\t);\n\t\t}\n\t\tcase NodeKind.Array: {\n\t\t\treturn arrayNodeStoredSchema(schema.simpleAllowedTypes, schema.persistedMetadata);\n\t\t}\n\t\tcase NodeKind.Object: {\n\t\t\tconst fields: Map<FieldKey, TreeFieldStoredSchema> = new Map();\n\t\t\tfor (const fieldSchema of schema.fields.values()) {\n\t\t\t\tfields.set(brand(fieldSchema.storedKey), convertField(fieldSchema));\n\t\t\t}\n\t\t\treturn new ObjectNodeStoredSchema(fields, schema.persistedMetadata);\n\t\t}\n\t\tdefault: {\n\t\t\tunreachableCase(kind);\n\t\t}\n\t}\n}\n\n/**\n * Converts a {@link SimpleNodeSchema} from view to stored.\n */\nexport function transformSimpleNodeSchema(\n\tschema: SimpleNodeSchema<SchemaType.View>,\n\toptions: StoredFromViewSchemaGenerationOptions,\n): SimpleNodeSchema<SchemaType.Stored>;\n\n/**\n * Converts a {@link SimpleNodeSchema}.\n */\nexport function transformSimpleNodeSchema(\n\tschema: SimpleNodeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleNodeSchema;\n\n/**\n * TODO: Persist node metadata once schema FormatV2 is supported.\n *\n * This is only exported for use by tests: if other users need them more overloads could be provided, but this is currently sufficient.\n */\nexport function transformSimpleNodeSchema(\n\tschema: SimpleNodeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleNodeSchema {\n\tconst metadata = {\n\t\tpersistedMetadata: schema.persistedMetadata,\n\t\tmetadata: preservesViewData(options)\n\t\t\t? {\n\t\t\t\t\tcustom: schema.metadata.custom,\n\t\t\t\t\tdescription: schema.metadata.description,\n\t\t\t\t}\n\t\t\t: {},\n\t};\n\tconst kind = schema.kind;\n\tswitch (kind) {\n\t\tcase NodeKind.Leaf: {\n\t\t\treturn {\n\t\t\t\tkind,\n\t\t\t\tleafKind: schema.leafKind,\n\t\t\t\t...metadata,\n\t\t\t} satisfies SimpleLeafNodeSchema;\n\t\t}\n\t\tcase NodeKind.Array:\n\t\tcase NodeKind.Map:\n\t\tcase NodeKind.Record: {\n\t\t\treturn {\n\t\t\t\tkind,\n\t\t\t\t...metadata,\n\t\t\t\tsimpleAllowedTypes: filterAllowedTypes(schema.simpleAllowedTypes, options),\n\t\t\t} satisfies SimpleMapNodeSchema | SimpleRecordNodeSchema | SimpleArrayNodeSchema;\n\t\t}\n\t\tcase NodeKind.Object: {\n\t\t\treturn {\n\t\t\t\tkind,\n\t\t\t\t...metadata,\n\t\t\t\tfields: transformMapValues(schema.fields, (f) => ({\n\t\t\t\t\t...filterFieldAllowedTypes(f, options),\n\t\t\t\t\tstoredKey: f.storedKey,\n\t\t\t\t})),\n\t\t\t\tallowUnknownOptionalFields: filterViewData(options, schema.allowUnknownOptionalFields),\n\t\t\t} satisfies SimpleObjectNodeSchema;\n\t\t}\n\t\tdefault: {\n\t\t\tunreachableCase(kind);\n\t\t}\n\t}\n}\n\nfunction arrayNodeStoredSchema(\n\tschema: SimpleAllowedTypes<SchemaType.Stored>,\n\tpersistedMetadata: JsonCompatibleReadOnlyObject | undefined,\n): ObjectNodeStoredSchema {\n\tconst field = {\n\t\tkind: FieldKinds.sequence.identifier,\n\t\ttypes: convertAllowedTypes(schema),\n\t\tpersistedMetadata,\n\t};\n\tconst fields = new Map([[EmptyKey, field]]);\n\treturn new ObjectNodeStoredSchema(fields, persistedMetadata);\n}\n\n/**\n * Converts a {@link SimpleAllowedTypes} to a stored schema.\n * @param schema - The schema to convert.\n * @param options - The options to use for filtering.\n * @returns The converted stored schema.\n */\nexport function filterAllowedTypes(\n\tschema: SimpleAllowedTypes,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleAllowedTypes {\n\tconst filtered: Map<string, SimpleAllowedTypeAttributes> = new Map();\n\tfor (const [type, data] of schema) {\n\t\tif (options === Unchanged) {\n\t\t\tfiltered.set(type, { isStaged: data.isStaged });\n\t\t} else if (allowedTypeFilter(data, options)) {\n\t\t\tfiltered.set(type, { isStaged: undefined });\n\t\t}\n\t}\n\treturn filtered;\n}\n\nfunction filterFieldAllowedTypes(\n\tf: SimpleFieldSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleFieldSchema {\n\treturn {\n\t\tkind: f.kind,\n\t\tpersistedMetadata: f.persistedMetadata,\n\t\tmetadata: preservesViewData(options)\n\t\t\t? {\n\t\t\t\t\tcustom: f.metadata.custom,\n\t\t\t\t\tdescription: f.metadata.description,\n\t\t\t\t}\n\t\t\t: {},\n\t\tsimpleAllowedTypes: filterAllowedTypes(f.simpleAllowedTypes, options),\n\t};\n}\n\n/**\n * Converts a stored {@link SimpleAllowedTypes} to a {@link TreeTypeSet}.\n */\nfunction convertAllowedTypes(schema: SimpleAllowedTypes<SchemaType.Stored>): TreeTypeSet {\n\treturn new Set(schema.keys() as Iterable<TreeNodeSchemaIdentifier>);\n}\n\n/**\n * Filters an allowed type based on the provided options.\n * @param allowedType - The allowed type to filter.\n * @param options - The options to use for filtering.\n * @returns Whether the allowed type passes the filter.\n */\nfunction allowedTypeFilter(\n\tdata: SimpleAllowedTypeAttributes,\n\toptions: StoredSchemaGenerationOptions,\n): boolean {\n\tif (options === ExpectStored) {\n\t\tif (data.isStaged !== undefined) {\n\t\t\tthrow new UsageError(\n\t\t\t\t\"Failed to covert view schema to stored schema. The simple schema provided was indicated to be a stored schema by the use of `ExpectStored`, but view schema specific content was encountered which requires a `StoredFromViewSchemaGenerationOptions` to process.\",\n\t\t\t);\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (data.isStaged === undefined) {\n\t\tthrow new UsageError(\n\t\t\t\"Failed to covert view schema to stored schema. The simple schema provided as the view schema was actually a stored schema. If this was intended, use `ExpectStored` for the `StoredSchemaGenerationOptions` to indicate the input is already a stored schema and only a format conversion is required.\",\n\t\t);\n\t}\n\n\t// If the allowed type is staged, only include it if the options allow it.\n\tif (data.isStaged === false) {\n\t\treturn true;\n\t}\n\n\treturn options.includeStaged(data.isStaged);\n}\n\nfunction isStoredFromView(\n\toptions: SimpleSchemaTransformationOptions,\n): options is StoredFromViewSchemaGenerationOptions {\n\treturn typeof options === \"object\" && \"includeStaged\" in options;\n}\n\nfunction filterViewData<T>(\n\toptions: SimpleSchemaTransformationOptions,\n\tdata: T,\n): T | undefined {\n\treturn preservesViewData(options) ? data : undefined;\n}\n\n/**\n * Determines if the provided options indicate that view specific data should be preserved.\n * @remarks\n * This assumes that stored simple schema should not contain view specific data.\n * Therefore the only case where what this returns should matter is when the input schema is view schema\n * (and thus there might be view specific data).\n */\nfunction preservesViewData(options: SimpleSchemaTransformationOptions): boolean {\n\t// As noted above in the doc comment, the only case we care about the return value is when the input is a view schema.\n\t// There are two such cases: isStoredFromView where we return false, and Unchanged when applied to a view schema, where we return true.\n\t// It does not matter what we return in other cases, so for simplicity they just end up as \"true\".\n\treturn isStoredFromView(options) ? false : true;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"toStoredSchema.js","sourceRoot":"","sources":["../../src/simple-tree/toStoredSchema.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 {\n\tunreachableCase,\n\tfail,\n\ttransformMapValues,\n\tassert,\n} from \"@fluidframework/core-utils/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport {\n\tEmptyKey,\n\tLeafNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tObjectNodeStoredSchema,\n\ttype FieldKey,\n\ttype FieldKindIdentifier,\n\ttype TreeFieldStoredSchema,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeNodeStoredSchema,\n\ttype TreeStoredSchema,\n\ttype TreeTypeSet,\n} from \"../core/index.js\";\nimport { FieldKinds, type FlexFieldKind } from \"../feature-libraries/index.js\";\nimport {\n\tbrand,\n\tfilterIterable,\n\tgetOrCreate,\n\tmapIterable,\n\ttype JsonCompatibleReadOnlyObject,\n} from \"../util/index.js\";\n\nimport {\n\tExpectStored,\n\tNodeKind,\n\tSchemaUpgrade,\n\tUnchanged,\n\ttype SimpleSchemaTransformationOptions,\n\ttype StoredFromViewSchemaGenerationOptions,\n\ttype StoredSchemaGenerationOptions,\n} from \"./core/index.js\";\nimport { FieldKind, normalizeFieldSchema, type ImplicitFieldSchema } from \"./fieldSchema.js\";\nimport type {\n\tSchemaType,\n\tSimpleAllowedTypeAttributes,\n\tSimpleAllowedTypes,\n\tSimpleArrayNodeSchema,\n\tSimpleFieldSchema,\n\tSimpleLeafNodeSchema,\n\tSimpleMapNodeSchema,\n\tSimpleNodeSchema,\n\tSimpleObjectNodeSchema,\n\tSimpleRecordNodeSchema,\n\tSimpleTreeSchema,\n} from \"./simpleSchema.js\";\nimport { createTreeSchema } from \"./treeSchema.js\";\n\n// TODO: this file, src/simple-tree/api/storedSchema.ts and src/simple-tree/core/toStored.ts should be refactored to group the logic more logically.\n// The content of src/simple-tree/api/storedSchema.ts should probably removed from the API surface, replaced by simple schema snapshotting APIs.\n// The logic from this file for converting stored-simple-schema to the persisted format can be moved to its own file.\n// The simple-schema related logic from this file and src/simple-tree/core/toStored.ts can be unified and `toStoredSchema` and its other ImplicitFieldSchema consuming variants should probably be removed in favor of acting on TreeSchema and SimpleTreeSchema directly.\n\nconst viewToStoredCache = new WeakMap<\n\tStoredFromViewSchemaGenerationOptions,\n\tWeakMap<ImplicitFieldSchema, TreeStoredSchema>\n>();\n\n/**\n * Maximally restrictive transformation of a view to stored schema.\n * @remarks\n * This should only be used when the intent is to produce a stored schema is as restrictive as possible while still being compatible with the input view schema.\n * This is typically used for cases where backwards compatibility with past versions of an application is required, like {@link toUpgradeSchema} or {@link toInitialSchema}.\n */\nexport const restrictiveStoredSchemaGenerationOptions: StoredFromViewSchemaGenerationOptions =\n\t{\n\t\tincludeStaged: () => false,\n\t\tincludeStagedOptional: () => false,\n\t};\n\n/**\n * Maximally permissive transformation of a view to stored schema.\n * @remarks\n * This should only be used when the intent is to produce a stored schema which allows as much as possible while still being compatible with the input view schema.\n * This is typically used for cases where forwards compatibility with future versions of an application is required, like {@link toUnhydratedSchema}.\n *\n * This is unable to include unknown optional fields in the output, which makes it not truly maximally permissive.\n *\n * TODO: {@link StoredFromViewSchemaGenerationOptions} could be updated to allow a way to inject extra optional fields.\n * If done, then this could take in an existing stored schema, and attempt to generate a valid superset.\n * This could be useful to use as the schema for unhydrated content cloned from hydrated content.\n */\nexport const permissiveStoredSchemaGenerationOptions: StoredFromViewSchemaGenerationOptions = {\n\tincludeStaged: () => true,\n\tincludeStagedOptional: () => true,\n};\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema} for use in schema upgrades.\n *\n * TODO: once upgrades are more flexible, this should take in more options, including the old schema and specific upgrades to enable.\n */\nexport function toUpgradeSchema(root: ImplicitFieldSchema): TreeStoredSchema {\n\treturn toStoredSchema(root, restrictiveStoredSchemaGenerationOptions);\n}\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema} for use as initial document schema.\n */\nexport function toInitialSchema(root: ImplicitFieldSchema): TreeStoredSchema {\n\treturn toStoredSchema(root, restrictiveStoredSchemaGenerationOptions);\n}\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema} to used for unhydrated nodes.\n * @remarks\n * This allows as much as possible, relying on further validation when inserting the content.\n *\n * TODO: this should get additional options to enable support for unknown optional fields.\n */\nexport const toUnhydratedSchema = permissiveStoredSchemaGenerationOptions;\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema}.\n *\n * @privateRemarks\n * TODO:#38722 When runtime schema upgrades are implemented, this will need to be updated to check if\n * a staged allowed type has been upgraded and if so, include it in the conversion.\n *\n * Even if this took in a SimpleTreeSchema,\n * it would still need to walk the schema to avoid including schema that become unreachable due to filtered out staged schema.\n *\n * @throws\n * Throws a `UsageError` if multiple schemas are encountered with the same identifier.\n */\nexport function toStoredSchema(\n\troot: ImplicitFieldSchema,\n\toptions: StoredFromViewSchemaGenerationOptions,\n): TreeStoredSchema {\n\tconst cache = getOrCreate(viewToStoredCache, options, () => new WeakMap());\n\treturn getOrCreate(cache, root, () => {\n\t\tconst treeSchema = createTreeSchema(normalizeFieldSchema(root));\n\t\tconst simpleSchema = transformSimpleSchema(treeSchema, options);\n\t\treturn simpleStoredSchemaToStoredSchema(simpleSchema);\n\t});\n}\n\n/**\n * Converts a {@link SimpleTreeSchema} from `SchemaType.View` to `SchemaType.Stored`.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema<SchemaType.View>,\n\toptions: StoredFromViewSchemaGenerationOptions,\n): SimpleTreeSchema<SchemaType.Stored>;\n\n/**\n * Copies a `SchemaType.Stored` {@link SimpleTreeSchema}.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema<SchemaType.Stored>,\n\toptions: ExpectStored,\n): SimpleTreeSchema<SchemaType.Stored>;\n\n/**\n * Copies a {@link SimpleTreeSchema}.\n */\nexport function transformSimpleSchema<T extends SchemaType>(\n\tschema: SimpleTreeSchema<T>,\n\toptions: Unchanged,\n): SimpleTreeSchema<T>;\n\n/**\n * Converts a {@link SimpleTreeSchema}.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleTreeSchema;\n\n/**\n * TODO:#38722 When runtime schema upgrades are implemented, this will need to be updated to check if\n * a staged allowed type has been upgraded and if so, include it in the conversion.\n */\nexport function transformSimpleSchema(\n\tschema: SimpleTreeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleTreeSchema {\n\tconst simpleNodeSchema = new Map<string, SimpleNodeSchema>();\n\tconst root = filterFieldAllowedTypes(schema.root, options);\n\tconst queue = [...root.simpleAllowedTypes.keys()];\n\tfor (const identifier of queue) {\n\t\tgetOrCreate(simpleNodeSchema, identifier, (id) => {\n\t\t\tconst nodeSchema = schema.definitions.get(id) ?? fail(0xca8 /* missing schema */);\n\t\t\tconst transformed = transformSimpleNodeSchema(nodeSchema, options);\n\t\t\tconst kind = transformed.kind;\n\t\t\tswitch (kind) {\n\t\t\t\tcase NodeKind.Leaf: {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase NodeKind.Array:\n\t\t\t\tcase NodeKind.Map:\n\t\t\t\tcase NodeKind.Record: {\n\t\t\t\t\tqueue.push(...transformed.simpleAllowedTypes.keys());\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase NodeKind.Object: {\n\t\t\t\t\tfor (const fieldSchema of transformed.fields.values()) {\n\t\t\t\t\t\tqueue.push(...fieldSchema.simpleAllowedTypes.keys());\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tunreachableCase(kind);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn transformed;\n\t\t});\n\t}\n\t// Copy simpleNodeSchema, but in the order from the original schema.definitions\n\t// Currently we do not specify anything about the order of definitions, but it is nicer to have a stable order and some tests rely on it.\n\tconst definitions = new Map<string, SimpleNodeSchema>(\n\t\tmapIterable(\n\t\t\tfilterIterable(schema.definitions.keys(), (id) => simpleNodeSchema.has(id)),\n\t\t\t(id) => [id, simpleNodeSchema.get(id) ?? fail(0xca9 /* missing schema */)],\n\t\t),\n\t);\n\tassert(\n\t\tdefinitions.size === simpleNodeSchema.size,\n\t\t0xcaa /* Reachable schema missing from input TreeSchema */,\n\t);\n\treturn { root, definitions };\n}\n\n/**\n * Convert a {@link SimpleTreeSchema} for a stored schema into a {@link TreeStoredSchema}.\n * @remarks\n * This only supports simple schemas that are already logically stored schemas.\n * @privateRemarks\n * To correctly support view schema here, this would need to filter out unreferenced schema after excluding staged schema.\n * @see {@link ExpectStored}.\n */\nexport function simpleStoredSchemaToStoredSchema(\n\ttreeSchema: SimpleTreeSchema<SchemaType.Stored>,\n): TreeStoredSchema {\n\tconst result: TreeStoredSchema = {\n\t\tnodeSchema: transformMapValues(treeSchema.definitions, (schema) =>\n\t\t\tgetStoredSchema(schema),\n\t\t) as Map<TreeNodeSchemaIdentifier, TreeNodeStoredSchema>,\n\t\trootFieldSchema: convertField(treeSchema.root),\n\t};\n\treturn result;\n}\n\n/**\n * Convert a {@link SimpleFieldSchema} into a {@link TreeFieldStoredSchema}.\n */\nexport function convertField(\n\tschema: SimpleFieldSchema<SchemaType.Stored>,\n): TreeFieldStoredSchema {\n\tconst kind: FieldKindIdentifier =\n\t\tconvertFieldKind.get(schema.kind)?.identifier ?? fail(0xae3 /* Invalid field kind */);\n\tconst types = convertAllowedTypes(schema.simpleAllowedTypes);\n\treturn { kind, types, persistedMetadata: schema.persistedMetadata };\n}\n\n/**\n * A map that converts {@link FieldKind} to {@link FlexFieldKind}.\n */\nexport const convertFieldKind: ReadonlyMap<FieldKind, FlexFieldKind> = new Map<\n\tFieldKind,\n\tFlexFieldKind\n>([\n\t[FieldKind.Optional, FieldKinds.optional],\n\t[FieldKind.Required, FieldKinds.required],\n\t[FieldKind.Identifier, FieldKinds.identifier],\n]);\n\n/**\n * Converts a {@link TreeNodeSchema} into a {@link TreeNodeStoredSchema}.\n * @privateRemarks\n * TODO: Persist node metadata once schema FormatV2 is supported.\n */\nexport function getStoredSchema(\n\tschema: SimpleNodeSchema<SchemaType.Stored>,\n): TreeNodeStoredSchema {\n\tconst kind = schema.kind;\n\tswitch (kind) {\n\t\tcase NodeKind.Leaf: {\n\t\t\treturn new LeafNodeStoredSchema(schema.leafKind);\n\t\t}\n\t\tcase NodeKind.Map:\n\t\tcase NodeKind.Record: {\n\t\t\tconst types = convertAllowedTypes(schema.simpleAllowedTypes);\n\t\t\treturn new MapNodeStoredSchema(\n\t\t\t\t{\n\t\t\t\t\tkind: FieldKinds.optional.identifier,\n\t\t\t\t\ttypes,\n\t\t\t\t\tpersistedMetadata: schema.persistedMetadata,\n\t\t\t\t},\n\t\t\t\t// TODO: Find a way to avoid injecting persistedMetadata twice in these constructor calls.\n\t\t\t\tschema.persistedMetadata,\n\t\t\t);\n\t\t}\n\t\tcase NodeKind.Array: {\n\t\t\treturn arrayNodeStoredSchema(schema.simpleAllowedTypes, schema.persistedMetadata);\n\t\t}\n\t\tcase NodeKind.Object: {\n\t\t\tconst fields: Map<FieldKey, TreeFieldStoredSchema> = new Map();\n\t\t\tfor (const fieldSchema of schema.fields.values()) {\n\t\t\t\tfields.set(brand(fieldSchema.storedKey), convertField(fieldSchema));\n\t\t\t}\n\t\t\treturn new ObjectNodeStoredSchema(fields, schema.persistedMetadata);\n\t\t}\n\t\tdefault: {\n\t\t\tunreachableCase(kind);\n\t\t}\n\t}\n}\n\n/**\n * Converts a {@link SimpleNodeSchema} from view to stored.\n */\nexport function transformSimpleNodeSchema(\n\tschema: SimpleNodeSchema<SchemaType.View>,\n\toptions: StoredFromViewSchemaGenerationOptions,\n): SimpleNodeSchema<SchemaType.Stored>;\n\n/**\n * Converts a {@link SimpleNodeSchema}.\n */\nexport function transformSimpleNodeSchema(\n\tschema: SimpleNodeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleNodeSchema;\n\n/**\n * TODO: Persist node metadata once schema FormatV2 is supported.\n *\n * This is only exported for use by tests: if other users need them more overloads could be provided, but this is currently sufficient.\n */\nexport function transformSimpleNodeSchema(\n\tschema: SimpleNodeSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleNodeSchema {\n\tconst metadata = {\n\t\tpersistedMetadata: schema.persistedMetadata,\n\t\tmetadata: preservesViewData(options)\n\t\t\t? {\n\t\t\t\t\tcustom: schema.metadata.custom,\n\t\t\t\t\tdescription: schema.metadata.description,\n\t\t\t\t}\n\t\t\t: {},\n\t};\n\tconst kind = schema.kind;\n\tswitch (kind) {\n\t\tcase NodeKind.Leaf: {\n\t\t\treturn {\n\t\t\t\tkind,\n\t\t\t\tleafKind: schema.leafKind,\n\t\t\t\t...metadata,\n\t\t\t} satisfies SimpleLeafNodeSchema;\n\t\t}\n\t\tcase NodeKind.Array:\n\t\tcase NodeKind.Map:\n\t\tcase NodeKind.Record: {\n\t\t\treturn {\n\t\t\t\tkind,\n\t\t\t\t...metadata,\n\t\t\t\tsimpleAllowedTypes: filterAllowedTypes(schema.simpleAllowedTypes, options),\n\t\t\t} satisfies SimpleMapNodeSchema | SimpleRecordNodeSchema | SimpleArrayNodeSchema;\n\t\t}\n\t\tcase NodeKind.Object: {\n\t\t\treturn {\n\t\t\t\tkind,\n\t\t\t\t...metadata,\n\t\t\t\tfields: transformMapValues(schema.fields, (f) => ({\n\t\t\t\t\t...filterFieldAllowedTypes(f, options),\n\t\t\t\t\tstoredKey: f.storedKey,\n\t\t\t\t})),\n\t\t\t\tallowUnknownOptionalFields: filterViewData(options, schema.allowUnknownOptionalFields),\n\t\t\t} satisfies SimpleObjectNodeSchema;\n\t\t}\n\t\tdefault: {\n\t\t\tunreachableCase(kind);\n\t\t}\n\t}\n}\n\nfunction arrayNodeStoredSchema(\n\tschema: SimpleAllowedTypes<SchemaType.Stored>,\n\tpersistedMetadata: JsonCompatibleReadOnlyObject | undefined,\n): ObjectNodeStoredSchema {\n\tconst field = {\n\t\tkind: FieldKinds.sequence.identifier,\n\t\ttypes: convertAllowedTypes(schema),\n\t\tpersistedMetadata,\n\t};\n\tconst fields = new Map([[EmptyKey, field]]);\n\treturn new ObjectNodeStoredSchema(fields, persistedMetadata);\n}\n\n/**\n * Converts a {@link SimpleAllowedTypes} to a stored schema.\n * @param schema - The schema to convert.\n * @param options - The options to use for filtering.\n * @returns The converted stored schema.\n */\nexport function filterAllowedTypes(\n\tschema: SimpleAllowedTypes,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleAllowedTypes {\n\tconst filtered: Map<string, SimpleAllowedTypeAttributes> = new Map();\n\tfor (const [type, data] of schema) {\n\t\tif (options === Unchanged) {\n\t\t\tfiltered.set(type, { isStaged: data.isStaged });\n\t\t} else if (allowedTypeFilter(data, options)) {\n\t\t\tfiltered.set(type, { isStaged: undefined });\n\t\t}\n\t}\n\treturn filtered;\n}\n\nfunction filterFieldAllowedTypes(\n\tf: SimpleFieldSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): SimpleFieldSchema {\n\tconst isStagedOptional =\n\t\tpreservesViewData(options) && f.isStagedOptional instanceof SchemaUpgrade\n\t\t\t? f.isStagedOptional\n\t\t\t: undefined;\n\treturn {\n\t\tkind: getStoredFieldKind(f, options),\n\t\tpersistedMetadata: f.persistedMetadata,\n\t\tmetadata: preservesViewData(options)\n\t\t\t? {\n\t\t\t\t\tcustom: f.metadata.custom,\n\t\t\t\t\tdescription: f.metadata.description,\n\t\t\t\t}\n\t\t\t: {},\n\t\tsimpleAllowedTypes: filterAllowedTypes(f.simpleAllowedTypes, options),\n\t\t...(isStagedOptional === undefined ? {} : { isStagedOptional }),\n\t};\n}\n\n/**\n * Returns the field kind to use in the stored schema for the given view field schema.\n * @remarks\n * For {@link SchemaFactoryAlpha.stagedOptional | staged optional} fields, the stored field kind is Required\n * when the staged optional is not being included (i.e., restrictive options).\n */\nfunction getStoredFieldKind(\n\tf: SimpleFieldSchema,\n\toptions: SimpleSchemaTransformationOptions,\n): FieldKind {\n\tif (!isStoredFromView(options)) {\n\t\treturn f.kind;\n\t}\n\tconst { isStagedOptional } = f;\n\tif (isStagedOptional === undefined || isStagedOptional === false) return f.kind;\n\t// isStagedOptional is a SchemaUpgrade — use includeStagedOptional to decide the stored kind.\n\treturn options.includeStagedOptional(isStagedOptional) ? f.kind : FieldKind.Required;\n}\n\n/**\n * Converts a stored {@link SimpleAllowedTypes} to a {@link TreeTypeSet}.\n */\nfunction convertAllowedTypes(schema: SimpleAllowedTypes<SchemaType.Stored>): TreeTypeSet {\n\treturn new Set(schema.keys() as Iterable<TreeNodeSchemaIdentifier>);\n}\n\n/**\n * Filters an allowed type based on the provided options.\n * @param allowedType - The allowed type to filter.\n * @param options - The options to use for filtering.\n * @returns Whether the allowed type passes the filter.\n */\nfunction allowedTypeFilter(\n\tdata: SimpleAllowedTypeAttributes,\n\toptions: StoredSchemaGenerationOptions,\n): boolean {\n\tif (options === ExpectStored) {\n\t\tif (data.isStaged !== undefined) {\n\t\t\tthrow new UsageError(\n\t\t\t\t\"Failed to covert view schema to stored schema. The simple schema provided was indicated to be a stored schema by the use of `ExpectStored`, but view schema specific content was encountered which requires a `StoredFromViewSchemaGenerationOptions` to process.\",\n\t\t\t);\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (data.isStaged === undefined) {\n\t\tthrow new UsageError(\n\t\t\t\"Failed to covert view schema to stored schema. The simple schema provided as the view schema was actually a stored schema. If this was intended, use `ExpectStored` for the `StoredSchemaGenerationOptions` to indicate the input is already a stored schema and only a format conversion is required.\",\n\t\t);\n\t}\n\n\t// If the allowed type is staged, only include it if the options allow it.\n\tif (data.isStaged === false) {\n\t\treturn true;\n\t}\n\n\treturn options.includeStaged(data.isStaged);\n}\n\nfunction isStoredFromView(\n\toptions: SimpleSchemaTransformationOptions,\n): options is StoredFromViewSchemaGenerationOptions {\n\treturn typeof options === \"object\" && \"includeStaged\" in options;\n}\n\nfunction filterViewData<T>(\n\toptions: SimpleSchemaTransformationOptions,\n\tdata: T,\n): T | undefined {\n\treturn preservesViewData(options) ? data : undefined;\n}\n\n/**\n * Determines if the provided options indicate that view specific data should be preserved.\n * @remarks\n * This assumes that stored simple schema should not contain view specific data.\n * Therefore the only case where what this returns should matter is when the input schema is view schema\n * (and thus there might be view specific data).\n */\nfunction preservesViewData(options: SimpleSchemaTransformationOptions): boolean {\n\t// As noted above in the doc comment, the only case we care about the return value is when the input is a view schema.\n\t// There are two such cases: isStoredFromView where we return false, and Unchanged when applied to a view schema, where we return true.\n\t// It does not matter what we return in other cases, so for simplicity they just end up as \"true\".\n\treturn isStoredFromView(options) ? false : true;\n}\n"]}
|
package/dist/tableSchema.d.ts
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import type
|
|
6
|
-
import { type FieldHasDefault, type ImplicitAllowedTypes, type InsertableTreeNodeFromImplicitAllowedTypes, type NodeKind, type ScopedSchemaName, type TreeNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type WithType, type TreeFieldFromImplicitField, type InsertableTreeFieldFromImplicitField, type InternalTreeNode, SchemaFactory, type ImplicitFieldSchema, type TreeRecordNode, TreeNodeSchemaCore } from "./simple-tree/index.js";
|
|
5
|
+
import { type FieldHasDefault, type ImplicitAllowedTypes, type InsertableTreeNodeFromImplicitAllowedTypes, type NodeKind, type SchemaFactoryBeta, type ScopedSchemaName, type TreeNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type WithType, type TreeFieldFromImplicitField, type InsertableTreeFieldFromImplicitField, type InternalTreeNode, SchemaFactory, type ImplicitFieldSchema, type TreeRecordNode, TreeNodeSchemaCore, FieldKind } from "./simple-tree/index.js";
|
|
7
6
|
/**
|
|
8
7
|
* A row in a table.
|
|
9
8
|
* @typeParam TCellSchema - The type of the cells in the {@link TableSchema.Table}.
|
|
@@ -125,7 +124,7 @@ export declare namespace System_TableSchema {
|
|
|
125
124
|
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
126
125
|
}), true, {
|
|
127
126
|
readonly props: TPropsSchema;
|
|
128
|
-
readonly id: import("./simple-tree/fieldSchema.js").FieldSchema<
|
|
127
|
+
readonly id: import("./simple-tree/fieldSchema.js").FieldSchema<FieldKind.Identifier, import("./simple-tree/leafNodeSchema.js").LeafSchema<"string", string>, unknown>;
|
|
129
128
|
}>;
|
|
130
129
|
/**
|
|
131
130
|
* Base column schema type.
|
|
@@ -161,13 +160,13 @@ export declare namespace System_TableSchema {
|
|
|
161
160
|
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
162
161
|
}), true, {
|
|
163
162
|
readonly props: TPropsSchema;
|
|
164
|
-
readonly id: import("./simple-tree/fieldSchema.js").FieldSchema<
|
|
163
|
+
readonly id: import("./simple-tree/fieldSchema.js").FieldSchema<FieldKind.Identifier, import("./simple-tree/leafNodeSchema.js").LeafSchema<"string", string>, unknown>;
|
|
165
164
|
/**
|
|
166
165
|
* The cells of the table row, keyed by column ID.
|
|
167
166
|
* @remarks
|
|
168
167
|
* The table row models its cells as a record, where each key is the ID of the column it belongs to. The choice of record (as opposed to a map) is intended to make interop with common table rendering libraries in TypeScript/JavaScript easier.
|
|
169
168
|
*/
|
|
170
|
-
readonly cells: import("./simple-tree/fieldSchema.js").FieldSchema<
|
|
169
|
+
readonly cells: import("./simple-tree/fieldSchema.js").FieldSchema<FieldKind.Required, TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, import("./simple-tree/index.js").RecordNodeInsertableData<TCellSchema>, true, TCellSchema, undefined, unknown>, unknown>;
|
|
171
170
|
}>;
|
|
172
171
|
/**
|
|
173
172
|
* Base row schema type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableSchema.d.ts","sourceRoot":"","sources":["../src/tableSchema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tableSchema.d.ts","sourceRoot":"","sources":["../src/tableSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAEzB,KAAK,0CAA0C,EAC/C,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,QAAQ,EACb,KAAK,gCAAgC,EAErC,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,0BAA0B,EAC/B,KAAK,oCAAoC,EACzC,KAAK,gBAAgB,EACrB,aAAa,EAEb,KAAK,mBAAmB,EAExB,KAAK,cAAc,EAKnB,kBAAkB,EAClB,SAAS,EAKT,MAAM,wBAAwB,CAAC;AAWhC;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU,CAC1B,WAAW,SAAS,oBAAoB,EACxC,YAAY,SAAS,mBAAmB,GAAG,mBAAmB,CAC7D,SAAQ,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,yBAAiB,kBAAkB,CAAC;IACnC;;;;;;;;;OASG;IACH,KAAY,iBAAiB,CAAC,WAAW,SAAS,oBAAoB,IAAI,QAAQ,GACjF,SAAS,gCAAgC,CAAC,WAAW,CAAC,EAAE,GAAG;QAG1D,4DAA4D;QAC5D,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,8DAA8D;QAC9D,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,8DAA8D;QAC9D,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjE,iEAAiE;QACjE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3D,mEAAmE;QACnE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7D,mEAAmE;QACnE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KAGvF,CAAC;IAEH;;;;;;;OAOG;IACH,KAAY,gBAAgB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7E;;;;;OAKG;IACH,UAAiB,wBAAwB,CAAC,cAAc,SAAS,iBAAiB;QACjF;;;;WAIG;QACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;KACvC;IAED;;;;;OAKG;IACH,UAAiB,qBAAqB,CAAC,WAAW,SAAS,oBAAoB;QAC9E;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;KAC3B;IAID;;;;OAIG;IACH,KAAY,uBAAuB,CAClC,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,cAAc,SAAS,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,EACpF,WAAW,SAAS,oBAAoB,GAAG,oBAAoB,IAC5D,wBAAwB,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAElF;;;OAGG;IAEH,SAAgB,kBAAkB,CACjC,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC9C,KAAK,CAAC,YAAY,SAAS,mBAAmB,EAC7C,kBAAkB,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,YAAY;;;QA2DzE;;;WAGG;;;QAIH;;;WAGG;eACI,qCAAqC,YAAY,CAAC;;;;OAmC7D;IAED;;;OAGG;IACH,KAAY,gBAAgB,CAC3B,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,WAAW,SAAS,oBAAoB,GAAG,oBAAoB,EAC/D,YAAY,SAAS,mBAAmB,GAAG,mBAAmB,IAC3D,UAAU,CAAC,OAAO,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAMjF;;;;OAIG;IACH,KAAY,oBAAoB,CAC/B,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,cAAc,SAAS,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,EACpF,WAAW,SAAS,oBAAoB,GAAG,oBAAoB,IAC5D,wBAAwB,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAElF;;;OAGG;IAEH,SAAgB,eAAe,CAC9B,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC9C,KAAK,CAAC,YAAY,SAAS,mBAAmB,EAE9C,kBAAkB,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACjD,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,YAAY;;;;QAkErB;;;;WAIG;;;QAIH;;;;WAIG;eACI,qCAAqC,YAAY,CAAC;;;;QArE5D;;;;WAIG;;OAoGJ;IAED;;;OAGG;IACH,KAAY,aAAa,CACxB,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,WAAW,SAAS,oBAAoB,GAAG,oBAAoB,EAC/D,YAAY,SAAS,mBAAmB,GAAG,mBAAmB,IAC3D,UAAU,CAAC,OAAO,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAM9E;;;;OAIG;IACH,KAAY,uBAAuB,CAClC,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,cAAc,SAAS,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,EACpF,WAAW,SAAS,oBAAoB,GAAG,oBAAoB,IAC5D,wBAAwB,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAElF;;;OAGG;IAEH,SAAgB,iBAAiB,CAChC,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC9C,KAAK,CAAC,aAAa,SAAS,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,EACrE,KAAK,CAAC,UAAU,SAAS,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,EAE/D,kBAAkB,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACjD,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,aAAa,EAC3B,SAAS,EAAE,UAAU;QAgvBpB;;;;;;;WAOG;yCA/sBoC,gBAAgB,GAAG,SAAS,uMAitB5D,KAAK,oBAER,YAAY,4BAA4B,CACxC,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,CACT,GACD,SAAS,GACV,aAAa,KAAK,CAAC;qBA1tBiB,gBAAgB,GAAG,SAAS,uqBAsuBpE;IAED;;;OAGG;IACH,KAAY,eAAe,CAC1B,UAAU,SAAS,MAAM,EACzB,WAAW,SAAS,oBAAoB,EACxC,aAAa,SAAS,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,EAC/D,UAAU,SAAS,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,IACtD,UAAU,CAAC,OAAO,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;CAG7F;AAoCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHG;AACH,yBAAiB,WAAW,CAAC;IAG5B;;;;;;OAMG;IACH,UAAiB,MAAM,CAEtB,KAAK,SAAS,oBAAoB,EAClC,MAAM,SAAS,mBAAmB,GAAG,mBAAmB;QAExD;;;WAGG;QACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAEpB;;;;;;WAMG;QACH,IAAI,KAAK,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,KAAK,EAAE,oCAAoC,CAAC,MAAM,CAAC,EAAE;KAC/D;IAED;;;;;OAKG;IACH,SAAgB,MAAM,CACrB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EAExC,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CACjD,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GACC,kBAAkB,CAAC,gBAAgB,CACrC,UAAU,EACV,KAAK,EACL,kBAAkB,CAAC,gBAAgB,CACnC,CAAC;IACF;;;;;;OAMG;IACH,SAAgB,MAAM,CACrB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,MAAM,SAAS,mBAAmB,EAExC,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CACjD,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GAAG;QACH;;WAEG;QACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACvB,GACC,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAkBlE;;;;;;OAMG;IACH,UAAiB,GAAG,CAEnB,KAAK,SAAS,oBAAoB,EAClC,MAAM,SAAS,mBAAmB,GAAG,mBAAmB;QAExD;;;WAGG;QACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAEpB;;;;;;WAMG;QACH,IAAI,KAAK,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,KAAK,EAAE,oCAAoC,CAAC,MAAM,CAAC,EAAE;KAC/D;IAED;;;;;OAKG;IACH,SAAgB,GAAG,CAClB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EAExC,MAAM,EAAE,kBAAkB,CAAC,oBAAoB,CAC9C,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GACC,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC5F;;;;;;OAMG;IACH,SAAgB,GAAG,CAClB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,MAAM,SAAS,mBAAmB,EAExC,MAAM,EAAE,kBAAkB,CAAC,oBAAoB,CAC9C,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GAAG;QACH;;WAEG;QACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACvB,GACC,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAkB/D;;;;;;;;OAQG;IACH,UAAiB,OAAO,CACvB,OAAO,SAAS,oBAAoB,EACpC,IAAI,SAAS,oBAAoB;QAEjC;;WAEG;QACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAE7E;;WAEG;QACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;KACvE;IAED;;;OAGG;IACH,UAAiB,uBAAuB,CAAC,OAAO,SAAS,oBAAoB;QAC5E;;;WAGG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAEpC;;WAEG;QACH,QAAQ,CAAC,OAAO,EAAE,0CAA0C,CAAC,OAAO,CAAC,EAAE,CAAC;KACxE;IAED;;;OAGG;IACH,UAAiB,oBAAoB,CAAC,IAAI,SAAS,oBAAoB;QACtE;;;WAGG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAEpC;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,0CAA0C,CAAC,IAAI,CAAC,EAAE,CAAC;KAClE;IAED;;;OAGG;IACH,UAAiB,iBAAiB,CACjC,KAAK,SAAS,oBAAoB,EAClC,OAAO,SAAS,oBAAoB,EACpC,IAAI,SAAS,oBAAoB;QAEjC;;WAEG;QACH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAErC;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,0CAA0C,CAAC,KAAK,CAAC,CAAC;KACjE;IAED;;;;;;;;;;;;;OAaG;IACH,UAAiB,KAAK,CACrB,UAAU,SAAS,MAAM,EACzB,KAAK,SAAS,oBAAoB,EAClC,OAAO,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,EACtE,IAAI,SAAS,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;QAEhE;;WAEG;QACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEhE;;WAEG;QACH,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE1D;;;WAGG;QACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC7E;;;;;;;;WAQG;QACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAEhF;;;WAGG;QACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,gCAAgC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QACvE;;;;;;;;WAQG;QACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,gCAAgC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAE1E;;;;WAIG;QACH,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAE1F;;;;;;WAMG;QACH,aAAa,CACZ,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACtC,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAE/C;;;;;;;;;;;WAWG;QACH,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAEzF;;;WAGG;QACH,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;QAE/D;;;;;;;;;;;;WAYG;QACH,aAAa,CACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GACxB,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C;;;;;;;;;;;;WAYG;QACH,aAAa,CACZ,OAAO,EAAE,SAAS,gCAAgC,CAAC,OAAO,CAAC,EAAE,GAC3D,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C;;;;;;;;;;;;;WAaG;QACH,aAAa,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,gCAAgC,CAAC,OAAO,CAAC,EAAE,CAAC;QAEvF;;;;;WAKG;QACH,UAAU,CACT,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GACxB,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C;;;;;WAKG;QACH,UAAU,CACT,IAAI,EAAE,SAAS,gCAAgC,CAAC,IAAI,CAAC,EAAE,GACrD,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C;;;;;WAKG;QACH,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC;QAE9E;;;;WAIG;QACH,UAAU,CACT,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GACzB,gCAAgC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;KACvD;IAED;;;OAGG;IACH,UAAiB,4BAA4B,CAC5C,UAAU,SAAS,MAAM,EACzB,KAAK,SAAS,oBAAoB,EAClC,OAAO,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,EACtE,IAAI,SAAS,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;QAEhE;;WAEG;QACH,QAAQ,CAAC,OAAO,CAAC,EACd,QAAQ,CAAC,0CAA0C,CAAC,OAAO,CAAC,CAAC,GAC7D,SAAS,CAAC;QAEb;;;WAGG;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,0CAA0C,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;KACvF;IAED;;;;;;OAMG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EAExC,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CACjD,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GACC,kBAAkB,CAAC,eAAe,CACpC,UAAU,EACV,KAAK,EACL,kBAAkB,CAAC,gBAAgB,CAClC,UAAU,EACV,KAAK,EACL,kBAAkB,CAAC,gBAAgB,CACnC,EACD,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CACxF,CAAC;IACF;;;;;;;OAOG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,OAAO,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,EAE5E,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CACjD,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GAAG;QACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KACzB,GACC,kBAAkB,CAAC,eAAe,CACpC,UAAU,EACV,KAAK,EACL,OAAO,EACP,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CACxF,CAAC;IACF;;;;;;;OAOG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,IAAI,SAAS,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,EAEtE,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CACjD,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GAAG;QACH,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;KACnB,GACC,kBAAkB,CAAC,eAAe,CACpC,UAAU,EACV,KAAK,EACL,kBAAkB,CAAC,gBAAgB,CAClC,UAAU,EACV,KAAK,EACL,kBAAkB,CAAC,gBAAgB,CACnC,EACD,IAAI,CACJ,CAAC;IACF;;;;;;;;OAQG;IACH,SAAgB,KAAK,CACpB,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,KAAK,CAAC,KAAK,SAAS,oBAAoB,EACxC,KAAK,CAAC,OAAO,SAAS,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,EAC5E,KAAK,CAAC,IAAI,SAAS,kBAAkB,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,EAEtE,MAAM,EAAE,kBAAkB,CAAC,uBAAuB,CACjD,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,EAC7B,KAAK,CACL,GAAG;QACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;KACnB,GACC,kBAAkB,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;CA4BxE"}
|
package/dist/tableSchema.js
CHANGED
|
@@ -144,7 +144,7 @@ var System_TableSchema;
|
|
|
144
144
|
*/
|
|
145
145
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -- Return type is too complex to be reasonable to specify
|
|
146
146
|
function createTableSchema(inputSchemaFactory, _cellSchema, columnSchema, rowSchema) {
|
|
147
|
-
var _Table_instances, _a,
|
|
147
|
+
var _Table_instances, _a, _Table_applyEditsInBatch, _Table_tryGetColumn, _Table_getColumn, _Table_tryGetRow, _Table_getRow, _Table_validateNewColumns, _Table_validateNewRows;
|
|
148
148
|
const schemaFactory = createTableScopedFactory(inputSchemaFactory);
|
|
149
149
|
/**
|
|
150
150
|
* {@link Table} inner fields.
|
|
@@ -367,7 +367,12 @@ var System_TableSchema;
|
|
|
367
367
|
const columnsToRemove = this.table.columns.slice(startIndex, endIndex);
|
|
368
368
|
// First, remove all cells that correspond to each column from each row:
|
|
369
369
|
for (const column of columnsToRemove) {
|
|
370
|
-
|
|
370
|
+
for (const row of this.table.rows) {
|
|
371
|
+
// TypeScript is unable to narrow the row type correctly here, hence the cast.
|
|
372
|
+
// See: https://github.com/microsoft/TypeScript/issues/52144
|
|
373
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete -- This is currently how Record node entries are deleted.
|
|
374
|
+
delete row.cells[column.id];
|
|
375
|
+
}
|
|
371
376
|
}
|
|
372
377
|
// Second, remove the column nodes:
|
|
373
378
|
removeRangeFromArray(startIndex, endIndex, this.table.columns, "Table.removeColumns");
|
|
@@ -398,10 +403,8 @@ var System_TableSchema;
|
|
|
398
403
|
for (const row of this.table.rows) {
|
|
399
404
|
// TypeScript is unable to narrow the row type correctly here, hence the cast.
|
|
400
405
|
// See: https://github.com/microsoft/TypeScript/issues/52144
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
row: row,
|
|
404
|
-
});
|
|
406
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete -- This is currently how Record node entries are deleted.
|
|
407
|
+
delete row.cells[columnToRemove.id];
|
|
405
408
|
}
|
|
406
409
|
// We have already validated that all of the columns exist above, so this is safe.
|
|
407
410
|
this.table.columns.removeAt(this.table.columns.indexOf(columnToRemove));
|
|
@@ -475,7 +478,7 @@ var System_TableSchema;
|
|
|
475
478
|
}
|
|
476
479
|
__classPrivateFieldGet(this, _Table_instances, "m", _Table_applyEditsInBatch).call(this, {
|
|
477
480
|
applyEdits: () => {
|
|
478
|
-
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
481
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete -- This is currently how Record node entries are deleted.
|
|
479
482
|
delete row.cells[column.id];
|
|
480
483
|
},
|
|
481
484
|
// Relevant invariant: each cell corresponds to an existing row and column
|
|
@@ -483,12 +486,7 @@ var System_TableSchema;
|
|
|
483
486
|
// Example scenario: Client A removes a cell, then Client B removes the column for that cell.
|
|
484
487
|
// If A's cell removal is later reverted, the cell would be restored but B's column removal means there's no column for it.
|
|
485
488
|
// This constraint on revert ensures the column still exists, ensuring restored cells correspond to existing columns.
|
|
486
|
-
preconditionsOnRevert: [
|
|
487
|
-
{
|
|
488
|
-
type: "nodeInDocument",
|
|
489
|
-
node: column,
|
|
490
|
-
},
|
|
491
|
-
],
|
|
489
|
+
preconditionsOnRevert: [{ type: "nodeInDocument", node: column }],
|
|
492
490
|
});
|
|
493
491
|
return cell;
|
|
494
492
|
}
|
|
@@ -570,16 +568,7 @@ var System_TableSchema;
|
|
|
570
568
|
throw new internal_2.UsageError(`The specified row node with ID "${rowOrIdOrIndex.id}" does not exist in the table.`);
|
|
571
569
|
}
|
|
572
570
|
}
|
|
573
|
-
_a = Table, _Table_instances = new WeakSet(),
|
|
574
|
-
for (const row of this.table.rows) {
|
|
575
|
-
// TypeScript is unable to narrow the row type correctly here, hence the cast.
|
|
576
|
-
// See: https://github.com/microsoft/TypeScript/issues/52144
|
|
577
|
-
this.removeCell({
|
|
578
|
-
column,
|
|
579
|
-
row: row,
|
|
580
|
-
});
|
|
581
|
-
}
|
|
582
|
-
}, _Table_applyEditsInBatch = function _Table_applyEditsInBatch(options) {
|
|
571
|
+
_a = Table, _Table_instances = new WeakSet(), _Table_applyEditsInBatch = function _Table_applyEditsInBatch(options) {
|
|
583
572
|
const { applyEdits, preconditions, preconditionsOnRevert } = options;
|
|
584
573
|
const branch = index_js_2.TreeAlpha.branch(this);
|
|
585
574
|
// Ensure events are paused until all of the edits are applied.
|