@fluidframework/driver-utils 2.0.0-dev.6.4.0.191515 → 2.0.0-dev.7.2.0.203917

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 (83) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/api-extractor.json +12 -1
  3. package/api-report/driver-utils.api.md +393 -0
  4. package/dist/adapters/compression/compressionTypes.js +1 -1
  5. package/dist/adapters/compression/compressionTypes.js.map +1 -1
  6. package/dist/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -1
  7. package/dist/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
  8. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -1
  9. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -9
  10. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
  11. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  12. package/dist/blob.d.ts.map +1 -1
  13. package/dist/blob.js.map +1 -1
  14. package/dist/documentStorageServiceProxy.js +3 -3
  15. package/dist/documentStorageServiceProxy.js.map +1 -1
  16. package/dist/driver-utils-alpha.d.ts +467 -0
  17. package/dist/driver-utils-beta.d.ts +467 -0
  18. package/dist/driver-utils-public.d.ts +467 -0
  19. package/dist/driver-utils-untrimmed.d.ts +481 -0
  20. package/dist/insecureUrlResolver.js +1 -1
  21. package/dist/insecureUrlResolver.js.map +1 -1
  22. package/dist/messageRecognition.js +1 -1
  23. package/dist/messageRecognition.js.map +1 -1
  24. package/dist/network.d.ts +1 -1
  25. package/dist/network.d.ts.map +1 -1
  26. package/dist/network.js +1 -1
  27. package/dist/network.js.map +1 -1
  28. package/dist/packageVersion.d.ts +1 -1
  29. package/dist/packageVersion.js +1 -1
  30. package/dist/packageVersion.js.map +1 -1
  31. package/dist/parallelRequests.d.ts.map +1 -1
  32. package/dist/parallelRequests.js +6 -6
  33. package/dist/parallelRequests.js.map +1 -1
  34. package/dist/prefetchDocumentStorageService.d.ts +0 -1
  35. package/dist/prefetchDocumentStorageService.d.ts.map +1 -1
  36. package/dist/runWithRetry.d.ts.map +1 -1
  37. package/dist/runWithRetry.js +0 -2
  38. package/dist/runWithRetry.js.map +1 -1
  39. package/dist/summaryForCreateNew.d.ts +1 -1
  40. package/dist/summaryForCreateNew.d.ts.map +1 -1
  41. package/dist/summaryForCreateNew.js +2 -2
  42. package/dist/summaryForCreateNew.js.map +1 -1
  43. package/dist/tsdoc-metadata.json +1 -1
  44. package/lib/adapters/compression/documentServiceCompressionAdapter.d.ts.map +1 -1
  45. package/lib/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
  46. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -1
  47. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -9
  48. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
  49. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  50. package/lib/blob.d.ts.map +1 -1
  51. package/lib/blob.js.map +1 -1
  52. package/lib/documentStorageServiceProxy.js +3 -3
  53. package/lib/documentStorageServiceProxy.js.map +1 -1
  54. package/lib/insecureUrlResolver.js +1 -1
  55. package/lib/insecureUrlResolver.js.map +1 -1
  56. package/lib/network.d.ts +1 -1
  57. package/lib/network.d.ts.map +1 -1
  58. package/lib/network.js.map +1 -1
  59. package/lib/packageVersion.d.ts +1 -1
  60. package/lib/packageVersion.js +1 -1
  61. package/lib/packageVersion.js.map +1 -1
  62. package/lib/parallelRequests.d.ts.map +1 -1
  63. package/lib/parallelRequests.js +6 -6
  64. package/lib/parallelRequests.js.map +1 -1
  65. package/lib/prefetchDocumentStorageService.d.ts +0 -1
  66. package/lib/prefetchDocumentStorageService.d.ts.map +1 -1
  67. package/lib/runWithRetry.d.ts.map +1 -1
  68. package/lib/runWithRetry.js +0 -2
  69. package/lib/runWithRetry.js.map +1 -1
  70. package/lib/summaryForCreateNew.d.ts +1 -1
  71. package/lib/summaryForCreateNew.d.ts.map +1 -1
  72. package/lib/summaryForCreateNew.js +2 -2
  73. package/lib/summaryForCreateNew.js.map +1 -1
  74. package/package.json +21 -22
  75. package/src/adapters/compression/documentServiceCompressionAdapter.ts +4 -1
  76. package/src/adapters/compression/documentServiceFactoryCompressionAdapter.ts +1 -9
  77. package/src/blob.ts +8 -2
  78. package/src/insecureUrlResolver.ts +1 -1
  79. package/src/network.ts +15 -3
  80. package/src/packageVersion.ts +1 -1
  81. package/src/parallelRequests.ts +1 -1
  82. package/src/runWithRetry.ts +2 -4
  83. package/src/summaryForCreateNew.ts +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,75 @@
1
1
  # @fluidframework/driver-utils
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
+ - Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
41
+
42
+ Dependencies on the following Fluid server package have been updated to version 2.0.1:
43
+
44
+ - @fluidframework/gitresources: 2.0.1
45
+ - @fluidframework/server-kafka-orderer: 2.0.1
46
+ - @fluidframework/server-lambdas: 2.0.1
47
+ - @fluidframework/server-lambdas-driver: 2.0.1
48
+ - @fluidframework/server-local-server: 2.0.1
49
+ - @fluidframework/server-memory-orderer: 2.0.1
50
+ - @fluidframework/protocol-base: 2.0.1
51
+ - @fluidframework/server-routerlicious: 2.0.1
52
+ - @fluidframework/server-routerlicious-base: 2.0.1
53
+ - @fluidframework/server-services: 2.0.1
54
+ - @fluidframework/server-services-client: 2.0.1
55
+ - @fluidframework/server-services-core: 2.0.1
56
+ - @fluidframework/server-services-ordering-kafkanode: 2.0.1
57
+ - @fluidframework/server-services-ordering-rdkafka: 2.0.1
58
+ - @fluidframework/server-services-ordering-zookeeper: 2.0.1
59
+ - @fluidframework/server-services-shared: 2.0.1
60
+ - @fluidframework/server-services-telemetry: 2.0.1
61
+ - @fluidframework/server-services-utils: 2.0.1
62
+ - @fluidframework/server-test-utils: 2.0.1
63
+ - tinylicious: 2.0.1
64
+
65
+ - Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
66
+
67
+ The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
68
+
69
+ ## 2.0.0-internal.6.4.0
70
+
71
+ Dependency updates only.
72
+
3
73
  ## 2.0.0-internal.6.3.0
4
74
 
5
75
  Dependency updates only.
@@ -1,4 +1,15 @@
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-report.json"
3
+ "extends": "@fluidframework/build-common/api-extractor-base.json",
4
+ "messages": {
5
+ // TODO: Fix violations and remove this rule override
6
+ "extractorMessageReporting": {
7
+ "ae-missing-release-tag": {
8
+ "logLevel": "none"
9
+ },
10
+ "ae-forgotten-export": {
11
+ "logLevel": "none"
12
+ }
13
+ }
14
+ }
4
15
  }
@@ -0,0 +1,393 @@
1
+ ## API Report File for "@fluidframework/driver-utils"
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 { FetchSource } from '@fluidframework/driver-definitions';
8
+ import { IAttachment } from '@fluidframework/protocol-definitions';
9
+ import { IAuthorizationError } from '@fluidframework/driver-definitions';
10
+ import { IBlob } from '@fluidframework/protocol-definitions';
11
+ import { ICommittedProposal } from '@fluidframework/protocol-definitions';
12
+ import { ICreateBlobResponse } from '@fluidframework/protocol-definitions';
13
+ import { IDeltasFetchResult } from '@fluidframework/driver-definitions';
14
+ import { IDocumentAttributes } from '@fluidframework/protocol-definitions';
15
+ import { IDocumentMessage } from '@fluidframework/protocol-definitions';
16
+ import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
17
+ import { IDocumentStorageService } from '@fluidframework/driver-definitions';
18
+ import { IDocumentStorageServicePolicies } from '@fluidframework/driver-definitions';
19
+ import { IDriverErrorBase } from '@fluidframework/driver-definitions';
20
+ import { IFluidErrorBase } from '@fluidframework/telemetry-utils';
21
+ import { ILocationRedirectionError } from '@fluidframework/driver-definitions';
22
+ import { IRequest } from '@fluidframework/core-interfaces';
23
+ import { IResolvedUrl } from '@fluidframework/driver-definitions';
24
+ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
25
+ import { ISnapshotTree } from '@fluidframework/protocol-definitions';
26
+ import { IStream } from '@fluidframework/driver-definitions';
27
+ import { IStreamResult } from '@fluidframework/driver-definitions';
28
+ import { ISummaryContext } from '@fluidframework/driver-definitions';
29
+ import { ISummaryHandle } from '@fluidframework/protocol-definitions';
30
+ import { ISummaryTree } from '@fluidframework/protocol-definitions';
31
+ import { ITelemetryErrorEvent } from '@fluidframework/core-interfaces';
32
+ import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
33
+ import { ITelemetryProperties } from '@fluidframework/core-interfaces';
34
+ import { IThrottlingWarning } from '@fluidframework/driver-definitions';
35
+ import { ITree } from '@fluidframework/protocol-definitions';
36
+ import { ITreeEntry } from '@fluidframework/protocol-definitions';
37
+ import { IUrlResolver } from '@fluidframework/driver-definitions';
38
+ import { IVersion } from '@fluidframework/protocol-definitions';
39
+ import { LoaderCachingPolicy } from '@fluidframework/driver-definitions';
40
+ import { LoggingError } from '@fluidframework/telemetry-utils';
41
+
42
+ // @public
43
+ export function applyStorageCompression(documentServiceFactory: IDocumentServiceFactory, config?: ICompressionStorageConfig | boolean): IDocumentServiceFactory;
44
+
45
+ // @public
46
+ export class AttachmentTreeEntry {
47
+ constructor(path: string, id: string);
48
+ // (undocumented)
49
+ readonly id: string;
50
+ // (undocumented)
51
+ readonly mode = FileMode.File;
52
+ // (undocumented)
53
+ readonly path: string;
54
+ // (undocumented)
55
+ readonly type = TreeEntry.Attachment;
56
+ // (undocumented)
57
+ readonly value: IAttachment;
58
+ }
59
+
60
+ // @public (undocumented)
61
+ export class AuthorizationError extends LoggingError implements IAuthorizationError, IFluidErrorBase {
62
+ constructor(message: string, claims: string | undefined, tenantId: string | undefined, props: DriverErrorTelemetryProps);
63
+ // (undocumented)
64
+ readonly canRetry = false;
65
+ // (undocumented)
66
+ readonly claims: string | undefined;
67
+ // (undocumented)
68
+ readonly errorType = DriverErrorType.authorizationError;
69
+ // (undocumented)
70
+ readonly tenantId: string | undefined;
71
+ }
72
+
73
+ // @public (undocumented)
74
+ export const blobHeadersBlobName = ".metadata.blobHeaders";
75
+
76
+ // @public
77
+ export class BlobTreeEntry {
78
+ constructor(path: string, contents: string, encoding?: "utf-8" | "base64");
79
+ // (undocumented)
80
+ readonly mode = FileMode.File;
81
+ // (undocumented)
82
+ readonly path: string;
83
+ // (undocumented)
84
+ readonly type = TreeEntry.Blob;
85
+ // (undocumented)
86
+ readonly value: IBlob;
87
+ }
88
+
89
+ // @public
90
+ export function buildSnapshotTree(entries: ITreeEntry[], blobMap: Map<string, ArrayBufferLike>): ISnapshotTree;
91
+
92
+ // @public
93
+ export function calculateMaxWaitTime(error: unknown): number;
94
+
95
+ // @public (undocumented)
96
+ export function canBeCoalescedByService(message: ISequencedDocumentMessage | IDocumentMessage): boolean;
97
+
98
+ // @public
99
+ export const canRetryOnError: (error: any) => boolean;
100
+
101
+ // @internal
102
+ export interface CombinedAppAndProtocolSummary extends ISummaryTree {
103
+ // (undocumented)
104
+ tree: {
105
+ [".app"]: ISummaryTree;
106
+ [".protocol"]: ISummaryTree;
107
+ };
108
+ }
109
+
110
+ // @public
111
+ export function convertSummaryTreeToSnapshotITree(summaryTree: ISummaryTree): ITree;
112
+
113
+ // @public (undocumented)
114
+ export function createGenericNetworkError(message: string, retryInfo: {
115
+ canRetry: boolean;
116
+ retryAfterMs?: number;
117
+ }, props: DriverErrorTelemetryProps): ThrottlingError | GenericNetworkError;
118
+
119
+ // @public (undocumented)
120
+ export const createWriteError: (message: string, props: DriverErrorTelemetryProps) => NonRetryableError<"writeError">;
121
+
122
+ // @public (undocumented)
123
+ export class DeltaStreamConnectionForbiddenError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
124
+ constructor(message: string, props: DriverErrorTelemetryProps, storageOnlyReason?: string);
125
+ // (undocumented)
126
+ readonly canRetry = false;
127
+ // (undocumented)
128
+ static readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;
129
+ // (undocumented)
130
+ readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;
131
+ // (undocumented)
132
+ readonly storageOnlyReason: string | undefined;
133
+ }
134
+
135
+ // @public (undocumented)
136
+ export class DocumentStorageServiceProxy implements IDocumentStorageService {
137
+ constructor(internalStorageService: IDocumentStorageService);
138
+ // (undocumented)
139
+ createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse>;
140
+ // (undocumented)
141
+ downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree>;
142
+ // (undocumented)
143
+ getSnapshotTree(version?: IVersion, scenarioName?: string): Promise<ISnapshotTree | null>;
144
+ // (undocumented)
145
+ getVersions(versionId: string | null, count: number, scenarioName?: string, fetchSource?: FetchSource): Promise<IVersion[]>;
146
+ // (undocumented)
147
+ protected readonly internalStorageService: IDocumentStorageService;
148
+ set policies(policies: IDocumentStorageServicePolicies | undefined);
149
+ // (undocumented)
150
+ get policies(): IDocumentStorageServicePolicies | undefined;
151
+ // (undocumented)
152
+ readBlob(blobId: string): Promise<ArrayBufferLike>;
153
+ // (undocumented)
154
+ get repositoryUrl(): string;
155
+ // (undocumented)
156
+ uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string>;
157
+ }
158
+
159
+ // @public
160
+ export type DriverErrorTelemetryProps = ITelemetryProperties & {
161
+ driverVersion: string | undefined;
162
+ };
163
+
164
+ // @public (undocumented)
165
+ export const emptyMessageStream: IStream<ISequencedDocumentMessage[]>;
166
+
167
+ // @public
168
+ export class FluidInvalidSchemaError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
169
+ constructor(message: string, props: DriverErrorTelemetryProps);
170
+ // (undocumented)
171
+ readonly canRetry = false;
172
+ // (undocumented)
173
+ readonly errorType = DriverErrorType.fluidInvalidSchema;
174
+ }
175
+
176
+ // @public
177
+ export class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
178
+ constructor(message: string, canRetry: boolean, props: DriverErrorTelemetryProps);
179
+ // (undocumented)
180
+ readonly canRetry: boolean;
181
+ // (undocumented)
182
+ readonly errorType = DriverErrorType.genericNetworkError;
183
+ }
184
+
185
+ // @public
186
+ export function getDocAttributesFromProtocolSummary(protocolSummary: ISummaryTree): IDocumentAttributes;
187
+
188
+ // @public
189
+ export function getQuorumValuesFromProtocolSummary(protocolSummary: ISummaryTree): [string, ICommittedProposal][];
190
+
191
+ // @public
192
+ export const getRetryDelayFromError: (error: any) => number | undefined;
193
+
194
+ // @public
195
+ export const getRetryDelaySecondsFromError: (error: any) => number | undefined;
196
+
197
+ // @public (undocumented)
198
+ export interface ICompressionStorageConfig {
199
+ // (undocumented)
200
+ algorithm: SummaryCompressionAlgorithm;
201
+ // (undocumented)
202
+ minSizeToCompress: number;
203
+ }
204
+
205
+ // @public
206
+ export class InsecureUrlResolver implements IUrlResolver {
207
+ constructor(hostUrl: string, ordererUrl: string, storageUrl: string, tenantId: string, bearer: string, isForNodeTest?: boolean);
208
+ // (undocumented)
209
+ createCreateNewRequest(fileName?: string): IRequest;
210
+ // (undocumented)
211
+ getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string): Promise<string>;
212
+ // (undocumented)
213
+ resolve(request: IRequest): Promise<IResolvedUrl | undefined>;
214
+ }
215
+
216
+ // @public
217
+ export interface IProgress {
218
+ cancel?: AbortSignal;
219
+ onRetry?(delayInMs: number, error: any): void;
220
+ }
221
+
222
+ // @internal
223
+ export function isCombinedAppAndProtocolSummary(summary: ISummaryTree | undefined, ...optionalRootTrees: string[]): summary is CombinedAppAndProtocolSummary;
224
+
225
+ // @public (undocumented)
226
+ export function isOnline(): OnlineStatus;
227
+
228
+ // @public
229
+ export function isRuntimeMessage(message: {
230
+ type: string;
231
+ }): boolean;
232
+
233
+ // @public (undocumented)
234
+ export class LocationRedirectionError extends LoggingError implements ILocationRedirectionError, IFluidErrorBase {
235
+ constructor(message: string, redirectUrl: IResolvedUrl, props: DriverErrorTelemetryProps);
236
+ // (undocumented)
237
+ readonly canRetry = false;
238
+ // (undocumented)
239
+ readonly errorType = DriverErrorType.locationRedirection;
240
+ // (undocumented)
241
+ readonly redirectUrl: IResolvedUrl;
242
+ }
243
+
244
+ // @public (undocumented)
245
+ export function logNetworkFailure(logger: ITelemetryLoggerExt, event: ITelemetryErrorEvent, error?: any): void;
246
+
247
+ // @public (undocumented)
248
+ export enum MessageType2 {
249
+ // (undocumented)
250
+ Accept = "accept"
251
+ }
252
+
253
+ // @public (undocumented)
254
+ export class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {
255
+ constructor(message: string, errorType: T, canRetry: boolean, props: DriverErrorTelemetryProps);
256
+ // (undocumented)
257
+ readonly canRetry: boolean;
258
+ // (undocumented)
259
+ readonly errorType: T;
260
+ }
261
+
262
+ // @public (undocumented)
263
+ export class NonRetryableError<T extends string> extends NetworkErrorBasic<T> {
264
+ constructor(message: string, errorType: T, props: DriverErrorTelemetryProps);
265
+ // (undocumented)
266
+ readonly errorType: T;
267
+ }
268
+
269
+ // @public (undocumented)
270
+ export enum OnlineStatus {
271
+ // (undocumented)
272
+ Offline = 0,
273
+ // (undocumented)
274
+ Online = 1,
275
+ // (undocumented)
276
+ Unknown = 2
277
+ }
278
+
279
+ // @public
280
+ export class ParallelRequests<T> {
281
+ constructor(from: number, to: number | undefined, payloadSize: number, logger: ITelemetryLoggerExt, requestCallback: (request: number, from: number, to: number, strongTo: boolean, props: ITelemetryProperties) => Promise<{
282
+ partial: boolean;
283
+ cancel: boolean;
284
+ payload: T[];
285
+ }>, responseCallback: (payload: T[]) => void);
286
+ // (undocumented)
287
+ cancel(): void;
288
+ // (undocumented)
289
+ get canceled(): boolean;
290
+ // (undocumented)
291
+ run(concurrency: number): Promise<void>;
292
+ }
293
+
294
+ // @public (undocumented)
295
+ export class PrefetchDocumentStorageService extends DocumentStorageServiceProxy {
296
+ // (undocumented)
297
+ getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
298
+ // (undocumented)
299
+ get policies(): {
300
+ caching: LoaderCachingPolicy;
301
+ maximumCacheDurationMs?: 432000000 | undefined;
302
+ } | undefined;
303
+ // (undocumented)
304
+ readBlob(blobId: string): Promise<ArrayBufferLike>;
305
+ // (undocumented)
306
+ stopPrefetch(): void;
307
+ }
308
+
309
+ // @public
310
+ export class Queue<T> implements IStream<T> {
311
+ // (undocumented)
312
+ protected pushCore(value: Promise<IStreamResult<T>>): void;
313
+ // (undocumented)
314
+ pushDone(): void;
315
+ // (undocumented)
316
+ pushError(error: any): void;
317
+ // (undocumented)
318
+ pushValue(value: T): void;
319
+ // (undocumented)
320
+ read(): Promise<IStreamResult<T>>;
321
+ }
322
+
323
+ // @public (undocumented)
324
+ export class RateLimiter {
325
+ constructor(maxRequests: number);
326
+ // (undocumented)
327
+ protected acquire(): Promise<void>;
328
+ // (undocumented)
329
+ protected readonly release: () => void;
330
+ // (undocumented)
331
+ schedule<T>(work: () => Promise<T>): Promise<T>;
332
+ // (undocumented)
333
+ get waitQueueLength(): number;
334
+ }
335
+
336
+ // @public
337
+ export function readAndParse<T>(storage: Pick<IDocumentStorageService, "readBlob">, id: string): Promise<T>;
338
+
339
+ // @public
340
+ export function requestOps(get: (from: number, to: number, telemetryProps: ITelemetryProperties) => Promise<IDeltasFetchResult>, concurrency: number, fromTotal: number, toTotal: number | undefined, payloadSize: number, logger: ITelemetryLoggerExt, signal?: AbortSignal, scenarioName?: string): IStream<ISequencedDocumentMessage[]>;
341
+
342
+ // @public (undocumented)
343
+ export class RetryableError<T extends string> extends NetworkErrorBasic<T> {
344
+ constructor(message: string, errorType: T, props: DriverErrorTelemetryProps);
345
+ // (undocumented)
346
+ readonly errorType: T;
347
+ }
348
+
349
+ // @public (undocumented)
350
+ export function runWithRetry<T>(api: (cancel?: AbortSignal) => Promise<T>, fetchCallName: string, logger: ITelemetryLoggerExt, progress: IProgress): Promise<T>;
351
+
352
+ // @public (undocumented)
353
+ export function streamFromMessages(messagesArg: Promise<ISequencedDocumentMessage[]>): IStream<ISequencedDocumentMessage[]>;
354
+
355
+ // @public (undocumented)
356
+ export function streamObserver<T>(stream: IStream<T>, handler: (value: IStreamResult<T>) => void): IStream<T>;
357
+
358
+ // @public
359
+ export class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {
360
+ constructor(message: string, retryAfterSeconds: number, props: DriverErrorTelemetryProps);
361
+ // (undocumented)
362
+ readonly canRetry = true;
363
+ // (undocumented)
364
+ readonly errorType = DriverErrorType.throttlingError;
365
+ // (undocumented)
366
+ readonly retryAfterSeconds: number;
367
+ }
368
+
369
+ // @public
370
+ export class TreeTreeEntry {
371
+ constructor(path: string, value: ITree);
372
+ // (undocumented)
373
+ readonly mode = FileMode.Directory;
374
+ // (undocumented)
375
+ readonly path: string;
376
+ // (undocumented)
377
+ readonly type = TreeEntry.Tree;
378
+ // (undocumented)
379
+ readonly value: ITree;
380
+ }
381
+
382
+ // @public
383
+ export class UsageError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
384
+ constructor(message: string);
385
+ // (undocumented)
386
+ readonly canRetry = false;
387
+ // (undocumented)
388
+ readonly errorType = DriverErrorType.usageError;
389
+ }
390
+
391
+ // (No @packageDocumentation comment for this package)
392
+
393
+ ```
@@ -9,7 +9,7 @@ var SummaryCompressionAlgorithm;
9
9
  (function (SummaryCompressionAlgorithm) {
10
10
  SummaryCompressionAlgorithm[SummaryCompressionAlgorithm["None"] = 0] = "None";
11
11
  SummaryCompressionAlgorithm[SummaryCompressionAlgorithm["LZ4"] = 1] = "LZ4";
12
- })(SummaryCompressionAlgorithm = exports.SummaryCompressionAlgorithm || (exports.SummaryCompressionAlgorithm = {}));
12
+ })(SummaryCompressionAlgorithm || (exports.SummaryCompressionAlgorithm = SummaryCompressionAlgorithm = {}));
13
13
  exports.DefaultCompressionStorageConfig = {
14
14
  algorithm: SummaryCompressionAlgorithm.LZ4,
15
15
  minSizeToCompress: 500,
@@ -1 +1 @@
1
- {"version":3,"file":"compressionTypes.js","sourceRoot":"","sources":["../../../src/adapters/compression/compressionTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACtC,6EAAQ,CAAA;IACR,2EAAO,CAAA;AACR,CAAC,EAHW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAGtC;AAOY,QAAA,+BAA+B,GAAG;IAC9C,SAAS,EAAE,2BAA2B,CAAC,GAAG;IAC1C,iBAAiB,EAAE,GAAG;CACtB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport enum SummaryCompressionAlgorithm {\n\tNone = 0,\n\tLZ4 = 1,\n}\n\nexport interface ICompressionStorageConfig {\n\talgorithm: SummaryCompressionAlgorithm;\n\tminSizeToCompress: number;\n}\n\nexport const DefaultCompressionStorageConfig = {\n\talgorithm: SummaryCompressionAlgorithm.LZ4,\n\tminSizeToCompress: 500,\n};\n"]}
1
+ {"version":3,"file":"compressionTypes.js","sourceRoot":"","sources":["../../../src/adapters/compression/compressionTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACtC,6EAAQ,CAAA;IACR,2EAAO,CAAA;AACR,CAAC,EAHW,2BAA2B,2CAA3B,2BAA2B,QAGtC;AAOY,QAAA,+BAA+B,GAAG;IAC9C,SAAS,EAAE,2BAA2B,CAAC,GAAG;IAC1C,iBAAiB,EAAE,GAAG;CACtB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport enum SummaryCompressionAlgorithm {\n\tNone = 0,\n\tLZ4 = 1,\n}\n\nexport interface ICompressionStorageConfig {\n\talgorithm: SummaryCompressionAlgorithm;\n\tminSizeToCompress: number;\n}\n\nexport const DefaultCompressionStorageConfig = {\n\talgorithm: SummaryCompressionAlgorithm.LZ4,\n\tminSizeToCompress: 500,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"documentServiceCompressionAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,qBAAa,iCAAkC,SAAQ,oBAAoB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAnD,OAAO,EAAE,gBAAgB,EAAmB,OAAO,EAAE,yBAAyB;IAI7E,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;CASjE"}
1
+ {"version":3,"file":"documentServiceCompressionAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,qBAAa,iCAAkC,SAAQ,oBAAoB;IAGzE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADxB,OAAO,EAAE,gBAAgB,EACR,OAAO,EAAE,yBAAyB;IAKvC,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;CASjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"documentServiceCompressionAdapter.js","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceCompressionAdapter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,qEAAkE;AAClE,+CAAgI;AAGhI,MAAa,iCAAkC,SAAQ,2CAAoB;IAC1E,YAAY,OAAyB,EAAmB,OAAkC;QACzF,KAAK,CAAC,OAAO,CAAC,CAAC;QADwC,YAAO,GAAP,OAAO,CAA2B;IAE1F,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,sDAAmD,CACtE,OAAO,EACP,IAAI,CAAC,OAAO,CACZ,CAAC;QACF,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAdD,8EAcC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDocumentService, IDocumentStorageService } from \"@fluidframework/driver-definitions\";\nimport { DocumentServiceProxy } from \"../../documentServiceProxy\";\nimport { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from \"./summaryblob\";\nimport { ICompressionStorageConfig } from \"./compressionTypes\";\n\nexport class DocumentServiceCompressionAdapter extends DocumentServiceProxy {\n\tconstructor(service: IDocumentService, private readonly _config: ICompressionStorageConfig) {\n\t\tsuper(service);\n\t}\n\n\tpublic async connectToStorage(): Promise<IDocumentStorageService> {\n\t\tconst storage = await super.connectToStorage();\n\t\tconst wrapped = new DocumentStorageServiceSummaryBlobCompressionAdapter(\n\t\t\tstorage,\n\t\t\tthis._config,\n\t\t);\n\t\tawait wrapped.getSnapshotTree();\n\t\treturn wrapped;\n\t}\n}\n"]}
1
+ {"version":3,"file":"documentServiceCompressionAdapter.js","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceCompressionAdapter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,qEAAkE;AAClE,+CAAgI;AAGhI,MAAa,iCAAkC,SAAQ,2CAAoB;IAC1E,YACC,OAAyB,EACR,OAAkC;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFE,YAAO,GAAP,OAAO,CAA2B;IAGpD,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,sDAAmD,CACtE,OAAO,EACP,IAAI,CAAC,OAAO,CACZ,CAAC;QACF,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAjBD,8EAiBC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDocumentService, IDocumentStorageService } from \"@fluidframework/driver-definitions\";\nimport { DocumentServiceProxy } from \"../../documentServiceProxy\";\nimport { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from \"./summaryblob\";\nimport { ICompressionStorageConfig } from \"./compressionTypes\";\n\nexport class DocumentServiceCompressionAdapter extends DocumentServiceProxy {\n\tconstructor(\n\t\tservice: IDocumentService,\n\t\tprivate readonly _config: ICompressionStorageConfig,\n\t) {\n\t\tsuper(service);\n\t}\n\n\tpublic async connectToStorage(): Promise<IDocumentStorageService> {\n\t\tconst storage = await super.connectToStorage();\n\t\tconst wrapped = new DocumentStorageServiceSummaryBlobCompressionAdapter(\n\t\t\tstorage,\n\t\t\tthis._config,\n\t\t);\n\t\tawait wrapped.getSnapshotTree();\n\t\treturn wrapped;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"documentServiceFactoryCompressionAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceFactoryCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,IAAI,CAAC;AAI/C,qBAAa,wCAAyC,SAAQ,2BAA2B;IAGvF,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADxB,cAAc,EAAE,uBAAuB,EACtB,OAAO,EAAE,yBAAyB;IAKvC,eAAe,CAC3B,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,oBAAoB,EAAE,YAAY,EAClC,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IA2Bf,qBAAqB,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIxF"}
1
+ {"version":3,"file":"documentServiceFactoryCompressionAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceFactoryCompressionAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,IAAI,CAAC;AAI/C,qBAAa,wCAAyC,SAAQ,2BAA2B;IAGvF,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADxB,cAAc,EAAE,uBAAuB,EACtB,OAAO,EAAE,yBAAyB;IAKvC,eAAe,CAC3B,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,oBAAoB,EAAE,YAAY,EAClC,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAmBf,qBAAqB,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAIxF"}
@@ -15,15 +15,7 @@ class DocumentServiceFactoryCompressionAdapter extends documentServiceFactoryPro
15
15
  }
16
16
  async createContainer(createNewSummary, createNewResolvedUrl, logger, clientIsSummarizer) {
17
17
  if (createNewSummary !== undefined) {
18
- // TODO : this is a hack to make sure that the initial summary is not compressed
19
- // We must prevent the initial summary from being compressed because
20
- // of the hack at packages/drivers/routerlicious-driver/src/createNewUtils.ts
21
- // where the binary blob is converted to a string using UTF-8 encoding
22
- // which is producing incorrect results for compressed data.
23
- const configForInitial = {
24
- ...this._config,
25
- minSizeToCompress: Number.POSITIVE_INFINITY,
26
- };
18
+ const configForInitial = this._config;
27
19
  const newAppSumary = summaryblob_1.DocumentStorageServiceCompressionAdapter.compressSummary(createNewSummary.tree[".app"], configForInitial);
28
20
  createNewSummary.tree[".app"] = newAppSumary;
29
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documentServiceFactoryCompressionAdapter.js","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceFactoryCompressionAdapter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AASH,mFAAgF;AAEhF,+CAAgI;AAChI,2FAAwF;AAExF,MAAa,wCAAyC,SAAQ,yDAA2B;IACxF,YACC,cAAuC,EACtB,OAAkC;QAEnD,KAAK,CAAC,cAAc,CAAC,CAAC;QAFL,YAAO,GAAP,OAAO,CAA2B;IAGpD,CAAC;IAEM,KAAK,CAAC,eAAe,CAC3B,gBAA0C,EAC1C,oBAAkC,EAClC,MAA6B,EAC7B,kBAA4B;QAE5B,IAAI,gBAAgB,KAAK,SAAS,EAAE;YACnC,gFAAgF;YAChF,oEAAoE;YACpE,6EAA6E;YAC7E,sEAAsE;YACtE,4DAA4D;YAC5D,MAAM,gBAAgB,GAAG;gBACxB,GAAG,IAAI,CAAC,OAAO;gBACf,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC3C,CAAC;YACF,MAAM,YAAY,GACjB,sDAAmD,CAAC,eAAe,CAClE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAiB,EAC7C,gBAAgB,CAChB,CAAC;YACH,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;SAC7C;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CACxD,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,EACN,kBAAkB,CAClB,CAAC;QACF,OAAO,IAAI,qEAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,WAAyB;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC7E,OAAO,IAAI,qEAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;CACD;AA5CD,4FA4CC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport {\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIResolvedUrl,\n} from \"@fluidframework/driver-definitions\";\nimport { ISummaryTree } from \"@fluidframework/protocol-definitions\";\nimport { DocumentServiceFactoryProxy } from \"../../documentServiceFactoryProxy\";\nimport { ICompressionStorageConfig } from \"..\";\nimport { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from \"./summaryblob\";\nimport { DocumentServiceCompressionAdapter } from \"./documentServiceCompressionAdapter\";\n\nexport class DocumentServiceFactoryCompressionAdapter extends DocumentServiceFactoryProxy {\n\tconstructor(\n\t\tserviceFactory: IDocumentServiceFactory,\n\t\tprivate readonly _config: ICompressionStorageConfig,\n\t) {\n\t\tsuper(serviceFactory);\n\t}\n\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree | undefined,\n\t\tcreateNewResolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tif (createNewSummary !== undefined) {\n\t\t\t// TODO : this is a hack to make sure that the initial summary is not compressed\n\t\t\t// We must prevent the initial summary from being compressed because\n\t\t\t// of the hack at packages/drivers/routerlicious-driver/src/createNewUtils.ts\n\t\t\t// where the binary blob is converted to a string using UTF-8 encoding\n\t\t\t// which is producing incorrect results for compressed data.\n\t\t\tconst configForInitial = {\n\t\t\t\t...this._config,\n\t\t\t\tminSizeToCompress: Number.POSITIVE_INFINITY,\n\t\t\t};\n\t\t\tconst newAppSumary =\n\t\t\t\tDocumentStorageServiceSummaryBlobCompressionAdapter.compressSummary(\n\t\t\t\t\tcreateNewSummary.tree[\".app\"] as ISummaryTree,\n\t\t\t\t\tconfigForInitial,\n\t\t\t\t);\n\t\t\tcreateNewSummary.tree[\".app\"] = newAppSumary;\n\t\t}\n\t\tconst service = await this.serviceFactory.createContainer(\n\t\t\tcreateNewSummary,\n\t\t\tcreateNewResolvedUrl,\n\t\t\tlogger,\n\t\t\tclientIsSummarizer,\n\t\t);\n\t\treturn new DocumentServiceCompressionAdapter(service, this._config);\n\t}\n\n\tpublic async createDocumentService(resolvedUrl: IResolvedUrl): Promise<IDocumentService> {\n\t\tconst service = await this.serviceFactory.createDocumentService(resolvedUrl);\n\t\treturn new DocumentServiceCompressionAdapter(service, this._config);\n\t}\n}\n"]}
1
+ {"version":3,"file":"documentServiceFactoryCompressionAdapter.js","sourceRoot":"","sources":["../../../src/adapters/compression/documentServiceFactoryCompressionAdapter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AASH,mFAAgF;AAEhF,+CAAgI;AAChI,2FAAwF;AAExF,MAAa,wCAAyC,SAAQ,yDAA2B;IACxF,YACC,cAAuC,EACtB,OAAkC;QAEnD,KAAK,CAAC,cAAc,CAAC,CAAC;QAFL,YAAO,GAAP,OAAO,CAA2B;IAGpD,CAAC;IAEM,KAAK,CAAC,eAAe,CAC3B,gBAA0C,EAC1C,oBAAkC,EAClC,MAA6B,EAC7B,kBAA4B;QAE5B,IAAI,gBAAgB,KAAK,SAAS,EAAE;YACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;YACtC,MAAM,YAAY,GACjB,sDAAmD,CAAC,eAAe,CAClE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAiB,EAC7C,gBAAgB,CAChB,CAAC;YACH,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;SAC7C;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CACxD,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,EACN,kBAAkB,CAClB,CAAC;QACF,OAAO,IAAI,qEAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,WAAyB;QAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC7E,OAAO,IAAI,qEAAiC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;CACD;AApCD,4FAoCC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport {\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIResolvedUrl,\n} from \"@fluidframework/driver-definitions\";\nimport { ISummaryTree } from \"@fluidframework/protocol-definitions\";\nimport { DocumentServiceFactoryProxy } from \"../../documentServiceFactoryProxy\";\nimport { ICompressionStorageConfig } from \"..\";\nimport { DocumentStorageServiceCompressionAdapter as DocumentStorageServiceSummaryBlobCompressionAdapter } from \"./summaryblob\";\nimport { DocumentServiceCompressionAdapter } from \"./documentServiceCompressionAdapter\";\n\nexport class DocumentServiceFactoryCompressionAdapter extends DocumentServiceFactoryProxy {\n\tconstructor(\n\t\tserviceFactory: IDocumentServiceFactory,\n\t\tprivate readonly _config: ICompressionStorageConfig,\n\t) {\n\t\tsuper(serviceFactory);\n\t}\n\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree | undefined,\n\t\tcreateNewResolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tif (createNewSummary !== undefined) {\n\t\t\tconst configForInitial = this._config;\n\t\t\tconst newAppSumary =\n\t\t\t\tDocumentStorageServiceSummaryBlobCompressionAdapter.compressSummary(\n\t\t\t\t\tcreateNewSummary.tree[\".app\"] as ISummaryTree,\n\t\t\t\t\tconfigForInitial,\n\t\t\t\t);\n\t\t\tcreateNewSummary.tree[\".app\"] = newAppSumary;\n\t\t}\n\t\tconst service = await this.serviceFactory.createContainer(\n\t\t\tcreateNewSummary,\n\t\t\tcreateNewResolvedUrl,\n\t\t\tlogger,\n\t\t\tclientIsSummarizer,\n\t\t);\n\t\treturn new DocumentServiceCompressionAdapter(service, this._config);\n\t}\n\n\tpublic async createDocumentService(resolvedUrl: IResolvedUrl): Promise<IDocumentService> {\n\t\tconst service = await this.serviceFactory.createDocumentService(resolvedUrl);\n\t\treturn new DocumentServiceCompressionAdapter(service, this._config);\n\t}\n}\n"]}