@protontech/drive-sdk 0.0.13 → 0.1.1

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 (496) hide show
  1. package/dist/cache/index.d.ts +1 -0
  2. package/dist/cache/index.js +3 -1
  3. package/dist/cache/index.js.map +1 -1
  4. package/dist/cache/memoryCache.d.ts +1 -1
  5. package/dist/cache/memoryCache.js +0 -1
  6. package/dist/cache/memoryCache.js.map +1 -1
  7. package/dist/cache/memoryCache.test.js +2 -4
  8. package/dist/cache/memoryCache.test.js.map +1 -1
  9. package/dist/cache/nullCache.d.ts +14 -0
  10. package/dist/cache/nullCache.js +36 -0
  11. package/dist/cache/nullCache.js.map +1 -0
  12. package/dist/config.d.ts +16 -1
  13. package/dist/config.js +1 -1
  14. package/dist/config.js.map +1 -1
  15. package/dist/crypto/driveCrypto.d.ts +2 -5
  16. package/dist/crypto/driveCrypto.js +7 -12
  17. package/dist/crypto/driveCrypto.js.map +1 -1
  18. package/dist/crypto/driveCrypto.test.js +14 -14
  19. package/dist/crypto/openPGPCrypto.js +5 -3
  20. package/dist/crypto/openPGPCrypto.js.map +1 -1
  21. package/dist/diagnostic/eventsGenerator.d.ts +14 -0
  22. package/dist/diagnostic/eventsGenerator.js +49 -0
  23. package/dist/diagnostic/eventsGenerator.js.map +1 -0
  24. package/dist/diagnostic/httpClient.d.ts +16 -0
  25. package/dist/diagnostic/httpClient.js +81 -0
  26. package/dist/diagnostic/httpClient.js.map +1 -0
  27. package/dist/diagnostic/index.d.ts +10 -0
  28. package/dist/diagnostic/index.js +35 -0
  29. package/dist/diagnostic/index.js.map +1 -0
  30. package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
  31. package/dist/diagnostic/integrityVerificationStream.js +56 -0
  32. package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
  33. package/dist/diagnostic/interface.d.ts +102 -0
  34. package/dist/diagnostic/interface.js +3 -0
  35. package/dist/diagnostic/interface.js.map +1 -0
  36. package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
  37. package/dist/diagnostic/sdkDiagnostic.js +222 -0
  38. package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
  39. package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
  40. package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
  41. package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
  42. package/dist/diagnostic/telemetry.d.ts +25 -0
  43. package/dist/diagnostic/telemetry.js +70 -0
  44. package/dist/diagnostic/telemetry.js.map +1 -0
  45. package/dist/diagnostic/zipGenerators.d.ts +9 -0
  46. package/dist/diagnostic/zipGenerators.js +64 -0
  47. package/dist/diagnostic/zipGenerators.js.map +1 -0
  48. package/dist/diagnostic/zipGenerators.test.js +144 -0
  49. package/dist/diagnostic/zipGenerators.test.js.map +1 -0
  50. package/dist/errors.d.ts +2 -1
  51. package/dist/errors.js +3 -1
  52. package/dist/errors.js.map +1 -1
  53. package/dist/interface/config.d.ts +26 -0
  54. package/dist/interface/config.js +3 -0
  55. package/dist/interface/config.js.map +1 -0
  56. package/dist/interface/download.d.ts +2 -2
  57. package/dist/interface/events.d.ts +58 -20
  58. package/dist/interface/events.js +11 -1
  59. package/dist/interface/events.js.map +1 -1
  60. package/dist/interface/httpClient.d.ts +0 -14
  61. package/dist/interface/index.d.ts +11 -7
  62. package/dist/interface/index.js +2 -2
  63. package/dist/interface/index.js.map +1 -1
  64. package/dist/interface/nodes.d.ts +9 -0
  65. package/dist/interface/nodes.js.map +1 -1
  66. package/dist/interface/result.js.map +1 -1
  67. package/dist/interface/sharing.d.ts +2 -0
  68. package/dist/interface/sharing.js.map +1 -1
  69. package/dist/interface/telemetry.js +0 -8
  70. package/dist/interface/telemetry.js.map +1 -1
  71. package/dist/interface/thumbnail.js.map +1 -1
  72. package/dist/interface/upload.d.ts +7 -1
  73. package/dist/internal/apiService/apiService.d.ts +1 -1
  74. package/dist/internal/apiService/apiService.js +7 -11
  75. package/dist/internal/apiService/apiService.js.map +1 -1
  76. package/dist/internal/apiService/apiService.test.js +55 -48
  77. package/dist/internal/apiService/apiService.test.js.map +1 -1
  78. package/dist/internal/apiService/coreTypes.d.ts +2356 -2356
  79. package/dist/internal/apiService/driveTypes.d.ts +1680 -1680
  80. package/dist/internal/apiService/errors.js +14 -8
  81. package/dist/internal/apiService/errors.js.map +1 -1
  82. package/dist/internal/apiService/errors.test.js +17 -12
  83. package/dist/internal/apiService/errors.test.js.map +1 -1
  84. package/dist/internal/apiService/transformers.d.ts +1 -1
  85. package/dist/internal/apiService/transformers.js +1 -1
  86. package/dist/internal/asyncIteratorMap.test.js +2 -2
  87. package/dist/internal/asyncIteratorMap.test.js.map +1 -1
  88. package/dist/internal/asyncIteratorRace.d.ts +13 -0
  89. package/dist/internal/asyncIteratorRace.js +59 -0
  90. package/dist/internal/asyncIteratorRace.js.map +1 -0
  91. package/dist/internal/asyncIteratorRace.test.d.ts +1 -0
  92. package/dist/internal/asyncIteratorRace.test.js +119 -0
  93. package/dist/internal/asyncIteratorRace.test.js.map +1 -0
  94. package/dist/internal/batch.d.ts +1 -0
  95. package/dist/internal/batch.js +12 -0
  96. package/dist/internal/batch.js.map +1 -0
  97. package/dist/internal/batch.test.d.ts +1 -0
  98. package/dist/internal/batch.test.js +41 -0
  99. package/dist/internal/batch.test.js.map +1 -0
  100. package/dist/internal/batchLoading.js.map +1 -1
  101. package/dist/internal/batchLoading.test.js +13 -13
  102. package/dist/internal/batchLoading.test.js.map +1 -1
  103. package/dist/internal/devices/apiService.d.ts +3 -3
  104. package/dist/internal/devices/apiService.js +2 -2
  105. package/dist/internal/devices/apiService.js.map +1 -1
  106. package/dist/internal/devices/cryptoService.js +1 -2
  107. package/dist/internal/devices/cryptoService.js.map +1 -1
  108. package/dist/internal/devices/index.d.ts +5 -5
  109. package/dist/internal/devices/index.js.map +1 -1
  110. package/dist/internal/devices/interface.d.ts +3 -3
  111. package/dist/internal/devices/manager.js +2 -2
  112. package/dist/internal/devices/manager.js.map +1 -1
  113. package/dist/internal/devices/manager.test.js +38 -7
  114. package/dist/internal/devices/manager.test.js.map +1 -1
  115. package/dist/internal/download/apiService.d.ts +4 -4
  116. package/dist/internal/download/apiService.js +32 -32
  117. package/dist/internal/download/apiService.js.map +1 -1
  118. package/dist/internal/download/cryptoService.d.ts +4 -4
  119. package/dist/internal/download/cryptoService.js +6 -5
  120. package/dist/internal/download/cryptoService.js.map +1 -1
  121. package/dist/internal/download/fileDownloader.d.ts +6 -6
  122. package/dist/internal/download/fileDownloader.js +3 -2
  123. package/dist/internal/download/fileDownloader.js.map +1 -1
  124. package/dist/internal/download/fileDownloader.test.js +1 -1
  125. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  126. package/dist/internal/download/index.d.ts +5 -5
  127. package/dist/internal/download/index.js +5 -5
  128. package/dist/internal/download/index.js.map +1 -1
  129. package/dist/internal/download/interface.d.ts +3 -4
  130. package/dist/internal/download/telemetry.d.ts +3 -3
  131. package/dist/internal/download/telemetry.js +4 -2
  132. package/dist/internal/download/telemetry.js.map +1 -1
  133. package/dist/internal/download/telemetry.test.js +8 -8
  134. package/dist/internal/download/telemetry.test.js.map +1 -1
  135. package/dist/internal/download/thumbnailDownloader.d.ts +4 -4
  136. package/dist/internal/download/thumbnailDownloader.js +6 -6
  137. package/dist/internal/download/thumbnailDownloader.js.map +1 -1
  138. package/dist/internal/download/thumbnailDownloader.test.js.map +1 -1
  139. package/dist/internal/errors.d.ts +1 -1
  140. package/dist/internal/errors.js +1 -3
  141. package/dist/internal/errors.js.map +1 -1
  142. package/dist/internal/events/apiService.d.ts +5 -7
  143. package/dist/internal/events/apiService.js +19 -22
  144. package/dist/internal/events/apiService.js.map +1 -1
  145. package/dist/internal/events/coreEventManager.d.ts +9 -12
  146. package/dist/internal/events/coreEventManager.js +19 -36
  147. package/dist/internal/events/coreEventManager.js.map +1 -1
  148. package/dist/internal/events/coreEventManager.test.d.ts +1 -0
  149. package/dist/internal/events/coreEventManager.test.js +87 -0
  150. package/dist/internal/events/coreEventManager.test.js.map +1 -0
  151. package/dist/internal/events/eventManager.d.ts +11 -36
  152. package/dist/internal/events/eventManager.js +59 -106
  153. package/dist/internal/events/eventManager.js.map +1 -1
  154. package/dist/internal/events/eventManager.test.js +177 -83
  155. package/dist/internal/events/eventManager.test.js.map +1 -1
  156. package/dist/internal/events/index.d.ts +16 -36
  157. package/dist/internal/events/index.js +56 -72
  158. package/dist/internal/events/index.js.map +1 -1
  159. package/dist/internal/events/interface.d.ts +59 -14
  160. package/dist/internal/events/interface.js +12 -3
  161. package/dist/internal/events/interface.js.map +1 -1
  162. package/dist/internal/events/volumeEventManager.d.ts +9 -19
  163. package/dist/internal/events/volumeEventManager.js +58 -45
  164. package/dist/internal/events/volumeEventManager.js.map +1 -1
  165. package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
  166. package/dist/internal/events/volumeEventManager.test.js +203 -0
  167. package/dist/internal/events/volumeEventManager.test.js.map +1 -0
  168. package/dist/internal/nodes/apiService.d.ts +4 -3
  169. package/dist/internal/nodes/apiService.js +36 -15
  170. package/dist/internal/nodes/apiService.js.map +1 -1
  171. package/dist/internal/nodes/apiService.test.js +60 -41
  172. package/dist/internal/nodes/apiService.test.js.map +1 -1
  173. package/dist/internal/nodes/cache.d.ts +14 -5
  174. package/dist/internal/nodes/cache.js +31 -7
  175. package/dist/internal/nodes/cache.js.map +1 -1
  176. package/dist/internal/nodes/cache.test.js +31 -9
  177. package/dist/internal/nodes/cache.test.js.map +1 -1
  178. package/dist/internal/nodes/cryptoCache.d.ts +2 -2
  179. package/dist/internal/nodes/cryptoCache.js.map +1 -1
  180. package/dist/internal/nodes/cryptoCache.test.js +24 -4
  181. package/dist/internal/nodes/cryptoCache.test.js.map +1 -1
  182. package/dist/internal/nodes/cryptoService.d.ts +4 -4
  183. package/dist/internal/nodes/cryptoService.js +11 -17
  184. package/dist/internal/nodes/cryptoService.js.map +1 -1
  185. package/dist/internal/nodes/cryptoService.test.js +320 -241
  186. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  187. package/dist/internal/nodes/events.d.ts +8 -84
  188. package/dist/internal/nodes/events.js +43 -217
  189. package/dist/internal/nodes/events.js.map +1 -1
  190. package/dist/internal/nodes/events.test.js +35 -279
  191. package/dist/internal/nodes/events.test.js.map +1 -1
  192. package/dist/internal/nodes/extendedAttributes.d.ts +1 -1
  193. package/dist/internal/nodes/extendedAttributes.js +3 -1
  194. package/dist/internal/nodes/extendedAttributes.js.map +1 -1
  195. package/dist/internal/nodes/extendedAttributes.test.js +7 -10
  196. package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
  197. package/dist/internal/nodes/index.d.ts +12 -13
  198. package/dist/internal/nodes/index.js +5 -5
  199. package/dist/internal/nodes/index.js.map +1 -1
  200. package/dist/internal/nodes/index.test.js +24 -32
  201. package/dist/internal/nodes/index.test.js.map +1 -1
  202. package/dist/internal/nodes/interface.d.ts +2 -2
  203. package/dist/internal/nodes/nodesAccess.d.ts +22 -7
  204. package/dist/internal/nodes/nodesAccess.js +65 -16
  205. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  206. package/dist/internal/nodes/nodesAccess.test.js +165 -101
  207. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  208. package/dist/internal/nodes/nodesManagement.d.ts +7 -9
  209. package/dist/internal/nodes/nodesManagement.js +21 -33
  210. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  211. package/dist/internal/nodes/nodesManagement.test.js +42 -21
  212. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  213. package/dist/internal/nodes/nodesRevisions.d.ts +4 -4
  214. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  215. package/dist/internal/photos/albums.d.ts +3 -3
  216. package/dist/internal/photos/albums.js.map +1 -1
  217. package/dist/internal/photos/apiService.d.ts +1 -1
  218. package/dist/internal/photos/apiService.js +3 -6
  219. package/dist/internal/photos/apiService.js.map +1 -1
  220. package/dist/internal/photos/cache.d.ts +1 -1
  221. package/dist/internal/photos/index.d.ts +5 -5
  222. package/dist/internal/photos/index.js.map +1 -1
  223. package/dist/internal/photos/interface.d.ts +2 -2
  224. package/dist/internal/photos/photosTimeline.d.ts +3 -3
  225. package/dist/internal/photos/photosTimeline.js +1 -2
  226. package/dist/internal/photos/photosTimeline.js.map +1 -1
  227. package/dist/internal/sdkEvents.d.ts +1 -1
  228. package/dist/internal/sdkEvents.js +2 -7
  229. package/dist/internal/sdkEvents.js.map +1 -1
  230. package/dist/internal/sdkEvents.test.js +8 -8
  231. package/dist/internal/shares/apiService.d.ts +2 -2
  232. package/dist/internal/shares/apiService.js +5 -3
  233. package/dist/internal/shares/apiService.js.map +1 -1
  234. package/dist/internal/shares/cache.d.ts +4 -2
  235. package/dist/internal/shares/cache.js +14 -6
  236. package/dist/internal/shares/cache.js.map +1 -1
  237. package/dist/internal/shares/cache.test.js.map +1 -1
  238. package/dist/internal/shares/cryptoCache.d.ts +2 -2
  239. package/dist/internal/shares/cryptoCache.test.js +8 -2
  240. package/dist/internal/shares/cryptoCache.test.js.map +1 -1
  241. package/dist/internal/shares/cryptoService.d.ts +3 -3
  242. package/dist/internal/shares/cryptoService.js.map +1 -1
  243. package/dist/internal/shares/cryptoService.test.js +42 -42
  244. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  245. package/dist/internal/shares/index.d.ts +4 -4
  246. package/dist/internal/shares/index.js.map +1 -1
  247. package/dist/internal/shares/interface.d.ts +2 -2
  248. package/dist/internal/shares/manager.d.ts +8 -7
  249. package/dist/internal/shares/manager.js +3 -0
  250. package/dist/internal/shares/manager.js.map +1 -1
  251. package/dist/internal/shares/manager.test.js +71 -63
  252. package/dist/internal/shares/manager.test.js.map +1 -1
  253. package/dist/internal/sharing/apiService.d.ts +4 -4
  254. package/dist/internal/sharing/apiService.js +5 -3
  255. package/dist/internal/sharing/apiService.js.map +1 -1
  256. package/dist/internal/sharing/cache.d.ts +1 -1
  257. package/dist/internal/sharing/cache.test.js +33 -33
  258. package/dist/internal/sharing/cryptoService.d.ts +3 -3
  259. package/dist/internal/sharing/cryptoService.js +3 -4
  260. package/dist/internal/sharing/cryptoService.js.map +1 -1
  261. package/dist/internal/sharing/cryptoService.test.js +39 -39
  262. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  263. package/dist/internal/sharing/events.d.ts +24 -56
  264. package/dist/internal/sharing/events.js +45 -138
  265. package/dist/internal/sharing/events.js.map +1 -1
  266. package/dist/internal/sharing/events.test.js +85 -189
  267. package/dist/internal/sharing/events.test.js.map +1 -1
  268. package/dist/internal/sharing/index.d.ts +8 -9
  269. package/dist/internal/sharing/index.js +5 -5
  270. package/dist/internal/sharing/index.js.map +1 -1
  271. package/dist/internal/sharing/interface.d.ts +8 -4
  272. package/dist/internal/sharing/sharingAccess.d.ts +6 -6
  273. package/dist/internal/sharing/sharingAccess.js +8 -4
  274. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  275. package/dist/internal/sharing/sharingAccess.test.js +45 -39
  276. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  277. package/dist/internal/sharing/sharingManagement.d.ts +5 -6
  278. package/dist/internal/sharing/sharingManagement.js +12 -16
  279. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  280. package/dist/internal/sharing/sharingManagement.test.js +305 -286
  281. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  282. package/dist/internal/uids.js.map +1 -1
  283. package/dist/internal/upload/apiService.d.ts +5 -6
  284. package/dist/internal/upload/apiService.js +8 -5
  285. package/dist/internal/upload/apiService.js.map +1 -1
  286. package/dist/internal/upload/blockVerifier.d.ts +3 -3
  287. package/dist/internal/upload/blockVerifier.js +1 -1
  288. package/dist/internal/upload/blockVerifier.js.map +1 -1
  289. package/dist/internal/upload/chunkStreamReader.test.js +6 -6
  290. package/dist/internal/upload/cryptoService.d.ts +4 -4
  291. package/dist/internal/upload/cryptoService.js +4 -4
  292. package/dist/internal/upload/cryptoService.js.map +1 -1
  293. package/dist/internal/upload/digests.js.map +1 -1
  294. package/dist/internal/upload/fileUploader.d.ts +6 -6
  295. package/dist/internal/upload/fileUploader.js.map +1 -1
  296. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  297. package/dist/internal/upload/index.d.ts +6 -6
  298. package/dist/internal/upload/index.js +3 -3
  299. package/dist/internal/upload/index.js.map +1 -1
  300. package/dist/internal/upload/interface.d.ts +5 -3
  301. package/dist/internal/upload/manager.d.ts +8 -8
  302. package/dist/internal/upload/manager.js +23 -52
  303. package/dist/internal/upload/manager.js.map +1 -1
  304. package/dist/internal/upload/manager.test.js +185 -147
  305. package/dist/internal/upload/manager.test.js.map +1 -1
  306. package/dist/internal/upload/streamUploader.d.ts +6 -6
  307. package/dist/internal/upload/streamUploader.js +9 -8
  308. package/dist/internal/upload/streamUploader.js.map +1 -1
  309. package/dist/internal/upload/streamUploader.test.js +17 -12
  310. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  311. package/dist/internal/upload/telemetry.d.ts +3 -3
  312. package/dist/internal/upload/telemetry.js +5 -3
  313. package/dist/internal/upload/telemetry.js.map +1 -1
  314. package/dist/internal/upload/telemetry.test.js +8 -8
  315. package/dist/internal/upload/telemetry.test.js.map +1 -1
  316. package/dist/protonDriveClient.d.ts +27 -170
  317. package/dist/protonDriveClient.js +37 -198
  318. package/dist/protonDriveClient.js.map +1 -1
  319. package/dist/protonDrivePhotosClient.js +3 -2
  320. package/dist/protonDrivePhotosClient.js.map +1 -1
  321. package/dist/telemetry.js +18 -15
  322. package/dist/telemetry.js.map +1 -1
  323. package/dist/tests/logger.js.map +1 -1
  324. package/dist/tests/telemetry.d.ts +1 -1
  325. package/dist/transformers.js +4 -2
  326. package/dist/transformers.js.map +1 -1
  327. package/package.json +3 -3
  328. package/src/cache/index.ts +1 -0
  329. package/src/cache/interface.ts +22 -22
  330. package/src/cache/memoryCache.test.ts +7 -7
  331. package/src/cache/memoryCache.ts +5 -5
  332. package/src/cache/nullCache.ts +38 -0
  333. package/src/config.ts +17 -2
  334. package/src/crypto/driveCrypto.test.ts +15 -15
  335. package/src/crypto/driveCrypto.ts +120 -156
  336. package/src/crypto/hmac.ts +1 -1
  337. package/src/crypto/interface.ts +63 -72
  338. package/src/crypto/openPGPCrypto.ts +76 -94
  339. package/src/crypto/utils.ts +1 -1
  340. package/src/diagnostic/eventsGenerator.ts +48 -0
  341. package/src/diagnostic/httpClient.ts +84 -0
  342. package/src/diagnostic/index.ts +40 -0
  343. package/src/diagnostic/integrityVerificationStream.ts +55 -0
  344. package/src/diagnostic/interface.ts +158 -0
  345. package/src/diagnostic/sdkDiagnostic.ts +249 -0
  346. package/src/diagnostic/sdkDiagnosticFull.ts +37 -0
  347. package/src/diagnostic/telemetry.ts +74 -0
  348. package/src/diagnostic/zipGenerators.test.ts +177 -0
  349. package/src/diagnostic/zipGenerators.ts +70 -0
  350. package/src/errors.ts +25 -22
  351. package/src/index.ts +3 -3
  352. package/src/interface/account.ts +10 -10
  353. package/src/interface/author.ts +6 -6
  354. package/src/interface/config.ts +28 -0
  355. package/src/interface/devices.ts +6 -6
  356. package/src/interface/download.ts +12 -9
  357. package/src/interface/events.ts +76 -25
  358. package/src/interface/httpClient.ts +11 -27
  359. package/src/interface/index.ts +81 -20
  360. package/src/interface/nodes.ts +67 -60
  361. package/src/interface/result.ts +1 -3
  362. package/src/interface/sharing.ts +60 -56
  363. package/src/interface/telemetry.ts +74 -74
  364. package/src/interface/thumbnail.ts +5 -6
  365. package/src/interface/upload.ts +25 -11
  366. package/src/internal/apiService/apiService.test.ts +109 -76
  367. package/src/internal/apiService/apiService.ts +40 -26
  368. package/src/internal/apiService/coreTypes.ts +2474 -2463
  369. package/src/internal/apiService/driveTypes.ts +1868 -1822
  370. package/src/internal/apiService/errorCodes.ts +4 -4
  371. package/src/internal/apiService/errors.test.ts +25 -23
  372. package/src/internal/apiService/errors.ts +15 -9
  373. package/src/internal/apiService/index.ts +1 -1
  374. package/src/internal/apiService/transformers.ts +2 -2
  375. package/src/internal/asyncIteratorMap.test.ts +4 -4
  376. package/src/internal/asyncIteratorMap.ts +1 -1
  377. package/src/internal/asyncIteratorRace.test.ts +149 -0
  378. package/src/internal/asyncIteratorRace.ts +79 -0
  379. package/src/internal/batch.test.ts +50 -0
  380. package/src/internal/batch.ts +9 -0
  381. package/src/internal/batchLoading.test.ts +13 -14
  382. package/src/internal/batchLoading.ts +8 -8
  383. package/src/internal/devices/apiService.ts +58 -51
  384. package/src/internal/devices/cryptoService.ts +22 -17
  385. package/src/internal/devices/index.ts +17 -10
  386. package/src/internal/devices/interface.ts +21 -12
  387. package/src/internal/devices/manager.test.ts +40 -9
  388. package/src/internal/devices/manager.ts +3 -3
  389. package/src/internal/download/apiService.ts +72 -52
  390. package/src/internal/download/cryptoService.ts +34 -18
  391. package/src/internal/download/fileDownloader.test.ts +25 -9
  392. package/src/internal/download/fileDownloader.ts +38 -20
  393. package/src/internal/download/index.ts +19 -19
  394. package/src/internal/download/interface.ts +19 -20
  395. package/src/internal/download/queue.ts +3 -3
  396. package/src/internal/download/telemetry.test.ts +11 -11
  397. package/src/internal/download/telemetry.ts +24 -14
  398. package/src/internal/download/thumbnailDownloader.test.ts +11 -6
  399. package/src/internal/download/thumbnailDownloader.ts +43 -32
  400. package/src/internal/errors.ts +7 -5
  401. package/src/internal/events/apiService.ts +46 -36
  402. package/src/internal/events/coreEventManager.test.ts +101 -0
  403. package/src/internal/events/coreEventManager.ts +26 -48
  404. package/src/internal/events/eventManager.test.ts +211 -93
  405. package/src/internal/events/eventManager.ts +72 -117
  406. package/src/internal/events/index.ts +71 -91
  407. package/src/internal/events/interface.ts +92 -29
  408. package/src/internal/events/volumeEventManager.test.ts +239 -0
  409. package/src/internal/events/volumeEventManager.ts +68 -57
  410. package/src/internal/nodes/apiService.test.ts +197 -147
  411. package/src/internal/nodes/apiService.ts +288 -174
  412. package/src/internal/nodes/cache.test.ts +48 -20
  413. package/src/internal/nodes/cache.ts +79 -45
  414. package/src/internal/nodes/cryptoCache.test.ts +34 -14
  415. package/src/internal/nodes/cryptoCache.ts +10 -5
  416. package/src/internal/nodes/cryptoService.test.ts +492 -351
  417. package/src/internal/nodes/cryptoService.ts +171 -89
  418. package/src/internal/nodes/events.test.ts +48 -344
  419. package/src/internal/nodes/events.ts +48 -254
  420. package/src/internal/nodes/extendedAttributes.test.ts +28 -24
  421. package/src/internal/nodes/extendedAttributes.ts +20 -15
  422. package/src/internal/nodes/index.test.ts +51 -55
  423. package/src/internal/nodes/index.ts +32 -22
  424. package/src/internal/nodes/interface.ts +44 -31
  425. package/src/internal/nodes/nodesAccess.test.ts +237 -130
  426. package/src/internal/nodes/nodesAccess.ts +113 -50
  427. package/src/internal/nodes/nodesManagement.test.ts +64 -39
  428. package/src/internal/nodes/nodesManagement.ts +51 -62
  429. package/src/internal/nodes/nodesRevisions.ts +7 -7
  430. package/src/internal/nodes/validations.ts +2 -2
  431. package/src/internal/photos/albums.ts +5 -5
  432. package/src/internal/photos/apiService.ts +4 -7
  433. package/src/internal/photos/cache.ts +1 -1
  434. package/src/internal/photos/index.ts +8 -8
  435. package/src/internal/photos/interface.ts +2 -2
  436. package/src/internal/photos/photosTimeline.ts +4 -5
  437. package/src/internal/sdkEvents.test.ts +10 -10
  438. package/src/internal/sdkEvents.ts +5 -13
  439. package/src/internal/shares/apiService.ts +44 -33
  440. package/src/internal/shares/cache.test.ts +6 -4
  441. package/src/internal/shares/cache.ts +25 -14
  442. package/src/internal/shares/cryptoCache.test.ts +17 -11
  443. package/src/internal/shares/cryptoCache.ts +4 -4
  444. package/src/internal/shares/cryptoService.test.ts +72 -74
  445. package/src/internal/shares/cryptoService.ts +48 -23
  446. package/src/internal/shares/index.ts +23 -11
  447. package/src/internal/shares/interface.ts +8 -8
  448. package/src/internal/shares/manager.test.ts +88 -80
  449. package/src/internal/shares/manager.ts +27 -23
  450. package/src/internal/sharing/apiService.ts +283 -175
  451. package/src/internal/sharing/cache.test.ts +35 -35
  452. package/src/internal/sharing/cache.ts +3 -3
  453. package/src/internal/sharing/cryptoService.test.ts +58 -46
  454. package/src/internal/sharing/cryptoService.ts +121 -83
  455. package/src/internal/sharing/events.test.ts +97 -207
  456. package/src/internal/sharing/events.ts +46 -157
  457. package/src/internal/sharing/index.ts +24 -16
  458. package/src/internal/sharing/interface.ts +46 -42
  459. package/src/internal/sharing/sharingAccess.test.ts +71 -65
  460. package/src/internal/sharing/sharingAccess.ts +39 -21
  461. package/src/internal/sharing/sharingManagement.test.ts +405 -335
  462. package/src/internal/sharing/sharingManagement.ts +144 -75
  463. package/src/internal/uids.ts +1 -1
  464. package/src/internal/upload/apiService.ts +168 -119
  465. package/src/internal/upload/blockVerifier.ts +8 -6
  466. package/src/internal/upload/chunkStreamReader.test.ts +7 -7
  467. package/src/internal/upload/cryptoService.ts +42 -36
  468. package/src/internal/upload/digests.ts +2 -2
  469. package/src/internal/upload/fileUploader.test.ts +15 -3
  470. package/src/internal/upload/fileUploader.ts +39 -17
  471. package/src/internal/upload/index.ts +17 -18
  472. package/src/internal/upload/interface.ts +79 -77
  473. package/src/internal/upload/manager.test.ts +222 -175
  474. package/src/internal/upload/manager.ts +74 -80
  475. package/src/internal/upload/queue.ts +3 -3
  476. package/src/internal/upload/streamUploader.test.ts +40 -27
  477. package/src/internal/upload/streamUploader.ts +87 -71
  478. package/src/internal/upload/telemetry.test.ts +11 -11
  479. package/src/internal/upload/telemetry.ts +25 -15
  480. package/src/internal/wait.test.ts +1 -1
  481. package/src/internal/wait.ts +3 -3
  482. package/src/protonDriveClient.ts +189 -276
  483. package/src/protonDrivePhotosClient.ts +20 -13
  484. package/src/telemetry.ts +60 -52
  485. package/src/tests/logger.ts +1 -1
  486. package/src/tests/telemetry.ts +2 -2
  487. package/src/transformers.ts +27 -21
  488. package/src/version.ts +0 -1
  489. package/dist/internal/events/cache.d.ts +0 -28
  490. package/dist/internal/events/cache.js +0 -67
  491. package/dist/internal/events/cache.js.map +0 -1
  492. package/dist/internal/events/cache.test.js +0 -43
  493. package/dist/internal/events/cache.test.js.map +0 -1
  494. package/src/internal/events/cache.test.ts +0 -47
  495. package/src/internal/events/cache.ts +0 -80
  496. /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
@@ -1,21 +1,21 @@
1
- import { c } from "ttag";
2
-
3
- import { Thumbnail, Logger, ThumbnailType, UploadMetadata } from "../../interface";
4
- import { IntegrityError } from "../../errors";
5
- import { LoggerWithPrefix } from "../../telemetry";
6
- import { APIHTTPError, HTTPErrorCode, NotFoundAPIError } from "../apiService";
7
- import { getErrorMessage } from "../errors";
8
- import { mergeUint8Arrays } from "../utils";
1
+ import { c } from 'ttag';
2
+
3
+ import { Thumbnail, Logger, ThumbnailType, UploadMetadata } from '../../interface';
4
+ import { IntegrityError } from '../../errors';
5
+ import { LoggerWithPrefix } from '../../telemetry';
6
+ import { APIHTTPError, HTTPErrorCode, NotFoundAPIError } from '../apiService';
7
+ import { getErrorMessage } from '../errors';
8
+ import { mergeUint8Arrays } from '../utils';
9
9
  import { waitForCondition } from '../wait';
10
- import { UploadAPIService } from "./apiService";
11
- import { BlockVerifier } from "./blockVerifier";
10
+ import { UploadAPIService } from './apiService';
11
+ import { BlockVerifier } from './blockVerifier';
12
12
  import { UploadController } from './controller';
13
- import { UploadCryptoService } from "./cryptoService";
14
- import { UploadDigests } from "./digests";
15
- import { NodeRevisionDraft, EncryptedBlock, EncryptedThumbnail, EncryptedBlockMetadata } from "./interface";
13
+ import { UploadCryptoService } from './cryptoService';
14
+ import { UploadDigests } from './digests';
15
+ import { NodeRevisionDraft, EncryptedBlock, EncryptedThumbnail, EncryptedBlockMetadata } from './interface';
16
16
  import { UploadTelemetry } from './telemetry';
17
17
  import { ChunkStreamReader } from './chunkStreamReader';
18
- import { UploadManager } from "./manager";
18
+ import { UploadManager } from './manager';
19
19
 
20
20
  /**
21
21
  * File chunk size in bytes representing the size of each block.
@@ -65,10 +65,13 @@ export class StreamUploader {
65
65
  private encryptedBlocks = new Map<number, EncryptedBlock>();
66
66
  private encryptionFinished = false;
67
67
 
68
- private ongoingUploads = new Map<string, {
69
- uploadPromise: Promise<void>,
70
- encryptedBlock: EncryptedBlock | EncryptedThumbnail,
71
- }>();
68
+ private ongoingUploads = new Map<
69
+ string,
70
+ {
71
+ uploadPromise: Promise<void>;
72
+ encryptedBlock: EncryptedBlock | EncryptedThumbnail;
73
+ }
74
+ >();
72
75
  private uploadedThumbnails: ({ type: ThumbnailType } & EncryptedBlockMetadata)[] = [];
73
76
  private uploadedBlocks: ({ index: number } & EncryptedBlockMetadata)[] = [];
74
77
 
@@ -104,7 +107,11 @@ export class StreamUploader {
104
107
  this.controller = new UploadController();
105
108
  }
106
109
 
107
- async start(stream: ReadableStream, thumbnails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<string> {
110
+ async start(
111
+ stream: ReadableStream,
112
+ thumbnails: Thumbnail[],
113
+ onProgress?: (uploadedBytes: number) => void,
114
+ ): Promise<string> {
108
115
  let failure = false;
109
116
 
110
117
  // File progress is tracked for telemetry - to track at what
@@ -116,7 +123,7 @@ export class StreamUploader {
116
123
  await this.encryptAndUploadBlocks(stream, thumbnails, (uploadedBytes) => {
117
124
  fileProgress += uploadedBytes;
118
125
  onProgress?.(uploadedBytes);
119
- })
126
+ });
120
127
 
121
128
  this.logger.debug(`All blocks uploaded, committing`);
122
129
  await this.commitFile(thumbnails);
@@ -126,7 +133,12 @@ export class StreamUploader {
126
133
  } catch (error: unknown) {
127
134
  failure = true;
128
135
  this.logger.error(`Upload failed`, error);
129
- void this.telemetry.uploadFailed(this.revisionDraft.nodeRevisionUid, error, fileProgress, this.metadata.expectedSize);
136
+ void this.telemetry.uploadFailed(
137
+ this.revisionDraft.nodeRevisionUid,
138
+ error,
139
+ fileProgress,
140
+ this.metadata.expectedSize,
141
+ );
130
142
  throw error;
131
143
  } finally {
132
144
  this.logger.debug(`Upload cleanup`);
@@ -145,7 +157,11 @@ export class StreamUploader {
145
157
  return this.revisionDraft.nodeRevisionUid;
146
158
  }
147
159
 
148
- private async encryptAndUploadBlocks(stream: ReadableStream, thumbnails: Thumbnail[], onProgress?: (uploadedBytes: number) => void) {
160
+ private async encryptAndUploadBlocks(
161
+ stream: ReadableStream,
162
+ thumbnails: Thumbnail[],
163
+ onProgress?: (uploadedBytes: number) => void,
164
+ ) {
149
165
  // We await for the encryption of thumbnails to finish before
150
166
  // starting the upload. This is because we need to request the
151
167
  // upload tokens for the thumbnails with the first blocks.
@@ -198,17 +214,10 @@ export class StreamUploader {
198
214
  const extendedAttributes = {
199
215
  modificationTime: this.metadata.modificationTime,
200
216
  size: this.metadata.expectedSize,
201
- blockSizes: uploadedBlocks.map(block => block.originalSize),
217
+ blockSizes: uploadedBlocks.map((block) => block.originalSize),
202
218
  digests: this.digests.digests(),
203
219
  };
204
- const encryptedSize = uploadedBlocks.reduce((sum, block) => sum + block.encryptedSize, 0);
205
- await this.uploadManager.commitDraft(
206
- this.revisionDraft,
207
- this.manifest,
208
- this.metadata,
209
- extendedAttributes,
210
- encryptedSize,
211
- );
220
+ await this.uploadManager.commitDraft(this.revisionDraft, this.manifest, this.metadata, extendedAttributes);
212
221
  }
213
222
 
214
223
  private async encryptThumbnails(thumbnails: Thumbnail[]) {
@@ -218,7 +227,10 @@ export class StreamUploader {
218
227
 
219
228
  for (const thumbnail of thumbnails) {
220
229
  this.logger.debug(`Encrypting thumbnail ${thumbnail.type}`);
221
- const encryptedThumbnail = await this.cryptoService.encryptThumbnail(this.revisionDraft.nodeKeys, thumbnail);
230
+ const encryptedThumbnail = await this.cryptoService.encryptThumbnail(
231
+ this.revisionDraft.nodeKeys,
232
+ thumbnail,
233
+ );
222
234
  this.encryptedThumbnails.set(thumbnail.type, encryptedThumbnail);
223
235
  }
224
236
  }
@@ -258,7 +270,9 @@ export class StreamUploader {
258
270
  }
259
271
 
260
272
  if (attempt <= MAX_BLOCK_ENCRYPTION_RETRIES) {
261
- this.logger.warn(`Block encryption failed #${attempt}, retrying: ${getErrorMessage(error)}`);
273
+ this.logger.warn(
274
+ `Block encryption failed #${attempt}, retrying: ${getErrorMessage(error)}`,
275
+ );
262
276
  continue;
263
277
  }
264
278
 
@@ -282,18 +296,22 @@ export class StreamUploader {
282
296
  this.revisionDraft.nodeRevisionUid,
283
297
  this.revisionDraft.nodeKeys.signatureAddress.addressId,
284
298
  {
285
- contentBlocks: Array.from(this.encryptedBlocks.values().map(block => ({
286
- index: block.index,
287
- encryptedSize: block.encryptedSize,
288
- hash: block.hash,
289
- armoredSignature: block.armoredSignature,
290
- verificationToken: block.verificationToken,
291
- }))),
292
- thumbnails: Array.from(this.encryptedThumbnails.values().map(block => ({
293
- type: block.type,
294
- encryptedSize: block.encryptedSize,
295
- hash: block.hash,
296
- }))),
299
+ contentBlocks: Array.from(
300
+ this.encryptedBlocks.values().map((block) => ({
301
+ index: block.index,
302
+ encryptedSize: block.encryptedSize,
303
+ hash: block.hash,
304
+ armoredSignature: block.armoredSignature,
305
+ verificationToken: block.verificationToken,
306
+ })),
307
+ ),
308
+ thumbnails: Array.from(
309
+ this.encryptedThumbnails.values().map((block) => ({
310
+ type: block.type,
311
+ encryptedSize: block.encryptedSize,
312
+ hash: block.hash,
313
+ })),
314
+ ),
297
315
  },
298
316
  );
299
317
 
@@ -307,11 +325,7 @@ export class StreamUploader {
307
325
 
308
326
  const uploadKey = `thumbnail:${thumbnailToken.type}`;
309
327
  this.ongoingUploads.set(uploadKey, {
310
- uploadPromise: this.uploadThumbnail(
311
- thumbnailToken,
312
- encryptedThumbnail,
313
- onProgress,
314
- ).finally(() => {
328
+ uploadPromise: this.uploadThumbnail(thumbnailToken, encryptedThumbnail, onProgress).finally(() => {
315
329
  this.ongoingUploads.delete(uploadKey);
316
330
 
317
331
  // Help the garbage collector to clean up the memory.
@@ -331,11 +345,7 @@ export class StreamUploader {
331
345
 
332
346
  const uploadKey = `block:${blockToken.index}`;
333
347
  this.ongoingUploads.set(uploadKey, {
334
- uploadPromise: this.uploadBlock(
335
- blockToken,
336
- encryptedBlock,
337
- onProgress,
338
- ).finally(() => {
348
+ uploadPromise: this.uploadBlock(blockToken, encryptedBlock, onProgress).finally(() => {
339
349
  this.ongoingUploads.delete(uploadKey);
340
350
 
341
351
  // Help the garbage collector to clean up the memory.
@@ -347,11 +357,14 @@ export class StreamUploader {
347
357
  }
348
358
 
349
359
  private async uploadThumbnail(
350
- uploadToken: { bareUrl: string, token: string },
360
+ uploadToken: { bareUrl: string; token: string },
351
361
  encryptedThumbnail: EncryptedThumbnail,
352
362
  onProgress?: (uploadedBytes: number) => void,
353
363
  ) {
354
- const logger = new LoggerWithPrefix(this.logger, `thumbnail type ${encryptedThumbnail.type} to ${uploadToken.token}`);
364
+ const logger = new LoggerWithPrefix(
365
+ this.logger,
366
+ `thumbnail type ${encryptedThumbnail.type} to ${uploadToken.token}`,
367
+ );
355
368
  logger.info(`Upload started`);
356
369
 
357
370
  let blockProgress = 0;
@@ -370,13 +383,13 @@ export class StreamUploader {
370
383
  onProgress?.(uploadedBytes);
371
384
  },
372
385
  this.abortController.signal,
373
- )
386
+ );
374
387
  this.uploadedThumbnails.push({
375
388
  type: encryptedThumbnail.type,
376
389
  hash: encryptedThumbnail.hash,
377
390
  encryptedSize: encryptedThumbnail.encryptedSize,
378
391
  originalSize: encryptedThumbnail.originalSize,
379
- })
392
+ });
380
393
  break;
381
394
  } catch (error: unknown) {
382
395
  if (blockProgress !== 0) {
@@ -409,7 +422,7 @@ export class StreamUploader {
409
422
  }
410
423
 
411
424
  private async uploadBlock(
412
- uploadToken: { index: number, bareUrl: string, token: string },
425
+ uploadToken: { index: number; bareUrl: string; token: string },
413
426
  encryptedBlock: EncryptedBlock,
414
427
  onProgress?: (uploadedBytes: number) => void,
415
428
  ) {
@@ -432,13 +445,13 @@ export class StreamUploader {
432
445
  onProgress?.(uploadedBytes);
433
446
  },
434
447
  this.abortController.signal,
435
- )
448
+ );
436
449
  this.uploadedBlocks.push({
437
450
  index: encryptedBlock.index,
438
451
  hash: encryptedBlock.hash,
439
452
  encryptedSize: encryptedBlock.encryptedSize,
440
453
  originalSize: encryptedBlock.originalSize,
441
- })
454
+ });
442
455
  break;
443
456
  } catch (error: unknown) {
444
457
  if (blockProgress !== 0) {
@@ -448,20 +461,22 @@ export class StreamUploader {
448
461
 
449
462
  if (
450
463
  (error instanceof APIHTTPError && error.statusCode === HTTPErrorCode.NOT_FOUND) ||
451
- (error instanceof NotFoundAPIError)
464
+ error instanceof NotFoundAPIError
452
465
  ) {
453
466
  logger.warn(`Token expired, fetching new token and retrying`);
454
467
  const uploadTokens = await this.apiService.requestBlockUpload(
455
468
  this.revisionDraft.nodeRevisionUid,
456
469
  this.revisionDraft.nodeKeys.signatureAddress.addressId,
457
470
  {
458
- contentBlocks: [{
459
- index: encryptedBlock.index,
460
- encryptedSize: encryptedBlock.encryptedSize,
461
- hash: encryptedBlock.hash,
462
- armoredSignature: encryptedBlock.armoredSignature,
463
- verificationToken: encryptedBlock.verificationToken,
464
- }],
471
+ contentBlocks: [
472
+ {
473
+ index: encryptedBlock.index,
474
+ encryptedSize: encryptedBlock.encryptedSize,
475
+ hash: encryptedBlock.hash,
476
+ armoredSignature: encryptedBlock.armoredSignature,
477
+ verificationToken: encryptedBlock.verificationToken,
478
+ },
479
+ ],
465
480
  },
466
481
  );
467
482
  uploadToken = uploadTokens.blockTokens[0];
@@ -500,7 +515,8 @@ export class StreamUploader {
500
515
  }
501
516
 
502
517
  private verifyIntegrity(thumbnails: Thumbnail[]) {
503
- const expectedBlockCount = Math.ceil(this.metadata.expectedSize / FILE_CHUNK_SIZE) + (thumbnails ? thumbnails?.length : 0);
518
+ const expectedBlockCount =
519
+ Math.ceil(this.metadata.expectedSize / FILE_CHUNK_SIZE) + (thumbnails ? thumbnails?.length : 0);
504
520
  if (this.uploadedBlockCount !== expectedBlockCount) {
505
521
  throw new IntegrityError(c('Error').t`Some file parts failed to upload`, {
506
522
  uploadedBlockCount: this.uploadedBlockCount,
@@ -25,7 +25,7 @@ describe('UploadTelemetry', () => {
25
25
 
26
26
  sharesService = {
27
27
  getVolumeMetricContext: jest.fn().mockResolvedValue('own_volume'),
28
- }
28
+ };
29
29
 
30
30
  uploadTelemetry = new UploadTelemetry(mockTelemetry, sharesService);
31
31
  });
@@ -35,11 +35,11 @@ describe('UploadTelemetry', () => {
35
35
  await uploadTelemetry.uploadInitFailed(parentNodeUid, error, 1000);
36
36
 
37
37
  expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
38
- eventName: "upload",
39
- volumeType: "own_volume",
38
+ eventName: 'upload',
39
+ volumeType: 'own_volume',
40
40
  uploadedSize: 0,
41
41
  expectedSize: 1000,
42
- error: "unknown",
42
+ error: 'unknown',
43
43
  originalError: error,
44
44
  });
45
45
  });
@@ -49,11 +49,11 @@ describe('UploadTelemetry', () => {
49
49
  await uploadTelemetry.uploadFailed(revisionUid, error, 500, 1000);
50
50
 
51
51
  expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
52
- eventName: "upload",
53
- volumeType: "own_volume",
52
+ eventName: 'upload',
53
+ volumeType: 'own_volume',
54
54
  uploadedSize: 500,
55
55
  expectedSize: 1000,
56
- error: "unknown",
56
+ error: 'unknown',
57
57
  originalError: error,
58
58
  });
59
59
  });
@@ -62,8 +62,8 @@ describe('UploadTelemetry', () => {
62
62
  await uploadTelemetry.uploadFinished(revisionUid, 1000);
63
63
 
64
64
  expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
65
- eventName: "upload",
66
- volumeType: "own_volume",
65
+ eventName: 'upload',
66
+ volumeType: 'own_volume',
67
67
  uploadedSize: 1000,
68
68
  expectedSize: 1000,
69
69
  });
@@ -74,7 +74,7 @@ describe('UploadTelemetry', () => {
74
74
  expect(mockTelemetry.logEvent).toHaveBeenCalledWith(
75
75
  expect.objectContaining({
76
76
  error,
77
- })
77
+ }),
78
78
  );
79
79
  };
80
80
 
@@ -130,4 +130,4 @@ describe('UploadTelemetry', () => {
130
130
  verifyErrorCategory('network_error');
131
131
  });
132
132
  });
133
- });
133
+ });
@@ -1,21 +1,24 @@
1
- import { RateLimitedError, ValidationError, IntegrityError } from "../../errors";
2
- import { ProtonDriveTelemetry, MetricsUploadErrorType, Logger } from "../../interface";
3
- import { LoggerWithPrefix } from "../../telemetry";
1
+ import { RateLimitedError, ValidationError, IntegrityError } from '../../errors';
2
+ import { ProtonDriveTelemetry, MetricsUploadErrorType, Logger } from '../../interface';
3
+ import { LoggerWithPrefix } from '../../telemetry';
4
4
  import { APIHTTPError } from '../apiService';
5
- import { splitNodeUid, splitNodeRevisionUid } from "../uids";
6
- import { SharesService } from "./interface";
5
+ import { splitNodeUid, splitNodeRevisionUid } from '../uids';
6
+ import { SharesService } from './interface';
7
7
 
8
8
  export class UploadTelemetry {
9
9
  private logger: Logger;
10
10
 
11
- constructor(private telemetry: ProtonDriveTelemetry, private sharesService: SharesService) {
11
+ constructor(
12
+ private telemetry: ProtonDriveTelemetry,
13
+ private sharesService: SharesService,
14
+ ) {
12
15
  this.telemetry = telemetry;
13
- this.logger = this.telemetry.getLogger("download");
16
+ this.logger = this.telemetry.getLogger('download');
14
17
  this.sharesService = sharesService;
15
18
  }
16
19
 
17
20
  getLoggerForRevision(revisionUid: string) {
18
- const logger = this.telemetry.getLogger("upload");
21
+ const logger = this.telemetry.getLogger('upload');
19
22
  return new LoggerWithPrefix(logger, `revision ${revisionUid}`);
20
23
  }
21
24
 
@@ -70,12 +73,15 @@ export class UploadTelemetry {
70
73
  });
71
74
  }
72
75
 
73
- private async sendTelemetry(volumeId: string, options: {
74
- uploadedSize: number,
75
- expectedSize: number,
76
- error?: MetricsUploadErrorType,
77
- originalError?: unknown,
78
- }) {
76
+ private async sendTelemetry(
77
+ volumeId: string,
78
+ options: {
79
+ uploadedSize: number;
80
+ expectedSize: number;
81
+ error?: MetricsUploadErrorType;
82
+ originalError?: unknown;
83
+ },
84
+ ) {
79
85
  let volumeType;
80
86
  try {
81
87
  volumeType = await this.sharesService.getVolumeMetricContext(volumeId);
@@ -113,7 +119,11 @@ function getErrorCategory(error: unknown): MetricsUploadErrorType | undefined {
113
119
  if (error.name === 'TimeoutError') {
114
120
  return 'server_error';
115
121
  }
116
- if (error.name === 'OfflineError' || error.name === 'NetworkError' || error.message?.toLowerCase() === 'network error') {
122
+ if (
123
+ error.name === 'OfflineError' ||
124
+ error.name === 'NetworkError' ||
125
+ error.message?.toLowerCase() === 'network error'
126
+ ) {
117
127
  return 'network_error';
118
128
  }
119
129
  if (error.name === 'AbortError') {
@@ -1,4 +1,4 @@
1
- import { waitForCondition } from "./wait";
1
+ import { waitForCondition } from './wait';
2
2
 
3
3
  describe('waitForCondition', () => {
4
4
  it('should resolve immediately if condition is met', async () => {
@@ -1,4 +1,4 @@
1
- import { AbortError } from "../errors";
1
+ import { AbortError } from '../errors';
2
2
 
3
3
  const WAIT_TIME = 50;
4
4
 
@@ -17,10 +17,10 @@ export function waitForCondition(callback: () => boolean, signal?: AbortSignal)
17
17
  });
18
18
  }
19
19
 
20
- export async function waitSeconds(seconds: number){
20
+ export async function waitSeconds(seconds: number) {
21
21
  return wait(seconds * 1000);
22
22
  }
23
23
 
24
- export async function wait(miliseconds: number){
24
+ export async function wait(miliseconds: number) {
25
25
  return new Promise<void>((resolve) => setTimeout(resolve, miliseconds));
26
26
  }