@protontech/drive-sdk 0.1.0 → 0.1.2

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 (452) hide show
  1. package/dist/cache/memoryCache.js +0 -1
  2. package/dist/cache/memoryCache.js.map +1 -1
  3. package/dist/cache/memoryCache.test.js +2 -4
  4. package/dist/cache/memoryCache.test.js.map +1 -1
  5. package/dist/cache/nullCache.js +0 -1
  6. package/dist/cache/nullCache.js.map +1 -1
  7. package/dist/crypto/driveCrypto.d.ts +2 -5
  8. package/dist/crypto/driveCrypto.js +7 -12
  9. package/dist/crypto/driveCrypto.js.map +1 -1
  10. package/dist/crypto/driveCrypto.test.js +14 -14
  11. package/dist/crypto/openPGPCrypto.js +3 -3
  12. package/dist/crypto/openPGPCrypto.js.map +1 -1
  13. package/dist/diagnostic/eventsGenerator.js +1 -1
  14. package/dist/diagnostic/eventsGenerator.js.map +1 -1
  15. package/dist/diagnostic/httpClient.d.ts +1 -1
  16. package/dist/diagnostic/httpClient.js.map +1 -1
  17. package/dist/diagnostic/index.d.ts +3 -3
  18. package/dist/diagnostic/index.js.map +1 -1
  19. package/dist/diagnostic/integrityVerificationStream.js +1 -1
  20. package/dist/diagnostic/integrityVerificationStream.js.map +1 -1
  21. package/dist/diagnostic/interface.d.ts +2 -2
  22. package/dist/diagnostic/sdkDiagnostic.d.ts +3 -3
  23. package/dist/diagnostic/sdkDiagnostic.js +8 -2
  24. package/dist/diagnostic/sdkDiagnostic.js.map +1 -1
  25. package/dist/diagnostic/sdkDiagnosticFull.d.ts +4 -4
  26. package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -1
  27. package/dist/diagnostic/telemetry.js.map +1 -1
  28. package/dist/diagnostic/zipGenerators.js +2 -2
  29. package/dist/diagnostic/zipGenerators.js.map +1 -1
  30. package/dist/diagnostic/zipGenerators.test.js +1 -1
  31. package/dist/diagnostic/zipGenerators.test.js.map +1 -1
  32. package/dist/interface/events.d.ts +2 -4
  33. package/dist/interface/events.js.map +1 -1
  34. package/dist/interface/index.d.ts +5 -5
  35. package/dist/interface/index.js +0 -1
  36. package/dist/interface/index.js.map +1 -1
  37. package/dist/interface/result.js.map +1 -1
  38. package/dist/interface/sharing.d.ts +1 -0
  39. package/dist/interface/sharing.js.map +1 -1
  40. package/dist/interface/telemetry.js +0 -8
  41. package/dist/interface/telemetry.js.map +1 -1
  42. package/dist/interface/thumbnail.js.map +1 -1
  43. package/dist/interface/upload.d.ts +1 -1
  44. package/dist/internal/apiService/apiService.d.ts +1 -1
  45. package/dist/internal/apiService/apiService.js +7 -11
  46. package/dist/internal/apiService/apiService.js.map +1 -1
  47. package/dist/internal/apiService/apiService.test.js +55 -48
  48. package/dist/internal/apiService/apiService.test.js.map +1 -1
  49. package/dist/internal/apiService/coreTypes.d.ts +2356 -2356
  50. package/dist/internal/apiService/driveTypes.d.ts +1680 -1680
  51. package/dist/internal/apiService/errors.js +14 -8
  52. package/dist/internal/apiService/errors.js.map +1 -1
  53. package/dist/internal/apiService/errors.test.js +17 -12
  54. package/dist/internal/apiService/errors.test.js.map +1 -1
  55. package/dist/internal/apiService/transformers.d.ts +1 -1
  56. package/dist/internal/apiService/transformers.js +1 -1
  57. package/dist/internal/asyncIteratorMap.test.js +2 -2
  58. package/dist/internal/asyncIteratorMap.test.js.map +1 -1
  59. package/dist/internal/asyncIteratorRace.d.ts +13 -0
  60. package/dist/internal/asyncIteratorRace.js +59 -0
  61. package/dist/internal/asyncIteratorRace.js.map +1 -0
  62. package/dist/internal/asyncIteratorRace.test.d.ts +1 -0
  63. package/dist/internal/asyncIteratorRace.test.js +119 -0
  64. package/dist/internal/asyncIteratorRace.test.js.map +1 -0
  65. package/dist/internal/batch.d.ts +1 -0
  66. package/dist/internal/batch.js +12 -0
  67. package/dist/internal/batch.js.map +1 -0
  68. package/dist/internal/batch.test.d.ts +1 -0
  69. package/dist/internal/batch.test.js +41 -0
  70. package/dist/internal/batch.test.js.map +1 -0
  71. package/dist/internal/batchLoading.js.map +1 -1
  72. package/dist/internal/batchLoading.test.js +13 -13
  73. package/dist/internal/batchLoading.test.js.map +1 -1
  74. package/dist/internal/devices/apiService.d.ts +3 -3
  75. package/dist/internal/devices/apiService.js +2 -2
  76. package/dist/internal/devices/apiService.js.map +1 -1
  77. package/dist/internal/devices/cryptoService.js +1 -2
  78. package/dist/internal/devices/cryptoService.js.map +1 -1
  79. package/dist/internal/devices/index.d.ts +5 -5
  80. package/dist/internal/devices/index.js.map +1 -1
  81. package/dist/internal/devices/interface.d.ts +3 -3
  82. package/dist/internal/devices/manager.js +2 -2
  83. package/dist/internal/devices/manager.js.map +1 -1
  84. package/dist/internal/devices/manager.test.js +38 -7
  85. package/dist/internal/devices/manager.test.js.map +1 -1
  86. package/dist/internal/download/apiService.d.ts +4 -4
  87. package/dist/internal/download/apiService.js +0 -1
  88. package/dist/internal/download/apiService.js.map +1 -1
  89. package/dist/internal/download/cryptoService.d.ts +4 -4
  90. package/dist/internal/download/cryptoService.js +6 -5
  91. package/dist/internal/download/cryptoService.js.map +1 -1
  92. package/dist/internal/download/fileDownloader.d.ts +4 -4
  93. package/dist/internal/download/fileDownloader.js +3 -2
  94. package/dist/internal/download/fileDownloader.js.map +1 -1
  95. package/dist/internal/download/fileDownloader.test.js +1 -1
  96. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  97. package/dist/internal/download/index.d.ts +5 -5
  98. package/dist/internal/download/index.js +5 -5
  99. package/dist/internal/download/index.js.map +1 -1
  100. package/dist/internal/download/interface.d.ts +3 -4
  101. package/dist/internal/download/telemetry.d.ts +3 -3
  102. package/dist/internal/download/telemetry.js +4 -2
  103. package/dist/internal/download/telemetry.js.map +1 -1
  104. package/dist/internal/download/telemetry.test.js +8 -8
  105. package/dist/internal/download/telemetry.test.js.map +1 -1
  106. package/dist/internal/download/thumbnailDownloader.d.ts +4 -4
  107. package/dist/internal/download/thumbnailDownloader.js +6 -6
  108. package/dist/internal/download/thumbnailDownloader.js.map +1 -1
  109. package/dist/internal/download/thumbnailDownloader.test.js.map +1 -1
  110. package/dist/internal/errors.d.ts +1 -1
  111. package/dist/internal/errors.js +1 -3
  112. package/dist/internal/errors.js.map +1 -1
  113. package/dist/internal/events/apiService.d.ts +2 -2
  114. package/dist/internal/events/apiService.js +9 -5
  115. package/dist/internal/events/apiService.js.map +1 -1
  116. package/dist/internal/events/coreEventManager.d.ts +3 -3
  117. package/dist/internal/events/coreEventManager.js.map +1 -1
  118. package/dist/internal/events/coreEventManager.test.js +14 -14
  119. package/dist/internal/events/eventManager.d.ts +2 -1
  120. package/dist/internal/events/eventManager.js +9 -1
  121. package/dist/internal/events/eventManager.js.map +1 -1
  122. package/dist/internal/events/eventManager.test.js +84 -60
  123. package/dist/internal/events/eventManager.test.js.map +1 -1
  124. package/dist/internal/events/index.d.ts +10 -9
  125. package/dist/internal/events/index.js +38 -32
  126. package/dist/internal/events/index.js.map +1 -1
  127. package/dist/internal/events/interface.d.ts +1 -1
  128. package/dist/internal/events/interface.js +0 -1
  129. package/dist/internal/events/interface.js.map +1 -1
  130. package/dist/internal/events/volumeEventManager.d.ts +3 -3
  131. package/dist/internal/events/volumeEventManager.js.map +1 -1
  132. package/dist/internal/events/volumeEventManager.test.js +55 -55
  133. package/dist/internal/events/volumeEventManager.test.js.map +1 -1
  134. package/dist/internal/nodes/apiService.d.ts +4 -3
  135. package/dist/internal/nodes/apiService.js +36 -15
  136. package/dist/internal/nodes/apiService.js.map +1 -1
  137. package/dist/internal/nodes/apiService.test.js +60 -41
  138. package/dist/internal/nodes/apiService.test.js.map +1 -1
  139. package/dist/internal/nodes/cache.d.ts +5 -5
  140. package/dist/internal/nodes/cache.js +14 -7
  141. package/dist/internal/nodes/cache.js.map +1 -1
  142. package/dist/internal/nodes/cache.test.js +31 -9
  143. package/dist/internal/nodes/cache.test.js.map +1 -1
  144. package/dist/internal/nodes/cryptoCache.d.ts +2 -2
  145. package/dist/internal/nodes/cryptoCache.js.map +1 -1
  146. package/dist/internal/nodes/cryptoCache.test.js +24 -4
  147. package/dist/internal/nodes/cryptoCache.test.js.map +1 -1
  148. package/dist/internal/nodes/cryptoService.d.ts +3 -3
  149. package/dist/internal/nodes/cryptoService.js +11 -17
  150. package/dist/internal/nodes/cryptoService.js.map +1 -1
  151. package/dist/internal/nodes/cryptoService.test.js +320 -241
  152. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  153. package/dist/internal/nodes/events.d.ts +3 -3
  154. package/dist/internal/nodes/events.js +7 -7
  155. package/dist/internal/nodes/events.js.map +1 -1
  156. package/dist/internal/nodes/events.test.js +27 -21
  157. package/dist/internal/nodes/events.test.js.map +1 -1
  158. package/dist/internal/nodes/extendedAttributes.d.ts +1 -1
  159. package/dist/internal/nodes/extendedAttributes.js +3 -1
  160. package/dist/internal/nodes/extendedAttributes.js.map +1 -1
  161. package/dist/internal/nodes/extendedAttributes.test.js +7 -10
  162. package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
  163. package/dist/internal/nodes/index.d.ts +10 -10
  164. package/dist/internal/nodes/index.js.map +1 -1
  165. package/dist/internal/nodes/index.test.d.ts +1 -0
  166. package/dist/internal/nodes/index.test.js +106 -0
  167. package/dist/internal/nodes/index.test.js.map +1 -0
  168. package/dist/internal/nodes/interface.d.ts +2 -2
  169. package/dist/internal/nodes/nodesAccess.d.ts +7 -7
  170. package/dist/internal/nodes/nodesAccess.js +28 -16
  171. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  172. package/dist/internal/nodes/nodesAccess.test.js +39 -13
  173. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  174. package/dist/internal/nodes/nodesManagement.d.ts +6 -6
  175. package/dist/internal/nodes/nodesManagement.js +9 -7
  176. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  177. package/dist/internal/nodes/nodesManagement.test.js +9 -9
  178. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  179. package/dist/internal/nodes/nodesRevisions.d.ts +4 -4
  180. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  181. package/dist/internal/photos/albums.d.ts +3 -3
  182. package/dist/internal/photos/albums.js.map +1 -1
  183. package/dist/internal/photos/apiService.d.ts +1 -1
  184. package/dist/internal/photos/apiService.js +3 -6
  185. package/dist/internal/photos/apiService.js.map +1 -1
  186. package/dist/internal/photos/cache.d.ts +1 -1
  187. package/dist/internal/photos/index.d.ts +5 -5
  188. package/dist/internal/photos/index.js.map +1 -1
  189. package/dist/internal/photos/interface.d.ts +2 -2
  190. package/dist/internal/photos/photosTimeline.d.ts +3 -3
  191. package/dist/internal/photos/photosTimeline.js +1 -2
  192. package/dist/internal/photos/photosTimeline.js.map +1 -1
  193. package/dist/internal/sdkEvents.d.ts +1 -1
  194. package/dist/internal/sdkEvents.js +2 -7
  195. package/dist/internal/sdkEvents.js.map +1 -1
  196. package/dist/internal/sdkEvents.test.js +8 -8
  197. package/dist/internal/shares/apiService.d.ts +2 -2
  198. package/dist/internal/shares/apiService.js +5 -3
  199. package/dist/internal/shares/apiService.js.map +1 -1
  200. package/dist/internal/shares/cache.d.ts +2 -2
  201. package/dist/internal/shares/cache.js +12 -6
  202. package/dist/internal/shares/cache.js.map +1 -1
  203. package/dist/internal/shares/cache.test.js.map +1 -1
  204. package/dist/internal/shares/cryptoCache.d.ts +2 -2
  205. package/dist/internal/shares/cryptoCache.test.js +8 -2
  206. package/dist/internal/shares/cryptoCache.test.js.map +1 -1
  207. package/dist/internal/shares/cryptoService.d.ts +3 -3
  208. package/dist/internal/shares/cryptoService.js.map +1 -1
  209. package/dist/internal/shares/cryptoService.test.js +42 -42
  210. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  211. package/dist/internal/shares/index.d.ts +4 -4
  212. package/dist/internal/shares/index.js.map +1 -1
  213. package/dist/internal/shares/interface.d.ts +2 -2
  214. package/dist/internal/shares/manager.d.ts +7 -7
  215. package/dist/internal/shares/manager.js.map +1 -1
  216. package/dist/internal/shares/manager.test.js +71 -63
  217. package/dist/internal/shares/manager.test.js.map +1 -1
  218. package/dist/internal/sharing/apiService.d.ts +4 -4
  219. package/dist/internal/sharing/apiService.js +4 -3
  220. package/dist/internal/sharing/apiService.js.map +1 -1
  221. package/dist/internal/sharing/cache.d.ts +2 -1
  222. package/dist/internal/sharing/cache.js +9 -0
  223. package/dist/internal/sharing/cache.js.map +1 -1
  224. package/dist/internal/sharing/cache.test.js +33 -33
  225. package/dist/internal/sharing/cryptoService.d.ts +3 -3
  226. package/dist/internal/sharing/cryptoService.js +3 -5
  227. package/dist/internal/sharing/cryptoService.js.map +1 -1
  228. package/dist/internal/sharing/cryptoService.test.js +39 -39
  229. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  230. package/dist/internal/sharing/events.d.ts +5 -4
  231. package/dist/internal/sharing/events.js +28 -19
  232. package/dist/internal/sharing/events.js.map +1 -1
  233. package/dist/internal/sharing/events.test.js +101 -88
  234. package/dist/internal/sharing/events.test.js.map +1 -1
  235. package/dist/internal/sharing/index.d.ts +6 -6
  236. package/dist/internal/sharing/index.js.map +1 -1
  237. package/dist/internal/sharing/interface.d.ts +5 -4
  238. package/dist/internal/sharing/sharingAccess.d.ts +6 -6
  239. package/dist/internal/sharing/sharingAccess.js +8 -4
  240. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  241. package/dist/internal/sharing/sharingAccess.test.js +45 -39
  242. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  243. package/dist/internal/sharing/sharingManagement.d.ts +4 -4
  244. package/dist/internal/sharing/sharingManagement.js +5 -7
  245. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  246. package/dist/internal/sharing/sharingManagement.test.js +297 -248
  247. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  248. package/dist/internal/uids.js.map +1 -1
  249. package/dist/internal/upload/apiService.d.ts +3 -3
  250. package/dist/internal/upload/apiService.js +1 -1
  251. package/dist/internal/upload/apiService.js.map +1 -1
  252. package/dist/internal/upload/blockVerifier.d.ts +3 -3
  253. package/dist/internal/upload/blockVerifier.js +1 -1
  254. package/dist/internal/upload/blockVerifier.js.map +1 -1
  255. package/dist/internal/upload/chunkStreamReader.test.js +6 -6
  256. package/dist/internal/upload/cryptoService.d.ts +4 -4
  257. package/dist/internal/upload/cryptoService.js +4 -4
  258. package/dist/internal/upload/cryptoService.js.map +1 -1
  259. package/dist/internal/upload/digests.js.map +1 -1
  260. package/dist/internal/upload/fileUploader.d.ts +6 -6
  261. package/dist/internal/upload/fileUploader.js.map +1 -1
  262. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  263. package/dist/internal/upload/index.d.ts +5 -5
  264. package/dist/internal/upload/index.js.map +1 -1
  265. package/dist/internal/upload/interface.d.ts +4 -3
  266. package/dist/internal/upload/manager.d.ts +5 -5
  267. package/dist/internal/upload/manager.js +15 -9
  268. package/dist/internal/upload/manager.js.map +1 -1
  269. package/dist/internal/upload/manager.test.js +139 -128
  270. package/dist/internal/upload/manager.test.js.map +1 -1
  271. package/dist/internal/upload/streamUploader.d.ts +6 -6
  272. package/dist/internal/upload/streamUploader.js +9 -7
  273. package/dist/internal/upload/streamUploader.js.map +1 -1
  274. package/dist/internal/upload/streamUploader.test.js +17 -12
  275. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  276. package/dist/internal/upload/telemetry.d.ts +3 -3
  277. package/dist/internal/upload/telemetry.js +5 -3
  278. package/dist/internal/upload/telemetry.js.map +1 -1
  279. package/dist/internal/upload/telemetry.test.js +8 -8
  280. package/dist/internal/upload/telemetry.test.js.map +1 -1
  281. package/dist/protonDriveClient.d.ts +8 -8
  282. package/dist/protonDriveClient.js +12 -9
  283. package/dist/protonDriveClient.js.map +1 -1
  284. package/dist/protonDrivePhotosClient.js.map +1 -1
  285. package/dist/telemetry.js +18 -15
  286. package/dist/telemetry.js.map +1 -1
  287. package/dist/tests/logger.js.map +1 -1
  288. package/dist/tests/telemetry.d.ts +1 -1
  289. package/dist/transformers.d.ts +1 -1
  290. package/dist/transformers.js +5 -2
  291. package/dist/transformers.js.map +1 -1
  292. package/package.json +1 -1
  293. package/src/cache/interface.ts +22 -22
  294. package/src/cache/memoryCache.test.ts +7 -7
  295. package/src/cache/memoryCache.ts +4 -4
  296. package/src/cache/nullCache.ts +1 -1
  297. package/src/config.ts +5 -5
  298. package/src/crypto/driveCrypto.test.ts +15 -15
  299. package/src/crypto/driveCrypto.ts +120 -156
  300. package/src/crypto/hmac.ts +1 -1
  301. package/src/crypto/interface.ts +63 -72
  302. package/src/crypto/openPGPCrypto.ts +74 -94
  303. package/src/crypto/utils.ts +1 -1
  304. package/src/diagnostic/eventsGenerator.ts +2 -2
  305. package/src/diagnostic/httpClient.ts +6 -2
  306. package/src/diagnostic/index.ts +12 -10
  307. package/src/diagnostic/integrityVerificationStream.ts +3 -4
  308. package/src/diagnostic/interface.ts +81 -81
  309. package/src/diagnostic/sdkDiagnostic.ts +35 -24
  310. package/src/diagnostic/sdkDiagnosticFull.ts +16 -19
  311. package/src/diagnostic/telemetry.ts +4 -1
  312. package/src/diagnostic/zipGenerators.test.ts +1 -1
  313. package/src/diagnostic/zipGenerators.ts +3 -3
  314. package/src/errors.ts +21 -21
  315. package/src/index.ts +3 -3
  316. package/src/interface/account.ts +10 -10
  317. package/src/interface/author.ts +6 -6
  318. package/src/interface/config.ts +4 -4
  319. package/src/interface/devices.ts +6 -6
  320. package/src/interface/download.ts +12 -9
  321. package/src/interface/events.ts +45 -39
  322. package/src/interface/httpClient.ts +11 -11
  323. package/src/interface/index.ts +76 -19
  324. package/src/interface/nodes.ts +47 -49
  325. package/src/interface/result.ts +1 -3
  326. package/src/interface/sharing.ts +60 -57
  327. package/src/interface/telemetry.ts +74 -74
  328. package/src/interface/thumbnail.ts +5 -6
  329. package/src/interface/upload.ts +20 -12
  330. package/src/internal/apiService/apiService.test.ts +109 -76
  331. package/src/internal/apiService/apiService.ts +40 -26
  332. package/src/internal/apiService/coreTypes.ts +2474 -2463
  333. package/src/internal/apiService/driveTypes.ts +1868 -1822
  334. package/src/internal/apiService/errorCodes.ts +4 -4
  335. package/src/internal/apiService/errors.test.ts +25 -23
  336. package/src/internal/apiService/errors.ts +15 -9
  337. package/src/internal/apiService/index.ts +1 -1
  338. package/src/internal/apiService/transformers.ts +2 -2
  339. package/src/internal/asyncIteratorMap.test.ts +4 -4
  340. package/src/internal/asyncIteratorMap.ts +1 -1
  341. package/src/internal/asyncIteratorRace.test.ts +149 -0
  342. package/src/internal/asyncIteratorRace.ts +79 -0
  343. package/src/internal/batch.test.ts +50 -0
  344. package/src/internal/batch.ts +9 -0
  345. package/src/internal/batchLoading.test.ts +13 -14
  346. package/src/internal/batchLoading.ts +8 -8
  347. package/src/internal/devices/apiService.ts +58 -51
  348. package/src/internal/devices/cryptoService.ts +22 -17
  349. package/src/internal/devices/index.ts +17 -10
  350. package/src/internal/devices/interface.ts +21 -12
  351. package/src/internal/devices/manager.test.ts +40 -9
  352. package/src/internal/devices/manager.ts +3 -3
  353. package/src/internal/download/apiService.ts +66 -49
  354. package/src/internal/download/cryptoService.ts +34 -18
  355. package/src/internal/download/fileDownloader.test.ts +25 -9
  356. package/src/internal/download/fileDownloader.ts +36 -18
  357. package/src/internal/download/index.ts +19 -19
  358. package/src/internal/download/interface.ts +19 -20
  359. package/src/internal/download/queue.ts +3 -3
  360. package/src/internal/download/telemetry.test.ts +11 -11
  361. package/src/internal/download/telemetry.ts +24 -14
  362. package/src/internal/download/thumbnailDownloader.test.ts +11 -6
  363. package/src/internal/download/thumbnailDownloader.ts +43 -32
  364. package/src/internal/errors.ts +7 -5
  365. package/src/internal/events/apiService.ts +30 -17
  366. package/src/internal/events/coreEventManager.test.ts +18 -18
  367. package/src/internal/events/coreEventManager.ts +9 -6
  368. package/src/internal/events/eventManager.test.ts +108 -82
  369. package/src/internal/events/eventManager.ts +16 -5
  370. package/src/internal/events/index.ts +75 -47
  371. package/src/internal/events/interface.ts +47 -39
  372. package/src/internal/events/volumeEventManager.test.ts +61 -65
  373. package/src/internal/events/volumeEventManager.ts +18 -9
  374. package/src/internal/nodes/apiService.test.ts +197 -147
  375. package/src/internal/nodes/apiService.ts +288 -174
  376. package/src/internal/nodes/cache.test.ts +48 -20
  377. package/src/internal/nodes/cache.ts +60 -44
  378. package/src/internal/nodes/cryptoCache.test.ts +34 -14
  379. package/src/internal/nodes/cryptoCache.ts +10 -5
  380. package/src/internal/nodes/cryptoService.test.ts +492 -351
  381. package/src/internal/nodes/cryptoService.ts +170 -88
  382. package/src/internal/nodes/events.test.ts +38 -28
  383. package/src/internal/nodes/events.ts +13 -12
  384. package/src/internal/nodes/extendedAttributes.test.ts +28 -24
  385. package/src/internal/nodes/extendedAttributes.ts +20 -15
  386. package/src/internal/nodes/index.test.ts +133 -0
  387. package/src/internal/nodes/index.ts +27 -15
  388. package/src/internal/nodes/interface.ts +42 -29
  389. package/src/internal/nodes/nodesAccess.test.ts +124 -58
  390. package/src/internal/nodes/nodesAccess.ts +73 -49
  391. package/src/internal/nodes/nodesManagement.test.ts +32 -31
  392. package/src/internal/nodes/nodesManagement.ts +39 -32
  393. package/src/internal/nodes/nodesRevisions.ts +7 -7
  394. package/src/internal/nodes/validations.ts +2 -2
  395. package/src/internal/photos/albums.ts +5 -5
  396. package/src/internal/photos/apiService.ts +4 -7
  397. package/src/internal/photos/cache.ts +1 -1
  398. package/src/internal/photos/index.ts +8 -8
  399. package/src/internal/photos/interface.ts +2 -2
  400. package/src/internal/photos/photosTimeline.ts +4 -5
  401. package/src/internal/sdkEvents.test.ts +10 -10
  402. package/src/internal/sdkEvents.ts +5 -13
  403. package/src/internal/shares/apiService.ts +44 -33
  404. package/src/internal/shares/cache.test.ts +6 -4
  405. package/src/internal/shares/cache.ts +21 -12
  406. package/src/internal/shares/cryptoCache.test.ts +17 -11
  407. package/src/internal/shares/cryptoCache.ts +4 -4
  408. package/src/internal/shares/cryptoService.test.ts +72 -74
  409. package/src/internal/shares/cryptoService.ts +48 -23
  410. package/src/internal/shares/index.ts +23 -11
  411. package/src/internal/shares/interface.ts +8 -8
  412. package/src/internal/shares/manager.test.ts +88 -80
  413. package/src/internal/shares/manager.ts +19 -19
  414. package/src/internal/sharing/apiService.ts +282 -175
  415. package/src/internal/sharing/cache.test.ts +35 -35
  416. package/src/internal/sharing/cache.ts +11 -2
  417. package/src/internal/sharing/cryptoService.test.ts +58 -46
  418. package/src/internal/sharing/cryptoService.ts +121 -84
  419. package/src/internal/sharing/events.test.ts +113 -102
  420. package/src/internal/sharing/events.ts +42 -24
  421. package/src/internal/sharing/index.ts +22 -11
  422. package/src/internal/sharing/interface.ts +40 -40
  423. package/src/internal/sharing/sharingAccess.test.ts +71 -65
  424. package/src/internal/sharing/sharingAccess.ts +39 -21
  425. package/src/internal/sharing/sharingManagement.test.ts +398 -298
  426. package/src/internal/sharing/sharingManagement.ts +138 -65
  427. package/src/internal/uids.ts +1 -1
  428. package/src/internal/upload/apiService.ts +167 -117
  429. package/src/internal/upload/blockVerifier.ts +8 -6
  430. package/src/internal/upload/chunkStreamReader.test.ts +7 -7
  431. package/src/internal/upload/cryptoService.ts +42 -36
  432. package/src/internal/upload/digests.ts +2 -2
  433. package/src/internal/upload/fileUploader.test.ts +15 -3
  434. package/src/internal/upload/fileUploader.ts +39 -17
  435. package/src/internal/upload/index.ts +13 -14
  436. package/src/internal/upload/interface.ts +79 -78
  437. package/src/internal/upload/manager.test.ts +170 -156
  438. package/src/internal/upload/manager.ts +66 -39
  439. package/src/internal/upload/queue.ts +3 -3
  440. package/src/internal/upload/streamUploader.test.ts +40 -26
  441. package/src/internal/upload/streamUploader.ts +87 -69
  442. package/src/internal/upload/telemetry.test.ts +11 -11
  443. package/src/internal/upload/telemetry.ts +25 -15
  444. package/src/internal/wait.test.ts +1 -1
  445. package/src/internal/wait.ts +3 -3
  446. package/src/protonDriveClient.ts +121 -39
  447. package/src/protonDrivePhotosClient.ts +16 -10
  448. package/src/telemetry.ts +60 -52
  449. package/src/tests/logger.ts +1 -1
  450. package/src/tests/telemetry.ts +2 -2
  451. package/src/transformers.ts +29 -21
  452. package/src/version.ts +0 -1
@@ -1,13 +1,13 @@
1
- import { ValidationError } from "../../errors";
2
- import { ProtonDriveTelemetry, UploadMetadata } from "../../interface";
3
- import { getMockTelemetry } from "../../tests/telemetry";
4
- import { ErrorCode } from "../apiService";
5
- import { UploadAPIService } from "./apiService";
6
- import { UploadCryptoService } from "./cryptoService";
7
- import { NodesService } from "./interface";
1
+ import { ValidationError } from '../../errors';
2
+ import { ProtonDriveTelemetry, UploadMetadata } from '../../interface';
3
+ import { getMockTelemetry } from '../../tests/telemetry';
4
+ import { ErrorCode } from '../apiService';
5
+ import { UploadAPIService } from './apiService';
6
+ import { UploadCryptoService } from './cryptoService';
7
+ import { NodesService } from './interface';
8
8
  import { UploadManager } from './manager';
9
9
 
10
- describe("UploadManager", () => {
10
+ describe('UploadManager', () => {
11
11
  let telemetry: ProtonDriveTelemetry;
12
12
  let apiService: UploadAPIService;
13
13
  let cryptoService: UploadCryptoService;
@@ -22,16 +22,16 @@ describe("UploadManager", () => {
22
22
  // @ts-expect-error No need to implement all methods for mocking
23
23
  apiService = {
24
24
  createDraft: jest.fn().mockResolvedValue({
25
- nodeUid: "newNode:nodeUid",
26
- nodeRevisionUid: "newNode:nodeRevisionUid",
25
+ nodeUid: 'newNode:nodeUid',
26
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
27
27
  }),
28
28
  deleteDraft: jest.fn(),
29
29
  checkAvailableHashes: jest.fn().mockResolvedValue({
30
- availalbleHashes: ["name1Hash"],
30
+ availalbleHashes: ['name1Hash'],
31
31
  pendingHashes: [],
32
32
  }),
33
33
  commitDraftRevision: jest.fn(),
34
- }
34
+ };
35
35
  // @ts-expect-error No need to implement all methods for mocking
36
36
  cryptoService = {
37
37
  generateFileCrypto: jest.fn().mockResolvedValue({
@@ -51,163 +51,167 @@ describe("UploadManager", () => {
51
51
  },
52
52
  },
53
53
  encryptedNode: {
54
- encryptedName: "newNode:encryptedName",
55
- hash: "newNode:hash",
54
+ encryptedName: 'newNode:encryptedName',
55
+ hash: 'newNode:hash',
56
56
  },
57
57
  signatureAddress: {
58
- email: "signatureEmail",
58
+ email: 'signatureEmail',
59
59
  },
60
60
  }),
61
- generateNameHashes: jest.fn().mockResolvedValue([{
62
- name: "name1",
63
- hash: "name1Hash",
64
- }, {
65
- name: "name2",
66
- hash: "name2Hash",
67
- }, {
68
- name: "name3",
69
- hash: "name3Hash",
70
- }]),
61
+ generateNameHashes: jest.fn().mockResolvedValue([
62
+ {
63
+ name: 'name1',
64
+ hash: 'name1Hash',
65
+ },
66
+ {
67
+ name: 'name2',
68
+ hash: 'name2Hash',
69
+ },
70
+ {
71
+ name: 'name3',
72
+ hash: 'name3Hash',
73
+ },
74
+ ]),
71
75
  commitFile: jest.fn().mockResolvedValue({
72
- armoredManifestSignature: "newNode:armoredManifestSignature",
73
- signatureEmail: "signatureEmail",
74
- armoredExtendedAttributes: "newNode:armoredExtendedAttributes",
76
+ armoredManifestSignature: 'newNode:armoredManifestSignature',
77
+ signatureEmail: 'signatureEmail',
78
+ armoredExtendedAttributes: 'newNode:armoredExtendedAttributes',
75
79
  }),
76
- }
80
+ };
77
81
  nodesService = {
78
82
  getNode: jest.fn(async (nodeUid: string) => ({
79
83
  uid: nodeUid,
80
84
  parentUid: 'parentUid',
81
-
82
85
  })),
83
86
  getNodeKeys: jest.fn().mockResolvedValue({
84
87
  hashKey: 'parentNode:hashKey',
85
88
  key: 'parentNode:nodekey',
86
89
  }),
87
90
  getRootNodeEmailKey: jest.fn().mockResolvedValue({
88
- email: "signatureEmail",
89
- addressId: "addressId",
91
+ email: 'signatureEmail',
92
+ addressId: 'addressId',
90
93
  }),
91
- notifyChildCreated: jest.fn(async (nodeUid: string) => { return }),
92
- }
94
+ notifyChildCreated: jest.fn(),
95
+ notifyNodeChanged: jest.fn(),
96
+ };
93
97
 
94
98
  manager = new UploadManager(telemetry, apiService, cryptoService, nodesService, clientUid);
95
99
  });
96
100
 
97
- describe("createDraftNode", () => {
98
- it("should fail to create node in non-folder parent", async () => {
101
+ describe('createDraftNode', () => {
102
+ it('should fail to create node in non-folder parent', async () => {
99
103
  nodesService.getNodeKeys = jest.fn().mockResolvedValue({ hashKey: undefined });
100
104
 
101
- const result = manager.createDraftNode("parentUid", "name", {} as UploadMetadata);
102
- await expect(result).rejects.toThrow("Creating files in non-folders is not allowed");
105
+ const result = manager.createDraftNode('parentUid', 'name', {} as UploadMetadata);
106
+ await expect(result).rejects.toThrow('Creating files in non-folders is not allowed');
103
107
  });
104
108
 
105
- it("should create draft node", async () => {
106
- const result = await manager.createDraftNode("parentUid", "name", {
107
- mediaType: "myMimeType",
109
+ it('should create draft node', async () => {
110
+ const result = await manager.createDraftNode('parentUid', 'name', {
111
+ mediaType: 'myMimeType',
108
112
  expectedSize: 123456,
109
113
  } as UploadMetadata);
110
114
 
111
115
  expect(result).toEqual({
112
- nodeUid: "newNode:nodeUid",
113
- nodeRevisionUid: "newNode:nodeRevisionUid",
116
+ nodeUid: 'newNode:nodeUid',
117
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
114
118
  nodeKeys: {
115
- key: "newNode:key",
116
- contentKeyPacketSessionKey: "newNode:ContentKeyPacketSessionKey",
119
+ key: 'newNode:key',
120
+ contentKeyPacketSessionKey: 'newNode:ContentKeyPacketSessionKey',
117
121
  signatureAddress: {
118
- email: "signatureEmail",
122
+ email: 'signatureEmail',
119
123
  },
120
124
  },
121
125
  newNodeInfo: {
122
- parentUid: "parentUid",
123
- name: "name",
124
- encryptedName: "newNode:encryptedName",
125
- hash: "newNode:hash",
126
+ parentUid: 'parentUid',
127
+ name: 'name',
128
+ encryptedName: 'newNode:encryptedName',
129
+ hash: 'newNode:hash',
126
130
  },
127
131
  });
128
- expect(apiService.createDraft).toHaveBeenCalledWith("parentUid", {
129
- armoredEncryptedName: "newNode:encryptedName",
130
- hash: "newNode:hash",
131
- mediaType: "myMimeType",
132
+ expect(apiService.createDraft).toHaveBeenCalledWith('parentUid', {
133
+ armoredEncryptedName: 'newNode:encryptedName',
134
+ hash: 'newNode:hash',
135
+ mediaType: 'myMimeType',
132
136
  intendedUploadSize: 123456,
133
- armoredNodeKey: "newNode:armoredKey",
134
- armoredNodePassphrase: "newNode:armoredPassphrase",
135
- armoredNodePassphraseSignature: "newNode:armoredPassphraseSignature",
136
- base64ContentKeyPacket: "newNode:base64ContentKeyPacket",
137
- armoredContentKeyPacketSignature: "newNode:armoredContentKeyPacketSignature",
138
- signatureEmail: "signatureEmail",
137
+ armoredNodeKey: 'newNode:armoredKey',
138
+ armoredNodePassphrase: 'newNode:armoredPassphrase',
139
+ armoredNodePassphraseSignature: 'newNode:armoredPassphraseSignature',
140
+ base64ContentKeyPacket: 'newNode:base64ContentKeyPacket',
141
+ armoredContentKeyPacketSignature: 'newNode:armoredContentKeyPacketSignature',
142
+ signatureEmail: 'signatureEmail',
139
143
  });
140
144
  });
141
145
 
142
- it("should delete existing draft and trying again", async () => {
146
+ it('should delete existing draft and trying again', async () => {
143
147
  let firstCall = true;
144
148
  apiService.createDraft = jest.fn().mockImplementation(() => {
145
149
  if (firstCall) {
146
150
  firstCall = false;
147
- throw new ValidationError("Draft already exists", ErrorCode.ALREADY_EXISTS, {
148
- ConflictLinkID: "existingLinkId",
149
- ConflictDraftRevisionID: "existingDraftRevisionId",
151
+ throw new ValidationError('Draft already exists', ErrorCode.ALREADY_EXISTS, {
152
+ ConflictLinkID: 'existingLinkId',
153
+ ConflictDraftRevisionID: 'existingDraftRevisionId',
150
154
  ConflictDraftClientUID: clientUid,
151
155
  });
152
156
  }
153
157
  return {
154
- nodeUid: "newNode:nodeUid",
155
- nodeRevisionUid: "newNode:nodeRevisionUid",
158
+ nodeUid: 'newNode:nodeUid',
159
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
156
160
  };
157
161
  });
158
162
 
159
- const result = await manager.createDraftNode("volumeId~parentUid", "name", {} as UploadMetadata);
163
+ const result = await manager.createDraftNode('volumeId~parentUid', 'name', {} as UploadMetadata);
160
164
 
161
165
  expect(result).toEqual({
162
- nodeUid: "newNode:nodeUid",
163
- nodeRevisionUid: "newNode:nodeRevisionUid",
166
+ nodeUid: 'newNode:nodeUid',
167
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
164
168
  nodeKeys: {
165
- key: "newNode:key",
166
- contentKeyPacketSessionKey: "newNode:ContentKeyPacketSessionKey",
169
+ key: 'newNode:key',
170
+ contentKeyPacketSessionKey: 'newNode:ContentKeyPacketSessionKey',
167
171
  signatureAddress: {
168
- email: "signatureEmail",
172
+ email: 'signatureEmail',
169
173
  },
170
174
  },
171
175
  newNodeInfo: {
172
- parentUid: "volumeId~parentUid",
173
- name: "name",
174
- encryptedName: "newNode:encryptedName",
175
- hash: "newNode:hash",
176
+ parentUid: 'volumeId~parentUid',
177
+ name: 'name',
178
+ encryptedName: 'newNode:encryptedName',
179
+ hash: 'newNode:hash',
176
180
  },
177
181
  });
178
182
  expect(apiService.deleteDraft).toHaveBeenCalledTimes(1);
179
- expect(apiService.deleteDraft).toHaveBeenCalledWith("volumeId~existingLinkId");
183
+ expect(apiService.deleteDraft).toHaveBeenCalledWith('volumeId~existingLinkId');
180
184
  });
181
185
 
182
- it("should not delete existing draft if client UID does not match", async () => {
186
+ it('should not delete existing draft if client UID does not match', async () => {
183
187
  let firstCall = true;
184
188
  apiService.createDraft = jest.fn().mockImplementation(() => {
185
189
  if (firstCall) {
186
190
  firstCall = false;
187
- throw new ValidationError("Draft already exists", ErrorCode.ALREADY_EXISTS, {
188
- ConflictLinkID: "existingLinkId",
189
- ConflictDraftRevisionID: "existingDraftRevisionId",
190
- ConflictDraftClientUID: "anotherClientUid",
191
+ throw new ValidationError('Draft already exists', ErrorCode.ALREADY_EXISTS, {
192
+ ConflictLinkID: 'existingLinkId',
193
+ ConflictDraftRevisionID: 'existingDraftRevisionId',
194
+ ConflictDraftClientUID: 'anotherClientUid',
191
195
  });
192
196
  }
193
197
  return {
194
- nodeUid: "newNode:nodeUid",
195
- nodeRevisionUid: "newNode:nodeRevisionUid",
198
+ nodeUid: 'newNode:nodeUid',
199
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
196
200
  };
197
201
  });
198
202
 
199
- const promise = manager.createDraftNode("volumeId~parentUid", "name", {} as UploadMetadata);
203
+ const promise = manager.createDraftNode('volumeId~parentUid', 'name', {} as UploadMetadata);
200
204
 
201
205
  try {
202
206
  await promise;
203
207
  } catch (error: any) {
204
- expect(error.message).toBe("Draft already exists");
208
+ expect(error.message).toBe('Draft already exists');
205
209
  expect(error.ongoingUploadByOtherClient).toBe(true);
206
210
  }
207
211
  expect(apiService.deleteDraft).not.toHaveBeenCalled();
208
212
  });
209
213
 
210
- it("should not delete existing draft if client UID is not set", async () => {
214
+ it('should not delete existing draft if client UID is not set', async () => {
211
215
  const clientUid = undefined;
212
216
  manager = new UploadManager(telemetry, apiService, cryptoService, nodesService, clientUid);
213
217
 
@@ -215,77 +219,81 @@ describe("UploadManager", () => {
215
219
  apiService.createDraft = jest.fn().mockImplementation(() => {
216
220
  if (firstCall) {
217
221
  firstCall = false;
218
- throw new ValidationError("Draft already exists", ErrorCode.ALREADY_EXISTS, {
219
- ConflictLinkID: "existingLinkId",
220
- ConflictDraftRevisionID: "existingDraftRevisionId",
222
+ throw new ValidationError('Draft already exists', ErrorCode.ALREADY_EXISTS, {
223
+ ConflictLinkID: 'existingLinkId',
224
+ ConflictDraftRevisionID: 'existingDraftRevisionId',
221
225
  ConflictDraftClientUID: clientUid,
222
226
  });
223
227
  }
224
228
  return {
225
- nodeUid: "newNode:nodeUid",
226
- nodeRevisionUid: "newNode:nodeRevisionUid",
229
+ nodeUid: 'newNode:nodeUid',
230
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
227
231
  };
228
232
  });
229
233
 
230
- const promise = manager.createDraftNode("volumeId~parentUid", "name", {} as UploadMetadata);
234
+ const promise = manager.createDraftNode('volumeId~parentUid', 'name', {} as UploadMetadata);
231
235
 
232
236
  try {
233
237
  await promise;
234
238
  } catch (error: any) {
235
- expect(error.message).toBe("Draft already exists");
239
+ expect(error.message).toBe('Draft already exists');
236
240
  expect(error.ongoingUploadByOtherClient).toBe(true);
237
241
  }
238
242
  expect(apiService.deleteDraft).not.toHaveBeenCalled();
239
243
  });
240
244
 
241
- it("should handle error when deleting existing draft", async () => {
245
+ it('should handle error when deleting existing draft', async () => {
242
246
  let firstCall = true;
243
247
  apiService.createDraft = jest.fn().mockImplementation(() => {
244
248
  if (firstCall) {
245
249
  firstCall = false;
246
- throw new ValidationError("Draft already exists", ErrorCode.ALREADY_EXISTS, {
247
- ConflictLinkID: "existingLinkId",
248
- ConflictDraftRevisionID: "existingDraftRevisionId",
250
+ throw new ValidationError('Draft already exists', ErrorCode.ALREADY_EXISTS, {
251
+ ConflictLinkID: 'existingLinkId',
252
+ ConflictDraftRevisionID: 'existingDraftRevisionId',
249
253
  ConflictDraftClientUID: clientUid,
250
254
  });
251
255
  }
252
256
  return {
253
- nodeUid: "newNode:nodeUid",
254
- nodeRevisionUid: "newNode:nodeRevisionUid",
257
+ nodeUid: 'newNode:nodeUid',
258
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
255
259
  };
256
260
  });
257
261
  apiService.deleteDraft = jest.fn().mockImplementation(() => {
258
- throw new Error("Failed to delete draft");
262
+ throw new Error('Failed to delete draft');
259
263
  });
260
264
 
261
- const result = manager.createDraftNode("volumeId~parentUid", "name", {} as UploadMetadata);
265
+ const result = manager.createDraftNode('volumeId~parentUid', 'name', {} as UploadMetadata);
262
266
 
263
267
  try {
264
268
  await result;
265
269
  } catch (error: any) {
266
- expect(error.message).toBe("Draft already exists");
267
- expect(error.existingNodeUid).toBe("volumeId~existingLinkId");
270
+ expect(error.message).toBe('Draft already exists');
271
+ expect(error.existingNodeUid).toBe('volumeId~existingLinkId');
268
272
  }
269
273
  expect(apiService.deleteDraft).toHaveBeenCalledTimes(1);
270
274
  });
271
275
  });
272
276
 
273
- describe("findAvailableName", () => {
274
- it("should find available name", async () => {
277
+ describe('findAvailableName', () => {
278
+ it('should find available name', async () => {
275
279
  apiService.checkAvailableHashes = jest.fn().mockImplementation(() => {
276
280
  return {
277
- availalbleHashes: ["name3Hash"],
281
+ availalbleHashes: ['name3Hash'],
278
282
  pendingHashes: [],
279
- }
283
+ };
280
284
  });
281
285
 
282
- const result = await manager.findAvailableName("parentUid", "name");
283
- expect(result).toBe("name3");
286
+ const result = await manager.findAvailableName('parentUid', 'name');
287
+ expect(result).toBe('name3');
284
288
  expect(apiService.checkAvailableHashes).toHaveBeenCalledTimes(1);
285
- expect(apiService.checkAvailableHashes).toHaveBeenCalledWith("parentUid", ["name1Hash", "name2Hash", "name3Hash"]);
289
+ expect(apiService.checkAvailableHashes).toHaveBeenCalledWith('parentUid', [
290
+ 'name1Hash',
291
+ 'name2Hash',
292
+ 'name3Hash',
293
+ ]);
286
294
  });
287
295
 
288
- it("should find available name with multiple pages", async () => {
296
+ it('should find available name with multiple pages', async () => {
289
297
  let firstCall = false;
290
298
  apiService.checkAvailableHashes = jest.fn().mockImplementation(() => {
291
299
  if (!firstCall) {
@@ -294,80 +302,86 @@ describe("UploadManager", () => {
294
302
  // First page has no available hashes
295
303
  availalbleHashes: [],
296
304
  pendingHashes: [],
297
- }
305
+ };
298
306
  }
299
307
  return {
300
- availalbleHashes: ["name3Hash"],
308
+ availalbleHashes: ['name3Hash'],
301
309
  pendingHashes: [],
302
- }
310
+ };
303
311
  });
304
312
 
305
- const result = await manager.findAvailableName("parentUid", "name");
306
- expect(result).toBe("name3");
313
+ const result = await manager.findAvailableName('parentUid', 'name');
314
+ expect(result).toBe('name3');
307
315
  expect(apiService.checkAvailableHashes).toHaveBeenCalledTimes(2);
308
- expect(apiService.checkAvailableHashes).toHaveBeenCalledWith("parentUid", ["name1Hash", "name2Hash", "name3Hash"]);
316
+ expect(apiService.checkAvailableHashes).toHaveBeenCalledWith('parentUid', [
317
+ 'name1Hash',
318
+ 'name2Hash',
319
+ 'name3Hash',
320
+ ]);
309
321
  });
310
322
  });
311
323
 
312
- describe("commit draft", () => {
324
+ describe('commit draft', () => {
313
325
  const nodeRevisionDraft = {
314
- nodeUid: "newNode:nodeUid",
315
- nodeRevisionUid: "newNode:nodeRevisionUid",
326
+ nodeUid: 'newNode:nodeUid',
327
+ nodeRevisionUid: 'newNode:nodeRevisionUid',
316
328
  nodeKeys: {
317
329
  key: { _idx: 32321 },
318
- contentKeyPacketSessionKey: "newNode:contentKeyPacketSessionKey",
330
+ contentKeyPacketSessionKey: 'newNode:contentKeyPacketSessionKey',
319
331
  signatureAddress: {
320
- email: "signatureEmail",
321
- addressId: "addressId",
322
- addressKey: "addressKey",
332
+ email: 'signatureEmail',
333
+ addressId: 'addressId',
334
+ addressKey: 'addressKey',
323
335
  } as any,
324
336
  },
325
337
  };
326
338
  const manifest = new Uint8Array([1, 2, 3]);
327
- const metadata = {
328
- mediaType: "myMimeType",
329
- expectedSize: 123456,
330
- };
331
339
  const extendedAttributes = {
332
340
  modificationTime: new Date(),
333
341
  digests: {
334
- sha1: "sha1",
335
- }
342
+ sha1: 'sha1',
343
+ },
336
344
  };
337
345
 
338
- it("should commit revision draft", async () => {
339
- await manager.commitDraft(
340
- nodeRevisionDraft as any,
346
+ it('should commit revision draft', async () => {
347
+ await manager.commitDraft(nodeRevisionDraft as any, manifest, extendedAttributes);
348
+
349
+ expect(cryptoService.commitFile).toHaveBeenCalledWith(
350
+ nodeRevisionDraft.nodeKeys,
341
351
  manifest,
342
- metadata,
343
- extendedAttributes,
352
+ expect.anything(),
344
353
  );
354
+ expect(apiService.commitDraftRevision).toHaveBeenCalledWith(
355
+ nodeRevisionDraft.nodeRevisionUid,
356
+ expect.anything(),
357
+ );
358
+ expect(nodesService.notifyNodeChanged).toHaveBeenCalledWith('newNode:nodeUid');
359
+ expect(nodesService.notifyChildCreated).not.toHaveBeenCalled();
360
+ });
345
361
 
346
- expect(cryptoService.commitFile).toHaveBeenCalledWith(nodeRevisionDraft.nodeKeys, manifest, expect.anything());
347
- expect(apiService.commitDraftRevision).toHaveBeenCalledWith(nodeRevisionDraft.nodeRevisionUid, expect.anything());
348
- expect(nodesService.notifyChildCreated).toHaveBeenCalledWith("parentUid");
349
- })
350
-
351
- it("should commit node draft", async () => {
362
+ it('should commit node draft', async () => {
352
363
  const nodeRevisionDraftWithNewNodeInfo = {
353
364
  ...nodeRevisionDraft,
354
365
  newNodeInfo: {
355
- parentUid: "parentUid",
356
- name: "newNode:name",
357
- encryptedName: "newNode:encryptedName",
358
- hash: "newNode:hash",
359
- }
360
- }
361
- await manager.commitDraft(
362
- nodeRevisionDraftWithNewNodeInfo as any,
366
+ parentUid: 'parentUid',
367
+ name: 'newNode:name',
368
+ encryptedName: 'newNode:encryptedName',
369
+ hash: 'newNode:hash',
370
+ },
371
+ };
372
+ await manager.commitDraft(nodeRevisionDraftWithNewNodeInfo as any, manifest, extendedAttributes);
373
+
374
+ expect(cryptoService.commitFile).toHaveBeenCalledWith(
375
+ nodeRevisionDraft.nodeKeys,
363
376
  manifest,
364
- metadata,
365
- extendedAttributes,
377
+ expect.anything(),
366
378
  );
367
-
368
- expect(cryptoService.commitFile).toHaveBeenCalledWith(nodeRevisionDraft.nodeKeys, manifest, expect.anything());
369
- expect(apiService.commitDraftRevision).toHaveBeenCalledWith(nodeRevisionDraft.nodeRevisionUid, expect.anything());
370
- expect(nodesService.notifyChildCreated).toHaveBeenCalledWith("parentUid");
379
+ expect(apiService.commitDraftRevision).toHaveBeenCalledWith(
380
+ nodeRevisionDraft.nodeRevisionUid,
381
+ expect.anything(),
382
+ );
383
+ expect(nodesService.notifyChildCreated).toHaveBeenCalledWith('parentUid');
384
+ expect(nodesService.notifyNodeChanged).not.toHaveBeenCalled();
371
385
  });
372
386
  });
373
387
  });