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

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 (661) 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-lint.json +4 -0
  6. package/api-extractor.json +2 -2
  7. package/api-report/odsp-driver.api.md +310 -0
  8. package/dist/{ReadBufferUtils.js → ReadBufferUtils.cjs} +16 -9
  9. package/dist/ReadBufferUtils.cjs.map +1 -0
  10. package/dist/ReadBufferUtils.d.ts.map +1 -1
  11. package/dist/{WriteBufferUtils.js → WriteBufferUtils.cjs} +73 -69
  12. package/dist/WriteBufferUtils.cjs.map +1 -0
  13. package/dist/WriteBufferUtils.d.ts +3 -5
  14. package/dist/WriteBufferUtils.d.ts.map +1 -1
  15. package/dist/{checkUrl.js → checkUrl.cjs} +7 -6
  16. package/dist/checkUrl.cjs.map +1 -0
  17. package/dist/checkUrl.d.ts +1 -0
  18. package/dist/checkUrl.d.ts.map +1 -1
  19. package/dist/compactSnapshotParser.cjs +207 -0
  20. package/dist/compactSnapshotParser.cjs.map +1 -0
  21. package/dist/compactSnapshotParser.d.ts +12 -3
  22. package/dist/compactSnapshotParser.d.ts.map +1 -1
  23. package/dist/{compactSnapshotWriter.js → compactSnapshotWriter.cjs} +43 -33
  24. package/dist/compactSnapshotWriter.cjs.map +1 -0
  25. package/dist/compactSnapshotWriter.d.ts +2 -3
  26. package/dist/compactSnapshotWriter.d.ts.map +1 -1
  27. package/dist/{constants.js → constants.cjs} +7 -1
  28. package/dist/constants.cjs.map +1 -0
  29. package/dist/constants.d.ts +6 -0
  30. package/dist/constants.d.ts.map +1 -1
  31. package/dist/{contracts.js → contracts.cjs} +1 -1
  32. package/dist/contracts.cjs.map +1 -0
  33. package/dist/contracts.d.ts +16 -53
  34. package/dist/contracts.d.ts.map +1 -1
  35. package/dist/{contractsPublic.js → contractsPublic.cjs} +9 -3
  36. package/dist/contractsPublic.cjs.map +1 -0
  37. package/dist/contractsPublic.d.ts +15 -0
  38. package/dist/contractsPublic.d.ts.map +1 -1
  39. package/dist/createFile.cjs +177 -0
  40. package/dist/createFile.cjs.map +1 -0
  41. package/dist/createFile.d.ts +6 -10
  42. package/dist/createFile.d.ts.map +1 -1
  43. package/dist/createNewContainerOnExistingFile.cjs +60 -0
  44. package/dist/createNewContainerOnExistingFile.cjs.map +1 -0
  45. package/dist/createNewContainerOnExistingFile.d.ts +22 -0
  46. package/dist/createNewContainerOnExistingFile.d.ts.map +1 -0
  47. package/dist/createNewModule.cjs +12 -0
  48. package/dist/createNewModule.cjs.map +1 -0
  49. package/dist/createNewModule.d.ts +7 -0
  50. package/dist/createNewModule.d.ts.map +1 -0
  51. package/dist/createNewUtils.cjs +203 -0
  52. package/dist/createNewUtils.cjs.map +1 -0
  53. package/dist/createNewUtils.d.ts +16 -0
  54. package/dist/createNewUtils.d.ts.map +1 -1
  55. package/dist/{createOdspCreateContainerRequest.js → createOdspCreateContainerRequest.cjs} +8 -4
  56. package/dist/createOdspCreateContainerRequest.cjs.map +1 -0
  57. package/dist/createOdspCreateContainerRequest.d.ts +5 -3
  58. package/dist/createOdspCreateContainerRequest.d.ts.map +1 -1
  59. package/dist/{createOdspUrl.js → createOdspUrl.cjs} +2 -1
  60. package/dist/createOdspUrl.cjs.map +1 -0
  61. package/dist/createOdspUrl.d.ts +1 -0
  62. package/dist/createOdspUrl.d.ts.map +1 -1
  63. package/dist/{epochTracker.js → epochTracker.cjs} +102 -48
  64. package/dist/epochTracker.cjs.map +1 -0
  65. package/dist/epochTracker.d.ts +32 -8
  66. package/dist/epochTracker.d.ts.map +1 -1
  67. package/dist/{fetch.js → fetch.cjs} +1 -1
  68. package/dist/fetch.cjs.map +1 -0
  69. package/dist/fetch.d.ts +1 -1
  70. package/dist/fetch.d.ts.map +1 -1
  71. package/dist/{fetchSnapshot.js → fetchSnapshot.cjs} +192 -176
  72. package/dist/fetchSnapshot.cjs.map +1 -0
  73. package/dist/fetchSnapshot.d.ts +10 -5
  74. package/dist/fetchSnapshot.d.ts.map +1 -1
  75. package/dist/{getFileLink.js → getFileLink.cjs} +52 -41
  76. package/dist/getFileLink.cjs.map +1 -0
  77. package/dist/getFileLink.d.ts +4 -7
  78. package/dist/getFileLink.d.ts.map +1 -1
  79. package/dist/{getQueryString.js → getQueryString.cjs} +1 -1
  80. package/dist/getQueryString.cjs.map +1 -0
  81. package/dist/getQueryString.d.ts.map +1 -1
  82. package/dist/{getUrlAndHeadersWithAuth.js → getUrlAndHeadersWithAuth.cjs} +4 -2
  83. package/dist/getUrlAndHeadersWithAuth.cjs.map +1 -0
  84. package/dist/getUrlAndHeadersWithAuth.d.ts.map +1 -1
  85. package/dist/index.cjs +59 -0
  86. package/dist/index.cjs.map +1 -0
  87. package/dist/index.d.ts +19 -16
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/localOdspDriver/localOdspDeltaStorageService.cjs +35 -0
  90. package/dist/localOdspDriver/localOdspDeltaStorageService.cjs.map +1 -0
  91. package/dist/localOdspDriver/localOdspDeltaStorageService.d.ts +17 -0
  92. package/dist/localOdspDriver/localOdspDeltaStorageService.d.ts.map +1 -0
  93. package/dist/localOdspDriver/{localOdspDocumentService.js → localOdspDocumentService.cjs} +7 -5
  94. package/dist/localOdspDriver/localOdspDocumentService.cjs.map +1 -0
  95. package/dist/localOdspDriver/localOdspDocumentService.d.ts +3 -2
  96. package/dist/localOdspDriver/localOdspDocumentService.d.ts.map +1 -1
  97. package/dist/localOdspDriver/{localOdspDocumentServiceFactory.js → localOdspDocumentServiceFactory.cjs} +9 -10
  98. package/dist/localOdspDriver/localOdspDocumentServiceFactory.cjs.map +1 -0
  99. package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts +2 -3
  100. package/dist/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +1 -1
  101. package/dist/localOdspDriver/{localOdspDocumentStorageManager.js → localOdspDocumentStorageManager.cjs} +13 -11
  102. package/dist/localOdspDriver/localOdspDocumentStorageManager.cjs.map +1 -0
  103. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts +2 -2
  104. package/dist/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +1 -1
  105. package/dist/odsp-driver-alpha.d.ts +497 -0
  106. package/dist/odsp-driver-beta.d.ts +159 -0
  107. package/dist/odsp-driver-public.d.ts +159 -0
  108. package/dist/odsp-driver-untrimmed.d.ts +566 -0
  109. package/dist/{odspCache.js → odspCache.cjs} +9 -10
  110. package/dist/odspCache.cjs.map +1 -0
  111. package/dist/odspCache.d.ts +19 -4
  112. package/dist/odspCache.d.ts.map +1 -1
  113. package/dist/odspDelayLoadedDeltaStream.cjs +291 -0
  114. package/dist/odspDelayLoadedDeltaStream.cjs.map +1 -0
  115. package/dist/odspDelayLoadedDeltaStream.d.ts +75 -0
  116. package/dist/odspDelayLoadedDeltaStream.d.ts.map +1 -0
  117. package/dist/{odspDeltaStorageService.js → odspDeltaStorageService.cjs} +70 -71
  118. package/dist/odspDeltaStorageService.cjs.map +1 -0
  119. package/dist/odspDeltaStorageService.d.ts +8 -6
  120. package/dist/odspDeltaStorageService.d.ts.map +1 -1
  121. package/dist/{odspDocumentDeltaConnection.js → odspDocumentDeltaConnection.cjs} +224 -113
  122. package/dist/odspDocumentDeltaConnection.cjs.map +1 -0
  123. package/dist/odspDocumentDeltaConnection.d.ts +32 -12
  124. package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
  125. package/dist/odspDocumentService.cjs +225 -0
  126. package/dist/odspDocumentService.cjs.map +1 -0
  127. package/dist/odspDocumentService.d.ts +11 -25
  128. package/dist/odspDocumentService.d.ts.map +1 -1
  129. package/dist/{odspDocumentServiceFactory.js → odspDocumentServiceFactory.cjs} +8 -5
  130. package/dist/odspDocumentServiceFactory.cjs.map +1 -0
  131. package/dist/odspDocumentServiceFactory.d.ts +4 -0
  132. package/dist/odspDocumentServiceFactory.d.ts.map +1 -1
  133. package/dist/odspDocumentServiceFactoryCore.cjs +196 -0
  134. package/dist/odspDocumentServiceFactoryCore.cjs.map +1 -0
  135. package/dist/odspDocumentServiceFactoryCore.d.ts +16 -11
  136. package/dist/odspDocumentServiceFactoryCore.d.ts.map +1 -1
  137. package/dist/odspDocumentServiceFactoryWithCodeSplit.cjs +20 -0
  138. package/dist/odspDocumentServiceFactoryWithCodeSplit.cjs.map +1 -0
  139. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts +5 -0
  140. package/dist/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +1 -1
  141. package/dist/odspDocumentStorageManager.cjs +490 -0
  142. package/dist/odspDocumentStorageManager.cjs.map +1 -0
  143. package/dist/odspDocumentStorageManager.d.ts +11 -5
  144. package/dist/odspDocumentStorageManager.d.ts.map +1 -1
  145. package/dist/{odspDocumentStorageServiceBase.js → odspDocumentStorageServiceBase.cjs} +32 -34
  146. package/dist/odspDocumentStorageServiceBase.cjs.map +1 -0
  147. package/dist/odspDocumentStorageServiceBase.d.ts +7 -9
  148. package/dist/odspDocumentStorageServiceBase.d.ts.map +1 -1
  149. package/dist/{odspDriverUrlResolver.js → odspDriverUrlResolver.cjs} +50 -36
  150. package/dist/odspDriverUrlResolver.cjs.map +1 -0
  151. package/dist/odspDriverUrlResolver.d.ts +12 -0
  152. package/dist/odspDriverUrlResolver.d.ts.map +1 -1
  153. package/dist/{odspDriverUrlResolverForShareLink.js → odspDriverUrlResolverForShareLink.cjs} +37 -26
  154. package/dist/odspDriverUrlResolverForShareLink.cjs.map +1 -0
  155. package/dist/odspDriverUrlResolverForShareLink.d.ts +5 -3
  156. package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
  157. package/dist/{odspError.js → odspError.cjs} +7 -3
  158. package/dist/odspError.cjs.map +1 -0
  159. package/dist/odspError.d.ts.map +1 -1
  160. package/dist/{odspFluidFileLink.js → odspFluidFileLink.cjs} +25 -18
  161. package/dist/odspFluidFileLink.cjs.map +1 -0
  162. package/dist/odspFluidFileLink.d.ts +10 -1
  163. package/dist/odspFluidFileLink.d.ts.map +1 -1
  164. package/dist/odspLocationRedirection.cjs +24 -0
  165. package/dist/odspLocationRedirection.cjs.map +1 -0
  166. package/dist/odspLocationRedirection.d.ts +14 -0
  167. package/dist/odspLocationRedirection.d.ts.map +1 -0
  168. package/dist/{odspPublicUtils.js → odspPublicUtils.cjs} +7 -4
  169. package/dist/odspPublicUtils.cjs.map +1 -0
  170. package/dist/odspPublicUtils.d.ts +6 -0
  171. package/dist/odspPublicUtils.d.ts.map +1 -1
  172. package/dist/{odspSnapshotParser.js → odspSnapshotParser.cjs} +11 -12
  173. package/dist/odspSnapshotParser.cjs.map +1 -0
  174. package/dist/odspSnapshotParser.d.ts.map +1 -1
  175. package/dist/{odspSummaryUploadManager.js → odspSummaryUploadManager.cjs} +47 -34
  176. package/dist/odspSummaryUploadManager.cjs.map +1 -0
  177. package/dist/odspSummaryUploadManager.d.ts +7 -4
  178. package/dist/odspSummaryUploadManager.d.ts.map +1 -1
  179. package/dist/{odspUrlHelper.js → odspUrlHelper.cjs} +9 -3
  180. package/dist/odspUrlHelper.cjs.map +1 -0
  181. package/dist/odspUrlHelper.d.ts +5 -0
  182. package/dist/odspUrlHelper.d.ts.map +1 -1
  183. package/dist/{odspUtils.js → odspUtils.cjs} +118 -30
  184. package/dist/odspUtils.cjs.map +1 -0
  185. package/dist/odspUtils.d.ts +35 -6
  186. package/dist/odspUtils.d.ts.map +1 -1
  187. package/dist/{opsCaching.js → opsCaching.cjs} +25 -9
  188. package/dist/opsCaching.cjs.map +1 -0
  189. package/dist/opsCaching.d.ts +3 -3
  190. package/dist/opsCaching.d.ts.map +1 -1
  191. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  192. package/dist/packageVersion.cjs.map +1 -0
  193. package/dist/packageVersion.d.ts +1 -1
  194. package/dist/packageVersion.d.ts.map +1 -1
  195. package/dist/prefetchLatestSnapshot.cjs +100 -0
  196. package/dist/prefetchLatestSnapshot.cjs.map +1 -0
  197. package/dist/prefetchLatestSnapshot.d.ts +12 -7
  198. package/dist/prefetchLatestSnapshot.d.ts.map +1 -1
  199. package/dist/{retryErrorsStorageAdapter.js → retryErrorsStorageAdapter.cjs} +13 -6
  200. package/dist/retryErrorsStorageAdapter.cjs.map +1 -0
  201. package/dist/retryErrorsStorageAdapter.d.ts +5 -4
  202. package/dist/retryErrorsStorageAdapter.d.ts.map +1 -1
  203. package/dist/{retryUtils.js → retryUtils.cjs} +30 -14
  204. package/dist/retryUtils.cjs.map +1 -0
  205. package/dist/retryUtils.d.ts +2 -2
  206. package/dist/retryUtils.d.ts.map +1 -1
  207. package/dist/socketModule.cjs +10 -0
  208. package/dist/socketModule.cjs.map +1 -0
  209. package/dist/socketModule.d.ts +7 -0
  210. package/dist/socketModule.d.ts.map +1 -0
  211. package/dist/tsdoc-metadata.json +11 -0
  212. package/dist/{vroom.js → vroom.cjs} +24 -9
  213. package/dist/vroom.cjs.map +1 -0
  214. package/dist/vroom.d.ts +4 -4
  215. package/dist/vroom.d.ts.map +1 -1
  216. package/dist/{zipItDataRepresentationUtils.js → zipItDataRepresentationUtils.cjs} +227 -118
  217. package/dist/zipItDataRepresentationUtils.cjs.map +1 -0
  218. package/dist/zipItDataRepresentationUtils.d.ts +47 -20
  219. package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
  220. package/lib/ReadBufferUtils.d.mts.map +1 -0
  221. package/lib/{ReadBufferUtils.js → ReadBufferUtils.mjs} +14 -7
  222. package/lib/ReadBufferUtils.mjs.map +1 -0
  223. package/lib/{WriteBufferUtils.d.ts → WriteBufferUtils.d.mts} +3 -5
  224. package/lib/WriteBufferUtils.d.mts.map +1 -0
  225. package/lib/{WriteBufferUtils.js → WriteBufferUtils.mjs} +68 -64
  226. package/lib/WriteBufferUtils.mjs.map +1 -0
  227. package/lib/{checkUrl.d.ts → checkUrl.d.mts} +1 -0
  228. package/lib/checkUrl.d.mts.map +1 -0
  229. package/lib/{checkUrl.js → checkUrl.mjs} +7 -6
  230. package/lib/checkUrl.mjs.map +1 -0
  231. package/lib/compactSnapshotParser.d.mts +24 -0
  232. package/lib/compactSnapshotParser.d.mts.map +1 -0
  233. package/lib/compactSnapshotParser.mjs +203 -0
  234. package/lib/compactSnapshotParser.mjs.map +1 -0
  235. package/lib/{compactSnapshotWriter.d.ts → compactSnapshotWriter.d.mts} +3 -4
  236. package/lib/compactSnapshotWriter.d.mts.map +1 -0
  237. package/lib/{compactSnapshotWriter.js → compactSnapshotWriter.mjs} +41 -31
  238. package/lib/compactSnapshotWriter.mjs.map +1 -0
  239. package/lib/{constants.d.ts → constants.d.mts} +6 -0
  240. package/lib/constants.d.mts.map +1 -0
  241. package/lib/{constants.js → constants.mjs} +7 -1
  242. package/lib/constants.mjs.map +1 -0
  243. package/lib/{contracts.d.ts → contracts.d.mts} +17 -54
  244. package/lib/contracts.d.mts.map +1 -0
  245. package/lib/{contracts.js → contracts.mjs} +1 -1
  246. package/lib/contracts.mjs.map +1 -0
  247. package/lib/{contractsPublic.d.ts → contractsPublic.d.mts} +15 -0
  248. package/lib/contractsPublic.d.mts.map +1 -0
  249. package/lib/{contractsPublic.js → contractsPublic.mjs} +7 -1
  250. package/lib/contractsPublic.mjs.map +1 -0
  251. package/lib/createFile.d.mts +18 -0
  252. package/lib/createFile.d.mts.map +1 -0
  253. package/lib/createFile.mjs +171 -0
  254. package/lib/createFile.mjs.map +1 -0
  255. package/lib/createNewContainerOnExistingFile.d.mts +22 -0
  256. package/lib/createNewContainerOnExistingFile.d.mts.map +1 -0
  257. package/lib/createNewContainerOnExistingFile.mjs +56 -0
  258. package/lib/createNewContainerOnExistingFile.mjs.map +1 -0
  259. package/lib/createNewModule.d.mts +7 -0
  260. package/lib/createNewModule.d.mts.map +1 -0
  261. package/lib/createNewModule.mjs +7 -0
  262. package/lib/createNewModule.mjs.map +1 -0
  263. package/lib/createNewUtils.d.mts +27 -0
  264. package/lib/createNewUtils.d.mts.map +1 -0
  265. package/lib/createNewUtils.mjs +197 -0
  266. package/lib/createNewUtils.mjs.map +1 -0
  267. package/lib/{createOdspCreateContainerRequest.d.ts → createOdspCreateContainerRequest.d.mts} +5 -7
  268. package/lib/createOdspCreateContainerRequest.d.mts.map +1 -0
  269. package/lib/{createOdspCreateContainerRequest.js → createOdspCreateContainerRequest.mjs} +8 -4
  270. package/lib/createOdspCreateContainerRequest.mjs.map +1 -0
  271. package/lib/{createOdspUrl.d.ts → createOdspUrl.d.mts} +2 -1
  272. package/lib/{createOdspUrl.d.ts.map → createOdspUrl.d.mts.map} +1 -1
  273. package/lib/{createOdspUrl.js → createOdspUrl.mjs} +2 -1
  274. package/lib/createOdspUrl.mjs.map +1 -0
  275. package/lib/{epochTracker.d.ts → epochTracker.d.mts} +34 -10
  276. package/lib/epochTracker.d.mts.map +1 -0
  277. package/lib/{epochTracker.js → epochTracker.mjs} +97 -43
  278. package/lib/epochTracker.mjs.map +1 -0
  279. package/lib/{fetch.d.ts → fetch.d.mts} +1 -1
  280. package/lib/{fetch.d.ts.map → fetch.d.mts.map} +1 -1
  281. package/lib/{fetch.js → fetch.mjs} +1 -1
  282. package/lib/fetch.mjs.map +1 -0
  283. package/lib/{fetchSnapshot.d.ts → fetchSnapshot.d.mts} +14 -9
  284. package/lib/fetchSnapshot.d.mts.map +1 -0
  285. package/lib/{fetchSnapshot.js → fetchSnapshot.mjs} +185 -167
  286. package/lib/fetchSnapshot.mjs.map +1 -0
  287. package/lib/{getFileLink.d.ts → getFileLink.d.mts} +4 -7
  288. package/lib/getFileLink.d.mts.map +1 -0
  289. package/lib/{getFileLink.js → getFileLink.mjs} +49 -38
  290. package/lib/getFileLink.mjs.map +1 -0
  291. package/lib/{getQueryString.d.ts → getQueryString.d.mts} +0 -4
  292. package/lib/getQueryString.d.mts.map +1 -0
  293. package/lib/{getQueryString.js → getQueryString.mjs} +1 -1
  294. package/lib/getQueryString.mjs.map +1 -0
  295. package/lib/{getUrlAndHeadersWithAuth.d.ts.map → getUrlAndHeadersWithAuth.d.mts.map} +1 -1
  296. package/lib/{getUrlAndHeadersWithAuth.js → getUrlAndHeadersWithAuth.mjs} +4 -2
  297. package/lib/getUrlAndHeadersWithAuth.mjs.map +1 -0
  298. package/lib/index.d.mts +24 -0
  299. package/lib/index.d.mts.map +1 -0
  300. package/lib/index.mjs +22 -0
  301. package/lib/index.mjs.map +1 -0
  302. package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts +17 -0
  303. package/lib/localOdspDriver/localOdspDeltaStorageService.d.mts.map +1 -0
  304. package/lib/localOdspDriver/localOdspDeltaStorageService.mjs +31 -0
  305. package/lib/localOdspDriver/localOdspDeltaStorageService.mjs.map +1 -0
  306. package/lib/localOdspDriver/{localOdspDocumentService.d.ts → localOdspDocumentService.d.mts} +3 -2
  307. package/lib/localOdspDriver/localOdspDocumentService.d.mts.map +1 -0
  308. package/lib/localOdspDriver/{localOdspDocumentService.js → localOdspDocumentService.mjs} +8 -6
  309. package/lib/localOdspDriver/localOdspDocumentService.mjs.map +1 -0
  310. package/lib/localOdspDriver/{localOdspDocumentServiceFactory.d.ts → localOdspDocumentServiceFactory.d.mts} +4 -5
  311. package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.mts.map +1 -0
  312. package/lib/localOdspDriver/{localOdspDocumentServiceFactory.js → localOdspDocumentServiceFactory.mjs} +9 -10
  313. package/lib/localOdspDriver/localOdspDocumentServiceFactory.mjs.map +1 -0
  314. package/lib/localOdspDriver/{localOdspDocumentStorageManager.d.ts → localOdspDocumentStorageManager.d.mts} +3 -3
  315. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.mts.map +1 -0
  316. package/lib/localOdspDriver/{localOdspDocumentStorageManager.js → localOdspDocumentStorageManager.mjs} +11 -9
  317. package/lib/localOdspDriver/localOdspDocumentStorageManager.mjs.map +1 -0
  318. package/lib/odsp-driver-alpha.d.mts +497 -0
  319. package/lib/odsp-driver-beta.d.mts +159 -0
  320. package/lib/odsp-driver-public.d.mts +159 -0
  321. package/lib/odsp-driver-untrimmed.d.mts +566 -0
  322. package/lib/{odspCache.d.ts → odspCache.d.mts} +19 -8
  323. package/lib/odspCache.d.mts.map +1 -0
  324. package/lib/{odspCache.js → odspCache.mjs} +6 -11
  325. package/lib/odspCache.mjs.map +1 -0
  326. package/lib/odspDelayLoadedDeltaStream.d.mts +75 -0
  327. package/lib/odspDelayLoadedDeltaStream.d.mts.map +1 -0
  328. package/lib/odspDelayLoadedDeltaStream.mjs +287 -0
  329. package/lib/odspDelayLoadedDeltaStream.mjs.map +1 -0
  330. package/lib/{odspDeltaStorageService.d.ts → odspDeltaStorageService.d.mts} +9 -7
  331. package/lib/odspDeltaStorageService.d.mts.map +1 -0
  332. package/lib/{odspDeltaStorageService.js → odspDeltaStorageService.mjs} +70 -68
  333. package/lib/odspDeltaStorageService.mjs.map +1 -0
  334. package/lib/{odspDocumentDeltaConnection.d.ts → odspDocumentDeltaConnection.d.mts} +33 -13
  335. package/lib/odspDocumentDeltaConnection.d.mts.map +1 -0
  336. package/lib/{odspDocumentDeltaConnection.js → odspDocumentDeltaConnection.mjs} +214 -103
  337. package/lib/odspDocumentDeltaConnection.mjs.map +1 -0
  338. package/lib/{odspDocumentService.d.ts → odspDocumentService.d.mts} +14 -28
  339. package/lib/odspDocumentService.d.mts.map +1 -0
  340. package/lib/odspDocumentService.mjs +221 -0
  341. package/lib/odspDocumentService.mjs.map +1 -0
  342. package/lib/{odspDocumentServiceFactory.d.ts → odspDocumentServiceFactory.d.mts} +5 -1
  343. package/lib/odspDocumentServiceFactory.d.mts.map +1 -0
  344. package/lib/{odspDocumentServiceFactory.js → odspDocumentServiceFactory.mjs} +8 -6
  345. package/lib/odspDocumentServiceFactory.mjs.map +1 -0
  346. package/lib/{odspDocumentServiceFactoryCore.d.ts → odspDocumentServiceFactoryCore.d.mts} +17 -12
  347. package/lib/odspDocumentServiceFactoryCore.d.mts.map +1 -0
  348. package/lib/odspDocumentServiceFactoryCore.mjs +192 -0
  349. package/lib/odspDocumentServiceFactoryCore.mjs.map +1 -0
  350. package/lib/{odspDocumentServiceFactoryWithCodeSplit.d.ts → odspDocumentServiceFactoryWithCodeSplit.d.mts} +6 -1
  351. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.mts.map +1 -0
  352. package/lib/{odspDocumentServiceFactoryWithCodeSplit.js → odspDocumentServiceFactoryWithCodeSplit.mjs} +8 -3
  353. package/lib/odspDocumentServiceFactoryWithCodeSplit.mjs.map +1 -0
  354. package/lib/{odspDocumentStorageManager.d.ts → odspDocumentStorageManager.d.mts} +17 -11
  355. package/lib/odspDocumentStorageManager.d.mts.map +1 -0
  356. package/lib/odspDocumentStorageManager.mjs +486 -0
  357. package/lib/odspDocumentStorageManager.mjs.map +1 -0
  358. package/lib/{odspDocumentStorageServiceBase.d.ts → odspDocumentStorageServiceBase.d.mts} +8 -10
  359. package/lib/odspDocumentStorageServiceBase.d.mts.map +1 -0
  360. package/lib/{odspDocumentStorageServiceBase.js → odspDocumentStorageServiceBase.mjs} +31 -33
  361. package/lib/odspDocumentStorageServiceBase.mjs.map +1 -0
  362. package/lib/{odspDriverUrlResolver.d.ts → odspDriverUrlResolver.d.mts} +12 -0
  363. package/lib/odspDriverUrlResolver.d.mts.map +1 -0
  364. package/lib/{odspDriverUrlResolver.js → odspDriverUrlResolver.mjs} +50 -40
  365. package/lib/odspDriverUrlResolver.mjs.map +1 -0
  366. package/lib/{odspDriverUrlResolverForShareLink.d.ts → odspDriverUrlResolverForShareLink.d.mts} +6 -4
  367. package/lib/odspDriverUrlResolverForShareLink.d.mts.map +1 -0
  368. package/lib/{odspDriverUrlResolverForShareLink.js → odspDriverUrlResolverForShareLink.mjs} +36 -29
  369. package/lib/odspDriverUrlResolverForShareLink.mjs.map +1 -0
  370. package/lib/{odspError.d.ts → odspError.d.mts} +1 -1
  371. package/lib/odspError.d.mts.map +1 -0
  372. package/lib/{odspError.js → odspError.mjs} +7 -3
  373. package/lib/odspError.mjs.map +1 -0
  374. package/lib/{odspFluidFileLink.d.ts → odspFluidFileLink.d.mts} +11 -2
  375. package/lib/odspFluidFileLink.d.mts.map +1 -0
  376. package/lib/{odspFluidFileLink.js → odspFluidFileLink.mjs} +23 -16
  377. package/lib/odspFluidFileLink.mjs.map +1 -0
  378. package/lib/odspLocationRedirection.d.mts +14 -0
  379. package/lib/odspLocationRedirection.d.mts.map +1 -0
  380. package/lib/odspLocationRedirection.mjs +20 -0
  381. package/lib/odspLocationRedirection.mjs.map +1 -0
  382. package/lib/{odspPublicUtils.d.ts → odspPublicUtils.d.mts} +6 -0
  383. package/lib/odspPublicUtils.d.mts.map +1 -0
  384. package/lib/{odspPublicUtils.js → odspPublicUtils.mjs} +5 -2
  385. package/lib/odspPublicUtils.mjs.map +1 -0
  386. package/lib/{odspSnapshotParser.d.ts → odspSnapshotParser.d.mts} +2 -2
  387. package/lib/odspSnapshotParser.d.mts.map +1 -0
  388. package/lib/{odspSnapshotParser.js → odspSnapshotParser.mjs} +10 -11
  389. package/lib/odspSnapshotParser.mjs.map +1 -0
  390. package/lib/{odspSummaryUploadManager.d.ts → odspSummaryUploadManager.d.mts} +8 -5
  391. package/lib/odspSummaryUploadManager.d.mts.map +1 -0
  392. package/lib/{odspSummaryUploadManager.js → odspSummaryUploadManager.mjs} +41 -32
  393. package/lib/odspSummaryUploadManager.mjs.map +1 -0
  394. package/lib/{odspUrlHelper.d.ts → odspUrlHelper.d.mts} +5 -0
  395. package/lib/odspUrlHelper.d.mts.map +1 -0
  396. package/lib/{odspUrlHelper.js → odspUrlHelper.mjs} +9 -3
  397. package/lib/odspUrlHelper.mjs.map +1 -0
  398. package/lib/{odspUtils.d.ts → odspUtils.d.mts} +36 -7
  399. package/lib/odspUtils.d.mts.map +1 -0
  400. package/lib/{odspUtils.js → odspUtils.mjs} +109 -27
  401. package/lib/odspUtils.mjs.map +1 -0
  402. package/lib/{opsCaching.d.ts → opsCaching.d.mts} +3 -3
  403. package/lib/opsCaching.d.mts.map +1 -0
  404. package/lib/{opsCaching.js → opsCaching.mjs} +23 -7
  405. package/lib/opsCaching.mjs.map +1 -0
  406. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
  407. package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +1 -1
  408. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  409. package/lib/packageVersion.mjs.map +1 -0
  410. package/lib/{prefetchLatestSnapshot.d.ts → prefetchLatestSnapshot.d.mts} +13 -8
  411. package/lib/prefetchLatestSnapshot.d.mts.map +1 -0
  412. package/lib/prefetchLatestSnapshot.mjs +96 -0
  413. package/lib/prefetchLatestSnapshot.mjs.map +1 -0
  414. package/lib/{retryErrorsStorageAdapter.d.ts → retryErrorsStorageAdapter.d.mts} +5 -4
  415. package/lib/retryErrorsStorageAdapter.d.mts.map +1 -0
  416. package/lib/{retryErrorsStorageAdapter.js → retryErrorsStorageAdapter.mjs} +13 -6
  417. package/lib/retryErrorsStorageAdapter.mjs.map +1 -0
  418. package/lib/{retryUtils.d.ts → retryUtils.d.mts} +2 -2
  419. package/lib/retryUtils.d.mts.map +1 -0
  420. package/lib/{retryUtils.js → retryUtils.mjs} +27 -11
  421. package/lib/retryUtils.mjs.map +1 -0
  422. package/lib/socketModule.d.mts +7 -0
  423. package/lib/socketModule.d.mts.map +1 -0
  424. package/lib/socketModule.mjs +7 -0
  425. package/lib/socketModule.mjs.map +1 -0
  426. package/lib/{vroom.d.ts → vroom.d.mts} +6 -6
  427. package/lib/vroom.d.mts.map +1 -0
  428. package/lib/{vroom.js → vroom.mjs} +24 -9
  429. package/lib/vroom.mjs.map +1 -0
  430. package/lib/{zipItDataRepresentationUtils.d.ts → zipItDataRepresentationUtils.d.mts} +48 -21
  431. package/lib/zipItDataRepresentationUtils.d.mts.map +1 -0
  432. package/lib/{zipItDataRepresentationUtils.js → zipItDataRepresentationUtils.mjs} +213 -111
  433. package/lib/zipItDataRepresentationUtils.mjs.map +1 -0
  434. package/package.json +89 -69
  435. package/prettier.config.cjs +8 -0
  436. package/src/ReadBufferUtils.ts +51 -44
  437. package/src/WriteBufferUtils.ts +203 -181
  438. package/src/checkUrl.ts +16 -15
  439. package/src/compactSnapshotParser.ts +219 -103
  440. package/src/compactSnapshotWriter.ts +118 -97
  441. package/src/constants.ts +7 -0
  442. package/src/contracts.ts +96 -136
  443. package/src/contractsPublic.ts +31 -16
  444. package/src/createFile.ts +243 -305
  445. package/src/createNewContainerOnExistingFile.ts +93 -0
  446. package/src/createNewModule.ts +7 -0
  447. package/src/createNewUtils.ts +266 -56
  448. package/src/createOdspCreateContainerRequest.ts +22 -18
  449. package/src/createOdspUrl.ts +12 -13
  450. package/src/epochTracker.ts +596 -457
  451. package/src/fetch.ts +4 -4
  452. package/src/fetchSnapshot.ts +583 -508
  453. package/src/getFileLink.ts +194 -155
  454. package/src/getQueryString.ts +11 -9
  455. package/src/getUrlAndHeadersWithAuth.ts +34 -33
  456. package/src/index.ts +42 -18
  457. package/src/localOdspDriver/localOdspDeltaStorageService.ts +49 -0
  458. package/src/localOdspDriver/localOdspDocumentService.ts +40 -38
  459. package/src/localOdspDriver/localOdspDocumentServiceFactory.ts +46 -43
  460. package/src/localOdspDriver/localOdspDocumentStorageManager.ts +55 -50
  461. package/src/odspCache.ts +112 -90
  462. package/src/odspDelayLoadedDeltaStream.ts +459 -0
  463. package/src/odspDeltaStorageService.ts +232 -221
  464. package/src/odspDocumentDeltaConnection.ts +751 -563
  465. package/src/odspDocumentService.ts +324 -523
  466. package/src/odspDocumentServiceFactory.ts +20 -21
  467. package/src/odspDocumentServiceFactoryCore.ts +325 -202
  468. package/src/odspDocumentServiceFactoryWithCodeSplit.ts +20 -20
  469. package/src/odspDocumentStorageManager.ts +730 -534
  470. package/src/odspDocumentStorageServiceBase.ts +279 -254
  471. package/src/odspDriverUrlResolver.ts +230 -188
  472. package/src/odspDriverUrlResolverForShareLink.ts +223 -203
  473. package/src/odspError.ts +27 -19
  474. package/src/odspFluidFileLink.ts +106 -87
  475. package/src/odspLocationRedirection.ts +26 -0
  476. package/src/odspPublicUtils.ts +20 -14
  477. package/src/odspSnapshotParser.ts +53 -46
  478. package/src/odspSummaryUploadManager.ts +243 -218
  479. package/src/odspUrlHelper.ts +81 -71
  480. package/src/odspUtils.ts +401 -259
  481. package/src/opsCaching.ts +214 -193
  482. package/src/packageVersion.ts +1 -1
  483. package/src/prefetchLatestSnapshot.ts +142 -80
  484. package/src/retryErrorsStorageAdapter.ts +92 -77
  485. package/src/retryUtils.ts +80 -57
  486. package/src/socketModule.ts +8 -0
  487. package/src/vroom.ts +92 -83
  488. package/src/zipItDataRepresentationUtils.ts +534 -394
  489. package/tsc-multi.test.json +4 -0
  490. package/tsconfig.json +11 -13
  491. package/.editorconfig +0 -7
  492. package/dist/ReadBufferUtils.js.map +0 -1
  493. package/dist/WriteBufferUtils.js.map +0 -1
  494. package/dist/checkUrl.js.map +0 -1
  495. package/dist/compactSnapshotParser.js +0 -115
  496. package/dist/compactSnapshotParser.js.map +0 -1
  497. package/dist/compactSnapshotWriter.js.map +0 -1
  498. package/dist/constants.js.map +0 -1
  499. package/dist/contracts.js.map +0 -1
  500. package/dist/contractsPublic.js.map +0 -1
  501. package/dist/createFile.js +0 -242
  502. package/dist/createFile.js.map +0 -1
  503. package/dist/createNewUtils.js +0 -67
  504. package/dist/createNewUtils.js.map +0 -1
  505. package/dist/createOdspCreateContainerRequest.js.map +0 -1
  506. package/dist/createOdspUrl.js.map +0 -1
  507. package/dist/epochTracker.js.map +0 -1
  508. package/dist/fetch.js.map +0 -1
  509. package/dist/fetchSnapshot.js.map +0 -1
  510. package/dist/getFileLink.js.map +0 -1
  511. package/dist/getQueryString.js.map +0 -1
  512. package/dist/getSocketIo.d.ts +0 -11
  513. package/dist/getSocketIo.d.ts.map +0 -1
  514. package/dist/getSocketIo.js +0 -20
  515. package/dist/getSocketIo.js.map +0 -1
  516. package/dist/getUrlAndHeadersWithAuth.js.map +0 -1
  517. package/dist/index.js +0 -41
  518. package/dist/index.js.map +0 -1
  519. package/dist/localOdspDriver/localOdspDocumentService.js.map +0 -1
  520. package/dist/localOdspDriver/localOdspDocumentServiceFactory.js.map +0 -1
  521. package/dist/localOdspDriver/localOdspDocumentStorageManager.js.map +0 -1
  522. package/dist/odspCache.js.map +0 -1
  523. package/dist/odspDeltaStorageService.js.map +0 -1
  524. package/dist/odspDocumentDeltaConnection.js.map +0 -1
  525. package/dist/odspDocumentService.js +0 -364
  526. package/dist/odspDocumentService.js.map +0 -1
  527. package/dist/odspDocumentServiceFactory.js.map +0 -1
  528. package/dist/odspDocumentServiceFactoryCore.js +0 -118
  529. package/dist/odspDocumentServiceFactoryCore.js.map +0 -1
  530. package/dist/odspDocumentServiceFactoryWithCodeSplit.js +0 -34
  531. package/dist/odspDocumentServiceFactoryWithCodeSplit.js.map +0 -1
  532. package/dist/odspDocumentStorageManager.js +0 -356
  533. package/dist/odspDocumentStorageManager.js.map +0 -1
  534. package/dist/odspDocumentStorageServiceBase.js.map +0 -1
  535. package/dist/odspDriverUrlResolver.js.map +0 -1
  536. package/dist/odspDriverUrlResolverForShareLink.js.map +0 -1
  537. package/dist/odspError.js.map +0 -1
  538. package/dist/odspFluidFileLink.js.map +0 -1
  539. package/dist/odspPublicUtils.js.map +0 -1
  540. package/dist/odspSnapshotParser.js.map +0 -1
  541. package/dist/odspSummaryUploadManager.js.map +0 -1
  542. package/dist/odspUrlHelper.js.map +0 -1
  543. package/dist/odspUtils.js.map +0 -1
  544. package/dist/opsCaching.js.map +0 -1
  545. package/dist/packageVersion.js.map +0 -1
  546. package/dist/prefetchLatestSnapshot.js +0 -57
  547. package/dist/prefetchLatestSnapshot.js.map +0 -1
  548. package/dist/retryErrorsStorageAdapter.js.map +0 -1
  549. package/dist/retryUtils.js.map +0 -1
  550. package/dist/vroom.js.map +0 -1
  551. package/dist/zipItDataRepresentationUtils.js.map +0 -1
  552. package/lib/ReadBufferUtils.d.ts.map +0 -1
  553. package/lib/ReadBufferUtils.js.map +0 -1
  554. package/lib/WriteBufferUtils.d.ts.map +0 -1
  555. package/lib/WriteBufferUtils.js.map +0 -1
  556. package/lib/checkUrl.d.ts.map +0 -1
  557. package/lib/checkUrl.js.map +0 -1
  558. package/lib/compactSnapshotParser.d.ts +0 -15
  559. package/lib/compactSnapshotParser.d.ts.map +0 -1
  560. package/lib/compactSnapshotParser.js +0 -111
  561. package/lib/compactSnapshotParser.js.map +0 -1
  562. package/lib/compactSnapshotWriter.d.ts.map +0 -1
  563. package/lib/compactSnapshotWriter.js.map +0 -1
  564. package/lib/constants.d.ts.map +0 -1
  565. package/lib/constants.js.map +0 -1
  566. package/lib/contracts.d.ts.map +0 -1
  567. package/lib/contracts.js.map +0 -1
  568. package/lib/contractsPublic.d.ts.map +0 -1
  569. package/lib/contractsPublic.js.map +0 -1
  570. package/lib/createFile.d.ts +0 -22
  571. package/lib/createFile.d.ts.map +0 -1
  572. package/lib/createFile.js +0 -235
  573. package/lib/createFile.js.map +0 -1
  574. package/lib/createNewUtils.d.ts +0 -11
  575. package/lib/createNewUtils.d.ts.map +0 -1
  576. package/lib/createNewUtils.js +0 -63
  577. package/lib/createNewUtils.js.map +0 -1
  578. package/lib/createOdspCreateContainerRequest.d.ts.map +0 -1
  579. package/lib/createOdspCreateContainerRequest.js.map +0 -1
  580. package/lib/createOdspUrl.js.map +0 -1
  581. package/lib/epochTracker.d.ts.map +0 -1
  582. package/lib/epochTracker.js.map +0 -1
  583. package/lib/fetch.js.map +0 -1
  584. package/lib/fetchSnapshot.d.ts.map +0 -1
  585. package/lib/fetchSnapshot.js.map +0 -1
  586. package/lib/getFileLink.d.ts.map +0 -1
  587. package/lib/getFileLink.js.map +0 -1
  588. package/lib/getQueryString.d.ts.map +0 -1
  589. package/lib/getQueryString.js.map +0 -1
  590. package/lib/getSocketIo.d.ts +0 -11
  591. package/lib/getSocketIo.d.ts.map +0 -1
  592. package/lib/getSocketIo.js +0 -13
  593. package/lib/getSocketIo.js.map +0 -1
  594. package/lib/getUrlAndHeadersWithAuth.js.map +0 -1
  595. package/lib/index.d.ts +0 -21
  596. package/lib/index.d.ts.map +0 -1
  597. package/lib/index.js +0 -29
  598. package/lib/index.js.map +0 -1
  599. package/lib/localOdspDriver/localOdspDocumentService.d.ts.map +0 -1
  600. package/lib/localOdspDriver/localOdspDocumentService.js.map +0 -1
  601. package/lib/localOdspDriver/localOdspDocumentServiceFactory.d.ts.map +0 -1
  602. package/lib/localOdspDriver/localOdspDocumentServiceFactory.js.map +0 -1
  603. package/lib/localOdspDriver/localOdspDocumentStorageManager.d.ts.map +0 -1
  604. package/lib/localOdspDriver/localOdspDocumentStorageManager.js.map +0 -1
  605. package/lib/odspCache.d.ts.map +0 -1
  606. package/lib/odspCache.js.map +0 -1
  607. package/lib/odspDeltaStorageService.d.ts.map +0 -1
  608. package/lib/odspDeltaStorageService.js.map +0 -1
  609. package/lib/odspDocumentDeltaConnection.d.ts.map +0 -1
  610. package/lib/odspDocumentDeltaConnection.js.map +0 -1
  611. package/lib/odspDocumentService.d.ts.map +0 -1
  612. package/lib/odspDocumentService.js +0 -360
  613. package/lib/odspDocumentService.js.map +0 -1
  614. package/lib/odspDocumentServiceFactory.d.ts.map +0 -1
  615. package/lib/odspDocumentServiceFactory.js.map +0 -1
  616. package/lib/odspDocumentServiceFactoryCore.d.ts.map +0 -1
  617. package/lib/odspDocumentServiceFactoryCore.js +0 -114
  618. package/lib/odspDocumentServiceFactoryCore.js.map +0 -1
  619. package/lib/odspDocumentServiceFactoryWithCodeSplit.d.ts.map +0 -1
  620. package/lib/odspDocumentServiceFactoryWithCodeSplit.js.map +0 -1
  621. package/lib/odspDocumentStorageManager.d.ts.map +0 -1
  622. package/lib/odspDocumentStorageManager.js +0 -352
  623. package/lib/odspDocumentStorageManager.js.map +0 -1
  624. package/lib/odspDocumentStorageServiceBase.d.ts.map +0 -1
  625. package/lib/odspDocumentStorageServiceBase.js.map +0 -1
  626. package/lib/odspDriverUrlResolver.d.ts.map +0 -1
  627. package/lib/odspDriverUrlResolver.js.map +0 -1
  628. package/lib/odspDriverUrlResolverForShareLink.d.ts.map +0 -1
  629. package/lib/odspDriverUrlResolverForShareLink.js.map +0 -1
  630. package/lib/odspError.d.ts.map +0 -1
  631. package/lib/odspError.js.map +0 -1
  632. package/lib/odspFluidFileLink.d.ts.map +0 -1
  633. package/lib/odspFluidFileLink.js.map +0 -1
  634. package/lib/odspPublicUtils.d.ts.map +0 -1
  635. package/lib/odspPublicUtils.js.map +0 -1
  636. package/lib/odspSnapshotParser.d.ts.map +0 -1
  637. package/lib/odspSnapshotParser.js.map +0 -1
  638. package/lib/odspSummaryUploadManager.d.ts.map +0 -1
  639. package/lib/odspSummaryUploadManager.js.map +0 -1
  640. package/lib/odspUrlHelper.d.ts.map +0 -1
  641. package/lib/odspUrlHelper.js.map +0 -1
  642. package/lib/odspUtils.d.ts.map +0 -1
  643. package/lib/odspUtils.js.map +0 -1
  644. package/lib/opsCaching.d.ts.map +0 -1
  645. package/lib/opsCaching.js.map +0 -1
  646. package/lib/packageVersion.js.map +0 -1
  647. package/lib/prefetchLatestSnapshot.d.ts.map +0 -1
  648. package/lib/prefetchLatestSnapshot.js +0 -53
  649. package/lib/prefetchLatestSnapshot.js.map +0 -1
  650. package/lib/retryErrorsStorageAdapter.d.ts.map +0 -1
  651. package/lib/retryErrorsStorageAdapter.js.map +0 -1
  652. package/lib/retryUtils.d.ts.map +0 -1
  653. package/lib/retryUtils.js.map +0 -1
  654. package/lib/vroom.d.ts.map +0 -1
  655. package/lib/vroom.js.map +0 -1
  656. package/lib/zipItDataRepresentationUtils.d.ts.map +0 -1
  657. package/lib/zipItDataRepresentationUtils.js.map +0 -1
  658. package/src/getSocketIo.ts +0 -14
  659. package/tsconfig.esnext.json +0 -7
  660. /package/lib/{ReadBufferUtils.d.ts → ReadBufferUtils.d.mts} +0 -0
  661. /package/lib/{getUrlAndHeadersWithAuth.d.ts → getUrlAndHeadersWithAuth.d.mts} +0 -0
@@ -2,7 +2,8 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { ReadBuffer } from "./ReadBufferUtils";
5
+ import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
6
+ import { ReadBuffer } from "./ReadBufferUtils.mjs";
6
7
  /**
7
8
  * Control codes used by tree serialization / decentralization code. Same as on server. These can be found on
8
9
  * filestore code on server too at above link.
@@ -51,7 +52,7 @@ export declare enum MarkerCodesEnd {
51
52
  /**
52
53
  * This contains mapping of Marker Codes to number of bytes in which the corresponding data
53
54
  * will be stored.
54
- */
55
+ */
55
56
  export declare const codeToBytesMap: {
56
57
  1: number;
57
58
  2: number;
@@ -80,7 +81,7 @@ export declare const codeToBytesMap: {
80
81
  export declare function getValueSafely(map: {
81
82
  [index: number]: number;
82
83
  }, key: number): number;
83
- export declare function getAndValidateNodeProps(node: NodeCore, props: string[], enforceAllProps?: boolean): Record<string, NodeTypes>;
84
+ export declare function getNodeProps(node: NodeCore): Record<string, NodeTypes>;
84
85
  export declare function iteratePairs<T>(it: IterableIterator<T>): IterableIterator<[T, T]>;
85
86
  /**
86
87
  * Helper function that returns iterator from an object
@@ -95,24 +96,19 @@ export declare function iterate<T>(obj: {
95
96
  * Note: concrete implementations (derived classes) are not exposed from this module
96
97
  */
97
98
  export declare abstract class BlobCore {
98
- readonly constString: boolean;
99
- readonly useUtf8Code: boolean;
100
99
  abstract get buffer(): Uint8Array;
101
- get arrayBuffer(): ArrayBufferLike;
100
+ abstract get arrayBuffer(): ArrayBufferLike;
102
101
  /**
103
102
  * Represents a blob.
104
- * @param constString - Whether it contains const string declaration.
105
- * @param useUtf8Code - Represents if the utf8 string marker code should be used when representing.
106
103
  */
107
- constructor(constString: boolean, useUtf8Code?: boolean);
108
- toString(): string;
104
+ constructor();
109
105
  }
110
106
  /**
111
107
  * Shallow copy blob, keeps a reference to portion of ReadBuffer
112
108
  * it was constructed from. It takes much less memory compared to BlobDeepCopy
113
109
  */
114
110
  export declare class BlobShallowCopy extends BlobCore {
115
- protected data: ReadBuffer;
111
+ protected data: Uint8Array;
116
112
  protected start: number;
117
113
  protected end: number;
118
114
  /**
@@ -120,15 +116,26 @@ export declare class BlobShallowCopy extends BlobCore {
120
116
  * @param data - Data array of the blob
121
117
  * @param start - Start point of the blob in the buffer.
122
118
  * @param end - End point of the blob in the buffer.
123
- * @param constString - Whether it contains const string declaration.
124
119
  */
125
- constructor(data: ReadBuffer, start: number, end: number, constString: boolean);
120
+ constructor(data: Uint8Array, start: number, end: number);
126
121
  get buffer(): Uint8Array;
127
- static read(buffer: ReadBuffer, lengthLen: number, constString: boolean): BlobCore;
122
+ get arrayBuffer(): ArrayBufferLike;
123
+ static read(buffer: ReadBuffer, lengthLen: number): BlobCore;
128
124
  }
129
- export declare const addStringProperty: (node: NodeCore, a: string, b: string, encodeValAsConstString?: boolean) => void;
125
+ export declare const addStringProperty: (node: NodeCore, a: string, b: string) => void;
126
+ export declare const addDictionaryStringProperty: (node: NodeCore, a: string, b: string) => void;
130
127
  export declare const addNumberProperty: (node: NodeCore, a: string, b: number) => void;
131
128
  export declare const addBoolProperty: (node: NodeCore, a: string, b: boolean) => void;
129
+ export interface IStringElement {
130
+ content: string;
131
+ dictionary: boolean;
132
+ _stringElement: true;
133
+ }
134
+ export interface IStringElementInternal extends Omit<IStringElement, "content"> {
135
+ content?: string;
136
+ startPos: number;
137
+ endPos: number;
138
+ }
132
139
  /**
133
140
  * Three leaf types supported by tree:
134
141
  * 1. Node (sub-tree)
@@ -136,8 +143,8 @@ export declare const addBoolProperty: (node: NodeCore, a: string, b: boolean) =>
136
143
  * 3. integer
137
144
  * 4. boolean
138
145
  */
139
- export declare type NodeTypes = NodeCore | BlobCore | number | boolean;
140
- export declare type NodeCoreTypes = "list" | "set";
146
+ export type NodeTypes = NodeCore | BlobCore | number | boolean | IStringElement;
147
+ export type NodeCoreTypes = "list" | "set";
141
148
  /**
142
149
  * Node - node in the tree (non-leaf element of the tree)
143
150
  */
@@ -151,28 +158,48 @@ export declare class NodeCore {
151
158
  get length(): number;
152
159
  get(index: number): NodeTypes;
153
160
  getString(index: number): string;
161
+ getMaybeString(index: number): string | undefined;
154
162
  getBlob(index: number): BlobCore;
155
163
  getNode(index: number): NodeCore;
156
164
  getNumber(index: number): number;
157
165
  getBool(index: number): boolean;
158
166
  addNode(type?: NodeCoreTypes): NodeCore;
159
- addBlob(blob: Uint8Array, constString: boolean, useUtf8Code?: boolean): void;
160
- addString(payload: string, constString: boolean): void;
167
+ addBlob(blob: Uint8Array): void;
168
+ addDictionaryString(payload: string): void;
169
+ addString(payload: string): void;
161
170
  addNumber(payload: number | undefined): void;
162
171
  addBool(payload: boolean): void;
172
+ private static readString;
173
+ /**
174
+ * Load and parse the buffer into a tree.
175
+ * @param buffer - buffer to read from.
176
+ */
177
+ protected load(buffer: ReadBuffer, logger: ITelemetryLoggerExt): {
178
+ durationStructure: number;
179
+ durationStrings: number;
180
+ };
163
181
  /**
164
182
  * Load and parse the buffer into a tree.
165
183
  * @param buffer - buffer to read from.
166
184
  */
167
- protected load(buffer: ReadBuffer, dictionary: BlobCore[]): void;
185
+ protected loadStructure(buffer: ReadBuffer, logger: ITelemetryLoggerExt): IStringElementInternal[];
186
+ private loadStrings;
168
187
  }
169
188
  /**
170
189
  * TreeBuilder - Root of the tree.
171
190
  * Provides loading and serialization capabilities.
172
191
  */
173
192
  export declare class TreeBuilder extends NodeCore {
174
- static load(buffer: ReadBuffer): TreeBuilder;
193
+ static load(buffer: ReadBuffer, logger: ITelemetryLoggerExt): {
194
+ builder: TreeBuilder;
195
+ telemetryProps: {
196
+ durationStructure: number;
197
+ durationStrings: number;
198
+ };
199
+ };
175
200
  }
201
+ export declare function getMaybeStringInstance(node: NodeTypes): string | undefined;
202
+ export declare function getStringInstance(node: NodeTypes, message: string): string;
176
203
  export declare function assertBlobCoreInstance(node: NodeTypes, message: string): asserts node is BlobCore;
177
204
  export declare function assertNodeCoreInstance(node: NodeTypes, message: string): asserts node is NodeCore;
178
205
  export declare function assertNumberInstance(node: NodeTypes, message: string): asserts node is number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zipItDataRepresentationUtils.d.ts","sourceRoot":"","sources":["../src/zipItDataRepresentationUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;OASI,EAAE,mBAAmB,EAAE,MAAM,iCAAiC;OAG9D,EAAE,UAAU,EAAE;AAKrB;;;GAGG;AACH,oBAAY,WAAW;IACtB,QAAQ,KAAK;IACb,SAAS,KAAK;IAEd,WAAW,KAAK;IAChB,aAAa,KAAK;IAClB,cAAc,KAAK;IACnB,cAAc,KAAK;IAEnB,cAAc,KAAK;IACnB,eAAe,KAAK;IACpB,eAAe,KAAK;IACpB,kBAAkB,KAAK;IACvB,qBAAqB,KAAK;IAE1B,IAAI,IAAI;IACR,KAAK,IAAI;IACT,MAAM,IAAI;IACV,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,KAAK,IAAI;IACT,KAAK,IAAI;IACT,KAAK,IAAI;IAET,WAAW,KAAK;IAChB,aAAa,KAAK;IAClB,cAAc,KAAK;IACnB,cAAc,KAAK;IACnB,cAAc,KAAK;CACnB;AAED;;GAEG;AACH,oBAAY,gBAAgB;IAC3B,MAAM,KAAK;IACX,KAAK,KAAK;CACV;AAED;;GAEG;AACH,oBAAY,cAAc;IACzB,MAAM,KAAK;IACX,KAAK,KAAK;CACV;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;CA+B1B,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,UAI3E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,6BAO1C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,4BAgBtD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAAE,uBAE/E;AAED;;;;GAIG;AACH,8BAAsB,QAAQ;IAC7B,aAAoB,MAAM,IAAI,UAAU,CAAC;IACzC,aAAoB,WAAW,IAAI,eAAe,CAAC;IAEnD;;OAEG;;CAEH;AAkCD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAQ3C,SAAS,CAAC,IAAI,EAAE,UAAU;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,GAAG,EAAE,MAAM;IATtB;;;;;OAKG;gBAEQ,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM;IAKtB,IAAW,MAAM,eAEhB;IAGD,IAAW,WAAW,IAAI,eAAe,CAGxC;WAEa,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ;CAMnE;AAED,eAAO,MAAM,iBAAiB,SAAU,QAAQ,KAAK,MAAM,KAAK,MAAM,SAGrE,CAAC;AACF,eAAO,MAAM,2BAA2B,SAAU,QAAQ,KAAK,MAAM,KAAK,MAAM,SAG/E,CAAC;AACF,eAAO,MAAM,iBAAiB,SAAU,QAAQ,KAAK,MAAM,KAAK,MAAM,SAGrE,CAAC;AACF,eAAO,MAAM,eAAe,SAAU,QAAQ,KAAK,MAAM,KAAK,OAAO,SAGpE,CAAC;AAEF,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;AAEhF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C;;GAEG;AACH,qBAAa,QAAQ;IAOD,IAAI,EAAE,aAAa;IALtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,IAAW,KAAK,gBAEf;gBAEkB,IAAI,GAAE,aAAqB;IAEvC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,YAAY;IAKnB,IAAW,MAAM,WAEhB;IAEM,GAAG,CAAC,KAAK,EAAE,MAAM;IAIjB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKhC,cAAc,CAAC,KAAK,EAAE,MAAM;IAK5B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAMhC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAMhC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAMhC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAM/B,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ;IAMvC,OAAO,CAAC,IAAI,EAAE,UAAU;IAIxB,mBAAmB,CAAC,OAAO,EAAE,MAAM;IAQnC,SAAS,CAAC,OAAO,EAAE,MAAM;IAQzB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAMrC,OAAO,CAAC,OAAO,EAAE,OAAO;IAK/B,OAAO,CAAC,MAAM,CAAC,UAAU;IAoBzB;;;OAGG;IACH,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB;;;;IAU9D;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB;IAkGvE,OAAO,CAAC,WAAW;CA+CnB;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACxC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB;;;;;;;CAM3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAK1E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAKjG;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAKjG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAK7F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAK5F"}
@@ -2,15 +2,12 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- /**
6
- * Data representation which is followed(zipIt Protocol) here is described in this document:
7
- * https://microsoft.sharepoint-df.com/:w:/t/ODSPFileStore/ER06b64K_XdDjEyAKl-UT60BJiId39SCVkYSyo_2pvH9gQ?e=KYQ0c5
8
- */
9
- import { assert, IsoBuffer, Uint8ArrayToArrayBuffer, Uint8ArrayToString } from "@fluidframework/common-utils";
5
+ import { Uint8ArrayToArrayBuffer, Uint8ArrayToString } from "@fluid-internal/client-utils";
6
+ import { assert } from "@fluidframework/core-utils";
10
7
  import { NonRetryableError } from "@fluidframework/driver-utils";
11
8
  import { DriverErrorType } from "@fluidframework/driver-definitions";
12
- import { pkgVersion as driverVersion } from "./packageVersion";
13
- // eslint-disable-next-line max-len
9
+ import { pkgVersion as driverVersion } from "./packageVersion.mjs";
10
+ import { measure } from "./odspUtils.mjs";
14
11
  // https://onedrive.visualstudio.com/SharePoint%20Online/_git/SPO?path=/cobalt/Base/Property/BinaryEncodedPropertyReader.cs&version=GBmaster&_a=contents
15
12
  /**
16
13
  * Control codes used by tree serialization / decentralization code. Same as on server. These can be found on
@@ -63,7 +60,7 @@ export var MarkerCodesEnd;
63
60
  /**
64
61
  * This contains mapping of Marker Codes to number of bytes in which the corresponding data
65
62
  * will be stored.
66
- */
63
+ */
67
64
  export const codeToBytesMap = {
68
65
  // Integer code to bytes
69
66
  1: 0,
@@ -97,19 +94,11 @@ export function getValueSafely(map, key) {
97
94
  assert(val !== undefined, 0x287 /* key must exist in the map */);
98
95
  return val;
99
96
  }
100
- export function getAndValidateNodeProps(node, props, enforceAllProps = true) {
101
- const propSet = new Set(props);
97
+ export function getNodeProps(node) {
102
98
  const res = {};
103
99
  for (const [keyNode, valueNode] of node.iteratePairs()) {
104
- assertBlobCoreInstance(keyNode, "keynode should be a blob");
105
- const keyStr = keyNode.toString();
106
- if (propSet.has(keyStr)) {
107
- propSet.delete(keyStr);
108
- res[keyStr] = valueNode;
109
- }
110
- }
111
- if (enforceAllProps) {
112
- assert(propSet.size === 0, 0x288 /* All properties should exist */);
100
+ const id = getStringInstance(keyNode, "keynode should be a string");
101
+ res[id] = valueNode;
113
102
  }
114
103
  return res;
115
104
  }
@@ -124,7 +113,9 @@ export function iteratePairs(it) {
124
113
  assert(b.done !== true, 0x22b /* "Should be a pair" */);
125
114
  return { value: [a.value, b.value], done: b.done };
126
115
  },
127
- [Symbol.iterator]: () => { return res; },
116
+ [Symbol.iterator]: () => {
117
+ return res;
118
+ },
128
119
  };
129
120
  return res;
130
121
  }
@@ -143,46 +134,36 @@ export function iterate(obj) {
143
134
  export class BlobCore {
144
135
  /**
145
136
  * Represents a blob.
146
- * @param constString - Whether it contains const string declaration.
147
- * @param useUtf8Code - Represents if the utf8 string marker code should be used when representing.
148
137
  */
149
- constructor(constString, useUtf8Code = false) {
150
- this.constString = constString;
151
- this.useUtf8Code = useUtf8Code;
152
- }
153
- get arrayBuffer() {
154
- return Uint8ArrayToArrayBuffer(this.buffer);
155
- }
156
- toString() {
157
- return Uint8ArrayToString(this.buffer, "utf-8");
158
- }
138
+ constructor() { }
159
139
  }
160
140
  /**
161
141
  * "deep copy" blob, holds to binary data passed in
162
142
  * It is called deep copy as a counter-part to BlobShallowCopy, which
163
143
  * is a reference to underlying binary stream (ReadBuffer).
164
- */
144
+ */
165
145
  class BlobDeepCopy extends BlobCore {
166
146
  /**
167
147
  * Represents a deep copy of the blob.
168
148
  * @param data - Data array of the blob
169
- * @param constString - Whether it contains const string declaration.
170
- * @param useUtf8Code - Represents if the utf8 string marker code should be used when representing.
171
149
  */
172
- constructor(data, constString, useUtf8Code = false) {
173
- super(constString, useUtf8Code);
150
+ constructor(data) {
151
+ super();
174
152
  this.data = data;
175
153
  }
176
154
  get buffer() {
177
155
  return this.data;
178
156
  }
179
- static read(buffer, lengthLen, constString) {
157
+ get arrayBuffer() {
158
+ return Uint8ArrayToArrayBuffer(this.buffer);
159
+ }
160
+ static read(buffer, lengthLen) {
180
161
  const length = buffer.read(lengthLen);
181
162
  const data = new Uint8Array(length);
182
163
  for (let counter = 0; counter < length; counter++) {
183
164
  data[counter] = buffer.read();
184
165
  }
185
- return new BlobDeepCopy(data, constString);
166
+ return new BlobDeepCopy(data);
186
167
  }
187
168
  }
188
169
  /**
@@ -195,61 +176,76 @@ export class BlobShallowCopy extends BlobCore {
195
176
  * @param data - Data array of the blob
196
177
  * @param start - Start point of the blob in the buffer.
197
178
  * @param end - End point of the blob in the buffer.
198
- * @param constString - Whether it contains const string declaration.
199
179
  */
200
- constructor(data, start, end, constString) {
201
- super(constString);
180
+ constructor(data, start, end) {
181
+ super();
202
182
  this.data = data;
203
183
  this.start = start;
204
184
  this.end = end;
205
185
  }
206
186
  get buffer() {
207
- return this.data.buffer.subarray(this.start, this.end);
187
+ return this.data.subarray(this.start, this.end);
208
188
  }
209
- static read(buffer, lengthLen, constString) {
189
+ // Equivalent to Uint8ArrayToArrayBuffer(this.buffer)
190
+ get arrayBuffer() {
191
+ const offset = this.data.byteOffset;
192
+ return this.data.buffer.slice(this.start + offset, this.end + offset);
193
+ }
194
+ static read(buffer, lengthLen) {
210
195
  const length = buffer.read(lengthLen);
211
196
  const pos = buffer.pos;
212
197
  buffer.skip(length);
213
- return new BlobShallowCopy(buffer, pos, pos + length, constString);
198
+ return new BlobShallowCopy(buffer.buffer, pos, pos + length);
214
199
  }
215
200
  }
216
- export const addStringProperty = (node, a, b, encodeValAsConstString = false) => {
217
- node.addString(a, true);
218
- node.addString(b, encodeValAsConstString);
201
+ export const addStringProperty = (node, a, b) => {
202
+ node.addDictionaryString(a);
203
+ node.addString(b);
204
+ };
205
+ export const addDictionaryStringProperty = (node, a, b) => {
206
+ node.addDictionaryString(a);
207
+ node.addString(b);
219
208
  };
220
209
  export const addNumberProperty = (node, a, b) => {
221
- node.addString(a, true);
210
+ node.addDictionaryString(a);
222
211
  node.addNumber(b);
223
212
  };
224
213
  export const addBoolProperty = (node, a, b) => {
225
- node.addString(a, true);
214
+ node.addDictionaryString(a);
226
215
  node.addBool(b);
227
216
  };
228
217
  /**
229
218
  * Node - node in the tree (non-leaf element of the tree)
230
219
  */
231
220
  export class NodeCore {
221
+ get nodes() {
222
+ return this.children;
223
+ }
232
224
  constructor(type = "set") {
233
225
  this.type = type;
234
226
  // It is an array of nodes.
235
227
  this.children = [];
236
228
  }
237
- get nodes() {
238
- return this.children;
239
- }
240
229
  [Symbol.iterator]() {
241
230
  return this.children[Symbol.iterator]();
242
231
  }
243
232
  iteratePairs() {
244
- assert((this.length % 2) === 0, 0x22c /* "reading pairs" */);
233
+ assert(this.length % 2 === 0, 0x22c /* "reading pairs" */);
245
234
  return iteratePairs(iterate(this));
246
235
  }
247
- get length() { return this.children.length; }
248
- get(index) { return this.children[index]; }
236
+ get length() {
237
+ return this.children.length;
238
+ }
239
+ get(index) {
240
+ return this.children[index];
241
+ }
249
242
  getString(index) {
250
243
  const node = this.children[index];
251
- assertBlobCoreInstance(node, "getString should return stringblob");
252
- return node.toString();
244
+ return getStringInstance(node, "getString should return string");
245
+ }
246
+ getMaybeString(index) {
247
+ const node = this.children[index];
248
+ return getMaybeStringInstance(node);
253
249
  }
254
250
  getBlob(index) {
255
251
  const node = this.children[index];
@@ -276,11 +272,22 @@ export class NodeCore {
276
272
  this.children.push(node);
277
273
  return node;
278
274
  }
279
- addBlob(blob, constString, useUtf8Code = false) {
280
- this.children.push(new BlobDeepCopy(blob, constString, useUtf8Code));
275
+ addBlob(blob) {
276
+ this.children.push(new BlobDeepCopy(blob));
277
+ }
278
+ addDictionaryString(payload) {
279
+ this.children.push({
280
+ content: payload,
281
+ dictionary: true,
282
+ _stringElement: true,
283
+ });
281
284
  }
282
- addString(payload, constString) {
283
- this.addBlob(IsoBuffer.from(payload, "utf-8"), constString, true);
285
+ addString(payload) {
286
+ this.children.push({
287
+ content: payload,
288
+ dictionary: false,
289
+ _stringElement: true,
290
+ });
284
291
  }
285
292
  addNumber(payload) {
286
293
  assert(Number.isInteger(payload), 0x231 /* "Number should be an integer" */);
@@ -290,60 +297,93 @@ export class NodeCore {
290
297
  addBool(payload) {
291
298
  this.children.push(payload);
292
299
  }
300
+ // Can we do more efficiently here, without extra objects somehow??
301
+ static readString(buffer, code, dictionary) {
302
+ const lengthLen = getValueSafely(codeToBytesMap, code);
303
+ const length = buffer.read(lengthLen);
304
+ const startPos = buffer.pos;
305
+ buffer.skip(length);
306
+ const result = {
307
+ // Note: Setting here property 'content: undefined' makes code substantially slower!
308
+ dictionary,
309
+ _stringElement: true,
310
+ startPos,
311
+ endPos: buffer.pos,
312
+ };
313
+ // We are lying here in terms of presence of `content` property.
314
+ // This will be addressed at the bottom of NodeCore.load() by resolving all strings at once!
315
+ // It's equivalent (but much slower!) to do it here via
316
+ // result.content = Uint8ArrayToString(buffer.buffer.subarray(startPos, buffer.pos), "utf-8");
317
+ return result;
318
+ }
319
+ /**
320
+ * Load and parse the buffer into a tree.
321
+ * @param buffer - buffer to read from.
322
+ */
323
+ load(buffer, logger) {
324
+ const [stringsToResolve, durationStructure] = measure(() => this.loadStructure(buffer, logger));
325
+ const [, durationStrings] = measure(() => this.loadStrings(buffer, stringsToResolve, logger));
326
+ return { durationStructure, durationStrings };
327
+ }
293
328
  /**
294
329
  * Load and parse the buffer into a tree.
295
330
  * @param buffer - buffer to read from.
296
331
  */
297
- load(buffer, dictionary) {
332
+ loadStructure(buffer, logger) {
333
+ const stack = [];
334
+ const stringsToResolve = [];
335
+ const dictionary = [];
336
+ let children = this.children;
298
337
  for (; !buffer.eof;) {
299
- let childValue;
300
338
  const code = buffer.read();
301
339
  switch (code) {
302
340
  case MarkerCodesStart.list:
303
341
  case MarkerCodesStart.set: {
304
- childValue = new NodeCore(code === MarkerCodesStart.set ? "set" : "list");
305
- this.children.push(childValue);
306
- childValue.load(buffer, dictionary);
307
- break;
342
+ const childValue = new NodeCore(code === MarkerCodesStart.set ? "set" : "list");
343
+ children.push(childValue);
344
+ stack.push(children);
345
+ children = childValue.children;
346
+ continue;
308
347
  }
309
348
  case MarkerCodes.ConstStringDeclare:
310
- case MarkerCodes.ConstStringDeclareBig:
311
- {
312
- const stringId = buffer.read(getValueSafely(codeToBytesMap, code));
313
- const constString = BlobShallowCopy.read(buffer, getValueSafely(codeToBytesMap, code), true);
314
- dictionary[stringId] = constString;
315
- break;
316
- }
349
+ case MarkerCodes.ConstStringDeclareBig: {
350
+ const stringId = buffer.read(getValueSafely(codeToBytesMap, code));
351
+ const constString = NodeCore.readString(buffer, code, true /* dictionary */);
352
+ stringsToResolve.push(constString);
353
+ dictionary[stringId] = constString;
354
+ continue;
355
+ }
317
356
  case MarkerCodes.ConstString8Id:
318
357
  case MarkerCodes.ConstString16Id:
319
- case MarkerCodes.ConstString32Id:
320
- {
321
- const stringId = buffer.read(getValueSafely(codeToBytesMap, code));
322
- childValue = dictionary[stringId];
323
- this.children.push(childValue);
324
- break;
325
- }
358
+ case MarkerCodes.ConstString32Id: {
359
+ const stringId = buffer.read(getValueSafely(codeToBytesMap, code));
360
+ const content = dictionary[stringId];
361
+ assert(content !== undefined, 0x3de /* const string not found */);
362
+ children.push(content);
363
+ continue;
364
+ }
326
365
  case MarkerCodes.StringEmpty:
327
366
  case MarkerCodes.String8Length:
328
367
  case MarkerCodes.String16Length:
329
- case MarkerCodes.String32Length:
368
+ case MarkerCodes.String32Length: {
369
+ const str = NodeCore.readString(buffer, code, false /* dictionary */);
370
+ stringsToResolve.push(str);
371
+ children.push(str);
372
+ continue;
373
+ }
330
374
  case MarkerCodes.BinaryEmpty:
331
375
  case MarkerCodes.BinarySingle8:
332
376
  case MarkerCodes.BinarySingle16:
333
377
  case MarkerCodes.BinarySingle32:
334
- case MarkerCodes.BinarySingle64:
335
- {
336
- childValue = BlobShallowCopy.read(buffer, getValueSafely(codeToBytesMap, code), false);
337
- this.children.push(childValue);
338
- break;
339
- }
378
+ case MarkerCodes.BinarySingle64: {
379
+ children.push(BlobShallowCopy.read(buffer, getValueSafely(codeToBytesMap, code)));
380
+ continue;
381
+ }
340
382
  // If integer is 0.
341
- case MarkerCodes.Int0:
342
- {
343
- childValue = 0;
344
- this.children.push(childValue);
345
- break;
346
- }
383
+ case MarkerCodes.Int0: {
384
+ children.push(0);
385
+ continue;
386
+ }
347
387
  case MarkerCodes.UInt8:
348
388
  case MarkerCodes.UInt16:
349
389
  case MarkerCodes.UInt32:
@@ -351,25 +391,72 @@ export class NodeCore {
351
391
  case MarkerCodes.Int8:
352
392
  case MarkerCodes.Int16:
353
393
  case MarkerCodes.Int32:
354
- case MarkerCodes.Int64:
355
- {
356
- childValue = buffer.read(getValueSafely(codeToBytesMap, code));
357
- this.children.push(childValue);
358
- break;
359
- }
394
+ case MarkerCodes.Int64: {
395
+ children.push(buffer.read(getValueSafely(codeToBytesMap, code)));
396
+ continue;
397
+ }
360
398
  case MarkerCodes.BoolTrue:
361
- this.children.push(true);
362
- break;
399
+ children.push(true);
400
+ continue;
363
401
  case MarkerCodes.BoolFalse:
364
- this.children.push(false);
365
- break;
402
+ children.push(false);
403
+ continue;
366
404
  case MarkerCodesEnd.list:
367
405
  case MarkerCodesEnd.set:
368
- return;
406
+ // Note: We are not checking that end marker matches start marker.
407
+ // I.e. that we do not have a case where we start a 'list' but end with a 'set'
408
+ // Checking it would require more state tracking that seems not very useful, given
409
+ // our code does not care.
410
+ children = stack.pop();
411
+ // To my surprise, checking children !== undefined adds measurable cost!
412
+ // We will rely on children.push() crashing in case of mismatch, and check below
413
+ // (outside of the loop)
414
+ continue;
369
415
  default:
370
416
  throw new Error(`Invalid code: ${code}`);
371
417
  }
372
418
  }
419
+ // This also ensures that stack.length === 0.
420
+ assert(children === this.children, 0x3e7 /* Unpaired start/end list/set markers! */);
421
+ return stringsToResolve;
422
+ }
423
+ loadStrings(buffer, stringsToResolve, logger) {
424
+ /**
425
+ * Process all the strings at once!
426
+ */
427
+ let length = 0;
428
+ for (const el of stringsToResolve) {
429
+ length += el.endPos - el.startPos + 1;
430
+ }
431
+ const stringBuffer = new Uint8Array(length);
432
+ length = 0;
433
+ const input = buffer.buffer;
434
+ assert(input.byteOffset === 0, 0x3e8 /* code below assumes no offset */);
435
+ for (const el of stringsToResolve) {
436
+ for (let it = el.startPos; it < el.endPos; it++) {
437
+ stringBuffer[length] = input[it];
438
+ length++;
439
+ }
440
+ stringBuffer[length] = 0;
441
+ length++;
442
+ }
443
+ assert(length === stringBuffer.length, 0x418 /* properly encoded */);
444
+ const result = Uint8ArrayToString(stringBuffer, "utf-8").split(String.fromCharCode(0));
445
+ if (result.length === stringsToResolve.length + 1) {
446
+ // All is good, we expect all the cases to get here
447
+ for (let i = 0; i < stringsToResolve.length; i++) {
448
+ stringsToResolve[i].content = result[i];
449
+ }
450
+ }
451
+ else {
452
+ // String content has \0 chars!
453
+ // Recovery code
454
+ logger.sendErrorEvent({ eventName: "StringParsingError" });
455
+ for (const el of stringsToResolve) {
456
+ assert(el.content ===
457
+ Uint8ArrayToString(input.subarray(el.startPos, el.endPos), "utf-8"), 0x3ea /* test */);
458
+ }
459
+ }
373
460
  }
374
461
  }
375
462
  /**
@@ -377,14 +464,26 @@ export class NodeCore {
377
464
  * Provides loading and serialization capabilities.
378
465
  */
379
466
  export class TreeBuilder extends NodeCore {
380
- static load(buffer) {
467
+ static load(buffer, logger) {
381
468
  const builder = new TreeBuilder();
382
- const dictionary = new Array();
383
- builder.load(buffer, dictionary);
469
+ const telemetryProps = builder.load(buffer, logger);
384
470
  assert(buffer.eof, 0x233 /* "Unexpected data at the end of buffer" */);
385
- return builder;
471
+ return { builder, telemetryProps };
386
472
  }
387
473
  }
474
+ export function getMaybeStringInstance(node) {
475
+ const maybeString = node;
476
+ if (maybeString._stringElement) {
477
+ return maybeString.content;
478
+ }
479
+ }
480
+ export function getStringInstance(node, message) {
481
+ const maybeString = node;
482
+ if (maybeString._stringElement) {
483
+ return maybeString.content;
484
+ }
485
+ throwBufferParseException(node, "BlobCore", message);
486
+ }
388
487
  export function assertBlobCoreInstance(node, message) {
389
488
  if (node instanceof BlobCore) {
390
489
  return;
@@ -429,6 +528,9 @@ function getNodeType(value) {
429
528
  else if (typeof value === "boolean") {
430
529
  return "Boolean";
431
530
  }
531
+ else if (value._stringElement) {
532
+ return "String";
533
+ }
432
534
  return "UnknownType";
433
535
  }
434
- //# sourceMappingURL=zipItDataRepresentationUtils.js.map
536
+ //# sourceMappingURL=zipItDataRepresentationUtils.mjs.map