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

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 (617) hide show
  1. package/.eslintrc.cjs +18 -3
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +44 -0
  4. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
  5. package/api-extractor-lint.json +1 -1
  6. package/api-extractor.json +1 -1
  7. package/api-report/odsp-driver.api.md +11 -12
  8. package/dist/ReadBufferUtils.d.ts.map +1 -1
  9. package/dist/ReadBufferUtils.js.map +1 -1
  10. package/dist/WriteBufferUtils.d.ts +1 -1
  11. package/dist/WriteBufferUtils.d.ts.map +1 -1
  12. package/dist/WriteBufferUtils.js +12 -12
  13. package/dist/WriteBufferUtils.js.map +1 -1
  14. package/dist/checkUrl.d.ts.map +1 -1
  15. package/dist/checkUrl.js +5 -3
  16. package/dist/checkUrl.js.map +1 -1
  17. package/dist/compactSnapshotParser.d.ts.map +1 -1
  18. package/dist/compactSnapshotParser.js +87 -69
  19. package/dist/compactSnapshotParser.js.map +1 -1
  20. package/dist/compactSnapshotWriter.d.ts.map +1 -1
  21. package/dist/compactSnapshotWriter.js +25 -19
  22. package/dist/compactSnapshotWriter.js.map +1 -1
  23. package/dist/contracts.d.ts +10 -4
  24. package/dist/contracts.d.ts.map +1 -1
  25. package/dist/contracts.js.map +1 -1
  26. package/dist/createFile.d.ts +3 -3
  27. package/dist/createFile.d.ts.map +1 -1
  28. package/dist/createFile.js +30 -27
  29. package/dist/createFile.js.map +1 -1
  30. package/dist/createNewContainerOnExistingFile.d.ts +2 -2
  31. package/dist/createNewContainerOnExistingFile.d.ts.map +1 -1
  32. package/dist/createNewContainerOnExistingFile.js +14 -14
  33. package/dist/createNewContainerOnExistingFile.js.map +1 -1
  34. package/dist/createNewModule.d.ts +2 -2
  35. package/dist/createNewModule.d.ts.map +1 -1
  36. package/dist/createNewModule.js +4 -4
  37. package/dist/createNewModule.js.map +1 -1
  38. package/dist/createNewUtils.d.ts +2 -2
  39. package/dist/createNewUtils.d.ts.map +1 -1
  40. package/dist/createNewUtils.js +12 -8
  41. package/dist/createNewUtils.js.map +1 -1
  42. package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
  43. package/dist/createOdspCreateContainerRequest.js +6 -2
  44. package/dist/createOdspCreateContainerRequest.js.map +1 -1
  45. package/dist/createOdspUrl.d.ts +1 -1
  46. package/dist/createOdspUrl.d.ts.map +1 -1
  47. package/dist/createOdspUrl.js.map +1 -1
  48. package/dist/epochTracker.d.ts +10 -9
  49. package/dist/epochTracker.d.ts.map +1 -1
  50. package/dist/epochTracker.js +66 -43
  51. package/dist/epochTracker.js.map +1 -1
  52. package/dist/fetchSnapshot.d.ts +11 -8
  53. package/dist/fetchSnapshot.d.ts.map +1 -1
  54. package/dist/fetchSnapshot.js +79 -58
  55. package/dist/fetchSnapshot.js.map +1 -1
  56. package/dist/getFileLink.d.ts.map +1 -1
  57. package/dist/getFileLink.js +24 -17
  58. package/dist/getFileLink.js.map +1 -1
  59. package/dist/getQueryString.d.ts.map +1 -1
  60. package/dist/getQueryString.js +6 -0
  61. package/dist/getQueryString.js.map +1 -1
  62. package/dist/index.d.ts +19 -19
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +44 -44
  65. package/dist/index.js.map +1 -1
  66. package/dist/localOdspDriver/localOdspDocumentService.d.ts +1 -1
  67. package/dist/localOdspDriver/localOdspDocumentService.d.ts.map +1 -1
  68. package/dist/localOdspDriver/localOdspDocumentService.js +5 -5
  69. package/dist/localOdspDriver/localOdspDocumentService.js.map +1 -1
  70. package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts +8 -6
  71. package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +1 -1
  72. package/dist/localOdspDriver/localOdspDocumentServiceFactory.js +10 -9
  73. package/dist/localOdspDriver/localOdspDocumentServiceFactory.js.map +1 -1
  74. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts +1 -1
  75. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -1
  76. package/dist/localOdspDriver/localOdspDocumentStorageManager.js +6 -6
  77. package/dist/localOdspDriver/localOdspDocumentStorageManager.js.map +1 -1
  78. package/dist/odsp-driver-alpha.d.ts +27 -12
  79. package/dist/odsp-driver-beta.d.ts +1 -2
  80. package/dist/odsp-driver-public.d.ts +1 -2
  81. package/dist/odsp-driver-untrimmed.d.ts +29 -12
  82. package/dist/odspCache.d.ts +3 -3
  83. package/dist/odspCache.d.ts.map +1 -1
  84. package/dist/odspCache.js +3 -4
  85. package/dist/odspCache.js.map +1 -1
  86. package/dist/odspDelayLoadedDeltaStream.d.ts +7 -5
  87. package/dist/odspDelayLoadedDeltaStream.d.ts.map +1 -1
  88. package/dist/odspDelayLoadedDeltaStream.js +41 -28
  89. package/dist/odspDelayLoadedDeltaStream.js.map +1 -1
  90. package/dist/odspDeltaStorageService.d.ts +7 -7
  91. package/dist/odspDeltaStorageService.d.ts.map +1 -1
  92. package/dist/odspDeltaStorageService.js +5 -5
  93. package/dist/odspDeltaStorageService.js.map +1 -1
  94. package/dist/odspDocumentDeltaConnection.d.ts +1 -1
  95. package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
  96. package/dist/odspDocumentDeltaConnection.js +41 -23
  97. package/dist/odspDocumentDeltaConnection.js.map +1 -1
  98. package/dist/odspDocumentService.d.ts +6 -4
  99. package/dist/odspDocumentService.d.ts.map +1 -1
  100. package/dist/odspDocumentService.js +19 -16
  101. package/dist/odspDocumentService.js.map +1 -1
  102. package/dist/odspDocumentServiceFactory.d.ts +6 -1
  103. package/dist/odspDocumentServiceFactory.d.ts.map +1 -1
  104. package/dist/odspDocumentServiceFactory.js +9 -4
  105. package/dist/odspDocumentServiceFactory.js.map +1 -1
  106. package/dist/odspDocumentServiceFactoryCore.d.ts +4 -4
  107. package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
  108. package/dist/odspDocumentServiceFactoryCore.js +26 -22
  109. package/dist/odspDocumentServiceFactoryCore.js.map +1 -1
  110. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts +1 -1
  111. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
  112. package/dist/odspDocumentServiceFactoryWithCodeSplit.js +2 -2
  113. package/dist/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -1
  114. package/dist/odspDocumentStorageManager.d.ts +15 -9
  115. package/dist/odspDocumentStorageManager.d.ts.map +1 -1
  116. package/dist/odspDocumentStorageManager.js +219 -181
  117. package/dist/odspDocumentStorageManager.js.map +1 -1
  118. package/dist/odspDocumentStorageServiceBase.d.ts +2 -4
  119. package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
  120. package/dist/odspDocumentStorageServiceBase.js +32 -29
  121. package/dist/odspDocumentStorageServiceBase.js.map +1 -1
  122. package/dist/odspDriverUrlResolver.d.ts +5 -1
  123. package/dist/odspDriverUrlResolver.d.ts.map +1 -1
  124. package/dist/odspDriverUrlResolver.js +27 -24
  125. package/dist/odspDriverUrlResolver.js.map +1 -1
  126. package/dist/odspDriverUrlResolverForShareLink.d.ts +17 -6
  127. package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
  128. package/dist/odspDriverUrlResolverForShareLink.js +49 -39
  129. package/dist/odspDriverUrlResolverForShareLink.js.map +1 -1
  130. package/dist/odspError.d.ts +1 -1
  131. package/dist/odspError.d.ts.map +1 -1
  132. package/dist/odspError.js +5 -5
  133. package/dist/odspError.js.map +1 -1
  134. package/dist/odspFluidFileLink.d.ts +1 -1
  135. package/dist/odspFluidFileLink.d.ts.map +1 -1
  136. package/dist/odspFluidFileLink.js +2 -2
  137. package/dist/odspFluidFileLink.js.map +1 -1
  138. package/dist/odspLocationRedirection.js +2 -2
  139. package/dist/odspLocationRedirection.js.map +1 -1
  140. package/dist/odspPublicUtils.d.ts +3 -0
  141. package/dist/odspPublicUtils.d.ts.map +1 -1
  142. package/dist/odspPublicUtils.js +3 -0
  143. package/dist/odspPublicUtils.js.map +1 -1
  144. package/dist/odspSnapshotParser.d.ts +1 -1
  145. package/dist/odspSnapshotParser.d.ts.map +1 -1
  146. package/dist/odspSnapshotParser.js +3 -2
  147. package/dist/odspSnapshotParser.js.map +1 -1
  148. package/dist/odspSummaryUploadManager.d.ts +1 -1
  149. package/dist/odspSummaryUploadManager.d.ts.map +1 -1
  150. package/dist/odspSummaryUploadManager.js +9 -6
  151. package/dist/odspSummaryUploadManager.js.map +1 -1
  152. package/dist/odspUrlHelper.d.ts.map +1 -1
  153. package/dist/odspUrlHelper.js +1 -2
  154. package/dist/odspUrlHelper.js.map +1 -1
  155. package/dist/odspUtils.d.ts +19 -7
  156. package/dist/odspUtils.d.ts.map +1 -1
  157. package/dist/odspUtils.js +61 -31
  158. package/dist/odspUtils.js.map +1 -1
  159. package/dist/opsCaching.d.ts +1 -1
  160. package/dist/opsCaching.d.ts.map +1 -1
  161. package/dist/opsCaching.js +2 -1
  162. package/dist/opsCaching.js.map +1 -1
  163. package/dist/package.json +3 -0
  164. package/dist/packageVersion.d.ts +1 -1
  165. package/dist/packageVersion.js +1 -1
  166. package/dist/packageVersion.js.map +1 -1
  167. package/dist/prefetchLatestSnapshot.d.ts +2 -2
  168. package/dist/prefetchLatestSnapshot.d.ts.map +1 -1
  169. package/dist/prefetchLatestSnapshot.js +17 -12
  170. package/dist/prefetchLatestSnapshot.js.map +1 -1
  171. package/dist/retryErrorsStorageAdapter.d.ts +0 -1
  172. package/dist/retryErrorsStorageAdapter.d.ts.map +1 -1
  173. package/dist/retryErrorsStorageAdapter.js +2 -5
  174. package/dist/retryErrorsStorageAdapter.js.map +1 -1
  175. package/dist/retryUtils.d.ts.map +1 -1
  176. package/dist/retryUtils.js +6 -2
  177. package/dist/retryUtils.js.map +1 -1
  178. package/dist/socketModule.d.ts.map +1 -1
  179. package/dist/socketModule.js +2 -0
  180. package/dist/socketModule.js.map +1 -1
  181. package/dist/tsdoc-metadata.json +1 -1
  182. package/dist/vroom.d.ts +2 -2
  183. package/dist/vroom.d.ts.map +1 -1
  184. package/dist/vroom.js +5 -5
  185. package/dist/vroom.js.map +1 -1
  186. package/dist/zipItDataRepresentationUtils.d.ts +1 -1
  187. package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
  188. package/dist/zipItDataRepresentationUtils.js +15 -11
  189. package/dist/zipItDataRepresentationUtils.js.map +1 -1
  190. package/lib/{ReadBufferUtils.d.mts → ReadBufferUtils.d.ts} +1 -1
  191. package/lib/ReadBufferUtils.d.ts.map +1 -0
  192. package/lib/{ReadBufferUtils.mjs → ReadBufferUtils.js} +1 -1
  193. package/lib/ReadBufferUtils.js.map +1 -0
  194. package/lib/{WriteBufferUtils.d.mts → WriteBufferUtils.d.ts} +2 -2
  195. package/lib/WriteBufferUtils.d.ts.map +1 -0
  196. package/lib/{WriteBufferUtils.mjs → WriteBufferUtils.js} +2 -2
  197. package/lib/WriteBufferUtils.js.map +1 -0
  198. package/lib/{checkUrl.d.mts → checkUrl.d.ts} +1 -1
  199. package/lib/checkUrl.d.ts.map +1 -0
  200. package/lib/{checkUrl.mjs → checkUrl.js} +5 -3
  201. package/lib/checkUrl.js.map +1 -0
  202. package/lib/{compactSnapshotParser.d.mts → compactSnapshotParser.d.ts} +1 -1
  203. package/lib/compactSnapshotParser.d.ts.map +1 -0
  204. package/lib/{compactSnapshotParser.mjs → compactSnapshotParser.js} +61 -43
  205. package/lib/compactSnapshotParser.js.map +1 -0
  206. package/lib/{compactSnapshotWriter.d.mts → compactSnapshotWriter.d.ts} +1 -1
  207. package/lib/compactSnapshotWriter.d.ts.map +1 -0
  208. package/lib/{compactSnapshotWriter.mjs → compactSnapshotWriter.js} +13 -7
  209. package/lib/compactSnapshotWriter.js.map +1 -0
  210. package/lib/{constants.d.mts → constants.d.ts} +1 -1
  211. package/lib/constants.d.ts.map +1 -0
  212. package/lib/{constants.mjs → constants.js} +1 -1
  213. package/lib/constants.js.map +1 -0
  214. package/lib/{contracts.d.mts → contracts.d.ts} +11 -5
  215. package/lib/contracts.d.ts.map +1 -0
  216. package/lib/{contracts.mjs → contracts.js} +1 -1
  217. package/lib/contracts.js.map +1 -0
  218. package/lib/{contractsPublic.d.mts → contractsPublic.d.ts} +1 -1
  219. package/lib/contractsPublic.d.ts.map +1 -0
  220. package/lib/{contractsPublic.mjs → contractsPublic.js} +1 -1
  221. package/lib/contractsPublic.js.map +1 -0
  222. package/lib/{createFile.d.mts → createFile.d.ts} +4 -4
  223. package/lib/createFile.d.ts.map +1 -0
  224. package/lib/{createFile.mjs → createFile.js} +15 -12
  225. package/lib/createFile.js.map +1 -0
  226. package/lib/{createNewContainerOnExistingFile.d.mts → createNewContainerOnExistingFile.d.ts} +3 -3
  227. package/lib/createNewContainerOnExistingFile.d.ts.map +1 -0
  228. package/lib/{createNewContainerOnExistingFile.mjs → createNewContainerOnExistingFile.js} +7 -7
  229. package/lib/createNewContainerOnExistingFile.js.map +1 -0
  230. package/lib/{createNewModule.mjs → createNewModule.d.ts} +3 -3
  231. package/lib/createNewModule.d.ts.map +1 -0
  232. package/lib/{createNewModule.d.mts → createNewModule.js} +3 -3
  233. package/lib/createNewModule.js.map +1 -0
  234. package/lib/{createNewUtils.d.mts → createNewUtils.d.ts} +3 -3
  235. package/lib/createNewUtils.d.ts.map +1 -0
  236. package/lib/{createNewUtils.mjs → createNewUtils.js} +9 -5
  237. package/lib/createNewUtils.js.map +1 -0
  238. package/lib/{createOdspCreateContainerRequest.d.mts → createOdspCreateContainerRequest.d.ts} +5 -1
  239. package/lib/createOdspCreateContainerRequest.d.ts.map +1 -0
  240. package/lib/{createOdspCreateContainerRequest.mjs → createOdspCreateContainerRequest.js} +6 -2
  241. package/lib/createOdspCreateContainerRequest.js.map +1 -0
  242. package/lib/{createOdspUrl.d.mts → createOdspUrl.d.ts} +2 -2
  243. package/lib/createOdspUrl.d.ts.map +1 -0
  244. package/lib/{createOdspUrl.mjs → createOdspUrl.js} +1 -1
  245. package/lib/createOdspUrl.js.map +1 -0
  246. package/lib/{epochTracker.d.mts → epochTracker.d.ts} +11 -10
  247. package/lib/epochTracker.d.ts.map +1 -0
  248. package/lib/{epochTracker.mjs → epochTracker.js} +56 -33
  249. package/lib/epochTracker.js.map +1 -0
  250. package/lib/{fetch.d.mts → fetch.d.ts} +1 -1
  251. package/lib/fetch.d.ts.map +1 -0
  252. package/lib/{fetch.mjs → fetch.js} +1 -1
  253. package/lib/fetch.js.map +1 -0
  254. package/lib/{fetchSnapshot.d.mts → fetchSnapshot.d.ts} +12 -9
  255. package/lib/fetchSnapshot.d.ts.map +1 -0
  256. package/lib/{fetchSnapshot.mjs → fetchSnapshot.js} +61 -40
  257. package/lib/fetchSnapshot.js.map +1 -0
  258. package/lib/{getFileLink.d.mts → getFileLink.d.ts} +1 -1
  259. package/lib/getFileLink.d.ts.map +1 -0
  260. package/lib/{getFileLink.mjs → getFileLink.js} +14 -7
  261. package/lib/getFileLink.js.map +1 -0
  262. package/lib/{getQueryString.d.mts → getQueryString.d.ts} +5 -1
  263. package/lib/getQueryString.d.ts.map +1 -0
  264. package/lib/{getQueryString.mjs → getQueryString.js} +7 -1
  265. package/lib/getQueryString.js.map +1 -0
  266. package/lib/{getUrlAndHeadersWithAuth.d.mts → getUrlAndHeadersWithAuth.d.ts} +1 -1
  267. package/lib/getUrlAndHeadersWithAuth.d.ts.map +1 -0
  268. package/lib/{getUrlAndHeadersWithAuth.mjs → getUrlAndHeadersWithAuth.js} +1 -1
  269. package/lib/getUrlAndHeadersWithAuth.js.map +1 -0
  270. package/lib/{index.d.mts → index.d.ts} +20 -20
  271. package/lib/index.d.ts.map +1 -0
  272. package/lib/index.js +29 -0
  273. package/lib/index.js.map +1 -0
  274. package/lib/localOdspDriver/{localOdspDeltaStorageService.d.mts → localOdspDeltaStorageService.d.ts} +1 -1
  275. package/lib/localOdspDriver/localOdspDeltaStorageService.d.ts.map +1 -0
  276. package/lib/localOdspDriver/{localOdspDeltaStorageService.mjs → localOdspDeltaStorageService.js} +1 -1
  277. package/lib/localOdspDriver/localOdspDeltaStorageService.js.map +1 -0
  278. package/lib/localOdspDriver/{localOdspDocumentService.d.mts → localOdspDocumentService.d.ts} +2 -2
  279. package/lib/localOdspDriver/localOdspDocumentService.d.ts.map +1 -0
  280. package/lib/localOdspDriver/{localOdspDocumentService.mjs → localOdspDocumentService.js} +4 -4
  281. package/lib/localOdspDriver/localOdspDocumentService.js.map +1 -0
  282. package/lib/localOdspDriver/{localOdspDocumentServiceFactory.d.mts → localOdspDocumentServiceFactory.d.ts} +9 -7
  283. package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +1 -0
  284. package/lib/localOdspDriver/{localOdspDocumentServiceFactory.mjs → localOdspDocumentServiceFactory.js} +9 -8
  285. package/lib/localOdspDriver/localOdspDocumentServiceFactory.js.map +1 -0
  286. package/lib/localOdspDriver/{localOdspDocumentStorageManager.d.mts → localOdspDocumentStorageManager.d.ts} +2 -2
  287. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -0
  288. package/lib/localOdspDriver/{localOdspDocumentStorageManager.mjs → localOdspDocumentStorageManager.js} +4 -4
  289. package/lib/localOdspDriver/localOdspDocumentStorageManager.js.map +1 -0
  290. package/lib/{odsp-driver-alpha.d.mts → odsp-driver-alpha.d.ts} +27 -12
  291. package/lib/{odsp-driver-public.d.mts → odsp-driver-beta.d.ts} +1 -2
  292. package/lib/{odsp-driver-beta.d.mts → odsp-driver-public.d.ts} +1 -2
  293. package/lib/{odsp-driver-untrimmed.d.mts → odsp-driver-untrimmed.d.ts} +29 -12
  294. package/lib/{odspCache.d.mts → odspCache.d.ts} +8 -4
  295. package/lib/odspCache.d.ts.map +1 -0
  296. package/lib/{odspCache.mjs → odspCache.js} +6 -3
  297. package/lib/odspCache.js.map +1 -0
  298. package/lib/{odspDelayLoadedDeltaStream.d.mts → odspDelayLoadedDeltaStream.d.ts} +8 -6
  299. package/lib/odspDelayLoadedDeltaStream.d.ts.map +1 -0
  300. package/lib/{odspDelayLoadedDeltaStream.mjs → odspDelayLoadedDeltaStream.js} +33 -20
  301. package/lib/odspDelayLoadedDeltaStream.js.map +1 -0
  302. package/lib/{odspDeltaStorageService.d.mts → odspDeltaStorageService.d.ts} +8 -8
  303. package/lib/odspDeltaStorageService.d.ts.map +1 -0
  304. package/lib/{odspDeltaStorageService.mjs → odspDeltaStorageService.js} +5 -5
  305. package/lib/odspDeltaStorageService.js.map +1 -0
  306. package/lib/{odspDocumentDeltaConnection.d.mts → odspDocumentDeltaConnection.d.ts} +2 -2
  307. package/lib/odspDocumentDeltaConnection.d.ts.map +1 -0
  308. package/lib/{odspDocumentDeltaConnection.mjs → odspDocumentDeltaConnection.js} +34 -16
  309. package/lib/odspDocumentDeltaConnection.js.map +1 -0
  310. package/lib/{odspDocumentService.d.mts → odspDocumentService.d.ts} +7 -5
  311. package/lib/odspDocumentService.d.ts.map +1 -0
  312. package/lib/{odspDocumentService.mjs → odspDocumentService.js} +16 -11
  313. package/lib/odspDocumentService.js.map +1 -0
  314. package/lib/{odspDocumentServiceFactory.d.mts → odspDocumentServiceFactory.d.ts} +7 -2
  315. package/lib/odspDocumentServiceFactory.d.ts.map +1 -0
  316. package/lib/{odspDocumentServiceFactory.mjs → odspDocumentServiceFactory.js} +9 -3
  317. package/lib/odspDocumentServiceFactory.js.map +1 -0
  318. package/lib/{odspDocumentServiceFactoryCore.d.mts → odspDocumentServiceFactoryCore.d.ts} +5 -5
  319. package/lib/odspDocumentServiceFactoryCore.d.ts.map +1 -0
  320. package/lib/{odspDocumentServiceFactoryCore.mjs → odspDocumentServiceFactoryCore.js} +23 -17
  321. package/lib/odspDocumentServiceFactoryCore.js.map +1 -0
  322. package/lib/{odspDocumentServiceFactoryWithCodeSplit.d.mts → odspDocumentServiceFactoryWithCodeSplit.d.ts} +2 -2
  323. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -0
  324. package/lib/{odspDocumentServiceFactoryWithCodeSplit.mjs → odspDocumentServiceFactoryWithCodeSplit.js} +2 -2
  325. package/lib/odspDocumentServiceFactoryWithCodeSplit.js.map +1 -0
  326. package/lib/{odspDocumentStorageManager.d.mts → odspDocumentStorageManager.d.ts} +16 -10
  327. package/lib/odspDocumentStorageManager.d.ts.map +1 -0
  328. package/lib/{odspDocumentStorageManager.mjs → odspDocumentStorageManager.js} +207 -167
  329. package/lib/odspDocumentStorageManager.js.map +1 -0
  330. package/lib/{odspDocumentStorageServiceBase.d.mts → odspDocumentStorageServiceBase.d.ts} +3 -5
  331. package/lib/odspDocumentStorageServiceBase.d.ts.map +1 -0
  332. package/lib/{odspDocumentStorageServiceBase.mjs → odspDocumentStorageServiceBase.js} +32 -29
  333. package/lib/odspDocumentStorageServiceBase.js.map +1 -0
  334. package/lib/{odspDriverUrlResolver.d.mts → odspDriverUrlResolver.d.ts} +6 -2
  335. package/lib/odspDriverUrlResolver.d.ts.map +1 -0
  336. package/lib/{odspDriverUrlResolver.mjs → odspDriverUrlResolver.js} +24 -17
  337. package/lib/odspDriverUrlResolver.js.map +1 -0
  338. package/lib/{odspDriverUrlResolverForShareLink.d.mts → odspDriverUrlResolverForShareLink.d.ts} +18 -7
  339. package/lib/odspDriverUrlResolverForShareLink.d.ts.map +1 -0
  340. package/lib/{odspDriverUrlResolverForShareLink.mjs → odspDriverUrlResolverForShareLink.js} +41 -27
  341. package/lib/odspDriverUrlResolverForShareLink.js.map +1 -0
  342. package/lib/{odspError.d.mts → odspError.d.ts} +2 -2
  343. package/lib/odspError.d.ts.map +1 -0
  344. package/lib/{odspError.mjs → odspError.js} +4 -4
  345. package/lib/odspError.js.map +1 -0
  346. package/lib/{odspFluidFileLink.d.mts → odspFluidFileLink.d.ts} +2 -2
  347. package/lib/odspFluidFileLink.d.ts.map +1 -0
  348. package/lib/{odspFluidFileLink.mjs → odspFluidFileLink.js} +2 -2
  349. package/lib/odspFluidFileLink.js.map +1 -0
  350. package/lib/{odspLocationRedirection.d.mts → odspLocationRedirection.d.ts} +1 -1
  351. package/lib/odspLocationRedirection.d.ts.map +1 -0
  352. package/lib/{odspLocationRedirection.mjs → odspLocationRedirection.js} +2 -2
  353. package/lib/odspLocationRedirection.js.map +1 -0
  354. package/lib/{odspPublicUtils.d.mts → odspPublicUtils.d.ts} +4 -1
  355. package/lib/odspPublicUtils.d.ts.map +1 -0
  356. package/lib/{odspPublicUtils.mjs → odspPublicUtils.js} +4 -1
  357. package/lib/odspPublicUtils.js.map +1 -0
  358. package/lib/{odspSnapshotParser.d.mts → odspSnapshotParser.d.ts} +2 -2
  359. package/lib/odspSnapshotParser.d.ts.map +1 -0
  360. package/lib/{odspSnapshotParser.mjs → odspSnapshotParser.js} +4 -3
  361. package/lib/odspSnapshotParser.js.map +1 -0
  362. package/lib/{odspSummaryUploadManager.d.mts → odspSummaryUploadManager.d.ts} +2 -2
  363. package/lib/odspSummaryUploadManager.d.ts.map +1 -0
  364. package/lib/{odspSummaryUploadManager.mjs → odspSummaryUploadManager.js} +8 -5
  365. package/lib/odspSummaryUploadManager.js.map +1 -0
  366. package/lib/{odspUrlHelper.d.mts → odspUrlHelper.d.ts} +1 -1
  367. package/lib/odspUrlHelper.d.ts.map +1 -0
  368. package/lib/{odspUrlHelper.mjs → odspUrlHelper.js} +2 -3
  369. package/lib/odspUrlHelper.js.map +1 -0
  370. package/lib/{odspUtils.d.mts → odspUtils.d.ts} +20 -8
  371. package/lib/odspUtils.d.ts.map +1 -0
  372. package/lib/{odspUtils.mjs → odspUtils.js} +45 -17
  373. package/lib/odspUtils.js.map +1 -0
  374. package/lib/{opsCaching.d.mts → opsCaching.d.ts} +2 -2
  375. package/lib/opsCaching.d.ts.map +1 -0
  376. package/lib/{opsCaching.mjs → opsCaching.js} +3 -2
  377. package/lib/opsCaching.js.map +1 -0
  378. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  379. package/lib/packageVersion.d.ts.map +1 -0
  380. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  381. package/lib/packageVersion.js.map +1 -0
  382. package/lib/{prefetchLatestSnapshot.d.mts → prefetchLatestSnapshot.d.ts} +3 -3
  383. package/lib/prefetchLatestSnapshot.d.ts.map +1 -0
  384. package/lib/{prefetchLatestSnapshot.mjs → prefetchLatestSnapshot.js} +16 -11
  385. package/lib/prefetchLatestSnapshot.js.map +1 -0
  386. package/lib/{retryErrorsStorageAdapter.d.mts → retryErrorsStorageAdapter.d.ts} +1 -2
  387. package/lib/retryErrorsStorageAdapter.d.ts.map +1 -0
  388. package/lib/{retryErrorsStorageAdapter.mjs → retryErrorsStorageAdapter.js} +2 -5
  389. package/lib/retryErrorsStorageAdapter.js.map +1 -0
  390. package/lib/{retryUtils.d.mts → retryUtils.d.ts} +1 -1
  391. package/lib/retryUtils.d.ts.map +1 -0
  392. package/lib/{retryUtils.mjs → retryUtils.js} +6 -2
  393. package/lib/retryUtils.js.map +1 -0
  394. package/lib/{socketModule.d.mts → socketModule.d.ts} +1 -1
  395. package/lib/socketModule.d.ts.map +1 -0
  396. package/lib/{socketModule.mjs → socketModule.js} +3 -1
  397. package/lib/socketModule.js.map +1 -0
  398. package/lib/test/buildOdspShareLinkReqParams.spec.js +25 -0
  399. package/lib/test/buildOdspShareLinkReqParams.spec.js.map +1 -0
  400. package/lib/test/createNewUtilsTests.spec.js +221 -0
  401. package/lib/test/createNewUtilsTests.spec.js.map +1 -0
  402. package/lib/test/deltaStorageService.spec.js +176 -0
  403. package/lib/test/deltaStorageService.spec.js.map +1 -0
  404. package/lib/test/epochTests.spec.js +340 -0
  405. package/lib/test/epochTests.spec.js.map +1 -0
  406. package/lib/test/epochTestsWithRedemption.spec.js +119 -0
  407. package/lib/test/epochTestsWithRedemption.spec.js.map +1 -0
  408. package/lib/test/fetchSnapshot.spec.js +412 -0
  409. package/lib/test/fetchSnapshot.spec.js.map +1 -0
  410. package/lib/test/getFileLink.spec.js +62 -0
  411. package/lib/test/getFileLink.spec.js.map +1 -0
  412. package/lib/test/getUrlAndHeadersWithAuth.spec.js +66 -0
  413. package/lib/test/getUrlAndHeadersWithAuth.spec.js.map +1 -0
  414. package/lib/test/getVersions.spec.js +284 -0
  415. package/lib/test/getVersions.spec.js.map +1 -0
  416. package/lib/test/joinSessionCacheTests.spec.js +53 -0
  417. package/lib/test/joinSessionCacheTests.spec.js.map +1 -0
  418. package/lib/test/joinSessionPeriodicCall.spec.js +158 -0
  419. package/lib/test/joinSessionPeriodicCall.spec.js.map +1 -0
  420. package/lib/test/jsonSnapshotFormatTests.spec.js +107 -0
  421. package/lib/test/jsonSnapshotFormatTests.spec.js.map +1 -0
  422. package/lib/test/localOdspDriver.spec.js +177 -0
  423. package/lib/test/localOdspDriver.spec.js.map +1 -0
  424. package/lib/test/mockFetch.js +61 -0
  425. package/lib/test/mockFetch.js.map +1 -0
  426. package/lib/test/odspCreateContainer.spec.js +116 -0
  427. package/lib/test/odspCreateContainer.spec.js.map +1 -0
  428. package/lib/test/odspDriverResolverTest.spec.js +289 -0
  429. package/lib/test/odspDriverResolverTest.spec.js.map +1 -0
  430. package/lib/test/odspDriverUrlResolverForShareLink.spec.js +287 -0
  431. package/lib/test/odspDriverUrlResolverForShareLink.spec.js.map +1 -0
  432. package/lib/test/odspError.spec.js +299 -0
  433. package/lib/test/odspError.spec.js.map +1 -0
  434. package/lib/test/opsCaching.spec.js +357 -0
  435. package/lib/test/opsCaching.spec.js.map +1 -0
  436. package/lib/test/prefetchSnapshotTests.spec.js +420 -0
  437. package/lib/test/prefetchSnapshotTests.spec.js.map +1 -0
  438. package/lib/test/snapshotFormatTests.spec.js +218 -0
  439. package/lib/test/snapshotFormatTests.spec.js.map +1 -0
  440. package/lib/test/socketTests/deltaConnectionUpdateTests.spec.js +152 -0
  441. package/lib/test/socketTests/deltaConnectionUpdateTests.spec.js.map +1 -0
  442. package/lib/test/socketTests/socketMock.js +109 -0
  443. package/lib/test/socketTests/socketMock.js.map +1 -0
  444. package/lib/test/socketTests/socketTests.spec.js +256 -0
  445. package/lib/test/socketTests/socketTests.spec.js.map +1 -0
  446. package/lib/test/tokenFetch.spec.js +39 -0
  447. package/lib/test/tokenFetch.spec.js.map +1 -0
  448. package/lib/test/types/validateOdspDriverPrevious.generated.js +96 -0
  449. package/lib/test/types/validateOdspDriverPrevious.generated.js.map +1 -0
  450. package/lib/test/zipItDataRepresentationTests.spec.js +207 -0
  451. package/lib/test/zipItDataRepresentationTests.spec.js.map +1 -0
  452. package/lib/{vroom.d.mts → vroom.d.ts} +3 -3
  453. package/lib/vroom.d.ts.map +1 -0
  454. package/lib/{vroom.mjs → vroom.js} +4 -4
  455. package/lib/vroom.js.map +1 -0
  456. package/lib/{zipItDataRepresentationUtils.d.mts → zipItDataRepresentationUtils.d.ts} +2 -2
  457. package/lib/zipItDataRepresentationUtils.d.ts.map +1 -0
  458. package/lib/{zipItDataRepresentationUtils.mjs → zipItDataRepresentationUtils.js} +17 -9
  459. package/lib/zipItDataRepresentationUtils.js.map +1 -0
  460. package/package.json +90 -31
  461. package/src/ReadBufferUtils.ts +7 -7
  462. package/src/WriteBufferUtils.ts +13 -9
  463. package/src/checkUrl.ts +4 -2
  464. package/src/compactSnapshotParser.ts +87 -52
  465. package/src/compactSnapshotWriter.ts +19 -12
  466. package/src/contracts.ts +16 -4
  467. package/src/createFile.ts +16 -13
  468. package/src/createNewContainerOnExistingFile.ts +8 -8
  469. package/src/createNewModule.ts +2 -2
  470. package/src/createNewUtils.ts +19 -9
  471. package/src/createOdspCreateContainerRequest.ts +2 -1
  472. package/src/createOdspUrl.ts +1 -1
  473. package/src/epochTracker.ts +90 -55
  474. package/src/fetchSnapshot.ts +104 -47
  475. package/src/getFileLink.ts +21 -13
  476. package/src/getQueryString.ts +3 -0
  477. package/src/index.ts +27 -19
  478. package/src/localOdspDriver/localOdspDocumentService.ts +3 -3
  479. package/src/localOdspDriver/localOdspDocumentServiceFactory.ts +12 -11
  480. package/src/localOdspDriver/localOdspDocumentStorageManager.ts +5 -5
  481. package/src/odspCache.ts +13 -9
  482. package/src/odspDelayLoadedDeltaStream.ts +54 -33
  483. package/src/odspDeltaStorageService.ts +17 -16
  484. package/src/odspDocumentDeltaConnection.ts +52 -34
  485. package/src/odspDocumentService.ts +23 -20
  486. package/src/odspDocumentServiceFactory.ts +7 -2
  487. package/src/odspDocumentServiceFactoryCore.ts +25 -18
  488. package/src/odspDocumentServiceFactoryWithCodeSplit.ts +1 -1
  489. package/src/odspDocumentStorageManager.ts +276 -216
  490. package/src/odspDocumentStorageServiceBase.ts +45 -43
  491. package/src/odspDriverUrlResolver.ts +39 -24
  492. package/src/odspDriverUrlResolverForShareLink.ts +51 -31
  493. package/src/odspError.ts +4 -4
  494. package/src/odspFluidFileLink.ts +3 -3
  495. package/src/odspLocationRedirection.ts +1 -1
  496. package/src/odspPublicUtils.ts +3 -0
  497. package/src/odspSnapshotParser.ts +4 -3
  498. package/src/odspSummaryUploadManager.ts +21 -9
  499. package/src/odspUrlHelper.ts +2 -3
  500. package/src/odspUtils.ts +73 -30
  501. package/src/opsCaching.ts +13 -12
  502. package/src/packageVersion.ts +1 -1
  503. package/src/prefetchLatestSnapshot.ts +24 -15
  504. package/src/retryErrorsStorageAdapter.ts +4 -8
  505. package/src/retryUtils.ts +6 -2
  506. package/src/socketModule.ts +2 -0
  507. package/src/vroom.ts +6 -6
  508. package/src/zipItDataRepresentationUtils.ts +63 -35
  509. package/tsconfig.cjs.json +7 -0
  510. package/tsconfig.json +2 -5
  511. package/lib/ReadBufferUtils.d.mts.map +0 -1
  512. package/lib/ReadBufferUtils.mjs.map +0 -1
  513. package/lib/WriteBufferUtils.d.mts.map +0 -1
  514. package/lib/WriteBufferUtils.mjs.map +0 -1
  515. package/lib/checkUrl.d.mts.map +0 -1
  516. package/lib/checkUrl.mjs.map +0 -1
  517. package/lib/compactSnapshotParser.d.mts.map +0 -1
  518. package/lib/compactSnapshotParser.mjs.map +0 -1
  519. package/lib/compactSnapshotWriter.d.mts.map +0 -1
  520. package/lib/compactSnapshotWriter.mjs.map +0 -1
  521. package/lib/constants.d.mts.map +0 -1
  522. package/lib/constants.mjs.map +0 -1
  523. package/lib/contracts.d.mts.map +0 -1
  524. package/lib/contracts.mjs.map +0 -1
  525. package/lib/contractsPublic.d.mts.map +0 -1
  526. package/lib/contractsPublic.mjs.map +0 -1
  527. package/lib/createFile.d.mts.map +0 -1
  528. package/lib/createFile.mjs.map +0 -1
  529. package/lib/createNewContainerOnExistingFile.d.mts.map +0 -1
  530. package/lib/createNewContainerOnExistingFile.mjs.map +0 -1
  531. package/lib/createNewModule.d.mts.map +0 -1
  532. package/lib/createNewModule.mjs.map +0 -1
  533. package/lib/createNewUtils.d.mts.map +0 -1
  534. package/lib/createNewUtils.mjs.map +0 -1
  535. package/lib/createOdspCreateContainerRequest.d.mts.map +0 -1
  536. package/lib/createOdspCreateContainerRequest.mjs.map +0 -1
  537. package/lib/createOdspUrl.d.mts.map +0 -1
  538. package/lib/createOdspUrl.mjs.map +0 -1
  539. package/lib/epochTracker.d.mts.map +0 -1
  540. package/lib/epochTracker.mjs.map +0 -1
  541. package/lib/fetch.d.mts.map +0 -1
  542. package/lib/fetch.mjs.map +0 -1
  543. package/lib/fetchSnapshot.d.mts.map +0 -1
  544. package/lib/fetchSnapshot.mjs.map +0 -1
  545. package/lib/getFileLink.d.mts.map +0 -1
  546. package/lib/getFileLink.mjs.map +0 -1
  547. package/lib/getQueryString.d.mts.map +0 -1
  548. package/lib/getQueryString.mjs.map +0 -1
  549. package/lib/getUrlAndHeadersWithAuth.d.mts.map +0 -1
  550. package/lib/getUrlAndHeadersWithAuth.mjs.map +0 -1
  551. package/lib/index.d.mts.map +0 -1
  552. package/lib/index.mjs +0 -22
  553. package/lib/index.mjs.map +0 -1
  554. package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts.map +0 -1
  555. package/lib/localOdspDriver/localOdspDeltaStorageService.mjs.map +0 -1
  556. package/lib/localOdspDriver/localOdspDocumentService.d.mts.map +0 -1
  557. package/lib/localOdspDriver/localOdspDocumentService.mjs.map +0 -1
  558. package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.mts.map +0 -1
  559. package/lib/localOdspDriver/localOdspDocumentServiceFactory.mjs.map +0 -1
  560. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.mts.map +0 -1
  561. package/lib/localOdspDriver/localOdspDocumentStorageManager.mjs.map +0 -1
  562. package/lib/odspCache.d.mts.map +0 -1
  563. package/lib/odspCache.mjs.map +0 -1
  564. package/lib/odspDelayLoadedDeltaStream.d.mts.map +0 -1
  565. package/lib/odspDelayLoadedDeltaStream.mjs.map +0 -1
  566. package/lib/odspDeltaStorageService.d.mts.map +0 -1
  567. package/lib/odspDeltaStorageService.mjs.map +0 -1
  568. package/lib/odspDocumentDeltaConnection.d.mts.map +0 -1
  569. package/lib/odspDocumentDeltaConnection.mjs.map +0 -1
  570. package/lib/odspDocumentService.d.mts.map +0 -1
  571. package/lib/odspDocumentService.mjs.map +0 -1
  572. package/lib/odspDocumentServiceFactory.d.mts.map +0 -1
  573. package/lib/odspDocumentServiceFactory.mjs.map +0 -1
  574. package/lib/odspDocumentServiceFactoryCore.d.mts.map +0 -1
  575. package/lib/odspDocumentServiceFactoryCore.mjs.map +0 -1
  576. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.mts.map +0 -1
  577. package/lib/odspDocumentServiceFactoryWithCodeSplit.mjs.map +0 -1
  578. package/lib/odspDocumentStorageManager.d.mts.map +0 -1
  579. package/lib/odspDocumentStorageManager.mjs.map +0 -1
  580. package/lib/odspDocumentStorageServiceBase.d.mts.map +0 -1
  581. package/lib/odspDocumentStorageServiceBase.mjs.map +0 -1
  582. package/lib/odspDriverUrlResolver.d.mts.map +0 -1
  583. package/lib/odspDriverUrlResolver.mjs.map +0 -1
  584. package/lib/odspDriverUrlResolverForShareLink.d.mts.map +0 -1
  585. package/lib/odspDriverUrlResolverForShareLink.mjs.map +0 -1
  586. package/lib/odspError.d.mts.map +0 -1
  587. package/lib/odspError.mjs.map +0 -1
  588. package/lib/odspFluidFileLink.d.mts.map +0 -1
  589. package/lib/odspFluidFileLink.mjs.map +0 -1
  590. package/lib/odspLocationRedirection.d.mts.map +0 -1
  591. package/lib/odspLocationRedirection.mjs.map +0 -1
  592. package/lib/odspPublicUtils.d.mts.map +0 -1
  593. package/lib/odspPublicUtils.mjs.map +0 -1
  594. package/lib/odspSnapshotParser.d.mts.map +0 -1
  595. package/lib/odspSnapshotParser.mjs.map +0 -1
  596. package/lib/odspSummaryUploadManager.d.mts.map +0 -1
  597. package/lib/odspSummaryUploadManager.mjs.map +0 -1
  598. package/lib/odspUrlHelper.d.mts.map +0 -1
  599. package/lib/odspUrlHelper.mjs.map +0 -1
  600. package/lib/odspUtils.d.mts.map +0 -1
  601. package/lib/odspUtils.mjs.map +0 -1
  602. package/lib/opsCaching.d.mts.map +0 -1
  603. package/lib/opsCaching.mjs.map +0 -1
  604. package/lib/packageVersion.d.mts.map +0 -1
  605. package/lib/packageVersion.mjs.map +0 -1
  606. package/lib/prefetchLatestSnapshot.d.mts.map +0 -1
  607. package/lib/prefetchLatestSnapshot.mjs.map +0 -1
  608. package/lib/retryErrorsStorageAdapter.d.mts.map +0 -1
  609. package/lib/retryErrorsStorageAdapter.mjs.map +0 -1
  610. package/lib/retryUtils.d.mts.map +0 -1
  611. package/lib/retryUtils.mjs.map +0 -1
  612. package/lib/socketModule.d.mts.map +0 -1
  613. package/lib/socketModule.mjs.map +0 -1
  614. package/lib/vroom.d.mts.map +0 -1
  615. package/lib/vroom.mjs.map +0 -1
  616. package/lib/zipItDataRepresentationUtils.d.mts.map +0 -1
  617. package/lib/zipItDataRepresentationUtils.mjs.map +0 -1
@@ -13,13 +13,13 @@ const driver_base_1 = require("@fluidframework/driver-base");
13
13
  const driver_definitions_1 = require("@fluidframework/driver-definitions");
14
14
  const driver_utils_1 = require("@fluidframework/driver-utils");
15
15
  const odsp_driver_definitions_1 = require("@fluidframework/odsp-driver-definitions");
16
- const fetchSnapshot_1 = require("./fetchSnapshot");
17
- const getUrlAndHeadersWithAuth_1 = require("./getUrlAndHeadersWithAuth");
18
- const odspUtils_1 = require("./odspUtils");
19
- const packageVersion_1 = require("./packageVersion");
20
- const odspDocumentStorageServiceBase_1 = require("./odspDocumentStorageServiceBase");
16
+ const fetchSnapshot_js_1 = require("./fetchSnapshot.js");
17
+ const getUrlAndHeadersWithAuth_js_1 = require("./getUrlAndHeadersWithAuth.js");
18
+ const odspUtils_js_1 = require("./odspUtils.js");
19
+ const packageVersion_js_1 = require("./packageVersion.js");
20
+ const odspDocumentStorageServiceBase_js_1 = require("./odspDocumentStorageServiceBase.js");
21
21
  exports.defaultSummarizerCacheExpiryTimeout = 60 * 1000; // 60 seconds.
22
- class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDocumentStorageServiceBase {
22
+ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_js_1.OdspDocumentStorageServiceBase {
23
23
  constructor(odspResolvedUrl, getStorageToken, logger, fetchFullSnapshot, cache, hostPolicy, epochTracker, flushCallback, relayServiceTenantAndSessionId, snapshotFormatFetchType) {
24
24
  super((0, telemetry_utils_1.loggerToMonitoringContext)(logger).config);
25
25
  this.odspResolvedUrl = odspResolvedUrl;
@@ -33,7 +33,7 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
33
33
  this.relayServiceTenantAndSessionId = relayServiceTenantAndSessionId;
34
34
  this.snapshotFormatFetchType = snapshotFormatFetchType;
35
35
  this.odspSummaryModuleLoaded = false;
36
- this.firstVersionCall = true;
36
+ this.firstSnapshotFetchCall = true;
37
37
  // Driver specified limits for snapshot size and time.
38
38
  /**
39
39
  * NOTE: While commit cfff6e3 added restrictions to prevent large payloads, snapshot failures will continue to
@@ -54,9 +54,9 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
54
54
  }
55
55
  async createBlob(file) {
56
56
  this.checkAttachmentPOSTUrl();
57
- const response = await (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
57
+ const response = await (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
58
58
  const storageToken = await this.getStorageToken(options, "CreateBlob");
59
- const { url, headers } = (0, getUrlAndHeadersWithAuth_1.getUrlAndHeadersWithAuth)(`${this.attachmentPOSTUrl}/content`, storageToken, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader);
59
+ const { url, headers } = (0, getUrlAndHeadersWithAuth_js_1.getUrlAndHeadersWithAuth)(`${this.attachmentPOSTUrl}/content`, storageToken, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader);
60
60
  headers["Content-Type"] = "application/octet-stream";
61
61
  return telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, {
62
62
  eventName: "createBlob",
@@ -79,15 +79,15 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
79
79
  }
80
80
  async fetchBlobFromStorage(blobId, evicted) {
81
81
  this.checkAttachmentGETUrl();
82
- const blob = await (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
82
+ const blob = await (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
83
83
  const storageToken = await this.getStorageToken(options, "GetBlob");
84
84
  const unAuthedUrl = `${this.attachmentGETUrl}/${encodeURIComponent(blobId)}/content`;
85
- const { url, headers } = (0, getUrlAndHeadersWithAuth_1.getUrlAndHeadersWithAuth)(unAuthedUrl, storageToken, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader);
85
+ const { url, headers } = (0, getUrlAndHeadersWithAuth_js_1.getUrlAndHeadersWithAuth)(unAuthedUrl, storageToken, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader);
86
86
  return telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, {
87
87
  eventName: "readDataBlob",
88
88
  blobId,
89
89
  evicted,
90
- headers: Object.keys(headers).length !== 0 ? true : undefined,
90
+ headers: Object.keys(headers).length > 0 ? true : undefined,
91
91
  waitQueueLength: this.epochTracker.rateLimiter.waitQueueLength,
92
92
  }, async (event) => {
93
93
  const res = await this.epochTracker.fetchArray(url, { headers }, "blob");
@@ -114,14 +114,185 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
114
114
  }
115
115
  async getSnapshotTree(version, scenarioName) {
116
116
  if (!this.snapshotUrl) {
117
+ // eslint-disable-next-line unicorn/no-null
117
118
  return null;
118
119
  }
119
120
  return super.getSnapshotTree(version, scenarioName);
120
121
  }
122
+ /**
123
+ * Fetches and returns the snapshot. If no loadingGroupIds or empty loadingGroupIds is provided, then snapshot for all
124
+ * ungrouped data will be provided.
125
+ * @param snapshotFetchOptions - fetch options for snapshot.
126
+ */
121
127
  async getSnapshot(snapshotFetchOptions) {
122
- (0, core_utils_1.assert)(this.hostPolicy.supportGetSnapshotApi !== true, "api should not be called yet");
123
- // This is just temporary as this api is not yet enabled in service policies.
124
- return this.fetchSnapshot(this.hostPolicy.snapshotOptions, snapshotFetchOptions?.scenarioName);
128
+ // Don't consult cache if request is not for a particular loading group.
129
+ const { snapshot } = await this.fetchSnapshot({
130
+ ...snapshotFetchOptions,
131
+ fetchSource: (0, odspUtils_js_1.isSnapshotFetchForLoadingGroup)(snapshotFetchOptions?.loadingGroupIds)
132
+ ? driver_definitions_1.FetchSource.noCache
133
+ : snapshotFetchOptions?.fetchSource,
134
+ loadingGroupIds: snapshotFetchOptions?.loadingGroupIds ?? [],
135
+ });
136
+ return {
137
+ ...snapshot,
138
+ snapshotTree: this.combineProtocolAndAppSnapshotTree(snapshot.snapshotTree),
139
+ };
140
+ }
141
+ async fetchSnapshot(snapshotFetchOptions) {
142
+ const hostSnapshotOptions = this.hostPolicy.snapshotOptions;
143
+ const odspSnapshotCacheValue = await telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, {
144
+ eventName: (0, odspUtils_js_1.isSnapshotFetchForLoadingGroup)(snapshotFetchOptions.loadingGroupIds)
145
+ ? "ObtainSnapshotForGroup"
146
+ : "ObtainSnapshot",
147
+ fetchSource: snapshotFetchOptions?.fetchSource,
148
+ }, async (event) => {
149
+ const props = {};
150
+ let cacheLookupTimeInSerialFetch = 0;
151
+ let retrievedSnapshot;
152
+ let method;
153
+ let prefetchWaitStartTime = client_utils_1.performance.now();
154
+ if (snapshotFetchOptions.fetchSource === driver_definitions_1.FetchSource.noCache) {
155
+ retrievedSnapshot = await this.fetchSnapshotFromNetwork(hostSnapshotOptions, snapshotFetchOptions.loadingGroupIds, snapshotFetchOptions.scenarioName);
156
+ method = "networkOnly";
157
+ }
158
+ else {
159
+ // Here's the logic to grab the persistent cache snapshot implemented by the host
160
+ // Epoch tracker is responsible for communicating with the persistent cache, handling epochs and cache versions
161
+ const cachedSnapshotP = this.epochTracker
162
+ .get((0, odspUtils_js_1.createCacheSnapshotKey)(this.odspResolvedUrl))
163
+ .then(async (
164
+ // eslint-disable-next-line import/no-deprecated
165
+ snapshotCachedEntry) => {
166
+ if (snapshotCachedEntry !== undefined) {
167
+ // If the cached entry does not contain the entry time, then assign it a default of 30 days old.
168
+ const age = Date.now() -
169
+ (snapshotCachedEntry.cacheEntryTime ??
170
+ Date.now() - 30 * 24 * 60 * 60 * 1000);
171
+ // In order to decrease the number of times we have to execute a snapshot refresh,
172
+ // if this is the summarizer and we have a cache entry but it is past the defaultSummarizerCacheExpiryTimeout,
173
+ // force the network retrieval instead as there might be a more recent snapshot available.
174
+ // See: https://github.com/microsoft/FluidFramework/issues/8995 for additional information.
175
+ if (this.hostPolicy.summarizerClient) {
176
+ if (age > exports.defaultSummarizerCacheExpiryTimeout) {
177
+ props.cacheSummarizerExpired = true;
178
+ return undefined;
179
+ }
180
+ else {
181
+ props.cacheSummarizerExpired = false;
182
+ }
183
+ }
184
+ // Record the cache age
185
+ props.cacheEntryAge = age;
186
+ // Snapshot from cache could be in older format, so transform that before returning.
187
+ if ((0, odspUtils_js_1.isInstanceOfISnapshot)(snapshotCachedEntry)) {
188
+ return snapshotCachedEntry;
189
+ }
190
+ else {
191
+ const snapshot = {
192
+ snapshotTree: snapshotCachedEntry.snapshotTree,
193
+ blobContents: snapshotCachedEntry.blobs,
194
+ ops: snapshotCachedEntry.ops,
195
+ latestSequenceNumber: snapshotCachedEntry.latestSequenceNumber,
196
+ sequenceNumber: snapshotCachedEntry.sequenceNumber,
197
+ snapshotFormatV: 1,
198
+ };
199
+ return snapshot;
200
+ }
201
+ }
202
+ });
203
+ // Based on the concurrentSnapshotFetch policy:
204
+ // Either retrieve both the network and cache snapshots concurrently and pick the first to return,
205
+ // or grab the cache value and then the network value if the cache value returns undefined.
206
+ // For summarizer which could call this during refreshing of summary parent, always use the cache
207
+ // first. Also for other clients, if it is not critical path which is determined by firstSnapshotFetchCall,
208
+ // then also check the cache first.
209
+ if (this.firstSnapshotFetchCall &&
210
+ this.hostPolicy.concurrentSnapshotFetch &&
211
+ !this.hostPolicy.summarizerClient) {
212
+ const networkSnapshotP = this.fetchSnapshotFromNetwork(hostSnapshotOptions, snapshotFetchOptions.loadingGroupIds, snapshotFetchOptions.scenarioName);
213
+ // Ensure that failures on both paths are ignored initially.
214
+ // I.e. if cache fails for some reason, we will proceed with network result.
215
+ // And vice versa - if (for example) client is offline and network request fails first, we
216
+ // do want to attempt to succeed with cached data!
217
+ const promiseRaceWinner = await (0, driver_base_1.promiseRaceWithWinner)([
218
+ cachedSnapshotP.catch(() => undefined),
219
+ networkSnapshotP.catch(() => undefined),
220
+ ]);
221
+ retrievedSnapshot = promiseRaceWinner.value;
222
+ method = promiseRaceWinner.index === 0 ? "cache" : "network";
223
+ if (retrievedSnapshot === undefined) {
224
+ // if network failed -> wait for cache ( then return network failure)
225
+ // If cache returned empty or failed -> wait for network (success of failure)
226
+ try {
227
+ if (promiseRaceWinner.index === 1) {
228
+ retrievedSnapshot = await cachedSnapshotP;
229
+ method = "cache";
230
+ }
231
+ if (retrievedSnapshot === undefined) {
232
+ retrievedSnapshot = await networkSnapshotP;
233
+ method = "network";
234
+ }
235
+ }
236
+ catch (error) {
237
+ // The call stacks of any errors thrown by cached snapshot or network snapshot aren't very useful:
238
+ // they get truncated at this stack frame due to the promise race and how v8 tracks async stack traces--
239
+ // see https://v8.dev/docs/stack-trace-api#async-stack-traces and the "zero-cost async stack traces" document
240
+ // linked there. https://v8.dev/blog/fast-async#await-under-the-hood may also be helpful for context on internals.
241
+ // Regenerating the stack at this level provides more information for logged errors.
242
+ // Once FF uses an ES2021 target, we could convert the above promise race to use `Promise.any` + AggregateError and
243
+ // get similar quality stacks with less hand-crafted code.
244
+ const innerStack = error.stack;
245
+ const normalizedError = (0, telemetry_utils_1.normalizeError)(error);
246
+ normalizedError.addTelemetryProperties({ innerStack });
247
+ const newStack = `<<STACK TRUNCATED: see innerStack property>> \n${(0, telemetry_utils_1.generateStack)()}`;
248
+ (0, telemetry_utils_1.overwriteStack)(normalizedError, newStack);
249
+ throw normalizedError;
250
+ }
251
+ }
252
+ }
253
+ else {
254
+ // Note: There's a race condition here - another caller may come past the undefined check
255
+ // while the first caller is awaiting later async code in this block.
256
+ const startTime = client_utils_1.performance.now();
257
+ retrievedSnapshot = await cachedSnapshotP;
258
+ cacheLookupTimeInSerialFetch = client_utils_1.performance.now() - startTime;
259
+ method = retrievedSnapshot === undefined ? "network" : "cache";
260
+ if (retrievedSnapshot === undefined) {
261
+ prefetchWaitStartTime = client_utils_1.performance.now();
262
+ retrievedSnapshot = await this.fetchSnapshotFromNetwork(hostSnapshotOptions, snapshotFetchOptions.loadingGroupIds, snapshotFetchOptions.scenarioName);
263
+ }
264
+ }
265
+ }
266
+ if (method === "network") {
267
+ props.cacheEntryAge = undefined;
268
+ }
269
+ if (this.firstSnapshotFetchCall) {
270
+ this._isFirstSnapshotFromNetwork = method === "cache" ? false : true;
271
+ }
272
+ const prefetchStartTime = retrievedSnapshot.prefetchStartTime;
273
+ event.end({
274
+ ...props,
275
+ method,
276
+ fetchSnapshotForInitialLoad: this.firstSnapshotFetchCall,
277
+ useLegacyFlowWithoutGroups: (0, odspUtils_js_1.useLegacyFlowWithoutGroupsForSnapshotFetch)(snapshotFetchOptions.loadingGroupIds),
278
+ avoidPrefetchSnapshotCache: this.hostPolicy.avoidPrefetchSnapshotCache,
279
+ ...(0, fetchSnapshot_js_1.evalBlobsAndTrees)(retrievedSnapshot),
280
+ cacheLookupTimeInSerialFetch,
281
+ prefetchSavedDuration: prefetchStartTime !== undefined && method !== "cache"
282
+ ? prefetchWaitStartTime - prefetchStartTime
283
+ : undefined,
284
+ });
285
+ return retrievedSnapshot;
286
+ });
287
+ const stTime = client_utils_1.performance.now();
288
+ // Don't override ops which were fetched during initial load, since we could still need them.
289
+ const id = this.initializeFromSnapshot(odspSnapshotCacheValue, this.firstSnapshotFetchCall, snapshotFetchOptions?.cacheSnapshot ?? this.firstSnapshotFetchCall);
290
+ this.logger.sendTelemetryEvent({
291
+ eventName: "SnapshotInitializeTime",
292
+ duration: client_utils_1.performance.now() - stTime,
293
+ }, undefined, core_interfaces_1.LogLevel.verbose);
294
+ this.firstSnapshotFetchCall = false;
295
+ return { snapshot: odspSnapshotCacheValue, id };
125
296
  }
126
297
  async getVersions(
127
298
  // eslint-disable-next-line @rushstack/no-new-null
@@ -145,166 +316,28 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
145
316
  }
146
317
  // If count is one, we can use the trees/latest API, which returns the latest version and trees in a single request for better performance
147
318
  if (count === 1 && (blobid === null || blobid === this.documentId)) {
148
- const hostSnapshotOptions = this.hostPolicy.snapshotOptions;
149
- const odspSnapshotCacheValue = await telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, { eventName: "ObtainSnapshot", fetchSource }, async (event) => {
150
- const props = {};
151
- let cacheLookupTimeInSerialFetch = 0;
152
- let retrievedSnapshot;
153
- let method;
154
- let prefetchWaitStartTime = client_utils_1.performance.now();
155
- if (fetchSource === driver_definitions_1.FetchSource.noCache) {
156
- retrievedSnapshot = await this.fetchSnapshot(hostSnapshotOptions, scenarioName);
157
- method = "networkOnly";
158
- }
159
- else {
160
- // Here's the logic to grab the persistent cache snapshot implemented by the host
161
- // Epoch tracker is responsible for communicating with the persistent cache, handling epochs and cache versions
162
- const cachedSnapshotP = this.epochTracker
163
- .get((0, odspUtils_1.createCacheSnapshotKey)(this.odspResolvedUrl))
164
- .then(async (snapshotCachedEntry) => {
165
- if (snapshotCachedEntry !== undefined) {
166
- // If the cached entry does not contain the entry time, then assign it a default of 30 days old.
167
- const age = Date.now() -
168
- (snapshotCachedEntry.cacheEntryTime ??
169
- Date.now() - 30 * 24 * 60 * 60 * 1000);
170
- // In order to decrease the number of times we have to execute a snapshot refresh,
171
- // if this is the summarizer and we have a cache entry but it is past the defaultSummarizerCacheExpiryTimeout,
172
- // force the network retrieval instead as there might be a more recent snapshot available.
173
- // See: https://github.com/microsoft/FluidFramework/issues/8995 for additional information.
174
- if (this.hostPolicy.summarizerClient) {
175
- if (age > exports.defaultSummarizerCacheExpiryTimeout) {
176
- props.cacheSummarizerExpired = true;
177
- return undefined;
178
- }
179
- else {
180
- props.cacheSummarizerExpired = false;
181
- }
182
- }
183
- // Record the cache age
184
- props.cacheEntryAge = age;
185
- // Snapshot from cache could be in older format, so transform that before returning.
186
- if ((0, odspUtils_1.isInstanceOfISnapshot)(snapshotCachedEntry)) {
187
- return snapshotCachedEntry;
188
- }
189
- else {
190
- const snapshot = {
191
- snapshotTree: snapshotCachedEntry.snapshotTree,
192
- blobContents: snapshotCachedEntry.blobs,
193
- ops: snapshotCachedEntry.ops,
194
- latestSequenceNumber: snapshotCachedEntry.latestSequenceNumber,
195
- sequenceNumber: snapshotCachedEntry.sequenceNumber,
196
- snapshotFormatV: 1,
197
- };
198
- return snapshot;
199
- }
200
- }
201
- });
202
- // Based on the concurrentSnapshotFetch policy:
203
- // Either retrieve both the network and cache snapshots concurrently and pick the first to return,
204
- // or grab the cache value and then the network value if the cache value returns undefined.
205
- // For summarizer which could call this during refreshing of summary parent, always use the cache
206
- // first. Also for other clients, if it is not critical path which is determined by firstVersionCall,
207
- // then also check the cache first.
208
- if (this.firstVersionCall &&
209
- this.hostPolicy.concurrentSnapshotFetch &&
210
- !this.hostPolicy.summarizerClient) {
211
- const networkSnapshotP = this.fetchSnapshot(hostSnapshotOptions, scenarioName);
212
- // Ensure that failures on both paths are ignored initially.
213
- // I.e. if cache fails for some reason, we will proceed with network result.
214
- // And vice versa - if (for example) client is offline and network request fails first, we
215
- // do want to attempt to succeed with cached data!
216
- const promiseRaceWinner = await (0, driver_base_1.promiseRaceWithWinner)([
217
- cachedSnapshotP.catch(() => undefined),
218
- networkSnapshotP.catch(() => undefined),
219
- ]);
220
- retrievedSnapshot = promiseRaceWinner.value;
221
- method = promiseRaceWinner.index === 0 ? "cache" : "network";
222
- if (retrievedSnapshot === undefined) {
223
- // if network failed -> wait for cache ( then return network failure)
224
- // If cache returned empty or failed -> wait for network (success of failure)
225
- try {
226
- if (promiseRaceWinner.index === 1) {
227
- retrievedSnapshot = await cachedSnapshotP;
228
- method = "cache";
229
- }
230
- if (retrievedSnapshot === undefined) {
231
- retrievedSnapshot = await networkSnapshotP;
232
- method = "network";
233
- }
234
- }
235
- catch (err) {
236
- // The call stacks of any errors thrown by cached snapshot or network snapshot aren't very useful:
237
- // they get truncated at this stack frame due to the promise race and how v8 tracks async stack traces--
238
- // see https://v8.dev/docs/stack-trace-api#async-stack-traces and the "zero-cost async stack traces" document
239
- // linked there. https://v8.dev/blog/fast-async#await-under-the-hood may also be helpful for context on internals.
240
- // Regenerating the stack at this level provides more information for logged errors.
241
- // Once FF uses an ES2021 target, we could convert the above promise race to use `Promise.any` + AggregateError and
242
- // get similar quality stacks with less hand-crafted code.
243
- const innerStack = err.stack;
244
- const normalizedError = (0, telemetry_utils_1.normalizeError)(err);
245
- normalizedError.addTelemetryProperties({ innerStack });
246
- const newStack = `<<STACK TRUNCATED: see innerStack property>> \n${(0, telemetry_utils_1.generateStack)()}`;
247
- (0, telemetry_utils_1.overwriteStack)(normalizedError, newStack);
248
- throw normalizedError;
249
- }
250
- }
251
- }
252
- else {
253
- // Note: There's a race condition here - another caller may come past the undefined check
254
- // while the first caller is awaiting later async code in this block.
255
- const startTime = client_utils_1.performance.now();
256
- retrievedSnapshot = await cachedSnapshotP;
257
- cacheLookupTimeInSerialFetch = client_utils_1.performance.now() - startTime;
258
- method = retrievedSnapshot !== undefined ? "cache" : "network";
259
- if (retrievedSnapshot === undefined) {
260
- prefetchWaitStartTime = client_utils_1.performance.now();
261
- retrievedSnapshot = await this.fetchSnapshot(hostSnapshotOptions, scenarioName);
262
- }
263
- }
264
- }
265
- if (method === "network") {
266
- props.cacheEntryAge = undefined;
267
- }
268
- if (this.firstVersionCall) {
269
- this._isFirstSnapshotFromNetwork = method === "cache" ? false : true;
270
- }
271
- const prefetchStartTime = retrievedSnapshot.prefetchStartTime;
272
- event.end({
273
- ...props,
274
- method,
275
- avoidPrefetchSnapshotCache: this.hostPolicy.avoidPrefetchSnapshotCache,
276
- ...(0, fetchSnapshot_1.evalBlobsAndTrees)(retrievedSnapshot),
277
- cacheLookupTimeInSerialFetch,
278
- prefetchSavedDuration: prefetchStartTime !== undefined && method !== "cache"
279
- ? prefetchWaitStartTime - prefetchStartTime
280
- : undefined,
281
- });
282
- return retrievedSnapshot;
319
+ const { id } = await this.fetchSnapshot({
320
+ cacheSnapshot: true,
321
+ scenarioName,
322
+ versionId: blobid ?? undefined,
323
+ fetchSource,
283
324
  });
284
- const stTime = client_utils_1.performance.now();
285
- // Don't override ops which were fetched during initial load, since we could still need them.
286
- const id = this.initializeFromSnapshot(odspSnapshotCacheValue, this.firstVersionCall);
287
- this.logger.sendTelemetryEvent({
288
- eventName: "SnapshotInitializeTime",
289
- duration: client_utils_1.performance.now() - stTime,
290
- }, undefined, core_interfaces_1.LogLevel.verbose);
291
- this.firstVersionCall = false;
292
325
  return id ? [{ id, treeId: undefined }] : [];
293
326
  }
294
- return (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
327
+ return (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
295
328
  const storageToken = await this.getStorageToken(options, "GetVersions");
296
- const { url, headers } = (0, getUrlAndHeadersWithAuth_1.getUrlAndHeadersWithAuth)(`${this.snapshotUrl}/versions?top=${count}`, storageToken, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader);
329
+ const { url, headers } = (0, getUrlAndHeadersWithAuth_js_1.getUrlAndHeadersWithAuth)(`${this.snapshotUrl}/versions?top=${count}`, storageToken, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader);
297
330
  // Fetch the latest snapshot versions for the document
298
331
  const response = await telemetry_utils_1.PerformanceEvent.timedExecAsync(this.logger, {
299
332
  eventName: "getVersions",
300
- headers: Object.keys(headers).length !== 0 ? true : undefined,
333
+ headers: Object.keys(headers).length > 0 ? true : undefined,
301
334
  }, async () => this.epochTracker.fetchAndParseAsJSON(url, { headers }, "versions", undefined, scenarioName));
302
335
  const versionsResponse = response.content;
303
336
  if (!versionsResponse) {
304
- throw new driver_utils_1.NonRetryableError("No response from /versions endpoint", odsp_driver_definitions_1.OdspErrorTypes.genericNetworkError, { driverVersion: packageVersion_1.pkgVersion });
337
+ throw new driver_utils_1.NonRetryableError("No response from /versions endpoint", odsp_driver_definitions_1.OdspErrorTypes.genericNetworkError, { driverVersion: packageVersion_js_1.pkgVersion });
305
338
  }
306
339
  if (!Array.isArray(versionsResponse.value)) {
307
- throw new driver_utils_1.NonRetryableError("Incorrect response from /versions endpoint, expected an array", odsp_driver_definitions_1.OdspErrorTypes.genericNetworkError, { driverVersion: packageVersion_1.pkgVersion });
340
+ throw new driver_utils_1.NonRetryableError("Incorrect response from /versions endpoint, expected an array", odsp_driver_definitions_1.OdspErrorTypes.genericNetworkError, { driverVersion: packageVersion_js_1.pkgVersion });
308
341
  }
309
342
  return versionsResponse.value.map((version) => {
310
343
  return {
@@ -314,23 +347,25 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
314
347
  });
315
348
  });
316
349
  }
317
- async fetchSnapshot(hostSnapshotOptions, scenarioName) {
318
- return this.fetchSnapshotCore(hostSnapshotOptions, scenarioName).catch((error) => {
350
+ async fetchSnapshotFromNetwork(hostSnapshotOptions, loadingGroupIds, scenarioName) {
351
+ return this.fetchSnapshotFromNetworkCore(hostSnapshotOptions, loadingGroupIds, scenarioName).catch((error) => {
319
352
  // Issue #5895:
320
353
  // If we are offline, this error is retryable. But that means that RetriableDocumentStorageService
321
354
  // will run in circles calling getSnapshotTree, which would result in OdspDocumentStorageService class
322
355
  // going getVersions / individual blob download path. This path is very slow, and will not work with
323
356
  // delay-loaded data stores and ODSP storage deleting old snapshots and blobs.
324
357
  if (typeof error === "object" && error !== null) {
358
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
325
359
  error.canRetry = false;
326
360
  }
327
361
  throw error;
328
362
  });
329
363
  }
330
- async fetchSnapshotCore(hostSnapshotOptions, scenarioName) {
331
- // Don't look into cache, if the host specifically tells us so.
332
- if (!this.hostPolicy.avoidPrefetchSnapshotCache) {
333
- const prefetchCacheKey = (0, odsp_driver_definitions_1.getKeyForCacheEntry)((0, odspUtils_1.createCacheSnapshotKey)(this.odspResolvedUrl));
364
+ async fetchSnapshotFromNetworkCore(hostSnapshotOptions, loadingGroupIds, scenarioName) {
365
+ // Don't look into cache, if the host specifically tells us so. Also, if request is
366
+ // for initial snapshot, don't consult the prefetch cache.
367
+ if (!this.hostPolicy.avoidPrefetchSnapshotCache && this.firstSnapshotFetchCall) {
368
+ const prefetchCacheKey = (0, odsp_driver_definitions_1.getKeyForCacheEntry)((0, odspUtils_js_1.createCacheSnapshotKey)(this.odspResolvedUrl));
334
369
  const result = await this.cache.snapshotPrefetchResultCache
335
370
  ?.get(prefetchCacheKey)
336
371
  ?.then(async (response) => {
@@ -340,11 +375,11 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
340
375
  await this.epochTracker.validateEpoch(response.fluidEpoch, "treesLatest");
341
376
  return response;
342
377
  })
343
- .catch(async (err) => {
378
+ .catch(async (error) => {
344
379
  this.logger.sendTelemetryEvent({
345
380
  eventName: "PrefetchSnapshotError",
346
381
  concurrentSnapshotFetch: this.hostPolicy.concurrentSnapshotFetch,
347
- }, err);
382
+ }, error);
348
383
  return undefined;
349
384
  });
350
385
  // If the prefetch call, is successful, then return the contents otherwise as backup for now, just
@@ -365,20 +400,22 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
365
400
  snapshotOptions.mds = undefined;
366
401
  snapshotOptions.timeout = undefined;
367
402
  }
368
- const snapshotDownloader = async (finalOdspResolvedUrl, storageToken, options, controller) => {
369
- return (0, fetchSnapshot_1.downloadSnapshot)(finalOdspResolvedUrl, storageToken, this.logger, options, this.snapshotFormatFetchType, controller, this.epochTracker, scenarioName);
403
+ const snapshotDownloader = async (finalOdspResolvedUrl, storageToken, loadingGroupId, options, controller) => {
404
+ return (0, fetchSnapshot_js_1.downloadSnapshot)(finalOdspResolvedUrl, storageToken, loadingGroupId, options, this.snapshotFormatFetchType, controller, this.epochTracker, scenarioName);
370
405
  };
371
406
  const putInCache = async (valueWithEpoch) => {
372
- return this.cache.persistedCache.put((0, odspUtils_1.createCacheSnapshotKey)(this.odspResolvedUrl),
407
+ return this.cache.persistedCache.put((0, odspUtils_js_1.createCacheSnapshotKey)(this.odspResolvedUrl),
373
408
  // Epoch tracker will add the epoch and version to the value here. So just send value to cache.
374
409
  valueWithEpoch.value);
375
410
  };
376
411
  const removeEntries = async () => this.cache.persistedCache.removeEntries();
377
412
  try {
378
- const odspSnapshot = await (0, fetchSnapshot_1.fetchSnapshotWithRedeem)(this.odspResolvedUrl, this.getStorageToken, snapshotOptions, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader, this.logger, snapshotDownloader, putInCache, removeEntries, this.hostPolicy.enableRedeemFallback);
413
+ const odspSnapshot = await (0, fetchSnapshot_js_1.fetchSnapshotWithRedeem)(this.odspResolvedUrl, this.getStorageToken, snapshotOptions, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader, this.logger, snapshotDownloader, putInCache, removeEntries, loadingGroupIds, this.hostPolicy.enableRedeemFallback);
379
414
  return odspSnapshot;
415
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
380
416
  }
381
417
  catch (error) {
418
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
382
419
  const errorType = error.errorType;
383
420
  // If the snapshot size is too big and the host specified the size limitation(specified in hostSnapshotOptions), then don't try to fetch the snapshot again.
384
421
  if (errorType === odsp_driver_definitions_1.OdspErrorTypes.snapshotTooBig &&
@@ -392,6 +429,7 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
392
429
  snapshotOptions.blobs) {
393
430
  this.logger.sendErrorEvent({
394
431
  eventName: "TreeLatest_SecondCall",
432
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
395
433
  errorType,
396
434
  });
397
435
  const snapshotOptionsWithoutBlobs = {
@@ -400,7 +438,7 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
400
438
  mds: undefined,
401
439
  timeout: undefined,
402
440
  };
403
- const odspSnapshot = await (0, fetchSnapshot_1.fetchSnapshotWithRedeem)(this.odspResolvedUrl, this.getStorageToken, snapshotOptionsWithoutBlobs, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader, this.logger, snapshotDownloader, putInCache, removeEntries, this.hostPolicy.enableRedeemFallback);
441
+ const odspSnapshot = await (0, fetchSnapshot_js_1.fetchSnapshotWithRedeem)(this.odspResolvedUrl, this.getStorageToken, snapshotOptionsWithoutBlobs, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader, this.logger, snapshotDownloader, putInCache, removeEntries, loadingGroupIds, this.hostPolicy.enableRedeemFallback);
404
442
  return odspSnapshot;
405
443
  }
406
444
  throw error;
@@ -472,26 +510,26 @@ class OdspDocumentStorageService extends odspDocumentStorageServiceBase_1.OdspDo
472
510
  }
473
511
  checkSnapshotUrl() {
474
512
  if (!this.snapshotUrl) {
475
- throw new driver_utils_1.NonRetryableError("Method failed because no snapshot url was available", odsp_driver_definitions_1.OdspErrorTypes.genericError, { driverVersion: packageVersion_1.pkgVersion });
513
+ throw new driver_utils_1.NonRetryableError("Method failed because no snapshot url was available", odsp_driver_definitions_1.OdspErrorTypes.genericError, { driverVersion: packageVersion_js_1.pkgVersion });
476
514
  }
477
515
  }
478
516
  checkAttachmentPOSTUrl() {
479
517
  if (!this.attachmentPOSTUrl) {
480
- throw new driver_utils_1.NonRetryableError("Method failed because no attachment POST url was available", odsp_driver_definitions_1.OdspErrorTypes.genericError, { driverVersion: packageVersion_1.pkgVersion });
518
+ throw new driver_utils_1.NonRetryableError("Method failed because no attachment POST url was available", odsp_driver_definitions_1.OdspErrorTypes.genericError, { driverVersion: packageVersion_js_1.pkgVersion });
481
519
  }
482
520
  }
483
521
  checkAttachmentGETUrl() {
484
522
  if (!this.attachmentGETUrl) {
485
- throw new driver_utils_1.NonRetryableError("Method failed because no attachment GET url was available", odsp_driver_definitions_1.OdspErrorTypes.genericError, { driverVersion: packageVersion_1.pkgVersion });
523
+ throw new driver_utils_1.NonRetryableError("Method failed because no attachment GET url was available", odsp_driver_definitions_1.OdspErrorTypes.genericError, { driverVersion: packageVersion_js_1.pkgVersion });
486
524
  }
487
525
  }
488
526
  async fetchTreeFromSnapshot(id, scenarioName) {
489
- return (0, odspUtils_1.getWithRetryForTokenRefresh)(async (options) => {
527
+ return (0, odspUtils_js_1.getWithRetryForTokenRefresh)(async (options) => {
490
528
  const storageToken = await this.getStorageToken(options, "ReadCommit");
491
529
  const snapshotDownloader = async (url, fetchOptions) => {
492
530
  return this.epochTracker.fetchAndParseAsJSON(url, fetchOptions, "snapshotTree", undefined, scenarioName);
493
531
  };
494
- const snapshot = await (0, fetchSnapshot_1.fetchSnapshot)(this.snapshotUrl, storageToken, id, this.fetchFullSnapshot, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader, this.logger, snapshotDownloader);
532
+ const snapshot = await (0, fetchSnapshot_js_1.fetchSnapshot)(this.snapshotUrl, storageToken, id, this.fetchFullSnapshot, !!this.hostPolicy.sessionOptions?.forceAccessTokenViaAuthorizationHeader, this.logger, snapshotDownloader);
495
533
  let treeId = "";
496
534
  if (snapshot.snapshotTree) {
497
535
  (0, core_utils_1.assert)(snapshot.snapshotTree.id !== undefined, 0x222 /* "Root tree should contain the id!!" */);