@protontech/drive-sdk 0.0.11 → 0.0.13

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 (184) hide show
  1. package/dist/cache/index.d.ts +2 -0
  2. package/dist/cache/index.js +6 -0
  3. package/dist/cache/index.js.map +1 -0
  4. package/dist/cache/interface.d.ts +105 -0
  5. package/dist/cache/interface.js +3 -0
  6. package/dist/cache/interface.js.map +1 -0
  7. package/dist/cache/memoryCache.d.ts +18 -0
  8. package/dist/cache/memoryCache.js +78 -0
  9. package/dist/cache/memoryCache.js.map +1 -0
  10. package/dist/cache/memoryCache.test.d.ts +1 -0
  11. package/dist/cache/memoryCache.test.js +121 -0
  12. package/dist/cache/memoryCache.test.js.map +1 -0
  13. package/dist/crypto/hmac.d.ts +22 -0
  14. package/dist/crypto/hmac.js +44 -0
  15. package/dist/crypto/hmac.js.map +1 -0
  16. package/dist/crypto/utils.d.ts +2 -0
  17. package/dist/crypto/utils.js +35 -0
  18. package/dist/crypto/utils.js.map +1 -0
  19. package/dist/errors.d.ts +142 -0
  20. package/dist/errors.js +168 -0
  21. package/dist/errors.js.map +1 -0
  22. package/dist/interface/account.js +3 -0
  23. package/dist/interface/account.js.map +1 -0
  24. package/dist/interface/author.d.ts +26 -0
  25. package/dist/interface/author.js +3 -0
  26. package/dist/interface/author.js.map +1 -0
  27. package/dist/interface/download.d.ts +29 -0
  28. package/dist/interface/download.js +3 -0
  29. package/dist/interface/download.js.map +1 -0
  30. package/dist/interface/httpClient.d.ts +38 -0
  31. package/dist/interface/httpClient.js +3 -0
  32. package/dist/interface/httpClient.js.map +1 -0
  33. package/dist/interface/index.d.ts +1 -1
  34. package/dist/interface/nodes.d.ts +12 -1
  35. package/dist/interface/nodes.js +11 -0
  36. package/dist/interface/nodes.js.map +1 -1
  37. package/dist/interface/result.d.ts +9 -0
  38. package/dist/interface/result.js +11 -0
  39. package/dist/interface/result.js.map +1 -0
  40. package/dist/interface/thumbnail.d.ts +17 -0
  41. package/dist/interface/thumbnail.js +9 -0
  42. package/dist/interface/thumbnail.js.map +1 -0
  43. package/dist/interface/upload.d.ts +64 -0
  44. package/dist/interface/upload.js +3 -0
  45. package/dist/interface/upload.js.map +1 -0
  46. package/dist/internal/apiService/driveTypes.d.ts +1341 -465
  47. package/dist/internal/apiService/errorCodes.d.ts +30 -0
  48. package/dist/internal/apiService/errorCodes.js +11 -0
  49. package/dist/internal/apiService/errorCodes.js.map +1 -0
  50. package/dist/internal/apiService/errors.js +2 -2
  51. package/dist/internal/apiService/errors.js.map +1 -1
  52. package/dist/internal/apiService/observerStream.d.ts +3 -0
  53. package/dist/internal/apiService/observerStream.js +15 -0
  54. package/dist/internal/apiService/observerStream.js.map +1 -0
  55. package/dist/internal/apiService/transformers.js +2 -0
  56. package/dist/internal/apiService/transformers.js.map +1 -1
  57. package/dist/internal/asyncIteratorMap.d.ts +15 -0
  58. package/dist/internal/asyncIteratorMap.js +59 -0
  59. package/dist/internal/asyncIteratorMap.js.map +1 -0
  60. package/dist/internal/asyncIteratorMap.test.d.ts +1 -0
  61. package/dist/internal/asyncIteratorMap.test.js +120 -0
  62. package/dist/internal/asyncIteratorMap.test.js.map +1 -0
  63. package/dist/internal/batchLoading.d.ts +34 -0
  64. package/dist/internal/batchLoading.js +68 -0
  65. package/dist/internal/batchLoading.js.map +1 -0
  66. package/dist/internal/batchLoading.test.d.ts +1 -0
  67. package/dist/internal/batchLoading.test.js +50 -0
  68. package/dist/internal/batchLoading.test.js.map +1 -0
  69. package/dist/internal/download/controller.d.ts +8 -0
  70. package/dist/internal/download/controller.js +22 -0
  71. package/dist/internal/download/controller.js.map +1 -0
  72. package/dist/internal/download/queue.d.ts +5 -0
  73. package/dist/internal/download/queue.js +31 -0
  74. package/dist/internal/download/queue.js.map +1 -0
  75. package/dist/internal/errors.js +28 -0
  76. package/dist/internal/errors.js.map +1 -0
  77. package/dist/internal/errors.test.js +22 -0
  78. package/dist/internal/errors.test.js.map +1 -0
  79. package/dist/internal/events/interface.d.ts +47 -0
  80. package/dist/internal/events/interface.js +12 -0
  81. package/dist/internal/events/interface.js.map +1 -0
  82. package/dist/internal/nodes/apiService.d.ts +2 -2
  83. package/dist/internal/nodes/apiService.js +16 -6
  84. package/dist/internal/nodes/apiService.js.map +1 -1
  85. package/dist/internal/nodes/apiService.test.js +30 -8
  86. package/dist/internal/nodes/apiService.test.js.map +1 -1
  87. package/dist/internal/nodes/cache.js +1 -0
  88. package/dist/internal/nodes/cache.js.map +1 -1
  89. package/dist/internal/nodes/cache.test.js +1 -0
  90. package/dist/internal/nodes/cache.test.js.map +1 -1
  91. package/dist/internal/nodes/cryptoService.test.js +34 -0
  92. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  93. package/dist/internal/nodes/index.test.js +3 -1
  94. package/dist/internal/nodes/index.test.js.map +1 -1
  95. package/dist/internal/nodes/interface.d.ts +3 -1
  96. package/dist/internal/nodes/mediaTypes.d.ts +2 -0
  97. package/dist/internal/nodes/mediaTypes.js +13 -0
  98. package/dist/internal/nodes/mediaTypes.js.map +1 -0
  99. package/dist/internal/nodes/nodesAccess.js +28 -7
  100. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  101. package/dist/internal/nodes/nodesAccess.test.js +7 -6
  102. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  103. package/dist/internal/nodes/validations.d.ts +4 -0
  104. package/dist/internal/nodes/validations.js +21 -0
  105. package/dist/internal/nodes/validations.js.map +1 -0
  106. package/dist/internal/sharing/apiService.js +19 -2
  107. package/dist/internal/sharing/apiService.js.map +1 -1
  108. package/dist/internal/uids.d.ts +38 -0
  109. package/dist/internal/uids.js +85 -0
  110. package/dist/internal/uids.js.map +1 -0
  111. package/dist/internal/upload/chunkStreamReader.d.ts +13 -0
  112. package/dist/internal/upload/chunkStreamReader.js +46 -0
  113. package/dist/internal/upload/chunkStreamReader.js.map +1 -0
  114. package/dist/internal/upload/chunkStreamReader.test.d.ts +1 -0
  115. package/dist/internal/upload/chunkStreamReader.test.js +75 -0
  116. package/dist/internal/upload/chunkStreamReader.test.js.map +1 -0
  117. package/dist/internal/upload/controller.d.ts +8 -0
  118. package/dist/internal/upload/controller.js +25 -0
  119. package/dist/internal/upload/controller.js.map +1 -0
  120. package/dist/internal/upload/digests.d.ts +8 -0
  121. package/dist/internal/upload/digests.js +22 -0
  122. package/dist/internal/upload/digests.js.map +1 -0
  123. package/dist/internal/upload/fileUploader.d.ts +49 -53
  124. package/dist/internal/upload/fileUploader.js +91 -395
  125. package/dist/internal/upload/fileUploader.js.map +1 -1
  126. package/dist/internal/upload/fileUploader.test.js +38 -292
  127. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  128. package/dist/internal/upload/index.d.ts +3 -3
  129. package/dist/internal/upload/index.js +20 -41
  130. package/dist/internal/upload/index.js.map +1 -1
  131. package/dist/internal/upload/manager.d.ts +1 -1
  132. package/dist/internal/upload/manager.js +16 -19
  133. package/dist/internal/upload/manager.js.map +1 -1
  134. package/dist/internal/upload/manager.test.js +42 -83
  135. package/dist/internal/upload/manager.test.js.map +1 -1
  136. package/dist/internal/upload/queue.d.ts +5 -0
  137. package/dist/internal/upload/queue.js +32 -0
  138. package/dist/internal/upload/queue.js.map +1 -0
  139. package/dist/internal/upload/streamUploader.d.ts +62 -0
  140. package/dist/internal/upload/streamUploader.js +441 -0
  141. package/dist/internal/upload/streamUploader.js.map +1 -0
  142. package/dist/internal/upload/streamUploader.test.d.ts +1 -0
  143. package/dist/internal/upload/streamUploader.test.js +358 -0
  144. package/dist/internal/upload/streamUploader.test.js.map +1 -0
  145. package/dist/internal/utils.d.ts +1 -0
  146. package/dist/internal/utils.js +13 -0
  147. package/dist/internal/utils.js.map +1 -0
  148. package/dist/internal/wait.d.ts +3 -0
  149. package/dist/internal/wait.js +28 -0
  150. package/dist/internal/wait.js.map +1 -0
  151. package/dist/internal/wait.test.d.ts +1 -0
  152. package/dist/internal/wait.test.js +21 -0
  153. package/dist/internal/wait.test.js.map +1 -0
  154. package/dist/protonDriveClient.d.ts +4 -4
  155. package/dist/protonDriveClient.js +1 -1
  156. package/dist/protonDriveClient.js.map +1 -1
  157. package/package.json +2 -2
  158. package/src/errors.ts +10 -4
  159. package/src/interface/index.ts +1 -1
  160. package/src/interface/nodes.ts +11 -0
  161. package/src/interface/upload.ts +53 -3
  162. package/src/internal/apiService/driveTypes.ts +1341 -465
  163. package/src/internal/apiService/errors.ts +3 -2
  164. package/src/internal/apiService/transformers.ts +2 -0
  165. package/src/internal/asyncIteratorMap.test.ts +150 -0
  166. package/src/internal/asyncIteratorMap.ts +64 -0
  167. package/src/internal/nodes/apiService.test.ts +36 -7
  168. package/src/internal/nodes/apiService.ts +19 -7
  169. package/src/internal/nodes/cache.test.ts +1 -0
  170. package/src/internal/nodes/cache.ts +1 -0
  171. package/src/internal/nodes/cryptoService.test.ts +38 -0
  172. package/src/internal/nodes/index.test.ts +3 -1
  173. package/src/internal/nodes/interface.ts +4 -1
  174. package/src/internal/nodes/nodesAccess.test.ts +7 -6
  175. package/src/internal/nodes/nodesAccess.ts +30 -7
  176. package/src/internal/sharing/apiService.ts +24 -2
  177. package/src/internal/upload/fileUploader.test.ts +46 -376
  178. package/src/internal/upload/fileUploader.ts +114 -494
  179. package/src/internal/upload/index.ts +26 -50
  180. package/src/internal/upload/manager.test.ts +45 -92
  181. package/src/internal/upload/manager.ts +30 -32
  182. package/src/internal/upload/streamUploader.test.ts +469 -0
  183. package/src/internal/upload/streamUploader.ts +552 -0
  184. package/src/protonDriveClient.ts +5 -4
@@ -20,7 +20,7 @@ export type { ProtonInvitation, ProtonInvitationWithNode, NonProtonInvitation, M
20
20
  export { NonProtonInvitationState } from './sharing';
21
21
  export type { Telemetry, Logger, MetricAPIRetrySucceededEvent, MetricUploadEvent, MetricsUploadErrorType, MetricDownloadEvent, MetricsDownloadErrorType, MetricDecryptionErrorEvent, MetricsDecryptionErrorField, MetricVerificationErrorEvent, MetricVerificationErrorField, MetricBlockVerificationErrorEvent, MetricVolumeEventsSubscriptionsChangedEvent, MetricEvent } from './telemetry';
22
22
  export { MetricVolumeType } from './telemetry';
23
- export type { Fileuploader, UploadController, UploadMetadata } from './upload';
23
+ export type { FileUploader, FileRevisionUploader, UploadController, UploadMetadata } from './upload';
24
24
  export type { Thumbnail, ThumbnailResult } from './thumbnail';
25
25
  export { ThumbnailType } from './thumbnail';
26
26
 
@@ -135,6 +135,17 @@ export type InvalidNameError = {
135
135
  export enum NodeType {
136
136
  File = "file",
137
137
  Folder = "folder",
138
+ /**
139
+ * Album is a special type available only in Photos section.
140
+ *
141
+ * The SDK does not support any album-specific actions, but it can load
142
+ * the node and do general operations on it, such as sharing. However,
143
+ * you should not rely that anything can work. It is not guaranteed that
144
+ * and in the future specific Photos SDK will support albums.
145
+ *
146
+ * @deprecated This type is not part of the public API.
147
+ */
148
+ Album = "album",
138
149
  }
139
150
 
140
151
  export enum MemberRole {
@@ -2,14 +2,64 @@ import { Thumbnail } from "./thumbnail";
2
2
 
3
3
  export type UploadMetadata = {
4
4
  mediaType: string,
5
+ /**
6
+ * Expected size of the file.
7
+ *
8
+ * The file size is used to verify the integrity of the file during upload.
9
+ * If the expected size does not match the actual size, the upload will
10
+ * fail.
11
+ */
5
12
  expectedSize: number,
13
+ /**
14
+ * Modification time of the file.
15
+ *
16
+ * The modification time will be encrypted and stored with the file.
17
+ */
6
18
  modificationTime?: Date,
19
+ /**
20
+ * Additional metadata to be stored with the file.
21
+ *
22
+ * These metadata must be object that can be serialized to JSON.
23
+ *
24
+ * The metadata will be encrypted and stored with the file.
25
+ */
7
26
  additionalMetadata?: object,
8
27
  };
9
28
 
10
- export interface Fileuploader {
11
- writeStream(stream: ReadableStream, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): UploadController,
12
- writeFile(fileObject: File, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): UploadController,
29
+ export interface FileRevisionUploader {
30
+ /**
31
+ * Uploads a file from a stream.
32
+ *
33
+ * The function will resolve to a controller that can be used to pause,
34
+ * resume and complete the upload.
35
+ *
36
+ * The function will reject if the node with the given name already exists.
37
+ */
38
+ writeStream(stream: ReadableStream, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>,
39
+
40
+ /**
41
+ * Uploads a file from a file object. It is convenient to use this method
42
+ * when the file is already in memory. The file object is used to get the
43
+ * metadata, such as the media type, size or modification time.
44
+ *
45
+ * The function will resolve to a controller that can be used to pause,
46
+ * resume and complete the upload.
47
+ *
48
+ * The function will reject if the node with the given name already exists.
49
+ */
50
+ writeFile(fileObject: File, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>,
51
+ }
52
+
53
+ export interface FileUploader extends FileRevisionUploader {
54
+ /**
55
+ * Returns the available name for the file.
56
+ *
57
+ * The function will return a name that includes the original name with the
58
+ * available index. The name is guaranteed to be unique in the parent folder.
59
+ *
60
+ * Example new name: `file (2).txt`.
61
+ */
62
+ getAvailableName(): Promise<string>,
13
63
  }
14
64
 
15
65
  export interface UploadController {