@protontech/drive-sdk 0.9.7 → 0.9.9

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 (59) hide show
  1. package/dist/interface/upload.d.ts +10 -0
  2. package/dist/internal/nodes/mediaTypes.d.ts +2 -0
  3. package/dist/internal/nodes/mediaTypes.js +3 -0
  4. package/dist/internal/nodes/mediaTypes.js.map +1 -1
  5. package/dist/internal/nodes/nodesManagement.js +2 -1
  6. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  7. package/dist/internal/photos/albums.d.ts +15 -1
  8. package/dist/internal/photos/albums.js +91 -1
  9. package/dist/internal/photos/albums.js.map +1 -1
  10. package/dist/internal/photos/albums.test.d.ts +1 -0
  11. package/dist/internal/photos/albums.test.js +217 -0
  12. package/dist/internal/photos/albums.test.js.map +1 -0
  13. package/dist/internal/photos/albumsCrypto.d.ts +35 -0
  14. package/dist/internal/photos/albumsCrypto.js +66 -0
  15. package/dist/internal/photos/albumsCrypto.js.map +1 -0
  16. package/dist/internal/photos/albumsCrypto.test.d.ts +1 -0
  17. package/dist/internal/photos/albumsCrypto.test.js +134 -0
  18. package/dist/internal/photos/albumsCrypto.test.js.map +1 -0
  19. package/dist/internal/photos/apiService.d.ts +22 -0
  20. package/dist/internal/photos/apiService.js +91 -0
  21. package/dist/internal/photos/apiService.js.map +1 -1
  22. package/dist/internal/photos/index.d.ts +4 -4
  23. package/dist/internal/photos/index.js +5 -3
  24. package/dist/internal/photos/index.js.map +1 -1
  25. package/dist/internal/photos/interface.d.ts +21 -0
  26. package/dist/internal/photos/interface.js +14 -0
  27. package/dist/internal/photos/interface.js.map +1 -1
  28. package/dist/internal/photos/timeline.d.ts +2 -5
  29. package/dist/internal/photos/timeline.js.map +1 -1
  30. package/dist/internal/photos/upload.js +3 -2
  31. package/dist/internal/photos/upload.js.map +1 -1
  32. package/dist/internal/upload/streamUploader.d.ts +3 -1
  33. package/dist/internal/upload/streamUploader.js +10 -3
  34. package/dist/internal/upload/streamUploader.js.map +1 -1
  35. package/dist/internal/upload/streamUploader.test.js +10 -0
  36. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  37. package/dist/protonDrivePhotosClient.d.ts +64 -6
  38. package/dist/protonDrivePhotosClient.js +75 -1
  39. package/dist/protonDrivePhotosClient.js.map +1 -1
  40. package/dist/protonDrivePublicLinkClient.d.ts +15 -0
  41. package/dist/protonDrivePublicLinkClient.js +20 -0
  42. package/dist/protonDrivePublicLinkClient.js.map +1 -1
  43. package/package.json +1 -1
  44. package/src/interface/upload.ts +10 -0
  45. package/src/internal/nodes/mediaTypes.ts +3 -0
  46. package/src/internal/nodes/nodesManagement.ts +2 -1
  47. package/src/internal/photos/albums.test.ts +268 -0
  48. package/src/internal/photos/albums.ts +136 -0
  49. package/src/internal/photos/albumsCrypto.test.ts +181 -0
  50. package/src/internal/photos/albumsCrypto.ts +100 -0
  51. package/src/internal/photos/apiService.ts +168 -2
  52. package/src/internal/photos/index.ts +7 -5
  53. package/src/internal/photos/interface.ts +24 -0
  54. package/src/internal/photos/timeline.ts +2 -5
  55. package/src/internal/photos/upload.ts +3 -2
  56. package/src/internal/upload/streamUploader.test.ts +38 -0
  57. package/src/internal/upload/streamUploader.ts +10 -3
  58. package/src/protonDrivePhotosClient.ts +104 -9
  59. package/src/protonDrivePublicLinkClient.ts +27 -0
@@ -70,6 +70,12 @@ export class ProtonDrivePublicLinkClient {
70
70
  * This is used by Docs app to encrypt and decrypt document updates.
71
71
  */
72
72
  getDocsKey: (nodeUid: NodeOrUid) => Promise<SessionKey>;
73
+ /**
74
+ * Experimental feature to get the passphrase for a node.
75
+ *
76
+ * This is used by public link page to report abuse.
77
+ */
78
+ getNodePassphrase: (nodeUid: NodeOrUid) => Promise<string>;
73
79
  /**
74
80
  * Experimental feature to check if hashes match the malware database.
75
81
  */
@@ -175,6 +181,14 @@ export class ProtonDrivePublicLinkClient {
175
181
  }
176
182
  return keys.contentKeyPacketSessionKey;
177
183
  },
184
+ getNodePassphrase: async (nodeUid: NodeOrUid) => {
185
+ this.logger.debug(`Getting node passphrase for ${getUid(nodeUid)}`);
186
+ const keys = await this.sharingPublic.nodes.access.getNodeKeys(getUid(nodeUid));
187
+ if (!keys.passphrase) {
188
+ throw new Error('Node does not have a passphrase');
189
+ }
190
+ return keys.passphrase
191
+ },
178
192
  scanHashes: async (hashes: string[]): Promise<NodesSecurityScanResult> => {
179
193
  this.logger.debug(`Scanning ${hashes.length} hashes`);
180
194
  return this.sharingPublic.nodes.security.scanHashes(hashes);
@@ -336,4 +350,17 @@ export class ProtonDrivePublicLinkClient {
336
350
  this.logger.info(`Getting file revision uploader for ${getUid(nodeUid)}`);
337
351
  return this.upload.getFileRevisionUploader(getUid(nodeUid), metadata, signal);
338
352
  }
353
+
354
+ /**
355
+ * Returns the available name for the file in the given parent folder.
356
+ *
357
+ * The function will return a name that includes the original name with the
358
+ * available index. The name is guaranteed to be unique in the parent folder.
359
+ *
360
+ * Example new name: `file (2).txt`.
361
+ */
362
+ async getAvailableName(parentFolderUid: NodeOrUid, name: string): Promise<string> {
363
+ this.logger.info(`Getting available name in folder ${getUid(parentFolderUid)}`);
364
+ return this.sharingPublic.nodes.management.findAvailableName(getUid(parentFolderUid), name);
365
+ }
339
366
  }