fluid-framework 2.23.0-325054 → 2.30.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 +38 -0
- package/api-report/fluid-framework.alpha.api.md +34 -146
- package/api-report/fluid-framework.beta.api.md +9 -101
- package/api-report/fluid-framework.legacy.alpha.api.md +9 -101
- package/api-report/fluid-framework.legacy.public.api.md +9 -101
- package/api-report/fluid-framework.public.api.md +9 -101
- package/dist/alpha.d.ts +5 -18
- package/dist/beta.d.ts +0 -15
- package/dist/legacy.d.ts +0 -15
- package/dist/public.d.ts +0 -15
- package/lib/alpha.d.ts +5 -18
- package/lib/beta.d.ts +0 -15
- package/lib/legacy.d.ts +0 -15
- package/lib/public.d.ts +0 -15
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# fluid-framework
|
|
2
2
|
|
|
3
|
+
## 2.30.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- New SchemaFactoryAlpha.scopedFactory method ([#23987](https://github.com/microsoft/FluidFramework/pull/23987)) [cddd5139c3](https://github.com/microsoft/FluidFramework/commit/cddd5139c3e070ef26db55331528435a99c0a1b1)
|
|
8
|
+
|
|
9
|
+
The [`SchemaFactoryAlpha.scopedFactory`](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class)
|
|
10
|
+
method has been added, providing an easy way to create a new `SchemaFactory` with a nested scope string.
|
|
11
|
+
|
|
12
|
+
- TreeBranchEvents now exposes the rootChanged event ([#24014](https://github.com/microsoft/FluidFramework/pull/24014)) [702a08af83](https://github.com/microsoft/FluidFramework/commit/702a08af83206c21e1016ca47051052fa8554aa5)
|
|
13
|
+
|
|
14
|
+
`TreeBranchEvents` now includes the `rootChanged` event from `TreeViewEvents`.
|
|
15
|
+
|
|
16
|
+
- Alpha APIs for replacing handles in export formats have been redesigned ([#24061](https://github.com/microsoft/FluidFramework/pull/24061)) [34b319cae7](https://github.com/microsoft/FluidFramework/commit/34b319cae7a78db5530dc898689e2eb846f1419f)
|
|
17
|
+
|
|
18
|
+
The various import and export [`VerboseTree`](https://fluidframework.com/docs/api/fluid-framework/verbosetree-typealias) and [`ConciseTree`](https://fluidframework.com/docs/api/fluid-framework/concisetree-typealias) APIs no longer include `valueConverter` options.
|
|
19
|
+
Instead the resulting tree can be further processed to do any desired replacements.
|
|
20
|
+
The following `@alpha` APIs have been added to assist with this:
|
|
21
|
+
|
|
22
|
+
1. `cloneWithReplacements`
|
|
23
|
+
2. `replaceHandles`
|
|
24
|
+
3. `replaceConciseTreeHandles`
|
|
25
|
+
4. `replaceVerboseTreeHandles`
|
|
26
|
+
|
|
27
|
+
- Rules regarding how and when lazy schema references are resolved have been clarified ([#24030](https://github.com/microsoft/FluidFramework/pull/24030)) [23f32794db](https://github.com/microsoft/FluidFramework/commit/23f32794dbd3672dcc18e2a9ba2f16f4bf1241f0)
|
|
28
|
+
|
|
29
|
+
A lazy schema reference is a [LazyItem](https://fluidframework.com/docs/api/fluid-framework/lazyitem-typealias) referencing a [TreeNodeSchema](https://fluidframework.com/docs/api/fluid-framework/treenodeschema-typealias).
|
|
30
|
+
They typically look like `() => MySchema` and are used when a [forward reference](https://en.wikipedia.org/wiki/Forward_declaration#Forward_reference) from one schema to another is required (including but not limited to recursive and co-recursive schema).
|
|
31
|
+
|
|
32
|
+
[TreeViewConfiguration](https://fluidframework.com/docs/api/fluid-framework/treeviewconfiguration-class#_constructor_-constructor) now documents its significance with respect to lazy schema references.
|
|
33
|
+
Additionally some implicit assumptions like no modifications of [AllowedTypes](https://fluidframework.com/docs/api/fluid-framework/allowedtypes-typealias)
|
|
34
|
+
after resolving of lazy schema references have been enforced (such modifications would previously cause undefined behavior in the future, and now an error is thrown when trying to modify them).
|
|
35
|
+
|
|
36
|
+
`evaluateLazySchema` has been added as an `@alpha` API that is now consistently used by all internal code when evaluating lazy schema references.
|
|
37
|
+
This ensures consistent behavior and error reporting, but also adds caching.
|
|
38
|
+
Therefore it is now supported for applications to have lazy schema references which compute the schema when invoked,
|
|
39
|
+
without having to implement their own caching as long as those applications use `evaluateLazySchema` anytime they need to evaluate a lazy schema reference.
|
|
40
|
+
|
|
3
41
|
## 2.23.0
|
|
4
42
|
|
|
5
43
|
### Minor Changes
|
|
@@ -28,22 +28,11 @@ type ApplyKind<T, Kind extends FieldKind> = {
|
|
|
28
28
|
[FieldKind.Identifier]: T;
|
|
29
29
|
}[Kind];
|
|
30
30
|
|
|
31
|
-
// @public
|
|
32
|
-
export type ApplyKindAssignment<T, Kind extends FieldKind> = [Kind] extends [
|
|
33
|
-
FieldKind.Required
|
|
34
|
-
] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : never;
|
|
35
|
-
|
|
36
31
|
// @public
|
|
37
32
|
type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = [
|
|
38
33
|
Kind
|
|
39
34
|
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
40
35
|
|
|
41
|
-
// @public
|
|
42
|
-
export type AssignableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = SchemaUnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindAssignment<GetTypes<Types>["readWrite"], Kind> : [TSchema] extends [ImplicitAllowedTypes] ? GetTypes<TSchema>["readWrite"] : never;
|
|
43
|
-
|
|
44
|
-
// @public
|
|
45
|
-
export type AssignableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKindAssignment<GetTypesUnsafe<Types>["readWrite"], Kind> : GetTypesUnsafe<TSchema>["readWrite"];
|
|
46
|
-
|
|
47
36
|
// @alpha
|
|
48
37
|
export function asTreeViewAlpha<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): TreeViewAlpha<TSchema>;
|
|
49
38
|
|
|
@@ -62,6 +51,12 @@ export interface BranchableTree extends ViewableTree {
|
|
|
62
51
|
rebase(branch: TreeBranchFork): void;
|
|
63
52
|
}
|
|
64
53
|
|
|
54
|
+
// @alpha
|
|
55
|
+
export function cloneWithReplacements(root: unknown, rootKey: string, replacer: (key: string, value: unknown) => {
|
|
56
|
+
clone: boolean;
|
|
57
|
+
value: unknown;
|
|
58
|
+
}): unknown;
|
|
59
|
+
|
|
65
60
|
// @public
|
|
66
61
|
export enum CommitKind {
|
|
67
62
|
Default = 0,
|
|
@@ -78,13 +73,6 @@ export interface CommitMetadata {
|
|
|
78
73
|
// @alpha
|
|
79
74
|
export function comparePersistedSchema(persisted: JsonCompatible, view: ImplicitFieldSchema, options: ICodecOptions, canInitialize: boolean): SchemaCompatibilityStatus;
|
|
80
75
|
|
|
81
|
-
// @alpha
|
|
82
|
-
export namespace Component {
|
|
83
|
-
export type ComponentSchemaCollection<TConfig, TSchema> = (lazyConfiguration: () => TConfig) => LazyArray<TSchema>;
|
|
84
|
-
export function composeComponentSchema<TConfig, TItem>(allComponents: readonly ComponentSchemaCollection<TConfig, TItem>[], lazyConfiguration: () => TConfig): (() => TItem)[];
|
|
85
|
-
export type LazyArray<T> = readonly (() => T)[];
|
|
86
|
-
}
|
|
87
|
-
|
|
88
76
|
// @alpha
|
|
89
77
|
export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
|
|
90
78
|
[key: string]: ConciseTree<THandle>;
|
|
@@ -136,70 +124,13 @@ export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema,
|
|
|
136
124
|
// @alpha
|
|
137
125
|
export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue, TSchema extends TreeNodeSchema>(view: TreeView<TFieldSchema>, indexer: Map<TreeNodeSchema, string>, getValue: (nodes: TreeIndexNodes<NodeFromSchema<TSchema>>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey, indexableSchema: readonly TSchema[]): SimpleTreeIndex<TKey, TValue>;
|
|
138
126
|
|
|
139
|
-
// @public
|
|
140
|
-
export type CustomizedSchemaTyping<TSchema, TCustom extends CustomTypes> = TSchema & {
|
|
141
|
-
[CustomizedTyping]: TCustom;
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
// @public
|
|
145
|
-
export const CustomizedTyping: unique symbol;
|
|
146
|
-
|
|
147
|
-
// @public
|
|
148
|
-
export type CustomizedTyping = typeof CustomizedTyping;
|
|
149
|
-
|
|
150
|
-
// @alpha @sealed
|
|
151
|
-
export interface Customizer<TSchema extends ImplicitAllowedTypes> {
|
|
152
|
-
custom<T extends Partial<CustomTypes>>(): CustomizedSchemaTyping<TSchema, {
|
|
153
|
-
[Property in keyof CustomTypes]: Property extends keyof T ? T[Property] extends CustomTypes[Property] ? T[Property] : GetTypes<TSchema>[Property] : GetTypes<TSchema>[Property];
|
|
154
|
-
}>;
|
|
155
|
-
relaxed(): CustomizedSchemaTyping<TSchema, {
|
|
156
|
-
input: TreeNodeSchema extends TSchema ? InsertableContent : TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? TSchema[number] extends LazyItem<infer TSchemaInner extends TreeNodeSchema> ? InsertableTypedNode<TSchemaInner, TSchemaInner> : never : never;
|
|
157
|
-
readWrite: TreeNodeFromImplicitAllowedTypes<TSchema>;
|
|
158
|
-
output: TreeNodeFromImplicitAllowedTypes<TSchema>;
|
|
159
|
-
}>;
|
|
160
|
-
simplified<T extends TreeNodeFromImplicitAllowedTypes<TSchema>>(): CustomizedSchemaTyping<TSchema, {
|
|
161
|
-
input: T;
|
|
162
|
-
readWrite: T;
|
|
163
|
-
output: T;
|
|
164
|
-
}>;
|
|
165
|
-
simplifiedUnrestricted<T extends TreeNode | TreeLeafValue>(): CustomizedSchemaTyping<TSchema, {
|
|
166
|
-
input: T;
|
|
167
|
-
readWrite: T;
|
|
168
|
-
output: T;
|
|
169
|
-
}>;
|
|
170
|
-
strict(): CustomizedSchemaTyping<TSchema, StrictTypes<TSchema>>;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// @alpha
|
|
174
|
-
export function customizeSchemaTyping<const TSchema extends ImplicitAllowedTypes>(schema: TSchema): Customizer<TSchema>;
|
|
175
|
-
|
|
176
|
-
// @public @sealed
|
|
177
|
-
export interface CustomTypes {
|
|
178
|
-
readonly input: unknown;
|
|
179
|
-
readonly output: TreeLeafValue | TreeNode;
|
|
180
|
-
readonly readWrite: TreeLeafValue | TreeNode;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// @public
|
|
184
|
-
export type DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [TSchema] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
185
|
-
|
|
186
|
-
// @public
|
|
187
|
-
export type DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
188
|
-
|
|
189
127
|
// @public @sealed
|
|
190
128
|
interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
|
|
191
129
|
}
|
|
192
130
|
|
|
193
|
-
// @public
|
|
194
|
-
export type DefaultTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
195
|
-
|
|
196
|
-
// @public
|
|
197
|
-
export type DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
198
|
-
|
|
199
131
|
// @alpha
|
|
200
|
-
export interface EncodeOptions
|
|
132
|
+
export interface EncodeOptions {
|
|
201
133
|
readonly useStoredKeys?: boolean;
|
|
202
|
-
valueConverter(data: IFluidHandle): TCustom;
|
|
203
134
|
}
|
|
204
135
|
|
|
205
136
|
// @alpha
|
|
@@ -337,15 +268,8 @@ export function getBranch<T extends ImplicitFieldSchema | UnsafeUnknownSchema>(v
|
|
|
337
268
|
// @alpha
|
|
338
269
|
export function getJsonSchema(schema: ImplicitFieldSchema): JsonTreeSchema;
|
|
339
270
|
|
|
340
|
-
// @
|
|
341
|
-
export type
|
|
342
|
-
CustomizedSchemaTyping<unknown, infer TCustom>
|
|
343
|
-
] ? TCustom : StrictTypes<TSchema>;
|
|
344
|
-
|
|
345
|
-
// @public
|
|
346
|
-
export type GetTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [
|
|
347
|
-
TSchema
|
|
348
|
-
] extends [CustomizedSchemaTyping<unknown, infer TCustom>] ? TCustom : StrictTypesUnsafe<TSchema>;
|
|
271
|
+
// @alpha
|
|
272
|
+
export type HandleConverter<TCustom> = (data: IFluidHandle) => TCustom;
|
|
349
273
|
|
|
350
274
|
// @alpha
|
|
351
275
|
export interface ICodecOptions {
|
|
@@ -634,7 +558,7 @@ type _InlineTrick = 0;
|
|
|
634
558
|
export type Input<T extends never> = T;
|
|
635
559
|
|
|
636
560
|
// @alpha
|
|
637
|
-
export type Insertable<TSchema extends ImplicitAllowedTypes> = InsertableTreeNodeFromImplicitAllowedTypes<TSchema
|
|
561
|
+
export type Insertable<TSchema extends ImplicitAllowedTypes | UnsafeUnknownSchema> = TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : InsertableContent;
|
|
638
562
|
|
|
639
563
|
// @alpha
|
|
640
564
|
export type InsertableContent = Unhydrated<TreeNode> | FactoryContent;
|
|
@@ -659,7 +583,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
659
583
|
};
|
|
660
584
|
|
|
661
585
|
// @public
|
|
662
|
-
export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema =
|
|
586
|
+
export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
|
|
663
587
|
|
|
664
588
|
// @public
|
|
665
589
|
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends Unenforced<ImplicitFieldSchema>, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchemaUnsafe<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : never;
|
|
@@ -677,10 +601,12 @@ LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
|
677
601
|
] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
|
|
678
602
|
|
|
679
603
|
// @public
|
|
680
|
-
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> =
|
|
604
|
+
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
605
|
+
TSchema
|
|
606
|
+
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
681
607
|
|
|
682
608
|
// @public
|
|
683
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> =
|
|
609
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
684
610
|
|
|
685
611
|
// @public
|
|
686
612
|
export type InsertableTypedNode<TSchema extends TreeNodeSchema, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderData<T> : never) | (T extends TreeNodeSchema ? Unhydrated<TreeNode extends NodeFromSchema<T> ? never : NodeFromSchema<T>> : never);
|
|
@@ -971,39 +897,20 @@ export const noopValidator: JsonValidator;
|
|
|
971
897
|
|
|
972
898
|
// @public
|
|
973
899
|
type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = {
|
|
974
|
-
-readonly [Property in keyof T
|
|
975
|
-
AssignableTreeFieldFromImplicitField<T[Property & string]>
|
|
976
|
-
] extends [never | undefined] ? never : Property]: AssignableTreeFieldFromImplicitField<T[Property & string]>;
|
|
977
|
-
} & {
|
|
978
|
-
readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property & string]>;
|
|
900
|
+
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
979
901
|
};
|
|
980
902
|
|
|
981
903
|
// @public
|
|
982
904
|
type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>> = {
|
|
983
|
-
-readonly [Property in keyof T
|
|
984
|
-
CustomizedSchemaTyping<unknown, {
|
|
985
|
-
readonly readWrite: never;
|
|
986
|
-
readonly input: unknown;
|
|
987
|
-
readonly output: TreeNode | TreeLeafValue;
|
|
988
|
-
}>
|
|
989
|
-
] ? never : Property]: AssignableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
990
|
-
} & {
|
|
991
|
-
readonly [Property in keyof T as [T[Property]] extends [
|
|
992
|
-
CustomizedSchemaTyping<unknown, {
|
|
993
|
-
readonly readWrite: never;
|
|
994
|
-
readonly input: unknown;
|
|
995
|
-
readonly output: TreeNode | TreeLeafValue;
|
|
996
|
-
}>
|
|
997
|
-
] ? Property : never]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
905
|
+
-readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
998
906
|
};
|
|
999
907
|
|
|
1000
908
|
// @public
|
|
1001
909
|
export type Off = () => void;
|
|
1002
910
|
|
|
1003
911
|
// @alpha
|
|
1004
|
-
export interface ParseOptions
|
|
912
|
+
export interface ParseOptions {
|
|
1005
913
|
readonly useStoredKeys?: boolean;
|
|
1006
|
-
valueConverter(data: VerboseTree<TCustom>): TreeLeafValue | VerboseTreeNode<TCustom>;
|
|
1007
914
|
}
|
|
1008
915
|
|
|
1009
916
|
// @alpha
|
|
@@ -1037,11 +944,20 @@ export type ReadSchema<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema
|
|
|
1037
944
|
TSchema
|
|
1038
945
|
] extends [ImplicitFieldSchema] ? TSchema : ImplicitFieldSchema;
|
|
1039
946
|
|
|
947
|
+
// @alpha
|
|
948
|
+
export function replaceConciseTreeHandles<T>(tree: ConciseTree, replacer: HandleConverter<T>): ConciseTree<T>;
|
|
949
|
+
|
|
950
|
+
// @alpha
|
|
951
|
+
export function replaceHandles<T>(tree: unknown, replacer: HandleConverter<T>): unknown;
|
|
952
|
+
|
|
1040
953
|
// @public
|
|
1041
954
|
export type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
|
|
1042
955
|
[K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
|
|
1043
956
|
} : L;
|
|
1044
957
|
|
|
958
|
+
// @alpha
|
|
959
|
+
export function replaceVerboseTreeHandles<T>(tree: VerboseTree, replacer: HandleConverter<T>): VerboseTree<T>;
|
|
960
|
+
|
|
1045
961
|
// @public @deprecated
|
|
1046
962
|
export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
|
|
1047
963
|
readonly [P in symbol | string]: P extends K ? T : never;
|
|
@@ -1174,6 +1090,7 @@ export class SchemaFactoryAlpha<out TScope extends string | undefined = string |
|
|
|
1174
1090
|
}, false, T, undefined, TCustomMetadata>;
|
|
1175
1091
|
object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: SchemaFactoryObjectOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T, never, TCustomMetadata>;
|
|
1176
1092
|
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>, const TCustomMetadata = unknown>(name: Name, t: T, options?: SchemaFactoryObjectOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecordUnsafe<T>, false, T, never, TCustomMetadata>;
|
|
1093
|
+
scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
|
|
1177
1094
|
}
|
|
1178
1095
|
|
|
1179
1096
|
// @alpha
|
|
@@ -1195,11 +1112,6 @@ export const schemaStatics: {
|
|
|
1195
1112
|
readonly requiredRecursive: <const T_3 extends unknown>(t: T_3, props?: Omit<FieldProps, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Required, T_3>;
|
|
1196
1113
|
};
|
|
1197
1114
|
|
|
1198
|
-
// @public
|
|
1199
|
-
export type SchemaUnionToIntersection<T> = [T] extends [
|
|
1200
|
-
CustomizedSchemaTyping<unknown, CustomTypes>
|
|
1201
|
-
] ? T : UnionToIntersection<T>;
|
|
1202
|
-
|
|
1203
1115
|
// @alpha
|
|
1204
1116
|
export interface SchemaValidationFunction<Schema extends TSchema> {
|
|
1205
1117
|
check(data: unknown): data is Static<Schema>;
|
|
@@ -1243,26 +1155,6 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
1243
1155
|
readonly value: TName;
|
|
1244
1156
|
}, Record<string, never>, true, Record<string, never>, undefined>;
|
|
1245
1157
|
|
|
1246
|
-
// @public @sealed
|
|
1247
|
-
export interface StrictTypes<TSchema extends ImplicitAllowedTypes, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema>, TOutput extends TreeNode | TreeLeafValue = DefaultTreeNodeFromImplicitAllowedTypes<TSchema>> {
|
|
1248
|
-
// (undocumented)
|
|
1249
|
-
input: TInput;
|
|
1250
|
-
// (undocumented)
|
|
1251
|
-
output: TOutput;
|
|
1252
|
-
// (undocumented)
|
|
1253
|
-
readWrite: TInput extends never ? never : TOutput;
|
|
1254
|
-
}
|
|
1255
|
-
|
|
1256
|
-
// @public
|
|
1257
|
-
export interface StrictTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>, TOutput = DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>> {
|
|
1258
|
-
// (undocumented)
|
|
1259
|
-
input: TInput;
|
|
1260
|
-
// (undocumented)
|
|
1261
|
-
output: TOutput;
|
|
1262
|
-
// (undocumented)
|
|
1263
|
-
readWrite: TOutput;
|
|
1264
|
-
}
|
|
1265
|
-
|
|
1266
1158
|
// @public
|
|
1267
1159
|
export interface Tagged<V, T extends string = string> {
|
|
1268
1160
|
// (undocumented)
|
|
@@ -1317,12 +1209,9 @@ export const TreeAlpha: {
|
|
|
1317
1209
|
branch(node: TreeNode): TreeBranch | undefined;
|
|
1318
1210
|
create<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: InsertableField<TSchema>): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
|
|
1319
1211
|
importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: ConciseTree | undefined): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
|
|
1320
|
-
importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: Partial<ParseOptions
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
exportConcise<THandle>(node: TreeNode | TreeLeafValue, options: EncodeOptions<THandle>): ConciseTree<THandle>;
|
|
1324
|
-
exportVerbose(node: TreeNode | TreeLeafValue, options?: Partial<EncodeOptions<IFluidHandle>>): VerboseTree;
|
|
1325
|
-
exportVerbose<T>(node: TreeNode | TreeLeafValue, options: EncodeOptions<T>): VerboseTree<T>;
|
|
1212
|
+
importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: Partial<ParseOptions>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1213
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: EncodeOptions): ConciseTree;
|
|
1214
|
+
exportVerbose(node: TreeNode | TreeLeafValue, options?: EncodeOptions): VerboseTree;
|
|
1326
1215
|
exportCompressed(tree: TreeNode | TreeLeafValue, options: {
|
|
1327
1216
|
oldestCompatibleClient: FluidClientVersion;
|
|
1328
1217
|
idCompressor?: IIdCompressor;
|
|
@@ -1386,10 +1275,9 @@ export interface TreeBranch extends IDisposable {
|
|
|
1386
1275
|
}
|
|
1387
1276
|
|
|
1388
1277
|
// @alpha @sealed
|
|
1389
|
-
export interface TreeBranchEvents {
|
|
1278
|
+
export interface TreeBranchEvents extends Omit<TreeViewEvents, "commitApplied"> {
|
|
1390
1279
|
changed(data: CommitMetadata, getRevertible?: RevertibleAlphaFactory): void;
|
|
1391
1280
|
commitApplied(data: CommitMetadata, getRevertible?: RevertibleAlphaFactory): void;
|
|
1392
|
-
schemaChanged(): void;
|
|
1393
1281
|
}
|
|
1394
1282
|
|
|
1395
1283
|
// @alpha @sealed
|
|
@@ -1472,10 +1360,10 @@ export interface TreeNodeApi {
|
|
|
1472
1360
|
}
|
|
1473
1361
|
|
|
1474
1362
|
// @public
|
|
1475
|
-
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> =
|
|
1363
|
+
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
1476
1364
|
|
|
1477
1365
|
// @public
|
|
1478
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> =
|
|
1366
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
1479
1367
|
|
|
1480
1368
|
// @public @sealed
|
|
1481
1369
|
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TCustomMetadata = unknown> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata>;
|
|
@@ -17,22 +17,11 @@ type ApplyKind<T, Kind extends FieldKind> = {
|
|
|
17
17
|
[FieldKind.Identifier]: T;
|
|
18
18
|
}[Kind];
|
|
19
19
|
|
|
20
|
-
// @public
|
|
21
|
-
export type ApplyKindAssignment<T, Kind extends FieldKind> = [Kind] extends [
|
|
22
|
-
FieldKind.Required
|
|
23
|
-
] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : never;
|
|
24
|
-
|
|
25
20
|
// @public
|
|
26
21
|
type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = [
|
|
27
22
|
Kind
|
|
28
23
|
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
29
24
|
|
|
30
|
-
// @public
|
|
31
|
-
export type AssignableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = SchemaUnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindAssignment<GetTypes<Types>["readWrite"], Kind> : [TSchema] extends [ImplicitAllowedTypes] ? GetTypes<TSchema>["readWrite"] : never;
|
|
32
|
-
|
|
33
|
-
// @public
|
|
34
|
-
export type AssignableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKindAssignment<GetTypesUnsafe<Types>["readWrite"], Kind> : GetTypesUnsafe<TSchema>["readWrite"];
|
|
35
|
-
|
|
36
25
|
// @public
|
|
37
26
|
export enum AttachState {
|
|
38
27
|
Attached = "Attached",
|
|
@@ -81,40 +70,10 @@ export interface ContainerSchema {
|
|
|
81
70
|
readonly initialObjects: Record<string, SharedObjectKind>;
|
|
82
71
|
}
|
|
83
72
|
|
|
84
|
-
// @public
|
|
85
|
-
export type CustomizedSchemaTyping<TSchema, TCustom extends CustomTypes> = TSchema & {
|
|
86
|
-
[CustomizedTyping]: TCustom;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
// @public
|
|
90
|
-
export const CustomizedTyping: unique symbol;
|
|
91
|
-
|
|
92
|
-
// @public
|
|
93
|
-
export type CustomizedTyping = typeof CustomizedTyping;
|
|
94
|
-
|
|
95
|
-
// @public @sealed
|
|
96
|
-
export interface CustomTypes {
|
|
97
|
-
readonly input: unknown;
|
|
98
|
-
readonly output: TreeLeafValue | TreeNode;
|
|
99
|
-
readonly readWrite: TreeLeafValue | TreeNode;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// @public
|
|
103
|
-
export type DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [TSchema] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
104
|
-
|
|
105
|
-
// @public
|
|
106
|
-
export type DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
107
|
-
|
|
108
73
|
// @public @sealed
|
|
109
74
|
interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
|
|
110
75
|
}
|
|
111
76
|
|
|
112
|
-
// @public
|
|
113
|
-
export type DefaultTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
114
|
-
|
|
115
|
-
// @public
|
|
116
|
-
export type DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
117
|
-
|
|
118
77
|
// @public @sealed
|
|
119
78
|
export abstract class ErasedType<out Name = unknown> {
|
|
120
79
|
static [Symbol.hasInstance](value: never): value is never;
|
|
@@ -187,16 +146,6 @@ export type FluidObject<T = unknown> = {
|
|
|
187
146
|
// @public
|
|
188
147
|
export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string extends TProp ? never : number extends TProp ? never : TProp extends keyof Required<T>[TProp] ? Required<T>[TProp] extends Required<Required<T>[TProp]>[TProp] ? TProp : never : never;
|
|
189
148
|
|
|
190
|
-
// @public
|
|
191
|
-
export type GetTypes<TSchema extends ImplicitAllowedTypes> = [TSchema] extends [
|
|
192
|
-
CustomizedSchemaTyping<unknown, infer TCustom>
|
|
193
|
-
] ? TCustom : StrictTypes<TSchema>;
|
|
194
|
-
|
|
195
|
-
// @public
|
|
196
|
-
export type GetTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [
|
|
197
|
-
TSchema
|
|
198
|
-
] extends [CustomizedSchemaTyping<unknown, infer TCustom>] ? TCustom : StrictTypesUnsafe<TSchema>;
|
|
199
|
-
|
|
200
149
|
// @public
|
|
201
150
|
export interface IConnection {
|
|
202
151
|
readonly id: string;
|
|
@@ -482,7 +431,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
|
|
|
482
431
|
};
|
|
483
432
|
|
|
484
433
|
// @public
|
|
485
|
-
export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema =
|
|
434
|
+
export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
|
|
486
435
|
|
|
487
436
|
// @public
|
|
488
437
|
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends Unenforced<ImplicitFieldSchema>, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchemaUnsafe<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : never;
|
|
@@ -500,10 +449,12 @@ LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
|
500
449
|
] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
|
|
501
450
|
|
|
502
451
|
// @public
|
|
503
|
-
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> =
|
|
452
|
+
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
453
|
+
TSchema
|
|
454
|
+
] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
|
|
504
455
|
|
|
505
456
|
// @public
|
|
506
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> =
|
|
457
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
|
|
507
458
|
|
|
508
459
|
// @public
|
|
509
460
|
export type InsertableTypedNode<TSchema extends TreeNodeSchema, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderData<T> : never) | (T extends TreeNodeSchema ? Unhydrated<TreeNode extends NodeFromSchema<T> ? never : NodeFromSchema<T>> : never);
|
|
@@ -681,30 +632,12 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
681
632
|
|
|
682
633
|
// @public
|
|
683
634
|
type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = {
|
|
684
|
-
-readonly [Property in keyof T
|
|
685
|
-
AssignableTreeFieldFromImplicitField<T[Property & string]>
|
|
686
|
-
] extends [never | undefined] ? never : Property]: AssignableTreeFieldFromImplicitField<T[Property & string]>;
|
|
687
|
-
} & {
|
|
688
|
-
readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property & string]>;
|
|
635
|
+
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
689
636
|
};
|
|
690
637
|
|
|
691
638
|
// @public
|
|
692
639
|
type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>> = {
|
|
693
|
-
-readonly [Property in keyof T
|
|
694
|
-
CustomizedSchemaTyping<unknown, {
|
|
695
|
-
readonly readWrite: never;
|
|
696
|
-
readonly input: unknown;
|
|
697
|
-
readonly output: TreeNode | TreeLeafValue;
|
|
698
|
-
}>
|
|
699
|
-
] ? never : Property]: AssignableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
700
|
-
} & {
|
|
701
|
-
readonly [Property in keyof T as [T[Property]] extends [
|
|
702
|
-
CustomizedSchemaTyping<unknown, {
|
|
703
|
-
readonly readWrite: never;
|
|
704
|
-
readonly input: unknown;
|
|
705
|
-
readonly output: TreeNode | TreeLeafValue;
|
|
706
|
-
}>
|
|
707
|
-
] ? Property : never]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
640
|
+
-readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
708
641
|
};
|
|
709
642
|
|
|
710
643
|
// @public
|
|
@@ -851,11 +784,6 @@ export const schemaStatics: {
|
|
|
851
784
|
readonly requiredRecursive: <const T_3 extends unknown>(t: T_3, props?: Omit<FieldProps, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Required, T_3>;
|
|
852
785
|
};
|
|
853
786
|
|
|
854
|
-
// @public
|
|
855
|
-
export type SchemaUnionToIntersection<T> = [T] extends [
|
|
856
|
-
CustomizedSchemaTyping<unknown, CustomTypes>
|
|
857
|
-
] ? T : UnionToIntersection<T>;
|
|
858
|
-
|
|
859
787
|
// @public
|
|
860
788
|
type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
|
|
861
789
|
|
|
@@ -867,26 +795,6 @@ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedTyp
|
|
|
867
795
|
// @public
|
|
868
796
|
export const SharedTree: SharedObjectKind<ITree>;
|
|
869
797
|
|
|
870
|
-
// @public @sealed
|
|
871
|
-
export interface StrictTypes<TSchema extends ImplicitAllowedTypes, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema>, TOutput extends TreeNode | TreeLeafValue = DefaultTreeNodeFromImplicitAllowedTypes<TSchema>> {
|
|
872
|
-
// (undocumented)
|
|
873
|
-
input: TInput;
|
|
874
|
-
// (undocumented)
|
|
875
|
-
output: TOutput;
|
|
876
|
-
// (undocumented)
|
|
877
|
-
readWrite: TInput extends never ? never : TOutput;
|
|
878
|
-
}
|
|
879
|
-
|
|
880
|
-
// @public
|
|
881
|
-
export interface StrictTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>, TOutput = DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>> {
|
|
882
|
-
// (undocumented)
|
|
883
|
-
input: TInput;
|
|
884
|
-
// (undocumented)
|
|
885
|
-
output: TOutput;
|
|
886
|
-
// (undocumented)
|
|
887
|
-
readWrite: TOutput;
|
|
888
|
-
}
|
|
889
|
-
|
|
890
798
|
// @public
|
|
891
799
|
export interface Tagged<V, T extends string = string> {
|
|
892
800
|
// (undocumented)
|
|
@@ -1008,10 +916,10 @@ export interface TreeNodeApi {
|
|
|
1008
916
|
}
|
|
1009
917
|
|
|
1010
918
|
// @public
|
|
1011
|
-
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> =
|
|
919
|
+
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
1012
920
|
|
|
1013
921
|
// @public
|
|
1014
|
-
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> =
|
|
922
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
|
|
1015
923
|
|
|
1016
924
|
// @public @sealed
|
|
1017
925
|
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TCustomMetadata = unknown> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata>;
|