@fluidframework/driver-utils 2.0.0-internal.7.2.2 → 2.0.0-internal.7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +1 -2
- package/api-extractor-lint.json +13 -0
- package/api-extractor.json +9 -1
- package/api-report/driver-utils.api.md +48 -48
- package/dist/adapters/compression/compressionTypes.d.ts +2 -2
- package/dist/adapters/compression/compressionTypes.js +1 -1
- package/dist/adapters/compression/compressionTypes.js.map +1 -1
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +1 -1
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +1 -1
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
- package/dist/adapters/predefinedAdapters.d.ts +1 -1
- package/dist/adapters/predefinedAdapters.js +1 -1
- package/dist/adapters/predefinedAdapters.js.map +1 -1
- package/dist/blob.d.ts +3 -3
- package/dist/blob.js +3 -3
- package/dist/blob.js.map +1 -1
- package/dist/buildSnapshotTree.d.ts +1 -1
- package/dist/buildSnapshotTree.js +1 -1
- package/dist/buildSnapshotTree.js.map +1 -1
- package/dist/documentStorageServiceProxy.d.ts +1 -1
- package/dist/documentStorageServiceProxy.js +1 -1
- package/dist/documentStorageServiceProxy.js.map +1 -1
- package/dist/driver-utils-alpha.d.ts +169 -0
- package/dist/driver-utils-beta.d.ts +176 -0
- package/dist/driver-utils-public.d.ts +176 -0
- package/dist/driver-utils-untrimmed.d.ts +590 -0
- package/dist/error.d.ts +1 -1
- package/dist/error.js +1 -1
- package/dist/error.js.map +1 -1
- package/dist/insecureUrlResolver.d.ts +1 -1
- package/dist/insecureUrlResolver.js +1 -1
- package/dist/insecureUrlResolver.js.map +1 -1
- package/dist/messageRecognition.d.ts +3 -3
- package/dist/messageRecognition.js +3 -3
- package/dist/messageRecognition.js.map +1 -1
- package/dist/network.d.ts +19 -19
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +18 -18
- package/dist/network.js.map +1 -1
- package/dist/networkUtils.d.ts +1 -1
- package/dist/networkUtils.js +1 -1
- package/dist/networkUtils.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/parallelRequests.d.ts +6 -6
- package/dist/parallelRequests.d.ts.map +1 -1
- package/dist/parallelRequests.js +14 -14
- package/dist/parallelRequests.js.map +1 -1
- package/dist/prefetchDocumentStorageService.d.ts +1 -1
- package/dist/prefetchDocumentStorageService.js +1 -1
- package/dist/prefetchDocumentStorageService.js.map +1 -1
- package/dist/rateLimiter.d.ts +1 -1
- package/dist/rateLimiter.js +1 -1
- package/dist/rateLimiter.js.map +1 -1
- package/dist/readAndParse.d.ts +1 -1
- package/dist/readAndParse.js +1 -1
- package/dist/readAndParse.js.map +1 -1
- package/dist/runWithRetry.d.ts +11 -9
- package/dist/runWithRetry.d.ts.map +1 -1
- package/dist/runWithRetry.js +20 -16
- package/dist/runWithRetry.js.map +1 -1
- package/dist/summaryForCreateNew.d.ts +2 -2
- package/dist/summaryForCreateNew.js +2 -2
- package/dist/summaryForCreateNew.js.map +1 -1
- package/dist/treeConversions.d.ts +1 -1
- package/dist/treeConversions.js +1 -1
- package/dist/treeConversions.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/adapters/compression/compressionTypes.d.ts +2 -2
- package/lib/adapters/compression/compressionTypes.js +1 -1
- package/lib/adapters/compression/compressionTypes.js.map +1 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +1 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +1 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
- package/lib/adapters/predefinedAdapters.d.ts +1 -1
- package/lib/adapters/predefinedAdapters.js +1 -1
- package/lib/adapters/predefinedAdapters.js.map +1 -1
- package/lib/blob.d.ts +3 -3
- package/lib/blob.js +3 -3
- package/lib/blob.js.map +1 -1
- package/lib/buildSnapshotTree.d.ts +1 -1
- package/lib/buildSnapshotTree.js +1 -1
- package/lib/buildSnapshotTree.js.map +1 -1
- package/lib/documentStorageServiceProxy.d.ts +1 -1
- package/lib/documentStorageServiceProxy.js +1 -1
- package/lib/documentStorageServiceProxy.js.map +1 -1
- package/lib/driver-utils-alpha.d.ts +169 -0
- package/lib/driver-utils-beta.d.ts +176 -0
- package/lib/driver-utils-public.d.ts +176 -0
- package/lib/driver-utils-untrimmed.d.ts +590 -0
- package/lib/error.d.ts +1 -1
- package/lib/error.js +1 -1
- package/lib/error.js.map +1 -1
- package/lib/insecureUrlResolver.d.ts +1 -1
- package/lib/insecureUrlResolver.js +1 -1
- package/lib/insecureUrlResolver.js.map +1 -1
- package/lib/messageRecognition.d.ts +3 -3
- package/lib/messageRecognition.js +3 -3
- package/lib/messageRecognition.js.map +1 -1
- package/lib/network.d.ts +19 -19
- package/lib/network.d.ts.map +1 -1
- package/lib/network.js +18 -18
- package/lib/network.js.map +1 -1
- package/lib/networkUtils.d.ts +1 -1
- package/lib/networkUtils.js +1 -1
- package/lib/networkUtils.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/parallelRequests.d.ts +6 -6
- package/lib/parallelRequests.d.ts.map +1 -1
- package/lib/parallelRequests.js +14 -14
- package/lib/parallelRequests.js.map +1 -1
- package/lib/prefetchDocumentStorageService.d.ts +1 -1
- package/lib/prefetchDocumentStorageService.js +1 -1
- package/lib/prefetchDocumentStorageService.js.map +1 -1
- package/lib/rateLimiter.d.ts +1 -1
- package/lib/rateLimiter.js +1 -1
- package/lib/rateLimiter.js.map +1 -1
- package/lib/readAndParse.d.ts +1 -1
- package/lib/readAndParse.js +1 -1
- package/lib/readAndParse.js.map +1 -1
- package/lib/runWithRetry.d.ts +11 -9
- package/lib/runWithRetry.d.ts.map +1 -1
- package/lib/runWithRetry.js +20 -16
- package/lib/runWithRetry.js.map +1 -1
- package/lib/summaryForCreateNew.d.ts +2 -2
- package/lib/summaryForCreateNew.js +2 -2
- package/lib/summaryForCreateNew.js.map +1 -1
- package/lib/treeConversions.d.ts +1 -1
- package/lib/treeConversions.js +1 -1
- package/lib/treeConversions.js.map +1 -1
- package/package.json +38 -19
- package/src/adapters/compression/compressionTypes.ts +2 -2
- package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +1 -1
- package/src/adapters/predefinedAdapters.ts +1 -1
- package/src/blob.ts +3 -3
- package/src/buildSnapshotTree.ts +1 -1
- package/src/documentStorageServiceProxy.ts +1 -1
- package/src/error.ts +1 -1
- package/src/insecureUrlResolver.ts +1 -1
- package/src/messageRecognition.ts +3 -3
- package/src/network.ts +19 -19
- package/src/networkUtils.ts +1 -1
- package/src/packageVersion.ts +1 -1
- package/src/parallelRequests.ts +15 -15
- package/src/prefetchDocumentStorageService.ts +1 -1
- package/src/rateLimiter.ts +1 -1
- package/src/readAndParse.ts +1 -1
- package/src/runWithRetry.ts +25 -18
- package/src/summaryForCreateNew.ts +2 -2
- package/src/treeConversions.ts +1 -1
package/src/runWithRetry.ts
CHANGED
|
@@ -14,7 +14,7 @@ import { NonRetryableError } from ".";
|
|
|
14
14
|
/**
|
|
15
15
|
* Interface describing an object passed to various network APIs.
|
|
16
16
|
* It allows caller to control cancellation, as well as learn about any delays.
|
|
17
|
-
* @
|
|
17
|
+
* @internal
|
|
18
18
|
*/
|
|
19
19
|
export interface IProgress {
|
|
20
20
|
/**
|
|
@@ -45,7 +45,7 @@ export interface IProgress {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
* @
|
|
48
|
+
* @internal
|
|
49
49
|
*/
|
|
50
50
|
export async function runWithRetry<T>(
|
|
51
51
|
api: (cancel?: AbortSignal) => Promise<T>,
|
|
@@ -55,7 +55,8 @@ export async function runWithRetry<T>(
|
|
|
55
55
|
): Promise<T> {
|
|
56
56
|
let result: T | undefined;
|
|
57
57
|
let success = false;
|
|
58
|
-
|
|
58
|
+
// We double this value in first try in when we calculate time to wait for in "calculateMaxWaitTime" function.
|
|
59
|
+
let retryAfterMs = 500; // has to be positive!
|
|
59
60
|
let numRetries = 0;
|
|
60
61
|
const startTime = performance.now();
|
|
61
62
|
let lastError: any;
|
|
@@ -116,10 +117,8 @@ export async function runWithRetry<T>(
|
|
|
116
117
|
|
|
117
118
|
numRetries++;
|
|
118
119
|
lastError = err;
|
|
119
|
-
//
|
|
120
|
-
retryAfterMs =
|
|
121
|
-
getRetryDelayFromError(err) ??
|
|
122
|
-
Math.min(retryAfterMs * 2, calculateMaxWaitTime(err));
|
|
120
|
+
// Wait for the calculated time before retrying.
|
|
121
|
+
retryAfterMs = calculateMaxWaitTime(retryAfterMs, err);
|
|
123
122
|
if (progress.onRetry) {
|
|
124
123
|
progress.onRetry(retryAfterMs, err);
|
|
125
124
|
}
|
|
@@ -141,19 +140,27 @@ export async function runWithRetry<T>(
|
|
|
141
140
|
return result!;
|
|
142
141
|
}
|
|
143
142
|
|
|
144
|
-
const MaxReconnectDelayInMsWhenEndpointIsReachable =
|
|
143
|
+
const MaxReconnectDelayInMsWhenEndpointIsReachable = 60000;
|
|
145
144
|
const MaxReconnectDelayInMsWhenEndpointIsNotReachable = 8000;
|
|
146
145
|
|
|
147
146
|
/**
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
* @
|
|
153
|
-
* @
|
|
147
|
+
* Calculates time to wait for after an error based on the error and wait time for previous iteration.
|
|
148
|
+
* In case endpoint(service or socket) is not reachable, then we maybe offline or may have got some
|
|
149
|
+
* transient error not related to endpoint, in that case we want to try at faster pace and hence the
|
|
150
|
+
* max wait is lesser 8s as compared to when endpoint is reachable in which case it is 60s.
|
|
151
|
+
* @param delayMs - wait time for previous iteration
|
|
152
|
+
* @param error - error based on which we decide wait time.
|
|
153
|
+
* @returns Wait time to wait for.
|
|
154
|
+
* @internal
|
|
154
155
|
*/
|
|
155
|
-
export function calculateMaxWaitTime(error: unknown): number {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
export function calculateMaxWaitTime(delayMs: number, error: unknown): number {
|
|
157
|
+
const retryDelayFromError = getRetryDelayFromError(error);
|
|
158
|
+
let newDelayMs = Math.max(retryDelayFromError ?? 0, delayMs * 2);
|
|
159
|
+
newDelayMs = Math.min(
|
|
160
|
+
delayMs,
|
|
161
|
+
isFluidError(error) && error.getTelemetryProperties().endpointReached === true
|
|
162
|
+
? MaxReconnectDelayInMsWhenEndpointIsReachable
|
|
163
|
+
: MaxReconnectDelayInMsWhenEndpointIsNotReachable,
|
|
164
|
+
);
|
|
165
|
+
return newDelayMs;
|
|
159
166
|
}
|
|
@@ -49,7 +49,7 @@ export function isCombinedAppAndProtocolSummary(
|
|
|
49
49
|
/**
|
|
50
50
|
* Extract the attributes from the protocol summary.
|
|
51
51
|
* @param protocolSummary - protocol summary from which the values are to be extracted.
|
|
52
|
-
* @
|
|
52
|
+
* @internal
|
|
53
53
|
*/
|
|
54
54
|
export function getDocAttributesFromProtocolSummary(
|
|
55
55
|
protocolSummary: ISummaryTree,
|
|
@@ -61,7 +61,7 @@ export function getDocAttributesFromProtocolSummary(
|
|
|
61
61
|
/**
|
|
62
62
|
* Extract quorum values from the protocol summary.
|
|
63
63
|
* @param protocolSummary - protocol summary from which the values are to be extracted.
|
|
64
|
-
* @
|
|
64
|
+
* @internal
|
|
65
65
|
*/
|
|
66
66
|
export function getQuorumValuesFromProtocolSummary(
|
|
67
67
|
protocolSummary: ISummaryTree,
|
package/src/treeConversions.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { isCombinedAppAndProtocolSummary } from "./summaryForCreateNew";
|
|
|
12
12
|
/**
|
|
13
13
|
* Converts ISummaryTree to ITree format.
|
|
14
14
|
* @param summaryTree - summary tree in ISummaryTree format
|
|
15
|
-
* @
|
|
15
|
+
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export function convertSummaryTreeToSnapshotITree(summaryTree: ISummaryTree): ITree {
|
|
18
18
|
const entries: ITreeEntry[] = [];
|