@protontech/drive-sdk 0.1.0 → 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 (447) hide show
  1. package/dist/cache/memoryCache.js +0 -1
  2. package/dist/cache/memoryCache.js.map +1 -1
  3. package/dist/cache/memoryCache.test.js +2 -4
  4. package/dist/cache/memoryCache.test.js.map +1 -1
  5. package/dist/cache/nullCache.js +0 -1
  6. package/dist/cache/nullCache.js.map +1 -1
  7. package/dist/crypto/driveCrypto.d.ts +2 -5
  8. package/dist/crypto/driveCrypto.js +7 -12
  9. package/dist/crypto/driveCrypto.js.map +1 -1
  10. package/dist/crypto/driveCrypto.test.js +14 -14
  11. package/dist/crypto/openPGPCrypto.js +3 -3
  12. package/dist/crypto/openPGPCrypto.js.map +1 -1
  13. package/dist/diagnostic/eventsGenerator.js +1 -1
  14. package/dist/diagnostic/eventsGenerator.js.map +1 -1
  15. package/dist/diagnostic/httpClient.d.ts +1 -1
  16. package/dist/diagnostic/httpClient.js.map +1 -1
  17. package/dist/diagnostic/index.d.ts +3 -3
  18. package/dist/diagnostic/index.js.map +1 -1
  19. package/dist/diagnostic/integrityVerificationStream.js +1 -1
  20. package/dist/diagnostic/integrityVerificationStream.js.map +1 -1
  21. package/dist/diagnostic/interface.d.ts +2 -2
  22. package/dist/diagnostic/sdkDiagnostic.d.ts +3 -3
  23. package/dist/diagnostic/sdkDiagnostic.js +8 -2
  24. package/dist/diagnostic/sdkDiagnostic.js.map +1 -1
  25. package/dist/diagnostic/sdkDiagnosticFull.d.ts +4 -4
  26. package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -1
  27. package/dist/diagnostic/telemetry.js.map +1 -1
  28. package/dist/diagnostic/zipGenerators.js +2 -2
  29. package/dist/diagnostic/zipGenerators.js.map +1 -1
  30. package/dist/diagnostic/zipGenerators.test.js +1 -1
  31. package/dist/diagnostic/zipGenerators.test.js.map +1 -1
  32. package/dist/interface/events.d.ts +2 -4
  33. package/dist/interface/events.js.map +1 -1
  34. package/dist/interface/index.d.ts +5 -5
  35. package/dist/interface/index.js +0 -1
  36. package/dist/interface/index.js.map +1 -1
  37. package/dist/interface/result.js.map +1 -1
  38. package/dist/interface/sharing.d.ts +1 -0
  39. package/dist/interface/sharing.js.map +1 -1
  40. package/dist/interface/telemetry.js +0 -8
  41. package/dist/interface/telemetry.js.map +1 -1
  42. package/dist/interface/thumbnail.js.map +1 -1
  43. package/dist/interface/upload.d.ts +1 -1
  44. package/dist/internal/apiService/apiService.d.ts +1 -1
  45. package/dist/internal/apiService/apiService.js +7 -11
  46. package/dist/internal/apiService/apiService.js.map +1 -1
  47. package/dist/internal/apiService/apiService.test.js +55 -48
  48. package/dist/internal/apiService/apiService.test.js.map +1 -1
  49. package/dist/internal/apiService/coreTypes.d.ts +2356 -2356
  50. package/dist/internal/apiService/driveTypes.d.ts +1680 -1680
  51. package/dist/internal/apiService/errors.js +14 -8
  52. package/dist/internal/apiService/errors.js.map +1 -1
  53. package/dist/internal/apiService/errors.test.js +17 -12
  54. package/dist/internal/apiService/errors.test.js.map +1 -1
  55. package/dist/internal/apiService/transformers.d.ts +1 -1
  56. package/dist/internal/apiService/transformers.js +1 -1
  57. package/dist/internal/asyncIteratorMap.test.js +2 -2
  58. package/dist/internal/asyncIteratorMap.test.js.map +1 -1
  59. package/dist/internal/asyncIteratorRace.d.ts +13 -0
  60. package/dist/internal/asyncIteratorRace.js +59 -0
  61. package/dist/internal/asyncIteratorRace.js.map +1 -0
  62. package/dist/internal/asyncIteratorRace.test.d.ts +1 -0
  63. package/dist/internal/asyncIteratorRace.test.js +119 -0
  64. package/dist/internal/asyncIteratorRace.test.js.map +1 -0
  65. package/dist/internal/batch.d.ts +1 -0
  66. package/dist/internal/batch.js +12 -0
  67. package/dist/internal/batch.js.map +1 -0
  68. package/dist/internal/batch.test.d.ts +1 -0
  69. package/dist/internal/batch.test.js +41 -0
  70. package/dist/internal/batch.test.js.map +1 -0
  71. package/dist/internal/batchLoading.js.map +1 -1
  72. package/dist/internal/batchLoading.test.js +13 -13
  73. package/dist/internal/batchLoading.test.js.map +1 -1
  74. package/dist/internal/devices/apiService.d.ts +3 -3
  75. package/dist/internal/devices/apiService.js +2 -2
  76. package/dist/internal/devices/apiService.js.map +1 -1
  77. package/dist/internal/devices/cryptoService.js +1 -2
  78. package/dist/internal/devices/cryptoService.js.map +1 -1
  79. package/dist/internal/devices/index.d.ts +5 -5
  80. package/dist/internal/devices/index.js.map +1 -1
  81. package/dist/internal/devices/interface.d.ts +3 -3
  82. package/dist/internal/devices/manager.js +2 -2
  83. package/dist/internal/devices/manager.js.map +1 -1
  84. package/dist/internal/devices/manager.test.js +38 -7
  85. package/dist/internal/devices/manager.test.js.map +1 -1
  86. package/dist/internal/download/apiService.d.ts +4 -4
  87. package/dist/internal/download/apiService.js +0 -1
  88. package/dist/internal/download/apiService.js.map +1 -1
  89. package/dist/internal/download/cryptoService.d.ts +4 -4
  90. package/dist/internal/download/cryptoService.js +6 -5
  91. package/dist/internal/download/cryptoService.js.map +1 -1
  92. package/dist/internal/download/fileDownloader.d.ts +4 -4
  93. package/dist/internal/download/fileDownloader.js +3 -2
  94. package/dist/internal/download/fileDownloader.js.map +1 -1
  95. package/dist/internal/download/fileDownloader.test.js +1 -1
  96. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  97. package/dist/internal/download/index.d.ts +5 -5
  98. package/dist/internal/download/index.js +5 -5
  99. package/dist/internal/download/index.js.map +1 -1
  100. package/dist/internal/download/interface.d.ts +3 -4
  101. package/dist/internal/download/telemetry.d.ts +3 -3
  102. package/dist/internal/download/telemetry.js +4 -2
  103. package/dist/internal/download/telemetry.js.map +1 -1
  104. package/dist/internal/download/telemetry.test.js +8 -8
  105. package/dist/internal/download/telemetry.test.js.map +1 -1
  106. package/dist/internal/download/thumbnailDownloader.d.ts +4 -4
  107. package/dist/internal/download/thumbnailDownloader.js +6 -6
  108. package/dist/internal/download/thumbnailDownloader.js.map +1 -1
  109. package/dist/internal/download/thumbnailDownloader.test.js.map +1 -1
  110. package/dist/internal/errors.d.ts +1 -1
  111. package/dist/internal/errors.js +1 -3
  112. package/dist/internal/errors.js.map +1 -1
  113. package/dist/internal/events/apiService.d.ts +2 -2
  114. package/dist/internal/events/apiService.js +9 -5
  115. package/dist/internal/events/apiService.js.map +1 -1
  116. package/dist/internal/events/coreEventManager.d.ts +3 -3
  117. package/dist/internal/events/coreEventManager.js.map +1 -1
  118. package/dist/internal/events/coreEventManager.test.js +14 -14
  119. package/dist/internal/events/eventManager.d.ts +1 -1
  120. package/dist/internal/events/eventManager.js +0 -1
  121. package/dist/internal/events/eventManager.js.map +1 -1
  122. package/dist/internal/events/eventManager.test.js +34 -25
  123. package/dist/internal/events/eventManager.test.js.map +1 -1
  124. package/dist/internal/events/index.d.ts +6 -6
  125. package/dist/internal/events/index.js.map +1 -1
  126. package/dist/internal/events/interface.d.ts +1 -1
  127. package/dist/internal/events/interface.js +0 -1
  128. package/dist/internal/events/interface.js.map +1 -1
  129. package/dist/internal/events/volumeEventManager.d.ts +3 -3
  130. package/dist/internal/events/volumeEventManager.js.map +1 -1
  131. package/dist/internal/events/volumeEventManager.test.js +55 -55
  132. package/dist/internal/events/volumeEventManager.test.js.map +1 -1
  133. package/dist/internal/nodes/apiService.d.ts +4 -3
  134. package/dist/internal/nodes/apiService.js +36 -15
  135. package/dist/internal/nodes/apiService.js.map +1 -1
  136. package/dist/internal/nodes/apiService.test.js +60 -41
  137. package/dist/internal/nodes/apiService.test.js.map +1 -1
  138. package/dist/internal/nodes/cache.d.ts +5 -5
  139. package/dist/internal/nodes/cache.js +14 -7
  140. package/dist/internal/nodes/cache.js.map +1 -1
  141. package/dist/internal/nodes/cache.test.js +31 -9
  142. package/dist/internal/nodes/cache.test.js.map +1 -1
  143. package/dist/internal/nodes/cryptoCache.d.ts +2 -2
  144. package/dist/internal/nodes/cryptoCache.js.map +1 -1
  145. package/dist/internal/nodes/cryptoCache.test.js +24 -4
  146. package/dist/internal/nodes/cryptoCache.test.js.map +1 -1
  147. package/dist/internal/nodes/cryptoService.d.ts +3 -3
  148. package/dist/internal/nodes/cryptoService.js +11 -17
  149. package/dist/internal/nodes/cryptoService.js.map +1 -1
  150. package/dist/internal/nodes/cryptoService.test.js +320 -241
  151. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  152. package/dist/internal/nodes/events.d.ts +3 -3
  153. package/dist/internal/nodes/events.js.map +1 -1
  154. package/dist/internal/nodes/events.test.js +27 -21
  155. package/dist/internal/nodes/events.test.js.map +1 -1
  156. package/dist/internal/nodes/extendedAttributes.d.ts +1 -1
  157. package/dist/internal/nodes/extendedAttributes.js +3 -1
  158. package/dist/internal/nodes/extendedAttributes.js.map +1 -1
  159. package/dist/internal/nodes/extendedAttributes.test.js +7 -10
  160. package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
  161. package/dist/internal/nodes/index.d.ts +10 -10
  162. package/dist/internal/nodes/index.js.map +1 -1
  163. package/dist/internal/nodes/index.test.d.ts +1 -0
  164. package/dist/internal/nodes/index.test.js +106 -0
  165. package/dist/internal/nodes/index.test.js.map +1 -0
  166. package/dist/internal/nodes/interface.d.ts +2 -2
  167. package/dist/internal/nodes/nodesAccess.d.ts +7 -7
  168. package/dist/internal/nodes/nodesAccess.js +28 -16
  169. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  170. package/dist/internal/nodes/nodesAccess.test.js +39 -13
  171. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  172. package/dist/internal/nodes/nodesManagement.d.ts +6 -6
  173. package/dist/internal/nodes/nodesManagement.js +9 -7
  174. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  175. package/dist/internal/nodes/nodesManagement.test.js +9 -9
  176. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  177. package/dist/internal/nodes/nodesRevisions.d.ts +4 -4
  178. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  179. package/dist/internal/photos/albums.d.ts +3 -3
  180. package/dist/internal/photos/albums.js.map +1 -1
  181. package/dist/internal/photos/apiService.d.ts +1 -1
  182. package/dist/internal/photos/apiService.js +3 -6
  183. package/dist/internal/photos/apiService.js.map +1 -1
  184. package/dist/internal/photos/cache.d.ts +1 -1
  185. package/dist/internal/photos/index.d.ts +5 -5
  186. package/dist/internal/photos/index.js.map +1 -1
  187. package/dist/internal/photos/interface.d.ts +2 -2
  188. package/dist/internal/photos/photosTimeline.d.ts +3 -3
  189. package/dist/internal/photos/photosTimeline.js +1 -2
  190. package/dist/internal/photos/photosTimeline.js.map +1 -1
  191. package/dist/internal/sdkEvents.d.ts +1 -1
  192. package/dist/internal/sdkEvents.js +2 -7
  193. package/dist/internal/sdkEvents.js.map +1 -1
  194. package/dist/internal/sdkEvents.test.js +8 -8
  195. package/dist/internal/shares/apiService.d.ts +2 -2
  196. package/dist/internal/shares/apiService.js +5 -3
  197. package/dist/internal/shares/apiService.js.map +1 -1
  198. package/dist/internal/shares/cache.d.ts +2 -2
  199. package/dist/internal/shares/cache.js +12 -6
  200. package/dist/internal/shares/cache.js.map +1 -1
  201. package/dist/internal/shares/cache.test.js.map +1 -1
  202. package/dist/internal/shares/cryptoCache.d.ts +2 -2
  203. package/dist/internal/shares/cryptoCache.test.js +8 -2
  204. package/dist/internal/shares/cryptoCache.test.js.map +1 -1
  205. package/dist/internal/shares/cryptoService.d.ts +3 -3
  206. package/dist/internal/shares/cryptoService.js.map +1 -1
  207. package/dist/internal/shares/cryptoService.test.js +42 -42
  208. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  209. package/dist/internal/shares/index.d.ts +4 -4
  210. package/dist/internal/shares/index.js.map +1 -1
  211. package/dist/internal/shares/interface.d.ts +2 -2
  212. package/dist/internal/shares/manager.d.ts +7 -7
  213. package/dist/internal/shares/manager.js.map +1 -1
  214. package/dist/internal/shares/manager.test.js +71 -63
  215. package/dist/internal/shares/manager.test.js.map +1 -1
  216. package/dist/internal/sharing/apiService.d.ts +4 -4
  217. package/dist/internal/sharing/apiService.js +4 -3
  218. package/dist/internal/sharing/apiService.js.map +1 -1
  219. package/dist/internal/sharing/cache.d.ts +1 -1
  220. package/dist/internal/sharing/cache.test.js +33 -33
  221. package/dist/internal/sharing/cryptoService.d.ts +3 -3
  222. package/dist/internal/sharing/cryptoService.js +3 -5
  223. package/dist/internal/sharing/cryptoService.js.map +1 -1
  224. package/dist/internal/sharing/cryptoService.test.js +39 -39
  225. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  226. package/dist/internal/sharing/events.d.ts +4 -4
  227. package/dist/internal/sharing/events.js +0 -1
  228. package/dist/internal/sharing/events.js.map +1 -1
  229. package/dist/internal/sharing/events.test.js +39 -40
  230. package/dist/internal/sharing/events.test.js.map +1 -1
  231. package/dist/internal/sharing/index.d.ts +6 -6
  232. package/dist/internal/sharing/index.js.map +1 -1
  233. package/dist/internal/sharing/interface.d.ts +5 -4
  234. package/dist/internal/sharing/sharingAccess.d.ts +6 -6
  235. package/dist/internal/sharing/sharingAccess.js +8 -4
  236. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  237. package/dist/internal/sharing/sharingAccess.test.js +45 -39
  238. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  239. package/dist/internal/sharing/sharingManagement.d.ts +4 -4
  240. package/dist/internal/sharing/sharingManagement.js +5 -7
  241. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  242. package/dist/internal/sharing/sharingManagement.test.js +297 -248
  243. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  244. package/dist/internal/uids.js.map +1 -1
  245. package/dist/internal/upload/apiService.d.ts +3 -3
  246. package/dist/internal/upload/apiService.js +1 -1
  247. package/dist/internal/upload/apiService.js.map +1 -1
  248. package/dist/internal/upload/blockVerifier.d.ts +3 -3
  249. package/dist/internal/upload/blockVerifier.js +1 -1
  250. package/dist/internal/upload/blockVerifier.js.map +1 -1
  251. package/dist/internal/upload/chunkStreamReader.test.js +6 -6
  252. package/dist/internal/upload/cryptoService.d.ts +4 -4
  253. package/dist/internal/upload/cryptoService.js +4 -4
  254. package/dist/internal/upload/cryptoService.js.map +1 -1
  255. package/dist/internal/upload/digests.js.map +1 -1
  256. package/dist/internal/upload/fileUploader.d.ts +6 -6
  257. package/dist/internal/upload/fileUploader.js.map +1 -1
  258. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  259. package/dist/internal/upload/index.d.ts +5 -5
  260. package/dist/internal/upload/index.js.map +1 -1
  261. package/dist/internal/upload/interface.d.ts +3 -3
  262. package/dist/internal/upload/manager.d.ts +4 -4
  263. package/dist/internal/upload/manager.js +7 -5
  264. package/dist/internal/upload/manager.js.map +1 -1
  265. package/dist/internal/upload/manager.test.js +137 -123
  266. package/dist/internal/upload/manager.test.js.map +1 -1
  267. package/dist/internal/upload/streamUploader.d.ts +6 -6
  268. package/dist/internal/upload/streamUploader.js +8 -6
  269. package/dist/internal/upload/streamUploader.js.map +1 -1
  270. package/dist/internal/upload/streamUploader.test.js +16 -11
  271. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  272. package/dist/internal/upload/telemetry.d.ts +3 -3
  273. package/dist/internal/upload/telemetry.js +5 -3
  274. package/dist/internal/upload/telemetry.js.map +1 -1
  275. package/dist/internal/upload/telemetry.test.js +8 -8
  276. package/dist/internal/upload/telemetry.test.js.map +1 -1
  277. package/dist/protonDriveClient.d.ts +8 -8
  278. package/dist/protonDriveClient.js +12 -9
  279. package/dist/protonDriveClient.js.map +1 -1
  280. package/dist/protonDrivePhotosClient.js.map +1 -1
  281. package/dist/telemetry.js +18 -15
  282. package/dist/telemetry.js.map +1 -1
  283. package/dist/tests/logger.js.map +1 -1
  284. package/dist/tests/telemetry.d.ts +1 -1
  285. package/dist/transformers.js +4 -2
  286. package/dist/transformers.js.map +1 -1
  287. package/package.json +1 -1
  288. package/src/cache/interface.ts +22 -22
  289. package/src/cache/memoryCache.test.ts +7 -7
  290. package/src/cache/memoryCache.ts +4 -4
  291. package/src/cache/nullCache.ts +1 -1
  292. package/src/config.ts +5 -5
  293. package/src/crypto/driveCrypto.test.ts +15 -15
  294. package/src/crypto/driveCrypto.ts +120 -156
  295. package/src/crypto/hmac.ts +1 -1
  296. package/src/crypto/interface.ts +63 -72
  297. package/src/crypto/openPGPCrypto.ts +74 -94
  298. package/src/crypto/utils.ts +1 -1
  299. package/src/diagnostic/eventsGenerator.ts +2 -2
  300. package/src/diagnostic/httpClient.ts +6 -2
  301. package/src/diagnostic/index.ts +12 -10
  302. package/src/diagnostic/integrityVerificationStream.ts +3 -4
  303. package/src/diagnostic/interface.ts +81 -81
  304. package/src/diagnostic/sdkDiagnostic.ts +35 -24
  305. package/src/diagnostic/sdkDiagnosticFull.ts +16 -19
  306. package/src/diagnostic/telemetry.ts +4 -1
  307. package/src/diagnostic/zipGenerators.test.ts +1 -1
  308. package/src/diagnostic/zipGenerators.ts +3 -3
  309. package/src/errors.ts +21 -21
  310. package/src/index.ts +3 -3
  311. package/src/interface/account.ts +10 -10
  312. package/src/interface/author.ts +6 -6
  313. package/src/interface/config.ts +4 -4
  314. package/src/interface/devices.ts +6 -6
  315. package/src/interface/download.ts +12 -9
  316. package/src/interface/events.ts +45 -39
  317. package/src/interface/httpClient.ts +11 -11
  318. package/src/interface/index.ts +76 -19
  319. package/src/interface/nodes.ts +47 -49
  320. package/src/interface/result.ts +1 -3
  321. package/src/interface/sharing.ts +60 -57
  322. package/src/interface/telemetry.ts +74 -74
  323. package/src/interface/thumbnail.ts +5 -6
  324. package/src/interface/upload.ts +20 -12
  325. package/src/internal/apiService/apiService.test.ts +109 -76
  326. package/src/internal/apiService/apiService.ts +40 -26
  327. package/src/internal/apiService/coreTypes.ts +2474 -2463
  328. package/src/internal/apiService/driveTypes.ts +1868 -1822
  329. package/src/internal/apiService/errorCodes.ts +4 -4
  330. package/src/internal/apiService/errors.test.ts +25 -23
  331. package/src/internal/apiService/errors.ts +15 -9
  332. package/src/internal/apiService/index.ts +1 -1
  333. package/src/internal/apiService/transformers.ts +2 -2
  334. package/src/internal/asyncIteratorMap.test.ts +4 -4
  335. package/src/internal/asyncIteratorMap.ts +1 -1
  336. package/src/internal/asyncIteratorRace.test.ts +149 -0
  337. package/src/internal/asyncIteratorRace.ts +79 -0
  338. package/src/internal/batch.test.ts +50 -0
  339. package/src/internal/batch.ts +9 -0
  340. package/src/internal/batchLoading.test.ts +13 -14
  341. package/src/internal/batchLoading.ts +8 -8
  342. package/src/internal/devices/apiService.ts +58 -51
  343. package/src/internal/devices/cryptoService.ts +22 -17
  344. package/src/internal/devices/index.ts +17 -10
  345. package/src/internal/devices/interface.ts +21 -12
  346. package/src/internal/devices/manager.test.ts +40 -9
  347. package/src/internal/devices/manager.ts +3 -3
  348. package/src/internal/download/apiService.ts +66 -49
  349. package/src/internal/download/cryptoService.ts +34 -18
  350. package/src/internal/download/fileDownloader.test.ts +25 -9
  351. package/src/internal/download/fileDownloader.ts +36 -18
  352. package/src/internal/download/index.ts +19 -19
  353. package/src/internal/download/interface.ts +19 -20
  354. package/src/internal/download/queue.ts +3 -3
  355. package/src/internal/download/telemetry.test.ts +11 -11
  356. package/src/internal/download/telemetry.ts +24 -14
  357. package/src/internal/download/thumbnailDownloader.test.ts +11 -6
  358. package/src/internal/download/thumbnailDownloader.ts +43 -32
  359. package/src/internal/errors.ts +7 -5
  360. package/src/internal/events/apiService.ts +30 -17
  361. package/src/internal/events/coreEventManager.test.ts +18 -18
  362. package/src/internal/events/coreEventManager.ts +9 -6
  363. package/src/internal/events/eventManager.test.ts +51 -46
  364. package/src/internal/events/eventManager.ts +6 -5
  365. package/src/internal/events/index.ts +24 -14
  366. package/src/internal/events/interface.ts +47 -39
  367. package/src/internal/events/volumeEventManager.test.ts +61 -65
  368. package/src/internal/events/volumeEventManager.ts +18 -9
  369. package/src/internal/nodes/apiService.test.ts +197 -147
  370. package/src/internal/nodes/apiService.ts +288 -174
  371. package/src/internal/nodes/cache.test.ts +48 -20
  372. package/src/internal/nodes/cache.ts +60 -44
  373. package/src/internal/nodes/cryptoCache.test.ts +34 -14
  374. package/src/internal/nodes/cryptoCache.ts +10 -5
  375. package/src/internal/nodes/cryptoService.test.ts +492 -351
  376. package/src/internal/nodes/cryptoService.ts +170 -88
  377. package/src/internal/nodes/events.test.ts +38 -28
  378. package/src/internal/nodes/events.ts +7 -5
  379. package/src/internal/nodes/extendedAttributes.test.ts +28 -24
  380. package/src/internal/nodes/extendedAttributes.ts +20 -15
  381. package/src/internal/nodes/index.test.ts +133 -0
  382. package/src/internal/nodes/index.ts +27 -15
  383. package/src/internal/nodes/interface.ts +42 -29
  384. package/src/internal/nodes/nodesAccess.test.ts +124 -58
  385. package/src/internal/nodes/nodesAccess.ts +73 -49
  386. package/src/internal/nodes/nodesManagement.test.ts +32 -31
  387. package/src/internal/nodes/nodesManagement.ts +39 -32
  388. package/src/internal/nodes/nodesRevisions.ts +7 -7
  389. package/src/internal/nodes/validations.ts +2 -2
  390. package/src/internal/photos/albums.ts +5 -5
  391. package/src/internal/photos/apiService.ts +4 -7
  392. package/src/internal/photos/cache.ts +1 -1
  393. package/src/internal/photos/index.ts +8 -8
  394. package/src/internal/photos/interface.ts +2 -2
  395. package/src/internal/photos/photosTimeline.ts +4 -5
  396. package/src/internal/sdkEvents.test.ts +10 -10
  397. package/src/internal/sdkEvents.ts +5 -13
  398. package/src/internal/shares/apiService.ts +44 -33
  399. package/src/internal/shares/cache.test.ts +6 -4
  400. package/src/internal/shares/cache.ts +21 -12
  401. package/src/internal/shares/cryptoCache.test.ts +17 -11
  402. package/src/internal/shares/cryptoCache.ts +4 -4
  403. package/src/internal/shares/cryptoService.test.ts +72 -74
  404. package/src/internal/shares/cryptoService.ts +48 -23
  405. package/src/internal/shares/index.ts +23 -11
  406. package/src/internal/shares/interface.ts +8 -8
  407. package/src/internal/shares/manager.test.ts +88 -80
  408. package/src/internal/shares/manager.ts +19 -19
  409. package/src/internal/sharing/apiService.ts +282 -175
  410. package/src/internal/sharing/cache.test.ts +35 -35
  411. package/src/internal/sharing/cache.ts +2 -2
  412. package/src/internal/sharing/cryptoService.test.ts +58 -46
  413. package/src/internal/sharing/cryptoService.ts +121 -84
  414. package/src/internal/sharing/events.test.ts +45 -49
  415. package/src/internal/sharing/events.ts +9 -6
  416. package/src/internal/sharing/index.ts +22 -11
  417. package/src/internal/sharing/interface.ts +40 -40
  418. package/src/internal/sharing/sharingAccess.test.ts +71 -65
  419. package/src/internal/sharing/sharingAccess.ts +39 -21
  420. package/src/internal/sharing/sharingManagement.test.ts +398 -298
  421. package/src/internal/sharing/sharingManagement.ts +138 -65
  422. package/src/internal/uids.ts +1 -1
  423. package/src/internal/upload/apiService.ts +167 -117
  424. package/src/internal/upload/blockVerifier.ts +8 -6
  425. package/src/internal/upload/chunkStreamReader.test.ts +7 -7
  426. package/src/internal/upload/cryptoService.ts +42 -36
  427. package/src/internal/upload/digests.ts +2 -2
  428. package/src/internal/upload/fileUploader.test.ts +15 -3
  429. package/src/internal/upload/fileUploader.ts +39 -17
  430. package/src/internal/upload/index.ts +13 -14
  431. package/src/internal/upload/interface.ts +78 -78
  432. package/src/internal/upload/manager.test.ts +170 -153
  433. package/src/internal/upload/manager.ts +59 -35
  434. package/src/internal/upload/queue.ts +3 -3
  435. package/src/internal/upload/streamUploader.test.ts +40 -26
  436. package/src/internal/upload/streamUploader.ts +87 -69
  437. package/src/internal/upload/telemetry.test.ts +11 -11
  438. package/src/internal/upload/telemetry.ts +25 -15
  439. package/src/internal/wait.test.ts +1 -1
  440. package/src/internal/wait.ts +3 -3
  441. package/src/protonDriveClient.ts +121 -39
  442. package/src/protonDrivePhotosClient.ts +16 -10
  443. package/src/telemetry.ts +60 -52
  444. package/src/tests/logger.ts +1 -1
  445. package/src/tests/telemetry.ts +2 -2
  446. package/src/transformers.ts +27 -21
  447. package/src/version.ts +0 -1
@@ -1,14 +1,14 @@
1
- import { Logger, ProtonDriveTelemetry } from "../../interface";
2
- import { DriveAPIService } from "../apiService";
3
- import { DriveEvent, DriveListener, EventSubscription, LatestEventIdProvider } from "./interface";
4
- import { EventsAPIService } from "./apiService";
5
- import { CoreEventManager } from "./coreEventManager";
6
- import { VolumeEventManager } from "./volumeEventManager";
7
- import { EventManager } from "./eventManager";
8
- import { SharesManager } from "../shares/manager";
1
+ import { Logger, ProtonDriveTelemetry } from '../../interface';
2
+ import { DriveAPIService } from '../apiService';
3
+ import { DriveEvent, DriveListener, EventSubscription, LatestEventIdProvider } from './interface';
4
+ import { EventsAPIService } from './apiService';
5
+ import { CoreEventManager } from './coreEventManager';
6
+ import { VolumeEventManager } from './volumeEventManager';
7
+ import { EventManager } from './eventManager';
8
+ import { SharesManager } from '../shares/manager';
9
9
 
10
- export type { DriveEvent, DriveListener } from "./interface";
11
- export { DriveEventType } from "./interface";
10
+ export type { DriveEvent, DriveListener } from './interface';
11
+ export { DriveEventType } from './interface';
12
12
 
13
13
  const OWN_VOLUME_POLLING_INTERVAL = 30;
14
14
  const OTHER_VOLUME_POLLING_INTERVAL = 60;
@@ -25,7 +25,13 @@ export class DriveEventsService {
25
25
  private volumeEventManagers: { [volumeId: string]: EventManager<DriveEvent> };
26
26
  private logger: Logger;
27
27
 
28
- constructor(private telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, private shareManagement: SharesManager, private cacheEventListeners: DriveListener[] = [], private latestEventIdProvider?: LatestEventIdProvider) {
28
+ constructor(
29
+ private telemetry: ProtonDriveTelemetry,
30
+ apiService: DriveAPIService,
31
+ private shareManagement: SharesManager,
32
+ private cacheEventListeners: DriveListener[] = [],
33
+ private latestEventIdProvider?: LatestEventIdProvider,
34
+ ) {
29
35
  this.telemetry = telemetry;
30
36
  this.logger = telemetry.getLogger('events');
31
37
  this.apiService = new EventsAPIService(apiService);
@@ -56,7 +62,9 @@ export class DriveEventsService {
56
62
  // FIXME: Allow to pass own core events manager from the public interface.
57
63
  async subscribeToCoreEvents(callback: DriveListener): Promise<EventSubscription> {
58
64
  if (this.latestEventIdProvider === null || this.latestEventIdProvider === undefined) {
59
- throw new Error('Cannot subscribe to events without passing a latestEventIdProvider in ProtonDriveClient initialization');
65
+ throw new Error(
66
+ 'Cannot subscribe to events without passing a latestEventIdProvider in ProtonDriveClient initialization',
67
+ );
60
68
  }
61
69
  if (this.coreEvents === undefined) {
62
70
  const coreEventManager = new CoreEventManager(this.logger, this.apiService);
@@ -80,7 +88,9 @@ export class DriveEventsService {
80
88
 
81
89
  private async createVolumeEventManager(volumeId: string): Promise<EventManager<DriveEvent>> {
82
90
  if (this.latestEventIdProvider === null || this.latestEventIdProvider === undefined) {
83
- throw new Error('Cannot subscribe to events without passing a latestEventIdProvider in ProtonDriveClient initialization');
91
+ throw new Error(
92
+ 'Cannot subscribe to events without passing a latestEventIdProvider in ProtonDriveClient initialization',
93
+ );
84
94
  }
85
95
  const isOwnVolume = await this.shareManagement.isOwnVolume(volumeId);
86
96
  const pollingInterval = this.getDefaultVolumePollingInterval(isOwnVolume);
@@ -96,6 +106,6 @@ export class DriveEventsService {
96
106
  }
97
107
 
98
108
  private getDefaultVolumePollingInterval(isOwnVolume: boolean): number {
99
- return isOwnVolume ? OWN_VOLUME_POLLING_INTERVAL : OTHER_VOLUME_POLLING_INTERVAL
109
+ return isOwnVolume ? OWN_VOLUME_POLLING_INTERVAL : OTHER_VOLUME_POLLING_INTERVAL;
100
110
  }
101
111
  }
@@ -1,4 +1,4 @@
1
- import { Logger } from "../../interface";
1
+ import { Logger } from '../../interface';
2
2
 
3
3
  /**
4
4
  * Callback that accepts list of Drive events and flag whether no
@@ -27,11 +27,11 @@ export interface LatestEventIdProvider {
27
27
  * events to fetch, or whether the listener should refresh its state.
28
28
  */
29
29
  export type EventsListWithStatus<T> = {
30
- latestEventId: string,
31
- more: boolean,
32
- refresh: boolean,
33
- events: T[],
34
- }
30
+ latestEventId: string;
31
+ more: boolean;
32
+ refresh: boolean;
33
+ events: T[];
34
+ };
35
35
 
36
36
  /**
37
37
  * Internal event interface representing a list of specific Drive events.
@@ -41,47 +41,55 @@ export type DriveEventsListWithStatus = EventsListWithStatus<DriveEvent>;
41
41
  type NodeCruEventType = DriveEventType.NodeCreated | DriveEventType.NodeUpdated;
42
42
  export type NodeEventType = NodeCruEventType | DriveEventType.NodeDeleted;
43
43
 
44
- export type NodeEvent = {
45
- type: NodeCruEventType,
46
- nodeUid: string,
47
- parentNodeUid?: string,
48
- isTrashed: boolean,
49
- isShared: boolean,
50
- treeEventScopeId: string,
51
- eventId: string,
52
- } | {
53
- type: DriveEventType.NodeDeleted,
54
- nodeUid: string,
55
- parentNodeUid?: string,
56
- treeEventScopeId: string,
57
- eventId: string,
58
- }
44
+ export type NodeEvent =
45
+ | {
46
+ type: NodeCruEventType;
47
+ nodeUid: string;
48
+ parentNodeUid?: string;
49
+ isTrashed: boolean;
50
+ isShared: boolean;
51
+ treeEventScopeId: string;
52
+ eventId: string;
53
+ }
54
+ | {
55
+ type: DriveEventType.NodeDeleted;
56
+ nodeUid: string;
57
+ parentNodeUid?: string;
58
+ treeEventScopeId: string;
59
+ eventId: string;
60
+ };
59
61
 
60
62
  export type FastForwardEvent = {
61
- type: DriveEventType.FastForward,
62
- treeEventScopeId: string,
63
- eventId: string,
64
- }
63
+ type: DriveEventType.FastForward;
64
+ treeEventScopeId: string;
65
+ eventId: string;
66
+ };
65
67
 
66
68
  export type TreeRefreshEvent = {
67
- type: DriveEventType.TreeRefresh,
68
- treeEventScopeId: string,
69
- eventId: string,
70
- }
69
+ type: DriveEventType.TreeRefresh;
70
+ treeEventScopeId: string;
71
+ eventId: string;
72
+ };
71
73
 
72
74
  export type TreeRemovalEvent = {
73
- type: DriveEventType.TreeRemove,
74
- treeEventScopeId: string,
75
- eventId: 'none',
76
- }
75
+ type: DriveEventType.TreeRemove;
76
+ treeEventScopeId: string;
77
+ eventId: 'none';
78
+ };
77
79
 
78
80
  export type SharedWithMeUpdated = {
79
- type: DriveEventType.SharedWithMeUpdated,
80
- eventId: string,
81
- treeEventScopeId: 'core',
82
- }
81
+ type: DriveEventType.SharedWithMeUpdated;
82
+ eventId: string;
83
+ treeEventScopeId: 'core';
84
+ };
83
85
 
84
- export type DriveEvent = NodeEvent | FastForwardEvent | TreeRefreshEvent | TreeRemovalEvent | FastForwardEvent | SharedWithMeUpdated;
86
+ export type DriveEvent =
87
+ | NodeEvent
88
+ | FastForwardEvent
89
+ | TreeRefreshEvent
90
+ | TreeRemovalEvent
91
+ | FastForwardEvent
92
+ | SharedWithMeUpdated;
85
93
 
86
94
  export enum DriveEventType {
87
95
  NodeCreated = 'node_created',
@@ -97,7 +105,7 @@ export enum DriveEventType {
97
105
  * This can happen if all shared nodes in that volume where unshared or if the
98
106
  * volume was deleted.
99
107
  */
100
- export class UnsubscribeFromEventsSourceError extends Error {};
108
+ export class UnsubscribeFromEventsSourceError extends Error {}
101
109
 
102
110
  export interface EventManagerInterface<T> {
103
111
  getLatestEventId(): Promise<string>;
@@ -1,16 +1,16 @@
1
- import { getMockLogger } from "../../tests/logger";
2
- import { NotFoundAPIError } from "../apiService";
3
- import { EventsAPIService } from "./apiService";
4
- import { VolumeEventManager } from "./volumeEventManager";
5
- import { DriveEventsListWithStatus, DriveEventType } from "./interface";
1
+ import { getMockLogger } from '../../tests/logger';
2
+ import { NotFoundAPIError } from '../apiService';
3
+ import { EventsAPIService } from './apiService';
4
+ import { VolumeEventManager } from './volumeEventManager';
5
+ import { DriveEventsListWithStatus, DriveEventType } from './interface';
6
6
 
7
- jest.mock("./apiService");
7
+ jest.mock('./apiService');
8
8
 
9
- describe("VolumeEventManager", () => {
9
+ describe('VolumeEventManager', () => {
10
10
  let manager: VolumeEventManager;
11
11
  let mockEventsAPIService: jest.Mocked<EventsAPIService>;
12
12
  const mockLogger = getMockLogger();
13
- const volumeId = "volumeId123";
13
+ const volumeId = 'volumeId123';
14
14
 
15
15
  beforeEach(() => {
16
16
  jest.clearAllMocks();
@@ -22,16 +22,12 @@ describe("VolumeEventManager", () => {
22
22
  getCoreEvents: jest.fn(),
23
23
  } as any;
24
24
 
25
- manager = new VolumeEventManager(
26
- mockLogger,
27
- mockEventsAPIService,
28
- volumeId
29
- );
25
+ manager = new VolumeEventManager(mockLogger, mockEventsAPIService, volumeId);
30
26
  });
31
27
 
32
- describe("getLatestEventId", () => {
33
- it("should return the latest event ID from API", async () => {
34
- const expectedEventId = "eventId123";
28
+ describe('getLatestEventId', () => {
29
+ it('should return the latest event ID from API', async () => {
30
+ const expectedEventId = 'eventId123';
35
31
  mockEventsAPIService.getVolumeLatestEventId.mockResolvedValue(expectedEventId);
36
32
 
37
33
  const result = await manager.getLatestEventId();
@@ -40,83 +36,83 @@ describe("VolumeEventManager", () => {
40
36
  expect(mockEventsAPIService.getVolumeLatestEventId).toHaveBeenCalledWith(volumeId);
41
37
  });
42
38
 
43
- it("should throw UnsubscribeFromEventsSourceError when API returns NotFoundAPIError", async () => {
44
- const notFoundError = new NotFoundAPIError("Event not found", 2501);
39
+ it('should throw UnsubscribeFromEventsSourceError when API returns NotFoundAPIError', async () => {
40
+ const notFoundError = new NotFoundAPIError('Event not found', 2501);
45
41
  mockEventsAPIService.getVolumeLatestEventId.mockRejectedValue(notFoundError);
46
42
 
47
- await expect(manager.getLatestEventId()).rejects.toThrow("Event not found");
43
+ await expect(manager.getLatestEventId()).rejects.toThrow('Event not found');
48
44
  });
49
45
 
50
- it("should rethrow other errors", async () => {
51
- const networkError = new Error("Network error");
46
+ it('should rethrow other errors', async () => {
47
+ const networkError = new Error('Network error');
52
48
  mockEventsAPIService.getVolumeLatestEventId.mockRejectedValue(networkError);
53
49
 
54
- await expect(manager.getLatestEventId()).rejects.toThrow("Network error");
50
+ await expect(manager.getLatestEventId()).rejects.toThrow('Network error');
55
51
  });
56
52
  });
57
53
 
58
- describe("getEvents", () => {
59
- it("should yield events from API response", async () => {
54
+ describe('getEvents', () => {
55
+ it('should yield events from API response', async () => {
60
56
  const mockEventsResponse: DriveEventsListWithStatus = {
61
- latestEventId: "eventId456",
57
+ latestEventId: 'eventId456',
62
58
  more: false,
63
59
  refresh: false,
64
60
  events: [
65
61
  {
66
62
  type: DriveEventType.NodeCreated,
67
- nodeUid: "node1",
68
- parentNodeUid: "parent1",
63
+ nodeUid: 'node1',
64
+ parentNodeUid: 'parent1',
69
65
  isTrashed: false,
70
66
  isShared: false,
71
67
  treeEventScopeId: volumeId,
72
- eventId: "eventId456",
73
- }
68
+ eventId: 'eventId456',
69
+ },
74
70
  ],
75
71
  };
76
72
 
77
73
  mockEventsAPIService.getVolumeEvents.mockResolvedValue(mockEventsResponse);
78
74
 
79
75
  const events = [];
80
- for await (const event of manager.getEvents("startEventId")) {
76
+ for await (const event of manager.getEvents('startEventId')) {
81
77
  events.push(event);
82
78
  }
83
79
 
84
80
  expect(events).toEqual(mockEventsResponse.events);
85
- expect(mockEventsAPIService.getVolumeEvents).toHaveBeenCalledWith(volumeId, "startEventId");
81
+ expect(mockEventsAPIService.getVolumeEvents).toHaveBeenCalledWith(volumeId, 'startEventId');
86
82
  });
87
83
 
88
- it("should continue fetching when more events are available", async () => {
84
+ it('should continue fetching when more events are available', async () => {
89
85
  const firstResponse: DriveEventsListWithStatus = {
90
- latestEventId: "eventId2",
86
+ latestEventId: 'eventId2',
91
87
  more: true,
92
88
  refresh: false,
93
89
  events: [
94
90
  {
95
91
  type: DriveEventType.NodeCreated,
96
- nodeUid: "node1",
97
- parentNodeUid: "parent1",
92
+ nodeUid: 'node1',
93
+ parentNodeUid: 'parent1',
98
94
  isTrashed: false,
99
95
  isShared: false,
100
96
  treeEventScopeId: volumeId,
101
- eventId: "eventId2",
102
- }
97
+ eventId: 'eventId2',
98
+ },
103
99
  ],
104
100
  };
105
101
 
106
102
  const secondResponse: DriveEventsListWithStatus = {
107
- latestEventId: "eventId3",
103
+ latestEventId: 'eventId3',
108
104
  more: false,
109
105
  refresh: false,
110
106
  events: [
111
107
  {
112
108
  type: DriveEventType.NodeUpdated,
113
- nodeUid: "node2",
114
- parentNodeUid: "parent1",
109
+ nodeUid: 'node2',
110
+ parentNodeUid: 'parent1',
115
111
  isTrashed: false,
116
112
  isShared: false,
117
113
  treeEventScopeId: volumeId,
118
- eventId: "eventId3",
119
- }
114
+ eventId: 'eventId3',
115
+ },
120
116
  ],
121
117
  };
122
118
 
@@ -125,7 +121,7 @@ describe("VolumeEventManager", () => {
125
121
  .mockResolvedValueOnce(secondResponse);
126
122
 
127
123
  const events = [];
128
- for await (const event of manager.getEvents("startEventId")) {
124
+ for await (const event of manager.getEvents('startEventId')) {
129
125
  events.push(event);
130
126
  }
131
127
 
@@ -133,13 +129,13 @@ describe("VolumeEventManager", () => {
133
129
  expect(events[0]).toEqual(firstResponse.events[0]);
134
130
  expect(events[1]).toEqual(secondResponse.events[0]);
135
131
  expect(mockEventsAPIService.getVolumeEvents).toHaveBeenCalledTimes(2);
136
- expect(mockEventsAPIService.getVolumeEvents).toHaveBeenNthCalledWith(1, volumeId, "startEventId");
137
- expect(mockEventsAPIService.getVolumeEvents).toHaveBeenNthCalledWith(2, volumeId, "eventId2");
132
+ expect(mockEventsAPIService.getVolumeEvents).toHaveBeenNthCalledWith(1, volumeId, 'startEventId');
133
+ expect(mockEventsAPIService.getVolumeEvents).toHaveBeenNthCalledWith(2, volumeId, 'eventId2');
138
134
  });
139
135
 
140
- it("should yield TreeRefresh event when refresh is true", async () => {
136
+ it('should yield TreeRefresh event when refresh is true', async () => {
141
137
  const mockEventsResponse: DriveEventsListWithStatus = {
142
- latestEventId: "eventId789",
138
+ latestEventId: 'eventId789',
143
139
  more: false,
144
140
  refresh: true,
145
141
  events: [],
@@ -148,7 +144,7 @@ describe("VolumeEventManager", () => {
148
144
  mockEventsAPIService.getVolumeEvents.mockResolvedValue(mockEventsResponse);
149
145
 
150
146
  const events = [];
151
- for await (const event of manager.getEvents("startEventId")) {
147
+ for await (const event of manager.getEvents('startEventId')) {
152
148
  events.push(event);
153
149
  }
154
150
 
@@ -156,13 +152,13 @@ describe("VolumeEventManager", () => {
156
152
  expect(events[0]).toEqual({
157
153
  type: DriveEventType.TreeRefresh,
158
154
  treeEventScopeId: volumeId,
159
- eventId: "eventId789",
155
+ eventId: 'eventId789',
160
156
  });
161
157
  });
162
158
 
163
- it("should yield FastForward event when no events but eventId changed", async () => {
159
+ it('should yield FastForward event when no events but eventId changed', async () => {
164
160
  const mockEventsResponse: DriveEventsListWithStatus = {
165
- latestEventId: "newEventId",
161
+ latestEventId: 'newEventId',
166
162
  more: false,
167
163
  refresh: false,
168
164
  events: [],
@@ -171,7 +167,7 @@ describe("VolumeEventManager", () => {
171
167
  mockEventsAPIService.getVolumeEvents.mockResolvedValue(mockEventsResponse);
172
168
 
173
169
  const events = [];
174
- for await (const event of manager.getEvents("oldEventId")) {
170
+ for await (const event of manager.getEvents('oldEventId')) {
175
171
  events.push(event);
176
172
  }
177
173
 
@@ -179,17 +175,17 @@ describe("VolumeEventManager", () => {
179
175
  expect(events[0]).toEqual({
180
176
  type: DriveEventType.FastForward,
181
177
  treeEventScopeId: volumeId,
182
- eventId: "newEventId",
178
+ eventId: 'newEventId',
183
179
  });
184
180
  });
185
181
 
186
- it("should yield TreeRemove event when API returns NotFoundAPIError", async () => {
187
- const notFoundError = new NotFoundAPIError("Volume not found", 2501);
182
+ it('should yield TreeRemove event when API returns NotFoundAPIError', async () => {
183
+ const notFoundError = new NotFoundAPIError('Volume not found', 2501);
188
184
  mockEventsAPIService.getVolumeEvents.mockRejectedValue(notFoundError);
189
185
 
190
186
  const events = [];
191
187
  try {
192
- for await (const event of manager.getEvents("startEventId")) {
188
+ for await (const event of manager.getEvents('startEventId')) {
193
189
  events.push(event);
194
190
  }
195
191
  } catch (error) {
@@ -205,18 +201,18 @@ describe("VolumeEventManager", () => {
205
201
  });
206
202
  });
207
203
 
208
- it("should rethrow non-NotFoundAPIError errors", async () => {
209
- const networkError = new Error("Network error");
204
+ it('should rethrow non-NotFoundAPIError errors', async () => {
205
+ const networkError = new Error('Network error');
210
206
  mockEventsAPIService.getVolumeEvents.mockRejectedValue(networkError);
211
207
 
212
- const eventGenerator = manager.getEvents("startEventId");
208
+ const eventGenerator = manager.getEvents('startEventId');
213
209
  const eventIterator = eventGenerator[Symbol.asyncIterator]();
214
- await expect(eventIterator.next()).rejects.toThrow("Network error");
210
+ await expect(eventIterator.next()).rejects.toThrow('Network error');
215
211
  });
216
212
 
217
- it("should not yield events when events array is empty and eventId unchanged", async () => {
213
+ it('should not yield events when events array is empty and eventId unchanged', async () => {
218
214
  const mockEventsResponse: DriveEventsListWithStatus = {
219
- latestEventId: "sameEventId",
215
+ latestEventId: 'sameEventId',
220
216
  more: false,
221
217
  refresh: false,
222
218
  events: [],
@@ -225,7 +221,7 @@ describe("VolumeEventManager", () => {
225
221
  mockEventsAPIService.getVolumeEvents.mockResolvedValue(mockEventsResponse);
226
222
 
227
223
  const events = [];
228
- for await (const event of manager.getEvents("sameEventId")) {
224
+ for await (const event of manager.getEvents('sameEventId')) {
229
225
  events.push(event);
230
226
  }
231
227
 
@@ -233,8 +229,8 @@ describe("VolumeEventManager", () => {
233
229
  });
234
230
  });
235
231
 
236
- describe("getLogger", () => {
237
- it("should return logger with prefix", () => {
232
+ describe('getLogger', () => {
233
+ it('should return logger with prefix', () => {
238
234
  const logger = manager.getLogger();
239
235
  expect(logger).toBeDefined();
240
236
  // The logger should be wrapped with LoggerWithPrefix, but we can't easily test the prefix
@@ -1,17 +1,26 @@
1
- import { Logger } from "../../interface";
2
- import { LoggerWithPrefix } from "../../telemetry";
3
- import { EventsAPIService } from "./apiService";
4
- import { DriveEvent, DriveEventsListWithStatus, DriveEventType, EventManagerInterface, UnsubscribeFromEventsSourceError } from "./interface";
5
- import { NotFoundAPIError } from "../apiService";
1
+ import { Logger } from '../../interface';
2
+ import { LoggerWithPrefix } from '../../telemetry';
3
+ import { EventsAPIService } from './apiService';
4
+ import {
5
+ DriveEvent,
6
+ DriveEventsListWithStatus,
7
+ DriveEventType,
8
+ EventManagerInterface,
9
+ UnsubscribeFromEventsSourceError,
10
+ } from './interface';
11
+ import { NotFoundAPIError } from '../apiService';
6
12
 
7
13
  /**
8
14
  * Combines API and event manager to provide a service for listening to
9
15
  * volume events. Volume events are all about nodes updates. Whenever
10
16
  * there is update to the node metadata or content, the event is emitted.
11
17
  */
12
- export class VolumeEventManager implements EventManagerInterface<DriveEvent>{
13
-
14
- constructor(private logger: Logger, private apiService: EventsAPIService, private volumeId: string) {
18
+ export class VolumeEventManager implements EventManagerInterface<DriveEvent> {
19
+ constructor(
20
+ private logger: Logger,
21
+ private apiService: EventsAPIService,
22
+ private volumeId: string,
23
+ ) {
15
24
  this.apiService = apiService;
16
25
  this.volumeId = volumeId;
17
26
  this.logger = new LoggerWithPrefix(logger, `volume ${volumeId}`);
@@ -21,7 +30,7 @@ export class VolumeEventManager implements EventManagerInterface<DriveEvent>{
21
30
  return this.logger;
22
31
  }
23
32
 
24
- async * getEvents(eventId: string): AsyncIterable<DriveEvent> {
33
+ async *getEvents(eventId: string): AsyncIterable<DriveEvent> {
25
34
  try {
26
35
  let events: DriveEventsListWithStatus;
27
36
  let more = true;