@protontech/drive-sdk 0.14.10 → 0.15.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 (366) 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 +8 -12
  6. package/dist/crypto/driveCrypto.js +36 -39
  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 +4 -4
  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 +4 -4
  118. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  119. package/dist/internal/nodes/nodesManagement.test.js +7 -7
  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/nodes/validations.d.ts +1 -1
  124. package/dist/internal/nodes/validations.js +1 -4
  125. package/dist/internal/nodes/validations.js.map +1 -1
  126. package/dist/internal/photos/addToAlbum.d.ts +1 -1
  127. package/dist/internal/photos/addToAlbum.js.map +1 -1
  128. package/dist/internal/photos/albumsCrypto.js.map +1 -1
  129. package/dist/internal/photos/albumsManager.js +1 -1
  130. package/dist/internal/photos/albumsManager.js.map +1 -1
  131. package/dist/internal/photos/albumsManager.test.js +3 -3
  132. package/dist/internal/photos/albumsManager.test.js.map +1 -1
  133. package/dist/internal/photos/apiService.js +1 -1
  134. package/dist/internal/photos/index.d.ts +2 -2
  135. package/dist/internal/photos/index.js +5 -5
  136. package/dist/internal/photos/index.js.map +1 -1
  137. package/dist/internal/photos/interface.d.ts +2 -2
  138. package/dist/internal/photos/nodes.d.ts +2 -2
  139. package/dist/internal/photos/nodes.js +11 -1
  140. package/dist/internal/photos/nodes.js.map +1 -1
  141. package/dist/internal/photos/nodes.test.js +17 -3
  142. package/dist/internal/photos/nodes.test.js.map +1 -1
  143. package/dist/internal/photos/photosManager.d.ts +1 -1
  144. package/dist/internal/photos/photosManager.js +1 -1
  145. package/dist/internal/photos/photosManager.js.map +1 -1
  146. package/dist/internal/photos/photosManager.test.js +1 -1
  147. package/dist/internal/photos/photosManager.test.js.map +1 -1
  148. package/dist/internal/photos/photosTransferPayloadBuilder.test.js.map +1 -1
  149. package/dist/internal/photos/timeline.test.js.map +1 -1
  150. package/dist/internal/photos/upload.d.ts +1 -1
  151. package/dist/internal/shares/apiService.d.ts +1 -1
  152. package/dist/internal/shares/cache.d.ts +1 -1
  153. package/dist/internal/shares/cryptoCache.test.js.map +1 -1
  154. package/dist/internal/shares/cryptoService.d.ts +2 -2
  155. package/dist/internal/shares/cryptoService.js +1 -1
  156. package/dist/internal/shares/cryptoService.js.map +1 -1
  157. package/dist/internal/shares/cryptoService.test.js +1 -1
  158. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  159. package/dist/internal/shares/index.d.ts +2 -2
  160. package/dist/internal/shares/index.js +1 -1
  161. package/dist/internal/shares/index.js.map +1 -1
  162. package/dist/internal/shares/manager.d.ts +2 -2
  163. package/dist/internal/shares/manager.js.map +1 -1
  164. package/dist/internal/sharing/apiService.d.ts +2 -2
  165. package/dist/internal/sharing/cryptoService.d.ts +2 -3
  166. package/dist/internal/sharing/cryptoService.js +14 -34
  167. package/dist/internal/sharing/cryptoService.js.map +1 -1
  168. package/dist/internal/sharing/cryptoService.test.js +3 -3
  169. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  170. package/dist/internal/sharing/index.d.ts +3 -3
  171. package/dist/internal/sharing/index.js +1 -1
  172. package/dist/internal/sharing/index.js.map +1 -1
  173. package/dist/internal/sharing/interface.d.ts +2 -2
  174. package/dist/internal/sharing/sharingAccess.d.ts +1 -1
  175. package/dist/internal/sharing/sharingAccess.js +1 -1
  176. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  177. package/dist/internal/sharing/sharingAccess.test.js +1 -1
  178. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  179. package/dist/internal/sharing/sharingManagement.d.ts +3 -3
  180. package/dist/internal/sharing/sharingManagement.js +1 -1
  181. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  182. package/dist/internal/sharing/sharingManagement.test.js +2 -2
  183. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  184. package/dist/internal/sharingPublic/cryptoReporter.d.ts +1 -1
  185. package/dist/internal/sharingPublic/cryptoReporter.js +1 -1
  186. package/dist/internal/sharingPublic/cryptoReporter.js.map +1 -1
  187. package/dist/internal/sharingPublic/index.d.ts +2 -2
  188. package/dist/internal/sharingPublic/index.js +3 -3
  189. package/dist/internal/sharingPublic/index.js.map +1 -1
  190. package/dist/internal/sharingPublic/nodes.d.ts +4 -4
  191. package/dist/internal/sharingPublic/nodes.js +4 -1
  192. package/dist/internal/sharingPublic/nodes.js.map +1 -1
  193. package/dist/internal/sharingPublic/session/apiService.d.ts +1 -1
  194. package/dist/internal/sharingPublic/session/manager.d.ts +1 -1
  195. package/dist/internal/upload/apiService.d.ts +1 -1
  196. package/dist/internal/upload/apiService.js +13 -6
  197. package/dist/internal/upload/apiService.js.map +1 -1
  198. package/dist/internal/upload/cryptoService.d.ts +1 -1
  199. package/dist/internal/upload/cryptoService.js +5 -4
  200. package/dist/internal/upload/cryptoService.js.map +1 -1
  201. package/dist/internal/upload/fileUploader.test.js +1 -1
  202. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  203. package/dist/internal/upload/index.d.ts +2 -2
  204. package/dist/internal/upload/index.js.map +1 -1
  205. package/dist/internal/upload/interface.d.ts +1 -1
  206. package/dist/internal/upload/manager.d.ts +1 -1
  207. package/dist/internal/upload/manager.js +1 -1
  208. package/dist/internal/upload/manager.js.map +1 -1
  209. package/dist/internal/upload/smallFileUploader.test.js +1 -1
  210. package/dist/internal/upload/smallFileUploader.test.js.map +1 -1
  211. package/dist/internal/upload/streamUploader.d.ts +3 -3
  212. package/dist/internal/upload/streamUploader.js +1 -1
  213. package/dist/internal/upload/streamUploader.js.map +1 -1
  214. package/dist/internal/upload/streamUploader.test.js +2 -2
  215. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  216. package/dist/internal/upload/telemetry.d.ts +1 -1
  217. package/dist/internal/upload/telemetry.js +2 -3
  218. package/dist/internal/upload/telemetry.js.map +1 -1
  219. package/dist/internal/upload/telemetry.test.js +5 -0
  220. package/dist/internal/upload/telemetry.test.js.map +1 -1
  221. package/dist/polyfill.d.ts +1 -0
  222. package/dist/polyfill.js +4 -0
  223. package/dist/polyfill.js.map +1 -0
  224. package/dist/protonDriveClient.d.ts +1 -1
  225. package/dist/protonDriveClient.js +3 -3
  226. package/dist/protonDriveClient.js.map +1 -1
  227. package/dist/protonDrivePhotosClient.d.ts +7 -1
  228. package/dist/protonDrivePhotosClient.js +13 -4
  229. package/dist/protonDrivePhotosClient.js.map +1 -1
  230. package/dist/protonDrivePublicLinkClient.d.ts +3 -3
  231. package/dist/protonDrivePublicLinkClient.js +3 -3
  232. package/dist/protonDrivePublicLinkClient.js.map +1 -1
  233. package/dist/transformers.d.ts +1 -1
  234. package/package.json +8 -4
  235. package/src/cache/index.ts +1 -1
  236. package/src/cache/memoryCache.ts +1 -1
  237. package/src/cache/nullCache.ts +1 -1
  238. package/src/crypto/driveCrypto.test.ts +1 -24
  239. package/src/crypto/driveCrypto.ts +39 -36
  240. package/src/crypto/index.ts +2 -4
  241. package/src/crypto/interface.ts +3 -49
  242. package/src/crypto/openPGPCrypto.ts +4 -88
  243. package/src/diagnostic/index.ts +3 -3
  244. package/src/diagnostic/integrityVerificationStream.ts +1 -2
  245. package/src/diagnostic/interface.ts +1 -1
  246. package/src/diagnostic/nodeUtils.ts +1 -1
  247. package/src/diagnostic/sdkDiagnosticBase.ts +6 -6
  248. package/src/diagnostic/sdkDiagnosticMain.ts +2 -2
  249. package/src/diagnostic/sdkDiagnosticPhotos.ts +2 -2
  250. package/src/diagnostic/telemetry.ts +1 -1
  251. package/src/index.ts +4 -3
  252. package/src/interface/account.ts +1 -1
  253. package/src/interface/devices.ts +1 -1
  254. package/src/interface/index.ts +40 -40
  255. package/src/interface/nodes.ts +1 -1
  256. package/src/interface/photos.ts +1 -1
  257. package/src/interface/sharing.ts +2 -2
  258. package/src/internal/apiService/apiService.test.ts +2 -2
  259. package/src/internal/apiService/apiService.ts +3 -3
  260. package/src/internal/apiService/coreTypes.ts +8641 -7349
  261. package/src/internal/apiService/driveTypes.ts +47 -92
  262. package/src/internal/apiService/errors.test.ts +2 -2
  263. package/src/internal/apiService/index.ts +4 -4
  264. package/src/internal/apiService/transformers.ts +1 -1
  265. package/src/internal/devices/index.ts +1 -1
  266. package/src/internal/devices/manager.test.ts +2 -2
  267. package/src/internal/download/cryptoService.ts +6 -11
  268. package/src/internal/download/fileDownloader.test.ts +3 -3
  269. package/src/internal/download/fileDownloader.ts +8 -6
  270. package/src/internal/download/index.ts +3 -3
  271. package/src/internal/download/interface.ts +1 -1
  272. package/src/internal/download/seekableStream.test.ts +1 -1
  273. package/src/internal/download/telemetry.test.ts +7 -1
  274. package/src/internal/download/telemetry.ts +4 -7
  275. package/src/internal/download/thumbnailDownloader.test.ts +1 -1
  276. package/src/internal/download/thumbnailDownloader.ts +2 -2
  277. package/src/internal/errors.ts +15 -0
  278. package/src/internal/events/apiService.ts +2 -2
  279. package/src/internal/events/coreEventManager.test.ts +1 -1
  280. package/src/internal/events/eventManager.ts +2 -1
  281. package/src/internal/events/index.ts +2 -2
  282. package/src/internal/events/interface.ts +8 -0
  283. package/src/internal/events/volumeEventManager.test.ts +1 -1
  284. package/src/internal/events/volumeEventManager.ts +1 -1
  285. package/src/internal/nodes/apiService.test.ts +8 -3
  286. package/src/internal/nodes/apiService.ts +22 -7
  287. package/src/internal/nodes/cache.test.ts +1 -1
  288. package/src/internal/nodes/cache.ts +1 -1
  289. package/src/internal/nodes/cryptoCache.test.ts +1 -1
  290. package/src/internal/nodes/cryptoCache.ts +1 -1
  291. package/src/internal/nodes/cryptoReporter.ts +4 -4
  292. package/src/internal/nodes/cryptoService.test.ts +2 -2
  293. package/src/internal/nodes/cryptoService.ts +14 -15
  294. package/src/internal/nodes/events.test.ts +1 -1
  295. package/src/internal/nodes/extendedAttributes.test.ts +3 -3
  296. package/src/internal/nodes/index.test.ts +8 -8
  297. package/src/internal/nodes/index.ts +6 -6
  298. package/src/internal/nodes/interface.ts +6 -6
  299. package/src/internal/nodes/nodeName.test.ts +1 -1
  300. package/src/internal/nodes/nodesAccess.test.ts +5 -5
  301. package/src/internal/nodes/nodesAccess.ts +6 -6
  302. package/src/internal/nodes/nodesManagement.test.ts +5 -5
  303. package/src/internal/nodes/nodesManagement.ts +8 -8
  304. package/src/internal/nodes/nodesRevisions.ts +1 -1
  305. package/src/internal/nodes/validations.ts +1 -4
  306. package/src/internal/photos/addToAlbum.ts +1 -1
  307. package/src/internal/photos/albumsCrypto.ts +1 -0
  308. package/src/internal/photos/albumsManager.test.ts +4 -4
  309. package/src/internal/photos/albumsManager.ts +1 -1
  310. package/src/internal/photos/apiService.ts +1 -1
  311. package/src/internal/photos/index.ts +7 -7
  312. package/src/internal/photos/interface.ts +2 -2
  313. package/src/internal/photos/nodes.test.ts +22 -6
  314. package/src/internal/photos/nodes.ts +16 -9
  315. package/src/internal/photos/photosManager.test.ts +5 -5
  316. package/src/internal/photos/photosManager.ts +4 -4
  317. package/src/internal/photos/photosTransferPayloadBuilder.test.ts +1 -1
  318. package/src/internal/photos/timeline.test.ts +1 -1
  319. package/src/internal/photos/upload.ts +3 -3
  320. package/src/internal/sdkEvents.ts +1 -1
  321. package/src/internal/shares/apiService.ts +1 -1
  322. package/src/internal/shares/cache.ts +1 -1
  323. package/src/internal/shares/cryptoCache.test.ts +1 -1
  324. package/src/internal/shares/cryptoService.test.ts +1 -1
  325. package/src/internal/shares/cryptoService.ts +8 -8
  326. package/src/internal/shares/index.ts +5 -5
  327. package/src/internal/shares/manager.ts +2 -2
  328. package/src/internal/sharing/apiService.ts +10 -10
  329. package/src/internal/sharing/cryptoService.test.ts +4 -4
  330. package/src/internal/sharing/cryptoService.ts +16 -40
  331. package/src/internal/sharing/events.test.ts +2 -2
  332. package/src/internal/sharing/index.ts +3 -3
  333. package/src/internal/sharing/interface.ts +2 -2
  334. package/src/internal/sharing/sharingAccess.test.ts +4 -4
  335. package/src/internal/sharing/sharingAccess.ts +3 -3
  336. package/src/internal/sharing/sharingManagement.test.ts +4 -4
  337. package/src/internal/sharing/sharingManagement.ts +9 -9
  338. package/src/internal/sharingPublic/cryptoReporter.ts +7 -7
  339. package/src/internal/sharingPublic/index.ts +6 -6
  340. package/src/internal/sharingPublic/nodes.ts +7 -4
  341. package/src/internal/sharingPublic/session/apiService.ts +1 -1
  342. package/src/internal/sharingPublic/session/manager.ts +1 -1
  343. package/src/internal/upload/apiService.ts +17 -8
  344. package/src/internal/upload/cryptoService.ts +8 -6
  345. package/src/internal/upload/fileUploader.test.ts +4 -4
  346. package/src/internal/upload/index.ts +3 -3
  347. package/src/internal/upload/interface.ts +1 -2
  348. package/src/internal/upload/manager.ts +4 -4
  349. package/src/internal/upload/smallFileUploader.test.ts +4 -4
  350. package/src/internal/upload/streamUploader.test.ts +5 -5
  351. package/src/internal/upload/streamUploader.ts +4 -4
  352. package/src/internal/upload/telemetry.test.ts +7 -1
  353. package/src/internal/upload/telemetry.ts +5 -8
  354. package/src/polyfill.ts +1 -0
  355. package/src/protonDriveClient.ts +32 -32
  356. package/src/protonDrivePhotosClient.ts +42 -32
  357. package/src/protonDrivePublicLinkClient.ts +25 -25
  358. package/src/transformers.ts +9 -9
  359. package/dist/crypto/hmac.d.ts +0 -22
  360. package/dist/crypto/hmac.js +0 -44
  361. package/dist/crypto/hmac.js.map +0 -1
  362. package/dist/crypto/utils.d.ts +0 -2
  363. package/dist/crypto/utils.js +0 -35
  364. package/dist/crypto/utils.js.map +0 -1
  365. package/src/crypto/hmac.ts +0 -46
  366. package/src/crypto/utils.ts +0 -40
@@ -1,54 +1,54 @@
1
+ import { getConfig } from './config';
2
+ import { DriveCrypto } from './crypto';
3
+ import { NullFeatureFlagProvider } from './featureFlags';
1
4
  import {
2
- Logger,
3
- ProtonDriveClientContructorParameters,
4
- NodeOrUid,
5
- MaybeMissingPhotoNode,
6
- UploadMetadata,
7
5
  FileDownloader,
8
6
  FileUploader,
9
- SDKEvent,
7
+ Logger,
8
+ MaybeMissingPhotoNode,
10
9
  MaybePhotoNode,
11
- ThumbnailType,
12
- ThumbnailResult,
13
- ShareNodeSettings,
14
- ShareResult,
15
- UnshareNodeSettings,
16
- ProtonInvitation,
17
- ProtonInvitationOrUid,
18
- NonProtonInvitationOrUid,
19
- ProtonInvitationWithNode,
10
+ NodeOrUid,
20
11
  NodeResult,
21
12
  NodeResultWithError,
13
+ NonProtonInvitationOrUid,
22
14
  PhotoTag,
15
+ ProtonDriveClientContructorParameters,
16
+ ProtonInvitation,
17
+ ProtonInvitationOrUid,
18
+ ProtonInvitationWithNode,
19
+ SDKEvent,
20
+ ShareNodeSettings,
21
+ ShareResult,
22
+ ThumbnailResult,
23
+ ThumbnailType,
24
+ UnshareNodeSettings,
25
+ UploadMetadata,
23
26
  } from './interface';
24
- import { getConfig } from './config';
25
- import { DriveCrypto } from './crypto';
26
- import { Telemetry } from './telemetry';
27
- import {
28
- convertInternalMissingPhotoNodeIterator,
29
- convertInternalPhotoNode,
30
- convertInternalPhotoNodeIterator,
31
- convertInternalPhotoNodePromise,
32
- getUid,
33
- getUids,
34
- } from './transformers';
35
27
  import { DriveAPIService } from './internal/apiService';
36
- import { makeNodeUid } from './internal/uids';
37
28
  import { initDownloadModule } from './internal/download';
38
29
  import { DriveEventsService, DriveListener, EventSubscription } from './internal/events';
39
30
  import {
40
- PHOTOS_SHARE_TARGET_TYPES,
41
- initPhotosModule,
31
+ AlbumItem,
42
32
  initPhotoSharesModule,
43
- initPhotoUploadModule,
33
+ initPhotosModule,
44
34
  initPhotosNodesModule,
45
- AlbumItem,
35
+ initPhotoUploadModule,
36
+ PHOTOS_SHARE_TARGET_TYPES,
46
37
  TimelineItem,
47
38
  } from './internal/photos';
48
39
  import { SDKEvents } from './internal/sdkEvents';
49
40
  import { initSharesModule } from './internal/shares';
50
41
  import { initSharingModule } from './internal/sharing';
51
- import { NullFeatureFlagProvider } from './featureFlags';
42
+ import { makeNodeUid } from './internal/uids';
43
+ import { Telemetry } from './telemetry';
44
+ import {
45
+ convertInternalMissingPhotoNodeIterator,
46
+ convertInternalPhotoNode,
47
+ convertInternalPhotoNodeIterator,
48
+ convertInternalPhotoNodePromise,
49
+ getUid,
50
+ getUids,
51
+ } from './transformers';
52
52
 
53
53
  /**
54
54
  * ProtonDrivePhotosClient is the interface to access Photos functionality.
@@ -511,6 +511,16 @@ export class ProtonDrivePhotosClient {
511
511
  return this.upload.getFileUploader(getUid(parentFolderUid), name, metadata, signal);
512
512
  }
513
513
 
514
+ /**
515
+ * Returns an available name for a new node in the given parent folder.
516
+ *
517
+ * See `ProtonDriveClient.getAvailableName` for more information.
518
+ */
519
+ async getAvailableName(parentFolderUid: NodeOrUid, name: string): Promise<string> {
520
+ this.logger.info(`Getting available name in photos folder ${getUid(parentFolderUid)}`);
521
+ return this.nodes.management.findAvailableName(getUid(parentFolderUid), name);
522
+ }
523
+
514
524
  /**
515
525
  * Check if the photo is a duplicate.
516
526
  *
@@ -1,42 +1,42 @@
1
1
  import { MemoryCache } from './cache';
2
2
  import { getConfig } from './config';
3
- import { DriveCrypto, OpenPGPCrypto, PrivateKey, SRPModule, SessionKey } from './crypto';
3
+ import { DriveCrypto, OpenPGPCrypto, PrivateKey, SessionKey, SRPModule } from './crypto';
4
+ import { NullFeatureFlagProvider } from './featureFlags';
4
5
  import {
5
- ProtonDriveHTTPClient,
6
- ProtonDriveTelemetry,
7
- ProtonDriveConfig,
8
- Logger,
9
- NodeOrUid,
10
- ProtonDriveAccount,
11
- MaybeNode,
12
- NodeType,
13
6
  CachedCryptoMaterial,
14
- MaybeMissingNode,
7
+ FeatureFlagProvider,
15
8
  FileDownloader,
16
- ThumbnailType,
17
- ThumbnailResult,
18
- UploadMetadata,
19
9
  FileUploader,
10
+ Logger,
11
+ MaybeMissingNode,
12
+ MaybeNode,
13
+ MemberRole,
14
+ NodeOrUid,
20
15
  NodeResult,
16
+ NodeType,
17
+ ProtonDriveAccount,
18
+ ProtonDriveConfig,
19
+ ProtonDriveHTTPClient,
20
+ ProtonDriveTelemetry,
21
21
  SDKEvent,
22
- MemberRole,
23
- FeatureFlagProvider,
22
+ ThumbnailResult,
23
+ ThumbnailType,
24
+ UploadMetadata,
24
25
  } from './interface';
25
- import { Telemetry } from './telemetry';
26
- import {
27
- getUid,
28
- convertInternalNodePromise,
29
- convertInternalNodeIterator,
30
- convertInternalMissingNodeIterator,
31
- getUids,
32
- } from './transformers';
33
26
  import { initDownloadModule } from './internal/download';
34
27
  import { SDKEvents } from './internal/sdkEvents';
35
28
  import { initSharingPublicModule, UnauthDriveAPIService } from './internal/sharingPublic';
29
+ import { NodesSecurityScanResult } from './internal/sharingPublic/nodesSecurity';
36
30
  import { SharingPublicLinkSession } from './internal/sharingPublic/session';
37
31
  import { initUploadModule } from './internal/upload';
38
- import { NullFeatureFlagProvider } from './featureFlags';
39
- import { NodesSecurityScanResult } from './internal/sharingPublic/nodesSecurity';
32
+ import { Telemetry } from './telemetry';
33
+ import {
34
+ convertInternalMissingNodeIterator,
35
+ convertInternalNodeIterator,
36
+ convertInternalNodePromise,
37
+ getUid,
38
+ getUids,
39
+ } from './transformers';
40
40
 
41
41
  /**
42
42
  * ProtonDrivePublicLinkClient is the interface for the public link client.
@@ -1,16 +1,16 @@
1
1
  import {
2
- MaybeNode as PublicMaybeNode,
3
- MaybeMissingNode as PublicMaybeMissingNode,
4
2
  DegradedNode as PublicDegradedNode,
5
- Revision as PublicRevision,
6
- Result,
7
- resultOk,
8
- resultError,
9
- MissingNode,
10
- MaybePhotoNode as PublicMaybePhotoNode,
3
+ DegradedPhotoNode as PublicDegradedPhotoNode,
4
+ MaybeMissingNode as PublicMaybeMissingNode,
11
5
  MaybeMissingPhotoNode as PublicMaybeMissingPhotoNode,
6
+ MaybeNode as PublicMaybeNode,
7
+ MaybePhotoNode as PublicMaybePhotoNode,
8
+ MissingNode,
12
9
  PhotoNode as PublicPhotoNode,
13
- DegradedPhotoNode as PublicDegradedPhotoNode,
10
+ Result,
11
+ resultError,
12
+ resultOk,
13
+ Revision as PublicRevision,
14
14
  } from './interface';
15
15
  import { DecryptedNode as InternalNode, DecryptedRevision as InternalRevision } from './internal/nodes';
16
16
  import { DecryptedPhotoNode as InternalPartialPhotoNode } from './internal/photos';
@@ -1,22 +0,0 @@
1
- export type HmacCryptoKey = CryptoKey;
2
- type HmacKeyUsage = 'sign' | 'verify';
3
- /**
4
- * Import an HMAC-SHA256 key in order to use it with `signData` and `verifyData`.
5
- */
6
- export declare const importHmacKey: (key: Uint8Array<ArrayBuffer>, keyUsage?: HmacKeyUsage[]) => Promise<HmacCryptoKey>;
7
- /**
8
- * Sign data using HMAC-SHA256
9
- * @param key - WebCrypto secret key for signing
10
- * @param data - data to sign
11
- * @param additionalData - additional data to authenticate
12
- */
13
- export declare const computeHmacSignature: (key: HmacCryptoKey, data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>;
14
- /**
15
- * Verify data using HMAC-SHA256
16
- * @param key - WebCrypto secret key for verification
17
- * @param signature - signature over data
18
- * @param data - data to verify
19
- * @param additionalData - additional data to authenticate
20
- */
21
- export declare const verifyData: (key: HmacCryptoKey, signature: Uint8Array<ArrayBuffer>, data: Uint8Array<ArrayBuffer>) => Promise<boolean>;
22
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyData = exports.computeHmacSignature = exports.importHmacKey = void 0;
4
- const HASH_ALGORITHM = 'SHA-256';
5
- const KEY_LENGTH_BYTES = 32;
6
- /**
7
- * Import an HMAC-SHA256 key in order to use it with `signData` and `verifyData`.
8
- */
9
- const importHmacKey = async (key, keyUsage = ['sign', 'verify']) => {
10
- // From https://datatracker.ietf.org/doc/html/rfc2104:
11
- // The key for HMAC can be of any length (keys longer than B bytes are first hashed using H).
12
- // However, less than L bytes (L = 32 bytes for SHA-256) is strongly discouraged as it would
13
- // decrease the security strength of the function. Keys longer than L bytes are acceptable
14
- // but the extra length would not significantly increase the function strength.
15
- // (A longer key may be advisable if the randomness of the key is considered weak.)
16
- if (key.length < KEY_LENGTH_BYTES) {
17
- throw new Error('Unexpected HMAC key size: key is too short');
18
- }
19
- return crypto.subtle.importKey('raw', key, { name: 'HMAC', hash: HASH_ALGORITHM }, false, keyUsage);
20
- };
21
- exports.importHmacKey = importHmacKey;
22
- /**
23
- * Sign data using HMAC-SHA256
24
- * @param key - WebCrypto secret key for signing
25
- * @param data - data to sign
26
- * @param additionalData - additional data to authenticate
27
- */
28
- const computeHmacSignature = async (key, data) => {
29
- const signatureBuffer = await crypto.subtle.sign({ name: 'HMAC', hash: HASH_ALGORITHM }, key, data);
30
- return new Uint8Array(signatureBuffer);
31
- };
32
- exports.computeHmacSignature = computeHmacSignature;
33
- /**
34
- * Verify data using HMAC-SHA256
35
- * @param key - WebCrypto secret key for verification
36
- * @param signature - signature over data
37
- * @param data - data to verify
38
- * @param additionalData - additional data to authenticate
39
- */
40
- const verifyData = async (key, signature, data) => {
41
- return crypto.subtle.verify({ name: 'HMAC', hash: HASH_ALGORITHM }, key, signature, data);
42
- };
43
- exports.verifyData = verifyData;
44
- //# sourceMappingURL=hmac.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmac.js","sourceRoot":"","sources":["../../src/crypto/hmac.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAK5B;;GAEG;AACI,MAAM,aAAa,GAAG,KAAK,EAC9B,GAA4B,EAC5B,WAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,EACvB,EAAE;IACxB,sDAAsD;IACtD,6FAA6F;IAC7F,4FAA4F;IAC5F,2FAA2F;IAC3F,+EAA+E;IAC/E,mFAAmF;IACnF,IAAI,GAAG,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACxG,CAAC,CAAC;AAdW,QAAA,aAAa,iBAcxB;AAEF;;;;;GAKG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAkB,EAAE,IAA6B,EAAE,EAAE;IAC5F,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACpG,OAAO,IAAI,UAAU,CAAc,eAAe,CAAC,CAAC;AACxD,CAAC,CAAC;AAHW,QAAA,oBAAoB,wBAG/B;AAEF;;;;;;GAMG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,GAAkB,EAAE,SAAkC,EAAE,IAA6B,EAAE,EAAE;IACtH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC9F,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB"}
@@ -1,2 +0,0 @@
1
- export declare function uint8ArrayToBase64String(array: Uint8Array): string;
2
- export declare function base64StringToUint8Array(string: string): Uint8Array<ArrayBuffer>;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- // This file has copy-pasted utilities from CryptoProxy located in Proton web clients monorepo.
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.uint8ArrayToBase64String = uint8ArrayToBase64String;
5
- exports.base64StringToUint8Array = base64StringToUint8Array;
6
- function uint8ArrayToBase64String(array) {
7
- return encodeBase64(arrayToBinaryString(array));
8
- }
9
- function base64StringToUint8Array(string) {
10
- return binaryStringToArray(decodeBase64(string) || '');
11
- }
12
- const ifDefined = (cb) => (input) => {
13
- return (input !== undefined ? cb(input) : undefined);
14
- };
15
- const encodeBase64 = ifDefined((input) => btoa(input).trim());
16
- const decodeBase64 = ifDefined((input) => atob(input.trim()));
17
- const arrayToBinaryString = (bytes) => {
18
- const result = [];
19
- const bs = 1 << 14;
20
- const j = bytes.length;
21
- for (let i = 0; i < j; i += bs) {
22
- // @ts-expect-error Uint8Array treated as number[]
23
- // eslint-disable-next-line prefer-spread
24
- result.push(String.fromCharCode.apply(String, bytes.subarray(i, i + bs < j ? i + bs : j)));
25
- }
26
- return result.join('');
27
- };
28
- const binaryStringToArray = (str) => {
29
- const result = new Uint8Array(str.length);
30
- for (let i = 0; i < str.length; i++) {
31
- result[i] = str.charCodeAt(i);
32
- }
33
- return result;
34
- };
35
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";AAAA,+FAA+F;;AAE/F,4DAEC;AAED,4DAEC;AAND,SAAgB,wBAAwB,CAAC,KAAiB;IACtD,OAAO,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAc;IACnD,OAAO,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,SAAS,GACX,CAAO,EAAmB,EAAE,EAAE,CAC9B,CAA0B,KAAQ,EAAE,EAAE;IAClC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAgC,CAAC;AAC7F,CAAC,CAAC;AAEN,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAEtE,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAEtE,MAAM,mBAAmB,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,kDAAkD;QAClD,yCAAyC;QACzC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
@@ -1,46 +0,0 @@
1
- const HASH_ALGORITHM = 'SHA-256';
2
- const KEY_LENGTH_BYTES = 32;
3
- export type HmacCryptoKey = CryptoKey;
4
-
5
- type HmacKeyUsage = 'sign' | 'verify';
6
-
7
- /**
8
- * Import an HMAC-SHA256 key in order to use it with `signData` and `verifyData`.
9
- */
10
- export const importHmacKey = async (
11
- key: Uint8Array<ArrayBuffer>,
12
- keyUsage: HmacKeyUsage[] = ['sign', 'verify'],
13
- ): Promise<HmacCryptoKey> => {
14
- // From https://datatracker.ietf.org/doc/html/rfc2104:
15
- // The key for HMAC can be of any length (keys longer than B bytes are first hashed using H).
16
- // However, less than L bytes (L = 32 bytes for SHA-256) is strongly discouraged as it would
17
- // decrease the security strength of the function. Keys longer than L bytes are acceptable
18
- // but the extra length would not significantly increase the function strength.
19
- // (A longer key may be advisable if the randomness of the key is considered weak.)
20
- if (key.length < KEY_LENGTH_BYTES) {
21
- throw new Error('Unexpected HMAC key size: key is too short');
22
- }
23
- return crypto.subtle.importKey('raw', key, { name: 'HMAC', hash: HASH_ALGORITHM }, false, keyUsage);
24
- };
25
-
26
- /**
27
- * Sign data using HMAC-SHA256
28
- * @param key - WebCrypto secret key for signing
29
- * @param data - data to sign
30
- * @param additionalData - additional data to authenticate
31
- */
32
- export const computeHmacSignature = async (key: HmacCryptoKey, data: Uint8Array<ArrayBuffer>) => {
33
- const signatureBuffer = await crypto.subtle.sign({ name: 'HMAC', hash: HASH_ALGORITHM }, key, data);
34
- return new Uint8Array<ArrayBuffer>(signatureBuffer);
35
- };
36
-
37
- /**
38
- * Verify data using HMAC-SHA256
39
- * @param key - WebCrypto secret key for verification
40
- * @param signature - signature over data
41
- * @param data - data to verify
42
- * @param additionalData - additional data to authenticate
43
- */
44
- export const verifyData = async (key: HmacCryptoKey, signature: Uint8Array<ArrayBuffer>, data: Uint8Array<ArrayBuffer>) => {
45
- return crypto.subtle.verify({ name: 'HMAC', hash: HASH_ALGORITHM }, key, signature, data);
46
- };
@@ -1,40 +0,0 @@
1
- // This file has copy-pasted utilities from CryptoProxy located in Proton web clients monorepo.
2
-
3
- export function uint8ArrayToBase64String(array: Uint8Array) {
4
- return encodeBase64(arrayToBinaryString(array));
5
- }
6
-
7
- export function base64StringToUint8Array(string: string) {
8
- return binaryStringToArray(decodeBase64(string) || '');
9
- }
10
-
11
- const ifDefined =
12
- <T, R>(cb: (input: T) => R) =>
13
- <U extends T | undefined>(input: U) => {
14
- return (input !== undefined ? cb(input as T) : undefined) as U extends T ? R : undefined;
15
- };
16
-
17
- const encodeBase64 = ifDefined((input: string) => btoa(input).trim());
18
-
19
- const decodeBase64 = ifDefined((input: string) => atob(input.trim()));
20
-
21
- const arrayToBinaryString = (bytes: Uint8Array) => {
22
- const result = [];
23
- const bs = 1 << 14;
24
- const j = bytes.length;
25
-
26
- for (let i = 0; i < j; i += bs) {
27
- // @ts-expect-error Uint8Array treated as number[]
28
- // eslint-disable-next-line prefer-spread
29
- result.push(String.fromCharCode.apply(String, bytes.subarray(i, i + bs < j ? i + bs : j)));
30
- }
31
- return result.join('');
32
- };
33
-
34
- const binaryStringToArray = (str: string) => {
35
- const result = new Uint8Array(str.length);
36
- for (let i = 0; i < str.length; i++) {
37
- result[i] = str.charCodeAt(i);
38
- }
39
- return result;
40
- };