fluid-framework 2.63.0-359286 → 2.63.0-359734
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api-report/fluid-framework.alpha.api.md +99 -98
- package/api-report/fluid-framework.beta.api.md +37 -2
- package/api-report/fluid-framework.legacy.beta.api.md +37 -2
- package/api-report/fluid-framework.legacy.public.api.md +9 -2
- package/api-report/fluid-framework.public.api.md +9 -2
- package/dist/alpha.d.ts +12 -13
- package/dist/beta.d.ts +5 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +5 -0
- package/dist/public.d.ts +1 -0
- package/lib/alpha.d.ts +12 -13
- package/lib/beta.d.ts +5 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +5 -0
- package/lib/public.d.ts +1 -0
- package/package.json +12 -12
- package/src/index.ts +2 -0
|
@@ -24,6 +24,15 @@ export interface AllowedTypeMetadata {
|
|
|
24
24
|
// @public @system
|
|
25
25
|
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
26
26
|
|
|
27
|
+
// @alpha @sealed
|
|
28
|
+
export type AllowedTypesFull<T extends readonly AnnotatedAllowedType[] = readonly AnnotatedAllowedType[]> = AnnotatedAllowedTypes<T> & UnannotateAllowedTypesList<T>;
|
|
29
|
+
|
|
30
|
+
// @alpha @sealed
|
|
31
|
+
export type AllowedTypesFullEvaluated = AllowedTypesFull<readonly AnnotatedAllowedType<TreeNodeSchema>[]>;
|
|
32
|
+
|
|
33
|
+
// @alpha @sealed
|
|
34
|
+
export type AllowedTypesFullFromMixed<T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]> = UnannotateAllowedTypesList<T> & AnnotatedAllowedTypes<AnnotateAllowedTypesList<T>>;
|
|
35
|
+
|
|
27
36
|
// @alpha @input
|
|
28
37
|
export interface AllowedTypesMetadata {
|
|
29
38
|
readonly custom?: unknown;
|
|
@@ -32,6 +41,11 @@ export interface AllowedTypesMetadata {
|
|
|
32
41
|
// @alpha
|
|
33
42
|
export function allowUnused<T>(t?: T): void;
|
|
34
43
|
|
|
44
|
+
// @alpha @system
|
|
45
|
+
export type AnnotateAllowedTypesList<T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]> = {
|
|
46
|
+
[I in keyof T]: T[I] extends AnnotatedAllowedType<unknown> ? T[I] : AnnotatedAllowedType<T[I]>;
|
|
47
|
+
};
|
|
48
|
+
|
|
35
49
|
// @alpha @sealed
|
|
36
50
|
export interface AnnotatedAllowedType<T = LazyItem<TreeNodeSchema>> {
|
|
37
51
|
readonly metadata: AllowedTypeMetadata;
|
|
@@ -39,9 +53,12 @@ export interface AnnotatedAllowedType<T = LazyItem<TreeNodeSchema>> {
|
|
|
39
53
|
}
|
|
40
54
|
|
|
41
55
|
// @alpha @sealed
|
|
42
|
-
export interface AnnotatedAllowedTypes<T =
|
|
56
|
+
export interface AnnotatedAllowedTypes<T = readonly AnnotatedAllowedType[]> extends ErasedBaseType<"tree.AnnotatedAllowedTypes"> {
|
|
57
|
+
evaluate(): AllowedTypesFullEvaluated;
|
|
58
|
+
evaluateIdentifiers(): ReadonlySet<string>;
|
|
59
|
+
evaluateSet(): ReadonlySet<TreeNodeSchema>;
|
|
43
60
|
readonly metadata: AllowedTypesMetadata;
|
|
44
|
-
readonly types:
|
|
61
|
+
readonly types: T;
|
|
45
62
|
}
|
|
46
63
|
|
|
47
64
|
// @public @system
|
|
@@ -57,7 +74,7 @@ Kind
|
|
|
57
74
|
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
58
75
|
|
|
59
76
|
// @alpha @sealed @system
|
|
60
|
-
export interface ArrayNodeCustomizableSchema<out TName extends string = string, in out T extends
|
|
77
|
+
export interface ArrayNodeCustomizableSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Array, TreeArrayNode<T> & WithType<TName, NodeKind.Array, T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleArrayNodeSchema<TCustomMetadata> {
|
|
61
78
|
}
|
|
62
79
|
|
|
63
80
|
// @alpha @sealed @system
|
|
@@ -67,7 +84,7 @@ export interface ArrayNodeCustomizableSchemaUnsafe<out TName extends string, in
|
|
|
67
84
|
}
|
|
68
85
|
|
|
69
86
|
// @alpha @sealed @system
|
|
70
|
-
export interface ArrayNodePojoEmulationSchema<out TName extends string = string, in out T extends
|
|
87
|
+
export interface ArrayNodePojoEmulationSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaNonClass<TName, NodeKind.Array, TreeArrayNode<T> & WithType<TName, NodeKind.Array, T>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleArrayNodeSchema<TCustomMetadata> {
|
|
71
88
|
}
|
|
72
89
|
|
|
73
90
|
// @alpha
|
|
@@ -126,7 +143,7 @@ export interface CommitMetadata {
|
|
|
126
143
|
// @alpha
|
|
127
144
|
export function comparePersistedSchema(persisted: JsonCompatible, view: ImplicitFieldSchema, options: ICodecOptions): Omit<SchemaCompatibilityStatus, "canInitialize">;
|
|
128
145
|
|
|
129
|
-
// @
|
|
146
|
+
// @beta
|
|
130
147
|
export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
|
|
131
148
|
[key: string]: ConciseTree<THandle>;
|
|
132
149
|
};
|
|
@@ -210,6 +227,12 @@ export function enumFromStrings<TScope extends string, const Members extends rea
|
|
|
210
227
|
}, Record<string, never>, true, Record<string, never>, undefined>; }[Members[number]] : never>;
|
|
211
228
|
};
|
|
212
229
|
|
|
230
|
+
// @alpha @sealed @system
|
|
231
|
+
export abstract class ErasedBaseType<out Name = unknown> {
|
|
232
|
+
protected constructor();
|
|
233
|
+
protected abstract brand(dummy: never): Name;
|
|
234
|
+
}
|
|
235
|
+
|
|
213
236
|
// @public @sealed
|
|
214
237
|
export abstract class ErasedType<out Name = unknown> {
|
|
215
238
|
static [Symbol.hasInstance](value: never): value is never;
|
|
@@ -223,7 +246,7 @@ export function evaluateLazySchema<T extends TreeNodeSchema>(value: LazyItem<T>)
|
|
|
223
246
|
type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
|
|
224
247
|
|
|
225
248
|
// @alpha
|
|
226
|
-
export function extractPersistedSchema(schema:
|
|
249
|
+
export function extractPersistedSchema(schema: ImplicitFieldSchema, oldestCompatibleClient: FluidClientVersion, includeStaged: (upgrade: SchemaUpgrade) => boolean): JsonCompatible;
|
|
227
250
|
|
|
228
251
|
// @alpha @system
|
|
229
252
|
export type FactoryContent = IFluidHandle | string | number | boolean | null | Iterable<readonly [string, InsertableContent]> | readonly InsertableContent[] | FactoryContentObject;
|
|
@@ -274,13 +297,10 @@ export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types exten
|
|
|
274
297
|
|
|
275
298
|
// @alpha @sealed
|
|
276
299
|
export class FieldSchemaAlpha<Kind extends FieldKind = FieldKind, Types extends ImplicitAllowedTypes = ImplicitAllowedTypes, TCustomMetadata = unknown> extends FieldSchema<Kind, Types, TCustomMetadata> implements SimpleFieldSchema {
|
|
277
|
-
protected constructor(kind: Kind, types: Types,
|
|
300
|
+
protected constructor(kind: Kind, types: Types, props?: FieldPropsAlpha<TCustomMetadata>);
|
|
301
|
+
readonly allowedTypesFull: AllowedTypesFull;
|
|
278
302
|
// (undocumented)
|
|
279
303
|
get allowedTypesIdentifiers(): ReadonlySet<string>;
|
|
280
|
-
readonly allowedTypesMetadata: AllowedTypesMetadata;
|
|
281
|
-
// (undocumented)
|
|
282
|
-
readonly annotatedAllowedTypes: ImplicitAnnotatedAllowedTypes;
|
|
283
|
-
get annotatedAllowedTypesNormalized(): NormalizedAnnotatedAllowedTypes;
|
|
284
304
|
// (undocumented)
|
|
285
305
|
get persistedMetadata(): JsonCompatibleReadOnlyObject | undefined;
|
|
286
306
|
}
|
|
@@ -656,12 +676,6 @@ export interface IMember {
|
|
|
656
676
|
// @public
|
|
657
677
|
export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
658
678
|
|
|
659
|
-
// @alpha @input
|
|
660
|
-
export type ImplicitAnnotatedAllowedTypes = TreeNodeSchema | AnnotatedAllowedType | AnnotatedAllowedTypes | readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[];
|
|
661
|
-
|
|
662
|
-
// @alpha @input
|
|
663
|
-
export type ImplicitAnnotatedFieldSchema = FieldSchema | ImplicitAnnotatedAllowedTypes;
|
|
664
|
-
|
|
665
679
|
// @public
|
|
666
680
|
export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
|
|
667
681
|
|
|
@@ -695,9 +709,6 @@ export type InsertableField<TSchema extends ImplicitFieldSchema | UnsafeUnknownS
|
|
|
695
709
|
TSchema
|
|
696
710
|
] extends [ImplicitFieldSchema] ? InsertableTreeFieldFromImplicitField<TSchema> : [TSchema] extends [UnsafeUnknownSchema] ? InsertableContent | undefined : never;
|
|
697
711
|
|
|
698
|
-
// @alpha @system
|
|
699
|
-
export type InsertableObjectFromAnnotatedSchemaRecord<T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>> = InsertableObjectFromSchemaRecord<UnannotateSchemaRecord<T>>;
|
|
700
|
-
|
|
701
712
|
// @public @system
|
|
702
713
|
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {
|
|
703
714
|
arbitraryKey: "arbitraryValue";
|
|
@@ -712,8 +723,10 @@ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFi
|
|
|
712
723
|
|
|
713
724
|
// @public @system
|
|
714
725
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
|
|
715
|
-
readonly [Property in keyof TList]: TList[Property] extends
|
|
716
|
-
|
|
726
|
+
readonly [Property in keyof TList]: [TList[Property]] extends [
|
|
727
|
+
LazyItem<infer TSchema extends TreeNodeSchema>
|
|
728
|
+
] ? InsertableTypedNode<TSchema> : never;
|
|
729
|
+
}[NumberKeys<TList>];
|
|
717
730
|
|
|
718
731
|
// @public
|
|
719
732
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
@@ -920,7 +933,7 @@ export type JsonTreeSchema = JsonFieldSchema & {
|
|
|
920
933
|
readonly $defs: Record<JsonSchemaId, JsonNodeSchema>;
|
|
921
934
|
};
|
|
922
935
|
|
|
923
|
-
// @
|
|
936
|
+
// @beta @input
|
|
924
937
|
export enum KeyEncodingOptions {
|
|
925
938
|
allStoredKeys = "allStoredKeys",
|
|
926
939
|
knownStoredKeys = "knownStoredKeys",
|
|
@@ -950,7 +963,7 @@ export interface MakeNominal {
|
|
|
950
963
|
}
|
|
951
964
|
|
|
952
965
|
// @alpha @sealed @system
|
|
953
|
-
export interface MapNodeCustomizableSchema<out TName extends string = string, in out T extends
|
|
966
|
+
export interface MapNodeCustomizableSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Map, TreeMapNode<T> & WithType<TName, NodeKind.Map, T>, MapNodeInsertableData<T>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleMapNodeSchema<TCustomMetadata> {
|
|
954
967
|
}
|
|
955
968
|
|
|
956
969
|
// @alpha @sealed @system
|
|
@@ -968,7 +981,7 @@ export interface MapNodeCustomizableSchemaUnsafe<out TName extends string, in ou
|
|
|
968
981
|
export type MapNodeInsertableData<T extends ImplicitAllowedTypes> = Iterable<readonly [string, InsertableTreeNodeFromImplicitAllowedTypes<T>]> | RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
|
|
969
982
|
|
|
970
983
|
// @alpha @sealed @system
|
|
971
|
-
export interface MapNodePojoEmulationSchema<out TName extends string = string, in out T extends
|
|
984
|
+
export interface MapNodePojoEmulationSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaNonClass<TName, NodeKind.Map, TreeMapNode<T> & WithType<TName, NodeKind.Map, T>, MapNodeInsertableData<T>, ImplicitlyConstructable, T, undefined, TCustomMetadata>, SimpleMapNodeSchema<TCustomMetadata> {
|
|
972
985
|
}
|
|
973
986
|
|
|
974
987
|
// @alpha
|
|
@@ -1031,9 +1044,13 @@ export interface NodeSchemaOptionsAlpha<out TCustomMetadata = unknown> extends N
|
|
|
1031
1044
|
readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
|
|
1032
1045
|
}
|
|
1033
1046
|
|
|
1034
|
-
// @alpha
|
|
1035
|
-
export
|
|
1036
|
-
|
|
1047
|
+
// @alpha
|
|
1048
|
+
export function normalizeAllowedTypes(types: ImplicitAllowedTypes): AllowedTypesFull;
|
|
1049
|
+
|
|
1050
|
+
// @public @system
|
|
1051
|
+
export type NumberKeys<T, Transformed = {
|
|
1052
|
+
readonly [Property in keyof T as number extends Property ? never : Property]: Property;
|
|
1053
|
+
}> = Transformed[`${number}` & keyof Transformed];
|
|
1037
1054
|
|
|
1038
1055
|
// @public @system
|
|
1039
1056
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
@@ -1041,15 +1058,24 @@ export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFie
|
|
|
1041
1058
|
};
|
|
1042
1059
|
|
|
1043
1060
|
// @alpha @sealed
|
|
1044
|
-
export interface ObjectNodeSchema<out TName extends string = string, in out T extends RestrictiveStringRecord<
|
|
1061
|
+
export interface ObjectNodeSchema<out TName extends string = string, in out T extends RestrictiveStringRecord<ImplicitFieldSchema> = RestrictiveStringRecord<ImplicitFieldSchema>, ImplicitlyConstructable extends boolean = boolean, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Object, TreeObjectNode<T, TName>, InsertableObjectFromSchemaRecord<T>, ImplicitlyConstructable, T, never, TCustomMetadata>, SimpleObjectNodeSchema<TCustomMetadata> {
|
|
1045
1062
|
readonly fields: ReadonlyMap<string, FieldSchemaAlpha & SimpleObjectFieldSchema>;
|
|
1046
1063
|
}
|
|
1047
1064
|
|
|
1048
1065
|
// @alpha (undocumented)
|
|
1049
1066
|
export const ObjectNodeSchema: {
|
|
1050
|
-
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is ObjectNodeSchema<string, RestrictiveStringRecord<
|
|
1067
|
+
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is ObjectNodeSchema<string, RestrictiveStringRecord<ImplicitFieldSchema>, boolean, unknown>;
|
|
1051
1068
|
};
|
|
1052
1069
|
|
|
1070
|
+
// @beta @input
|
|
1071
|
+
export interface ObjectSchemaOptions<TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
|
|
1072
|
+
readonly allowUnknownOptionalFields?: boolean;
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
// @alpha @input
|
|
1076
|
+
export interface ObjectSchemaOptionsAlpha<TCustomMetadata = unknown> extends ObjectSchemaOptions<TCustomMetadata>, NodeSchemaOptionsAlpha<TCustomMetadata> {
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1053
1079
|
// @alpha @sealed
|
|
1054
1080
|
export interface ObservationResults<TResult> {
|
|
1055
1081
|
readonly result: TResult;
|
|
@@ -1081,22 +1107,22 @@ TSchema
|
|
|
1081
1107
|
] extends [ImplicitFieldSchema] ? TSchema : ImplicitFieldSchema;
|
|
1082
1108
|
|
|
1083
1109
|
// @alpha @sealed @system
|
|
1084
|
-
export interface RecordNodeCustomizableSchema<out TName extends string = string, in out T extends
|
|
1110
|
+
export interface RecordNodeCustomizableSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaClass<TName, NodeKind.Record, TreeRecordNode<T> & WithType<TName, NodeKind.Record, T>, RecordNodeInsertableData<T>, ImplicitlyConstructable, T, never, TCustomMetadata>, SimpleRecordNodeSchema<TCustomMetadata> {
|
|
1085
1111
|
}
|
|
1086
1112
|
|
|
1087
1113
|
// @beta @system
|
|
1088
1114
|
export type RecordNodeInsertableData<T extends ImplicitAllowedTypes> = RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
|
|
1089
1115
|
|
|
1090
1116
|
// @alpha @sealed @system
|
|
1091
|
-
export interface RecordNodePojoEmulationSchema<out TName extends string = string, in out T extends
|
|
1117
|
+
export interface RecordNodePojoEmulationSchema<out TName extends string = string, in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes, out ImplicitlyConstructable extends boolean = true, out TCustomMetadata = unknown> extends TreeNodeSchemaNonClass<TName, NodeKind.Record, TreeRecordNode<T> & WithType<TName, NodeKind.Record, T>, RecordNodeInsertableData<T>, ImplicitlyConstructable, T, never, TCustomMetadata>, SimpleRecordNodeSchema<TCustomMetadata> {
|
|
1092
1118
|
}
|
|
1093
1119
|
|
|
1094
1120
|
// @alpha
|
|
1095
|
-
export type RecordNodeSchema<TName extends string = string, T extends
|
|
1121
|
+
export type RecordNodeSchema<TName extends string = string, T extends ImplicitAllowedTypes = ImplicitAllowedTypes, ImplicitlyConstructable extends boolean = true, TCustomMetadata = unknown> = RecordNodeCustomizableSchema<TName, T, ImplicitlyConstructable, TCustomMetadata> | RecordNodePojoEmulationSchema<TName, T, ImplicitlyConstructable, TCustomMetadata>;
|
|
1096
1122
|
|
|
1097
1123
|
// @alpha (undocumented)
|
|
1098
1124
|
export const RecordNodeSchema: {
|
|
1099
|
-
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is RecordNodeSchema<string,
|
|
1125
|
+
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is RecordNodeSchema<string, ImplicitAllowedTypes, true, unknown>;
|
|
1100
1126
|
};
|
|
1101
1127
|
|
|
1102
1128
|
// @alpha
|
|
@@ -1214,48 +1240,41 @@ export const SchemaFactory_base: SchemaStatics & (new () => SchemaStatics);
|
|
|
1214
1240
|
|
|
1215
1241
|
// @alpha
|
|
1216
1242
|
export class SchemaFactoryAlpha<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactoryBeta<TScope, TName> {
|
|
1217
|
-
arrayAlpha<const Name extends TName, const T extends
|
|
1243
|
+
arrayAlpha<const Name extends TName, const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
|
|
1218
1244
|
arrayRecursive<const Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): ArrayNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
|
|
1219
1245
|
static readonly identifier: <const TCustomMetadata = unknown>(props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Identifier, LeafSchema<"string", string> & SimpleLeafNodeSchema, TCustomMetadata>;
|
|
1220
1246
|
static readonly leaves: readonly [LeafSchema<"string", string> & SimpleLeafNodeSchema, LeafSchema<"number", number> & SimpleLeafNodeSchema, LeafSchema<"boolean", boolean> & SimpleLeafNodeSchema, LeafSchema<"null", null> & SimpleLeafNodeSchema, LeafSchema<"handle", IFluidHandle_2<unknown>> & SimpleLeafNodeSchema];
|
|
1221
1247
|
readonly leaves: readonly [LeafSchema<"string", string> & SimpleLeafNodeSchema, LeafSchema<"number", number> & SimpleLeafNodeSchema, LeafSchema<"boolean", boolean> & SimpleLeafNodeSchema, LeafSchema<"null", null> & SimpleLeafNodeSchema, LeafSchema<"handle", IFluidHandle_2<unknown>> & SimpleLeafNodeSchema];
|
|
1222
|
-
mapAlpha<Name extends TName, const T extends
|
|
1248
|
+
mapAlpha<Name extends TName, const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): MapNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
|
|
1223
1249
|
mapRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): MapNodeCustomizableSchemaUnsafe<ScopedSchemaName<TScope, Name>, T, TCustomMetadata>;
|
|
1224
|
-
objectAlpha<const Name extends TName, const T extends RestrictiveStringRecord<
|
|
1250
|
+
objectAlpha<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: ObjectSchemaOptionsAlpha<TCustomMetadata>): ObjectNodeSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata> & {
|
|
1225
1251
|
readonly createFromInsertable: unknown;
|
|
1226
1252
|
};
|
|
1227
|
-
objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>, const TCustomMetadata = unknown>(name: Name, t: T, options?:
|
|
1228
|
-
static readonly optional:
|
|
1229
|
-
|
|
1230
|
-
<const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Optional, UnannotateImplicitAllowedTypes<T_1>, TCustomMetadata_1>;
|
|
1231
|
-
};
|
|
1232
|
-
readonly optional: {
|
|
1233
|
-
<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata>;
|
|
1234
|
-
<const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Optional, UnannotateImplicitAllowedTypes<T_1>, TCustomMetadata_1>;
|
|
1235
|
-
};
|
|
1253
|
+
objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>, const TCustomMetadata = unknown>(name: Name, t: T, options?: ObjectSchemaOptionsAlpha<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, System_Unsafe.TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>, false, T, never, TCustomMetadata> & SimpleObjectNodeSchema<TCustomMetadata> & Pick<ObjectNodeSchema, "fields">;
|
|
1254
|
+
static readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata>;
|
|
1255
|
+
readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata>;
|
|
1236
1256
|
static readonly optionalRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
1237
1257
|
readonly optionalRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Optional, T, TCustomMetadata>;
|
|
1238
|
-
recordAlpha<const Name extends TName, const T extends
|
|
1258
|
+
recordAlpha<const Name extends TName, const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): RecordNodeCustomizableSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata>;
|
|
1239
1259
|
recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptionsAlpha<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
|
|
1240
1260
|
readonly [x: string]: System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
1241
1261
|
}, false, T, undefined, TCustomMetadata>;
|
|
1242
|
-
static readonly required:
|
|
1243
|
-
|
|
1244
|
-
<const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Required, UnannotateImplicitAllowedTypes<T_1>, TCustomMetadata_1>;
|
|
1245
|
-
};
|
|
1246
|
-
readonly required: {
|
|
1247
|
-
<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata>;
|
|
1248
|
-
<const T_1 extends ImplicitAnnotatedAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldPropsAlpha<TCustomMetadata_1>, "defaultProvider"> | undefined): FieldSchemaAlpha<FieldKind.Required, UnannotateImplicitAllowedTypes<T_1>, TCustomMetadata_1>;
|
|
1249
|
-
};
|
|
1262
|
+
static readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata>;
|
|
1263
|
+
readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata>;
|
|
1250
1264
|
static readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
1251
1265
|
readonly requiredRecursive: <const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlphaUnsafe<FieldKind.Required, T, TCustomMetadata>;
|
|
1252
1266
|
scopedFactoryAlpha<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
|
|
1253
1267
|
static staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1254
1268
|
staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1269
|
+
static types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
1270
|
+
types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
1255
1271
|
}
|
|
1256
1272
|
|
|
1257
1273
|
// @beta
|
|
1258
1274
|
export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
|
|
1275
|
+
object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
1276
|
+
// (undocumented)
|
|
1277
|
+
objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>, const TCustomMetadata = unknown>(name: Name, t: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, System_Unsafe.TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
|
|
1259
1278
|
record<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
1260
1279
|
record<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
1261
1280
|
recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
|
|
@@ -1264,11 +1283,6 @@ export class SchemaFactoryBeta<out TScope extends string | undefined = string |
|
|
|
1264
1283
|
scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryBeta<ScopedSchemaName<TScope, T>, TNameInner>;
|
|
1265
1284
|
}
|
|
1266
1285
|
|
|
1267
|
-
// @alpha @input
|
|
1268
|
-
export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown> extends NodeSchemaOptionsAlpha<TCustomMetadata> {
|
|
1269
|
-
readonly allowUnknownOptionalFields?: boolean;
|
|
1270
|
-
}
|
|
1271
|
-
|
|
1272
1286
|
// @public @sealed @system
|
|
1273
1287
|
export interface SchemaStatics {
|
|
1274
1288
|
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
@@ -1291,7 +1305,8 @@ export interface SchemaStatics {
|
|
|
1291
1305
|
|
|
1292
1306
|
// @alpha @sealed @system
|
|
1293
1307
|
export interface SchemaStaticsAlpha {
|
|
1294
|
-
staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1308
|
+
readonly staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1309
|
+
readonly types: <const T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]>(t: T, metadata?: AllowedTypesMetadata) => AllowedTypesFullFromMixed<T>;
|
|
1295
1310
|
}
|
|
1296
1311
|
|
|
1297
1312
|
// @alpha @sealed
|
|
@@ -1404,16 +1419,16 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
1404
1419
|
// @alpha @system
|
|
1405
1420
|
export namespace System_TableSchema {
|
|
1406
1421
|
// @sealed @system
|
|
1407
|
-
export type ColumnSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends
|
|
1422
|
+
export type ColumnSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createColumnSchema<TScope, TCellSchema, TPropsSchema>>;
|
|
1408
1423
|
// @system
|
|
1409
1424
|
export type CreateColumnOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
1410
1425
|
// @system
|
|
1411
|
-
export function createColumnSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends
|
|
1426
|
+
export function createColumnSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Column">, NodeKind.Object, TreeNode & TableSchema.Column<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Column">, NodeKind, unknown>, object & {
|
|
1412
1427
|
readonly id?: string | undefined;
|
|
1413
|
-
} & (FieldHasDefault<
|
|
1414
|
-
props?: InsertableTreeFieldFromImplicitField<
|
|
1428
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1429
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
1415
1430
|
} : {
|
|
1416
|
-
props: InsertableTreeFieldFromImplicitField<
|
|
1431
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
1417
1432
|
}), true, {
|
|
1418
1433
|
readonly props: TPropsSchema;
|
|
1419
1434
|
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
@@ -1421,13 +1436,13 @@ export namespace System_TableSchema {
|
|
|
1421
1436
|
// @system
|
|
1422
1437
|
export type CreateRowOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
1423
1438
|
// @sealed
|
|
1424
|
-
export function createRowSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends
|
|
1439
|
+
export function createRowSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row">, NodeKind.Object, TreeNode & TableSchema.Row<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row">, NodeKind, unknown>, object & {
|
|
1425
1440
|
readonly id?: string | undefined;
|
|
1426
1441
|
readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, TreeRecordNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined>> | undefined) & InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, TreeRecordNode_2<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined>>;
|
|
1427
|
-
} & (FieldHasDefault<
|
|
1428
|
-
props?: InsertableTreeFieldFromImplicitField<
|
|
1442
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1443
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
1429
1444
|
} : {
|
|
1430
|
-
props: InsertableTreeFieldFromImplicitField<
|
|
1445
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
1431
1446
|
}), true, {
|
|
1432
1447
|
readonly props: TPropsSchema;
|
|
1433
1448
|
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
@@ -1460,7 +1475,7 @@ export namespace System_TableSchema {
|
|
|
1460
1475
|
readonly schemaFactory: TSchemaFactory;
|
|
1461
1476
|
}
|
|
1462
1477
|
// @sealed @system
|
|
1463
|
-
export type RowSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends
|
|
1478
|
+
export type RowSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createRowSchema<TScope, TCellSchema, TPropsSchema>>;
|
|
1464
1479
|
// @system
|
|
1465
1480
|
export type TableFactoryOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
1466
1481
|
// @sealed @system
|
|
@@ -1557,17 +1572,17 @@ export namespace TableSchema {
|
|
|
1557
1572
|
readonly row: string | TreeNodeFromImplicitAllowedTypes<TRow>;
|
|
1558
1573
|
}
|
|
1559
1574
|
// @sealed
|
|
1560
|
-
export interface Column<TCell extends ImplicitAllowedTypes, TProps extends
|
|
1575
|
+
export interface Column<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1561
1576
|
getCells(): readonly {
|
|
1562
1577
|
rowId: string;
|
|
1563
1578
|
cell: TreeNodeFromImplicitAllowedTypes<TCell>;
|
|
1564
1579
|
}[];
|
|
1565
1580
|
readonly id: string;
|
|
1566
|
-
get props(): TreeFieldFromImplicitField<
|
|
1567
|
-
set props(value: InsertableTreeFieldFromImplicitField<
|
|
1581
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1582
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1568
1583
|
}
|
|
1569
1584
|
export function column<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.CreateColumnOptionsBase<SchemaFactoryAlpha<TScope>, TCell>): System_TableSchema.ColumnSchemaBase<TScope, TCell, System_TableSchema.DefaultPropsType>;
|
|
1570
|
-
export function column<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends
|
|
1585
|
+
export function column<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateColumnOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
|
|
1571
1586
|
readonly props: TProps;
|
|
1572
1587
|
}): System_TableSchema.ColumnSchemaBase<TScope, TCell, TProps>;
|
|
1573
1588
|
export interface InsertColumnsParameters<TColumn extends ImplicitAllowedTypes> {
|
|
@@ -1579,7 +1594,7 @@ export namespace TableSchema {
|
|
|
1579
1594
|
readonly rows: InsertableTreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1580
1595
|
}
|
|
1581
1596
|
// @sealed
|
|
1582
|
-
export interface Row<TCell extends ImplicitAllowedTypes, TProps extends
|
|
1597
|
+
export interface Row<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1583
1598
|
getCell(column: Column<TCell>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1584
1599
|
getCell(columnId: string): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1585
1600
|
getCells(): readonly {
|
|
@@ -1587,15 +1602,15 @@ export namespace TableSchema {
|
|
|
1587
1602
|
cell: TreeNodeFromImplicitAllowedTypes<TCell>;
|
|
1588
1603
|
}[];
|
|
1589
1604
|
readonly id: string;
|
|
1590
|
-
get props(): TreeFieldFromImplicitField<
|
|
1591
|
-
set props(value: InsertableTreeFieldFromImplicitField<
|
|
1605
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1606
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1592
1607
|
removeCell(column: Column<TCell>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1593
1608
|
removeCell(columnId: string): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1594
1609
|
setCell(column: Column<TCell>, value: InsertableTreeNodeFromImplicitAllowedTypes<TCell>): void;
|
|
1595
1610
|
setCell(columnId: string, value: InsertableTreeNodeFromImplicitAllowedTypes<TCell>): void;
|
|
1596
1611
|
}
|
|
1597
1612
|
export function row<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.CreateRowOptionsBase<SchemaFactoryAlpha<TScope>, TCell>): System_TableSchema.RowSchemaBase<TScope, TCell, System_TableSchema.DefaultPropsType>;
|
|
1598
|
-
export function row<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends
|
|
1613
|
+
export function row<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateRowOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
|
|
1599
1614
|
readonly props: TProps;
|
|
1600
1615
|
}): System_TableSchema.RowSchemaBase<TScope, TCell, TProps>;
|
|
1601
1616
|
export interface SetCellParameters<TCell extends ImplicitAllowedTypes, TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
@@ -1748,6 +1763,9 @@ export const TreeArrayNode: {
|
|
|
1748
1763
|
export interface TreeBeta {
|
|
1749
1764
|
clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
1750
1765
|
create<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: InsertableTreeFieldFromImplicitField<TSchema>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1766
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
1767
|
+
exportConcise(node: TreeNode | TreeLeafValue | undefined, options?: TreeEncodingOptions): ConciseTree | undefined;
|
|
1768
|
+
importConcise<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: ConciseTree | undefined): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1751
1769
|
on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
|
|
1752
1770
|
}
|
|
1753
1771
|
|
|
@@ -1794,7 +1812,7 @@ export enum TreeCompressionStrategy {
|
|
|
1794
1812
|
Uncompressed = 1
|
|
1795
1813
|
}
|
|
1796
1814
|
|
|
1797
|
-
// @
|
|
1815
|
+
// @beta @input
|
|
1798
1816
|
export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
|
|
1799
1817
|
readonly keys?: TKeyOptions;
|
|
1800
1818
|
}
|
|
@@ -1984,26 +2002,9 @@ const typeNameSymbol: unique symbol;
|
|
|
1984
2002
|
// @public @system
|
|
1985
2003
|
export const typeSchemaSymbol: unique symbol;
|
|
1986
2004
|
|
|
1987
|
-
// @alpha @system
|
|
1988
|
-
export type UnannotateAllowedType<T extends AnnotatedAllowedType | LazyItem<TreeNodeSchema>> = T extends AnnotatedAllowedType<infer X> ? X : T;
|
|
1989
|
-
|
|
1990
|
-
// @alpha @system
|
|
1991
|
-
export type UnannotateAllowedTypes<T extends AnnotatedAllowedTypes> = UnannotateAllowedTypesList<T["types"]>;
|
|
1992
|
-
|
|
1993
2005
|
// @alpha @system
|
|
1994
2006
|
export type UnannotateAllowedTypesList<T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]> = {
|
|
1995
|
-
[I in keyof T]:
|
|
1996
|
-
};
|
|
1997
|
-
|
|
1998
|
-
// @alpha @system
|
|
1999
|
-
export type UnannotateImplicitAllowedTypes<T extends ImplicitAnnotatedAllowedTypes> = T extends AnnotatedAllowedTypes ? UnannotateAllowedTypes<T> : T extends AnnotatedAllowedType ? UnannotateAllowedTypesList<[T]> : T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[] ? UnannotateAllowedTypesList<T> : T extends TreeNodeSchema ? T : ImplicitAllowedTypes;
|
|
2000
|
-
|
|
2001
|
-
// @alpha @system
|
|
2002
|
-
export type UnannotateImplicitFieldSchema<T extends ImplicitAnnotatedFieldSchema> = T extends ImplicitAnnotatedAllowedTypes ? UnannotateImplicitAllowedTypes<T> : T;
|
|
2003
|
-
|
|
2004
|
-
// @alpha @system
|
|
2005
|
-
export type UnannotateSchemaRecord<T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>> = {
|
|
2006
|
-
readonly [P in Extract<keyof T, string>]: UnannotateImplicitFieldSchema<T[P]>;
|
|
2007
|
+
[I in keyof T]: T[I] extends AnnotatedAllowedType<infer X> ? X : T[I];
|
|
2007
2008
|
};
|
|
2008
2009
|
|
|
2009
2010
|
// @public
|
|
@@ -50,6 +50,11 @@ export interface CommitMetadata {
|
|
|
50
50
|
readonly kind: CommitKind;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
// @beta
|
|
54
|
+
export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
|
|
55
|
+
[key: string]: ConciseTree<THandle>;
|
|
56
|
+
};
|
|
57
|
+
|
|
53
58
|
// @beta
|
|
54
59
|
export function configuredSharedTreeBeta(options: SharedTreeOptionsBeta): SharedObjectKind<ITree>;
|
|
55
60
|
|
|
@@ -469,8 +474,10 @@ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFi
|
|
|
469
474
|
|
|
470
475
|
// @public @system
|
|
471
476
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
|
|
472
|
-
readonly [Property in keyof TList]: TList[Property] extends
|
|
473
|
-
|
|
477
|
+
readonly [Property in keyof TList]: [TList[Property]] extends [
|
|
478
|
+
LazyItem<infer TSchema extends TreeNodeSchema>
|
|
479
|
+
] ? InsertableTypedNode<TSchema> : never;
|
|
480
|
+
}[NumberKeys<TList>];
|
|
474
481
|
|
|
475
482
|
// @public
|
|
476
483
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
@@ -559,6 +566,13 @@ export interface ITreeViewConfiguration<TSchema extends ImplicitFieldSchema = Im
|
|
|
559
566
|
readonly schema: TSchema;
|
|
560
567
|
}
|
|
561
568
|
|
|
569
|
+
// @beta @input
|
|
570
|
+
export enum KeyEncodingOptions {
|
|
571
|
+
allStoredKeys = "allStoredKeys",
|
|
572
|
+
knownStoredKeys = "knownStoredKeys",
|
|
573
|
+
usePropertyKeys = "usePropertyKeys"
|
|
574
|
+
}
|
|
575
|
+
|
|
562
576
|
// @public
|
|
563
577
|
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
564
578
|
|
|
@@ -631,11 +645,21 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
|
|
|
631
645
|
readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
|
|
632
646
|
}
|
|
633
647
|
|
|
648
|
+
// @public @system
|
|
649
|
+
export type NumberKeys<T, Transformed = {
|
|
650
|
+
readonly [Property in keyof T as number extends Property ? never : Property]: Property;
|
|
651
|
+
}> = Transformed[`${number}` & keyof Transformed];
|
|
652
|
+
|
|
634
653
|
// @public @system
|
|
635
654
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
636
655
|
-readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
|
|
637
656
|
};
|
|
638
657
|
|
|
658
|
+
// @beta @input
|
|
659
|
+
export interface ObjectSchemaOptions<TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
|
|
660
|
+
readonly allowUnknownOptionalFields?: boolean;
|
|
661
|
+
}
|
|
662
|
+
|
|
639
663
|
// @public
|
|
640
664
|
export type Off = () => void;
|
|
641
665
|
|
|
@@ -742,6 +766,9 @@ export const SchemaFactory_base: SchemaStatics & (new () => SchemaStatics);
|
|
|
742
766
|
|
|
743
767
|
// @beta
|
|
744
768
|
export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
|
|
769
|
+
object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
770
|
+
// (undocumented)
|
|
771
|
+
objectRecursive<const Name extends TName, const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>, const TCustomMetadata = unknown>(name: Name, t: T, options?: ObjectSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, System_Unsafe.TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
|
|
745
772
|
record<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchemaNonClass<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, `Record<${string}>`>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
746
773
|
record<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record>, RecordNodeInsertableData<T>, true, T, undefined>;
|
|
747
774
|
recordRecursive<Name extends TName, const T extends System_Unsafe.ImplicitAllowedTypesUnsafe, const TCustomMetadata = unknown>(name: Name, allowedTypes: T, options?: NodeSchemaOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Record, TreeRecordNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Record, unknown>, {
|
|
@@ -935,6 +962,9 @@ export const TreeArrayNode: {
|
|
|
935
962
|
export interface TreeBeta {
|
|
936
963
|
clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
937
964
|
create<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: InsertableTreeFieldFromImplicitField<TSchema>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
965
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
966
|
+
exportConcise(node: TreeNode | TreeLeafValue | undefined, options?: TreeEncodingOptions): ConciseTree | undefined;
|
|
967
|
+
importConcise<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: ConciseTree | undefined): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
938
968
|
on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
|
|
939
969
|
}
|
|
940
970
|
|
|
@@ -952,6 +982,11 @@ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends
|
|
|
952
982
|
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object | NodeKind.Record> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
953
983
|
}
|
|
954
984
|
|
|
985
|
+
// @beta @input
|
|
986
|
+
export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
|
|
987
|
+
readonly keys?: TKeyOptions;
|
|
988
|
+
}
|
|
989
|
+
|
|
955
990
|
// @public
|
|
956
991
|
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
|
|
957
992
|
|