@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
|
@@ -1,20 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ProtonDriveEntitiesCache,
|
|
3
|
+
ProtonDriveCryptoCache,
|
|
4
|
+
ProtonDriveAccount,
|
|
5
|
+
ProtonDriveTelemetry,
|
|
6
|
+
} from '../../interface';
|
|
2
7
|
import { DriveCrypto } from '../../crypto';
|
|
3
|
-
import { DriveAPIService } from
|
|
4
|
-
import { SharesAPIService } from
|
|
5
|
-
import { SharesCryptoCache } from
|
|
6
|
-
import { SharesCache } from
|
|
7
|
-
import { SharesCryptoService } from
|
|
8
|
-
import { SharesManager } from
|
|
8
|
+
import { DriveAPIService } from '../apiService';
|
|
9
|
+
import { SharesAPIService } from './apiService';
|
|
10
|
+
import { SharesCryptoCache } from './cryptoCache';
|
|
11
|
+
import { SharesCache } from './cache';
|
|
12
|
+
import { SharesCryptoService } from './cryptoService';
|
|
13
|
+
import { SharesManager } from './manager';
|
|
9
14
|
|
|
10
|
-
export type { EncryptedShare } from
|
|
15
|
+
export type { EncryptedShare } from './interface';
|
|
11
16
|
|
|
12
17
|
/**
|
|
13
18
|
* Provides facade for the whole shares module.
|
|
14
|
-
*
|
|
19
|
+
*
|
|
15
20
|
* The shares module is responsible for handling shares metadata, including
|
|
16
21
|
* API communication, encryption, decryption, caching, and event handling.
|
|
17
|
-
*
|
|
22
|
+
*
|
|
18
23
|
* This facade provides internal interface that other modules can use to
|
|
19
24
|
* interact with the shares.
|
|
20
25
|
*/
|
|
@@ -30,6 +35,13 @@ export function initSharesModule(
|
|
|
30
35
|
const cache = new SharesCache(telemetry.getLogger('shares-cache'), driveEntitiesCache);
|
|
31
36
|
const cryptoCache = new SharesCryptoCache(driveCryptoCache);
|
|
32
37
|
const cryptoService = new SharesCryptoService(telemetry, crypto, account);
|
|
33
|
-
const sharesManager = new SharesManager(
|
|
38
|
+
const sharesManager = new SharesManager(
|
|
39
|
+
telemetry.getLogger('shares'),
|
|
40
|
+
api,
|
|
41
|
+
cache,
|
|
42
|
+
cryptoCache,
|
|
43
|
+
cryptoService,
|
|
44
|
+
account,
|
|
45
|
+
);
|
|
34
46
|
return sharesManager;
|
|
35
47
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { PrivateKey, SessionKey } from
|
|
2
|
-
import { Result, UnverifiedAuthorError } from
|
|
1
|
+
import { PrivateKey, SessionKey } from '../../crypto';
|
|
2
|
+
import { Result, UnverifiedAuthorError } from '../../interface';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Internal interface providing basic identification of volume and its root
|
|
6
6
|
* share and node.
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
* No interface should inherit from this, this is only for composition to
|
|
9
9
|
* create basic volume or share interfaces.
|
|
10
|
-
*
|
|
10
|
+
*
|
|
11
11
|
* Volumes do not have necessarily share or node, but we want to always
|
|
12
12
|
* know what is the root share or node, thus we want to keep this for both
|
|
13
13
|
* volumes or any type of share.
|
|
@@ -21,7 +21,7 @@ export interface VolumeShareNodeIDs {
|
|
|
21
21
|
export type Volume = {
|
|
22
22
|
/**
|
|
23
23
|
* Creator email and address ID come from the default share.
|
|
24
|
-
*
|
|
24
|
+
*
|
|
25
25
|
* The idea is to keep this information synced, so whenever we check
|
|
26
26
|
* cached volume information, we have creator details at hand for any
|
|
27
27
|
* verification checks or creation needs.
|
|
@@ -62,7 +62,7 @@ interface BaseRootShare extends BaseShare {
|
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* Interface used only internaly in the shares module.
|
|
65
|
-
*
|
|
65
|
+
*
|
|
66
66
|
* Outside of the module, the decrypted share interface should be used.
|
|
67
67
|
*/
|
|
68
68
|
export interface EncryptedShare extends BaseShare {
|
|
@@ -77,7 +77,7 @@ interface ShareMembership {
|
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* Interface used only internaly in the shares module.
|
|
80
|
-
*
|
|
80
|
+
*
|
|
81
81
|
* Outside of the module, the decrypted share interface should be used.
|
|
82
82
|
*/
|
|
83
83
|
export interface EncryptedRootShare extends BaseRootShare {
|
|
@@ -89,7 +89,7 @@ export interface EncryptedRootShare extends BaseRootShare {
|
|
|
89
89
|
* Interface holding decrypted share metadata.
|
|
90
90
|
*/
|
|
91
91
|
export interface DecryptedRootShare extends BaseRootShare {
|
|
92
|
-
author: Result<string, UnverifiedAuthorError
|
|
92
|
+
author: Result<string, UnverifiedAuthorError>;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
export interface EncryptedShareCrypto {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { ProtonDriveAccount } from
|
|
2
|
-
import { getMockLogger } from
|
|
3
|
-
import { NotFoundAPIError } from
|
|
4
|
-
import { SharesAPIService } from
|
|
5
|
-
import { SharesCache } from
|
|
6
|
-
import { SharesCryptoCache } from
|
|
7
|
-
import { SharesCryptoService } from
|
|
8
|
-
import { VolumeShareNodeIDs } from
|
|
9
|
-
import { SharesManager } from
|
|
10
|
-
|
|
11
|
-
describe(
|
|
1
|
+
import { ProtonDriveAccount } from '../../interface';
|
|
2
|
+
import { getMockLogger } from '../../tests/logger';
|
|
3
|
+
import { NotFoundAPIError } from '../apiService';
|
|
4
|
+
import { SharesAPIService } from './apiService';
|
|
5
|
+
import { SharesCache } from './cache';
|
|
6
|
+
import { SharesCryptoCache } from './cryptoCache';
|
|
7
|
+
import { SharesCryptoService } from './cryptoService';
|
|
8
|
+
import { VolumeShareNodeIDs } from './interface';
|
|
9
|
+
import { SharesManager } from './manager';
|
|
10
|
+
|
|
11
|
+
describe('SharesManager', () => {
|
|
12
12
|
let apiService: SharesAPIService;
|
|
13
13
|
let cache: SharesCache;
|
|
14
14
|
let cryptoCache: SharesCryptoCache;
|
|
@@ -25,46 +25,46 @@ describe("SharesManager", () => {
|
|
|
25
25
|
getShare: jest.fn(),
|
|
26
26
|
getVolume: jest.fn(),
|
|
27
27
|
createVolume: jest.fn(),
|
|
28
|
-
}
|
|
28
|
+
};
|
|
29
29
|
// @ts-expect-error No need to implement all methods for mocking
|
|
30
30
|
cache = {
|
|
31
31
|
setVolume: jest.fn(),
|
|
32
32
|
getVolume: jest.fn(),
|
|
33
|
-
}
|
|
33
|
+
};
|
|
34
34
|
// @ts-expect-error No need to implement all methods for mocking
|
|
35
35
|
cryptoCache = {
|
|
36
36
|
setShareKey: jest.fn(),
|
|
37
37
|
getShareKey: jest.fn(),
|
|
38
|
-
}
|
|
38
|
+
};
|
|
39
39
|
// @ts-expect-error No need to implement all methods for mocking
|
|
40
40
|
cryptoService = {
|
|
41
41
|
generateVolumeBootstrap: jest.fn(),
|
|
42
42
|
decryptRootShare: jest.fn(),
|
|
43
|
-
}
|
|
43
|
+
};
|
|
44
44
|
// @ts-expect-error No need to implement all methods for mocking
|
|
45
45
|
account = {
|
|
46
46
|
getOwnPrimaryAddress: jest.fn(),
|
|
47
47
|
getOwnAddress: jest.fn(),
|
|
48
|
-
}
|
|
48
|
+
};
|
|
49
49
|
|
|
50
50
|
manager = new SharesManager(getMockLogger(), apiService, cache, cryptoCache, cryptoService, account);
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
describe(
|
|
53
|
+
describe('getMyFilesIDs', () => {
|
|
54
54
|
const myFilesShare = {
|
|
55
|
-
shareId:
|
|
56
|
-
volumeId:
|
|
57
|
-
rootNodeId:
|
|
55
|
+
shareId: 'myFilesShareId',
|
|
56
|
+
volumeId: 'myFilesVolumeId',
|
|
57
|
+
rootNodeId: 'myFilesRootNodeId',
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
it(
|
|
60
|
+
it('should load My files IDs once', async () => {
|
|
61
61
|
const encryptedShare = {
|
|
62
62
|
share: myFilesShare,
|
|
63
|
-
creatorEmail:
|
|
63
|
+
creatorEmail: 'email',
|
|
64
64
|
};
|
|
65
65
|
const key = {
|
|
66
|
-
key:
|
|
67
|
-
sessionKey:
|
|
66
|
+
key: 'privateKey',
|
|
67
|
+
sessionKey: 'sessionKey',
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
apiService.getMyFiles = jest.fn().mockResolvedValue(encryptedShare);
|
|
@@ -86,18 +86,20 @@ describe("SharesManager", () => {
|
|
|
86
86
|
});
|
|
87
87
|
|
|
88
88
|
it("should create volume when My files section doesn't exist", async () => {
|
|
89
|
-
apiService.getMyFiles = jest.fn().mockRejectedValue(new NotFoundAPIError(
|
|
90
|
-
account.getOwnPrimaryAddress = jest
|
|
89
|
+
apiService.getMyFiles = jest.fn().mockRejectedValue(new NotFoundAPIError('no active volume', 0));
|
|
90
|
+
account.getOwnPrimaryAddress = jest
|
|
91
|
+
.fn()
|
|
92
|
+
.mockResolvedValue({ primaryKeyIndex: 0, keys: [{ key: 'addressKey' }] });
|
|
91
93
|
cryptoService.generateVolumeBootstrap = jest.fn().mockResolvedValue({
|
|
92
94
|
shareKey: {
|
|
93
|
-
encrypted:
|
|
94
|
-
decrypted:
|
|
95
|
+
encrypted: 'encrypted share key',
|
|
96
|
+
decrypted: 'decrypted share key',
|
|
95
97
|
},
|
|
96
98
|
rootNode: {
|
|
97
99
|
key: {
|
|
98
|
-
encrypted:
|
|
100
|
+
encrypted: 'encrypted root key',
|
|
99
101
|
},
|
|
100
|
-
}
|
|
102
|
+
},
|
|
101
103
|
});
|
|
102
104
|
apiService.createVolume = jest.fn().mockResolvedValue(myFilesShare);
|
|
103
105
|
|
|
@@ -105,102 +107,108 @@ describe("SharesManager", () => {
|
|
|
105
107
|
|
|
106
108
|
expect(result).toStrictEqual(myFilesShare);
|
|
107
109
|
expect(cryptoService.decryptRootShare).not.toHaveBeenCalled();
|
|
108
|
-
expect(cryptoCache.setShareKey).toHaveBeenCalledWith(
|
|
110
|
+
expect(cryptoCache.setShareKey).toHaveBeenCalledWith('myFilesShareId', 'decrypted share key');
|
|
109
111
|
});
|
|
110
112
|
|
|
111
|
-
it(
|
|
112
|
-
apiService.getMyFiles = jest.fn().mockRejectedValue(new Error(
|
|
113
|
+
it('should throw on unknown error', async () => {
|
|
114
|
+
apiService.getMyFiles = jest.fn().mockRejectedValue(new Error('Some error'));
|
|
113
115
|
|
|
114
|
-
await expect(manager.getMyFilesIDs()).rejects.toThrow(
|
|
116
|
+
await expect(manager.getMyFilesIDs()).rejects.toThrow('Some error');
|
|
115
117
|
expect(cryptoService.decryptRootShare).not.toHaveBeenCalled();
|
|
116
118
|
expect(apiService.createVolume).not.toHaveBeenCalled();
|
|
117
119
|
});
|
|
118
120
|
});
|
|
119
121
|
|
|
120
|
-
describe(
|
|
121
|
-
it(
|
|
122
|
-
cryptoCache.getShareKey = jest.fn().mockResolvedValue({ key:
|
|
122
|
+
describe('getSharePrivateKey', () => {
|
|
123
|
+
it('should return cached private key', async () => {
|
|
124
|
+
cryptoCache.getShareKey = jest.fn().mockResolvedValue({ key: 'cachedPrivateKey' });
|
|
123
125
|
|
|
124
|
-
const result = await manager.getSharePrivateKey(
|
|
126
|
+
const result = await manager.getSharePrivateKey('shareId');
|
|
125
127
|
|
|
126
|
-
expect(result).toBe(
|
|
128
|
+
expect(result).toBe('cachedPrivateKey');
|
|
127
129
|
});
|
|
128
130
|
|
|
129
|
-
it(
|
|
131
|
+
it('should load private key if not in cache', async () => {
|
|
130
132
|
cryptoCache.getShareKey = jest.fn().mockRejectedValue(new Error('not found'));
|
|
131
|
-
apiService.getRootShare = jest.fn().mockResolvedValue({ shareId:
|
|
132
|
-
cryptoService.decryptRootShare = jest.fn().mockResolvedValue({ key: { key:
|
|
133
|
+
apiService.getRootShare = jest.fn().mockResolvedValue({ shareId: 'shareId' });
|
|
134
|
+
cryptoService.decryptRootShare = jest.fn().mockResolvedValue({ key: { key: 'privateKey' } });
|
|
133
135
|
|
|
134
|
-
const result = await manager.getSharePrivateKey(
|
|
136
|
+
const result = await manager.getSharePrivateKey('shareId');
|
|
135
137
|
|
|
136
|
-
expect(result).toBe(
|
|
137
|
-
expect(cryptoCache.setShareKey).toHaveBeenCalledWith(
|
|
138
|
+
expect(result).toBe('privateKey');
|
|
139
|
+
expect(cryptoCache.setShareKey).toHaveBeenCalledWith('shareId', { key: 'privateKey' });
|
|
138
140
|
});
|
|
139
141
|
});
|
|
140
142
|
|
|
141
|
-
describe(
|
|
142
|
-
it(
|
|
143
|
-
jest.spyOn(manager, 'getMyFilesIDs').mockResolvedValue({ volumeId:
|
|
144
|
-
cache.getVolume = jest.fn().mockResolvedValue({ addressId:
|
|
145
|
-
account.getOwnAddress = jest
|
|
143
|
+
describe('getMyFilesShareMemberEmailKey', () => {
|
|
144
|
+
it('should return cached volume email key', async () => {
|
|
145
|
+
jest.spyOn(manager, 'getMyFilesIDs').mockResolvedValue({ volumeId: 'volumeId' } as VolumeShareNodeIDs);
|
|
146
|
+
cache.getVolume = jest.fn().mockResolvedValue({ addressId: 'addressId' });
|
|
147
|
+
account.getOwnAddress = jest
|
|
148
|
+
.fn()
|
|
149
|
+
.mockResolvedValue({ email: 'email', primaryKeyIndex: 0, keys: [{ key: 'addressKey' }] });
|
|
146
150
|
|
|
147
151
|
const result = await manager.getMyFilesShareMemberEmailKey();
|
|
148
152
|
|
|
149
153
|
expect(result).toEqual({
|
|
150
|
-
addressId:
|
|
151
|
-
email:
|
|
152
|
-
addressKey:
|
|
154
|
+
addressId: 'addressId',
|
|
155
|
+
email: 'email',
|
|
156
|
+
addressKey: 'addressKey',
|
|
153
157
|
});
|
|
154
158
|
});
|
|
155
159
|
|
|
156
|
-
it(
|
|
157
|
-
jest.spyOn(manager, 'getMyFilesIDs').mockResolvedValue({ volumeId:
|
|
160
|
+
it('should load volume email key if not in cache', async () => {
|
|
161
|
+
jest.spyOn(manager, 'getMyFilesIDs').mockResolvedValue({ volumeId: 'volumeId' } as VolumeShareNodeIDs);
|
|
158
162
|
const share = {
|
|
159
|
-
volumeId:
|
|
160
|
-
shareId:
|
|
161
|
-
rootNodeId:
|
|
162
|
-
creatorEmail:
|
|
163
|
-
addressId:
|
|
164
|
-
}
|
|
163
|
+
volumeId: 'volumeId',
|
|
164
|
+
shareId: 'shareId',
|
|
165
|
+
rootNodeId: 'rootNodeId',
|
|
166
|
+
creatorEmail: 'email',
|
|
167
|
+
addressId: 'addressId',
|
|
168
|
+
};
|
|
165
169
|
cache.getVolume = jest.fn().mockRejectedValue(new Error('not found'));
|
|
166
|
-
apiService.getVolume = jest.fn().mockResolvedValue({ shareId:
|
|
170
|
+
apiService.getVolume = jest.fn().mockResolvedValue({ shareId: 'shareId' });
|
|
167
171
|
apiService.getRootShare = jest.fn().mockResolvedValue(share);
|
|
168
|
-
account.getOwnAddress = jest
|
|
172
|
+
account.getOwnAddress = jest
|
|
173
|
+
.fn()
|
|
174
|
+
.mockResolvedValue({ email: 'email', primaryKeyIndex: 0, keys: [{ key: 'addressKey' }] });
|
|
169
175
|
|
|
170
176
|
const result = await manager.getMyFilesShareMemberEmailKey();
|
|
171
177
|
|
|
172
178
|
expect(result).toEqual({
|
|
173
|
-
addressId:
|
|
174
|
-
email:
|
|
175
|
-
addressKey:
|
|
179
|
+
addressId: 'addressId',
|
|
180
|
+
email: 'email',
|
|
181
|
+
addressKey: 'addressKey',
|
|
176
182
|
});
|
|
177
183
|
expect(cache.setVolume).toHaveBeenCalledWith(share);
|
|
178
184
|
});
|
|
179
185
|
});
|
|
180
186
|
|
|
181
|
-
describe(
|
|
182
|
-
it(
|
|
187
|
+
describe('getContextShareMemberEmailKey', () => {
|
|
188
|
+
it('should load share email key only once', async () => {
|
|
183
189
|
const share = {
|
|
184
|
-
volumeId:
|
|
185
|
-
shareId:
|
|
186
|
-
rootNodeId:
|
|
187
|
-
creatorEmail:
|
|
188
|
-
addressId:
|
|
189
|
-
}
|
|
190
|
+
volumeId: 'volumeId',
|
|
191
|
+
shareId: 'shareId',
|
|
192
|
+
rootNodeId: 'rootNodeId',
|
|
193
|
+
creatorEmail: 'creatorEmail',
|
|
194
|
+
addressId: 'addressId',
|
|
195
|
+
};
|
|
190
196
|
apiService.getRootShare = jest.fn().mockResolvedValue(share);
|
|
191
|
-
account.getOwnAddress = jest
|
|
197
|
+
account.getOwnAddress = jest
|
|
198
|
+
.fn()
|
|
199
|
+
.mockResolvedValue({ email: 'email', primaryKeyIndex: 0, keys: [{ key: 'addressKey' }] });
|
|
192
200
|
|
|
193
|
-
const result = await manager.getContextShareMemberEmailKey(
|
|
201
|
+
const result = await manager.getContextShareMemberEmailKey('shareId');
|
|
194
202
|
|
|
195
203
|
expect(result).toEqual({
|
|
196
|
-
addressId:
|
|
197
|
-
email:
|
|
198
|
-
addressKey:
|
|
204
|
+
addressId: 'addressId',
|
|
205
|
+
email: 'email',
|
|
206
|
+
addressKey: 'addressKey',
|
|
199
207
|
});
|
|
200
208
|
expect(apiService.getRootShare).toHaveBeenCalledTimes(1);
|
|
201
209
|
expect(account.getOwnAddress).toHaveBeenCalledTimes(1);
|
|
202
210
|
|
|
203
|
-
const result2 = await manager.getContextShareMemberEmailKey(
|
|
211
|
+
const result2 = await manager.getContextShareMemberEmailKey('shareId');
|
|
204
212
|
|
|
205
213
|
expect(result2).toEqual(result);
|
|
206
214
|
expect(apiService.getRootShare).toHaveBeenCalledTimes(1);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Logger, MetricVolumeType, ProtonDriveAccount } from
|
|
2
|
-
import { PrivateKey } from
|
|
3
|
-
import { NotFoundAPIError } from
|
|
4
|
-
import { SharesAPIService } from
|
|
5
|
-
import { SharesCache } from
|
|
6
|
-
import { SharesCryptoCache } from
|
|
7
|
-
import { SharesCryptoService } from
|
|
8
|
-
import { VolumeShareNodeIDs, EncryptedShare, EncryptedRootShare } from
|
|
1
|
+
import { Logger, MetricVolumeType, ProtonDriveAccount } from '../../interface';
|
|
2
|
+
import { PrivateKey } from '../../crypto';
|
|
3
|
+
import { NotFoundAPIError } from '../apiService';
|
|
4
|
+
import { SharesAPIService } from './apiService';
|
|
5
|
+
import { SharesCache } from './cache';
|
|
6
|
+
import { SharesCryptoCache } from './cryptoCache';
|
|
7
|
+
import { SharesCryptoService } from './cryptoService';
|
|
8
|
+
import { VolumeShareNodeIDs, EncryptedShare, EncryptedRootShare } from './interface';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Provides high-level actions for managing shares.
|
|
@@ -126,7 +126,7 @@ export class SharesManager {
|
|
|
126
126
|
try {
|
|
127
127
|
const { key } = await this.cryptoCache.getShareKey(shareId);
|
|
128
128
|
return key;
|
|
129
|
-
} catch {
|
|
129
|
+
} catch {}
|
|
130
130
|
|
|
131
131
|
const encryptedShare = await this.apiService.getRootShare(shareId);
|
|
132
132
|
const { key } = await this.cryptoService.decryptRootShare(encryptedShare);
|
|
@@ -135,10 +135,10 @@ export class SharesManager {
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
async getMyFilesShareMemberEmailKey(): Promise<{
|
|
138
|
-
email: string
|
|
139
|
-
addressId: string
|
|
140
|
-
addressKey: PrivateKey
|
|
141
|
-
addressKeyId: string
|
|
138
|
+
email: string;
|
|
139
|
+
addressId: string;
|
|
140
|
+
addressKey: PrivateKey;
|
|
141
|
+
addressKeyId: string;
|
|
142
142
|
}> {
|
|
143
143
|
const { volumeId } = await this.getMyFilesIDs();
|
|
144
144
|
|
|
@@ -151,7 +151,7 @@ export class SharesManager {
|
|
|
151
151
|
addressKey: address.keys[address.primaryKeyIndex].key,
|
|
152
152
|
addressKeyId: address.keys[address.primaryKeyIndex].id,
|
|
153
153
|
};
|
|
154
|
-
} catch {
|
|
154
|
+
} catch {}
|
|
155
155
|
|
|
156
156
|
const { shareId } = await this.apiService.getVolume(volumeId);
|
|
157
157
|
const share = await this.apiService.getRootShare(shareId);
|
|
@@ -174,10 +174,10 @@ export class SharesManager {
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
async getContextShareMemberEmailKey(shareId: string): Promise<{
|
|
177
|
-
email: string
|
|
178
|
-
addressId: string
|
|
179
|
-
addressKey: PrivateKey
|
|
180
|
-
addressKeyId: string
|
|
177
|
+
email: string;
|
|
178
|
+
addressId: string;
|
|
179
|
+
addressKey: PrivateKey;
|
|
180
|
+
addressKeyId: string;
|
|
181
181
|
}> {
|
|
182
182
|
let encryptedShare = this.rootShares.get(shareId);
|
|
183
183
|
if (!encryptedShare) {
|
|
@@ -195,7 +195,7 @@ export class SharesManager {
|
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
async isOwnVolume(volumeId: string): Promise<boolean>{
|
|
198
|
+
async isOwnVolume(volumeId: string): Promise<boolean> {
|
|
199
199
|
return (await this.getMyFilesIDs()).volumeId === volumeId;
|
|
200
200
|
}
|
|
201
201
|
|