@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
package/src/crypto/interface.ts
CHANGED
|
@@ -48,24 +48,24 @@ export interface SessionKey {
|
|
|
48
48
|
export enum VERIFICATION_STATUS {
|
|
49
49
|
NOT_SIGNED = 0,
|
|
50
50
|
SIGNED_AND_VALID = 1,
|
|
51
|
-
SIGNED_AND_INVALID = 2
|
|
51
|
+
SIGNED_AND_INVALID = 2,
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
export interface SRPModule {
|
|
55
|
-
getSrpVerifier: (password: string) => Promise<SRPVerifier
|
|
56
|
-
computeKeyPassword: (password: string, salt: string) => Promise<string
|
|
55
|
+
getSrpVerifier: (password: string) => Promise<SRPVerifier>;
|
|
56
|
+
computeKeyPassword: (password: string, salt: string) => Promise<string>;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
export type SRPVerifier = {
|
|
60
|
-
modulusId: string
|
|
61
|
-
version: number
|
|
62
|
-
salt: string
|
|
63
|
-
verifier: string
|
|
64
|
-
}
|
|
60
|
+
modulusId: string;
|
|
61
|
+
version: number;
|
|
62
|
+
salt: string;
|
|
63
|
+
verifier: string;
|
|
64
|
+
};
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
67
|
* OpenPGP crypto layer to provide necessary PGP operations for Drive crypto.
|
|
68
|
-
*
|
|
68
|
+
*
|
|
69
69
|
* This layer focuses on providing general openPGP functions. Every operation
|
|
70
70
|
* should prefer binary input and output. Ideally, armoring should be done
|
|
71
71
|
* later in serialisation step, but for now, it is part of the interface to
|
|
@@ -77,38 +77,44 @@ export type SRPVerifier = {
|
|
|
77
77
|
export interface OpenPGPCrypto {
|
|
78
78
|
/**
|
|
79
79
|
* Generate a random passphrase.
|
|
80
|
-
*
|
|
80
|
+
*
|
|
81
81
|
* 32 random bytes are generated and encoded into a base64 string.
|
|
82
82
|
*/
|
|
83
|
-
generatePassphrase: () => string
|
|
83
|
+
generatePassphrase: () => string;
|
|
84
84
|
|
|
85
|
-
generateSessionKey: (encryptionKeys: PrivateKey[]) => Promise<SessionKey
|
|
85
|
+
generateSessionKey: (encryptionKeys: PrivateKey[]) => Promise<SessionKey>;
|
|
86
86
|
|
|
87
|
-
encryptSessionKey: (
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
encryptSessionKey: (
|
|
88
|
+
sessionKey: SessionKey,
|
|
89
|
+
encryptionKeys: PublicKey | PublicKey[],
|
|
90
|
+
) => Promise<{
|
|
91
|
+
keyPacket: Uint8Array;
|
|
92
|
+
}>;
|
|
90
93
|
|
|
91
|
-
encryptSessionKeyWithPassword: (
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
encryptSessionKeyWithPassword: (
|
|
95
|
+
sessionKey: SessionKey,
|
|
96
|
+
password: string,
|
|
97
|
+
) => Promise<{
|
|
98
|
+
keyPacket: Uint8Array;
|
|
99
|
+
}>;
|
|
94
100
|
|
|
95
101
|
/**
|
|
96
102
|
* Generate a new key pair locked by a passphrase.
|
|
97
|
-
*
|
|
103
|
+
*
|
|
98
104
|
* The key pair is generated using the Curve25519 algorithm.
|
|
99
105
|
*/
|
|
100
106
|
generateKey: (passphrase: string) => Promise<{
|
|
101
|
-
privateKey: PrivateKey
|
|
102
|
-
armoredKey: string
|
|
103
|
-
}
|
|
107
|
+
privateKey: PrivateKey;
|
|
108
|
+
armoredKey: string;
|
|
109
|
+
}>;
|
|
104
110
|
|
|
105
111
|
encryptArmored: (
|
|
106
112
|
data: Uint8Array,
|
|
107
113
|
encryptionKeys: PrivateKey[],
|
|
108
114
|
sessionKey?: SessionKey,
|
|
109
115
|
) => Promise<{
|
|
110
|
-
armoredData: string
|
|
111
|
-
}
|
|
116
|
+
armoredData: string;
|
|
117
|
+
}>;
|
|
112
118
|
|
|
113
119
|
encryptAndSign: (
|
|
114
120
|
data: Uint8Array,
|
|
@@ -116,8 +122,8 @@ export interface OpenPGPCrypto {
|
|
|
116
122
|
encryptionKeys: PrivateKey[],
|
|
117
123
|
signingKey: PrivateKey,
|
|
118
124
|
) => Promise<{
|
|
119
|
-
encryptedData: Uint8Array
|
|
120
|
-
}
|
|
125
|
+
encryptedData: Uint8Array;
|
|
126
|
+
}>;
|
|
121
127
|
|
|
122
128
|
encryptAndSignArmored: (
|
|
123
129
|
data: Uint8Array,
|
|
@@ -125,8 +131,8 @@ export interface OpenPGPCrypto {
|
|
|
125
131
|
encryptionKeys: PrivateKey[],
|
|
126
132
|
signingKey: PrivateKey,
|
|
127
133
|
) => Promise<{
|
|
128
|
-
armoredData: string
|
|
129
|
-
}
|
|
134
|
+
armoredData: string;
|
|
135
|
+
}>;
|
|
130
136
|
|
|
131
137
|
encryptAndSignDetached: (
|
|
132
138
|
data: Uint8Array,
|
|
@@ -134,9 +140,9 @@ export interface OpenPGPCrypto {
|
|
|
134
140
|
encryptionKeys: PrivateKey[],
|
|
135
141
|
signingKey: PrivateKey,
|
|
136
142
|
) => Promise<{
|
|
137
|
-
encryptedData: Uint8Array
|
|
138
|
-
signature: Uint8Array
|
|
139
|
-
}
|
|
143
|
+
encryptedData: Uint8Array;
|
|
144
|
+
signature: Uint8Array;
|
|
145
|
+
}>;
|
|
140
146
|
|
|
141
147
|
encryptAndSignDetachedArmored: (
|
|
142
148
|
data: Uint8Array,
|
|
@@ -144,56 +150,47 @@ export interface OpenPGPCrypto {
|
|
|
144
150
|
encryptionKeys: PrivateKey[],
|
|
145
151
|
signingKey: PrivateKey,
|
|
146
152
|
) => Promise<{
|
|
147
|
-
armoredData: string
|
|
148
|
-
armoredSignature: string
|
|
149
|
-
}
|
|
153
|
+
armoredData: string;
|
|
154
|
+
armoredSignature: string;
|
|
155
|
+
}>;
|
|
150
156
|
|
|
151
157
|
sign: (
|
|
152
158
|
data: Uint8Array,
|
|
153
159
|
signingKey: PrivateKey,
|
|
154
160
|
signatureContext: string,
|
|
155
161
|
) => Promise<{
|
|
156
|
-
signature: Uint8Array
|
|
157
|
-
}
|
|
162
|
+
signature: Uint8Array;
|
|
163
|
+
}>;
|
|
158
164
|
|
|
159
165
|
signArmored: (
|
|
160
166
|
data: Uint8Array,
|
|
161
167
|
signingKey: PrivateKey | PrivateKey[],
|
|
162
168
|
) => Promise<{
|
|
163
|
-
signature: string
|
|
164
|
-
}
|
|
169
|
+
signature: string;
|
|
170
|
+
}>;
|
|
165
171
|
|
|
166
172
|
verify: (
|
|
167
173
|
data: Uint8Array,
|
|
168
174
|
armoredSignature: string,
|
|
169
175
|
verificationKeys: PublicKey | PublicKey[],
|
|
170
176
|
) => Promise<{
|
|
171
|
-
verified: VERIFICATION_STATUS
|
|
172
|
-
}
|
|
177
|
+
verified: VERIFICATION_STATUS;
|
|
178
|
+
}>;
|
|
173
179
|
|
|
174
|
-
decryptSessionKey: (
|
|
175
|
-
data: Uint8Array,
|
|
176
|
-
decryptionKeys: PrivateKey | PrivateKey[],
|
|
177
|
-
) => Promise<SessionKey>,
|
|
180
|
+
decryptSessionKey: (data: Uint8Array, decryptionKeys: PrivateKey | PrivateKey[]) => Promise<SessionKey>;
|
|
178
181
|
|
|
179
|
-
decryptArmoredSessionKey: (
|
|
180
|
-
armoredData: string,
|
|
181
|
-
decryptionKeys: PrivateKey | PrivateKey[],
|
|
182
|
-
) => Promise<SessionKey>,
|
|
182
|
+
decryptArmoredSessionKey: (armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]) => Promise<SessionKey>;
|
|
183
183
|
|
|
184
|
-
decryptKey: (
|
|
185
|
-
armoredKey: string,
|
|
186
|
-
passphrase: string,
|
|
187
|
-
) => Promise<PrivateKey>,
|
|
184
|
+
decryptKey: (armoredKey: string, passphrase: string) => Promise<PrivateKey>;
|
|
188
185
|
|
|
189
186
|
decryptAndVerify(
|
|
190
187
|
data: Uint8Array,
|
|
191
188
|
sessionKey: SessionKey,
|
|
192
189
|
verificationKeys: PublicKey | PublicKey[],
|
|
193
190
|
): Promise<{
|
|
194
|
-
data: Uint8Array
|
|
195
|
-
verified: VERIFICATION_STATUS
|
|
196
|
-
}
|
|
191
|
+
data: Uint8Array;
|
|
192
|
+
verified: VERIFICATION_STATUS;
|
|
193
|
+
}>;
|
|
197
194
|
|
|
198
195
|
decryptAndVerifyDetached(
|
|
199
196
|
data: Uint8Array,
|
|
@@ -201,23 +198,20 @@ export interface OpenPGPCrypto {
|
|
|
201
198
|
sessionKey: SessionKey,
|
|
202
199
|
verificationKeys?: PublicKey | PublicKey[],
|
|
203
200
|
): Promise<{
|
|
204
|
-
data: Uint8Array
|
|
205
|
-
verified: VERIFICATION_STATUS
|
|
206
|
-
}
|
|
201
|
+
data: Uint8Array;
|
|
202
|
+
verified: VERIFICATION_STATUS;
|
|
203
|
+
}>;
|
|
207
204
|
|
|
208
|
-
decryptArmored(
|
|
209
|
-
armoredData: string,
|
|
210
|
-
decryptionKeys: PrivateKey | PrivateKey[],
|
|
211
|
-
): Promise<Uint8Array>,
|
|
205
|
+
decryptArmored(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]): Promise<Uint8Array>;
|
|
212
206
|
|
|
213
207
|
decryptArmoredAndVerify: (
|
|
214
208
|
armoredData: string,
|
|
215
209
|
decryptionKeys: PrivateKey | PrivateKey[],
|
|
216
210
|
verificationKeys: PublicKey | PublicKey[],
|
|
217
211
|
) => Promise<{
|
|
218
|
-
data: Uint8Array
|
|
219
|
-
verified: VERIFICATION_STATUS
|
|
220
|
-
}
|
|
212
|
+
data: Uint8Array;
|
|
213
|
+
verified: VERIFICATION_STATUS;
|
|
214
|
+
}>;
|
|
221
215
|
|
|
222
216
|
decryptArmoredAndVerifyDetached: (
|
|
223
217
|
armoredData: string,
|
|
@@ -225,12 +219,9 @@ export interface OpenPGPCrypto {
|
|
|
225
219
|
sessionKey: SessionKey,
|
|
226
220
|
verificationKeys: PublicKey | PublicKey[],
|
|
227
221
|
) => Promise<{
|
|
228
|
-
data: Uint8Array
|
|
229
|
-
verified: VERIFICATION_STATUS
|
|
230
|
-
}
|
|
222
|
+
data: Uint8Array;
|
|
223
|
+
verified: VERIFICATION_STATUS;
|
|
224
|
+
}>;
|
|
231
225
|
|
|
232
|
-
decryptArmoredWithPassword(
|
|
233
|
-
armoredData: string,
|
|
234
|
-
password: string,
|
|
235
|
-
): Promise<Uint8Array>,
|
|
226
|
+
decryptArmoredWithPassword(armoredData: string, password: string): Promise<Uint8Array>;
|
|
236
227
|
}
|
|
@@ -6,57 +6,63 @@ import { uint8ArrayToBase64String } from './utils';
|
|
|
6
6
|
* clients/packages/crypto/lib/proxy/proxy.ts.
|
|
7
7
|
*/
|
|
8
8
|
export interface OpenPGPCryptoProxy {
|
|
9
|
-
generateKey: (options: { userIDs: { name: string }[]
|
|
10
|
-
exportPrivateKey: (options: { privateKey: PrivateKey
|
|
11
|
-
importPrivateKey: (options: { armoredKey: string
|
|
12
|
-
generateSessionKey: (options: { recipientKeys: PrivateKey[] }) => Promise<SessionKey
|
|
13
|
-
encryptSessionKey: (
|
|
14
|
-
|
|
9
|
+
generateKey: (options: { userIDs: { name: string }[]; type: 'ecc'; curve: 'ed25519Legacy' }) => Promise<PrivateKey>;
|
|
10
|
+
exportPrivateKey: (options: { privateKey: PrivateKey; passphrase: string | null }) => Promise<string>;
|
|
11
|
+
importPrivateKey: (options: { armoredKey: string; passphrase: string | null }) => Promise<PrivateKey>;
|
|
12
|
+
generateSessionKey: (options: { recipientKeys: PrivateKey[] }) => Promise<SessionKey>;
|
|
13
|
+
encryptSessionKey: (
|
|
14
|
+
options: SessionKey & { format: 'binary'; encryptionKeys?: PublicKey | PublicKey[]; passwords?: string[] },
|
|
15
|
+
) => Promise<Uint8Array>;
|
|
16
|
+
decryptSessionKey: (options: {
|
|
17
|
+
armoredMessage?: string;
|
|
18
|
+
binaryMessage?: Uint8Array;
|
|
19
|
+
decryptionKeys: PrivateKey | PrivateKey[];
|
|
20
|
+
}) => Promise<SessionKey | undefined>;
|
|
15
21
|
encryptMessage: (options: {
|
|
16
|
-
format?: 'armored' | 'binary'
|
|
17
|
-
binaryData: Uint8Array
|
|
18
|
-
sessionKey?: SessionKey
|
|
19
|
-
encryptionKeys: PrivateKey[]
|
|
20
|
-
signingKeys?: PrivateKey
|
|
21
|
-
detached?: boolean
|
|
22
|
+
format?: 'armored' | 'binary';
|
|
23
|
+
binaryData: Uint8Array;
|
|
24
|
+
sessionKey?: SessionKey;
|
|
25
|
+
encryptionKeys: PrivateKey[];
|
|
26
|
+
signingKeys?: PrivateKey;
|
|
27
|
+
detached?: boolean;
|
|
22
28
|
}) => Promise<{
|
|
23
|
-
message: string | Uint8Array
|
|
24
|
-
signature?: string | Uint8Array
|
|
25
|
-
}
|
|
29
|
+
message: string | Uint8Array;
|
|
30
|
+
signature?: string | Uint8Array;
|
|
31
|
+
}>;
|
|
26
32
|
decryptMessage: (options: {
|
|
27
|
-
format: 'utf8' | 'binary'
|
|
28
|
-
armoredMessage?: string
|
|
29
|
-
binaryMessage?: Uint8Array
|
|
30
|
-
armoredSignature?: string
|
|
31
|
-
binarySignature?: Uint8Array
|
|
32
|
-
sessionKeys?: SessionKey
|
|
33
|
-
passwords?: string[]
|
|
34
|
-
decryptionKeys?: PrivateKey | PrivateKey[]
|
|
35
|
-
verificationKeys?: PublicKey | PublicKey[]
|
|
33
|
+
format: 'utf8' | 'binary';
|
|
34
|
+
armoredMessage?: string;
|
|
35
|
+
binaryMessage?: Uint8Array;
|
|
36
|
+
armoredSignature?: string;
|
|
37
|
+
binarySignature?: Uint8Array;
|
|
38
|
+
sessionKeys?: SessionKey;
|
|
39
|
+
passwords?: string[];
|
|
40
|
+
decryptionKeys?: PrivateKey | PrivateKey[];
|
|
41
|
+
verificationKeys?: PublicKey | PublicKey[];
|
|
36
42
|
}) => Promise<{
|
|
37
|
-
data: Uint8Array | string
|
|
43
|
+
data: Uint8Array | string;
|
|
38
44
|
// pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
|
|
39
45
|
// Web clients are using newer pmcrypto, but CLI is using older version due to build issues with Bun.
|
|
40
|
-
verified?: VERIFICATION_STATUS
|
|
41
|
-
verificationStatus?: VERIFICATION_STATUS
|
|
42
|
-
}
|
|
46
|
+
verified?: VERIFICATION_STATUS;
|
|
47
|
+
verificationStatus?: VERIFICATION_STATUS;
|
|
48
|
+
}>;
|
|
43
49
|
signMessage: (options: {
|
|
44
|
-
format: 'binary' | 'armored'
|
|
45
|
-
binaryData: Uint8Array
|
|
46
|
-
signingKeys: PrivateKey | PrivateKey[]
|
|
47
|
-
detached: boolean
|
|
48
|
-
signatureContext?: { critical: boolean
|
|
49
|
-
}) => Promise<Uint8Array | string
|
|
50
|
+
format: 'binary' | 'armored';
|
|
51
|
+
binaryData: Uint8Array;
|
|
52
|
+
signingKeys: PrivateKey | PrivateKey[];
|
|
53
|
+
detached: boolean;
|
|
54
|
+
signatureContext?: { critical: boolean; value: string };
|
|
55
|
+
}) => Promise<Uint8Array | string>;
|
|
50
56
|
verifyMessage: (options: {
|
|
51
|
-
binaryData: Uint8Array
|
|
52
|
-
armoredSignature: string
|
|
53
|
-
verificationKeys: PublicKey | PublicKey[]
|
|
57
|
+
binaryData: Uint8Array;
|
|
58
|
+
armoredSignature: string;
|
|
59
|
+
verificationKeys: PublicKey | PublicKey[];
|
|
54
60
|
}) => Promise<{
|
|
55
61
|
// pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
|
|
56
62
|
// Web clients are using newer pmcrypto, but CLI is using older version due to build issues with Bun.
|
|
57
|
-
verified?: VERIFICATION_STATUS
|
|
58
|
-
verificationStatus?: VERIFICATION_STATUS
|
|
59
|
-
}
|
|
63
|
+
verified?: VERIFICATION_STATUS;
|
|
64
|
+
verificationStatus?: VERIFICATION_STATUS;
|
|
65
|
+
}>;
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
/**
|
|
@@ -87,7 +93,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
87
93
|
encryptionKeys,
|
|
88
94
|
});
|
|
89
95
|
return {
|
|
90
|
-
keyPacket
|
|
96
|
+
keyPacket,
|
|
91
97
|
};
|
|
92
98
|
}
|
|
93
99
|
|
|
@@ -120,11 +126,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
120
126
|
};
|
|
121
127
|
}
|
|
122
128
|
|
|
123
|
-
async encryptArmored(
|
|
124
|
-
data: Uint8Array,
|
|
125
|
-
encryptionKeys: PrivateKey[],
|
|
126
|
-
sessionKey?: SessionKey,
|
|
127
|
-
) {
|
|
129
|
+
async encryptArmored(data: Uint8Array, encryptionKeys: PrivateKey[], sessionKey?: SessionKey) {
|
|
128
130
|
const { message: armoredData } = await this.cryptoProxy.encryptMessage({
|
|
129
131
|
binaryData: data,
|
|
130
132
|
sessionKey,
|
|
@@ -132,7 +134,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
132
134
|
});
|
|
133
135
|
return {
|
|
134
136
|
armoredData: armoredData as string,
|
|
135
|
-
}
|
|
137
|
+
};
|
|
136
138
|
}
|
|
137
139
|
|
|
138
140
|
async encryptAndSign(
|
|
@@ -189,7 +191,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
189
191
|
return {
|
|
190
192
|
encryptedData: encryptedData as Uint8Array,
|
|
191
193
|
signature: signature as Uint8Array,
|
|
192
|
-
}
|
|
194
|
+
};
|
|
193
195
|
}
|
|
194
196
|
|
|
195
197
|
async encryptAndSignDetachedArmored(
|
|
@@ -208,14 +210,10 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
208
210
|
return {
|
|
209
211
|
armoredData: armoredData as string,
|
|
210
212
|
armoredSignature: armoredSignature as string,
|
|
211
|
-
}
|
|
213
|
+
};
|
|
212
214
|
}
|
|
213
215
|
|
|
214
|
-
async sign(
|
|
215
|
-
data: Uint8Array,
|
|
216
|
-
signingKeys: PrivateKey | PrivateKey[],
|
|
217
|
-
signatureContext: string,
|
|
218
|
-
) {
|
|
216
|
+
async sign(data: Uint8Array, signingKeys: PrivateKey | PrivateKey[], signatureContext: string) {
|
|
219
217
|
const signature = await this.cryptoProxy.signMessage({
|
|
220
218
|
binaryData: data,
|
|
221
219
|
signingKeys,
|
|
@@ -228,10 +226,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
228
226
|
};
|
|
229
227
|
}
|
|
230
228
|
|
|
231
|
-
async signArmored(
|
|
232
|
-
data: Uint8Array,
|
|
233
|
-
signingKeys: PrivateKey | PrivateKey[],
|
|
234
|
-
) {
|
|
229
|
+
async signArmored(data: Uint8Array, signingKeys: PrivateKey | PrivateKey[]) {
|
|
235
230
|
const signature = await this.cryptoProxy.signMessage({
|
|
236
231
|
binaryData: data,
|
|
237
232
|
signingKeys,
|
|
@@ -243,11 +238,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
243
238
|
};
|
|
244
239
|
}
|
|
245
240
|
|
|
246
|
-
async verify(
|
|
247
|
-
data: Uint8Array,
|
|
248
|
-
armoredSignature: string,
|
|
249
|
-
verificationKeys: PublicKey | PublicKey[],
|
|
250
|
-
) {
|
|
241
|
+
async verify(data: Uint8Array, armoredSignature: string, verificationKeys: PublicKey | PublicKey[]) {
|
|
251
242
|
const { verified, verificationStatus } = await this.cryptoProxy.verifyMessage({
|
|
252
243
|
binaryData: data,
|
|
253
244
|
armoredSignature,
|
|
@@ -260,10 +251,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
260
251
|
};
|
|
261
252
|
}
|
|
262
253
|
|
|
263
|
-
async decryptSessionKey(
|
|
264
|
-
data: Uint8Array,
|
|
265
|
-
decryptionKeys: PrivateKey | PrivateKey[],
|
|
266
|
-
) {
|
|
254
|
+
async decryptSessionKey(data: Uint8Array, decryptionKeys: PrivateKey | PrivateKey[]) {
|
|
267
255
|
const sessionKey = await this.cryptoProxy.decryptSessionKey({
|
|
268
256
|
binaryMessage: data,
|
|
269
257
|
decryptionKeys,
|
|
@@ -276,10 +264,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
276
264
|
return sessionKey;
|
|
277
265
|
}
|
|
278
266
|
|
|
279
|
-
async decryptArmoredSessionKey(
|
|
280
|
-
armoredData: string,
|
|
281
|
-
decryptionKeys: PrivateKey | PrivateKey[],
|
|
282
|
-
) {
|
|
267
|
+
async decryptArmoredSessionKey(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]) {
|
|
283
268
|
const sessionKey = await this.cryptoProxy.decryptSessionKey({
|
|
284
269
|
armoredMessage: armoredData,
|
|
285
270
|
decryptionKeys,
|
|
@@ -292,10 +277,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
292
277
|
return sessionKey;
|
|
293
278
|
}
|
|
294
279
|
|
|
295
|
-
async decryptKey(
|
|
296
|
-
armoredKey: string,
|
|
297
|
-
passphrase: string,
|
|
298
|
-
) {
|
|
280
|
+
async decryptKey(armoredKey: string, passphrase: string) {
|
|
299
281
|
const key = await this.cryptoProxy.importPrivateKey({
|
|
300
282
|
armoredKey,
|
|
301
283
|
passphrase,
|
|
@@ -303,12 +285,12 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
303
285
|
return key;
|
|
304
286
|
}
|
|
305
287
|
|
|
306
|
-
async decryptAndVerify(
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
288
|
+
async decryptAndVerify(data: Uint8Array, sessionKey: SessionKey, verificationKeys: PublicKey[]) {
|
|
289
|
+
const {
|
|
290
|
+
data: decryptedData,
|
|
291
|
+
verified,
|
|
292
|
+
verificationStatus,
|
|
293
|
+
} = await this.cryptoProxy.decryptMessage({
|
|
312
294
|
binaryMessage: data,
|
|
313
295
|
sessionKeys: sessionKey,
|
|
314
296
|
verificationKeys,
|
|
@@ -320,7 +302,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
320
302
|
// pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
|
|
321
303
|
// Proper typing is too complex, it will be removed to support only newer pmcrypto.
|
|
322
304
|
verified: verified || verificationStatus!,
|
|
323
|
-
}
|
|
305
|
+
};
|
|
324
306
|
}
|
|
325
307
|
|
|
326
308
|
async decryptAndVerifyDetached(
|
|
@@ -329,7 +311,11 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
329
311
|
sessionKey: SessionKey,
|
|
330
312
|
verificationKeys?: PublicKey[],
|
|
331
313
|
) {
|
|
332
|
-
const {
|
|
314
|
+
const {
|
|
315
|
+
data: decryptedData,
|
|
316
|
+
verified,
|
|
317
|
+
verificationStatus,
|
|
318
|
+
} = await this.cryptoProxy.decryptMessage({
|
|
333
319
|
binaryMessage: data,
|
|
334
320
|
binarySignature: signature,
|
|
335
321
|
sessionKeys: sessionKey,
|
|
@@ -342,13 +328,10 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
342
328
|
// pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
|
|
343
329
|
// Proper typing is too complex, it will be removed to support only newer pmcrypto.
|
|
344
330
|
verified: verified || verificationStatus!,
|
|
345
|
-
}
|
|
331
|
+
};
|
|
346
332
|
}
|
|
347
333
|
|
|
348
|
-
async decryptArmored(
|
|
349
|
-
armoredData: string,
|
|
350
|
-
decryptionKeys: PrivateKey | PrivateKey[],
|
|
351
|
-
) {
|
|
334
|
+
async decryptArmored(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]) {
|
|
352
335
|
const { data } = await this.cryptoProxy.decryptMessage({
|
|
353
336
|
armoredMessage: armoredData,
|
|
354
337
|
decryptionKeys,
|
|
@@ -374,7 +357,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
374
357
|
// pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
|
|
375
358
|
// Proper typing is too complex, it will be removed to support only newer pmcrypto.
|
|
376
359
|
verified: verified || verificationStatus!,
|
|
377
|
-
}
|
|
360
|
+
};
|
|
378
361
|
}
|
|
379
362
|
|
|
380
363
|
async decryptArmoredAndVerifyDetached(
|
|
@@ -396,13 +379,10 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
396
379
|
// pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
|
|
397
380
|
// Proper typing is too complex, it will be removed to support only newer pmcrypto.
|
|
398
381
|
verified: verified || verificationStatus!,
|
|
399
|
-
}
|
|
382
|
+
};
|
|
400
383
|
}
|
|
401
384
|
|
|
402
|
-
async decryptArmoredWithPassword(
|
|
403
|
-
armoredData: string,
|
|
404
|
-
password: string,
|
|
405
|
-
) {
|
|
385
|
+
async decryptArmoredWithPassword(armoredData: string, password: string) {
|
|
406
386
|
const { data } = await this.cryptoProxy.decryptMessage({
|
|
407
387
|
armoredMessage: armoredData,
|
|
408
388
|
passwords: [password],
|
package/src/crypto/utils.ts
CHANGED
|
@@ -4,7 +4,7 @@ export function uint8ArrayToBase64String(array: Uint8Array) {
|
|
|
4
4
|
return encodeBase64(arrayToBinaryString(array));
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export function base64StringToUint8Array(string: string){
|
|
7
|
+
export function base64StringToUint8Array(string: string) {
|
|
8
8
|
return binaryStringToArray(decodeBase64(string) || '');
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -14,10 +14,10 @@ export class EventsGenerator {
|
|
|
14
14
|
this.eventQueue.push(event);
|
|
15
15
|
// Notify all waiting generators
|
|
16
16
|
const resolvers = this.waitingResolvers.splice(0);
|
|
17
|
-
resolvers.forEach(resolve => resolve());
|
|
17
|
+
resolvers.forEach((resolve) => resolve());
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
async*
|
|
20
|
+
async *iterateEvents(): AsyncGenerator<DiagnosticResult> {
|
|
21
21
|
try {
|
|
22
22
|
while (true) {
|
|
23
23
|
if (this.eventQueue.length === 0) {
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ProtonDriveHTTPClient,
|
|
3
|
+
ProtonDriveHTTPClientBlobOptions,
|
|
4
|
+
ProtonDriveHTTPClientJsonOptions,
|
|
5
|
+
} from '../interface';
|
|
2
6
|
import { EventsGenerator } from './eventsGenerator';
|
|
3
7
|
|
|
4
8
|
/**
|
|
@@ -77,4 +81,4 @@ export class DiagnosticHTTPClient extends EventsGenerator implements ProtonDrive
|
|
|
77
81
|
fetchBlob(options: ProtonDriveHTTPClientBlobOptions): Promise<Response> {
|
|
78
82
|
return this.httpClient.fetchBlob(options);
|
|
79
83
|
}
|
|
80
|
-
}
|
|
84
|
+
}
|
package/src/diagnostic/index.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { MemoryCache, NullCache } from
|
|
2
|
-
import { ProtonDriveClientContructorParameters } from
|
|
3
|
-
import { ProtonDriveClient } from
|
|
4
|
-
import { DiagnosticHTTPClient } from
|
|
5
|
-
import { Diagnostic } from
|
|
6
|
-
import { SDKDiagnostic } from
|
|
7
|
-
import { FullSDKDiagnostic } from
|
|
8
|
-
import { DiagnosticTelemetry } from
|
|
1
|
+
import { MemoryCache, NullCache } from '../cache';
|
|
2
|
+
import { ProtonDriveClientContructorParameters } from '../interface';
|
|
3
|
+
import { ProtonDriveClient } from '../protonDriveClient';
|
|
4
|
+
import { DiagnosticHTTPClient } from './httpClient';
|
|
5
|
+
import { Diagnostic } from './interface';
|
|
6
|
+
import { SDKDiagnostic } from './sdkDiagnostic';
|
|
7
|
+
import { FullSDKDiagnostic } from './sdkDiagnosticFull';
|
|
8
|
+
import { DiagnosticTelemetry } from './telemetry';
|
|
9
9
|
|
|
10
|
-
export type { Diagnostic, DiagnosticResult } from
|
|
10
|
+
export type { Diagnostic, DiagnosticResult } from './interface';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Initializes the diagnostic tool. It creates the instance of
|
|
@@ -15,7 +15,9 @@ export type { Diagnostic, DiagnosticResult } from "./interface";
|
|
|
15
15
|
* metrics and HTTP calls; and enforced null/empty cache to always
|
|
16
16
|
* start from scratch.
|
|
17
17
|
*/
|
|
18
|
-
export function initDiagnostic(
|
|
18
|
+
export function initDiagnostic(
|
|
19
|
+
options: Omit<ProtonDriveClientContructorParameters, 'entitiesCache' | 'cryptoCache' | 'telemetry'>,
|
|
20
|
+
): Diagnostic {
|
|
19
21
|
const httpClient = new DiagnosticHTTPClient(options.httpClient);
|
|
20
22
|
const telemetry = new DiagnosticTelemetry();
|
|
21
23
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sha1 } from
|
|
1
|
+
import { sha1 } from '@noble/hashes/legacy';
|
|
2
2
|
import { bytesToHex } from '@noble/hashes/utils';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -30,7 +30,7 @@ export class IntegrityVerificationStream extends WritableStream<Uint8Array> {
|
|
|
30
30
|
abort: () => {
|
|
31
31
|
this._isClosed = true;
|
|
32
32
|
this._computedSha1 = undefined;
|
|
33
|
-
}
|
|
33
|
+
},
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -52,5 +52,4 @@ export class IntegrityVerificationStream extends WritableStream<Uint8Array> {
|
|
|
52
52
|
}
|
|
53
53
|
return this._computedSizeInBytes;
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
}
|
|
55
|
+
}
|