@fluidframework/runtime-definitions 2.0.0-dev-rc.1.0.0.232845 → 2.0.0-dev-rc.2.0.0.246488

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 +102 -84
  7. package/dist/dataStoreContext.d.ts +124 -73
  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} +8 -2
  18. package/dist/garbageCollectionDefinitions.d.ts.map +1 -0
  19. package/dist/{garbageCollection.js → garbageCollectionDefinitions.js} +9 -3
  20. package/dist/garbageCollectionDefinitions.js.map +1 -0
  21. package/dist/index.d.ts +12 -7
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +20 -19
  24. package/dist/index.js.map +1 -1
  25. package/dist/package.json +3 -0
  26. package/dist/protocol.d.ts +1 -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 -124
  30. package/dist/runtime-definitions-beta.d.ts +37 -30
  31. package/dist/runtime-definitions-public.d.ts +37 -30
  32. package/dist/runtime-definitions-untrimmed.d.ts +190 -125
  33. package/dist/summary.d.ts +15 -7
  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 +464 -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 +1019 -0
  66. package/lib/runtime-definitions-beta.d.ts +242 -0
  67. package/lib/runtime-definitions-public.d.ts +242 -0
  68. package/lib/runtime-definitions-untrimmed.d.ts +1100 -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 +75 -31
  74. package/src/dataStoreContext.ts +144 -90
  75. package/src/dataStoreFactory.ts +1 -1
  76. package/src/dataStoreRegistry.ts +1 -1
  77. package/src/{garbageCollection.ts → garbageCollectionDefinitions.ts} +7 -1
  78. package/src/index.ts +26 -22
  79. package/src/protocol.ts +1 -1
  80. package/src/summary.ts +18 -7
  81. package/tsconfig.cjs.json +7 -0
  82. package/tsconfig.json +2 -5
  83. package/dist/garbageCollection.d.ts.map +0 -1
  84. package/dist/garbageCollection.js.map +0 -1
package/.eslintrc.cjs CHANGED
@@ -7,6 +7,6 @@ module.exports = {
7
7
  parserOptions: {
8
8
  project: ["./tsconfig.json", "./src/test/tsconfig.json"],
9
9
  },
10
- extends: ["@fluidframework/eslint-config-fluid/minimal", "prettier"],
10
+ extends: ["@fluidframework/eslint-config-fluid/minimal-deprecated", "prettier"],
11
11
  plugins: ["deprecation"],
12
12
  };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,80 @@
1
1
  # @fluidframework/runtime-definitions
2
2
 
3
+ ## 2.0.0-rc.2.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - runtime-definitions: ITelemetryContext: Functions `get` and `serialize` are now deprecated ([#19409](https://github.com/microsoft/FluidFramework/issues/19409)) [42696564dd](https://github.com/microsoft/FluidFramework/commits/42696564ddbacfe200d653bdf7a1db18fc253bfb)
8
+
9
+ ITelemetryContext is to be used only for instrumentation, not for attempting to read the values already set by other code.
10
+ This is important because this _public_ interface may soon use FF's _should-be internal_ logging instrumentation types,
11
+ which we reserve the right to expand (to support richer instrumentation).
12
+ In that case, we would not be able to do so in a minor release if they're used as an "out" type
13
+ like the return type for `get`.
14
+
15
+ There is no replacement given in terms of immediate programmatic access to this data.
16
+ The expected use pattern is something like this:
17
+
18
+ - Some code creates a concrete implementation of `ITelemetryContext` and passes it around
19
+ - Callers use the "write" functions on the interface to build up the context
20
+ - The originator uses a function like `serialize` (on the concrete impl, not exposed on the interface any longer)
21
+ and passes the result to a logger
22
+ - The data is inspected along with other logs in whatever telemetry pipeline is used by the application (or Debug Tools, etc)
23
+
24
+ - container-runtime: New feature: ID compression for DataStores & DDSs ([#19859](https://github.com/microsoft/FluidFramework/issues/19859)) [51f0d3db73](https://github.com/microsoft/FluidFramework/commits/51f0d3db737800e1c30ea5e3952d38ff30ffc7da)
25
+
26
+ ### Key changes
27
+
28
+ 1. A new API IContainerRuntimeBase.generateDocumentUniqueId() is exposed. This API will opportunistically generate IDs in short format (non-negative numbers). If it can't achieve that, it will return UUID strings. UUIDs generated will have low entropy in groups and will compress well. It can be leveraged anywhere in container where container unique IDs are required. I.e. any place that uses uuid() and stores data in container is likely candidate to start leveraging this API.
29
+ 2. Data store internal IDs (IDs that are auto generated by FF system) will opportunistically be generated in shorter form. Data stores created in detached container will always have short IDs, data stores created in attached container will opportunistically be short (by using newly added IContainerRuntimeBase.generateDocumentUniqueId() capability)
30
+ 3. Similar DDS names will be opportunistically short (same considerations for detached DDS vs. attached DDS)
31
+
32
+ ### Implementation details
33
+
34
+ 1. Container level ID Compressor can now be enabled with delay. With such setting, only new IContainerRuntimeBase.generateDocumentUniqueId() is exposed (ID Compressor is not exposed in such case, as leveraging any of its other capabilities requires future container sessions to load ID Compressor on container load, for correctness reasons). Once Container establishes connection and any changes are made in container, newly added API will start generating more compact IDs (in most cases).
35
+
36
+ ### Breaking changes
37
+
38
+ 1. DDS names can no longer start with "\_" symbol - this is reserved for FF needs. I've validated that's not an issue for AzureClient (it only creates root object by name, everything else is referred by handle). Our main internal partners almost never use named DDSs (I can find only 4 instances in Loop).
39
+
40
+ ### Backward compatibility considerations
41
+
42
+ 1. Data store internal IDs could collide with earlier used names data stores. Earlier versions of FF framework (before DataStore aliasing feature was added) allowed customers to supply IDs for data stores. And thus, files created with earlier versions of framework could have data store IDs that will be similar to names FF will use for newly created data stores ("A", ... "Z", "a"..."z", "AA", etc.). While such collision is possible, it's very unlikely (almost impossible) if user-provided names were at least 4-5 characters long.
43
+ 2. If application runs to these problems, or wants to reduce risks, consider disabling ID compressor via IContainerRuntimeOptions.enableRuntimeIdCompressor = "off".
44
+
45
+ ### Minor changes
46
+
47
+ 1. IContainerRuntime.createDetachedRootDataStore() is removed. Please use IContainerRuntime.createDetachedDataStore and IDataStore.trySetAlias() instead
48
+ 2. IContainerRuntimeOptions.enableRuntimeIdCompressor has been changes from boolean to tri-state.
49
+
50
+ - driver-definitions: repositoryUrl removed from IDocumentStorageService ([#19522](https://github.com/microsoft/FluidFramework/issues/19522)) [90eb3c9d33](https://github.com/microsoft/FluidFramework/commits/90eb3c9d33d80e24caa1393a50f414c5602f6aa3)
51
+
52
+ The `repositoryUrl` member of `IDocumentStorageService` was unused and always equal to the empty string. It has been removed.
53
+
54
+ - runtime-definitions: FlushMode.Immediate is deprecated ([#19963](https://github.com/microsoft/FluidFramework/issues/19963)) [861500c1e2](https://github.com/microsoft/FluidFramework/commits/861500c1e2bdd3394308bd87007231d70b698be0)
55
+
56
+ `FlushMode.Immediate` is deprecated and will be removed in the next major version. It should not be used. Use
57
+ `FlushMode.TurnBased` instead, which is the default. See
58
+ <https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/opLifecycle#how-batching-works>
59
+ for more information
60
+
61
+ - container-definitions: ILoaderOptions no longer accepts arbitrary key/value pairs ([#19306](https://github.com/microsoft/FluidFramework/issues/19306)) [741926e225](https://github.com/microsoft/FluidFramework/commits/741926e2253a161504ecc6a6451d8f15d7ac4ed6)
62
+
63
+ ILoaderOptions has been narrowed to the specific set of supported loader options, and may no longer be used to pass arbitrary key/value pairs through to the runtime.
64
+
65
+ - runtime-definitions: Deprecated ID compressor related types have been removed. ([#19031](https://github.com/microsoft/FluidFramework/issues/19031)) [de92ef0ac5](https://github.com/microsoft/FluidFramework/commits/de92ef0ac551ad89b00564c78c0091f8ecc33639)
66
+
67
+ This change should be a no-op for consumers, as these types were almost certainly unused and are also available in the
68
+ standalone package id-compressor (see <https://github.com/microsoft/FluidFramework/pull/18749>).
69
+
70
+ - container-definitions: Added containerMetadata prop on IContainer interface ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
71
+
72
+ Added `containerMetadata` prop on IContainer interface.
73
+
74
+ - runtime-definitions: Moved ISignalEnvelope interface to core-interfaces ([#19142](https://github.com/microsoft/FluidFramework/issues/19142)) [d0d77f3516](https://github.com/microsoft/FluidFramework/commits/d0d77f3516d67f3c9faedb47b20dbd4e309c3bc2)
75
+
76
+ The `ISignalEnvelope` interface has been moved to the @fluidframework/core-interfaces package.
77
+
3
78
  ## 2.0.0-rc.1.0.0
4
79
 
5
80
  ### Minor Changes
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
+ "extends": "../../../common/build/build-common/api-extractor-base.cjs.primary.json",
4
+ // CJS is actually secondary; so, no report.
5
+ "apiReport": {
6
+ "enabled": false
7
+ }
8
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "../../../common/build/build-common/api-extractor-lint.json"
3
+ "extends": "../../../common/build/build-common/api-extractor-lint.esm.primary.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "../../../common/build/build-common/api-extractor-base.json"
3
+ "extends": "../../../common/build/build-common/api-extractor-base.esm.primary.json"
4
4
  }
@@ -4,32 +4,31 @@
4
4
 
5
5
  ```ts
6
6
 
7
- import { AttachState } from '@fluidframework/container-definitions';
8
- import { FluidObject } from '@fluidframework/core-interfaces';
9
- import { IAudience } from '@fluidframework/container-definitions';
10
- import { IClientDetails } from '@fluidframework/protocol-definitions';
11
- import { IDeltaManager } from '@fluidframework/container-definitions';
12
- import { IDisposable } from '@fluidframework/core-interfaces';
13
- import { IDocumentMessage } from '@fluidframework/protocol-definitions';
14
- import { IDocumentStorageService } from '@fluidframework/driver-definitions';
15
- import { IEvent } from '@fluidframework/core-interfaces';
16
- import { IEventProvider } from '@fluidframework/core-interfaces';
17
- import { IFluidHandle } from '@fluidframework/core-interfaces';
18
- import { IIdCompressor } from '@fluidframework/id-compressor';
19
- import { ILoaderOptions } from '@fluidframework/container-definitions';
20
- import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
21
- import { IQuorumClients } from '@fluidframework/protocol-definitions';
22
- import { IRequest } from '@fluidframework/core-interfaces';
23
- import { IResponse } from '@fluidframework/core-interfaces';
24
- import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
25
- import { ISignalMessage } from '@fluidframework/protocol-definitions';
26
- import { ISnapshotTree } from '@fluidframework/protocol-definitions';
27
- import { ISummaryTree } from '@fluidframework/protocol-definitions';
28
- import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
29
- import { ITree } from '@fluidframework/protocol-definitions';
7
+ import type { AttachState } from '@fluidframework/container-definitions';
8
+ import type { FluidObject } from '@fluidframework/core-interfaces';
9
+ import type { IAudience } from '@fluidframework/container-definitions';
10
+ import type { IClientDetails } from '@fluidframework/protocol-definitions';
11
+ import type { IDeltaManager } from '@fluidframework/container-definitions';
12
+ import type { IDisposable } from '@fluidframework/core-interfaces';
13
+ import type { IDocumentMessage } from '@fluidframework/protocol-definitions';
14
+ import type { IDocumentStorageService } from '@fluidframework/driver-definitions';
15
+ import type { IEvent } from '@fluidframework/core-interfaces';
16
+ import type { IEventProvider } from '@fluidframework/core-interfaces';
17
+ import type { IFluidHandle } from '@fluidframework/core-interfaces';
18
+ import type { IIdCompressor } from '@fluidframework/id-compressor';
19
+ import type { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
20
+ import type { IQuorumClients } from '@fluidframework/protocol-definitions';
21
+ import type { IRequest } from '@fluidframework/core-interfaces';
22
+ import type { IResponse } from '@fluidframework/core-interfaces';
23
+ import type { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
24
+ import type { ISignalMessage } from '@fluidframework/protocol-definitions';
25
+ import type { ISnapshotTree } from '@fluidframework/protocol-definitions';
26
+ import type { ISummaryTree } from '@fluidframework/protocol-definitions';
27
+ import type { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
28
+ import type { ITree } from '@fluidframework/protocol-definitions';
30
29
  import type { IUser } from '@fluidframework/protocol-definitions';
31
- import { SummaryTree } from '@fluidframework/protocol-definitions';
32
- import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
30
+ import type { SummaryTree } from '@fluidframework/protocol-definitions';
31
+ import type { TelemetryBaseEventPropertyType } from '@fluidframework/core-interfaces';
33
32
 
34
33
  // @alpha
35
34
  export type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
@@ -86,6 +85,7 @@ export type FluidDataStoreRegistryEntry = Readonly<Partial<IProvideFluidDataStor
86
85
 
87
86
  // @alpha
88
87
  export enum FlushMode {
88
+ // @deprecated
89
89
  Immediate = 0,
90
90
  TurnBased = 1
91
91
  }
@@ -98,6 +98,9 @@ export enum FlushModeExperimental {
98
98
  // @internal
99
99
  export const gcBlobPrefix = "__gc";
100
100
 
101
+ // @internal
102
+ export const gcDataBlobKey = ".gcdata";
103
+
101
104
  // @internal
102
105
  export const gcDeletedBlobKey = "__deletedNodes";
103
106
 
@@ -118,17 +121,24 @@ export interface IAttachMessage {
118
121
  export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
119
122
  // (undocumented)
120
123
  readonly clientDetails: IClientDetails;
121
- createDataStore(pkg: string | string[], groupId?: string): Promise<IDataStore>;
124
+ createDataStore(pkg: Readonly<string | string[]>, loadingGroupId?: string): Promise<IDataStore>;
122
125
  // @deprecated (undocumented)
123
- _createDataStoreWithProps(pkg: string | string[], props?: any, id?: string): Promise<IDataStore>;
124
- createDetachedDataStore(pkg: Readonly<string[]>, groupId?: string): IFluidDataStoreContextDetached;
126
+ _createDataStoreWithProps(pkg: Readonly<string | string[]>, props?: any, id?: string): Promise<IDataStore>;
127
+ createDetachedDataStore(pkg: Readonly<string[]>, loadingGroupId?: string): IFluidDataStoreContextDetached;
128
+ // (undocumented)
129
+ readonly disposed: boolean;
130
+ generateDocumentUniqueId(): number | string;
125
131
  getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
126
132
  getAudience(): IAudience;
127
133
  getQuorum(): IQuorumClients;
134
+ getSnapshotForLoadingGroupId(loadingGroupIds: string[], pathParts: string[]): Promise<{
135
+ snapshotTree: ISnapshotTree;
136
+ sequenceNumber: number;
137
+ }>;
128
138
  // (undocumented)
129
139
  readonly logger: ITelemetryBaseLogger;
130
140
  orderSequentially(callback: () => void): void;
131
- submitSignal(type: string, content: any): void;
141
+ submitSignal(type: string, content: any, targetClientId?: string): void;
132
142
  // (undocumented)
133
143
  uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
134
144
  }
@@ -143,6 +153,8 @@ export interface IContainerRuntimeBaseEvents extends IEvent {
143
153
  (event: "batchEnd", listener: (error: any, op: ISequencedDocumentMessage) => void): any;
144
154
  // (undocumented)
145
155
  (event: "signal", listener: (message: IInboundSignalMessage, local: boolean) => void): any;
156
+ // (undocumented)
157
+ (event: "dispose", listener: () => void): any;
146
158
  }
147
159
 
148
160
  // @alpha
@@ -168,36 +180,72 @@ export interface IExperimentalIncrementalSummaryContext {
168
180
  export interface IFluidDataStoreChannel extends IDisposable {
169
181
  // (undocumented)
170
182
  applyStashedOp(content: any): Promise<unknown>;
171
- // @deprecated
172
- attachGraph(): void;
173
- readonly attachState: AttachState;
174
183
  readonly entryPoint: IFluidHandle<FluidObject>;
184
+ getAttachGCData?(telemetryContext?: ITelemetryContext): IGarbageCollectionData;
175
185
  getAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
176
186
  getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;
177
- // (undocumented)
178
- readonly id: string;
179
187
  makeVisibleAndAttachGraph(): void;
180
- process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
181
- processSignal(message: any, local: boolean): void;
188
+ process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown, addedOutboundReference?: (fromNodePath: string, toNodePath: string) => void): void;
189
+ processSignal(message: IInboundSignalMessage, local: boolean): void;
182
190
  // (undocumented)
183
191
  request(request: IRequest): Promise<IResponse>;
184
192
  reSubmit(type: string, content: any, localOpMetadata: unknown): any;
185
193
  rollback?(type: string, content: any, localOpMetadata: unknown): void;
194
+ // (undocumented)
195
+ setAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;
186
196
  setConnectionState(connected: boolean, clientId?: string): any;
187
197
  summarize(fullTree?: boolean, trackState?: boolean, telemetryContext?: ITelemetryContext): Promise<ISummaryTreeWithStats>;
188
198
  updateUsedRoutes(usedRoutes: string[]): void;
199
+ }
200
+
201
+ // @alpha
202
+ export interface IFluidDataStoreContext extends IFluidParentContext {
203
+ addedGCOutboundRoute?(fromPath: string, toPath: string): void;
189
204
  // (undocumented)
190
- readonly visibilityState: VisibilityState;
205
+ readonly baseSnapshot: ISnapshotTree | undefined;
206
+ // @deprecated (undocumented)
207
+ readonly createProps?: any;
208
+ // @deprecated (undocumented)
209
+ getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
210
+ // (undocumented)
211
+ readonly id: string;
212
+ readonly isLocalDataStore: boolean;
213
+ readonly packagePath: readonly string[];
214
+ }
215
+
216
+ // @alpha (undocumented)
217
+ export interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
218
+ attachRuntime(factory: IProvideFluidDataStoreFactory, dataStoreRuntime: IFluidDataStoreChannel): Promise<IDataStore>;
219
+ }
220
+
221
+ // @alpha (undocumented)
222
+ export const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
223
+
224
+ // @alpha
225
+ export interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
226
+ instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
227
+ type: string;
191
228
  }
192
229
 
230
+ // @alpha (undocumented)
231
+ export const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
232
+
193
233
  // @alpha
194
- export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreContextEvents>, Partial<IProvideFluidDataStoreRegistry>, IProvideFluidHandleContext {
234
+ export interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
235
+ // (undocumented)
236
+ get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
237
+ }
238
+
239
+ // @alpha
240
+ export interface IFluidParentContext extends IProvideFluidHandleContext, Partial<IProvideFluidDataStoreRegistry> {
195
241
  // @deprecated (undocumented)
196
- addedGCOutboundReference?(srcHandle: IFluidHandle, outboundHandle: IFluidHandle): void;
242
+ addedGCOutboundReference?(srcHandle: {
243
+ absolutePath: string;
244
+ }, outboundHandle: {
245
+ absolutePath: string;
246
+ }): void;
197
247
  readonly attachState: AttachState;
198
248
  // (undocumented)
199
- readonly baseSnapshot: ISnapshotTree | undefined;
200
- // (undocumented)
201
249
  readonly clientDetails: IClientDetails;
202
250
  // (undocumented)
203
251
  readonly clientId: string | undefined;
@@ -205,33 +253,30 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
205
253
  readonly connected: boolean;
206
254
  // (undocumented)
207
255
  readonly containerRuntime: IContainerRuntimeBase;
208
- // @deprecated (undocumented)
209
- readonly createProps?: any;
256
+ // (undocumented)
257
+ deleteChildSummarizerNode(id: string): void;
210
258
  // (undocumented)
211
259
  readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
212
260
  ensureNoDataModelChanges<T>(callback: () => T): T;
261
+ // (undocumented)
262
+ readonly gcThrowOnTombstoneUsage: boolean;
263
+ // (undocumented)
264
+ readonly gcTombstoneEnforcementAllowed: boolean;
213
265
  getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
214
266
  getAudience(): IAudience;
215
- // @deprecated (undocumented)
216
- getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
217
267
  // (undocumented)
218
268
  getCreateChildSummarizerNodeFn(
219
269
  id: string,
220
270
  createParam: CreateChildSummarizerNodeParam): CreateChildSummarizerNodeFn;
221
271
  getQuorum(): IQuorumClients;
222
272
  // (undocumented)
223
- readonly groupId?: string;
224
- // (undocumented)
225
- readonly id: string;
226
- // (undocumented)
227
273
  readonly idCompressor?: IIdCompressor;
228
- readonly isLocalDataStore: boolean;
274
+ readonly loadingGroupId?: string;
229
275
  // (undocumented)
230
276
  readonly logger: ITelemetryBaseLogger;
231
277
  makeLocallyVisible(): void;
232
278
  // (undocumented)
233
- readonly options: ILoaderOptions;
234
- readonly packagePath: readonly string[];
279
+ readonly options: Record<string | number, any>;
235
280
  readonly scope: FluidObject;
236
281
  setChannelDirty(address: string): void;
237
282
  // (undocumented)
@@ -242,35 +287,6 @@ export interface IFluidDataStoreContext extends IEventProvider<IFluidDataStoreCo
242
287
  uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
243
288
  }
244
289
 
245
- // @alpha (undocumented)
246
- export interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
247
- attachRuntime(factory: IProvideFluidDataStoreFactory, dataStoreRuntime: IFluidDataStoreChannel): Promise<void>;
248
- }
249
-
250
- // @alpha (undocumented)
251
- export interface IFluidDataStoreContextEvents extends IEvent {
252
- // (undocumented)
253
- (event: "attaching" | "attached", listener: () => void): any;
254
- }
255
-
256
- // @alpha (undocumented)
257
- export const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory;
258
-
259
- // @alpha
260
- export interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
261
- instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
262
- type: string;
263
- }
264
-
265
- // @alpha (undocumented)
266
- export const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry;
267
-
268
- // @alpha
269
- export interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
270
- // (undocumented)
271
- get(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;
272
- }
273
-
274
290
  // @public
275
291
  export interface IGarbageCollectionData {
276
292
  gcNodes: {
@@ -399,10 +415,12 @@ export interface ISummaryTreeWithStats {
399
415
 
400
416
  // @public
401
417
  export interface ITelemetryContext {
402
- get(prefix: string, property: string): TelemetryEventPropertyType;
418
+ // @deprecated
419
+ get(prefix: string, property: string): TelemetryBaseEventPropertyType;
420
+ // @deprecated
403
421
  serialize(): string;
404
- set(prefix: string, property: string, value: TelemetryEventPropertyType): void;
405
- setMultiple(prefix: string, property: string, values: Record<string, TelemetryEventPropertyType>): void;
422
+ set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
423
+ setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
406
424
  }
407
425
 
408
426
  // @alpha