@fluidframework/odsp-driver 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.225277

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 (666) hide show
  1. package/.eslintrc.js +12 -12
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +162 -0
  4. package/README.md +56 -0
  5. package/api-extractor-esm.json +4 -0
  6. package/api-extractor-lint.json +4 -0
  7. package/api-extractor.json +2 -2
  8. package/api-report/odsp-driver.api.md +309 -0
  9. package/dist/{ReadBufferUtils.js → ReadBufferUtils.cjs} +16 -9
  10. package/dist/ReadBufferUtils.cjs.map +1 -0
  11. package/dist/ReadBufferUtils.d.ts.map +1 -1
  12. package/dist/{WriteBufferUtils.js → WriteBufferUtils.cjs} +73 -69
  13. package/dist/WriteBufferUtils.cjs.map +1 -0
  14. package/dist/WriteBufferUtils.d.ts +3 -5
  15. package/dist/WriteBufferUtils.d.ts.map +1 -1
  16. package/dist/{checkUrl.js → checkUrl.cjs} +7 -6
  17. package/dist/checkUrl.cjs.map +1 -0
  18. package/dist/checkUrl.d.ts +1 -0
  19. package/dist/checkUrl.d.ts.map +1 -1
  20. package/dist/compactSnapshotParser.cjs +207 -0
  21. package/dist/compactSnapshotParser.cjs.map +1 -0
  22. package/dist/compactSnapshotParser.d.ts +12 -3
  23. package/dist/compactSnapshotParser.d.ts.map +1 -1
  24. package/dist/{compactSnapshotWriter.js → compactSnapshotWriter.cjs} +43 -33
  25. package/dist/compactSnapshotWriter.cjs.map +1 -0
  26. package/dist/compactSnapshotWriter.d.ts +2 -3
  27. package/dist/compactSnapshotWriter.d.ts.map +1 -1
  28. package/dist/{constants.js → constants.cjs} +7 -1
  29. package/dist/constants.cjs.map +1 -0
  30. package/dist/constants.d.ts +6 -0
  31. package/dist/constants.d.ts.map +1 -1
  32. package/dist/{contracts.js → contracts.cjs} +1 -1
  33. package/dist/contracts.cjs.map +1 -0
  34. package/dist/contracts.d.ts +16 -53
  35. package/dist/contracts.d.ts.map +1 -1
  36. package/dist/{contractsPublic.js → contractsPublic.cjs} +9 -3
  37. package/dist/contractsPublic.cjs.map +1 -0
  38. package/dist/contractsPublic.d.ts +15 -0
  39. package/dist/contractsPublic.d.ts.map +1 -1
  40. package/dist/createFile.cjs +177 -0
  41. package/dist/createFile.cjs.map +1 -0
  42. package/dist/createFile.d.ts +6 -10
  43. package/dist/createFile.d.ts.map +1 -1
  44. package/dist/createNewContainerOnExistingFile.cjs +60 -0
  45. package/dist/createNewContainerOnExistingFile.cjs.map +1 -0
  46. package/dist/createNewContainerOnExistingFile.d.ts +22 -0
  47. package/dist/createNewContainerOnExistingFile.d.ts.map +1 -0
  48. package/dist/createNewModule.cjs +12 -0
  49. package/dist/createNewModule.cjs.map +1 -0
  50. package/dist/createNewModule.d.ts +7 -0
  51. package/dist/createNewModule.d.ts.map +1 -0
  52. package/dist/createNewUtils.cjs +203 -0
  53. package/dist/createNewUtils.cjs.map +1 -0
  54. package/dist/createNewUtils.d.ts +16 -0
  55. package/dist/createNewUtils.d.ts.map +1 -1
  56. package/dist/{createOdspCreateContainerRequest.js → createOdspCreateContainerRequest.cjs} +8 -4
  57. package/dist/createOdspCreateContainerRequest.cjs.map +1 -0
  58. package/dist/createOdspCreateContainerRequest.d.ts +5 -3
  59. package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
  60. package/dist/{createOdspUrl.js → createOdspUrl.cjs} +2 -1
  61. package/dist/createOdspUrl.cjs.map +1 -0
  62. package/dist/createOdspUrl.d.ts +1 -0
  63. package/dist/createOdspUrl.d.ts.map +1 -1
  64. package/dist/{epochTracker.js → epochTracker.cjs} +102 -48
  65. package/dist/epochTracker.cjs.map +1 -0
  66. package/dist/epochTracker.d.ts +32 -8
  67. package/dist/epochTracker.d.ts.map +1 -1
  68. package/dist/{fetch.js → fetch.cjs} +1 -1
  69. package/dist/fetch.cjs.map +1 -0
  70. package/dist/fetch.d.ts +1 -1
  71. package/dist/fetch.d.ts.map +1 -1
  72. package/dist/{fetchSnapshot.js → fetchSnapshot.cjs} +192 -176
  73. package/dist/fetchSnapshot.cjs.map +1 -0
  74. package/dist/fetchSnapshot.d.ts +10 -5
  75. package/dist/fetchSnapshot.d.ts.map +1 -1
  76. package/dist/{getFileLink.js → getFileLink.cjs} +52 -41
  77. package/dist/getFileLink.cjs.map +1 -0
  78. package/dist/getFileLink.d.ts +4 -7
  79. package/dist/getFileLink.d.ts.map +1 -1
  80. package/dist/{getQueryString.js → getQueryString.cjs} +1 -1
  81. package/dist/getQueryString.cjs.map +1 -0
  82. package/dist/getQueryString.d.ts.map +1 -1
  83. package/dist/{getUrlAndHeadersWithAuth.js → getUrlAndHeadersWithAuth.cjs} +4 -2
  84. package/dist/getUrlAndHeadersWithAuth.cjs.map +1 -0
  85. package/dist/getUrlAndHeadersWithAuth.d.ts.map +1 -1
  86. package/dist/index.cjs +59 -0
  87. package/dist/index.cjs.map +1 -0
  88. package/dist/index.d.ts +19 -16
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/localOdspDriver/localOdspDeltaStorageService.cjs +35 -0
  91. package/dist/localOdspDriver/localOdspDeltaStorageService.cjs.map +1 -0
  92. package/dist/localOdspDriver/localOdspDeltaStorageService.d.ts +17 -0
  93. package/dist/localOdspDriver/localOdspDeltaStorageService.d.ts.map +1 -0
  94. package/dist/localOdspDriver/{localOdspDocumentService.js → localOdspDocumentService.cjs} +7 -5
  95. package/dist/localOdspDriver/localOdspDocumentService.cjs.map +1 -0
  96. package/dist/localOdspDriver/localOdspDocumentService.d.ts +3 -2
  97. package/dist/localOdspDriver/localOdspDocumentService.d.ts.map +1 -1
  98. package/dist/localOdspDriver/{localOdspDocumentServiceFactory.js → localOdspDocumentServiceFactory.cjs} +9 -10
  99. package/dist/localOdspDriver/localOdspDocumentServiceFactory.cjs.map +1 -0
  100. package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts +2 -3
  101. package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +1 -1
  102. package/dist/localOdspDriver/{localOdspDocumentStorageManager.js → localOdspDocumentStorageManager.cjs} +13 -11
  103. package/dist/localOdspDriver/localOdspDocumentStorageManager.cjs.map +1 -0
  104. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts +2 -2
  105. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -1
  106. package/dist/odsp-driver-alpha.d.ts +496 -0
  107. package/dist/odsp-driver-beta.d.ts +160 -0
  108. package/dist/odsp-driver-public.d.ts +160 -0
  109. package/dist/odsp-driver-untrimmed.d.ts +565 -0
  110. package/dist/{odspCache.js → odspCache.cjs} +9 -10
  111. package/dist/odspCache.cjs.map +1 -0
  112. package/dist/odspCache.d.ts +19 -4
  113. package/dist/odspCache.d.ts.map +1 -1
  114. package/dist/odspDelayLoadedDeltaStream.cjs +291 -0
  115. package/dist/odspDelayLoadedDeltaStream.cjs.map +1 -0
  116. package/dist/odspDelayLoadedDeltaStream.d.ts +75 -0
  117. package/dist/odspDelayLoadedDeltaStream.d.ts.map +1 -0
  118. package/dist/{odspDeltaStorageService.js → odspDeltaStorageService.cjs} +70 -71
  119. package/dist/odspDeltaStorageService.cjs.map +1 -0
  120. package/dist/odspDeltaStorageService.d.ts +8 -6
  121. package/dist/odspDeltaStorageService.d.ts.map +1 -1
  122. package/dist/{odspDocumentDeltaConnection.js → odspDocumentDeltaConnection.cjs} +224 -113
  123. package/dist/odspDocumentDeltaConnection.cjs.map +1 -0
  124. package/dist/odspDocumentDeltaConnection.d.ts +32 -12
  125. package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
  126. package/dist/odspDocumentService.cjs +225 -0
  127. package/dist/odspDocumentService.cjs.map +1 -0
  128. package/dist/odspDocumentService.d.ts +11 -25
  129. package/dist/odspDocumentService.d.ts.map +1 -1
  130. package/dist/{odspDocumentServiceFactory.js → odspDocumentServiceFactory.cjs} +8 -5
  131. package/dist/odspDocumentServiceFactory.cjs.map +1 -0
  132. package/dist/odspDocumentServiceFactory.d.ts +4 -0
  133. package/dist/odspDocumentServiceFactory.d.ts.map +1 -1
  134. package/dist/odspDocumentServiceFactoryCore.cjs +196 -0
  135. package/dist/odspDocumentServiceFactoryCore.cjs.map +1 -0
  136. package/dist/odspDocumentServiceFactoryCore.d.ts +18 -11
  137. package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
  138. package/dist/odspDocumentServiceFactoryWithCodeSplit.cjs +20 -0
  139. package/dist/odspDocumentServiceFactoryWithCodeSplit.cjs.map +1 -0
  140. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts +5 -0
  141. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
  142. package/dist/odspDocumentStorageManager.cjs +490 -0
  143. package/dist/odspDocumentStorageManager.cjs.map +1 -0
  144. package/dist/odspDocumentStorageManager.d.ts +11 -5
  145. package/dist/odspDocumentStorageManager.d.ts.map +1 -1
  146. package/dist/{odspDocumentStorageServiceBase.js → odspDocumentStorageServiceBase.cjs} +32 -34
  147. package/dist/odspDocumentStorageServiceBase.cjs.map +1 -0
  148. package/dist/odspDocumentStorageServiceBase.d.ts +7 -9
  149. package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
  150. package/dist/{odspDriverUrlResolver.js → odspDriverUrlResolver.cjs} +50 -36
  151. package/dist/odspDriverUrlResolver.cjs.map +1 -0
  152. package/dist/odspDriverUrlResolver.d.ts +12 -0
  153. package/dist/odspDriverUrlResolver.d.ts.map +1 -1
  154. package/dist/{odspDriverUrlResolverForShareLink.js → odspDriverUrlResolverForShareLink.cjs} +37 -26
  155. package/dist/odspDriverUrlResolverForShareLink.cjs.map +1 -0
  156. package/dist/odspDriverUrlResolverForShareLink.d.ts +5 -3
  157. package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
  158. package/dist/{odspError.js → odspError.cjs} +7 -3
  159. package/dist/odspError.cjs.map +1 -0
  160. package/dist/odspError.d.ts.map +1 -1
  161. package/dist/{odspFluidFileLink.js → odspFluidFileLink.cjs} +25 -18
  162. package/dist/odspFluidFileLink.cjs.map +1 -0
  163. package/dist/odspFluidFileLink.d.ts +10 -1
  164. package/dist/odspFluidFileLink.d.ts.map +1 -1
  165. package/dist/odspLocationRedirection.cjs +24 -0
  166. package/dist/odspLocationRedirection.cjs.map +1 -0
  167. package/dist/odspLocationRedirection.d.ts +14 -0
  168. package/dist/odspLocationRedirection.d.ts.map +1 -0
  169. package/dist/{odspPublicUtils.js → odspPublicUtils.cjs} +7 -4
  170. package/dist/odspPublicUtils.cjs.map +1 -0
  171. package/dist/odspPublicUtils.d.ts +6 -0
  172. package/dist/odspPublicUtils.d.ts.map +1 -1
  173. package/dist/{odspSnapshotParser.js → odspSnapshotParser.cjs} +11 -12
  174. package/dist/odspSnapshotParser.cjs.map +1 -0
  175. package/dist/odspSnapshotParser.d.ts.map +1 -1
  176. package/dist/{odspSummaryUploadManager.js → odspSummaryUploadManager.cjs} +47 -34
  177. package/dist/odspSummaryUploadManager.cjs.map +1 -0
  178. package/dist/odspSummaryUploadManager.d.ts +7 -4
  179. package/dist/odspSummaryUploadManager.d.ts.map +1 -1
  180. package/dist/{odspUrlHelper.js → odspUrlHelper.cjs} +9 -3
  181. package/dist/odspUrlHelper.cjs.map +1 -0
  182. package/dist/odspUrlHelper.d.ts +5 -0
  183. package/dist/odspUrlHelper.d.ts.map +1 -1
  184. package/dist/{odspUtils.js → odspUtils.cjs} +118 -30
  185. package/dist/odspUtils.cjs.map +1 -0
  186. package/dist/odspUtils.d.ts +35 -6
  187. package/dist/odspUtils.d.ts.map +1 -1
  188. package/dist/{opsCaching.js → opsCaching.cjs} +25 -9
  189. package/dist/opsCaching.cjs.map +1 -0
  190. package/dist/opsCaching.d.ts +3 -3
  191. package/dist/opsCaching.d.ts.map +1 -1
  192. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  193. package/dist/packageVersion.cjs.map +1 -0
  194. package/dist/packageVersion.d.ts +1 -1
  195. package/dist/packageVersion.d.ts.map +1 -1
  196. package/dist/prefetchLatestSnapshot.cjs +100 -0
  197. package/dist/prefetchLatestSnapshot.cjs.map +1 -0
  198. package/dist/prefetchLatestSnapshot.d.ts +12 -7
  199. package/dist/prefetchLatestSnapshot.d.ts.map +1 -1
  200. package/dist/{retryErrorsStorageAdapter.js → retryErrorsStorageAdapter.cjs} +13 -6
  201. package/dist/retryErrorsStorageAdapter.cjs.map +1 -0
  202. package/dist/retryErrorsStorageAdapter.d.ts +5 -4
  203. package/dist/retryErrorsStorageAdapter.d.ts.map +1 -1
  204. package/dist/{retryUtils.js → retryUtils.cjs} +30 -14
  205. package/dist/retryUtils.cjs.map +1 -0
  206. package/dist/retryUtils.d.ts +2 -2
  207. package/dist/retryUtils.d.ts.map +1 -1
  208. package/dist/socketModule.cjs +10 -0
  209. package/dist/socketModule.cjs.map +1 -0
  210. package/dist/socketModule.d.ts +7 -0
  211. package/dist/socketModule.d.ts.map +1 -0
  212. package/dist/tsdoc-metadata.json +11 -0
  213. package/dist/{vroom.js → vroom.cjs} +24 -9
  214. package/dist/vroom.cjs.map +1 -0
  215. package/dist/vroom.d.ts +4 -4
  216. package/dist/vroom.d.ts.map +1 -1
  217. package/dist/{zipItDataRepresentationUtils.js → zipItDataRepresentationUtils.cjs} +227 -118
  218. package/dist/zipItDataRepresentationUtils.cjs.map +1 -0
  219. package/dist/zipItDataRepresentationUtils.d.ts +47 -20
  220. package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
  221. package/lib/{ReadBufferUtils.d.ts → ReadBufferUtils.d.mts} +1 -1
  222. package/lib/ReadBufferUtils.d.mts.map +1 -0
  223. package/lib/{ReadBufferUtils.js → ReadBufferUtils.mjs} +14 -7
  224. package/lib/ReadBufferUtils.mjs.map +1 -0
  225. package/lib/{WriteBufferUtils.d.ts → WriteBufferUtils.d.mts} +4 -6
  226. package/lib/WriteBufferUtils.d.mts.map +1 -0
  227. package/lib/{WriteBufferUtils.js → WriteBufferUtils.mjs} +68 -64
  228. package/lib/WriteBufferUtils.mjs.map +1 -0
  229. package/lib/{checkUrl.d.ts → checkUrl.d.mts} +2 -1
  230. package/lib/checkUrl.d.mts.map +1 -0
  231. package/lib/{checkUrl.js → checkUrl.mjs} +7 -6
  232. package/lib/checkUrl.mjs.map +1 -0
  233. package/lib/compactSnapshotParser.d.mts +24 -0
  234. package/lib/compactSnapshotParser.d.mts.map +1 -0
  235. package/lib/compactSnapshotParser.mjs +203 -0
  236. package/lib/compactSnapshotParser.mjs.map +1 -0
  237. package/lib/{compactSnapshotWriter.d.ts → compactSnapshotWriter.d.mts} +4 -5
  238. package/lib/compactSnapshotWriter.d.mts.map +1 -0
  239. package/lib/{compactSnapshotWriter.js → compactSnapshotWriter.mjs} +41 -31
  240. package/lib/compactSnapshotWriter.mjs.map +1 -0
  241. package/lib/{constants.d.ts → constants.d.mts} +7 -1
  242. package/lib/constants.d.mts.map +1 -0
  243. package/lib/{constants.js → constants.mjs} +7 -1
  244. package/lib/constants.mjs.map +1 -0
  245. package/lib/{contracts.d.ts → contracts.d.mts} +18 -55
  246. package/lib/contracts.d.mts.map +1 -0
  247. package/lib/{contracts.js → contracts.mjs} +1 -1
  248. package/lib/contracts.mjs.map +1 -0
  249. package/lib/{contractsPublic.d.ts → contractsPublic.d.mts} +16 -1
  250. package/lib/contractsPublic.d.mts.map +1 -0
  251. package/lib/{contractsPublic.js → contractsPublic.mjs} +7 -1
  252. package/lib/contractsPublic.mjs.map +1 -0
  253. package/lib/createFile.d.mts +18 -0
  254. package/lib/createFile.d.mts.map +1 -0
  255. package/lib/createFile.mjs +171 -0
  256. package/lib/createFile.mjs.map +1 -0
  257. package/lib/createNewContainerOnExistingFile.d.mts +22 -0
  258. package/lib/createNewContainerOnExistingFile.d.mts.map +1 -0
  259. package/lib/createNewContainerOnExistingFile.mjs +56 -0
  260. package/lib/createNewContainerOnExistingFile.mjs.map +1 -0
  261. package/lib/createNewModule.d.mts +7 -0
  262. package/lib/createNewModule.d.mts.map +1 -0
  263. package/lib/createNewModule.mjs +7 -0
  264. package/lib/createNewModule.mjs.map +1 -0
  265. package/lib/createNewUtils.d.mts +27 -0
  266. package/lib/createNewUtils.d.mts.map +1 -0
  267. package/lib/createNewUtils.mjs +197 -0
  268. package/lib/createNewUtils.mjs.map +1 -0
  269. package/lib/{createOdspCreateContainerRequest.d.ts → createOdspCreateContainerRequest.d.mts} +6 -8
  270. package/lib/createOdspCreateContainerRequest.d.mts.map +1 -0
  271. package/lib/{createOdspCreateContainerRequest.js → createOdspCreateContainerRequest.mjs} +8 -4
  272. package/lib/createOdspCreateContainerRequest.mjs.map +1 -0
  273. package/lib/{createOdspUrl.d.ts → createOdspUrl.d.mts} +3 -2
  274. package/lib/createOdspUrl.d.mts.map +1 -0
  275. package/lib/{createOdspUrl.js → createOdspUrl.mjs} +2 -1
  276. package/lib/createOdspUrl.mjs.map +1 -0
  277. package/lib/{epochTracker.d.ts → epochTracker.d.mts} +35 -11
  278. package/lib/epochTracker.d.mts.map +1 -0
  279. package/lib/{epochTracker.js → epochTracker.mjs} +97 -43
  280. package/lib/epochTracker.mjs.map +1 -0
  281. package/lib/{fetch.d.ts → fetch.d.mts} +2 -2
  282. package/lib/fetch.d.mts.map +1 -0
  283. package/lib/{fetch.js → fetch.mjs} +1 -1
  284. package/lib/fetch.mjs.map +1 -0
  285. package/lib/{fetchSnapshot.d.ts → fetchSnapshot.d.mts} +15 -10
  286. package/lib/fetchSnapshot.d.mts.map +1 -0
  287. package/lib/{fetchSnapshot.js → fetchSnapshot.mjs} +185 -167
  288. package/lib/fetchSnapshot.mjs.map +1 -0
  289. package/lib/{getFileLink.d.ts → getFileLink.d.mts} +5 -8
  290. package/lib/getFileLink.d.mts.map +1 -0
  291. package/lib/{getFileLink.js → getFileLink.mjs} +49 -38
  292. package/lib/getFileLink.mjs.map +1 -0
  293. package/lib/{getQueryString.d.ts → getQueryString.d.mts} +1 -5
  294. package/lib/getQueryString.d.mts.map +1 -0
  295. package/lib/{getQueryString.js → getQueryString.mjs} +1 -1
  296. package/lib/getQueryString.mjs.map +1 -0
  297. package/lib/{getUrlAndHeadersWithAuth.d.ts → getUrlAndHeadersWithAuth.d.mts} +1 -1
  298. package/lib/getUrlAndHeadersWithAuth.d.mts.map +1 -0
  299. package/lib/{getUrlAndHeadersWithAuth.js → getUrlAndHeadersWithAuth.mjs} +4 -2
  300. package/lib/getUrlAndHeadersWithAuth.mjs.map +1 -0
  301. package/lib/index.d.mts +24 -0
  302. package/lib/index.d.mts.map +1 -0
  303. package/lib/index.mjs +22 -0
  304. package/lib/index.mjs.map +1 -0
  305. package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts +17 -0
  306. package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts.map +1 -0
  307. package/lib/localOdspDriver/localOdspDeltaStorageService.mjs +31 -0
  308. package/lib/localOdspDriver/localOdspDeltaStorageService.mjs.map +1 -0
  309. package/lib/localOdspDriver/{localOdspDocumentService.d.ts → localOdspDocumentService.d.mts} +4 -3
  310. package/lib/localOdspDriver/localOdspDocumentService.d.mts.map +1 -0
  311. package/lib/localOdspDriver/{localOdspDocumentService.js → localOdspDocumentService.mjs} +8 -6
  312. package/lib/localOdspDriver/localOdspDocumentService.mjs.map +1 -0
  313. package/lib/localOdspDriver/{localOdspDocumentServiceFactory.d.ts → localOdspDocumentServiceFactory.d.mts} +5 -6
  314. package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.mts.map +1 -0
  315. package/lib/localOdspDriver/{localOdspDocumentServiceFactory.js → localOdspDocumentServiceFactory.mjs} +9 -10
  316. package/lib/localOdspDriver/localOdspDocumentServiceFactory.mjs.map +1 -0
  317. package/lib/localOdspDriver/{localOdspDocumentStorageManager.d.ts → localOdspDocumentStorageManager.d.mts} +4 -4
  318. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.mts.map +1 -0
  319. package/lib/localOdspDriver/{localOdspDocumentStorageManager.js → localOdspDocumentStorageManager.mjs} +11 -9
  320. package/lib/localOdspDriver/localOdspDocumentStorageManager.mjs.map +1 -0
  321. package/lib/odsp-driver-alpha.d.mts +496 -0
  322. package/lib/odsp-driver-beta.d.mts +160 -0
  323. package/lib/odsp-driver-public.d.mts +160 -0
  324. package/lib/odsp-driver-untrimmed.d.mts +565 -0
  325. package/lib/{odspCache.d.ts → odspCache.d.mts} +20 -9
  326. package/lib/odspCache.d.mts.map +1 -0
  327. package/lib/{odspCache.js → odspCache.mjs} +6 -11
  328. package/lib/odspCache.mjs.map +1 -0
  329. package/lib/odspDelayLoadedDeltaStream.d.mts +75 -0
  330. package/lib/odspDelayLoadedDeltaStream.d.mts.map +1 -0
  331. package/lib/odspDelayLoadedDeltaStream.mjs +287 -0
  332. package/lib/odspDelayLoadedDeltaStream.mjs.map +1 -0
  333. package/lib/{odspDeltaStorageService.d.ts → odspDeltaStorageService.d.mts} +10 -8
  334. package/lib/odspDeltaStorageService.d.mts.map +1 -0
  335. package/lib/{odspDeltaStorageService.js → odspDeltaStorageService.mjs} +70 -68
  336. package/lib/odspDeltaStorageService.mjs.map +1 -0
  337. package/lib/{odspDocumentDeltaConnection.d.ts → odspDocumentDeltaConnection.d.mts} +34 -14
  338. package/lib/odspDocumentDeltaConnection.d.mts.map +1 -0
  339. package/lib/{odspDocumentDeltaConnection.js → odspDocumentDeltaConnection.mjs} +214 -103
  340. package/lib/odspDocumentDeltaConnection.mjs.map +1 -0
  341. package/lib/{odspDocumentService.d.ts → odspDocumentService.d.mts} +15 -29
  342. package/lib/odspDocumentService.d.mts.map +1 -0
  343. package/lib/odspDocumentService.mjs +221 -0
  344. package/lib/odspDocumentService.mjs.map +1 -0
  345. package/lib/{odspDocumentServiceFactory.d.ts → odspDocumentServiceFactory.d.mts} +6 -2
  346. package/lib/odspDocumentServiceFactory.d.mts.map +1 -0
  347. package/lib/{odspDocumentServiceFactory.js → odspDocumentServiceFactory.mjs} +8 -6
  348. package/lib/odspDocumentServiceFactory.mjs.map +1 -0
  349. package/lib/{odspDocumentServiceFactoryCore.d.ts → odspDocumentServiceFactoryCore.d.mts} +20 -13
  350. package/lib/odspDocumentServiceFactoryCore.d.mts.map +1 -0
  351. package/lib/odspDocumentServiceFactoryCore.mjs +192 -0
  352. package/lib/odspDocumentServiceFactoryCore.mjs.map +1 -0
  353. package/lib/{odspDocumentServiceFactoryWithCodeSplit.d.ts → odspDocumentServiceFactoryWithCodeSplit.d.mts} +7 -2
  354. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.mts.map +1 -0
  355. package/lib/{odspDocumentServiceFactoryWithCodeSplit.js → odspDocumentServiceFactoryWithCodeSplit.mjs} +8 -3
  356. package/lib/odspDocumentServiceFactoryWithCodeSplit.mjs.map +1 -0
  357. package/lib/{odspDocumentStorageManager.d.ts → odspDocumentStorageManager.d.mts} +18 -12
  358. package/lib/odspDocumentStorageManager.d.mts.map +1 -0
  359. package/lib/odspDocumentStorageManager.mjs +486 -0
  360. package/lib/odspDocumentStorageManager.mjs.map +1 -0
  361. package/lib/{odspDocumentStorageServiceBase.d.ts → odspDocumentStorageServiceBase.d.mts} +9 -11
  362. package/lib/odspDocumentStorageServiceBase.d.mts.map +1 -0
  363. package/lib/{odspDocumentStorageServiceBase.js → odspDocumentStorageServiceBase.mjs} +31 -33
  364. package/lib/odspDocumentStorageServiceBase.mjs.map +1 -0
  365. package/lib/{odspDriverUrlResolver.d.ts → odspDriverUrlResolver.d.mts} +13 -1
  366. package/lib/odspDriverUrlResolver.d.mts.map +1 -0
  367. package/lib/{odspDriverUrlResolver.js → odspDriverUrlResolver.mjs} +50 -40
  368. package/lib/odspDriverUrlResolver.mjs.map +1 -0
  369. package/lib/{odspDriverUrlResolverForShareLink.d.ts → odspDriverUrlResolverForShareLink.d.mts} +7 -5
  370. package/lib/odspDriverUrlResolverForShareLink.d.mts.map +1 -0
  371. package/lib/{odspDriverUrlResolverForShareLink.js → odspDriverUrlResolverForShareLink.mjs} +36 -29
  372. package/lib/odspDriverUrlResolverForShareLink.mjs.map +1 -0
  373. package/lib/{odspError.d.ts → odspError.d.mts} +2 -2
  374. package/lib/odspError.d.mts.map +1 -0
  375. package/lib/{odspError.js → odspError.mjs} +7 -3
  376. package/lib/odspError.mjs.map +1 -0
  377. package/lib/{odspFluidFileLink.d.ts → odspFluidFileLink.d.mts} +12 -3
  378. package/lib/odspFluidFileLink.d.mts.map +1 -0
  379. package/lib/{odspFluidFileLink.js → odspFluidFileLink.mjs} +23 -16
  380. package/lib/odspFluidFileLink.mjs.map +1 -0
  381. package/lib/odspLocationRedirection.d.mts +14 -0
  382. package/lib/odspLocationRedirection.d.mts.map +1 -0
  383. package/lib/odspLocationRedirection.mjs +20 -0
  384. package/lib/odspLocationRedirection.mjs.map +1 -0
  385. package/lib/{odspPublicUtils.d.ts → odspPublicUtils.d.mts} +7 -1
  386. package/lib/odspPublicUtils.d.mts.map +1 -0
  387. package/lib/{odspPublicUtils.js → odspPublicUtils.mjs} +5 -2
  388. package/lib/odspPublicUtils.mjs.map +1 -0
  389. package/lib/{odspSnapshotParser.d.ts → odspSnapshotParser.d.mts} +3 -3
  390. package/lib/odspSnapshotParser.d.mts.map +1 -0
  391. package/lib/{odspSnapshotParser.js → odspSnapshotParser.mjs} +10 -11
  392. package/lib/odspSnapshotParser.mjs.map +1 -0
  393. package/lib/{odspSummaryUploadManager.d.ts → odspSummaryUploadManager.d.mts} +9 -6
  394. package/lib/odspSummaryUploadManager.d.mts.map +1 -0
  395. package/lib/{odspSummaryUploadManager.js → odspSummaryUploadManager.mjs} +41 -32
  396. package/lib/odspSummaryUploadManager.mjs.map +1 -0
  397. package/lib/{odspUrlHelper.d.ts → odspUrlHelper.d.mts} +6 -1
  398. package/lib/odspUrlHelper.d.mts.map +1 -0
  399. package/lib/{odspUrlHelper.js → odspUrlHelper.mjs} +9 -3
  400. package/lib/odspUrlHelper.mjs.map +1 -0
  401. package/lib/{odspUtils.d.ts → odspUtils.d.mts} +37 -8
  402. package/lib/odspUtils.d.mts.map +1 -0
  403. package/lib/{odspUtils.js → odspUtils.mjs} +109 -27
  404. package/lib/odspUtils.mjs.map +1 -0
  405. package/lib/{opsCaching.d.ts → opsCaching.d.mts} +4 -4
  406. package/lib/opsCaching.d.mts.map +1 -0
  407. package/lib/{opsCaching.js → opsCaching.mjs} +23 -7
  408. package/lib/opsCaching.mjs.map +1 -0
  409. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +2 -2
  410. package/lib/packageVersion.d.mts.map +1 -0
  411. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  412. package/lib/packageVersion.mjs.map +1 -0
  413. package/lib/{prefetchLatestSnapshot.d.ts → prefetchLatestSnapshot.d.mts} +14 -9
  414. package/lib/prefetchLatestSnapshot.d.mts.map +1 -0
  415. package/lib/prefetchLatestSnapshot.mjs +96 -0
  416. package/lib/prefetchLatestSnapshot.mjs.map +1 -0
  417. package/lib/{retryErrorsStorageAdapter.d.ts → retryErrorsStorageAdapter.d.mts} +6 -5
  418. package/lib/retryErrorsStorageAdapter.d.mts.map +1 -0
  419. package/lib/{retryErrorsStorageAdapter.js → retryErrorsStorageAdapter.mjs} +13 -6
  420. package/lib/retryErrorsStorageAdapter.mjs.map +1 -0
  421. package/lib/{retryUtils.d.ts → retryUtils.d.mts} +3 -3
  422. package/lib/retryUtils.d.mts.map +1 -0
  423. package/lib/{retryUtils.js → retryUtils.mjs} +27 -11
  424. package/lib/retryUtils.mjs.map +1 -0
  425. package/lib/socketModule.d.mts +7 -0
  426. package/lib/socketModule.d.mts.map +1 -0
  427. package/lib/socketModule.mjs +7 -0
  428. package/lib/socketModule.mjs.map +1 -0
  429. package/lib/{vroom.d.ts → vroom.d.mts} +7 -7
  430. package/lib/vroom.d.mts.map +1 -0
  431. package/lib/{vroom.js → vroom.mjs} +24 -9
  432. package/lib/vroom.mjs.map +1 -0
  433. package/lib/{zipItDataRepresentationUtils.d.ts → zipItDataRepresentationUtils.d.mts} +49 -22
  434. package/lib/zipItDataRepresentationUtils.d.mts.map +1 -0
  435. package/lib/{zipItDataRepresentationUtils.js → zipItDataRepresentationUtils.mjs} +213 -111
  436. package/lib/zipItDataRepresentationUtils.mjs.map +1 -0
  437. package/package.json +87 -69
  438. package/prettier.config.cjs +8 -0
  439. package/src/ReadBufferUtils.ts +51 -44
  440. package/src/WriteBufferUtils.ts +203 -181
  441. package/src/checkUrl.ts +16 -15
  442. package/src/compactSnapshotParser.ts +219 -103
  443. package/src/compactSnapshotWriter.ts +118 -97
  444. package/src/constants.ts +7 -0
  445. package/src/contracts.ts +96 -136
  446. package/src/contractsPublic.ts +31 -16
  447. package/src/createFile.ts +243 -305
  448. package/src/createNewContainerOnExistingFile.ts +93 -0
  449. package/src/createNewModule.ts +7 -0
  450. package/src/createNewUtils.ts +266 -56
  451. package/src/createOdspCreateContainerRequest.ts +22 -18
  452. package/src/createOdspUrl.ts +12 -13
  453. package/src/epochTracker.ts +596 -457
  454. package/src/fetch.ts +4 -4
  455. package/src/fetchSnapshot.ts +583 -508
  456. package/src/getFileLink.ts +194 -155
  457. package/src/getQueryString.ts +11 -9
  458. package/src/getUrlAndHeadersWithAuth.ts +34 -33
  459. package/src/index.ts +42 -18
  460. package/src/localOdspDriver/localOdspDeltaStorageService.ts +49 -0
  461. package/src/localOdspDriver/localOdspDocumentService.ts +40 -38
  462. package/src/localOdspDriver/localOdspDocumentServiceFactory.ts +46 -43
  463. package/src/localOdspDriver/localOdspDocumentStorageManager.ts +55 -50
  464. package/src/odspCache.ts +112 -90
  465. package/src/odspDelayLoadedDeltaStream.ts +459 -0
  466. package/src/odspDeltaStorageService.ts +232 -221
  467. package/src/odspDocumentDeltaConnection.ts +751 -563
  468. package/src/odspDocumentService.ts +324 -523
  469. package/src/odspDocumentServiceFactory.ts +20 -21
  470. package/src/odspDocumentServiceFactoryCore.ts +329 -200
  471. package/src/odspDocumentServiceFactoryWithCodeSplit.ts +20 -20
  472. package/src/odspDocumentStorageManager.ts +730 -534
  473. package/src/odspDocumentStorageServiceBase.ts +279 -254
  474. package/src/odspDriverUrlResolver.ts +230 -188
  475. package/src/odspDriverUrlResolverForShareLink.ts +223 -203
  476. package/src/odspError.ts +27 -19
  477. package/src/odspFluidFileLink.ts +106 -87
  478. package/src/odspLocationRedirection.ts +26 -0
  479. package/src/odspPublicUtils.ts +20 -14
  480. package/src/odspSnapshotParser.ts +53 -46
  481. package/src/odspSummaryUploadManager.ts +243 -218
  482. package/src/odspUrlHelper.ts +81 -71
  483. package/src/odspUtils.ts +401 -259
  484. package/src/opsCaching.ts +214 -193
  485. package/src/packageVersion.ts +1 -1
  486. package/src/prefetchLatestSnapshot.ts +142 -80
  487. package/src/retryErrorsStorageAdapter.ts +92 -77
  488. package/src/retryUtils.ts +80 -57
  489. package/src/socketModule.ts +8 -0
  490. package/src/vroom.ts +92 -83
  491. package/src/zipItDataRepresentationUtils.ts +534 -394
  492. package/tsc-multi.test.json +4 -0
  493. package/tsconfig.json +11 -13
  494. package/.editorconfig +0 -7
  495. package/dist/ReadBufferUtils.js.map +0 -1
  496. package/dist/WriteBufferUtils.js.map +0 -1
  497. package/dist/checkUrl.js.map +0 -1
  498. package/dist/compactSnapshotParser.js +0 -115
  499. package/dist/compactSnapshotParser.js.map +0 -1
  500. package/dist/compactSnapshotWriter.js.map +0 -1
  501. package/dist/constants.js.map +0 -1
  502. package/dist/contracts.js.map +0 -1
  503. package/dist/contractsPublic.js.map +0 -1
  504. package/dist/createFile.js +0 -242
  505. package/dist/createFile.js.map +0 -1
  506. package/dist/createNewUtils.js +0 -67
  507. package/dist/createNewUtils.js.map +0 -1
  508. package/dist/createOdspCreateContainerRequest.js.map +0 -1
  509. package/dist/createOdspUrl.js.map +0 -1
  510. package/dist/epochTracker.js.map +0 -1
  511. package/dist/fetch.js.map +0 -1
  512. package/dist/fetchSnapshot.js.map +0 -1
  513. package/dist/getFileLink.js.map +0 -1
  514. package/dist/getQueryString.js.map +0 -1
  515. package/dist/getSocketIo.d.ts +0 -11
  516. package/dist/getSocketIo.d.ts.map +0 -1
  517. package/dist/getSocketIo.js +0 -20
  518. package/dist/getSocketIo.js.map +0 -1
  519. package/dist/getUrlAndHeadersWithAuth.js.map +0 -1
  520. package/dist/index.js +0 -41
  521. package/dist/index.js.map +0 -1
  522. package/dist/localOdspDriver/localOdspDocumentService.js.map +0 -1
  523. package/dist/localOdspDriver/localOdspDocumentServiceFactory.js.map +0 -1
  524. package/dist/localOdspDriver/localOdspDocumentStorageManager.js.map +0 -1
  525. package/dist/odspCache.js.map +0 -1
  526. package/dist/odspDeltaStorageService.js.map +0 -1
  527. package/dist/odspDocumentDeltaConnection.js.map +0 -1
  528. package/dist/odspDocumentService.js +0 -364
  529. package/dist/odspDocumentService.js.map +0 -1
  530. package/dist/odspDocumentServiceFactory.js.map +0 -1
  531. package/dist/odspDocumentServiceFactoryCore.js +0 -118
  532. package/dist/odspDocumentServiceFactoryCore.js.map +0 -1
  533. package/dist/odspDocumentServiceFactoryWithCodeSplit.js +0 -34
  534. package/dist/odspDocumentServiceFactoryWithCodeSplit.js.map +0 -1
  535. package/dist/odspDocumentStorageManager.js +0 -356
  536. package/dist/odspDocumentStorageManager.js.map +0 -1
  537. package/dist/odspDocumentStorageServiceBase.js.map +0 -1
  538. package/dist/odspDriverUrlResolver.js.map +0 -1
  539. package/dist/odspDriverUrlResolverForShareLink.js.map +0 -1
  540. package/dist/odspError.js.map +0 -1
  541. package/dist/odspFluidFileLink.js.map +0 -1
  542. package/dist/odspPublicUtils.js.map +0 -1
  543. package/dist/odspSnapshotParser.js.map +0 -1
  544. package/dist/odspSummaryUploadManager.js.map +0 -1
  545. package/dist/odspUrlHelper.js.map +0 -1
  546. package/dist/odspUtils.js.map +0 -1
  547. package/dist/opsCaching.js.map +0 -1
  548. package/dist/packageVersion.js.map +0 -1
  549. package/dist/prefetchLatestSnapshot.js +0 -57
  550. package/dist/prefetchLatestSnapshot.js.map +0 -1
  551. package/dist/retryErrorsStorageAdapter.js.map +0 -1
  552. package/dist/retryUtils.js.map +0 -1
  553. package/dist/vroom.js.map +0 -1
  554. package/dist/zipItDataRepresentationUtils.js.map +0 -1
  555. package/lib/ReadBufferUtils.d.ts.map +0 -1
  556. package/lib/ReadBufferUtils.js.map +0 -1
  557. package/lib/WriteBufferUtils.d.ts.map +0 -1
  558. package/lib/WriteBufferUtils.js.map +0 -1
  559. package/lib/checkUrl.d.ts.map +0 -1
  560. package/lib/checkUrl.js.map +0 -1
  561. package/lib/compactSnapshotParser.d.ts +0 -15
  562. package/lib/compactSnapshotParser.d.ts.map +0 -1
  563. package/lib/compactSnapshotParser.js +0 -111
  564. package/lib/compactSnapshotParser.js.map +0 -1
  565. package/lib/compactSnapshotWriter.d.ts.map +0 -1
  566. package/lib/compactSnapshotWriter.js.map +0 -1
  567. package/lib/constants.d.ts.map +0 -1
  568. package/lib/constants.js.map +0 -1
  569. package/lib/contracts.d.ts.map +0 -1
  570. package/lib/contracts.js.map +0 -1
  571. package/lib/contractsPublic.d.ts.map +0 -1
  572. package/lib/contractsPublic.js.map +0 -1
  573. package/lib/createFile.d.ts +0 -22
  574. package/lib/createFile.d.ts.map +0 -1
  575. package/lib/createFile.js +0 -235
  576. package/lib/createFile.js.map +0 -1
  577. package/lib/createNewUtils.d.ts +0 -11
  578. package/lib/createNewUtils.d.ts.map +0 -1
  579. package/lib/createNewUtils.js +0 -63
  580. package/lib/createNewUtils.js.map +0 -1
  581. package/lib/createOdspCreateContainerRequest.d.ts.map +0 -1
  582. package/lib/createOdspCreateContainerRequest.js.map +0 -1
  583. package/lib/createOdspUrl.d.ts.map +0 -1
  584. package/lib/createOdspUrl.js.map +0 -1
  585. package/lib/epochTracker.d.ts.map +0 -1
  586. package/lib/epochTracker.js.map +0 -1
  587. package/lib/fetch.d.ts.map +0 -1
  588. package/lib/fetch.js.map +0 -1
  589. package/lib/fetchSnapshot.d.ts.map +0 -1
  590. package/lib/fetchSnapshot.js.map +0 -1
  591. package/lib/getFileLink.d.ts.map +0 -1
  592. package/lib/getFileLink.js.map +0 -1
  593. package/lib/getQueryString.d.ts.map +0 -1
  594. package/lib/getQueryString.js.map +0 -1
  595. package/lib/getSocketIo.d.ts +0 -11
  596. package/lib/getSocketIo.d.ts.map +0 -1
  597. package/lib/getSocketIo.js +0 -13
  598. package/lib/getSocketIo.js.map +0 -1
  599. package/lib/getUrlAndHeadersWithAuth.d.ts.map +0 -1
  600. package/lib/getUrlAndHeadersWithAuth.js.map +0 -1
  601. package/lib/index.d.ts +0 -21
  602. package/lib/index.d.ts.map +0 -1
  603. package/lib/index.js +0 -29
  604. package/lib/index.js.map +0 -1
  605. package/lib/localOdspDriver/localOdspDocumentService.d.ts.map +0 -1
  606. package/lib/localOdspDriver/localOdspDocumentService.js.map +0 -1
  607. package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +0 -1
  608. package/lib/localOdspDriver/localOdspDocumentServiceFactory.js.map +0 -1
  609. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +0 -1
  610. package/lib/localOdspDriver/localOdspDocumentStorageManager.js.map +0 -1
  611. package/lib/odspCache.d.ts.map +0 -1
  612. package/lib/odspCache.js.map +0 -1
  613. package/lib/odspDeltaStorageService.d.ts.map +0 -1
  614. package/lib/odspDeltaStorageService.js.map +0 -1
  615. package/lib/odspDocumentDeltaConnection.d.ts.map +0 -1
  616. package/lib/odspDocumentDeltaConnection.js.map +0 -1
  617. package/lib/odspDocumentService.d.ts.map +0 -1
  618. package/lib/odspDocumentService.js +0 -360
  619. package/lib/odspDocumentService.js.map +0 -1
  620. package/lib/odspDocumentServiceFactory.d.ts.map +0 -1
  621. package/lib/odspDocumentServiceFactory.js.map +0 -1
  622. package/lib/odspDocumentServiceFactoryCore.d.ts.map +0 -1
  623. package/lib/odspDocumentServiceFactoryCore.js +0 -114
  624. package/lib/odspDocumentServiceFactoryCore.js.map +0 -1
  625. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +0 -1
  626. package/lib/odspDocumentServiceFactoryWithCodeSplit.js.map +0 -1
  627. package/lib/odspDocumentStorageManager.d.ts.map +0 -1
  628. package/lib/odspDocumentStorageManager.js +0 -352
  629. package/lib/odspDocumentStorageManager.js.map +0 -1
  630. package/lib/odspDocumentStorageServiceBase.d.ts.map +0 -1
  631. package/lib/odspDocumentStorageServiceBase.js.map +0 -1
  632. package/lib/odspDriverUrlResolver.d.ts.map +0 -1
  633. package/lib/odspDriverUrlResolver.js.map +0 -1
  634. package/lib/odspDriverUrlResolverForShareLink.d.ts.map +0 -1
  635. package/lib/odspDriverUrlResolverForShareLink.js.map +0 -1
  636. package/lib/odspError.d.ts.map +0 -1
  637. package/lib/odspError.js.map +0 -1
  638. package/lib/odspFluidFileLink.d.ts.map +0 -1
  639. package/lib/odspFluidFileLink.js.map +0 -1
  640. package/lib/odspPublicUtils.d.ts.map +0 -1
  641. package/lib/odspPublicUtils.js.map +0 -1
  642. package/lib/odspSnapshotParser.d.ts.map +0 -1
  643. package/lib/odspSnapshotParser.js.map +0 -1
  644. package/lib/odspSummaryUploadManager.d.ts.map +0 -1
  645. package/lib/odspSummaryUploadManager.js.map +0 -1
  646. package/lib/odspUrlHelper.d.ts.map +0 -1
  647. package/lib/odspUrlHelper.js.map +0 -1
  648. package/lib/odspUtils.d.ts.map +0 -1
  649. package/lib/odspUtils.js.map +0 -1
  650. package/lib/opsCaching.d.ts.map +0 -1
  651. package/lib/opsCaching.js.map +0 -1
  652. package/lib/packageVersion.d.ts.map +0 -1
  653. package/lib/packageVersion.js.map +0 -1
  654. package/lib/prefetchLatestSnapshot.d.ts.map +0 -1
  655. package/lib/prefetchLatestSnapshot.js +0 -53
  656. package/lib/prefetchLatestSnapshot.js.map +0 -1
  657. package/lib/retryErrorsStorageAdapter.d.ts.map +0 -1
  658. package/lib/retryErrorsStorageAdapter.js.map +0 -1
  659. package/lib/retryUtils.d.ts.map +0 -1
  660. package/lib/retryUtils.js.map +0 -1
  661. package/lib/vroom.d.ts.map +0 -1
  662. package/lib/vroom.js.map +0 -1
  663. package/lib/zipItDataRepresentationUtils.d.ts.map +0 -1
  664. package/lib/zipItDataRepresentationUtils.js.map +0 -1
  665. package/src/getSocketIo.ts +0 -14
  666. package/tsconfig.esnext.json +0 -7
@@ -3,266 +3,291 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert } from "@fluidframework/common-utils";
7
- import { IDocumentStorageService, ISummaryContext, LoaderCachingPolicy } from "@fluidframework/driver-definitions";
6
+ import { assert } from "@fluidframework/core-utils";
7
+ import {
8
+ IDocumentStorageService,
9
+ IDocumentStorageServicePolicies,
10
+ ISummaryContext,
11
+ LoaderCachingPolicy,
12
+ FiveDaysMs,
13
+ FetchSource,
14
+ } from "@fluidframework/driver-definitions";
8
15
  import * as api from "@fluidframework/protocol-definitions";
9
- import { defaultCacheExpiryTimeoutMs } from "./epochTracker";
16
+ import { IConfigProvider } from "@fluidframework/telemetry-utils";
10
17
  import { ISnapshotContents } from "./odspPublicUtils";
11
18
 
12
- /* eslint-disable max-len */
19
+ const maximumCacheDurationMs: FiveDaysMs = 432000000; // 5 * 24 * 60 * 60 * 1000 = 5 days in ms
13
20
 
14
21
  class BlobCache {
15
- // Save the timeout so we can cancel and reschedule it as needed
16
- private blobCacheTimeout: ReturnType<typeof setTimeout> | undefined;
17
- // If the defer flag is set when the timeout fires, we'll reschedule rather than clear immediately
18
- // This deferral approach is used (rather than clearing/resetting the timer) as current calling patterns trigger
19
- // too many calls to setTimeout/clearTimeout.
20
- private deferBlobCacheClear: boolean = false;
21
-
22
- private readonly _blobCache: Map<string, ArrayBuffer> = new Map();
23
-
24
- // Tracks all blob IDs evicted from cache
25
- private readonly blobsEvicted: Set<string> = new Set();
26
-
27
- // Initial time-out to purge data from cache
28
- // If this time out is very small, then we purge blobs from cache too soon and that results in a lot of
29
- // requests to storage, which brings down perf and may trip protection limits causing 429s
30
- private blobCacheTimeoutDuration = 2 * 60 * 1000;
31
-
32
- // SPO does not keep old snapshots around for long, so we are running chances of not
33
- // being able to rehydrate data store / DDS in the future if we purge anything (and with blob de-duping,
34
- // even if blob read by runtime, it could be read again in the future)
35
- // So for now, purging is disabled.
36
- private readonly purgeEnabled = false;
37
-
38
- public get value() {
39
- return this._blobCache;
40
- }
41
-
42
- public addBlobs(blobs: Map<string, ArrayBuffer>) {
43
- blobs.forEach((value, blobId) => {
44
- this._blobCache.set(blobId, value);
45
- });
46
- // Reset the timer on cache set
47
- this.scheduleClearBlobsCache();
48
- }
49
-
50
- /**
51
- * Schedule a timer for clearing the blob cache or defer the current one.
52
- */
53
- private scheduleClearBlobsCache() {
54
- if (this.blobCacheTimeout !== undefined) {
55
- // If we already have an outstanding timer, just signal that we should defer the clear
56
- this.deferBlobCacheClear = true;
57
- } else if (this.purgeEnabled) {
58
- // If we don't have an outstanding timer, set a timer
59
- // When the timer runs out, we'll decide whether to proceed with the cache clear or reset the timer
60
- const clearCacheOrDefer = () => {
61
- this.blobCacheTimeout = undefined;
62
- if (this.deferBlobCacheClear) {
63
- this.deferBlobCacheClear = false;
64
- this.scheduleClearBlobsCache();
65
- } else {
66
- // NOTE: Slightly better algorithm here would be to purge either only big blobs,
67
- // or sort them by size and purge enough big blobs to leave only 256Kb of small blobs in cache
68
- // Purging is optimizing memory footprint. But count controls potential number of storage requests
69
- // We want to optimize both - memory footprint and number of future requests to storage.
70
- // Note that Container can realize data store or DDS on-demand at any point in time, so we do not
71
- // control when blobs will be used.
72
- this._blobCache.forEach((_, blobId) => this.blobsEvicted.add(blobId));
73
- this._blobCache.clear();
74
- }
75
- };
76
- this.blobCacheTimeout = setTimeout(clearCacheOrDefer, this.blobCacheTimeoutDuration);
77
- // any future storage reads that get into the cache should be cleared from cache rather quickly -
78
- // there is not much value in keeping them longer
79
- this.blobCacheTimeoutDuration = 10 * 1000;
80
- }
81
- }
82
-
83
- public getBlob(blobId: string) {
84
- // Reset the timer on attempted cache read
85
- this.scheduleClearBlobsCache();
86
- const blobContent = this._blobCache.get(blobId);
87
- const evicted = this.blobsEvicted.has(blobId);
88
- return { blobContent, evicted };
89
- }
90
-
91
- public setBlob(blobId: string, blob: ArrayBuffer) {
92
- // This API is called as result of cache miss and reading blob from storage.
93
- // Runtime never reads same blob twice.
94
- // The only reason we may get read request for same blob is blob de-duping in summaries.
95
- // Note that the bigger the size, the less likely blobs are the same, so there is very little benefit of caching big blobs.
96
- // Images are the only exception - user may insert same image twice. But we currently do not de-dup them - only snapshot
97
- // blobs are de-duped.
98
- const size = blob.byteLength;
99
- if (size < 256 * 1024) {
100
- // Reset the timer on cache set
101
- this.scheduleClearBlobsCache();
102
- return this._blobCache.set(blobId, blob);
103
- } else {
104
- // we evicted it here by not caching.
105
- this.blobsEvicted.add(blobId);
106
- }
107
- }
22
+ // Save the timeout so we can cancel and reschedule it as needed
23
+ private blobCacheTimeout: ReturnType<typeof setTimeout> | undefined;
24
+ // If the defer flag is set when the timeout fires, we'll reschedule rather than clear immediately
25
+ // This deferral approach is used (rather than clearing/resetting the timer) as current calling patterns trigger
26
+ // too many calls to setTimeout/clearTimeout.
27
+ private deferBlobCacheClear: boolean = false;
28
+
29
+ private readonly _blobCache: Map<string, ArrayBuffer> = new Map();
30
+
31
+ // Tracks all blob IDs evicted from cache
32
+ private readonly blobsEvicted: Set<string> = new Set();
33
+
34
+ // Initial time-out to purge data from cache
35
+ // If this time out is very small, then we purge blobs from cache too soon and that results in a lot of
36
+ // requests to storage, which brings down perf and may trip protection limits causing 429s
37
+ private blobCacheTimeoutDuration = 2 * 60 * 1000;
38
+
39
+ // SPO does not keep old snapshots around for long, so we are running chances of not
40
+ // being able to rehydrate data store / DDS in the future if we purge anything (and with blob de-duping,
41
+ // even if blob read by runtime, it could be read again in the future)
42
+ // So for now, purging is disabled.
43
+ private readonly purgeEnabled = false;
44
+
45
+ public get value() {
46
+ return this._blobCache;
47
+ }
48
+
49
+ public addBlobs(blobs: Map<string, ArrayBuffer>) {
50
+ blobs.forEach((value, blobId) => {
51
+ this._blobCache.set(blobId, value);
52
+ });
53
+ // Reset the timer on cache set
54
+ this.scheduleClearBlobsCache();
55
+ }
56
+
57
+ /**
58
+ * Schedule a timer for clearing the blob cache or defer the current one.
59
+ */
60
+ private scheduleClearBlobsCache() {
61
+ if (this.blobCacheTimeout !== undefined) {
62
+ // If we already have an outstanding timer, just signal that we should defer the clear
63
+ this.deferBlobCacheClear = true;
64
+ } else if (this.purgeEnabled) {
65
+ // If we don't have an outstanding timer, set a timer
66
+ // When the timer runs out, we'll decide whether to proceed with the cache clear or reset the timer
67
+ const clearCacheOrDefer = () => {
68
+ this.blobCacheTimeout = undefined;
69
+ if (this.deferBlobCacheClear) {
70
+ this.deferBlobCacheClear = false;
71
+ this.scheduleClearBlobsCache();
72
+ } else {
73
+ // NOTE: Slightly better algorithm here would be to purge either only big blobs,
74
+ // or sort them by size and purge enough big blobs to leave only 256Kb of small blobs in cache
75
+ // Purging is optimizing memory footprint. But count controls potential number of storage requests
76
+ // We want to optimize both - memory footprint and number of future requests to storage.
77
+ // Note that Container can realize data store or DDS on-demand at any point in time, so we do not
78
+ // control when blobs will be used.
79
+ this._blobCache.forEach((_, blobId) => this.blobsEvicted.add(blobId));
80
+ this._blobCache.clear();
81
+ }
82
+ };
83
+ this.blobCacheTimeout = setTimeout(clearCacheOrDefer, this.blobCacheTimeoutDuration);
84
+ // any future storage reads that get into the cache should be cleared from cache rather quickly -
85
+ // there is not much value in keeping them longer
86
+ this.blobCacheTimeoutDuration = 10 * 1000;
87
+ }
88
+ }
89
+
90
+ public getBlob(blobId: string) {
91
+ // Reset the timer on attempted cache read
92
+ this.scheduleClearBlobsCache();
93
+ const blobContent = this._blobCache.get(blobId);
94
+ const evicted = this.blobsEvicted.has(blobId);
95
+ return { blobContent, evicted };
96
+ }
97
+
98
+ public setBlob(blobId: string, blob: ArrayBuffer) {
99
+ // This API is called as result of cache miss and reading blob from storage.
100
+ // Runtime never reads same blob twice.
101
+ // The only reason we may get read request for same blob is blob de-duping in summaries.
102
+ // Note that the bigger the size, the less likely blobs are the same, so there is very little benefit of caching big blobs.
103
+ // Images are the only exception - user may insert same image twice. But we currently do not de-dup them - only snapshot
104
+ // blobs are de-duped.
105
+ const size = blob.byteLength;
106
+ if (size < 256 * 1024) {
107
+ // Reset the timer on cache set
108
+ this.scheduleClearBlobsCache();
109
+ return this._blobCache.set(blobId, blob);
110
+ } else {
111
+ // we evicted it here by not caching.
112
+ this.blobsEvicted.add(blobId);
113
+ }
114
+ }
108
115
  }
109
116
 
110
117
  export abstract class OdspDocumentStorageServiceBase implements IDocumentStorageService {
111
- readonly policies = {
112
- // By default, ODSP tells the container not to prefetch/cache.
113
- caching: LoaderCachingPolicy.NoCaching,
114
-
115
- // ODSP storage works better if it has less number of blobs / edges
116
- // Runtime creating many small blobs results in sub-optimal perf.
117
- // 2K seems like the sweat spot:
118
- // The smaller the number, less blobs we aggregate. Most storages are very likely to have notion
119
- // of minimal "cluster" size, so having small blobs is wasteful
120
- // At the same time increasing the limit ensure that more blobs with user content are aggregated,
121
- // reducing possibility for de-duping of same blobs (i.e. .attributes rolled into aggregate blob
122
- // are not reused across data stores, or even within data store, resulting in duplication of content)
123
- // Note that duplication of content should not have significant impact for bytes over wire as
124
- // compression of http payload mostly takes care of it, but it does impact storage size and in-memory sizes.
125
- minBlobSize: 2048,
126
- maximumCacheDurationMs: defaultCacheExpiryTimeoutMs,
127
- };
128
-
129
- protected readonly commitCache: Map<string, api.ISnapshotTree> = new Map();
130
-
131
- private readonly attributesBlobHandles: Set<string> = new Set();
132
-
133
- private _ops: api.ISequencedDocumentMessage[] | undefined;
134
-
135
- private _snapshotSequenceNumber: number | undefined;
136
-
137
- protected readonly blobCache = new BlobCache();
138
-
139
- public set ops(ops: api.ISequencedDocumentMessage[] | undefined) {
140
- assert(this._ops === undefined, 0x0a5 /* "Trying to set ops when they are already set!" */);
141
- this._ops = ops;
142
- }
143
-
144
- public get ops(): api.ISequencedDocumentMessage[] | undefined {
145
- return this._ops;
146
- }
147
-
148
- public get snapshotSequenceNumber() {
149
- return this._snapshotSequenceNumber;
150
- }
151
-
152
- public get repositoryUrl(): string {
153
- return "";
154
- }
155
-
156
- public abstract createBlob(file: ArrayBufferLike): Promise<api.ICreateBlobResponse>;
157
-
158
- private async readBlobCore(blobId: string): Promise<ArrayBuffer> {
159
- const { blobContent, evicted } = this.blobCache.getBlob(blobId);
160
- return blobContent ?? this.fetchBlobFromStorage(blobId, evicted);
161
- }
162
-
163
- protected abstract fetchBlobFromStorage(blobId: string, evicted: boolean): Promise<ArrayBuffer>;
164
-
165
- public async readBlob(blobId: string): Promise<ArrayBufferLike> {
166
- return this.readBlobCore(blobId);
167
- }
168
-
169
- public async getSnapshotTree(version?: api.IVersion, scenarioName?: string): Promise<api.ISnapshotTree | null> {
170
- let id: string;
171
- if (!version || !version.id) {
172
- const versions = await this.getVersions(null, 1, scenarioName);
173
- if (!versions || versions.length === 0) {
174
- return null;
175
- }
176
- id = versions[0].id;
177
- } else {
178
- id = version.id;
179
- }
180
-
181
- const snapshotTree = await this.readTree(id, scenarioName);
182
- if (!snapshotTree) {
183
- return null;
184
- }
185
-
186
- if (snapshotTree.blobs) {
187
- const attributesBlob = snapshotTree.blobs.attributes;
188
- if (attributesBlob) {
189
- this.attributesBlobHandles.add(attributesBlob);
190
- }
191
- }
192
-
193
- // When we upload the container snapshot, we upload appTree in ".app" and protocol tree in ".protocol"
194
- // So when we request the snapshot we get ".app" as tree and not as commit node as in the case just above.
195
- const appTree = snapshotTree.trees[".app"];
196
- const protocolTree = snapshotTree.trees[".protocol"];
197
-
198
- return this.combineProtocolAndAppSnapshotTree(appTree, protocolTree);
199
- }
200
-
201
- public abstract getVersions(blobid: string | null, count: number, scenarioName?: string): Promise<api.IVersion[]>;
202
-
203
- public abstract uploadSummaryWithContext(summary: api.ISummaryTree, context: ISummaryContext): Promise<string>;
204
-
205
- public async downloadSummary(commit: api.ISummaryHandle): Promise<api.ISummaryTree> {
206
- throw new Error("Not implemented yet");
207
- }
208
-
209
- protected setRootTree(id: string, tree: api.ISnapshotTree) {
210
- this.commitCache.set(id, tree);
211
- }
212
-
213
- protected initBlobsCache(blobs: Map<string, ArrayBuffer>) {
214
- this.blobCache.addBlobs(blobs);
215
- }
216
-
217
- private async readTree(id: string, scenarioName?: string): Promise<api.ISnapshotTree | null> {
218
- let tree = this.commitCache.get(id);
219
- if (!tree) {
220
- tree = await this.fetchTreeFromSnapshot(id, scenarioName);
221
- }
222
-
223
- return tree ?? null;
224
- }
225
-
226
- protected abstract fetchTreeFromSnapshot(id: string, scenarioName?: string): Promise<api.ISnapshotTree | undefined>;
227
-
228
- private combineProtocolAndAppSnapshotTree(
229
- hierarchicalAppTree: api.ISnapshotTree,
230
- hierarchicalProtocolTree: api.ISnapshotTree,
231
- ) {
232
- const summarySnapshotTree: api.ISnapshotTree = {
233
- blobs: {
234
- ...hierarchicalAppTree.blobs,
235
- },
236
- trees: {
237
- ...hierarchicalAppTree.trees,
238
- // the app tree could have a .protocol
239
- // in that case we want to server protocol to override it
240
- ".protocol": hierarchicalProtocolTree,
241
- },
242
- };
243
-
244
- return summarySnapshotTree;
245
- }
246
-
247
- protected initializeFromSnapshot(odspSnapshotCacheValue: ISnapshotContents): string | undefined {
248
- this._snapshotSequenceNumber = odspSnapshotCacheValue.sequenceNumber;
249
- const { snapshotTree, blobs, ops } = odspSnapshotCacheValue;
250
-
251
- // id should be undefined in case of just ops in snapshot.
252
- let id: string | undefined;
253
- if (snapshotTree) {
254
- id = snapshotTree.id;
255
- assert(id !== undefined, 0x221 /* "Root tree should contain the id" */);
256
- this.setRootTree(id, snapshotTree);
257
- }
258
-
259
- if (blobs) {
260
- this.initBlobsCache(blobs);
261
- }
262
-
263
- this.ops = ops;
264
- return id;
265
- }
118
+ readonly policies: IDocumentStorageServicePolicies;
119
+
120
+ constructor(config: IConfigProvider) {
121
+ // We circumvent the restrictions on the policy only when using this TestOverride setting,
122
+ // which also applies to the code that reads from the cache in epochTracker.ts
123
+ // This may result in files created for testing being unusable in production sessions,
124
+ // due to the GC code guarding against this policy changing over the lifetime of a file.
125
+ const maximumCacheDurationMsInEffect = (
126
+ config.getBoolean("Fluid.Driver.Odsp.TestOverride.DisableSnapshotCache")
127
+ ? 0
128
+ : maximumCacheDurationMs
129
+ ) as FiveDaysMs;
130
+
131
+ this.policies = {
132
+ // By default, ODSP tells the container not to prefetch/cache.
133
+ caching: LoaderCachingPolicy.NoCaching,
134
+ maximumCacheDurationMs: maximumCacheDurationMsInEffect,
135
+ };
136
+ }
137
+ protected readonly commitCache: Map<string, api.ISnapshotTree> = new Map();
138
+
139
+ private readonly attributesBlobHandles: Set<string> = new Set();
140
+
141
+ private _ops: api.ISequencedDocumentMessage[] | undefined;
142
+
143
+ private _snapshotSequenceNumber: number | undefined;
144
+
145
+ protected readonly blobCache = new BlobCache();
146
+
147
+ public set ops(ops: api.ISequencedDocumentMessage[] | undefined) {
148
+ assert(this._ops === undefined, 0x0a5 /* "Trying to set ops when they are already set!" */);
149
+ this._ops = ops;
150
+ }
151
+
152
+ public get ops(): api.ISequencedDocumentMessage[] | undefined {
153
+ return this._ops;
154
+ }
155
+
156
+ public get snapshotSequenceNumber() {
157
+ return this._snapshotSequenceNumber;
158
+ }
159
+
160
+ public readonly repositoryUrl = "";
161
+
162
+ public abstract createBlob(file: ArrayBufferLike): Promise<api.ICreateBlobResponse>;
163
+
164
+ private async readBlobCore(blobId: string): Promise<ArrayBuffer> {
165
+ const { blobContent, evicted } = this.blobCache.getBlob(blobId);
166
+ return blobContent ?? this.fetchBlobFromStorage(blobId, evicted);
167
+ }
168
+
169
+ protected abstract fetchBlobFromStorage(blobId: string, evicted: boolean): Promise<ArrayBuffer>;
170
+
171
+ public async readBlob(blobId: string): Promise<ArrayBufferLike> {
172
+ return this.readBlobCore(blobId);
173
+ }
174
+
175
+ public async getSnapshotTree(
176
+ version?: api.IVersion,
177
+ scenarioName?: string,
178
+ // eslint-disable-next-line @rushstack/no-new-null
179
+ ): Promise<api.ISnapshotTree | null> {
180
+ let id: string;
181
+ if (!version?.id) {
182
+ const versions = await this.getVersions(null, 1, scenarioName);
183
+ if (!versions || versions.length === 0) {
184
+ return null;
185
+ }
186
+ id = versions[0].id;
187
+ } else {
188
+ id = version.id;
189
+ }
190
+
191
+ const snapshotTree = await this.readTree(id, scenarioName);
192
+ if (!snapshotTree) {
193
+ return null;
194
+ }
195
+
196
+ if (snapshotTree.blobs) {
197
+ const attributesBlob = snapshotTree.blobs.attributes;
198
+ if (attributesBlob) {
199
+ this.attributesBlobHandles.add(attributesBlob);
200
+ }
201
+ }
202
+
203
+ // When we upload the container snapshot, we upload appTree in ".app" and protocol tree in ".protocol"
204
+ // So when we request the snapshot we get ".app" as tree and not as commit node as in the case just above.
205
+ const appTree = snapshotTree.trees[".app"];
206
+ const protocolTree = snapshotTree.trees[".protocol"];
207
+
208
+ return this.combineProtocolAndAppSnapshotTree(appTree, protocolTree);
209
+ }
210
+
211
+ public abstract getVersions(
212
+ // eslint-disable-next-line @rushstack/no-new-null
213
+ blobid: string | null,
214
+ count: number,
215
+ scenarioName?: string,
216
+ fetchSource?: FetchSource,
217
+ ): Promise<api.IVersion[]>;
218
+
219
+ public abstract uploadSummaryWithContext(
220
+ summary: api.ISummaryTree,
221
+ context: ISummaryContext,
222
+ ): Promise<string>;
223
+
224
+ public async downloadSummary(commit: api.ISummaryHandle): Promise<api.ISummaryTree> {
225
+ throw new Error("Not implemented yet");
226
+ }
227
+
228
+ protected setRootTree(id: string, tree: api.ISnapshotTree) {
229
+ this.commitCache.set(id, tree);
230
+ }
231
+
232
+ protected initBlobsCache(blobs: Map<string, ArrayBuffer>) {
233
+ this.blobCache.addBlobs(blobs);
234
+ }
235
+
236
+ private async readTree(id: string, scenarioName?: string): Promise<api.ISnapshotTree | null> {
237
+ let tree = this.commitCache.get(id);
238
+ if (!tree) {
239
+ tree = await this.fetchTreeFromSnapshot(id, scenarioName);
240
+ }
241
+
242
+ return tree ?? null;
243
+ }
244
+
245
+ protected abstract fetchTreeFromSnapshot(
246
+ id: string,
247
+ scenarioName?: string,
248
+ ): Promise<api.ISnapshotTree | undefined>;
249
+
250
+ private combineProtocolAndAppSnapshotTree(
251
+ hierarchicalAppTree: api.ISnapshotTree,
252
+ hierarchicalProtocolTree: api.ISnapshotTree,
253
+ ) {
254
+ const summarySnapshotTree: api.ISnapshotTree = {
255
+ blobs: {
256
+ ...hierarchicalAppTree.blobs,
257
+ },
258
+ trees: {
259
+ ...hierarchicalAppTree.trees,
260
+ // the app tree could have a .protocol
261
+ // in that case we want to server protocol to override it
262
+ ".protocol": hierarchicalProtocolTree,
263
+ },
264
+ };
265
+
266
+ return summarySnapshotTree;
267
+ }
268
+
269
+ protected initializeFromSnapshot(
270
+ odspSnapshotCacheValue: ISnapshotContents,
271
+ cacheOps: boolean = true,
272
+ ): string | undefined {
273
+ this._snapshotSequenceNumber = odspSnapshotCacheValue.sequenceNumber;
274
+ const { snapshotTree, blobs, ops } = odspSnapshotCacheValue;
275
+
276
+ // id should be undefined in case of just ops in snapshot.
277
+ let id: string | undefined;
278
+ if (snapshotTree) {
279
+ id = snapshotTree.id;
280
+ assert(id !== undefined, 0x221 /* "Root tree should contain the id" */);
281
+ this.setRootTree(id, snapshotTree);
282
+ }
283
+
284
+ if (blobs) {
285
+ this.initBlobsCache(blobs);
286
+ }
287
+
288
+ if (cacheOps) {
289
+ this.ops = ops;
290
+ }
291
+ return id;
292
+ }
266
293
  }
267
-
268
- /* eslint-enable max-len */