@fluidframework/driver-utils 2.0.0-internal.7.0.0 → 2.0.0-internal.7.1.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.
@@ -0,0 +1,481 @@
1
+ import { FetchSource } from '@fluidframework/driver-definitions';
2
+ import { IAttachment } from '@fluidframework/protocol-definitions';
3
+ import { IAuthorizationError } from '@fluidframework/driver-definitions';
4
+ import { IBlob } from '@fluidframework/protocol-definitions';
5
+ import { ICommittedProposal } from '@fluidframework/protocol-definitions';
6
+ import { ICreateBlobResponse } from '@fluidframework/protocol-definitions';
7
+ import { IDeltasFetchResult } from '@fluidframework/driver-definitions';
8
+ import { IDocumentAttributes } from '@fluidframework/protocol-definitions';
9
+ import { IDocumentMessage } from '@fluidframework/protocol-definitions';
10
+ import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
11
+ import { IDocumentStorageService } from '@fluidframework/driver-definitions';
12
+ import { IDocumentStorageServicePolicies } from '@fluidframework/driver-definitions';
13
+ import { IDriverErrorBase } from '@fluidframework/driver-definitions';
14
+ import { IFluidErrorBase } from '@fluidframework/telemetry-utils';
15
+ import { ILocationRedirectionError } from '@fluidframework/driver-definitions';
16
+ import { IRequest } from '@fluidframework/core-interfaces';
17
+ import { IResolvedUrl } from '@fluidframework/driver-definitions';
18
+ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
19
+ import { ISnapshotTree } from '@fluidframework/protocol-definitions';
20
+ import { IStream } from '@fluidframework/driver-definitions';
21
+ import { IStreamResult } from '@fluidframework/driver-definitions';
22
+ import { ISummaryContext } from '@fluidframework/driver-definitions';
23
+ import { ISummaryHandle } from '@fluidframework/protocol-definitions';
24
+ import { ISummaryTree } from '@fluidframework/protocol-definitions';
25
+ import { ITelemetryErrorEvent } from '@fluidframework/core-interfaces';
26
+ import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
27
+ import { ITelemetryProperties } from '@fluidframework/core-interfaces';
28
+ import { IThrottlingWarning } from '@fluidframework/driver-definitions';
29
+ import { ITree } from '@fluidframework/protocol-definitions';
30
+ import { ITreeEntry } from '@fluidframework/protocol-definitions';
31
+ import { IUrlResolver } from '@fluidframework/driver-definitions';
32
+ import { IVersion } from '@fluidframework/protocol-definitions';
33
+ import { LoaderCachingPolicy } from '@fluidframework/driver-definitions';
34
+ import { LoggingError } from '@fluidframework/telemetry-utils';
35
+
36
+ /**
37
+ * This method optionally applies compression to the given document service factory. The compression
38
+ * must be enabled by setting the config to true or by passing a compression config object.
39
+ * @param documentServiceFactory - The document service factory to apply compression to.
40
+ * @param config - The compression configuration.
41
+ * @returns The document service factory possibly with compression applied.
42
+ */
43
+ export declare function applyStorageCompression(documentServiceFactory: IDocumentServiceFactory, config?: ICompressionStorageConfig | boolean): IDocumentServiceFactory;
44
+
45
+ /**
46
+ * Basic implementation of an attachment ITreeEntry
47
+ */
48
+ export declare class AttachmentTreeEntry {
49
+ readonly path: string;
50
+ readonly id: string;
51
+ readonly mode = FileMode.File;
52
+ readonly type = TreeEntry.Attachment;
53
+ readonly value: IAttachment;
54
+ /**
55
+ * Creates an attachment ITreeEntry
56
+ * @param path - path of entry
57
+ * @param id - id of external blob attachment
58
+ */
59
+ constructor(path: string, id: string);
60
+ }
61
+
62
+ export declare class AuthorizationError extends LoggingError implements IAuthorizationError, IFluidErrorBase {
63
+ readonly claims: string | undefined;
64
+ readonly tenantId: string | undefined;
65
+ readonly errorType = DriverErrorType.authorizationError;
66
+ readonly canRetry = false;
67
+ constructor(message: string, claims: string | undefined, tenantId: string | undefined, props: DriverErrorTelemetryProps);
68
+ }
69
+
70
+ export declare const blobHeadersBlobName = ".metadata.blobHeaders";
71
+
72
+ /**
73
+ * Basic implementation of a blob ITreeEntry
74
+ */
75
+ export declare class BlobTreeEntry {
76
+ readonly path: string;
77
+ readonly mode = FileMode.File;
78
+ readonly type = TreeEntry.Blob;
79
+ readonly value: IBlob;
80
+ /**
81
+ * Creates a blob ITreeEntry
82
+ * @param path - path of entry
83
+ * @param contents - blob contents
84
+ * @param encoding - encoding of contents; defaults to utf-8
85
+ */
86
+ constructor(path: string, contents: string, encoding?: "utf-8" | "base64");
87
+ }
88
+
89
+ /**
90
+ * Build a tree hierarchy base on an array of ITreeEntry
91
+ *
92
+ * @param entries - an array of ITreeEntry to flatten
93
+ * @param blobMap - a map of blob's sha1 to content that gets filled with content from entries
94
+ * NOTE: blobMap's validity is contingent on the returned promise's resolution
95
+ * @returns the hierarchical tree
96
+ */
97
+ export declare function buildSnapshotTree(entries: ITreeEntry[], blobMap: Map<string, ArrayBufferLike>): ISnapshotTree;
98
+
99
+ /**
100
+ * In case endpoint(service or socket) is not reachable, then we maybe offline or may have got some transient error
101
+ * not related to endpoint, in that case we want to try at faster pace and hence the max wait is lesser 8s as compared
102
+ * to when endpoint is reachable in which case it is 30s.
103
+ * @param error - error based on which we decide max wait time.
104
+ * @returns Max wait time.
105
+ */
106
+ export declare function calculateMaxWaitTime(error: unknown): number;
107
+
108
+ export declare function canBeCoalescedByService(message: ISequencedDocumentMessage | IDocumentMessage): boolean;
109
+
110
+ /**
111
+ * Check if a connection error can be retried. Unless explicitly allowed, retry is disallowed.
112
+ * I.e. asserts or unexpected exceptions in our code result in container failure.
113
+ * @param error - The error to inspect for ability to retry
114
+ */
115
+ export declare const canRetryOnError: (error: any) => boolean;
116
+
117
+ /**
118
+ * Defines the current layout of an .app + .protocol summary tree
119
+ * this is used internally for create new, and single commit summary
120
+ * @internal
121
+ */
122
+ export declare interface CombinedAppAndProtocolSummary extends ISummaryTree {
123
+ tree: {
124
+ [".app"]: ISummaryTree;
125
+ [".protocol"]: ISummaryTree;
126
+ };
127
+ }
128
+
129
+ /**
130
+ * Converts ISummaryTree to ITree format.
131
+ * @param summaryTree - summary tree in ISummaryTree format
132
+ */
133
+ export declare function convertSummaryTreeToSnapshotITree(summaryTree: ISummaryTree): ITree;
134
+
135
+ export declare function createGenericNetworkError(message: string, retryInfo: {
136
+ canRetry: boolean;
137
+ retryAfterMs?: number;
138
+ }, props: DriverErrorTelemetryProps): ThrottlingError | GenericNetworkError;
139
+
140
+ export declare const createWriteError: (message: string, props: DriverErrorTelemetryProps) => NonRetryableError<"writeError">;
141
+
142
+ export declare class DeltaStreamConnectionForbiddenError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
143
+ static readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;
144
+ readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;
145
+ readonly canRetry = false;
146
+ readonly storageOnlyReason: string | undefined;
147
+ constructor(message: string, props: DriverErrorTelemetryProps, storageOnlyReason?: string);
148
+ }
149
+
150
+ export declare class DocumentStorageServiceProxy implements IDocumentStorageService {
151
+ protected readonly internalStorageService: IDocumentStorageService;
152
+ private _policies;
153
+ set policies(policies: IDocumentStorageServicePolicies | undefined);
154
+ get policies(): IDocumentStorageServicePolicies | undefined;
155
+ get repositoryUrl(): string;
156
+ constructor(internalStorageService: IDocumentStorageService);
157
+ getSnapshotTree(version?: IVersion, scenarioName?: string): Promise<ISnapshotTree | null>;
158
+ getVersions(versionId: string | null, count: number, scenarioName?: string, fetchSource?: FetchSource): Promise<IVersion[]>;
159
+ uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string>;
160
+ downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree>;
161
+ createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse>;
162
+ readBlob(blobId: string): Promise<ArrayBufferLike>;
163
+ }
164
+
165
+ /** Telemetry props with driver-specific required properties */
166
+ export declare type DriverErrorTelemetryProps = ITelemetryProperties & {
167
+ driverVersion: string | undefined;
168
+ };
169
+
170
+ export declare const emptyMessageStream: IStream<ISequencedDocumentMessage[]>;
171
+
172
+ /**
173
+ * FluidInvalidSchema error class.
174
+ */
175
+ export declare class FluidInvalidSchemaError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
176
+ readonly errorType = DriverErrorType.fluidInvalidSchema;
177
+ readonly canRetry = false;
178
+ constructor(message: string, props: DriverErrorTelemetryProps);
179
+ }
180
+
181
+ /**
182
+ * Generic network error class.
183
+ */
184
+ export declare class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
185
+ readonly canRetry: boolean;
186
+ readonly errorType = DriverErrorType.genericNetworkError;
187
+ constructor(message: string, canRetry: boolean, props: DriverErrorTelemetryProps);
188
+ }
189
+
190
+ /**
191
+ * Extract the attributes from the protocol summary.
192
+ * @param protocolSummary - protocol summary from which the values are to be extracted.
193
+ */
194
+ export declare function getDocAttributesFromProtocolSummary(protocolSummary: ISummaryTree): IDocumentAttributes;
195
+
196
+ /**
197
+ * Extract quorum values from the protocol summary.
198
+ * @param protocolSummary - protocol summary from which the values are to be extracted.
199
+ */
200
+ export declare function getQuorumValuesFromProtocolSummary(protocolSummary: ISummaryTree): [string, ICommittedProposal][];
201
+
202
+ /** Check retryAfterSeconds property on error and convert to ms */
203
+ export declare const getRetryDelayFromError: (error: any) => number | undefined;
204
+
205
+ /** Check retryAfterSeconds property on error */
206
+ export declare const getRetryDelaySecondsFromError: (error: any) => number | undefined;
207
+
208
+ export declare interface ICompressionStorageConfig {
209
+ algorithm: SummaryCompressionAlgorithm;
210
+ minSizeToCompress: number;
211
+ }
212
+
213
+ /**
214
+ * As the name implies this is not secure and should not be used in production. It simply makes the example easier
215
+ * to get up and running.
216
+ *
217
+ * In our example we run a simple web server via webpack-dev-server. This defines a URL format of the form
218
+ * http://localhost:8080/<documentId>/<path>.
219
+ *
220
+ * We then need to map that to a Fluid based URL. These are of the form
221
+ * fluid://orderingUrl/<tenantId>/<documentId>/<path>.
222
+ *
223
+ * The tenantId/documentId pair defines the 'full' document ID the service makes use of. The path is then an optional
224
+ * part of the URL that the document interprets and maps to a data store. It's exactly similar to how a web service
225
+ * works or a router inside of a single page app framework.
226
+ */
227
+ export declare class InsecureUrlResolver implements IUrlResolver {
228
+ private readonly hostUrl;
229
+ private readonly ordererUrl;
230
+ private readonly storageUrl;
231
+ private readonly tenantId;
232
+ private readonly bearer;
233
+ private readonly isForNodeTest;
234
+ private readonly cache;
235
+ constructor(hostUrl: string, ordererUrl: string, storageUrl: string, tenantId: string, bearer: string, isForNodeTest?: boolean);
236
+ resolve(request: IRequest): Promise<IResolvedUrl | undefined>;
237
+ private resolveHelper;
238
+ getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string): Promise<string>;
239
+ createCreateNewRequest(fileName?: string): IRequest;
240
+ }
241
+
242
+ /**
243
+ * Interface describing an object passed to various network APIs.
244
+ * It allows caller to control cancellation, as well as learn about any delays.
245
+ */
246
+ export declare interface IProgress {
247
+ /**
248
+ * Abort signal used to cancel operation.
249
+ *
250
+ * @remarks Note that most of the layers do not use this signal yet. We need to change that over time.
251
+ * Please consult with API documentation / implementation.
252
+ * Note that number of layers may not check this signal while holding this request in a queue,
253
+ * so it may take a while it takes effect. This can be improved in the future.
254
+ *
255
+ * The layers in question are:
256
+ *
257
+ * - driver (RateLimiter)
258
+ *
259
+ * - runWithRetry
260
+ */
261
+ cancel?: AbortSignal;
262
+ /**
263
+ * Called whenever api returns cancellable error and the call is going to be retried.
264
+ * Any exception thrown from this call back result in cancellation of operation
265
+ * and propagation of thrown exception.
266
+ * @param delayInMs - delay before next retry. This value will depend on internal back-off logic,
267
+ * as well as information provided by service (like 429 error asking to wait for some time before retry)
268
+ * @param error - error object returned from the call.
269
+ */
270
+ onRetry?(delayInMs: number, error: any): void;
271
+ }
272
+
273
+ /**
274
+ * Validates the current layout of an .app + .protocol summary tree
275
+ * this is used internally for create new, and single commit summary
276
+ * @internal
277
+ */
278
+ export declare function isCombinedAppAndProtocolSummary(summary: ISummaryTree | undefined): summary is CombinedAppAndProtocolSummary;
279
+
280
+ export declare function isOnline(): OnlineStatus;
281
+
282
+ /**
283
+ * Tells if message was sent by container runtime
284
+ * @privateRemarks ADO #1385: To be moved to container-definitions
285
+ * @returns whether the message is a runtime message
286
+ */
287
+ export declare function isRuntimeMessage(message: {
288
+ type: string;
289
+ }): boolean;
290
+
291
+ export declare class LocationRedirectionError extends LoggingError implements ILocationRedirectionError, IFluidErrorBase {
292
+ readonly redirectUrl: IResolvedUrl;
293
+ readonly errorType = DriverErrorType.locationRedirection;
294
+ readonly canRetry = false;
295
+ constructor(message: string, redirectUrl: IResolvedUrl, props: DriverErrorTelemetryProps);
296
+ }
297
+
298
+ export declare function logNetworkFailure(logger: ITelemetryLoggerExt, event: ITelemetryErrorEvent, error?: any): void;
299
+
300
+ export declare enum MessageType2 {
301
+ Accept = "accept"
302
+ }
303
+
304
+ export declare class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {
305
+ readonly errorType: T;
306
+ readonly canRetry: boolean;
307
+ constructor(message: string, errorType: T, canRetry: boolean, props: DriverErrorTelemetryProps);
308
+ }
309
+
310
+ export declare class NonRetryableError<T extends string> extends NetworkErrorBasic<T> {
311
+ readonly errorType: T;
312
+ constructor(message: string, errorType: T, props: DriverErrorTelemetryProps);
313
+ }
314
+
315
+ export declare enum OnlineStatus {
316
+ Offline = 0,
317
+ Online = 1,
318
+ Unknown = 2
319
+ }
320
+
321
+ /**
322
+ * Helper class to organize parallel fetching of data
323
+ * It can be used to concurrently do many requests, while consuming
324
+ * data in the right order. Take a look at UT for examples.
325
+ * @param concurrency - level of concurrency
326
+ * @param from - starting point of fetching data (inclusive)
327
+ * @param to - ending point of fetching data. exclusive, or undefined if unknown
328
+ * @param payloadSize - batch size
329
+ * @param logger - logger to use
330
+ * @param requestCallback - callback to request batches
331
+ * @returns Queue that can be used to retrieve data
332
+ */
333
+ export declare class ParallelRequests<T> {
334
+ private to;
335
+ private readonly payloadSize;
336
+ private readonly logger;
337
+ private readonly requestCallback;
338
+ private readonly responseCallback;
339
+ private latestRequested;
340
+ private nextToDeliver;
341
+ private readonly results;
342
+ private workingState;
343
+ private requestsInFlight;
344
+ private readonly endEvent;
345
+ private requests;
346
+ private readonly knewTo;
347
+ private get working();
348
+ get canceled(): boolean;
349
+ constructor(from: number, to: number | undefined, payloadSize: number, logger: ITelemetryLoggerExt, requestCallback: (request: number, from: number, to: number, strongTo: boolean, props: ITelemetryProperties) => Promise<{
350
+ partial: boolean;
351
+ cancel: boolean;
352
+ payload: T[];
353
+ }>, responseCallback: (payload: T[]) => void);
354
+ cancel(): void;
355
+ run(concurrency: number): Promise<void>;
356
+ private done;
357
+ private fail;
358
+ private dispatch;
359
+ private getNextChunk;
360
+ private addRequest;
361
+ private addRequestCore;
362
+ }
363
+
364
+ export declare class PrefetchDocumentStorageService extends DocumentStorageServiceProxy {
365
+ private readonly prefetchCache;
366
+ private prefetchEnabled;
367
+ get policies(): {
368
+ caching: LoaderCachingPolicy;
369
+ maximumCacheDurationMs?: 432000000 | undefined;
370
+ } | undefined;
371
+ getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
372
+ readBlob(blobId: string): Promise<ArrayBufferLike>;
373
+ stopPrefetch(): void;
374
+ private cachedRead;
375
+ private prefetchTree;
376
+ private prefetchTreeCore;
377
+ }
378
+
379
+ /**
380
+ * Helper queue class to allow async push / pull
381
+ * It's essentially a pipe allowing multiple writers, and single reader
382
+ */
383
+ export declare class Queue<T> implements IStream<T> {
384
+ private readonly queue;
385
+ private deferred;
386
+ private done;
387
+ pushValue(value: T): void;
388
+ pushError(error: any): void;
389
+ pushDone(): void;
390
+ protected pushCore(value: Promise<IStreamResult<T>>): void;
391
+ read(): Promise<IStreamResult<T>>;
392
+ }
393
+
394
+ export declare class RateLimiter {
395
+ private maxRequests;
396
+ private readonly tasks;
397
+ constructor(maxRequests: number);
398
+ get waitQueueLength(): number;
399
+ protected readonly release: () => void;
400
+ protected acquire(): Promise<void>;
401
+ schedule<T>(work: () => Promise<T>): Promise<T>;
402
+ }
403
+
404
+ /**
405
+ * Read a blob from {@link @fluidframework/driver-definitions#IDocumentStorageService} and
406
+ * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse | JSON.parse}
407
+ * it into object of type `T`.
408
+ *
409
+ * @param storage - The `DocumentStorageService` to read from.
410
+ * @param id - The ID of the blob to read and parse.
411
+ *
412
+ * @typeParam T - Output type matching JSON format of inpyt blob data.
413
+ *
414
+ * @returns The object that we decoded and parsed via `JSON.parse`.
415
+ */
416
+ export declare function readAndParse<T>(storage: Pick<IDocumentStorageService, "readBlob">, id: string): Promise<T>;
417
+
418
+ /**
419
+ * Request ops from storage
420
+ * @param get - Getter callback to get individual batches
421
+ * @param concurrency - Number of concurrent requests to make
422
+ * @param fromTotal - starting sequence number to fetch (inclusive)
423
+ * @param toTotal - max (exclusive) sequence number to fetch
424
+ * @param payloadSize - Payload size
425
+ * @param logger - Logger to log progress and errors
426
+ * @param signal - Cancelation signal
427
+ * @param scenarioName - Reason for fetching ops
428
+ * @returns Messages fetched
429
+ */
430
+ export declare 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[]>;
431
+
432
+ export declare class RetryableError<T extends string> extends NetworkErrorBasic<T> {
433
+ readonly errorType: T;
434
+ constructor(message: string, errorType: T, props: DriverErrorTelemetryProps);
435
+ }
436
+
437
+ export declare function runWithRetry<T>(api: (cancel?: AbortSignal) => Promise<T>, fetchCallName: string, logger: ITelemetryLoggerExt, progress: IProgress): Promise<T>;
438
+
439
+ export declare function streamFromMessages(messagesArg: Promise<ISequencedDocumentMessage[]>): IStream<ISequencedDocumentMessage[]>;
440
+
441
+ export declare function streamObserver<T>(stream: IStream<T>, handler: (value: IStreamResult<T>) => void): IStream<T>;
442
+
443
+ declare enum SummaryCompressionAlgorithm {
444
+ None = 0,
445
+ LZ4 = 1
446
+ }
447
+
448
+ /**
449
+ * Throttling error class - used to communicate all throttling errors
450
+ */
451
+ export declare class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {
452
+ readonly retryAfterSeconds: number;
453
+ readonly errorType = DriverErrorType.throttlingError;
454
+ readonly canRetry = true;
455
+ constructor(message: string, retryAfterSeconds: number, props: DriverErrorTelemetryProps);
456
+ }
457
+
458
+ /**
459
+ * Basic implementation of a tree ITreeEntry
460
+ */
461
+ export declare class TreeTreeEntry {
462
+ readonly path: string;
463
+ readonly value: ITree;
464
+ readonly mode = FileMode.Directory;
465
+ readonly type = TreeEntry.Tree;
466
+ /**
467
+ * Creates a tree ITreeEntry
468
+ * @param path - path of entry
469
+ * @param value - subtree
470
+ */
471
+ constructor(path: string, value: ITree);
472
+ }
473
+
474
+ /** Error indicating an API is being used improperly resulting in an invalid operation. */
475
+ export declare class UsageError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
476
+ readonly errorType = DriverErrorType.usageError;
477
+ readonly canRetry = false;
478
+ constructor(message: string);
479
+ }
480
+
481
+ export { }
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIThrottlingWarning,\n\tIDriverErrorBase,\n\tIAuthorizationError,\n\t// eslint-disable-next-line import/no-deprecated\n\tDriverErrorType,\n\tILocationRedirectionError,\n\tIResolvedUrl,\n\tDriverErrorTypes,\n} from \"@fluidframework/driver-definitions\";\nimport { ITelemetryProperties } from \"@fluidframework/core-interfaces\";\nimport { IFluidErrorBase, LoggingError } from \"@fluidframework/telemetry-utils\";\n\nexport enum OnlineStatus {\n\tOffline,\n\tOnline,\n\tUnknown,\n}\n\n// It tells if we have local connection only - we might not have connection to web.\n// No solution for node.js (other than resolve dns names / ping specific sites)\n// Can also use window.addEventListener(\"online\" / \"offline\")\nexport function isOnline(): OnlineStatus {\n\tif (\n\t\ttypeof navigator === \"object\" &&\n\t\tnavigator !== null &&\n\t\ttypeof navigator.onLine === \"boolean\"\n\t) {\n\t\treturn navigator.onLine ? OnlineStatus.Online : OnlineStatus.Offline;\n\t}\n\treturn OnlineStatus.Unknown;\n}\n\n/** Telemetry props with driver-specific required properties */\nexport type DriverErrorTelemetryProps = ITelemetryProperties & {\n\tdriverVersion: string | undefined;\n};\n\n/**\n * Generic network error class.\n */\nexport class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.genericNetworkError;\n\n\tconstructor(message: string, readonly canRetry: boolean, props: DriverErrorTelemetryProps) {\n\t\tsuper(message, props);\n\t}\n}\n\n/**\n * FluidInvalidSchema error class.\n */\nexport class FluidInvalidSchemaError\n\textends LoggingError\n\timplements IDriverErrorBase, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.fluidInvalidSchema;\n\treadonly canRetry = false;\n\n\tconstructor(message: string, props: DriverErrorTelemetryProps) {\n\t\tsuper(message, props);\n\t}\n}\n\nexport class DeltaStreamConnectionForbiddenError\n\textends LoggingError\n\timplements IDriverErrorBase, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\tstatic readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;\n\treadonly errorType = DeltaStreamConnectionForbiddenError.errorType;\n\treadonly canRetry = false;\n\treadonly storageOnlyReason: string | undefined;\n\n\tconstructor(message: string, props: DriverErrorTelemetryProps, storageOnlyReason?: string) {\n\t\tsuper(message, { ...props, statusCode: 400 });\n\t\tthis.storageOnlyReason = storageOnlyReason;\n\t}\n}\n\nexport class AuthorizationError\n\textends LoggingError\n\timplements IAuthorizationError, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.authorizationError;\n\treadonly canRetry = false;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly claims: string | undefined,\n\t\treadonly tenantId: string | undefined,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\t// don't log claims or tenantId\n\t\tsuper(message, props, new Set([\"claims\", \"tenantId\"]));\n\t}\n}\n\nexport class LocationRedirectionError\n\textends LoggingError\n\timplements ILocationRedirectionError, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.locationRedirection;\n\treadonly canRetry = false;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly redirectUrl: IResolvedUrl,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\t// do not log redirectURL\n\t\tsuper(message, props, new Set([\"redirectUrl\"]));\n\t}\n}\n\nexport class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly errorType: T,\n\t\treadonly canRetry: boolean,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\nexport class NonRetryableError<T extends string> extends NetworkErrorBasic<T> {\n\tconstructor(message: string, readonly errorType: T, props: DriverErrorTelemetryProps) {\n\t\tsuper(message, errorType, false, props);\n\t}\n}\n\nexport class RetryableError<T extends string> extends NetworkErrorBasic<T> {\n\tconstructor(message: string, readonly errorType: T, props: DriverErrorTelemetryProps) {\n\t\tsuper(message, errorType, true, props);\n\t}\n}\n\n/**\n * Throttling error class - used to communicate all throttling errors\n */\nexport class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.throttlingError;\n\treadonly canRetry = true;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly retryAfterSeconds: number,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\nexport const createWriteError = (message: string, props: DriverErrorTelemetryProps) =>\n\tnew NonRetryableError(message, DriverErrorTypes.writeError, props);\n\nexport function createGenericNetworkError(\n\tmessage: string,\n\tretryInfo: { canRetry: boolean; retryAfterMs?: number },\n\tprops: DriverErrorTelemetryProps,\n): ThrottlingError | GenericNetworkError {\n\tif (retryInfo.retryAfterMs !== undefined && retryInfo.canRetry) {\n\t\treturn new ThrottlingError(message, retryInfo.retryAfterMs / 1000, props);\n\t}\n\treturn new GenericNetworkError(message, retryInfo.canRetry, props);\n}\n\n/**\n * Check if a connection error can be retried. Unless explicitly allowed, retry is disallowed.\n * I.e. asserts or unexpected exceptions in our code result in container failure.\n * @param error - The error to inspect for ability to retry\n */\nexport const canRetryOnError = (error: any): boolean => error?.canRetry === true;\n\n/** Check retryAfterSeconds property on error */\nexport const getRetryDelaySecondsFromError = (error: any): number | undefined =>\n\terror?.retryAfterSeconds as number | undefined;\n\n/** Check retryAfterSeconds property on error and convert to ms */\nexport const getRetryDelayFromError = (error: any): number | undefined =>\n\terror?.retryAfterSeconds !== undefined ? error.retryAfterSeconds * 1000 : undefined;\n"]}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIThrottlingWarning,\n\tIDriverErrorBase,\n\tIAuthorizationError,\n\t// eslint-disable-next-line import/no-deprecated\n\tDriverErrorType,\n\tILocationRedirectionError,\n\tIResolvedUrl,\n\tDriverErrorTypes,\n} from \"@fluidframework/driver-definitions\";\nimport { ITelemetryProperties } from \"@fluidframework/core-interfaces\";\nimport { IFluidErrorBase, LoggingError } from \"@fluidframework/telemetry-utils\";\n\nexport enum OnlineStatus {\n\tOffline,\n\tOnline,\n\tUnknown,\n}\n\n// It tells if we have local connection only - we might not have connection to web.\n// No solution for node.js (other than resolve dns names / ping specific sites)\n// Can also use window.addEventListener(\"online\" / \"offline\")\nexport function isOnline(): OnlineStatus {\n\tif (\n\t\ttypeof navigator === \"object\" &&\n\t\tnavigator !== null &&\n\t\ttypeof navigator.onLine === \"boolean\"\n\t) {\n\t\treturn navigator.onLine ? OnlineStatus.Online : OnlineStatus.Offline;\n\t}\n\treturn OnlineStatus.Unknown;\n}\n\n/** Telemetry props with driver-specific required properties */\nexport type DriverErrorTelemetryProps = ITelemetryProperties & {\n\tdriverVersion: string | undefined;\n};\n\n/**\n * Generic network error class.\n */\nexport class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.genericNetworkError;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly canRetry: boolean,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\n/**\n * FluidInvalidSchema error class.\n */\nexport class FluidInvalidSchemaError\n\textends LoggingError\n\timplements IDriverErrorBase, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.fluidInvalidSchema;\n\treadonly canRetry = false;\n\n\tconstructor(message: string, props: DriverErrorTelemetryProps) {\n\t\tsuper(message, props);\n\t}\n}\n\nexport class DeltaStreamConnectionForbiddenError\n\textends LoggingError\n\timplements IDriverErrorBase, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\tstatic readonly errorType = DriverErrorType.deltaStreamConnectionForbidden;\n\treadonly errorType = DeltaStreamConnectionForbiddenError.errorType;\n\treadonly canRetry = false;\n\treadonly storageOnlyReason: string | undefined;\n\n\tconstructor(message: string, props: DriverErrorTelemetryProps, storageOnlyReason?: string) {\n\t\tsuper(message, { ...props, statusCode: 400 });\n\t\tthis.storageOnlyReason = storageOnlyReason;\n\t}\n}\n\nexport class AuthorizationError\n\textends LoggingError\n\timplements IAuthorizationError, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.authorizationError;\n\treadonly canRetry = false;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly claims: string | undefined,\n\t\treadonly tenantId: string | undefined,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\t// don't log claims or tenantId\n\t\tsuper(message, props, new Set([\"claims\", \"tenantId\"]));\n\t}\n}\n\nexport class LocationRedirectionError\n\textends LoggingError\n\timplements ILocationRedirectionError, IFluidErrorBase\n{\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.locationRedirection;\n\treadonly canRetry = false;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly redirectUrl: IResolvedUrl,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\t// do not log redirectURL\n\t\tsuper(message, props, new Set([\"redirectUrl\"]));\n\t}\n}\n\nexport class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly errorType: T,\n\t\treadonly canRetry: boolean,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\nexport class NonRetryableError<T extends string> extends NetworkErrorBasic<T> {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly errorType: T,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, errorType, false, props);\n\t}\n}\n\nexport class RetryableError<T extends string> extends NetworkErrorBasic<T> {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly errorType: T,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, errorType, true, props);\n\t}\n}\n\n/**\n * Throttling error class - used to communicate all throttling errors\n */\nexport class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly errorType = DriverErrorType.throttlingError;\n\treadonly canRetry = true;\n\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly retryAfterSeconds: number,\n\t\tprops: DriverErrorTelemetryProps,\n\t) {\n\t\tsuper(message, props);\n\t}\n}\n\nexport const createWriteError = (message: string, props: DriverErrorTelemetryProps) =>\n\tnew NonRetryableError(message, DriverErrorTypes.writeError, props);\n\nexport function createGenericNetworkError(\n\tmessage: string,\n\tretryInfo: { canRetry: boolean; retryAfterMs?: number },\n\tprops: DriverErrorTelemetryProps,\n): ThrottlingError | GenericNetworkError {\n\tif (retryInfo.retryAfterMs !== undefined && retryInfo.canRetry) {\n\t\treturn new ThrottlingError(message, retryInfo.retryAfterMs / 1000, props);\n\t}\n\treturn new GenericNetworkError(message, retryInfo.canRetry, props);\n}\n\n/**\n * Check if a connection error can be retried. Unless explicitly allowed, retry is disallowed.\n * I.e. asserts or unexpected exceptions in our code result in container failure.\n * @param error - The error to inspect for ability to retry\n */\nexport const canRetryOnError = (error: any): boolean => error?.canRetry === true;\n\n/** Check retryAfterSeconds property on error */\nexport const getRetryDelaySecondsFromError = (error: any): number | undefined =>\n\terror?.retryAfterSeconds as number | undefined;\n\n/** Check retryAfterSeconds property on error and convert to ms */\nexport const getRetryDelayFromError = (error: any): number | undefined =>\n\terror?.retryAfterSeconds !== undefined ? error.retryAfterSeconds * 1000 : undefined;\n"]}
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/driver-utils";
8
- export declare const pkgVersion = "2.0.0-internal.7.0.0";
8
+ export declare const pkgVersion = "2.0.0-internal.7.1.0";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -8,5 +8,5 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.pkgVersion = exports.pkgName = void 0;
10
10
  exports.pkgName = "@fluidframework/driver-utils";
11
- exports.pkgVersion = "2.0.0-internal.7.0.0";
11
+ exports.pkgVersion = "2.0.0-internal.7.1.0";
12
12
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,8BAA8B,CAAC;AACzC,QAAA,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/driver-utils\";\nexport const pkgVersion = \"2.0.0-internal.7.0.0\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,8BAA8B,CAAC;AACzC,QAAA,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/driver-utils\";\nexport const pkgVersion = \"2.0.0-internal.7.1.0\";\n"]}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.37.0"
8
+ "packageVersion": "7.38.0"
9
9
  }
10
10
  ]
11
11
  }
@@ -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,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wCAAwC,IAAI,mDAAmD,EAAE,MAAM,eAAe,CAAC;AAGhI,MAAM,OAAO,iCAAkC,SAAQ,oBAAoB;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,mDAAmD,CACtE,OAAO,EACP,IAAI,CAAC,OAAO,CACZ,CAAC;QACF,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD","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,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wCAAwC,IAAI,mDAAmD,EAAE,MAAM,eAAe,CAAC;AAGhI,MAAM,OAAO,iCAAkC,SAAQ,oBAAoB;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,mDAAmD,CACtE,OAAO,EACP,IAAI,CAAC,OAAO,CACZ,CAAC;QACF,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD","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"]}
package/lib/blob.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EACR,KAAK,EACL,WAAW,EACX,KAAK,EACL,SAAS,EACT,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAa;aAYR,IAAI,EAAE,MAAM;IAX7B,SAAgB,IAAI,iBAAiB;IACrC,SAAgB,IAAI,kBAAkB;IACtC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAE7B;;;;;OAKG;gBAEc,IAAI,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,OAAO,GAAG,QAAkB;CAIvC;AAED;;GAEG;AACH,qBAAa,aAAa;aASG,IAAI,EAAE,MAAM;aAAkB,KAAK,EAAE,KAAK;IARtE,SAAgB,IAAI,sBAAsB;IAC1C,SAAgB,IAAI,kBAAkB;IAEtC;;;;OAIG;gBACyB,IAAI,EAAE,MAAM,EAAkB,KAAK,EAAE,KAAK;CACtE;AAED;;GAEG;AACH,qBAAa,mBAAmB;aAUH,IAAI,EAAE,MAAM;aAAkB,EAAE,EAAE,MAAM;IATpE,SAAgB,IAAI,iBAAiB;IACrC,SAAgB,IAAI,wBAAwB;IAC5C,SAAgB,KAAK,EAAE,WAAW,CAAC;IAEnC;;;;OAIG;gBACyB,IAAI,EAAE,MAAM,EAAkB,EAAE,EAAE,MAAM;CAGpE"}
1
+ {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EACR,KAAK,EACL,WAAW,EACX,KAAK,EACL,SAAS,EACT,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAa;aAYR,IAAI,EAAE,MAAM;IAX7B,SAAgB,IAAI,iBAAiB;IACrC,SAAgB,IAAI,kBAAkB;IACtC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAE7B;;;;;OAKG;gBAEc,IAAI,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,OAAO,GAAG,QAAkB;CAIvC;AAED;;GAEG;AACH,qBAAa,aAAa;aAUR,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,KAAK;IAV7B,SAAgB,IAAI,sBAAsB;IAC1C,SAAgB,IAAI,kBAAkB;IAEtC;;;;OAIG;gBAEc,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK;CAE7B;AAED;;GAEG;AACH,qBAAa,mBAAmB;aAWd,IAAI,EAAE,MAAM;aACZ,EAAE,EAAE,MAAM;IAX3B,SAAgB,IAAI,iBAAiB;IACrC,SAAgB,IAAI,wBAAwB;IAC5C,SAAgB,KAAK,EAAE,WAAW,CAAC;IAEnC;;;;OAIG;gBAEc,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM;CAI3B"}
package/lib/blob.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"blob.js","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EAIR,SAAS,GACT,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,aAAa;IAKzB;;;;;OAKG;IACH,YACiB,IAAY,EAC5B,QAAgB,EAChB,WAA+B,OAAO;QAFtB,SAAI,GAAJ,IAAI,CAAQ;QAXb,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAcrC,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAIzB;;;;OAIG;IACH,YAA4B,IAAY,EAAkB,KAAY;QAA1C,SAAI,GAAJ,IAAI,CAAQ;QAAkB,UAAK,GAAL,KAAK,CAAO;QARtD,SAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC1B,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAOmC,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAK/B;;;;OAIG;IACH,YAA4B,IAAY,EAAkB,EAAU;QAAxC,SAAI,GAAJ,IAAI,CAAQ;QAAkB,OAAE,GAAF,EAAE,CAAQ;QATpD,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,SAAI,GAAG,SAAS,CAAC,UAAU,CAAC;QAS3C,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;IACrB,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tFileMode,\n\tIBlob,\n\tIAttachment,\n\tITree,\n\tTreeEntry,\n} from \"@fluidframework/protocol-definitions\";\n\n/**\n * Basic implementation of a blob ITreeEntry\n */\nexport class BlobTreeEntry {\n\tpublic readonly mode = FileMode.File;\n\tpublic readonly type = TreeEntry.Blob;\n\tpublic readonly value: IBlob;\n\n\t/**\n\t * Creates a blob ITreeEntry\n\t * @param path - path of entry\n\t * @param contents - blob contents\n\t * @param encoding - encoding of contents; defaults to utf-8\n\t */\n\tconstructor(\n\t\tpublic readonly path: string,\n\t\tcontents: string,\n\t\tencoding: \"utf-8\" | \"base64\" = \"utf-8\",\n\t) {\n\t\tthis.value = { contents, encoding };\n\t}\n}\n\n/**\n * Basic implementation of a tree ITreeEntry\n */\nexport class TreeTreeEntry {\n\tpublic readonly mode = FileMode.Directory;\n\tpublic readonly type = TreeEntry.Tree;\n\n\t/**\n\t * Creates a tree ITreeEntry\n\t * @param path - path of entry\n\t * @param value - subtree\n\t */\n\tconstructor(public readonly path: string, public readonly value: ITree) {}\n}\n\n/**\n * Basic implementation of an attachment ITreeEntry\n */\nexport class AttachmentTreeEntry {\n\tpublic readonly mode = FileMode.File;\n\tpublic readonly type = TreeEntry.Attachment;\n\tpublic readonly value: IAttachment;\n\n\t/**\n\t * Creates an attachment ITreeEntry\n\t * @param path - path of entry\n\t * @param id - id of external blob attachment\n\t */\n\tconstructor(public readonly path: string, public readonly id: string) {\n\t\tthis.value = { id };\n\t}\n}\n"]}
1
+ {"version":3,"file":"blob.js","sourceRoot":"","sources":["../src/blob.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EAIR,SAAS,GACT,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,aAAa;IAKzB;;;;;OAKG;IACH,YACiB,IAAY,EAC5B,QAAgB,EAChB,WAA+B,OAAO;QAFtB,SAAI,GAAJ,IAAI,CAAQ;QAXb,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAcrC,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAIzB;;;;OAIG;IACH,YACiB,IAAY,EACZ,KAAY;QADZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAO;QAVb,SAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC1B,SAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAUnC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAK/B;;;;OAIG;IACH,YACiB,IAAY,EACZ,EAAU;QADV,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAQ;QAXX,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,SAAI,GAAG,SAAS,CAAC,UAAU,CAAC;QAY3C,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;IACrB,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tFileMode,\n\tIBlob,\n\tIAttachment,\n\tITree,\n\tTreeEntry,\n} from \"@fluidframework/protocol-definitions\";\n\n/**\n * Basic implementation of a blob ITreeEntry\n */\nexport class BlobTreeEntry {\n\tpublic readonly mode = FileMode.File;\n\tpublic readonly type = TreeEntry.Blob;\n\tpublic readonly value: IBlob;\n\n\t/**\n\t * Creates a blob ITreeEntry\n\t * @param path - path of entry\n\t * @param contents - blob contents\n\t * @param encoding - encoding of contents; defaults to utf-8\n\t */\n\tconstructor(\n\t\tpublic readonly path: string,\n\t\tcontents: string,\n\t\tencoding: \"utf-8\" | \"base64\" = \"utf-8\",\n\t) {\n\t\tthis.value = { contents, encoding };\n\t}\n}\n\n/**\n * Basic implementation of a tree ITreeEntry\n */\nexport class TreeTreeEntry {\n\tpublic readonly mode = FileMode.Directory;\n\tpublic readonly type = TreeEntry.Tree;\n\n\t/**\n\t * Creates a tree ITreeEntry\n\t * @param path - path of entry\n\t * @param value - subtree\n\t */\n\tconstructor(\n\t\tpublic readonly path: string,\n\t\tpublic readonly value: ITree,\n\t) {}\n}\n\n/**\n * Basic implementation of an attachment ITreeEntry\n */\nexport class AttachmentTreeEntry {\n\tpublic readonly mode = FileMode.File;\n\tpublic readonly type = TreeEntry.Attachment;\n\tpublic readonly value: IAttachment;\n\n\t/**\n\t * Creates an attachment ITreeEntry\n\t * @param path - path of entry\n\t * @param id - id of external blob attachment\n\t */\n\tconstructor(\n\t\tpublic readonly path: string,\n\t\tpublic readonly id: string,\n\t) {\n\t\tthis.value = { id };\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EAEnB,eAAe,EACf,yBAAyB,EACzB,YAAY,EAEZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEhF,oBAAY,YAAY;IACvB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,OAAO,IAAA;CACP;AAKD,wBAAgB,QAAQ,IAAI,YAAY,CASvC;AAED,+DAA+D;AAC/D,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,GAAG;IAC9D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAa,YAAW,gBAAgB,EAAE,eAAe;IAIpE,QAAQ,CAAC,QAAQ,EAAE,OAAO;IAFvD,QAAQ,CAAC,SAAS,uCAAuC;gBAE7C,OAAO,EAAE,MAAM,EAAW,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB;CAGzF;AAED;;GAEG;AACH,qBAAa,uBACZ,SAAQ,YACR,YAAW,gBAAgB,EAAE,eAAe;IAG5C,QAAQ,CAAC,SAAS,sCAAsC;IACxD,QAAQ,CAAC,QAAQ,SAAS;gBAEd,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB;CAG7D;AAED,qBAAa,mCACZ,SAAQ,YACR,YAAW,gBAAgB,EAAE,eAAe;IAG5C,MAAM,CAAC,QAAQ,CAAC,SAAS,kDAAkD;IAC3E,QAAQ,CAAC,SAAS,kDAAiD;IACnE,QAAQ,CAAC,QAAQ,SAAS;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEnC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,CAAC,EAAE,MAAM;CAIzF;AAED,qBAAa,kBACZ,SAAQ,YACR,YAAW,mBAAmB,EAAE,eAAe;IAQ9C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IANtC,QAAQ,CAAC,SAAS,sCAAsC;IACxD,QAAQ,CAAC,QAAQ,SAAS;gBAGzB,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,EACrC,KAAK,EAAE,yBAAyB;CAKjC;AAED,qBAAa,wBACZ,SAAQ,YACR,YAAW,yBAAyB,EAAE,eAAe;IAQpD,QAAQ,CAAC,WAAW,EAAE,YAAY;IALnC,QAAQ,CAAC,SAAS,uCAAuC;IACzD,QAAQ,CAAC,QAAQ,SAAS;gBAGzB,OAAO,EAAE,MAAM,EACN,WAAW,EAAE,YAAY,EAClC,KAAK,EAAE,yBAAyB;CAKjC;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,YAAa,YAAW,eAAe;IAG9F,QAAQ,CAAC,SAAS,EAAE,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO;gBAF1B,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,OAAO,EAC1B,KAAK,EAAE,yBAAyB;CAIjC;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAAtC,OAAO,EAAE,MAAM,EAAW,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,yBAAyB;CAGpF;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAAtC,OAAO,EAAE,MAAM,EAAW,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,yBAAyB;CAGpF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAa,YAAW,kBAAkB,EAAE,eAAe;IAO9F,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IALnC,QAAQ,CAAC,SAAS,mCAAmC;IACrD,QAAQ,CAAC,QAAQ,QAAQ;gBAGxB,OAAO,EAAE,MAAM,EACN,iBAAiB,EAAE,MAAM,EAClC,KAAK,EAAE,yBAAyB;CAIjC;AAED,eAAO,MAAM,gBAAgB,YAAa,MAAM,SAAS,yBAAyB,oCACf,CAAC;AAEpE,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,KAAK,EAAE,yBAAyB,GAC9B,eAAe,GAAG,mBAAmB,CAKvC;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAW,GAAG,KAAG,OAAmC,CAAC;AAEjF,gDAAgD;AAChD,eAAO,MAAM,6BAA6B,UAAW,GAAG,KAAG,MAAM,GAAG,SACrB,CAAC;AAEhD,kEAAkE;AAClE,eAAO,MAAM,sBAAsB,UAAW,GAAG,KAAG,MAAM,GAAG,SACuB,CAAC"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}