fluid-framework 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +84 -0
- package/README.md +4 -0
- package/alpha.d.ts +11 -0
- package/api-extractor/api-extractor-lint-alpha.cjs.json +6 -0
- package/api-extractor/api-extractor-lint-alpha.esm.json +6 -0
- package/api-extractor/api-extractor-lint-beta.cjs.json +6 -0
- package/api-extractor/api-extractor-lint-beta.esm.json +6 -0
- package/api-extractor/api-extractor.current.json +4 -1
- package/api-report/fluid-framework.alpha.api.md +1012 -0
- package/api-report/fluid-framework.beta.api.md +21 -6
- package/api-report/fluid-framework.legacy.alpha.api.md +6 -6
- package/api-report/fluid-framework.legacy.public.api.md +6 -6
- package/api-report/fluid-framework.public.api.md +6 -6
- package/beta.d.ts +11 -0
- package/dist/alpha.d.ts +146 -0
- package/dist/beta.d.ts +129 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/lib/alpha.d.ts +146 -0
- package/lib/beta.d.ts +129 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -6
- package/lib/index.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +46 -16
- package/src/index.ts +7 -9
|
@@ -0,0 +1,1012 @@
|
|
|
1
|
+
## Alpha API Report File for "fluid-framework"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
|
|
7
|
+
// @public
|
|
8
|
+
export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
|
|
9
|
+
|
|
10
|
+
// @public
|
|
11
|
+
type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
|
|
12
|
+
[FieldKind.Required]: T;
|
|
13
|
+
[FieldKind.Optional]: T | undefined;
|
|
14
|
+
[FieldKind.Identifier]: DefaultsAreOptional extends true ? T | undefined : T;
|
|
15
|
+
}[Kind];
|
|
16
|
+
|
|
17
|
+
// @public
|
|
18
|
+
export enum AttachState {
|
|
19
|
+
Attached = "Attached",
|
|
20
|
+
Attaching = "Attaching",
|
|
21
|
+
Detached = "Detached"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// @public
|
|
25
|
+
export enum CommitKind {
|
|
26
|
+
Default = 0,
|
|
27
|
+
Redo = 2,
|
|
28
|
+
Undo = 1
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// @public @sealed
|
|
32
|
+
export interface CommitMetadata {
|
|
33
|
+
readonly isLocal: boolean;
|
|
34
|
+
readonly kind: CommitKind;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// @public
|
|
38
|
+
export enum ConnectionState {
|
|
39
|
+
CatchingUp = 1,
|
|
40
|
+
Connected = 2,
|
|
41
|
+
Disconnected = 0,
|
|
42
|
+
EstablishingConnection = 3
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// @public
|
|
46
|
+
export namespace ConnectionStateType {
|
|
47
|
+
export type CatchingUp = 1;
|
|
48
|
+
export type Connected = 2;
|
|
49
|
+
export type Disconnected = 0;
|
|
50
|
+
export type EstablishingConnection = 3;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// @public
|
|
54
|
+
export type ConnectionStateType = ConnectionStateType.Disconnected | ConnectionStateType.EstablishingConnection | ConnectionStateType.CatchingUp | ConnectionStateType.Connected;
|
|
55
|
+
|
|
56
|
+
// @public
|
|
57
|
+
export type ContainerAttachProps<T = unknown> = T;
|
|
58
|
+
|
|
59
|
+
// @public
|
|
60
|
+
export interface ContainerSchema {
|
|
61
|
+
readonly dynamicObjectTypes?: readonly SharedObjectKind[];
|
|
62
|
+
readonly initialObjects: Record<string, SharedObjectKind>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// @public @sealed
|
|
66
|
+
interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// @public @sealed
|
|
70
|
+
export abstract class ErasedType<out Name = unknown> {
|
|
71
|
+
static [Symbol.hasInstance](value: never): value is never;
|
|
72
|
+
protected abstract brand(dummy: never): Name;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// @public
|
|
76
|
+
type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
|
|
77
|
+
|
|
78
|
+
// @public
|
|
79
|
+
type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<FieldKind.Optional | FieldKind.Identifier> ? true : false;
|
|
80
|
+
|
|
81
|
+
// @public @sealed
|
|
82
|
+
type FieldHasDefaultUnsafe<T extends Unenforced<ImplicitFieldSchema>> = T extends FieldSchemaUnsafe<FieldKind.Optional | FieldKind.Identifier, Unenforced<ImplicitAllowedTypes>> ? true : false;
|
|
83
|
+
|
|
84
|
+
// @public
|
|
85
|
+
export enum FieldKind {
|
|
86
|
+
Identifier = 2,
|
|
87
|
+
Optional = 0,
|
|
88
|
+
Required = 1
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// @public
|
|
92
|
+
export interface FieldProps {
|
|
93
|
+
readonly defaultProvider?: DefaultProvider;
|
|
94
|
+
readonly key?: string;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// @public @sealed
|
|
98
|
+
export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
|
|
99
|
+
readonly allowedTypes: Types;
|
|
100
|
+
get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
|
|
101
|
+
readonly kind: Kind;
|
|
102
|
+
readonly props?: FieldProps | undefined;
|
|
103
|
+
readonly requiresValue: boolean;
|
|
104
|
+
protected _typeCheck: MakeNominal;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// @public
|
|
108
|
+
export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
|
|
109
|
+
readonly allowedTypes: Types;
|
|
110
|
+
readonly allowedTypeSet: ReadonlySet<TreeNodeSchema>;
|
|
111
|
+
readonly kind: Kind;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// @alpha
|
|
115
|
+
export type FixRecursiveArraySchema<T> = T extends TreeNodeSchema ? undefined : undefined;
|
|
116
|
+
|
|
117
|
+
// @public
|
|
118
|
+
type FlattenKeys<T> = [{
|
|
119
|
+
[Property in keyof T]: T[Property];
|
|
120
|
+
}][_InlineTrick];
|
|
121
|
+
|
|
122
|
+
// @public
|
|
123
|
+
type FlexList<Item = unknown> = readonly LazyItem<Item>[];
|
|
124
|
+
|
|
125
|
+
// @public
|
|
126
|
+
type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
|
|
127
|
+
|
|
128
|
+
// @public
|
|
129
|
+
export type FluidObject<T = unknown> = {
|
|
130
|
+
[P in FluidObjectProviderKeys<T>]?: T[P];
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
// @public
|
|
134
|
+
export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string extends TProp ? never : number extends TProp ? never : TProp extends keyof Required<T>[TProp] ? Required<T>[TProp] extends Required<Required<T>[TProp]>[TProp] ? TProp : never : never;
|
|
135
|
+
|
|
136
|
+
// @alpha
|
|
137
|
+
export function getJsonSchema(schema: ImplicitAllowedTypes): JsonTreeSchema;
|
|
138
|
+
|
|
139
|
+
// @public
|
|
140
|
+
export interface IConnection {
|
|
141
|
+
readonly id: string;
|
|
142
|
+
readonly mode: "write" | "read";
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// @public
|
|
146
|
+
export type ICriticalContainerError = IErrorBase;
|
|
147
|
+
|
|
148
|
+
// @public @sealed
|
|
149
|
+
export interface IDisposable {
|
|
150
|
+
dispose(error?: Error): void;
|
|
151
|
+
readonly disposed: boolean;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// @public
|
|
155
|
+
export interface IErrorBase extends Partial<Error> {
|
|
156
|
+
readonly errorType: string;
|
|
157
|
+
getTelemetryProperties?(): ITelemetryBaseProperties;
|
|
158
|
+
readonly message: string;
|
|
159
|
+
readonly name?: string;
|
|
160
|
+
readonly stack?: string;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// @public
|
|
164
|
+
export interface IErrorEvent extends IEvent {
|
|
165
|
+
// @eventProperty
|
|
166
|
+
(event: "error", listener: (message: any) => void): any;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// @public
|
|
170
|
+
export interface IEvent {
|
|
171
|
+
// @eventProperty
|
|
172
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// @public @sealed
|
|
176
|
+
export interface IEventProvider<TEvent extends IEvent> {
|
|
177
|
+
readonly off: IEventTransformer<this, TEvent>;
|
|
178
|
+
readonly on: IEventTransformer<this, TEvent>;
|
|
179
|
+
readonly once: IEventTransformer<this, TEvent>;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// @public
|
|
183
|
+
export type IEventThisPlaceHolder = {
|
|
184
|
+
thisPlaceHolder: "thisPlaceHolder";
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
// @public
|
|
188
|
+
export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
|
|
189
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
190
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
191
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
192
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
193
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
194
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
195
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
196
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
197
|
+
(event: infer E8, listener: (...args: infer A8) => void): any;
|
|
198
|
+
(event: infer E9, listener: (...args: infer A9) => void): any;
|
|
199
|
+
(event: infer E10, listener: (...args: infer A10) => void): any;
|
|
200
|
+
(event: infer E11, listener: (...args: infer A11) => void): any;
|
|
201
|
+
(event: infer E12, listener: (...args: infer A12) => void): any;
|
|
202
|
+
(event: infer E13, listener: (...args: infer A13) => void): any;
|
|
203
|
+
(event: infer E14, listener: (...args: infer A14) => void): any;
|
|
204
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
205
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> & TransformedEvent<TThis, E13, A13> & TransformedEvent<TThis, E14, A14> : TEvent extends {
|
|
206
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
207
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
208
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
209
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
210
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
211
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
212
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
213
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
214
|
+
(event: infer E8, listener: (...args: infer A8) => void): any;
|
|
215
|
+
(event: infer E9, listener: (...args: infer A9) => void): any;
|
|
216
|
+
(event: infer E10, listener: (...args: infer A10) => void): any;
|
|
217
|
+
(event: infer E11, listener: (...args: infer A11) => void): any;
|
|
218
|
+
(event: infer E12, listener: (...args: infer A12) => void): any;
|
|
219
|
+
(event: infer E13, listener: (...args: infer A13) => void): any;
|
|
220
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
221
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> & TransformedEvent<TThis, E13, A13> : TEvent extends {
|
|
222
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
223
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
224
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
225
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
226
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
227
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
228
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
229
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
230
|
+
(event: infer E8, listener: (...args: infer A8) => void): any;
|
|
231
|
+
(event: infer E9, listener: (...args: infer A9) => void): any;
|
|
232
|
+
(event: infer E10, listener: (...args: infer A10) => void): any;
|
|
233
|
+
(event: infer E11, listener: (...args: infer A11) => void): any;
|
|
234
|
+
(event: infer E12, listener: (...args: infer A12) => void): any;
|
|
235
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
236
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> : TEvent extends {
|
|
237
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
238
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
239
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
240
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
241
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
242
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
243
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
244
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
245
|
+
(event: infer E8, listener: (...args: infer A8) => void): any;
|
|
246
|
+
(event: infer E9, listener: (...args: infer A9) => void): any;
|
|
247
|
+
(event: infer E10, listener: (...args: infer A10) => void): any;
|
|
248
|
+
(event: infer E11, listener: (...args: infer A11) => void): any;
|
|
249
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
250
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> : TEvent extends {
|
|
251
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
252
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
253
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
254
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
255
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
256
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
257
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
258
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
259
|
+
(event: infer E8, listener: (...args: infer A8) => void): any;
|
|
260
|
+
(event: infer E9, listener: (...args: infer A9) => void): any;
|
|
261
|
+
(event: infer E10, listener: (...args: infer A10) => void): any;
|
|
262
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
263
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> : TEvent extends {
|
|
264
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
265
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
266
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
267
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
268
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
269
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
270
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
271
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
272
|
+
(event: infer E8, listener: (...args: infer A8) => void): any;
|
|
273
|
+
(event: infer E9, listener: (...args: infer A9) => void): any;
|
|
274
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
275
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> : TEvent extends {
|
|
276
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
277
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
278
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
279
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
280
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
281
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
282
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
283
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
284
|
+
(event: infer E8, listener: (...args: infer A8) => void): any;
|
|
285
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
286
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> : TEvent extends {
|
|
287
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
288
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
289
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
290
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
291
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
292
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
293
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
294
|
+
(event: infer E7, listener: (...args: infer A7) => void): any;
|
|
295
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
296
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> : TEvent extends {
|
|
297
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
298
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
299
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
300
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
301
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
302
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
303
|
+
(event: infer E6, listener: (...args: infer A6) => void): any;
|
|
304
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
305
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> : TEvent extends {
|
|
306
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
307
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
308
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
309
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
310
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
311
|
+
(event: infer E5, listener: (...args: infer A5) => void): any;
|
|
312
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
313
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> : TEvent extends {
|
|
314
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
315
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
316
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
317
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
318
|
+
(event: infer E4, listener: (...args: infer A4) => void): any;
|
|
319
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
320
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> : TEvent extends {
|
|
321
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
322
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
323
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
324
|
+
(event: infer E3, listener: (...args: infer A3) => void): any;
|
|
325
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
326
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> : TEvent extends {
|
|
327
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
328
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
329
|
+
(event: infer E2, listener: (...args: infer A2) => void): any;
|
|
330
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
331
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> : TEvent extends {
|
|
332
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
333
|
+
(event: infer E1, listener: (...args: infer A1) => void): any;
|
|
334
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
335
|
+
} ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> : TEvent extends {
|
|
336
|
+
(event: infer E0, listener: (...args: infer A0) => void): any;
|
|
337
|
+
(event: string, listener: (...args: any[]) => void): any;
|
|
338
|
+
} ? TransformedEvent<TThis, E0, A0> : TransformedEvent<TThis, string, any[]>;
|
|
339
|
+
|
|
340
|
+
// @public @sealed
|
|
341
|
+
export interface IFluidContainer<TContainerSchema extends ContainerSchema = ContainerSchema> extends IEventProvider<IFluidContainerEvents> {
|
|
342
|
+
attach(props?: ContainerAttachProps): Promise<string>;
|
|
343
|
+
readonly attachState: AttachState;
|
|
344
|
+
connect(): void;
|
|
345
|
+
readonly connectionState: ConnectionStateType;
|
|
346
|
+
create<T extends IFluidLoadable>(objectClass: SharedObjectKind<T>): Promise<T>;
|
|
347
|
+
disconnect(): void;
|
|
348
|
+
dispose(): void;
|
|
349
|
+
readonly disposed: boolean;
|
|
350
|
+
readonly initialObjects: InitialObjects<TContainerSchema>;
|
|
351
|
+
readonly isDirty: boolean;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
// @public @sealed
|
|
355
|
+
export interface IFluidContainerEvents extends IEvent {
|
|
356
|
+
(event: "connected", listener: () => void): void;
|
|
357
|
+
(event: "disconnected", listener: () => void): void;
|
|
358
|
+
(event: "saved", listener: () => void): void;
|
|
359
|
+
(event: "dirty", listener: () => void): void;
|
|
360
|
+
(event: "disposed", listener: (error?: ICriticalContainerError) => void): any;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
// @public (undocumented)
|
|
364
|
+
export const IFluidHandle = "IFluidHandle";
|
|
365
|
+
|
|
366
|
+
// @public @sealed
|
|
367
|
+
export interface IFluidHandle<out T = unknown> {
|
|
368
|
+
readonly [fluidHandleSymbol]: IFluidHandleErased<T>;
|
|
369
|
+
get(): Promise<T>;
|
|
370
|
+
readonly isAttached: boolean;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// @public @sealed
|
|
374
|
+
export interface IFluidHandleErased<T> extends ErasedType<readonly ["IFluidHandle", T]> {
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// @public (undocumented)
|
|
378
|
+
export const IFluidLoadable: keyof IProvideFluidLoadable;
|
|
379
|
+
|
|
380
|
+
// @public @sealed
|
|
381
|
+
export interface IFluidLoadable extends IProvideFluidLoadable {
|
|
382
|
+
// (undocumented)
|
|
383
|
+
readonly handle: IFluidHandle;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
// @public
|
|
387
|
+
export interface IMember {
|
|
388
|
+
readonly connections: IConnection[];
|
|
389
|
+
readonly id: string;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
// @public
|
|
393
|
+
export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
|
|
394
|
+
|
|
395
|
+
// @public
|
|
396
|
+
export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
|
|
397
|
+
|
|
398
|
+
// @public
|
|
399
|
+
export type InitialObjects<T extends ContainerSchema> = {
|
|
400
|
+
[K in keyof T["initialObjects"]]: T["initialObjects"][K] extends SharedObjectKind<infer TChannel> ? TChannel : never;
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
// @public
|
|
404
|
+
type _InlineTrick = 0;
|
|
405
|
+
|
|
406
|
+
// @public
|
|
407
|
+
type InsertableObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = FlattenKeys<{
|
|
408
|
+
readonly [Property in keyof T]?: InsertableTreeFieldFromImplicitField<T[Property]>;
|
|
409
|
+
} & {
|
|
410
|
+
readonly [Property in keyof T as FieldHasDefault<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitField<T[Property]>;
|
|
411
|
+
}>;
|
|
412
|
+
|
|
413
|
+
// @public
|
|
414
|
+
export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
|
|
415
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
416
|
+
} & {
|
|
417
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends true ? Property : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
// @public
|
|
421
|
+
export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
|
|
422
|
+
|
|
423
|
+
// @public
|
|
424
|
+
export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
|
|
425
|
+
|
|
426
|
+
// @public
|
|
427
|
+
export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
|
|
428
|
+
|
|
429
|
+
// @public
|
|
430
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
|
|
431
|
+
|
|
432
|
+
// @public
|
|
433
|
+
export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
|
|
434
|
+
implicitlyConstructable: true;
|
|
435
|
+
} ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
|
|
436
|
+
|
|
437
|
+
// @public
|
|
438
|
+
type InsertableTypedNodeUnsafe<T extends Unenforced<TreeNodeSchema>> = [
|
|
439
|
+
Unhydrated<NodeFromSchemaUnsafe<T>> | (T extends {
|
|
440
|
+
implicitlyConstructable: true;
|
|
441
|
+
} ? NodeBuilderDataUnsafe<T> : never)
|
|
442
|
+
][_InlineTrick];
|
|
443
|
+
|
|
444
|
+
// @public @sealed
|
|
445
|
+
export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
declare namespace InternalTypes {
|
|
449
|
+
export {
|
|
450
|
+
_InlineTrick,
|
|
451
|
+
FlattenKeys,
|
|
452
|
+
ApplyKind,
|
|
453
|
+
NodeBuilderData,
|
|
454
|
+
FieldHasDefault,
|
|
455
|
+
TreeNodeSchemaNonClass,
|
|
456
|
+
TreeArrayNodeBase,
|
|
457
|
+
ScopedSchemaName,
|
|
458
|
+
DefaultProvider,
|
|
459
|
+
typeNameSymbol,
|
|
460
|
+
InsertableObjectFromSchemaRecord,
|
|
461
|
+
ObjectFromSchemaRecord,
|
|
462
|
+
FieldHasDefaultUnsafe,
|
|
463
|
+
ObjectFromSchemaRecordUnsafe,
|
|
464
|
+
TreeObjectNodeUnsafe,
|
|
465
|
+
TreeFieldFromImplicitFieldUnsafe,
|
|
466
|
+
TreeNodeFromImplicitAllowedTypesUnsafe,
|
|
467
|
+
InsertableTreeNodeFromImplicitAllowedTypesUnsafe,
|
|
468
|
+
TreeArrayNodeUnsafe,
|
|
469
|
+
TreeMapNodeUnsafe,
|
|
470
|
+
InsertableObjectFromSchemaRecordUnsafe,
|
|
471
|
+
InsertableTreeFieldFromImplicitFieldUnsafe,
|
|
472
|
+
InsertableTypedNodeUnsafe,
|
|
473
|
+
NodeBuilderDataUnsafe,
|
|
474
|
+
NodeFromSchemaUnsafe,
|
|
475
|
+
ReadonlyMapInlined,
|
|
476
|
+
FlexList,
|
|
477
|
+
FlexListToUnion,
|
|
478
|
+
ExtractItemType,
|
|
479
|
+
TreeApi
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
export { InternalTypes }
|
|
483
|
+
|
|
484
|
+
// @public (undocumented)
|
|
485
|
+
export interface IProvideFluidLoadable {
|
|
486
|
+
// (undocumented)
|
|
487
|
+
readonly IFluidLoadable: IFluidLoadable;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
// @public
|
|
491
|
+
export interface IServiceAudience<M extends IMember> extends IEventProvider<IServiceAudienceEvents<M>> {
|
|
492
|
+
getMembers(): ReadonlyMap<string, M>;
|
|
493
|
+
getMyself(): Myself<M> | undefined;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
// @public
|
|
497
|
+
export interface IServiceAudienceEvents<M extends IMember> extends IEvent {
|
|
498
|
+
// @eventProperty
|
|
499
|
+
(event: "membersChanged", listener: () => void): void;
|
|
500
|
+
// @eventProperty
|
|
501
|
+
(event: "memberAdded", listener: MemberChangedListener<M>): void;
|
|
502
|
+
// @eventProperty
|
|
503
|
+
(event: "memberRemoved", listener: MemberChangedListener<M>): void;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
// @public
|
|
507
|
+
export function isFluidHandle(value: unknown): value is IFluidHandle;
|
|
508
|
+
|
|
509
|
+
// @public
|
|
510
|
+
export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
|
|
511
|
+
|
|
512
|
+
// @public
|
|
513
|
+
export interface ITelemetryBaseProperties {
|
|
514
|
+
[index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
// @public @sealed
|
|
518
|
+
export class IterableTreeArrayContent<T> implements Iterable<T> {
|
|
519
|
+
[Symbol.iterator](): Iterator<T>;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// @public @sealed
|
|
523
|
+
export interface ITree extends IFluidLoadable {
|
|
524
|
+
viewWith<TRoot extends ImplicitFieldSchema>(config: TreeViewConfiguration<TRoot>): TreeView<TRoot>;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
// @public
|
|
528
|
+
export interface ITreeConfigurationOptions {
|
|
529
|
+
enableSchemaValidation?: boolean;
|
|
530
|
+
readonly preventAmbiguity?: boolean;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
// @public
|
|
534
|
+
export interface ITreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> extends ITreeConfigurationOptions {
|
|
535
|
+
readonly schema: TSchema;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
// @alpha @sealed
|
|
539
|
+
export interface JsonArrayNodeSchema extends JsonNodeSchemaBase<NodeKind.Array, "array"> {
|
|
540
|
+
readonly items: {
|
|
541
|
+
anyOf: JsonSchemaRef[];
|
|
542
|
+
};
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
// @alpha @sealed
|
|
546
|
+
export interface JsonFieldSchema {
|
|
547
|
+
readonly anyOf: JsonSchemaRef[];
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
// @alpha @sealed
|
|
551
|
+
export interface JsonLeafNodeSchema extends JsonNodeSchemaBase<NodeKind.Leaf, JsonLeafSchemaType> {
|
|
552
|
+
readonly type: JsonLeafSchemaType;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
// @alpha
|
|
556
|
+
export type JsonLeafSchemaType = "string" | "number" | "boolean" | "null";
|
|
557
|
+
|
|
558
|
+
// @alpha @sealed
|
|
559
|
+
export interface JsonMapNodeSchema extends JsonNodeSchemaBase<NodeKind.Map, "object"> {
|
|
560
|
+
readonly patternProperties: {
|
|
561
|
+
"^.*$": JsonFieldSchema;
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
// @alpha
|
|
566
|
+
export type JsonNodeSchema = JsonLeafNodeSchema | JsonMapNodeSchema | JsonArrayNodeSchema | JsonObjectNodeSchema;
|
|
567
|
+
|
|
568
|
+
// @alpha @sealed
|
|
569
|
+
export interface JsonNodeSchemaBase<TNodeKind extends NodeKind, TJsonSchemaType extends JsonSchemaType> {
|
|
570
|
+
readonly _treeNodeSchemaKind: TNodeKind;
|
|
571
|
+
readonly type: TJsonSchemaType;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
// @alpha @sealed
|
|
575
|
+
export interface JsonObjectNodeSchema extends JsonNodeSchemaBase<NodeKind.Object, "object"> {
|
|
576
|
+
readonly additionalProperties?: boolean;
|
|
577
|
+
readonly properties: Record<string, JsonFieldSchema>;
|
|
578
|
+
readonly required?: string[];
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
// @alpha
|
|
582
|
+
export type JsonRefPath = `#/$defs/${JsonSchemaId}`;
|
|
583
|
+
|
|
584
|
+
// @alpha
|
|
585
|
+
export type JsonSchemaId = string;
|
|
586
|
+
|
|
587
|
+
// @alpha @sealed
|
|
588
|
+
export interface JsonSchemaRef {
|
|
589
|
+
$ref: JsonRefPath;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
// @alpha
|
|
593
|
+
export type JsonSchemaType = "object" | "array" | JsonLeafSchemaType;
|
|
594
|
+
|
|
595
|
+
// @alpha @sealed
|
|
596
|
+
export interface JsonTreeSchema extends JsonFieldSchema {
|
|
597
|
+
readonly $defs: Record<JsonSchemaId, JsonNodeSchema>;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
// @public
|
|
601
|
+
export type LazyItem<Item = unknown> = Item | (() => Item);
|
|
602
|
+
|
|
603
|
+
// @public @sealed
|
|
604
|
+
export interface Listenable<TListeners extends object> {
|
|
605
|
+
on<K extends keyof Listeners<TListeners>>(eventName: K, listener: TListeners[K]): Off;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
// @public
|
|
609
|
+
export type Listeners<T extends object> = {
|
|
610
|
+
[P in (string | symbol) & keyof T as IsListener<T[P]> extends true ? P : never]: T[P];
|
|
611
|
+
};
|
|
612
|
+
|
|
613
|
+
// @public @sealed
|
|
614
|
+
export interface MakeNominal {
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// @public
|
|
618
|
+
export type MapNodeInsertableData<T extends ImplicitAllowedTypes> = Iterable<readonly [string, InsertableTreeNodeFromImplicitAllowedTypes<T>]> | RestrictiveReadonlyRecord<string, InsertableTreeNodeFromImplicitAllowedTypes<T>>;
|
|
619
|
+
|
|
620
|
+
// @public
|
|
621
|
+
export type MemberChangedListener<M extends IMember> = (clientId: string, member: M) => void;
|
|
622
|
+
|
|
623
|
+
// @public
|
|
624
|
+
export type Myself<M extends IMember = IMember> = M & {
|
|
625
|
+
readonly currentConnection: string;
|
|
626
|
+
};
|
|
627
|
+
|
|
628
|
+
// @public
|
|
629
|
+
type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
630
|
+
|
|
631
|
+
// @public
|
|
632
|
+
type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
633
|
+
|
|
634
|
+
// @beta @sealed
|
|
635
|
+
export interface NodeChangedData<TNode extends TreeNode = TreeNode> {
|
|
636
|
+
readonly changedProperties?: ReadonlySet<TNode extends WithType<string, NodeKind.Object, infer TInfo> ? string & keyof TInfo : string>;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
// @public
|
|
640
|
+
export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
641
|
+
|
|
642
|
+
// @public
|
|
643
|
+
type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
|
|
644
|
+
|
|
645
|
+
// @public
|
|
646
|
+
export interface NodeInDocumentConstraint {
|
|
647
|
+
// (undocumented)
|
|
648
|
+
readonly node: TreeNode;
|
|
649
|
+
// (undocumented)
|
|
650
|
+
readonly type: "nodeInDocument";
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
// @public
|
|
654
|
+
export enum NodeKind {
|
|
655
|
+
Array = 1,
|
|
656
|
+
Leaf = 3,
|
|
657
|
+
Map = 0,
|
|
658
|
+
Object = 2
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
// @public
|
|
662
|
+
type ObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = {
|
|
663
|
+
-readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property]>;
|
|
664
|
+
};
|
|
665
|
+
|
|
666
|
+
// @public
|
|
667
|
+
type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
|
|
668
|
+
-readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
|
|
669
|
+
};
|
|
670
|
+
|
|
671
|
+
// @public
|
|
672
|
+
export type Off = () => void;
|
|
673
|
+
|
|
674
|
+
// @public @sealed
|
|
675
|
+
interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
|
|
676
|
+
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
677
|
+
entries(): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
678
|
+
// (undocumented)
|
|
679
|
+
forEach(callbackfn: (value: TreeNodeFromImplicitAllowedTypesUnsafe<T>, key: K, map: ReadonlyMap<K, TreeNodeFromImplicitAllowedTypesUnsafe<T>>) => void, thisArg?: any): void;
|
|
680
|
+
// (undocumented)
|
|
681
|
+
get(key: K): TreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined;
|
|
682
|
+
// (undocumented)
|
|
683
|
+
has(key: K): boolean;
|
|
684
|
+
keys(): IterableIterator<K>;
|
|
685
|
+
// (undocumented)
|
|
686
|
+
readonly size: number;
|
|
687
|
+
values(): IterableIterator<TreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
// @public
|
|
691
|
+
export type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
|
|
692
|
+
[K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
|
|
693
|
+
} : L;
|
|
694
|
+
|
|
695
|
+
// @public
|
|
696
|
+
export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
|
|
697
|
+
readonly [P in symbol | string]: P extends K ? T : never;
|
|
698
|
+
};
|
|
699
|
+
|
|
700
|
+
// @public @sealed
|
|
701
|
+
export interface Revertible {
|
|
702
|
+
dispose(): void;
|
|
703
|
+
revert(): void;
|
|
704
|
+
revert(dispose: boolean): void;
|
|
705
|
+
readonly status: RevertibleStatus;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
// @public @sealed
|
|
709
|
+
export type RevertibleFactory = (onRevertibleDisposed?: (revertible: Revertible) => void) => Revertible;
|
|
710
|
+
|
|
711
|
+
// @public
|
|
712
|
+
export enum RevertibleStatus {
|
|
713
|
+
Disposed = 1,
|
|
714
|
+
Valid = 0
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
// @public
|
|
718
|
+
export const rollback: unique symbol;
|
|
719
|
+
|
|
720
|
+
// @public @sealed
|
|
721
|
+
export interface RunTransaction {
|
|
722
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
|
|
723
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
|
|
724
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
|
|
725
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
|
|
726
|
+
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
|
|
727
|
+
<TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
|
|
728
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
729
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
|
|
730
|
+
<TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
731
|
+
<TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
|
|
732
|
+
<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
733
|
+
<TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
|
|
734
|
+
readonly rollback: typeof rollback;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
// @public @sealed
|
|
738
|
+
export interface SchemaCompatibilityStatus {
|
|
739
|
+
readonly canInitialize: boolean;
|
|
740
|
+
readonly canUpgrade: boolean;
|
|
741
|
+
readonly canView: boolean;
|
|
742
|
+
readonly isEquivalent: boolean;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
// @public @sealed
|
|
746
|
+
export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
|
|
747
|
+
constructor(scope: TScope);
|
|
748
|
+
array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
749
|
+
array<const Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
|
|
750
|
+
arrayRecursive<const Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Array, TreeArrayNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Array, unknown>, {
|
|
751
|
+
[Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
752
|
+
}, false, T>;
|
|
753
|
+
readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
|
|
754
|
+
readonly handle: TreeNodeSchema<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<unknown>, IFluidHandle<unknown>>;
|
|
755
|
+
get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
|
|
756
|
+
map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
757
|
+
map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>, MapNodeInsertableData<T>, true, T>;
|
|
758
|
+
mapRecursive<Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map, unknown>, {
|
|
759
|
+
[Symbol.iterator](): Iterator<[
|
|
760
|
+
string,
|
|
761
|
+
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
762
|
+
]>;
|
|
763
|
+
}, false, T>;
|
|
764
|
+
readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
|
|
765
|
+
readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
|
|
766
|
+
object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
|
|
767
|
+
objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & { readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property]> extends false ? Property : never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>; } & { readonly [Property_1 in keyof T as FieldHasDefaultUnsafe<T[Property_1]> extends true ? Property_1 : never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property_1]> | undefined; }, false, T>;
|
|
768
|
+
optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Optional, T>;
|
|
769
|
+
optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
|
|
770
|
+
required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Required, T>;
|
|
771
|
+
requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
|
|
772
|
+
// (undocumented)
|
|
773
|
+
readonly scope: TScope;
|
|
774
|
+
readonly string: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
// @public
|
|
778
|
+
type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
|
|
779
|
+
|
|
780
|
+
// @public @sealed
|
|
781
|
+
export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedType<readonly ["SharedObjectKind", TSharedObject]> {
|
|
782
|
+
is(value: IFluidLoadable): value is IFluidLoadable & TSharedObject;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
// @public
|
|
786
|
+
export const SharedTree: SharedObjectKind<ITree>;
|
|
787
|
+
|
|
788
|
+
// @public
|
|
789
|
+
export interface Tagged<V, T extends string = string> {
|
|
790
|
+
// (undocumented)
|
|
791
|
+
tag: T;
|
|
792
|
+
// (undocumented)
|
|
793
|
+
value: V;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
// @public
|
|
797
|
+
export type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
|
|
798
|
+
|
|
799
|
+
// @public
|
|
800
|
+
export type TransactionConstraint = NodeInDocumentConstraint;
|
|
801
|
+
|
|
802
|
+
// @public
|
|
803
|
+
export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
|
|
804
|
+
|
|
805
|
+
// @public
|
|
806
|
+
export const Tree: TreeApi;
|
|
807
|
+
|
|
808
|
+
// @public @sealed
|
|
809
|
+
interface TreeApi extends TreeNodeApi {
|
|
810
|
+
contains(node: TreeNode, other: TreeNode): boolean;
|
|
811
|
+
readonly runTransaction: RunTransaction;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
// @public @sealed
|
|
815
|
+
export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>, TreeArrayNode> {
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
// @public
|
|
819
|
+
export const TreeArrayNode: {
|
|
820
|
+
readonly spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;
|
|
821
|
+
};
|
|
822
|
+
|
|
823
|
+
// @public @sealed
|
|
824
|
+
interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
|
|
825
|
+
insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
826
|
+
insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
827
|
+
insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
828
|
+
moveRangeToEnd(sourceStart: number, sourceEnd: number): void;
|
|
829
|
+
moveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
|
|
830
|
+
moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;
|
|
831
|
+
moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
|
|
832
|
+
moveRangeToStart(sourceStart: number, sourceEnd: number): void;
|
|
833
|
+
moveRangeToStart(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
|
|
834
|
+
moveToEnd(sourceIndex: number): void;
|
|
835
|
+
moveToEnd(sourceIndex: number, source: TMoveFrom): void;
|
|
836
|
+
moveToIndex(index: number, sourceIndex: number): void;
|
|
837
|
+
moveToIndex(index: number, sourceIndex: number, source: TMoveFrom): void;
|
|
838
|
+
moveToStart(sourceIndex: number): void;
|
|
839
|
+
moveToStart(sourceIndex: number, source: TMoveFrom): void;
|
|
840
|
+
removeAt(index: number): void;
|
|
841
|
+
removeRange(start?: number, end?: number): void;
|
|
842
|
+
values(): IterableIterator<T>;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
// @public @sealed
|
|
846
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
// @beta @sealed
|
|
850
|
+
export const TreeBeta: {
|
|
851
|
+
readonly on: <K extends keyof TreeChangeEventsBeta<TNode>, TNode extends TreeNode>(node: TNode, eventName: K, listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>) => () => void;
|
|
852
|
+
};
|
|
853
|
+
|
|
854
|
+
// @public @sealed
|
|
855
|
+
export interface TreeChangeEvents {
|
|
856
|
+
nodeChanged(unstable?: unknown): void;
|
|
857
|
+
treeChanged(): void;
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
// @beta @sealed
|
|
861
|
+
export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode> extends TreeChangeEvents {
|
|
862
|
+
nodeChanged: (data: NodeChangedData<TNode> & (TNode extends WithType<string, NodeKind.Map | NodeKind.Object> ? Required<Pick<NodeChangedData<TNode>, "changedProperties">> : unknown)) => void;
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
// @public
|
|
866
|
+
export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
|
|
867
|
+
|
|
868
|
+
// @public
|
|
869
|
+
type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
|
|
870
|
+
|
|
871
|
+
// @public
|
|
872
|
+
export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
|
|
873
|
+
|
|
874
|
+
// @public @sealed
|
|
875
|
+
export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>, TreeNode {
|
|
876
|
+
delete(key: string): void;
|
|
877
|
+
entries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]>;
|
|
878
|
+
forEach(callbackfn: (value: TreeNodeFromImplicitAllowedTypes<T>, key: string, map: ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>) => void, thisArg?: any): void;
|
|
879
|
+
keys(): IterableIterator<string>;
|
|
880
|
+
set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T> | undefined): void;
|
|
881
|
+
values(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>>;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
// @public @sealed
|
|
885
|
+
export interface TreeMapNodeUnsafe<T extends Unenforced<ImplicitAllowedTypes>> extends ReadonlyMapInlined<string, T>, TreeNode {
|
|
886
|
+
delete(key: string): void;
|
|
887
|
+
set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined): void;
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
// @public @sealed
|
|
891
|
+
export abstract class TreeNode implements WithType {
|
|
892
|
+
static [Symbol.hasInstance](value: unknown): value is TreeNode;
|
|
893
|
+
static [Symbol.hasInstance]<TSchema extends abstract new (...args: any[]) => TreeNode>(this: TSchema, value: unknown): value is InstanceType<TSchema>;
|
|
894
|
+
// @deprecated
|
|
895
|
+
abstract get [typeNameSymbol](): string;
|
|
896
|
+
abstract get [typeSchemaSymbol](): TreeNodeSchemaClass;
|
|
897
|
+
protected constructor(token: unknown);
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
// @public @sealed
|
|
901
|
+
export interface TreeNodeApi {
|
|
902
|
+
is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
|
|
903
|
+
key(node: TreeNode): string | number;
|
|
904
|
+
on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
|
|
905
|
+
parent(node: TreeNode): TreeNode | undefined;
|
|
906
|
+
schema(node: TreeNode | TreeLeafValue): TreeNodeSchema;
|
|
907
|
+
shortId(node: TreeNode): number | string | undefined;
|
|
908
|
+
status(node: TreeNode): TreeStatus;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
// @public
|
|
912
|
+
export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
913
|
+
|
|
914
|
+
// @public
|
|
915
|
+
type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
|
|
916
|
+
|
|
917
|
+
// @public @sealed
|
|
918
|
+
export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
919
|
+
|
|
920
|
+
// @public @sealed
|
|
921
|
+
export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
922
|
+
// @sealed
|
|
923
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
// @public @sealed
|
|
927
|
+
export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown> {
|
|
928
|
+
readonly identifier: Name;
|
|
929
|
+
readonly implicitlyConstructable: ImplicitlyConstructable;
|
|
930
|
+
readonly info: Info;
|
|
931
|
+
// (undocumented)
|
|
932
|
+
readonly kind: Kind;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
// @public @sealed
|
|
936
|
+
interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
937
|
+
// (undocumented)
|
|
938
|
+
create(data: TInsertable): TNode;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
// @public
|
|
942
|
+
export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
943
|
+
|
|
944
|
+
// @public
|
|
945
|
+
export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object>;
|
|
946
|
+
|
|
947
|
+
// @public
|
|
948
|
+
export enum TreeStatus {
|
|
949
|
+
Deleted = 2,
|
|
950
|
+
InDocument = 0,
|
|
951
|
+
New = 3,
|
|
952
|
+
Removed = 1
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
// @public @sealed
|
|
956
|
+
export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
|
|
957
|
+
readonly compatibility: SchemaCompatibilityStatus;
|
|
958
|
+
readonly events: Listenable<TreeViewEvents>;
|
|
959
|
+
initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
|
|
960
|
+
get root(): TreeFieldFromImplicitField<TSchema>;
|
|
961
|
+
set root(newRoot: InsertableTreeFieldFromImplicitField<TSchema>);
|
|
962
|
+
upgradeSchema(): void;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
// @public @sealed
|
|
966
|
+
export class TreeViewConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> implements Required<ITreeViewConfiguration<TSchema>> {
|
|
967
|
+
constructor(props: ITreeViewConfiguration<TSchema>);
|
|
968
|
+
readonly enableSchemaValidation: boolean;
|
|
969
|
+
readonly preventAmbiguity: boolean;
|
|
970
|
+
readonly schema: TSchema;
|
|
971
|
+
// (undocumented)
|
|
972
|
+
protected _typeCheck: MakeNominal;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
// @public @sealed
|
|
976
|
+
export interface TreeViewEvents {
|
|
977
|
+
commitApplied(data: CommitMetadata, getRevertible?: RevertibleFactory): void;
|
|
978
|
+
rootChanged(): void;
|
|
979
|
+
schemaChanged(): void;
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
// @public @deprecated
|
|
983
|
+
const typeNameSymbol: unique symbol;
|
|
984
|
+
|
|
985
|
+
// @public
|
|
986
|
+
export const typeSchemaSymbol: unique symbol;
|
|
987
|
+
|
|
988
|
+
// @public
|
|
989
|
+
export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
990
|
+
|
|
991
|
+
// @public
|
|
992
|
+
export type Unhydrated<T> = T;
|
|
993
|
+
|
|
994
|
+
// @public
|
|
995
|
+
export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
|
|
996
|
+
[NodeKind.Object]: T["info"] extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
|
|
997
|
+
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
|
|
998
|
+
[NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
|
|
999
|
+
}[T["kind"]], false, {
|
|
1000
|
+
[NodeKind.Object]: RestrictiveReadonlyRecord<string, ImplicitFieldSchema>;
|
|
1001
|
+
[NodeKind.Array]: ImplicitAllowedTypes;
|
|
1002
|
+
[NodeKind.Map]: ImplicitAllowedTypes;
|
|
1003
|
+
}[T["kind"]]>> = true;
|
|
1004
|
+
|
|
1005
|
+
// @public @sealed
|
|
1006
|
+
export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
|
|
1007
|
+
// @deprecated
|
|
1008
|
+
get [typeNameSymbol](): TName;
|
|
1009
|
+
get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
```
|