@fluidframework/odsp-driver 2.0.0-dev-rc.1.0.0.228517 → 2.0.0-dev-rc.1.0.0.232845

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 (225) hide show
  1. package/api-report/odsp-driver.api.md +5 -5
  2. package/dist/compactSnapshotParser.d.ts +2 -2
  3. package/dist/compactSnapshotParser.d.ts.map +1 -1
  4. package/dist/compactSnapshotParser.js +8 -7
  5. package/dist/compactSnapshotParser.js.map +1 -1
  6. package/dist/compactSnapshotWriter.d.ts +2 -2
  7. package/dist/compactSnapshotWriter.d.ts.map +1 -1
  8. package/dist/compactSnapshotWriter.js +1 -1
  9. package/dist/compactSnapshotWriter.js.map +1 -1
  10. package/dist/contracts.d.ts +14 -0
  11. package/dist/contracts.d.ts.map +1 -1
  12. package/dist/contracts.js +5 -1
  13. package/dist/contracts.js.map +1 -1
  14. package/dist/createFile.d.ts +1 -1
  15. package/dist/createFile.d.ts.map +1 -1
  16. package/dist/createFile.js +9 -28
  17. package/dist/createFile.js.map +1 -1
  18. package/dist/createNewContainerOnExistingFile.d.ts.map +1 -1
  19. package/dist/createNewContainerOnExistingFile.js.map +1 -1
  20. package/dist/createNewUtils.d.ts +2 -2
  21. package/dist/createNewUtils.d.ts.map +1 -1
  22. package/dist/createNewUtils.js +4 -3
  23. package/dist/createNewUtils.js.map +1 -1
  24. package/dist/createOdspCreateContainerRequest.d.ts +2 -2
  25. package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
  26. package/dist/createOdspCreateContainerRequest.js.map +1 -1
  27. package/dist/epochTracker.d.ts.map +1 -1
  28. package/dist/epochTracker.js +3 -4
  29. package/dist/epochTracker.js.map +1 -1
  30. package/dist/fetchSnapshot.d.ts +4 -4
  31. package/dist/fetchSnapshot.d.ts.map +1 -1
  32. package/dist/fetchSnapshot.js +12 -13
  33. package/dist/fetchSnapshot.js.map +1 -1
  34. package/dist/getFileLink.d.ts.map +1 -1
  35. package/dist/getFileLink.js +3 -3
  36. package/dist/getFileLink.js.map +1 -1
  37. package/dist/localOdspDriver/localOdspDocumentService.d.ts +3 -2
  38. package/dist/localOdspDriver/localOdspDocumentService.d.ts.map +1 -1
  39. package/dist/localOdspDriver/localOdspDocumentService.js +3 -1
  40. package/dist/localOdspDriver/localOdspDocumentService.js.map +1 -1
  41. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts +2 -1
  42. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -1
  43. package/dist/localOdspDriver/localOdspDocumentStorageManager.js +3 -0
  44. package/dist/localOdspDriver/localOdspDocumentStorageManager.js.map +1 -1
  45. package/dist/odsp-driver-alpha.d.ts +4 -3
  46. package/dist/odsp-driver-beta.d.ts +3 -3
  47. package/dist/odsp-driver-public.d.ts +3 -3
  48. package/dist/odsp-driver-untrimmed.d.ts +5 -4
  49. package/dist/odspCache.d.ts +2 -2
  50. package/dist/odspCache.d.ts.map +1 -1
  51. package/dist/odspCache.js.map +1 -1
  52. package/dist/odspDelayLoadedDeltaStream.d.ts +5 -1
  53. package/dist/odspDelayLoadedDeltaStream.d.ts.map +1 -1
  54. package/dist/odspDelayLoadedDeltaStream.js +56 -5
  55. package/dist/odspDelayLoadedDeltaStream.js.map +1 -1
  56. package/dist/odspDocumentService.d.ts +3 -2
  57. package/dist/odspDocumentService.d.ts.map +1 -1
  58. package/dist/odspDocumentService.js +6 -3
  59. package/dist/odspDocumentService.js.map +1 -1
  60. package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
  61. package/dist/odspDocumentServiceFactoryCore.js +1 -8
  62. package/dist/odspDocumentServiceFactoryCore.js.map +1 -1
  63. package/dist/odspDocumentStorageManager.d.ts +2 -1
  64. package/dist/odspDocumentStorageManager.d.ts.map +1 -1
  65. package/dist/odspDocumentStorageManager.js +30 -11
  66. package/dist/odspDocumentStorageManager.js.map +1 -1
  67. package/dist/odspDocumentStorageServiceBase.d.ts +3 -3
  68. package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
  69. package/dist/odspDocumentStorageServiceBase.js +3 -3
  70. package/dist/odspDocumentStorageServiceBase.js.map +1 -1
  71. package/dist/odspDriverUrlResolver.d.ts.map +1 -1
  72. package/dist/odspDriverUrlResolver.js +2 -11
  73. package/dist/odspDriverUrlResolver.js.map +1 -1
  74. package/dist/odspError.d.ts.map +1 -1
  75. package/dist/odspError.js +2 -2
  76. package/dist/odspError.js.map +1 -1
  77. package/dist/odspPublicUtils.d.ts +1 -0
  78. package/dist/odspPublicUtils.d.ts.map +1 -1
  79. package/dist/odspPublicUtils.js.map +1 -1
  80. package/dist/odspSnapshotParser.d.ts +2 -2
  81. package/dist/odspSnapshotParser.d.ts.map +1 -1
  82. package/dist/odspSnapshotParser.js +2 -1
  83. package/dist/odspSnapshotParser.js.map +1 -1
  84. package/dist/odspUtils.d.ts +11 -7
  85. package/dist/odspUtils.d.ts.map +1 -1
  86. package/dist/odspUtils.js +20 -16
  87. package/dist/odspUtils.js.map +1 -1
  88. package/dist/packageVersion.d.ts +1 -1
  89. package/dist/packageVersion.js +1 -1
  90. package/dist/packageVersion.js.map +1 -1
  91. package/dist/retryErrorsStorageAdapter.d.ts +2 -1
  92. package/dist/retryErrorsStorageAdapter.d.ts.map +1 -1
  93. package/dist/retryErrorsStorageAdapter.js +8 -0
  94. package/dist/retryErrorsStorageAdapter.js.map +1 -1
  95. package/dist/retryUtils.js +1 -1
  96. package/dist/retryUtils.js.map +1 -1
  97. package/dist/tsdoc-metadata.json +1 -1
  98. package/dist/zipItDataRepresentationUtils.js +2 -2
  99. package/dist/zipItDataRepresentationUtils.js.map +1 -1
  100. package/lib/compactSnapshotParser.d.mts +2 -2
  101. package/lib/compactSnapshotParser.d.mts.map +1 -1
  102. package/lib/compactSnapshotParser.mjs +8 -7
  103. package/lib/compactSnapshotParser.mjs.map +1 -1
  104. package/lib/compactSnapshotWriter.d.mts +2 -2
  105. package/lib/compactSnapshotWriter.d.mts.map +1 -1
  106. package/lib/compactSnapshotWriter.mjs +1 -1
  107. package/lib/compactSnapshotWriter.mjs.map +1 -1
  108. package/lib/contracts.d.mts +14 -0
  109. package/lib/contracts.d.mts.map +1 -1
  110. package/lib/contracts.mjs +4 -0
  111. package/lib/contracts.mjs.map +1 -1
  112. package/lib/createFile.d.mts +1 -1
  113. package/lib/createFile.d.mts.map +1 -1
  114. package/lib/createFile.mjs +10 -29
  115. package/lib/createFile.mjs.map +1 -1
  116. package/lib/createNewContainerOnExistingFile.d.mts.map +1 -1
  117. package/lib/createNewContainerOnExistingFile.mjs.map +1 -1
  118. package/lib/createNewUtils.d.mts +2 -2
  119. package/lib/createNewUtils.d.mts.map +1 -1
  120. package/lib/createNewUtils.mjs +4 -3
  121. package/lib/createNewUtils.mjs.map +1 -1
  122. package/lib/createOdspCreateContainerRequest.d.mts +2 -2
  123. package/lib/createOdspCreateContainerRequest.d.mts.map +1 -1
  124. package/lib/createOdspCreateContainerRequest.mjs.map +1 -1
  125. package/lib/epochTracker.d.mts.map +1 -1
  126. package/lib/epochTracker.mjs +4 -5
  127. package/lib/epochTracker.mjs.map +1 -1
  128. package/lib/fetchSnapshot.d.mts +4 -4
  129. package/lib/fetchSnapshot.d.mts.map +1 -1
  130. package/lib/fetchSnapshot.mjs +13 -14
  131. package/lib/fetchSnapshot.mjs.map +1 -1
  132. package/lib/getFileLink.d.mts.map +1 -1
  133. package/lib/getFileLink.mjs +3 -3
  134. package/lib/getFileLink.mjs.map +1 -1
  135. package/lib/localOdspDriver/localOdspDocumentService.d.mts +3 -2
  136. package/lib/localOdspDriver/localOdspDocumentService.d.mts.map +1 -1
  137. package/lib/localOdspDriver/localOdspDocumentService.mjs +3 -1
  138. package/lib/localOdspDriver/localOdspDocumentService.mjs.map +1 -1
  139. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.mts +2 -1
  140. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.mts.map +1 -1
  141. package/lib/localOdspDriver/localOdspDocumentStorageManager.mjs +3 -0
  142. package/lib/localOdspDriver/localOdspDocumentStorageManager.mjs.map +1 -1
  143. package/lib/odsp-driver-alpha.d.mts +4 -3
  144. package/lib/odsp-driver-beta.d.mts +3 -3
  145. package/lib/odsp-driver-public.d.mts +3 -3
  146. package/lib/odsp-driver-untrimmed.d.mts +5 -4
  147. package/lib/odspCache.d.mts +2 -2
  148. package/lib/odspCache.d.mts.map +1 -1
  149. package/lib/odspCache.mjs.map +1 -1
  150. package/lib/odspDelayLoadedDeltaStream.d.mts +5 -1
  151. package/lib/odspDelayLoadedDeltaStream.d.mts.map +1 -1
  152. package/lib/odspDelayLoadedDeltaStream.mjs +57 -6
  153. package/lib/odspDelayLoadedDeltaStream.mjs.map +1 -1
  154. package/lib/odspDocumentService.d.mts +3 -2
  155. package/lib/odspDocumentService.d.mts.map +1 -1
  156. package/lib/odspDocumentService.mjs +6 -3
  157. package/lib/odspDocumentService.mjs.map +1 -1
  158. package/lib/odspDocumentServiceFactoryCore.d.mts.map +1 -1
  159. package/lib/odspDocumentServiceFactoryCore.mjs +2 -9
  160. package/lib/odspDocumentServiceFactoryCore.mjs.map +1 -1
  161. package/lib/odspDocumentStorageManager.d.mts +2 -1
  162. package/lib/odspDocumentStorageManager.d.mts.map +1 -1
  163. package/lib/odspDocumentStorageManager.mjs +33 -14
  164. package/lib/odspDocumentStorageManager.mjs.map +1 -1
  165. package/lib/odspDocumentStorageServiceBase.d.mts +3 -3
  166. package/lib/odspDocumentStorageServiceBase.d.mts.map +1 -1
  167. package/lib/odspDocumentStorageServiceBase.mjs +3 -3
  168. package/lib/odspDocumentStorageServiceBase.mjs.map +1 -1
  169. package/lib/odspDriverUrlResolver.d.mts.map +1 -1
  170. package/lib/odspDriverUrlResolver.mjs +4 -13
  171. package/lib/odspDriverUrlResolver.mjs.map +1 -1
  172. package/lib/odspError.d.mts.map +1 -1
  173. package/lib/odspError.mjs +2 -2
  174. package/lib/odspError.mjs.map +1 -1
  175. package/lib/odspPublicUtils.d.mts +1 -0
  176. package/lib/odspPublicUtils.d.mts.map +1 -1
  177. package/lib/odspPublicUtils.mjs.map +1 -1
  178. package/lib/odspSnapshotParser.d.mts +2 -2
  179. package/lib/odspSnapshotParser.d.mts.map +1 -1
  180. package/lib/odspSnapshotParser.mjs +2 -1
  181. package/lib/odspSnapshotParser.mjs.map +1 -1
  182. package/lib/odspUtils.d.mts +11 -7
  183. package/lib/odspUtils.d.mts.map +1 -1
  184. package/lib/odspUtils.mjs +19 -16
  185. package/lib/odspUtils.mjs.map +1 -1
  186. package/lib/packageVersion.d.mts +1 -1
  187. package/lib/packageVersion.mjs +1 -1
  188. package/lib/packageVersion.mjs.map +1 -1
  189. package/lib/retryErrorsStorageAdapter.d.mts +2 -1
  190. package/lib/retryErrorsStorageAdapter.d.mts.map +1 -1
  191. package/lib/retryErrorsStorageAdapter.mjs +9 -1
  192. package/lib/retryErrorsStorageAdapter.mjs.map +1 -1
  193. package/lib/retryUtils.mjs +2 -2
  194. package/lib/retryUtils.mjs.map +1 -1
  195. package/lib/zipItDataRepresentationUtils.mjs +2 -2
  196. package/lib/zipItDataRepresentationUtils.mjs.map +1 -1
  197. package/package.json +25 -16
  198. package/src/compactSnapshotParser.ts +10 -9
  199. package/src/compactSnapshotWriter.ts +3 -3
  200. package/src/contracts.ts +17 -0
  201. package/src/createFile.ts +10 -38
  202. package/src/createNewContainerOnExistingFile.ts +2 -2
  203. package/src/createNewUtils.ts +7 -6
  204. package/src/createOdspCreateContainerRequest.ts +2 -2
  205. package/src/epochTracker.ts +4 -4
  206. package/src/fetchSnapshot.ts +21 -22
  207. package/src/getFileLink.ts +3 -3
  208. package/src/localOdspDriver/localOdspDocumentService.ts +9 -2
  209. package/src/localOdspDriver/localOdspDocumentStorageManager.ts +10 -3
  210. package/src/odspCache.ts +2 -2
  211. package/src/odspDelayLoadedDeltaStream.ts +67 -6
  212. package/src/odspDocumentService.ts +10 -2
  213. package/src/odspDocumentServiceFactoryCore.ts +3 -11
  214. package/src/odspDocumentStorageManager.ts +60 -27
  215. package/src/odspDocumentStorageServiceBase.ts +8 -5
  216. package/src/odspDriverUrlResolver.ts +3 -17
  217. package/src/odspError.ts +2 -3
  218. package/src/odspPublicUtils.ts +1 -0
  219. package/src/odspSnapshotParser.ts +5 -6
  220. package/src/odspUtils.ts +34 -28
  221. package/src/packageVersion.ts +1 -1
  222. package/src/retryErrorsStorageAdapter.ts +12 -1
  223. package/src/retryUtils.ts +2 -2
  224. package/src/zipItDataRepresentationUtils.ts +2 -2
  225. /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
package/src/odspUtils.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { ITelemetryProperties, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
7
- import { IResolvedUrl, DriverErrorType } from "@fluidframework/driver-definitions";
7
+ import { IResolvedUrl, ISnapshot } from "@fluidframework/driver-definitions";
8
8
  import {
9
9
  isOnline,
10
10
  OnlineStatus,
@@ -29,11 +29,10 @@ import {
29
29
  import {
30
30
  IOdspResolvedUrl,
31
31
  TokenFetchOptions,
32
- OdspErrorType,
32
+ OdspErrorTypes,
33
33
  tokenFromResponse,
34
34
  isTokenFromCache,
35
35
  OdspResourceTokenFetchOptions,
36
- ShareLinkTypes,
37
36
  ISharingLinkKind,
38
37
  TokenFetcher,
39
38
  ICacheEntry,
@@ -44,6 +43,7 @@ import {
44
43
  import { fetch } from "./fetch";
45
44
  import { pkgVersion as driverVersion } from "./packageVersion";
46
45
  import { IOdspSnapshot } from "./contracts";
46
+ import { ISnapshotContents } from "./odspPublicUtils";
47
47
 
48
48
  export const getWithRetryForTokenRefreshRepeat = "getWithRetryForTokenRefreshRepeat";
49
49
 
@@ -86,11 +86,11 @@ export async function getWithRetryForTokenRefresh<T>(
86
86
  const options: TokenFetchOptionsEx = { refresh: true, previousError: e };
87
87
  switch (e.errorType) {
88
88
  // If the error is 401 or 403 refresh the token and try once more.
89
- case DriverErrorType.authorizationError:
89
+ case OdspErrorTypes.authorizationError:
90
90
  return get({ ...options, claims: e.claims, tenantId: e.tenantId });
91
91
 
92
- case DriverErrorType.incorrectServerResponse: // some error on the wire, retry once
93
- case OdspErrorType.fetchTokenError: // If the token was null, then retry once.
92
+ case OdspErrorTypes.incorrectServerResponse: // some error on the wire, retry once
93
+ case OdspErrorTypes.fetchTokenError: // If the token was null, then retry once.
94
94
  return get(options);
95
95
 
96
96
  default:
@@ -118,7 +118,7 @@ export async function fetchHelper(
118
118
  throw new NonRetryableError(
119
119
  // pre-0.58 error message: No response from fetch call
120
120
  "No response from ODSP fetch call",
121
- DriverErrorType.incorrectServerResponse,
121
+ OdspErrorTypes.incorrectServerResponse,
122
122
  { driverVersion },
123
123
  );
124
124
  }
@@ -154,13 +154,17 @@ export async function fetchHelper(
154
154
 
155
155
  // This error is thrown by fetch() when AbortSignal is provided and it gets cancelled
156
156
  if (error.name === "AbortError") {
157
- throw new RetryableError("Fetch Timeout (AbortError)", OdspErrorType.fetchTimeout, {
158
- driverVersion,
159
- });
157
+ throw new RetryableError(
158
+ "Fetch Timeout (AbortError)",
159
+ OdspErrorTypes.fetchTimeout,
160
+ {
161
+ driverVersion,
162
+ },
163
+ );
160
164
  }
161
165
  // TCP/IP timeout
162
166
  if (redactedErrorText.includes("ETIMEDOUT")) {
163
- throw new RetryableError("Fetch Timeout (ETIMEDOUT)", OdspErrorType.fetchTimeout, {
167
+ throw new RetryableError("Fetch Timeout (ETIMEDOUT)", OdspErrorTypes.fetchTimeout, {
164
168
  driverVersion,
165
169
  });
166
170
  }
@@ -170,7 +174,7 @@ export async function fetchHelper(
170
174
  throw new RetryableError(
171
175
  // pre-0.58 error message prefix: Offline
172
176
  `ODSP fetch failure (Offline): ${redactedErrorText}`,
173
- DriverErrorType.offlineError,
177
+ OdspErrorTypes.offlineError,
174
178
  {
175
179
  driverVersion,
176
180
  rawErrorMessage: taggedErrorMessage,
@@ -182,7 +186,7 @@ export async function fetchHelper(
182
186
  throw new RetryableError(
183
187
  // pre-0.58 error message prefix: Fetch error
184
188
  `ODSP fetch failure: ${redactedErrorText}`,
185
- DriverErrorType.fetchFailure,
189
+ OdspErrorTypes.fetchFailure,
186
190
  {
187
191
  driverVersion,
188
192
  rawErrorMessage: taggedErrorMessage,
@@ -279,11 +283,8 @@ export interface INewFileInfo extends IFileInfoBase {
279
283
  /**
280
284
  * application can request creation of a share link along with the creation of a new file
281
285
  * by passing in an optional param to specify the kind of sharing link
282
- * (at the time of adding this comment Sept/2021), odsp only supports csl
283
- * ShareLinkTypes will deprecated in future. Use ISharingLinkKind instead which specifies both
284
- * share link type and the role type.
285
286
  */
286
- createLinkType?: ShareLinkTypes | ISharingLinkKind;
287
+ createLinkType?: ISharingLinkKind;
287
288
  }
288
289
 
289
290
  export interface IExistingFileInfo extends IFileInfoBase {
@@ -391,7 +392,7 @@ export function toInstrumentedOdspTokenFetcher(
391
392
  throw new NonRetryableError(
392
393
  // pre-0.58 error message: Token is null for ${name} call
393
394
  `The Host-provided token fetcher returned null`,
394
- OdspErrorType.fetchTokenError,
395
+ OdspErrorTypes.fetchTokenError,
395
396
  { method: name, driverVersion },
396
397
  );
397
398
  }
@@ -406,7 +407,7 @@ export function toInstrumentedOdspTokenFetcher(
406
407
  (errorMessage) =>
407
408
  new NetworkErrorBasic(
408
409
  `The Host-provided token fetcher threw an error`,
409
- OdspErrorType.fetchTokenError,
410
+ OdspErrorTypes.fetchTokenError,
410
411
  typeof rawCanRetry === "boolean"
411
412
  ? rawCanRetry
412
413
  : false /* canRetry */,
@@ -443,19 +444,13 @@ export const maxUmpPostBodySize = 79872;
443
444
  * @param shareLinkType - Kind of sharing link requested
444
445
  * @returns A string of request parameters that can be concatenated with the base URI
445
446
  */
446
- export function buildOdspShareLinkReqParams(
447
- shareLinkType: ShareLinkTypes | ISharingLinkKind | undefined,
448
- ) {
447
+ export function buildOdspShareLinkReqParams(shareLinkType: ISharingLinkKind | undefined) {
449
448
  if (!shareLinkType) {
450
449
  return;
451
450
  }
452
- const scope = (shareLinkType as ISharingLinkKind).scope;
453
- if (!scope) {
454
- // eslint-disable-next-line @typescript-eslint/no-base-to-string
455
- return `createLinkType=${shareLinkType}`;
456
- }
451
+ const scope = shareLinkType.scope;
457
452
  let shareLinkRequestParams = `createLinkScope=${scope}`;
458
- const role = (shareLinkType as ISharingLinkKind).role;
453
+ const role = shareLinkType.role;
459
454
  shareLinkRequestParams = role
460
455
  ? `${shareLinkRequestParams}&createLinkRole=${role}`
461
456
  : shareLinkRequestParams;
@@ -479,3 +474,14 @@ export async function measureP<T>(callback: () => Promise<T>): Promise<[T, numbe
479
474
  export function getJoinSessionCacheKey(odspResolvedUrl: IOdspResolvedUrl) {
480
475
  return `${odspResolvedUrl.hashedDocumentId}/joinsession`;
481
476
  }
477
+
478
+ /**
479
+ * Utility API to check if the type of snapshot contents is `ISnapshot`.
480
+ * @internal
481
+ * @param obj - obj whose type needs to be identified.
482
+ */
483
+ export function isInstanceOfISnapshot(
484
+ obj: ISnapshotContents | ISnapshot | undefined,
485
+ ): obj is ISnapshot {
486
+ return obj !== undefined && "snapshotFormatV" in obj && obj.snapshotFormatV === 1;
487
+ }
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/odsp-driver";
9
- export const pkgVersion = "2.0.0-dev-rc.1.0.0.228517";
9
+ export const pkgVersion = "2.0.0-dev-rc.1.0.0.232845";
@@ -3,11 +3,13 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { LoggingError, ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
6
+ import { LoggingError, ITelemetryLoggerExt, UsageError } from "@fluidframework/telemetry-utils";
7
7
  import {
8
8
  FetchSource,
9
9
  IDocumentStorageService,
10
10
  IDocumentStorageServicePolicies,
11
+ ISnapshot,
12
+ ISnapshotFetchOptions,
11
13
  ISummaryContext,
12
14
  } from "@fluidframework/driver-definitions";
13
15
  import {
@@ -49,6 +51,15 @@ export class RetryErrorsStorageAdapter implements IDocumentStorageService, IDisp
49
51
  );
50
52
  }
51
53
 
54
+ public async getSnapshot(snapshotFetchOptions?: ISnapshotFetchOptions): Promise<ISnapshot> {
55
+ return this.runWithRetry(async () => {
56
+ if (this.internalStorageService.getSnapshot !== undefined) {
57
+ return this.internalStorageService.getSnapshot(snapshotFetchOptions);
58
+ }
59
+ throw new UsageError("getSnapshot should exist in storage adapter in ODSP driver");
60
+ }, "storage_getSnapshot");
61
+ }
62
+
52
63
  public async readBlob(id: string): Promise<ArrayBufferLike> {
53
64
  return this.runWithRetry(
54
65
  async () => this.internalStorageService.readBlob(id),
package/src/retryUtils.ts CHANGED
@@ -7,7 +7,7 @@ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
7
7
  import { performance } from "@fluid-internal/client-utils";
8
8
  import { delay } from "@fluidframework/core-utils";
9
9
  import { canRetryOnError, getRetryDelayFromError } from "@fluidframework/driver-utils";
10
- import { OdspErrorType } from "@fluidframework/odsp-driver-definitions";
10
+ import { OdspErrorTypes } from "@fluidframework/odsp-driver-definitions";
11
11
  import { Odsp409Error } from "./epochTracker";
12
12
 
13
13
  /**
@@ -44,7 +44,7 @@ export async function runWithRetry<T>(
44
44
  const canRetry = canRetryOnError(error);
45
45
 
46
46
  const coherencyError = error?.[Odsp409Error] === true;
47
- const serviceReadonlyError = error?.errorType === OdspErrorType.serviceReadOnly;
47
+ const serviceReadonlyError = error?.errorType === OdspErrorTypes.serviceReadOnly;
48
48
 
49
49
  // logging the first failed retry instead of every attempt. We want to avoid filling telemetry
50
50
  // when we have tight loop of retrying in offline mode, but we also want to know what caused
@@ -12,7 +12,7 @@ import { Uint8ArrayToArrayBuffer, Uint8ArrayToString } from "@fluid-internal/cli
12
12
  import { assert } from "@fluidframework/core-utils";
13
13
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
14
14
  import { NonRetryableError } from "@fluidframework/driver-utils";
15
- import { DriverErrorType } from "@fluidframework/driver-definitions";
15
+ import { OdspErrorTypes } from "@fluidframework/odsp-driver-definitions";
16
16
  import { ReadBuffer } from "./ReadBufferUtils";
17
17
  import { pkgVersion as driverVersion } from "./packageVersion";
18
18
  import { measure } from "./odspUtils";
@@ -620,7 +620,7 @@ function throwBufferParseException(
620
620
  ): never {
621
621
  throw new NonRetryableError(
622
622
  `Buffer parsing exception: ${message}`,
623
- DriverErrorType.incorrectServerResponse,
623
+ OdspErrorTypes.incorrectServerResponse,
624
624
  {
625
625
  nodeType: getNodeType(node),
626
626
  expectedNodeType,
File without changes