@protontech/drive-sdk 0.0.13 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/dist/cache/index.d.ts +1 -0
  2. package/dist/cache/index.js +3 -1
  3. package/dist/cache/index.js.map +1 -1
  4. package/dist/cache/memoryCache.d.ts +1 -1
  5. package/dist/cache/memoryCache.js +0 -1
  6. package/dist/cache/memoryCache.js.map +1 -1
  7. package/dist/cache/memoryCache.test.js +2 -4
  8. package/dist/cache/memoryCache.test.js.map +1 -1
  9. package/dist/cache/nullCache.d.ts +14 -0
  10. package/dist/cache/nullCache.js +36 -0
  11. package/dist/cache/nullCache.js.map +1 -0
  12. package/dist/config.d.ts +16 -1
  13. package/dist/config.js +1 -1
  14. package/dist/config.js.map +1 -1
  15. package/dist/crypto/driveCrypto.d.ts +2 -5
  16. package/dist/crypto/driveCrypto.js +7 -12
  17. package/dist/crypto/driveCrypto.js.map +1 -1
  18. package/dist/crypto/driveCrypto.test.js +14 -14
  19. package/dist/crypto/openPGPCrypto.js +5 -3
  20. package/dist/crypto/openPGPCrypto.js.map +1 -1
  21. package/dist/diagnostic/eventsGenerator.d.ts +14 -0
  22. package/dist/diagnostic/eventsGenerator.js +49 -0
  23. package/dist/diagnostic/eventsGenerator.js.map +1 -0
  24. package/dist/diagnostic/httpClient.d.ts +16 -0
  25. package/dist/diagnostic/httpClient.js +81 -0
  26. package/dist/diagnostic/httpClient.js.map +1 -0
  27. package/dist/diagnostic/index.d.ts +10 -0
  28. package/dist/diagnostic/index.js +35 -0
  29. package/dist/diagnostic/index.js.map +1 -0
  30. package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
  31. package/dist/diagnostic/integrityVerificationStream.js +56 -0
  32. package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
  33. package/dist/diagnostic/interface.d.ts +102 -0
  34. package/dist/diagnostic/interface.js +3 -0
  35. package/dist/diagnostic/interface.js.map +1 -0
  36. package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
  37. package/dist/diagnostic/sdkDiagnostic.js +222 -0
  38. package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
  39. package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
  40. package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
  41. package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
  42. package/dist/diagnostic/telemetry.d.ts +25 -0
  43. package/dist/diagnostic/telemetry.js +70 -0
  44. package/dist/diagnostic/telemetry.js.map +1 -0
  45. package/dist/diagnostic/zipGenerators.d.ts +9 -0
  46. package/dist/diagnostic/zipGenerators.js +64 -0
  47. package/dist/diagnostic/zipGenerators.js.map +1 -0
  48. package/dist/diagnostic/zipGenerators.test.js +144 -0
  49. package/dist/diagnostic/zipGenerators.test.js.map +1 -0
  50. package/dist/errors.d.ts +2 -1
  51. package/dist/errors.js +3 -1
  52. package/dist/errors.js.map +1 -1
  53. package/dist/interface/config.d.ts +26 -0
  54. package/dist/interface/config.js +3 -0
  55. package/dist/interface/config.js.map +1 -0
  56. package/dist/interface/download.d.ts +2 -2
  57. package/dist/interface/events.d.ts +58 -20
  58. package/dist/interface/events.js +11 -1
  59. package/dist/interface/events.js.map +1 -1
  60. package/dist/interface/httpClient.d.ts +0 -14
  61. package/dist/interface/index.d.ts +11 -7
  62. package/dist/interface/index.js +2 -2
  63. package/dist/interface/index.js.map +1 -1
  64. package/dist/interface/nodes.d.ts +9 -0
  65. package/dist/interface/nodes.js.map +1 -1
  66. package/dist/interface/result.js.map +1 -1
  67. package/dist/interface/sharing.d.ts +2 -0
  68. package/dist/interface/sharing.js.map +1 -1
  69. package/dist/interface/telemetry.js +0 -8
  70. package/dist/interface/telemetry.js.map +1 -1
  71. package/dist/interface/thumbnail.js.map +1 -1
  72. package/dist/interface/upload.d.ts +7 -1
  73. package/dist/internal/apiService/apiService.d.ts +1 -1
  74. package/dist/internal/apiService/apiService.js +7 -11
  75. package/dist/internal/apiService/apiService.js.map +1 -1
  76. package/dist/internal/apiService/apiService.test.js +55 -48
  77. package/dist/internal/apiService/apiService.test.js.map +1 -1
  78. package/dist/internal/apiService/coreTypes.d.ts +2356 -2356
  79. package/dist/internal/apiService/driveTypes.d.ts +1680 -1680
  80. package/dist/internal/apiService/errors.js +14 -8
  81. package/dist/internal/apiService/errors.js.map +1 -1
  82. package/dist/internal/apiService/errors.test.js +17 -12
  83. package/dist/internal/apiService/errors.test.js.map +1 -1
  84. package/dist/internal/apiService/transformers.d.ts +1 -1
  85. package/dist/internal/apiService/transformers.js +1 -1
  86. package/dist/internal/asyncIteratorMap.test.js +2 -2
  87. package/dist/internal/asyncIteratorMap.test.js.map +1 -1
  88. package/dist/internal/asyncIteratorRace.d.ts +13 -0
  89. package/dist/internal/asyncIteratorRace.js +59 -0
  90. package/dist/internal/asyncIteratorRace.js.map +1 -0
  91. package/dist/internal/asyncIteratorRace.test.d.ts +1 -0
  92. package/dist/internal/asyncIteratorRace.test.js +119 -0
  93. package/dist/internal/asyncIteratorRace.test.js.map +1 -0
  94. package/dist/internal/batch.d.ts +1 -0
  95. package/dist/internal/batch.js +12 -0
  96. package/dist/internal/batch.js.map +1 -0
  97. package/dist/internal/batch.test.d.ts +1 -0
  98. package/dist/internal/batch.test.js +41 -0
  99. package/dist/internal/batch.test.js.map +1 -0
  100. package/dist/internal/batchLoading.js.map +1 -1
  101. package/dist/internal/batchLoading.test.js +13 -13
  102. package/dist/internal/batchLoading.test.js.map +1 -1
  103. package/dist/internal/devices/apiService.d.ts +3 -3
  104. package/dist/internal/devices/apiService.js +2 -2
  105. package/dist/internal/devices/apiService.js.map +1 -1
  106. package/dist/internal/devices/cryptoService.js +1 -2
  107. package/dist/internal/devices/cryptoService.js.map +1 -1
  108. package/dist/internal/devices/index.d.ts +5 -5
  109. package/dist/internal/devices/index.js.map +1 -1
  110. package/dist/internal/devices/interface.d.ts +3 -3
  111. package/dist/internal/devices/manager.js +2 -2
  112. package/dist/internal/devices/manager.js.map +1 -1
  113. package/dist/internal/devices/manager.test.js +38 -7
  114. package/dist/internal/devices/manager.test.js.map +1 -1
  115. package/dist/internal/download/apiService.d.ts +4 -4
  116. package/dist/internal/download/apiService.js +32 -32
  117. package/dist/internal/download/apiService.js.map +1 -1
  118. package/dist/internal/download/cryptoService.d.ts +4 -4
  119. package/dist/internal/download/cryptoService.js +6 -5
  120. package/dist/internal/download/cryptoService.js.map +1 -1
  121. package/dist/internal/download/fileDownloader.d.ts +6 -6
  122. package/dist/internal/download/fileDownloader.js +3 -2
  123. package/dist/internal/download/fileDownloader.js.map +1 -1
  124. package/dist/internal/download/fileDownloader.test.js +1 -1
  125. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  126. package/dist/internal/download/index.d.ts +5 -5
  127. package/dist/internal/download/index.js +5 -5
  128. package/dist/internal/download/index.js.map +1 -1
  129. package/dist/internal/download/interface.d.ts +3 -4
  130. package/dist/internal/download/telemetry.d.ts +3 -3
  131. package/dist/internal/download/telemetry.js +4 -2
  132. package/dist/internal/download/telemetry.js.map +1 -1
  133. package/dist/internal/download/telemetry.test.js +8 -8
  134. package/dist/internal/download/telemetry.test.js.map +1 -1
  135. package/dist/internal/download/thumbnailDownloader.d.ts +4 -4
  136. package/dist/internal/download/thumbnailDownloader.js +6 -6
  137. package/dist/internal/download/thumbnailDownloader.js.map +1 -1
  138. package/dist/internal/download/thumbnailDownloader.test.js.map +1 -1
  139. package/dist/internal/errors.d.ts +1 -1
  140. package/dist/internal/errors.js +1 -3
  141. package/dist/internal/errors.js.map +1 -1
  142. package/dist/internal/events/apiService.d.ts +5 -7
  143. package/dist/internal/events/apiService.js +19 -22
  144. package/dist/internal/events/apiService.js.map +1 -1
  145. package/dist/internal/events/coreEventManager.d.ts +9 -12
  146. package/dist/internal/events/coreEventManager.js +19 -36
  147. package/dist/internal/events/coreEventManager.js.map +1 -1
  148. package/dist/internal/events/coreEventManager.test.d.ts +1 -0
  149. package/dist/internal/events/coreEventManager.test.js +87 -0
  150. package/dist/internal/events/coreEventManager.test.js.map +1 -0
  151. package/dist/internal/events/eventManager.d.ts +11 -36
  152. package/dist/internal/events/eventManager.js +59 -106
  153. package/dist/internal/events/eventManager.js.map +1 -1
  154. package/dist/internal/events/eventManager.test.js +177 -83
  155. package/dist/internal/events/eventManager.test.js.map +1 -1
  156. package/dist/internal/events/index.d.ts +16 -36
  157. package/dist/internal/events/index.js +56 -72
  158. package/dist/internal/events/index.js.map +1 -1
  159. package/dist/internal/events/interface.d.ts +59 -14
  160. package/dist/internal/events/interface.js +12 -3
  161. package/dist/internal/events/interface.js.map +1 -1
  162. package/dist/internal/events/volumeEventManager.d.ts +9 -19
  163. package/dist/internal/events/volumeEventManager.js +58 -45
  164. package/dist/internal/events/volumeEventManager.js.map +1 -1
  165. package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
  166. package/dist/internal/events/volumeEventManager.test.js +203 -0
  167. package/dist/internal/events/volumeEventManager.test.js.map +1 -0
  168. package/dist/internal/nodes/apiService.d.ts +4 -3
  169. package/dist/internal/nodes/apiService.js +36 -15
  170. package/dist/internal/nodes/apiService.js.map +1 -1
  171. package/dist/internal/nodes/apiService.test.js +60 -41
  172. package/dist/internal/nodes/apiService.test.js.map +1 -1
  173. package/dist/internal/nodes/cache.d.ts +14 -5
  174. package/dist/internal/nodes/cache.js +31 -7
  175. package/dist/internal/nodes/cache.js.map +1 -1
  176. package/dist/internal/nodes/cache.test.js +31 -9
  177. package/dist/internal/nodes/cache.test.js.map +1 -1
  178. package/dist/internal/nodes/cryptoCache.d.ts +2 -2
  179. package/dist/internal/nodes/cryptoCache.js.map +1 -1
  180. package/dist/internal/nodes/cryptoCache.test.js +24 -4
  181. package/dist/internal/nodes/cryptoCache.test.js.map +1 -1
  182. package/dist/internal/nodes/cryptoService.d.ts +4 -4
  183. package/dist/internal/nodes/cryptoService.js +11 -17
  184. package/dist/internal/nodes/cryptoService.js.map +1 -1
  185. package/dist/internal/nodes/cryptoService.test.js +320 -241
  186. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  187. package/dist/internal/nodes/events.d.ts +8 -84
  188. package/dist/internal/nodes/events.js +43 -217
  189. package/dist/internal/nodes/events.js.map +1 -1
  190. package/dist/internal/nodes/events.test.js +35 -279
  191. package/dist/internal/nodes/events.test.js.map +1 -1
  192. package/dist/internal/nodes/extendedAttributes.d.ts +1 -1
  193. package/dist/internal/nodes/extendedAttributes.js +3 -1
  194. package/dist/internal/nodes/extendedAttributes.js.map +1 -1
  195. package/dist/internal/nodes/extendedAttributes.test.js +7 -10
  196. package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
  197. package/dist/internal/nodes/index.d.ts +12 -13
  198. package/dist/internal/nodes/index.js +5 -5
  199. package/dist/internal/nodes/index.js.map +1 -1
  200. package/dist/internal/nodes/index.test.js +24 -32
  201. package/dist/internal/nodes/index.test.js.map +1 -1
  202. package/dist/internal/nodes/interface.d.ts +2 -2
  203. package/dist/internal/nodes/nodesAccess.d.ts +22 -7
  204. package/dist/internal/nodes/nodesAccess.js +65 -16
  205. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  206. package/dist/internal/nodes/nodesAccess.test.js +165 -101
  207. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  208. package/dist/internal/nodes/nodesManagement.d.ts +7 -9
  209. package/dist/internal/nodes/nodesManagement.js +21 -33
  210. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  211. package/dist/internal/nodes/nodesManagement.test.js +42 -21
  212. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  213. package/dist/internal/nodes/nodesRevisions.d.ts +4 -4
  214. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  215. package/dist/internal/photos/albums.d.ts +3 -3
  216. package/dist/internal/photos/albums.js.map +1 -1
  217. package/dist/internal/photos/apiService.d.ts +1 -1
  218. package/dist/internal/photos/apiService.js +3 -6
  219. package/dist/internal/photos/apiService.js.map +1 -1
  220. package/dist/internal/photos/cache.d.ts +1 -1
  221. package/dist/internal/photos/index.d.ts +5 -5
  222. package/dist/internal/photos/index.js.map +1 -1
  223. package/dist/internal/photos/interface.d.ts +2 -2
  224. package/dist/internal/photos/photosTimeline.d.ts +3 -3
  225. package/dist/internal/photos/photosTimeline.js +1 -2
  226. package/dist/internal/photos/photosTimeline.js.map +1 -1
  227. package/dist/internal/sdkEvents.d.ts +1 -1
  228. package/dist/internal/sdkEvents.js +2 -7
  229. package/dist/internal/sdkEvents.js.map +1 -1
  230. package/dist/internal/sdkEvents.test.js +8 -8
  231. package/dist/internal/shares/apiService.d.ts +2 -2
  232. package/dist/internal/shares/apiService.js +5 -3
  233. package/dist/internal/shares/apiService.js.map +1 -1
  234. package/dist/internal/shares/cache.d.ts +4 -2
  235. package/dist/internal/shares/cache.js +14 -6
  236. package/dist/internal/shares/cache.js.map +1 -1
  237. package/dist/internal/shares/cache.test.js.map +1 -1
  238. package/dist/internal/shares/cryptoCache.d.ts +2 -2
  239. package/dist/internal/shares/cryptoCache.test.js +8 -2
  240. package/dist/internal/shares/cryptoCache.test.js.map +1 -1
  241. package/dist/internal/shares/cryptoService.d.ts +3 -3
  242. package/dist/internal/shares/cryptoService.js.map +1 -1
  243. package/dist/internal/shares/cryptoService.test.js +42 -42
  244. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  245. package/dist/internal/shares/index.d.ts +4 -4
  246. package/dist/internal/shares/index.js.map +1 -1
  247. package/dist/internal/shares/interface.d.ts +2 -2
  248. package/dist/internal/shares/manager.d.ts +8 -7
  249. package/dist/internal/shares/manager.js +3 -0
  250. package/dist/internal/shares/manager.js.map +1 -1
  251. package/dist/internal/shares/manager.test.js +71 -63
  252. package/dist/internal/shares/manager.test.js.map +1 -1
  253. package/dist/internal/sharing/apiService.d.ts +4 -4
  254. package/dist/internal/sharing/apiService.js +5 -3
  255. package/dist/internal/sharing/apiService.js.map +1 -1
  256. package/dist/internal/sharing/cache.d.ts +1 -1
  257. package/dist/internal/sharing/cache.test.js +33 -33
  258. package/dist/internal/sharing/cryptoService.d.ts +3 -3
  259. package/dist/internal/sharing/cryptoService.js +3 -4
  260. package/dist/internal/sharing/cryptoService.js.map +1 -1
  261. package/dist/internal/sharing/cryptoService.test.js +39 -39
  262. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  263. package/dist/internal/sharing/events.d.ts +24 -56
  264. package/dist/internal/sharing/events.js +45 -138
  265. package/dist/internal/sharing/events.js.map +1 -1
  266. package/dist/internal/sharing/events.test.js +85 -189
  267. package/dist/internal/sharing/events.test.js.map +1 -1
  268. package/dist/internal/sharing/index.d.ts +8 -9
  269. package/dist/internal/sharing/index.js +5 -5
  270. package/dist/internal/sharing/index.js.map +1 -1
  271. package/dist/internal/sharing/interface.d.ts +8 -4
  272. package/dist/internal/sharing/sharingAccess.d.ts +6 -6
  273. package/dist/internal/sharing/sharingAccess.js +8 -4
  274. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  275. package/dist/internal/sharing/sharingAccess.test.js +45 -39
  276. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  277. package/dist/internal/sharing/sharingManagement.d.ts +5 -6
  278. package/dist/internal/sharing/sharingManagement.js +12 -16
  279. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  280. package/dist/internal/sharing/sharingManagement.test.js +305 -286
  281. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  282. package/dist/internal/uids.js.map +1 -1
  283. package/dist/internal/upload/apiService.d.ts +5 -6
  284. package/dist/internal/upload/apiService.js +8 -5
  285. package/dist/internal/upload/apiService.js.map +1 -1
  286. package/dist/internal/upload/blockVerifier.d.ts +3 -3
  287. package/dist/internal/upload/blockVerifier.js +1 -1
  288. package/dist/internal/upload/blockVerifier.js.map +1 -1
  289. package/dist/internal/upload/chunkStreamReader.test.js +6 -6
  290. package/dist/internal/upload/cryptoService.d.ts +4 -4
  291. package/dist/internal/upload/cryptoService.js +4 -4
  292. package/dist/internal/upload/cryptoService.js.map +1 -1
  293. package/dist/internal/upload/digests.js.map +1 -1
  294. package/dist/internal/upload/fileUploader.d.ts +6 -6
  295. package/dist/internal/upload/fileUploader.js.map +1 -1
  296. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  297. package/dist/internal/upload/index.d.ts +6 -6
  298. package/dist/internal/upload/index.js +3 -3
  299. package/dist/internal/upload/index.js.map +1 -1
  300. package/dist/internal/upload/interface.d.ts +5 -3
  301. package/dist/internal/upload/manager.d.ts +8 -8
  302. package/dist/internal/upload/manager.js +23 -52
  303. package/dist/internal/upload/manager.js.map +1 -1
  304. package/dist/internal/upload/manager.test.js +185 -147
  305. package/dist/internal/upload/manager.test.js.map +1 -1
  306. package/dist/internal/upload/streamUploader.d.ts +6 -6
  307. package/dist/internal/upload/streamUploader.js +9 -8
  308. package/dist/internal/upload/streamUploader.js.map +1 -1
  309. package/dist/internal/upload/streamUploader.test.js +17 -12
  310. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  311. package/dist/internal/upload/telemetry.d.ts +3 -3
  312. package/dist/internal/upload/telemetry.js +5 -3
  313. package/dist/internal/upload/telemetry.js.map +1 -1
  314. package/dist/internal/upload/telemetry.test.js +8 -8
  315. package/dist/internal/upload/telemetry.test.js.map +1 -1
  316. package/dist/protonDriveClient.d.ts +27 -170
  317. package/dist/protonDriveClient.js +37 -198
  318. package/dist/protonDriveClient.js.map +1 -1
  319. package/dist/protonDrivePhotosClient.js +3 -2
  320. package/dist/protonDrivePhotosClient.js.map +1 -1
  321. package/dist/telemetry.js +18 -15
  322. package/dist/telemetry.js.map +1 -1
  323. package/dist/tests/logger.js.map +1 -1
  324. package/dist/tests/telemetry.d.ts +1 -1
  325. package/dist/transformers.js +4 -2
  326. package/dist/transformers.js.map +1 -1
  327. package/package.json +3 -3
  328. package/src/cache/index.ts +1 -0
  329. package/src/cache/interface.ts +22 -22
  330. package/src/cache/memoryCache.test.ts +7 -7
  331. package/src/cache/memoryCache.ts +5 -5
  332. package/src/cache/nullCache.ts +38 -0
  333. package/src/config.ts +17 -2
  334. package/src/crypto/driveCrypto.test.ts +15 -15
  335. package/src/crypto/driveCrypto.ts +120 -156
  336. package/src/crypto/hmac.ts +1 -1
  337. package/src/crypto/interface.ts +63 -72
  338. package/src/crypto/openPGPCrypto.ts +76 -94
  339. package/src/crypto/utils.ts +1 -1
  340. package/src/diagnostic/eventsGenerator.ts +48 -0
  341. package/src/diagnostic/httpClient.ts +84 -0
  342. package/src/diagnostic/index.ts +40 -0
  343. package/src/diagnostic/integrityVerificationStream.ts +55 -0
  344. package/src/diagnostic/interface.ts +158 -0
  345. package/src/diagnostic/sdkDiagnostic.ts +249 -0
  346. package/src/diagnostic/sdkDiagnosticFull.ts +37 -0
  347. package/src/diagnostic/telemetry.ts +74 -0
  348. package/src/diagnostic/zipGenerators.test.ts +177 -0
  349. package/src/diagnostic/zipGenerators.ts +70 -0
  350. package/src/errors.ts +25 -22
  351. package/src/index.ts +3 -3
  352. package/src/interface/account.ts +10 -10
  353. package/src/interface/author.ts +6 -6
  354. package/src/interface/config.ts +28 -0
  355. package/src/interface/devices.ts +6 -6
  356. package/src/interface/download.ts +12 -9
  357. package/src/interface/events.ts +76 -25
  358. package/src/interface/httpClient.ts +11 -27
  359. package/src/interface/index.ts +81 -20
  360. package/src/interface/nodes.ts +67 -60
  361. package/src/interface/result.ts +1 -3
  362. package/src/interface/sharing.ts +60 -56
  363. package/src/interface/telemetry.ts +74 -74
  364. package/src/interface/thumbnail.ts +5 -6
  365. package/src/interface/upload.ts +25 -11
  366. package/src/internal/apiService/apiService.test.ts +109 -76
  367. package/src/internal/apiService/apiService.ts +40 -26
  368. package/src/internal/apiService/coreTypes.ts +2474 -2463
  369. package/src/internal/apiService/driveTypes.ts +1868 -1822
  370. package/src/internal/apiService/errorCodes.ts +4 -4
  371. package/src/internal/apiService/errors.test.ts +25 -23
  372. package/src/internal/apiService/errors.ts +15 -9
  373. package/src/internal/apiService/index.ts +1 -1
  374. package/src/internal/apiService/transformers.ts +2 -2
  375. package/src/internal/asyncIteratorMap.test.ts +4 -4
  376. package/src/internal/asyncIteratorMap.ts +1 -1
  377. package/src/internal/asyncIteratorRace.test.ts +149 -0
  378. package/src/internal/asyncIteratorRace.ts +79 -0
  379. package/src/internal/batch.test.ts +50 -0
  380. package/src/internal/batch.ts +9 -0
  381. package/src/internal/batchLoading.test.ts +13 -14
  382. package/src/internal/batchLoading.ts +8 -8
  383. package/src/internal/devices/apiService.ts +58 -51
  384. package/src/internal/devices/cryptoService.ts +22 -17
  385. package/src/internal/devices/index.ts +17 -10
  386. package/src/internal/devices/interface.ts +21 -12
  387. package/src/internal/devices/manager.test.ts +40 -9
  388. package/src/internal/devices/manager.ts +3 -3
  389. package/src/internal/download/apiService.ts +72 -52
  390. package/src/internal/download/cryptoService.ts +34 -18
  391. package/src/internal/download/fileDownloader.test.ts +25 -9
  392. package/src/internal/download/fileDownloader.ts +38 -20
  393. package/src/internal/download/index.ts +19 -19
  394. package/src/internal/download/interface.ts +19 -20
  395. package/src/internal/download/queue.ts +3 -3
  396. package/src/internal/download/telemetry.test.ts +11 -11
  397. package/src/internal/download/telemetry.ts +24 -14
  398. package/src/internal/download/thumbnailDownloader.test.ts +11 -6
  399. package/src/internal/download/thumbnailDownloader.ts +43 -32
  400. package/src/internal/errors.ts +7 -5
  401. package/src/internal/events/apiService.ts +46 -36
  402. package/src/internal/events/coreEventManager.test.ts +101 -0
  403. package/src/internal/events/coreEventManager.ts +26 -48
  404. package/src/internal/events/eventManager.test.ts +211 -93
  405. package/src/internal/events/eventManager.ts +72 -117
  406. package/src/internal/events/index.ts +71 -91
  407. package/src/internal/events/interface.ts +92 -29
  408. package/src/internal/events/volumeEventManager.test.ts +239 -0
  409. package/src/internal/events/volumeEventManager.ts +68 -57
  410. package/src/internal/nodes/apiService.test.ts +197 -147
  411. package/src/internal/nodes/apiService.ts +288 -174
  412. package/src/internal/nodes/cache.test.ts +48 -20
  413. package/src/internal/nodes/cache.ts +79 -45
  414. package/src/internal/nodes/cryptoCache.test.ts +34 -14
  415. package/src/internal/nodes/cryptoCache.ts +10 -5
  416. package/src/internal/nodes/cryptoService.test.ts +492 -351
  417. package/src/internal/nodes/cryptoService.ts +171 -89
  418. package/src/internal/nodes/events.test.ts +48 -344
  419. package/src/internal/nodes/events.ts +48 -254
  420. package/src/internal/nodes/extendedAttributes.test.ts +28 -24
  421. package/src/internal/nodes/extendedAttributes.ts +20 -15
  422. package/src/internal/nodes/index.test.ts +51 -55
  423. package/src/internal/nodes/index.ts +32 -22
  424. package/src/internal/nodes/interface.ts +44 -31
  425. package/src/internal/nodes/nodesAccess.test.ts +237 -130
  426. package/src/internal/nodes/nodesAccess.ts +113 -50
  427. package/src/internal/nodes/nodesManagement.test.ts +64 -39
  428. package/src/internal/nodes/nodesManagement.ts +51 -62
  429. package/src/internal/nodes/nodesRevisions.ts +7 -7
  430. package/src/internal/nodes/validations.ts +2 -2
  431. package/src/internal/photos/albums.ts +5 -5
  432. package/src/internal/photos/apiService.ts +4 -7
  433. package/src/internal/photos/cache.ts +1 -1
  434. package/src/internal/photos/index.ts +8 -8
  435. package/src/internal/photos/interface.ts +2 -2
  436. package/src/internal/photos/photosTimeline.ts +4 -5
  437. package/src/internal/sdkEvents.test.ts +10 -10
  438. package/src/internal/sdkEvents.ts +5 -13
  439. package/src/internal/shares/apiService.ts +44 -33
  440. package/src/internal/shares/cache.test.ts +6 -4
  441. package/src/internal/shares/cache.ts +25 -14
  442. package/src/internal/shares/cryptoCache.test.ts +17 -11
  443. package/src/internal/shares/cryptoCache.ts +4 -4
  444. package/src/internal/shares/cryptoService.test.ts +72 -74
  445. package/src/internal/shares/cryptoService.ts +48 -23
  446. package/src/internal/shares/index.ts +23 -11
  447. package/src/internal/shares/interface.ts +8 -8
  448. package/src/internal/shares/manager.test.ts +88 -80
  449. package/src/internal/shares/manager.ts +27 -23
  450. package/src/internal/sharing/apiService.ts +283 -175
  451. package/src/internal/sharing/cache.test.ts +35 -35
  452. package/src/internal/sharing/cache.ts +3 -3
  453. package/src/internal/sharing/cryptoService.test.ts +58 -46
  454. package/src/internal/sharing/cryptoService.ts +121 -83
  455. package/src/internal/sharing/events.test.ts +97 -207
  456. package/src/internal/sharing/events.ts +46 -157
  457. package/src/internal/sharing/index.ts +24 -16
  458. package/src/internal/sharing/interface.ts +46 -42
  459. package/src/internal/sharing/sharingAccess.test.ts +71 -65
  460. package/src/internal/sharing/sharingAccess.ts +39 -21
  461. package/src/internal/sharing/sharingManagement.test.ts +405 -335
  462. package/src/internal/sharing/sharingManagement.ts +144 -75
  463. package/src/internal/uids.ts +1 -1
  464. package/src/internal/upload/apiService.ts +168 -119
  465. package/src/internal/upload/blockVerifier.ts +8 -6
  466. package/src/internal/upload/chunkStreamReader.test.ts +7 -7
  467. package/src/internal/upload/cryptoService.ts +42 -36
  468. package/src/internal/upload/digests.ts +2 -2
  469. package/src/internal/upload/fileUploader.test.ts +15 -3
  470. package/src/internal/upload/fileUploader.ts +39 -17
  471. package/src/internal/upload/index.ts +17 -18
  472. package/src/internal/upload/interface.ts +79 -77
  473. package/src/internal/upload/manager.test.ts +222 -175
  474. package/src/internal/upload/manager.ts +74 -80
  475. package/src/internal/upload/queue.ts +3 -3
  476. package/src/internal/upload/streamUploader.test.ts +40 -27
  477. package/src/internal/upload/streamUploader.ts +87 -71
  478. package/src/internal/upload/telemetry.test.ts +11 -11
  479. package/src/internal/upload/telemetry.ts +25 -15
  480. package/src/internal/wait.test.ts +1 -1
  481. package/src/internal/wait.ts +3 -3
  482. package/src/protonDriveClient.ts +189 -276
  483. package/src/protonDrivePhotosClient.ts +20 -13
  484. package/src/telemetry.ts +60 -52
  485. package/src/tests/logger.ts +1 -1
  486. package/src/tests/telemetry.ts +2 -2
  487. package/src/transformers.ts +27 -21
  488. package/src/version.ts +0 -1
  489. package/dist/internal/events/cache.d.ts +0 -28
  490. package/dist/internal/events/cache.js +0 -67
  491. package/dist/internal/events/cache.js.map +0 -1
  492. package/dist/internal/events/cache.test.js +0 -43
  493. package/dist/internal/events/cache.test.js.map +0 -1
  494. package/src/internal/events/cache.test.ts +0 -47
  495. package/src/internal/events/cache.ts +0 -80
  496. /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
@@ -4,39 +4,23 @@ export interface ProtonDriveHTTPClient {
4
4
  }
5
5
 
6
6
  export type ProtonDriveHTTPClientJsonOptions = ProtonDriveHTTPClientBaseOptions & {
7
- json?: object,
8
- }
7
+ json?: object;
8
+ };
9
9
 
10
10
  export type ProtonDriveHTTPClientBlobOptions = ProtonDriveHTTPClientBaseOptions & {
11
- body?: XMLHttpRequestBodyInit,
12
- onProgress?: (progress: number) => void,
13
- }
11
+ body?: XMLHttpRequestBodyInit;
12
+ onProgress?: (progress: number) => void;
13
+ };
14
14
 
15
15
  type ProtonDriveHTTPClientBaseOptions = {
16
- url: string,
17
- method: string,
18
- headers: Headers,
16
+ url: string;
17
+ method: string;
18
+ headers: Headers;
19
19
  /**
20
20
  * The timeout in milliseconds.
21
21
  *
22
22
  * When timeout is reached, the request will be aborted with TimeoutError.
23
23
  */
24
- timeoutMs: number,
25
- signal?: AbortSignal,
26
- }
27
-
28
- export type ProtonDriveConfig = {
29
- /**
30
- * The base URL for the Proton Drive (without schema).
31
- *
32
- * If not provided, defaults to 'drive-api.proton.me'.
33
- */
34
- baseUrl?: string,
35
-
36
- /**
37
- * The language to use for error messages.
38
- *
39
- * If not provided, defaults to 'en'.
40
- */
41
- language?: string,
42
- }
24
+ timeoutMs: number;
25
+ signal?: AbortSignal;
26
+ };
@@ -1,24 +1,84 @@
1
1
  import { ProtonDriveCache } from '../cache';
2
2
  import { OpenPGPCrypto, PrivateKey, SessionKey, SRPModule } from '../crypto';
3
+ import { LatestEventIdProvider } from '../internal/events/interface';
3
4
  import { ProtonDriveAccount } from './account';
4
- import { ProtonDriveHTTPClient, ProtonDriveConfig } from './httpClient';
5
+ import { ProtonDriveConfig } from './config';
6
+ import { ProtonDriveHTTPClient } from './httpClient';
5
7
  import { Telemetry, MetricEvent } from './telemetry';
6
8
 
7
9
  export type { Result } from './result';
8
10
  export { resultOk, resultError } from './result';
9
11
  export type { ProtonDriveAccount, ProtonDriveAccountAddress } from './account';
10
12
  export type { Author, UnverifiedAuthorError, AnonymousUser } from './author';
13
+ export type { ProtonDriveConfig } from './config';
11
14
  export type { Device, DeviceOrUid } from './devices';
12
15
  export { DeviceType } from './devices';
13
16
  export type { FileDownloader, DownloadController } from './download';
14
- export type { NodeEvent, DeviceEvent, DeviceEventCallback, NodeEventCallback } from './events';
15
- export { SDKEvent } from './events';
16
- export type { ProtonDriveHTTPClient, ProtonDriveHTTPClientJsonOptions, ProtonDriveHTTPClientBlobOptions, ProtonDriveConfig } from './httpClient';
17
- export type { MaybeNode, NodeEntity, DegradedNode, MaybeMissingNode, MissingNode, InvalidNameError, Revision, NodeOrUid, RevisionOrUid, NodeResult } from './nodes';
17
+ export type {
18
+ DriveListener,
19
+ LatestEventIdProvider,
20
+ DriveEvent,
21
+ NodeEvent,
22
+ FastForwardEvent,
23
+ TreeRefreshEvent,
24
+ TreeRemovalEvent,
25
+ SharedWithMeUpdated,
26
+ } from './events';
27
+ export { DriveEventType, SDKEvent } from './events';
28
+ export type {
29
+ ProtonDriveHTTPClient,
30
+ ProtonDriveHTTPClientJsonOptions,
31
+ ProtonDriveHTTPClientBlobOptions,
32
+ } from './httpClient';
33
+ export type {
34
+ MaybeNode,
35
+ NodeEntity,
36
+ DegradedNode,
37
+ MaybeMissingNode,
38
+ MissingNode,
39
+ InvalidNameError,
40
+ Revision,
41
+ NodeOrUid,
42
+ RevisionOrUid,
43
+ NodeResult,
44
+ } from './nodes';
18
45
  export { NodeType, MemberRole, RevisionState } from './nodes';
19
- export type { ProtonInvitation, ProtonInvitationWithNode, NonProtonInvitation, Member, PublicLink, MaybeBookmark, Bookmark, DegradedBookmark, ProtonInvitationOrUid, NonProtonInvitationOrUid, BookmarkOrUid, ShareNodeSettings, UnshareNodeSettings, ShareMembersSettings, SharePublicLinkSettings, SharePublicLinkSettingsObject, ShareResult } from './sharing';
46
+ export type {
47
+ ProtonInvitation,
48
+ ProtonInvitationWithNode,
49
+ NonProtonInvitation,
50
+ Member,
51
+ PublicLink,
52
+ MaybeBookmark,
53
+ Bookmark,
54
+ DegradedBookmark,
55
+ ProtonInvitationOrUid,
56
+ NonProtonInvitationOrUid,
57
+ BookmarkOrUid,
58
+ ShareNodeSettings,
59
+ UnshareNodeSettings,
60
+ ShareMembersSettings,
61
+ SharePublicLinkSettings,
62
+ SharePublicLinkSettingsObject,
63
+ ShareResult,
64
+ } from './sharing';
20
65
  export { NonProtonInvitationState } from './sharing';
21
- export type { Telemetry, Logger, MetricAPIRetrySucceededEvent, MetricUploadEvent, MetricsUploadErrorType, MetricDownloadEvent, MetricsDownloadErrorType, MetricDecryptionErrorEvent, MetricsDecryptionErrorField, MetricVerificationErrorEvent, MetricVerificationErrorField, MetricBlockVerificationErrorEvent, MetricVolumeEventsSubscriptionsChangedEvent, MetricEvent } from './telemetry';
66
+ export type {
67
+ Telemetry,
68
+ Logger,
69
+ MetricAPIRetrySucceededEvent,
70
+ MetricUploadEvent,
71
+ MetricsUploadErrorType,
72
+ MetricDownloadEvent,
73
+ MetricsDownloadErrorType,
74
+ MetricDecryptionErrorEvent,
75
+ MetricsDecryptionErrorField,
76
+ MetricVerificationErrorEvent,
77
+ MetricVerificationErrorField,
78
+ MetricBlockVerificationErrorEvent,
79
+ MetricVolumeEventsSubscriptionsChangedEvent,
80
+ MetricEvent,
81
+ } from './telemetry';
22
82
  export { MetricVolumeType } from './telemetry';
23
83
  export type { FileUploader, FileRevisionUploader, UploadController, UploadMetadata } from './upload';
24
84
  export type { Thumbnail, ThumbnailResult } from './thumbnail';
@@ -28,19 +88,20 @@ export type ProtonDriveTelemetry = Telemetry<MetricEvent>;
28
88
  export type ProtonDriveEntitiesCache = ProtonDriveCache<string>;
29
89
  export type ProtonDriveCryptoCache = ProtonDriveCache<CachedCryptoMaterial>;
30
90
  export type CachedCryptoMaterial = {
31
- passphrase?: string,
32
- key: PrivateKey,
33
- passphraseSessionKey: SessionKey,
34
- hashKey?: Uint8Array,
91
+ passphrase?: string;
92
+ key: PrivateKey;
93
+ passphraseSessionKey: SessionKey;
94
+ hashKey?: Uint8Array;
35
95
  };
36
96
 
37
97
  export interface ProtonDriveClientContructorParameters {
38
- httpClient: ProtonDriveHTTPClient,
39
- entitiesCache: ProtonDriveEntitiesCache,
40
- cryptoCache: ProtonDriveCryptoCache,
41
- account: ProtonDriveAccount,
42
- openPGPCryptoModule: OpenPGPCrypto,
43
- srpModule: SRPModule,
44
- config?: ProtonDriveConfig,
45
- telemetry?: ProtonDriveTelemetry,
46
- };
98
+ httpClient: ProtonDriveHTTPClient;
99
+ entitiesCache: ProtonDriveEntitiesCache;
100
+ cryptoCache: ProtonDriveCryptoCache;
101
+ account: ProtonDriveAccount;
102
+ openPGPCryptoModule: OpenPGPCrypto;
103
+ srpModule: SRPModule;
104
+ config?: ProtonDriveConfig;
105
+ telemetry?: ProtonDriveTelemetry;
106
+ latestEventIdProvider?: LatestEventIdProvider;
107
+ }
@@ -3,7 +3,7 @@ import { Author } from './author';
3
3
 
4
4
  /**
5
5
  * Node representing a file or folder in the system.
6
- *
6
+ *
7
7
  * This covers both happy path and degraded path. It is used in the SDK to
8
8
  * represent the node in a way that is easy to work with. Whenever any field
9
9
  * cannot be decrypted, it is returned as `DegradedNode` type.
@@ -12,7 +12,7 @@ export type MaybeNode = Result<NodeEntity, DegradedNode>;
12
12
 
13
13
  /**
14
14
  * Node representing a file or folder in the system, or missing node.
15
- *
15
+ *
16
16
  * In most cases, SDK returns `MaybeNode`, but in some specific cases, when
17
17
  * client is requesting specific nodes, SDK must return `MissingNode` type
18
18
  * to indicate the case when the node is not available. That can be when
@@ -22,49 +22,49 @@ export type MaybeNode = Result<NodeEntity, DegradedNode>;
22
22
  export type MaybeMissingNode = Result<NodeEntity, DegradedNode | MissingNode>;
23
23
 
24
24
  export type MissingNode = {
25
- missingUid: string,
25
+ missingUid: string;
26
26
  };
27
27
 
28
28
  /**
29
29
  * Node representing a file or folder in the system.
30
- *
30
+ *
31
31
  * This is a happy path representation of the node. It is used in the SDK to
32
32
  * represent the node in a way that is easy to work with. Whenever any field
33
33
  * cannot be decrypted, it is returned as `DegradedNode` type.
34
- *
34
+ *
35
35
  * SDK never returns this entity directly but wrapped in `MaybeNode`.
36
36
  *
37
37
  * Note on naming: Node is reserved by JS/DOM, thus we need exception how the
38
38
  * entity is called.
39
39
  */
40
40
  export type NodeEntity = {
41
- uid: string,
42
- parentUid?: string,
43
- name: string,
41
+ uid: string;
42
+ parentUid?: string;
43
+ name: string;
44
44
  /**
45
45
  * Author of the node key.
46
- *
46
+ *
47
47
  * Person who created the node and keys for it. If user A uploads the file
48
48
  * and user B renames the file and uploads new revision, name and content
49
49
  * author is user B, while key author stays to user A who has forever
50
50
  * option to decrypt latest versions.
51
51
  */
52
- keyAuthor: Author,
52
+ keyAuthor: Author;
53
53
  /**
54
54
  * Author of the name.
55
- *
55
+ *
56
56
  * Person who named the file. If user A uploads the file and user B renames
57
57
  * the file, key and content author is user A, while name author is user B.
58
58
  */
59
- nameAuthor: Author,
60
- directMemberRole: MemberRole,
61
- type: NodeType,
62
- mediaType?: string,
59
+ nameAuthor: Author;
60
+ directMemberRole: MemberRole;
61
+ type: NodeType;
62
+ mediaType?: string;
63
63
  /**
64
64
  * Whether the node is shared. If true, the node is shared with at least
65
65
  * one user, or via public link.
66
66
  */
67
- isShared: boolean,
67
+ isShared: boolean;
68
68
  /**
69
69
  * Provides the ID of the share that the node is shared with.
70
70
  *
@@ -73,53 +73,62 @@ export type NodeEntity = {
73
73
  *
74
74
  * @deprecated This field is not part of the public API.
75
75
  */
76
- deprecatedShareId?: string,
76
+ deprecatedShareId?: string;
77
77
  /**
78
78
  * Created on server date.
79
79
  */
80
- creationTime: Date,
81
- trashTime?: Date,
80
+ creationTime: Date;
81
+ trashTime?: Date;
82
82
  /**
83
83
  * Total size of all revisions, encrypted size on the server.
84
84
  */
85
- totalStorageSize?: number,
86
- activeRevision?: Revision,
85
+ totalStorageSize?: number;
86
+ activeRevision?: Revision;
87
87
  folder?: {
88
- claimedModificationTime?: Date,
89
- },
90
- }
88
+ claimedModificationTime?: Date;
89
+ };
90
+ /**
91
+ * Provides an ID for the event scope.
92
+ *
93
+ * By subscribing to events in a scope, all updates to nodes
94
+ * withing that scope will be passed to the client. The scope can
95
+ * comprise one or more folder trees and will be shared by all
96
+ * nodes in the tree. Nodes cannot change scopes.
97
+ */
98
+ treeEventScopeId: string;
99
+ };
91
100
 
92
101
  /**
93
102
  * Degraded node representing a file or folder in the system.
94
- *
103
+ *
95
104
  * This is a degraded path representation of the node. It is used in the SDK to
96
105
  * represent the node in a way that is easy to work with. Whenever any field
97
106
  * cannot be decrypted, it is returned as `DegradedNode` type.
98
- *
107
+ *
99
108
  * SDK never returns this entity directly but wrapped in `MaybeNode`.
100
- *
109
+ *
101
110
  * The node can be still used around, but it is not guaranteed that all
102
111
  * properties are decrypted, or that all actions can be performed on it.
103
- *
112
+ *
104
113
  * For example, if the node has issue decrypting the name, the name will be
105
114
  * set as `Error` and potentially rename or move actions will not be
106
115
  * possible, but download and upload new revision will still work.
107
116
  */
108
117
  export type DegradedNode = Omit<NodeEntity, 'name' | 'activeRevision'> & {
109
- name: Result<string, Error | InvalidNameError>,
110
- activeRevision?: Result<Revision, Error>,
118
+ name: Result<string, Error | InvalidNameError>;
119
+ activeRevision?: Result<Revision, Error>;
111
120
  /**
112
121
  * If the error is not related to any specific field, it is set here.
113
- *
122
+ *
114
123
  * For example, if the node has issue decrypting the name, the name will be
115
124
  * set as `Error` while this will be empty.
116
- *
125
+ *
117
126
  * On the other hand, if the node has issue decrypting the node key, but
118
127
  * the name is still working, this will include the node key error, while
119
128
  * the name will be set to the decrypted value.
120
129
  */
121
- errors?: unknown[],
122
- }
130
+ errors?: unknown[];
131
+ };
123
132
 
124
133
  /**
125
134
  * Invalid name error represents node name that includes invalid characters.
@@ -128,13 +137,13 @@ export type InvalidNameError = {
128
137
  /**
129
138
  * Placeholder instead of node name that client can use to display.
130
139
  */
131
- name: string,
132
- error: string,
133
- }
140
+ name: string;
141
+ error: string;
142
+ };
134
143
 
135
144
  export enum NodeType {
136
- File = "file",
137
- Folder = "folder",
145
+ File = 'file',
146
+ Folder = 'folder',
138
147
  /**
139
148
  * Album is a special type available only in Photos section.
140
149
  *
@@ -145,44 +154,42 @@ export enum NodeType {
145
154
  *
146
155
  * @deprecated This type is not part of the public API.
147
156
  */
148
- Album = "album",
157
+ Album = 'album',
149
158
  }
150
159
 
151
160
  export enum MemberRole {
152
- Viewer = "viewer",
153
- Editor = "editor",
154
- Admin = "admin",
155
- Inherited = "inherited",
161
+ Viewer = 'viewer',
162
+ Editor = 'editor',
163
+ Admin = 'admin',
164
+ Inherited = 'inherited',
156
165
  }
157
166
 
158
167
  export type Revision = {
159
- uid: string,
160
- state: RevisionState,
161
- creationTime: Date, // created on server date
162
- contentAuthor: Author,
168
+ uid: string;
169
+ state: RevisionState;
170
+ creationTime: Date; // created on server date
171
+ contentAuthor: Author;
163
172
  /**
164
173
  * Encrypted size of the revision, as stored on the server.
165
174
  */
166
- storageSize: number,
175
+ storageSize: number;
167
176
  /**
168
177
  * Raw size of the revision, as stored in extended attributes.
169
178
  */
170
- claimedSize?: number,
171
- claimedModificationTime?: Date,
179
+ claimedSize?: number;
180
+ claimedModificationTime?: Date;
172
181
  claimedDigests?: {
173
- sha1?: string,
174
- },
175
- claimedAdditionalMetadata?: object,
176
- }
182
+ sha1?: string;
183
+ };
184
+ claimedAdditionalMetadata?: object;
185
+ };
177
186
 
178
187
  export enum RevisionState {
179
- Active = "active",
180
- Superseded = "superseded",
188
+ Active = 'active',
189
+ Superseded = 'superseded',
181
190
  }
182
191
 
183
192
  export type NodeOrUid = MaybeNode | NodeEntity | DegradedNode | string;
184
193
  export type RevisionOrUid = Revision | string;
185
194
 
186
- export type NodeResult =
187
- {uid: string, ok: true} |
188
- {uid: string, ok: false, error: string};
195
+ export type NodeResult = { uid: string; ok: true } | { uid: string; ok: false; error: string };
@@ -1,6 +1,4 @@
1
- export type Result<T, E> =
2
- | { ok: true; value: T }
3
- | { ok: false; error: E };
1
+ export type Result<T, E> = { ok: true; value: T } | { ok: false; error: E };
4
2
 
5
3
  export function resultOk<T, E>(value: T): Result<T, E> {
6
4
  return { ok: true, value };
@@ -3,107 +3,111 @@ import { UnverifiedAuthorError } from './author';
3
3
  import { NodeType, MemberRole, InvalidNameError } from './nodes';
4
4
 
5
5
  export type Member = {
6
- uid: string,
7
- invitationTime: Date,
8
- addedByEmail: Result<string, UnverifiedAuthorError>,
9
- inviteeEmail: string,
10
- role: MemberRole,
11
- }
6
+ uid: string;
7
+ invitationTime: Date;
8
+ addedByEmail: Result<string, UnverifiedAuthorError>;
9
+ inviteeEmail: string;
10
+ role: MemberRole;
11
+ };
12
12
 
13
13
  export type ProtonInvitation = Member;
14
14
 
15
15
  export type ProtonInvitationWithNode = ProtonInvitation & {
16
16
  node: {
17
- name: Result<string, Error | InvalidNameError>,
18
- type: NodeType,
19
- mediaType?: string,
20
- },
21
- }
17
+ uid: string;
18
+ name: Result<string, Error | InvalidNameError>;
19
+ type: NodeType;
20
+ mediaType?: string;
21
+ };
22
+ };
22
23
 
23
24
  export type NonProtonInvitation = ProtonInvitation & {
24
- state: NonProtonInvitationState,
25
- }
25
+ state: NonProtonInvitationState;
26
+ };
26
27
 
27
28
  export enum NonProtonInvitationState {
28
- Pending = "pending",
29
- UserRegistered = "userRegistered",
29
+ Pending = 'pending',
30
+ UserRegistered = 'userRegistered',
30
31
  }
31
32
 
32
33
  export type PublicLink = {
33
- uid: string,
34
- creationTime: Date,
35
- role: MemberRole,
36
- url: string,
37
- customPassword?: string,
38
- expirationTime?: Date,
39
- }
34
+ uid: string;
35
+ creationTime: Date;
36
+ role: MemberRole;
37
+ url: string;
38
+ customPassword?: string;
39
+ expirationTime?: Date;
40
+ numberOfInitializedDownloads: number;
41
+ };
40
42
 
41
43
  /**
42
44
  * Bookmark representing a saved link to publicly shared node.
43
- *
45
+ *
44
46
  * This covers both happy path and degraded path.
45
47
  */
46
48
  export type MaybeBookmark = Result<Bookmark, DegradedBookmark>;
47
49
 
48
50
  export type Bookmark = {
49
- uid: string,
50
- creationTime: Date,
51
- url: string,
51
+ uid: string;
52
+ creationTime: Date;
53
+ url: string;
52
54
  node: {
53
- name: string,
54
- type: NodeType,
55
- mediaType?: string,
56
- },
57
- }
55
+ name: string;
56
+ type: NodeType;
57
+ mediaType?: string;
58
+ };
59
+ };
58
60
 
59
61
  /**
60
62
  * Degraded bookmark representing a saved link to publicly shared node.
61
- *
63
+ *
62
64
  * This is a degraded path representation of the bookmark. It is used in the
63
65
  * SDK to represent the bookmark in a way that is easy to work with. Whenever
64
66
  * any field cannot be decrypted, it is returned as `DegradedBookmark` type.
65
67
  */
66
68
  export type DegradedBookmark = Omit<Bookmark, 'url' | 'node'> & {
67
- url: Result<string, Error>,
69
+ url: Result<string, Error>;
68
70
  node: Omit<Bookmark['node'], 'name'> & {
69
- name: Result<string, Error | InvalidNameError>,
70
- },
71
- }
71
+ name: Result<string, Error | InvalidNameError>;
72
+ };
73
+ };
72
74
 
73
75
  export type ProtonInvitationOrUid = ProtonInvitation | string;
74
76
  export type NonProtonInvitationOrUid = NonProtonInvitation | string;
75
77
  export type BookmarkOrUid = Bookmark | string;
76
78
 
77
79
  export type ShareNodeSettings = {
78
- users?: ShareMembersSettings,
79
- publicLink?: SharePublicLinkSettings,
80
+ users?: ShareMembersSettings;
81
+ publicLink?: SharePublicLinkSettings;
80
82
  emailOptions?: {
81
- message?: string,
82
- includeNodeName?: boolean,
83
- },
84
- }
83
+ message?: string;
84
+ includeNodeName?: boolean;
85
+ };
86
+ };
85
87
 
86
- export type ShareMembersSettings = string[] | {
87
- email: string,
88
- role: MemberRole,
89
- }[];
88
+ export type ShareMembersSettings =
89
+ | string[]
90
+ | {
91
+ email: string;
92
+ role: MemberRole;
93
+ }[];
90
94
 
91
95
  export type SharePublicLinkSettings = boolean | SharePublicLinkSettingsObject;
92
96
 
93
97
  export type SharePublicLinkSettingsObject = {
94
- role: MemberRole,
95
- customPassword?: string | undefined,
96
- expiration?: Date | undefined,
98
+ role: MemberRole;
99
+ customPassword?: string | undefined;
100
+ expiration?: Date | undefined;
97
101
  };
98
102
 
99
103
  export type ShareResult = {
100
- protonInvitations: ProtonInvitation[],
101
- nonProtonInvitations: NonProtonInvitation[],
102
- members: Member[],
103
- publicLink?: PublicLink,
104
- }
104
+ protonInvitations: ProtonInvitation[];
105
+ nonProtonInvitations: NonProtonInvitation[];
106
+ members: Member[];
107
+ publicLink?: PublicLink;
108
+ };
105
109
 
106
110
  export type UnshareNodeSettings = {
107
- users?: string[],
108
- publicLink?: 'remove',
111
+ users?: string[];
112
+ publicLink?: 'remove';
109
113
  };