@protontech/drive-sdk 0.0.12 → 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.
- package/dist/errors.d.ts +7 -3
- package/dist/errors.js +9 -4
- package/dist/errors.js.map +1 -1
- package/dist/interface/index.d.ts +1 -1
- package/dist/interface/nodes.d.ts +12 -1
- package/dist/interface/nodes.js +11 -0
- package/dist/interface/nodes.js.map +1 -1
- package/dist/interface/upload.d.ts +51 -3
- package/dist/internal/apiService/driveTypes.d.ts +1341 -465
- package/dist/internal/apiService/errors.js +2 -2
- package/dist/internal/apiService/errors.js.map +1 -1
- package/dist/internal/apiService/transformers.js +2 -0
- package/dist/internal/apiService/transformers.js.map +1 -1
- package/dist/internal/asyncIteratorMap.d.ts +15 -0
- package/dist/internal/asyncIteratorMap.js +59 -0
- package/dist/internal/asyncIteratorMap.js.map +1 -0
- package/dist/internal/asyncIteratorMap.test.d.ts +1 -0
- package/dist/internal/asyncIteratorMap.test.js +120 -0
- package/dist/internal/asyncIteratorMap.test.js.map +1 -0
- package/dist/internal/nodes/apiService.d.ts +2 -2
- package/dist/internal/nodes/apiService.js +16 -6
- package/dist/internal/nodes/apiService.js.map +1 -1
- package/dist/internal/nodes/apiService.test.js +30 -8
- package/dist/internal/nodes/apiService.test.js.map +1 -1
- package/dist/internal/nodes/cache.js +1 -0
- package/dist/internal/nodes/cache.js.map +1 -1
- package/dist/internal/nodes/cache.test.js +1 -0
- package/dist/internal/nodes/cache.test.js.map +1 -1
- package/dist/internal/nodes/cryptoService.test.js +34 -0
- package/dist/internal/nodes/cryptoService.test.js.map +1 -1
- package/dist/internal/nodes/index.test.js +3 -1
- package/dist/internal/nodes/index.test.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +3 -1
- package/dist/internal/nodes/nodesAccess.js +28 -7
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +7 -6
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/sharing/apiService.js +19 -2
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/upload/fileUploader.d.ts +49 -53
- package/dist/internal/upload/fileUploader.js +91 -395
- package/dist/internal/upload/fileUploader.js.map +1 -1
- package/dist/internal/upload/fileUploader.test.js +38 -292
- package/dist/internal/upload/fileUploader.test.js.map +1 -1
- package/dist/internal/upload/index.d.ts +3 -3
- package/dist/internal/upload/index.js +20 -41
- package/dist/internal/upload/index.js.map +1 -1
- package/dist/internal/upload/manager.d.ts +1 -1
- package/dist/internal/upload/manager.js +16 -19
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/manager.test.js +42 -83
- package/dist/internal/upload/manager.test.js.map +1 -1
- package/dist/internal/upload/streamUploader.d.ts +62 -0
- package/dist/internal/upload/streamUploader.js +441 -0
- package/dist/internal/upload/streamUploader.js.map +1 -0
- package/dist/internal/upload/streamUploader.test.d.ts +1 -0
- package/dist/internal/upload/streamUploader.test.js +358 -0
- package/dist/internal/upload/streamUploader.test.js.map +1 -0
- package/dist/protonDriveClient.d.ts +4 -4
- package/dist/protonDriveClient.js +1 -1
- package/dist/protonDriveClient.js.map +1 -1
- package/package.json +2 -2
- package/src/errors.ts +10 -4
- package/src/interface/index.ts +1 -1
- package/src/interface/nodes.ts +11 -0
- package/src/interface/upload.ts +53 -3
- package/src/internal/apiService/driveTypes.ts +1341 -465
- package/src/internal/apiService/errors.ts +3 -2
- package/src/internal/apiService/transformers.ts +2 -0
- package/src/internal/asyncIteratorMap.test.ts +150 -0
- package/src/internal/asyncIteratorMap.ts +64 -0
- package/src/internal/nodes/apiService.test.ts +36 -7
- package/src/internal/nodes/apiService.ts +19 -7
- package/src/internal/nodes/cache.test.ts +1 -0
- package/src/internal/nodes/cache.ts +1 -0
- package/src/internal/nodes/cryptoService.test.ts +38 -0
- package/src/internal/nodes/index.test.ts +3 -1
- package/src/internal/nodes/interface.ts +4 -1
- package/src/internal/nodes/nodesAccess.test.ts +7 -6
- package/src/internal/nodes/nodesAccess.ts +30 -7
- package/src/internal/sharing/apiService.ts +24 -2
- package/src/internal/upload/fileUploader.test.ts +46 -376
- package/src/internal/upload/fileUploader.ts +114 -494
- package/src/internal/upload/index.ts +26 -50
- package/src/internal/upload/manager.test.ts +45 -92
- package/src/internal/upload/manager.ts +30 -32
- package/src/internal/upload/streamUploader.test.ts +469 -0
- package/src/internal/upload/streamUploader.ts +552 -0
- package/src/protonDriveClient.ts +5 -4
package/dist/errors.d.ts
CHANGED
|
@@ -41,7 +41,11 @@ export declare class ValidationError extends ProtonDriveError {
|
|
|
41
41
|
* Use only for debugging purposes.
|
|
42
42
|
*/
|
|
43
43
|
readonly code?: number;
|
|
44
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Additional details about the error provided by the server.
|
|
46
|
+
*/
|
|
47
|
+
readonly details?: object;
|
|
48
|
+
constructor(message: string, code?: number, details?: object);
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
47
51
|
* Error thrown when the node already exists.
|
|
@@ -53,8 +57,8 @@ export declare class ValidationError extends ProtonDriveError {
|
|
|
53
57
|
*/
|
|
54
58
|
export declare class NodeAlreadyExistsValidationError extends ValidationError {
|
|
55
59
|
name: string;
|
|
56
|
-
readonly
|
|
57
|
-
constructor(message: string, code: number,
|
|
60
|
+
readonly existingNodeUid?: string;
|
|
61
|
+
constructor(message: string, code: number, existingNodeUid?: string);
|
|
58
62
|
}
|
|
59
63
|
/**
|
|
60
64
|
* Error thrown when the API call fails.
|
package/dist/errors.js
CHANGED
|
@@ -49,9 +49,14 @@ class ValidationError extends ProtonDriveError {
|
|
|
49
49
|
* Use only for debugging purposes.
|
|
50
50
|
*/
|
|
51
51
|
code;
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Additional details about the error provided by the server.
|
|
54
|
+
*/
|
|
55
|
+
details;
|
|
56
|
+
constructor(message, code, details) {
|
|
53
57
|
super(message);
|
|
54
58
|
this.code = code;
|
|
59
|
+
this.details = details;
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
exports.ValidationError = ValidationError;
|
|
@@ -65,10 +70,10 @@ exports.ValidationError = ValidationError;
|
|
|
65
70
|
*/
|
|
66
71
|
class NodeAlreadyExistsValidationError extends ValidationError {
|
|
67
72
|
name = 'NodeAlreadyExistsValidationError';
|
|
68
|
-
|
|
69
|
-
constructor(message, code,
|
|
73
|
+
existingNodeUid;
|
|
74
|
+
constructor(message, code, existingNodeUid) {
|
|
70
75
|
super(message, code);
|
|
71
|
-
this.
|
|
76
|
+
this.existingNodeUid = existingNodeUid;
|
|
72
77
|
}
|
|
73
78
|
}
|
|
74
79
|
exports.NodeAlreadyExistsValidationError = NodeAlreadyExistsValidationError;
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAEzB;;;;;;;;;;;GAWG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IACvC,IAAI,GAAG,kBAAkB,CAAC;CAC7B;AAFD,4CAEC;AAED;;;;;GAKG;AACH,MAAa,UAAW,SAAQ,gBAAgB;IAC5C,IAAI,GAAG,YAAY,CAAC;IAEpB,YAAY,OAAgB;QACxB,KAAK,CAAC,OAAO,IAAI,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,mBAAmB,CAAC,CAAC;IACtD,CAAC;CACJ;AAND,gCAMC;AAED;;;;;;;;;GASG;AACH,MAAa,eAAgB,SAAQ,gBAAgB;IACjD,IAAI,GAAG,iBAAiB,CAAC;IAEzB;;;;OAIG;IACa,IAAI,CAAU;IAE9B,YAAY,OAAe,EAAE,IAAa;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,+BAAyB;AAEzB;;;;;;;;;;;GAWG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IACvC,IAAI,GAAG,kBAAkB,CAAC;CAC7B;AAFD,4CAEC;AAED;;;;;GAKG;AACH,MAAa,UAAW,SAAQ,gBAAgB;IAC5C,IAAI,GAAG,YAAY,CAAC;IAEpB,YAAY,OAAgB;QACxB,KAAK,CAAC,OAAO,IAAI,IAAA,QAAC,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA,mBAAmB,CAAC,CAAC;IACtD,CAAC;CACJ;AAND,gCAMC;AAED;;;;;;;;;GASG;AACH,MAAa,eAAgB,SAAQ,gBAAgB;IACjD,IAAI,GAAG,iBAAiB,CAAC;IAEzB;;;;OAIG;IACa,IAAI,CAAU;IAE9B;;OAEG;IACa,OAAO,CAAU;IAEjC,YAAY,OAAe,EAAE,IAAa,EAAE,OAAgB;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AApBD,0CAoBC;AAED;;;;;;;GAOG;AACH,MAAa,gCAAiC,SAAQ,eAAe;IACjE,IAAI,GAAG,kCAAkC,CAAC;IAE1B,eAAe,CAAU;IAEzC,YAAY,OAAe,EAAE,IAAY,EAAE,eAAwB;QAC/D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;CACJ;AATD,4EASC;AAED;;;;;;;;GAQG;AACH,MAAa,WAAY,SAAQ,gBAAgB;IAC7C,IAAI,GAAG,aAAa,CAAC;IAErB;;;;OAIG;IACa,UAAU,CAAU;IACpC;;;;OAIG;IACa,IAAI,CAAU;CACjC;AAfD,kCAeC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAa,gBAAiB,SAAQ,WAAW;IAC7C,IAAI,GAAG,kBAAkB,CAAC;IAE1B,IAAI,GAAG,GAAG,CAAC;CACd;AAJD,4CAIC;AAED;;;;;;;GAOG;AACH,MAAa,eAAgB,SAAQ,gBAAgB;IACjD,IAAI,GAAG,iBAAiB,CAAC;CAC5B;AAFD,0CAEC;AAED;;;;;;;;;GASG;AACH,MAAa,eAAgB,SAAQ,gBAAgB;IACjD,IAAI,GAAG,iBAAiB,CAAC;CAC5B;AAFD,0CAEC;AAED;;;;;;;GAOG;AACH,MAAa,cAAe,SAAQ,gBAAgB;IAChD,IAAI,GAAG,gBAAgB,CAAC;IAER,KAAK,CAAU;IAE/B,YAAY,OAAe,EAAE,KAAc;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AATD,wCASC"}
|
|
@@ -19,7 +19,7 @@ export type { ProtonInvitation, ProtonInvitationWithNode, NonProtonInvitation, M
|
|
|
19
19
|
export { NonProtonInvitationState } from './sharing';
|
|
20
20
|
export type { Telemetry, Logger, MetricAPIRetrySucceededEvent, MetricUploadEvent, MetricsUploadErrorType, MetricDownloadEvent, MetricsDownloadErrorType, MetricDecryptionErrorEvent, MetricsDecryptionErrorField, MetricVerificationErrorEvent, MetricVerificationErrorField, MetricBlockVerificationErrorEvent, MetricVolumeEventsSubscriptionsChangedEvent, MetricEvent } from './telemetry';
|
|
21
21
|
export { MetricVolumeType } from './telemetry';
|
|
22
|
-
export type {
|
|
22
|
+
export type { FileUploader, FileRevisionUploader, UploadController, UploadMetadata } from './upload';
|
|
23
23
|
export type { Thumbnail, ThumbnailResult } from './thumbnail';
|
|
24
24
|
export { ThumbnailType } from './thumbnail';
|
|
25
25
|
export type ProtonDriveTelemetry = Telemetry<MetricEvent>;
|
|
@@ -127,7 +127,18 @@ export type InvalidNameError = {
|
|
|
127
127
|
};
|
|
128
128
|
export declare enum NodeType {
|
|
129
129
|
File = "file",
|
|
130
|
-
Folder = "folder"
|
|
130
|
+
Folder = "folder",
|
|
131
|
+
/**
|
|
132
|
+
* Album is a special type available only in Photos section.
|
|
133
|
+
*
|
|
134
|
+
* The SDK does not support any album-specific actions, but it can load
|
|
135
|
+
* the node and do general operations on it, such as sharing. However,
|
|
136
|
+
* you should not rely that anything can work. It is not guaranteed that
|
|
137
|
+
* and in the future specific Photos SDK will support albums.
|
|
138
|
+
*
|
|
139
|
+
* @deprecated This type is not part of the public API.
|
|
140
|
+
*/
|
|
141
|
+
Album = "album"
|
|
131
142
|
}
|
|
132
143
|
export declare enum MemberRole {
|
|
133
144
|
Viewer = "viewer",
|
package/dist/interface/nodes.js
CHANGED
|
@@ -5,6 +5,17 @@ var NodeType;
|
|
|
5
5
|
(function (NodeType) {
|
|
6
6
|
NodeType["File"] = "file";
|
|
7
7
|
NodeType["Folder"] = "folder";
|
|
8
|
+
/**
|
|
9
|
+
* Album is a special type available only in Photos section.
|
|
10
|
+
*
|
|
11
|
+
* The SDK does not support any album-specific actions, but it can load
|
|
12
|
+
* the node and do general operations on it, such as sharing. However,
|
|
13
|
+
* you should not rely that anything can work. It is not guaranteed that
|
|
14
|
+
* and in the future specific Photos SDK will support albums.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated This type is not part of the public API.
|
|
17
|
+
*/
|
|
18
|
+
NodeType["Album"] = "album";
|
|
8
19
|
})(NodeType || (exports.NodeType = NodeType = {}));
|
|
9
20
|
var MemberRole;
|
|
10
21
|
(function (MemberRole) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/interface/nodes.ts"],"names":[],"mappings":";;;AAsIA,IAAY,
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/interface/nodes.ts"],"names":[],"mappings":";;;AAsIA,IAAY,QAcX;AAdD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB;;;;;;;;;OASG;IACH,2BAAe,CAAA;AACnB,CAAC,EAdW,QAAQ,wBAAR,QAAQ,QAcnB;AAED,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,qCAAuB,CAAA;AAC3B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAsBD,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,0CAAyB,CAAA;AAC7B,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
|
|
@@ -1,13 +1,61 @@
|
|
|
1
1
|
import { Thumbnail } from "./thumbnail";
|
|
2
2
|
export type UploadMetadata = {
|
|
3
3
|
mediaType: string;
|
|
4
|
+
/**
|
|
5
|
+
* Expected size of the file.
|
|
6
|
+
*
|
|
7
|
+
* The file size is used to verify the integrity of the file during upload.
|
|
8
|
+
* If the expected size does not match the actual size, the upload will
|
|
9
|
+
* fail.
|
|
10
|
+
*/
|
|
4
11
|
expectedSize: number;
|
|
12
|
+
/**
|
|
13
|
+
* Modification time of the file.
|
|
14
|
+
*
|
|
15
|
+
* The modification time will be encrypted and stored with the file.
|
|
16
|
+
*/
|
|
5
17
|
modificationTime?: Date;
|
|
18
|
+
/**
|
|
19
|
+
* Additional metadata to be stored with the file.
|
|
20
|
+
*
|
|
21
|
+
* These metadata must be object that can be serialized to JSON.
|
|
22
|
+
*
|
|
23
|
+
* The metadata will be encrypted and stored with the file.
|
|
24
|
+
*/
|
|
6
25
|
additionalMetadata?: object;
|
|
7
26
|
};
|
|
8
|
-
export interface
|
|
9
|
-
|
|
10
|
-
|
|
27
|
+
export interface FileRevisionUploader {
|
|
28
|
+
/**
|
|
29
|
+
* Uploads a file from a stream.
|
|
30
|
+
*
|
|
31
|
+
* The function will resolve to a controller that can be used to pause,
|
|
32
|
+
* resume and complete the upload.
|
|
33
|
+
*
|
|
34
|
+
* The function will reject if the node with the given name already exists.
|
|
35
|
+
*/
|
|
36
|
+
writeStream(stream: ReadableStream, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>;
|
|
37
|
+
/**
|
|
38
|
+
* Uploads a file from a file object. It is convenient to use this method
|
|
39
|
+
* when the file is already in memory. The file object is used to get the
|
|
40
|
+
* metadata, such as the media type, size or modification time.
|
|
41
|
+
*
|
|
42
|
+
* The function will resolve to a controller that can be used to pause,
|
|
43
|
+
* resume and complete the upload.
|
|
44
|
+
*
|
|
45
|
+
* The function will reject if the node with the given name already exists.
|
|
46
|
+
*/
|
|
47
|
+
writeFile(fileObject: File, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>;
|
|
48
|
+
}
|
|
49
|
+
export interface FileUploader extends FileRevisionUploader {
|
|
50
|
+
/**
|
|
51
|
+
* Returns the available name for the file.
|
|
52
|
+
*
|
|
53
|
+
* The function will return a name that includes the original name with the
|
|
54
|
+
* available index. The name is guaranteed to be unique in the parent folder.
|
|
55
|
+
*
|
|
56
|
+
* Example new name: `file (2).txt`.
|
|
57
|
+
*/
|
|
58
|
+
getAvailableName(): Promise<string>;
|
|
11
59
|
}
|
|
12
60
|
export interface UploadController {
|
|
13
61
|
pause(): void;
|