@protontech/drive-sdk 0.6.0 → 0.6.2
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/diagnostic/diagnostic.d.ts +7 -4
- package/dist/diagnostic/diagnostic.js +16 -8
- package/dist/diagnostic/diagnostic.js.map +1 -1
- package/dist/diagnostic/index.d.ts +1 -1
- package/dist/diagnostic/index.js +9 -1
- package/dist/diagnostic/index.js.map +1 -1
- package/dist/diagnostic/interface.d.ts +24 -9
- package/dist/diagnostic/nodeUtils.d.ts +13 -0
- package/dist/diagnostic/nodeUtils.js +90 -0
- package/dist/diagnostic/nodeUtils.js.map +1 -0
- package/dist/diagnostic/sdkDiagnosticBase.d.ts +36 -0
- package/dist/diagnostic/sdkDiagnosticBase.js +305 -0
- package/dist/diagnostic/sdkDiagnosticBase.js.map +1 -0
- package/dist/diagnostic/sdkDiagnosticMain.d.ts +16 -0
- package/dist/diagnostic/sdkDiagnosticMain.js +79 -0
- package/dist/diagnostic/sdkDiagnosticMain.js.map +1 -0
- package/dist/diagnostic/sdkDiagnosticPhotos.d.ts +13 -0
- package/dist/diagnostic/sdkDiagnosticPhotos.js +65 -0
- package/dist/diagnostic/sdkDiagnosticPhotos.js.map +1 -0
- package/dist/featureFlags.d.ts +7 -0
- package/dist/featureFlags.js +14 -0
- package/dist/featureFlags.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interface/featureFlags.d.ts +7 -0
- package/dist/interface/featureFlags.js +3 -0
- package/dist/interface/featureFlags.js.map +1 -0
- package/dist/interface/index.d.ts +3 -0
- package/dist/interface/index.js.map +1 -1
- package/dist/internal/devices/interface.d.ts +1 -1
- package/dist/internal/devices/manager.js +1 -1
- package/dist/internal/devices/manager.js.map +1 -1
- package/dist/internal/devices/manager.test.js +3 -3
- package/dist/internal/devices/manager.test.js.map +1 -1
- package/dist/internal/errors.d.ts +5 -0
- package/dist/internal/errors.js +23 -0
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/errors.test.js +53 -2
- package/dist/internal/errors.test.js.map +1 -1
- package/dist/internal/nodes/cryptoReporter.js +3 -0
- package/dist/internal/nodes/cryptoReporter.js.map +1 -1
- package/dist/internal/nodes/index.test.js +1 -1
- package/dist/internal/nodes/index.test.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +1 -1
- package/dist/internal/nodes/nodesAccess.d.ts +1 -1
- package/dist/internal/nodes/nodesAccess.js +4 -4
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +2 -2
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/photos/albums.js +1 -1
- package/dist/internal/photos/albums.js.map +1 -1
- package/dist/internal/photos/apiService.d.ts +6 -0
- package/dist/internal/photos/apiService.js +16 -0
- package/dist/internal/photos/apiService.js.map +1 -1
- package/dist/internal/photos/index.d.ts +1 -1
- package/dist/internal/photos/index.js +2 -2
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/interface.d.ts +4 -1
- package/dist/internal/photos/shares.d.ts +1 -1
- package/dist/internal/photos/shares.js +3 -3
- package/dist/internal/photos/shares.js.map +1 -1
- package/dist/internal/photos/timeline.d.ts +8 -1
- package/dist/internal/photos/timeline.js +36 -2
- package/dist/internal/photos/timeline.js.map +1 -1
- package/dist/internal/photos/timeline.test.d.ts +1 -0
- package/dist/internal/photos/timeline.test.js +99 -0
- package/dist/internal/photos/timeline.test.js.map +1 -0
- package/dist/internal/photos/upload.js +1 -1
- package/dist/internal/photos/upload.js.map +1 -1
- package/dist/internal/shares/cryptoService.js +3 -0
- package/dist/internal/shares/cryptoService.js.map +1 -1
- package/dist/internal/shares/manager.d.ts +1 -1
- package/dist/internal/shares/manager.js +4 -4
- package/dist/internal/shares/manager.js.map +1 -1
- package/dist/internal/shares/manager.test.js +7 -7
- package/dist/internal/shares/manager.test.js.map +1 -1
- package/dist/internal/sharing/interface.d.ts +1 -1
- package/dist/internal/sharing/sharingAccess.js +1 -1
- package/dist/internal/sharing/sharingAccess.js.map +1 -1
- package/dist/internal/sharing/sharingAccess.test.js +1 -1
- package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.js +32 -14
- package/dist/internal/sharing/sharingManagement.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.test.js +46 -1
- package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
- package/dist/internal/sharingPublic/cryptoReporter.js +3 -0
- package/dist/internal/sharingPublic/cryptoReporter.js.map +1 -1
- package/dist/internal/sharingPublic/index.d.ts +3 -0
- package/dist/internal/sharingPublic/index.js +3 -0
- package/dist/internal/sharingPublic/index.js.map +1 -1
- package/dist/internal/sharingPublic/shares.d.ts +1 -1
- package/dist/internal/sharingPublic/shares.js +1 -2
- package/dist/internal/sharingPublic/shares.js.map +1 -1
- package/dist/internal/upload/fileUploader.d.ts +5 -2
- package/dist/internal/upload/fileUploader.js +7 -4
- package/dist/internal/upload/fileUploader.js.map +1 -1
- package/dist/protonDriveClient.d.ts +1 -1
- package/dist/protonDriveClient.js +5 -1
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.d.ts +19 -0
- package/dist/protonDrivePhotosClient.js +23 -1
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/dist/protonDrivePublicLinkClient.d.ts +33 -1
- package/dist/protonDrivePublicLinkClient.js +51 -2
- package/dist/protonDrivePublicLinkClient.js.map +1 -1
- package/package.json +1 -1
- package/src/diagnostic/diagnostic.ts +27 -8
- package/src/diagnostic/index.ts +17 -2
- package/src/diagnostic/interface.ts +35 -9
- package/src/diagnostic/nodeUtils.ts +100 -0
- package/src/diagnostic/{sdkDiagnostic.ts → sdkDiagnosticBase.ts} +204 -204
- package/src/diagnostic/sdkDiagnosticMain.ts +95 -0
- package/src/diagnostic/sdkDiagnosticPhotos.ts +70 -0
- package/src/featureFlags.ts +11 -0
- package/src/index.ts +1 -0
- package/src/interface/featureFlags.ts +7 -0
- package/src/interface/index.ts +3 -0
- package/src/internal/devices/interface.ts +1 -1
- package/src/internal/devices/manager.test.ts +3 -3
- package/src/internal/devices/manager.ts +1 -1
- package/src/internal/errors.test.ts +62 -1
- package/src/internal/errors.ts +27 -0
- package/src/internal/nodes/cryptoReporter.ts +6 -5
- package/src/internal/nodes/index.test.ts +1 -1
- package/src/internal/nodes/interface.ts +1 -1
- package/src/internal/nodes/nodesAccess.test.ts +2 -2
- package/src/internal/nodes/nodesAccess.ts +5 -5
- package/src/internal/photos/albums.ts +1 -1
- package/src/internal/photos/apiService.ts +40 -0
- package/src/internal/photos/index.ts +9 -1
- package/src/internal/photos/interface.ts +4 -1
- package/src/internal/photos/shares.ts +3 -3
- package/src/internal/photos/timeline.test.ts +116 -0
- package/src/internal/photos/timeline.ts +47 -2
- package/src/internal/photos/upload.ts +1 -1
- package/src/internal/shares/cryptoService.ts +5 -1
- package/src/internal/shares/manager.test.ts +7 -7
- package/src/internal/shares/manager.ts +4 -4
- package/src/internal/sharing/interface.ts +1 -1
- package/src/internal/sharing/sharingAccess.test.ts +1 -1
- package/src/internal/sharing/sharingAccess.ts +1 -1
- package/src/internal/sharing/sharingManagement.test.ts +59 -1
- package/src/internal/sharing/sharingManagement.ts +33 -14
- package/src/internal/sharingPublic/cryptoReporter.ts +5 -1
- package/src/internal/sharingPublic/index.ts +3 -0
- package/src/internal/sharingPublic/shares.ts +1 -2
- package/src/internal/upload/fileUploader.ts +18 -11
- package/src/protonDriveClient.ts +5 -0
- package/src/protonDrivePhotosClient.ts +24 -1
- package/src/protonDrivePublicLinkClient.ts +77 -2
- package/dist/diagnostic/sdkDiagnostic.d.ts +0 -23
- package/dist/diagnostic/sdkDiagnostic.js +0 -320
- package/dist/diagnostic/sdkDiagnostic.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protonDrivePhotosClient.js","sourceRoot":"","sources":["../src/protonDrivePhotosClient.ts"],"names":[],"mappings":";;;AAoBA,qCAAqC;AACrC,qCAAuC;AACvC,2CAAwC;AACxC,iDAOwB;AACxB,sDAAwD;AACxD,kDAAyD;AACzD,8CAAyF;AACzF,4CAAmD;AACnD,8CAK2B;AAC3B,oDAAiD;AACjD,8CAAqD;AACrD,gDAAuD;AAEvD;;;;;;;GAOG;AACH,MAAa,uBAAuB;IACxB,MAAM,CAAS;IACf,SAAS,CAAY;IACrB,MAAM,CAAqB;IAC3B,WAAW,CAA2C;IACtD,KAAK,CAAqC;IAC1C,OAAO,CAAuC;IAC9C,QAAQ,CAAwC;IAChD,MAAM,CAA2C;IACjD,MAAM,CAAsC;IAE7C,YAAY,CAOjB;IAEF,YAAY,EACR,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,SAAS,EACT,qBAAqB,GACe;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,oBAAW,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,4BAAe,CAClC,SAAS,EACT,IAAI,CAAC,SAAS,EACd,UAAU,EACV,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,QAAQ,CACtB,CAAC;QACF,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9G,IAAI,CAAC,WAAW,GAAG,IAAA,8BAAqB,EACpC,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,YAAY,EACZ,UAAU,CACb,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAA,uBAAe,EACxB,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,YAAY,EACZ,IAAI,CAAC,WAAW,EAChB,UAAU,CAAC,SAAS,CACvB,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAA,yBAAgB,EAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"protonDrivePhotosClient.js","sourceRoot":"","sources":["../src/protonDrivePhotosClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OpenPGPCrypto, PrivateKey, SRPModule, SessionKey } from './crypto';
|
|
2
|
-
import { ProtonDriveHTTPClient, ProtonDriveTelemetry, ProtonDriveConfig, NodeOrUid, ProtonDriveAccount, MaybeNode, NodeType, MaybeMissingNode, FileDownloader, ThumbnailType, ThumbnailResult } from './interface';
|
|
2
|
+
import { ProtonDriveHTTPClient, ProtonDriveTelemetry, ProtonDriveConfig, NodeOrUid, ProtonDriveAccount, MaybeNode, NodeType, MaybeMissingNode, FileDownloader, ThumbnailType, ThumbnailResult, UploadMetadata, FileUploader, NodeResult } from './interface';
|
|
3
3
|
/**
|
|
4
4
|
* ProtonDrivePublicLinkClient is the interface for the public link client.
|
|
5
5
|
*
|
|
@@ -18,6 +18,7 @@ export declare class ProtonDrivePublicLinkClient {
|
|
|
18
18
|
private sdkEvents;
|
|
19
19
|
private sharingPublic;
|
|
20
20
|
private download;
|
|
21
|
+
private upload;
|
|
21
22
|
experimental: {
|
|
22
23
|
/**
|
|
23
24
|
* Experimental feature to return the URL of the node.
|
|
@@ -70,6 +71,24 @@ export declare class ProtonDrivePublicLinkClient {
|
|
|
70
71
|
* See `ProtonDriveClient.getNode` for more information.
|
|
71
72
|
*/
|
|
72
73
|
getNode(nodeUid: NodeOrUid): Promise<MaybeNode>;
|
|
74
|
+
/**
|
|
75
|
+
* Rename the node.
|
|
76
|
+
*
|
|
77
|
+
* See `ProtonDriveClient.renameNode` for more information.
|
|
78
|
+
*/
|
|
79
|
+
renameNode(nodeUid: NodeOrUid, newName: string): Promise<MaybeNode>;
|
|
80
|
+
/**
|
|
81
|
+
* Delete the nodes permanently.
|
|
82
|
+
*
|
|
83
|
+
* See `ProtonDriveClient.deleteNodes` for more information.
|
|
84
|
+
*/
|
|
85
|
+
deleteNodes(nodeUids: NodeOrUid[], signal?: AbortSignal): AsyncGenerator<NodeResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Create a new folder.
|
|
88
|
+
*
|
|
89
|
+
* See `ProtonDriveClient.createFolder` for more information.
|
|
90
|
+
*/
|
|
91
|
+
createFolder(parentNodeUid: NodeOrUid, name: string, modificationTime?: Date): Promise<MaybeNode>;
|
|
73
92
|
/**
|
|
74
93
|
* Get the file downloader to download the node content.
|
|
75
94
|
*
|
|
@@ -82,4 +101,17 @@ export declare class ProtonDrivePublicLinkClient {
|
|
|
82
101
|
* See `ProtonDriveClient.iterateThumbnails` for more information.
|
|
83
102
|
*/
|
|
84
103
|
iterateThumbnails(nodeUids: NodeOrUid[], thumbnailType?: ThumbnailType, signal?: AbortSignal): AsyncGenerator<ThumbnailResult>;
|
|
104
|
+
/**
|
|
105
|
+
* Get the file uploader to upload a new file. For uploading a new
|
|
106
|
+
* revision, use `getFileRevisionUploader` instead.
|
|
107
|
+
*
|
|
108
|
+
* See `ProtonDriveClient.getFileUploader` for more information.
|
|
109
|
+
*/
|
|
110
|
+
getFileUploader(parentFolderUid: NodeOrUid, name: string, metadata: UploadMetadata, signal?: AbortSignal): Promise<FileUploader>;
|
|
111
|
+
/**
|
|
112
|
+
* Same as `getFileUploader`, but for a uploading new revision of the file.
|
|
113
|
+
*
|
|
114
|
+
* See `ProtonDriveClient.getFileRevisionUploader` for more information.
|
|
115
|
+
*/
|
|
116
|
+
getFileRevisionUploader(nodeUid: NodeOrUid, metadata: UploadMetadata, signal?: AbortSignal): Promise<FileUploader>;
|
|
85
117
|
}
|
|
@@ -10,6 +10,7 @@ const apiService_1 = require("./internal/apiService");
|
|
|
10
10
|
const download_1 = require("./internal/download");
|
|
11
11
|
const sdkEvents_1 = require("./internal/sdkEvents");
|
|
12
12
|
const sharingPublic_1 = require("./internal/sharingPublic");
|
|
13
|
+
const upload_1 = require("./internal/upload");
|
|
13
14
|
/**
|
|
14
15
|
* ProtonDrivePublicLinkClient is the interface for the public link client.
|
|
15
16
|
*
|
|
@@ -28,12 +29,13 @@ class ProtonDrivePublicLinkClient {
|
|
|
28
29
|
sdkEvents;
|
|
29
30
|
sharingPublic;
|
|
30
31
|
download;
|
|
32
|
+
upload;
|
|
31
33
|
experimental;
|
|
32
34
|
constructor({ httpClient, account, openPGPCryptoModule, srpModule, config, telemetry, url, token, publicShareKey, publicRootNodeUid, }) {
|
|
33
35
|
if (!telemetry) {
|
|
34
36
|
telemetry = new telemetry_1.Telemetry();
|
|
35
37
|
}
|
|
36
|
-
this.logger = telemetry.getLogger('interface');
|
|
38
|
+
this.logger = telemetry.getLogger('publicLink-interface');
|
|
37
39
|
// Use only in memory cache for public link as there are no events to keep it up to date if persisted.
|
|
38
40
|
const entitiesCache = new cache_1.MemoryCache();
|
|
39
41
|
const cryptoCache = new cache_1.MemoryCache();
|
|
@@ -43,6 +45,7 @@ class ProtonDrivePublicLinkClient {
|
|
|
43
45
|
const cryptoModule = new crypto_1.DriveCrypto(openPGPCryptoModule, srpModule);
|
|
44
46
|
this.sharingPublic = (0, sharingPublic_1.initSharingPublicModule)(telemetry, apiService, entitiesCache, cryptoCache, cryptoModule, account, url, token, publicShareKey, publicRootNodeUid);
|
|
45
47
|
this.download = (0, download_1.initDownloadModule)(telemetry, apiService, cryptoModule, account, this.sharingPublic.shares, this.sharingPublic.nodes.access, this.sharingPublic.nodes.revisions);
|
|
48
|
+
this.upload = (0, upload_1.initUploadModule)(telemetry, apiService, cryptoModule, this.sharingPublic.shares, this.sharingPublic.nodes.access, fullConfig.clientUid);
|
|
46
49
|
this.experimental = {
|
|
47
50
|
getNodeUrl: async (nodeUid) => {
|
|
48
51
|
this.logger.debug(`Getting node URL for ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
@@ -63,7 +66,7 @@ class ProtonDrivePublicLinkClient {
|
|
|
63
66
|
*/
|
|
64
67
|
async getRootNode() {
|
|
65
68
|
this.logger.info(`Getting root node`);
|
|
66
|
-
const { rootNodeUid } = await this.sharingPublic.shares.
|
|
69
|
+
const { rootNodeUid } = await this.sharingPublic.shares.getRootIDs();
|
|
67
70
|
return (0, transformers_1.convertInternalNodePromise)(this.sharingPublic.nodes.access.getNode(rootNodeUid));
|
|
68
71
|
}
|
|
69
72
|
/**
|
|
@@ -93,6 +96,33 @@ class ProtonDrivePublicLinkClient {
|
|
|
93
96
|
this.logger.info(`Getting node ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
94
97
|
return (0, transformers_1.convertInternalNodePromise)(this.sharingPublic.nodes.access.getNode((0, transformers_1.getUid)(nodeUid)));
|
|
95
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Rename the node.
|
|
101
|
+
*
|
|
102
|
+
* See `ProtonDriveClient.renameNode` for more information.
|
|
103
|
+
*/
|
|
104
|
+
async renameNode(nodeUid, newName) {
|
|
105
|
+
this.logger.info(`Renaming node ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
106
|
+
return (0, transformers_1.convertInternalNodePromise)(this.sharingPublic.nodes.management.renameNode((0, transformers_1.getUid)(nodeUid), newName));
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Delete the nodes permanently.
|
|
110
|
+
*
|
|
111
|
+
* See `ProtonDriveClient.deleteNodes` for more information.
|
|
112
|
+
*/
|
|
113
|
+
async *deleteNodes(nodeUids, signal) {
|
|
114
|
+
this.logger.info(`Deleting ${nodeUids.length} nodes`);
|
|
115
|
+
yield* this.sharingPublic.nodes.management.deleteNodes((0, transformers_1.getUids)(nodeUids), signal);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Create a new folder.
|
|
119
|
+
*
|
|
120
|
+
* See `ProtonDriveClient.createFolder` for more information.
|
|
121
|
+
*/
|
|
122
|
+
async createFolder(parentNodeUid, name, modificationTime) {
|
|
123
|
+
this.logger.info(`Creating folder in ${(0, transformers_1.getUid)(parentNodeUid)}`);
|
|
124
|
+
return (0, transformers_1.convertInternalNodePromise)(this.sharingPublic.nodes.management.createFolder((0, transformers_1.getUid)(parentNodeUid), name, modificationTime));
|
|
125
|
+
}
|
|
96
126
|
/**
|
|
97
127
|
* Get the file downloader to download the node content.
|
|
98
128
|
*
|
|
@@ -111,6 +141,25 @@ class ProtonDrivePublicLinkClient {
|
|
|
111
141
|
this.logger.info(`Iterating ${nodeUids.length} thumbnails`);
|
|
112
142
|
yield* this.download.iterateThumbnails((0, transformers_1.getUids)(nodeUids), thumbnailType, signal);
|
|
113
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Get the file uploader to upload a new file. For uploading a new
|
|
146
|
+
* revision, use `getFileRevisionUploader` instead.
|
|
147
|
+
*
|
|
148
|
+
* See `ProtonDriveClient.getFileUploader` for more information.
|
|
149
|
+
*/
|
|
150
|
+
async getFileUploader(parentFolderUid, name, metadata, signal) {
|
|
151
|
+
this.logger.info(`Getting file uploader for parent ${(0, transformers_1.getUid)(parentFolderUid)}`);
|
|
152
|
+
return this.upload.getFileUploader((0, transformers_1.getUid)(parentFolderUid), name, metadata, signal);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Same as `getFileUploader`, but for a uploading new revision of the file.
|
|
156
|
+
*
|
|
157
|
+
* See `ProtonDriveClient.getFileRevisionUploader` for more information.
|
|
158
|
+
*/
|
|
159
|
+
async getFileRevisionUploader(nodeUid, metadata, signal) {
|
|
160
|
+
this.logger.info(`Getting file revision uploader for ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
161
|
+
return this.upload.getFileRevisionUploader((0, transformers_1.getUid)(nodeUid), metadata, signal);
|
|
162
|
+
}
|
|
114
163
|
}
|
|
115
164
|
exports.ProtonDrivePublicLinkClient = ProtonDrivePublicLinkClient;
|
|
116
165
|
//# sourceMappingURL=protonDrivePublicLinkClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protonDrivePublicLinkClient.js","sourceRoot":"","sources":["../src/protonDrivePublicLinkClient.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,qCAAqC;AACrC,qCAAyF;
|
|
1
|
+
{"version":3,"file":"protonDrivePublicLinkClient.js","sourceRoot":"","sources":["../src/protonDrivePublicLinkClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { MaybeNode } from '../interface';
|
|
2
2
|
import { ProtonDriveClient } from '../protonDriveClient';
|
|
3
|
+
import { ProtonDrivePhotosClient } from '../protonDrivePhotosClient';
|
|
3
4
|
import { DiagnosticHTTPClient } from './httpClient';
|
|
4
|
-
import { DiagnosticOptions, DiagnosticResult } from './interface';
|
|
5
|
-
import {
|
|
5
|
+
import { DiagnosticOptions, DiagnosticProgressCallback, DiagnosticResult } from './interface';
|
|
6
|
+
import { SDKDiagnosticMain } from './sdkDiagnosticMain';
|
|
7
|
+
import { SDKDiagnosticPhotos } from './sdkDiagnosticPhotos';
|
|
6
8
|
import { DiagnosticTelemetry } from './telemetry';
|
|
7
9
|
import { zipGenerators } from './zipGenerators';
|
|
8
10
|
|
|
@@ -15,20 +17,37 @@ export class Diagnostic {
|
|
|
15
17
|
private telemetry: DiagnosticTelemetry,
|
|
16
18
|
private httpClient: DiagnosticHTTPClient,
|
|
17
19
|
private protonDriveClient: ProtonDriveClient,
|
|
20
|
+
private protonDrivePhotosClient: ProtonDrivePhotosClient,
|
|
18
21
|
) {
|
|
19
22
|
this.telemetry = telemetry;
|
|
20
23
|
this.httpClient = httpClient;
|
|
21
24
|
this.protonDriveClient = protonDriveClient;
|
|
25
|
+
this.protonDrivePhotosClient = protonDrivePhotosClient;
|
|
22
26
|
}
|
|
23
27
|
|
|
24
|
-
async *verifyMyFiles(
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
async *verifyMyFiles(
|
|
29
|
+
options?: DiagnosticOptions,
|
|
30
|
+
onProgress?: DiagnosticProgressCallback,
|
|
31
|
+
): AsyncGenerator<DiagnosticResult> {
|
|
32
|
+
const diagnostic = new SDKDiagnosticMain(this.protonDriveClient, options, onProgress);
|
|
33
|
+
yield* this.yieldEvents(diagnostic.verifyMyFiles(options?.expectedStructure));
|
|
27
34
|
}
|
|
28
35
|
|
|
29
|
-
async *verifyNodeTree(
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
async *verifyNodeTree(
|
|
37
|
+
node: MaybeNode,
|
|
38
|
+
options?: DiagnosticOptions,
|
|
39
|
+
onProgress?: DiagnosticProgressCallback,
|
|
40
|
+
): AsyncGenerator<DiagnosticResult> {
|
|
41
|
+
const diagnostic = new SDKDiagnosticMain(this.protonDriveClient, options, onProgress);
|
|
42
|
+
yield* this.yieldEvents(diagnostic.verifyNodeTree(node, options?.expectedStructure));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async *verifyPhotosTimeline(
|
|
46
|
+
options?: DiagnosticOptions,
|
|
47
|
+
onProgress?: DiagnosticProgressCallback,
|
|
48
|
+
): AsyncGenerator<DiagnosticResult> {
|
|
49
|
+
const diagnostic = new SDKDiagnosticPhotos(this.protonDrivePhotosClient, options, onProgress);
|
|
50
|
+
yield* this.yieldEvents(diagnostic.verifyTimeline(options?.expectedStructure));
|
|
32
51
|
}
|
|
33
52
|
|
|
34
53
|
private async *yieldEvents(generator: AsyncGenerator<DiagnosticResult>): AsyncGenerator<DiagnosticResult> {
|
package/src/diagnostic/index.ts
CHANGED
|
@@ -5,8 +5,15 @@ import { Diagnostic as DiagnosticClass } from './diagnostic';
|
|
|
5
5
|
import { Diagnostic } from './interface';
|
|
6
6
|
import { DiagnosticHTTPClient } from './httpClient';
|
|
7
7
|
import { DiagnosticTelemetry } from './telemetry';
|
|
8
|
+
import { ProtonDrivePhotosClient } from '../protonDrivePhotosClient';
|
|
8
9
|
|
|
9
|
-
export type {
|
|
10
|
+
export type {
|
|
11
|
+
Diagnostic,
|
|
12
|
+
DiagnosticOptions,
|
|
13
|
+
ExpectedTreeNode,
|
|
14
|
+
DiagnosticProgressCallback,
|
|
15
|
+
DiagnosticResult,
|
|
16
|
+
} from './interface';
|
|
10
17
|
|
|
11
18
|
/**
|
|
12
19
|
* Initializes the diagnostic tool. It creates the instance of
|
|
@@ -34,5 +41,13 @@ export function initDiagnostic(
|
|
|
34
41
|
telemetry,
|
|
35
42
|
});
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
const protonDrivePhotosClient = new ProtonDrivePhotosClient({
|
|
45
|
+
...options,
|
|
46
|
+
httpClient,
|
|
47
|
+
entitiesCache: new NullCache(),
|
|
48
|
+
cryptoCache: new MemoryCache(),
|
|
49
|
+
telemetry,
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return new DiagnosticClass(telemetry, httpClient, protonDriveClient, protonDrivePhotosClient);
|
|
38
53
|
}
|
|
@@ -2,24 +2,48 @@ import { Author, MaybeNode, MetricEvent, NodeType, AnonymousUser } from '../inte
|
|
|
2
2
|
import { LogRecord } from '../telemetry';
|
|
3
3
|
|
|
4
4
|
export interface Diagnostic {
|
|
5
|
-
verifyMyFiles(
|
|
6
|
-
|
|
5
|
+
verifyMyFiles(
|
|
6
|
+
options?: DiagnosticOptions,
|
|
7
|
+
onProgress?: DiagnosticProgressCallback,
|
|
8
|
+
): AsyncGenerator<DiagnosticResult>;
|
|
9
|
+
verifyNodeTree(
|
|
10
|
+
node: MaybeNode,
|
|
11
|
+
options?: DiagnosticOptions,
|
|
12
|
+
onProgress?: DiagnosticProgressCallback,
|
|
13
|
+
): AsyncGenerator<DiagnosticResult>;
|
|
14
|
+
verifyPhotosTimeline(
|
|
15
|
+
options?: DiagnosticOptions,
|
|
16
|
+
onProgress?: DiagnosticProgressCallback,
|
|
17
|
+
): AsyncGenerator<DiagnosticResult>;
|
|
7
18
|
}
|
|
8
19
|
|
|
9
20
|
export type DiagnosticOptions = {
|
|
10
|
-
verifyContent?: boolean;
|
|
21
|
+
verifyContent?: boolean | 'peakOnly';
|
|
11
22
|
verifyThumbnails?: boolean;
|
|
12
|
-
expectedStructure?:
|
|
23
|
+
expectedStructure?: ExpectedTreeNode;
|
|
13
24
|
};
|
|
14
25
|
|
|
15
26
|
// Tree structure of the expected node tree.
|
|
16
|
-
export type
|
|
27
|
+
export type ExpectedTreeNode = {
|
|
17
28
|
name: string;
|
|
29
|
+
expectedMediaType?: string;
|
|
18
30
|
expectedSha1?: string;
|
|
19
31
|
expectedSizeInBytes?: number;
|
|
20
|
-
|
|
32
|
+
// If expectedAuthors is provided, it will be used to verify authors.
|
|
33
|
+
// If it's a string, it will be used to verify all authors match the same email.
|
|
34
|
+
// If it's an object, it will be used to verify specific authors by type.
|
|
35
|
+
expectedAuthors?: ExpectedAuthor | { key?: ExpectedAuthor; name?: ExpectedAuthor; content?: ExpectedAuthor };
|
|
36
|
+
children?: ExpectedTreeNode[];
|
|
21
37
|
};
|
|
22
38
|
|
|
39
|
+
export type ExpectedAuthor = string | 'anonymous';
|
|
40
|
+
|
|
41
|
+
export type DiagnosticProgressCallback = (progress: {
|
|
42
|
+
allNodesLoaded: boolean;
|
|
43
|
+
loadedNodes: number;
|
|
44
|
+
checkedNodes: number;
|
|
45
|
+
}) => void;
|
|
46
|
+
|
|
23
47
|
export type DiagnosticResult =
|
|
24
48
|
| FatalErrorResult
|
|
25
49
|
| SdkErrorResult
|
|
@@ -138,7 +162,7 @@ export type ThumbnailsErrorResult = {
|
|
|
138
162
|
// the expected structure.
|
|
139
163
|
export type ExpectedStructureMissingNode = {
|
|
140
164
|
type: 'expected_structure_missing_node';
|
|
141
|
-
expectedNode:
|
|
165
|
+
expectedNode: ExpectedTreeNode;
|
|
142
166
|
parentNodeUid: string;
|
|
143
167
|
};
|
|
144
168
|
|
|
@@ -155,7 +179,7 @@ export type ExpectedStructureUnexpectedNode = {
|
|
|
155
179
|
// the claimed values with the real content.
|
|
156
180
|
export type ExpectedStructureIntegrityError = {
|
|
157
181
|
type: 'expected_structure_integrity_error';
|
|
158
|
-
expectedNode:
|
|
182
|
+
expectedNode: ExpectedTreeNode;
|
|
159
183
|
claimedSha1?: string;
|
|
160
184
|
claimedSizeInBytes?: number;
|
|
161
185
|
} & NodeDetails;
|
|
@@ -181,11 +205,13 @@ export type MetricResult = {
|
|
|
181
205
|
export type NodeDetails = {
|
|
182
206
|
safeNodeDetails: {
|
|
183
207
|
nodeUid: string;
|
|
184
|
-
revisionUid
|
|
208
|
+
revisionUid: string | undefined;
|
|
185
209
|
nodeType: NodeType;
|
|
210
|
+
mediaType: string | undefined;
|
|
186
211
|
nodeCreationTime: Date;
|
|
187
212
|
keyAuthor: Author;
|
|
188
213
|
nameAuthor: Author;
|
|
214
|
+
contentAuthor: Author | undefined;
|
|
189
215
|
errors: {
|
|
190
216
|
field: string;
|
|
191
217
|
error: unknown;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { MaybeNode, NodeType, Revision } from '../interface';
|
|
2
|
+
import {
|
|
3
|
+
NodeDetails,
|
|
4
|
+
ExpectedTreeNode,
|
|
5
|
+
} from './interface';
|
|
6
|
+
|
|
7
|
+
export function getNodeDetails(node: MaybeNode): NodeDetails {
|
|
8
|
+
const errors: {
|
|
9
|
+
field: string;
|
|
10
|
+
error: unknown;
|
|
11
|
+
}[] = [];
|
|
12
|
+
|
|
13
|
+
if (!node.ok) {
|
|
14
|
+
const degradedNode = node.error;
|
|
15
|
+
if (!degradedNode.name.ok) {
|
|
16
|
+
errors.push({
|
|
17
|
+
field: 'name',
|
|
18
|
+
error: degradedNode.name.error,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (degradedNode.activeRevision?.ok === false) {
|
|
22
|
+
errors.push({
|
|
23
|
+
field: 'activeRevision',
|
|
24
|
+
error: degradedNode.activeRevision.error,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
for (const error of degradedNode.errors ?? []) {
|
|
28
|
+
if (error instanceof Error) {
|
|
29
|
+
errors.push({
|
|
30
|
+
field: 'error',
|
|
31
|
+
error,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
safeNodeDetails: {
|
|
39
|
+
...getNodeUids(node),
|
|
40
|
+
nodeType: getNodeType(node),
|
|
41
|
+
mediaType: getMediaType(node),
|
|
42
|
+
nodeCreationTime: node.ok ? node.value.creationTime : node.error.creationTime,
|
|
43
|
+
keyAuthor: node.ok ? node.value.keyAuthor : node.error.keyAuthor,
|
|
44
|
+
nameAuthor: node.ok ? node.value.nameAuthor : node.error.nameAuthor,
|
|
45
|
+
contentAuthor: getActiveRevision(node)?.contentAuthor,
|
|
46
|
+
errors,
|
|
47
|
+
},
|
|
48
|
+
sensitiveNodeDetails: node,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function getNodeUids(node: MaybeNode): { nodeUid: string; revisionUid: string | undefined } {
|
|
53
|
+
const activeRevision = getActiveRevision(node);
|
|
54
|
+
return {
|
|
55
|
+
nodeUid: node.ok ? node.value.uid : node.error.uid,
|
|
56
|
+
revisionUid: activeRevision?.uid,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function getNodeType(node: MaybeNode): NodeType {
|
|
61
|
+
return node.ok ? node.value.type : node.error.type;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function getMediaType(node: MaybeNode): string | undefined {
|
|
65
|
+
return node.ok ? node.value.mediaType : node.error.mediaType;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function getActiveRevision(node: MaybeNode): Revision | undefined {
|
|
69
|
+
if (node.ok) {
|
|
70
|
+
return node.value.activeRevision;
|
|
71
|
+
}
|
|
72
|
+
if (node.error.activeRevision?.ok) {
|
|
73
|
+
return node.error.activeRevision.value;
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function getNodeName(node: MaybeNode): string {
|
|
79
|
+
if (node.ok) {
|
|
80
|
+
return node.value.name;
|
|
81
|
+
}
|
|
82
|
+
if (node.error.name.ok) {
|
|
83
|
+
return node.error.name.value;
|
|
84
|
+
}
|
|
85
|
+
return 'N/A';
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export function getExpectedTreeNodeDetails(expectedNode: ExpectedTreeNode): ExpectedTreeNode {
|
|
89
|
+
return {
|
|
90
|
+
...expectedNode,
|
|
91
|
+
children: undefined,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export function getTreeNodeChildByNodeName(
|
|
96
|
+
expectedSubtree: ExpectedTreeNode | undefined,
|
|
97
|
+
nodeName: string,
|
|
98
|
+
): ExpectedTreeNode | undefined {
|
|
99
|
+
return expectedSubtree?.children?.find((expectedNode) => expectedNode.name === nodeName);
|
|
100
|
+
}
|