@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,28 +3,34 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert } from "@fluidframework/common-utils";
6
+ import { assert } from "@fluidframework/core-utils";
7
7
  import { ISequencedDocumentMessage, ISnapshotTree } from "@fluidframework/protocol-definitions";
8
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
8
9
  import { ISnapshotContents } from "./odspPublicUtils";
9
10
  import { ReadBuffer } from "./ReadBufferUtils";
10
- import { ISnapshotTreeEx } from "./contracts";
11
11
  import {
12
- assertBlobCoreInstance,
13
- assertBoolInstance,
14
- assertNodeCoreInstance,
15
- assertNumberInstance,
16
- getAndValidateNodeProps,
17
- NodeCore,
18
- NodeTypes,
19
- TreeBuilder,
12
+ assertBlobCoreInstance,
13
+ getStringInstance,
14
+ assertBoolInstance,
15
+ assertNodeCoreInstance,
16
+ assertNumberInstance,
17
+ getNodeProps,
18
+ NodeCore,
19
+ NodeTypes,
20
+ TreeBuilder,
20
21
  } from "./zipItDataRepresentationUtils";
22
+ import { measure } from "./odspUtils";
21
23
 
22
24
  export const snapshotMinReadVersion = "1.0";
23
25
  export const currentReadVersion = "1.0";
24
26
 
25
- interface ISnapshotSection {
26
- snapshotTree: ISnapshotTree;
27
- sequenceNumber: number;
27
+ /**
28
+ * The parsing is significantly faster if the position of props is well known instead of dynamic. So these variables
29
+ * represents how many times slower parsing path is executed. This will be then logged into telemetry.
30
+ * @internal
31
+ */
32
+ export interface ISnapshotContentsWithProps extends ISnapshotContents {
33
+ telemetryProps: Record<string, number>;
28
34
  }
29
35
 
30
36
  /**
@@ -32,16 +38,38 @@ interface ISnapshotSection {
32
38
  * @param node - tree node to read blob section from
33
39
  */
34
40
  function readBlobSection(node: NodeTypes) {
35
- assertNodeCoreInstance(node, "TreeBlobs should be of type NodeCore");
36
- const blobs: Map<string, ArrayBuffer> = new Map();
37
- for (let count = 0; count < node.length; ++count) {
38
- const blob = node.getNode(count);
39
- const records = getAndValidateNodeProps(blob, ["id", "data"]);
40
- assertBlobCoreInstance(records.data, "data should be of BlobCore type");
41
- assertBlobCoreInstance(records.id, "blob id should be of BlobCore type");
42
- blobs.set(records.id.toString(), records.data.arrayBuffer);
43
- }
44
- return blobs;
41
+ assertNodeCoreInstance(node, "TreeBlobs should be of type NodeCore");
42
+ let slowBlobStructureCount = 0;
43
+ const blobs: Map<string, ArrayBuffer> = new Map();
44
+ for (const blob of node) {
45
+ assertNodeCoreInstance(blob, "blob should be node");
46
+
47
+ /**
48
+ * Perf optimization - the most common cases!
49
+ * This is essentially unrolling code below for faster processing
50
+ * It speeds up tree parsing by 2-3x times!
51
+ */
52
+ if (
53
+ blob.length === 4 &&
54
+ blob.getMaybeString(0) === "id" &&
55
+ blob.getMaybeString(2) === "data"
56
+ ) {
57
+ // "id": <node name>
58
+ // "data": <blob>
59
+ blobs.set(blob.getString(1), blob.getBlob(3).arrayBuffer);
60
+ continue;
61
+ }
62
+
63
+ /**
64
+ * More generalized workflow
65
+ */
66
+ slowBlobStructureCount += 1;
67
+ const records = getNodeProps(blob);
68
+ assertBlobCoreInstance(records.data, "data should be of BlobCore type");
69
+ const id = getStringInstance(records.id, "blob id should be string");
70
+ blobs.set(id, records.data.arrayBuffer);
71
+ }
72
+ return { blobs, slowBlobStructureCount };
45
73
  }
46
74
 
47
75
  /**
@@ -49,17 +77,22 @@ function readBlobSection(node: NodeTypes) {
49
77
  * @param node - tree node to read ops section from
50
78
  */
51
79
  function readOpsSection(node: NodeTypes) {
52
- assertNodeCoreInstance(node, "Deltas should be of type NodeCore");
53
- const ops: ISequencedDocumentMessage[] = [];
54
- const records = getAndValidateNodeProps(node, ["firstSequenceNumber", "deltas"]);
55
- assertNumberInstance(records.firstSequenceNumber, "Seq number should be a number");
56
- assertNodeCoreInstance(records.deltas, "Deltas should be a Node");
57
- for (let i = 0; i < records.deltas.length; ++i) {
58
- ops.push(JSON.parse(records.deltas.getString(i)));
59
- }
60
- assert(records.firstSequenceNumber.valueOf() === ops[0].sequenceNumber,
61
- 0x280 /* "Validate first op seq number" */);
62
- return ops;
80
+ assertNodeCoreInstance(node, "Deltas should be of type NodeCore");
81
+ const ops: ISequencedDocumentMessage[] = [];
82
+ const records = getNodeProps(node);
83
+ assertNumberInstance(records.firstSequenceNumber, "Seq number should be a number");
84
+ assertNodeCoreInstance(records.deltas, "Deltas should be a Node");
85
+ for (let i = 0; i < records.deltas.length; ++i) {
86
+ ops.push(JSON.parse(records.deltas.getString(i)));
87
+ }
88
+ // Due to a bug at service side, in an edge case service was serializing deltas even
89
+ // when there are no ops. So just make the code resilient to that bug. Service has also
90
+ // fixed that bug.
91
+ assert(
92
+ ops.length === 0 || records.firstSequenceNumber.valueOf() === ops[0].sequenceNumber,
93
+ 0x280 /* "Validate first op seq number" */,
94
+ );
95
+ return ops;
63
96
  }
64
97
 
65
98
  /**
@@ -67,85 +100,168 @@ function readOpsSection(node: NodeTypes) {
67
100
  * @param node - tree node to de-serialize from
68
101
  */
69
102
  function readTreeSection(node: NodeCore) {
70
- const snapshotTree: ISnapshotTreeEx = {
71
- blobs: {},
72
- commits: {},
73
- trees: {},
74
- };
75
- for (let count = 0; count < node.length; count++) {
76
- const treeNode = node.getNode(count);
77
- const records = getAndValidateNodeProps(treeNode,
78
- ["name", "value", "children", "unreferenced"], false);
79
- assertBlobCoreInstance(records.name, "Path should be of BlobCore");
80
- const path = records.name.toString();
81
- if (records.value !== undefined) {
82
- assertBlobCoreInstance(records.value, "Blob value should be BlobCore");
83
- snapshotTree.blobs[path] = records.value.toString();
84
- } else {
85
- assertNodeCoreInstance(records.children, "Trees should be of type NodeCore");
86
- snapshotTree.trees[path] = readTreeSection(records.children);
87
- }
88
- if (records.unreferenced !== undefined) {
89
- assertBoolInstance(records.unreferenced, "Unreferenced flag should be bool");
90
- const unreferenced = records.unreferenced.valueOf();
91
- assert(unreferenced, 0x281 /* "Unreferenced if present should be true" */);
92
- snapshotTree.unreferenced = unreferenced;
93
- }
94
- }
95
- return snapshotTree;
103
+ let slowTreeStructureCount = 0;
104
+ const trees = {};
105
+ const snapshotTree: ISnapshotTree = {
106
+ blobs: {},
107
+ trees,
108
+ };
109
+ for (const treeNode of node) {
110
+ assertNodeCoreInstance(treeNode, "tree nodes should be nodes");
111
+
112
+ /**
113
+ * Perf optimization - the most common cases!
114
+ * This is essentially unrolling code below for faster processing
115
+ * It speeds up tree parsing by 2-3x times!
116
+ */
117
+ const length = treeNode.length;
118
+ if (length > 0 && treeNode.getMaybeString(0) === "name") {
119
+ if (length === 4) {
120
+ const content = treeNode.getMaybeString(2);
121
+ // "name": <node name>
122
+ // "children": <blob id>
123
+ if (content === "children") {
124
+ const result = readTreeSection(treeNode.getNode(3));
125
+ trees[treeNode.getString(1)] = result.snapshotTree;
126
+ slowTreeStructureCount += result.slowTreeStructureCount;
127
+ continue;
128
+ }
129
+ // "name": <node name>
130
+ // "value": <blob id>
131
+ if (content === "value") {
132
+ snapshotTree.blobs[treeNode.getString(1)] = treeNode.getString(3);
133
+ continue;
134
+ }
135
+ }
136
+
137
+ // "name": <node name>
138
+ // "nodeType": 3
139
+ // "value": <blob id>
140
+ if (
141
+ length === 6 &&
142
+ treeNode.getMaybeString(2) === "nodeType" &&
143
+ treeNode.getMaybeString(4) === "value"
144
+ ) {
145
+ snapshotTree.blobs[treeNode.getString(1)] = treeNode.getString(5);
146
+ continue;
147
+ }
148
+
149
+ // "name": <node name>
150
+ // "unreferenced": true
151
+ // "children": <blob id>
152
+ if (
153
+ length === 6 &&
154
+ treeNode.getMaybeString(2) === "unreferenced" &&
155
+ treeNode.getMaybeString(4) === "children"
156
+ ) {
157
+ const result = readTreeSection(treeNode.getNode(5));
158
+ trees[treeNode.getString(1)] = result.snapshotTree;
159
+ slowTreeStructureCount += result.slowTreeStructureCount;
160
+ assert(treeNode.getBool(3), 0x3db /* Unreferenced if present should be true */);
161
+ snapshotTree.unreferenced = true;
162
+ continue;
163
+ }
164
+ }
165
+
166
+ /**
167
+ * More generalized workflow
168
+ */
169
+ slowTreeStructureCount += 1;
170
+ const records = getNodeProps(treeNode);
171
+
172
+ if (records.unreferenced !== undefined) {
173
+ assertBoolInstance(records.unreferenced, "Unreferenced flag should be bool");
174
+ assert(records.unreferenced, 0x281 /* "Unreferenced if present should be true" */);
175
+ snapshotTree.unreferenced = true;
176
+ }
177
+
178
+ const path = getStringInstance(records.name, "Path name should be string");
179
+ if (records.value !== undefined) {
180
+ snapshotTree.blobs[path] = getStringInstance(
181
+ records.value,
182
+ "Blob value should be string",
183
+ );
184
+ } else if (records.children !== undefined) {
185
+ assertNodeCoreInstance(records.children, "Trees should be of type NodeCore");
186
+ const result = readTreeSection(records.children);
187
+ trees[path] = result.snapshotTree;
188
+ slowTreeStructureCount += result.slowTreeStructureCount;
189
+ } else {
190
+ trees[path] = { blobs: {}, trees: {} };
191
+ }
192
+ }
193
+ return { snapshotTree, slowTreeStructureCount };
96
194
  }
97
195
 
98
196
  /**
99
197
  * Recreates snapshot tree out of tree representation.
100
198
  * @param node - tree node to de-serialize from
101
199
  */
102
- function readSnapshotSection(node: NodeTypes): ISnapshotSection {
103
- assertNodeCoreInstance(node, "Snapshot should be of type NodeCore");
104
- const records = getAndValidateNodeProps(node,
105
- ["id", "sequenceNumber", "treeNodes"]);
106
-
107
- assertNodeCoreInstance(records.treeNodes, "TreeNodes should be of type NodeCore");
108
- assertNumberInstance(records.sequenceNumber, "sequenceNumber should be of type number");
109
- assertBlobCoreInstance(records.id, "snapshotId should be BlobCore");
110
- const snapshotTree: ISnapshotTree = readTreeSection(records.treeNodes);
111
- snapshotTree.id = records.id.toString();
112
- const sequenceNumber = records.sequenceNumber.valueOf();
113
- return {
114
- sequenceNumber,
115
- snapshotTree,
116
- };
200
+ function readSnapshotSection(node: NodeTypes) {
201
+ assertNodeCoreInstance(node, "Snapshot should be of type NodeCore");
202
+ const records = getNodeProps(node);
203
+
204
+ assertNodeCoreInstance(records.treeNodes, "TreeNodes should be of type NodeCore");
205
+ assertNumberInstance(records.sequenceNumber, "sequenceNumber should be of type number");
206
+ const { snapshotTree, slowTreeStructureCount } = readTreeSection(records.treeNodes);
207
+ snapshotTree.id = getStringInstance(records.id, "snapshotId should be string");
208
+ const sequenceNumber = records.sequenceNumber.valueOf();
209
+ return {
210
+ sequenceNumber,
211
+ snapshotTree,
212
+ slowTreeStructureCount,
213
+ };
117
214
  }
118
215
 
119
216
  /**
120
217
  * Converts snapshot from binary compact representation to tree/blobs/ops.
121
218
  * @param buffer - Compact snapshot to be parsed into tree/blobs/ops.
122
- * @returns - tree, blobs and ops from the snapshot.
219
+ * @returns Tree, blobs and ops from the snapshot.
220
+ * @internal
123
221
  */
124
- export function parseCompactSnapshotResponse(buffer: ReadBuffer): ISnapshotContents {
125
- const builder = TreeBuilder.load(buffer);
126
- assert(builder.length === 1, 0x219 /* "1 root should be there" */);
127
- const root = builder.getNode(0);
128
-
129
- const records = getAndValidateNodeProps(root,
130
- ["mrv", "cv", "lsn", "snapshot", "blobs", "deltas"], false);
131
-
132
- assertBlobCoreInstance(records.mrv, "minReadVersion should be of BlobCore type");
133
- assertBlobCoreInstance(records.cv, "createVersion should be of BlobCore type");
134
- if (records.lsn !== undefined) {
135
- assertNumberInstance(records.lsn, "lsn should be a number");
136
- }
137
-
138
- assert(parseFloat(snapshotMinReadVersion) >= parseFloat(records.mrv.toString()),
139
- 0x20f /* "Driver min read version should >= to server minReadVersion" */);
140
- assert(parseFloat(records.cv.toString()) >= parseFloat(snapshotMinReadVersion),
141
- 0x210 /* "Snapshot should be created with minReadVersion or above" */);
142
- assert(currentReadVersion === records.cv.toString(),
143
- 0x2c2 /* "Create Version should be equal to currentReadVersion" */);
144
-
145
- return {
146
- ...readSnapshotSection(records.snapshot),
147
- blobs: readBlobSection(records.blobs),
148
- ops: records.deltas !== undefined ? readOpsSection(records.deltas) : [],
149
- latestSequenceNumber: records.lsn,
150
- };
222
+ export function parseCompactSnapshotResponse(
223
+ buffer: Uint8Array,
224
+ logger: ITelemetryLoggerExt,
225
+ ): ISnapshotContentsWithProps {
226
+ const { builder, telemetryProps } = TreeBuilder.load(new ReadBuffer(buffer), logger);
227
+ assert(builder.length === 1, 0x219 /* "1 root should be there" */);
228
+ const root = builder.getNode(0);
229
+
230
+ const records = getNodeProps(root);
231
+
232
+ const mrv = getStringInstance(records.mrv, "minReadVersion should be string");
233
+ const cv = getStringInstance(records.cv, "createVersion should be string");
234
+ if (records.lsn !== undefined) {
235
+ assertNumberInstance(records.lsn, "lsn should be a number");
236
+ }
237
+
238
+ assert(
239
+ parseFloat(snapshotMinReadVersion) >= parseFloat(mrv),
240
+ 0x20f /* "Driver min read version should >= to server minReadVersion" */,
241
+ );
242
+ assert(
243
+ parseFloat(cv) >= parseFloat(snapshotMinReadVersion),
244
+ 0x210 /* "Snapshot should be created with minReadVersion or above" */,
245
+ );
246
+ assert(
247
+ currentReadVersion === cv,
248
+ 0x2c2 /* "Create Version should be equal to currentReadVersion" */,
249
+ );
250
+
251
+ const [snapshot, durationSnapshotTree] = measure(() => readSnapshotSection(records.snapshot));
252
+ const [blobs, durationBlobs] = measure(() => readBlobSection(records.blobs));
253
+
254
+ return {
255
+ ...snapshot,
256
+ ...blobs,
257
+ ops: records.deltas !== undefined ? readOpsSection(records.deltas) : [],
258
+ latestSequenceNumber: records.lsn,
259
+ telemetryProps: {
260
+ ...telemetryProps,
261
+ durationSnapshotTree,
262
+ durationBlobs,
263
+ slowTreeStructureCount: snapshot.slowTreeStructureCount,
264
+ slowBlobStructureCount: blobs.slowBlobStructureCount,
265
+ },
266
+ };
151
267
  }
@@ -3,75 +3,93 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert, stringToBuffer } from "@fluidframework/common-utils";
7
- import { IBlob, ISequencedDocumentMessage, ISnapshotTree } from "@fluidframework/protocol-definitions";
6
+ import { stringToBuffer } from "@fluid-internal/client-utils";
7
+ import { assert } from "@fluidframework/core-utils";
8
+ import {
9
+ IBlob,
10
+ ISequencedDocumentMessage,
11
+ ISnapshotTree,
12
+ } from "@fluidframework/protocol-definitions";
8
13
  import { snapshotMinReadVersion } from "./compactSnapshotParser";
9
14
  import { ISnapshotContents } from "./odspPublicUtils";
10
- import { ReadBuffer } from "./ReadBufferUtils";
11
15
  import { TreeBuilderSerializer } from "./WriteBufferUtils";
12
- import { addBoolProperty, addNumberProperty, addStringProperty, NodeCore } from "./zipItDataRepresentationUtils";
16
+ import {
17
+ addBoolProperty,
18
+ addNumberProperty,
19
+ addStringProperty,
20
+ addDictionaryStringProperty,
21
+ NodeCore,
22
+ } from "./zipItDataRepresentationUtils";
13
23
 
14
24
  /**
15
25
  * Writes header section of the snapshot.
16
26
  * @param node - snapshot node to serialize to
17
27
  * @param latestSequenceNumber - latest seq number of the container.
18
- */
28
+ */
19
29
  function writeSnapshotProps(node: NodeCore, latestSequenceNumber: number) {
20
- addStringProperty(node, "mrv", snapshotMinReadVersion);
21
- addStringProperty(node, "cv", snapshotMinReadVersion);
22
- addNumberProperty(node, "lsn", latestSequenceNumber);
30
+ addStringProperty(node, "mrv", snapshotMinReadVersion);
31
+ addStringProperty(node, "cv", snapshotMinReadVersion);
32
+ addNumberProperty(node, "lsn", latestSequenceNumber);
23
33
  }
24
34
 
25
35
  /**
26
36
  * Represents blobs in the tree.
27
37
  * @param snapshotNode - node to serialize to.
28
38
  * @param blobs - blobs that is being serialized
29
- */
39
+ */
30
40
  function writeBlobsSection(snapshotNode: NodeCore, blobs: Map<string, IBlob | ArrayBuffer>) {
31
- snapshotNode.addString("blobs", true);
32
- const blobsNode = snapshotNode.addNode("list");
33
- for (const [storageBlobId, blob] of blobs) {
34
- const blobNode = blobsNode.addNode();
35
- addStringProperty(blobNode, "id", storageBlobId, true);
36
- blobNode.addString("data", true);
37
- if (blob instanceof ArrayBuffer) {
38
- blobNode.addBlob(new Uint8Array(blob), false);
39
- } else {
40
- blobNode.addBlob(new Uint8Array(stringToBuffer(blob.contents, blob.encoding ?? "utf-8")), false);
41
- }
42
- }
41
+ snapshotNode.addDictionaryString("blobs");
42
+ const blobsNode = snapshotNode.addNode("list");
43
+ for (const [storageBlobId, blob] of blobs) {
44
+ const blobNode = blobsNode.addNode();
45
+ addDictionaryStringProperty(blobNode, "id", storageBlobId);
46
+ blobNode.addString("data");
47
+ if (blob instanceof ArrayBuffer) {
48
+ blobNode.addBlob(new Uint8Array(blob));
49
+ } else {
50
+ blobNode.addBlob(
51
+ new Uint8Array(stringToBuffer(blob.contents, blob.encoding ?? "utf-8")),
52
+ );
53
+ }
54
+ }
43
55
  }
44
56
 
45
57
  /**
46
58
  * Represents and serializes tree part of the snapshot
47
59
  * @param snapshotNode - tree node to serialize to
48
60
  * @param snapshotTree - snapshot tree that is being serialized
49
- */
61
+ */
50
62
  function writeTreeSection(snapshotNode: NodeCore, snapshotTree: ISnapshotTree) {
51
- snapshotNode.addString("treeNodes", true);
52
- const treesNode = snapshotNode.addNode("list");
53
- writeTreeSectionCore(treesNode, snapshotTree);
63
+ snapshotNode.addDictionaryString("treeNodes");
64
+ const treesNode = snapshotNode.addNode("list");
65
+ writeTreeSectionCore(treesNode, snapshotTree);
54
66
  }
55
67
 
56
68
  function writeTreeSectionCore(treesNode: NodeCore, snapshotTree: ISnapshotTree) {
57
- for (const [path, value] of Object.entries(snapshotTree.trees)) {
58
- const treeNode = treesNode.addNode();
59
- addStringProperty(treeNode, "name", path);
60
- if (snapshotTree.unreferenced) {
61
- addBoolProperty(treeNode, "unreferenced", snapshotTree.unreferenced);
62
- }
63
- treeNode.addString("children", true);
64
- const childNode = treeNode.addNode("list");
65
- writeTreeSectionCore(childNode, value);
66
- }
67
-
68
- if (snapshotTree.blobs) {
69
- for (const [path, id] of Object.entries(snapshotTree.blobs)) {
70
- const blobNode = treesNode.addNode();
71
- addStringProperty(blobNode, "name", path);
72
- addStringProperty(blobNode, "value", id, true);
73
- }
74
- }
69
+ for (const [path, value] of Object.entries(snapshotTree.trees)) {
70
+ const treeNode = treesNode.addNode();
71
+ // Many leaf nodes in the tree have same names like "content", "body", "header"
72
+ // We could be smarter here and not use dictionary where we are sure reuse is unlikely, but
73
+ // it does not feel like it's worth it.
74
+ addDictionaryStringProperty(treeNode, "name", path);
75
+ if (snapshotTree.unreferenced) {
76
+ addBoolProperty(treeNode, "unreferenced", snapshotTree.unreferenced);
77
+ }
78
+ // Only write children prop if either blobs or trees are present.
79
+ if (Object.keys(value.blobs).length > 0 || Object.keys(value.trees).length > 0) {
80
+ treeNode.addDictionaryString("children");
81
+ const childNode = treeNode.addNode("list");
82
+ writeTreeSectionCore(childNode, value);
83
+ }
84
+ }
85
+
86
+ if (snapshotTree.blobs) {
87
+ for (const [path, id] of Object.entries(snapshotTree.blobs)) {
88
+ const blobNode = treesNode.addNode();
89
+ addDictionaryStringProperty(blobNode, "name", path);
90
+ addDictionaryStringProperty(blobNode, "value", id);
91
+ }
92
+ }
75
93
  }
76
94
 
77
95
  /**
@@ -80,75 +98,78 @@ function writeTreeSectionCore(treesNode: NodeCore, snapshotTree: ISnapshotTree)
80
98
  * @param snapshotTree - snapshot tree that is being serialized
81
99
  * @param blobs - blobs mapping of the snapshot
82
100
  * @param snapshotSequenceNumber - seq number at which snapshot is taken
83
- */
101
+ */
84
102
  function writeSnapshotSection(
85
- rootNode: NodeCore,
86
- snapshotTree: ISnapshotTree,
87
- snapshotSequenceNumber: number,
103
+ rootNode: NodeCore,
104
+ snapshotTree: ISnapshotTree,
105
+ snapshotSequenceNumber: number,
88
106
  ) {
89
- rootNode.addString("snapshot", true);
90
- const snapshotNode = rootNode.addNode();
107
+ rootNode.addDictionaryString("snapshot");
108
+ const snapshotNode = rootNode.addNode();
91
109
 
92
- const snapshotId = snapshotTree.id;
93
- assert(snapshotId !== undefined, 0x21b /* "Snapshot id should be provided" */);
94
- addStringProperty(snapshotNode, "id", snapshotId);
95
- addStringProperty(snapshotNode, "message", `Snapshot@${snapshotSequenceNumber}`);
96
- addNumberProperty(snapshotNode, "sequenceNumber", snapshotSequenceNumber);
110
+ const snapshotId = snapshotTree.id;
111
+ assert(snapshotId !== undefined, 0x21b /* "Snapshot id should be provided" */);
112
+ addStringProperty(snapshotNode, "id", snapshotId);
113
+ addStringProperty(snapshotNode, "message", `Snapshot@${snapshotSequenceNumber}`);
114
+ addNumberProperty(snapshotNode, "sequenceNumber", snapshotSequenceNumber);
97
115
 
98
- // Add Trees
99
- writeTreeSection(snapshotNode, snapshotTree);
116
+ // Add Trees
117
+ writeTreeSection(snapshotNode, snapshotTree);
100
118
  }
101
119
 
102
120
  /**
103
121
  * Represents ops in the tree.
104
122
  * @param rootNode - node to serialize to.
105
123
  * @param ops - ops that is being serialized
106
- */
124
+ */
107
125
  function writeOpsSection(rootNode: NodeCore, ops: ISequencedDocumentMessage[]) {
108
- let firstSequenceNumber: number | undefined;
109
- if (ops.length > 0) {
110
- firstSequenceNumber = ops[0].sequenceNumber;
111
- }
112
- if (firstSequenceNumber !== undefined) {
113
- rootNode.addString("deltas", true);
114
- const opsNode = rootNode.addNode();
115
- addNumberProperty(opsNode, "firstSequenceNumber", firstSequenceNumber);
116
- opsNode.addString("deltas", true);
117
- const deltaNode = opsNode.addNode("list");
118
- ops.forEach((op) => {
119
- deltaNode.addString(JSON.stringify(op), false);
120
- });
121
- }
126
+ let firstSequenceNumber: number | undefined;
127
+ if (ops.length > 0) {
128
+ firstSequenceNumber = ops[0].sequenceNumber;
129
+ }
130
+ if (firstSequenceNumber !== undefined) {
131
+ rootNode.addDictionaryString("deltas");
132
+ const opsNode = rootNode.addNode();
133
+ addNumberProperty(opsNode, "firstSequenceNumber", firstSequenceNumber);
134
+ opsNode.addDictionaryString("deltas");
135
+ const deltaNode = opsNode.addNode("list");
136
+ ops.forEach((op) => {
137
+ deltaNode.addString(JSON.stringify(op));
138
+ });
139
+ }
122
140
  }
123
141
 
124
142
  /**
125
143
  * Converts trees/blobs/ops to binary compact representation.
126
144
  * @param snapshotContents - snapshot tree contents to serialize
127
- * @returns - ReadBuffer - binary representation of the data.
145
+ * @returns ReadBuffer - binary representation of the data.
128
146
  */
129
- export function convertToCompactSnapshot(snapshotContents: ISnapshotContents): ReadBuffer {
130
- const builder = new TreeBuilderSerializer();
131
- // Create the root node.
132
- const rootNode = builder.addNode();
133
- assert(snapshotContents.sequenceNumber !== undefined, 0x21c /* "Seq number should be provided" */);
134
-
135
- const latestSequenceNumber = snapshotContents.latestSequenceNumber ??
136
- snapshotContents.ops.length > 0 ?
137
- snapshotContents.ops[snapshotContents.ops.length - 1].sequenceNumber : snapshotContents.sequenceNumber;
138
-
139
- writeSnapshotProps(rootNode, latestSequenceNumber);
140
-
141
- writeSnapshotSection(
142
- rootNode,
143
- snapshotContents.snapshotTree,
144
- snapshotContents.sequenceNumber,
145
- );
146
-
147
- // Add Blobs
148
- writeBlobsSection(rootNode, snapshotContents.blobs);
149
-
150
- // Then write the ops node.
151
- writeOpsSection(rootNode, snapshotContents.ops);
152
-
153
- return builder.serialize();
147
+ export function convertToCompactSnapshot(snapshotContents: ISnapshotContents): Uint8Array {
148
+ const builder = new TreeBuilderSerializer();
149
+ // Create the root node.
150
+ const rootNode = builder.addNode();
151
+ assert(
152
+ snapshotContents.sequenceNumber !== undefined,
153
+ 0x21c /* "Seq number should be provided" */,
154
+ );
155
+
156
+ let latestSequenceNumber = snapshotContents.latestSequenceNumber;
157
+ if (latestSequenceNumber === undefined) {
158
+ latestSequenceNumber =
159
+ snapshotContents.ops.length > 0
160
+ ? snapshotContents.ops[snapshotContents.ops.length - 1].sequenceNumber
161
+ : snapshotContents.sequenceNumber;
162
+ }
163
+
164
+ writeSnapshotProps(rootNode, latestSequenceNumber);
165
+
166
+ writeSnapshotSection(rootNode, snapshotContents.snapshotTree, snapshotContents.sequenceNumber);
167
+
168
+ // Add Blobs
169
+ writeBlobsSection(rootNode, snapshotContents.blobs);
170
+
171
+ // Then write the ops node.
172
+ writeOpsSection(rootNode, snapshotContents.ops);
173
+
174
+ return builder.serialize();
154
175
  }
package/src/constants.ts CHANGED
@@ -3,5 +3,12 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ /**
7
+ * @alpha
8
+ */
6
9
  export const OdcApiSiteOrigin = "https://my.microsoftpersonalcontent.com";
10
+
11
+ /**
12
+ * @alpha
13
+ */
7
14
  export const OdcFileSiteOrigin = "https://1drv.ms";