@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,7 +1,7 @@
1
- import { MemoryCache } from "../../cache";
2
- import { SharingCache } from "./cache";
1
+ import { MemoryCache } from '../../cache';
2
+ import { SharingCache } from './cache';
3
3
 
4
- describe("SharingCache", () => {
4
+ describe('SharingCache', () => {
5
5
  let memoryCache: MemoryCache<string>;
6
6
  let cache: SharingCache;
7
7
 
@@ -10,76 +10,76 @@ describe("SharingCache", () => {
10
10
  cache = new SharingCache(memoryCache);
11
11
  });
12
12
 
13
- describe("set and get shared by me nodes", () => {
14
- it("should set node uids", async () => {
15
- await cache.setSharedByMeNodeUids(["nodeUid"]);
13
+ describe('set and get shared by me nodes', () => {
14
+ it('should set node uids', async () => {
15
+ await cache.setSharedByMeNodeUids(['nodeUid']);
16
16
 
17
17
  const result = await cache.getSharedByMeNodeUids();
18
18
 
19
- expect(result).toEqual(["nodeUid"]);
19
+ expect(result).toEqual(['nodeUid']);
20
20
  });
21
21
  });
22
22
 
23
- describe("addSharedByMeNodeUid", () => {
24
- it("should throw if adding before setting", async () => {
23
+ describe('addSharedByMeNodeUid', () => {
24
+ it('should throw if adding before setting', async () => {
25
25
  try {
26
- await cache.addSharedByMeNodeUid("nodeUid");
27
- fail("Should have thrown an error");
26
+ await cache.addSharedByMeNodeUid('nodeUid');
27
+ fail('Should have thrown an error');
28
28
  } catch (error) {
29
- expect(`${error}`).toBe("Error: Calling add before setting the loaded items");
29
+ expect(`${error}`).toBe('Error: Calling add before setting the loaded items');
30
30
  }
31
31
  });
32
32
 
33
- it("should add node uid", async () => {
34
- await cache.setSharedByMeNodeUids(["nodeUid"]);
33
+ it('should add node uid', async () => {
34
+ await cache.setSharedByMeNodeUids(['nodeUid']);
35
35
  const spy = jest.spyOn(memoryCache, 'setEntity');
36
36
 
37
- await cache.addSharedByMeNodeUid("newNodeUid");
37
+ await cache.addSharedByMeNodeUid('newNodeUid');
38
38
 
39
39
  const result = await cache.getSharedByMeNodeUids();
40
- expect(result).toEqual(["nodeUid", "newNodeUid"]);
40
+ expect(result).toEqual(['nodeUid', 'newNodeUid']);
41
41
  expect(spy).toHaveBeenCalled();
42
42
  });
43
43
 
44
- it("should not add duplicate node uid", async () => {
45
- await cache.setSharedByMeNodeUids(["nodeUid"]);
44
+ it('should not add duplicate node uid', async () => {
45
+ await cache.setSharedByMeNodeUids(['nodeUid']);
46
46
  const spy = jest.spyOn(memoryCache, 'setEntity');
47
47
 
48
- await cache.addSharedByMeNodeUid("nodeUid");
49
- await cache.addSharedByMeNodeUid("nodeUid");
48
+ await cache.addSharedByMeNodeUid('nodeUid');
49
+ await cache.addSharedByMeNodeUid('nodeUid');
50
50
 
51
51
  const result = await cache.getSharedByMeNodeUids();
52
- expect(result).toEqual(["nodeUid"]);
52
+ expect(result).toEqual(['nodeUid']);
53
53
  expect(spy).not.toHaveBeenCalled();
54
54
  });
55
55
  });
56
56
 
57
- describe("removeSharedByMeNodeUid", () => {
58
- it("should throw if removing before setting", async () => {
57
+ describe('removeSharedByMeNodeUid', () => {
58
+ it('should throw if removing before setting', async () => {
59
59
  try {
60
- await cache.removeSharedByMeNodeUid("nodeUid");
61
- fail("Should have thrown an error");
60
+ await cache.removeSharedByMeNodeUid('nodeUid');
61
+ fail('Should have thrown an error');
62
62
  } catch (error) {
63
- expect(`${error}`).toBe("Error: Calling remove before setting the loaded items");
63
+ expect(`${error}`).toBe('Error: Calling remove before setting the loaded items');
64
64
  }
65
65
  });
66
66
 
67
- it("should remove node uid", async () => {
68
- await cache.setSharedByMeNodeUids(["nodeUid"]);
67
+ it('should remove node uid', async () => {
68
+ await cache.setSharedByMeNodeUids(['nodeUid']);
69
69
  const spy = jest.spyOn(memoryCache, 'setEntity');
70
70
 
71
- await cache.removeSharedByMeNodeUid("nodeUid");
71
+ await cache.removeSharedByMeNodeUid('nodeUid');
72
72
 
73
73
  const result = await cache.getSharedByMeNodeUids();
74
74
  expect(result).toEqual([]);
75
75
  expect(spy).toHaveBeenCalled();
76
76
  });
77
77
 
78
- it("should handle removing of missing node uid", async () => {
78
+ it('should handle removing of missing node uid', async () => {
79
79
  await cache.setSharedByMeNodeUids([]);
80
80
  const spy = jest.spyOn(memoryCache, 'setEntity');
81
81
 
82
- await cache.removeSharedByMeNodeUid("nodeUid");
82
+ await cache.removeSharedByMeNodeUid('nodeUid');
83
83
 
84
84
  const result = await cache.getSharedByMeNodeUids();
85
85
  expect(result).toEqual([]);
@@ -87,13 +87,13 @@ describe("SharingCache", () => {
87
87
  });
88
88
  });
89
89
 
90
- describe("set and get shared with me nodes", () => {
91
- it("should set node uids", async () => {
92
- await cache.setSharedWithMeNodeUids(["nodeUid"]);
90
+ describe('set and get shared with me nodes', () => {
91
+ it('should set node uids', async () => {
92
+ await cache.setSharedWithMeNodeUids(['nodeUid']);
93
93
 
94
94
  const result = await cache.getSharedWithMeNodeUids();
95
95
 
96
- expect(result).toEqual(["nodeUid"]);
96
+ expect(result).toEqual(['nodeUid']);
97
97
  });
98
98
  });
99
99
  });
@@ -1,5 +1,5 @@
1
- import { ProtonDriveEntitiesCache } from "../../interface";
2
- import { SharingType } from "./interface";
1
+ import { ProtonDriveEntitiesCache } from '../../interface';
2
+ import { SharingType } from './interface';
3
3
 
4
4
  /**
5
5
  * Provides caching for shared by me and with me listings.
@@ -1,10 +1,17 @@
1
- import { DriveCrypto, PrivateKey } from "../../crypto";
2
- import { MetricVolumeType, NodeType, ProtonDriveAccount, ProtonDriveTelemetry, resultError, resultOk } from "../../interface";
3
- import { getMockTelemetry } from "../../tests/telemetry";
4
- import { SharesService } from "./interface";
5
- import { SharingCryptoService } from "./cryptoService";
6
-
7
- describe("SharingCryptoService", () => {
1
+ import { DriveCrypto, PrivateKey } from '../../crypto';
2
+ import {
3
+ MetricVolumeType,
4
+ NodeType,
5
+ ProtonDriveAccount,
6
+ ProtonDriveTelemetry,
7
+ resultError,
8
+ resultOk,
9
+ } from '../../interface';
10
+ import { getMockTelemetry } from '../../tests/telemetry';
11
+ import { SharesService } from './interface';
12
+ import { SharingCryptoService } from './cryptoService';
13
+
14
+ describe('SharingCryptoService', () => {
8
15
  let telemetry: ProtonDriveTelemetry;
9
16
  let driveCrypto: DriveCrypto;
10
17
  let account: ProtonDriveAccount;
@@ -15,75 +22,80 @@ describe("SharingCryptoService", () => {
15
22
  telemetry = getMockTelemetry();
16
23
  // @ts-expect-error No need to implement all methods for mocking
17
24
  driveCrypto = {
18
- decryptShareUrlPassword: jest.fn().mockResolvedValue("urlPassword"),
25
+ decryptShareUrlPassword: jest.fn().mockResolvedValue('urlPassword'),
19
26
  decryptKeyWithSrpPassword: jest.fn().mockResolvedValue({
20
- key: "decryptedKey" as unknown as PrivateKey,
27
+ key: 'decryptedKey' as unknown as PrivateKey,
21
28
  }),
22
29
  decryptNodeName: jest.fn().mockResolvedValue({
23
- name: "nodeName",
30
+ name: 'nodeName',
24
31
  }),
25
32
  };
26
33
  account = {
27
34
  // @ts-expect-error No need to implement full response for mocking
28
35
  getOwnAddress: jest.fn(async () => ({
29
- keys: [{ key: "addressKey" as unknown as PrivateKey }],
36
+ keys: [{ key: 'addressKey' as unknown as PrivateKey }],
30
37
  })),
31
38
  };
32
39
  // @ts-expect-error No need to implement all methods for mocking
33
40
  sharesService = {
34
41
  getMyFilesShareMemberEmailKey: jest.fn().mockResolvedValue({
35
- addressId: "addressId",
42
+ addressId: 'addressId',
36
43
  }),
37
44
  };
38
45
  cryptoService = new SharingCryptoService(telemetry, driveCrypto, account, sharesService);
39
46
  });
40
47
 
41
- describe("decryptBookmark", () => {
48
+ describe('decryptBookmark', () => {
42
49
  const encryptedBookmark = {
43
- tokenId: "tokenId",
50
+ tokenId: 'tokenId',
44
51
  creationTime: new Date(),
45
52
  url: {
46
- encryptedUrlPassword: "encryptedUrlPassword",
47
- base64SharePasswordSalt: "base64SharePasswordSalt",
53
+ encryptedUrlPassword: 'encryptedUrlPassword',
54
+ base64SharePasswordSalt: 'base64SharePasswordSalt',
48
55
  },
49
56
  share: {
50
- armoredKey: "armoredKey",
51
- armoredPassphrase: "armoredPassphrase",
57
+ armoredKey: 'armoredKey',
58
+ armoredPassphrase: 'armoredPassphrase',
52
59
  },
53
60
  node: {
54
61
  type: NodeType.File,
55
- mediaType: "mediaType",
56
- encryptedName: "encryptedName",
57
- armoredKey: "armoredKey",
58
- armoredNodePassphrase: "armoredNodePassphrase",
62
+ mediaType: 'mediaType',
63
+ encryptedName: 'encryptedName',
64
+ armoredKey: 'armoredKey',
65
+ armoredNodePassphrase: 'armoredNodePassphrase',
59
66
  file: {
60
- base64ContentKeyPacket: "base64ContentKeyPacket",
67
+ base64ContentKeyPacket: 'base64ContentKeyPacket',
61
68
  },
62
69
  },
63
- }
70
+ };
64
71
 
65
- it("should decrypt bookmark", async () => {
72
+ it('should decrypt bookmark', async () => {
66
73
  const result = await cryptoService.decryptBookmark(encryptedBookmark);
67
74
 
68
75
  expect(result).toMatchObject({
69
- url: resultOk("https://drive.proton.me/urls/tokenId#urlPassword"),
70
- nodeName: resultOk("nodeName"),
76
+ url: resultOk('https://drive.proton.me/urls/tokenId#urlPassword'),
77
+ nodeName: resultOk('nodeName'),
71
78
  });
72
- expect(driveCrypto.decryptShareUrlPassword).toHaveBeenCalledWith("encryptedUrlPassword", ["addressKey"]);
73
- expect(driveCrypto.decryptKeyWithSrpPassword).toHaveBeenCalledWith("urlPassword", "base64SharePasswordSalt", "armoredKey", "armoredPassphrase");
74
- expect(driveCrypto.decryptNodeName).toHaveBeenCalledWith("encryptedName", "decryptedKey", []);
79
+ expect(driveCrypto.decryptShareUrlPassword).toHaveBeenCalledWith('encryptedUrlPassword', ['addressKey']);
80
+ expect(driveCrypto.decryptKeyWithSrpPassword).toHaveBeenCalledWith(
81
+ 'urlPassword',
82
+ 'base64SharePasswordSalt',
83
+ 'armoredKey',
84
+ 'armoredPassphrase',
85
+ );
86
+ expect(driveCrypto.decryptNodeName).toHaveBeenCalledWith('encryptedName', 'decryptedKey', []);
75
87
  expect(telemetry.logEvent).not.toHaveBeenCalled();
76
88
  });
77
89
 
78
- it("should handle undecryptable URL password", async () => {
79
- const error = new Error("Failed to decrypt URL password");
90
+ it('should handle undecryptable URL password', async () => {
91
+ const error = new Error('Failed to decrypt URL password');
80
92
  driveCrypto.decryptShareUrlPassword = jest.fn().mockRejectedValue(error);
81
93
 
82
94
  const result = await cryptoService.decryptBookmark(encryptedBookmark);
83
95
 
84
96
  expect(result).toMatchObject({
85
- url: resultError(new Error("Failed to decrypt bookmark password: Failed to decrypt URL password")),
86
- nodeName: resultError(new Error("Failed to decrypt bookmark password: Failed to decrypt URL password")),
97
+ url: resultError(new Error('Failed to decrypt bookmark password: Failed to decrypt URL password')),
98
+ nodeName: resultError(new Error('Failed to decrypt bookmark password: Failed to decrypt URL password')),
87
99
  });
88
100
  expect(telemetry.logEvent).toHaveBeenCalledWith({
89
101
  eventName: 'decryptionError',
@@ -93,15 +105,15 @@ describe("SharingCryptoService", () => {
93
105
  });
94
106
  });
95
107
 
96
- it("should handle undecryptable share key", async () => {
97
- const error = new Error("Failed to decrypt share key");
108
+ it('should handle undecryptable share key', async () => {
109
+ const error = new Error('Failed to decrypt share key');
98
110
  driveCrypto.decryptKeyWithSrpPassword = jest.fn().mockRejectedValue(error);
99
111
 
100
112
  const result = await cryptoService.decryptBookmark(encryptedBookmark);
101
113
 
102
114
  expect(result).toMatchObject({
103
- url: resultOk("https://drive.proton.me/urls/tokenId#urlPassword"),
104
- nodeName: resultError(new Error("Failed to decrypt bookmark key: Failed to decrypt share key")),
115
+ url: resultOk('https://drive.proton.me/urls/tokenId#urlPassword'),
116
+ nodeName: resultError(new Error('Failed to decrypt bookmark key: Failed to decrypt share key')),
105
117
  });
106
118
  expect(telemetry.logEvent).toHaveBeenCalledWith({
107
119
  eventName: 'decryptionError',
@@ -111,15 +123,15 @@ describe("SharingCryptoService", () => {
111
123
  });
112
124
  });
113
125
 
114
- it("should handle undecryptable node name", async () => {
115
- const error = new Error("Failed to decrypt node name");
126
+ it('should handle undecryptable node name', async () => {
127
+ const error = new Error('Failed to decrypt node name');
116
128
  driveCrypto.decryptNodeName = jest.fn().mockRejectedValue(error);
117
129
 
118
130
  const result = await cryptoService.decryptBookmark(encryptedBookmark);
119
131
 
120
132
  expect(result).toMatchObject({
121
- url: resultOk("https://drive.proton.me/urls/tokenId#urlPassword"),
122
- nodeName: resultError(new Error("Failed to decrypt bookmark name: Failed to decrypt node name")),
133
+ url: resultOk('https://drive.proton.me/urls/tokenId#urlPassword'),
134
+ nodeName: resultError(new Error('Failed to decrypt bookmark name: Failed to decrypt node name')),
123
135
  });
124
136
  expect(telemetry.logEvent).toHaveBeenCalledWith({
125
137
  eventName: 'decryptionError',
@@ -129,17 +141,17 @@ describe("SharingCryptoService", () => {
129
141
  });
130
142
  });
131
143
 
132
- it("should handle invalid node name", async () => {
144
+ it('should handle invalid node name', async () => {
133
145
  driveCrypto.decryptNodeName = jest.fn().mockResolvedValue({
134
- name: "invalid/name",
146
+ name: 'invalid/name',
135
147
  });
136
148
 
137
149
  const result = await cryptoService.decryptBookmark(encryptedBookmark);
138
150
 
139
151
  expect(result).toMatchObject({
140
- url: resultOk("https://drive.proton.me/urls/tokenId#urlPassword"),
152
+ url: resultOk('https://drive.proton.me/urls/tokenId#urlPassword'),
141
153
  nodeName: resultError({
142
- name: "invalid/name",
154
+ name: 'invalid/name',
143
155
  error: "Name must not contain the character '/'",
144
156
  }),
145
157
  });