@fluidframework/driver-definitions 2.0.0-dev.6.4.0.192049 → 2.0.0-dev.7.2.0.204906

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 CHANGED
@@ -1,5 +1,79 @@
1
1
  # @fluidframework/driver-definitions
2
2
 
3
+ ## 2.0.0-internal.7.1.0
4
+
5
+ Dependency updates only.
6
+
7
+ ## 2.0.0-internal.7.0.0
8
+
9
+ ### Major Changes
10
+
11
+ - odsp-driver: Load container in readonly mode when driver throws DriverErrorType.outOfStorage [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
12
+
13
+ Handle DriverErrorType.outOfStorage error from driver and load the container in readonly mode. Currently there is no
14
+ handling and when the join session throws this error, the container will get closed. With this we use NoDeltaStream
15
+ object as connection and load the container in read mode, so that it loads properly. We also notify the that the
16
+ container is "readonly" through the event on delta manager so that apps can listen to this and show any UX etc. The app
17
+ can listen to the event like this:
18
+
19
+ ```ts
20
+ container.deltaManager.on(
21
+ "readonly",
22
+ (readonly?: boolean, readonlyConnectionReason?: { text: string; error?: IErrorBase }) => {
23
+ // error?.errorType will be equal to DriverErrorType.outOfStorage in this case
24
+ // App logic
25
+ },
26
+ );
27
+ ```
28
+
29
+ - Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
30
+
31
+ This included the following changes from the protocol-definitions release:
32
+
33
+ - Updating signal interfaces for some planned improvements. The intention is split the interface between signals
34
+ submitted by clients to the server and the resulting signals sent from the server to clients.
35
+ - A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
36
+ been added, which will be the typing for signals sent from the client to the server. Both extend a new
37
+ ISignalMessageBase interface that contains common members.
38
+ - The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
39
+
40
+ - routerlicious-driver: remove dead blob aggregation concepts and code [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
41
+
42
+ Dead concepts blob aggregation like `aggregateBlobsSmallerThanBytes` and `minBlobSize` have been removed.
43
+
44
+ - Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
45
+
46
+ Dependencies on the following Fluid server package have been updated to version 2.0.1:
47
+
48
+ - @fluidframework/gitresources: 2.0.1
49
+ - @fluidframework/server-kafka-orderer: 2.0.1
50
+ - @fluidframework/server-lambdas: 2.0.1
51
+ - @fluidframework/server-lambdas-driver: 2.0.1
52
+ - @fluidframework/server-local-server: 2.0.1
53
+ - @fluidframework/server-memory-orderer: 2.0.1
54
+ - @fluidframework/protocol-base: 2.0.1
55
+ - @fluidframework/server-routerlicious: 2.0.1
56
+ - @fluidframework/server-routerlicious-base: 2.0.1
57
+ - @fluidframework/server-services: 2.0.1
58
+ - @fluidframework/server-services-client: 2.0.1
59
+ - @fluidframework/server-services-core: 2.0.1
60
+ - @fluidframework/server-services-ordering-kafkanode: 2.0.1
61
+ - @fluidframework/server-services-ordering-rdkafka: 2.0.1
62
+ - @fluidframework/server-services-ordering-zookeeper: 2.0.1
63
+ - @fluidframework/server-services-shared: 2.0.1
64
+ - @fluidframework/server-services-telemetry: 2.0.1
65
+ - @fluidframework/server-services-utils: 2.0.1
66
+ - @fluidframework/server-test-utils: 2.0.1
67
+ - tinylicious: 2.0.1
68
+
69
+ - Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
70
+
71
+ The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
72
+
73
+ ## 2.0.0-internal.6.4.0
74
+
75
+ Dependency updates only.
76
+
3
77
  ## 2.0.0-internal.6.3.0
4
78
 
5
79
  ### Minor Changes
@@ -1,4 +1,12 @@
1
1
  {
2
2
  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "@fluidframework/build-common/api-extractor-common-strict.json"
3
+ "extends": "@fluidframework/build-common/api-extractor-base.json",
4
+ "messages": {
5
+ "extractorMessageReporting": {
6
+ "ae-missing-release-tag": {
7
+ // TODO: Fix violations and remove this rule override
8
+ "logLevel": "none"
9
+ }
10
+ }
11
+ }
4
12
  }
@@ -0,0 +1,320 @@
1
+ ## API Report File for "@fluidframework/driver-definitions"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ import { ConnectionMode } from '@fluidframework/protocol-definitions';
8
+ import { IClient } from '@fluidframework/protocol-definitions';
9
+ import { IClientConfiguration } from '@fluidframework/protocol-definitions';
10
+ import { ICreateBlobResponse } from '@fluidframework/protocol-definitions';
11
+ import { IDisposable } from '@fluidframework/core-interfaces';
12
+ import { IDocumentMessage } from '@fluidframework/protocol-definitions';
13
+ import { IErrorEvent } from '@fluidframework/core-interfaces';
14
+ import { IEventProvider } from '@fluidframework/core-interfaces';
15
+ import { INack } from '@fluidframework/protocol-definitions';
16
+ import { IRequest } from '@fluidframework/core-interfaces';
17
+ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
18
+ import { ISignalClient } from '@fluidframework/protocol-definitions';
19
+ import { ISignalMessage } from '@fluidframework/protocol-definitions';
20
+ import { ISnapshotTree } from '@fluidframework/protocol-definitions';
21
+ import { ISummaryHandle } from '@fluidframework/protocol-definitions';
22
+ import { ISummaryTree } from '@fluidframework/protocol-definitions';
23
+ import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
24
+ import { ITokenClaims } from '@fluidframework/protocol-definitions';
25
+ import { IVersion } from '@fluidframework/protocol-definitions';
26
+
27
+ // @public (undocumented)
28
+ export type DriverError = IThrottlingWarning | IGenericNetworkError | IAuthorizationError | ILocationRedirectionError | IDriverBasicError;
29
+
30
+ // @public @deprecated
31
+ export enum DriverErrorType {
32
+ authorizationError = "authorizationError",
33
+ deltaStreamConnectionForbidden = "deltaStreamConnectionForbidden",
34
+ fetchFailure = "fetchFailure",
35
+ fetchTokenError = "fetchTokenError",
36
+ fileIsLocked = "fileIsLocked",
37
+ fileNotFoundOrAccessDeniedError = "fileNotFoundOrAccessDeniedError",
38
+ fileOverwrittenInStorage = "fileOverwrittenInStorage",
39
+ fluidInvalidSchema = "fluidInvalidSchema",
40
+ genericError = "genericError",
41
+ genericNetworkError = "genericNetworkError",
42
+ incorrectServerResponse = "incorrectServerResponse",
43
+ locationRedirection = "locationRedirection",
44
+ offlineError = "offlineError",
45
+ outOfStorageError = "outOfStorageError",
46
+ throttlingError = "throttlingError",
47
+ // (undocumented)
48
+ unsupportedClientProtocolVersion = "unsupportedClientProtocolVersion",
49
+ usageError = "usageError",
50
+ writeError = "writeError"
51
+ }
52
+
53
+ // @public
54
+ export const DriverErrorTypes: {
55
+ readonly genericNetworkError: "genericNetworkError";
56
+ readonly authorizationError: "authorizationError";
57
+ readonly fileNotFoundOrAccessDeniedError: "fileNotFoundOrAccessDeniedError";
58
+ readonly offlineError: "offlineError";
59
+ readonly unsupportedClientProtocolVersion: "unsupportedClientProtocolVersion";
60
+ readonly writeError: "writeError";
61
+ readonly fetchFailure: "fetchFailure";
62
+ readonly fetchTokenError: "fetchTokenError";
63
+ readonly incorrectServerResponse: "incorrectServerResponse";
64
+ readonly fileOverwrittenInStorage: "fileOverwrittenInStorage";
65
+ readonly deltaStreamConnectionForbidden: "deltaStreamConnectionForbidden";
66
+ readonly locationRedirection: "locationRedirection";
67
+ readonly fluidInvalidSchema: "fluidInvalidSchema";
68
+ readonly fileIsLocked: "fileIsLocked";
69
+ readonly outOfStorageError: "outOfStorageError";
70
+ readonly genericError: "genericError";
71
+ readonly throttlingError: "throttlingError";
72
+ readonly usageError: "usageError";
73
+ };
74
+
75
+ // @public (undocumented)
76
+ export type DriverErrorTypes = (typeof DriverErrorTypes)[keyof typeof DriverErrorTypes];
77
+
78
+ // @public
79
+ export enum DriverHeader {
80
+ // (undocumented)
81
+ createNew = "createNew",
82
+ // (undocumented)
83
+ summarizingClient = "fluid-client-summarizer"
84
+ }
85
+
86
+ // @public
87
+ export interface DriverPreCheckInfo {
88
+ codeDetailsHint?: string;
89
+ criticalBootDomains?: string[];
90
+ }
91
+
92
+ // @public (undocumented)
93
+ export enum FetchSource {
94
+ // (undocumented)
95
+ default = "default",
96
+ // (undocumented)
97
+ noCache = "noCache"
98
+ }
99
+
100
+ // @public (undocumented)
101
+ export type FiveDaysMs = 432000000;
102
+
103
+ // @public
104
+ export interface IAnyDriverError extends Omit<IDriverErrorBase, "errorType"> {
105
+ // (undocumented)
106
+ readonly errorType: string;
107
+ }
108
+
109
+ // @public (undocumented)
110
+ export interface IAuthorizationError extends IDriverErrorBase {
111
+ // (undocumented)
112
+ readonly claims?: string;
113
+ // (undocumented)
114
+ readonly errorType: DriverErrorType.authorizationError;
115
+ // (undocumented)
116
+ readonly tenantId?: string;
117
+ }
118
+
119
+ // @public
120
+ export interface IContainerPackageInfo {
121
+ name: string;
122
+ }
123
+
124
+ // @public (undocumented)
125
+ export interface IDeltasFetchResult {
126
+ messages: ISequencedDocumentMessage[];
127
+ partialResult: boolean;
128
+ }
129
+
130
+ // @public
131
+ export interface IDeltaStorageService {
132
+ get(tenantId: string, id: string, from: number, // inclusive
133
+ to: number, // exclusive
134
+ fetchReason?: string): Promise<IDeltasFetchResult>;
135
+ }
136
+
137
+ // @public (undocumented)
138
+ export interface IDocumentDeltaConnection extends IDisposable, IEventProvider<IDocumentDeltaConnectionEvents> {
139
+ checkpointSequenceNumber?: number;
140
+ claims: ITokenClaims;
141
+ clientId: string;
142
+ existing: boolean;
143
+ initialClients: ISignalClient[];
144
+ initialMessages: ISequencedDocumentMessage[];
145
+ initialSignals: ISignalMessage[];
146
+ mode: ConnectionMode;
147
+ relayServiceAgent?: string;
148
+ serviceConfiguration: IClientConfiguration;
149
+ submit(messages: IDocumentMessage[]): void;
150
+ submitSignal(message: any): void;
151
+ version: string;
152
+ }
153
+
154
+ // @public (undocumented)
155
+ export interface IDocumentDeltaConnectionEvents extends IErrorEvent {
156
+ // (undocumented)
157
+ (event: "nack", listener: (documentId: string, message: INack[]) => void): any;
158
+ // (undocumented)
159
+ (event: "disconnect", listener: (reason: IAnyDriverError) => void): any;
160
+ // (undocumented)
161
+ (event: "op", listener: (documentId: string, messages: ISequencedDocumentMessage[]) => void): any;
162
+ // (undocumented)
163
+ (event: "signal", listener: (message: ISignalMessage | ISignalMessage[]) => void): any;
164
+ // (undocumented)
165
+ (event: "pong", listener: (latency: number) => void): any;
166
+ // (undocumented)
167
+ (event: "error", listener: (error: any) => void): any;
168
+ }
169
+
170
+ // @public
171
+ export interface IDocumentDeltaStorageService {
172
+ fetchMessages(from: number, to: number | undefined, abortSignal?: AbortSignal, cachedOnly?: boolean, fetchReason?: string): IStream<ISequencedDocumentMessage[]>;
173
+ }
174
+
175
+ // @public (undocumented)
176
+ export interface IDocumentService {
177
+ connectToDeltaStorage(): Promise<IDocumentDeltaStorageService>;
178
+ connectToDeltaStream(client: IClient): Promise<IDocumentDeltaConnection>;
179
+ connectToStorage(): Promise<IDocumentStorageService>;
180
+ dispose(error?: any): void;
181
+ policies?: IDocumentServicePolicies;
182
+ // (undocumented)
183
+ resolvedUrl: IResolvedUrl;
184
+ }
185
+
186
+ // @public (undocumented)
187
+ export interface IDocumentServiceFactory {
188
+ createContainer(createNewSummary: ISummaryTree | undefined, createNewResolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
189
+ createDocumentService(resolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger, clientIsSummarizer?: boolean): Promise<IDocumentService>;
190
+ }
191
+
192
+ // @public (undocumented)
193
+ export interface IDocumentServicePolicies {
194
+ readonly storageOnly?: boolean;
195
+ readonly summarizeProtocolTree?: boolean;
196
+ }
197
+
198
+ // @public
199
+ export interface IDocumentStorageService extends Partial<IDisposable> {
200
+ createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse>;
201
+ downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree>;
202
+ getSnapshotTree(version?: IVersion, scenarioName?: string): Promise<ISnapshotTree | null>;
203
+ getVersions(versionId: string | null, count: number, scenarioName?: string, fetchSource?: FetchSource): Promise<IVersion[]>;
204
+ readonly policies?: IDocumentStorageServicePolicies;
205
+ readBlob(id: string): Promise<ArrayBufferLike>;
206
+ // (undocumented)
207
+ repositoryUrl: string;
208
+ uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string>;
209
+ }
210
+
211
+ // @public
212
+ export interface IDocumentStorageServicePolicies {
213
+ readonly caching?: LoaderCachingPolicy;
214
+ readonly maximumCacheDurationMs?: FiveDaysMs;
215
+ }
216
+
217
+ // @public
218
+ export interface IDriverBasicError extends IDriverErrorBase {
219
+ // (undocumented)
220
+ readonly errorType: DriverErrorType.genericError | DriverErrorType.fileNotFoundOrAccessDeniedError | DriverErrorType.offlineError | DriverErrorType.unsupportedClientProtocolVersion | DriverErrorType.writeError | DriverErrorType.fetchFailure | DriverErrorType.fetchTokenError | DriverErrorType.incorrectServerResponse | DriverErrorType.fileOverwrittenInStorage | DriverErrorType.fluidInvalidSchema | DriverErrorType.usageError | DriverErrorType.fileIsLocked | DriverErrorType.outOfStorageError;
221
+ // (undocumented)
222
+ readonly statusCode?: number;
223
+ }
224
+
225
+ // @public
226
+ export interface IDriverErrorBase {
227
+ canRetry: boolean;
228
+ endpointReached?: boolean;
229
+ readonly errorType: DriverErrorType;
230
+ readonly message: string;
231
+ online?: string;
232
+ }
233
+
234
+ // @public (undocumented)
235
+ export interface IDriverHeader {
236
+ // (undocumented)
237
+ [DriverHeader.summarizingClient]: boolean;
238
+ // (undocumented)
239
+ [DriverHeader.createNew]: any;
240
+ }
241
+
242
+ // @public (undocumented)
243
+ export interface IGenericNetworkError extends IDriverErrorBase {
244
+ // (undocumented)
245
+ readonly errorType: DriverErrorType.genericNetworkError;
246
+ // (undocumented)
247
+ readonly statusCode?: number;
248
+ }
249
+
250
+ // @public (undocumented)
251
+ export interface ILocationRedirectionError extends IDriverErrorBase {
252
+ // (undocumented)
253
+ readonly errorType: DriverErrorType.locationRedirection;
254
+ // (undocumented)
255
+ readonly redirectUrl: IResolvedUrl;
256
+ }
257
+
258
+ // @public (undocumented)
259
+ export interface IResolvedUrl {
260
+ // (undocumented)
261
+ endpoints: {
262
+ [name: string]: string;
263
+ };
264
+ id: string;
265
+ // (undocumented)
266
+ tokens: {
267
+ [name: string]: string;
268
+ };
269
+ // (undocumented)
270
+ type: "fluid";
271
+ // (undocumented)
272
+ url: string;
273
+ }
274
+
275
+ // @public
276
+ export interface IStream<T> {
277
+ // (undocumented)
278
+ read(): Promise<IStreamResult<T>>;
279
+ }
280
+
281
+ // @public (undocumented)
282
+ export type IStreamResult<T> = {
283
+ done: true;
284
+ } | {
285
+ done: false;
286
+ value: T;
287
+ };
288
+
289
+ // @public
290
+ export interface ISummaryContext {
291
+ readonly ackHandle: string | undefined;
292
+ readonly proposalHandle: string | undefined;
293
+ // (undocumented)
294
+ readonly referenceSequenceNumber: number;
295
+ }
296
+
297
+ // @public (undocumented)
298
+ export interface IThrottlingWarning extends IDriverErrorBase {
299
+ // (undocumented)
300
+ readonly errorType: DriverErrorType.throttlingError;
301
+ // (undocumented)
302
+ readonly retryAfterSeconds: number;
303
+ }
304
+
305
+ // @public (undocumented)
306
+ export interface IUrlResolver {
307
+ getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string, packageInfoSource?: IContainerPackageInfo): Promise<string>;
308
+ // (undocumented)
309
+ resolve(request: IRequest): Promise<IResolvedUrl | undefined>;
310
+ }
311
+
312
+ // @public (undocumented)
313
+ export enum LoaderCachingPolicy {
314
+ NoCaching = 0,
315
+ Prefetch = 1
316
+ }
317
+
318
+ // (No @packageDocumentation comment for this package)
319
+
320
+ ```