@fluidframework/container-runtime-definitions 2.70.0-361788 → 2.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/containerExtension.d.ts +81 -40
- package/dist/containerExtension.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/lib/containerExtension.d.ts +81 -40
- package/lib/containerExtension.d.ts.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/package.json +11 -18
- package/src/containerExtension.ts +117 -48
- package/src/index.ts +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,7 @@ import type { ILayerCompatDetails } from "@fluid-internal/client-utils";
|
|
|
6
6
|
import type { IAudience } from "@fluidframework/container-definitions/internal";
|
|
7
7
|
import type { BrandedType, InternalUtilityTypes, ITelemetryBaseLogger, JsonDeserialized, JsonSerializable, Listenable, OpaqueJsonDeserialized, TypedMessage } from "@fluidframework/core-interfaces/internal";
|
|
8
8
|
import type { IQuorumClients } from "@fluidframework/driver-definitions/internal";
|
|
9
|
+
import type { ContainerExtensionId, ContainerExtensionExpectations, ExtensionCompatibilityDetails, UnknownExtensionInstantiation } from "@fluidframework/runtime-definitions/internal";
|
|
9
10
|
/**
|
|
10
11
|
* While connected, the id of a client within a session.
|
|
11
12
|
*
|
|
@@ -136,12 +137,37 @@ export type InboundExtensionMessage<TMessage extends TypedMessage = TypedMessage
|
|
|
136
137
|
export interface ExtensionRuntimeProperties {
|
|
137
138
|
SignalMessages: TypedMessage;
|
|
138
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Collection of properties resulting from instantiating an extension via its
|
|
142
|
+
* factory.
|
|
143
|
+
*
|
|
144
|
+
* @remarks
|
|
145
|
+
* All of the members are mutable to allow for handling version or capability
|
|
146
|
+
* mismatches via replacement of interface or extension instances. That is the
|
|
147
|
+
* only time mutation is expected to occur.
|
|
148
|
+
*
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
export interface ExtensionInstantiationResult<TInterface, TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[]> extends UnknownExtensionInstantiation {
|
|
152
|
+
interface: TInterface;
|
|
153
|
+
extension: ContainerExtension<TRuntimeProperties, TUseContext>;
|
|
154
|
+
}
|
|
139
155
|
/**
|
|
140
156
|
* Defines requirements for a component to register with container as an extension.
|
|
141
157
|
*
|
|
142
158
|
* @internal
|
|
143
159
|
*/
|
|
144
160
|
export interface ContainerExtension<TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[] = []> {
|
|
161
|
+
/**
|
|
162
|
+
* Called when a new request is made for an extension with different version
|
|
163
|
+
* or capabilities than were registered for this extension instance.
|
|
164
|
+
*
|
|
165
|
+
* @typeParam TInterface - interface type of new request
|
|
166
|
+
*
|
|
167
|
+
* @param thisExistingInstantiation - registration of this extension in store
|
|
168
|
+
* @param newCompatibilityRequest - compatibility details of the new request
|
|
169
|
+
*/
|
|
170
|
+
handleVersionOrCapabilitiesMismatch<TRequestedInterface>(thisExistingInstantiation: Readonly<ExtensionInstantiationResult<unknown, TRuntimeProperties, TUseContext>>, newCompatibilityRequest: ExtensionCompatibilityDetails): Readonly<ExtensionInstantiationResult<TRequestedInterface, TRuntimeProperties, TUseContext>>;
|
|
145
171
|
/**
|
|
146
172
|
* Notifies the extension of a new use context.
|
|
147
173
|
*
|
|
@@ -164,11 +190,32 @@ export interface ContainerExtension<TRuntimeProperties extends ExtensionRuntimeP
|
|
|
164
190
|
processSignal?: (addressChain: string[], signalMessage: InboundExtensionMessage<TRuntimeProperties["SignalMessages"]>, local: boolean) => void;
|
|
165
191
|
}
|
|
166
192
|
/**
|
|
167
|
-
*
|
|
193
|
+
* The container is not connected to the service.
|
|
194
|
+
* @internal
|
|
195
|
+
*/
|
|
196
|
+
export type JoinedStatus_disconnected = "disconnected";
|
|
197
|
+
/**
|
|
198
|
+
* The container has a connection and read-only operability.
|
|
199
|
+
* @internal
|
|
200
|
+
*/
|
|
201
|
+
export type JoinedStatus_joinedForReading = "joinedForReading";
|
|
202
|
+
/**
|
|
203
|
+
* The container has a connection and write operability.
|
|
204
|
+
* @internal
|
|
205
|
+
*/
|
|
206
|
+
export type JoinedStatus_joinedForWriting = "joinedForWriting";
|
|
207
|
+
/**
|
|
208
|
+
* Joined status for container.
|
|
209
|
+
*
|
|
210
|
+
* @remarks
|
|
211
|
+
* May be:
|
|
212
|
+
* - {@link JoinedStatus_disconnected|"disconnected"}
|
|
213
|
+
* - {@link JoinedStatus_joinedForReading|"joinedForReading"}
|
|
214
|
+
* - {@link JoinedStatus_joinedForWriting|"joinedForWriting"}
|
|
168
215
|
*
|
|
169
216
|
* @internal
|
|
170
217
|
*/
|
|
171
|
-
export type JoinedStatus =
|
|
218
|
+
export type JoinedStatus = JoinedStatus_disconnected | JoinedStatus_joinedForReading | JoinedStatus_joinedForWriting;
|
|
172
219
|
/**
|
|
173
220
|
* Events emitted by the {@link ExtensionHost}.
|
|
174
221
|
*
|
|
@@ -183,7 +230,7 @@ export interface ExtensionHostEvents {
|
|
|
183
230
|
clientId: ClientConnectionId;
|
|
184
231
|
canWrite: boolean;
|
|
185
232
|
}) => void;
|
|
186
|
-
"
|
|
233
|
+
"operabilityChanged": (canWrite: boolean) => void;
|
|
187
234
|
}
|
|
188
235
|
/**
|
|
189
236
|
* Defines the runtime aspects an extension may access.
|
|
@@ -198,16 +245,13 @@ export interface ExtensionHost<TRuntimeProperties extends ExtensionRuntimeProper
|
|
|
198
245
|
/**
|
|
199
246
|
* Gets the current joined status of the container.
|
|
200
247
|
*
|
|
201
|
-
* @
|
|
202
|
-
* Returns one of three possible {@link JoinedStatus} values:
|
|
203
|
-
* - "disconnected": The container is not connected to the service
|
|
204
|
-
* - "joinedForReading": The container has a read-only connection
|
|
205
|
-
* - "joinedForWriting": The container has a write connection
|
|
248
|
+
* @returns The current {@link JoinedStatus} of the container.
|
|
206
249
|
*
|
|
250
|
+
* @remarks
|
|
207
251
|
* Status changes are signaled through :
|
|
208
252
|
* - {@link ExtensionHostEvents.disconnected}: Transitioning to Disconnected state
|
|
209
|
-
* - {@link ExtensionHostEvents.joined}: Transition to Connected state (either for reading or writing)
|
|
210
|
-
* - {@link ExtensionHostEvents.
|
|
253
|
+
* - {@link ExtensionHostEvents.joined}: Transition to CatchingUp or Connected state (either for reading or writing)
|
|
254
|
+
* - {@link ExtensionHostEvents.operabilityChanged}: When operability has changed (e.g., write to read)
|
|
211
255
|
*/
|
|
212
256
|
readonly getJoinedStatus: () => JoinedStatus;
|
|
213
257
|
readonly getClientId: () => ClientConnectionId | undefined;
|
|
@@ -228,49 +272,45 @@ export interface ExtensionHost<TRuntimeProperties extends ExtensionRuntimeProper
|
|
|
228
272
|
* Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.
|
|
229
273
|
*/
|
|
230
274
|
getQuorum: () => IQuorumClients;
|
|
275
|
+
/**
|
|
276
|
+
* The collection of all clients as enumerated by the service.
|
|
277
|
+
*
|
|
278
|
+
* @remarks This may include/exclude those found within the quorum.
|
|
279
|
+
* It produces results faster than {@link ExtensionHost.getQuorum}, but
|
|
280
|
+
* will be inaccurate if any signals are lost.
|
|
281
|
+
*/
|
|
231
282
|
getAudience: () => IAudience;
|
|
232
283
|
}
|
|
233
284
|
/**
|
|
234
285
|
* Factory method to create an extension instance.
|
|
235
286
|
*
|
|
236
287
|
* Any such method provided to {@link ContainerExtensionStore.acquireExtension}
|
|
237
|
-
* must use the same value for a given {@link ContainerExtensionId} so that an
|
|
288
|
+
* must use the same value for a given {@link @fluidframework/runtime-definitions#ContainerExtensionId} so that an
|
|
238
289
|
* `instanceof` check may be performed at runtime.
|
|
239
290
|
*
|
|
240
291
|
* @typeParam T - Type of extension to create
|
|
241
292
|
* @typeParam TRuntimeProperties - Extension runtime properties
|
|
242
293
|
* @typeParam TUseContext - Array of custom use context passed to factory or onNewUse
|
|
243
294
|
*
|
|
244
|
-
* @param host - Host runtime for extension to work against
|
|
245
|
-
* @param useContext - Custom use context for extension.
|
|
246
|
-
* @returns Record providing:
|
|
247
|
-
* `interface` instance (type `T`) that is provided to caller of
|
|
248
|
-
* {@link ContainerExtensionStore.acquireExtension} and
|
|
249
|
-
* `extension` store/runtime uses to interact with extension.
|
|
250
|
-
*
|
|
251
295
|
* @internal
|
|
252
296
|
*/
|
|
253
|
-
export
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
*
|
|
271
|
-
* @internal
|
|
272
|
-
*/
|
|
273
|
-
export type ContainerExtensionId = `${string}:${string}`;
|
|
297
|
+
export interface ContainerExtensionFactory<TInterface, TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[] = []> extends ContainerExtensionExpectations {
|
|
298
|
+
resolvePriorInstantiation(priorInstantiation: UnknownExtensionInstantiation): Readonly<ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>>;
|
|
299
|
+
/**
|
|
300
|
+
* @param host - Host runtime for extension to work against
|
|
301
|
+
* @param useContext - Custom use context for extension.
|
|
302
|
+
* @returns Record providing:
|
|
303
|
+
* `interface` instance (type `T`) that is provided to caller of
|
|
304
|
+
* {@link ContainerExtensionStore.acquireExtension} and
|
|
305
|
+
* `extension` store/runtime uses to interact with extension.
|
|
306
|
+
*/
|
|
307
|
+
instantiateExtension(host: ExtensionHost<TRuntimeProperties>, ...useContext: TUseContext): ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>;
|
|
308
|
+
/**
|
|
309
|
+
* Determines if an `ExtensionInstantiationResult` came from `instantiateExtension`.
|
|
310
|
+
* Called by the semantics of the instanceof operator.
|
|
311
|
+
*/
|
|
312
|
+
[Symbol.hasInstance]: (instance: unknown) => instance is ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>;
|
|
313
|
+
}
|
|
274
314
|
/**
|
|
275
315
|
* @sealed
|
|
276
316
|
* @internal
|
|
@@ -281,8 +321,9 @@ export interface ContainerExtensionStore {
|
|
|
281
321
|
*
|
|
282
322
|
* @param id - Identifier for the requested extension
|
|
283
323
|
* @param factory - Factory to create the extension if not found
|
|
324
|
+
* @param context - Custom use context for extension
|
|
284
325
|
* @returns The extension
|
|
285
326
|
*/
|
|
286
|
-
acquireExtension<
|
|
327
|
+
acquireExtension<TInterface, TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[] = []>(id: ContainerExtensionId, factory: ContainerExtensionFactory<TInterface, TRuntimeProperties, TUseContext>, ...context: TUseContext): TInterface;
|
|
287
328
|
}
|
|
288
329
|
//# sourceMappingURL=containerExtension.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerExtension.d.ts","sourceRoot":"","sources":["../src/containerExtension.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"containerExtension.d.ts","sourceRoot":"","sources":["../src/containerExtension.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
export type {
|
|
5
|
+
export type { ContainerExtensionId, ExtensionCompatibilityDetails, } from "@fluidframework/runtime-definitions/internal";
|
|
6
|
+
export type { ClientConnectionId, ContainerExtensionFactory, ContainerExtensionStore, ContainerExtension, ExtensionHost, ExtensionHostEvents, ExtensionInstantiationResult, ExtensionMessage, ExtensionRuntimeProperties, InboundExtensionMessage, JoinedStatus, JoinedStatus_disconnected, JoinedStatus_joinedForReading, JoinedStatus_joinedForWriting, OutboundExtensionMessage, RawInboundExtensionMessage, UnverifiedBrand, VerifiedInboundExtensionMessage, } from "./containerExtension.js";
|
|
6
7
|
export type { IContainerRuntime, IContainerRuntimeBaseWithCombinedEvents, IContainerRuntimeEvents, IContainerRuntimeInternal, IContainerRuntimeWithResolveHandle_Deprecated, SummarizerStopReason, ISummarizeEventProps, ISummarizerObservabilityProps, ISummarizerEvents, } from "./containerRuntime.js";
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,YAAY,EACX,oBAAoB,EACpB,6BAA6B,GAC7B,MAAM,8CAA8C,CAAC;AACtD,YAAY,EACX,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,EACvB,YAAY,EACZ,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,EACf,+BAA+B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,iBAAiB,EACjB,uCAAuC,EACvC,uBAAuB,EACvB,yBAAyB,EACzB,6CAA6C,EAC7C,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,iBAAiB,GACjB,MAAM,uBAAuB,CAAC"}
|
|
@@ -6,6 +6,7 @@ import type { ILayerCompatDetails } from "@fluid-internal/client-utils";
|
|
|
6
6
|
import type { IAudience } from "@fluidframework/container-definitions/internal";
|
|
7
7
|
import type { BrandedType, InternalUtilityTypes, ITelemetryBaseLogger, JsonDeserialized, JsonSerializable, Listenable, OpaqueJsonDeserialized, TypedMessage } from "@fluidframework/core-interfaces/internal";
|
|
8
8
|
import type { IQuorumClients } from "@fluidframework/driver-definitions/internal";
|
|
9
|
+
import type { ContainerExtensionId, ContainerExtensionExpectations, ExtensionCompatibilityDetails, UnknownExtensionInstantiation } from "@fluidframework/runtime-definitions/internal";
|
|
9
10
|
/**
|
|
10
11
|
* While connected, the id of a client within a session.
|
|
11
12
|
*
|
|
@@ -136,12 +137,37 @@ export type InboundExtensionMessage<TMessage extends TypedMessage = TypedMessage
|
|
|
136
137
|
export interface ExtensionRuntimeProperties {
|
|
137
138
|
SignalMessages: TypedMessage;
|
|
138
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Collection of properties resulting from instantiating an extension via its
|
|
142
|
+
* factory.
|
|
143
|
+
*
|
|
144
|
+
* @remarks
|
|
145
|
+
* All of the members are mutable to allow for handling version or capability
|
|
146
|
+
* mismatches via replacement of interface or extension instances. That is the
|
|
147
|
+
* only time mutation is expected to occur.
|
|
148
|
+
*
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
export interface ExtensionInstantiationResult<TInterface, TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[]> extends UnknownExtensionInstantiation {
|
|
152
|
+
interface: TInterface;
|
|
153
|
+
extension: ContainerExtension<TRuntimeProperties, TUseContext>;
|
|
154
|
+
}
|
|
139
155
|
/**
|
|
140
156
|
* Defines requirements for a component to register with container as an extension.
|
|
141
157
|
*
|
|
142
158
|
* @internal
|
|
143
159
|
*/
|
|
144
160
|
export interface ContainerExtension<TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[] = []> {
|
|
161
|
+
/**
|
|
162
|
+
* Called when a new request is made for an extension with different version
|
|
163
|
+
* or capabilities than were registered for this extension instance.
|
|
164
|
+
*
|
|
165
|
+
* @typeParam TInterface - interface type of new request
|
|
166
|
+
*
|
|
167
|
+
* @param thisExistingInstantiation - registration of this extension in store
|
|
168
|
+
* @param newCompatibilityRequest - compatibility details of the new request
|
|
169
|
+
*/
|
|
170
|
+
handleVersionOrCapabilitiesMismatch<TRequestedInterface>(thisExistingInstantiation: Readonly<ExtensionInstantiationResult<unknown, TRuntimeProperties, TUseContext>>, newCompatibilityRequest: ExtensionCompatibilityDetails): Readonly<ExtensionInstantiationResult<TRequestedInterface, TRuntimeProperties, TUseContext>>;
|
|
145
171
|
/**
|
|
146
172
|
* Notifies the extension of a new use context.
|
|
147
173
|
*
|
|
@@ -164,11 +190,32 @@ export interface ContainerExtension<TRuntimeProperties extends ExtensionRuntimeP
|
|
|
164
190
|
processSignal?: (addressChain: string[], signalMessage: InboundExtensionMessage<TRuntimeProperties["SignalMessages"]>, local: boolean) => void;
|
|
165
191
|
}
|
|
166
192
|
/**
|
|
167
|
-
*
|
|
193
|
+
* The container is not connected to the service.
|
|
194
|
+
* @internal
|
|
195
|
+
*/
|
|
196
|
+
export type JoinedStatus_disconnected = "disconnected";
|
|
197
|
+
/**
|
|
198
|
+
* The container has a connection and read-only operability.
|
|
199
|
+
* @internal
|
|
200
|
+
*/
|
|
201
|
+
export type JoinedStatus_joinedForReading = "joinedForReading";
|
|
202
|
+
/**
|
|
203
|
+
* The container has a connection and write operability.
|
|
204
|
+
* @internal
|
|
205
|
+
*/
|
|
206
|
+
export type JoinedStatus_joinedForWriting = "joinedForWriting";
|
|
207
|
+
/**
|
|
208
|
+
* Joined status for container.
|
|
209
|
+
*
|
|
210
|
+
* @remarks
|
|
211
|
+
* May be:
|
|
212
|
+
* - {@link JoinedStatus_disconnected|"disconnected"}
|
|
213
|
+
* - {@link JoinedStatus_joinedForReading|"joinedForReading"}
|
|
214
|
+
* - {@link JoinedStatus_joinedForWriting|"joinedForWriting"}
|
|
168
215
|
*
|
|
169
216
|
* @internal
|
|
170
217
|
*/
|
|
171
|
-
export type JoinedStatus =
|
|
218
|
+
export type JoinedStatus = JoinedStatus_disconnected | JoinedStatus_joinedForReading | JoinedStatus_joinedForWriting;
|
|
172
219
|
/**
|
|
173
220
|
* Events emitted by the {@link ExtensionHost}.
|
|
174
221
|
*
|
|
@@ -183,7 +230,7 @@ export interface ExtensionHostEvents {
|
|
|
183
230
|
clientId: ClientConnectionId;
|
|
184
231
|
canWrite: boolean;
|
|
185
232
|
}) => void;
|
|
186
|
-
"
|
|
233
|
+
"operabilityChanged": (canWrite: boolean) => void;
|
|
187
234
|
}
|
|
188
235
|
/**
|
|
189
236
|
* Defines the runtime aspects an extension may access.
|
|
@@ -198,16 +245,13 @@ export interface ExtensionHost<TRuntimeProperties extends ExtensionRuntimeProper
|
|
|
198
245
|
/**
|
|
199
246
|
* Gets the current joined status of the container.
|
|
200
247
|
*
|
|
201
|
-
* @
|
|
202
|
-
* Returns one of three possible {@link JoinedStatus} values:
|
|
203
|
-
* - "disconnected": The container is not connected to the service
|
|
204
|
-
* - "joinedForReading": The container has a read-only connection
|
|
205
|
-
* - "joinedForWriting": The container has a write connection
|
|
248
|
+
* @returns The current {@link JoinedStatus} of the container.
|
|
206
249
|
*
|
|
250
|
+
* @remarks
|
|
207
251
|
* Status changes are signaled through :
|
|
208
252
|
* - {@link ExtensionHostEvents.disconnected}: Transitioning to Disconnected state
|
|
209
|
-
* - {@link ExtensionHostEvents.joined}: Transition to Connected state (either for reading or writing)
|
|
210
|
-
* - {@link ExtensionHostEvents.
|
|
253
|
+
* - {@link ExtensionHostEvents.joined}: Transition to CatchingUp or Connected state (either for reading or writing)
|
|
254
|
+
* - {@link ExtensionHostEvents.operabilityChanged}: When operability has changed (e.g., write to read)
|
|
211
255
|
*/
|
|
212
256
|
readonly getJoinedStatus: () => JoinedStatus;
|
|
213
257
|
readonly getClientId: () => ClientConnectionId | undefined;
|
|
@@ -228,49 +272,45 @@ export interface ExtensionHost<TRuntimeProperties extends ExtensionRuntimeProper
|
|
|
228
272
|
* Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.
|
|
229
273
|
*/
|
|
230
274
|
getQuorum: () => IQuorumClients;
|
|
275
|
+
/**
|
|
276
|
+
* The collection of all clients as enumerated by the service.
|
|
277
|
+
*
|
|
278
|
+
* @remarks This may include/exclude those found within the quorum.
|
|
279
|
+
* It produces results faster than {@link ExtensionHost.getQuorum}, but
|
|
280
|
+
* will be inaccurate if any signals are lost.
|
|
281
|
+
*/
|
|
231
282
|
getAudience: () => IAudience;
|
|
232
283
|
}
|
|
233
284
|
/**
|
|
234
285
|
* Factory method to create an extension instance.
|
|
235
286
|
*
|
|
236
287
|
* Any such method provided to {@link ContainerExtensionStore.acquireExtension}
|
|
237
|
-
* must use the same value for a given {@link ContainerExtensionId} so that an
|
|
288
|
+
* must use the same value for a given {@link @fluidframework/runtime-definitions#ContainerExtensionId} so that an
|
|
238
289
|
* `instanceof` check may be performed at runtime.
|
|
239
290
|
*
|
|
240
291
|
* @typeParam T - Type of extension to create
|
|
241
292
|
* @typeParam TRuntimeProperties - Extension runtime properties
|
|
242
293
|
* @typeParam TUseContext - Array of custom use context passed to factory or onNewUse
|
|
243
294
|
*
|
|
244
|
-
* @param host - Host runtime for extension to work against
|
|
245
|
-
* @param useContext - Custom use context for extension.
|
|
246
|
-
* @returns Record providing:
|
|
247
|
-
* `interface` instance (type `T`) that is provided to caller of
|
|
248
|
-
* {@link ContainerExtensionStore.acquireExtension} and
|
|
249
|
-
* `extension` store/runtime uses to interact with extension.
|
|
250
|
-
*
|
|
251
295
|
* @internal
|
|
252
296
|
*/
|
|
253
|
-
export
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
*
|
|
271
|
-
* @internal
|
|
272
|
-
*/
|
|
273
|
-
export type ContainerExtensionId = `${string}:${string}`;
|
|
297
|
+
export interface ContainerExtensionFactory<TInterface, TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[] = []> extends ContainerExtensionExpectations {
|
|
298
|
+
resolvePriorInstantiation(priorInstantiation: UnknownExtensionInstantiation): Readonly<ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>>;
|
|
299
|
+
/**
|
|
300
|
+
* @param host - Host runtime for extension to work against
|
|
301
|
+
* @param useContext - Custom use context for extension.
|
|
302
|
+
* @returns Record providing:
|
|
303
|
+
* `interface` instance (type `T`) that is provided to caller of
|
|
304
|
+
* {@link ContainerExtensionStore.acquireExtension} and
|
|
305
|
+
* `extension` store/runtime uses to interact with extension.
|
|
306
|
+
*/
|
|
307
|
+
instantiateExtension(host: ExtensionHost<TRuntimeProperties>, ...useContext: TUseContext): ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>;
|
|
308
|
+
/**
|
|
309
|
+
* Determines if an `ExtensionInstantiationResult` came from `instantiateExtension`.
|
|
310
|
+
* Called by the semantics of the instanceof operator.
|
|
311
|
+
*/
|
|
312
|
+
[Symbol.hasInstance]: (instance: unknown) => instance is ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>;
|
|
313
|
+
}
|
|
274
314
|
/**
|
|
275
315
|
* @sealed
|
|
276
316
|
* @internal
|
|
@@ -281,8 +321,9 @@ export interface ContainerExtensionStore {
|
|
|
281
321
|
*
|
|
282
322
|
* @param id - Identifier for the requested extension
|
|
283
323
|
* @param factory - Factory to create the extension if not found
|
|
324
|
+
* @param context - Custom use context for extension
|
|
284
325
|
* @returns The extension
|
|
285
326
|
*/
|
|
286
|
-
acquireExtension<
|
|
327
|
+
acquireExtension<TInterface, TRuntimeProperties extends ExtensionRuntimeProperties, TUseContext extends unknown[] = []>(id: ContainerExtensionId, factory: ContainerExtensionFactory<TInterface, TRuntimeProperties, TUseContext>, ...context: TUseContext): TInterface;
|
|
287
328
|
}
|
|
288
329
|
//# sourceMappingURL=containerExtension.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerExtension.d.ts","sourceRoot":"","sources":["../src/containerExtension.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"containerExtension.d.ts","sourceRoot":"","sources":["../src/containerExtension.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
export type {
|
|
5
|
+
export type { ContainerExtensionId, ExtensionCompatibilityDetails, } from "@fluidframework/runtime-definitions/internal";
|
|
6
|
+
export type { ClientConnectionId, ContainerExtensionFactory, ContainerExtensionStore, ContainerExtension, ExtensionHost, ExtensionHostEvents, ExtensionInstantiationResult, ExtensionMessage, ExtensionRuntimeProperties, InboundExtensionMessage, JoinedStatus, JoinedStatus_disconnected, JoinedStatus_joinedForReading, JoinedStatus_joinedForWriting, OutboundExtensionMessage, RawInboundExtensionMessage, UnverifiedBrand, VerifiedInboundExtensionMessage, } from "./containerExtension.js";
|
|
6
7
|
export type { IContainerRuntime, IContainerRuntimeBaseWithCombinedEvents, IContainerRuntimeEvents, IContainerRuntimeInternal, IContainerRuntimeWithResolveHandle_Deprecated, SummarizerStopReason, ISummarizeEventProps, ISummarizerObservabilityProps, ISummarizerEvents, } from "./containerRuntime.js";
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,YAAY,EACX,oBAAoB,EACpB,6BAA6B,GAC7B,MAAM,8CAA8C,CAAC;AACtD,YAAY,EACX,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,EACvB,YAAY,EACZ,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,EACf,+BAA+B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,iBAAiB,EACjB,uCAAuC,EACvC,uBAAuB,EACvB,yBAAyB,EACzB,6CAA6C,EAC7C,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,iBAAiB,GACjB,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/container-runtime-definitions",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.71.0",
|
|
4
4
|
"description": "Fluid Runtime definitions",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"main": "",
|
|
42
42
|
"types": "lib/public.d.ts",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@fluid-internal/client-utils": "2.
|
|
45
|
-
"@fluidframework/container-definitions": "2.
|
|
46
|
-
"@fluidframework/core-interfaces": "2.
|
|
47
|
-
"@fluidframework/driver-definitions": "2.
|
|
48
|
-
"@fluidframework/runtime-definitions": "2.
|
|
44
|
+
"@fluid-internal/client-utils": "~2.71.0",
|
|
45
|
+
"@fluidframework/container-definitions": "~2.71.0",
|
|
46
|
+
"@fluidframework/core-interfaces": "~2.71.0",
|
|
47
|
+
"@fluidframework/driver-definitions": "~2.71.0",
|
|
48
|
+
"@fluidframework/runtime-definitions": "~2.71.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@arethetypeswrong/cli": "^0.17.1",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"@fluid-tools/build-cli": "^0.58.3",
|
|
54
54
|
"@fluidframework/build-common": "^2.0.3",
|
|
55
55
|
"@fluidframework/build-tools": "^0.58.3",
|
|
56
|
-
"@fluidframework/container-runtime-definitions-previous": "npm:@fluidframework/container-runtime-definitions@2.
|
|
57
|
-
"@fluidframework/eslint-config-fluid": "^
|
|
56
|
+
"@fluidframework/container-runtime-definitions-previous": "npm:@fluidframework/container-runtime-definitions@2.70.0",
|
|
57
|
+
"@fluidframework/eslint-config-fluid": "^7.0.0",
|
|
58
58
|
"@microsoft/api-extractor": "7.52.11",
|
|
59
59
|
"concurrently": "^8.2.1",
|
|
60
60
|
"copyfiles": "^2.4.1",
|
|
@@ -63,14 +63,7 @@
|
|
|
63
63
|
"typescript": "~5.4.5"
|
|
64
64
|
},
|
|
65
65
|
"typeValidation": {
|
|
66
|
-
"broken": {
|
|
67
|
-
"Interface_IContainerRuntime": {
|
|
68
|
-
"backCompat": false
|
|
69
|
-
},
|
|
70
|
-
"Interface_IContainerRuntimeWithResolveHandle_Deprecated": {
|
|
71
|
-
"backCompat": false
|
|
72
|
-
}
|
|
73
|
-
},
|
|
66
|
+
"broken": {},
|
|
74
67
|
"entrypoint": "legacy"
|
|
75
68
|
},
|
|
76
69
|
"scripts": {
|
|
@@ -101,8 +94,8 @@
|
|
|
101
94
|
"ci:build:api-reports:legacy": "api-extractor run --config api-extractor/api-extractor.legacy.json",
|
|
102
95
|
"ci:build:docs": "api-extractor run",
|
|
103
96
|
"clean": "rimraf --glob dist lib {alpha,beta,internal,legacy}.d.ts \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp",
|
|
104
|
-
"eslint": "eslint --format stylish src",
|
|
105
|
-
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
97
|
+
"eslint": "eslint --quiet --format stylish src",
|
|
98
|
+
"eslint:fix": "eslint --quiet --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
106
99
|
"format": "npm run format:biome",
|
|
107
100
|
"format:biome": "biome check . --write",
|
|
108
101
|
"lint": "fluid-build . --task lint",
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
import type { ILayerCompatDetails } from "@fluid-internal/client-utils";
|
|
7
7
|
import type { IAudience } from "@fluidframework/container-definitions/internal";
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-imports -- BrandedType is a class declaration only
|
|
9
8
|
import type {
|
|
10
9
|
BrandedType,
|
|
11
10
|
InternalUtilityTypes,
|
|
@@ -17,6 +16,12 @@ import type {
|
|
|
17
16
|
TypedMessage,
|
|
18
17
|
} from "@fluidframework/core-interfaces/internal";
|
|
19
18
|
import type { IQuorumClients } from "@fluidframework/driver-definitions/internal";
|
|
19
|
+
import type {
|
|
20
|
+
ContainerExtensionId,
|
|
21
|
+
ContainerExtensionExpectations,
|
|
22
|
+
ExtensionCompatibilityDetails,
|
|
23
|
+
UnknownExtensionInstantiation,
|
|
24
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
20
25
|
|
|
21
26
|
/**
|
|
22
27
|
* While connected, the id of a client within a session.
|
|
@@ -180,6 +185,26 @@ export interface ExtensionRuntimeProperties {
|
|
|
180
185
|
SignalMessages: TypedMessage;
|
|
181
186
|
}
|
|
182
187
|
|
|
188
|
+
/**
|
|
189
|
+
* Collection of properties resulting from instantiating an extension via its
|
|
190
|
+
* factory.
|
|
191
|
+
*
|
|
192
|
+
* @remarks
|
|
193
|
+
* All of the members are mutable to allow for handling version or capability
|
|
194
|
+
* mismatches via replacement of interface or extension instances. That is the
|
|
195
|
+
* only time mutation is expected to occur.
|
|
196
|
+
*
|
|
197
|
+
* @internal
|
|
198
|
+
*/
|
|
199
|
+
export interface ExtensionInstantiationResult<
|
|
200
|
+
TInterface,
|
|
201
|
+
TRuntimeProperties extends ExtensionRuntimeProperties,
|
|
202
|
+
TUseContext extends unknown[],
|
|
203
|
+
> extends UnknownExtensionInstantiation {
|
|
204
|
+
interface: TInterface;
|
|
205
|
+
extension: ContainerExtension<TRuntimeProperties, TUseContext>;
|
|
206
|
+
}
|
|
207
|
+
|
|
183
208
|
/**
|
|
184
209
|
* Defines requirements for a component to register with container as an extension.
|
|
185
210
|
*
|
|
@@ -189,6 +214,24 @@ export interface ContainerExtension<
|
|
|
189
214
|
TRuntimeProperties extends ExtensionRuntimeProperties,
|
|
190
215
|
TUseContext extends unknown[] = [],
|
|
191
216
|
> {
|
|
217
|
+
/**
|
|
218
|
+
* Called when a new request is made for an extension with different version
|
|
219
|
+
* or capabilities than were registered for this extension instance.
|
|
220
|
+
*
|
|
221
|
+
* @typeParam TInterface - interface type of new request
|
|
222
|
+
*
|
|
223
|
+
* @param thisExistingInstantiation - registration of this extension in store
|
|
224
|
+
* @param newCompatibilityRequest - compatibility details of the new request
|
|
225
|
+
*/
|
|
226
|
+
handleVersionOrCapabilitiesMismatch<TRequestedInterface>(
|
|
227
|
+
thisExistingInstantiation: Readonly<
|
|
228
|
+
ExtensionInstantiationResult<unknown, TRuntimeProperties, TUseContext>
|
|
229
|
+
>,
|
|
230
|
+
newCompatibilityRequest: ExtensionCompatibilityDetails,
|
|
231
|
+
): Readonly<
|
|
232
|
+
ExtensionInstantiationResult<TRequestedInterface, TRuntimeProperties, TUseContext>
|
|
233
|
+
>;
|
|
234
|
+
|
|
192
235
|
/**
|
|
193
236
|
* Notifies the extension of a new use context.
|
|
194
237
|
*
|
|
@@ -216,12 +259,39 @@ export interface ContainerExtension<
|
|
|
216
259
|
) => void;
|
|
217
260
|
}
|
|
218
261
|
|
|
262
|
+
// These are exported individual types as this is a type only package and does
|
|
263
|
+
// not support enums with runtime footprint.
|
|
264
|
+
/**
|
|
265
|
+
* The container is not connected to the service.
|
|
266
|
+
* @internal
|
|
267
|
+
*/
|
|
268
|
+
export type JoinedStatus_disconnected = "disconnected";
|
|
269
|
+
/**
|
|
270
|
+
* The container has a connection and read-only operability.
|
|
271
|
+
* @internal
|
|
272
|
+
*/
|
|
273
|
+
export type JoinedStatus_joinedForReading = "joinedForReading";
|
|
274
|
+
/**
|
|
275
|
+
* The container has a connection and write operability.
|
|
276
|
+
* @internal
|
|
277
|
+
*/
|
|
278
|
+
export type JoinedStatus_joinedForWriting = "joinedForWriting";
|
|
279
|
+
|
|
219
280
|
/**
|
|
220
|
-
*
|
|
281
|
+
* Joined status for container.
|
|
282
|
+
*
|
|
283
|
+
* @remarks
|
|
284
|
+
* May be:
|
|
285
|
+
* - {@link JoinedStatus_disconnected|"disconnected"}
|
|
286
|
+
* - {@link JoinedStatus_joinedForReading|"joinedForReading"}
|
|
287
|
+
* - {@link JoinedStatus_joinedForWriting|"joinedForWriting"}
|
|
221
288
|
*
|
|
222
289
|
* @internal
|
|
223
290
|
*/
|
|
224
|
-
export type JoinedStatus =
|
|
291
|
+
export type JoinedStatus =
|
|
292
|
+
| JoinedStatus_disconnected
|
|
293
|
+
| JoinedStatus_joinedForReading
|
|
294
|
+
| JoinedStatus_joinedForWriting;
|
|
225
295
|
|
|
226
296
|
/**
|
|
227
297
|
* Events emitted by the {@link ExtensionHost}.
|
|
@@ -234,7 +304,7 @@ export type JoinedStatus = "disconnected" | "joinedForReading" | "joinedForWriti
|
|
|
234
304
|
export interface ExtensionHostEvents {
|
|
235
305
|
"disconnected": () => void;
|
|
236
306
|
"joined": (props: { clientId: ClientConnectionId; canWrite: boolean }) => void;
|
|
237
|
-
"
|
|
307
|
+
"operabilityChanged": (canWrite: boolean) => void;
|
|
238
308
|
}
|
|
239
309
|
|
|
240
310
|
/**
|
|
@@ -250,16 +320,13 @@ export interface ExtensionHost<TRuntimeProperties extends ExtensionRuntimeProper
|
|
|
250
320
|
/**
|
|
251
321
|
* Gets the current joined status of the container.
|
|
252
322
|
*
|
|
253
|
-
* @
|
|
254
|
-
* Returns one of three possible {@link JoinedStatus} values:
|
|
255
|
-
* - "disconnected": The container is not connected to the service
|
|
256
|
-
* - "joinedForReading": The container has a read-only connection
|
|
257
|
-
* - "joinedForWriting": The container has a write connection
|
|
323
|
+
* @returns The current {@link JoinedStatus} of the container.
|
|
258
324
|
*
|
|
325
|
+
* @remarks
|
|
259
326
|
* Status changes are signaled through :
|
|
260
327
|
* - {@link ExtensionHostEvents.disconnected}: Transitioning to Disconnected state
|
|
261
|
-
* - {@link ExtensionHostEvents.joined}: Transition to Connected state (either for reading or writing)
|
|
262
|
-
* - {@link ExtensionHostEvents.
|
|
328
|
+
* - {@link ExtensionHostEvents.joined}: Transition to CatchingUp or Connected state (either for reading or writing)
|
|
329
|
+
* - {@link ExtensionHostEvents.operabilityChanged}: When operability has changed (e.g., write to read)
|
|
263
330
|
*/
|
|
264
331
|
readonly getJoinedStatus: () => JoinedStatus;
|
|
265
332
|
readonly getClientId: () => ClientConnectionId | undefined;
|
|
@@ -289,6 +356,13 @@ export interface ExtensionHost<TRuntimeProperties extends ExtensionRuntimeProper
|
|
|
289
356
|
*/
|
|
290
357
|
getQuorum: () => IQuorumClients;
|
|
291
358
|
|
|
359
|
+
/**
|
|
360
|
+
* The collection of all clients as enumerated by the service.
|
|
361
|
+
*
|
|
362
|
+
* @remarks This may include/exclude those found within the quorum.
|
|
363
|
+
* It produces results faster than {@link ExtensionHost.getQuorum}, but
|
|
364
|
+
* will be inaccurate if any signals are lost.
|
|
365
|
+
*/
|
|
292
366
|
getAudience: () => IAudience;
|
|
293
367
|
}
|
|
294
368
|
|
|
@@ -296,51 +370,45 @@ export interface ExtensionHost<TRuntimeProperties extends ExtensionRuntimeProper
|
|
|
296
370
|
* Factory method to create an extension instance.
|
|
297
371
|
*
|
|
298
372
|
* Any such method provided to {@link ContainerExtensionStore.acquireExtension}
|
|
299
|
-
* must use the same value for a given {@link ContainerExtensionId} so that an
|
|
373
|
+
* must use the same value for a given {@link @fluidframework/runtime-definitions#ContainerExtensionId} so that an
|
|
300
374
|
* `instanceof` check may be performed at runtime.
|
|
301
375
|
*
|
|
302
376
|
* @typeParam T - Type of extension to create
|
|
303
377
|
* @typeParam TRuntimeProperties - Extension runtime properties
|
|
304
378
|
* @typeParam TUseContext - Array of custom use context passed to factory or onNewUse
|
|
305
379
|
*
|
|
306
|
-
* @param host - Host runtime for extension to work against
|
|
307
|
-
* @param useContext - Custom use context for extension.
|
|
308
|
-
* @returns Record providing:
|
|
309
|
-
* `interface` instance (type `T`) that is provided to caller of
|
|
310
|
-
* {@link ContainerExtensionStore.acquireExtension} and
|
|
311
|
-
* `extension` store/runtime uses to interact with extension.
|
|
312
|
-
*
|
|
313
380
|
* @internal
|
|
314
381
|
*/
|
|
315
|
-
export
|
|
316
|
-
|
|
382
|
+
export interface ContainerExtensionFactory<
|
|
383
|
+
TInterface,
|
|
317
384
|
TRuntimeProperties extends ExtensionRuntimeProperties,
|
|
318
385
|
TUseContext extends unknown[] = [],
|
|
319
|
-
>
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
)
|
|
323
|
-
readonly interface: T;
|
|
324
|
-
readonly extension: ContainerExtension<TRuntimeProperties, TUseContext>;
|
|
325
|
-
};
|
|
386
|
+
> extends ContainerExtensionExpectations {
|
|
387
|
+
resolvePriorInstantiation(
|
|
388
|
+
priorInstantiation: UnknownExtensionInstantiation,
|
|
389
|
+
): Readonly<ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>>;
|
|
326
390
|
|
|
327
|
-
/**
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
391
|
+
/**
|
|
392
|
+
* @param host - Host runtime for extension to work against
|
|
393
|
+
* @param useContext - Custom use context for extension.
|
|
394
|
+
* @returns Record providing:
|
|
395
|
+
* `interface` instance (type `T`) that is provided to caller of
|
|
396
|
+
* {@link ContainerExtensionStore.acquireExtension} and
|
|
397
|
+
* `extension` store/runtime uses to interact with extension.
|
|
398
|
+
*/
|
|
399
|
+
instantiateExtension(
|
|
400
|
+
host: ExtensionHost<TRuntimeProperties>,
|
|
401
|
+
...useContext: TUseContext
|
|
402
|
+
): ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>;
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Determines if an `ExtensionInstantiationResult` came from `instantiateExtension`.
|
|
406
|
+
* Called by the semantics of the instanceof operator.
|
|
407
|
+
*/
|
|
408
|
+
[Symbol.hasInstance]: (
|
|
409
|
+
instance: unknown,
|
|
410
|
+
) => instance is ExtensionInstantiationResult<TInterface, TRuntimeProperties, TUseContext>;
|
|
411
|
+
}
|
|
344
412
|
|
|
345
413
|
/**
|
|
346
414
|
* @sealed
|
|
@@ -352,15 +420,16 @@ export interface ContainerExtensionStore {
|
|
|
352
420
|
*
|
|
353
421
|
* @param id - Identifier for the requested extension
|
|
354
422
|
* @param factory - Factory to create the extension if not found
|
|
423
|
+
* @param context - Custom use context for extension
|
|
355
424
|
* @returns The extension
|
|
356
425
|
*/
|
|
357
426
|
acquireExtension<
|
|
358
|
-
|
|
427
|
+
TInterface,
|
|
359
428
|
TRuntimeProperties extends ExtensionRuntimeProperties,
|
|
360
429
|
TUseContext extends unknown[] = [],
|
|
361
430
|
>(
|
|
362
431
|
id: ContainerExtensionId,
|
|
363
|
-
factory: ContainerExtensionFactory<
|
|
432
|
+
factory: ContainerExtensionFactory<TInterface, TRuntimeProperties, TUseContext>,
|
|
364
433
|
...context: TUseContext
|
|
365
|
-
):
|
|
434
|
+
): TInterface;
|
|
366
435
|
}
|
package/src/index.ts
CHANGED
|
@@ -3,18 +3,28 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
// Re-export selected types from runtime-definitions internal module
|
|
7
|
+
// that are core to more complete container runtime extensions types
|
|
8
|
+
// maintained here.
|
|
9
|
+
export type {
|
|
10
|
+
ContainerExtensionId,
|
|
11
|
+
ExtensionCompatibilityDetails,
|
|
12
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
6
13
|
export type {
|
|
7
14
|
ClientConnectionId,
|
|
8
15
|
ContainerExtensionFactory,
|
|
9
|
-
ContainerExtensionId,
|
|
10
16
|
ContainerExtensionStore,
|
|
11
17
|
ContainerExtension,
|
|
12
18
|
ExtensionHost,
|
|
13
19
|
ExtensionHostEvents,
|
|
20
|
+
ExtensionInstantiationResult,
|
|
14
21
|
ExtensionMessage,
|
|
15
22
|
ExtensionRuntimeProperties,
|
|
16
23
|
InboundExtensionMessage,
|
|
17
24
|
JoinedStatus,
|
|
25
|
+
JoinedStatus_disconnected,
|
|
26
|
+
JoinedStatus_joinedForReading,
|
|
27
|
+
JoinedStatus_joinedForWriting,
|
|
18
28
|
OutboundExtensionMessage,
|
|
19
29
|
RawInboundExtensionMessage,
|
|
20
30
|
UnverifiedBrand,
|