@protontech/drive-sdk 0.1.1 → 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 (48) hide show
  1. package/dist/internal/events/eventManager.d.ts +1 -0
  2. package/dist/internal/events/eventManager.js +9 -0
  3. package/dist/internal/events/eventManager.js.map +1 -1
  4. package/dist/internal/events/eventManager.test.js +53 -38
  5. package/dist/internal/events/eventManager.test.js.map +1 -1
  6. package/dist/internal/events/index.d.ts +4 -3
  7. package/dist/internal/events/index.js +38 -32
  8. package/dist/internal/events/index.js.map +1 -1
  9. package/dist/internal/nodes/events.js +7 -7
  10. package/dist/internal/nodes/events.js.map +1 -1
  11. package/dist/internal/sharing/cache.d.ts +1 -0
  12. package/dist/internal/sharing/cache.js +9 -0
  13. package/dist/internal/sharing/cache.js.map +1 -1
  14. package/dist/internal/sharing/events.d.ts +1 -0
  15. package/dist/internal/sharing/events.js +28 -18
  16. package/dist/internal/sharing/events.js.map +1 -1
  17. package/dist/internal/sharing/events.test.js +98 -84
  18. package/dist/internal/sharing/events.test.js.map +1 -1
  19. package/dist/internal/upload/interface.d.ts +1 -0
  20. package/dist/internal/upload/manager.d.ts +1 -1
  21. package/dist/internal/upload/manager.js +8 -4
  22. package/dist/internal/upload/manager.js.map +1 -1
  23. package/dist/internal/upload/manager.test.js +7 -10
  24. package/dist/internal/upload/manager.test.js.map +1 -1
  25. package/dist/internal/upload/streamUploader.js +1 -1
  26. package/dist/internal/upload/streamUploader.js.map +1 -1
  27. package/dist/internal/upload/streamUploader.test.js +1 -1
  28. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  29. package/dist/protonDriveClient.js +2 -2
  30. package/dist/protonDriveClient.js.map +1 -1
  31. package/dist/transformers.d.ts +1 -1
  32. package/dist/transformers.js +1 -0
  33. package/dist/transformers.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/internal/events/eventManager.test.ts +61 -40
  36. package/src/internal/events/eventManager.ts +10 -0
  37. package/src/internal/events/index.ts +53 -35
  38. package/src/internal/nodes/events.ts +6 -7
  39. package/src/internal/sharing/cache.ts +9 -0
  40. package/src/internal/sharing/events.test.ts +104 -89
  41. package/src/internal/sharing/events.ts +33 -18
  42. package/src/internal/upload/interface.ts +1 -0
  43. package/src/internal/upload/manager.test.ts +7 -10
  44. package/src/internal/upload/manager.ts +7 -4
  45. package/src/internal/upload/streamUploader.test.ts +1 -1
  46. package/src/internal/upload/streamUploader.ts +1 -1
  47. package/src/protonDriveClient.ts +2 -2
  48. package/src/transformers.ts +2 -0
@@ -29,6 +29,7 @@ export declare class EventManager<T extends Event> {
29
29
  stop(): Promise<void>;
30
30
  private notifyListeners;
31
31
  private processEvents;
32
+ private scheduleNextPoll;
32
33
  /**
33
34
  * Polling timeout is using exponential backoff with Fibonacci sequence.
34
35
  */
@@ -33,8 +33,11 @@ class EventManager {
33
33
  this.logger = specializedEventManager.getLogger();
34
34
  }
35
35
  async start() {
36
+ this.logger.info(`Starting event manager with latestEventId: ${this.latestEventId}`);
36
37
  if (this.latestEventId === undefined) {
37
38
  this.latestEventId = await this.specializedEventManager.getLatestEventId();
39
+ this.scheduleNextPoll();
40
+ return;
38
41
  }
39
42
  this.processPromise = this.processEvents();
40
43
  }
@@ -95,6 +98,12 @@ class EventManager {
95
98
  if (listenerError) {
96
99
  throw listenerError;
97
100
  }
101
+ this.scheduleNextPoll();
102
+ }
103
+ scheduleNextPoll() {
104
+ if (this.timeoutHandle) {
105
+ clearTimeout(this.timeoutHandle);
106
+ }
98
107
  this.timeoutHandle = setTimeout(() => {
99
108
  this.processPromise = this.processEvents();
100
109
  }, this.nextPollTimeout);
@@ -1 +1 @@
1
- {"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../../src/internal/events/eventManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../../src/internal/events/eventManager.ts"],"names":[],"mappings":"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"}
@@ -7,17 +7,14 @@ jest.useFakeTimers();
7
7
  const POLLING_INTERVAL = 1;
8
8
  describe('EventManager', () => {
9
9
  let manager;
10
- const getLatestEventIdMock = jest.fn();
11
- const getEventsMock = jest.fn();
12
10
  const listenerMock = jest.fn();
13
- const mockLogger = (0, logger_1.getMockLogger)();
14
11
  const subscriptions = [];
12
+ const mockEventManager = {
13
+ getLogger: () => (0, logger_1.getMockLogger)(),
14
+ getLatestEventId: jest.fn(),
15
+ getEvents: jest.fn(),
16
+ };
15
17
  beforeEach(() => {
16
- const mockEventManager = {
17
- getLogger: () => mockLogger,
18
- getLatestEventId: getLatestEventIdMock,
19
- getEvents: getEventsMock,
20
- };
21
18
  manager = new eventManager_1.EventManager(mockEventManager, POLLING_INTERVAL, null);
22
19
  const subscription = manager.addListener(listenerMock);
23
20
  subscriptions.push(subscription);
@@ -31,7 +28,7 @@ describe('EventManager', () => {
31
28
  jest.clearAllMocks();
32
29
  });
33
30
  it('should start polling when started', async () => {
34
- getLatestEventIdMock.mockResolvedValue('EventId1');
31
+ mockEventManager.getLatestEventId.mockResolvedValue('EventId1');
35
32
  const mockEvents = [
36
33
  [
37
34
  {
@@ -48,7 +45,7 @@ describe('EventManager', () => {
48
45
  },
49
46
  ],
50
47
  ];
51
- getEventsMock
48
+ mockEventManager.getEvents
52
49
  .mockImplementationOnce(async function* () {
53
50
  yield* mockEvents[0];
54
51
  })
@@ -56,18 +53,19 @@ describe('EventManager', () => {
56
53
  yield* mockEvents[1];
57
54
  })
58
55
  .mockImplementationOnce(async function* () { });
59
- expect(getLatestEventIdMock).toHaveBeenCalledTimes(0);
60
- expect(getEventsMock).toHaveBeenCalledTimes(0);
56
+ expect(mockEventManager.getLatestEventId).toHaveBeenCalledTimes(0);
57
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(0);
61
58
  expect(await manager.start()).toBeUndefined();
62
- expect(getLatestEventIdMock).toHaveBeenCalledTimes(1);
63
- expect(getEventsMock).toHaveBeenCalledWith('EventId1');
64
59
  await jest.runOnlyPendingTimersAsync();
65
- expect(getEventsMock).toHaveBeenCalledTimes(2);
66
- expect(getEventsMock).toHaveBeenCalledWith('EventId2');
60
+ expect(mockEventManager.getLatestEventId).toHaveBeenCalledTimes(1);
61
+ expect(mockEventManager.getEvents).toHaveBeenCalledWith('EventId1');
62
+ await jest.runOnlyPendingTimersAsync();
63
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(2);
64
+ expect(mockEventManager.getEvents).toHaveBeenCalledWith('EventId2');
67
65
  });
68
66
  it('should stop polling when stopped', async () => {
69
- getLatestEventIdMock.mockResolvedValue('eventId1');
70
- getEventsMock.mockImplementation(async function* () {
67
+ mockEventManager.getLatestEventId.mockResolvedValue('eventId1');
68
+ mockEventManager.getEvents.mockImplementation(async function* () {
71
69
  yield {
72
70
  type: interface_1.DriveEventType.FastForward,
73
71
  treeEventScopeId: 'volume1',
@@ -76,14 +74,14 @@ describe('EventManager', () => {
76
74
  });
77
75
  await manager.start();
78
76
  await jest.runOnlyPendingTimersAsync();
79
- const callsBeforeStop = getEventsMock.mock.calls.length;
77
+ const callsBeforeStop = mockEventManager.getEvents.mock.calls.length;
80
78
  await manager.stop();
81
79
  await jest.runOnlyPendingTimersAsync();
82
80
  // Should not have made additional calls after stopping
83
- expect(getEventsMock).toHaveBeenCalledTimes(callsBeforeStop);
81
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(callsBeforeStop);
84
82
  });
85
83
  it('should notify all listeners when getting events', async () => {
86
- getLatestEventIdMock.mockResolvedValue('eventId1');
84
+ mockEventManager.getLatestEventId.mockResolvedValue('eventId1');
87
85
  const mockEvents = [
88
86
  {
89
87
  type: interface_1.DriveEventType.NodeCreated,
@@ -95,7 +93,7 @@ describe('EventManager', () => {
95
93
  eventId: 'eventId2',
96
94
  },
97
95
  ];
98
- getEventsMock
96
+ mockEventManager.getEvents
99
97
  .mockImplementationOnce(async function* () {
100
98
  yield* mockEvents;
101
99
  })
@@ -106,16 +104,16 @@ describe('EventManager', () => {
106
104
  expect(listenerMock).toHaveBeenNthCalledWith(1, mockEvents[0]);
107
105
  });
108
106
  it('should propagate unsubscription errors', async () => {
109
- getLatestEventIdMock.mockImplementation(() => {
107
+ mockEventManager.getLatestEventId.mockImplementation(() => {
110
108
  throw new interface_1.UnsubscribeFromEventsSourceError('Not found');
111
109
  });
112
110
  await expect(manager.start()).rejects.toThrow(interface_1.UnsubscribeFromEventsSourceError);
113
- expect(getLatestEventIdMock).toHaveBeenCalledTimes(1);
111
+ expect(mockEventManager.getLatestEventId).toHaveBeenCalledTimes(1);
114
112
  expect(listenerMock).toHaveBeenCalledTimes(0);
115
- expect(getEventsMock).toHaveBeenCalledTimes(0);
113
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(0);
116
114
  });
117
115
  it('should continue processing multiple events', async () => {
118
- getLatestEventIdMock.mockResolvedValue('eventId1');
116
+ mockEventManager.getLatestEventId.mockResolvedValue('eventId1');
119
117
  const mockEvents = [
120
118
  {
121
119
  type: interface_1.DriveEventType.NodeCreated,
@@ -136,7 +134,7 @@ describe('EventManager', () => {
136
134
  eventId: 'eventId3',
137
135
  },
138
136
  ];
139
- getEventsMock
137
+ mockEventManager.getEvents
140
138
  .mockImplementationOnce(async function* () {
141
139
  yield* mockEvents;
142
140
  })
@@ -148,7 +146,7 @@ describe('EventManager', () => {
148
146
  expect(listenerMock).toHaveBeenCalledTimes(2);
149
147
  expect(listenerMock).toHaveBeenNthCalledWith(1, mockEvents[0]);
150
148
  expect(listenerMock).toHaveBeenNthCalledWith(2, mockEvents[1]);
151
- getEventsMock.mockImplementationOnce(async function* () {
149
+ mockEventManager.getEvents.mockImplementationOnce(async function* () {
152
150
  yield* mockEvents;
153
151
  });
154
152
  await jest.runOnlyPendingTimersAsync();
@@ -157,9 +155,9 @@ describe('EventManager', () => {
157
155
  expect(listenerMock).toHaveBeenNthCalledWith(2, mockEvents[1]);
158
156
  });
159
157
  it('should retry on error with exponential backoff', async () => {
160
- getLatestEventIdMock.mockResolvedValue('eventId1');
158
+ mockEventManager.getLatestEventId.mockResolvedValue('eventId1');
161
159
  let callCount = 0;
162
- getEventsMock.mockImplementation(async function* () {
160
+ mockEventManager.getEvents.mockImplementation(async function* () {
163
161
  callCount++;
164
162
  if (callCount <= 3) {
165
163
  throw new Error('Network error');
@@ -172,10 +170,11 @@ describe('EventManager', () => {
172
170
  });
173
171
  expect(manager['retryIndex']).toEqual(0);
174
172
  expect(await manager.start()).toBeUndefined();
175
- expect(getEventsMock).toHaveBeenCalledTimes(1);
173
+ await jest.runOnlyPendingTimersAsync();
174
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(1);
176
175
  expect(manager['retryIndex']).toEqual(1);
177
176
  await jest.runOnlyPendingTimersAsync();
178
- expect(getEventsMock).toHaveBeenCalledTimes(2);
177
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(2);
179
178
  expect(manager['retryIndex']).toEqual(2);
180
179
  await jest.runOnlyPendingTimersAsync();
181
180
  expect(manager['retryIndex']).toEqual(3);
@@ -186,8 +185,8 @@ describe('EventManager', () => {
186
185
  expect(manager['retryIndex']).toEqual(0);
187
186
  });
188
187
  it('should stop polling when stopped immediately', async () => {
189
- getLatestEventIdMock.mockResolvedValue('eventId1');
190
- getEventsMock.mockImplementation(async function* () {
188
+ mockEventManager.getLatestEventId.mockResolvedValue('eventId1');
189
+ mockEventManager.getEvents.mockImplementation(async function* () {
191
190
  yield {
192
191
  type: interface_1.DriveEventType.FastForward,
193
192
  treeEventScopeId: 'volume1',
@@ -195,20 +194,36 @@ describe('EventManager', () => {
195
194
  };
196
195
  });
197
196
  expect(await manager.start()).toBeUndefined();
198
- expect(getEventsMock).toHaveBeenCalledTimes(1);
197
+ await jest.runOnlyPendingTimersAsync();
198
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(1);
199
199
  await manager.stop();
200
200
  await jest.runOnlyPendingTimersAsync();
201
201
  // getEvents should have been called once during start, but not again after stop
202
- expect(getEventsMock).toHaveBeenCalledTimes(1);
202
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(1);
203
203
  });
204
204
  it('should handle empty event streams', async () => {
205
- getLatestEventIdMock.mockResolvedValue('eventId1');
206
- getEventsMock.mockImplementation(async function* () {
205
+ mockEventManager.getLatestEventId.mockResolvedValue('eventId1');
206
+ mockEventManager.getEvents.mockImplementation(async function* () {
207
207
  // Empty generator - no events
208
208
  });
209
209
  await manager.start();
210
210
  await jest.runOnlyPendingTimersAsync();
211
211
  expect(listenerMock).toHaveBeenCalledTimes(0);
212
212
  });
213
+ it('should poll right away after start if latestEventId is passed', async () => {
214
+ manager = new eventManager_1.EventManager(mockEventManager, POLLING_INTERVAL, 'eventId1');
215
+ await manager.start();
216
+ // Right after the start it is called.
217
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(1);
218
+ });
219
+ it('should not poll right away after start if latestEventId is not passed', async () => {
220
+ manager = new eventManager_1.EventManager(mockEventManager, POLLING_INTERVAL, null);
221
+ await manager.start();
222
+ // Right after the start it is not called.
223
+ expect(mockEventManager.getEvents).not.toHaveBeenCalled();
224
+ // But it is scheduled to be called after the polling interval.
225
+ await jest.runOnlyPendingTimersAsync();
226
+ expect(mockEventManager.getEvents).toHaveBeenCalledTimes(1);
227
+ });
213
228
  });
214
229
  //# sourceMappingURL=eventManager.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventManager.test.js","sourceRoot":"","sources":["../../../src/internal/events/eventManager.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventManager.test.js","sourceRoot":"","sources":["../../../src/internal/events/eventManager.test.ts"],"names":[],"mappings":"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"}
@@ -15,16 +15,17 @@ export declare class DriveEventsService {
15
15
  private cacheEventListeners;
16
16
  private latestEventIdProvider?;
17
17
  private apiService;
18
- private coreEvents?;
18
+ private coreEventManager?;
19
19
  private volumeEventManagers;
20
20
  private logger;
21
21
  constructor(telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, shareManagement: SharesManager, cacheEventListeners?: DriveListener[], latestEventIdProvider?: LatestEventIdProvider | undefined);
22
+ subscribeToCoreEvents(callback: DriveListener): Promise<EventSubscription>;
23
+ private createCoreEventManager;
22
24
  /**
23
25
  * Subscribe to drive events. The treeEventScopeId can be obtained from a node.
24
26
  */
25
27
  subscribeToTreeEvents(treeEventScopeId: string, callback: DriveListener): Promise<EventSubscription>;
26
- subscribeToCoreEvents(callback: DriveListener): Promise<EventSubscription>;
27
- private sendNumberOfVolumeSubscriptionsToTelemetry;
28
28
  private createVolumeEventManager;
29
29
  private getDefaultVolumePollingInterval;
30
+ private sendNumberOfVolumeSubscriptionsToTelemetry;
30
31
  }
@@ -21,7 +21,7 @@ class DriveEventsService {
21
21
  cacheEventListeners;
22
22
  latestEventIdProvider;
23
23
  apiService;
24
- coreEvents;
24
+ coreEventManager;
25
25
  volumeEventManagers;
26
26
  logger;
27
27
  constructor(telemetry, apiService, shareManagement, cacheEventListeners = [], latestEventIdProvider) {
@@ -34,68 +34,74 @@ class DriveEventsService {
34
34
  this.apiService = new apiService_1.EventsAPIService(apiService);
35
35
  this.volumeEventManagers = {};
36
36
  }
37
+ // FIXME: Allow to pass own core events manager from the public interface.
38
+ async subscribeToCoreEvents(callback) {
39
+ let manager = this.coreEventManager;
40
+ const started = !!manager;
41
+ if (manager === undefined) {
42
+ manager = await this.createCoreEventManager();
43
+ this.coreEventManager = manager;
44
+ }
45
+ const eventSubscription = manager.addListener(callback);
46
+ if (!started) {
47
+ await manager.start();
48
+ }
49
+ return eventSubscription;
50
+ }
51
+ async createCoreEventManager() {
52
+ if (!this.latestEventIdProvider) {
53
+ throw new Error('Cannot subscribe to events without passing a latestEventIdProvider in ProtonDriveClient initialization');
54
+ }
55
+ const coreEventManager = new coreEventManager_1.CoreEventManager(this.logger, this.apiService);
56
+ const latestEventId = this.latestEventIdProvider.getLatestEventId('core') ?? null;
57
+ const eventManager = new eventManager_1.EventManager(coreEventManager, CORE_POLLING_INTERVAL, latestEventId);
58
+ for (const listener of this.cacheEventListeners) {
59
+ eventManager.addListener(listener);
60
+ }
61
+ return eventManager;
62
+ }
37
63
  /**
38
64
  * Subscribe to drive events. The treeEventScopeId can be obtained from a node.
39
65
  */
40
66
  async subscribeToTreeEvents(treeEventScopeId, callback) {
41
67
  const volumeId = treeEventScopeId;
42
- this.logger.debug(`Creating volume event manager for volume ${volumeId}`);
43
68
  let manager = this.volumeEventManagers[volumeId];
44
- let started = true;
69
+ const started = !!manager;
45
70
  if (manager === undefined) {
46
71
  manager = await this.createVolumeEventManager(volumeId);
47
72
  this.volumeEventManagers[volumeId] = manager;
48
- started = false;
49
- this.sendNumberOfVolumeSubscriptionsToTelemetry();
50
73
  }
51
74
  const eventSubscription = manager.addListener(callback);
52
75
  if (!started) {
53
76
  await manager.start();
77
+ this.sendNumberOfVolumeSubscriptionsToTelemetry();
54
78
  }
55
79
  return eventSubscription;
56
80
  }
57
- // FIXME: Allow to pass own core events manager from the public interface.
58
- async subscribeToCoreEvents(callback) {
59
- if (this.latestEventIdProvider === null || this.latestEventIdProvider === undefined) {
60
- throw new Error('Cannot subscribe to events without passing a latestEventIdProvider in ProtonDriveClient initialization');
61
- }
62
- if (this.coreEvents === undefined) {
63
- const coreEventManager = new coreEventManager_1.CoreEventManager(this.logger, this.apiService);
64
- const latestEventId = this.latestEventIdProvider.getLatestEventId('core') ?? null;
65
- this.coreEvents = new eventManager_1.EventManager(coreEventManager, CORE_POLLING_INTERVAL, latestEventId);
66
- for (const listener of this.cacheEventListeners) {
67
- this.coreEvents.addListener(listener);
68
- }
69
- }
70
- const eventSubscription = this.coreEvents.addListener(callback);
71
- await this.coreEvents.start();
72
- return eventSubscription;
73
- }
74
- sendNumberOfVolumeSubscriptionsToTelemetry() {
75
- this.telemetry.logEvent({
76
- eventName: 'volumeEventsSubscriptionsChanged',
77
- numberOfVolumeSubscriptions: Object.keys(this.volumeEventManagers).length,
78
- });
79
- }
80
81
  async createVolumeEventManager(volumeId) {
81
- if (this.latestEventIdProvider === null || this.latestEventIdProvider === undefined) {
82
+ if (!this.latestEventIdProvider) {
82
83
  throw new Error('Cannot subscribe to events without passing a latestEventIdProvider in ProtonDriveClient initialization');
83
84
  }
85
+ this.logger.debug(`Creating volume event manager for volume ${volumeId}`);
86
+ const volumeEventManager = new volumeEventManager_1.VolumeEventManager(this.logger, this.apiService, volumeId);
84
87
  const isOwnVolume = await this.shareManagement.isOwnVolume(volumeId);
85
88
  const pollingInterval = this.getDefaultVolumePollingInterval(isOwnVolume);
86
- const volumeEventManager = new volumeEventManager_1.VolumeEventManager(this.logger, this.apiService, volumeId);
87
89
  const latestEventId = this.latestEventIdProvider.getLatestEventId(volumeId);
88
90
  const eventManager = new eventManager_1.EventManager(volumeEventManager, pollingInterval, latestEventId);
89
91
  for (const listener of this.cacheEventListeners) {
90
92
  eventManager.addListener(listener);
91
93
  }
92
- await eventManager.start();
93
- this.volumeEventManagers[volumeId] = eventManager;
94
94
  return eventManager;
95
95
  }
96
96
  getDefaultVolumePollingInterval(isOwnVolume) {
97
97
  return isOwnVolume ? OWN_VOLUME_POLLING_INTERVAL : OTHER_VOLUME_POLLING_INTERVAL;
98
98
  }
99
+ sendNumberOfVolumeSubscriptionsToTelemetry() {
100
+ this.telemetry.logEvent({
101
+ eventName: 'volumeEventsSubscriptionsChanged',
102
+ numberOfVolumeSubscriptions: Object.keys(this.volumeEventManagers).length,
103
+ });
104
+ }
99
105
  }
100
106
  exports.DriveEventsService = DriveEventsService;
101
107
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/events/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/events/index.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,13 @@ class NodesEventsHandler {
41
41
  return;
42
42
  }
43
43
  if (event.type === events_1.DriveEventType.NodeUpdated) {
44
- const node = await this.cache.getNode(event.nodeUid);
44
+ let node;
45
+ try {
46
+ node = await this.cache.getNode(event.nodeUid);
47
+ }
48
+ catch {
49
+ return;
50
+ }
45
51
  node.isStale = true;
46
52
  node.parentUid = event.parentNodeUid;
47
53
  node.isShared = event.isShared;
@@ -55,12 +61,6 @@ class NodesEventsHandler {
55
61
  }
56
62
  }
57
63
  catch (error) {
58
- if (error instanceof Error) {
59
- // FIXME throw CacheMissException error and catch it
60
- if (error.message === 'Entity not found') {
61
- return;
62
- }
63
- }
64
64
  this.logger.error(`Failed to update node cache for event: ${event.eventId}`, error);
65
65
  }
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/nodes/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAGvD;;;;;GAKG;AACH,MAAa,kBAAkB;IAEf;IACA;IAFZ,YACY,MAAc,EACd,KAAiB;QADjB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAY;IAC1B,CAAC;IAEJ,KAAK,CAAC,uBAAuB,CAAC,KAAiB;QAC3C,IAAI,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACtD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,6DAA6D;gBAC7D,6CAA6C;gBAE7C,yDAAyD;gBACzD,yDAAyD;gBACzD,wDAAwD;gBACxD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/B,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBACzB,oDAAoD;gBACpD,IAAI,KAAK,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;oBACvC,OAAO;gBACX,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;CACJ;AAtDD,gDAsDC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/nodes/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAGvD;;;;;GAKG;AACH,MAAa,kBAAkB;IAEf;IACA;IAFZ,YACY,MAAc,EACd,KAAiB;QADjB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAY;IAC1B,CAAC;IAEJ,KAAK,CAAC,uBAAuB,CAAC,KAAiB;QAC3C,IAAI,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACtD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,6DAA6D;gBAC7D,6CAA6C;gBAE7C,yDAAyD;gBACzD,yDAAyD;gBACzD,wDAAwD;gBACxD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC;oBACD,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/B,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;CACJ;AArDD,gDAqDC"}
@@ -14,6 +14,7 @@ export declare class SharingCache {
14
14
  private cache;
15
15
  constructor(driveCache: ProtonDriveEntitiesCache);
16
16
  getSharedByMeNodeUids(): Promise<string[]>;
17
+ hasSharedByMeNodeUidsLoaded(): Promise<boolean>;
17
18
  addSharedByMeNodeUid(nodeUid: string): Promise<void>;
18
19
  removeSharedByMeNodeUid(nodeUid: string): Promise<void>;
19
20
  setSharedByMeNodeUids(nodeUids: string[] | undefined): Promise<void>;
@@ -22,6 +22,15 @@ class SharingCache {
22
22
  async getSharedByMeNodeUids() {
23
23
  return this.getNodeUids(interface_1.SharingType.SharedByMe);
24
24
  }
25
+ async hasSharedByMeNodeUidsLoaded() {
26
+ try {
27
+ await this.getNodeUids(interface_1.SharingType.SharedByMe);
28
+ return true;
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
25
34
  async addSharedByMeNodeUid(nodeUid) {
26
35
  return this.addNodeUid(interface_1.SharingType.SharedByMe, nodeUid);
27
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/internal/sharing/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/internal/sharing/cache.ts"],"names":[],"mappings":"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"}
@@ -22,4 +22,5 @@ export declare class SharingEventHandler {
22
22
  * @throws Only if the client's callback throws.
23
23
  */
24
24
  handleDriveEvent(event: DriveEvent): Promise<void>;
25
+ private handleSharedByMeNodeUidsLoaded;
25
26
  }
@@ -31,28 +31,38 @@ class SharingEventHandler {
31
31
  await this.cache.setSharedWithMeNodeUids(undefined);
32
32
  return;
33
33
  }
34
- if (!(await this.shares.isOwnVolume(event.treeEventScopeId))) {
35
- return;
36
- }
37
- if (event.type === events_1.DriveEventType.NodeCreated || event.type == events_1.DriveEventType.NodeUpdated) {
38
- if (event.isShared && !event.isTrashed) {
39
- await this.cache.addSharedByMeNodeUid(event.nodeUid);
40
- }
41
- else {
42
- await this.cache.removeSharedByMeNodeUid(event.nodeUid);
43
- }
44
- return;
34
+ await this.handleSharedByMeNodeUidsLoaded(event);
35
+ }
36
+ catch (error) {
37
+ this.logger.error(`Skipping shared by me node cache update`, error);
38
+ }
39
+ }
40
+ async handleSharedByMeNodeUidsLoaded(event) {
41
+ if (event.type === events_1.DriveEventType.TreeRefresh || event.type === events_1.DriveEventType.TreeRemove) {
42
+ await this.cache.setSharedWithMeNodeUids(undefined);
43
+ return;
44
+ }
45
+ if (![events_1.DriveEventType.NodeCreated, events_1.DriveEventType.NodeUpdated, events_1.DriveEventType.NodeDeleted].includes(event.type)) {
46
+ return;
47
+ }
48
+ const hasSharedByMeLoaded = await this.cache.hasSharedByMeNodeUidsLoaded();
49
+ if (!hasSharedByMeLoaded) {
50
+ return;
51
+ }
52
+ const isOwnVolume = await this.shares.isOwnVolume(event.treeEventScopeId);
53
+ if (!isOwnVolume) {
54
+ return;
55
+ }
56
+ if (event.type === events_1.DriveEventType.NodeCreated || event.type == events_1.DriveEventType.NodeUpdated) {
57
+ if (event.isShared && !event.isTrashed) {
58
+ await this.cache.addSharedByMeNodeUid(event.nodeUid);
45
59
  }
46
- if (event.type === events_1.DriveEventType.NodeDeleted) {
60
+ else {
47
61
  await this.cache.removeSharedByMeNodeUid(event.nodeUid);
48
- return;
49
- }
50
- if (event.type === events_1.DriveEventType.TreeRefresh || event.type === events_1.DriveEventType.TreeRemove) {
51
- await this.cache.setSharedWithMeNodeUids(undefined);
52
62
  }
53
63
  }
54
- catch (error) {
55
- this.logger.error(`Skipping shared by me node cache update`, error);
64
+ if (event.type === events_1.DriveEventType.NodeDeleted) {
65
+ await this.cache.removeSharedByMeNodeUid(event.nodeUid);
56
66
  }
57
67
  }
58
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAIvD,MAAa,mBAAmB;IAEhB;IACA;IACA;IAHZ,YACY,MAAc,EACd,KAAmB,EACnB,MAAqB;QAFrB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAc;QACnB,WAAM,GAAN,MAAM,CAAe;IAC9B,CAAC;IAEJ;;;;;;;;;;;;;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;AAjDD,kDAiDC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAIvD,MAAa,mBAAmB;IAEhB;IACA;IACA;IAHZ,YACY,MAAc,EACd,KAAmB,EACnB,MAAqB;QAFrB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAc;QACnB,WAAM,GAAN,MAAM,CAAe;IAC9B,CAAC;IAEJ;;;;;;;;;;;;;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,MAAM,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAAC,KAAiB;QAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,UAAU,EAAE,CAAC;YACxF,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACpD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,CAAC,uBAAc,CAAC,WAAW,EAAE,uBAAc,CAAC,WAAW,EAAE,uBAAc,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7G,OAAO;QACX,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC;QAC3E,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvB,OAAO;QACX,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,IAAI,uBAAc,CAAC,WAAW,EAAE,CAAC;YACxF,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;CACJ;AAhED,kDAgEC"}