@protontech/drive-sdk 0.0.12 → 0.1.0
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/cache/index.d.ts +1 -0
- package/dist/cache/index.js +3 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/memoryCache.d.ts +1 -1
- package/dist/cache/nullCache.d.ts +14 -0
- package/dist/cache/nullCache.js +37 -0
- package/dist/cache/nullCache.js.map +1 -0
- package/dist/config.d.ts +16 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/crypto/openPGPCrypto.js +2 -0
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/diagnostic/eventsGenerator.d.ts +14 -0
- package/dist/diagnostic/eventsGenerator.js +49 -0
- package/dist/diagnostic/eventsGenerator.js.map +1 -0
- package/dist/diagnostic/httpClient.d.ts +16 -0
- package/dist/diagnostic/httpClient.js +81 -0
- package/dist/diagnostic/httpClient.js.map +1 -0
- package/dist/diagnostic/index.d.ts +10 -0
- package/dist/diagnostic/index.js +35 -0
- package/dist/diagnostic/index.js.map +1 -0
- package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
- package/dist/diagnostic/integrityVerificationStream.js +56 -0
- package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
- package/dist/diagnostic/interface.d.ts +102 -0
- package/dist/diagnostic/interface.js +3 -0
- package/dist/diagnostic/interface.js.map +1 -0
- package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
- package/dist/diagnostic/sdkDiagnostic.js +216 -0
- package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
- package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
- package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
- package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
- package/dist/diagnostic/telemetry.d.ts +25 -0
- package/dist/diagnostic/telemetry.js +70 -0
- package/dist/diagnostic/telemetry.js.map +1 -0
- package/dist/diagnostic/zipGenerators.d.ts +9 -0
- package/dist/diagnostic/zipGenerators.js +64 -0
- package/dist/diagnostic/zipGenerators.js.map +1 -0
- package/dist/diagnostic/zipGenerators.test.js +144 -0
- package/dist/diagnostic/zipGenerators.test.js.map +1 -0
- package/dist/errors.d.ts +8 -3
- package/dist/errors.js +11 -4
- package/dist/errors.js.map +1 -1
- package/dist/interface/config.d.ts +26 -0
- package/dist/interface/config.js +3 -0
- package/dist/interface/config.js.map +1 -0
- package/dist/interface/download.d.ts +2 -2
- package/dist/interface/events.d.ts +60 -20
- package/dist/interface/events.js +11 -1
- package/dist/interface/events.js.map +1 -1
- package/dist/interface/httpClient.d.ts +0 -14
- package/dist/interface/index.d.ts +9 -5
- package/dist/interface/index.js +2 -1
- package/dist/interface/index.js.map +1 -1
- package/dist/interface/nodes.d.ts +21 -1
- package/dist/interface/nodes.js +11 -0
- package/dist/interface/nodes.js.map +1 -1
- package/dist/interface/sharing.d.ts +1 -0
- package/dist/interface/upload.d.ts +57 -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.js +120 -0
- package/dist/internal/asyncIteratorMap.test.js.map +1 -0
- package/dist/internal/download/apiService.js +32 -31
- package/dist/internal/download/apiService.js.map +1 -1
- package/dist/internal/download/fileDownloader.d.ts +2 -2
- package/dist/internal/download/fileDownloader.js.map +1 -1
- package/dist/internal/events/apiService.d.ts +4 -6
- package/dist/internal/events/apiService.js +15 -22
- package/dist/internal/events/apiService.js.map +1 -1
- package/dist/internal/events/coreEventManager.d.ts +7 -10
- package/dist/internal/events/coreEventManager.js +19 -36
- package/dist/internal/events/coreEventManager.js.map +1 -1
- package/dist/internal/events/coreEventManager.test.d.ts +1 -0
- package/dist/internal/events/coreEventManager.test.js +87 -0
- package/dist/internal/events/coreEventManager.test.js.map +1 -0
- package/dist/internal/events/eventManager.d.ts +11 -36
- package/dist/internal/events/eventManager.js +59 -105
- package/dist/internal/events/eventManager.js.map +1 -1
- package/dist/internal/events/eventManager.test.js +167 -82
- package/dist/internal/events/eventManager.test.js.map +1 -1
- package/dist/internal/events/index.d.ts +13 -33
- package/dist/internal/events/index.js +56 -72
- package/dist/internal/events/index.js.map +1 -1
- package/dist/internal/events/interface.d.ts +59 -14
- package/dist/internal/events/interface.js +13 -3
- package/dist/internal/events/interface.js.map +1 -1
- package/dist/internal/events/volumeEventManager.d.ts +7 -17
- package/dist/internal/events/volumeEventManager.js +58 -45
- package/dist/internal/events/volumeEventManager.js.map +1 -1
- package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
- package/dist/internal/events/volumeEventManager.test.js +203 -0
- package/dist/internal/events/volumeEventManager.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.d.ts +10 -1
- package/dist/internal/nodes/cache.js +18 -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.d.ts +1 -1
- package/dist/internal/nodes/cryptoService.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/events.d.ts +7 -83
- package/dist/internal/nodes/events.js +43 -217
- package/dist/internal/nodes/events.js.map +1 -1
- package/dist/internal/nodes/events.test.js +27 -277
- package/dist/internal/nodes/events.test.js.map +1 -1
- package/dist/internal/nodes/index.d.ts +3 -4
- package/dist/internal/nodes/index.js +5 -5
- package/dist/internal/nodes/index.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +3 -1
- package/dist/internal/nodes/nodesAccess.d.ts +15 -0
- package/dist/internal/nodes/nodesAccess.js +65 -7
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +132 -93
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.d.ts +1 -3
- package/dist/internal/nodes/nodesManagement.js +12 -26
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.test.js +35 -14
- package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
- package/dist/internal/shares/cache.d.ts +2 -0
- package/dist/internal/shares/cache.js +2 -0
- package/dist/internal/shares/cache.js.map +1 -1
- package/dist/internal/shares/manager.d.ts +1 -0
- package/dist/internal/shares/manager.js +3 -0
- package/dist/internal/shares/manager.js.map +1 -1
- package/dist/internal/sharing/apiService.js +20 -2
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/sharing/cryptoService.js +1 -0
- package/dist/internal/sharing/cryptoService.js.map +1 -1
- package/dist/internal/sharing/events.d.ts +23 -55
- package/dist/internal/sharing/events.js +46 -138
- package/dist/internal/sharing/events.js.map +1 -1
- package/dist/internal/sharing/events.test.js +77 -180
- package/dist/internal/sharing/events.test.js.map +1 -1
- package/dist/internal/sharing/index.d.ts +4 -5
- package/dist/internal/sharing/index.js +5 -5
- package/dist/internal/sharing/index.js.map +1 -1
- package/dist/internal/sharing/interface.d.ts +3 -0
- package/dist/internal/sharing/sharingManagement.d.ts +2 -3
- package/dist/internal/sharing/sharingManagement.js +7 -9
- package/dist/internal/sharing/sharingManagement.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.test.js +9 -39
- package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
- package/dist/internal/upload/apiService.d.ts +2 -3
- package/dist/internal/upload/apiService.js +7 -4
- package/dist/internal/upload/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 +5 -5
- package/dist/internal/upload/index.js +23 -44
- package/dist/internal/upload/index.js.map +1 -1
- package/dist/internal/upload/interface.d.ts +2 -0
- package/dist/internal/upload/manager.d.ts +6 -6
- package/dist/internal/upload/manager.js +32 -66
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/manager.test.js +100 -117
- 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 +440 -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 +22 -165
- package/dist/protonDriveClient.js +27 -191
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.js +3 -2
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/package.json +4 -4
- package/src/cache/index.ts +1 -0
- package/src/cache/memoryCache.ts +1 -1
- package/src/cache/nullCache.ts +38 -0
- package/src/config.ts +17 -2
- package/src/crypto/openPGPCrypto.ts +2 -0
- package/src/diagnostic/eventsGenerator.ts +48 -0
- package/src/diagnostic/httpClient.ts +80 -0
- package/src/diagnostic/index.ts +38 -0
- package/src/diagnostic/integrityVerificationStream.ts +56 -0
- package/src/diagnostic/interface.ts +158 -0
- package/src/diagnostic/sdkDiagnostic.ts +238 -0
- package/src/diagnostic/sdkDiagnosticFull.ts +40 -0
- package/src/diagnostic/telemetry.ts +71 -0
- package/src/diagnostic/zipGenerators.test.ts +177 -0
- package/src/diagnostic/zipGenerators.ts +70 -0
- package/src/errors.ts +13 -4
- package/src/interface/config.ts +28 -0
- package/src/interface/download.ts +2 -2
- package/src/interface/events.ts +66 -21
- package/src/interface/httpClient.ts +0 -16
- package/src/interface/index.ts +9 -5
- package/src/interface/nodes.ts +32 -12
- package/src/interface/sharing.ts +1 -0
- package/src/interface/upload.ts +59 -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/download/apiService.ts +11 -8
- package/src/internal/download/fileDownloader.ts +2 -2
- package/src/internal/events/apiService.ts +25 -28
- package/src/internal/events/coreEventManager.test.ts +101 -0
- package/src/internal/events/coreEventManager.ts +20 -45
- package/src/internal/events/eventManager.test.ts +201 -88
- package/src/internal/events/eventManager.ts +69 -115
- package/src/internal/events/index.ts +54 -84
- package/src/internal/events/interface.ts +70 -15
- package/src/internal/events/volumeEventManager.test.ts +243 -0
- package/src/internal/events/volumeEventManager.ts +55 -53
- 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 +21 -2
- package/src/internal/nodes/cryptoService.test.ts +38 -0
- package/src/internal/nodes/cryptoService.ts +1 -1
- package/src/internal/nodes/events.test.ts +29 -335
- package/src/internal/nodes/events.ts +45 -253
- package/src/internal/nodes/index.ts +6 -8
- package/src/internal/nodes/interface.ts +6 -3
- package/src/internal/nodes/nodesAccess.test.ts +133 -91
- package/src/internal/nodes/nodesAccess.ts +70 -8
- package/src/internal/nodes/nodesManagement.test.ts +39 -15
- package/src/internal/nodes/nodesManagement.ts +12 -30
- package/src/internal/shares/cache.ts +4 -2
- package/src/internal/shares/manager.ts +9 -5
- package/src/internal/sharing/apiService.ts +25 -2
- package/src/internal/sharing/cache.ts +1 -1
- package/src/internal/sharing/cryptoService.ts +1 -0
- package/src/internal/sharing/events.test.ts +89 -195
- package/src/internal/sharing/events.ts +42 -156
- package/src/internal/sharing/index.ts +6 -9
- package/src/internal/sharing/interface.ts +6 -2
- package/src/internal/sharing/sharingManagement.test.ts +10 -40
- package/src/internal/sharing/sharingManagement.ts +7 -11
- package/src/internal/upload/apiService.ts +5 -6
- package/src/internal/upload/fileUploader.test.ts +46 -376
- package/src/internal/upload/fileUploader.ts +114 -494
- package/src/internal/upload/index.ts +30 -54
- package/src/internal/upload/interface.ts +2 -0
- package/src/internal/upload/manager.test.ts +107 -124
- package/src/internal/upload/manager.ts +48 -80
- package/src/internal/upload/streamUploader.test.ts +468 -0
- package/src/internal/upload/streamUploader.ts +550 -0
- package/src/protonDriveClient.ts +80 -248
- package/src/protonDrivePhotosClient.ts +4 -3
- package/dist/internal/events/cache.d.ts +0 -28
- package/dist/internal/events/cache.js +0 -67
- package/dist/internal/events/cache.js.map +0 -1
- package/dist/internal/events/cache.test.js +0 -43
- package/dist/internal/events/cache.test.js.map +0 -1
- package/dist/internal/nodes/index.test.js +0 -112
- package/dist/internal/nodes/index.test.js.map +0 -1
- package/src/internal/events/cache.test.ts +0 -47
- package/src/internal/events/cache.ts +0 -80
- package/src/internal/nodes/index.test.ts +0 -135
- /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
- /package/dist/internal/{nodes/index.test.d.ts → asyncIteratorMap.test.d.ts} +0 -0
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,12 @@ exports.ValidationError = ValidationError;
|
|
|
65
70
|
*/
|
|
66
71
|
class NodeAlreadyExistsValidationError extends ValidationError {
|
|
67
72
|
name = 'NodeAlreadyExistsValidationError';
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
existingNodeUid;
|
|
74
|
+
ongoingUploadByOtherClient;
|
|
75
|
+
constructor(message, code, existingNodeUid, ongoingUploadByOtherClient = false) {
|
|
70
76
|
super(message, code);
|
|
71
|
-
this.
|
|
77
|
+
this.existingNodeUid = existingNodeUid;
|
|
78
|
+
this.ongoingUploadByOtherClient = ongoingUploadByOtherClient;
|
|
72
79
|
}
|
|
73
80
|
}
|
|
74
81
|
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;IAEzB,0BAA0B,CAAU;IAEpD,YAAY,OAAe,EAAE,IAAY,EAAE,eAAwB,EAAE,0BAA0B,GAAG,KAAK;QACnG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;IACjE,CAAC;CACJ;AAZD,4EAYC;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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type ProtonDriveConfig = {
|
|
2
|
+
/**
|
|
3
|
+
* The base URL for the Proton Drive (without schema).
|
|
4
|
+
*
|
|
5
|
+
* If not provided, defaults to 'drive-api.proton.me'.
|
|
6
|
+
*/
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The language to use for error messages.
|
|
10
|
+
*
|
|
11
|
+
* If not provided, defaults to 'en'.
|
|
12
|
+
*/
|
|
13
|
+
language?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Client UID is used to identify the client for the upload.
|
|
16
|
+
*
|
|
17
|
+
* If the upload failed because of the existing draft, the SDK will
|
|
18
|
+
* automatically clean up the existing draft and start a new upload.
|
|
19
|
+
* If the client UID doesn't match, the SDK throws and then you need
|
|
20
|
+
* to explicitely ask the user to override the existing draft.
|
|
21
|
+
*
|
|
22
|
+
* You can force the upload by setting up
|
|
23
|
+
* `overrideExistingDraftByOtherClient` to true.
|
|
24
|
+
*/
|
|
25
|
+
clientUid?: string;
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/interface/config.ts"],"names":[],"mappings":""}
|
|
@@ -14,13 +14,13 @@ export interface FileDownloader {
|
|
|
14
14
|
*
|
|
15
15
|
* @param onProgress - Callback that is called with the number of downloaded bytes
|
|
16
16
|
*/
|
|
17
|
-
writeToStream(streamFactory: WritableStream, onProgress
|
|
17
|
+
writeToStream(streamFactory: WritableStream, onProgress?: (downloadedBytes: number) => void): DownloadController;
|
|
18
18
|
/**
|
|
19
19
|
* Same as `writeToStream` but without verification checks.
|
|
20
20
|
*
|
|
21
21
|
* Use this only for debugging purposes.
|
|
22
22
|
*/
|
|
23
|
-
unsafeWriteToStream(streamFactory: WritableStream, onProgress
|
|
23
|
+
unsafeWriteToStream(streamFactory: WritableStream, onProgress?: (downloadedBytes: number) => void): DownloadController;
|
|
24
24
|
}
|
|
25
25
|
export interface DownloadController {
|
|
26
26
|
pause(): void;
|
|
@@ -1,26 +1,66 @@
|
|
|
1
|
-
import { Device } from './devices';
|
|
2
|
-
import { MaybeNode } from './nodes';
|
|
3
|
-
export type DeviceEventCallback = (deviceEvent: DeviceEvent) => void;
|
|
4
|
-
export type NodeEventCallback = (nodeEvent: NodeEvent) => void;
|
|
5
|
-
export type NodeEvent = {
|
|
6
|
-
type: 'update';
|
|
7
|
-
uid: string;
|
|
8
|
-
node: MaybeNode;
|
|
9
|
-
} | {
|
|
10
|
-
type: 'remove';
|
|
11
|
-
uid: string;
|
|
12
|
-
};
|
|
13
|
-
export type DeviceEvent = {
|
|
14
|
-
type: 'update';
|
|
15
|
-
uid: string;
|
|
16
|
-
device: Device;
|
|
17
|
-
} | {
|
|
18
|
-
type: 'remove';
|
|
19
|
-
uid: string;
|
|
20
|
-
};
|
|
21
1
|
export declare enum SDKEvent {
|
|
22
2
|
TransfersPaused = "transfersPaused",
|
|
23
3
|
TransfersResumed = "transfersResumed",
|
|
24
4
|
RequestsThrottled = "requestsThrottled",
|
|
25
5
|
RequestsUnthrottled = "requestsUnthrottled"
|
|
26
6
|
}
|
|
7
|
+
export interface LatestEventIdProvider {
|
|
8
|
+
getLatestEventId(treeEventScopeId: string): string | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Callback that accepts list of Drive events and flag whether no
|
|
12
|
+
* event should be processed, but rather full cache refresh should be
|
|
13
|
+
* performed.
|
|
14
|
+
*
|
|
15
|
+
* Drive listeners should never throw and be wrapped in a try-catch loop.
|
|
16
|
+
*
|
|
17
|
+
* @param fullRefreshVolumeId - ID of the volume that should be fully refreshed.
|
|
18
|
+
*/
|
|
19
|
+
export type DriveListener = (event: DriveEvent) => Promise<void>;
|
|
20
|
+
type NodeCruEventType = DriveEventType.NodeCreated | DriveEventType.NodeUpdated;
|
|
21
|
+
export type NodeEvent = {
|
|
22
|
+
type: NodeCruEventType;
|
|
23
|
+
nodeUid: string;
|
|
24
|
+
parentNodeUid?: string;
|
|
25
|
+
isTrashed: boolean;
|
|
26
|
+
isShared: boolean;
|
|
27
|
+
treeEventScopeId: string;
|
|
28
|
+
eventId: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: DriveEventType.NodeDeleted;
|
|
31
|
+
nodeUid: string;
|
|
32
|
+
parentNodeUid?: string;
|
|
33
|
+
treeEventScopeId: string;
|
|
34
|
+
eventId: string;
|
|
35
|
+
};
|
|
36
|
+
export type FastForwardEvent = {
|
|
37
|
+
type: DriveEventType.FastForward;
|
|
38
|
+
treeEventScopeId: string;
|
|
39
|
+
eventId: string;
|
|
40
|
+
};
|
|
41
|
+
export type TreeRefreshEvent = {
|
|
42
|
+
type: DriveEventType.TreeRefresh;
|
|
43
|
+
treeEventScopeId: string;
|
|
44
|
+
eventId: string;
|
|
45
|
+
};
|
|
46
|
+
export type TreeRemovalEvent = {
|
|
47
|
+
type: DriveEventType.TreeRemove;
|
|
48
|
+
treeEventScopeId: string;
|
|
49
|
+
eventId: 'none';
|
|
50
|
+
};
|
|
51
|
+
export type SharedWithMeUpdated = {
|
|
52
|
+
type: DriveEventType.SharedWithMeUpdated;
|
|
53
|
+
eventId: string;
|
|
54
|
+
treeEventScopeId: 'core';
|
|
55
|
+
};
|
|
56
|
+
export type DriveEvent = NodeEvent | FastForwardEvent | TreeRefreshEvent | TreeRemovalEvent | FastForwardEvent | SharedWithMeUpdated;
|
|
57
|
+
export declare enum DriveEventType {
|
|
58
|
+
NodeCreated = "node_created",
|
|
59
|
+
NodeUpdated = "node_updated",
|
|
60
|
+
NodeDeleted = "node_deleted",
|
|
61
|
+
SharedWithMeUpdated = "shared_with_me_updated",
|
|
62
|
+
TreeRefresh = "tree_refresh",
|
|
63
|
+
TreeRemove = "tree_remove",
|
|
64
|
+
FastForward = "fast_forward"
|
|
65
|
+
}
|
|
66
|
+
export {};
|
package/dist/interface/events.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SDKEvent = void 0;
|
|
3
|
+
exports.DriveEventType = exports.SDKEvent = void 0;
|
|
4
4
|
var SDKEvent;
|
|
5
5
|
(function (SDKEvent) {
|
|
6
6
|
SDKEvent["TransfersPaused"] = "transfersPaused";
|
|
@@ -8,4 +8,14 @@ var SDKEvent;
|
|
|
8
8
|
SDKEvent["RequestsThrottled"] = "requestsThrottled";
|
|
9
9
|
SDKEvent["RequestsUnthrottled"] = "requestsUnthrottled";
|
|
10
10
|
})(SDKEvent || (exports.SDKEvent = SDKEvent = {}));
|
|
11
|
+
var DriveEventType;
|
|
12
|
+
(function (DriveEventType) {
|
|
13
|
+
DriveEventType["NodeCreated"] = "node_created";
|
|
14
|
+
DriveEventType["NodeUpdated"] = "node_updated";
|
|
15
|
+
DriveEventType["NodeDeleted"] = "node_deleted";
|
|
16
|
+
DriveEventType["SharedWithMeUpdated"] = "shared_with_me_updated";
|
|
17
|
+
DriveEventType["TreeRefresh"] = "tree_refresh";
|
|
18
|
+
DriveEventType["TreeRemove"] = "tree_remove";
|
|
19
|
+
DriveEventType["FastForward"] = "fast_forward";
|
|
20
|
+
})(DriveEventType || (exports.DriveEventType = DriveEventType = {}));
|
|
11
21
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/interface/events.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/interface/events.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAKX;AALD,WAAY,QAAQ;IAChB,+CAAmC,CAAA;IACnC,iDAAqC,CAAA;IACrC,mDAAuC,CAAA;IACvC,uDAA2C,CAAA;AAC/C,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AA6DD,IAAY,cAQX;AARD,WAAY,cAAc;IACtB,8CAA4B,CAAA;IAC5B,8CAA4B,CAAA;IAC5B,8CAA4B,CAAA;IAC5B,gEAA8C,CAAA;IAC9C,8CAA4B,CAAA;IAC5B,4CAA0B,CAAA;IAC1B,8CAA4B,CAAA;AAChC,CAAC,EARW,cAAc,8BAAd,cAAc,QAQzB"}
|
|
@@ -21,18 +21,4 @@ type ProtonDriveHTTPClientBaseOptions = {
|
|
|
21
21
|
timeoutMs: number;
|
|
22
22
|
signal?: AbortSignal;
|
|
23
23
|
};
|
|
24
|
-
export type ProtonDriveConfig = {
|
|
25
|
-
/**
|
|
26
|
-
* The base URL for the Proton Drive (without schema).
|
|
27
|
-
*
|
|
28
|
-
* If not provided, defaults to 'drive-api.proton.me'.
|
|
29
|
-
*/
|
|
30
|
-
baseUrl?: string;
|
|
31
|
-
/**
|
|
32
|
-
* The language to use for error messages.
|
|
33
|
-
*
|
|
34
|
-
* If not provided, defaults to 'en'.
|
|
35
|
-
*/
|
|
36
|
-
language?: string;
|
|
37
|
-
};
|
|
38
24
|
export {};
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { ProtonDriveCache } from '../cache';
|
|
2
2
|
import { OpenPGPCrypto, PrivateKey, SessionKey, SRPModule } from '../crypto';
|
|
3
|
+
import { LatestEventIdProvider } from '../internal/events/interface';
|
|
3
4
|
import { ProtonDriveAccount } from './account';
|
|
4
|
-
import {
|
|
5
|
+
import { ProtonDriveConfig } from './config';
|
|
6
|
+
import { ProtonDriveHTTPClient } from './httpClient';
|
|
5
7
|
import { Telemetry, MetricEvent } from './telemetry';
|
|
6
8
|
export type { Result } from './result';
|
|
7
9
|
export { resultOk, resultError } from './result';
|
|
8
10
|
export type { ProtonDriveAccount, ProtonDriveAccountAddress } from './account';
|
|
9
11
|
export type { Author, UnverifiedAuthorError, AnonymousUser } from './author';
|
|
12
|
+
export type { ProtonDriveConfig } from './config';
|
|
10
13
|
export type { Device, DeviceOrUid } from './devices';
|
|
11
14
|
export { DeviceType } from './devices';
|
|
12
15
|
export type { FileDownloader, DownloadController } from './download';
|
|
13
|
-
export type {
|
|
14
|
-
export { SDKEvent } from './events';
|
|
15
|
-
export type { ProtonDriveHTTPClient, ProtonDriveHTTPClientJsonOptions, ProtonDriveHTTPClientBlobOptions
|
|
16
|
+
export type { DriveListener, LatestEventIdProvider, DriveEvent } from './events';
|
|
17
|
+
export { DriveEventType, SDKEvent } from './events';
|
|
18
|
+
export type { ProtonDriveHTTPClient, ProtonDriveHTTPClientJsonOptions, ProtonDriveHTTPClientBlobOptions } from './httpClient';
|
|
16
19
|
export type { MaybeNode, NodeEntity, DegradedNode, MaybeMissingNode, MissingNode, InvalidNameError, Revision, NodeOrUid, RevisionOrUid, NodeResult } from './nodes';
|
|
17
20
|
export { NodeType, MemberRole, RevisionState } from './nodes';
|
|
18
21
|
export type { ProtonInvitation, ProtonInvitationWithNode, NonProtonInvitation, Member, PublicLink, MaybeBookmark, Bookmark, DegradedBookmark, ProtonInvitationOrUid, NonProtonInvitationOrUid, BookmarkOrUid, ShareNodeSettings, UnshareNodeSettings, ShareMembersSettings, SharePublicLinkSettings, SharePublicLinkSettingsObject, ShareResult } from './sharing';
|
|
19
22
|
export { NonProtonInvitationState } from './sharing';
|
|
20
23
|
export type { Telemetry, Logger, MetricAPIRetrySucceededEvent, MetricUploadEvent, MetricsUploadErrorType, MetricDownloadEvent, MetricsDownloadErrorType, MetricDecryptionErrorEvent, MetricsDecryptionErrorField, MetricVerificationErrorEvent, MetricVerificationErrorField, MetricBlockVerificationErrorEvent, MetricVolumeEventsSubscriptionsChangedEvent, MetricEvent } from './telemetry';
|
|
21
24
|
export { MetricVolumeType } from './telemetry';
|
|
22
|
-
export type {
|
|
25
|
+
export type { FileUploader, FileRevisionUploader, UploadController, UploadMetadata } from './upload';
|
|
23
26
|
export type { Thumbnail, ThumbnailResult } from './thumbnail';
|
|
24
27
|
export { ThumbnailType } from './thumbnail';
|
|
25
28
|
export type ProtonDriveTelemetry = Telemetry<MetricEvent>;
|
|
@@ -40,4 +43,5 @@ export interface ProtonDriveClientContructorParameters {
|
|
|
40
43
|
srpModule: SRPModule;
|
|
41
44
|
config?: ProtonDriveConfig;
|
|
42
45
|
telemetry?: ProtonDriveTelemetry;
|
|
46
|
+
latestEventIdProvider?: LatestEventIdProvider;
|
|
43
47
|
}
|
package/dist/interface/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ThumbnailType = exports.MetricVolumeType = exports.NonProtonInvitationState = exports.RevisionState = exports.MemberRole = exports.NodeType = exports.SDKEvent = exports.DeviceType = exports.resultError = exports.resultOk = void 0;
|
|
3
|
+
exports.ThumbnailType = exports.MetricVolumeType = exports.NonProtonInvitationState = exports.RevisionState = exports.MemberRole = exports.NodeType = exports.SDKEvent = exports.DriveEventType = exports.DeviceType = exports.resultError = exports.resultOk = void 0;
|
|
4
4
|
var result_1 = require("./result");
|
|
5
5
|
Object.defineProperty(exports, "resultOk", { enumerable: true, get: function () { return result_1.resultOk; } });
|
|
6
6
|
Object.defineProperty(exports, "resultError", { enumerable: true, get: function () { return result_1.resultError; } });
|
|
7
7
|
var devices_1 = require("./devices");
|
|
8
8
|
Object.defineProperty(exports, "DeviceType", { enumerable: true, get: function () { return devices_1.DeviceType; } });
|
|
9
9
|
var events_1 = require("./events");
|
|
10
|
+
Object.defineProperty(exports, "DriveEventType", { enumerable: true, get: function () { return events_1.DriveEventType; } });
|
|
10
11
|
Object.defineProperty(exports, "SDKEvent", { enumerable: true, get: function () { return events_1.SDKEvent; } });
|
|
11
12
|
var nodes_1 = require("./nodes");
|
|
12
13
|
Object.defineProperty(exports, "NodeType", { enumerable: true, get: function () { return nodes_1.NodeType; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interface/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interface/index.ts"],"names":[],"mappings":";;;AASA,mCAAiD;AAAxC,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAK9B,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAGnB,mCAAoD;AAA3C,wGAAA,cAAc,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAGjC,iCAA8D;AAArD,iGAAA,QAAQ,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAE5C,qCAAqD;AAA5C,mHAAA,wBAAwB,OAAA;AAEjC,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AAGzB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAsBrB,CAAC"}
|
|
@@ -83,6 +83,15 @@ export type NodeEntity = {
|
|
|
83
83
|
folder?: {
|
|
84
84
|
claimedModificationTime?: Date;
|
|
85
85
|
};
|
|
86
|
+
/**
|
|
87
|
+
* Provides an ID for the event scope.
|
|
88
|
+
*
|
|
89
|
+
* By subscribing to events in a scope, all updates to nodes
|
|
90
|
+
* withing that scope will be passed to the client. The scope can
|
|
91
|
+
* comprise one or more folder trees and will be shared by all
|
|
92
|
+
* nodes in the tree. Nodes cannot change scopes.
|
|
93
|
+
*/
|
|
94
|
+
treeEventScopeId: string;
|
|
86
95
|
};
|
|
87
96
|
/**
|
|
88
97
|
* Degraded node representing a file or folder in the system.
|
|
@@ -127,7 +136,18 @@ export type InvalidNameError = {
|
|
|
127
136
|
};
|
|
128
137
|
export declare enum NodeType {
|
|
129
138
|
File = "file",
|
|
130
|
-
Folder = "folder"
|
|
139
|
+
Folder = "folder",
|
|
140
|
+
/**
|
|
141
|
+
* Album is a special type available only in Photos section.
|
|
142
|
+
*
|
|
143
|
+
* The SDK does not support any album-specific actions, but it can load
|
|
144
|
+
* the node and do general operations on it, such as sharing. However,
|
|
145
|
+
* you should not rely that anything can work. It is not guaranteed that
|
|
146
|
+
* and in the future specific Photos SDK will support albums.
|
|
147
|
+
*
|
|
148
|
+
* @deprecated This type is not part of the public API.
|
|
149
|
+
*/
|
|
150
|
+
Album = "album"
|
|
131
151
|
}
|
|
132
152
|
export declare enum MemberRole {
|
|
133
153
|
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":";;;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/interface/nodes.ts"],"names":[],"mappings":";;;AA+IA,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,67 @@
|
|
|
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;
|
|
26
|
+
/**
|
|
27
|
+
* If there is an existing draft by another client, the upload will be
|
|
28
|
+
* rejected. If user decides to override the existing draft and continue
|
|
29
|
+
* with the upload, set this to true.
|
|
30
|
+
*/
|
|
31
|
+
overrideExistingDraftByOtherClient?: boolean;
|
|
7
32
|
};
|
|
8
|
-
export interface
|
|
9
|
-
|
|
10
|
-
|
|
33
|
+
export interface FileRevisionUploader {
|
|
34
|
+
/**
|
|
35
|
+
* Uploads a file from a stream.
|
|
36
|
+
*
|
|
37
|
+
* The function will resolve to a controller that can be used to pause,
|
|
38
|
+
* resume and complete the upload.
|
|
39
|
+
*
|
|
40
|
+
* The function will reject if the node with the given name already exists.
|
|
41
|
+
*/
|
|
42
|
+
writeStream(stream: ReadableStream, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>;
|
|
43
|
+
/**
|
|
44
|
+
* Uploads a file from a file object. It is convenient to use this method
|
|
45
|
+
* when the file is already in memory. The file object is used to get the
|
|
46
|
+
* metadata, such as the media type, size or modification time.
|
|
47
|
+
*
|
|
48
|
+
* The function will resolve to a controller that can be used to pause,
|
|
49
|
+
* resume and complete the upload.
|
|
50
|
+
*
|
|
51
|
+
* The function will reject if the node with the given name already exists.
|
|
52
|
+
*/
|
|
53
|
+
writeFile(fileObject: File, thumnbails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>;
|
|
54
|
+
}
|
|
55
|
+
export interface FileUploader extends FileRevisionUploader {
|
|
56
|
+
/**
|
|
57
|
+
* Returns the available name for the file.
|
|
58
|
+
*
|
|
59
|
+
* The function will return a name that includes the original name with the
|
|
60
|
+
* available index. The name is guaranteed to be unique in the parent folder.
|
|
61
|
+
*
|
|
62
|
+
* Example new name: `file (2).txt`.
|
|
63
|
+
*/
|
|
64
|
+
getAvailableName(): Promise<string>;
|
|
11
65
|
}
|
|
12
66
|
export interface UploadController {
|
|
13
67
|
pause(): void;
|