@protontech/drive-sdk 0.14.1 → 0.14.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 (51) hide show
  1. package/dist/internal/batchLoading.d.ts +2 -0
  2. package/dist/internal/batchLoading.js +18 -5
  3. package/dist/internal/batchLoading.js.map +1 -1
  4. package/dist/internal/batchLoading.test.js +92 -0
  5. package/dist/internal/batchLoading.test.js.map +1 -1
  6. package/dist/internal/nodes/nodesAccess.js +1 -1
  7. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  8. package/dist/internal/nodes/nodesAccess.test.js +3 -2
  9. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  10. package/dist/internal/photos/index.js +3 -1
  11. package/dist/internal/photos/index.js.map +1 -1
  12. package/dist/internal/photos/upload.d.ts +1 -1
  13. package/dist/internal/photos/upload.js +2 -2
  14. package/dist/internal/photos/upload.js.map +1 -1
  15. package/dist/internal/sharing/events.d.ts +4 -2
  16. package/dist/internal/sharing/events.js +40 -9
  17. package/dist/internal/sharing/events.js.map +1 -1
  18. package/dist/internal/sharing/events.test.js +30 -2
  19. package/dist/internal/sharing/events.test.js.map +1 -1
  20. package/dist/internal/sharing/index.js +1 -1
  21. package/dist/internal/sharing/index.js.map +1 -1
  22. package/dist/internal/upload/fileUploader.d.ts +19 -3
  23. package/dist/internal/upload/fileUploader.js +31 -5
  24. package/dist/internal/upload/fileUploader.js.map +1 -1
  25. package/dist/internal/upload/fileUploader.test.js +1 -1
  26. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  27. package/dist/internal/upload/index.js +4 -11
  28. package/dist/internal/upload/index.js.map +1 -1
  29. package/dist/internal/upload/index.test.js +104 -45
  30. package/dist/internal/upload/index.test.js.map +1 -1
  31. package/dist/internal/upload/smallFileUploader.d.ts +14 -14
  32. package/dist/internal/upload/smallFileUploader.js +38 -20
  33. package/dist/internal/upload/smallFileUploader.js.map +1 -1
  34. package/dist/internal/upload/smallFileUploader.test.js +35 -36
  35. package/dist/internal/upload/smallFileUploader.test.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/internal/batchLoading.test.ts +104 -0
  38. package/src/internal/batchLoading.ts +21 -5
  39. package/src/internal/nodes/nodesAccess.test.ts +4 -3
  40. package/src/internal/nodes/nodesAccess.ts +1 -1
  41. package/src/internal/photos/index.ts +2 -0
  42. package/src/internal/photos/upload.ts +13 -1
  43. package/src/internal/sharing/events.test.ts +35 -2
  44. package/src/internal/sharing/events.ts +47 -10
  45. package/src/internal/sharing/index.ts +1 -0
  46. package/src/internal/upload/fileUploader.test.ts +1 -0
  47. package/src/internal/upload/fileUploader.ts +60 -2
  48. package/src/internal/upload/index.test.ts +121 -63
  49. package/src/internal/upload/index.ts +4 -30
  50. package/src/internal/upload/smallFileUploader.test.ts +33 -40
  51. package/src/internal/upload/smallFileUploader.ts +47 -36
@@ -1 +1 @@
1
- {"version":3,"file":"smallFileUploader.test.js","sourceRoot":"","sources":["../../../src/internal/upload/smallFileUploader.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smallFileUploader.test.js","sourceRoot":"","sources":["../../../src/internal/upload/smallFileUploader.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@protontech/drive-sdk",
3
- "version": "0.14.1",
3
+ "version": "0.14.2",
4
4
  "description": "Proton Drive SDK",
5
5
  "license": "GPL-3.0",
6
6
  "main": "dist/index.js",
@@ -1,3 +1,4 @@
1
+ import { ProtonDriveError } from '../errors';
1
2
  import { BatchLoading } from './batchLoading';
2
3
 
3
4
  describe('BatchLoading', () => {
@@ -54,4 +55,107 @@ describe('BatchLoading', () => {
54
55
  expect(iterateItems).toHaveBeenNthCalledWith(2, ['c', 'd']);
55
56
  expect(iterateItems).toHaveBeenNthCalledWith(3, ['e']);
56
57
  });
58
+
59
+ it('should capture loadItems failure, continue with next batches, and throw at loadRest', async () => {
60
+ const loadItems = jest.fn((items: string[]) => {
61
+ if (items.includes('a')) {
62
+ return Promise.reject(new Error('loader failed'));
63
+ }
64
+ return Promise.resolve(items.map((item) => `loaded:${item}`));
65
+ });
66
+
67
+ batchLoading = new BatchLoading<string, string>({ loadItems, batchSize: 2 });
68
+
69
+ const result: string[] = [];
70
+ for (const item of ['a', 'b', 'c', 'd']) {
71
+ for await (const loadedItem of batchLoading.load(item)) {
72
+ result.push(loadedItem);
73
+ }
74
+ }
75
+
76
+ let thrown: unknown;
77
+ try {
78
+ for await (const loadedItem of batchLoading.loadRest()) {
79
+ result.push(loadedItem);
80
+ }
81
+ } catch (e) {
82
+ thrown = e;
83
+ }
84
+
85
+ expect(result).toEqual(['loaded:c', 'loaded:d']);
86
+ expect(loadItems).toHaveBeenCalledTimes(2);
87
+ expect(thrown).toBeInstanceOf(ProtonDriveError);
88
+ expect((thrown as ProtonDriveError).cause).toEqual([expect.objectContaining({ message: 'loader failed' })]);
89
+ });
90
+
91
+ it('should capture iterateItems failure, continue with next batches, and throw at loadRest', async () => {
92
+ const iterateItems = jest.fn(async function* (items: string[]) {
93
+ for (const item of items) {
94
+ if (item !== 'a') {
95
+ yield `loaded:${item}`;
96
+ }
97
+ }
98
+ if (items.includes('a')) {
99
+ throw new Error('iterator failed');
100
+ }
101
+ });
102
+
103
+ batchLoading = new BatchLoading<string, string>({ iterateItems, batchSize: 2 });
104
+
105
+ const result: string[] = [];
106
+ for (const item of ['a', 'b', 'c', 'd']) {
107
+ for await (const loadedItem of batchLoading.load(item)) {
108
+ result.push(loadedItem);
109
+ }
110
+ }
111
+
112
+ let thrown: unknown;
113
+ try {
114
+ for await (const loadedItem of batchLoading.loadRest()) {
115
+ result.push(loadedItem);
116
+ }
117
+ } catch (e) {
118
+ thrown = e;
119
+ }
120
+
121
+ expect(result).toEqual(['loaded:b', 'loaded:c', 'loaded:d']);
122
+ expect(iterateItems).toHaveBeenCalledTimes(2);
123
+ expect(thrown).toBeInstanceOf(ProtonDriveError);
124
+ expect((thrown as ProtonDriveError).cause).toEqual([expect.objectContaining({ message: 'iterator failed' })]);
125
+ });
126
+
127
+ it('should throw ProtonDriveError with causes when multiple batches fail', async () => {
128
+ const loadItems = jest.fn((items: string[]) => {
129
+ if (items.includes('a') || items.includes('e')) {
130
+ return Promise.reject(new Error(`failed:${items.join(',')}`));
131
+ }
132
+ return Promise.resolve(items.map((item) => `loaded:${item}`));
133
+ });
134
+
135
+ batchLoading = new BatchLoading<string, string>({ loadItems, batchSize: 2 });
136
+
137
+ const result: string[] = [];
138
+ for (const item of ['a', 'b', 'c', 'd', 'e', 'f']) {
139
+ for await (const loadedItem of batchLoading.load(item)) {
140
+ result.push(loadedItem);
141
+ }
142
+ }
143
+
144
+ let thrown: unknown;
145
+ try {
146
+ for await (const loadedItem of batchLoading.loadRest()) {
147
+ result.push(loadedItem);
148
+ }
149
+ } catch (e) {
150
+ thrown = e;
151
+ }
152
+
153
+ expect(result).toEqual(['loaded:c', 'loaded:d']);
154
+ expect(thrown).toBeInstanceOf(ProtonDriveError);
155
+ expect((thrown as ProtonDriveError).cause).toEqual([
156
+ expect.objectContaining({ message: 'failed:a,b' }),
157
+ expect.objectContaining({ message: 'failed:e,f' }),
158
+ ]);
159
+ expect(loadItems).toHaveBeenCalledTimes(3);
160
+ });
57
161
  });
@@ -1,3 +1,7 @@
1
+ import { c } from 'ttag';
2
+
3
+ import { ProtonDriveError } from '../errors';
4
+
1
5
  const DEFAULT_BATCH_LOADING = 10;
2
6
 
3
7
  /**
@@ -28,6 +32,8 @@ export class BatchLoading<ID, ITEM> {
28
32
 
29
33
  private itemsToFetch: ID[];
30
34
 
35
+ private errors: unknown[] = [];
36
+
31
37
  constructor(options: {
32
38
  loadItems?: (ids: ID[]) => Promise<ITEM[]>;
33
39
  iterateItems?: (ids: ID[]) => AsyncGenerator<ITEM>;
@@ -58,17 +64,27 @@ export class BatchLoading<ID, ITEM> {
58
64
  this.itemsToFetch.push(nodeUid);
59
65
 
60
66
  if (this.itemsToFetch.length >= this.batchSize) {
61
- yield* this.iterateItems(this.itemsToFetch);
67
+ yield* this.iterateItemsWithErrorHandling(this.itemsToFetch);
62
68
  this.itemsToFetch = [];
63
69
  }
64
70
  }
65
71
 
66
72
  async *loadRest() {
67
- if (this.itemsToFetch.length === 0) {
68
- return;
73
+ if (this.itemsToFetch.length > 0) {
74
+ yield* this.iterateItemsWithErrorHandling(this.itemsToFetch);
75
+ this.itemsToFetch = [];
69
76
  }
70
77
 
71
- yield* this.iterateItems(this.itemsToFetch);
72
- this.itemsToFetch = [];
78
+ if (this.errors.length > 0) {
79
+ throw new ProtonDriveError(c('Error').t`Failed to load some items`, { cause: this.errors });
80
+ }
81
+ }
82
+
83
+ private async *iterateItemsWithErrorHandling(items: ID[]) {
84
+ try {
85
+ yield* this.iterateItems(items);
86
+ } catch (error) {
87
+ this.errors.push(error);
88
+ }
73
89
  }
74
90
  }
@@ -1,6 +1,6 @@
1
1
  import { getMockTelemetry } from '../../tests/telemetry';
2
2
  import { PrivateKey } from '../../crypto';
3
- import { DecryptionError } from '../../errors';
3
+ import { DecryptionError, ProtonDriveError } from '../../errors';
4
4
  import { NodeAPIService } from './apiService';
5
5
  import { NodesCache } from './cache';
6
6
  import { NodesCryptoCache } from './cryptoCache';
@@ -327,11 +327,12 @@ describe('nodesAccess', () => {
327
327
  const node2 = await generator.next();
328
328
  expect(node2.value).toMatchObject({ uid: 'volumeId~node3' });
329
329
  const node3 = generator.next();
330
- await expect(node3).rejects.toThrow('Failed to decrypt some nodes');
330
+ await expect(node3).rejects.toThrow('Failed to load some items');
331
331
  try {
332
332
  await node3;
333
333
  } catch (error: any) {
334
- expect(error.cause).toEqual([new DecryptionError('Decryption failed')]);
334
+ expect(error.cause).toEqual([new ProtonDriveError('Failed to load some nodes')]);
335
+ expect(error.cause[0].cause).toEqual([new DecryptionError('Decryption failed')]);
335
336
  }
336
337
  });
337
338
 
@@ -304,7 +304,7 @@ export abstract class NodesAccessBase<
304
304
 
305
305
  if (errors.length > 0) {
306
306
  this.logger.error(`Failed to decrypt ${errors.length} nodes`, errors);
307
- throw new DecryptionError(c('Error').t`Failed to decrypt some nodes`, { cause: errors });
307
+ throw new ProtonDriveError(c('Error').t`Failed to load some nodes`, { cause: errors });
308
308
  }
309
309
 
310
310
  const missingNodeUids = nodeUids.filter((nodeUid) => !returnedNodeUids.includes(nodeUid));
@@ -181,6 +181,8 @@ export function initPhotoUploadModule(
181
181
  name,
182
182
  metadata,
183
183
  onFinish,
184
+ // Small-file upload is not supported for photos yet.
185
+ () => Promise.resolve(false),
184
186
  signal,
185
187
  );
186
188
  }
@@ -47,9 +47,21 @@ export class PhotoFileUploader extends FileUploader {
47
47
  name: string,
48
48
  metadata: PhotoUploadMetadata,
49
49
  onFinish: () => void,
50
+ shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>,
50
51
  signal?: AbortSignal,
51
52
  ) {
52
- super(telemetry, apiService, cryptoService, manager, parentFolderUid, name, metadata, onFinish, signal);
53
+ super(
54
+ telemetry,
55
+ apiService,
56
+ cryptoService,
57
+ manager,
58
+ parentFolderUid,
59
+ name,
60
+ metadata,
61
+ onFinish,
62
+ shouldUseSmallFileUpload,
63
+ signal,
64
+ );
53
65
  this.photoApiService = apiService;
54
66
  this.photoManager = manager;
55
67
  this.photoMetadata = metadata;
@@ -4,6 +4,7 @@ import { SharingCache } from './cache';
4
4
  import { SharingAccess } from './sharingAccess';
5
5
  import { SharingEventHandler } from './events';
6
6
  import { SharesManager } from '../shares/manager';
7
+ import { NodesService } from './interface';
7
8
 
8
9
  // FIXME: test tree_refresh and tree_remove
9
10
 
@@ -11,6 +12,7 @@ describe('handleSharedByMeNodes', () => {
11
12
  let cache: SharingCache;
12
13
  let sharingEventHandler: SharingEventHandler;
13
14
  let sharesManager: SharesManager;
15
+ let nodesService: NodesService;
14
16
 
15
17
  beforeEach(() => {
16
18
  jest.clearAllMocks();
@@ -26,7 +28,11 @@ describe('handleSharedByMeNodes', () => {
26
28
  sharesManager = {
27
29
  isOwnVolume: jest.fn(async (volumeId: string) => volumeId === 'MyVolume1'),
28
30
  } as any;
29
- sharingEventHandler = new SharingEventHandler(getMockLogger(), cache, sharesManager);
31
+ // @ts-expect-error No need to implement all methods for mocking
32
+ nodesService = {
33
+ notifyNodeChanged: jest.fn(),
34
+ };
35
+ sharingEventHandler = new SharingEventHandler(getMockLogger(), cache, sharesManager, nodesService);
30
36
  });
31
37
 
32
38
  it('should add if new own shared node is created', async () => {
@@ -138,12 +144,14 @@ describe('handleSharedWithMeNodes', () => {
138
144
  let cache: SharingCache;
139
145
  let sharingAccess: SharingAccess;
140
146
  let sharesManager: SharesManager;
147
+ let nodesService: NodesService;
141
148
 
142
149
  beforeEach(() => {
143
150
  jest.clearAllMocks();
144
151
 
145
152
  // @ts-expect-error No need to implement all methods for mocking
146
153
  cache = {
154
+ hasSharedWithMeNodeUidsLoaded: jest.fn().mockResolvedValue(false),
147
155
  getSharedWithMeNodeUids: jest.fn(),
148
156
  setSharedWithMeNodeUids: jest.fn(),
149
157
  };
@@ -154,6 +162,10 @@ describe('handleSharedWithMeNodes', () => {
154
162
  sharesManager = {
155
163
  isOwnVolume: jest.fn(async (volumeId: string) => volumeId === 'MyVolume1'),
156
164
  } as any;
165
+ // @ts-expect-error No need to implement all methods for mocking
166
+ nodesService = {
167
+ notifyNodeChanged: jest.fn(),
168
+ };
157
169
  });
158
170
 
159
171
  it('should update cache', async () => {
@@ -163,11 +175,32 @@ describe('handleSharedWithMeNodes', () => {
163
175
  treeEventScopeId: 'core',
164
176
  };
165
177
 
166
- const sharingEventHandler = new SharingEventHandler(getMockLogger(), cache, sharesManager);
178
+ const sharingEventHandler = new SharingEventHandler(getMockLogger(), cache, sharesManager, nodesService);
167
179
  await sharingEventHandler.handleDriveEvent(event);
168
180
 
169
181
  expect(cache.setSharedWithMeNodeUids).toHaveBeenCalledWith(undefined);
170
182
  expect(cache.getSharedWithMeNodeUids).not.toHaveBeenCalled();
171
183
  expect(sharingAccess.iterateSharedNodesWithMe).not.toHaveBeenCalled();
184
+ expect(nodesService.notifyNodeChanged).not.toHaveBeenCalled();
185
+ });
186
+
187
+ it('should notify nodes changes', async () => {
188
+ cache.hasSharedWithMeNodeUidsLoaded = jest.fn().mockResolvedValue(true);
189
+ cache.getSharedWithMeNodeUids = jest.fn().mockResolvedValue(['nodeUid1', 'nodeUid2']);
190
+
191
+ const event: DriveEvent = {
192
+ type: DriveEventType.SharedWithMeUpdated,
193
+ eventId: 'event1',
194
+ treeEventScopeId: 'core',
195
+ };
196
+
197
+ const sharingEventHandler = new SharingEventHandler(getMockLogger(), cache, sharesManager, nodesService);
198
+ await sharingEventHandler.handleDriveEvent(event);
199
+
200
+ expect(cache.setSharedWithMeNodeUids).toHaveBeenCalledWith(undefined);
201
+ expect(cache.getSharedWithMeNodeUids).toHaveBeenCalled();
202
+ expect(nodesService.notifyNodeChanged).toHaveBeenCalledTimes(2);
203
+ expect(nodesService.notifyNodeChanged).toHaveBeenCalledWith('nodeUid1');
204
+ expect(nodesService.notifyNodeChanged).toHaveBeenCalledWith('nodeUid2');
172
205
  });
173
206
  });
@@ -1,13 +1,14 @@
1
1
  import { Logger } from '../../interface';
2
2
  import { DriveEvent, DriveEventType } from '../events';
3
3
  import { SharingCache } from './cache';
4
- import { SharesService } from './interface';
4
+ import { NodesService, SharesService } from './interface';
5
5
 
6
6
  export class SharingEventHandler {
7
7
  constructor(
8
8
  private logger: Logger,
9
9
  private cache: SharingCache,
10
10
  private shares: SharesService,
11
+ private nodesService: NodesService,
11
12
  ) {}
12
13
 
13
14
  /**
@@ -26,23 +27,59 @@ export class SharingEventHandler {
26
27
  */
27
28
  async handleDriveEvent(event: DriveEvent) {
28
29
  try {
29
- if (event.type === DriveEventType.SharedWithMeUpdated) {
30
- await this.cache.setSharedWithMeNodeUids(undefined);
31
- return;
32
- }
30
+ await this.handleSharedWithMeNodeUidsLoaded(event);
33
31
  await this.handleSharedByMeNodeUidsLoaded(event);
34
32
  } catch (error: unknown) {
35
- this.logger.error(`Skipping shared by me node cache update`, error);
33
+ this.logger.error(`Skipping sharing cache update`, error);
36
34
  }
37
35
  }
38
36
 
39
- private async handleSharedByMeNodeUidsLoaded(event: DriveEvent) {
40
- if (event.type === DriveEventType.TreeRefresh || event.type === DriveEventType.TreeRemove) {
41
- await this.cache.setSharedWithMeNodeUids(undefined);
37
+ private async handleSharedWithMeNodeUidsLoaded(event: DriveEvent) {
38
+ if (
39
+ ![DriveEventType.SharedWithMeUpdated, DriveEventType.TreeRefresh, DriveEventType.TreeRemove].includes(
40
+ event.type,
41
+ )
42
+ ) {
42
43
  return;
43
44
  }
44
45
 
45
- if (![DriveEventType.NodeCreated, DriveEventType.NodeUpdated, DriveEventType.NodeDeleted].includes(event.type)) {
46
+ // When user changes the membership (permissions) for a user, the
47
+ // backend emits both NodeUpdated and SharedWithMeUpdated events.
48
+ // Ideally, the SDK doesn't have to refresh all the shared nodes,
49
+ // only those that were changed via the NodeUpdated event. However,
50
+ // the client very likely will not be subscribed to all shared volumes.
51
+ // When the client only lists the list itself and not the trees, it
52
+ // is still required to refresh all the nodes to be sure to have the
53
+ // latest state.
54
+ // The sharing module doesn't have access to the nodes cache, thus
55
+ // it notifies the nodes via the service. If this fails, we need to
56
+ // log it, but it should not block the event handling. The node might
57
+ // be wrong at the "shared with me" listing, but it will be eventually
58
+ // updated once the user opens the volume tree and client processes
59
+ // the events for that volume.
60
+ // Ideally, in the future, the Drive API provides a custom event with
61
+ // indication of what node was added or removed or updated, instead
62
+ // of emitting destructive SharedWithMeUpdated event.
63
+ const hasSharedWithMeLoaded = await this.cache.hasSharedWithMeNodeUidsLoaded();
64
+ if (event.type === DriveEventType.SharedWithMeUpdated && hasSharedWithMeLoaded) {
65
+ try {
66
+ const sharedWithMeNodeUids = await this.cache.getSharedWithMeNodeUids();
67
+ this.logger.debug(`Shared with me updated, notifying ${sharedWithMeNodeUids.length} nodes`);
68
+ for (const nodeUid of sharedWithMeNodeUids) {
69
+ await this.nodesService.notifyNodeChanged(nodeUid);
70
+ }
71
+ } catch (error: unknown) {
72
+ this.logger.error(`Skipping shared with me node cache update`, error);
73
+ }
74
+ }
75
+
76
+ await this.cache.setSharedWithMeNodeUids(undefined);
77
+ }
78
+
79
+ private async handleSharedByMeNodeUidsLoaded(event: DriveEvent) {
80
+ if (
81
+ ![DriveEventType.NodeCreated, DriveEventType.NodeUpdated, DriveEventType.NodeDeleted].includes(event.type)
82
+ ) {
46
83
  return;
47
84
  }
48
85
 
@@ -48,6 +48,7 @@ export function initSharingModule(
48
48
  telemetry.getLogger('sharing-event-handler'),
49
49
  cache,
50
50
  sharesService,
51
+ nodesService,
51
52
  );
52
53
 
53
54
  return {
@@ -129,6 +129,7 @@ describe('FileUploader', () => {
129
129
  'name',
130
130
  metadata,
131
131
  onFinish,
132
+ () => Promise.resolve(false),
132
133
  abortController.signal,
133
134
  );
134
135
 
@@ -5,6 +5,7 @@ import { UploadController } from './controller';
5
5
  import { UploadCryptoService } from './cryptoService';
6
6
  import { NodeRevisionDraft } from './interface';
7
7
  import { UploadManager } from './manager';
8
+ import { SmallFileRevisionUploader, SmallFileUploader } from './smallFileUploader';
8
9
  import { StreamUploader } from './streamUploader';
9
10
  import { UploadTelemetry } from './telemetry';
10
11
 
@@ -26,6 +27,7 @@ export abstract class Uploader {
26
27
  protected manager: UploadManager,
27
28
  protected metadata: UploadMetadata,
28
29
  protected onFinish: () => void,
30
+ protected shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>,
29
31
  protected signal?: AbortSignal,
30
32
  ) {
31
33
  this.telemetry = telemetry;
@@ -34,6 +36,7 @@ export abstract class Uploader {
34
36
  this.manager = manager;
35
37
  this.metadata = metadata;
36
38
  this.onFinish = onFinish;
39
+ this.shouldUseSmallFileUpload = shouldUseSmallFileUpload;
37
40
 
38
41
  this.signal = signal;
39
42
  this.abortController = new AbortController();
@@ -97,10 +100,28 @@ export abstract class Uploader {
97
100
  thumbnails: Thumbnail[],
98
101
  onProgress?: (uploadedBytes: number) => void,
99
102
  ): Promise<{ nodeRevisionUid: string; nodeUid: string }> {
103
+ const expectedEncryptedTotalSize = this.getExpectedEncryptedTotalSize(thumbnails);
104
+ if (await this.shouldUseSmallFileUpload(expectedEncryptedTotalSize)) {
105
+ return this.initSmallFileUploader(stream, thumbnails, onProgress);
106
+ }
107
+
100
108
  const uploader = await this.initStreamUploader();
101
109
  return uploader.start(stream, thumbnails, onProgress);
102
110
  }
103
111
 
112
+ private getExpectedEncryptedTotalSize(thumbnails: Thumbnail[]): number {
113
+ const thumbnailSize = thumbnails.reduce((acc, thumbnail) => acc + thumbnail.thumbnail.length, 0);
114
+ const totalSize = this.metadata.expectedSize + thumbnailSize;
115
+ const expectedEncryptedTotalSize = totalSize * 1.1; // 10% margin for encryption overhead
116
+ return expectedEncryptedTotalSize;
117
+ }
118
+
119
+ protected abstract initSmallFileUploader(
120
+ stream: ReadableStream,
121
+ thumbnails: Thumbnail[],
122
+ onProgress?: (uploadedBytes: number) => void,
123
+ ): Promise<{ nodeRevisionUid: string; nodeUid: string }>;
124
+
104
125
  protected async initStreamUploader(): Promise<StreamUploader> {
105
126
  const { revisionDraft, blockVerifier } = await this.createRevisionDraft();
106
127
 
@@ -154,9 +175,10 @@ export class FileUploader extends Uploader {
154
175
  private name: string,
155
176
  metadata: UploadMetadata,
156
177
  onFinish: () => void,
178
+ protected shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>,
157
179
  signal?: AbortSignal,
158
180
  ) {
159
- super(telemetry, apiService, cryptoService, manager, metadata, onFinish, signal);
181
+ super(telemetry, apiService, cryptoService, manager, metadata, onFinish, shouldUseSmallFileUpload, signal);
160
182
 
161
183
  this.parentFolderUid = parentFolderUid;
162
184
  this.name = name;
@@ -192,6 +214,24 @@ export class FileUploader extends Uploader {
192
214
  protected async deleteRevisionDraft(revisionDraft: NodeRevisionDraft): Promise<void> {
193
215
  await this.manager.deleteDraftNode(revisionDraft.nodeUid);
194
216
  }
217
+
218
+ protected async initSmallFileUploader(
219
+ stream: ReadableStream,
220
+ thumbnails: Thumbnail[],
221
+ onProgress?: (uploadedBytes: number) => void,
222
+ ): Promise<{ nodeRevisionUid: string; nodeUid: string }> {
223
+ const uploader = new SmallFileUploader(
224
+ this.telemetry,
225
+ this.cryptoService,
226
+ this.manager,
227
+ this.metadata,
228
+ this.onFinish,
229
+ this.signal,
230
+ this.parentFolderUid,
231
+ this.name,
232
+ );
233
+ return uploader.upload(stream, thumbnails, onProgress);
234
+ }
195
235
  }
196
236
 
197
237
  /**
@@ -206,9 +246,10 @@ export class FileRevisionUploader extends Uploader {
206
246
  private nodeUid: string,
207
247
  metadata: UploadMetadata,
208
248
  onFinish: () => void,
249
+ protected shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>,
209
250
  signal?: AbortSignal,
210
251
  ) {
211
- super(telemetry, apiService, cryptoService, manager, metadata, onFinish, signal);
252
+ super(telemetry, apiService, cryptoService, manager, metadata, onFinish, shouldUseSmallFileUpload, signal);
212
253
 
213
254
  this.nodeUid = nodeUid;
214
255
  }
@@ -243,4 +284,21 @@ export class FileRevisionUploader extends Uploader {
243
284
  protected async deleteRevisionDraft(revisionDraft: NodeRevisionDraft): Promise<void> {
244
285
  await this.manager.deleteDraftRevision(revisionDraft.nodeRevisionUid);
245
286
  }
287
+
288
+ protected async initSmallFileUploader(
289
+ stream: ReadableStream,
290
+ thumbnails: Thumbnail[],
291
+ onProgress?: (uploadedBytes: number) => void,
292
+ ): Promise<{ nodeRevisionUid: string; nodeUid: string }> {
293
+ const uploader = new SmallFileRevisionUploader(
294
+ this.telemetry,
295
+ this.cryptoService,
296
+ this.manager,
297
+ this.metadata,
298
+ this.onFinish,
299
+ this.signal,
300
+ this.nodeUid,
301
+ );
302
+ return uploader.upload(stream, thumbnails, onProgress);
303
+ }
246
304
  }