@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.
Files changed (154) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -2
  3. package/api-extractor-lint.json +13 -0
  4. package/api-extractor.json +9 -1
  5. package/api-report/driver-utils.api.md +48 -48
  6. package/dist/adapters/compression/compressionTypes.d.ts +2 -2
  7. package/dist/adapters/compression/compressionTypes.js +1 -1
  8. package/dist/adapters/compression/compressionTypes.js.map +1 -1
  9. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +1 -1
  10. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +1 -1
  11. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  12. package/dist/adapters/predefinedAdapters.d.ts +1 -1
  13. package/dist/adapters/predefinedAdapters.js +1 -1
  14. package/dist/adapters/predefinedAdapters.js.map +1 -1
  15. package/dist/blob.d.ts +3 -3
  16. package/dist/blob.js +3 -3
  17. package/dist/blob.js.map +1 -1
  18. package/dist/buildSnapshotTree.d.ts +1 -1
  19. package/dist/buildSnapshotTree.js +1 -1
  20. package/dist/buildSnapshotTree.js.map +1 -1
  21. package/dist/documentStorageServiceProxy.d.ts +1 -1
  22. package/dist/documentStorageServiceProxy.js +1 -1
  23. package/dist/documentStorageServiceProxy.js.map +1 -1
  24. package/dist/driver-utils-alpha.d.ts +169 -0
  25. package/dist/driver-utils-beta.d.ts +176 -0
  26. package/dist/driver-utils-public.d.ts +176 -0
  27. package/dist/driver-utils-untrimmed.d.ts +590 -0
  28. package/dist/error.d.ts +1 -1
  29. package/dist/error.js +1 -1
  30. package/dist/error.js.map +1 -1
  31. package/dist/insecureUrlResolver.d.ts +1 -1
  32. package/dist/insecureUrlResolver.js +1 -1
  33. package/dist/insecureUrlResolver.js.map +1 -1
  34. package/dist/messageRecognition.d.ts +3 -3
  35. package/dist/messageRecognition.js +3 -3
  36. package/dist/messageRecognition.js.map +1 -1
  37. package/dist/network.d.ts +19 -19
  38. package/dist/network.d.ts.map +1 -1
  39. package/dist/network.js +18 -18
  40. package/dist/network.js.map +1 -1
  41. package/dist/networkUtils.d.ts +1 -1
  42. package/dist/networkUtils.js +1 -1
  43. package/dist/networkUtils.js.map +1 -1
  44. package/dist/packageVersion.d.ts +1 -1
  45. package/dist/packageVersion.js +1 -1
  46. package/dist/packageVersion.js.map +1 -1
  47. package/dist/parallelRequests.d.ts +6 -6
  48. package/dist/parallelRequests.d.ts.map +1 -1
  49. package/dist/parallelRequests.js +14 -14
  50. package/dist/parallelRequests.js.map +1 -1
  51. package/dist/prefetchDocumentStorageService.d.ts +1 -1
  52. package/dist/prefetchDocumentStorageService.js +1 -1
  53. package/dist/prefetchDocumentStorageService.js.map +1 -1
  54. package/dist/rateLimiter.d.ts +1 -1
  55. package/dist/rateLimiter.js +1 -1
  56. package/dist/rateLimiter.js.map +1 -1
  57. package/dist/readAndParse.d.ts +1 -1
  58. package/dist/readAndParse.js +1 -1
  59. package/dist/readAndParse.js.map +1 -1
  60. package/dist/runWithRetry.d.ts +11 -9
  61. package/dist/runWithRetry.d.ts.map +1 -1
  62. package/dist/runWithRetry.js +20 -16
  63. package/dist/runWithRetry.js.map +1 -1
  64. package/dist/summaryForCreateNew.d.ts +2 -2
  65. package/dist/summaryForCreateNew.js +2 -2
  66. package/dist/summaryForCreateNew.js.map +1 -1
  67. package/dist/treeConversions.d.ts +1 -1
  68. package/dist/treeConversions.js +1 -1
  69. package/dist/treeConversions.js.map +1 -1
  70. package/dist/tsdoc-metadata.json +1 -1
  71. package/lib/adapters/compression/compressionTypes.d.ts +2 -2
  72. package/lib/adapters/compression/compressionTypes.js +1 -1
  73. package/lib/adapters/compression/compressionTypes.js.map +1 -1
  74. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +1 -1
  75. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +1 -1
  76. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  77. package/lib/adapters/predefinedAdapters.d.ts +1 -1
  78. package/lib/adapters/predefinedAdapters.js +1 -1
  79. package/lib/adapters/predefinedAdapters.js.map +1 -1
  80. package/lib/blob.d.ts +3 -3
  81. package/lib/blob.js +3 -3
  82. package/lib/blob.js.map +1 -1
  83. package/lib/buildSnapshotTree.d.ts +1 -1
  84. package/lib/buildSnapshotTree.js +1 -1
  85. package/lib/buildSnapshotTree.js.map +1 -1
  86. package/lib/documentStorageServiceProxy.d.ts +1 -1
  87. package/lib/documentStorageServiceProxy.js +1 -1
  88. package/lib/documentStorageServiceProxy.js.map +1 -1
  89. package/lib/driver-utils-alpha.d.ts +169 -0
  90. package/lib/driver-utils-beta.d.ts +176 -0
  91. package/lib/driver-utils-public.d.ts +176 -0
  92. package/lib/driver-utils-untrimmed.d.ts +590 -0
  93. package/lib/error.d.ts +1 -1
  94. package/lib/error.js +1 -1
  95. package/lib/error.js.map +1 -1
  96. package/lib/insecureUrlResolver.d.ts +1 -1
  97. package/lib/insecureUrlResolver.js +1 -1
  98. package/lib/insecureUrlResolver.js.map +1 -1
  99. package/lib/messageRecognition.d.ts +3 -3
  100. package/lib/messageRecognition.js +3 -3
  101. package/lib/messageRecognition.js.map +1 -1
  102. package/lib/network.d.ts +19 -19
  103. package/lib/network.d.ts.map +1 -1
  104. package/lib/network.js +18 -18
  105. package/lib/network.js.map +1 -1
  106. package/lib/networkUtils.d.ts +1 -1
  107. package/lib/networkUtils.js +1 -1
  108. package/lib/networkUtils.js.map +1 -1
  109. package/lib/packageVersion.d.ts +1 -1
  110. package/lib/packageVersion.js +1 -1
  111. package/lib/packageVersion.js.map +1 -1
  112. package/lib/parallelRequests.d.ts +6 -6
  113. package/lib/parallelRequests.d.ts.map +1 -1
  114. package/lib/parallelRequests.js +14 -14
  115. package/lib/parallelRequests.js.map +1 -1
  116. package/lib/prefetchDocumentStorageService.d.ts +1 -1
  117. package/lib/prefetchDocumentStorageService.js +1 -1
  118. package/lib/prefetchDocumentStorageService.js.map +1 -1
  119. package/lib/rateLimiter.d.ts +1 -1
  120. package/lib/rateLimiter.js +1 -1
  121. package/lib/rateLimiter.js.map +1 -1
  122. package/lib/readAndParse.d.ts +1 -1
  123. package/lib/readAndParse.js +1 -1
  124. package/lib/readAndParse.js.map +1 -1
  125. package/lib/runWithRetry.d.ts +11 -9
  126. package/lib/runWithRetry.d.ts.map +1 -1
  127. package/lib/runWithRetry.js +20 -16
  128. package/lib/runWithRetry.js.map +1 -1
  129. package/lib/summaryForCreateNew.d.ts +2 -2
  130. package/lib/summaryForCreateNew.js +2 -2
  131. package/lib/summaryForCreateNew.js.map +1 -1
  132. package/lib/treeConversions.d.ts +1 -1
  133. package/lib/treeConversions.js +1 -1
  134. package/lib/treeConversions.js.map +1 -1
  135. package/package.json +38 -19
  136. package/src/adapters/compression/compressionTypes.ts +2 -2
  137. package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +1 -1
  138. package/src/adapters/predefinedAdapters.ts +1 -1
  139. package/src/blob.ts +3 -3
  140. package/src/buildSnapshotTree.ts +1 -1
  141. package/src/documentStorageServiceProxy.ts +1 -1
  142. package/src/error.ts +1 -1
  143. package/src/insecureUrlResolver.ts +1 -1
  144. package/src/messageRecognition.ts +3 -3
  145. package/src/network.ts +19 -19
  146. package/src/networkUtils.ts +1 -1
  147. package/src/packageVersion.ts +1 -1
  148. package/src/parallelRequests.ts +15 -15
  149. package/src/prefetchDocumentStorageService.ts +1 -1
  150. package/src/rateLimiter.ts +1 -1
  151. package/src/readAndParse.ts +1 -1
  152. package/src/runWithRetry.ts +25 -18
  153. package/src/summaryForCreateNew.ts +2 -2
  154. package/src/treeConversions.ts +1 -1
@@ -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
- * @public
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
- * @public
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
- let retryAfterMs = 1000; // has to be positive!
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
- // If the error is throttling error, then wait for the specified time before retrying.
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 = 30000;
143
+ const MaxReconnectDelayInMsWhenEndpointIsReachable = 60000;
145
144
  const MaxReconnectDelayInMsWhenEndpointIsNotReachable = 8000;
146
145
 
147
146
  /**
148
- * In case endpoint(service or socket) is not reachable, then we maybe offline or may have got some transient error
149
- * not related to endpoint, in that case we want to try at faster pace and hence the max wait is lesser 8s as compared
150
- * to when endpoint is reachable in which case it is 30s.
151
- * @param error - error based on which we decide max wait time.
152
- * @returns Max wait time.
153
- * @public
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
- return isFluidError(error) && error.getTelemetryProperties().endpointReached === true
157
- ? MaxReconnectDelayInMsWhenEndpointIsReachable
158
- : MaxReconnectDelayInMsWhenEndpointIsNotReachable;
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
- * @public
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
- * @public
64
+ * @internal
65
65
  */
66
66
  export function getQuorumValuesFromProtocolSummary(
67
67
  protocolSummary: ISummaryTree,
@@ -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
- * @public
15
+ * @internal
16
16
  */
17
17
  export function convertSummaryTreeToSnapshotITree(summaryTree: ISummaryTree): ITree {
18
18
  const entries: ITreeEntry[] = [];