fluid-framework 2.0.0-dev-rc.5.0.0.265721 → 2.0.0-dev-rc.5.0.0.268409

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.
@@ -0,0 +1,642 @@
1
+ ## Public 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
+ import { Client } from '@fluidframework/merge-tree/internal';
8
+ import { ErasedType } from '@fluidframework/core-interfaces';
9
+ import { IChannel } from '@fluidframework/datastore-definitions/internal';
10
+ import { IDisposable } from '@fluidframework/core-interfaces';
11
+ import type { IErrorBase } from '@fluidframework/core-interfaces';
12
+ import { IErrorEvent } from '@fluidframework/core-interfaces';
13
+ import { IEvent } from '@fluidframework/core-interfaces';
14
+ import { IEventProvider } from '@fluidframework/core-interfaces';
15
+ import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
16
+ import { IFluidHandle } from '@fluidframework/core-interfaces';
17
+ import { IFluidLoadable } from '@fluidframework/core-interfaces';
18
+ import { IGarbageCollectionData } from '@fluidframework/runtime-definitions/internal';
19
+ import { IJSONSegment } from '@fluidframework/merge-tree/internal';
20
+ import { IMergeTreeDeltaCallbackArgs } from '@fluidframework/merge-tree/internal';
21
+ import { IMergeTreeDeltaOpArgs } from '@fluidframework/merge-tree/internal';
22
+ import { IMergeTreeGroupMsg } from '@fluidframework/merge-tree/internal';
23
+ import { IMergeTreeMaintenanceCallbackArgs } from '@fluidframework/merge-tree/internal';
24
+ import { IRelativePosition } from '@fluidframework/merge-tree/internal';
25
+ import { ISegment } from '@fluidframework/merge-tree/internal';
26
+ import { ISegmentAction } from '@fluidframework/merge-tree/internal';
27
+ import { ISharedObjectKind } from '@fluidframework/shared-object-base/internal';
28
+ import { LocalReferencePosition } from '@fluidframework/merge-tree/internal';
29
+ import { Marker } from '@fluidframework/merge-tree/internal';
30
+ import { MergeTreeDeltaOperationType } from '@fluidframework/merge-tree/internal';
31
+ import { MergeTreeDeltaOperationTypes } from '@fluidframework/merge-tree/internal';
32
+ import { MergeTreeMaintenanceType } from '@fluidframework/merge-tree/internal';
33
+ import { MergeTreeRevertibleDriver } from '@fluidframework/merge-tree/internal';
34
+ import { PropertiesManager } from '@fluidframework/merge-tree/internal';
35
+ import { PropertySet } from '@fluidframework/merge-tree/internal';
36
+ import { ReferencePosition } from '@fluidframework/merge-tree/internal';
37
+ import { ReferenceType } from '@fluidframework/merge-tree/internal';
38
+ import { SharedObjectKind as SharedObjectKind_2 } from '@fluidframework/shared-object-base/internal';
39
+ import { SlidingPreference } from '@fluidframework/merge-tree/internal';
40
+ import { TextSegment } from '@fluidframework/merge-tree/internal';
41
+ import { TypedEventEmitter } from '@fluid-internal/client-utils';
42
+
43
+ // @public
44
+ export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
45
+
46
+ // @public
47
+ export type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
48
+ [FieldKind.Required]: T;
49
+ [FieldKind.Optional]: T | undefined;
50
+ [FieldKind.Identifier]: DefaultsAreOptional extends true ? T | undefined : T;
51
+ }[Kind];
52
+
53
+ // @public
54
+ export enum AttachState {
55
+ Attached = "Attached",
56
+ Attaching = "Attaching",
57
+ Detached = "Detached"
58
+ }
59
+
60
+ // @public
61
+ export enum CommitKind {
62
+ Default = 0,
63
+ Redo = 2,
64
+ Undo = 1
65
+ }
66
+
67
+ // @public
68
+ export interface CommitMetadata {
69
+ readonly isLocal: boolean;
70
+ readonly kind: CommitKind;
71
+ }
72
+
73
+ // @public
74
+ export enum ConnectionState {
75
+ CatchingUp = 1,
76
+ Connected = 2,
77
+ Disconnected = 0,
78
+ EstablishingConnection = 3
79
+ }
80
+
81
+ // @public
82
+ export namespace ConnectionStateType {
83
+ export type CatchingUp = 1;
84
+ export type Connected = 2;
85
+ export type Disconnected = 0;
86
+ export type EstablishingConnection = 3;
87
+ }
88
+
89
+ // @public
90
+ export type ConnectionStateType = ConnectionStateType.Disconnected | ConnectionStateType.EstablishingConnection | ConnectionStateType.CatchingUp | ConnectionStateType.Connected;
91
+
92
+ // @public
93
+ export type ContainerAttachProps<T = unknown> = T;
94
+
95
+ // @public
96
+ export interface ContainerSchema {
97
+ readonly dynamicObjectTypes?: readonly SharedObjectKind[];
98
+ readonly initialObjects: Record<string, SharedObjectKind>;
99
+ }
100
+
101
+ // @public
102
+ export interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
103
+ }
104
+
105
+ // @public
106
+ export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
107
+
108
+ // @public
109
+ export enum FieldKind {
110
+ Identifier = 2,
111
+ Optional = 0,
112
+ Required = 1
113
+ }
114
+
115
+ // @public
116
+ export interface FieldProps {
117
+ readonly defaultProvider?: DefaultProvider;
118
+ readonly key?: string;
119
+ }
120
+
121
+ // @public @sealed
122
+ export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
123
+ readonly allowedTypes: Types;
124
+ get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
125
+ readonly kind: Kind;
126
+ readonly props?: FieldProps | undefined;
127
+ protected _typeCheck?: MakeNominal;
128
+ }
129
+
130
+ // @public
131
+ export interface FieldSchemaUnsafe<out Kind extends FieldKind, out Types extends Unenforced<ImplicitAllowedTypes>> extends FieldSchema<Kind, any> {
132
+ readonly allowedTypes: Types;
133
+ readonly allowedTypeSet: ReadonlySet<TreeNodeSchema>;
134
+ readonly kind: Kind;
135
+ }
136
+
137
+ // @public
138
+ export type FlexList<Item = unknown> = readonly LazyItem<Item>[];
139
+
140
+ // @public
141
+ export type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
142
+
143
+ // @public
144
+ export interface IBranchOrigin {
145
+ id: string;
146
+ minimumSequenceNumber: number;
147
+ sequenceNumber: number;
148
+ }
149
+
150
+ // @public
151
+ export interface IConnection {
152
+ readonly id: string;
153
+ readonly mode: "write" | "read";
154
+ }
155
+
156
+ // @public
157
+ export type ICriticalContainerError = IErrorBase;
158
+
159
+ // @public @sealed
160
+ export interface IFluidContainer<TContainerSchema extends ContainerSchema = ContainerSchema> extends IEventProvider<IFluidContainerEvents> {
161
+ attach(props?: ContainerAttachProps): Promise<string>;
162
+ readonly attachState: AttachState;
163
+ connect(): void;
164
+ readonly connectionState: ConnectionStateType;
165
+ create<T extends IFluidLoadable>(objectClass: SharedObjectKind<T>): Promise<T>;
166
+ disconnect(): void;
167
+ dispose(): void;
168
+ readonly disposed: boolean;
169
+ readonly initialObjects: InitialObjects<TContainerSchema>;
170
+ readonly isDirty: boolean;
171
+ }
172
+
173
+ // @public @sealed
174
+ export interface IFluidContainerEvents extends IEvent {
175
+ (event: "connected", listener: () => void): void;
176
+ (event: "disconnected", listener: () => void): void;
177
+ (event: "saved", listener: () => void): void;
178
+ (event: "dirty", listener: () => void): void;
179
+ (event: "disposed", listener: (error?: ICriticalContainerError) => void): any;
180
+ }
181
+
182
+ // @public
183
+ export interface IMember {
184
+ readonly connections: IConnection[];
185
+ readonly id: string;
186
+ }
187
+
188
+ // @public
189
+ export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
190
+
191
+ // @public
192
+ export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
193
+
194
+ // @public
195
+ export type InitialObjects<T extends ContainerSchema> = {
196
+ [K in keyof T["initialObjects"]]: T["initialObjects"][K] extends SharedObjectKind<infer TChannel> ? TChannel : never;
197
+ };
198
+
199
+ // @public
200
+ export type InsertableObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = {
201
+ readonly [Property in keyof T]: InsertableTreeFieldFromImplicitField<T[Property]>;
202
+ };
203
+
204
+ // @public
205
+ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
206
+ readonly [Property in keyof T]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
207
+ };
208
+
209
+ // @public
210
+ 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;
211
+
212
+ // @public
213
+ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
214
+
215
+ // @public
216
+ export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
217
+
218
+ // @public
219
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
220
+
221
+ // @public
222
+ export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
223
+ implicitlyConstructable: true;
224
+ } ? NodeBuilderData<T> : never) | Unhydrated<NodeFromSchema<T>>;
225
+
226
+ // @public
227
+ export type InsertableTypedNodeUnsafe<T extends Unenforced<TreeNodeSchema>> = Unhydrated<NodeFromSchemaUnsafe<T>> | (T extends {
228
+ implicitlyConstructable: true;
229
+ } ? NodeBuilderDataUnsafe<T> : never);
230
+
231
+ // @public
232
+ export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
233
+ }
234
+
235
+ // @public
236
+ export interface ISequencedDocumentMessage {
237
+ clientId: string | null;
238
+ clientSequenceNumber: number;
239
+ // @deprecated
240
+ compression?: string;
241
+ contents: unknown;
242
+ data?: string;
243
+ // @deprecated
244
+ expHash1?: string;
245
+ metadata?: unknown;
246
+ minimumSequenceNumber: number;
247
+ origin?: IBranchOrigin;
248
+ referenceSequenceNumber: number;
249
+ sequenceNumber: number;
250
+ serverMetadata?: unknown;
251
+ timestamp: number;
252
+ traces?: ITrace[];
253
+ type: string;
254
+ }
255
+
256
+ // @public
257
+ export interface IServiceAudience<M extends IMember> extends IEventProvider<IServiceAudienceEvents<M>> {
258
+ getMembers(): ReadonlyMap<string, M>;
259
+ getMyself(): Myself<M> | undefined;
260
+ }
261
+
262
+ // @public
263
+ export interface IServiceAudienceEvents<M extends IMember> extends IEvent {
264
+ // @eventProperty
265
+ (event: "membersChanged", listener: () => void): void;
266
+ // @eventProperty
267
+ (event: "memberAdded", listener: MemberChangedListener<M>): void;
268
+ // @eventProperty
269
+ (event: "memberRemoved", listener: MemberChangedListener<M>): void;
270
+ }
271
+
272
+ // @public
273
+ export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
274
+
275
+ // @public
276
+ export class IterableTreeArrayContent<T> implements Iterable<T> {
277
+ [Symbol.iterator](): Iterator<T>;
278
+ }
279
+
280
+ // @public
281
+ export interface ITrace {
282
+ action: string;
283
+ service: string;
284
+ timestamp: number;
285
+ }
286
+
287
+ // @public
288
+ export interface ITree extends IFluidLoadable {
289
+ schematize<TRoot extends ImplicitFieldSchema>(config: TreeConfiguration<TRoot>): TreeView<TRoot>;
290
+ }
291
+
292
+ // @public
293
+ export interface ITreeConfigurationOptions {
294
+ enableSchemaValidation?: boolean;
295
+ }
296
+
297
+ // @public
298
+ export type LazyItem<Item = unknown> = Item | (() => Item);
299
+
300
+ // @public
301
+ export interface Listenable<TListeners extends object> {
302
+ on<K extends keyof Listeners<TListeners>>(eventName: K, listener: TListeners[K]): Off;
303
+ }
304
+
305
+ // @public
306
+ export type Listeners<T extends object> = {
307
+ [P in (string | symbol) & keyof T as IsListener<T[P]> extends true ? P : never]: T[P];
308
+ };
309
+
310
+ // @public
311
+ export interface MakeNominal {
312
+ }
313
+
314
+ // @public
315
+ export type MemberChangedListener<M extends IMember> = (clientId: string, member: M) => void;
316
+
317
+ // @public
318
+ export type Myself<M extends IMember = IMember> = M & {
319
+ readonly currentConnection: string;
320
+ };
321
+
322
+ // @public
323
+ export type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
324
+
325
+ // @public
326
+ export type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
327
+
328
+ // @public
329
+ export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
330
+
331
+ // @public
332
+ export type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
333
+
334
+ // @public
335
+ export interface NodeInDocumentConstraint {
336
+ // (undocumented)
337
+ readonly node: TreeNode;
338
+ // (undocumented)
339
+ readonly type: "nodeInDocument";
340
+ }
341
+
342
+ // @public
343
+ export enum NodeKind {
344
+ Array = 1,
345
+ Leaf = 3,
346
+ Map = 0,
347
+ Object = 2
348
+ }
349
+
350
+ // @public
351
+ export type ObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = {
352
+ -readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property]>;
353
+ };
354
+
355
+ // @public
356
+ export type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>> = {
357
+ -readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
358
+ };
359
+
360
+ // @public
361
+ export type Off = () => void;
362
+
363
+ // @public
364
+ export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
365
+ readonly [P in symbol | string]: P extends K ? T : never;
366
+ };
367
+
368
+ // @public
369
+ export interface Revertible {
370
+ dispose(): void;
371
+ revert(): void;
372
+ revert(dispose: boolean): void;
373
+ readonly status: RevertibleStatus;
374
+ }
375
+
376
+ // @public
377
+ export type RevertibleFactory = (onRevertibleDisposed?: (revertible: Revertible) => void) => Revertible;
378
+
379
+ // @public
380
+ export enum RevertibleStatus {
381
+ Disposed = 1,
382
+ Valid = 0
383
+ }
384
+
385
+ // @public
386
+ export const rollback: unique symbol;
387
+
388
+ // @public
389
+ export interface RunTransaction {
390
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
391
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
392
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
393
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
394
+ <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
395
+ <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
396
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
397
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
398
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
399
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
400
+ <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
401
+ <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
402
+ readonly rollback: typeof rollback;
403
+ }
404
+
405
+ // @public @sealed
406
+ export class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
407
+ constructor(scope: TScope);
408
+ array<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Array<${string}>`>, NodeKind.Array, TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, `Array<${string}>`>>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
409
+ 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>>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>, true, T>;
410
+ 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>>, {
411
+ [Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
412
+ }, false, T>;
413
+ readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
414
+ readonly handle: TreeNodeSchema<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<unknown>, IFluidHandle<unknown>>;
415
+ get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
416
+ map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
417
+ map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
418
+ 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>>, {
419
+ [Symbol.iterator](): Iterator<[
420
+ string,
421
+ InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
422
+ ]>;
423
+ }, false, T>;
424
+ readonly null: TreeNodeSchema<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null>;
425
+ readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
426
+ 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>;
427
+ 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 & InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
428
+ optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Optional, T>;
429
+ optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
430
+ required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Required, T>;
431
+ requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
432
+ // (undocumented)
433
+ readonly scope: TScope;
434
+ readonly string: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
435
+ }
436
+
437
+ // @public
438
+ export interface SchemaIncompatible {
439
+ readonly canUpgrade: boolean;
440
+ }
441
+
442
+ // @public
443
+ export type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
444
+
445
+ // @public
446
+ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedType<readonly ["SharedObjectKind", TSharedObject]> {
447
+ }
448
+
449
+ // @public
450
+ export const SharedTree: SharedObjectKind<ITree>;
451
+
452
+ // @public
453
+ export type TransactionConstraint = NodeInDocumentConstraint;
454
+
455
+ // @public
456
+ export const Tree: TreeApi;
457
+
458
+ // @public
459
+ export interface TreeApi extends TreeNodeApi {
460
+ contains(node: TreeNode, other: TreeNode): boolean;
461
+ readonly runTransaction: RunTransaction;
462
+ }
463
+
464
+ // @public
465
+ export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>, TreeArrayNode> {
466
+ }
467
+
468
+ // @public
469
+ export const TreeArrayNode: {
470
+ spread: <T>(content: Iterable<T>) => IterableTreeArrayContent<T>;
471
+ };
472
+
473
+ // @public
474
+ export interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
475
+ insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
476
+ insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
477
+ insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
478
+ moveRangeToEnd(sourceStart: number, sourceEnd: number): void;
479
+ moveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
480
+ moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;
481
+ moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
482
+ moveRangeToStart(sourceStart: number, sourceEnd: number): void;
483
+ moveRangeToStart(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
484
+ moveToEnd(sourceIndex: number): void;
485
+ moveToEnd(sourceIndex: number, source: TMoveFrom): void;
486
+ moveToIndex(index: number, sourceIndex: number): void;
487
+ moveToIndex(index: number, sourceIndex: number, source: TMoveFrom): void;
488
+ moveToStart(sourceIndex: number): void;
489
+ moveToStart(sourceIndex: number, source: TMoveFrom): void;
490
+ removeAt(index: number): void;
491
+ removeRange(start?: number, end?: number): void;
492
+ }
493
+
494
+ // @public
495
+ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
496
+ }
497
+
498
+ // @public
499
+ export interface TreeChangeEvents {
500
+ nodeChanged(): void;
501
+ treeChanged(): void;
502
+ }
503
+
504
+ // @public
505
+ export class TreeConfiguration<TSchema extends ImplicitFieldSchema = ImplicitFieldSchema> {
506
+ constructor(schema: TSchema, initialTree: () => InsertableTreeFieldFromImplicitField<TSchema>, options?: ITreeConfigurationOptions);
507
+ // (undocumented)
508
+ readonly initialTree: () => InsertableTreeFieldFromImplicitField<TSchema>;
509
+ readonly options: Required<ITreeConfigurationOptions>;
510
+ // (undocumented)
511
+ readonly schema: TSchema;
512
+ }
513
+
514
+ // @public
515
+ 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;
516
+
517
+ // @public
518
+ export type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
519
+
520
+ // @public
521
+ export type TreeLeafValue = number | string | boolean | IFluidHandle | null;
522
+
523
+ // @public
524
+ export interface TreeMapNode<T extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>, TreeNode {
525
+ delete(key: string): void;
526
+ entries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]>;
527
+ forEach(callbackfn: (value: TreeNodeFromImplicitAllowedTypes<T>, key: string, map: ReadonlyMap<string, TreeNodeFromImplicitAllowedTypes<T>>) => void, thisArg?: any): void;
528
+ keys(): IterableIterator<string>;
529
+ set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypes<T> | undefined): void;
530
+ values(): IterableIterator<TreeNodeFromImplicitAllowedTypes<T>>;
531
+ }
532
+
533
+ // @public
534
+ export interface TreeMapNodeUnsafe<T extends Unenforced<ImplicitAllowedTypes>> extends ReadonlyMap<string, TreeNodeFromImplicitAllowedTypesUnsafe<T>>, TreeNode {
535
+ delete(key: string): void;
536
+ set(key: string, value: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined): void;
537
+ }
538
+
539
+ // @public
540
+ export abstract class TreeNode implements WithType {
541
+ abstract get [type](): string;
542
+ protected constructor();
543
+ }
544
+
545
+ // @public
546
+ export interface TreeNodeApi {
547
+ is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
548
+ key(node: TreeNode): string | number;
549
+ on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
550
+ parent(node: TreeNode): TreeNode | undefined;
551
+ schema<T extends TreeNode | TreeLeafValue>(node: T): TreeNodeSchema<string, NodeKind, unknown, T>;
552
+ shortId(node: TreeNode): number | string | undefined;
553
+ readonly status: (node: TreeNode) => TreeStatus;
554
+ }
555
+
556
+ // @public
557
+ export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
558
+
559
+ // @public
560
+ export type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
561
+
562
+ // @public
563
+ 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>;
564
+
565
+ // @public
566
+ 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> {
567
+ // @sealed
568
+ new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
569
+ }
570
+
571
+ // @public
572
+ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends NodeKind, out ImplicitlyConstructable extends boolean, out Info = unknown> {
573
+ // (undocumented)
574
+ readonly identifier: Name;
575
+ readonly implicitlyConstructable: ImplicitlyConstructable;
576
+ readonly info: Info;
577
+ // (undocumented)
578
+ readonly kind: Kind;
579
+ }
580
+
581
+ // @public
582
+ export 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> {
583
+ // (undocumented)
584
+ create(data: TInsertable): TNode;
585
+ }
586
+
587
+ // @public
588
+ export type TreeObjectNode<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName>;
589
+
590
+ // @public
591
+ export type TreeObjectNodeUnsafe<T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName>;
592
+
593
+ // @public
594
+ export enum TreeStatus {
595
+ Deleted = 2,
596
+ InDocument = 0,
597
+ New = 3,
598
+ Removed = 1
599
+ }
600
+
601
+ // @public
602
+ export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
603
+ readonly error?: SchemaIncompatible;
604
+ readonly events: Listenable<TreeViewEvents>;
605
+ get root(): TreeFieldFromImplicitField<TSchema>;
606
+ set root(newRoot: InsertableTreeFieldFromImplicitField<TSchema>);
607
+ upgradeSchema(): void;
608
+ }
609
+
610
+ // @public
611
+ export interface TreeViewEvents {
612
+ afterBatch(): void;
613
+ commitApplied(data: CommitMetadata, getRevertible?: RevertibleFactory): void;
614
+ rootChanged(): void;
615
+ }
616
+
617
+ // @public
618
+ export const type: unique symbol;
619
+
620
+ // @public
621
+ export type Unenforced<_DesiredExtendsConstraint> = unknown;
622
+
623
+ // @public
624
+ export type Unhydrated<T> = T;
625
+
626
+ // @public
627
+ export type ValidateRecursiveSchema<T extends TreeNodeSchemaClass<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"]>, {
628
+ [NodeKind.Object]: T["info"] extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
629
+ [NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
630
+ [NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
631
+ }[T["kind"]], false, {
632
+ [NodeKind.Object]: RestrictiveReadonlyRecord<string, ImplicitFieldSchema>;
633
+ [NodeKind.Array]: ImplicitAllowedTypes;
634
+ [NodeKind.Map]: ImplicitAllowedTypes;
635
+ }[T["kind"]]>> = true;
636
+
637
+ // @public
638
+ export interface WithType<TName extends string = string> {
639
+ get [type](): TName;
640
+ }
641
+
642
+ ```
package/dist/index.d.ts CHANGED
@@ -14,6 +14,9 @@ export { AttachState } from "@fluidframework/container-definitions";
14
14
  export { ConnectionState } from "@fluidframework/container-loader";
15
15
  export type { ContainerAttachProps, ContainerSchema, IConnection, IFluidContainer, IFluidContainerEvents, IMember, InitialObjects, IServiceAudience, IServiceAudienceEvents, MemberChangedListener, Myself, } from "@fluidframework/fluid-static";
16
16
  export type { SharedObjectKind } from "@fluidframework/shared-object-base";
17
+ export type { ISequencedDocumentMessage, // Leaked via ISharedObjectEvents
18
+ IBranchOrigin, // Required for ISequencedDocumentMessage
19
+ ITrace, } from "@fluidframework/driver-definitions";
17
20
  export * from "@fluidframework/tree";
18
21
  import type { SharedObjectKind } from "@fluidframework/shared-object-base";
19
22
  import type { ITree } from "@fluidframework/tree";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAMH,YAAY,EACX,eAAe,IAAI,mBAAmB,EAAE,0CAA0C;AAClF,uBAAuB,GACvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,GACN,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAO3E,cAAc,sBAAsB,CAAC;AAQrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD;;;;;;;;;GASG;AAGH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAsB,CAAC;AAQtE,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACb,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE1E,YAAY,EACX,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,sBAAsB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,GACZ,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACX,aAAa,EACb,mBAAmB,GACnB,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAMH,YAAY,EACX,eAAe,IAAI,mBAAmB,EAAE,0CAA0C;AAClF,uBAAuB,GACvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EACX,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,GACN,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,YAAY,EACX,yBAAyB,EAAE,iCAAiC;AAC5D,aAAa,EAAE,yCAAyC;AACxD,MAAM,GACN,MAAM,oCAAoC,CAAC;AAO5C,cAAc,sBAAsB,CAAC;AAQrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD;;;;;;;;;GASG;AAGH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAsB,CAAC;AAQtE,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACb,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE1E,YAAY,EACX,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,4BAA4B,EAC5B,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,sBAAsB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,GACZ,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EACX,aAAa,EACb,mBAAmB,GACnB,MAAM,6CAA6C,CAAC"}