@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,7 +1,7 @@
1
- import { NodeType, MemberRole, NonProtonInvitationState, MissingNode, ShareResult, PublicLink } from "../../interface";
2
- import { PrivateKey, SessionKey } from "../../crypto";
3
- import { EncryptedShare } from "../shares";
4
- import { DecryptedNode } from "../nodes";
1
+ import { NodeType, MemberRole, NonProtonInvitationState, MissingNode, ShareResult, PublicLink } from '../../interface';
2
+ import { PrivateKey, SessionKey } from '../../crypto';
3
+ import { EncryptedShare } from '../shares';
4
+ import { DecryptedNode } from '../nodes';
5
5
 
6
6
  export enum SharingType {
7
7
  SharedByMe = 'sharedByMe',
@@ -21,7 +21,7 @@ export interface EncryptedInvitationRequest {
21
21
 
22
22
  /**
23
23
  * Internal interface of existing invitation on the API.
24
- *
24
+ *
25
25
  * This interface is used only for managing the invitations. For listing
26
26
  * invitations with node metadata, see `EncryptedInvitationWithNode`.
27
27
  */
@@ -32,7 +32,7 @@ export interface EncryptedInvitation extends EncryptedInvitationRequest {
32
32
 
33
33
  /**
34
34
  * Internal interface of existing invitation with the share and node metadata.
35
- *
35
+ *
36
36
  * Invitation with node is used for listing shared nodes with me, so it includes
37
37
  * what is being shared as well.
38
38
  */
@@ -43,10 +43,11 @@ export interface EncryptedInvitationWithNode extends EncryptedInvitation {
43
43
  creatorEmail: string;
44
44
  };
45
45
  node: {
46
+ uid: string;
46
47
  type: NodeType;
47
48
  mediaType?: string;
48
49
  encryptedName: string;
49
- }
50
+ };
50
51
  }
51
52
 
52
53
  /**
@@ -109,23 +110,24 @@ export interface EncryptedBookmark {
109
110
  }
110
111
 
111
112
  export interface EncryptedPublicLink {
112
- uid: string,
113
- creationTime: Date,
114
- expirationTime?: Date,
115
- role: MemberRole,
116
- flags: number,
117
- creatorEmail: string,
118
- publicUrl: string,
119
- armoredUrlPassword: string,
120
- urlPasswordSalt: string,
121
- base64SharePassphraseKeyPacket: string,
122
- sharePassphraseSalt: string,
113
+ uid: string;
114
+ creationTime: Date;
115
+ expirationTime?: Date;
116
+ role: MemberRole;
117
+ flags: number;
118
+ creatorEmail: string;
119
+ publicUrl: string;
120
+ numberOfInitializedDownloads: number;
121
+ armoredUrlPassword: string;
122
+ urlPasswordSalt: string;
123
+ base64SharePassphraseKeyPacket: string;
124
+ sharePassphraseSalt: string;
123
125
  }
124
126
 
125
127
  export interface EncryptedPublicLinkCrypto {
126
- base64SharePasswordSalt: string,
127
- base64SharePassphraseKeyPacket: string,
128
- armoredPassword: string,
128
+ base64SharePasswordSalt: string;
129
+ base64SharePassphraseKeyPacket: string;
130
+ armoredPassword: string;
129
131
  }
130
132
 
131
133
  export interface ShareResultWithCreatorEmail extends ShareResult {
@@ -136,46 +138,48 @@ export interface PublicLinkWithCreatorEmail extends PublicLink {
136
138
  creatorEmail: string;
137
139
  }
138
140
 
139
-
140
141
  /**
141
142
  * Interface describing the dependencies to the shares module.
142
143
  */
143
144
  export interface SharesService {
144
- getMyFilesIDs(): Promise<{ volumeId: string }>,
145
- loadEncryptedShare(shareId: string): Promise<EncryptedShare>,
145
+ getMyFilesIDs(): Promise<{ volumeId: string }>;
146
+ loadEncryptedShare(shareId: string): Promise<EncryptedShare>;
146
147
  getMyFilesShareMemberEmailKey(): Promise<{
147
- addressId: string,
148
- addressKey: PrivateKey,
149
- }>,
148
+ addressId: string;
149
+ addressKey: PrivateKey;
150
+ }>;
150
151
  getContextShareMemberEmailKey(shareId: string): Promise<{
151
- email: string,
152
- addressId: string,
153
- addressKey: PrivateKey,
154
- }>,
152
+ email: string;
153
+ addressId: string;
154
+ addressKey: PrivateKey;
155
+ }>;
156
+ isOwnVolume(volumeId: string): Promise<boolean>;
155
157
  }
156
158
 
157
159
  /**
158
160
  * Interface describing the dependencies to the nodes module.
159
161
  */
160
162
  export interface NodesService {
161
- getNode(nodeUid: string): Promise<DecryptedNode>,
162
- getNodeKeys(nodeUid: string): Promise<{ key: PrivateKey }>,
163
+ getNode(nodeUid: string): Promise<DecryptedNode>;
164
+ getNodeKeys(nodeUid: string): Promise<{ key: PrivateKey }>;
163
165
  getNodePrivateAndSessionKeys(nodeUid: string): Promise<{
164
- key: PrivateKey,
165
- passphraseSessionKey: SessionKey,
166
- nameSessionKey: SessionKey,
167
- }>,
166
+ key: PrivateKey;
167
+ passphraseSessionKey: SessionKey;
168
+ nameSessionKey: SessionKey;
169
+ }>;
168
170
  getRootNodeEmailKey(nodeUid: string): Promise<{
169
- email: string,
170
- addressId: string,
171
- addressKey: PrivateKey,
172
- }>,
171
+ email: string;
172
+ addressId: string;
173
+ addressKey: PrivateKey;
174
+ }>;
173
175
  iterateNodes(nodeUids: string[], signal?: AbortSignal): AsyncGenerator<DecryptedNode | MissingNode>;
176
+ notifyNodeChanged(nodeUid: string): Promise<void>;
174
177
  }
175
178
 
179
+ // TODO I think this can be removed
176
180
  /**
177
181
  * Interface describing the dependencies to the nodes module.
178
182
  */
179
183
  export interface NodesEvents {
180
- nodeUpdated(partialNode: { uid: string, shareId: string | undefined, isShared: boolean }): Promise<void>,
184
+ nodeUpdated(partialNode: { uid: string; shareId: string | undefined; isShared: boolean }): Promise<void>;
181
185
  }
@@ -1,11 +1,11 @@
1
- import { NodeType, resultError, resultOk } from "../../interface";
2
- import { SharingAPIService } from "./apiService";
3
- import { SharingCache } from "./cache";
4
- import { SharingCryptoService } from "./cryptoService";
5
- import { SharesService, NodesService } from "./interface";
6
- import { SharingAccess } from "./sharingAccess";
7
-
8
- describe("SharingAccess", () => {
1
+ import { NodeType, resultError, resultOk } from '../../interface';
2
+ import { SharingAPIService } from './apiService';
3
+ import { SharingCache } from './cache';
4
+ import { SharingCryptoService } from './cryptoService';
5
+ import { SharesService, NodesService } from './interface';
6
+ import { SharingAccess } from './sharingAccess';
7
+
8
+ describe('SharingAccess', () => {
9
9
  let apiService: SharingAPIService;
10
10
  let cache: SharingCache;
11
11
  let cryptoService: SharingCryptoService;
@@ -20,7 +20,7 @@ describe("SharingAccess", () => {
20
20
  for (const nodeUid of nodeUids) {
21
21
  yield nodeUid;
22
22
  }
23
- }
23
+ };
24
24
 
25
25
  beforeEach(() => {
26
26
  // @ts-expect-error No need to implement all methods for mocking
@@ -29,29 +29,29 @@ describe("SharingAccess", () => {
29
29
  iterateSharedWithMeNodeUids: jest.fn().mockImplementation(() => nodeUidsIterator()),
30
30
  iterateBookmarks: jest.fn().mockImplementation(async function* () {
31
31
  yield {
32
- tokenId: "tokenId",
32
+ tokenId: 'tokenId',
33
33
  creationTime: new Date('2025-01-01'),
34
34
  node: {
35
35
  type: NodeType.File,
36
- mediaType: "mediaType",
36
+ mediaType: 'mediaType',
37
37
  },
38
- }
38
+ };
39
39
  }),
40
- }
40
+ };
41
41
  // @ts-expect-error No need to implement all methods for mocking
42
42
  cache = {
43
43
  setSharedByMeNodeUids: jest.fn(),
44
44
  setSharedWithMeNodeUids: jest.fn(),
45
- }
45
+ };
46
46
  // @ts-expect-error No need to implement all methods for mocking
47
47
  cryptoService = {
48
48
  decryptInvitation: jest.fn(),
49
49
  decryptBookmark: jest.fn(),
50
- }
50
+ };
51
51
  // @ts-expect-error No need to implement all methods for mocking
52
52
  sharesService = {
53
- getMyFilesIDs: jest.fn().mockResolvedValue({ volumeId: "volumeId" }),
54
- }
53
+ getMyFilesIDs: jest.fn().mockResolvedValue({ volumeId: 'volumeId' }),
54
+ };
55
55
  // @ts-expect-error No need to implement all methods for mocking
56
56
  nodesService = {
57
57
  iterateNodes: jest.fn().mockImplementation(async function* (nodeUids) {
@@ -61,13 +61,13 @@ describe("SharingAccess", () => {
61
61
  }
62
62
  }
63
63
  }),
64
- }
64
+ };
65
65
 
66
66
  sharingAccess = new SharingAccess(apiService, cache, cryptoService, sharesService, nodesService);
67
67
  });
68
68
 
69
- describe("iterateSharedNodes", () => {
70
- it("should iterate from cache", async () => {
69
+ describe('iterateSharedNodes', () => {
70
+ it('should iterate from cache', async () => {
71
71
  cache.getSharedByMeNodeUids = jest.fn().mockResolvedValue(nodeUids);
72
72
 
73
73
  const result = await Array.fromAsync(sharingAccess.iterateSharedNodes());
@@ -77,20 +77,20 @@ describe("SharingAccess", () => {
77
77
  expect(cache.setSharedByMeNodeUids).not.toHaveBeenCalled();
78
78
  });
79
79
 
80
- it("should iterate from API", async () => {
80
+ it('should iterate from API', async () => {
81
81
  cache.getSharedByMeNodeUids = jest.fn().mockRejectedValue(new Error('Not cached'));
82
82
 
83
83
  const result = await Array.fromAsync(sharingAccess.iterateSharedNodes());
84
84
 
85
85
  expect(result).toEqual(nodes);
86
- expect(apiService.iterateSharedNodeUids).toHaveBeenCalledWith("volumeId", undefined);
86
+ expect(apiService.iterateSharedNodeUids).toHaveBeenCalledWith('volumeId', undefined);
87
87
  expect(nodesService.iterateNodes).toHaveBeenCalledTimes(2); // 15 / 10 per batch
88
88
  expect(cache.setSharedByMeNodeUids).toHaveBeenCalledWith(nodeUids);
89
89
  });
90
90
  });
91
91
 
92
- describe("iterateSharedNodesWithMe", () => {
93
- it("should iterate from cache", async () => {
92
+ describe('iterateSharedNodesWithMe', () => {
93
+ it('should iterate from cache', async () => {
94
94
  cache.getSharedWithMeNodeUids = jest.fn().mockResolvedValue(nodeUids);
95
95
 
96
96
  const result = await Array.fromAsync(sharingAccess.iterateSharedNodesWithMe());
@@ -100,7 +100,7 @@ describe("SharingAccess", () => {
100
100
  expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
101
101
  });
102
102
 
103
- it("should iterate from API", async () => {
103
+ it('should iterate from API', async () => {
104
104
  cache.getSharedWithMeNodeUids = jest.fn().mockRejectedValue(new Error('Not cached'));
105
105
 
106
106
  const result = await Array.fromAsync(sharingAccess.iterateSharedNodesWithMe());
@@ -112,65 +112,71 @@ describe("SharingAccess", () => {
112
112
  });
113
113
  });
114
114
 
115
- describe("iterateBookmarks", () => {
116
- it("should return decrypted bookmark", async () => {
115
+ describe('iterateBookmarks', () => {
116
+ it('should return decrypted bookmark', async () => {
117
117
  cryptoService.decryptBookmark = jest.fn().mockResolvedValue({
118
- url: resultOk("url"),
119
- nodeName: resultOk("nodeName"),
118
+ url: resultOk('url'),
119
+ nodeName: resultOk('nodeName'),
120
120
  });
121
121
 
122
122
  const result = await Array.fromAsync(sharingAccess.iterateBookmarks());
123
123
 
124
- expect(result).toEqual([resultOk({
125
- uid: "tokenId",
126
- creationTime: new Date('2025-01-01'),
127
- url: "url",
128
- node: {
129
- name: "nodeName",
130
- type: NodeType.File,
131
- mediaType: "mediaType",
132
- },
133
- })]);
124
+ expect(result).toEqual([
125
+ resultOk({
126
+ uid: 'tokenId',
127
+ creationTime: new Date('2025-01-01'),
128
+ url: 'url',
129
+ node: {
130
+ name: 'nodeName',
131
+ type: NodeType.File,
132
+ mediaType: 'mediaType',
133
+ },
134
+ }),
135
+ ]);
134
136
  });
135
137
 
136
- it("should return degraded bookmark if URL password cannot be decrypted", async () => {
138
+ it('should return degraded bookmark if URL password cannot be decrypted', async () => {
137
139
  cryptoService.decryptBookmark = jest.fn().mockResolvedValue({
138
- url: resultError("url cannot be decrypted"),
139
- nodeName: resultError("url cannot be decrypted"),
140
+ url: resultError('url cannot be decrypted'),
141
+ nodeName: resultError('url cannot be decrypted'),
140
142
  });
141
143
 
142
144
  const result = await Array.fromAsync(sharingAccess.iterateBookmarks());
143
145
 
144
- expect(result).toEqual([resultError({
145
- uid: "tokenId",
146
- creationTime: new Date('2025-01-01'),
147
- url: resultError("url cannot be decrypted"),
148
- node: {
149
- name: resultError("url cannot be decrypted"),
150
- type: NodeType.File,
151
- mediaType: "mediaType",
152
- },
153
- })]);
146
+ expect(result).toEqual([
147
+ resultError({
148
+ uid: 'tokenId',
149
+ creationTime: new Date('2025-01-01'),
150
+ url: resultError('url cannot be decrypted'),
151
+ node: {
152
+ name: resultError('url cannot be decrypted'),
153
+ type: NodeType.File,
154
+ mediaType: 'mediaType',
155
+ },
156
+ }),
157
+ ]);
154
158
  });
155
159
 
156
- it("should return degraded bookmark if node name cannot be decrypted", async () => {
160
+ it('should return degraded bookmark if node name cannot be decrypted', async () => {
157
161
  cryptoService.decryptBookmark = jest.fn().mockResolvedValue({
158
- url: resultOk("url"),
159
- nodeName: resultError("node name cannot be decrypted"),
162
+ url: resultOk('url'),
163
+ nodeName: resultError('node name cannot be decrypted'),
160
164
  });
161
165
 
162
166
  const result = await Array.fromAsync(sharingAccess.iterateBookmarks());
163
167
 
164
- expect(result).toEqual([resultError({
165
- uid: "tokenId",
166
- creationTime: new Date('2025-01-01'),
167
- url: resultOk("url"),
168
- node: {
169
- name: resultError("node name cannot be decrypted"),
170
- type: NodeType.File,
171
- mediaType: "mediaType",
172
- },
173
- })]);
168
+ expect(result).toEqual([
169
+ resultError({
170
+ uid: 'tokenId',
171
+ creationTime: new Date('2025-01-01'),
172
+ url: resultOk('url'),
173
+ node: {
174
+ name: resultError('node name cannot be decrypted'),
175
+ type: NodeType.File,
176
+ mediaType: 'mediaType',
177
+ },
178
+ }),
179
+ ]);
174
180
  });
175
181
  });
176
182
  });
@@ -1,13 +1,13 @@
1
1
  import { c } from 'ttag';
2
2
 
3
- import { MaybeBookmark, ProtonInvitationWithNode, resultError, resultOk } from "../../interface";
4
- import { ValidationError } from "../../errors";
5
- import { DecryptedNode } from "../nodes";
6
- import { BatchLoading } from "../batchLoading";
7
- import { SharingAPIService } from "./apiService";
8
- import { SharingCache } from "./cache";
9
- import { SharingCryptoService } from "./cryptoService";
10
- import { SharesService, NodesService } from "./interface";
3
+ import { MaybeBookmark, ProtonInvitationWithNode, resultError, resultOk } from '../../interface';
4
+ import { ValidationError } from '../../errors';
5
+ import { DecryptedNode } from '../nodes';
6
+ import { BatchLoading } from '../batchLoading';
7
+ import { SharingAPIService } from './apiService';
8
+ import { SharingCache } from './cache';
9
+ import { SharingCryptoService } from './cryptoService';
10
+ import { SharesService, NodesService } from './interface';
11
11
 
12
12
  /**
13
13
  * Provides high-level actions for access shared nodes.
@@ -31,42 +31,57 @@ export class SharingAccess {
31
31
  this.nodesService = nodesService;
32
32
  }
33
33
 
34
- async* iterateSharedNodes(signal?: AbortSignal): AsyncGenerator<DecryptedNode> {
34
+ async *iterateSharedNodes(signal?: AbortSignal): AsyncGenerator<DecryptedNode> {
35
35
  try {
36
36
  const nodeUids = await this.cache.getSharedByMeNodeUids();
37
37
  yield* this.iterateSharedNodesFromCache(nodeUids, signal);
38
38
  } catch {
39
39
  const { volumeId } = await this.sharesService.getMyFilesIDs();
40
40
  const nodeUidsIterator = this.apiService.iterateSharedNodeUids(volumeId, signal);
41
- yield* this.iterateSharedNodesFromAPI(nodeUidsIterator, (nodeUids) => this.cache.setSharedByMeNodeUids(nodeUids), signal);
41
+ yield* this.iterateSharedNodesFromAPI(
42
+ nodeUidsIterator,
43
+ (nodeUids) => this.cache.setSharedByMeNodeUids(nodeUids),
44
+ signal,
45
+ );
42
46
  }
43
47
  }
44
48
 
45
- async* iterateSharedNodesWithMe(signal?: AbortSignal): AsyncGenerator<DecryptedNode> {
49
+ async *iterateSharedNodesWithMe(signal?: AbortSignal): AsyncGenerator<DecryptedNode> {
46
50
  try {
47
51
  const nodeUids = await this.cache.getSharedWithMeNodeUids();
48
52
  yield* this.iterateSharedNodesFromCache(nodeUids, signal);
49
53
  } catch {
50
54
  const nodeUidsIterator = this.apiService.iterateSharedWithMeNodeUids(signal);
51
- yield* this.iterateSharedNodesFromAPI(nodeUidsIterator, (nodeUids) => this.cache.setSharedWithMeNodeUids(nodeUids), signal);
55
+ yield* this.iterateSharedNodesFromAPI(
56
+ nodeUidsIterator,
57
+ (nodeUids) => this.cache.setSharedWithMeNodeUids(nodeUids),
58
+ signal,
59
+ );
52
60
  }
53
61
  }
54
62
 
55
- private async* iterateSharedNodesFromCache(nodeUids: string[], signal?: AbortSignal): AsyncGenerator<DecryptedNode> {
56
- const batchLoading = new BatchLoading<string, DecryptedNode>({ iterateItems: (nodeUids) => this.iterateNodesAndIgnoreMissingOnes(nodeUids, signal) });
63
+ private async *iterateSharedNodesFromCache(
64
+ nodeUids: string[],
65
+ signal?: AbortSignal,
66
+ ): AsyncGenerator<DecryptedNode> {
67
+ const batchLoading = new BatchLoading<string, DecryptedNode>({
68
+ iterateItems: (nodeUids) => this.iterateNodesAndIgnoreMissingOnes(nodeUids, signal),
69
+ });
57
70
  for (const nodeUid of nodeUids) {
58
71
  yield* batchLoading.load(nodeUid);
59
72
  }
60
73
  yield* batchLoading.loadRest();
61
74
  }
62
75
 
63
- private async* iterateSharedNodesFromAPI(
76
+ private async *iterateSharedNodesFromAPI(
64
77
  nodeUidsIterator: AsyncGenerator<string>,
65
78
  setCache: (nodeUids: string[]) => Promise<void>,
66
79
  signal?: AbortSignal,
67
80
  ): AsyncGenerator<DecryptedNode> {
68
81
  const loadedNodeUids = [];
69
- const batchLoading = new BatchLoading<string, DecryptedNode>({ iterateItems: (nodeUids) => this.iterateNodesAndIgnoreMissingOnes(nodeUids, signal) });
82
+ const batchLoading = new BatchLoading<string, DecryptedNode>({
83
+ iterateItems: (nodeUids) => this.iterateNodesAndIgnoreMissingOnes(nodeUids, signal),
84
+ });
70
85
  for await (const nodeUid of nodeUidsIterator) {
71
86
  loadedNodeUids.push(nodeUid);
72
87
  yield* batchLoading.load(nodeUid);
@@ -77,7 +92,10 @@ export class SharingAccess {
77
92
  await setCache(loadedNodeUids);
78
93
  }
79
94
 
80
- private async* iterateNodesAndIgnoreMissingOnes(nodeUids: string[], signal?: AbortSignal): AsyncGenerator<DecryptedNode> {
95
+ private async *iterateNodesAndIgnoreMissingOnes(
96
+ nodeUids: string[],
97
+ signal?: AbortSignal,
98
+ ): AsyncGenerator<DecryptedNode> {
81
99
  const nodeGenerator = this.nodesService.iterateNodes(nodeUids, signal);
82
100
  for await (const node of nodeGenerator) {
83
101
  if ('missingUid' in node) {
@@ -102,7 +120,7 @@ export class SharingAccess {
102
120
  await this.apiService.removeMember(memberUid);
103
121
  }
104
122
 
105
- async* iterateInvitations(signal?: AbortSignal): AsyncGenerator<ProtonInvitationWithNode> {
123
+ async *iterateInvitations(signal?: AbortSignal): AsyncGenerator<ProtonInvitationWithNode> {
106
124
  for await (const invitationUid of this.apiService.iterateInvitationUids(signal)) {
107
125
  const encryptedInvitation = await this.apiService.getInvitation(invitationUid);
108
126
  const invitation = await this.cryptoService.decryptInvitationWithNode(encryptedInvitation);
@@ -120,7 +138,7 @@ export class SharingAccess {
120
138
  await this.apiService.rejectInvitation(invitationUid);
121
139
  }
122
140
 
123
- async* iterateBookmarks(signal?: AbortSignal): AsyncGenerator<MaybeBookmark> {
141
+ async *iterateBookmarks(signal?: AbortSignal): AsyncGenerator<MaybeBookmark> {
124
142
  for await (const bookmark of this.apiService.iterateBookmarks(signal)) {
125
143
  const { url, nodeName } = await this.cryptoService.decryptBookmark(bookmark);
126
144
 
@@ -133,7 +151,7 @@ export class SharingAccess {
133
151
  name: nodeName,
134
152
  type: bookmark.node.type,
135
153
  mediaType: bookmark.node.mediaType,
136
- }
154
+ },
137
155
  });
138
156
  } else {
139
157
  yield resultOk({
@@ -144,7 +162,7 @@ export class SharingAccess {
144
162
  name: nodeName.value,
145
163
  type: bookmark.node.type,
146
164
  mediaType: bookmark.node.mediaType,
147
- }
165
+ },
148
166
  });
149
167
  }
150
168
  }