fluid-framework 2.63.0-359461 → 2.63.0-359962
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 +132 -96
- 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 +19 -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 +19 -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,21 @@ 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
|
+
|
|
36
|
+
// @alpha @sealed @system
|
|
37
|
+
export type AllowedTypesFullFromMixedUnsafe<T extends readonly Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>[]> = UnannotateAllowedTypesListUnsafe<T> & AnnotatedAllowedTypes<AnnotateAllowedTypesListUnsafe<T>>;
|
|
38
|
+
|
|
39
|
+
// @alpha @sealed @system
|
|
40
|
+
export type AllowedTypesFullUnsafe<T extends readonly AnnotatedAllowedTypeUnsafe[] = readonly AnnotatedAllowedTypeUnsafe[]> = AnnotatedAllowedTypes<T> & UnannotateAllowedTypesListUnsafe<T>;
|
|
41
|
+
|
|
27
42
|
// @alpha @input
|
|
28
43
|
export interface AllowedTypesMetadata {
|
|
29
44
|
readonly custom?: unknown;
|
|
@@ -32,6 +47,16 @@ export interface AllowedTypesMetadata {
|
|
|
32
47
|
// @alpha
|
|
33
48
|
export function allowUnused<T>(t?: T): void;
|
|
34
49
|
|
|
50
|
+
// @alpha @system
|
|
51
|
+
export type AnnotateAllowedTypesList<T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]> = {
|
|
52
|
+
[I in keyof T]: T[I] extends AnnotatedAllowedType<unknown> ? T[I] : AnnotatedAllowedType<T[I]>;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// @alpha @sealed @system
|
|
56
|
+
export type AnnotateAllowedTypesListUnsafe<T extends readonly Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>[]> = {
|
|
57
|
+
[I in keyof T]: T[I] extends AnnotatedAllowedTypeUnsafe ? T[I] : AnnotatedAllowedTypeUnsafe<T[I]>;
|
|
58
|
+
};
|
|
59
|
+
|
|
35
60
|
// @alpha @sealed
|
|
36
61
|
export interface AnnotatedAllowedType<T = LazyItem<TreeNodeSchema>> {
|
|
37
62
|
readonly metadata: AllowedTypeMetadata;
|
|
@@ -39,9 +64,20 @@ export interface AnnotatedAllowedType<T = LazyItem<TreeNodeSchema>> {
|
|
|
39
64
|
}
|
|
40
65
|
|
|
41
66
|
// @alpha @sealed
|
|
42
|
-
export interface AnnotatedAllowedTypes<T =
|
|
67
|
+
export interface AnnotatedAllowedTypes<T = readonly AnnotatedAllowedType[]> extends ErasedBaseType<"tree.AnnotatedAllowedTypes"> {
|
|
68
|
+
evaluate(): AllowedTypesFullEvaluated;
|
|
69
|
+
evaluateIdentifiers(): ReadonlySet<string>;
|
|
70
|
+
evaluateSet(): ReadonlySet<TreeNodeSchema>;
|
|
43
71
|
readonly metadata: AllowedTypesMetadata;
|
|
44
|
-
readonly types:
|
|
72
|
+
readonly types: T;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// @alpha @sealed @system
|
|
76
|
+
export interface AnnotatedAllowedTypesUnsafe extends AnnotatedAllowedTypes<LazyItem<System_Unsafe.TreeNodeSchemaUnsafe>> {
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// @alpha @sealed @system
|
|
80
|
+
export interface AnnotatedAllowedTypeUnsafe<T = Unenforced<LazyItem<TreeNodeSchema>>> extends AnnotatedAllowedType<T> {
|
|
45
81
|
}
|
|
46
82
|
|
|
47
83
|
// @public @system
|
|
@@ -57,7 +93,7 @@ Kind
|
|
|
57
93
|
] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
|
|
58
94
|
|
|
59
95
|
// @alpha @sealed @system
|
|
60
|
-
export interface ArrayNodeCustomizableSchema<out TName extends string = string, in out T extends
|
|
96
|
+
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
97
|
}
|
|
62
98
|
|
|
63
99
|
// @alpha @sealed @system
|
|
@@ -67,7 +103,7 @@ export interface ArrayNodeCustomizableSchemaUnsafe<out TName extends string, in
|
|
|
67
103
|
}
|
|
68
104
|
|
|
69
105
|
// @alpha @sealed @system
|
|
70
|
-
export interface ArrayNodePojoEmulationSchema<out TName extends string = string, in out T extends
|
|
106
|
+
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
107
|
}
|
|
72
108
|
|
|
73
109
|
// @alpha
|
|
@@ -126,7 +162,7 @@ export interface CommitMetadata {
|
|
|
126
162
|
// @alpha
|
|
127
163
|
export function comparePersistedSchema(persisted: JsonCompatible, view: ImplicitFieldSchema, options: ICodecOptions): Omit<SchemaCompatibilityStatus, "canInitialize">;
|
|
128
164
|
|
|
129
|
-
// @
|
|
165
|
+
// @beta
|
|
130
166
|
export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
|
|
131
167
|
[key: string]: ConciseTree<THandle>;
|
|
132
168
|
};
|
|
@@ -210,6 +246,12 @@ export function enumFromStrings<TScope extends string, const Members extends rea
|
|
|
210
246
|
}, Record<string, never>, true, Record<string, never>, undefined>; }[Members[number]] : never>;
|
|
211
247
|
};
|
|
212
248
|
|
|
249
|
+
// @alpha @sealed @system
|
|
250
|
+
export abstract class ErasedBaseType<out Name = unknown> {
|
|
251
|
+
protected constructor();
|
|
252
|
+
protected abstract brand(dummy: never): Name;
|
|
253
|
+
}
|
|
254
|
+
|
|
213
255
|
// @public @sealed
|
|
214
256
|
export abstract class ErasedType<out Name = unknown> {
|
|
215
257
|
static [Symbol.hasInstance](value: never): value is never;
|
|
@@ -223,7 +265,7 @@ export function evaluateLazySchema<T extends TreeNodeSchema>(value: LazyItem<T>)
|
|
|
223
265
|
type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
|
|
224
266
|
|
|
225
267
|
// @alpha
|
|
226
|
-
export function extractPersistedSchema(schema:
|
|
268
|
+
export function extractPersistedSchema(schema: ImplicitFieldSchema, oldestCompatibleClient: FluidClientVersion, includeStaged: (upgrade: SchemaUpgrade) => boolean): JsonCompatible;
|
|
227
269
|
|
|
228
270
|
// @alpha @system
|
|
229
271
|
export type FactoryContent = IFluidHandle | string | number | boolean | null | Iterable<readonly [string, InsertableContent]> | readonly InsertableContent[] | FactoryContentObject;
|
|
@@ -274,13 +316,10 @@ export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types exten
|
|
|
274
316
|
|
|
275
317
|
// @alpha @sealed
|
|
276
318
|
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,
|
|
319
|
+
protected constructor(kind: Kind, types: Types, props?: FieldPropsAlpha<TCustomMetadata>);
|
|
320
|
+
readonly allowedTypesFull: AllowedTypesFull;
|
|
278
321
|
// (undocumented)
|
|
279
322
|
get allowedTypesIdentifiers(): ReadonlySet<string>;
|
|
280
|
-
readonly allowedTypesMetadata: AllowedTypesMetadata;
|
|
281
|
-
// (undocumented)
|
|
282
|
-
readonly annotatedAllowedTypes: ImplicitAnnotatedAllowedTypes;
|
|
283
|
-
get annotatedAllowedTypesNormalized(): NormalizedAnnotatedAllowedTypes;
|
|
284
323
|
// (undocumented)
|
|
285
324
|
get persistedMetadata(): JsonCompatibleReadOnlyObject | undefined;
|
|
286
325
|
}
|
|
@@ -656,12 +695,6 @@ export interface IMember {
|
|
|
656
695
|
// @public
|
|
657
696
|
export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
658
697
|
|
|
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
698
|
// @public
|
|
666
699
|
export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
|
|
667
700
|
|
|
@@ -695,9 +728,6 @@ export type InsertableField<TSchema extends ImplicitFieldSchema | UnsafeUnknownS
|
|
|
695
728
|
TSchema
|
|
696
729
|
] extends [ImplicitFieldSchema] ? InsertableTreeFieldFromImplicitField<TSchema> : [TSchema] extends [UnsafeUnknownSchema] ? InsertableContent | undefined : never;
|
|
697
730
|
|
|
698
|
-
// @alpha @system
|
|
699
|
-
export type InsertableObjectFromAnnotatedSchemaRecord<T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>> = InsertableObjectFromSchemaRecord<UnannotateSchemaRecord<T>>;
|
|
700
|
-
|
|
701
731
|
// @public @system
|
|
702
732
|
type InsertableObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {
|
|
703
733
|
arbitraryKey: "arbitraryValue";
|
|
@@ -712,8 +742,10 @@ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFi
|
|
|
712
742
|
|
|
713
743
|
// @public @system
|
|
714
744
|
export type InsertableTreeNodeFromAllowedTypes<TList extends AllowedTypes> = IsUnion<TList> extends true ? never : {
|
|
715
|
-
readonly [Property in keyof TList]: TList[Property] extends
|
|
716
|
-
|
|
745
|
+
readonly [Property in keyof TList]: [TList[Property]] extends [
|
|
746
|
+
LazyItem<infer TSchema extends TreeNodeSchema>
|
|
747
|
+
] ? InsertableTypedNode<TSchema> : never;
|
|
748
|
+
}[NumberKeys<TList>];
|
|
717
749
|
|
|
718
750
|
// @public
|
|
719
751
|
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
|
|
@@ -920,7 +952,7 @@ export type JsonTreeSchema = JsonFieldSchema & {
|
|
|
920
952
|
readonly $defs: Record<JsonSchemaId, JsonNodeSchema>;
|
|
921
953
|
};
|
|
922
954
|
|
|
923
|
-
// @
|
|
955
|
+
// @beta @input
|
|
924
956
|
export enum KeyEncodingOptions {
|
|
925
957
|
allStoredKeys = "allStoredKeys",
|
|
926
958
|
knownStoredKeys = "knownStoredKeys",
|
|
@@ -950,7 +982,7 @@ export interface MakeNominal {
|
|
|
950
982
|
}
|
|
951
983
|
|
|
952
984
|
// @alpha @sealed @system
|
|
953
|
-
export interface MapNodeCustomizableSchema<out TName extends string = string, in out T extends
|
|
985
|
+
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
986
|
}
|
|
955
987
|
|
|
956
988
|
// @alpha @sealed @system
|
|
@@ -968,7 +1000,7 @@ export interface MapNodeCustomizableSchemaUnsafe<out TName extends string, in ou
|
|
|
968
1000
|
export type MapNodeInsertableData<T extends ImplicitAllowedTypes> = Iterable<readonly [string, InsertableTreeNodeFromImplicitAllowedTypes<T>]> | RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
|
|
969
1001
|
|
|
970
1002
|
// @alpha @sealed @system
|
|
971
|
-
export interface MapNodePojoEmulationSchema<out TName extends string = string, in out T extends
|
|
1003
|
+
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
1004
|
}
|
|
973
1005
|
|
|
974
1006
|
// @alpha
|
|
@@ -1031,9 +1063,13 @@ export interface NodeSchemaOptionsAlpha<out TCustomMetadata = unknown> extends N
|
|
|
1031
1063
|
readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
|
|
1032
1064
|
}
|
|
1033
1065
|
|
|
1034
|
-
// @alpha
|
|
1035
|
-
export
|
|
1036
|
-
|
|
1066
|
+
// @alpha
|
|
1067
|
+
export function normalizeAllowedTypes(types: ImplicitAllowedTypes): AllowedTypesFull;
|
|
1068
|
+
|
|
1069
|
+
// @public @system
|
|
1070
|
+
export type NumberKeys<T, Transformed = {
|
|
1071
|
+
readonly [Property in keyof T as number extends Property ? never : Property]: Property;
|
|
1072
|
+
}> = Transformed[`${number}` & keyof Transformed];
|
|
1037
1073
|
|
|
1038
1074
|
// @public @system
|
|
1039
1075
|
export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = RestrictiveStringRecord<ImplicitFieldSchema> extends T ? {} : {
|
|
@@ -1041,15 +1077,24 @@ export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFie
|
|
|
1041
1077
|
};
|
|
1042
1078
|
|
|
1043
1079
|
// @alpha @sealed
|
|
1044
|
-
export interface ObjectNodeSchema<out TName extends string = string, in out T extends RestrictiveStringRecord<
|
|
1080
|
+
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
1081
|
readonly fields: ReadonlyMap<string, FieldSchemaAlpha & SimpleObjectFieldSchema>;
|
|
1046
1082
|
}
|
|
1047
1083
|
|
|
1048
1084
|
// @alpha (undocumented)
|
|
1049
1085
|
export const ObjectNodeSchema: {
|
|
1050
|
-
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is ObjectNodeSchema<string, RestrictiveStringRecord<
|
|
1086
|
+
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is ObjectNodeSchema<string, RestrictiveStringRecord<ImplicitFieldSchema>, boolean, unknown>;
|
|
1051
1087
|
};
|
|
1052
1088
|
|
|
1089
|
+
// @beta @input
|
|
1090
|
+
export interface ObjectSchemaOptions<TCustomMetadata = unknown> extends NodeSchemaOptions<TCustomMetadata> {
|
|
1091
|
+
readonly allowUnknownOptionalFields?: boolean;
|
|
1092
|
+
}
|
|
1093
|
+
|
|
1094
|
+
// @alpha @input
|
|
1095
|
+
export interface ObjectSchemaOptionsAlpha<TCustomMetadata = unknown> extends ObjectSchemaOptions<TCustomMetadata>, NodeSchemaOptionsAlpha<TCustomMetadata> {
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1053
1098
|
// @alpha @sealed
|
|
1054
1099
|
export interface ObservationResults<TResult> {
|
|
1055
1100
|
readonly result: TResult;
|
|
@@ -1081,22 +1126,22 @@ TSchema
|
|
|
1081
1126
|
] extends [ImplicitFieldSchema] ? TSchema : ImplicitFieldSchema;
|
|
1082
1127
|
|
|
1083
1128
|
// @alpha @sealed @system
|
|
1084
|
-
export interface RecordNodeCustomizableSchema<out TName extends string = string, in out T extends
|
|
1129
|
+
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
1130
|
}
|
|
1086
1131
|
|
|
1087
1132
|
// @beta @system
|
|
1088
1133
|
export type RecordNodeInsertableData<T extends ImplicitAllowedTypes> = RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
|
|
1089
1134
|
|
|
1090
1135
|
// @alpha @sealed @system
|
|
1091
|
-
export interface RecordNodePojoEmulationSchema<out TName extends string = string, in out T extends
|
|
1136
|
+
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
1137
|
}
|
|
1093
1138
|
|
|
1094
1139
|
// @alpha
|
|
1095
|
-
export type RecordNodeSchema<TName extends string = string, T extends
|
|
1140
|
+
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
1141
|
|
|
1097
1142
|
// @alpha (undocumented)
|
|
1098
1143
|
export const RecordNodeSchema: {
|
|
1099
|
-
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is RecordNodeSchema<string,
|
|
1144
|
+
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is RecordNodeSchema<string, ImplicitAllowedTypes, true, unknown>;
|
|
1100
1145
|
};
|
|
1101
1146
|
|
|
1102
1147
|
// @alpha
|
|
@@ -1214,48 +1259,45 @@ export const SchemaFactory_base: SchemaStatics & (new () => SchemaStatics);
|
|
|
1214
1259
|
|
|
1215
1260
|
// @alpha
|
|
1216
1261
|
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
|
|
1262
|
+
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
1263
|
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
1264
|
static readonly identifier: <const TCustomMetadata = unknown>(props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Identifier, LeafSchema<"string", string> & SimpleLeafNodeSchema, TCustomMetadata>;
|
|
1220
1265
|
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
1266
|
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
|
|
1267
|
+
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
1268
|
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<
|
|
1269
|
+
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
1270
|
readonly createFromInsertable: unknown;
|
|
1226
1271
|
};
|
|
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
|
-
};
|
|
1272
|
+
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">;
|
|
1273
|
+
static readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata>;
|
|
1274
|
+
readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata>;
|
|
1236
1275
|
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
1276
|
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
|
|
1277
|
+
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
1278
|
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
1279
|
readonly [x: string]: System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
1241
1280
|
}, 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
|
-
};
|
|
1281
|
+
static readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata>;
|
|
1282
|
+
readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata>;
|
|
1250
1283
|
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
1284
|
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
1285
|
scopedFactoryAlpha<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
|
|
1253
1286
|
static staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1254
1287
|
staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1288
|
+
static stagedRecursive: <const T extends unknown>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
1289
|
+
stagedRecursive: <const T extends unknown>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
1290
|
+
static types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
1291
|
+
types: <const T extends readonly (LazyItem<TreeNodeSchema> | AnnotatedAllowedType<LazyItem<TreeNodeSchema>>)[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixed<T>;
|
|
1292
|
+
static typesRecursive: <const T extends readonly unknown[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixedUnsafe<T>;
|
|
1293
|
+
typesRecursive: <const T extends readonly unknown[]>(t: T, metadata?: AllowedTypesMetadata | undefined) => AllowedTypesFullFromMixedUnsafe<T>;
|
|
1255
1294
|
}
|
|
1256
1295
|
|
|
1257
1296
|
// @beta
|
|
1258
1297
|
export class SchemaFactoryBeta<out TScope extends string | undefined = string | undefined, TName extends number | string = string> extends SchemaFactory<TScope, TName> {
|
|
1298
|
+
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>;
|
|
1299
|
+
// (undocumented)
|
|
1300
|
+
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
1301
|
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
1302
|
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
1303
|
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 +1306,6 @@ export class SchemaFactoryBeta<out TScope extends string | undefined = string |
|
|
|
1264
1306
|
scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryBeta<ScopedSchemaName<TScope, T>, TNameInner>;
|
|
1265
1307
|
}
|
|
1266
1308
|
|
|
1267
|
-
// @alpha @input
|
|
1268
|
-
export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown> extends NodeSchemaOptionsAlpha<TCustomMetadata> {
|
|
1269
|
-
readonly allowUnknownOptionalFields?: boolean;
|
|
1270
|
-
}
|
|
1271
|
-
|
|
1272
1309
|
// @public @sealed @system
|
|
1273
1310
|
export interface SchemaStatics {
|
|
1274
1311
|
readonly boolean: LeafSchema<"boolean", boolean>;
|
|
@@ -1291,7 +1328,10 @@ export interface SchemaStatics {
|
|
|
1291
1328
|
|
|
1292
1329
|
// @alpha @sealed @system
|
|
1293
1330
|
export interface SchemaStaticsAlpha {
|
|
1294
|
-
staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1331
|
+
readonly staged: <const T extends LazyItem<TreeNodeSchema>>(t: T | AnnotatedAllowedType<T>) => AnnotatedAllowedType<T>;
|
|
1332
|
+
stagedRecursive: <const T extends Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>>(t: T) => AnnotatedAllowedTypeUnsafe<UnannotateAllowedTypeUnsafe<T>>;
|
|
1333
|
+
readonly types: <const T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]>(t: T, metadata?: AllowedTypesMetadata) => AllowedTypesFullFromMixed<T>;
|
|
1334
|
+
readonly typesRecursive: <const T extends readonly Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>[]>(t: T, metadata?: AllowedTypesMetadata) => AllowedTypesFullFromMixedUnsafe<T>;
|
|
1295
1335
|
}
|
|
1296
1336
|
|
|
1297
1337
|
// @alpha @sealed
|
|
@@ -1404,16 +1444,16 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
1404
1444
|
// @alpha @system
|
|
1405
1445
|
export namespace System_TableSchema {
|
|
1406
1446
|
// @sealed @system
|
|
1407
|
-
export type ColumnSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends
|
|
1447
|
+
export type ColumnSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createColumnSchema<TScope, TCellSchema, TPropsSchema>>;
|
|
1408
1448
|
// @system
|
|
1409
1449
|
export type CreateColumnOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
1410
1450
|
// @system
|
|
1411
|
-
export function createColumnSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends
|
|
1451
|
+
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
1452
|
readonly id?: string | undefined;
|
|
1413
|
-
} & (FieldHasDefault<
|
|
1414
|
-
props?: InsertableTreeFieldFromImplicitField<
|
|
1453
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1454
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
1415
1455
|
} : {
|
|
1416
|
-
props: InsertableTreeFieldFromImplicitField<
|
|
1456
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
1417
1457
|
}), true, {
|
|
1418
1458
|
readonly props: TPropsSchema;
|
|
1419
1459
|
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
@@ -1421,13 +1461,13 @@ export namespace System_TableSchema {
|
|
|
1421
1461
|
// @system
|
|
1422
1462
|
export type CreateRowOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
1423
1463
|
// @sealed
|
|
1424
|
-
export function createRowSchema<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends
|
|
1464
|
+
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
1465
|
readonly id?: string | undefined;
|
|
1426
1466
|
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<
|
|
1467
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1468
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
1429
1469
|
} : {
|
|
1430
|
-
props: InsertableTreeFieldFromImplicitField<
|
|
1470
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
1431
1471
|
}), true, {
|
|
1432
1472
|
readonly props: TPropsSchema;
|
|
1433
1473
|
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
@@ -1460,7 +1500,7 @@ export namespace System_TableSchema {
|
|
|
1460
1500
|
readonly schemaFactory: TSchemaFactory;
|
|
1461
1501
|
}
|
|
1462
1502
|
// @sealed @system
|
|
1463
|
-
export type RowSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends
|
|
1503
|
+
export type RowSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createRowSchema<TScope, TCellSchema, TPropsSchema>>;
|
|
1464
1504
|
// @system
|
|
1465
1505
|
export type TableFactoryOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
1466
1506
|
// @sealed @system
|
|
@@ -1557,17 +1597,17 @@ export namespace TableSchema {
|
|
|
1557
1597
|
readonly row: string | TreeNodeFromImplicitAllowedTypes<TRow>;
|
|
1558
1598
|
}
|
|
1559
1599
|
// @sealed
|
|
1560
|
-
export interface Column<TCell extends ImplicitAllowedTypes, TProps extends
|
|
1600
|
+
export interface Column<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1561
1601
|
getCells(): readonly {
|
|
1562
1602
|
rowId: string;
|
|
1563
1603
|
cell: TreeNodeFromImplicitAllowedTypes<TCell>;
|
|
1564
1604
|
}[];
|
|
1565
1605
|
readonly id: string;
|
|
1566
|
-
get props(): TreeFieldFromImplicitField<
|
|
1567
|
-
set props(value: InsertableTreeFieldFromImplicitField<
|
|
1606
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1607
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1568
1608
|
}
|
|
1569
1609
|
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
|
|
1610
|
+
export function column<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateColumnOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
|
|
1571
1611
|
readonly props: TProps;
|
|
1572
1612
|
}): System_TableSchema.ColumnSchemaBase<TScope, TCell, TProps>;
|
|
1573
1613
|
export interface InsertColumnsParameters<TColumn extends ImplicitAllowedTypes> {
|
|
@@ -1579,7 +1619,7 @@ export namespace TableSchema {
|
|
|
1579
1619
|
readonly rows: InsertableTreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1580
1620
|
}
|
|
1581
1621
|
// @sealed
|
|
1582
|
-
export interface Row<TCell extends ImplicitAllowedTypes, TProps extends
|
|
1622
|
+
export interface Row<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1583
1623
|
getCell(column: Column<TCell>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1584
1624
|
getCell(columnId: string): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1585
1625
|
getCells(): readonly {
|
|
@@ -1587,15 +1627,15 @@ export namespace TableSchema {
|
|
|
1587
1627
|
cell: TreeNodeFromImplicitAllowedTypes<TCell>;
|
|
1588
1628
|
}[];
|
|
1589
1629
|
readonly id: string;
|
|
1590
|
-
get props(): TreeFieldFromImplicitField<
|
|
1591
|
-
set props(value: InsertableTreeFieldFromImplicitField<
|
|
1630
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1631
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1592
1632
|
removeCell(column: Column<TCell>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1593
1633
|
removeCell(columnId: string): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1594
1634
|
setCell(column: Column<TCell>, value: InsertableTreeNodeFromImplicitAllowedTypes<TCell>): void;
|
|
1595
1635
|
setCell(columnId: string, value: InsertableTreeNodeFromImplicitAllowedTypes<TCell>): void;
|
|
1596
1636
|
}
|
|
1597
1637
|
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
|
|
1638
|
+
export function row<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateRowOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
|
|
1599
1639
|
readonly props: TProps;
|
|
1600
1640
|
}): System_TableSchema.RowSchemaBase<TScope, TCell, TProps>;
|
|
1601
1641
|
export interface SetCellParameters<TCell extends ImplicitAllowedTypes, TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
@@ -1748,6 +1788,9 @@ export const TreeArrayNode: {
|
|
|
1748
1788
|
export interface TreeBeta {
|
|
1749
1789
|
clone<const TSchema extends ImplicitFieldSchema>(node: TreeFieldFromImplicitField<TSchema>): TreeFieldFromImplicitField<TSchema>;
|
|
1750
1790
|
create<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: InsertableTreeFieldFromImplicitField<TSchema>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1791
|
+
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
1792
|
+
exportConcise(node: TreeNode | TreeLeafValue | undefined, options?: TreeEncodingOptions): ConciseTree | undefined;
|
|
1793
|
+
importConcise<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: ConciseTree | undefined): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1751
1794
|
on<K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>): () => void;
|
|
1752
1795
|
}
|
|
1753
1796
|
|
|
@@ -1794,7 +1837,7 @@ export enum TreeCompressionStrategy {
|
|
|
1794
1837
|
Uncompressed = 1
|
|
1795
1838
|
}
|
|
1796
1839
|
|
|
1797
|
-
// @
|
|
1840
|
+
// @beta @input
|
|
1798
1841
|
export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
|
|
1799
1842
|
readonly keys?: TKeyOptions;
|
|
1800
1843
|
}
|
|
@@ -1984,28 +2027,21 @@ const typeNameSymbol: unique symbol;
|
|
|
1984
2027
|
// @public @system
|
|
1985
2028
|
export const typeSchemaSymbol: unique symbol;
|
|
1986
2029
|
|
|
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
2030
|
// @alpha @system
|
|
1994
2031
|
export type UnannotateAllowedTypesList<T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]> = {
|
|
1995
|
-
[I in keyof T]:
|
|
2032
|
+
[I in keyof T]: T[I] extends AnnotatedAllowedType<infer X> ? X : T[I];
|
|
1996
2033
|
};
|
|
1997
2034
|
|
|
1998
|
-
// @alpha @system
|
|
1999
|
-
export type
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
// @alpha @system
|
|
2005
|
-
export type UnannotateSchemaRecord<T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>> = {
|
|
2006
|
-
readonly [P in Extract<keyof T, string>]: UnannotateImplicitFieldSchema<T[P]>;
|
|
2035
|
+
// @alpha @sealed @system
|
|
2036
|
+
export type UnannotateAllowedTypesListUnsafe<T extends readonly Unenforced<AnnotatedAllowedType | LazyItem<TreeNodeSchema>>[]> = {
|
|
2037
|
+
readonly [I in keyof T]: T[I] extends {
|
|
2038
|
+
type: infer X;
|
|
2039
|
+
} ? X : T[I];
|
|
2007
2040
|
};
|
|
2008
2041
|
|
|
2042
|
+
// @alpha @sealed @system
|
|
2043
|
+
export type UnannotateAllowedTypeUnsafe<T extends Unenforced<AnnotatedAllowedTypeUnsafe | LazyItem<System_Unsafe.TreeNodeSchemaUnsafe>>> = T extends AnnotatedAllowedTypeUnsafe<infer X> ? X : T;
|
|
2044
|
+
|
|
2009
2045
|
// @public
|
|
2010
2046
|
export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
2011
2047
|
|
|
@@ -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
|
|