@protontech/drive-sdk 0.0.13 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.js +3 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/memoryCache.d.ts +1 -1
- package/dist/cache/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.d.ts +14 -0
- package/dist/cache/nullCache.js +36 -0
- package/dist/cache/nullCache.js.map +1 -0
- package/dist/config.d.ts +16 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/crypto/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 +5 -3
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/diagnostic/eventsGenerator.d.ts +14 -0
- package/dist/diagnostic/eventsGenerator.js +49 -0
- package/dist/diagnostic/eventsGenerator.js.map +1 -0
- package/dist/diagnostic/httpClient.d.ts +16 -0
- package/dist/diagnostic/httpClient.js +81 -0
- package/dist/diagnostic/httpClient.js.map +1 -0
- package/dist/diagnostic/index.d.ts +10 -0
- package/dist/diagnostic/index.js +35 -0
- package/dist/diagnostic/index.js.map +1 -0
- package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
- package/dist/diagnostic/integrityVerificationStream.js +56 -0
- package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
- package/dist/diagnostic/interface.d.ts +102 -0
- package/dist/diagnostic/interface.js +3 -0
- package/dist/diagnostic/interface.js.map +1 -0
- package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
- package/dist/diagnostic/sdkDiagnostic.js +222 -0
- package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
- package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
- package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
- package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
- package/dist/diagnostic/telemetry.d.ts +25 -0
- package/dist/diagnostic/telemetry.js +70 -0
- package/dist/diagnostic/telemetry.js.map +1 -0
- package/dist/diagnostic/zipGenerators.d.ts +9 -0
- package/dist/diagnostic/zipGenerators.js +64 -0
- package/dist/diagnostic/zipGenerators.js.map +1 -0
- package/dist/diagnostic/zipGenerators.test.js +144 -0
- package/dist/diagnostic/zipGenerators.test.js.map +1 -0
- package/dist/errors.d.ts +2 -1
- package/dist/errors.js +3 -1
- package/dist/errors.js.map +1 -1
- package/dist/interface/config.d.ts +26 -0
- package/dist/interface/config.js +3 -0
- package/dist/interface/config.js.map +1 -0
- package/dist/interface/download.d.ts +2 -2
- package/dist/interface/events.d.ts +58 -20
- package/dist/interface/events.js +11 -1
- package/dist/interface/events.js.map +1 -1
- package/dist/interface/httpClient.d.ts +0 -14
- package/dist/interface/index.d.ts +11 -7
- package/dist/interface/index.js +2 -2
- package/dist/interface/index.js.map +1 -1
- package/dist/interface/nodes.d.ts +9 -0
- package/dist/interface/nodes.js.map +1 -1
- package/dist/interface/result.js.map +1 -1
- package/dist/interface/sharing.d.ts +2 -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 +7 -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 +32 -32
- 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 +6 -6
- 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 +5 -7
- package/dist/internal/events/apiService.js +19 -22
- package/dist/internal/events/apiService.js.map +1 -1
- package/dist/internal/events/coreEventManager.d.ts +9 -12
- package/dist/internal/events/coreEventManager.js +19 -36
- package/dist/internal/events/coreEventManager.js.map +1 -1
- package/dist/internal/events/coreEventManager.test.d.ts +1 -0
- package/dist/internal/events/coreEventManager.test.js +87 -0
- package/dist/internal/events/coreEventManager.test.js.map +1 -0
- package/dist/internal/events/eventManager.d.ts +11 -36
- package/dist/internal/events/eventManager.js +59 -106
- package/dist/internal/events/eventManager.js.map +1 -1
- package/dist/internal/events/eventManager.test.js +177 -83
- package/dist/internal/events/eventManager.test.js.map +1 -1
- package/dist/internal/events/index.d.ts +16 -36
- package/dist/internal/events/index.js +56 -72
- package/dist/internal/events/index.js.map +1 -1
- package/dist/internal/events/interface.d.ts +59 -14
- package/dist/internal/events/interface.js +12 -3
- package/dist/internal/events/interface.js.map +1 -1
- package/dist/internal/events/volumeEventManager.d.ts +9 -19
- package/dist/internal/events/volumeEventManager.js +58 -45
- package/dist/internal/events/volumeEventManager.js.map +1 -1
- package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
- package/dist/internal/events/volumeEventManager.test.js +203 -0
- package/dist/internal/events/volumeEventManager.test.js.map +1 -0
- package/dist/internal/nodes/apiService.d.ts +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 +14 -5
- package/dist/internal/nodes/cache.js +31 -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 +4 -4
- 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 +8 -84
- package/dist/internal/nodes/events.js +43 -217
- package/dist/internal/nodes/events.js.map +1 -1
- package/dist/internal/nodes/events.test.js +35 -279
- 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 +12 -13
- package/dist/internal/nodes/index.js +5 -5
- package/dist/internal/nodes/index.js.map +1 -1
- package/dist/internal/nodes/index.test.js +24 -32
- package/dist/internal/nodes/index.test.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +2 -2
- package/dist/internal/nodes/nodesAccess.d.ts +22 -7
- package/dist/internal/nodes/nodesAccess.js +65 -16
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +165 -101
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.d.ts +7 -9
- package/dist/internal/nodes/nodesManagement.js +21 -33
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.test.js +42 -21
- 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 +4 -2
- package/dist/internal/shares/cache.js +14 -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 +8 -7
- package/dist/internal/shares/manager.js +3 -0
- 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 +5 -3
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/sharing/cache.d.ts +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 -4
- 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 +24 -56
- package/dist/internal/sharing/events.js +45 -138
- package/dist/internal/sharing/events.js.map +1 -1
- package/dist/internal/sharing/events.test.js +85 -189
- package/dist/internal/sharing/events.test.js.map +1 -1
- package/dist/internal/sharing/index.d.ts +8 -9
- package/dist/internal/sharing/index.js +5 -5
- package/dist/internal/sharing/index.js.map +1 -1
- package/dist/internal/sharing/interface.d.ts +8 -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 +5 -6
- package/dist/internal/sharing/sharingManagement.js +12 -16
- package/dist/internal/sharing/sharingManagement.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.test.js +305 -286
- 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 +5 -6
- package/dist/internal/upload/apiService.js +8 -5
- 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 +6 -6
- package/dist/internal/upload/index.js +3 -3
- package/dist/internal/upload/index.js.map +1 -1
- package/dist/internal/upload/interface.d.ts +5 -3
- package/dist/internal/upload/manager.d.ts +8 -8
- package/dist/internal/upload/manager.js +23 -52
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/manager.test.js +185 -147
- 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 -8
- 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 +27 -170
- package/dist/protonDriveClient.js +37 -198
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.js +3 -2
- 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.js +4 -2
- package/dist/transformers.js.map +1 -1
- package/package.json +3 -3
- package/src/cache/index.ts +1 -0
- package/src/cache/interface.ts +22 -22
- package/src/cache/memoryCache.test.ts +7 -7
- package/src/cache/memoryCache.ts +5 -5
- package/src/cache/nullCache.ts +38 -0
- package/src/config.ts +17 -2
- 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 +76 -94
- package/src/crypto/utils.ts +1 -1
- package/src/diagnostic/eventsGenerator.ts +48 -0
- package/src/diagnostic/httpClient.ts +84 -0
- package/src/diagnostic/index.ts +40 -0
- package/src/diagnostic/integrityVerificationStream.ts +55 -0
- package/src/diagnostic/interface.ts +158 -0
- package/src/diagnostic/sdkDiagnostic.ts +249 -0
- package/src/diagnostic/sdkDiagnosticFull.ts +37 -0
- package/src/diagnostic/telemetry.ts +74 -0
- package/src/diagnostic/zipGenerators.test.ts +177 -0
- package/src/diagnostic/zipGenerators.ts +70 -0
- package/src/errors.ts +25 -22
- 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 +28 -0
- package/src/interface/devices.ts +6 -6
- package/src/interface/download.ts +12 -9
- package/src/interface/events.ts +76 -25
- package/src/interface/httpClient.ts +11 -27
- package/src/interface/index.ts +81 -20
- package/src/interface/nodes.ts +67 -60
- package/src/interface/result.ts +1 -3
- package/src/interface/sharing.ts +60 -56
- package/src/interface/telemetry.ts +74 -74
- package/src/interface/thumbnail.ts +5 -6
- package/src/interface/upload.ts +25 -11
- 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 +72 -52
- package/src/internal/download/cryptoService.ts +34 -18
- package/src/internal/download/fileDownloader.test.ts +25 -9
- package/src/internal/download/fileDownloader.ts +38 -20
- 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 +46 -36
- package/src/internal/events/coreEventManager.test.ts +101 -0
- package/src/internal/events/coreEventManager.ts +26 -48
- package/src/internal/events/eventManager.test.ts +211 -93
- package/src/internal/events/eventManager.ts +72 -117
- package/src/internal/events/index.ts +71 -91
- package/src/internal/events/interface.ts +92 -29
- package/src/internal/events/volumeEventManager.test.ts +239 -0
- package/src/internal/events/volumeEventManager.ts +68 -57
- 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 +79 -45
- 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 +171 -89
- package/src/internal/nodes/events.test.ts +48 -344
- package/src/internal/nodes/events.ts +48 -254
- package/src/internal/nodes/extendedAttributes.test.ts +28 -24
- package/src/internal/nodes/extendedAttributes.ts +20 -15
- package/src/internal/nodes/index.test.ts +51 -55
- package/src/internal/nodes/index.ts +32 -22
- package/src/internal/nodes/interface.ts +44 -31
- package/src/internal/nodes/nodesAccess.test.ts +237 -130
- package/src/internal/nodes/nodesAccess.ts +113 -50
- package/src/internal/nodes/nodesManagement.test.ts +64 -39
- package/src/internal/nodes/nodesManagement.ts +51 -62
- 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 +25 -14
- 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 +27 -23
- package/src/internal/sharing/apiService.ts +283 -175
- package/src/internal/sharing/cache.test.ts +35 -35
- package/src/internal/sharing/cache.ts +3 -3
- package/src/internal/sharing/cryptoService.test.ts +58 -46
- package/src/internal/sharing/cryptoService.ts +121 -83
- package/src/internal/sharing/events.test.ts +97 -207
- package/src/internal/sharing/events.ts +46 -157
- package/src/internal/sharing/index.ts +24 -16
- package/src/internal/sharing/interface.ts +46 -42
- package/src/internal/sharing/sharingAccess.test.ts +71 -65
- package/src/internal/sharing/sharingAccess.ts +39 -21
- package/src/internal/sharing/sharingManagement.test.ts +405 -335
- package/src/internal/sharing/sharingManagement.ts +144 -75
- package/src/internal/uids.ts +1 -1
- package/src/internal/upload/apiService.ts +168 -119
- 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 +17 -18
- package/src/internal/upload/interface.ts +79 -77
- package/src/internal/upload/manager.test.ts +222 -175
- package/src/internal/upload/manager.ts +74 -80
- package/src/internal/upload/queue.ts +3 -3
- package/src/internal/upload/streamUploader.test.ts +40 -27
- package/src/internal/upload/streamUploader.ts +87 -71
- 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 +189 -276
- package/src/protonDrivePhotosClient.ts +20 -13
- package/src/telemetry.ts +60 -52
- package/src/tests/logger.ts +1 -1
- package/src/tests/telemetry.ts +2 -2
- package/src/transformers.ts +27 -21
- package/src/version.ts +0 -1
- package/dist/internal/events/cache.d.ts +0 -28
- package/dist/internal/events/cache.js +0 -67
- package/dist/internal/events/cache.js.map +0 -1
- package/dist/internal/events/cache.test.js +0 -43
- package/dist/internal/events/cache.test.js.map +0 -1
- package/src/internal/events/cache.test.ts +0 -47
- package/src/internal/events/cache.ts +0 -80
- /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
|
@@ -1,12 +1,42 @@
|
|
|
1
1
|
import bcrypt from 'bcryptjs';
|
|
2
2
|
import { c } from 'ttag';
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
|
|
4
|
+
import {
|
|
5
|
+
DriveCrypto,
|
|
6
|
+
PrivateKey,
|
|
7
|
+
SessionKey,
|
|
8
|
+
SRPVerifier,
|
|
9
|
+
uint8ArrayToBase64String,
|
|
10
|
+
VERIFICATION_STATUS,
|
|
11
|
+
} from '../../crypto';
|
|
12
|
+
import {
|
|
13
|
+
ProtonDriveAccount,
|
|
14
|
+
ProtonInvitation,
|
|
15
|
+
ProtonInvitationWithNode,
|
|
16
|
+
NonProtonInvitation,
|
|
17
|
+
Author,
|
|
18
|
+
Result,
|
|
19
|
+
Member,
|
|
20
|
+
UnverifiedAuthorError,
|
|
21
|
+
resultError,
|
|
22
|
+
resultOk,
|
|
23
|
+
InvalidNameError,
|
|
24
|
+
ProtonDriveTelemetry,
|
|
25
|
+
MetricVolumeType,
|
|
26
|
+
} from '../../interface';
|
|
6
27
|
import { validateNodeName } from '../nodes/validations';
|
|
7
|
-
import { getErrorMessage, getVerificationMessage } from
|
|
8
|
-
import { EncryptedShare } from
|
|
9
|
-
import {
|
|
28
|
+
import { getErrorMessage, getVerificationMessage } from '../errors';
|
|
29
|
+
import { EncryptedShare } from '../shares';
|
|
30
|
+
import {
|
|
31
|
+
EncryptedInvitation,
|
|
32
|
+
EncryptedInvitationWithNode,
|
|
33
|
+
EncryptedExternalInvitation,
|
|
34
|
+
EncryptedMember,
|
|
35
|
+
EncryptedPublicLink,
|
|
36
|
+
PublicLinkWithCreatorEmail,
|
|
37
|
+
EncryptedBookmark,
|
|
38
|
+
SharesService,
|
|
39
|
+
} from './interface';
|
|
10
40
|
|
|
11
41
|
// Version 2 of bcrypt with 2**10 rounds.
|
|
12
42
|
// https://en.wikipedia.org/wiki/Bcrypt#Description
|
|
@@ -26,7 +56,7 @@ enum PublicLinkFlags {
|
|
|
26
56
|
|
|
27
57
|
/**
|
|
28
58
|
* Provides crypto operations for sharing.
|
|
29
|
-
*
|
|
59
|
+
*
|
|
30
60
|
* The sharing crypto service is responsible for encrypting and decrypting
|
|
31
61
|
* shares, invitations, etc.
|
|
32
62
|
*/
|
|
@@ -45,31 +75,31 @@ export class SharingCryptoService {
|
|
|
45
75
|
|
|
46
76
|
/**
|
|
47
77
|
* Generates a share key for a standard share used for sharing with other users.
|
|
48
|
-
*
|
|
78
|
+
*
|
|
49
79
|
* Standard share, in contrast to a root share, is encrypted with node key and
|
|
50
80
|
* can be managed by any admin.
|
|
51
81
|
*/
|
|
52
82
|
async generateShareKeys(
|
|
53
83
|
nodeKeys: {
|
|
54
|
-
key: PrivateKey
|
|
55
|
-
passphraseSessionKey: SessionKey
|
|
56
|
-
nameSessionKey: SessionKey
|
|
84
|
+
key: PrivateKey;
|
|
85
|
+
passphraseSessionKey: SessionKey;
|
|
86
|
+
nameSessionKey: SessionKey;
|
|
57
87
|
},
|
|
58
88
|
addressKey: PrivateKey,
|
|
59
89
|
): Promise<{
|
|
60
90
|
shareKey: {
|
|
61
91
|
encrypted: {
|
|
62
|
-
armoredKey: string
|
|
63
|
-
armoredPassphrase: string
|
|
64
|
-
armoredPassphraseSignature: string
|
|
65
|
-
}
|
|
92
|
+
armoredKey: string;
|
|
93
|
+
armoredPassphrase: string;
|
|
94
|
+
armoredPassphraseSignature: string;
|
|
95
|
+
};
|
|
66
96
|
decrypted: {
|
|
67
|
-
key: PrivateKey
|
|
68
|
-
passphraseSessionKey: SessionKey
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
base64PpassphraseKeyPacket: string
|
|
72
|
-
base64NameKeyPacket: string
|
|
97
|
+
key: PrivateKey;
|
|
98
|
+
passphraseSessionKey: SessionKey;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
base64PpassphraseKeyPacket: string;
|
|
102
|
+
base64NameKeyPacket: string;
|
|
73
103
|
}> {
|
|
74
104
|
const shareKey = await this.driveCrypto.generateKey([nodeKeys.key, addressKey], addressKey);
|
|
75
105
|
|
|
@@ -87,21 +117,24 @@ export class SharingCryptoService {
|
|
|
87
117
|
base64PpassphraseKeyPacket,
|
|
88
118
|
base64NameKeyPacket,
|
|
89
119
|
};
|
|
90
|
-
}
|
|
120
|
+
}
|
|
91
121
|
|
|
92
122
|
/**
|
|
93
123
|
* Decrypts a share using the node key.
|
|
94
|
-
*
|
|
124
|
+
*
|
|
95
125
|
* The share is encrypted with the node key and can be managed by any admin.
|
|
96
126
|
*
|
|
97
127
|
* Old shares are encrypted with address key only and thus available only
|
|
98
128
|
* to owners. `decryptShare` automatically tries to decrypt the share with
|
|
99
129
|
* address keys as fallback if available.
|
|
100
130
|
*/
|
|
101
|
-
async decryptShare(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
131
|
+
async decryptShare(
|
|
132
|
+
share: EncryptedShare,
|
|
133
|
+
nodeKey: PrivateKey,
|
|
134
|
+
): Promise<{
|
|
135
|
+
author: Author;
|
|
136
|
+
key: PrivateKey;
|
|
137
|
+
passphraseSessionKey: SessionKey;
|
|
105
138
|
}> {
|
|
106
139
|
// All standard shares should be encrypted with node key.
|
|
107
140
|
// Using node key is essential so any admin can manage the share.
|
|
@@ -121,25 +154,26 @@ export class SharingCryptoService {
|
|
|
121
154
|
share.encryptedCrypto.armoredPassphraseSignature,
|
|
122
155
|
decryptionKeys,
|
|
123
156
|
addressPublicKeys,
|
|
124
|
-
)
|
|
157
|
+
);
|
|
125
158
|
|
|
126
|
-
const author: Result<string, UnverifiedAuthorError> =
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
159
|
+
const author: Result<string, UnverifiedAuthorError> =
|
|
160
|
+
verified === VERIFICATION_STATUS.SIGNED_AND_VALID
|
|
161
|
+
? resultOk(share.creatorEmail)
|
|
162
|
+
: resultError({
|
|
163
|
+
claimedAuthor: share.creatorEmail,
|
|
164
|
+
error: getVerificationMessage(verified),
|
|
165
|
+
});
|
|
132
166
|
|
|
133
167
|
return {
|
|
134
168
|
author,
|
|
135
169
|
key,
|
|
136
170
|
passphraseSessionKey,
|
|
137
|
-
}
|
|
171
|
+
};
|
|
138
172
|
}
|
|
139
173
|
|
|
140
174
|
/**
|
|
141
175
|
* Encrypts an invitation for sharing a node with another user.
|
|
142
|
-
*
|
|
176
|
+
*
|
|
143
177
|
* `inviteeEmail` is used to load public key of the invitee and used to
|
|
144
178
|
* encrypt share's session key. `inviterKey` is used to sign the invitation.
|
|
145
179
|
*/
|
|
@@ -148,18 +182,20 @@ export class SharingCryptoService {
|
|
|
148
182
|
inviterKey: PrivateKey,
|
|
149
183
|
inviteeEmail: string,
|
|
150
184
|
): Promise<{
|
|
151
|
-
base64KeyPacket: string
|
|
152
|
-
base64KeyPacketSignature: string
|
|
185
|
+
base64KeyPacket: string;
|
|
186
|
+
base64KeyPacketSignature: string;
|
|
153
187
|
}> {
|
|
154
188
|
const inviteePublicKeys = await this.account.getPublicKeys(inviteeEmail);
|
|
155
|
-
const result = await this.driveCrypto.encryptInvitation(shareSessionKey, inviteePublicKeys[0], inviterKey)
|
|
189
|
+
const result = await this.driveCrypto.encryptInvitation(shareSessionKey, inviteePublicKeys[0], inviterKey);
|
|
156
190
|
return result;
|
|
157
|
-
}
|
|
191
|
+
}
|
|
158
192
|
|
|
159
193
|
/**
|
|
160
194
|
* Decrypts and verifies an invitation and node's name.
|
|
161
195
|
*/
|
|
162
|
-
async decryptInvitationWithNode(
|
|
196
|
+
async decryptInvitationWithNode(
|
|
197
|
+
encryptedInvitation: EncryptedInvitationWithNode,
|
|
198
|
+
): Promise<ProtonInvitationWithNode> {
|
|
163
199
|
const inviteeAddress = await this.account.getOwnAddress(encryptedInvitation.inviteeEmail);
|
|
164
200
|
const inviteeKey = inviteeAddress.keys[inviteeAddress.primaryKeyIndex].key;
|
|
165
201
|
|
|
@@ -171,11 +207,7 @@ export class SharingCryptoService {
|
|
|
171
207
|
|
|
172
208
|
let nodeName: Result<string, Error>;
|
|
173
209
|
try {
|
|
174
|
-
const result = await this.driveCrypto.decryptNodeName(
|
|
175
|
-
encryptedInvitation.node.encryptedName,
|
|
176
|
-
shareKey,
|
|
177
|
-
[],
|
|
178
|
-
);
|
|
210
|
+
const result = await this.driveCrypto.decryptNodeName(encryptedInvitation.node.encryptedName, shareKey, []);
|
|
179
211
|
nodeName = resultOk(result.name);
|
|
180
212
|
} catch (error: unknown) {
|
|
181
213
|
const message = getErrorMessage(error);
|
|
@@ -184,13 +216,14 @@ export class SharingCryptoService {
|
|
|
184
216
|
}
|
|
185
217
|
|
|
186
218
|
return {
|
|
187
|
-
...await this.decryptInvitation(encryptedInvitation),
|
|
219
|
+
...(await this.decryptInvitation(encryptedInvitation)),
|
|
188
220
|
node: {
|
|
221
|
+
uid: encryptedInvitation.node.uid,
|
|
189
222
|
name: nodeName,
|
|
190
223
|
type: encryptedInvitation.node.type,
|
|
191
224
|
mediaType: encryptedInvitation.node.mediaType,
|
|
192
225
|
},
|
|
193
|
-
}
|
|
226
|
+
};
|
|
194
227
|
}
|
|
195
228
|
|
|
196
229
|
/**
|
|
@@ -213,22 +246,19 @@ export class SharingCryptoService {
|
|
|
213
246
|
* Accepts an invitation by signing the session key by invitee.
|
|
214
247
|
*/
|
|
215
248
|
async acceptInvitation(encryptedInvitation: EncryptedInvitationWithNode): Promise<{
|
|
216
|
-
base64SessionKeySignature: string
|
|
249
|
+
base64SessionKeySignature: string;
|
|
217
250
|
}> {
|
|
218
251
|
const inviteeAddress = await this.account.getOwnAddress(encryptedInvitation.inviteeEmail);
|
|
219
252
|
const inviteeKey = inviteeAddress.keys[inviteeAddress.primaryKeyIndex].key;
|
|
220
|
-
const result = await this.driveCrypto.acceptInvitation(
|
|
221
|
-
encryptedInvitation.base64KeyPacket,
|
|
222
|
-
inviteeKey,
|
|
223
|
-
);
|
|
253
|
+
const result = await this.driveCrypto.acceptInvitation(encryptedInvitation.base64KeyPacket, inviteeKey);
|
|
224
254
|
return result;
|
|
225
255
|
}
|
|
226
256
|
|
|
227
257
|
/**
|
|
228
258
|
* Encrypts an external invitation for sharing a node with another user.
|
|
229
|
-
*
|
|
259
|
+
*
|
|
230
260
|
* `inviteeEmail` is used to sign the invitation with `inviterKey`.
|
|
231
|
-
*
|
|
261
|
+
*
|
|
232
262
|
* External invitations are used to share nodes with users who are not
|
|
233
263
|
* registered with Proton Drive. The external invitation then requires
|
|
234
264
|
* the invitee to sign up to create key. Then it can be followed by
|
|
@@ -239,7 +269,7 @@ export class SharingCryptoService {
|
|
|
239
269
|
inviterKey: PrivateKey,
|
|
240
270
|
inviteeEmail: string,
|
|
241
271
|
): Promise<{
|
|
242
|
-
base64ExternalInvitationSignature: string
|
|
272
|
+
base64ExternalInvitationSignature: string;
|
|
243
273
|
}> {
|
|
244
274
|
const result = await this.driveCrypto.encryptExternalInvitation(shareSessionKey, inviterKey, inviteeEmail);
|
|
245
275
|
return result;
|
|
@@ -278,19 +308,30 @@ export class SharingCryptoService {
|
|
|
278
308
|
};
|
|
279
309
|
}
|
|
280
310
|
|
|
281
|
-
async encryptPublicLink(
|
|
311
|
+
async encryptPublicLink(
|
|
312
|
+
creatorEmail: string,
|
|
313
|
+
shareSessionKey: SessionKey,
|
|
314
|
+
password: string,
|
|
315
|
+
): Promise<{
|
|
282
316
|
crypto: {
|
|
283
|
-
base64SharePasswordSalt: string
|
|
284
|
-
base64SharePassphraseKeyPacket: string
|
|
285
|
-
armoredPassword: string
|
|
286
|
-
}
|
|
287
|
-
srp: SRPVerifier
|
|
317
|
+
base64SharePasswordSalt: string;
|
|
318
|
+
base64SharePassphraseKeyPacket: string;
|
|
319
|
+
armoredPassword: string;
|
|
320
|
+
};
|
|
321
|
+
srp: SRPVerifier;
|
|
288
322
|
}> {
|
|
289
323
|
const address = await this.account.getOwnAddress(creatorEmail);
|
|
290
324
|
const addressKey = address.keys[address.primaryKeyIndex].key;
|
|
291
325
|
|
|
292
|
-
const { base64Salt: base64SharePasswordSalt, bcryptPassphrase } =
|
|
293
|
-
|
|
326
|
+
const { base64Salt: base64SharePasswordSalt, bcryptPassphrase } =
|
|
327
|
+
await this.computeKeySaltAndPassphrase(password);
|
|
328
|
+
const { base64SharePassphraseKeyPacket, armoredPassword, srp } =
|
|
329
|
+
await this.driveCrypto.encryptPublicLinkPasswordAndSessionKey(
|
|
330
|
+
password,
|
|
331
|
+
addressKey,
|
|
332
|
+
bcryptPassphrase,
|
|
333
|
+
shareSessionKey,
|
|
334
|
+
);
|
|
294
335
|
|
|
295
336
|
return {
|
|
296
337
|
crypto: {
|
|
@@ -299,7 +340,7 @@ export class SharingCryptoService {
|
|
|
299
340
|
armoredPassword,
|
|
300
341
|
},
|
|
301
342
|
srp,
|
|
302
|
-
}
|
|
343
|
+
};
|
|
303
344
|
}
|
|
304
345
|
|
|
305
346
|
async generatePublicLinkPassword(): Promise<string> {
|
|
@@ -327,17 +368,14 @@ export class SharingCryptoService {
|
|
|
327
368
|
return {
|
|
328
369
|
base64Salt: uint8ArrayToBase64String(salt),
|
|
329
370
|
bcryptPassphrase,
|
|
330
|
-
}
|
|
331
|
-
}
|
|
371
|
+
};
|
|
372
|
+
}
|
|
332
373
|
|
|
333
374
|
async decryptPublicLink(encryptedPublicLink: EncryptedPublicLink): Promise<PublicLinkWithCreatorEmail> {
|
|
334
375
|
const address = await this.account.getOwnAddress(encryptedPublicLink.creatorEmail);
|
|
335
376
|
const addressKeys = address.keys.map(({ key }) => key);
|
|
336
377
|
|
|
337
|
-
const { password, customPassword } = await this.decryptShareUrlPassword(
|
|
338
|
-
encryptedPublicLink,
|
|
339
|
-
addressKeys,
|
|
340
|
-
);
|
|
378
|
+
const { password, customPassword } = await this.decryptShareUrlPassword(encryptedPublicLink, addressKeys);
|
|
341
379
|
|
|
342
380
|
return {
|
|
343
381
|
uid: encryptedPublicLink.uid,
|
|
@@ -347,15 +385,16 @@ export class SharingCryptoService {
|
|
|
347
385
|
url: `${encryptedPublicLink.publicUrl}#${password}`,
|
|
348
386
|
customPassword,
|
|
349
387
|
creatorEmail: encryptedPublicLink.creatorEmail,
|
|
350
|
-
|
|
388
|
+
numberOfInitializedDownloads: encryptedPublicLink.numberOfInitializedDownloads,
|
|
389
|
+
};
|
|
351
390
|
}
|
|
352
391
|
|
|
353
392
|
private async decryptShareUrlPassword(
|
|
354
393
|
encryptedPublicLink: Pick<EncryptedPublicLink, 'armoredUrlPassword' | 'flags'>,
|
|
355
394
|
addressKeys: PrivateKey[],
|
|
356
395
|
): Promise<{
|
|
357
|
-
password: string
|
|
358
|
-
customPassword?: string
|
|
396
|
+
password: string;
|
|
397
|
+
customPassword?: string;
|
|
359
398
|
}> {
|
|
360
399
|
const password = await this.driveCrypto.decryptShareUrlPassword(
|
|
361
400
|
encryptedPublicLink.armoredUrlPassword,
|
|
@@ -369,21 +408,21 @@ export class SharingCryptoService {
|
|
|
369
408
|
case PublicLinkFlags.CustomPassword:
|
|
370
409
|
return {
|
|
371
410
|
password,
|
|
372
|
-
}
|
|
411
|
+
};
|
|
373
412
|
case PublicLinkFlags.GeneratedPasswordIncluded:
|
|
374
413
|
case PublicLinkFlags.GeneratedPasswordWithCustomPassword:
|
|
375
414
|
return {
|
|
376
415
|
password: password.substring(0, PUBLIC_LINK_GENERATED_PASSWORD_LENGTH),
|
|
377
416
|
customPassword: password.substring(PUBLIC_LINK_GENERATED_PASSWORD_LENGTH) || undefined,
|
|
378
|
-
}
|
|
417
|
+
};
|
|
379
418
|
default:
|
|
380
419
|
throw new Error(`Unsupported public link with flags: ${encryptedPublicLink.flags}`);
|
|
381
420
|
}
|
|
382
421
|
}
|
|
383
422
|
|
|
384
423
|
async decryptBookmark(encryptedBookmark: EncryptedBookmark): Promise<{
|
|
385
|
-
url: Result<string, Error
|
|
386
|
-
nodeName: Result<string, Error | InvalidNameError
|
|
424
|
+
url: Result<string, Error>;
|
|
425
|
+
nodeName: Result<string, Error | InvalidNameError>;
|
|
387
426
|
}> {
|
|
388
427
|
// TODO: Signatures are not checked and not specified in the interface.
|
|
389
428
|
// In the future, we will need to add authorship verification.
|
|
@@ -477,14 +516,13 @@ export class SharingCryptoService {
|
|
|
477
516
|
}
|
|
478
517
|
}
|
|
479
518
|
|
|
480
|
-
private async decryptBookmarkName(
|
|
519
|
+
private async decryptBookmarkName(
|
|
520
|
+
encryptedBookmark: EncryptedBookmark,
|
|
521
|
+
shareKey: PrivateKey,
|
|
522
|
+
): Promise<Result<string, Error | InvalidNameError>> {
|
|
481
523
|
try {
|
|
482
524
|
// Use the share key to decrypt the node name of the bookmark.
|
|
483
|
-
const { name } = await this.driveCrypto.decryptNodeName(
|
|
484
|
-
encryptedBookmark.node.encryptedName,
|
|
485
|
-
shareKey,
|
|
486
|
-
[],
|
|
487
|
-
);
|
|
525
|
+
const { name } = await this.driveCrypto.decryptNodeName(encryptedBookmark.node.encryptedName, shareKey, []);
|
|
488
526
|
|
|
489
527
|
try {
|
|
490
528
|
validateNodeName(name);
|