@protontech/drive-sdk 0.1.0 → 0.1.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/cache/memoryCache.js +0 -1
- package/dist/cache/memoryCache.js.map +1 -1
- package/dist/cache/memoryCache.test.js +2 -4
- package/dist/cache/memoryCache.test.js.map +1 -1
- package/dist/cache/nullCache.js +0 -1
- package/dist/cache/nullCache.js.map +1 -1
- package/dist/crypto/driveCrypto.d.ts +2 -5
- package/dist/crypto/driveCrypto.js +7 -12
- package/dist/crypto/driveCrypto.js.map +1 -1
- package/dist/crypto/driveCrypto.test.js +14 -14
- package/dist/crypto/openPGPCrypto.js +3 -3
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/diagnostic/eventsGenerator.js +1 -1
- package/dist/diagnostic/eventsGenerator.js.map +1 -1
- package/dist/diagnostic/httpClient.d.ts +1 -1
- package/dist/diagnostic/httpClient.js.map +1 -1
- package/dist/diagnostic/index.d.ts +3 -3
- package/dist/diagnostic/index.js.map +1 -1
- package/dist/diagnostic/integrityVerificationStream.js +1 -1
- package/dist/diagnostic/integrityVerificationStream.js.map +1 -1
- package/dist/diagnostic/interface.d.ts +2 -2
- package/dist/diagnostic/sdkDiagnostic.d.ts +3 -3
- package/dist/diagnostic/sdkDiagnostic.js +8 -2
- package/dist/diagnostic/sdkDiagnostic.js.map +1 -1
- package/dist/diagnostic/sdkDiagnosticFull.d.ts +4 -4
- package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -1
- package/dist/diagnostic/telemetry.js.map +1 -1
- package/dist/diagnostic/zipGenerators.js +2 -2
- package/dist/diagnostic/zipGenerators.js.map +1 -1
- package/dist/diagnostic/zipGenerators.test.js +1 -1
- package/dist/diagnostic/zipGenerators.test.js.map +1 -1
- package/dist/interface/events.d.ts +2 -4
- package/dist/interface/events.js.map +1 -1
- package/dist/interface/index.d.ts +5 -5
- package/dist/interface/index.js +0 -1
- package/dist/interface/index.js.map +1 -1
- package/dist/interface/result.js.map +1 -1
- package/dist/interface/sharing.d.ts +1 -0
- package/dist/interface/sharing.js.map +1 -1
- package/dist/interface/telemetry.js +0 -8
- package/dist/interface/telemetry.js.map +1 -1
- package/dist/interface/thumbnail.js.map +1 -1
- package/dist/interface/upload.d.ts +1 -1
- package/dist/internal/apiService/apiService.d.ts +1 -1
- package/dist/internal/apiService/apiService.js +7 -11
- package/dist/internal/apiService/apiService.js.map +1 -1
- package/dist/internal/apiService/apiService.test.js +55 -48
- package/dist/internal/apiService/apiService.test.js.map +1 -1
- package/dist/internal/apiService/coreTypes.d.ts +2356 -2356
- package/dist/internal/apiService/driveTypes.d.ts +1680 -1680
- package/dist/internal/apiService/errors.js +14 -8
- package/dist/internal/apiService/errors.js.map +1 -1
- package/dist/internal/apiService/errors.test.js +17 -12
- package/dist/internal/apiService/errors.test.js.map +1 -1
- package/dist/internal/apiService/transformers.d.ts +1 -1
- package/dist/internal/apiService/transformers.js +1 -1
- package/dist/internal/asyncIteratorMap.test.js +2 -2
- package/dist/internal/asyncIteratorMap.test.js.map +1 -1
- package/dist/internal/asyncIteratorRace.d.ts +13 -0
- package/dist/internal/asyncIteratorRace.js +59 -0
- package/dist/internal/asyncIteratorRace.js.map +1 -0
- package/dist/internal/asyncIteratorRace.test.d.ts +1 -0
- package/dist/internal/asyncIteratorRace.test.js +119 -0
- package/dist/internal/asyncIteratorRace.test.js.map +1 -0
- package/dist/internal/batch.d.ts +1 -0
- package/dist/internal/batch.js +12 -0
- package/dist/internal/batch.js.map +1 -0
- package/dist/internal/batch.test.d.ts +1 -0
- package/dist/internal/batch.test.js +41 -0
- package/dist/internal/batch.test.js.map +1 -0
- package/dist/internal/batchLoading.js.map +1 -1
- package/dist/internal/batchLoading.test.js +13 -13
- package/dist/internal/batchLoading.test.js.map +1 -1
- package/dist/internal/devices/apiService.d.ts +3 -3
- package/dist/internal/devices/apiService.js +2 -2
- package/dist/internal/devices/apiService.js.map +1 -1
- package/dist/internal/devices/cryptoService.js +1 -2
- package/dist/internal/devices/cryptoService.js.map +1 -1
- package/dist/internal/devices/index.d.ts +5 -5
- package/dist/internal/devices/index.js.map +1 -1
- package/dist/internal/devices/interface.d.ts +3 -3
- package/dist/internal/devices/manager.js +2 -2
- package/dist/internal/devices/manager.js.map +1 -1
- package/dist/internal/devices/manager.test.js +38 -7
- package/dist/internal/devices/manager.test.js.map +1 -1
- package/dist/internal/download/apiService.d.ts +4 -4
- package/dist/internal/download/apiService.js +0 -1
- package/dist/internal/download/apiService.js.map +1 -1
- package/dist/internal/download/cryptoService.d.ts +4 -4
- package/dist/internal/download/cryptoService.js +6 -5
- package/dist/internal/download/cryptoService.js.map +1 -1
- package/dist/internal/download/fileDownloader.d.ts +4 -4
- package/dist/internal/download/fileDownloader.js +3 -2
- package/dist/internal/download/fileDownloader.js.map +1 -1
- package/dist/internal/download/fileDownloader.test.js +1 -1
- package/dist/internal/download/fileDownloader.test.js.map +1 -1
- package/dist/internal/download/index.d.ts +5 -5
- package/dist/internal/download/index.js +5 -5
- package/dist/internal/download/index.js.map +1 -1
- package/dist/internal/download/interface.d.ts +3 -4
- package/dist/internal/download/telemetry.d.ts +3 -3
- package/dist/internal/download/telemetry.js +4 -2
- package/dist/internal/download/telemetry.js.map +1 -1
- package/dist/internal/download/telemetry.test.js +8 -8
- package/dist/internal/download/telemetry.test.js.map +1 -1
- package/dist/internal/download/thumbnailDownloader.d.ts +4 -4
- package/dist/internal/download/thumbnailDownloader.js +6 -6
- package/dist/internal/download/thumbnailDownloader.js.map +1 -1
- package/dist/internal/download/thumbnailDownloader.test.js.map +1 -1
- package/dist/internal/errors.d.ts +1 -1
- package/dist/internal/errors.js +1 -3
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/events/apiService.d.ts +2 -2
- package/dist/internal/events/apiService.js +9 -5
- package/dist/internal/events/apiService.js.map +1 -1
- package/dist/internal/events/coreEventManager.d.ts +3 -3
- package/dist/internal/events/coreEventManager.js.map +1 -1
- package/dist/internal/events/coreEventManager.test.js +14 -14
- package/dist/internal/events/eventManager.d.ts +2 -1
- package/dist/internal/events/eventManager.js +9 -1
- package/dist/internal/events/eventManager.js.map +1 -1
- package/dist/internal/events/eventManager.test.js +84 -60
- package/dist/internal/events/eventManager.test.js.map +1 -1
- package/dist/internal/events/index.d.ts +10 -9
- package/dist/internal/events/index.js +38 -32
- package/dist/internal/events/index.js.map +1 -1
- package/dist/internal/events/interface.d.ts +1 -1
- package/dist/internal/events/interface.js +0 -1
- package/dist/internal/events/interface.js.map +1 -1
- package/dist/internal/events/volumeEventManager.d.ts +3 -3
- package/dist/internal/events/volumeEventManager.js.map +1 -1
- package/dist/internal/events/volumeEventManager.test.js +55 -55
- package/dist/internal/events/volumeEventManager.test.js.map +1 -1
- package/dist/internal/nodes/apiService.d.ts +4 -3
- package/dist/internal/nodes/apiService.js +36 -15
- package/dist/internal/nodes/apiService.js.map +1 -1
- package/dist/internal/nodes/apiService.test.js +60 -41
- package/dist/internal/nodes/apiService.test.js.map +1 -1
- package/dist/internal/nodes/cache.d.ts +5 -5
- package/dist/internal/nodes/cache.js +14 -7
- package/dist/internal/nodes/cache.js.map +1 -1
- package/dist/internal/nodes/cache.test.js +31 -9
- package/dist/internal/nodes/cache.test.js.map +1 -1
- package/dist/internal/nodes/cryptoCache.d.ts +2 -2
- package/dist/internal/nodes/cryptoCache.js.map +1 -1
- package/dist/internal/nodes/cryptoCache.test.js +24 -4
- package/dist/internal/nodes/cryptoCache.test.js.map +1 -1
- package/dist/internal/nodes/cryptoService.d.ts +3 -3
- package/dist/internal/nodes/cryptoService.js +11 -17
- package/dist/internal/nodes/cryptoService.js.map +1 -1
- package/dist/internal/nodes/cryptoService.test.js +320 -241
- package/dist/internal/nodes/cryptoService.test.js.map +1 -1
- package/dist/internal/nodes/events.d.ts +3 -3
- package/dist/internal/nodes/events.js +7 -7
- package/dist/internal/nodes/events.js.map +1 -1
- package/dist/internal/nodes/events.test.js +27 -21
- package/dist/internal/nodes/events.test.js.map +1 -1
- package/dist/internal/nodes/extendedAttributes.d.ts +1 -1
- package/dist/internal/nodes/extendedAttributes.js +3 -1
- package/dist/internal/nodes/extendedAttributes.js.map +1 -1
- package/dist/internal/nodes/extendedAttributes.test.js +7 -10
- package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
- package/dist/internal/nodes/index.d.ts +10 -10
- package/dist/internal/nodes/index.js.map +1 -1
- package/dist/internal/nodes/index.test.d.ts +1 -0
- package/dist/internal/nodes/index.test.js +106 -0
- package/dist/internal/nodes/index.test.js.map +1 -0
- package/dist/internal/nodes/interface.d.ts +2 -2
- package/dist/internal/nodes/nodesAccess.d.ts +7 -7
- package/dist/internal/nodes/nodesAccess.js +28 -16
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +39 -13
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.d.ts +6 -6
- package/dist/internal/nodes/nodesManagement.js +9 -7
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.test.js +9 -9
- package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
- package/dist/internal/nodes/nodesRevisions.d.ts +4 -4
- package/dist/internal/nodes/nodesRevisions.js.map +1 -1
- package/dist/internal/photos/albums.d.ts +3 -3
- package/dist/internal/photos/albums.js.map +1 -1
- package/dist/internal/photos/apiService.d.ts +1 -1
- package/dist/internal/photos/apiService.js +3 -6
- package/dist/internal/photos/apiService.js.map +1 -1
- package/dist/internal/photos/cache.d.ts +1 -1
- package/dist/internal/photos/index.d.ts +5 -5
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/interface.d.ts +2 -2
- package/dist/internal/photos/photosTimeline.d.ts +3 -3
- package/dist/internal/photos/photosTimeline.js +1 -2
- package/dist/internal/photos/photosTimeline.js.map +1 -1
- package/dist/internal/sdkEvents.d.ts +1 -1
- package/dist/internal/sdkEvents.js +2 -7
- package/dist/internal/sdkEvents.js.map +1 -1
- package/dist/internal/sdkEvents.test.js +8 -8
- package/dist/internal/shares/apiService.d.ts +2 -2
- package/dist/internal/shares/apiService.js +5 -3
- package/dist/internal/shares/apiService.js.map +1 -1
- package/dist/internal/shares/cache.d.ts +2 -2
- package/dist/internal/shares/cache.js +12 -6
- package/dist/internal/shares/cache.js.map +1 -1
- package/dist/internal/shares/cache.test.js.map +1 -1
- package/dist/internal/shares/cryptoCache.d.ts +2 -2
- package/dist/internal/shares/cryptoCache.test.js +8 -2
- package/dist/internal/shares/cryptoCache.test.js.map +1 -1
- package/dist/internal/shares/cryptoService.d.ts +3 -3
- package/dist/internal/shares/cryptoService.js.map +1 -1
- package/dist/internal/shares/cryptoService.test.js +42 -42
- package/dist/internal/shares/cryptoService.test.js.map +1 -1
- package/dist/internal/shares/index.d.ts +4 -4
- package/dist/internal/shares/index.js.map +1 -1
- package/dist/internal/shares/interface.d.ts +2 -2
- package/dist/internal/shares/manager.d.ts +7 -7
- package/dist/internal/shares/manager.js.map +1 -1
- package/dist/internal/shares/manager.test.js +71 -63
- package/dist/internal/shares/manager.test.js.map +1 -1
- package/dist/internal/sharing/apiService.d.ts +4 -4
- package/dist/internal/sharing/apiService.js +4 -3
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/sharing/cache.d.ts +2 -1
- package/dist/internal/sharing/cache.js +9 -0
- package/dist/internal/sharing/cache.js.map +1 -1
- package/dist/internal/sharing/cache.test.js +33 -33
- package/dist/internal/sharing/cryptoService.d.ts +3 -3
- package/dist/internal/sharing/cryptoService.js +3 -5
- package/dist/internal/sharing/cryptoService.js.map +1 -1
- package/dist/internal/sharing/cryptoService.test.js +39 -39
- package/dist/internal/sharing/cryptoService.test.js.map +1 -1
- package/dist/internal/sharing/events.d.ts +5 -4
- package/dist/internal/sharing/events.js +28 -19
- package/dist/internal/sharing/events.js.map +1 -1
- package/dist/internal/sharing/events.test.js +101 -88
- package/dist/internal/sharing/events.test.js.map +1 -1
- package/dist/internal/sharing/index.d.ts +6 -6
- package/dist/internal/sharing/index.js.map +1 -1
- package/dist/internal/sharing/interface.d.ts +5 -4
- package/dist/internal/sharing/sharingAccess.d.ts +6 -6
- package/dist/internal/sharing/sharingAccess.js +8 -4
- package/dist/internal/sharing/sharingAccess.js.map +1 -1
- package/dist/internal/sharing/sharingAccess.test.js +45 -39
- package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.d.ts +4 -4
- package/dist/internal/sharing/sharingManagement.js +5 -7
- package/dist/internal/sharing/sharingManagement.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.test.js +297 -248
- package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
- package/dist/internal/uids.js.map +1 -1
- package/dist/internal/upload/apiService.d.ts +3 -3
- package/dist/internal/upload/apiService.js +1 -1
- package/dist/internal/upload/apiService.js.map +1 -1
- package/dist/internal/upload/blockVerifier.d.ts +3 -3
- package/dist/internal/upload/blockVerifier.js +1 -1
- package/dist/internal/upload/blockVerifier.js.map +1 -1
- package/dist/internal/upload/chunkStreamReader.test.js +6 -6
- package/dist/internal/upload/cryptoService.d.ts +4 -4
- package/dist/internal/upload/cryptoService.js +4 -4
- package/dist/internal/upload/cryptoService.js.map +1 -1
- package/dist/internal/upload/digests.js.map +1 -1
- package/dist/internal/upload/fileUploader.d.ts +6 -6
- package/dist/internal/upload/fileUploader.js.map +1 -1
- 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.map +1 -1
- package/dist/internal/upload/interface.d.ts +4 -3
- package/dist/internal/upload/manager.d.ts +5 -5
- package/dist/internal/upload/manager.js +15 -9
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/manager.test.js +139 -128
- package/dist/internal/upload/manager.test.js.map +1 -1
- package/dist/internal/upload/streamUploader.d.ts +6 -6
- package/dist/internal/upload/streamUploader.js +9 -7
- package/dist/internal/upload/streamUploader.js.map +1 -1
- package/dist/internal/upload/streamUploader.test.js +17 -12
- package/dist/internal/upload/streamUploader.test.js.map +1 -1
- package/dist/internal/upload/telemetry.d.ts +3 -3
- package/dist/internal/upload/telemetry.js +5 -3
- package/dist/internal/upload/telemetry.js.map +1 -1
- package/dist/internal/upload/telemetry.test.js +8 -8
- package/dist/internal/upload/telemetry.test.js.map +1 -1
- package/dist/protonDriveClient.d.ts +8 -8
- package/dist/protonDriveClient.js +12 -9
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/dist/telemetry.js +18 -15
- package/dist/telemetry.js.map +1 -1
- package/dist/tests/logger.js.map +1 -1
- package/dist/tests/telemetry.d.ts +1 -1
- package/dist/transformers.d.ts +1 -1
- package/dist/transformers.js +5 -2
- package/dist/transformers.js.map +1 -1
- package/package.json +1 -1
- package/src/cache/interface.ts +22 -22
- package/src/cache/memoryCache.test.ts +7 -7
- package/src/cache/memoryCache.ts +4 -4
- package/src/cache/nullCache.ts +1 -1
- package/src/config.ts +5 -5
- package/src/crypto/driveCrypto.test.ts +15 -15
- package/src/crypto/driveCrypto.ts +120 -156
- package/src/crypto/hmac.ts +1 -1
- package/src/crypto/interface.ts +63 -72
- package/src/crypto/openPGPCrypto.ts +74 -94
- package/src/crypto/utils.ts +1 -1
- package/src/diagnostic/eventsGenerator.ts +2 -2
- package/src/diagnostic/httpClient.ts +6 -2
- package/src/diagnostic/index.ts +12 -10
- package/src/diagnostic/integrityVerificationStream.ts +3 -4
- package/src/diagnostic/interface.ts +81 -81
- package/src/diagnostic/sdkDiagnostic.ts +35 -24
- package/src/diagnostic/sdkDiagnosticFull.ts +16 -19
- package/src/diagnostic/telemetry.ts +4 -1
- package/src/diagnostic/zipGenerators.test.ts +1 -1
- package/src/diagnostic/zipGenerators.ts +3 -3
- package/src/errors.ts +21 -21
- package/src/index.ts +3 -3
- package/src/interface/account.ts +10 -10
- package/src/interface/author.ts +6 -6
- package/src/interface/config.ts +4 -4
- package/src/interface/devices.ts +6 -6
- package/src/interface/download.ts +12 -9
- package/src/interface/events.ts +45 -39
- package/src/interface/httpClient.ts +11 -11
- package/src/interface/index.ts +76 -19
- package/src/interface/nodes.ts +47 -49
- package/src/interface/result.ts +1 -3
- package/src/interface/sharing.ts +60 -57
- package/src/interface/telemetry.ts +74 -74
- package/src/interface/thumbnail.ts +5 -6
- package/src/interface/upload.ts +20 -12
- package/src/internal/apiService/apiService.test.ts +109 -76
- package/src/internal/apiService/apiService.ts +40 -26
- package/src/internal/apiService/coreTypes.ts +2474 -2463
- package/src/internal/apiService/driveTypes.ts +1868 -1822
- package/src/internal/apiService/errorCodes.ts +4 -4
- package/src/internal/apiService/errors.test.ts +25 -23
- package/src/internal/apiService/errors.ts +15 -9
- package/src/internal/apiService/index.ts +1 -1
- package/src/internal/apiService/transformers.ts +2 -2
- package/src/internal/asyncIteratorMap.test.ts +4 -4
- package/src/internal/asyncIteratorMap.ts +1 -1
- package/src/internal/asyncIteratorRace.test.ts +149 -0
- package/src/internal/asyncIteratorRace.ts +79 -0
- package/src/internal/batch.test.ts +50 -0
- package/src/internal/batch.ts +9 -0
- package/src/internal/batchLoading.test.ts +13 -14
- package/src/internal/batchLoading.ts +8 -8
- package/src/internal/devices/apiService.ts +58 -51
- package/src/internal/devices/cryptoService.ts +22 -17
- package/src/internal/devices/index.ts +17 -10
- package/src/internal/devices/interface.ts +21 -12
- package/src/internal/devices/manager.test.ts +40 -9
- package/src/internal/devices/manager.ts +3 -3
- package/src/internal/download/apiService.ts +66 -49
- package/src/internal/download/cryptoService.ts +34 -18
- package/src/internal/download/fileDownloader.test.ts +25 -9
- package/src/internal/download/fileDownloader.ts +36 -18
- package/src/internal/download/index.ts +19 -19
- package/src/internal/download/interface.ts +19 -20
- package/src/internal/download/queue.ts +3 -3
- package/src/internal/download/telemetry.test.ts +11 -11
- package/src/internal/download/telemetry.ts +24 -14
- package/src/internal/download/thumbnailDownloader.test.ts +11 -6
- package/src/internal/download/thumbnailDownloader.ts +43 -32
- package/src/internal/errors.ts +7 -5
- package/src/internal/events/apiService.ts +30 -17
- package/src/internal/events/coreEventManager.test.ts +18 -18
- package/src/internal/events/coreEventManager.ts +9 -6
- package/src/internal/events/eventManager.test.ts +108 -82
- package/src/internal/events/eventManager.ts +16 -5
- package/src/internal/events/index.ts +75 -47
- package/src/internal/events/interface.ts +47 -39
- package/src/internal/events/volumeEventManager.test.ts +61 -65
- package/src/internal/events/volumeEventManager.ts +18 -9
- package/src/internal/nodes/apiService.test.ts +197 -147
- package/src/internal/nodes/apiService.ts +288 -174
- package/src/internal/nodes/cache.test.ts +48 -20
- package/src/internal/nodes/cache.ts +60 -44
- package/src/internal/nodes/cryptoCache.test.ts +34 -14
- package/src/internal/nodes/cryptoCache.ts +10 -5
- package/src/internal/nodes/cryptoService.test.ts +492 -351
- package/src/internal/nodes/cryptoService.ts +170 -88
- package/src/internal/nodes/events.test.ts +38 -28
- package/src/internal/nodes/events.ts +13 -12
- package/src/internal/nodes/extendedAttributes.test.ts +28 -24
- package/src/internal/nodes/extendedAttributes.ts +20 -15
- package/src/internal/nodes/index.test.ts +133 -0
- package/src/internal/nodes/index.ts +27 -15
- package/src/internal/nodes/interface.ts +42 -29
- package/src/internal/nodes/nodesAccess.test.ts +124 -58
- package/src/internal/nodes/nodesAccess.ts +73 -49
- package/src/internal/nodes/nodesManagement.test.ts +32 -31
- package/src/internal/nodes/nodesManagement.ts +39 -32
- package/src/internal/nodes/nodesRevisions.ts +7 -7
- package/src/internal/nodes/validations.ts +2 -2
- package/src/internal/photos/albums.ts +5 -5
- package/src/internal/photos/apiService.ts +4 -7
- package/src/internal/photos/cache.ts +1 -1
- package/src/internal/photos/index.ts +8 -8
- package/src/internal/photos/interface.ts +2 -2
- package/src/internal/photos/photosTimeline.ts +4 -5
- package/src/internal/sdkEvents.test.ts +10 -10
- package/src/internal/sdkEvents.ts +5 -13
- package/src/internal/shares/apiService.ts +44 -33
- package/src/internal/shares/cache.test.ts +6 -4
- package/src/internal/shares/cache.ts +21 -12
- package/src/internal/shares/cryptoCache.test.ts +17 -11
- package/src/internal/shares/cryptoCache.ts +4 -4
- package/src/internal/shares/cryptoService.test.ts +72 -74
- package/src/internal/shares/cryptoService.ts +48 -23
- package/src/internal/shares/index.ts +23 -11
- package/src/internal/shares/interface.ts +8 -8
- package/src/internal/shares/manager.test.ts +88 -80
- package/src/internal/shares/manager.ts +19 -19
- package/src/internal/sharing/apiService.ts +282 -175
- package/src/internal/sharing/cache.test.ts +35 -35
- package/src/internal/sharing/cache.ts +11 -2
- package/src/internal/sharing/cryptoService.test.ts +58 -46
- package/src/internal/sharing/cryptoService.ts +121 -84
- package/src/internal/sharing/events.test.ts +113 -102
- package/src/internal/sharing/events.ts +42 -24
- package/src/internal/sharing/index.ts +22 -11
- package/src/internal/sharing/interface.ts +40 -40
- package/src/internal/sharing/sharingAccess.test.ts +71 -65
- package/src/internal/sharing/sharingAccess.ts +39 -21
- package/src/internal/sharing/sharingManagement.test.ts +398 -298
- package/src/internal/sharing/sharingManagement.ts +138 -65
- package/src/internal/uids.ts +1 -1
- package/src/internal/upload/apiService.ts +167 -117
- package/src/internal/upload/blockVerifier.ts +8 -6
- package/src/internal/upload/chunkStreamReader.test.ts +7 -7
- package/src/internal/upload/cryptoService.ts +42 -36
- package/src/internal/upload/digests.ts +2 -2
- package/src/internal/upload/fileUploader.test.ts +15 -3
- package/src/internal/upload/fileUploader.ts +39 -17
- package/src/internal/upload/index.ts +13 -14
- package/src/internal/upload/interface.ts +79 -78
- package/src/internal/upload/manager.test.ts +170 -156
- package/src/internal/upload/manager.ts +66 -39
- package/src/internal/upload/queue.ts +3 -3
- package/src/internal/upload/streamUploader.test.ts +40 -26
- package/src/internal/upload/streamUploader.ts +87 -69
- package/src/internal/upload/telemetry.test.ts +11 -11
- package/src/internal/upload/telemetry.ts +25 -15
- package/src/internal/wait.test.ts +1 -1
- package/src/internal/wait.ts +3 -3
- package/src/protonDriveClient.ts +121 -39
- package/src/protonDrivePhotosClient.ts +16 -10
- package/src/telemetry.ts +60 -52
- package/src/tests/logger.ts +1 -1
- package/src/tests/telemetry.ts +2 -2
- package/src/transformers.ts +29 -21
- package/src/version.ts +0 -1
|
@@ -25,7 +25,7 @@ describe('UploadTelemetry', () => {
|
|
|
25
25
|
|
|
26
26
|
sharesService = {
|
|
27
27
|
getVolumeMetricContext: jest.fn().mockResolvedValue('own_volume'),
|
|
28
|
-
}
|
|
28
|
+
};
|
|
29
29
|
|
|
30
30
|
uploadTelemetry = new UploadTelemetry(mockTelemetry, sharesService);
|
|
31
31
|
});
|
|
@@ -35,11 +35,11 @@ describe('UploadTelemetry', () => {
|
|
|
35
35
|
await uploadTelemetry.uploadInitFailed(parentNodeUid, error, 1000);
|
|
36
36
|
|
|
37
37
|
expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
|
|
38
|
-
eventName:
|
|
39
|
-
volumeType:
|
|
38
|
+
eventName: 'upload',
|
|
39
|
+
volumeType: 'own_volume',
|
|
40
40
|
uploadedSize: 0,
|
|
41
41
|
expectedSize: 1000,
|
|
42
|
-
error:
|
|
42
|
+
error: 'unknown',
|
|
43
43
|
originalError: error,
|
|
44
44
|
});
|
|
45
45
|
});
|
|
@@ -49,11 +49,11 @@ describe('UploadTelemetry', () => {
|
|
|
49
49
|
await uploadTelemetry.uploadFailed(revisionUid, error, 500, 1000);
|
|
50
50
|
|
|
51
51
|
expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
|
|
52
|
-
eventName:
|
|
53
|
-
volumeType:
|
|
52
|
+
eventName: 'upload',
|
|
53
|
+
volumeType: 'own_volume',
|
|
54
54
|
uploadedSize: 500,
|
|
55
55
|
expectedSize: 1000,
|
|
56
|
-
error:
|
|
56
|
+
error: 'unknown',
|
|
57
57
|
originalError: error,
|
|
58
58
|
});
|
|
59
59
|
});
|
|
@@ -62,8 +62,8 @@ describe('UploadTelemetry', () => {
|
|
|
62
62
|
await uploadTelemetry.uploadFinished(revisionUid, 1000);
|
|
63
63
|
|
|
64
64
|
expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
|
|
65
|
-
eventName:
|
|
66
|
-
volumeType:
|
|
65
|
+
eventName: 'upload',
|
|
66
|
+
volumeType: 'own_volume',
|
|
67
67
|
uploadedSize: 1000,
|
|
68
68
|
expectedSize: 1000,
|
|
69
69
|
});
|
|
@@ -74,7 +74,7 @@ describe('UploadTelemetry', () => {
|
|
|
74
74
|
expect(mockTelemetry.logEvent).toHaveBeenCalledWith(
|
|
75
75
|
expect.objectContaining({
|
|
76
76
|
error,
|
|
77
|
-
})
|
|
77
|
+
}),
|
|
78
78
|
);
|
|
79
79
|
};
|
|
80
80
|
|
|
@@ -130,4 +130,4 @@ describe('UploadTelemetry', () => {
|
|
|
130
130
|
verifyErrorCategory('network_error');
|
|
131
131
|
});
|
|
132
132
|
});
|
|
133
|
-
});
|
|
133
|
+
});
|
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import { RateLimitedError, ValidationError, IntegrityError } from
|
|
2
|
-
import { ProtonDriveTelemetry, MetricsUploadErrorType, Logger } from
|
|
3
|
-
import { LoggerWithPrefix } from
|
|
1
|
+
import { RateLimitedError, ValidationError, IntegrityError } from '../../errors';
|
|
2
|
+
import { ProtonDriveTelemetry, MetricsUploadErrorType, Logger } from '../../interface';
|
|
3
|
+
import { LoggerWithPrefix } from '../../telemetry';
|
|
4
4
|
import { APIHTTPError } from '../apiService';
|
|
5
|
-
import { splitNodeUid, splitNodeRevisionUid } from
|
|
6
|
-
import { SharesService } from
|
|
5
|
+
import { splitNodeUid, splitNodeRevisionUid } from '../uids';
|
|
6
|
+
import { SharesService } from './interface';
|
|
7
7
|
|
|
8
8
|
export class UploadTelemetry {
|
|
9
9
|
private logger: Logger;
|
|
10
10
|
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(
|
|
12
|
+
private telemetry: ProtonDriveTelemetry,
|
|
13
|
+
private sharesService: SharesService,
|
|
14
|
+
) {
|
|
12
15
|
this.telemetry = telemetry;
|
|
13
|
-
this.logger = this.telemetry.getLogger(
|
|
16
|
+
this.logger = this.telemetry.getLogger('download');
|
|
14
17
|
this.sharesService = sharesService;
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
getLoggerForRevision(revisionUid: string) {
|
|
18
|
-
const logger = this.telemetry.getLogger(
|
|
21
|
+
const logger = this.telemetry.getLogger('upload');
|
|
19
22
|
return new LoggerWithPrefix(logger, `revision ${revisionUid}`);
|
|
20
23
|
}
|
|
21
24
|
|
|
@@ -70,12 +73,15 @@ export class UploadTelemetry {
|
|
|
70
73
|
});
|
|
71
74
|
}
|
|
72
75
|
|
|
73
|
-
private async sendTelemetry(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
private async sendTelemetry(
|
|
77
|
+
volumeId: string,
|
|
78
|
+
options: {
|
|
79
|
+
uploadedSize: number;
|
|
80
|
+
expectedSize: number;
|
|
81
|
+
error?: MetricsUploadErrorType;
|
|
82
|
+
originalError?: unknown;
|
|
83
|
+
},
|
|
84
|
+
) {
|
|
79
85
|
let volumeType;
|
|
80
86
|
try {
|
|
81
87
|
volumeType = await this.sharesService.getVolumeMetricContext(volumeId);
|
|
@@ -113,7 +119,11 @@ function getErrorCategory(error: unknown): MetricsUploadErrorType | undefined {
|
|
|
113
119
|
if (error.name === 'TimeoutError') {
|
|
114
120
|
return 'server_error';
|
|
115
121
|
}
|
|
116
|
-
if (
|
|
122
|
+
if (
|
|
123
|
+
error.name === 'OfflineError' ||
|
|
124
|
+
error.name === 'NetworkError' ||
|
|
125
|
+
error.message?.toLowerCase() === 'network error'
|
|
126
|
+
) {
|
|
117
127
|
return 'network_error';
|
|
118
128
|
}
|
|
119
129
|
if (error.name === 'AbortError') {
|
package/src/internal/wait.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbortError } from
|
|
1
|
+
import { AbortError } from '../errors';
|
|
2
2
|
|
|
3
3
|
const WAIT_TIME = 50;
|
|
4
4
|
|
|
@@ -17,10 +17,10 @@ export function waitForCondition(callback: () => boolean, signal?: AbortSignal)
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export async function waitSeconds(seconds: number){
|
|
20
|
+
export async function waitSeconds(seconds: number) {
|
|
21
21
|
return wait(seconds * 1000);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
export async function wait(miliseconds: number){
|
|
24
|
+
export async function wait(miliseconds: number) {
|
|
25
25
|
return new Promise<void>((resolve) => setTimeout(resolve, miliseconds));
|
|
26
26
|
}
|
package/src/protonDriveClient.ts
CHANGED
|
@@ -35,7 +35,14 @@ import { initUploadModule } from './internal/upload';
|
|
|
35
35
|
import { DriveEventsService, DriveListener } from './internal/events';
|
|
36
36
|
import { SDKEvents } from './internal/sdkEvents';
|
|
37
37
|
import { getConfig } from './config';
|
|
38
|
-
import {
|
|
38
|
+
import {
|
|
39
|
+
getUid,
|
|
40
|
+
getUids,
|
|
41
|
+
convertInternalNodePromise,
|
|
42
|
+
convertInternalNodeIterator,
|
|
43
|
+
convertInternalMissingNodeIterator,
|
|
44
|
+
convertInternalNode,
|
|
45
|
+
} from './transformers';
|
|
39
46
|
import { Telemetry } from './telemetry';
|
|
40
47
|
import { initDevicesModule } from './internal/devices';
|
|
41
48
|
import { makeNodeUid } from './internal/uids';
|
|
@@ -95,16 +102,69 @@ export class ProtonDriveClient {
|
|
|
95
102
|
const fullConfig = getConfig(config);
|
|
96
103
|
this.sdkEvents = new SDKEvents(telemetry);
|
|
97
104
|
const cryptoModule = new DriveCrypto(openPGPCryptoModule, srpModule);
|
|
98
|
-
const apiService = new DriveAPIService(
|
|
105
|
+
const apiService = new DriveAPIService(
|
|
106
|
+
telemetry,
|
|
107
|
+
this.sdkEvents,
|
|
108
|
+
httpClient,
|
|
109
|
+
fullConfig.baseUrl,
|
|
110
|
+
fullConfig.language,
|
|
111
|
+
);
|
|
99
112
|
this.shares = initSharesModule(telemetry, apiService, entitiesCache, cryptoCache, account, cryptoModule);
|
|
100
|
-
this.nodes = initNodesModule(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
113
|
+
this.nodes = initNodesModule(
|
|
114
|
+
telemetry,
|
|
115
|
+
apiService,
|
|
116
|
+
entitiesCache,
|
|
117
|
+
cryptoCache,
|
|
118
|
+
account,
|
|
119
|
+
cryptoModule,
|
|
120
|
+
this.shares,
|
|
121
|
+
);
|
|
122
|
+
this.sharing = initSharingModule(
|
|
123
|
+
telemetry,
|
|
124
|
+
apiService,
|
|
125
|
+
entitiesCache,
|
|
126
|
+
account,
|
|
127
|
+
cryptoModule,
|
|
128
|
+
this.shares,
|
|
129
|
+
this.nodes.access,
|
|
130
|
+
);
|
|
131
|
+
this.download = initDownloadModule(
|
|
132
|
+
telemetry,
|
|
133
|
+
apiService,
|
|
134
|
+
cryptoModule,
|
|
135
|
+
account,
|
|
136
|
+
this.shares,
|
|
137
|
+
this.nodes.access,
|
|
138
|
+
this.nodes.revisions,
|
|
139
|
+
);
|
|
140
|
+
this.upload = initUploadModule(
|
|
141
|
+
telemetry,
|
|
142
|
+
apiService,
|
|
143
|
+
cryptoModule,
|
|
144
|
+
this.shares,
|
|
145
|
+
this.nodes.access,
|
|
146
|
+
fullConfig.clientUid,
|
|
147
|
+
);
|
|
148
|
+
this.devices = initDevicesModule(
|
|
149
|
+
telemetry,
|
|
150
|
+
apiService,
|
|
151
|
+
cryptoModule,
|
|
152
|
+
this.shares,
|
|
153
|
+
this.nodes.access,
|
|
154
|
+
this.nodes.management,
|
|
155
|
+
);
|
|
105
156
|
// These are used to keep the internal cache up to date
|
|
106
|
-
const cacheEventListeners: DriveListener[] = [
|
|
107
|
-
|
|
157
|
+
const cacheEventListeners: DriveListener[] = [
|
|
158
|
+
this.nodes.eventHandler.updateNodesCacheOnEvent.bind(this.nodes.eventHandler),
|
|
159
|
+
this.sharing.eventHandler.handleDriveEvent.bind(this.sharing.eventHandler),
|
|
160
|
+
];
|
|
161
|
+
this.events = new DriveEventsService(
|
|
162
|
+
telemetry,
|
|
163
|
+
apiService,
|
|
164
|
+
this.shares,
|
|
165
|
+
cacheEventListeners,
|
|
166
|
+
latestEventIdProvider,
|
|
167
|
+
);
|
|
108
168
|
|
|
109
169
|
this.experimental = {
|
|
110
170
|
getNodeUrl: async (nodeUid: NodeOrUid) => {
|
|
@@ -119,7 +179,7 @@ export class ProtonDriveClient {
|
|
|
119
179
|
}
|
|
120
180
|
return keys.contentKeyPacketSessionKey;
|
|
121
181
|
},
|
|
122
|
-
}
|
|
182
|
+
};
|
|
123
183
|
}
|
|
124
184
|
|
|
125
185
|
/**
|
|
@@ -150,7 +210,7 @@ export class ProtonDriveClient {
|
|
|
150
210
|
*/
|
|
151
211
|
async subscribeToTreeEvents(treeEventScopeId: string, callback: DriveListener): Promise<EventSubscription> {
|
|
152
212
|
this.logger.debug('Subscribing to node updates');
|
|
153
|
-
return this.events.subscribeToTreeEvents(treeEventScopeId, callback)
|
|
213
|
+
return this.events.subscribeToTreeEvents(treeEventScopeId, callback);
|
|
154
214
|
}
|
|
155
215
|
|
|
156
216
|
/**
|
|
@@ -160,7 +220,7 @@ export class ProtonDriveClient {
|
|
|
160
220
|
*/
|
|
161
221
|
async subscribeToDriveEvents(callback: DriveListener): Promise<EventSubscription> {
|
|
162
222
|
this.logger.debug('Subscribing to core updates');
|
|
163
|
-
return this.events.subscribeToCoreEvents(callback)
|
|
223
|
+
return this.events.subscribeToCoreEvents(callback);
|
|
164
224
|
}
|
|
165
225
|
|
|
166
226
|
/**
|
|
@@ -199,7 +259,7 @@ export class ProtonDriveClient {
|
|
|
199
259
|
* @param signal - Signal to abort the operation.
|
|
200
260
|
* @returns An async generator of the children of the given parent node.
|
|
201
261
|
*/
|
|
202
|
-
async*
|
|
262
|
+
async *iterateFolderChildren(parentNodeUid: NodeOrUid, signal?: AbortSignal): AsyncGenerator<MaybeNode> {
|
|
203
263
|
this.logger.info(`Iterating children of ${getUid(parentNodeUid)}`);
|
|
204
264
|
yield* convertInternalNodeIterator(this.nodes.access.iterateFolderChildren(getUid(parentNodeUid), signal));
|
|
205
265
|
}
|
|
@@ -215,7 +275,7 @@ export class ProtonDriveClient {
|
|
|
215
275
|
* @param signal - Signal to abort the operation.
|
|
216
276
|
* @returns An async generator of the trashed nodes.
|
|
217
277
|
*/
|
|
218
|
-
async*
|
|
278
|
+
async *iterateTrashedNodes(signal?: AbortSignal): AsyncGenerator<MaybeNode> {
|
|
219
279
|
this.logger.info('Iterating trashed nodes');
|
|
220
280
|
yield* convertInternalNodeIterator(this.nodes.access.iterateTrashedNodes(signal));
|
|
221
281
|
}
|
|
@@ -229,7 +289,7 @@ export class ProtonDriveClient {
|
|
|
229
289
|
* @param signal - Signal to abort the operation.
|
|
230
290
|
* @returns An async generator of the nodes.
|
|
231
291
|
*/
|
|
232
|
-
async*
|
|
292
|
+
async *iterateNodes(nodeUids: NodeOrUid[], signal?: AbortSignal): AsyncGenerator<MaybeMissingNode> {
|
|
233
293
|
this.logger.info(`Iterating ${nodeUids.length} nodes`);
|
|
234
294
|
yield* convertInternalMissingNodeIterator(this.nodes.access.iterateNodes(getUids(nodeUids), signal));
|
|
235
295
|
}
|
|
@@ -277,7 +337,11 @@ export class ProtonDriveClient {
|
|
|
277
337
|
* @param signal - Signal to abort the operation.
|
|
278
338
|
* @returns An async generator of the results of the move operation
|
|
279
339
|
*/
|
|
280
|
-
async*
|
|
340
|
+
async *moveNodes(
|
|
341
|
+
nodeUids: NodeOrUid[],
|
|
342
|
+
newParentNodeUid: NodeOrUid,
|
|
343
|
+
signal?: AbortSignal,
|
|
344
|
+
): AsyncGenerator<NodeResult> {
|
|
281
345
|
this.logger.info(`Moving ${nodeUids.length} nodes to ${newParentNodeUid}`);
|
|
282
346
|
yield* this.nodes.management.moveNodes(getUids(nodeUids), getUid(newParentNodeUid), signal);
|
|
283
347
|
}
|
|
@@ -295,7 +359,7 @@ export class ProtonDriveClient {
|
|
|
295
359
|
* @param signal - Signal to abort the operation.
|
|
296
360
|
* @returns An async generator of the results of the trash operation
|
|
297
361
|
*/
|
|
298
|
-
async*
|
|
362
|
+
async *trashNodes(nodeUids: NodeOrUid[], signal?: AbortSignal): AsyncGenerator<NodeResult> {
|
|
299
363
|
this.logger.info(`Trashing ${nodeUids.length} nodes`);
|
|
300
364
|
yield* this.nodes.management.trashNodes(getUids(nodeUids), signal);
|
|
301
365
|
}
|
|
@@ -313,7 +377,7 @@ export class ProtonDriveClient {
|
|
|
313
377
|
* @param signal - Signal to abort the operation.
|
|
314
378
|
* @returns An async generator of the results of the restore operation
|
|
315
379
|
*/
|
|
316
|
-
async*
|
|
380
|
+
async *restoreNodes(nodeUids: NodeOrUid[], signal?: AbortSignal): AsyncGenerator<NodeResult> {
|
|
317
381
|
this.logger.info(`Restoring ${nodeUids.length} nodes`);
|
|
318
382
|
yield* this.nodes.management.restoreNodes(getUids(nodeUids), signal);
|
|
319
383
|
}
|
|
@@ -331,7 +395,7 @@ export class ProtonDriveClient {
|
|
|
331
395
|
* @param signal - Signal to abort the operation.
|
|
332
396
|
* @returns An async generator of the results of the delete operation
|
|
333
397
|
*/
|
|
334
|
-
async*
|
|
398
|
+
async *deleteNodes(nodeUids: NodeOrUid[], signal?: AbortSignal): AsyncGenerator<NodeResult> {
|
|
335
399
|
this.logger.info(`Deleting ${nodeUids.length} nodes`);
|
|
336
400
|
yield* this.nodes.management.deleteNodes(getUids(nodeUids), signal);
|
|
337
401
|
}
|
|
@@ -356,7 +420,9 @@ export class ProtonDriveClient {
|
|
|
356
420
|
*/
|
|
357
421
|
async createFolder(parentNodeUid: NodeOrUid, name: string, modificationTime?: Date): Promise<MaybeNode> {
|
|
358
422
|
this.logger.info(`Creating folder in ${getUid(parentNodeUid)}`);
|
|
359
|
-
return convertInternalNodePromise(
|
|
423
|
+
return convertInternalNodePromise(
|
|
424
|
+
this.nodes.management.createFolder(getUid(parentNodeUid), name, modificationTime),
|
|
425
|
+
);
|
|
360
426
|
}
|
|
361
427
|
|
|
362
428
|
/**
|
|
@@ -372,7 +438,7 @@ export class ProtonDriveClient {
|
|
|
372
438
|
* @param signal - Signal to abort the operation.
|
|
373
439
|
* @returns An async generator of the node revisions.
|
|
374
440
|
*/
|
|
375
|
-
async*
|
|
441
|
+
async *iterateRevisions(nodeUid: NodeOrUid, signal?: AbortSignal): AsyncGenerator<Revision> {
|
|
376
442
|
this.logger.info(`Iterating revisions of ${getUid(nodeUid)}`);
|
|
377
443
|
yield* this.nodes.revisions.iterateRevisions(getUid(nodeUid), signal);
|
|
378
444
|
}
|
|
@@ -410,7 +476,7 @@ export class ProtonDriveClient {
|
|
|
410
476
|
* @param signal - Signal to abort the operation.
|
|
411
477
|
* @returns An async generator of the shared nodes.
|
|
412
478
|
*/
|
|
413
|
-
async*
|
|
479
|
+
async *iterateSharedNodes(signal?: AbortSignal): AsyncGenerator<MaybeNode> {
|
|
414
480
|
this.logger.info('Iterating shared nodes by me');
|
|
415
481
|
yield* convertInternalNodeIterator(this.sharing.access.iterateSharedNodes(signal));
|
|
416
482
|
}
|
|
@@ -427,7 +493,7 @@ export class ProtonDriveClient {
|
|
|
427
493
|
* @param signal - Signal to abort the operation.
|
|
428
494
|
* @returns An async generator of the shared nodes.
|
|
429
495
|
*/
|
|
430
|
-
async*
|
|
496
|
+
async *iterateSharedNodesWithMe(signal?: AbortSignal): AsyncGenerator<MaybeNode> {
|
|
431
497
|
this.logger.info('Iterating shared nodes with me');
|
|
432
498
|
|
|
433
499
|
for await (const node of this.sharing.access.iterateSharedNodesWithMe(signal)) {
|
|
@@ -453,7 +519,7 @@ export class ProtonDriveClient {
|
|
|
453
519
|
* @param signal - Signal to abort the operation.
|
|
454
520
|
* @returns An async generator of the invitations.
|
|
455
521
|
*/
|
|
456
|
-
async*
|
|
522
|
+
async *iterateInvitations(signal?: AbortSignal): AsyncGenerator<ProtonInvitationWithNode> {
|
|
457
523
|
this.logger.info('Iterating invitations');
|
|
458
524
|
yield* this.sharing.access.iterateInvitations(signal);
|
|
459
525
|
}
|
|
@@ -486,7 +552,7 @@ export class ProtonDriveClient {
|
|
|
486
552
|
* @param signal - Signal to abort the operation.
|
|
487
553
|
* @returns An async generator of the shared bookmarks.
|
|
488
554
|
*/
|
|
489
|
-
async*
|
|
555
|
+
async *iterateBookmarks(signal?: AbortSignal): AsyncGenerator<MaybeBookmark> {
|
|
490
556
|
this.logger.info('Iterating shared bookmarks');
|
|
491
557
|
yield* this.sharing.access.iterateBookmarks(signal);
|
|
492
558
|
}
|
|
@@ -552,9 +618,12 @@ export class ProtonDriveClient {
|
|
|
552
618
|
return this.sharing.management.unshareNode(getUid(nodeUid), settings);
|
|
553
619
|
}
|
|
554
620
|
|
|
555
|
-
async resendInvitation(
|
|
621
|
+
async resendInvitation(
|
|
622
|
+
nodeUid: NodeOrUid,
|
|
623
|
+
invitationUid: ProtonInvitationOrUid | NonProtonInvitationOrUid,
|
|
624
|
+
): Promise<void> {
|
|
556
625
|
this.logger.info(`Resending invitation ${getUid(invitationUid)}`);
|
|
557
|
-
return this.sharing.management.resendInvitationEmail(getUid(nodeUid), getUid(invitationUid))
|
|
626
|
+
return this.sharing.management.resendInvitationEmail(getUid(nodeUid), getUid(invitationUid));
|
|
558
627
|
}
|
|
559
628
|
|
|
560
629
|
/**
|
|
@@ -612,15 +681,19 @@ export class ProtonDriveClient {
|
|
|
612
681
|
}
|
|
613
682
|
|
|
614
683
|
/**
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
async *iterateThumbnails(
|
|
684
|
+
* Iterates the thumbnails of the given nodes.
|
|
685
|
+
*
|
|
686
|
+
* The output is not sorted and the order of the nodes is not guaranteed.
|
|
687
|
+
*
|
|
688
|
+
* @param nodeUids - List of node entities or their UIDs.
|
|
689
|
+
* @param thumbnailType - Type of the thumbnail to download.
|
|
690
|
+
* @returns An async generator of the results of the restore operation
|
|
691
|
+
*/
|
|
692
|
+
async *iterateThumbnails(
|
|
693
|
+
nodeUids: NodeOrUid[],
|
|
694
|
+
thumbnailType?: ThumbnailType,
|
|
695
|
+
signal?: AbortSignal,
|
|
696
|
+
): AsyncGenerator<ThumbnailResult> {
|
|
624
697
|
this.logger.info(`Iterating ${nodeUids.length} thumbnails`);
|
|
625
698
|
yield* this.download.iterateThumbnails(getUids(nodeUids), thumbnailType, signal);
|
|
626
699
|
}
|
|
@@ -654,7 +727,12 @@ export class ProtonDriveClient {
|
|
|
654
727
|
* const nodeUid = await uploadController.completion(); // to await completion
|
|
655
728
|
* ```
|
|
656
729
|
*/
|
|
657
|
-
async getFileUploader(
|
|
730
|
+
async getFileUploader(
|
|
731
|
+
parentFolderUid: NodeOrUid,
|
|
732
|
+
name: string,
|
|
733
|
+
metadata: UploadMetadata,
|
|
734
|
+
signal?: AbortSignal,
|
|
735
|
+
): Promise<FileUploader> {
|
|
658
736
|
this.logger.info(`Getting file uploader for parent ${getUid(parentFolderUid)}`);
|
|
659
737
|
return this.upload.getFileUploader(getUid(parentFolderUid), name, metadata, signal);
|
|
660
738
|
}
|
|
@@ -662,7 +740,11 @@ export class ProtonDriveClient {
|
|
|
662
740
|
/**
|
|
663
741
|
* Same as `getFileUploader`, but for a uploading new revision of the file.
|
|
664
742
|
*/
|
|
665
|
-
async getFileRevisionUploader(
|
|
743
|
+
async getFileRevisionUploader(
|
|
744
|
+
nodeUid: NodeOrUid,
|
|
745
|
+
metadata: UploadMetadata,
|
|
746
|
+
signal?: AbortSignal,
|
|
747
|
+
): Promise<FileRevisionUploader> {
|
|
666
748
|
this.logger.info(`Getting file revision uploader for ${getUid(nodeUid)}`);
|
|
667
749
|
return this.upload.getFileRevisionUploader(getUid(nodeUid), metadata, signal);
|
|
668
750
|
}
|
|
@@ -677,7 +759,7 @@ export class ProtonDriveClient {
|
|
|
677
759
|
*
|
|
678
760
|
* @returns An async generator of devices.
|
|
679
761
|
*/
|
|
680
|
-
async*
|
|
762
|
+
async *iterateDevices(signal?: AbortSignal): AsyncGenerator<Device> {
|
|
681
763
|
this.logger.info('Iterating devices');
|
|
682
764
|
yield* this.devices.iterateDevices(signal);
|
|
683
765
|
}
|
|
@@ -31,7 +31,13 @@ export class ProtonDrivePhotosClient {
|
|
|
31
31
|
const fullConfig = getConfig(config);
|
|
32
32
|
const sdkEvents = new SDKEvents(telemetry);
|
|
33
33
|
const cryptoModule = new DriveCrypto(openPGPCryptoModule, srpModule);
|
|
34
|
-
const apiService = new DriveAPIService(
|
|
34
|
+
const apiService = new DriveAPIService(
|
|
35
|
+
telemetry,
|
|
36
|
+
sdkEvents,
|
|
37
|
+
httpClient,
|
|
38
|
+
fullConfig.baseUrl,
|
|
39
|
+
fullConfig.language,
|
|
40
|
+
);
|
|
35
41
|
const shares = initSharesModule(telemetry, apiService, entitiesCache, cryptoCache, account, cryptoModule);
|
|
36
42
|
this.nodes = initNodesModule(telemetry, apiService, entitiesCache, cryptoCache, account, cryptoModule, shares);
|
|
37
43
|
const cacheEventListeners: DriveListener[] = [this.nodes.eventHandler.updateNodesCacheOnEvent];
|
|
@@ -40,18 +46,18 @@ export class ProtonDrivePhotosClient {
|
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
// Timeline or album view
|
|
43
|
-
iterateTimelinePhotos() {
|
|
44
|
-
iterateAlbumPhotos() {
|
|
45
|
-
iterateThumbnails() {
|
|
46
|
-
getPhoto() {
|
|
49
|
+
iterateTimelinePhotos() {} // returns only UIDs and dates - used to show grid and scrolling
|
|
50
|
+
iterateAlbumPhotos() {} // same as above but for album
|
|
51
|
+
iterateThumbnails() {} // returns thumbnails for passed photos that are visible in the UI
|
|
52
|
+
getPhoto() {} // returns full photo details
|
|
47
53
|
|
|
48
54
|
// Album management
|
|
49
55
|
createAlbum(albumName: string) {
|
|
50
56
|
return this.photos.albums.createAlbum(albumName);
|
|
51
57
|
}
|
|
52
|
-
renameAlbum() {
|
|
53
|
-
shareAlbum() {
|
|
54
|
-
deleteAlbum() {
|
|
55
|
-
iterateAlbums() {
|
|
56
|
-
addPhotosToAlbum() {
|
|
58
|
+
renameAlbum() {}
|
|
59
|
+
shareAlbum() {}
|
|
60
|
+
deleteAlbum() {}
|
|
61
|
+
iterateAlbums() {}
|
|
62
|
+
addPhotosToAlbum() {}
|
|
57
63
|
}
|