@protontech/drive-sdk 0.0.13 → 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 (234) 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 +2 -1
  43. package/dist/errors.js +3 -1
  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 +8 -4
  54. package/dist/interface/index.js +2 -1
  55. package/dist/interface/index.js.map +1 -1
  56. package/dist/interface/nodes.d.ts +9 -0
  57. package/dist/interface/nodes.js.map +1 -1
  58. package/dist/interface/sharing.d.ts +1 -0
  59. package/dist/interface/upload.d.ts +6 -0
  60. package/dist/internal/download/apiService.js +32 -31
  61. package/dist/internal/download/apiService.js.map +1 -1
  62. package/dist/internal/download/fileDownloader.d.ts +2 -2
  63. package/dist/internal/download/fileDownloader.js.map +1 -1
  64. package/dist/internal/events/apiService.d.ts +4 -6
  65. package/dist/internal/events/apiService.js +15 -22
  66. package/dist/internal/events/apiService.js.map +1 -1
  67. package/dist/internal/events/coreEventManager.d.ts +7 -10
  68. package/dist/internal/events/coreEventManager.js +19 -36
  69. package/dist/internal/events/coreEventManager.js.map +1 -1
  70. package/dist/internal/events/coreEventManager.test.js +87 -0
  71. package/dist/internal/events/coreEventManager.test.js.map +1 -0
  72. package/dist/internal/events/eventManager.d.ts +11 -36
  73. package/dist/internal/events/eventManager.js +59 -105
  74. package/dist/internal/events/eventManager.js.map +1 -1
  75. package/dist/internal/events/eventManager.test.js +167 -82
  76. package/dist/internal/events/eventManager.test.js.map +1 -1
  77. package/dist/internal/events/index.d.ts +13 -33
  78. package/dist/internal/events/index.js +56 -72
  79. package/dist/internal/events/index.js.map +1 -1
  80. package/dist/internal/events/interface.d.ts +59 -14
  81. package/dist/internal/events/interface.js +13 -3
  82. package/dist/internal/events/interface.js.map +1 -1
  83. package/dist/internal/events/volumeEventManager.d.ts +7 -17
  84. package/dist/internal/events/volumeEventManager.js +58 -45
  85. package/dist/internal/events/volumeEventManager.js.map +1 -1
  86. package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
  87. package/dist/internal/events/volumeEventManager.test.js +203 -0
  88. package/dist/internal/events/volumeEventManager.test.js.map +1 -0
  89. package/dist/internal/nodes/cache.d.ts +10 -1
  90. package/dist/internal/nodes/cache.js +17 -0
  91. package/dist/internal/nodes/cache.js.map +1 -1
  92. package/dist/internal/nodes/cryptoService.d.ts +1 -1
  93. package/dist/internal/nodes/cryptoService.js.map +1 -1
  94. package/dist/internal/nodes/events.d.ts +7 -83
  95. package/dist/internal/nodes/events.js +43 -217
  96. package/dist/internal/nodes/events.js.map +1 -1
  97. package/dist/internal/nodes/events.test.js +27 -277
  98. package/dist/internal/nodes/events.test.js.map +1 -1
  99. package/dist/internal/nodes/index.d.ts +3 -4
  100. package/dist/internal/nodes/index.js +5 -5
  101. package/dist/internal/nodes/index.js.map +1 -1
  102. package/dist/internal/nodes/nodesAccess.d.ts +15 -0
  103. package/dist/internal/nodes/nodesAccess.js +37 -0
  104. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  105. package/dist/internal/nodes/nodesAccess.test.js +131 -93
  106. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  107. package/dist/internal/nodes/nodesManagement.d.ts +1 -3
  108. package/dist/internal/nodes/nodesManagement.js +12 -26
  109. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  110. package/dist/internal/nodes/nodesManagement.test.js +35 -14
  111. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  112. package/dist/internal/shares/cache.d.ts +2 -0
  113. package/dist/internal/shares/cache.js +2 -0
  114. package/dist/internal/shares/cache.js.map +1 -1
  115. package/dist/internal/shares/manager.d.ts +1 -0
  116. package/dist/internal/shares/manager.js +3 -0
  117. package/dist/internal/shares/manager.js.map +1 -1
  118. package/dist/internal/sharing/apiService.js +1 -0
  119. package/dist/internal/sharing/apiService.js.map +1 -1
  120. package/dist/internal/sharing/cryptoService.js +1 -0
  121. package/dist/internal/sharing/cryptoService.js.map +1 -1
  122. package/dist/internal/sharing/events.d.ts +23 -55
  123. package/dist/internal/sharing/events.js +46 -138
  124. package/dist/internal/sharing/events.js.map +1 -1
  125. package/dist/internal/sharing/events.test.js +77 -180
  126. package/dist/internal/sharing/events.test.js.map +1 -1
  127. package/dist/internal/sharing/index.d.ts +4 -5
  128. package/dist/internal/sharing/index.js +5 -5
  129. package/dist/internal/sharing/index.js.map +1 -1
  130. package/dist/internal/sharing/interface.d.ts +3 -0
  131. package/dist/internal/sharing/sharingManagement.d.ts +2 -3
  132. package/dist/internal/sharing/sharingManagement.js +7 -9
  133. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  134. package/dist/internal/sharing/sharingManagement.test.js +9 -39
  135. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  136. package/dist/internal/upload/apiService.d.ts +2 -3
  137. package/dist/internal/upload/apiService.js +7 -4
  138. package/dist/internal/upload/apiService.js.map +1 -1
  139. package/dist/internal/upload/index.d.ts +2 -2
  140. package/dist/internal/upload/index.js +3 -3
  141. package/dist/internal/upload/index.js.map +1 -1
  142. package/dist/internal/upload/interface.d.ts +2 -0
  143. package/dist/internal/upload/manager.d.ts +5 -5
  144. package/dist/internal/upload/manager.js +19 -50
  145. package/dist/internal/upload/manager.js.map +1 -1
  146. package/dist/internal/upload/manager.test.js +68 -44
  147. package/dist/internal/upload/manager.test.js.map +1 -1
  148. package/dist/internal/upload/streamUploader.js +1 -2
  149. package/dist/internal/upload/streamUploader.js.map +1 -1
  150. package/dist/internal/upload/streamUploader.test.js +1 -1
  151. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  152. package/dist/protonDriveClient.d.ts +19 -162
  153. package/dist/protonDriveClient.js +26 -190
  154. package/dist/protonDriveClient.js.map +1 -1
  155. package/dist/protonDrivePhotosClient.js +3 -2
  156. package/dist/protonDrivePhotosClient.js.map +1 -1
  157. package/package.json +3 -3
  158. package/src/cache/index.ts +1 -0
  159. package/src/cache/memoryCache.ts +1 -1
  160. package/src/cache/nullCache.ts +38 -0
  161. package/src/config.ts +17 -2
  162. package/src/crypto/openPGPCrypto.ts +2 -0
  163. package/src/diagnostic/eventsGenerator.ts +48 -0
  164. package/src/diagnostic/httpClient.ts +80 -0
  165. package/src/diagnostic/index.ts +38 -0
  166. package/src/diagnostic/integrityVerificationStream.ts +56 -0
  167. package/src/diagnostic/interface.ts +158 -0
  168. package/src/diagnostic/sdkDiagnostic.ts +238 -0
  169. package/src/diagnostic/sdkDiagnosticFull.ts +40 -0
  170. package/src/diagnostic/telemetry.ts +71 -0
  171. package/src/diagnostic/zipGenerators.test.ts +177 -0
  172. package/src/diagnostic/zipGenerators.ts +70 -0
  173. package/src/errors.ts +4 -1
  174. package/src/interface/config.ts +28 -0
  175. package/src/interface/download.ts +2 -2
  176. package/src/interface/events.ts +66 -21
  177. package/src/interface/httpClient.ts +0 -16
  178. package/src/interface/index.ts +8 -4
  179. package/src/interface/nodes.ts +21 -12
  180. package/src/interface/sharing.ts +1 -0
  181. package/src/interface/upload.ts +6 -0
  182. package/src/internal/download/apiService.ts +11 -8
  183. package/src/internal/download/fileDownloader.ts +2 -2
  184. package/src/internal/events/apiService.ts +25 -28
  185. package/src/internal/events/coreEventManager.test.ts +101 -0
  186. package/src/internal/events/coreEventManager.ts +20 -45
  187. package/src/internal/events/eventManager.test.ts +201 -88
  188. package/src/internal/events/eventManager.ts +69 -115
  189. package/src/internal/events/index.ts +54 -84
  190. package/src/internal/events/interface.ts +70 -15
  191. package/src/internal/events/volumeEventManager.test.ts +243 -0
  192. package/src/internal/events/volumeEventManager.ts +55 -53
  193. package/src/internal/nodes/cache.ts +20 -2
  194. package/src/internal/nodes/cryptoService.ts +1 -1
  195. package/src/internal/nodes/events.test.ts +29 -335
  196. package/src/internal/nodes/events.ts +45 -253
  197. package/src/internal/nodes/index.ts +6 -8
  198. package/src/internal/nodes/interface.ts +2 -2
  199. package/src/internal/nodes/nodesAccess.test.ts +132 -91
  200. package/src/internal/nodes/nodesAccess.ts +40 -1
  201. package/src/internal/nodes/nodesManagement.test.ts +39 -15
  202. package/src/internal/nodes/nodesManagement.ts +12 -30
  203. package/src/internal/shares/cache.ts +4 -2
  204. package/src/internal/shares/manager.ts +9 -5
  205. package/src/internal/sharing/apiService.ts +1 -0
  206. package/src/internal/sharing/cache.ts +1 -1
  207. package/src/internal/sharing/cryptoService.ts +1 -0
  208. package/src/internal/sharing/events.test.ts +89 -195
  209. package/src/internal/sharing/events.ts +42 -156
  210. package/src/internal/sharing/index.ts +6 -9
  211. package/src/internal/sharing/interface.ts +6 -2
  212. package/src/internal/sharing/sharingManagement.test.ts +10 -40
  213. package/src/internal/sharing/sharingManagement.ts +7 -11
  214. package/src/internal/upload/apiService.ts +5 -6
  215. package/src/internal/upload/index.ts +5 -5
  216. package/src/internal/upload/interface.ts +2 -0
  217. package/src/internal/upload/manager.test.ts +75 -45
  218. package/src/internal/upload/manager.ts +24 -54
  219. package/src/internal/upload/streamUploader.test.ts +0 -1
  220. package/src/internal/upload/streamUploader.ts +0 -2
  221. package/src/protonDriveClient.ts +75 -244
  222. package/src/protonDrivePhotosClient.ts +4 -3
  223. package/dist/internal/events/cache.d.ts +0 -28
  224. package/dist/internal/events/cache.js +0 -67
  225. package/dist/internal/events/cache.js.map +0 -1
  226. package/dist/internal/events/cache.test.js +0 -43
  227. package/dist/internal/events/cache.test.js.map +0 -1
  228. package/dist/internal/nodes/index.test.js +0 -114
  229. package/dist/internal/nodes/index.test.js.map +0 -1
  230. package/src/internal/events/cache.test.ts +0 -47
  231. package/src/internal/events/cache.ts +0 -80
  232. package/src/internal/nodes/index.test.ts +0 -137
  233. /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
  234. /package/dist/internal/{nodes/index.test.d.ts → events/coreEventManager.test.d.ts} +0 -0
@@ -1,153 +1,61 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SharingEvents = void 0;
4
- exports.handleSharedByMeNodes = handleSharedByMeNodes;
5
- exports.handleSharedWithMeNodes = handleSharedWithMeNodes;
6
- const transformers_1 = require("../../transformers");
3
+ exports.SharingEventHandler = void 0;
7
4
  const events_1 = require("../events");
8
- const interface_1 = require("./interface");
9
- /**
10
- * Provides both event handling and subscription mechanism for user.
11
- *
12
- * The service is responsible for handling events regarding sharing listing
13
- * from the DriveEventsService, and for providing a subscription mechanism
14
- * for the user to listen to updates of specific group of nodes, such as
15
- * any update to list of shared with me nodes.
16
- */
17
- class SharingEvents {
18
- listeners = [];
19
- constructor(logger, events, cache, nodesService, sharingAccess) {
20
- events.addListener(async (events, fullRefreshVolumeId) => {
21
- // Technically we need to refresh only the shared by me nodes for
22
- // own volume, and shared with me nodes only when the event comes
23
- // as core refresh event is converted to it.
24
- // We can optimise later, for now we refresh everything to make
25
- // it simpler. The cache is smart enough to not do unnecessary
26
- // requests to the API and refresh on web is rare without
27
- // persistant cache for now.
28
- if (fullRefreshVolumeId) {
29
- await cache.setSharedByMeNodeUids(undefined);
30
- await cache.setSharedWithMeNodeUids(undefined);
5
+ class SharingEventHandler {
6
+ logger;
7
+ cache;
8
+ shares;
9
+ constructor(logger, cache, shares) {
10
+ this.logger = logger;
11
+ this.cache = cache;
12
+ this.shares = shares;
13
+ }
14
+ ;
15
+ /**
16
+ * Update cache and notify listeners accordingly for any updates
17
+ * to nodes that are shared by me.
18
+ *
19
+ * Any node create or update that is being shared, is automatically
20
+ * added to the cache and the listeners are notified about the
21
+ * update of the node.
22
+ *
23
+ * Any node delete or update that is not being shared, and the cache
24
+ * includes the node, is removed from the cache and the listeners are
25
+ * notified about the removal of the node.
26
+ *
27
+ * @throws Only if the client's callback throws.
28
+ */
29
+ async handleDriveEvent(event) {
30
+ try {
31
+ if (event.type === events_1.DriveEventType.SharedWithMeUpdated) {
32
+ await this.cache.setSharedWithMeNodeUids(undefined);
31
33
  return;
32
34
  }
33
- for (const event of events) {
34
- await handleSharedByMeNodes(logger, event, cache, this.listeners, nodesService);
35
- await handleSharedWithMeNodes(event, cache, this.listeners, sharingAccess);
36
- }
37
- });
38
- }
39
- subscribeToSharedNodesByMe(callback) {
40
- this.listeners.push({ type: interface_1.SharingType.SharedByMe, callback });
41
- return () => {
42
- this.listeners = this.listeners.filter(listener => listener.callback !== callback);
43
- };
44
- }
45
- subscribeToSharedNodesWithMe(callback) {
46
- this.listeners.push({ type: interface_1.SharingType.sharedWithMe, callback });
47
- return () => {
48
- this.listeners = this.listeners.filter(listener => listener.callback !== callback);
49
- };
50
- }
51
- }
52
- exports.SharingEvents = SharingEvents;
53
- /**
54
- * Update cache and notify listeners accordingly for any updates
55
- * to nodes that are shared by me.
56
- *
57
- * Any node create or update that is being shared, is automatically
58
- * added to the cache and the listeners are notified about the
59
- * update of the node.
60
- *
61
- * Any node delete or update that is not being shared, and the cache
62
- * includes the node, is removed from the cache and the listeners are
63
- * notified about the removal of the node.
64
- *
65
- * @throws Only if the client's callback throws.
66
- */
67
- async function handleSharedByMeNodes(logger, event, cache, listeners, nodesService) {
68
- if (event.type === events_1.DriveEventType.ShareWithMeUpdated || !event.isOwnVolume) {
69
- return;
70
- }
71
- const subscribedListeners = listeners.filter(({ type }) => type === interface_1.SharingType.SharedByMe);
72
- if ([events_1.DriveEventType.NodeCreated, events_1.DriveEventType.NodeUpdated, events_1.DriveEventType.NodeUpdatedMetadata].includes(event.type) && event.isShared) {
73
- try {
74
- await cache.addSharedByMeNodeUid(event.nodeUid);
75
- }
76
- catch (error) {
77
- logger.error(`Skipping shared by me node cache update`, error);
78
- }
79
- if (subscribedListeners.length) {
80
- let node;
81
- try {
82
- node = await nodesService.getNode(event.nodeUid);
35
+ if (!(await this.shares.isOwnVolume(event.treeEventScopeId))) {
36
+ return;
83
37
  }
84
- catch (error) {
85
- logger.error(`Skipping shared by me node update event to listener`, error);
38
+ if (event.type === events_1.DriveEventType.NodeCreated || event.type == events_1.DriveEventType.NodeUpdated) {
39
+ if (event.isShared && !event.isTrashed) {
40
+ await this.cache.addSharedByMeNodeUid(event.nodeUid);
41
+ }
42
+ else {
43
+ await this.cache.removeSharedByMeNodeUid(event.nodeUid);
44
+ }
86
45
  return;
87
46
  }
88
- subscribedListeners.forEach(({ callback }) => callback({ type: 'update', uid: node.uid, node: (0, transformers_1.convertInternalNode)(node) }));
89
- }
90
- }
91
- if (((event.type === events_1.DriveEventType.NodeUpdated || event.type === events_1.DriveEventType.NodeUpdatedMetadata) && !event.isShared)
92
- || event.type === events_1.DriveEventType.NodeDeleted) {
93
- let nodeWasShared = false;
94
- try {
95
- const cachedNodeUids = await cache.getSharedByMeNodeUids();
96
- nodeWasShared = cachedNodeUids.includes(event.nodeUid);
97
- }
98
- catch {
99
- // Cache can be empty.
100
- }
101
- if (nodeWasShared) {
102
- try {
103
- await cache.removeSharedByMeNodeUid(event.nodeUid);
47
+ if (event.type === events_1.DriveEventType.NodeDeleted) {
48
+ await this.cache.removeSharedByMeNodeUid(event.nodeUid);
49
+ return;
104
50
  }
105
- catch (error) {
106
- logger.error(`Skipping shared by me node cache remove`, error);
51
+ if (event.type === events_1.DriveEventType.TreeRefresh || event.type === events_1.DriveEventType.TreeRemove) {
52
+ await this.cache.setSharedWithMeNodeUids(undefined);
107
53
  }
108
- subscribedListeners.forEach(({ callback }) => callback({ type: 'remove', uid: event.nodeUid }));
109
- }
110
- }
111
- }
112
- /**
113
- * Update cache and notify listeners accordingly for any updates
114
- * to nodes that are shared with me.
115
- *
116
- * There is only one event type that is relevant for shared with me
117
- * nodes, which is the ShareWithMeUpdated event. The event is triggered
118
- * when the list of shared with me nodes is updated.
119
- *
120
- * The cache is cleared and re-populated fully when the client
121
- * requests the list of shared with me, or is actively listening.
122
- *
123
- * If the client listenes to shared with me updates, the client receives
124
- * update to the full list of shared with me nodes, including remove
125
- * updates for nodes that are no longer shared with me, but was before.
126
- *
127
- * @throws Only if the client's callback throws.
128
- */
129
- async function handleSharedWithMeNodes(event, cache, listeners, sharingAccess) {
130
- if (event.type !== events_1.DriveEventType.ShareWithMeUpdated) {
131
- return;
132
- }
133
- let cachedNodeUids = [];
134
- const subscribedListeners = listeners.filter(({ type }) => type === interface_1.SharingType.sharedWithMe);
135
- if (subscribedListeners.length) {
136
- cachedNodeUids = await cache.getSharedWithMeNodeUids();
137
- }
138
- // Clearing the cache must be first, sharingAccess is no-op if cache is set.
139
- await cache.setSharedWithMeNodeUids(undefined);
140
- if (subscribedListeners.length) {
141
- const nodeUids = [];
142
- for await (const node of sharingAccess.iterateSharedNodesWithMe()) {
143
- nodeUids.push(node.uid);
144
- subscribedListeners.forEach(({ callback }) => callback({ type: 'update', uid: node.uid, node: (0, transformers_1.convertInternalNode)(node) }));
145
54
  }
146
- for (const nodeUid of cachedNodeUids) {
147
- if (!nodeUids.includes(nodeUid)) {
148
- subscribedListeners.forEach(({ callback }) => callback({ type: 'remove', uid: nodeUid }));
149
- }
55
+ catch (error) {
56
+ this.logger.error(`Skipping shared by me node cache update`, error);
150
57
  }
151
58
  }
152
59
  }
60
+ exports.SharingEventHandler = SharingEventHandler;
153
61
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAIvD,MAAa,mBAAmB;IACR;IAAwB;IAA6B;IAAzE,YAAoB,MAAc,EAAU,KAAmB,EAAU,MAAqB;QAA1E,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAc;QAAU,WAAM,GAAN,MAAM,CAAe;IAC9F,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAiB;QACpC,IAAI,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,mBAAmB,EAAE,CAAC;gBACpD,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBACpD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;gBAC3D,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,IAAI,uBAAc,CAAC,WAAW,EAAE,CAAC;gBACxF,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5D,CAAC;gBACD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,UAAU,EAAE,CAAC;gBACxF,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;CACJ;AA9CD,kDA8CC"}
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const logger_1 = require("../../tests/logger");
4
4
  const events_1 = require("../events");
5
- const interface_1 = require("./interface");
6
5
  const events_2 = require("./events");
6
+ // FIXME: test tree_refresh and tree_remove
7
7
  describe("handleSharedByMeNodes", () => {
8
8
  let cache;
9
- let nodesService;
9
+ let sharingEventHandler;
10
+ let sharesManager;
10
11
  beforeEach(() => {
11
12
  jest.clearAllMocks();
12
13
  // @ts-expect-error No need to implement all methods for mocking
@@ -14,192 +15,103 @@ describe("handleSharedByMeNodes", () => {
14
15
  addSharedByMeNodeUid: jest.fn(),
15
16
  removeSharedByMeNodeUid: jest.fn(),
16
17
  setSharedWithMeNodeUids: jest.fn(),
18
+ getSharedByMeNodeUids: jest.fn().mockResolvedValue(["cachedNodeUid"]),
17
19
  };
18
- // @ts-expect-error No need to implement all methods for mocking
19
- nodesService = {
20
- getNode: jest.fn().mockResolvedValue({ uid: 'nodeUid', name: { ok: true, value: 'name' } }),
20
+ sharesManager = {
21
+ isOwnVolume: jest.fn(async (volumeId) => volumeId === 'MyVolume1'),
21
22
  };
23
+ sharingEventHandler = new events_2.SharingEventHandler((0, logger_1.getMockLogger)(), cache, sharesManager);
22
24
  });
23
- const testCases = [
24
- {
25
- title: "should add if new own shared node is created",
26
- existingNodeUids: [],
27
- event: {
25
+ describe("node events trigger cache update", () => {
26
+ it("should add if new own shared node is created", async () => {
27
+ const event = {
28
+ eventId: "1",
28
29
  type: events_1.DriveEventType.NodeCreated,
29
- nodeUid: "nodeUid",
30
+ nodeUid: "newNodeUid",
30
31
  parentNodeUid: "parentUid",
31
32
  isTrashed: false,
32
33
  isShared: true,
33
- isOwnVolume: true,
34
- },
35
- added: true,
36
- removed: false,
37
- },
38
- {
39
- title: "should not add if new shared node is not own",
40
- existingNodeUids: [],
41
- event: {
34
+ treeEventScopeId: "MyVolume1",
35
+ };
36
+ await sharingEventHandler.handleDriveEvent(event);
37
+ expect(cache.addSharedByMeNodeUid).toHaveBeenCalledWith("newNodeUid");
38
+ expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
39
+ });
40
+ // FIXME enable when volume ownership is handled
41
+ test.skip("should not add if new shared node is not own", async () => {
42
+ const event = {
43
+ eventId: "1",
42
44
  type: events_1.DriveEventType.NodeCreated,
43
- nodeUid: "nodeUid",
45
+ nodeUid: "newNodeUid",
44
46
  parentNodeUid: "parentUid",
45
47
  isTrashed: false,
46
48
  isShared: true,
47
- isOwnVolume: false,
48
- },
49
- added: false,
50
- removed: false,
51
- },
52
- {
53
- title: "should not add if new own node is not shared",
54
- existingNodeUids: [],
55
- event: {
49
+ treeEventScopeId: "NotOwnVolume",
50
+ };
51
+ await sharingEventHandler.handleDriveEvent(event);
52
+ expect(cache.addSharedByMeNodeUid).not.toHaveBeenCalled();
53
+ expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
54
+ });
55
+ it("should not add if new own node is not shared", async () => {
56
+ const event = {
56
57
  type: events_1.DriveEventType.NodeCreated,
57
- nodeUid: "nodeUid",
58
+ nodeUid: "newNodeUid",
58
59
  parentNodeUid: "parentUid",
59
60
  isTrashed: false,
60
61
  isShared: false,
61
- isOwnVolume: true,
62
- },
63
- added: false,
64
- removed: false,
65
- },
66
- {
67
- title: "should add if own node is updated and shared",
68
- existingNodeUids: [],
69
- event: {
70
- type: events_1.DriveEventType.NodeUpdated,
71
- nodeUid: "nodeUid",
72
- parentNodeUid: "parentUid",
73
- isTrashed: false,
74
- isShared: true,
75
- isOwnVolume: true,
76
- },
77
- added: true,
78
- removed: false,
79
- },
80
- {
81
- title: "should add/update if shared node is updated",
82
- existingNodeUids: ["nodeUid"],
83
- event: {
62
+ eventId: "1",
63
+ treeEventScopeId: "MyVolume1",
64
+ };
65
+ await sharingEventHandler.handleDriveEvent(event);
66
+ expect(cache.addSharedByMeNodeUid).not.toHaveBeenCalled();
67
+ expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
68
+ });
69
+ it("should add if own node is updated and shared", async () => {
70
+ const event = {
84
71
  type: events_1.DriveEventType.NodeUpdated,
85
- nodeUid: "nodeUid",
72
+ nodeUid: "cachedNodeUid",
86
73
  parentNodeUid: "parentUid",
87
74
  isTrashed: false,
88
75
  isShared: true,
89
- isOwnVolume: true,
90
- },
91
- added: true,
92
- removed: false,
93
- },
94
- {
95
- title: "should remove if shared node is un-shared",
96
- existingNodeUids: ["nodeUid"],
97
- event: {
98
- type: events_1.DriveEventType.NodeUpdated,
99
- nodeUid: "nodeUid",
100
- parentNodeUid: "parentUid",
101
- isTrashed: false,
102
- isShared: false,
103
- isOwnVolume: true,
104
- },
105
- added: false,
106
- removed: true,
107
- },
108
- {
109
- title: "should not remove if non-shared node is updated",
110
- existingNodeUids: [],
111
- event: {
76
+ eventId: "1",
77
+ treeEventScopeId: "MyVolume1",
78
+ };
79
+ await sharingEventHandler.handleDriveEvent(event);
80
+ expect(cache.addSharedByMeNodeUid).toHaveBeenCalledWith("cachedNodeUid");
81
+ expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
82
+ });
83
+ it("should remove if shared node is un-shared", async () => {
84
+ const event = {
112
85
  type: events_1.DriveEventType.NodeUpdated,
113
- nodeUid: "nodeUid",
86
+ nodeUid: "cachedNodeUid",
114
87
  parentNodeUid: "parentUid",
115
88
  isTrashed: false,
116
89
  isShared: false,
117
- isOwnVolume: true,
118
- },
119
- added: false,
120
- removed: false,
121
- },
122
- {
123
- title: "should remove if shared node is deleted",
124
- existingNodeUids: ["nodeUid"],
125
- event: {
126
- type: events_1.DriveEventType.NodeDeleted,
127
- nodeUid: "nodeUid",
128
- parentNodeUid: "parentUid",
129
- isOwnVolume: true,
130
- },
131
- added: false,
132
- removed: true,
133
- },
134
- {
135
- title: "should not remove if non-shared node is deleted",
136
- existingNodeUids: [],
137
- event: {
90
+ eventId: "1",
91
+ treeEventScopeId: "MyVolume1",
92
+ };
93
+ await sharingEventHandler.handleDriveEvent(event);
94
+ expect(cache.removeSharedByMeNodeUid).toHaveBeenCalledWith("cachedNodeUid");
95
+ expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
96
+ });
97
+ it("should remove if shared node is deleted", async () => {
98
+ const event = {
138
99
  type: events_1.DriveEventType.NodeDeleted,
139
- nodeUid: "nodeUid",
100
+ nodeUid: "cachedNodeUid",
140
101
  parentNodeUid: "parentUid",
141
- isOwnVolume: true,
142
- },
143
- added: false,
144
- removed: false,
145
- },
146
- ];
147
- describe("with listeners", () => {
148
- testCases.map(({ title, existingNodeUids, event, added, removed }) => {
149
- it(title, async () => {
150
- cache.getSharedByMeNodeUids = jest.fn().mockResolvedValue(existingNodeUids);
151
- const listener = jest.fn();
152
- const listeners = [{ type: interface_1.SharingType.SharedByMe, callback: listener }];
153
- await (0, events_2.handleSharedByMeNodes)((0, logger_1.getMockLogger)(), event, cache, listeners, nodesService);
154
- if (added) {
155
- expect(cache.addSharedByMeNodeUid).toHaveBeenCalledWith("nodeUid");
156
- expect(listener).toHaveBeenCalledWith(expect.objectContaining({ type: 'update', uid: 'nodeUid' }));
157
- }
158
- else {
159
- expect(cache.addSharedByMeNodeUid).not.toHaveBeenCalled();
160
- }
161
- if (removed) {
162
- expect(cache.removeSharedByMeNodeUid).toHaveBeenCalledWith("nodeUid");
163
- expect(listener).toHaveBeenCalledWith({ type: 'remove', uid: 'nodeUid' });
164
- }
165
- else {
166
- expect(cache.removeSharedByMeNodeUid).not.toHaveBeenCalled();
167
- }
168
- if (!added && !removed) {
169
- expect(listener).not.toHaveBeenCalled();
170
- }
171
- expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
172
- });
173
- });
174
- });
175
- describe("without listeners", () => {
176
- testCases.map(({ title, existingNodeUids, event, added, removed }) => {
177
- it(title, async () => {
178
- cache.getSharedByMeNodeUids = jest.fn().mockResolvedValue(existingNodeUids);
179
- const listener = jest.fn();
180
- const listeners = [{ type: interface_1.SharingType.sharedWithMe, callback: listener }];
181
- await (0, events_2.handleSharedByMeNodes)((0, logger_1.getMockLogger)(), event, cache, listeners, nodesService);
182
- if (added) {
183
- expect(cache.addSharedByMeNodeUid).toHaveBeenCalledWith("nodeUid");
184
- }
185
- else {
186
- expect(cache.addSharedByMeNodeUid).not.toHaveBeenCalled();
187
- }
188
- if (removed) {
189
- expect(cache.removeSharedByMeNodeUid).toHaveBeenCalledWith("nodeUid");
190
- }
191
- else {
192
- expect(cache.removeSharedByMeNodeUid).not.toHaveBeenCalled();
193
- }
194
- expect(listener).not.toHaveBeenCalled();
195
- expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
196
- });
102
+ eventId: "1",
103
+ treeEventScopeId: "MyVolume1",
104
+ };
105
+ await sharingEventHandler.handleDriveEvent(event);
106
+ expect(cache.removeSharedByMeNodeUid).toHaveBeenCalledWith("cachedNodeUid");
107
+ expect(cache.setSharedWithMeNodeUids).not.toHaveBeenCalled();
197
108
  });
198
109
  });
199
110
  });
200
111
  describe("handleSharedWithMeNodes", () => {
201
112
  let cache;
202
113
  let sharingAccess;
114
+ let sharesManager;
203
115
  beforeEach(() => {
204
116
  jest.clearAllMocks();
205
117
  // @ts-expect-error No need to implement all methods for mocking
@@ -211,36 +123,21 @@ describe("handleSharedWithMeNodes", () => {
211
123
  sharingAccess = {
212
124
  iterateSharedNodesWithMe: jest.fn(),
213
125
  };
126
+ sharesManager = {
127
+ isOwnVolume: jest.fn(async (volumeId) => volumeId === 'MyVolume1'),
128
+ };
214
129
  });
215
130
  it("should only update cache", async () => {
216
131
  const event = {
217
- type: events_1.DriveEventType.ShareWithMeUpdated,
132
+ type: events_1.DriveEventType.SharedWithMeUpdated,
133
+ eventId: 'event1',
134
+ treeEventScopeId: 'core',
218
135
  };
219
- await (0, events_2.handleSharedWithMeNodes)(event, cache, [], sharingAccess);
136
+ const sharingEventHandler = new events_2.SharingEventHandler((0, logger_1.getMockLogger)(), cache, sharesManager);
137
+ await sharingEventHandler.handleDriveEvent(event);
220
138
  expect(cache.setSharedWithMeNodeUids).toHaveBeenCalledWith(undefined);
221
139
  expect(cache.getSharedWithMeNodeUids).not.toHaveBeenCalled();
222
140
  expect(sharingAccess.iterateSharedNodesWithMe).not.toHaveBeenCalled();
223
141
  });
224
- it("should update cache and notify listener", async () => {
225
- cache.getSharedWithMeNodeUids = jest.fn().mockResolvedValue(["nodeUid1", "nodeUid4"]);
226
- sharingAccess.iterateSharedNodesWithMe = jest.fn().mockImplementation(async function* () {
227
- yield { uid: "nodeUid1", name: { ok: true, value: "name1" } };
228
- yield { uid: "nodeUid2", name: { ok: true, value: "name2" } };
229
- yield { uid: "nodeUid3", name: { ok: true, value: "name3" } };
230
- });
231
- const listener = jest.fn();
232
- const event = {
233
- type: events_1.DriveEventType.ShareWithMeUpdated,
234
- };
235
- await (0, events_2.handleSharedWithMeNodes)(event, cache, [{ type: interface_1.SharingType.sharedWithMe, callback: listener }], sharingAccess);
236
- expect(cache.setSharedWithMeNodeUids).toHaveBeenCalledWith(undefined);
237
- expect(cache.getSharedWithMeNodeUids).toHaveBeenCalled();
238
- expect(sharingAccess.iterateSharedNodesWithMe).toHaveBeenCalled();
239
- expect(listener).toHaveBeenCalledTimes(4);
240
- expect(listener).toHaveBeenCalledWith(expect.objectContaining({ type: 'update', uid: 'nodeUid1' }));
241
- expect(listener).toHaveBeenCalledWith(expect.objectContaining({ type: 'update', uid: 'nodeUid2' }));
242
- expect(listener).toHaveBeenCalledWith(expect.objectContaining({ type: 'update', uid: 'nodeUid3' }));
243
- expect(listener).toHaveBeenCalledWith({ type: 'remove', uid: 'nodeUid4' });
244
- });
245
142
  });
246
143
  //# sourceMappingURL=events.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { ProtonDriveAccount, ProtonDriveEntitiesCache, ProtonDriveTelemetry } from "../../interface";
2
2
  import { DriveCrypto } from '../../crypto';
3
3
  import { DriveAPIService } from "../apiService";
4
- import { DriveEventsService } from "../events";
5
- import { SharingEvents } from "./events";
6
4
  import { SharingAccess } from "./sharingAccess";
7
5
  import { SharingManagement } from "./sharingManagement";
8
- import { SharesService, NodesService, NodesEvents } from "./interface";
6
+ import { SharesService, NodesService } from "./interface";
7
+ import { SharingEventHandler } from "./events";
9
8
  /**
10
9
  * Provides facade for the whole sharing module.
11
10
  *
@@ -13,8 +12,8 @@ import { SharesService, NodesService, NodesEvents } from "./interface";
13
12
  * standard shares, listing shared nodes, etc. It includes API communication,
14
13
  * encryption, decryption, caching, and event handling.
15
14
  */
16
- export declare function initSharingModule(telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, driveEntitiesCache: ProtonDriveEntitiesCache, account: ProtonDriveAccount, crypto: DriveCrypto, driveEvents: DriveEventsService, sharesService: SharesService, nodesService: NodesService, nodesEvents: NodesEvents): {
15
+ export declare function initSharingModule(telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, driveEntitiesCache: ProtonDriveEntitiesCache, account: ProtonDriveAccount, crypto: DriveCrypto, sharesService: SharesService, nodesService: NodesService): {
17
16
  access: SharingAccess;
18
- events: SharingEvents;
17
+ eventHandler: SharingEventHandler;
19
18
  management: SharingManagement;
20
19
  };