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

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.
@@ -5,16 +5,7 @@
5
5
  ```ts
6
6
 
7
7
  import { Client } from '@fluidframework/merge-tree/internal';
8
- import { ErasedType } from '@fluidframework/core-interfaces';
9
8
  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
9
  import { IGarbageCollectionData } from '@fluidframework/runtime-definitions/internal';
19
10
  import { IJSONSegment } from '@fluidframework/merge-tree/internal';
20
11
  import { IMergeTreeDeltaCallbackArgs } from '@fluidframework/merge-tree/internal';
@@ -105,6 +96,12 @@ export interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldP
105
96
  // @alpha (undocumented)
106
97
  export type DeserializeCallback = (properties: PropertySet) => void;
107
98
 
99
+ // @public @sealed
100
+ export abstract class ErasedType<out Name = unknown> {
101
+ static [Symbol.hasInstance](value: never): value is never;
102
+ protected abstract brand(dummy: never): Name;
103
+ }
104
+
108
105
  // @public
109
106
  export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
110
107
 
@@ -144,6 +141,14 @@ export type FlexList<Item = unknown> = readonly LazyItem<Item>[];
144
141
  export type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
145
142
 
146
143
  // @public
144
+ export type FluidObject<T = unknown> = {
145
+ [P in FluidObjectProviderKeys<T>]?: T[P];
146
+ };
147
+
148
+ // @public
149
+ 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;
150
+
151
+ // @alpha
147
152
  export interface IBranchOrigin {
148
153
  id: string;
149
154
  minimumSequenceNumber: number;
@@ -187,6 +192,198 @@ export interface IDirectoryValueChanged extends IValueChanged {
187
192
  path: string;
188
193
  }
189
194
 
195
+ // @public @sealed
196
+ export interface IDisposable {
197
+ dispose(error?: Error): void;
198
+ readonly disposed: boolean;
199
+ }
200
+
201
+ // @public
202
+ export interface IErrorBase extends Partial<Error> {
203
+ readonly errorType: string;
204
+ getTelemetryProperties?(): ITelemetryBaseProperties;
205
+ readonly message: string;
206
+ readonly name?: string;
207
+ readonly stack?: string;
208
+ }
209
+
210
+ // @public
211
+ export interface IErrorEvent extends IEvent {
212
+ // @eventProperty
213
+ (event: "error", listener: (message: any) => void): any;
214
+ }
215
+
216
+ // @public
217
+ export interface IEvent {
218
+ // @eventProperty
219
+ (event: string, listener: (...args: any[]) => void): any;
220
+ }
221
+
222
+ // @public
223
+ export interface IEventProvider<TEvent extends IEvent> {
224
+ readonly off: IEventTransformer<this, TEvent>;
225
+ readonly on: IEventTransformer<this, TEvent>;
226
+ readonly once: IEventTransformer<this, TEvent>;
227
+ }
228
+
229
+ // @public
230
+ export type IEventThisPlaceHolder = {
231
+ thisPlaceHolder: "thisPlaceHolder";
232
+ };
233
+
234
+ // @public
235
+ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
236
+ (event: infer E0, listener: (...args: infer A0) => void): any;
237
+ (event: infer E1, listener: (...args: infer A1) => void): any;
238
+ (event: infer E2, listener: (...args: infer A2) => void): any;
239
+ (event: infer E3, listener: (...args: infer A3) => void): any;
240
+ (event: infer E4, listener: (...args: infer A4) => void): any;
241
+ (event: infer E5, listener: (...args: infer A5) => void): any;
242
+ (event: infer E6, listener: (...args: infer A6) => void): any;
243
+ (event: infer E7, listener: (...args: infer A7) => void): any;
244
+ (event: infer E8, listener: (...args: infer A8) => void): any;
245
+ (event: infer E9, listener: (...args: infer A9) => void): any;
246
+ (event: infer E10, listener: (...args: infer A10) => void): any;
247
+ (event: infer E11, listener: (...args: infer A11) => void): any;
248
+ (event: infer E12, listener: (...args: infer A12) => void): any;
249
+ (event: infer E13, listener: (...args: infer A13) => void): any;
250
+ (event: infer E14, listener: (...args: infer A14) => void): any;
251
+ (event: string, listener: (...args: any[]) => void): any;
252
+ } ? 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 {
253
+ (event: infer E0, listener: (...args: infer A0) => void): any;
254
+ (event: infer E1, listener: (...args: infer A1) => void): any;
255
+ (event: infer E2, listener: (...args: infer A2) => void): any;
256
+ (event: infer E3, listener: (...args: infer A3) => void): any;
257
+ (event: infer E4, listener: (...args: infer A4) => void): any;
258
+ (event: infer E5, listener: (...args: infer A5) => void): any;
259
+ (event: infer E6, listener: (...args: infer A6) => void): any;
260
+ (event: infer E7, listener: (...args: infer A7) => void): any;
261
+ (event: infer E8, listener: (...args: infer A8) => void): any;
262
+ (event: infer E9, listener: (...args: infer A9) => void): any;
263
+ (event: infer E10, listener: (...args: infer A10) => void): any;
264
+ (event: infer E11, listener: (...args: infer A11) => void): any;
265
+ (event: infer E12, listener: (...args: infer A12) => void): any;
266
+ (event: infer E13, listener: (...args: infer A13) => void): any;
267
+ (event: string, listener: (...args: any[]) => void): any;
268
+ } ? 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 {
269
+ (event: infer E0, listener: (...args: infer A0) => void): any;
270
+ (event: infer E1, listener: (...args: infer A1) => void): any;
271
+ (event: infer E2, listener: (...args: infer A2) => void): any;
272
+ (event: infer E3, listener: (...args: infer A3) => void): any;
273
+ (event: infer E4, listener: (...args: infer A4) => void): any;
274
+ (event: infer E5, listener: (...args: infer A5) => void): any;
275
+ (event: infer E6, listener: (...args: infer A6) => void): any;
276
+ (event: infer E7, listener: (...args: infer A7) => void): any;
277
+ (event: infer E8, listener: (...args: infer A8) => void): any;
278
+ (event: infer E9, listener: (...args: infer A9) => void): any;
279
+ (event: infer E10, listener: (...args: infer A10) => void): any;
280
+ (event: infer E11, listener: (...args: infer A11) => void): any;
281
+ (event: infer E12, listener: (...args: infer A12) => void): any;
282
+ (event: string, listener: (...args: any[]) => void): any;
283
+ } ? 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 {
284
+ (event: infer E0, listener: (...args: infer A0) => void): any;
285
+ (event: infer E1, listener: (...args: infer A1) => void): any;
286
+ (event: infer E2, listener: (...args: infer A2) => void): any;
287
+ (event: infer E3, listener: (...args: infer A3) => void): any;
288
+ (event: infer E4, listener: (...args: infer A4) => void): any;
289
+ (event: infer E5, listener: (...args: infer A5) => void): any;
290
+ (event: infer E6, listener: (...args: infer A6) => void): any;
291
+ (event: infer E7, listener: (...args: infer A7) => void): any;
292
+ (event: infer E8, listener: (...args: infer A8) => void): any;
293
+ (event: infer E9, listener: (...args: infer A9) => void): any;
294
+ (event: infer E10, listener: (...args: infer A10) => void): any;
295
+ (event: infer E11, listener: (...args: infer A11) => void): any;
296
+ (event: string, listener: (...args: any[]) => void): any;
297
+ } ? 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 {
298
+ (event: infer E0, listener: (...args: infer A0) => void): any;
299
+ (event: infer E1, listener: (...args: infer A1) => void): any;
300
+ (event: infer E2, listener: (...args: infer A2) => void): any;
301
+ (event: infer E3, listener: (...args: infer A3) => void): any;
302
+ (event: infer E4, listener: (...args: infer A4) => void): any;
303
+ (event: infer E5, listener: (...args: infer A5) => void): any;
304
+ (event: infer E6, listener: (...args: infer A6) => void): any;
305
+ (event: infer E7, listener: (...args: infer A7) => void): any;
306
+ (event: infer E8, listener: (...args: infer A8) => void): any;
307
+ (event: infer E9, listener: (...args: infer A9) => void): any;
308
+ (event: infer E10, listener: (...args: infer A10) => void): any;
309
+ (event: string, listener: (...args: any[]) => void): any;
310
+ } ? 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 {
311
+ (event: infer E0, listener: (...args: infer A0) => void): any;
312
+ (event: infer E1, listener: (...args: infer A1) => void): any;
313
+ (event: infer E2, listener: (...args: infer A2) => void): any;
314
+ (event: infer E3, listener: (...args: infer A3) => void): any;
315
+ (event: infer E4, listener: (...args: infer A4) => void): any;
316
+ (event: infer E5, listener: (...args: infer A5) => void): any;
317
+ (event: infer E6, listener: (...args: infer A6) => void): any;
318
+ (event: infer E7, listener: (...args: infer A7) => void): any;
319
+ (event: infer E8, listener: (...args: infer A8) => void): any;
320
+ (event: infer E9, listener: (...args: infer A9) => void): any;
321
+ (event: string, listener: (...args: any[]) => void): any;
322
+ } ? 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 {
323
+ (event: infer E0, listener: (...args: infer A0) => void): any;
324
+ (event: infer E1, listener: (...args: infer A1) => void): any;
325
+ (event: infer E2, listener: (...args: infer A2) => void): any;
326
+ (event: infer E3, listener: (...args: infer A3) => void): any;
327
+ (event: infer E4, listener: (...args: infer A4) => void): any;
328
+ (event: infer E5, listener: (...args: infer A5) => void): any;
329
+ (event: infer E6, listener: (...args: infer A6) => void): any;
330
+ (event: infer E7, listener: (...args: infer A7) => void): any;
331
+ (event: infer E8, listener: (...args: infer A8) => void): any;
332
+ (event: string, listener: (...args: any[]) => void): any;
333
+ } ? 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 {
334
+ (event: infer E0, listener: (...args: infer A0) => void): any;
335
+ (event: infer E1, listener: (...args: infer A1) => void): any;
336
+ (event: infer E2, listener: (...args: infer A2) => void): any;
337
+ (event: infer E3, listener: (...args: infer A3) => void): any;
338
+ (event: infer E4, listener: (...args: infer A4) => void): any;
339
+ (event: infer E5, listener: (...args: infer A5) => void): any;
340
+ (event: infer E6, listener: (...args: infer A6) => void): any;
341
+ (event: infer E7, listener: (...args: infer A7) => void): any;
342
+ (event: string, listener: (...args: any[]) => void): any;
343
+ } ? 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 {
344
+ (event: infer E0, listener: (...args: infer A0) => void): any;
345
+ (event: infer E1, listener: (...args: infer A1) => void): any;
346
+ (event: infer E2, listener: (...args: infer A2) => void): any;
347
+ (event: infer E3, listener: (...args: infer A3) => void): any;
348
+ (event: infer E4, listener: (...args: infer A4) => void): any;
349
+ (event: infer E5, listener: (...args: infer A5) => void): any;
350
+ (event: infer E6, listener: (...args: infer A6) => void): any;
351
+ (event: string, listener: (...args: any[]) => void): any;
352
+ } ? 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 {
353
+ (event: infer E0, listener: (...args: infer A0) => void): any;
354
+ (event: infer E1, listener: (...args: infer A1) => void): any;
355
+ (event: infer E2, listener: (...args: infer A2) => void): any;
356
+ (event: infer E3, listener: (...args: infer A3) => void): any;
357
+ (event: infer E4, listener: (...args: infer A4) => void): any;
358
+ (event: infer E5, listener: (...args: infer A5) => void): any;
359
+ (event: string, listener: (...args: any[]) => void): any;
360
+ } ? 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 {
361
+ (event: infer E0, listener: (...args: infer A0) => void): any;
362
+ (event: infer E1, listener: (...args: infer A1) => void): any;
363
+ (event: infer E2, listener: (...args: infer A2) => void): any;
364
+ (event: infer E3, listener: (...args: infer A3) => void): any;
365
+ (event: infer E4, listener: (...args: infer A4) => void): any;
366
+ (event: string, listener: (...args: any[]) => void): any;
367
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> : TEvent extends {
368
+ (event: infer E0, listener: (...args: infer A0) => void): any;
369
+ (event: infer E1, listener: (...args: infer A1) => void): any;
370
+ (event: infer E2, listener: (...args: infer A2) => void): any;
371
+ (event: infer E3, listener: (...args: infer A3) => void): any;
372
+ (event: string, listener: (...args: any[]) => void): any;
373
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> : TEvent extends {
374
+ (event: infer E0, listener: (...args: infer A0) => void): any;
375
+ (event: infer E1, listener: (...args: infer A1) => void): any;
376
+ (event: infer E2, listener: (...args: infer A2) => void): any;
377
+ (event: string, listener: (...args: any[]) => void): any;
378
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> : TEvent extends {
379
+ (event: infer E0, listener: (...args: infer A0) => void): any;
380
+ (event: infer E1, listener: (...args: infer A1) => void): any;
381
+ (event: string, listener: (...args: any[]) => void): any;
382
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> : TEvent extends {
383
+ (event: infer E0, listener: (...args: infer A0) => void): any;
384
+ (event: string, listener: (...args: any[]) => void): any;
385
+ } ? TransformedEvent<TThis, E0, A0> : TransformedEvent<TThis, string, any[]>;
386
+
190
387
  // @public @sealed
191
388
  export interface IFluidContainer<TContainerSchema extends ContainerSchema = ContainerSchema> extends IEventProvider<IFluidContainerEvents> {
192
389
  attach(props?: ContainerAttachProps): Promise<string>;
@@ -210,6 +407,29 @@ export interface IFluidContainerEvents extends IEvent {
210
407
  (event: "disposed", listener: (error?: ICriticalContainerError) => void): any;
211
408
  }
212
409
 
410
+ // @public (undocumented)
411
+ export const IFluidHandle = "IFluidHandle";
412
+
413
+ // @public
414
+ export interface IFluidHandle<out T = unknown> {
415
+ readonly [fluidHandleSymbol]: IFluidHandleErased<T>;
416
+ get(): Promise<T>;
417
+ readonly isAttached: boolean;
418
+ }
419
+
420
+ // @public
421
+ export interface IFluidHandleErased<T> extends ErasedType<readonly ["IFluidHandle", T]> {
422
+ }
423
+
424
+ // @public (undocumented)
425
+ export const IFluidLoadable: keyof IProvideFluidLoadable;
426
+
427
+ // @public
428
+ export interface IFluidLoadable extends IProvideFluidLoadable {
429
+ // (undocumented)
430
+ readonly handle: IFluidHandle;
431
+ }
432
+
213
433
  // @alpha
214
434
  export interface IInterval {
215
435
  // (undocumented)
@@ -357,7 +577,13 @@ export enum IntervalType {
357
577
  SlideOnRemove = 2,// SlideOnRemove is default behavior - all intervals are SlideOnRemove
358
578
  }
359
579
 
360
- // @public
580
+ // @public (undocumented)
581
+ export interface IProvideFluidLoadable {
582
+ // (undocumented)
583
+ readonly IFluidLoadable: IFluidLoadable;
584
+ }
585
+
586
+ // @alpha
361
587
  export interface ISequencedDocumentMessage {
362
588
  clientId: string | null;
363
589
  clientSequenceNumber: number;
@@ -543,12 +769,17 @@ export interface ISharedString extends ISharedSegmentSequence<SharedStringSegmen
543
769
  // @public
544
770
  export type IsListener<TListener> = TListener extends (...args: any[]) => void ? true : false;
545
771
 
772
+ // @public
773
+ export interface ITelemetryBaseProperties {
774
+ [index: string]: TelemetryBaseEventPropertyType | Tagged<TelemetryBaseEventPropertyType>;
775
+ }
776
+
546
777
  // @public
547
778
  export class IterableTreeArrayContent<T> implements Iterable<T> {
548
779
  [Symbol.iterator](): Iterator<T>;
549
780
  }
550
781
 
551
- // @public
782
+ // @alpha
552
783
  export interface ITrace {
553
784
  action: string;
554
785
  service: string;
@@ -637,6 +868,11 @@ export type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveReadonl
637
868
  // @public
638
869
  export type Off = () => void;
639
870
 
871
+ // @public
872
+ export type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
873
+ [K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
874
+ } : L;
875
+
640
876
  // @public
641
877
  export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
642
878
  readonly [P in symbol | string]: P extends K ? T : never;
@@ -824,9 +1060,23 @@ export enum Side {
824
1060
  Before = 0
825
1061
  }
826
1062
 
1063
+ // @public
1064
+ export interface Tagged<V, T extends string = string> {
1065
+ // (undocumented)
1066
+ tag: T;
1067
+ // (undocumented)
1068
+ value: V;
1069
+ }
1070
+
1071
+ // @public
1072
+ export type TelemetryBaseEventPropertyType = string | number | boolean | undefined;
1073
+
827
1074
  // @public
828
1075
  export type TransactionConstraint = NodeInDocumentConstraint;
829
1076
 
1077
+ // @public
1078
+ export type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
1079
+
830
1080
  // @public
831
1081
  export const Tree: TreeApi;
832
1082