@protontech/drive-sdk 0.14.6 → 0.14.8

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 (74) hide show
  1. package/dist/crypto/openPGPCrypto.d.ts +1 -1
  2. package/dist/crypto/openPGPCrypto.js +1 -1
  3. package/dist/interface/nodes.d.ts +1 -0
  4. package/dist/interface/nodes.js.map +1 -1
  5. package/dist/interface/photos.d.ts +6 -2
  6. package/dist/internal/apiService/driveTypes.d.ts +294 -261
  7. package/dist/internal/nodes/apiService.js +1 -0
  8. package/dist/internal/nodes/apiService.js.map +1 -1
  9. package/dist/internal/nodes/cache.test.js +1 -0
  10. package/dist/internal/nodes/cache.test.js.map +1 -1
  11. package/dist/internal/nodes/cryptoService.js +1 -0
  12. package/dist/internal/nodes/cryptoService.js.map +1 -1
  13. package/dist/internal/nodes/interface.d.ts +2 -0
  14. package/dist/internal/nodes/nodesAccess.js +4 -0
  15. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  16. package/dist/internal/nodes/nodesRevisions.js +8 -0
  17. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  18. package/dist/internal/photos/albumsManager.d.ts +1 -0
  19. package/dist/internal/photos/albumsManager.js +15 -0
  20. package/dist/internal/photos/albumsManager.js.map +1 -1
  21. package/dist/internal/photos/albumsManager.test.js +37 -0
  22. package/dist/internal/photos/albumsManager.test.js.map +1 -1
  23. package/dist/internal/photos/apiService.js +4 -1
  24. package/dist/internal/photos/apiService.js.map +1 -1
  25. package/dist/internal/photos/nodes.d.ts +15 -4
  26. package/dist/internal/photos/nodes.js +33 -0
  27. package/dist/internal/photos/nodes.js.map +1 -1
  28. package/dist/internal/photos/nodes.test.js +35 -0
  29. package/dist/internal/photos/nodes.test.js.map +1 -1
  30. package/dist/internal/photos/upload.d.ts +4 -1
  31. package/dist/internal/photos/upload.js +8 -4
  32. package/dist/internal/photos/upload.js.map +1 -1
  33. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  34. package/dist/internal/upload/apiService.d.ts +3 -0
  35. package/dist/internal/upload/apiService.js +3 -0
  36. package/dist/internal/upload/apiService.js.map +1 -1
  37. package/dist/internal/upload/manager.d.ts +4 -1
  38. package/dist/internal/upload/manager.js +6 -2
  39. package/dist/internal/upload/manager.js.map +1 -1
  40. package/dist/internal/upload/smallFileUploader.d.ts +1 -0
  41. package/dist/internal/upload/smallFileUploader.js +1 -0
  42. package/dist/internal/upload/smallFileUploader.js.map +1 -1
  43. package/dist/internal/upload/streamUploader.d.ts +3 -2
  44. package/dist/internal/upload/streamUploader.js +40 -22
  45. package/dist/internal/upload/streamUploader.js.map +1 -1
  46. package/dist/internal/upload/streamUploader.test.js +3 -1
  47. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  48. package/dist/protonDrivePhotosClient.d.ts +20 -0
  49. package/dist/protonDrivePhotosClient.js +23 -0
  50. package/dist/protonDrivePhotosClient.js.map +1 -1
  51. package/package.json +3 -2
  52. package/src/crypto/openPGPCrypto.ts +2 -2
  53. package/src/interface/nodes.ts +1 -0
  54. package/src/interface/photos.ts +7 -3
  55. package/src/internal/apiService/driveTypes.ts +294 -261
  56. package/src/internal/nodes/apiService.ts +1 -0
  57. package/src/internal/nodes/cache.test.ts +1 -0
  58. package/src/internal/nodes/cryptoService.ts +1 -0
  59. package/src/internal/nodes/interface.ts +2 -0
  60. package/src/internal/nodes/nodesAccess.ts +4 -0
  61. package/src/internal/nodes/nodesRevisions.ts +8 -0
  62. package/src/internal/photos/albumsManager.test.ts +41 -0
  63. package/src/internal/photos/albumsManager.ts +17 -0
  64. package/src/internal/photos/apiService.ts +6 -1
  65. package/src/internal/photos/nodes.test.ts +49 -0
  66. package/src/internal/photos/nodes.ts +36 -0
  67. package/src/internal/photos/upload.ts +13 -2
  68. package/src/internal/sharing/sharingAccess.ts +1 -1
  69. package/src/internal/upload/apiService.ts +6 -0
  70. package/src/internal/upload/manager.ts +7 -1
  71. package/src/internal/upload/smallFileUploader.ts +3 -0
  72. package/src/internal/upload/streamUploader.test.ts +3 -0
  73. package/src/internal/upload/streamUploader.ts +50 -23
  74. package/src/protonDrivePhotosClient.ts +30 -0
@@ -33,6 +33,7 @@ import {
33
33
  getUids,
34
34
  } from './transformers';
35
35
  import { DriveAPIService } from './internal/apiService';
36
+ import { makeNodeUid } from './internal/uids';
36
37
  import { initDownloadModule } from './internal/download';
37
38
  import { DriveEventsService, DriveListener, EventSubscription } from './internal/events';
38
39
  import {
@@ -75,6 +76,12 @@ export class ProtonDrivePhotosClient {
75
76
  * See `ProtonDriveClient.experimental.getNodeUrl` for more information.
76
77
  */
77
78
  getNodeUrl: (nodeUid: NodeOrUid) => Promise<string>;
79
+ /**
80
+ * Iterates albums sorted by last activity time (most recent first).
81
+ *
82
+ * @param signal - An optional abort signal to cancel the operation.
83
+ */
84
+ iterateAlbumUids: (signal?: AbortSignal) => AsyncGenerator<string>;
78
85
  };
79
86
 
80
87
  constructor({
@@ -175,6 +182,10 @@ export class ProtonDrivePhotosClient {
175
182
  this.logger.debug(`Getting node URL for ${getUid(nodeUid)}`);
176
183
  return this.nodes.access.getNodeUrl(getUid(nodeUid));
177
184
  },
185
+ iterateAlbumUids: (signal?: AbortSignal) => {
186
+ this.logger.debug('Iterating album UIDs');
187
+ return this.photos.albums.iterateAlbumUids(signal);
188
+ },
178
189
  };
179
190
  }
180
191
 
@@ -208,6 +219,25 @@ export class ProtonDrivePhotosClient {
208
219
  return this.events.subscribeToCoreEvents(callback);
209
220
  }
210
221
 
222
+ /**
223
+ * Provides the node UID for the given raw share and node IDs.
224
+ *
225
+ * This is required only for the internal implementation to provide
226
+ * backward compatibility with the old Drive web setup.
227
+ *
228
+ * If you are having volume ID, use `generateNodeUid` instead.
229
+ *
230
+ * @deprecated This method is not part of the public API.
231
+ * @param shareId - Context share of the node.
232
+ * @param nodeId - Node/link ID (not UID).
233
+ * @returns The node UID.
234
+ */
235
+ async getNodeUid(shareId: string, nodeId: string): Promise<string> {
236
+ this.logger.info(`Getting node UID for share ${shareId} and node ${nodeId}`);
237
+ const share = await this.photoShares.loadEncryptedShare(shareId);
238
+ return makeNodeUid(share.volumeId, nodeId);
239
+ }
240
+
211
241
  /**
212
242
  * @returns The root folder to Photos section of the user.
213
243
  */