@fluidframework/runtime-definitions 2.0.0-rc.1.0.6 → 2.0.0-rc.2.0.1

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.
Files changed (84) hide show
  1. package/.eslintrc.cjs +1 -1
  2. package/CHANGELOG.md +75 -0
  3. package/api-extractor-cjs.json +8 -0
  4. package/api-extractor-lint.json +1 -1
  5. package/api-extractor.json +1 -1
  6. package/api-report/runtime-definitions.api.md +98 -112
  7. package/dist/dataStoreContext.d.ts +110 -64
  8. package/dist/dataStoreContext.d.ts.map +1 -1
  9. package/dist/dataStoreContext.js +3 -0
  10. package/dist/dataStoreContext.js.map +1 -1
  11. package/dist/dataStoreFactory.d.ts +1 -1
  12. package/dist/dataStoreFactory.d.ts.map +1 -1
  13. package/dist/dataStoreFactory.js.map +1 -1
  14. package/dist/dataStoreRegistry.d.ts +1 -1
  15. package/dist/dataStoreRegistry.d.ts.map +1 -1
  16. package/dist/dataStoreRegistry.js.map +1 -1
  17. package/dist/{garbageCollection.d.ts → garbageCollectionDefinitions.d.ts} +1 -1
  18. package/dist/garbageCollectionDefinitions.d.ts.map +1 -0
  19. package/dist/{garbageCollection.js → garbageCollectionDefinitions.js} +1 -1
  20. package/dist/garbageCollectionDefinitions.js.map +1 -0
  21. package/dist/index.d.ts +12 -52
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +20 -27
  24. package/dist/index.js.map +1 -1
  25. package/dist/package.json +3 -0
  26. package/dist/protocol.d.ts +2 -1
  27. package/dist/protocol.d.ts.map +1 -1
  28. package/dist/protocol.js.map +1 -1
  29. package/dist/runtime-definitions-alpha.d.ts +184 -175
  30. package/dist/runtime-definitions-beta.d.ts +35 -57
  31. package/dist/runtime-definitions-public.d.ts +35 -57
  32. package/dist/runtime-definitions-untrimmed.d.ts +185 -175
  33. package/dist/summary.d.ts +15 -20
  34. package/dist/summary.d.ts.map +1 -1
  35. package/dist/summary.js.map +1 -1
  36. package/dist/tsdoc-metadata.json +1 -1
  37. package/lib/attribution.d.ts +71 -0
  38. package/lib/attribution.d.ts.map +1 -0
  39. package/lib/attribution.js +6 -0
  40. package/lib/attribution.js.map +1 -0
  41. package/lib/dataStoreContext.d.ts +469 -0
  42. package/lib/dataStoreContext.d.ts.map +1 -0
  43. package/lib/dataStoreContext.js +67 -0
  44. package/lib/dataStoreContext.js.map +1 -0
  45. package/lib/dataStoreFactory.d.ts +33 -0
  46. package/lib/dataStoreFactory.d.ts.map +1 -0
  47. package/lib/dataStoreFactory.js +9 -0
  48. package/lib/dataStoreFactory.js.map +1 -0
  49. package/lib/dataStoreRegistry.d.ts +41 -0
  50. package/lib/dataStoreRegistry.d.ts.map +1 -0
  51. package/lib/dataStoreRegistry.js +9 -0
  52. package/lib/dataStoreRegistry.js.map +1 -0
  53. package/lib/garbageCollectionDefinitions.d.ts +62 -0
  54. package/lib/garbageCollectionDefinitions.d.ts.map +1 -0
  55. package/lib/garbageCollectionDefinitions.js +35 -0
  56. package/lib/garbageCollectionDefinitions.js.map +1 -0
  57. package/lib/index.d.ts +17 -0
  58. package/lib/index.d.ts.map +1 -0
  59. package/lib/index.js +10 -0
  60. package/lib/index.js.map +1 -0
  61. package/lib/protocol.d.ts +77 -0
  62. package/lib/protocol.d.ts.map +1 -0
  63. package/lib/protocol.js +6 -0
  64. package/lib/protocol.js.map +1 -0
  65. package/lib/runtime-definitions-alpha.d.ts +1025 -0
  66. package/lib/runtime-definitions-beta.d.ts +244 -0
  67. package/lib/runtime-definitions-public.d.ts +244 -0
  68. package/lib/runtime-definitions-untrimmed.d.ts +1106 -0
  69. package/lib/summary.d.ts +322 -0
  70. package/lib/summary.d.ts.map +1 -0
  71. package/lib/summary.js +26 -0
  72. package/lib/summary.js.map +1 -0
  73. package/package.json +111 -34
  74. package/src/dataStoreContext.ts +133 -80
  75. package/src/dataStoreFactory.ts +1 -1
  76. package/src/dataStoreRegistry.ts +1 -1
  77. package/src/index.ts +25 -70
  78. package/src/protocol.ts +2 -1
  79. package/src/summary.ts +18 -20
  80. package/tsconfig.cjs.json +7 -0
  81. package/tsconfig.json +2 -5
  82. package/dist/garbageCollection.d.ts.map +0 -1
  83. package/dist/garbageCollection.js.map +0 -1
  84. /package/src/{garbageCollection.ts → garbageCollectionDefinitions.ts} +0 -0
@@ -1,39 +1,28 @@
1
- import { AttachState } from '@fluidframework/container-definitions';
2
- import { FluidObject } from '@fluidframework/core-interfaces';
3
- import { IAudience } from '@fluidframework/container-definitions';
4
- import { IClientDetails } from '@fluidframework/protocol-definitions';
5
- import { IdCompressor } from '@fluidframework/id-compressor';
6
- import { IdCreationRange } from '@fluidframework/id-compressor';
7
- import { IDeltaManager } from '@fluidframework/container-definitions';
8
- import { IDisposable } from '@fluidframework/core-interfaces';
9
- import { IDocumentMessage } from '@fluidframework/protocol-definitions';
10
- import { IDocumentStorageService } from '@fluidframework/driver-definitions';
11
- import { IEvent } from '@fluidframework/core-interfaces';
12
- import { IEventProvider } from '@fluidframework/core-interfaces';
13
- import { IFluidHandle } from '@fluidframework/core-interfaces';
14
- import { IIdCompressor } from '@fluidframework/id-compressor';
15
- import { IIdCompressorCore } from '@fluidframework/id-compressor';
16
- import { ILoaderOptions } from '@fluidframework/container-definitions';
17
- import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
18
- import { IQuorumClients } from '@fluidframework/protocol-definitions';
19
- import { IRequest } from '@fluidframework/core-interfaces';
20
- import { IResponse } from '@fluidframework/core-interfaces';
21
- import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
22
- import { ISignalMessage } from '@fluidframework/protocol-definitions';
23
- import { ISnapshotTree } from '@fluidframework/protocol-definitions';
24
- import { ISummaryTree } from '@fluidframework/protocol-definitions';
25
- import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
26
- import { ITree } from '@fluidframework/protocol-definitions';
1
+ import type { AttachState } from '@fluidframework/container-definitions';
2
+ import type { FluidObject } from '@fluidframework/core-interfaces';
3
+ import type { IAudience } from '@fluidframework/container-definitions';
4
+ import type { IClientDetails } from '@fluidframework/protocol-definitions';
5
+ import type { IDeltaManager } from '@fluidframework/container-definitions';
6
+ import type { IDisposable } from '@fluidframework/core-interfaces';
7
+ import type { IDocumentMessage } from '@fluidframework/protocol-definitions';
8
+ import type { IDocumentStorageService } from '@fluidframework/driver-definitions';
9
+ import type { IEvent } from '@fluidframework/core-interfaces';
10
+ import type { IEventProvider } from '@fluidframework/core-interfaces';
11
+ import type { IFluidHandle } from '@fluidframework/core-interfaces';
12
+ import type { IIdCompressor } from '@fluidframework/id-compressor';
13
+ import type { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
14
+ import type { IQuorumClients } from '@fluidframework/protocol-definitions';
15
+ import type { IRequest } from '@fluidframework/core-interfaces';
16
+ import type { IResponse } from '@fluidframework/core-interfaces';
17
+ import type { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
18
+ import type { ISignalMessage } from '@fluidframework/protocol-definitions';
19
+ import type { ISnapshotTree } from '@fluidframework/protocol-definitions';
20
+ import type { ISummaryTree } from '@fluidframework/protocol-definitions';
21
+ import type { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
22
+ import type { ITree } from '@fluidframework/protocol-definitions';
27
23
  import type { IUser } from '@fluidframework/protocol-definitions';
28
- import { OpSpaceCompressedId } from '@fluidframework/id-compressor';
29
- import { SerializedIdCompressor } from '@fluidframework/id-compressor';
30
- import { SerializedIdCompressorWithNoSession } from '@fluidframework/id-compressor';
31
- import { SerializedIdCompressorWithOngoingSession } from '@fluidframework/id-compressor';
32
- import { SessionId } from '@fluidframework/id-compressor';
33
- import { SessionSpaceCompressedId } from '@fluidframework/id-compressor';
34
- import { StableId } from '@fluidframework/id-compressor';
35
- import { SummaryTree } from '@fluidframework/protocol-definitions';
36
- import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
24
+ import type { SummaryTree } from '@fluidframework/protocol-definitions';
25
+ import type { TelemetryBaseEventPropertyType } from '@fluidframework/core-interfaces';
37
26
 
38
27
  /**
39
28
  * Encapsulates the return codes of the aliasing API.
@@ -145,6 +134,9 @@ export declare type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluid
145
134
  export declare enum FlushMode {
146
135
  /**
147
136
  * In Immediate flush mode the runtime will immediately send all operations to the driver layer.
137
+ *
138
+ * @deprecated This option will be removed in the next major version and should not be used. Use {@link FlushMode.TurnBased} instead, which is the default.
139
+ * See https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/opLifecycle#how-batching-works
148
140
  */
149
141
  Immediate = 0,
150
142
  /**
@@ -233,6 +225,7 @@ export declare interface IAttachMessage {
233
225
  export declare interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
234
226
  readonly logger: ITelemetryBaseLogger;
235
227
  readonly clientDetails: IClientDetails;
228
+ readonly disposed: boolean;
236
229
  /**
237
230
  * Invokes the given callback and guarantees that all operations generated within the callback will be ordered
238
231
  * sequentially.
@@ -244,12 +237,13 @@ export declare interface IContainerRuntimeBase extends IEventProvider<IContainer
244
237
  * Submits a container runtime level signal to be sent to other clients.
245
238
  * @param type - Type of the signal.
246
239
  * @param content - Content of the signal.
240
+ * @param targetClientId - When specified, the signal is only sent to the provided client id.
247
241
  */
248
- submitSignal(type: string, content: any): void;
242
+ submitSignal(type: string, content: any, targetClientId?: string): void;
249
243
  /**
250
244
  * @deprecated 0.16 Issue #1537, #3631
251
245
  */
252
- _createDataStoreWithProps(pkg: string | string[], props?: any, id?: string): Promise<IDataStore>;
246
+ _createDataStoreWithProps(pkg: Readonly<string | string[]>, props?: any, id?: string): Promise<IDataStore>;
253
247
  /**
254
248
  * Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves
255
249
  * as the data store's router. The data store is not bound to a container, and in such state is not persisted to
@@ -257,13 +251,20 @@ export declare interface IContainerRuntimeBase extends IEventProvider<IContainer
257
251
  * already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this
258
252
  * store being attached to storage.
259
253
  * @param pkg - Package name of the data store factory
254
+ * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.
255
+ * When not specified the datastore will belong to a `default` group. Read more about it in this
256
+ * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}
260
257
  */
261
- createDataStore(pkg: string | string[]): Promise<IDataStore>;
258
+ createDataStore(pkg: Readonly<string | string[]>, loadingGroupId?: string): Promise<IDataStore>;
262
259
  /**
263
260
  * Creates detached data store context. Only after context.attachRuntime() is called,
264
261
  * data store initialization is considered complete.
262
+ * @param pkg - Package name of the data store factory
263
+ * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.
264
+ * When not specified the datastore will belong to a `default` group. Read more about it in this
265
+ * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}.
265
266
  */
266
- createDetachedDataStore(pkg: Readonly<string[]>): IFluidDataStoreContextDetached;
267
+ createDetachedDataStore(pkg: Readonly<string[]>, loadingGroupId?: string): IFluidDataStoreContextDetached;
267
268
  /**
268
269
  * Get an absolute url for a provided container-relative request.
269
270
  * Returns undefined if the container or data store isn't attached to storage.
@@ -279,6 +280,28 @@ export declare interface IContainerRuntimeBase extends IEventProvider<IContainer
279
280
  * Returns the current audience.
280
281
  */
281
282
  getAudience(): IAudience;
283
+ /**
284
+ * Generates a new ID that is guaranteed to be unique across all sessions for this container.
285
+ * It could be in compact form (non-negative integer, oppotunistic), but it could also be UUID string.
286
+ * UUIDs generated will have low entropy in groups and will compress well.
287
+ * It can be leveraged anywhere in container where container unique IDs are required, i.e. any place
288
+ * that uses uuid() and stores result in container is likely candidate to start leveraging this API.
289
+ * If you always want to convert to string, instead of doing String(generateDocumentUniqueId()), consider
290
+ * doing encodeCompactIdToString(generateDocumentUniqueId()).
291
+ *
292
+ * For more details, please see IIdCompressor.generateDocumentUniqueId()
293
+ */
294
+ generateDocumentUniqueId(): number | string;
295
+ /**
296
+ * Api to fetch the snapshot from the service for a loadingGroupIds.
297
+ * @param loadingGroupIds - LoadingGroupId for which the snapshot is asked for.
298
+ * @param pathParts - Parts of the path, which we want to extract from the snapshot tree.
299
+ * @returns - snapshotTree and the sequence number of the snapshot.
300
+ */
301
+ getSnapshotForLoadingGroupId(loadingGroupIds: string[], pathParts: string[]): Promise<{
302
+ snapshotTree: ISnapshotTree;
303
+ sequenceNumber: number;
304
+ }>;
282
305
  }
283
306
 
284
307
  /**
@@ -293,6 +316,7 @@ export declare interface IContainerRuntimeBaseEvents extends IEvent {
293
316
  (event: "op", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void): any;
294
317
  (event: "batchEnd", listener: (error: any, op: ISequencedDocumentMessage) => void): any;
295
318
  (event: "signal", listener: (message: IInboundSignalMessage, local: boolean) => void): any;
319
+ (event: "dispose", listener: () => void): any;
296
320
  }
297
321
 
298
322
  /**
@@ -319,10 +343,6 @@ export declare interface IDataStore {
319
343
  readonly entryPoint: IFluidHandle<FluidObject>;
320
344
  }
321
345
 
322
- export { IdCompressor }
323
-
324
- export { IdCreationRange }
325
-
326
346
  /**
327
347
  * An envelope wraps the contents with the intended target
328
348
  * @alpha
@@ -373,17 +393,6 @@ export declare interface IExperimentalIncrementalSummaryContext {
373
393
  * @alpha
374
394
  */
375
395
  export declare interface IFluidDataStoreChannel extends IDisposable {
376
- readonly id: string;
377
- /**
378
- * Indicates the attachment state of the channel to a host service.
379
- */
380
- readonly attachState: AttachState;
381
- readonly visibilityState: VisibilityState;
382
- /**
383
- * Runs through the graph and attaches the bound handles. Then binds this runtime to the container.
384
- * @deprecated This will be removed in favor of {@link IFluidDataStoreChannel.makeVisibleAndAttachGraph}.
385
- */
386
- attachGraph(): void;
387
396
  /**
388
397
  * Makes the data store channel visible in the container. Also, runs through its graph and attaches all
389
398
  * bound handles that represent its dependencies in the container's graph.
@@ -400,11 +409,11 @@ export declare interface IFluidDataStoreChannel extends IDisposable {
400
409
  /**
401
410
  * Processes the op.
402
411
  */
403
- process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
412
+ process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown, addedOutboundReference?: (fromNodePath: string, toNodePath: string) => void): void;
404
413
  /**
405
414
  * Processes the signal.
406
415
  */
407
- processSignal(message: any, local: boolean): void;
416
+ processSignal(message: IInboundSignalMessage, local: boolean): void;
408
417
  /**
409
418
  * Generates a summary for the channel.
410
419
  * Introduced with summarizerNode - will be required in a future release.
@@ -459,7 +468,7 @@ export declare interface IFluidDataStoreChannel extends IDisposable {
459
468
  * get information and call functionality to the container.
460
469
  * @alpha
461
470
  */
462
- export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, Partial<IProvideFluidDataStoreRegistry>, IProvideFluidHandleContext {
471
+ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, IFluidParentContext {
463
472
  readonly id: string;
464
473
  /**
465
474
  * A data store created by a client, is a local data store for that client. Also, when a detached container loads
@@ -474,28 +483,122 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
474
483
  * The package path of the data store as per the package factory.
475
484
  */
476
485
  readonly packagePath: readonly string[];
477
- readonly options: ILoaderOptions;
486
+ readonly baseSnapshot: ISnapshotTree | undefined;
487
+ /**
488
+ * @deprecated 0.16 Issue #1635, #3631
489
+ */
490
+ readonly createProps?: any;
491
+ /**
492
+ * Call by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.
493
+ * @param address - The address of the channel that is dirty.
494
+ */
495
+ setChannelDirty(address: string): void;
496
+ /**
497
+ * @deprecated The functionality to get base GC details has been moved to summarizer node.
498
+ *
499
+ * Returns the GC details in the initial summary of this data store. This is used to initialize the data store
500
+ * and its children with the GC details from the previous summary.
501
+ */
502
+ getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
503
+ /**
504
+ * (Same as @see addedGCOutboundReference, but with string paths instead of handles)
505
+ *
506
+ * Called when a new outbound reference is added to another node. This is used by garbage collection to identify
507
+ * all references added in the system.
508
+ *
509
+ * @param fromPath - The absolute path of the node that added the reference.
510
+ * @param toPath - The absolute path of the outbound node that is referenced.
511
+ */
512
+ addedGCOutboundRoute?(fromPath: string, toPath: string): void;
513
+ }
514
+
515
+ /**
516
+ * @alpha
517
+ */
518
+ export declare interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
519
+ /**
520
+ * Binds a runtime to the context.
521
+ */
522
+ attachRuntime(factory: IProvideFluidDataStoreFactory, dataStoreRuntime: IFluidDataStoreChannel): Promise<IDataStore>;
523
+ }
524
+
525
+ /**
526
+ * @alpha
527
+ */
528
+ export declare interface IFluidDataStoreContextEvents extends IEvent {
529
+ (event: "attaching" | "attached", listener: () => void): any;
530
+ }
531
+
532
+ /**
533
+ * @alpha
534
+ */
535
+ export declare const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
536
+
537
+ /**
538
+ * IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
539
+ * and usually provided to consumers using this mapping through a data store registry.
540
+ * @alpha
541
+ */
542
+ export declare interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
543
+ /**
544
+ * String that uniquely identifies the type of data store created by this factory.
545
+ */
546
+ type: string;
547
+ /**
548
+ * Generates runtime for the data store from the data store context. Once created should be bound to the context.
549
+ * @param context - Context for the data store.
550
+ * @param existing - If instantiating from an existing file.
551
+ */
552
+ instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
553
+ }
554
+
555
+ /**
556
+ * @alpha
557
+ */
558
+ export declare const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
559
+
560
+ /**
561
+ * An association of identifiers to data store registry entries, where the
562
+ * entries can be used to create data stores.
563
+ * @alpha
564
+ */
565
+ export declare interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
566
+ get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
567
+ }
568
+
569
+ /**
570
+ * Represents the context for the data store like objects. It is used by the data store runtime to
571
+ * get information and call functionality to its parent.
572
+ *
573
+ * This layout is temporary, as {@link IFluidParentContext} and {@link IFluidDataStoreContext} will converge.
574
+ *
575
+ * @alpha
576
+ */
577
+ export declare interface IFluidParentContext extends IProvideFluidHandleContext, Partial<IProvideFluidDataStoreRegistry> {
578
+ readonly options: Record<string | number, any>;
478
579
  readonly clientId: string | undefined;
479
580
  readonly connected: boolean;
480
581
  readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
481
582
  readonly storage: IDocumentStorageService;
482
- readonly baseSnapshot: ISnapshotTree | undefined;
483
583
  readonly logger: ITelemetryBaseLogger;
484
584
  readonly clientDetails: IClientDetails;
485
585
  readonly idCompressor?: IIdCompressor;
586
+ /**
587
+ * Represents the loading group to which the data store belongs to. Please refer to this readme for more context.
588
+ * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}
589
+ */
590
+ readonly loadingGroupId?: string;
486
591
  /**
487
592
  * Indicates the attachment state of the data store to a host service.
488
593
  */
489
594
  readonly attachState: AttachState;
490
595
  readonly containerRuntime: IContainerRuntimeBase;
491
- /**
492
- * @deprecated 0.16 Issue #1635, #3631
493
- */
494
- readonly createProps?: any;
495
596
  /**
496
597
  * Ambient services provided with the context
497
598
  */
498
599
  readonly scope: FluidObject;
600
+ readonly gcThrowOnTombstoneUsage: boolean;
601
+ readonly gcTombstoneEnforcementAllowed: boolean;
499
602
  /**
500
603
  * Returns the current quorum.
501
604
  */
@@ -534,11 +637,6 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
534
637
  * when they are marked as root. For non-root data stores, this happens when their handle is added to a visible DDS.
535
638
  */
536
639
  makeLocallyVisible(): void;
537
- /**
538
- * Call by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.
539
- * @param address - The address of the channel that is dirty.
540
- */
541
- setChannelDirty(address: string): void;
542
640
  /**
543
641
  * Get an absolute url to the container based on the provided relativeUrl.
544
642
  * Returns undefined if the container or data store isn't attached to storage.
@@ -557,14 +655,8 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
557
655
  * If it is local, it will throw unsupported errors on calls to summarize.
558
656
  */
559
657
  createParam: CreateChildSummarizerNodeParam): CreateChildSummarizerNodeFn;
658
+ deleteChildSummarizerNode?(id: string): void;
560
659
  uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
561
- /**
562
- * @deprecated The functionality to get base GC details has been moved to summarizer node.
563
- *
564
- * Returns the GC details in the initial summary of this data store. This is used to initialize the data store
565
- * and its children with the GC details from the previous summary.
566
- */
567
- getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
568
660
  /**
569
661
  * @deprecated There is no replacement for this, its functionality is no longer needed at this layer.
570
662
  * It will be removed in a future release, sometime after 2.0.0-internal.8.0.0
@@ -576,71 +668,11 @@ export declare interface IFluidDataStoreContext extends IEventProvider<IFluidDat
576
668
  * @param srcHandle - The handle of the node that added the reference.
577
669
  * @param outboundHandle - The handle of the outbound node that is referenced.
578
670
  */
579
- addedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;
580
- /**
581
- * (Same as @see addedGCOutboundReference, but with string paths instead of handles)
582
- *
583
- * Called when a new outbound reference is added to another node. This is used by garbage collection to identify
584
- * all references added in the system.
585
- *
586
- * @param fromPath - The absolute path of the node that added the reference.
587
- * @param toPath - The absolute path of the outbound node that is referenced.
588
- */
589
- addedGCOutboundRoute?(fromPath: string, toPath: string): void;
590
- }
591
-
592
- /**
593
- * @alpha
594
- */
595
- export declare interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
596
- /**
597
- * Binds a runtime to the context.
598
- */
599
- attachRuntime(factory: IProvideFluidDataStoreFactory, dataStoreRuntime: IFluidDataStoreChannel): Promise<void>;
600
- }
601
-
602
- /**
603
- * @alpha
604
- */
605
- export declare interface IFluidDataStoreContextEvents extends IEvent {
606
- (event: "attaching" | "attached", listener: () => void): any;
607
- }
608
-
609
- /**
610
- * @alpha
611
- */
612
- export declare const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
613
-
614
- /**
615
- * IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
616
- * and usually provided to consumers using this mapping through a data store registry.
617
- * @alpha
618
- */
619
- export declare interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
620
- /**
621
- * String that uniquely identifies the type of data store created by this factory.
622
- */
623
- type: string;
624
- /**
625
- * Generates runtime for the data store from the data store context. Once created should be bound to the context.
626
- * @param context - Context for the data store.
627
- * @param existing - If instantiating from an existing file.
628
- */
629
- instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
630
- }
631
-
632
- /**
633
- * @alpha
634
- */
635
- export declare const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
636
-
637
- /**
638
- * An association of identifiers to data store registry entries, where the
639
- * entries can be used to create data stores.
640
- * @alpha
641
- */
642
- export declare interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
643
- get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
671
+ addedGCOutboundReference?(srcHandle: {
672
+ absolutePath: string;
673
+ }, outboundHandle: {
674
+ absolutePath: string;
675
+ }): void;
644
676
  }
645
677
 
646
678
  /**
@@ -672,10 +704,6 @@ export declare interface IGarbageCollectionDetailsBase {
672
704
  gcData?: IGarbageCollectionData;
673
705
  }
674
706
 
675
- export { IIdCompressor }
676
-
677
- export { IIdCompressorCore }
678
-
679
707
  /**
680
708
  * Represents ISignalMessage with its type.
681
709
  * @public
@@ -711,6 +739,7 @@ export declare interface IProvideFluidDataStoreRegistry {
711
739
 
712
740
  /**
713
741
  * @internal
742
+ * @deprecated - This interface is now moved to `@fluidframework/container-definitions` package. Please import from that package.
714
743
  */
715
744
  export declare interface ISignalEnvelope {
716
745
  /**
@@ -778,9 +807,6 @@ export declare interface ISummarizerNode {
778
807
  invalidate(sequenceNumber: number): void;
779
808
  /**
780
809
  * Calls the internal summarize function and handles internal state tracking.
781
- * If unchanged and fullTree is false, it will reuse previous summary subtree.
782
- * If an error is encountered and throwOnFailure is false, it will try to make
783
- * a summary with a pointer to the previous summary + a blob of outstanding ops.
784
810
  * @param fullTree - true to skip optimizations and always generate the full tree
785
811
  * @param trackState - indicates whether the summarizer node should track the state of the summary or not
786
812
  * @param telemetryContext - summary data passed through the layers for telemetry purposes
@@ -821,7 +847,9 @@ export declare interface ISummarizerNode {
821
847
  */
822
848
  config?: ISummarizerNodeConfig): ISummarizerNode;
823
849
  getChild(id: string): ISummarizerNode | undefined;
824
- /** True if a summary is currently in progress */
850
+ /**
851
+ * True if a summary is currently in progress
852
+ */
825
853
  isSummaryInProgress?(): boolean;
826
854
  }
827
855
 
@@ -834,16 +862,6 @@ export declare interface ISummarizerNodeConfig {
834
862
  * Defaults to true.
835
863
  */
836
864
  readonly canReuseHandle?: boolean;
837
- /**
838
- * True to always stop execution on error during summarize, or false to
839
- * attempt creating a summary that is a pointer ot the last acked summary
840
- * plus outstanding ops in case of internal summarize failure.
841
- * Defaults to false.
842
- *
843
- * BUG BUG: Default to true while we investigate problem
844
- * with differential summaries
845
- */
846
- readonly throwOnFailure?: true;
847
865
  }
848
866
 
849
867
  /**
@@ -974,24 +992,30 @@ export declare interface ITelemetryContext {
974
992
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
975
993
  * @param value - value to attribute to this summary telemetry data
976
994
  */
977
- set(prefix: string, property: string, value: TelemetryEventPropertyType): void;
995
+ set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
978
996
  /**
979
997
  * Sets multiple values for telemetry data being tracked.
980
998
  * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
981
999
  * @param property - property name of the telemetry data being tracked (ex: "Options")
982
1000
  * @param values - A set of values to attribute to this summary telemetry data.
983
1001
  */
984
- setMultiple(prefix: string, property: string, values: Record<string, TelemetryEventPropertyType>): void;
1002
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
985
1003
  /**
986
1004
  * Get the telemetry data being tracked
1005
+ *
1006
+ * @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.
1007
+ *
987
1008
  * @param prefix - unique prefix for this data (ex: "fluid:map:")
988
1009
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
989
1010
  * @returns undefined if item not found
990
1011
  */
991
- get(prefix: string, property: string): TelemetryEventPropertyType;
1012
+ get(prefix: string, property: string): TelemetryBaseEventPropertyType;
992
1013
  /**
993
1014
  * Returns a serialized version of all the telemetry data.
994
1015
  * Should be used when logging in telemetry events.
1016
+ *
1017
+ * @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function
1018
+ * but this functionality should not be used by other code being given an ITelemetryContext.
995
1019
  */
996
1020
  serialize(): string;
997
1021
  }
@@ -1036,20 +1060,6 @@ export declare interface OpAttributionKey {
1036
1060
  seq: number;
1037
1061
  }
1038
1062
 
1039
- export { OpSpaceCompressedId }
1040
-
1041
- export { SerializedIdCompressor }
1042
-
1043
- export { SerializedIdCompressorWithNoSession }
1044
-
1045
- export { SerializedIdCompressorWithOngoingSession }
1046
-
1047
- export { SessionId }
1048
-
1049
- export { SessionSpaceCompressedId }
1050
-
1051
- export { StableId }
1052
-
1053
1063
  /**
1054
1064
  * @alpha
1055
1065
  */
package/dist/summary.d.ts CHANGED
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { TelemetryEventPropertyType } from "@fluidframework/core-interfaces";
6
- import { SummaryTree, ISummaryTree, ISequencedDocumentMessage, ISnapshotTree, ITree } from "@fluidframework/protocol-definitions";
7
- import { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollection";
5
+ import type { TelemetryBaseEventPropertyType } from "@fluidframework/core-interfaces";
6
+ import type { SummaryTree, ISummaryTree, ISequencedDocumentMessage, ISnapshotTree, ITree } from "@fluidframework/protocol-definitions";
7
+ import type { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollectionDefinitions.js";
8
8
  /**
9
9
  * Contains the aggregation data from a Tree/Subtree.
10
10
  * @public
@@ -105,16 +105,6 @@ export interface ISummarizerNodeConfig {
105
105
  * Defaults to true.
106
106
  */
107
107
  readonly canReuseHandle?: boolean;
108
- /**
109
- * True to always stop execution on error during summarize, or false to
110
- * attempt creating a summary that is a pointer ot the last acked summary
111
- * plus outstanding ops in case of internal summarize failure.
112
- * Defaults to false.
113
- *
114
- * BUG BUG: Default to true while we investigate problem
115
- * with differential summaries
116
- */
117
- readonly throwOnFailure?: true;
118
108
  }
119
109
  /**
120
110
  * @alpha
@@ -161,9 +151,6 @@ export interface ISummarizerNode {
161
151
  invalidate(sequenceNumber: number): void;
162
152
  /**
163
153
  * Calls the internal summarize function and handles internal state tracking.
164
- * If unchanged and fullTree is false, it will reuse previous summary subtree.
165
- * If an error is encountered and throwOnFailure is false, it will try to make
166
- * a summary with a pointer to the previous summary + a blob of outstanding ops.
167
154
  * @param fullTree - true to skip optimizations and always generate the full tree
168
155
  * @param trackState - indicates whether the summarizer node should track the state of the summary or not
169
156
  * @param telemetryContext - summary data passed through the layers for telemetry purposes
@@ -204,7 +191,9 @@ export interface ISummarizerNode {
204
191
  */
205
192
  config?: ISummarizerNodeConfig): ISummarizerNode;
206
193
  getChild(id: string): ISummarizerNode | undefined;
207
- /** True if a summary is currently in progress */
194
+ /**
195
+ * True if a summary is currently in progress
196
+ */
208
197
  isSummaryInProgress?(): boolean;
209
198
  }
210
199
  /**
@@ -295,24 +284,30 @@ export interface ITelemetryContext {
295
284
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
296
285
  * @param value - value to attribute to this summary telemetry data
297
286
  */
298
- set(prefix: string, property: string, value: TelemetryEventPropertyType): void;
287
+ set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
299
288
  /**
300
289
  * Sets multiple values for telemetry data being tracked.
301
290
  * @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
302
291
  * @param property - property name of the telemetry data being tracked (ex: "Options")
303
292
  * @param values - A set of values to attribute to this summary telemetry data.
304
293
  */
305
- setMultiple(prefix: string, property: string, values: Record<string, TelemetryEventPropertyType>): void;
294
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
306
295
  /**
307
296
  * Get the telemetry data being tracked
297
+ *
298
+ * @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.
299
+ *
308
300
  * @param prefix - unique prefix for this data (ex: "fluid:map:")
309
301
  * @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
310
302
  * @returns undefined if item not found
311
303
  */
312
- get(prefix: string, property: string): TelemetryEventPropertyType;
304
+ get(prefix: string, property: string): TelemetryBaseEventPropertyType;
313
305
  /**
314
306
  * Returns a serialized version of all the telemetry data.
315
307
  * Should be used when logging in telemetry events.
308
+ *
309
+ * @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function
310
+ * but this functionality should not be used by other code being given an ITelemetryContext.
316
311
  */
317
312
  serialize(): string;
318
313
  }
@@ -1 +1 @@
1
- {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}