@protontech/drive-sdk 0.0.12 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) 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/nullCache.d.ts +14 -0
  6. package/dist/cache/nullCache.js +37 -0
  7. package/dist/cache/nullCache.js.map +1 -0
  8. package/dist/config.d.ts +16 -1
  9. package/dist/config.js +1 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/crypto/openPGPCrypto.js +2 -0
  12. package/dist/crypto/openPGPCrypto.js.map +1 -1
  13. package/dist/diagnostic/eventsGenerator.d.ts +14 -0
  14. package/dist/diagnostic/eventsGenerator.js +49 -0
  15. package/dist/diagnostic/eventsGenerator.js.map +1 -0
  16. package/dist/diagnostic/httpClient.d.ts +16 -0
  17. package/dist/diagnostic/httpClient.js +81 -0
  18. package/dist/diagnostic/httpClient.js.map +1 -0
  19. package/dist/diagnostic/index.d.ts +10 -0
  20. package/dist/diagnostic/index.js +35 -0
  21. package/dist/diagnostic/index.js.map +1 -0
  22. package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
  23. package/dist/diagnostic/integrityVerificationStream.js +56 -0
  24. package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
  25. package/dist/diagnostic/interface.d.ts +102 -0
  26. package/dist/diagnostic/interface.js +3 -0
  27. package/dist/diagnostic/interface.js.map +1 -0
  28. package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
  29. package/dist/diagnostic/sdkDiagnostic.js +216 -0
  30. package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
  31. package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
  32. package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
  33. package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
  34. package/dist/diagnostic/telemetry.d.ts +25 -0
  35. package/dist/diagnostic/telemetry.js +70 -0
  36. package/dist/diagnostic/telemetry.js.map +1 -0
  37. package/dist/diagnostic/zipGenerators.d.ts +9 -0
  38. package/dist/diagnostic/zipGenerators.js +64 -0
  39. package/dist/diagnostic/zipGenerators.js.map +1 -0
  40. package/dist/diagnostic/zipGenerators.test.js +144 -0
  41. package/dist/diagnostic/zipGenerators.test.js.map +1 -0
  42. package/dist/errors.d.ts +8 -3
  43. package/dist/errors.js +11 -4
  44. package/dist/errors.js.map +1 -1
  45. package/dist/interface/config.d.ts +26 -0
  46. package/dist/interface/config.js +3 -0
  47. package/dist/interface/config.js.map +1 -0
  48. package/dist/interface/download.d.ts +2 -2
  49. package/dist/interface/events.d.ts +60 -20
  50. package/dist/interface/events.js +11 -1
  51. package/dist/interface/events.js.map +1 -1
  52. package/dist/interface/httpClient.d.ts +0 -14
  53. package/dist/interface/index.d.ts +9 -5
  54. package/dist/interface/index.js +2 -1
  55. package/dist/interface/index.js.map +1 -1
  56. package/dist/interface/nodes.d.ts +21 -1
  57. package/dist/interface/nodes.js +11 -0
  58. package/dist/interface/nodes.js.map +1 -1
  59. package/dist/interface/sharing.d.ts +1 -0
  60. package/dist/interface/upload.d.ts +57 -3
  61. package/dist/internal/apiService/driveTypes.d.ts +1341 -465
  62. package/dist/internal/apiService/errors.js +2 -2
  63. package/dist/internal/apiService/errors.js.map +1 -1
  64. package/dist/internal/apiService/transformers.js +2 -0
  65. package/dist/internal/apiService/transformers.js.map +1 -1
  66. package/dist/internal/asyncIteratorMap.d.ts +15 -0
  67. package/dist/internal/asyncIteratorMap.js +59 -0
  68. package/dist/internal/asyncIteratorMap.js.map +1 -0
  69. package/dist/internal/asyncIteratorMap.test.js +120 -0
  70. package/dist/internal/asyncIteratorMap.test.js.map +1 -0
  71. package/dist/internal/download/apiService.js +32 -31
  72. package/dist/internal/download/apiService.js.map +1 -1
  73. package/dist/internal/download/fileDownloader.d.ts +2 -2
  74. package/dist/internal/download/fileDownloader.js.map +1 -1
  75. package/dist/internal/events/apiService.d.ts +4 -6
  76. package/dist/internal/events/apiService.js +15 -22
  77. package/dist/internal/events/apiService.js.map +1 -1
  78. package/dist/internal/events/coreEventManager.d.ts +7 -10
  79. package/dist/internal/events/coreEventManager.js +19 -36
  80. package/dist/internal/events/coreEventManager.js.map +1 -1
  81. package/dist/internal/events/coreEventManager.test.d.ts +1 -0
  82. package/dist/internal/events/coreEventManager.test.js +87 -0
  83. package/dist/internal/events/coreEventManager.test.js.map +1 -0
  84. package/dist/internal/events/eventManager.d.ts +11 -36
  85. package/dist/internal/events/eventManager.js +59 -105
  86. package/dist/internal/events/eventManager.js.map +1 -1
  87. package/dist/internal/events/eventManager.test.js +167 -82
  88. package/dist/internal/events/eventManager.test.js.map +1 -1
  89. package/dist/internal/events/index.d.ts +13 -33
  90. package/dist/internal/events/index.js +56 -72
  91. package/dist/internal/events/index.js.map +1 -1
  92. package/dist/internal/events/interface.d.ts +59 -14
  93. package/dist/internal/events/interface.js +13 -3
  94. package/dist/internal/events/interface.js.map +1 -1
  95. package/dist/internal/events/volumeEventManager.d.ts +7 -17
  96. package/dist/internal/events/volumeEventManager.js +58 -45
  97. package/dist/internal/events/volumeEventManager.js.map +1 -1
  98. package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
  99. package/dist/internal/events/volumeEventManager.test.js +203 -0
  100. package/dist/internal/events/volumeEventManager.test.js.map +1 -0
  101. package/dist/internal/nodes/apiService.d.ts +2 -2
  102. package/dist/internal/nodes/apiService.js +16 -6
  103. package/dist/internal/nodes/apiService.js.map +1 -1
  104. package/dist/internal/nodes/apiService.test.js +30 -8
  105. package/dist/internal/nodes/apiService.test.js.map +1 -1
  106. package/dist/internal/nodes/cache.d.ts +10 -1
  107. package/dist/internal/nodes/cache.js +18 -0
  108. package/dist/internal/nodes/cache.js.map +1 -1
  109. package/dist/internal/nodes/cache.test.js +1 -0
  110. package/dist/internal/nodes/cache.test.js.map +1 -1
  111. package/dist/internal/nodes/cryptoService.d.ts +1 -1
  112. package/dist/internal/nodes/cryptoService.js.map +1 -1
  113. package/dist/internal/nodes/cryptoService.test.js +34 -0
  114. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  115. package/dist/internal/nodes/events.d.ts +7 -83
  116. package/dist/internal/nodes/events.js +43 -217
  117. package/dist/internal/nodes/events.js.map +1 -1
  118. package/dist/internal/nodes/events.test.js +27 -277
  119. package/dist/internal/nodes/events.test.js.map +1 -1
  120. package/dist/internal/nodes/index.d.ts +3 -4
  121. package/dist/internal/nodes/index.js +5 -5
  122. package/dist/internal/nodes/index.js.map +1 -1
  123. package/dist/internal/nodes/interface.d.ts +3 -1
  124. package/dist/internal/nodes/nodesAccess.d.ts +15 -0
  125. package/dist/internal/nodes/nodesAccess.js +65 -7
  126. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  127. package/dist/internal/nodes/nodesAccess.test.js +132 -93
  128. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  129. package/dist/internal/nodes/nodesManagement.d.ts +1 -3
  130. package/dist/internal/nodes/nodesManagement.js +12 -26
  131. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  132. package/dist/internal/nodes/nodesManagement.test.js +35 -14
  133. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  134. package/dist/internal/shares/cache.d.ts +2 -0
  135. package/dist/internal/shares/cache.js +2 -0
  136. package/dist/internal/shares/cache.js.map +1 -1
  137. package/dist/internal/shares/manager.d.ts +1 -0
  138. package/dist/internal/shares/manager.js +3 -0
  139. package/dist/internal/shares/manager.js.map +1 -1
  140. package/dist/internal/sharing/apiService.js +20 -2
  141. package/dist/internal/sharing/apiService.js.map +1 -1
  142. package/dist/internal/sharing/cryptoService.js +1 -0
  143. package/dist/internal/sharing/cryptoService.js.map +1 -1
  144. package/dist/internal/sharing/events.d.ts +23 -55
  145. package/dist/internal/sharing/events.js +46 -138
  146. package/dist/internal/sharing/events.js.map +1 -1
  147. package/dist/internal/sharing/events.test.js +77 -180
  148. package/dist/internal/sharing/events.test.js.map +1 -1
  149. package/dist/internal/sharing/index.d.ts +4 -5
  150. package/dist/internal/sharing/index.js +5 -5
  151. package/dist/internal/sharing/index.js.map +1 -1
  152. package/dist/internal/sharing/interface.d.ts +3 -0
  153. package/dist/internal/sharing/sharingManagement.d.ts +2 -3
  154. package/dist/internal/sharing/sharingManagement.js +7 -9
  155. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  156. package/dist/internal/sharing/sharingManagement.test.js +9 -39
  157. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  158. package/dist/internal/upload/apiService.d.ts +2 -3
  159. package/dist/internal/upload/apiService.js +7 -4
  160. package/dist/internal/upload/apiService.js.map +1 -1
  161. package/dist/internal/upload/fileUploader.d.ts +49 -53
  162. package/dist/internal/upload/fileUploader.js +91 -395
  163. package/dist/internal/upload/fileUploader.js.map +1 -1
  164. package/dist/internal/upload/fileUploader.test.js +38 -292
  165. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  166. package/dist/internal/upload/index.d.ts +5 -5
  167. package/dist/internal/upload/index.js +23 -44
  168. package/dist/internal/upload/index.js.map +1 -1
  169. package/dist/internal/upload/interface.d.ts +2 -0
  170. package/dist/internal/upload/manager.d.ts +6 -6
  171. package/dist/internal/upload/manager.js +32 -66
  172. package/dist/internal/upload/manager.js.map +1 -1
  173. package/dist/internal/upload/manager.test.js +100 -117
  174. package/dist/internal/upload/manager.test.js.map +1 -1
  175. package/dist/internal/upload/streamUploader.d.ts +62 -0
  176. package/dist/internal/upload/streamUploader.js +440 -0
  177. package/dist/internal/upload/streamUploader.js.map +1 -0
  178. package/dist/internal/upload/streamUploader.test.d.ts +1 -0
  179. package/dist/internal/upload/streamUploader.test.js +358 -0
  180. package/dist/internal/upload/streamUploader.test.js.map +1 -0
  181. package/dist/protonDriveClient.d.ts +22 -165
  182. package/dist/protonDriveClient.js +27 -191
  183. package/dist/protonDriveClient.js.map +1 -1
  184. package/dist/protonDrivePhotosClient.js +3 -2
  185. package/dist/protonDrivePhotosClient.js.map +1 -1
  186. package/package.json +4 -4
  187. package/src/cache/index.ts +1 -0
  188. package/src/cache/memoryCache.ts +1 -1
  189. package/src/cache/nullCache.ts +38 -0
  190. package/src/config.ts +17 -2
  191. package/src/crypto/openPGPCrypto.ts +2 -0
  192. package/src/diagnostic/eventsGenerator.ts +48 -0
  193. package/src/diagnostic/httpClient.ts +80 -0
  194. package/src/diagnostic/index.ts +38 -0
  195. package/src/diagnostic/integrityVerificationStream.ts +56 -0
  196. package/src/diagnostic/interface.ts +158 -0
  197. package/src/diagnostic/sdkDiagnostic.ts +238 -0
  198. package/src/diagnostic/sdkDiagnosticFull.ts +40 -0
  199. package/src/diagnostic/telemetry.ts +71 -0
  200. package/src/diagnostic/zipGenerators.test.ts +177 -0
  201. package/src/diagnostic/zipGenerators.ts +70 -0
  202. package/src/errors.ts +13 -4
  203. package/src/interface/config.ts +28 -0
  204. package/src/interface/download.ts +2 -2
  205. package/src/interface/events.ts +66 -21
  206. package/src/interface/httpClient.ts +0 -16
  207. package/src/interface/index.ts +9 -5
  208. package/src/interface/nodes.ts +32 -12
  209. package/src/interface/sharing.ts +1 -0
  210. package/src/interface/upload.ts +59 -3
  211. package/src/internal/apiService/driveTypes.ts +1341 -465
  212. package/src/internal/apiService/errors.ts +3 -2
  213. package/src/internal/apiService/transformers.ts +2 -0
  214. package/src/internal/asyncIteratorMap.test.ts +150 -0
  215. package/src/internal/asyncIteratorMap.ts +64 -0
  216. package/src/internal/download/apiService.ts +11 -8
  217. package/src/internal/download/fileDownloader.ts +2 -2
  218. package/src/internal/events/apiService.ts +25 -28
  219. package/src/internal/events/coreEventManager.test.ts +101 -0
  220. package/src/internal/events/coreEventManager.ts +20 -45
  221. package/src/internal/events/eventManager.test.ts +201 -88
  222. package/src/internal/events/eventManager.ts +69 -115
  223. package/src/internal/events/index.ts +54 -84
  224. package/src/internal/events/interface.ts +70 -15
  225. package/src/internal/events/volumeEventManager.test.ts +243 -0
  226. package/src/internal/events/volumeEventManager.ts +55 -53
  227. package/src/internal/nodes/apiService.test.ts +36 -7
  228. package/src/internal/nodes/apiService.ts +19 -7
  229. package/src/internal/nodes/cache.test.ts +1 -0
  230. package/src/internal/nodes/cache.ts +21 -2
  231. package/src/internal/nodes/cryptoService.test.ts +38 -0
  232. package/src/internal/nodes/cryptoService.ts +1 -1
  233. package/src/internal/nodes/events.test.ts +29 -335
  234. package/src/internal/nodes/events.ts +45 -253
  235. package/src/internal/nodes/index.ts +6 -8
  236. package/src/internal/nodes/interface.ts +6 -3
  237. package/src/internal/nodes/nodesAccess.test.ts +133 -91
  238. package/src/internal/nodes/nodesAccess.ts +70 -8
  239. package/src/internal/nodes/nodesManagement.test.ts +39 -15
  240. package/src/internal/nodes/nodesManagement.ts +12 -30
  241. package/src/internal/shares/cache.ts +4 -2
  242. package/src/internal/shares/manager.ts +9 -5
  243. package/src/internal/sharing/apiService.ts +25 -2
  244. package/src/internal/sharing/cache.ts +1 -1
  245. package/src/internal/sharing/cryptoService.ts +1 -0
  246. package/src/internal/sharing/events.test.ts +89 -195
  247. package/src/internal/sharing/events.ts +42 -156
  248. package/src/internal/sharing/index.ts +6 -9
  249. package/src/internal/sharing/interface.ts +6 -2
  250. package/src/internal/sharing/sharingManagement.test.ts +10 -40
  251. package/src/internal/sharing/sharingManagement.ts +7 -11
  252. package/src/internal/upload/apiService.ts +5 -6
  253. package/src/internal/upload/fileUploader.test.ts +46 -376
  254. package/src/internal/upload/fileUploader.ts +114 -494
  255. package/src/internal/upload/index.ts +30 -54
  256. package/src/internal/upload/interface.ts +2 -0
  257. package/src/internal/upload/manager.test.ts +107 -124
  258. package/src/internal/upload/manager.ts +48 -80
  259. package/src/internal/upload/streamUploader.test.ts +468 -0
  260. package/src/internal/upload/streamUploader.ts +550 -0
  261. package/src/protonDriveClient.ts +80 -248
  262. package/src/protonDrivePhotosClient.ts +4 -3
  263. package/dist/internal/events/cache.d.ts +0 -28
  264. package/dist/internal/events/cache.js +0 -67
  265. package/dist/internal/events/cache.js.map +0 -1
  266. package/dist/internal/events/cache.test.js +0 -43
  267. package/dist/internal/events/cache.test.js.map +0 -1
  268. package/dist/internal/nodes/index.test.js +0 -112
  269. package/dist/internal/nodes/index.test.js.map +0 -1
  270. package/src/internal/events/cache.test.ts +0 -47
  271. package/src/internal/events/cache.ts +0 -80
  272. package/src/internal/nodes/index.test.ts +0 -135
  273. /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
  274. /package/dist/internal/{nodes/index.test.d.ts → asyncIteratorMap.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"nodesAccess.js","sourceRoot":"","sources":["../../../src/internal/nodes/nodesAccess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodesAccess.js","sourceRoot":"","sources":["../../../src/internal/nodes/nodesAccess.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ describe('nodesAccess', () => {
16
16
  apiService = {
17
17
  getNode: jest.fn(),
18
18
  iterateNodes: jest.fn().mockImplementation(async function* (uids) {
19
- yield* uids.map((uid => ({ uid, parentUid: 'parentUid' })));
19
+ yield* uids.map((uid => ({ uid, parentUid: 'volumeId~parentNodeId' })));
20
20
  }),
21
21
  iterateChildrenNodeUids: jest.fn(),
22
22
  };
@@ -40,77 +40,81 @@ describe('nodesAccess', () => {
40
40
  };
41
41
  // @ts-expect-error No need to implement all methods for mocking
42
42
  shareService = {
43
+ getMyFilesIDs: jest.fn().mockResolvedValue({ volumeId: 'volumeId' }),
43
44
  getSharePrivateKey: jest.fn(),
44
45
  };
45
46
  access = new nodesAccess_1.NodesAccess((0, logger_1.getMockLogger)(), apiService, cache, cryptoCache, cryptoService, shareService);
46
47
  });
47
48
  describe('getNode', () => {
48
49
  it('should get node from cache', async () => {
49
- const node = { uid: 'nodeId', isStale: false };
50
+ const node = { uid: 'volumeId~nodeId', isStale: false };
50
51
  cache.getNode = jest.fn(() => Promise.resolve(node));
51
- const result = await access.getNode('nodeId');
52
+ const result = await access.getNode('volumeId~nodeId');
52
53
  expect(result).toBe(node);
53
54
  expect(apiService.getNode).not.toHaveBeenCalled();
54
55
  });
55
- it('should get node from API when cahce is stale', async () => {
56
- const encryptedNode = { uid: 'nodeId', parentUid: 'parentUid' };
57
- const decryptedUnparsedNode = { uid: 'nodeId', parentUid: 'parentUid', name: { ok: true, value: 'name' } };
56
+ it('should get node from API when cache is stale', async () => {
57
+ const encryptedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid' };
58
+ const decryptedUnparsedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid', name: { ok: true, value: 'name' } };
58
59
  const decryptedNode = {
59
60
  ...decryptedUnparsedNode,
60
61
  name: { ok: true, value: 'name' },
61
62
  isStale: false,
62
63
  activeRevision: undefined,
63
64
  folder: undefined,
65
+ treeEventScopeId: "volumeId",
64
66
  };
65
67
  const decryptedKeys = { key: 'key' };
66
- cache.getNode = jest.fn(() => Promise.resolve({ uid: 'nodeId', isStale: true }));
68
+ cache.getNode = jest.fn(() => Promise.resolve({ uid: 'volumeId~nodeId', isStale: true }));
67
69
  apiService.getNode = jest.fn(() => Promise.resolve(encryptedNode));
68
70
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
69
71
  cryptoService.decryptNode = jest.fn(() => Promise.resolve({ node: decryptedUnparsedNode, keys: decryptedKeys }));
70
- const result = await access.getNode('nodeId');
72
+ const result = await access.getNode('volumeId~nodeId');
71
73
  expect(result).toEqual(decryptedNode);
72
- expect(apiService.getNode).toHaveBeenCalledWith('nodeId');
73
- expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('parentUid');
74
+ expect(apiService.getNode).toHaveBeenCalledWith('volumeId~nodeId', 'volumeId');
75
+ expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('volumeId~parentNodeid');
74
76
  expect(cryptoService.decryptNode).toHaveBeenCalledWith(encryptedNode, 'parentKey');
75
77
  expect(cache.setNode).toHaveBeenCalledWith(decryptedNode);
76
- expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('nodeId', decryptedKeys);
78
+ expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('volumeId~nodeId', decryptedKeys);
77
79
  });
78
80
  it('should get node from API missing cache', async () => {
79
- const encryptedNode = { uid: 'nodeId', parentUid: 'parentUid' };
80
- const decryptedUnparsedNode = { uid: 'nodeId', parentUid: 'parentUid', name: { ok: true, value: 'name' } };
81
+ const encryptedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid' };
82
+ const decryptedUnparsedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid', name: { ok: true, value: 'name' } };
81
83
  const decryptedNode = {
82
84
  ...decryptedUnparsedNode,
83
85
  name: { ok: true, value: 'name' },
84
86
  isStale: false,
85
87
  activeRevision: undefined,
86
88
  folder: undefined,
89
+ treeEventScopeId: 'volumeId',
87
90
  };
88
91
  const decryptedKeys = { key: 'key' };
89
92
  cache.getNode = jest.fn(() => Promise.reject(new Error('Entity not found')));
90
93
  apiService.getNode = jest.fn(() => Promise.resolve(encryptedNode));
91
94
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
92
95
  cryptoService.decryptNode = jest.fn(() => Promise.resolve({ node: decryptedUnparsedNode, keys: decryptedKeys }));
93
- const result = await access.getNode('nodeId');
96
+ const result = await access.getNode('volumeId~nodeId');
94
97
  expect(result).toEqual(decryptedNode);
95
- expect(apiService.getNode).toHaveBeenCalledWith('nodeId');
96
- expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('parentUid');
98
+ expect(apiService.getNode).toHaveBeenCalledWith('volumeId~nodeId', 'volumeId');
99
+ expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('volumeId~parentNodeid');
97
100
  expect(cryptoService.decryptNode).toHaveBeenCalledWith(encryptedNode, 'parentKey');
98
101
  expect(cache.setNode).toHaveBeenCalledWith(decryptedNode);
99
- expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('nodeId', decryptedKeys);
102
+ expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('volumeId~nodeId', decryptedKeys);
100
103
  });
101
104
  it('should validate node name', async () => {
102
- const encryptedNode = { uid: 'nodeId', parentUid: 'parentUid' };
103
- const decryptedUnparsedNode = { uid: 'nodeId', parentUid: 'parentUid', name: { ok: true, value: 'foo/bar' } };
105
+ const encryptedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid' };
106
+ const decryptedUnparsedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid', name: { ok: true, value: 'foo/bar' } };
104
107
  const decryptedNode = {
105
108
  ...decryptedUnparsedNode,
106
109
  name: { ok: false, error: { name: 'foo/bar', error: "Name must not contain the character '/'" } },
110
+ treeEventScopeId: 'volumeId',
107
111
  };
108
112
  const decryptedKeys = { key: 'key' };
109
113
  cache.getNode = jest.fn(() => Promise.reject(new Error('Entity not found')));
110
114
  apiService.getNode = jest.fn(() => Promise.resolve(encryptedNode));
111
115
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
112
116
  cryptoService.decryptNode = jest.fn(() => Promise.resolve({ node: decryptedUnparsedNode, keys: decryptedKeys }));
113
- const result = await access.getNode('nodeId');
117
+ const result = await access.getNode('volumeId~nodeId');
114
118
  expect(result).toMatchObject(decryptedNode);
115
119
  });
116
120
  });
@@ -123,11 +127,11 @@ describe('nodesAccess', () => {
123
127
  }));
124
128
  });
125
129
  describe('iterateChildren', () => {
126
- const parentNode = { uid: 'parentUid', isStale: false };
127
- const node1 = { uid: 'node1', isStale: false };
128
- const node2 = { uid: 'node2', isStale: false };
129
- const node3 = { uid: 'node3', isStale: false };
130
- const node4 = { uid: 'node4', isStale: false };
130
+ const parentNode = { uid: 'volumeId~parentNodeid', isStale: false };
131
+ const node1 = { uid: 'volumeId~node1', isStale: false };
132
+ const node2 = { uid: 'volumeId~node2', isStale: false };
133
+ const node3 = { uid: 'volumeId~node3', isStale: false };
134
+ const node4 = { uid: 'volumeId~node4', isStale: false };
131
135
  beforeEach(() => {
132
136
  cache.getNode = jest.fn().mockResolvedValue(parentNode);
133
137
  });
@@ -139,7 +143,7 @@ describe('nodesAccess', () => {
139
143
  yield { ok: true, node: node3 };
140
144
  yield { ok: true, node: node4 };
141
145
  });
142
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
146
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
143
147
  expect(result).toMatchObject([node1, node2, node3, node4]);
144
148
  expect(apiService.iterateChildrenNodeUids).not.toHaveBeenCalled();
145
149
  expect(apiService.iterateNodes).not.toHaveBeenCalled();
@@ -152,33 +156,33 @@ describe('nodesAccess', () => {
152
156
  yield { ok: true, uid: node3.uid, node: { ...node3, isStale: true } };
153
157
  yield { ok: true, uid: node4.uid, node: node4 };
154
158
  });
155
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
159
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
156
160
  expect(result).toMatchObject([node1, node4, node2, node3]);
157
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node2', 'node3'], undefined);
161
+ expect(apiService.iterateNodes).toHaveBeenCalledWith([node2.uid, node3.uid], 'volumeId', undefined);
158
162
  expect(cryptoService.decryptNode).toHaveBeenCalledTimes(2);
159
163
  expect(cache.setNode).toHaveBeenCalledTimes(2);
160
164
  expect(cryptoCache.setNodeKeys).toHaveBeenCalledTimes(2);
161
165
  });
162
166
  it('should load children uids and serve nodes from cache', async () => {
163
167
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
164
- yield 'node1';
165
- yield 'node2';
166
- yield 'node3';
167
- yield 'node4';
168
+ yield node1.uid;
169
+ yield node2.uid;
170
+ yield node3.uid;
171
+ yield node4.uid;
168
172
  });
169
173
  cache.getNode = jest.fn().mockImplementation((uid) => ({ uid, isStale: false }));
170
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
174
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
171
175
  expect(result).toMatchObject([node1, node2, node3, node4]);
172
- expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('parentUid', undefined);
176
+ expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('volumeId~parentNodeid', undefined);
173
177
  expect(apiService.iterateNodes).not.toHaveBeenCalled();
174
- expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('parentUid');
178
+ expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('volumeId~parentNodeid');
175
179
  });
176
180
  it('should load from API', async () => {
177
181
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
178
- yield 'node1';
179
- yield 'node2';
180
- yield 'node3';
181
- yield 'node4';
182
+ yield node1.uid;
183
+ yield node2.uid;
184
+ yield node3.uid;
185
+ yield node4.uid;
182
186
  });
183
187
  cache.getNode = jest.fn().mockImplementation((uid) => {
184
188
  if (uid === parentNode.uid) {
@@ -186,20 +190,20 @@ describe('nodesAccess', () => {
186
190
  }
187
191
  throw new Error('Entity not found');
188
192
  });
189
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
193
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
190
194
  expect(result).toMatchObject([node1, node2, node3, node4]);
191
- expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('parentUid', undefined);
192
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node1', 'node2', 'node3', 'node4'], undefined);
195
+ expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('volumeId~parentNodeid', undefined);
196
+ expect(apiService.iterateNodes).toHaveBeenCalledWith(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4'], 'volumeId', undefined);
193
197
  expect(cryptoService.decryptNode).toHaveBeenCalledTimes(4);
194
198
  expect(cache.setNode).toHaveBeenCalledTimes(4);
195
199
  expect(cryptoCache.setNodeKeys).toHaveBeenCalledTimes(4);
196
- expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('parentUid');
200
+ expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('volumeId~parentNodeid');
197
201
  });
198
202
  it('should remove from cache if missing on API', async () => {
199
203
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
200
- yield 'node1';
201
- yield 'node2';
202
- yield 'node3';
204
+ yield node1.uid;
205
+ yield node2.uid;
206
+ yield node3.uid;
203
207
  });
204
208
  cache.getNode = jest.fn().mockImplementation((uid) => {
205
209
  if (uid === parentNode.uid) {
@@ -211,15 +215,15 @@ describe('nodesAccess', () => {
211
215
  // Skip first node - make it missing.
212
216
  yield* uids.slice(1).map((uid) => ({ uid, parentUid: parentNode.uid }));
213
217
  });
214
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
218
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
215
219
  expect(result).toMatchObject([node2, node3]);
216
- expect(cache.removeNodes).toHaveBeenCalledWith(['node1']);
220
+ expect(cache.removeNodes).toHaveBeenCalledWith([node1.uid]);
217
221
  });
218
222
  it('should yield all decryptable children before throwing error', async () => {
219
223
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
220
- yield 'node1';
221
- yield 'node2';
222
- yield 'node3';
224
+ yield 'volumeId~node1';
225
+ yield 'volumeId~node2';
226
+ yield 'volumeId~node3';
223
227
  });
224
228
  cache.getNode = jest.fn().mockImplementation((uid) => {
225
229
  if (uid === parentNode.uid) {
@@ -228,7 +232,7 @@ describe('nodesAccess', () => {
228
232
  throw new Error('Entity not found');
229
233
  });
230
234
  cryptoService.decryptNode = jest.fn().mockImplementation((encryptedNode) => {
231
- if (encryptedNode.uid === 'node2') {
235
+ if (encryptedNode.uid === 'volumeId~node2') {
232
236
  throw new errors_1.DecryptionError('Decryption failed');
233
237
  }
234
238
  return Promise.resolve({
@@ -236,11 +240,11 @@ describe('nodesAccess', () => {
236
240
  keys: { key: 'key' },
237
241
  });
238
242
  });
239
- const generator = access.iterateFolderChildren('parentUid');
243
+ const generator = access.iterateFolderChildren('volumeId~parentNodeid');
240
244
  const node1 = await generator.next();
241
- expect(node1.value).toMatchObject({ uid: 'node1' });
245
+ expect(node1.value).toMatchObject({ uid: 'volumeId~node1' });
242
246
  const node2 = await generator.next();
243
- expect(node2.value).toMatchObject({ uid: 'node3' });
247
+ expect(node2.value).toMatchObject({ uid: 'volumeId~node3' });
244
248
  const node3 = generator.next();
245
249
  await expect(node3).rejects.toThrow('Failed to decrypt some nodes');
246
250
  try {
@@ -255,10 +259,10 @@ describe('nodesAccess', () => {
255
259
  });
256
260
  describe('iterateTrashedNodes', () => {
257
261
  const volumeId = 'volumeId';
258
- const node1 = { uid: 'node1', isStale: false };
259
- const node2 = { uid: 'node2', isStale: false };
260
- const node3 = { uid: 'node3', isStale: false };
261
- const node4 = { uid: 'node4', isStale: false };
262
+ const node1 = { uid: 'volumeId~node1', isStale: false };
263
+ const node2 = { uid: 'volumeId~node2', isStale: false };
264
+ const node3 = { uid: 'volumeId~node3', isStale: false };
265
+ const node4 = { uid: 'volumeId~node4', isStale: false };
262
266
  beforeEach(() => {
263
267
  shareService.getMyFilesIDs = jest.fn().mockResolvedValue({ volumeId });
264
268
  apiService.iterateTrashedNodeUids = jest.fn().mockImplementation(async function* () {
@@ -282,7 +286,7 @@ describe('nodesAccess', () => {
282
286
  const result = await Array.fromAsync(access.iterateTrashedNodes());
283
287
  expect(result).toMatchObject([node1, node2, node3, node4]);
284
288
  expect(apiService.iterateTrashedNodeUids).toHaveBeenCalledWith(volumeId, undefined);
285
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node1', 'node2', 'node3', 'node4'], undefined);
289
+ expect(apiService.iterateNodes).toHaveBeenCalledWith(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4'], volumeId, undefined);
286
290
  expect(cryptoService.decryptNode).toHaveBeenCalledTimes(4);
287
291
  expect(cache.setNode).toHaveBeenCalledTimes(4);
288
292
  expect(cryptoCache.setNodeKeys).toHaveBeenCalledTimes(4);
@@ -293,18 +297,18 @@ describe('nodesAccess', () => {
293
297
  });
294
298
  apiService.iterateNodes = jest.fn().mockImplementation(async function* (uids) {
295
299
  // Skip first node - make it missing.
296
- yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'parentUid' }));
300
+ yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'volumeId~parentNodeid' }));
297
301
  });
298
302
  const result = await Array.fromAsync(access.iterateTrashedNodes());
299
303
  expect(result).toMatchObject([node2, node3, node4]);
300
- expect(cache.removeNodes).toHaveBeenCalledWith(['node1']);
304
+ expect(cache.removeNodes).toHaveBeenCalledWith(['volumeId~node1']);
301
305
  });
302
306
  });
303
307
  describe('iterateNodes', () => {
304
- const node1 = { uid: 'node1', isStale: false };
305
- const node2 = { uid: 'node2', isStale: false };
306
- const node3 = { uid: 'node3', isStale: false };
307
- const node4 = { uid: 'node4', isStale: false };
308
+ const node1 = { uid: 'volumeId~node1', isStale: false, treeEventScopeId: 'volumeId' };
309
+ const node2 = { uid: 'volumeId~node2', isStale: false, treeEventScopeId: 'volumeId' };
310
+ const node3 = { uid: 'volumeId~node3', isStale: false, treeEventScopeId: 'volumeId' };
311
+ const node4 = { uid: 'volume~node4', isStale: false, treeEventScopeId: 'volumeId' };
308
312
  it('should serve fully from cache', async () => {
309
313
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
310
314
  yield { ok: true, node: node1 };
@@ -312,67 +316,70 @@ describe('nodesAccess', () => {
312
316
  yield { ok: true, node: node3 };
313
317
  yield { ok: true, node: node4 };
314
318
  });
315
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3', 'node4']));
319
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4']));
316
320
  expect(result).toMatchObject([node1, node2, node3, node4]);
317
321
  expect(apiService.iterateNodes).not.toHaveBeenCalled();
318
322
  });
319
323
  it('should load from API', async () => {
320
324
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
321
325
  yield { ok: true, node: node1 };
322
- yield { ok: false, uid: 'node2' };
323
- yield { ok: false, uid: 'node3' };
326
+ yield { ok: false, uid: 'volumeId~node2' };
327
+ yield { ok: false, uid: 'volumeId~node3' };
324
328
  yield { ok: true, node: node4 };
325
329
  });
326
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3', 'node4']));
330
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4']));
327
331
  expect(result).toMatchObject([node1, node4, node2, node3]);
328
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node2', 'node3'], undefined);
332
+ expect(apiService.iterateNodes).toHaveBeenCalledWith(['volumeId~node2', 'volumeId~node3'], 'volumeId', undefined);
329
333
  });
330
334
  it('should remove from cache if missing on API and return back to caller', async () => {
331
335
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
332
- yield { ok: false, uid: 'node1' };
333
- yield { ok: false, uid: 'node2' };
334
- yield { ok: false, uid: 'node3' };
336
+ yield { ok: false, uid: 'volumeId~node1' };
337
+ yield { ok: false, uid: 'volumeId~node2' };
338
+ yield { ok: false, uid: 'volumeId~node3' };
335
339
  });
336
340
  apiService.iterateNodes = jest.fn().mockImplementation(async function* (uids) {
337
341
  // Skip first node - make it missing.
338
- yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'parentUid' }));
342
+ yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'volumeId~parentNodeid' }));
339
343
  });
340
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3']));
341
- expect(result).toMatchObject([node2, node3, { missingUid: 'node1' }]);
342
- expect(cache.removeNodes).toHaveBeenCalledWith(['node1']);
344
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3']));
345
+ expect(result).toMatchObject([node2, node3, { missingUid: 'volumeId~node1' }]);
346
+ expect(cache.removeNodes).toHaveBeenCalledWith(['volumeId~node1']);
343
347
  });
344
348
  it('should return degraded node if parent cannot be decrypted', async () => {
345
349
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
346
- yield { ok: false, uid: 'node1' };
347
- yield { ok: false, uid: 'node2' };
348
- yield { ok: false, uid: 'node3' };
350
+ yield { ok: false, uid: 'volumeId~node1' };
351
+ yield { ok: false, uid: 'volumeId~node2' };
352
+ yield { ok: false, uid: 'volumeId~node3' };
349
353
  });
350
354
  const encryptedCrypto = {
351
355
  signatureEmail: 'signatureEmail',
352
356
  nameSignatureEmail: 'nameSignatureEmail',
353
357
  };
354
358
  apiService.iterateNodes = jest.fn().mockImplementation(async function* (uids) {
355
- yield* uids.map((uid) => ({
356
- uid,
357
- parentUid: `parentUidFor:${uid}`,
358
- encryptedCrypto,
359
- }));
359
+ yield* uids.map((uid) => {
360
+ const parentUid = uid.replace('node', 'parentOfNode');
361
+ return {
362
+ uid,
363
+ parentUid,
364
+ encryptedCrypto,
365
+ };
366
+ });
360
367
  });
361
368
  const decryptionError = new errors_1.DecryptionError('Parent cannot be decrypted');
362
369
  jest.spyOn(access, 'getParentKeys').mockImplementation(async ({ parentUid }) => {
363
- if (parentUid === 'parentUidFor:node1') {
370
+ if (parentUid === 'volumeId~parentOfNode1') {
364
371
  throw decryptionError;
365
372
  }
366
373
  return {
367
374
  key: { _idx: 32132 },
368
375
  };
369
376
  });
370
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3']));
377
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3']));
371
378
  expect(result).toEqual([
372
379
  {
373
380
  ...node1,
374
381
  encryptedCrypto,
375
- parentUid: 'parentUidFor:node1',
382
+ parentUid: 'volumeId~parentOfNode1',
376
383
  name: { ok: false, error: decryptionError },
377
384
  keyAuthor: { ok: false, error: { claimedAuthor: 'signatureEmail', error: decryptionError.message } },
378
385
  nameAuthor: { ok: false, error: { claimedAuthor: 'nameSignatureEmail', error: decryptionError.message } },
@@ -403,13 +410,13 @@ describe('nodesAccess', () => {
403
410
  });
404
411
  it('should get node parent keys', async () => {
405
412
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
406
- const result = await access.getParentKeys({ shareId: undefined, parentUid: 'parentUid' });
413
+ const result = await access.getParentKeys({ shareId: undefined, parentUid: 'volumeId~parentNodeid' });
407
414
  expect(result).toEqual({ key: 'parentKey' });
408
415
  expect(shareService.getSharePrivateKey).not.toHaveBeenCalled();
409
416
  });
410
417
  it('should get node parent keys even if share is set', async () => {
411
418
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
412
- const result = await access.getParentKeys({ shareId: 'shareId', parentUid: 'parentUid' });
419
+ const result = await access.getParentKeys({ shareId: 'shareId', parentUid: 'volume1~parentNodeid' });
413
420
  expect(result).toEqual({ key: 'parentKey' });
414
421
  expect(shareService.getSharePrivateKey).not.toHaveBeenCalled();
415
422
  });
@@ -419,7 +426,7 @@ describe('nodesAccess', () => {
419
426
  cryptoCache.getNodeKeys = jest.fn(() => Promise.reject(new Error('Entity not found')));
420
427
  apiService.getNode = jest.fn(() => Promise.reject(new Error('API called')));
421
428
  try {
422
- await access.getNodeKeys('nodeId');
429
+ await access.getNodeKeys('volumeId~nodeId');
423
430
  throw new Error('Expected error');
424
431
  }
425
432
  catch (error) {
@@ -432,7 +439,7 @@ describe('nodesAccess', () => {
432
439
  const nodeUid = 'nodeUid';
433
440
  const node = {
434
441
  uid: nodeUid,
435
- parentUid: 'parentUid',
442
+ parentUid: 'volume1~parentNodeid',
436
443
  encryptedName: 'encryptedName',
437
444
  };
438
445
  jest.spyOn(access, 'getNode').mockResolvedValue(node);
@@ -483,5 +490,37 @@ describe('nodesAccess', () => {
483
490
  expect(result).toBe('https://drive.proton.me/shareId/folder/nodeId');
484
491
  });
485
492
  });
493
+ describe('notifyNodeChanged', () => {
494
+ it('should mark node as stale', async () => {
495
+ const node = { uid: 'volumeId~nodeId', isStale: false };
496
+ cache.getNode = jest.fn(() => Promise.resolve(node));
497
+ cache.setNode = jest.fn();
498
+ await access.notifyNodeChanged(node.uid);
499
+ expect(cache.getNode).toHaveBeenCalledWith(node.uid);
500
+ expect(cache.setNode).toHaveBeenCalledWith({ ...node, isStale: true });
501
+ });
502
+ it('should update parent if needed', async () => {
503
+ const node = { uid: 'volumeId~nodeId', parentUid: 'v1~pn1', isStale: false };
504
+ cache.getNode = jest.fn(() => Promise.resolve(node));
505
+ cache.setNode = jest.fn();
506
+ await access.notifyNodeChanged(node.uid, 'v1~pn2');
507
+ expect(cache.getNode).toHaveBeenCalledWith(node.uid);
508
+ expect(cache.setNode).toHaveBeenCalledWith({ ...node, parentUid: 'v1~pn2', isStale: true });
509
+ });
510
+ });
511
+ describe('notifyChildCreated', () => {
512
+ it('should reset parent listing', async () => {
513
+ const nodeUid = 'VolumeId1~NodeId1';
514
+ cache.resetFolderChildrenLoaded = jest.fn();
515
+ await access.notifyChildCreated(nodeUid);
516
+ expect(cache.resetFolderChildrenLoaded).toHaveBeenCalledWith(nodeUid);
517
+ });
518
+ });
519
+ describe('notifyNodeDeleted', () => {
520
+ it('should reset parent listing', async () => {
521
+ await access.notifyNodeDeleted('v1~n1');
522
+ expect(cache.removeNodes).toHaveBeenCalledWith(['v1~n1']);
523
+ });
524
+ });
486
525
  });
487
526
  //# sourceMappingURL=nodesAccess.test.js.map