@protontech/drive-sdk 0.14.10 → 0.15.0

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 (358) hide show
  1. package/README.md +5 -0
  2. package/dist/cache/index.d.ts +1 -1
  3. package/dist/cache/memoryCache.d.ts +1 -1
  4. package/dist/cache/nullCache.d.ts +1 -1
  5. package/dist/crypto/driveCrypto.d.ts +7 -11
  6. package/dist/crypto/driveCrypto.js +35 -38
  7. package/dist/crypto/driveCrypto.js.map +1 -1
  8. package/dist/crypto/driveCrypto.test.js +1 -21
  9. package/dist/crypto/driveCrypto.test.js.map +1 -1
  10. package/dist/crypto/index.d.ts +2 -4
  11. package/dist/crypto/index.js +3 -6
  12. package/dist/crypto/index.js.map +1 -1
  13. package/dist/crypto/interface.d.ts +3 -35
  14. package/dist/crypto/interface.js +0 -7
  15. package/dist/crypto/interface.js.map +1 -1
  16. package/dist/crypto/openPGPCrypto.d.ts +10 -106
  17. package/dist/crypto/openPGPCrypto.js +2 -4
  18. package/dist/crypto/openPGPCrypto.js.map +1 -1
  19. package/dist/diagnostic/index.d.ts +1 -1
  20. package/dist/diagnostic/index.js +1 -1
  21. package/dist/diagnostic/index.js.map +1 -1
  22. package/dist/diagnostic/integrityVerificationStream.js +1 -2
  23. package/dist/diagnostic/integrityVerificationStream.js.map +1 -1
  24. package/dist/diagnostic/interface.d.ts +1 -1
  25. package/dist/diagnostic/nodeUtils.d.ts +1 -1
  26. package/dist/diagnostic/sdkDiagnosticBase.d.ts +2 -2
  27. package/dist/diagnostic/sdkDiagnosticBase.js.map +1 -1
  28. package/dist/diagnostic/sdkDiagnosticMain.js +1 -1
  29. package/dist/diagnostic/sdkDiagnosticMain.js.map +1 -1
  30. package/dist/diagnostic/sdkDiagnosticPhotos.js +1 -1
  31. package/dist/diagnostic/sdkDiagnosticPhotos.js.map +1 -1
  32. package/dist/index.d.ts +4 -3
  33. package/dist/index.js +2 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/interface/account.d.ts +1 -1
  36. package/dist/interface/devices.d.ts +1 -1
  37. package/dist/interface/index.d.ts +15 -15
  38. package/dist/interface/index.js +7 -7
  39. package/dist/interface/index.js.map +1 -1
  40. package/dist/interface/nodes.d.ts +1 -1
  41. package/dist/interface/photos.d.ts +1 -1
  42. package/dist/interface/sharing.d.ts +2 -2
  43. package/dist/internal/apiService/apiService.js +1 -1
  44. package/dist/internal/apiService/apiService.js.map +1 -1
  45. package/dist/internal/apiService/coreTypes.d.ts +8552 -7249
  46. package/dist/internal/apiService/driveTypes.d.ts +47 -92
  47. package/dist/internal/apiService/errors.test.js +1 -1
  48. package/dist/internal/apiService/errors.test.js.map +1 -1
  49. package/dist/internal/apiService/index.d.ts +4 -4
  50. package/dist/internal/apiService/index.js +5 -5
  51. package/dist/internal/apiService/index.js.map +1 -1
  52. package/dist/internal/apiService/transformers.d.ts +1 -1
  53. package/dist/internal/devices/index.d.ts +1 -1
  54. package/dist/internal/devices/manager.test.js +1 -1
  55. package/dist/internal/devices/manager.test.js.map +1 -1
  56. package/dist/internal/download/cryptoService.js +3 -2
  57. package/dist/internal/download/cryptoService.js.map +1 -1
  58. package/dist/internal/download/fileDownloader.js +8 -7
  59. package/dist/internal/download/fileDownloader.js.map +1 -1
  60. package/dist/internal/download/fileDownloader.test.js +1 -1
  61. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  62. package/dist/internal/download/index.d.ts +2 -2
  63. package/dist/internal/download/index.js +1 -1
  64. package/dist/internal/download/index.js.map +1 -1
  65. package/dist/internal/download/interface.d.ts +1 -1
  66. package/dist/internal/download/telemetry.js +2 -3
  67. package/dist/internal/download/telemetry.js.map +1 -1
  68. package/dist/internal/download/telemetry.test.js +5 -0
  69. package/dist/internal/download/telemetry.test.js.map +1 -1
  70. package/dist/internal/download/thumbnailDownloader.d.ts +1 -1
  71. package/dist/internal/download/thumbnailDownloader.js +1 -1
  72. package/dist/internal/download/thumbnailDownloader.js.map +1 -1
  73. package/dist/internal/download/thumbnailDownloader.test.js.map +1 -1
  74. package/dist/internal/errors.d.ts +1 -0
  75. package/dist/internal/errors.js +11 -0
  76. package/dist/internal/errors.js.map +1 -1
  77. package/dist/internal/events/coreEventManager.test.js +1 -1
  78. package/dist/internal/events/coreEventManager.test.js.map +1 -1
  79. package/dist/internal/events/eventManager.d.ts +1 -1
  80. package/dist/internal/events/eventManager.js +1 -0
  81. package/dist/internal/events/eventManager.js.map +1 -1
  82. package/dist/internal/events/index.js +1 -1
  83. package/dist/internal/events/index.js.map +1 -1
  84. package/dist/internal/events/interface.d.ts +8 -0
  85. package/dist/internal/events/interface.js.map +1 -1
  86. package/dist/internal/events/volumeEventManager.js +1 -1
  87. package/dist/internal/events/volumeEventManager.js.map +1 -1
  88. package/dist/internal/events/volumeEventManager.test.js +1 -1
  89. package/dist/internal/events/volumeEventManager.test.js.map +1 -1
  90. package/dist/internal/nodes/apiService.d.ts +10 -4
  91. package/dist/internal/nodes/apiService.js +6 -2
  92. package/dist/internal/nodes/apiService.js.map +1 -1
  93. package/dist/internal/nodes/apiService.test.js +6 -2
  94. package/dist/internal/nodes/apiService.test.js.map +1 -1
  95. package/dist/internal/nodes/cache.d.ts +1 -1
  96. package/dist/internal/nodes/cryptoCache.d.ts +1 -1
  97. package/dist/internal/nodes/cryptoCache.test.js.map +1 -1
  98. package/dist/internal/nodes/cryptoReporter.d.ts +1 -1
  99. package/dist/internal/nodes/cryptoService.d.ts +2 -2
  100. package/dist/internal/nodes/cryptoService.js +2 -2
  101. package/dist/internal/nodes/cryptoService.js.map +1 -1
  102. package/dist/internal/nodes/cryptoService.test.js +1 -1
  103. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  104. package/dist/internal/nodes/events.test.js.map +1 -1
  105. package/dist/internal/nodes/index.d.ts +4 -4
  106. package/dist/internal/nodes/index.js +2 -2
  107. package/dist/internal/nodes/index.js.map +1 -1
  108. package/dist/internal/nodes/index.test.js +3 -3
  109. package/dist/internal/nodes/index.test.js.map +1 -1
  110. package/dist/internal/nodes/interface.d.ts +1 -1
  111. package/dist/internal/nodes/nodesAccess.d.ts +2 -2
  112. package/dist/internal/nodes/nodesAccess.js +3 -3
  113. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  114. package/dist/internal/nodes/nodesAccess.test.js +2 -2
  115. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  116. package/dist/internal/nodes/nodesManagement.d.ts +1 -1
  117. package/dist/internal/nodes/nodesManagement.js +2 -2
  118. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  119. package/dist/internal/nodes/nodesManagement.test.js +6 -6
  120. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  121. package/dist/internal/nodes/nodesRevisions.d.ts +1 -1
  122. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  123. package/dist/internal/photos/addToAlbum.d.ts +1 -1
  124. package/dist/internal/photos/addToAlbum.js.map +1 -1
  125. package/dist/internal/photos/albumsCrypto.js.map +1 -1
  126. package/dist/internal/photos/albumsManager.test.js +1 -1
  127. package/dist/internal/photos/albumsManager.test.js.map +1 -1
  128. package/dist/internal/photos/apiService.js +1 -1
  129. package/dist/internal/photos/index.d.ts +2 -2
  130. package/dist/internal/photos/index.js +5 -5
  131. package/dist/internal/photos/index.js.map +1 -1
  132. package/dist/internal/photos/interface.d.ts +2 -2
  133. package/dist/internal/photos/nodes.d.ts +2 -2
  134. package/dist/internal/photos/nodes.js +11 -1
  135. package/dist/internal/photos/nodes.js.map +1 -1
  136. package/dist/internal/photos/nodes.test.js +17 -3
  137. package/dist/internal/photos/nodes.test.js.map +1 -1
  138. package/dist/internal/photos/photosManager.d.ts +1 -1
  139. package/dist/internal/photos/photosManager.js +1 -1
  140. package/dist/internal/photos/photosManager.js.map +1 -1
  141. package/dist/internal/photos/photosManager.test.js +1 -1
  142. package/dist/internal/photos/photosManager.test.js.map +1 -1
  143. package/dist/internal/photos/photosTransferPayloadBuilder.test.js.map +1 -1
  144. package/dist/internal/photos/timeline.test.js.map +1 -1
  145. package/dist/internal/photos/upload.d.ts +1 -1
  146. package/dist/internal/shares/apiService.d.ts +1 -1
  147. package/dist/internal/shares/cache.d.ts +1 -1
  148. package/dist/internal/shares/cryptoCache.test.js.map +1 -1
  149. package/dist/internal/shares/cryptoService.d.ts +2 -2
  150. package/dist/internal/shares/cryptoService.js +1 -1
  151. package/dist/internal/shares/cryptoService.js.map +1 -1
  152. package/dist/internal/shares/cryptoService.test.js +1 -1
  153. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  154. package/dist/internal/shares/index.d.ts +2 -2
  155. package/dist/internal/shares/index.js +1 -1
  156. package/dist/internal/shares/index.js.map +1 -1
  157. package/dist/internal/shares/manager.d.ts +2 -2
  158. package/dist/internal/shares/manager.js.map +1 -1
  159. package/dist/internal/sharing/apiService.d.ts +2 -2
  160. package/dist/internal/sharing/cryptoService.d.ts +2 -3
  161. package/dist/internal/sharing/cryptoService.js +10 -31
  162. package/dist/internal/sharing/cryptoService.js.map +1 -1
  163. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  164. package/dist/internal/sharing/index.d.ts +3 -3
  165. package/dist/internal/sharing/index.js +1 -1
  166. package/dist/internal/sharing/index.js.map +1 -1
  167. package/dist/internal/sharing/interface.d.ts +2 -2
  168. package/dist/internal/sharing/sharingAccess.d.ts +1 -1
  169. package/dist/internal/sharing/sharingAccess.js +1 -1
  170. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  171. package/dist/internal/sharing/sharingAccess.test.js +1 -1
  172. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  173. package/dist/internal/sharing/sharingManagement.d.ts +3 -3
  174. package/dist/internal/sharing/sharingManagement.js +1 -1
  175. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  176. package/dist/internal/sharing/sharingManagement.test.js +2 -2
  177. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  178. package/dist/internal/sharingPublic/cryptoReporter.d.ts +1 -1
  179. package/dist/internal/sharingPublic/cryptoReporter.js +1 -1
  180. package/dist/internal/sharingPublic/cryptoReporter.js.map +1 -1
  181. package/dist/internal/sharingPublic/index.d.ts +2 -2
  182. package/dist/internal/sharingPublic/index.js +3 -3
  183. package/dist/internal/sharingPublic/index.js.map +1 -1
  184. package/dist/internal/sharingPublic/nodes.d.ts +4 -4
  185. package/dist/internal/sharingPublic/nodes.js +4 -1
  186. package/dist/internal/sharingPublic/nodes.js.map +1 -1
  187. package/dist/internal/sharingPublic/session/apiService.d.ts +1 -1
  188. package/dist/internal/sharingPublic/session/manager.d.ts +1 -1
  189. package/dist/internal/upload/apiService.d.ts +1 -1
  190. package/dist/internal/upload/apiService.js +13 -6
  191. package/dist/internal/upload/apiService.js.map +1 -1
  192. package/dist/internal/upload/cryptoService.d.ts +1 -1
  193. package/dist/internal/upload/cryptoService.js +5 -4
  194. package/dist/internal/upload/cryptoService.js.map +1 -1
  195. package/dist/internal/upload/fileUploader.test.js +1 -1
  196. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  197. package/dist/internal/upload/index.d.ts +2 -2
  198. package/dist/internal/upload/index.js.map +1 -1
  199. package/dist/internal/upload/interface.d.ts +1 -1
  200. package/dist/internal/upload/manager.d.ts +1 -1
  201. package/dist/internal/upload/manager.js +1 -1
  202. package/dist/internal/upload/manager.js.map +1 -1
  203. package/dist/internal/upload/smallFileUploader.test.js +1 -1
  204. package/dist/internal/upload/smallFileUploader.test.js.map +1 -1
  205. package/dist/internal/upload/streamUploader.d.ts +3 -3
  206. package/dist/internal/upload/streamUploader.js +1 -1
  207. package/dist/internal/upload/streamUploader.js.map +1 -1
  208. package/dist/internal/upload/streamUploader.test.js +2 -2
  209. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  210. package/dist/internal/upload/telemetry.d.ts +1 -1
  211. package/dist/internal/upload/telemetry.js +2 -3
  212. package/dist/internal/upload/telemetry.js.map +1 -1
  213. package/dist/internal/upload/telemetry.test.js +5 -0
  214. package/dist/internal/upload/telemetry.test.js.map +1 -1
  215. package/dist/polyfill.d.ts +1 -0
  216. package/dist/polyfill.js +4 -0
  217. package/dist/polyfill.js.map +1 -0
  218. package/dist/protonDriveClient.d.ts +1 -1
  219. package/dist/protonDriveClient.js +3 -3
  220. package/dist/protonDriveClient.js.map +1 -1
  221. package/dist/protonDrivePhotosClient.d.ts +7 -1
  222. package/dist/protonDrivePhotosClient.js +13 -4
  223. package/dist/protonDrivePhotosClient.js.map +1 -1
  224. package/dist/protonDrivePublicLinkClient.d.ts +3 -3
  225. package/dist/protonDrivePublicLinkClient.js +3 -3
  226. package/dist/protonDrivePublicLinkClient.js.map +1 -1
  227. package/dist/transformers.d.ts +1 -1
  228. package/package.json +8 -4
  229. package/src/cache/index.ts +1 -1
  230. package/src/cache/memoryCache.ts +1 -1
  231. package/src/cache/nullCache.ts +1 -1
  232. package/src/crypto/driveCrypto.test.ts +1 -24
  233. package/src/crypto/driveCrypto.ts +37 -35
  234. package/src/crypto/index.ts +2 -4
  235. package/src/crypto/interface.ts +3 -49
  236. package/src/crypto/openPGPCrypto.ts +4 -88
  237. package/src/diagnostic/index.ts +3 -3
  238. package/src/diagnostic/integrityVerificationStream.ts +1 -2
  239. package/src/diagnostic/interface.ts +1 -1
  240. package/src/diagnostic/nodeUtils.ts +1 -1
  241. package/src/diagnostic/sdkDiagnosticBase.ts +6 -6
  242. package/src/diagnostic/sdkDiagnosticMain.ts +2 -2
  243. package/src/diagnostic/sdkDiagnosticPhotos.ts +2 -2
  244. package/src/diagnostic/telemetry.ts +1 -1
  245. package/src/index.ts +4 -3
  246. package/src/interface/account.ts +1 -1
  247. package/src/interface/devices.ts +1 -1
  248. package/src/interface/index.ts +40 -40
  249. package/src/interface/nodes.ts +1 -1
  250. package/src/interface/photos.ts +1 -1
  251. package/src/interface/sharing.ts +2 -2
  252. package/src/internal/apiService/apiService.test.ts +2 -2
  253. package/src/internal/apiService/apiService.ts +3 -3
  254. package/src/internal/apiService/coreTypes.ts +8641 -7349
  255. package/src/internal/apiService/driveTypes.ts +47 -92
  256. package/src/internal/apiService/errors.test.ts +2 -2
  257. package/src/internal/apiService/index.ts +4 -4
  258. package/src/internal/apiService/transformers.ts +1 -1
  259. package/src/internal/devices/index.ts +1 -1
  260. package/src/internal/devices/manager.test.ts +2 -2
  261. package/src/internal/download/cryptoService.ts +6 -11
  262. package/src/internal/download/fileDownloader.test.ts +3 -3
  263. package/src/internal/download/fileDownloader.ts +8 -6
  264. package/src/internal/download/index.ts +3 -3
  265. package/src/internal/download/interface.ts +1 -1
  266. package/src/internal/download/seekableStream.test.ts +1 -1
  267. package/src/internal/download/telemetry.test.ts +7 -1
  268. package/src/internal/download/telemetry.ts +4 -7
  269. package/src/internal/download/thumbnailDownloader.test.ts +1 -1
  270. package/src/internal/download/thumbnailDownloader.ts +2 -2
  271. package/src/internal/errors.ts +15 -0
  272. package/src/internal/events/apiService.ts +2 -2
  273. package/src/internal/events/coreEventManager.test.ts +1 -1
  274. package/src/internal/events/eventManager.ts +2 -1
  275. package/src/internal/events/index.ts +2 -2
  276. package/src/internal/events/interface.ts +8 -0
  277. package/src/internal/events/volumeEventManager.test.ts +1 -1
  278. package/src/internal/events/volumeEventManager.ts +1 -1
  279. package/src/internal/nodes/apiService.test.ts +8 -3
  280. package/src/internal/nodes/apiService.ts +22 -7
  281. package/src/internal/nodes/cache.test.ts +1 -1
  282. package/src/internal/nodes/cache.ts +1 -1
  283. package/src/internal/nodes/cryptoCache.test.ts +1 -1
  284. package/src/internal/nodes/cryptoCache.ts +1 -1
  285. package/src/internal/nodes/cryptoReporter.ts +4 -4
  286. package/src/internal/nodes/cryptoService.test.ts +2 -2
  287. package/src/internal/nodes/cryptoService.ts +14 -15
  288. package/src/internal/nodes/events.test.ts +1 -1
  289. package/src/internal/nodes/extendedAttributes.test.ts +3 -3
  290. package/src/internal/nodes/index.test.ts +8 -8
  291. package/src/internal/nodes/index.ts +6 -6
  292. package/src/internal/nodes/interface.ts +6 -6
  293. package/src/internal/nodes/nodeName.test.ts +1 -1
  294. package/src/internal/nodes/nodesAccess.test.ts +3 -3
  295. package/src/internal/nodes/nodesAccess.ts +6 -6
  296. package/src/internal/nodes/nodesManagement.test.ts +4 -4
  297. package/src/internal/nodes/nodesManagement.ts +6 -6
  298. package/src/internal/nodes/nodesRevisions.ts +1 -1
  299. package/src/internal/photos/addToAlbum.ts +1 -1
  300. package/src/internal/photos/albumsCrypto.ts +1 -0
  301. package/src/internal/photos/albumsManager.test.ts +2 -2
  302. package/src/internal/photos/apiService.ts +1 -1
  303. package/src/internal/photos/index.ts +7 -7
  304. package/src/internal/photos/interface.ts +2 -2
  305. package/src/internal/photos/nodes.test.ts +22 -6
  306. package/src/internal/photos/nodes.ts +16 -9
  307. package/src/internal/photos/photosManager.test.ts +5 -5
  308. package/src/internal/photos/photosManager.ts +4 -4
  309. package/src/internal/photos/photosTransferPayloadBuilder.test.ts +1 -1
  310. package/src/internal/photos/timeline.test.ts +1 -1
  311. package/src/internal/photos/upload.ts +3 -3
  312. package/src/internal/sdkEvents.ts +1 -1
  313. package/src/internal/shares/apiService.ts +1 -1
  314. package/src/internal/shares/cache.ts +1 -1
  315. package/src/internal/shares/cryptoCache.test.ts +1 -1
  316. package/src/internal/shares/cryptoService.test.ts +1 -1
  317. package/src/internal/shares/cryptoService.ts +8 -8
  318. package/src/internal/shares/index.ts +5 -5
  319. package/src/internal/shares/manager.ts +2 -2
  320. package/src/internal/sharing/apiService.ts +10 -10
  321. package/src/internal/sharing/cryptoService.test.ts +1 -1
  322. package/src/internal/sharing/cryptoService.ts +12 -37
  323. package/src/internal/sharing/events.test.ts +2 -2
  324. package/src/internal/sharing/index.ts +3 -3
  325. package/src/internal/sharing/interface.ts +2 -2
  326. package/src/internal/sharing/sharingAccess.test.ts +4 -4
  327. package/src/internal/sharing/sharingAccess.ts +3 -3
  328. package/src/internal/sharing/sharingManagement.test.ts +4 -4
  329. package/src/internal/sharing/sharingManagement.ts +9 -9
  330. package/src/internal/sharingPublic/cryptoReporter.ts +7 -7
  331. package/src/internal/sharingPublic/index.ts +6 -6
  332. package/src/internal/sharingPublic/nodes.ts +7 -4
  333. package/src/internal/sharingPublic/session/apiService.ts +1 -1
  334. package/src/internal/sharingPublic/session/manager.ts +1 -1
  335. package/src/internal/upload/apiService.ts +17 -8
  336. package/src/internal/upload/cryptoService.ts +8 -6
  337. package/src/internal/upload/fileUploader.test.ts +4 -4
  338. package/src/internal/upload/index.ts +3 -3
  339. package/src/internal/upload/interface.ts +1 -2
  340. package/src/internal/upload/manager.ts +4 -4
  341. package/src/internal/upload/smallFileUploader.test.ts +4 -4
  342. package/src/internal/upload/streamUploader.test.ts +5 -5
  343. package/src/internal/upload/streamUploader.ts +4 -4
  344. package/src/internal/upload/telemetry.test.ts +7 -1
  345. package/src/internal/upload/telemetry.ts +5 -8
  346. package/src/polyfill.ts +1 -0
  347. package/src/protonDriveClient.ts +32 -32
  348. package/src/protonDrivePhotosClient.ts +42 -32
  349. package/src/protonDrivePublicLinkClient.ts +25 -25
  350. package/src/transformers.ts +9 -9
  351. package/dist/crypto/hmac.d.ts +0 -22
  352. package/dist/crypto/hmac.js +0 -44
  353. package/dist/crypto/hmac.js.map +0 -1
  354. package/dist/crypto/utils.d.ts +0 -2
  355. package/dist/crypto/utils.js +0 -35
  356. package/dist/crypto/utils.js.map +0 -1
  357. package/src/crypto/hmac.ts +0 -46
  358. package/src/crypto/utils.ts +0 -40
@@ -1,97 +1,13 @@
1
1
  import { c } from 'ttag';
2
2
 
3
- import { OpenPGPCrypto, PrivateKey, PublicKey, SessionKey, VERIFICATION_STATUS } from './interface';
4
- import { uint8ArrayToBase64String } from './utils';
5
-
6
- /**
7
- * Interface matching CryptoProxy interface from client's monorepo:
8
- * clients/packages/crypto/lib/proxy/proxy.ts.
9
- */
10
- export interface OpenPGPCryptoProxy {
11
- generateKey: (options: {
12
- userIDs: { name: string }[];
13
- type: 'ecc';
14
- curve: 'ed25519Legacy';
15
- config?: { aeadProtect: boolean };
16
- }) => Promise<PrivateKey>;
17
- exportPrivateKey: (options: { privateKey: PrivateKey; passphrase: string | null }) => Promise<string>;
18
- importPrivateKey: (options: { armoredKey: string; passphrase: string | null }) => Promise<PrivateKey>;
19
- generateSessionKey: (options: {
20
- recipientKeys: PublicKey[];
21
- config?: { ignoreSEIPDv2FeatureFlag: boolean };
22
- }) => Promise<SessionKey>;
23
- encryptSessionKey: (
24
- options: SessionKey & {
25
- format: 'binary';
26
- encryptionKeys?: PublicKey | PublicKey[];
27
- passwords?: string[];
28
- },
29
- ) => Promise<Uint8Array<ArrayBuffer>>;
30
- decryptSessionKey: (options: {
31
- armoredMessage?: string;
32
- binaryMessage?: Uint8Array<ArrayBuffer>;
33
- decryptionKeys: PrivateKey | PrivateKey[];
34
- }) => Promise<SessionKey | undefined>;
35
- encryptMessage: <Format extends 'armored' | 'binary' = 'armored', Detached extends boolean = false>(options: {
36
- format?: Format;
37
- binaryData: Uint8Array<ArrayBuffer>;
38
- sessionKey?: SessionKey;
39
- encryptionKeys: PublicKey[];
40
- signingKeys?: PrivateKey;
41
- detached?: Detached;
42
- compress?: boolean;
43
- config?: { ignoreSEIPDv2FeatureFlag: boolean };
44
- }) => Promise<
45
- Detached extends true
46
- ? {
47
- message: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
48
- signature: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
49
- }
50
- : {
51
- message: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
52
- }
53
- >;
54
- decryptMessage: <Format extends 'utf8' | 'binary' = 'utf8'>(options: {
55
- format: Format;
56
- armoredMessage?: string;
57
- binaryMessage?: Uint8Array<ArrayBuffer>;
58
- armoredSignature?: string;
59
- binarySignature?: Uint8Array<ArrayBuffer>;
60
- sessionKeys?: SessionKey;
61
- passwords?: string[];
62
- decryptionKeys?: PrivateKey | PrivateKey[];
63
- verificationKeys?: PublicKey | PublicKey[];
64
- }) => Promise<{
65
- data: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
66
- verificationStatus: VERIFICATION_STATUS;
67
- verificationErrors?: Error[];
68
- }>;
69
- signMessage: <Format extends 'binary' | 'armored' = 'armored'>(options: {
70
- format: Format;
71
- binaryData: Uint8Array<ArrayBuffer>;
72
- signingKeys: PrivateKey | PrivateKey[];
73
- detached: boolean;
74
- signatureContext?: { critical: boolean; value: string };
75
- }) => Promise<Format extends 'binary' ? Uint8Array<ArrayBuffer> : string>;
76
- verifyMessage: (options: {
77
- binaryData: Uint8Array<ArrayBuffer>;
78
- armoredSignature?: string;
79
- binarySignature?: Uint8Array<ArrayBuffer>;
80
- verificationKeys: PublicKey | PublicKey[];
81
- signatureContext?: { required: boolean; value: string };
82
- }) => Promise<{
83
- verificationStatus: VERIFICATION_STATUS;
84
- errors?: Error[];
85
- }>;
86
- }
3
+ import type { CryptoApiInterface, OpenPGPCrypto, PrivateKey, PublicKey, SessionKey } from './interface';
87
4
 
88
5
  /**
89
6
  * Implementation of OpenPGPCrypto interface using CryptoProxy from clients
90
- * monorepo that must be passed as dependency. In the future, CryptoProxy
91
- * will be published separately and this implementation will use it directly.
7
+ * monorepo that must be passed as dependency.
92
8
  */
93
9
  export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
94
- constructor(private cryptoProxy: OpenPGPCryptoProxy) {
10
+ constructor(private cryptoProxy: CryptoApiInterface) {
95
11
  this.cryptoProxy = cryptoProxy;
96
12
  }
97
13
 
@@ -99,7 +15,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
99
15
  const value = crypto.getRandomValues(new Uint8Array(32));
100
16
  // TODO: Once all clients can use non-ascii bytes, switch to simple
101
17
  // generating of random bytes without encoding it into base64.
102
- return uint8ArrayToBase64String(value);
18
+ return value.toBase64();
103
19
  }
104
20
 
105
21
  async generateSessionKey(encryptionKeys: PublicKey[], options: { enableAeadWithEncryptionKeys: boolean }) {
@@ -1,18 +1,18 @@
1
1
  import { MemoryCache, NullCache } from '../cache';
2
2
  import { ProtonDriveClientContructorParameters } from '../interface';
3
3
  import { ProtonDriveClient } from '../protonDriveClient';
4
+ import { ProtonDrivePhotosClient } from '../protonDrivePhotosClient';
4
5
  import { Diagnostic as DiagnosticClass } from './diagnostic';
5
- import { Diagnostic } from './interface';
6
6
  import { DiagnosticHTTPClient } from './httpClient';
7
+ import { Diagnostic } from './interface';
7
8
  import { DiagnosticTelemetry } from './telemetry';
8
- import { ProtonDrivePhotosClient } from '../protonDrivePhotosClient';
9
9
 
10
10
  export type {
11
11
  Diagnostic,
12
12
  DiagnosticOptions,
13
- ExpectedTreeNode,
14
13
  DiagnosticProgressCallback,
15
14
  DiagnosticResult,
15
+ ExpectedTreeNode,
16
16
  } from './interface';
17
17
 
18
18
  /**
@@ -1,5 +1,4 @@
1
1
  import { sha1 } from '@noble/hashes/legacy';
2
- import { bytesToHex } from '@noble/hashes/utils';
3
2
 
4
3
  /**
5
4
  * A WritableStream that computes SHA1 hash on the fly.
@@ -23,7 +22,7 @@ export class IntegrityVerificationStream extends WritableStream<Uint8Array> {
23
22
  },
24
23
  close: () => {
25
24
  if (!this._isClosed) {
26
- this._computedSha1 = bytesToHex(this.sha1Hash.digest());
25
+ this._computedSha1 = this.sha1Hash.digest().toHex();
27
26
  this._isClosed = true;
28
27
  }
29
28
  },
@@ -1,4 +1,4 @@
1
- import { Author, MaybeNode, MetricEvent, NodeType, AnonymousUser } from '../interface';
1
+ import { AnonymousUser, Author, MaybeNode, MetricEvent, NodeType } from '../interface';
2
2
  import { LogRecord } from '../telemetry';
3
3
 
4
4
  export interface Diagnostic {
@@ -1,7 +1,7 @@
1
1
  import { MaybeNode, NodeType, Revision } from '../interface';
2
2
  import {
3
- NodeDetails,
4
3
  ExpectedTreeNode,
4
+ NodeDetails,
5
5
  } from './interface';
6
6
 
7
7
  export function getNodeDetails(node: MaybeNode): NodeDetails {
@@ -1,19 +1,19 @@
1
- import { Author, FileDownloader, MaybeNode, NodeOrUid, NodeType, ThumbnailType, ThumbnailResult } from '../interface';
1
+ import { Author, FileDownloader, MaybeNode, NodeOrUid, NodeType, ThumbnailResult, ThumbnailType } from '../interface';
2
2
  import { isProtonDocument, isProtonSheet } from '../internal/nodes/mediaTypes';
3
+ import { IntegrityVerificationStream } from './integrityVerificationStream';
3
4
  import {
4
5
  DiagnosticOptions,
6
+ DiagnosticProgressCallback,
5
7
  DiagnosticResult,
6
8
  ExpectedTreeNode,
7
- DiagnosticProgressCallback,
8
9
  } from './interface';
9
- import { IntegrityVerificationStream } from './integrityVerificationStream';
10
10
  import {
11
- getNodeType,
12
- getNodeDetails,
13
11
  getActiveRevision,
14
- getMediaType,
15
12
  getExpectedTreeNodeDetails,
13
+ getMediaType,
14
+ getNodeDetails,
16
15
  getNodeName,
16
+ getNodeType,
17
17
  } from './nodeUtils';
18
18
 
19
19
  const PROGRESS_REPORT_INTERVAL = 500;
@@ -7,9 +7,9 @@ import {
7
7
  ExpectedTreeNode,
8
8
  TreeNode,
9
9
  } from './interface';
10
- import { zipGenerators } from './zipGenerators';
11
- import { getNodeType, getNodeName, getTreeNodeChildByNodeName, getActiveRevision } from './nodeUtils';
10
+ import { getActiveRevision, getNodeName, getNodeType, getTreeNodeChildByNodeName } from './nodeUtils';
12
11
  import { SDKDiagnosticBase } from './sdkDiagnosticBase';
12
+ import { zipGenerators } from './zipGenerators';
13
13
 
14
14
  /**
15
15
  * Diagnostic tool that uses the main Drive SDK to traverse and verify
@@ -7,9 +7,9 @@ import {
7
7
  ExpectedTreeNode,
8
8
  TreeNode,
9
9
  } from './interface';
10
- import { zipGenerators } from './zipGenerators';
11
- import { getNodeName, getTreeNodeChildByNodeName, getActiveRevision, getNodeType } from './nodeUtils';
10
+ import { getActiveRevision, getNodeName, getNodeType, getTreeNodeChildByNodeName } from './nodeUtils';
12
11
  import { SDKDiagnosticBase } from './sdkDiagnosticBase';
12
+ import { zipGenerators } from './zipGenerators';
13
13
 
14
14
  /**
15
15
  * Diagnostic tool that uses the Photos SDK to traverse and verify
@@ -1,5 +1,5 @@
1
1
  import { MetricEvent } from '../interface';
2
- import { LogRecord, LogLevel } from '../telemetry';
2
+ import { LogLevel, LogRecord } from '../telemetry';
3
3
  import { EventsGenerator } from './eventsGenerator';
4
4
 
5
5
  /**
package/src/index.ts CHANGED
@@ -4,12 +4,13 @@
4
4
 
5
5
  import { makeNodeUid } from './internal/uids';
6
6
 
7
- export * from './interface';
8
7
  export * from './cache';
9
- export * from './errors';
10
- export type { OpenPGPCrypto, OpenPGPCryptoProxy } from './crypto';
8
+ export type { OpenPGPCrypto } from './crypto';
11
9
  export { OpenPGPCryptoWithCryptoProxy } from './crypto';
10
+ export * from './errors';
12
11
  export { NullFeatureFlagProvider } from './featureFlags';
12
+ export * from './interface';
13
+ export type { EventSubscription } from './internal/events';
13
14
  export { ProtonDriveClient } from './protonDriveClient';
14
15
  export { VERSION } from './version';
15
16
 
@@ -28,7 +28,7 @@ export interface ProtonDriveAccount {
28
28
  *
29
29
  * Does not throw if there is no public key for given email, but returns empty array.
30
30
  *
31
- * @param forceRefresh If true, bypasses the cache and fetches fresh keys from the API.
31
+ * @param forceRefresh - If true, bypasses the cache and fetches fresh keys from the API.
32
32
  * @throws Error Only if there is an error while fetching keys.
33
33
  */
34
34
  getPublicKeys(email: string, forceRefresh?: boolean): Promise<PublicKey[]>;
@@ -1,5 +1,5 @@
1
- import { Result } from './result';
2
1
  import { InvalidNameError } from './nodes';
2
+ import { Result } from './result';
3
3
 
4
4
  export type Device = {
5
5
  uid: string;
@@ -5,99 +5,99 @@ import { ProtonDriveAccount } from './account';
5
5
  import { ProtonDriveConfig } from './config';
6
6
  import { FeatureFlagProvider } from './featureFlags';
7
7
  import { ProtonDriveHTTPClient } from './httpClient';
8
- import { Telemetry, MetricEvent } from './telemetry';
8
+ import { MetricEvent, Telemetry } from './telemetry';
9
9
 
10
- export type { Result } from './result';
11
- export { resultOk, resultError } from './result';
12
10
  export type { ProtonDriveAccount, ProtonDriveAccountAddress } from './account';
13
- export type { Author, UnverifiedAuthorError, AnonymousUser } from './author';
11
+ export type { AnonymousUser, Author, UnverifiedAuthorError } from './author';
14
12
  export type { ProtonDriveConfig } from './config';
15
13
  export type { Device, DeviceOrUid } from './devices';
16
- export type { FeatureFlagProvider } from './featureFlags';
17
- export { FeatureFlags } from './featureFlags';
18
14
  export { DeviceType } from './devices';
19
- export type { FileDownloader, DownloadController, SeekableReadableStream } from './download';
15
+ export type { DownloadController, FileDownloader, SeekableReadableStream } from './download';
20
16
  export type {
17
+ DriveEvent,
21
18
  DriveListener,
19
+ FastForwardEvent,
22
20
  LatestEventIdProvider,
23
- DriveEvent,
24
21
  NodeEvent,
25
- FastForwardEvent,
22
+ SharedWithMeUpdated,
26
23
  TreeRefreshEvent,
27
24
  TreeRemovalEvent,
28
- SharedWithMeUpdated,
29
25
  } from './events';
30
26
  export { DriveEventType, SDKEvent } from './events';
27
+ export type { FeatureFlagProvider } from './featureFlags';
28
+ export { FeatureFlags } from './featureFlags';
31
29
  export type {
32
30
  ProtonDriveHTTPClient,
33
- ProtonDriveHTTPClientJsonRequest,
34
31
  ProtonDriveHTTPClientBlobRequest,
32
+ ProtonDriveHTTPClientJsonRequest,
35
33
  } from './httpClient';
36
34
  export type {
37
- MaybeNode,
38
- NodeEntity,
39
35
  DegradedNode,
36
+ InvalidNameError,
40
37
  MaybeMissingNode,
38
+ MaybeNode,
39
+ Membership,
41
40
  MissingNode,
42
- InvalidNameError,
43
- Revision,
41
+ NodeEntity,
44
42
  NodeOrUid,
45
- RevisionOrUid,
46
43
  NodeResult,
47
44
  NodeResultWithError,
48
45
  NodeResultWithNewUid,
49
- Membership,
46
+ Revision,
47
+ RevisionOrUid,
50
48
  } from './nodes';
51
- export { NodeType, MemberRole, RevisionState } from './nodes';
49
+ export { MemberRole, NodeType, RevisionState } from './nodes';
52
50
  export type {
53
- MaybePhotoNode,
54
- MaybeMissingPhotoNode,
55
- PhotoNode,
51
+ AlbumAttributes,
56
52
  DegradedPhotoNode,
53
+ MaybeMissingPhotoNode,
54
+ MaybePhotoNode,
57
55
  PhotoAttributes,
58
- AlbumAttributes,
56
+ PhotoNode,
59
57
  } from './photos';
60
58
  export { PhotoTag } from './photos';
59
+ export type { Result } from './result';
60
+ export { resultError, resultOk } from './result';
61
61
  export type {
62
- ProtonInvitation,
63
- ProtonInvitationWithNode,
64
- NonProtonInvitation,
65
- Member,
66
- PublicLink,
67
- MaybeBookmark,
68
62
  Bookmark,
63
+ BookmarkOrUid,
69
64
  DegradedBookmark,
70
- ProtonInvitationOrUid,
65
+ MaybeBookmark,
66
+ Member,
67
+ NonProtonInvitation,
71
68
  NonProtonInvitationOrUid,
72
- BookmarkOrUid,
73
- ShareNodeSettings,
74
- UnshareNodeSettings,
69
+ ProtonInvitation,
70
+ ProtonInvitationOrUid,
71
+ ProtonInvitationWithNode,
72
+ PublicLink,
75
73
  ShareMembersSettings,
74
+ ShareNodeSettings,
76
75
  SharePublicLinkSettings,
77
76
  SharePublicLinkSettingsObject,
78
77
  ShareResult,
78
+ UnshareNodeSettings,
79
79
  } from './sharing';
80
80
  export { NonProtonInvitationState } from './sharing';
81
81
  export type {
82
- Telemetry,
83
82
  Logger,
84
83
  MetricAPIRetrySucceededEvent,
85
- MetricUploadEvent,
86
- MetricsUploadErrorType,
87
- MetricDownloadEvent,
88
- MetricsDownloadErrorType,
84
+ MetricBlockVerificationErrorEvent,
89
85
  MetricDecryptionErrorEvent,
86
+ MetricDownloadEvent,
87
+ MetricEvent,
90
88
  MetricsDecryptionErrorField,
89
+ MetricsDownloadErrorType,
90
+ MetricsUploadErrorType,
91
+ MetricUploadEvent,
91
92
  MetricVerificationErrorEvent,
92
93
  MetricVerificationErrorField,
93
- MetricBlockVerificationErrorEvent,
94
94
  MetricVolumeEventsSubscriptionsChangedEvent,
95
- MetricEvent,
95
+ Telemetry,
96
96
  } from './telemetry';
97
97
  export { MetricVolumeType } from './telemetry';
98
- export type { FileUploader, UploadController, UploadMetadata } from './upload';
99
98
  export type { Thumbnail, ThumbnailResult } from './thumbnail';
100
99
  export { ThumbnailType } from './thumbnail';
100
+ export type { FileUploader, UploadController, UploadMetadata } from './upload';
101
101
 
102
102
  export type ProtonDriveTelemetry = Telemetry<MetricEvent>;
103
103
  export type ProtonDriveEntitiesCache = ProtonDriveCache<string>;
@@ -1,5 +1,5 @@
1
- import { Result } from './result';
2
1
  import { Author } from './author';
2
+ import { Result } from './result';
3
3
 
4
4
  /**
5
5
  * Node representing a file or folder in the system.
@@ -1,5 +1,5 @@
1
+ import { DegradedNode, MissingNode, NodeEntity, NodeType } from './nodes';
1
2
  import { Result } from './result';
2
- import { DegradedNode, NodeEntity, NodeType, MissingNode } from './nodes';
3
3
 
4
4
  /**
5
5
  * Node representing a photo or album for Photos SDK.
@@ -1,6 +1,6 @@
1
- import { Result } from './result';
2
1
  import { UnverifiedAuthorError } from './author';
3
- import { NodeType, MemberRole, InvalidNameError } from './nodes';
2
+ import { InvalidNameError, MemberRole, NodeType } from './nodes';
3
+ import { Result } from './result';
4
4
 
5
5
  export type Member = {
6
6
  uid: string;
@@ -1,9 +1,9 @@
1
1
  import { AbortError } from '../../errors';
2
- import { ProtonDriveHTTPClient, SDKEvent, Telemetry, MetricEvent } from '../../interface';
2
+ import { MetricEvent, ProtonDriveHTTPClient, SDKEvent, Telemetry } from '../../interface';
3
3
  import { getMockTelemetry } from '../../tests/telemetry';
4
4
  import { SDKEvents } from '../sdkEvents';
5
5
  import { DriveAPIService } from './apiService';
6
- import { HTTPErrorCode, ErrorCode } from './errorCodes';
6
+ import { ErrorCode, HTTPErrorCode } from './errorCodes';
7
7
 
8
8
  jest.useFakeTimers();
9
9
 
@@ -1,10 +1,10 @@
1
1
  import { c } from 'ttag';
2
2
 
3
+ import { AbortError, ProtonDriveError, RateLimitedError, ServerError } from '../../errors';
4
+ import { Logger, ProtonDriveHTTPClient, ProtonDriveTelemetry } from '../../interface';
3
5
  import { VERSION } from '../../version';
4
- import { ProtonDriveHTTPClient, ProtonDriveTelemetry, Logger } from '../../interface';
5
- import { AbortError, ServerError, RateLimitedError, ProtonDriveError } from '../../errors';
6
- import { waitSeconds } from '../wait';
7
6
  import { SDKEvents } from '../sdkEvents';
7
+ import { waitSeconds } from '../wait';
8
8
  import { HTTPErrorCode, isCodeOk, isCodeOkAsync } from './errorCodes';
9
9
  import { apiErrorFactory } from './errors';
10
10