@protontech/drive-sdk 0.5.0 → 0.6.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/diagnostic/{sdkDiagnosticFull.d.ts → diagnostic.d.ts} +5 -4
- package/dist/diagnostic/{sdkDiagnosticFull.js → diagnostic.js} +13 -10
- package/dist/diagnostic/diagnostic.js.map +1 -0
- package/dist/diagnostic/index.js +2 -4
- package/dist/diagnostic/index.js.map +1 -1
- package/dist/diagnostic/interface.d.ts +22 -1
- package/dist/diagnostic/sdkDiagnostic.d.ts +3 -2
- package/dist/diagnostic/sdkDiagnostic.js +79 -7
- package/dist/diagnostic/sdkDiagnostic.js.map +1 -1
- package/dist/interface/index.d.ts +2 -2
- package/dist/interface/index.js.map +1 -1
- package/dist/interface/nodes.d.ts +9 -0
- package/dist/interface/telemetry.d.ts +4 -1
- package/dist/interface/telemetry.js.map +1 -1
- package/dist/interface/upload.d.ts +1 -12
- package/dist/internal/apiService/driveTypes.d.ts +2571 -2356
- package/dist/internal/download/controller.d.ts +2 -0
- package/dist/internal/download/controller.js +15 -1
- package/dist/internal/download/controller.js.map +1 -1
- package/dist/internal/download/fileDownloader.js +6 -1
- package/dist/internal/download/fileDownloader.js.map +1 -1
- package/dist/internal/nodes/apiService.d.ts +11 -1
- package/dist/internal/nodes/apiService.js +47 -13
- package/dist/internal/nodes/apiService.js.map +1 -1
- package/dist/internal/nodes/apiService.test.js +61 -3
- package/dist/internal/nodes/apiService.test.js.map +1 -1
- package/dist/internal/nodes/cryptoService.d.ts +4 -0
- package/dist/internal/nodes/cryptoService.js +6 -0
- package/dist/internal/nodes/cryptoService.js.map +1 -1
- package/dist/internal/nodes/debouncer.d.ts +3 -2
- package/dist/internal/nodes/debouncer.js +16 -4
- package/dist/internal/nodes/debouncer.js.map +1 -1
- package/dist/internal/nodes/debouncer.test.js +20 -12
- package/dist/internal/nodes/debouncer.test.js.map +1 -1
- package/dist/internal/nodes/extendedAttributes.js +2 -2
- package/dist/internal/nodes/extendedAttributes.js.map +1 -1
- package/dist/internal/nodes/index.d.ts +1 -1
- package/dist/internal/nodes/index.js +3 -3
- package/dist/internal/nodes/index.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/nodeName.d.ts +8 -0
- package/dist/internal/nodes/nodeName.js +30 -0
- package/dist/internal/nodes/nodeName.js.map +1 -0
- package/dist/internal/nodes/nodeName.test.d.ts +1 -0
- package/dist/internal/nodes/nodeName.test.js +50 -0
- package/dist/internal/nodes/nodeName.test.js.map +1 -0
- package/dist/internal/nodes/nodesAccess.d.ts +5 -4
- package/dist/internal/nodes/nodesAccess.js +6 -5
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +17 -5
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.d.ts +3 -2
- package/dist/internal/nodes/nodesManagement.js +35 -4
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.test.js +64 -1
- package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
- package/dist/internal/photos/apiService.js +9 -20
- package/dist/internal/photos/apiService.js.map +1 -1
- package/dist/internal/photos/index.d.ts +2 -0
- package/dist/internal/photos/index.js +4 -0
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/upload.js +7 -1
- package/dist/internal/photos/upload.js.map +1 -1
- package/dist/internal/shares/index.d.ts +1 -0
- package/dist/internal/shares/index.js +3 -0
- package/dist/internal/shares/index.js.map +1 -1
- package/dist/internal/shares/interface.d.ts +8 -0
- package/dist/internal/shares/interface.js +10 -1
- package/dist/internal/shares/interface.js.map +1 -1
- package/dist/internal/sharing/apiService.d.ts +4 -2
- package/dist/internal/sharing/apiService.js +18 -14
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/sharing/index.d.ts +2 -1
- package/dist/internal/sharing/index.js +6 -2
- package/dist/internal/sharing/index.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.d.ts +4 -1
- package/dist/internal/sharing/sharingManagement.js +7 -4
- package/dist/internal/sharing/sharingManagement.js.map +1 -1
- package/dist/internal/sharingPublic/apiService.d.ts +8 -10
- package/dist/internal/sharingPublic/apiService.js +9 -63
- package/dist/internal/sharingPublic/apiService.js.map +1 -1
- package/dist/internal/sharingPublic/index.d.ts +3 -3
- package/dist/internal/sharingPublic/index.js +7 -12
- package/dist/internal/sharingPublic/index.js.map +1 -1
- package/dist/internal/sharingPublic/nodes.d.ts +13 -8
- package/dist/internal/sharingPublic/nodes.js +20 -2
- package/dist/internal/sharingPublic/nodes.js.map +1 -1
- package/dist/internal/sharingPublic/session/apiService.d.ts +7 -5
- package/dist/internal/sharingPublic/session/apiService.js +25 -4
- package/dist/internal/sharingPublic/session/apiService.js.map +1 -1
- package/dist/internal/sharingPublic/session/interface.d.ts +17 -0
- package/dist/internal/sharingPublic/session/manager.d.ts +12 -4
- package/dist/internal/sharingPublic/session/manager.js +14 -4
- package/dist/internal/sharingPublic/session/manager.js.map +1 -1
- package/dist/internal/sharingPublic/session/session.d.ts +5 -2
- package/dist/internal/sharingPublic/session/session.js +7 -3
- package/dist/internal/sharingPublic/session/session.js.map +1 -1
- package/dist/internal/sharingPublic/shares.d.ts +3 -10
- package/dist/internal/sharingPublic/shares.js +10 -33
- package/dist/internal/sharingPublic/shares.js.map +1 -1
- package/dist/internal/upload/apiService.d.ts +0 -9
- package/dist/internal/upload/apiService.js +0 -16
- package/dist/internal/upload/apiService.js.map +1 -1
- package/dist/internal/upload/controller.d.ts +3 -1
- package/dist/internal/upload/controller.js +16 -2
- package/dist/internal/upload/controller.js.map +1 -1
- package/dist/internal/upload/cryptoService.d.ts +0 -4
- package/dist/internal/upload/cryptoService.js +0 -6
- package/dist/internal/upload/cryptoService.js.map +1 -1
- package/dist/internal/upload/fileUploader.d.ts +0 -1
- package/dist/internal/upload/fileUploader.js +2 -6
- package/dist/internal/upload/fileUploader.js.map +1 -1
- package/dist/internal/upload/manager.d.ts +0 -1
- package/dist/internal/upload/manager.js +0 -51
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/manager.test.js +0 -61
- package/dist/internal/upload/manager.test.js.map +1 -1
- package/dist/internal/upload/streamUploader.d.ts +4 -3
- package/dist/internal/upload/streamUploader.js +61 -18
- package/dist/internal/upload/streamUploader.js.map +1 -1
- package/dist/internal/upload/streamUploader.test.js +38 -12
- package/dist/internal/upload/streamUploader.test.js.map +1 -1
- package/dist/protonDriveClient.d.ts +24 -4
- package/dist/protonDriveClient.js +26 -7
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.d.ts +100 -4
- package/dist/protonDrivePhotosClient.js +160 -9
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/dist/protonDrivePublicLinkClient.d.ts +4 -3
- package/dist/protonDrivePublicLinkClient.js +2 -2
- package/dist/protonDrivePublicLinkClient.js.map +1 -1
- package/dist/tests/telemetry.d.ts +4 -2
- package/dist/tests/telemetry.js +3 -1
- package/dist/tests/telemetry.js.map +1 -1
- package/dist/transformers.d.ts +3 -2
- package/dist/transformers.js +6 -0
- package/dist/transformers.js.map +1 -1
- package/package.json +1 -1
- package/src/diagnostic/{sdkDiagnosticFull.ts → diagnostic.ts} +10 -6
- package/src/diagnostic/index.ts +3 -5
- package/src/diagnostic/interface.ts +39 -0
- package/src/diagnostic/sdkDiagnostic.ts +110 -9
- package/src/interface/index.ts +2 -1
- package/src/interface/nodes.ts +3 -0
- package/src/interface/telemetry.ts +5 -0
- package/src/interface/upload.ts +1 -13
- package/src/internal/apiService/driveTypes.ts +2698 -2529
- package/src/internal/download/controller.ts +13 -1
- package/src/internal/download/fileDownloader.ts +8 -1
- package/src/internal/nodes/apiService.test.ts +65 -1
- package/src/internal/nodes/apiService.ts +80 -17
- package/src/internal/nodes/cryptoService.ts +9 -0
- package/src/internal/nodes/debouncer.test.ts +25 -13
- package/src/internal/nodes/debouncer.ts +20 -4
- package/src/internal/nodes/extendedAttributes.ts +2 -2
- package/src/internal/nodes/index.test.ts +1 -0
- package/src/internal/nodes/index.ts +3 -9
- package/src/internal/nodes/nodeName.test.ts +57 -0
- package/src/internal/nodes/nodeName.ts +26 -0
- package/src/internal/nodes/nodesAccess.test.ts +17 -5
- package/src/internal/nodes/nodesAccess.ts +15 -5
- package/src/internal/nodes/nodesManagement.test.ts +68 -1
- package/src/internal/nodes/nodesManagement.ts +54 -6
- package/src/internal/photos/apiService.ts +12 -29
- package/src/internal/photos/index.ts +4 -0
- package/src/internal/photos/upload.ts +19 -1
- package/src/internal/shares/index.ts +1 -0
- package/src/internal/shares/interface.ts +9 -0
- package/src/internal/sharing/apiService.ts +17 -14
- package/src/internal/sharing/index.ts +7 -1
- package/src/internal/sharing/sharingManagement.ts +7 -4
- package/src/internal/sharingPublic/apiService.ts +23 -77
- package/src/internal/sharingPublic/index.ts +13 -11
- package/src/internal/sharingPublic/nodes.ts +33 -11
- package/src/internal/sharingPublic/session/apiService.ts +31 -9
- package/src/internal/sharingPublic/session/interface.ts +20 -0
- package/src/internal/sharingPublic/session/manager.ts +31 -8
- package/src/internal/sharingPublic/session/session.ts +10 -5
- package/src/internal/sharingPublic/shares.ts +7 -43
- package/src/internal/upload/apiService.ts +0 -39
- package/src/internal/upload/controller.ts +16 -4
- package/src/internal/upload/cryptoService.ts +0 -9
- package/src/internal/upload/fileUploader.ts +2 -7
- package/src/internal/upload/manager.test.ts +0 -65
- package/src/internal/upload/manager.ts +0 -64
- package/src/internal/upload/streamUploader.test.ts +46 -14
- package/src/internal/upload/streamUploader.ts +74 -21
- package/src/protonDriveClient.ts +46 -9
- package/src/protonDrivePhotosClient.ts +193 -8
- package/src/protonDrivePublicLinkClient.ts +7 -4
- package/src/tests/telemetry.ts +6 -3
- package/src/transformers.ts +8 -0
- package/dist/diagnostic/sdkDiagnosticFull.js.map +0 -1
- package/dist/internal/sharingPublic/cryptoCache.d.ts +0 -15
- package/dist/internal/sharingPublic/cryptoCache.js +0 -44
- package/dist/internal/sharingPublic/cryptoCache.js.map +0 -1
- package/dist/internal/sharingPublic/cryptoService.d.ts +0 -8
- package/dist/internal/sharingPublic/cryptoService.js +0 -19
- package/dist/internal/sharingPublic/cryptoService.js.map +0 -1
- package/dist/internal/sharingPublic/interface.d.ts +0 -5
- package/dist/internal/sharingPublic/interface.js +0 -3
- package/dist/internal/sharingPublic/interface.js.map +0 -1
- package/src/internal/sharingPublic/cryptoCache.ts +0 -45
- package/src/internal/sharingPublic/cryptoService.ts +0 -22
- package/src/internal/sharingPublic/interface.ts +0 -5
|
@@ -36,16 +36,16 @@ class ProtonDrivePhotosClient {
|
|
|
36
36
|
if (!telemetry) {
|
|
37
37
|
telemetry = new telemetry_1.Telemetry();
|
|
38
38
|
}
|
|
39
|
-
this.logger = telemetry.getLogger('interface');
|
|
39
|
+
this.logger = telemetry.getLogger('photos-interface');
|
|
40
40
|
const fullConfig = (0, config_1.getConfig)(config);
|
|
41
41
|
this.sdkEvents = new sdkEvents_1.SDKEvents(telemetry);
|
|
42
42
|
const cryptoModule = new crypto_1.DriveCrypto(openPGPCryptoModule, srpModule);
|
|
43
43
|
const apiService = new apiService_1.DriveAPIService(telemetry, this.sdkEvents, httpClient, fullConfig.baseUrl, fullConfig.language);
|
|
44
44
|
const coreShares = (0, shares_1.initSharesModule)(telemetry, apiService, entitiesCache, cryptoCache, account, cryptoModule);
|
|
45
45
|
this.photoShares = (0, photos_1.initPhotoSharesModule)(telemetry, apiService, entitiesCache, cryptoCache, account, cryptoModule, coreShares);
|
|
46
|
-
this.nodes = (0, nodes_1.initNodesModule)(telemetry, apiService, entitiesCache, cryptoCache, account, cryptoModule, this.photoShares);
|
|
46
|
+
this.nodes = (0, nodes_1.initNodesModule)(telemetry, apiService, entitiesCache, cryptoCache, account, cryptoModule, this.photoShares, fullConfig.clientUid);
|
|
47
47
|
this.photos = (0, photos_1.initPhotosModule)(apiService, this.photoShares, this.nodes.access);
|
|
48
|
-
this.sharing = (0, sharing_1.initSharingModule)(telemetry, apiService, entitiesCache, account, cryptoModule, this.photoShares, this.nodes.access);
|
|
48
|
+
this.sharing = (0, sharing_1.initSharingModule)(telemetry, apiService, entitiesCache, account, cryptoModule, this.photoShares, this.nodes.access, photos_1.PHOTOS_SHARE_TARGET_TYPES);
|
|
49
49
|
this.download = (0, download_1.initDownloadModule)(telemetry, apiService, cryptoModule, account, this.photoShares, this.nodes.access, this.nodes.revisions);
|
|
50
50
|
this.upload = (0, photos_1.initPhotoUploadModule)(telemetry, apiService, cryptoModule, this.photoShares, this.nodes.access, fullConfig.clientUid);
|
|
51
51
|
// These are used to keep the internal cache up to date
|
|
@@ -105,6 +105,15 @@ class ProtonDrivePhotosClient {
|
|
|
105
105
|
// TODO: expose better type
|
|
106
106
|
yield* this.photos.timeline.iterateTimeline(signal);
|
|
107
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Iterates the trashed nodes.
|
|
110
|
+
*
|
|
111
|
+
* See `ProtonDriveClient.iterateTrashedNodes` for more information.
|
|
112
|
+
*/
|
|
113
|
+
async *iterateTrashedNodes(signal) {
|
|
114
|
+
this.logger.info('Iterating trashed nodes');
|
|
115
|
+
yield* (0, transformers_1.convertInternalNodeIterator)(this.nodes.access.iterateTrashedNodes(signal));
|
|
116
|
+
}
|
|
108
117
|
/**
|
|
109
118
|
* Iterates the nodes by their UIDs.
|
|
110
119
|
*
|
|
@@ -125,14 +134,146 @@ class ProtonDrivePhotosClient {
|
|
|
125
134
|
return (0, transformers_1.convertInternalNodePromise)(this.nodes.access.getNode((0, transformers_1.getUid)(nodeUid)));
|
|
126
135
|
}
|
|
127
136
|
/**
|
|
128
|
-
*
|
|
137
|
+
* Rename the node.
|
|
129
138
|
*
|
|
130
|
-
*
|
|
139
|
+
* See `ProtonDriveClient.renameNode` for more information.
|
|
131
140
|
*/
|
|
132
|
-
async
|
|
133
|
-
this.logger.info(
|
|
134
|
-
|
|
135
|
-
|
|
141
|
+
async renameNode(nodeUid, newName) {
|
|
142
|
+
this.logger.info(`Renaming node ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
143
|
+
return (0, transformers_1.convertInternalNodePromise)(this.nodes.management.renameNode((0, transformers_1.getUid)(nodeUid), newName));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Trash the nodes.
|
|
147
|
+
*
|
|
148
|
+
* See `ProtonDriveClient.trashNodes` for more information.
|
|
149
|
+
*/
|
|
150
|
+
async *trashNodes(nodeUids, signal) {
|
|
151
|
+
this.logger.info(`Trashing ${nodeUids.length} nodes`);
|
|
152
|
+
yield* this.nodes.management.trashNodes((0, transformers_1.getUids)(nodeUids), signal);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Restore the nodes from the trash to their original place.
|
|
156
|
+
*
|
|
157
|
+
* See `ProtonDriveClient.restoreNodes` for more information.
|
|
158
|
+
*/
|
|
159
|
+
async *restoreNodes(nodeUids, signal) {
|
|
160
|
+
this.logger.info(`Restoring ${nodeUids.length} nodes`);
|
|
161
|
+
yield* this.nodes.management.restoreNodes((0, transformers_1.getUids)(nodeUids), signal);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Delete the nodes permanently.
|
|
165
|
+
*
|
|
166
|
+
* See `ProtonDriveClient.deleteNodes` for more information.
|
|
167
|
+
*/
|
|
168
|
+
async *deleteNodes(nodeUids, signal) {
|
|
169
|
+
this.logger.info(`Deleting ${nodeUids.length} nodes`);
|
|
170
|
+
yield* this.nodes.management.deleteNodes((0, transformers_1.getUids)(nodeUids), signal);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Empty the trash.
|
|
174
|
+
*
|
|
175
|
+
* See `ProtonDriveClient.emptyTrash` for more information.
|
|
176
|
+
*/
|
|
177
|
+
async emptyTrash() {
|
|
178
|
+
this.logger.info('Emptying trash');
|
|
179
|
+
throw new Error('Method not implemented');
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Iterates the nodes shared by the user.
|
|
183
|
+
*
|
|
184
|
+
* See `ProtonDriveClient.iterateSharedNodes` for more information.
|
|
185
|
+
*/
|
|
186
|
+
async *iterateSharedNodes(signal) {
|
|
187
|
+
this.logger.info('Iterating shared nodes by me');
|
|
188
|
+
yield* (0, transformers_1.convertInternalNodeIterator)(this.sharing.access.iterateSharedNodes(signal));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Iterates the nodes shared with the user.
|
|
192
|
+
*
|
|
193
|
+
* See `ProtonDriveClient.iterateSharedNodesWithMe` for more information.
|
|
194
|
+
*/
|
|
195
|
+
async *iterateSharedNodesWithMe(signal) {
|
|
196
|
+
this.logger.info('Iterating shared nodes with me');
|
|
197
|
+
for await (const node of this.sharing.access.iterateSharedNodesWithMe(signal)) {
|
|
198
|
+
yield (0, transformers_1.convertInternalNode)(node);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Leave shared node that was previously shared with the user.
|
|
203
|
+
*
|
|
204
|
+
* See `ProtonDriveClient.leaveSharedNode` for more information.
|
|
205
|
+
*/
|
|
206
|
+
async leaveSharedNode(nodeUid) {
|
|
207
|
+
this.logger.info(`Leaving shared node with me ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
208
|
+
await this.sharing.access.removeSharedNodeWithMe((0, transformers_1.getUid)(nodeUid));
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Iterates the invitations to shared nodes.
|
|
212
|
+
*
|
|
213
|
+
* See `ProtonDriveClient.iterateInvitations` for more information.
|
|
214
|
+
*/
|
|
215
|
+
async *iterateInvitations(signal) {
|
|
216
|
+
this.logger.info('Iterating invitations');
|
|
217
|
+
yield* this.sharing.access.iterateInvitations(signal);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Accept the invitation to the shared node.
|
|
221
|
+
*
|
|
222
|
+
* See `ProtonDriveClient.acceptInvitation` for more information.
|
|
223
|
+
*/
|
|
224
|
+
async acceptInvitation(invitationUid) {
|
|
225
|
+
this.logger.info(`Accepting invitation ${(0, transformers_1.getUid)(invitationUid)}`);
|
|
226
|
+
await this.sharing.access.acceptInvitation((0, transformers_1.getUid)(invitationUid));
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Reject the invitation to the shared node.
|
|
230
|
+
*
|
|
231
|
+
* See `ProtonDriveClient.rejectInvitation` for more information.
|
|
232
|
+
*/
|
|
233
|
+
async rejectInvitation(invitationUid) {
|
|
234
|
+
this.logger.info(`Rejecting invitation ${(0, transformers_1.getUid)(invitationUid)}`);
|
|
235
|
+
await this.sharing.access.rejectInvitation((0, transformers_1.getUid)(invitationUid));
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get sharing info of the node.
|
|
239
|
+
*
|
|
240
|
+
* See `ProtonDriveClient.getSharingInfo` for more information.
|
|
241
|
+
*/
|
|
242
|
+
async getSharingInfo(nodeUid) {
|
|
243
|
+
this.logger.info(`Getting sharing info for ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
244
|
+
return this.sharing.management.getSharingInfo((0, transformers_1.getUid)(nodeUid));
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Share or update sharing of the node.
|
|
248
|
+
*
|
|
249
|
+
* See `ProtonDriveClient.shareNode` for more information.
|
|
250
|
+
*/
|
|
251
|
+
async shareNode(nodeUid, settings) {
|
|
252
|
+
this.logger.info(`Sharing node ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
253
|
+
return this.sharing.management.shareNode((0, transformers_1.getUid)(nodeUid), settings);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Unshare the node, completely or partially.
|
|
257
|
+
*
|
|
258
|
+
* See `ProtonDriveClient.unshareNode` for more information.
|
|
259
|
+
*/
|
|
260
|
+
async unshareNode(nodeUid, settings) {
|
|
261
|
+
if (!settings) {
|
|
262
|
+
this.logger.info(`Unsharing node ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
this.logger.info(`Partially unsharing ${(0, transformers_1.getUid)(nodeUid)}`);
|
|
266
|
+
}
|
|
267
|
+
return this.sharing.management.unshareNode((0, transformers_1.getUid)(nodeUid), settings);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Resend the invitation email to shared node.
|
|
271
|
+
*
|
|
272
|
+
* See `ProtonDriveClient.resendInvitation` for more information.
|
|
273
|
+
*/
|
|
274
|
+
async resendInvitation(nodeUid, invitationUid) {
|
|
275
|
+
this.logger.info(`Resending invitation ${(0, transformers_1.getUid)(invitationUid)}`);
|
|
276
|
+
return this.sharing.management.resendInvitationEmail((0, transformers_1.getUid)(nodeUid), (0, transformers_1.getUid)(invitationUid));
|
|
136
277
|
}
|
|
137
278
|
/**
|
|
138
279
|
* Get the file downloader to download the node content.
|
|
@@ -162,6 +303,16 @@ class ProtonDrivePhotosClient {
|
|
|
162
303
|
const parentFolderUid = await this.nodes.access.getVolumeRootFolder();
|
|
163
304
|
return this.upload.getFileUploader((0, transformers_1.getUid)(parentFolderUid), name, metadata, signal);
|
|
164
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Iterates the albums.
|
|
308
|
+
*
|
|
309
|
+
* The output is not sorted and the order of the nodes is not guaranteed.
|
|
310
|
+
*/
|
|
311
|
+
async *iterateAlbums(signal) {
|
|
312
|
+
this.logger.info('Iterating albums');
|
|
313
|
+
// TODO: expose album type
|
|
314
|
+
yield* (0, transformers_1.convertInternalNodeIterator)(this.photos.albums.iterateAlbums(signal));
|
|
315
|
+
}
|
|
165
316
|
}
|
|
166
317
|
exports.ProtonDrivePhotosClient = ProtonDrivePhotosClient;
|
|
167
318
|
//# sourceMappingURL=protonDrivePhotosClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protonDrivePhotosClient.js","sourceRoot":"","sources":["../src/protonDrivePhotosClient.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"protonDrivePhotosClient.js","sourceRoot":"","sources":["../src/protonDrivePhotosClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OpenPGPCrypto, SRPModule, SessionKey } from './crypto';
|
|
1
|
+
import { OpenPGPCrypto, PrivateKey, SRPModule, SessionKey } from './crypto';
|
|
2
2
|
import { ProtonDriveHTTPClient, ProtonDriveTelemetry, ProtonDriveConfig, NodeOrUid, ProtonDriveAccount, MaybeNode, NodeType, MaybeMissingNode, FileDownloader, ThumbnailType, ThumbnailResult } from './interface';
|
|
3
3
|
/**
|
|
4
4
|
* ProtonDrivePublicLinkClient is the interface for the public link client.
|
|
@@ -34,7 +34,7 @@ export declare class ProtonDrivePublicLinkClient {
|
|
|
34
34
|
*/
|
|
35
35
|
getDocsKey: (nodeUid: NodeOrUid) => Promise<SessionKey>;
|
|
36
36
|
};
|
|
37
|
-
constructor({ httpClient, account, openPGPCryptoModule, srpModule, config, telemetry, url, token,
|
|
37
|
+
constructor({ httpClient, account, openPGPCryptoModule, srpModule, config, telemetry, url, token, publicShareKey, publicRootNodeUid, }: {
|
|
38
38
|
httpClient: ProtonDriveHTTPClient;
|
|
39
39
|
account: ProtonDriveAccount;
|
|
40
40
|
openPGPCryptoModule: OpenPGPCrypto;
|
|
@@ -43,7 +43,8 @@ export declare class ProtonDrivePublicLinkClient {
|
|
|
43
43
|
telemetry?: ProtonDriveTelemetry;
|
|
44
44
|
url: string;
|
|
45
45
|
token: string;
|
|
46
|
-
|
|
46
|
+
publicShareKey: PrivateKey;
|
|
47
|
+
publicRootNodeUid: string;
|
|
47
48
|
});
|
|
48
49
|
/**
|
|
49
50
|
* @returns The root folder to the public link.
|
|
@@ -29,7 +29,7 @@ class ProtonDrivePublicLinkClient {
|
|
|
29
29
|
sharingPublic;
|
|
30
30
|
download;
|
|
31
31
|
experimental;
|
|
32
|
-
constructor({ httpClient, account, openPGPCryptoModule, srpModule, config, telemetry, url, token,
|
|
32
|
+
constructor({ httpClient, account, openPGPCryptoModule, srpModule, config, telemetry, url, token, publicShareKey, publicRootNodeUid, }) {
|
|
33
33
|
if (!telemetry) {
|
|
34
34
|
telemetry = new telemetry_1.Telemetry();
|
|
35
35
|
}
|
|
@@ -41,7 +41,7 @@ class ProtonDrivePublicLinkClient {
|
|
|
41
41
|
this.sdkEvents = new sdkEvents_1.SDKEvents(telemetry);
|
|
42
42
|
const apiService = new apiService_1.DriveAPIService(telemetry, this.sdkEvents, httpClient, fullConfig.baseUrl, fullConfig.language);
|
|
43
43
|
const cryptoModule = new crypto_1.DriveCrypto(openPGPCryptoModule, srpModule);
|
|
44
|
-
this.sharingPublic = (0, sharingPublic_1.initSharingPublicModule)(telemetry, apiService, entitiesCache, cryptoCache, cryptoModule, account, url, token,
|
|
44
|
+
this.sharingPublic = (0, sharingPublic_1.initSharingPublicModule)(telemetry, apiService, entitiesCache, cryptoCache, cryptoModule, account, url, token, publicShareKey, publicRootNodeUid);
|
|
45
45
|
this.download = (0, download_1.initDownloadModule)(telemetry, apiService, cryptoModule, account, this.sharingPublic.shares, this.sharingPublic.nodes.access, this.sharingPublic.nodes.revisions);
|
|
46
46
|
this.experimental = {
|
|
47
47
|
getNodeUrl: async (nodeUid) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protonDrivePublicLinkClient.js","sourceRoot":"","sources":["../src/protonDrivePublicLinkClient.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,qCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"protonDrivePublicLinkClient.js","sourceRoot":"","sources":["../src/protonDrivePublicLinkClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import { ProtonDriveTelemetry } from '../interface';
|
|
2
|
-
export declare function getMockTelemetry(): ProtonDriveTelemetry
|
|
1
|
+
import { Logger, ProtonDriveTelemetry } from '../interface';
|
|
2
|
+
export declare function getMockTelemetry(): ProtonDriveTelemetry & {
|
|
3
|
+
mockLogger: Logger;
|
|
4
|
+
};
|
package/dist/tests/telemetry.js
CHANGED
|
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getMockTelemetry = getMockTelemetry;
|
|
4
4
|
const logger_1 = require("./logger");
|
|
5
5
|
function getMockTelemetry() {
|
|
6
|
+
const mockLogger = (0, logger_1.getMockLogger)();
|
|
6
7
|
return {
|
|
7
|
-
|
|
8
|
+
mockLogger,
|
|
9
|
+
getLogger: () => mockLogger,
|
|
8
10
|
recordMetric: jest.fn(),
|
|
9
11
|
};
|
|
10
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/tests/telemetry.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/tests/telemetry.ts"],"names":[],"mappings":";;AAGA,4CAQC;AAVD,qCAAyC;AAEzC,SAAgB,gBAAgB;IAC5B,MAAM,UAAU,GAAG,IAAA,sBAAa,GAAE,CAAC;IAEnC,OAAO;QACH,UAAU;QACV,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU;QAC3B,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;KAC1B,CAAC;AACN,CAAC"}
|
package/dist/transformers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MaybeNode as PublicMaybeNode, MaybeMissingNode as PublicMaybeMissingNode, Result, MissingNode } from './interface';
|
|
2
|
-
import { DecryptedNode as InternalNode } from './internal/nodes';
|
|
1
|
+
import { MaybeNode as PublicMaybeNode, MaybeMissingNode as PublicMaybeMissingNode, Revision as PublicRevision, Result, MissingNode } from './interface';
|
|
2
|
+
import { DecryptedNode as InternalNode, DecryptedRevision as InternalRevision } from './internal/nodes';
|
|
3
3
|
type InternalPartialNode = Pick<InternalNode, 'uid' | 'parentUid' | 'name' | 'keyAuthor' | 'nameAuthor' | 'directRole' | 'membership' | 'type' | 'mediaType' | 'isShared' | 'isSharedPublicly' | 'creationTime' | 'trashTime' | 'activeRevision' | 'folder' | 'totalStorageSize' | 'errors' | 'shareId' | 'treeEventScopeId'>;
|
|
4
4
|
type NodeUid = string | {
|
|
5
5
|
uid: string;
|
|
@@ -14,4 +14,5 @@ export declare function convertInternalNodeIterator(nodeIterator: AsyncGenerator
|
|
|
14
14
|
export declare function convertInternalMissingNodeIterator(nodeIterator: AsyncGenerator<InternalPartialNode | MissingNode>): AsyncGenerator<PublicMaybeMissingNode>;
|
|
15
15
|
export declare function convertInternalNodePromise(nodePromise: Promise<InternalPartialNode>): Promise<PublicMaybeNode>;
|
|
16
16
|
export declare function convertInternalNode(node: InternalPartialNode): PublicMaybeNode;
|
|
17
|
+
export declare function convertInternalRevisionIterator(revisionIterator: AsyncGenerator<InternalRevision>): AsyncGenerator<PublicRevision>;
|
|
17
18
|
export {};
|
package/dist/transformers.js
CHANGED
|
@@ -6,6 +6,7 @@ exports.convertInternalNodeIterator = convertInternalNodeIterator;
|
|
|
6
6
|
exports.convertInternalMissingNodeIterator = convertInternalMissingNodeIterator;
|
|
7
7
|
exports.convertInternalNodePromise = convertInternalNodePromise;
|
|
8
8
|
exports.convertInternalNode = convertInternalNode;
|
|
9
|
+
exports.convertInternalRevisionIterator = convertInternalRevisionIterator;
|
|
9
10
|
const interface_1 = require("./interface");
|
|
10
11
|
function getUid(nodeUid) {
|
|
11
12
|
if (typeof nodeUid === 'string') {
|
|
@@ -80,6 +81,11 @@ function convertInternalNode(node) {
|
|
|
80
81
|
activeRevision: activeRevision?.ok ? convertInternalRevision(activeRevision.value) : undefined,
|
|
81
82
|
});
|
|
82
83
|
}
|
|
84
|
+
async function* convertInternalRevisionIterator(revisionIterator) {
|
|
85
|
+
for await (const revision of revisionIterator) {
|
|
86
|
+
yield convertInternalRevision(revision);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
83
89
|
function convertInternalRevision(revision) {
|
|
84
90
|
return {
|
|
85
91
|
uid: revision.uid,
|
package/dist/transformers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":";;AAsCA,wBAaC;AAED,0BAEC;AAED,kEAMC;AAED,gFAUC;AAED,gEAGC;AAED,kDAuCC;
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { MaybeNode } from '../interface';
|
|
2
|
+
import { ProtonDriveClient } from '../protonDriveClient';
|
|
2
3
|
import { DiagnosticHTTPClient } from './httpClient';
|
|
3
|
-
import {
|
|
4
|
+
import { DiagnosticOptions, DiagnosticResult } from './interface';
|
|
5
|
+
import { SDKDiagnostic } from './sdkDiagnostic';
|
|
4
6
|
import { DiagnosticTelemetry } from './telemetry';
|
|
5
7
|
import { zipGenerators } from './zipGenerators';
|
|
6
8
|
|
|
@@ -8,23 +10,25 @@ import { zipGenerators } from './zipGenerators';
|
|
|
8
10
|
* Diagnostic tool that produces full diagnostic, including logs and metrics
|
|
9
11
|
* by reading the events from the telemetry and HTTP client.
|
|
10
12
|
*/
|
|
11
|
-
export class
|
|
13
|
+
export class Diagnostic {
|
|
12
14
|
constructor(
|
|
13
|
-
private diagnostic: Diagnostic,
|
|
14
15
|
private telemetry: DiagnosticTelemetry,
|
|
15
16
|
private httpClient: DiagnosticHTTPClient,
|
|
17
|
+
private protonDriveClient: ProtonDriveClient,
|
|
16
18
|
) {
|
|
17
|
-
this.diagnostic = diagnostic;
|
|
18
19
|
this.telemetry = telemetry;
|
|
19
20
|
this.httpClient = httpClient;
|
|
21
|
+
this.protonDriveClient = protonDriveClient;
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
async *verifyMyFiles(options?: DiagnosticOptions): AsyncGenerator<DiagnosticResult> {
|
|
23
|
-
|
|
25
|
+
const diagnostic = new SDKDiagnostic(this.protonDriveClient);
|
|
26
|
+
yield* this.yieldEvents(diagnostic.verifyMyFiles(options));
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
async *verifyNodeTree(node: MaybeNode, options?: DiagnosticOptions): AsyncGenerator<DiagnosticResult> {
|
|
27
|
-
|
|
30
|
+
const diagnostic = new SDKDiagnostic(this.protonDriveClient);
|
|
31
|
+
yield* this.yieldEvents(diagnostic.verifyNodeTree(node, options));
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
private async *yieldEvents(generator: AsyncGenerator<DiagnosticResult>): AsyncGenerator<DiagnosticResult> {
|
package/src/diagnostic/index.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MemoryCache, NullCache } from '../cache';
|
|
2
2
|
import { ProtonDriveClientContructorParameters } from '../interface';
|
|
3
3
|
import { ProtonDriveClient } from '../protonDriveClient';
|
|
4
|
-
import {
|
|
4
|
+
import { Diagnostic as DiagnosticClass } from './diagnostic';
|
|
5
5
|
import { Diagnostic } from './interface';
|
|
6
|
-
import {
|
|
7
|
-
import { FullSDKDiagnostic } from './sdkDiagnosticFull';
|
|
6
|
+
import { DiagnosticHTTPClient } from './httpClient';
|
|
8
7
|
import { DiagnosticTelemetry } from './telemetry';
|
|
9
8
|
|
|
10
9
|
export type { Diagnostic, DiagnosticResult } from './interface';
|
|
@@ -35,6 +34,5 @@ export function initDiagnostic(
|
|
|
35
34
|
telemetry,
|
|
36
35
|
});
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
return new FullSDKDiagnostic(diagnostic, telemetry, httpClient);
|
|
37
|
+
return new DiagnosticClass(telemetry, httpClient, protonDriveClient);
|
|
40
38
|
}
|
|
@@ -9,6 +9,15 @@ export interface Diagnostic {
|
|
|
9
9
|
export type DiagnosticOptions = {
|
|
10
10
|
verifyContent?: boolean;
|
|
11
11
|
verifyThumbnails?: boolean;
|
|
12
|
+
expectedStructure?: ExcpectedTreeNode;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// Tree structure of the expected node tree.
|
|
16
|
+
export type ExcpectedTreeNode = {
|
|
17
|
+
name: string;
|
|
18
|
+
expectedSha1?: string;
|
|
19
|
+
expectedSizeInBytes?: number;
|
|
20
|
+
children?: ExcpectedTreeNode[];
|
|
12
21
|
};
|
|
13
22
|
|
|
14
23
|
export type DiagnosticResult =
|
|
@@ -23,6 +32,9 @@ export type DiagnosticResult =
|
|
|
23
32
|
| ContentIntegrityErrorResult
|
|
24
33
|
| ContentDownloadErrorResult
|
|
25
34
|
| ThumbnailsErrorResult
|
|
35
|
+
| ExpectedStructureMissingNode
|
|
36
|
+
| ExpectedStructureUnexpectedNode
|
|
37
|
+
| ExpectedStructureIntegrityError
|
|
26
38
|
| LogErrorResult
|
|
27
39
|
| LogWarningResult
|
|
28
40
|
| MetricResult;
|
|
@@ -121,6 +133,33 @@ export type ThumbnailsErrorResult = {
|
|
|
121
133
|
error: unknown;
|
|
122
134
|
} & NodeDetails;
|
|
123
135
|
|
|
136
|
+
// Event representing that expected node is missing.
|
|
137
|
+
// This will be reported for any node that is not found compared to
|
|
138
|
+
// the expected structure.
|
|
139
|
+
export type ExpectedStructureMissingNode = {
|
|
140
|
+
type: 'expected_structure_missing_node';
|
|
141
|
+
expectedNode: ExcpectedTreeNode;
|
|
142
|
+
parentNodeUid: string;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// Event representing that unexpected node is present.
|
|
146
|
+
// This will be reported for any node that is found in the actual structure
|
|
147
|
+
// but is not defined in the expected structure.
|
|
148
|
+
export type ExpectedStructureUnexpectedNode = {
|
|
149
|
+
type: 'expected_structure_unexpected_node';
|
|
150
|
+
} & NodeDetails;
|
|
151
|
+
|
|
152
|
+
// Event representing that expected node is not matching the actual node.
|
|
153
|
+
// This will be reported when claimed and expected values are different.
|
|
154
|
+
// It doesn't check the real content - use content verification to verify
|
|
155
|
+
// the claimed values with the real content.
|
|
156
|
+
export type ExpectedStructureIntegrityError = {
|
|
157
|
+
type: 'expected_structure_integrity_error';
|
|
158
|
+
expectedNode: ExcpectedTreeNode;
|
|
159
|
+
claimedSha1?: string;
|
|
160
|
+
claimedSizeInBytes?: number;
|
|
161
|
+
} & NodeDetails;
|
|
162
|
+
|
|
124
163
|
// Event representing errors logged during the diagnostic.
|
|
125
164
|
export type LogErrorResult = {
|
|
126
165
|
type: 'log_error';
|