@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
|
@@ -10,7 +10,12 @@ import { UploadManager } from './manager';
|
|
|
10
10
|
|
|
11
11
|
const BLOCK_ENCRYPTION_OVERHEAD = 10000;
|
|
12
12
|
|
|
13
|
-
async function mockEncryptBlock(
|
|
13
|
+
async function mockEncryptBlock(
|
|
14
|
+
verifyBlock: (block: Uint8Array) => Promise<void>,
|
|
15
|
+
_: any,
|
|
16
|
+
block: Uint8Array,
|
|
17
|
+
index: number,
|
|
18
|
+
) {
|
|
14
19
|
await verifyBlock(block);
|
|
15
20
|
return {
|
|
16
21
|
index,
|
|
@@ -23,7 +28,12 @@ async function mockEncryptBlock(verifyBlock: (block: Uint8Array) => Promise<void
|
|
|
23
28
|
};
|
|
24
29
|
}
|
|
25
30
|
|
|
26
|
-
function mockUploadBlock(
|
|
31
|
+
function mockUploadBlock(
|
|
32
|
+
_: string,
|
|
33
|
+
__: string,
|
|
34
|
+
encryptedBlock: Uint8Array,
|
|
35
|
+
onProgress: (uploadedBytes: number) => void,
|
|
36
|
+
) {
|
|
27
37
|
onProgress(encryptedBlock.length);
|
|
28
38
|
}
|
|
29
39
|
|
|
@@ -177,7 +187,9 @@ describe('FileUploader', () => {
|
|
|
177
187
|
it('should throw an error if upload already started', async () => {
|
|
178
188
|
await uploader.writeStream(stream, thumbnails, onProgress);
|
|
179
189
|
|
|
180
|
-
await expect(uploader.writeStream(stream, thumbnails, onProgress)).rejects.toThrow(
|
|
190
|
+
await expect(uploader.writeStream(stream, thumbnails, onProgress)).rejects.toThrow(
|
|
191
|
+
'Upload already started',
|
|
192
|
+
);
|
|
181
193
|
});
|
|
182
194
|
});
|
|
183
195
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Thumbnail, UploadMetadata } from
|
|
2
|
-
import { UploadAPIService } from
|
|
3
|
-
import { BlockVerifier } from
|
|
1
|
+
import { Thumbnail, UploadMetadata } from '../../interface';
|
|
2
|
+
import { UploadAPIService } from './apiService';
|
|
3
|
+
import { BlockVerifier } from './blockVerifier';
|
|
4
4
|
import { UploadController } from './controller';
|
|
5
|
-
import { UploadCryptoService } from
|
|
6
|
-
import { NodeRevisionDraft } from
|
|
7
|
-
import { UploadManager } from
|
|
5
|
+
import { UploadCryptoService } from './cryptoService';
|
|
6
|
+
import { NodeRevisionDraft } from './interface';
|
|
7
|
+
import { UploadManager } from './manager';
|
|
8
8
|
import { StreamUploader } from './streamUploader';
|
|
9
9
|
import { UploadTelemetry } from './telemetry';
|
|
10
10
|
|
|
@@ -46,7 +46,11 @@ class Uploader {
|
|
|
46
46
|
this.controller = new UploadController();
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
async writeFile(
|
|
49
|
+
async writeFile(
|
|
50
|
+
fileObject: File,
|
|
51
|
+
thumbnails: Thumbnail[],
|
|
52
|
+
onProgress?: (uploadedBytes: number) => void,
|
|
53
|
+
): Promise<UploadController> {
|
|
50
54
|
if (this.controller.promise) {
|
|
51
55
|
throw new Error(`Upload already started`);
|
|
52
56
|
}
|
|
@@ -63,7 +67,11 @@ class Uploader {
|
|
|
63
67
|
return this.controller;
|
|
64
68
|
}
|
|
65
69
|
|
|
66
|
-
async writeStream(
|
|
70
|
+
async writeStream(
|
|
71
|
+
stream: ReadableStream,
|
|
72
|
+
thumbnails: Thumbnail[],
|
|
73
|
+
onProgress?: (uploadedBytes: number) => void,
|
|
74
|
+
): Promise<UploadController> {
|
|
67
75
|
if (this.controller.promise) {
|
|
68
76
|
throw new Error(`Upload already started`);
|
|
69
77
|
}
|
|
@@ -71,7 +79,11 @@ class Uploader {
|
|
|
71
79
|
return this.controller;
|
|
72
80
|
}
|
|
73
81
|
|
|
74
|
-
protected async startUpload(
|
|
82
|
+
protected async startUpload(
|
|
83
|
+
stream: ReadableStream,
|
|
84
|
+
thumbnails: Thumbnail[],
|
|
85
|
+
onProgress?: (uploadedBytes: number) => void,
|
|
86
|
+
): Promise<string> {
|
|
75
87
|
const uploader = await this.initStreamUploader();
|
|
76
88
|
return uploader.start(stream, thumbnails, onProgress);
|
|
77
89
|
}
|
|
@@ -84,7 +96,7 @@ class Uploader {
|
|
|
84
96
|
if (failure) {
|
|
85
97
|
await this.manager.deleteDraftNode(revisionDraft.nodeUid);
|
|
86
98
|
}
|
|
87
|
-
}
|
|
99
|
+
};
|
|
88
100
|
|
|
89
101
|
return new StreamUploader(
|
|
90
102
|
this.telemetry,
|
|
@@ -99,7 +111,7 @@ class Uploader {
|
|
|
99
111
|
);
|
|
100
112
|
}
|
|
101
113
|
|
|
102
|
-
protected async createRevisionDraft(): Promise<{ revisionDraft: NodeRevisionDraft
|
|
114
|
+
protected async createRevisionDraft(): Promise<{ revisionDraft: NodeRevisionDraft; blockVerifier: BlockVerifier }> {
|
|
103
115
|
throw new Error('Not implemented');
|
|
104
116
|
}
|
|
105
117
|
}
|
|
@@ -125,12 +137,17 @@ export class FileUploader extends Uploader {
|
|
|
125
137
|
this.name = name;
|
|
126
138
|
}
|
|
127
139
|
|
|
128
|
-
protected async createRevisionDraft(): Promise<{ revisionDraft: NodeRevisionDraft
|
|
140
|
+
protected async createRevisionDraft(): Promise<{ revisionDraft: NodeRevisionDraft; blockVerifier: BlockVerifier }> {
|
|
129
141
|
let revisionDraft, blockVerifier;
|
|
130
142
|
try {
|
|
131
143
|
revisionDraft = await this.manager.createDraftNode(this.parentFolderUid, this.name, this.metadata);
|
|
132
144
|
|
|
133
|
-
blockVerifier = new BlockVerifier(
|
|
145
|
+
blockVerifier = new BlockVerifier(
|
|
146
|
+
this.apiService,
|
|
147
|
+
this.cryptoService,
|
|
148
|
+
revisionDraft.nodeKeys.key,
|
|
149
|
+
revisionDraft.nodeRevisionUid,
|
|
150
|
+
);
|
|
134
151
|
await blockVerifier.loadVerificationData();
|
|
135
152
|
} catch (error: unknown) {
|
|
136
153
|
this.onFinish();
|
|
@@ -144,7 +161,7 @@ export class FileUploader extends Uploader {
|
|
|
144
161
|
return {
|
|
145
162
|
revisionDraft,
|
|
146
163
|
blockVerifier,
|
|
147
|
-
}
|
|
164
|
+
};
|
|
148
165
|
}
|
|
149
166
|
|
|
150
167
|
async getAvailableName(): Promise<string> {
|
|
@@ -172,12 +189,17 @@ export class FileRevisionUploader extends Uploader {
|
|
|
172
189
|
this.nodeUid = nodeUid;
|
|
173
190
|
}
|
|
174
191
|
|
|
175
|
-
protected async createRevisionDraft(): Promise<{ revisionDraft: NodeRevisionDraft
|
|
192
|
+
protected async createRevisionDraft(): Promise<{ revisionDraft: NodeRevisionDraft; blockVerifier: BlockVerifier }> {
|
|
176
193
|
let revisionDraft, blockVerifier;
|
|
177
194
|
try {
|
|
178
195
|
revisionDraft = await this.manager.createDraftRevision(this.nodeUid, this.metadata);
|
|
179
196
|
|
|
180
|
-
blockVerifier = new BlockVerifier(
|
|
197
|
+
blockVerifier = new BlockVerifier(
|
|
198
|
+
this.apiService,
|
|
199
|
+
this.cryptoService,
|
|
200
|
+
revisionDraft.nodeKeys.key,
|
|
201
|
+
revisionDraft.nodeRevisionUid,
|
|
202
|
+
);
|
|
181
203
|
await blockVerifier.loadVerificationData();
|
|
182
204
|
} catch (error: unknown) {
|
|
183
205
|
this.onFinish();
|
|
@@ -191,6 +213,6 @@ export class FileRevisionUploader extends Uploader {
|
|
|
191
213
|
return {
|
|
192
214
|
revisionDraft,
|
|
193
215
|
blockVerifier,
|
|
194
|
-
}
|
|
216
|
+
};
|
|
195
217
|
}
|
|
196
218
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { ProtonDriveTelemetry, UploadMetadata } from
|
|
2
|
-
import { DriveAPIService } from
|
|
3
|
-
import { DriveCrypto } from
|
|
4
|
-
import { UploadAPIService } from
|
|
5
|
-
import { UploadCryptoService } from
|
|
6
|
-
import { FileUploader, FileRevisionUploader } from
|
|
7
|
-
import { NodesService, SharesService } from
|
|
8
|
-
import { UploadManager } from
|
|
9
|
-
import { UploadQueue } from
|
|
10
|
-
import { UploadTelemetry } from
|
|
1
|
+
import { ProtonDriveTelemetry, UploadMetadata } from '../../interface';
|
|
2
|
+
import { DriveAPIService } from '../apiService';
|
|
3
|
+
import { DriveCrypto } from '../../crypto';
|
|
4
|
+
import { UploadAPIService } from './apiService';
|
|
5
|
+
import { UploadCryptoService } from './cryptoService';
|
|
6
|
+
import { FileUploader, FileRevisionUploader } from './fileUploader';
|
|
7
|
+
import { NodesService, SharesService } from './interface';
|
|
8
|
+
import { UploadManager } from './manager';
|
|
9
|
+
import { UploadQueue } from './queue';
|
|
10
|
+
import { UploadTelemetry } from './telemetry';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Provides facade for the upload module.
|
|
@@ -49,7 +49,7 @@ export function initUploadModule(
|
|
|
49
49
|
|
|
50
50
|
const onFinish = () => {
|
|
51
51
|
queue.releaseCapacity();
|
|
52
|
-
}
|
|
52
|
+
};
|
|
53
53
|
|
|
54
54
|
return new FileUploader(
|
|
55
55
|
uploadTelemetry,
|
|
@@ -80,7 +80,7 @@ export function initUploadModule(
|
|
|
80
80
|
|
|
81
81
|
const onFinish = () => {
|
|
82
82
|
queue.releaseCapacity();
|
|
83
|
-
}
|
|
83
|
+
};
|
|
84
84
|
|
|
85
85
|
return new FileRevisionUploader(
|
|
86
86
|
uploadTelemetry,
|
|
@@ -92,11 +92,10 @@ export function initUploadModule(
|
|
|
92
92
|
onFinish,
|
|
93
93
|
signal,
|
|
94
94
|
);
|
|
95
|
-
|
|
96
95
|
}
|
|
97
96
|
|
|
98
97
|
return {
|
|
99
98
|
getFileUploader,
|
|
100
99
|
getFileRevisionUploader,
|
|
101
|
-
}
|
|
100
|
+
};
|
|
102
101
|
}
|
|
@@ -1,130 +1,131 @@
|
|
|
1
|
-
import { PrivateKey, SessionKey } from
|
|
1
|
+
import { PrivateKey, SessionKey } from '../../crypto';
|
|
2
2
|
|
|
3
|
-
import { MetricVolumeType, ThumbnailType, Result, Revision } from
|
|
4
|
-
import { DecryptedNode } from
|
|
3
|
+
import { MetricVolumeType, ThumbnailType, Result, Revision } from '../../interface';
|
|
4
|
+
import { DecryptedNode } from '../nodes';
|
|
5
5
|
|
|
6
6
|
export type NodeRevisionDraft = {
|
|
7
|
-
nodeUid: string
|
|
8
|
-
nodeRevisionUid: string
|
|
9
|
-
nodeKeys: NodeRevisionDraftKeys
|
|
7
|
+
nodeUid: string;
|
|
8
|
+
nodeRevisionUid: string;
|
|
9
|
+
nodeKeys: NodeRevisionDraftKeys;
|
|
10
10
|
// newNodeInfo is set only when revision is created with the new node.
|
|
11
11
|
newNodeInfo?: {
|
|
12
|
-
parentUid: string
|
|
13
|
-
name: string
|
|
14
|
-
encryptedName: string
|
|
15
|
-
hash: string
|
|
16
|
-
}
|
|
17
|
-
}
|
|
12
|
+
parentUid: string;
|
|
13
|
+
name: string;
|
|
14
|
+
encryptedName: string;
|
|
15
|
+
hash: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
18
|
|
|
19
19
|
export type NodeRevisionDraftKeys = {
|
|
20
|
-
key: PrivateKey
|
|
21
|
-
contentKeyPacketSessionKey: SessionKey
|
|
22
|
-
signatureAddress: NodeCryptoSignatureAddress
|
|
23
|
-
}
|
|
20
|
+
key: PrivateKey;
|
|
21
|
+
contentKeyPacketSessionKey: SessionKey;
|
|
22
|
+
signatureAddress: NodeCryptoSignatureAddress;
|
|
23
|
+
};
|
|
24
24
|
|
|
25
25
|
export type NodeCrypto = {
|
|
26
26
|
nodeKeys: {
|
|
27
27
|
encrypted: {
|
|
28
|
-
armoredKey: string
|
|
29
|
-
armoredPassphrase: string
|
|
30
|
-
armoredPassphraseSignature: string
|
|
31
|
-
}
|
|
28
|
+
armoredKey: string;
|
|
29
|
+
armoredPassphrase: string;
|
|
30
|
+
armoredPassphraseSignature: string;
|
|
31
|
+
};
|
|
32
32
|
decrypted: {
|
|
33
|
-
passphrase: string
|
|
34
|
-
key: PrivateKey
|
|
35
|
-
passphraseSessionKey: SessionKey
|
|
36
|
-
}
|
|
37
|
-
}
|
|
33
|
+
passphrase: string;
|
|
34
|
+
key: PrivateKey;
|
|
35
|
+
passphraseSessionKey: SessionKey;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
38
|
contentKey: {
|
|
39
39
|
encrypted: {
|
|
40
|
-
base64ContentKeyPacket: string
|
|
41
|
-
armoredContentKeyPacketSignature: string
|
|
42
|
-
}
|
|
40
|
+
base64ContentKeyPacket: string;
|
|
41
|
+
armoredContentKeyPacketSignature: string;
|
|
42
|
+
};
|
|
43
43
|
decrypted: {
|
|
44
|
-
contentKeyPacketSessionKey: SessionKey
|
|
45
|
-
}
|
|
46
|
-
}
|
|
44
|
+
contentKeyPacketSessionKey: SessionKey;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
47
|
encryptedNode: {
|
|
48
|
-
encryptedName: string
|
|
49
|
-
hash: string
|
|
50
|
-
}
|
|
51
|
-
signatureAddress: NodeCryptoSignatureAddress
|
|
52
|
-
}
|
|
48
|
+
encryptedName: string;
|
|
49
|
+
hash: string;
|
|
50
|
+
};
|
|
51
|
+
signatureAddress: NodeCryptoSignatureAddress;
|
|
52
|
+
};
|
|
53
53
|
|
|
54
54
|
export type NodeCryptoSignatureAddress = {
|
|
55
|
-
email: string
|
|
56
|
-
addressId: string
|
|
57
|
-
addressKey: PrivateKey
|
|
58
|
-
}
|
|
55
|
+
email: string;
|
|
56
|
+
addressId: string;
|
|
57
|
+
addressKey: PrivateKey;
|
|
58
|
+
};
|
|
59
59
|
|
|
60
60
|
export type EncryptedBlockMetadata = {
|
|
61
|
-
encryptedSize: number
|
|
62
|
-
originalSize: number
|
|
63
|
-
hash: Uint8Array
|
|
64
|
-
}
|
|
61
|
+
encryptedSize: number;
|
|
62
|
+
originalSize: number;
|
|
63
|
+
hash: Uint8Array;
|
|
64
|
+
};
|
|
65
65
|
|
|
66
66
|
export type EncryptedBlock = EncryptedBlockMetadata & {
|
|
67
|
-
index: number
|
|
68
|
-
encryptedData: Uint8Array
|
|
69
|
-
armoredSignature: string
|
|
70
|
-
verificationToken: Uint8Array
|
|
71
|
-
}
|
|
67
|
+
index: number;
|
|
68
|
+
encryptedData: Uint8Array;
|
|
69
|
+
armoredSignature: string;
|
|
70
|
+
verificationToken: Uint8Array;
|
|
71
|
+
};
|
|
72
72
|
|
|
73
73
|
export type EncryptedThumbnail = EncryptedBlockMetadata & {
|
|
74
|
-
type: ThumbnailType
|
|
75
|
-
encryptedData: Uint8Array
|
|
76
|
-
}
|
|
74
|
+
type: ThumbnailType;
|
|
75
|
+
encryptedData: Uint8Array;
|
|
76
|
+
};
|
|
77
77
|
|
|
78
78
|
export type UploadTokens = {
|
|
79
79
|
blockTokens: {
|
|
80
|
-
index: number
|
|
81
|
-
bareUrl: string
|
|
82
|
-
token: string
|
|
83
|
-
}[]
|
|
80
|
+
index: number;
|
|
81
|
+
bareUrl: string;
|
|
82
|
+
token: string;
|
|
83
|
+
}[];
|
|
84
84
|
thumbnailTokens: {
|
|
85
|
-
type: ThumbnailType
|
|
86
|
-
bareUrl: string
|
|
87
|
-
token: string
|
|
88
|
-
}[]
|
|
89
|
-
}
|
|
85
|
+
type: ThumbnailType;
|
|
86
|
+
bareUrl: string;
|
|
87
|
+
token: string;
|
|
88
|
+
}[];
|
|
89
|
+
};
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
92
|
* Interface describing the dependencies to the nodes module.
|
|
93
93
|
*/
|
|
94
94
|
export interface NodesService {
|
|
95
|
-
getNode(nodeUid: string): Promise<NodesServiceNode
|
|
95
|
+
getNode(nodeUid: string): Promise<NodesServiceNode>;
|
|
96
96
|
getNodeKeys(nodeUid: string): Promise<{
|
|
97
|
-
key: PrivateKey
|
|
98
|
-
passphraseSessionKey: SessionKey
|
|
99
|
-
contentKeyPacketSessionKey?: SessionKey
|
|
100
|
-
hashKey?: Uint8Array
|
|
101
|
-
}
|
|
97
|
+
key: PrivateKey;
|
|
98
|
+
passphraseSessionKey: SessionKey;
|
|
99
|
+
contentKeyPacketSessionKey?: SessionKey;
|
|
100
|
+
hashKey?: Uint8Array;
|
|
101
|
+
}>;
|
|
102
102
|
getRootNodeEmailKey(nodeUid: string): Promise<{
|
|
103
|
-
email: string
|
|
104
|
-
addressId: string
|
|
105
|
-
addressKey: PrivateKey
|
|
106
|
-
addressKeyId: string
|
|
107
|
-
}
|
|
103
|
+
email: string;
|
|
104
|
+
addressId: string;
|
|
105
|
+
addressKey: PrivateKey;
|
|
106
|
+
addressKeyId: string;
|
|
107
|
+
}>;
|
|
108
108
|
notifyChildCreated(nodeUid: string): Promise<void>;
|
|
109
|
+
notifyNodeChanged(nodeUid: string): Promise<void>;
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
/**
|
|
112
113
|
* Interface describing the dependencies to the nodes module.
|
|
113
114
|
*/
|
|
114
115
|
export interface NodesEvents {
|
|
115
|
-
nodeCreated(node: DecryptedNode): Promise<void
|
|
116
|
-
nodeUpdated(partialNode: { uid: string
|
|
116
|
+
nodeCreated(node: DecryptedNode): Promise<void>;
|
|
117
|
+
nodeUpdated(partialNode: { uid: string; activeRevision: Result<Revision, Error> }): Promise<void>;
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
export interface NodesServiceNode {
|
|
120
|
-
uid: string
|
|
121
|
-
parentUid?: string
|
|
122
|
-
activeRevision?: Result<Revision, Error
|
|
121
|
+
uid: string;
|
|
122
|
+
parentUid?: string;
|
|
123
|
+
activeRevision?: Result<Revision, Error>;
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
/**
|
|
126
127
|
* Interface describing the dependencies to the shares module.
|
|
127
128
|
*/
|
|
128
129
|
export interface SharesService {
|
|
129
|
-
getVolumeMetricContext(volumeId: string): Promise<MetricVolumeType
|
|
130
|
+
getVolumeMetricContext(volumeId: string): Promise<MetricVolumeType>;
|
|
130
131
|
}
|