@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/telemetry.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Logger as LoggerInterface } from './interface';
|
|
2
2
|
|
|
3
3
|
export interface LogRecord {
|
|
4
|
-
time: Date
|
|
4
|
+
time: Date;
|
|
5
5
|
level: LogLevel;
|
|
6
6
|
loggerName: string;
|
|
7
7
|
message: string;
|
|
@@ -24,13 +24,13 @@ export interface LogHandler {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export interface MetricRecord<T extends MetricEvent> {
|
|
27
|
-
time: Date
|
|
27
|
+
time: Date;
|
|
28
28
|
event: T;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
export type MetricEvent = {
|
|
32
32
|
eventName: string;
|
|
33
|
-
}
|
|
33
|
+
};
|
|
34
34
|
|
|
35
35
|
export interface MetricHandler<T extends MetricEvent> {
|
|
36
36
|
onEvent(metric: MetricRecord<T>): void;
|
|
@@ -38,12 +38,12 @@ export interface MetricHandler<T extends MetricEvent> {
|
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* Telemetry class that logs messages and metrics.
|
|
41
|
-
*
|
|
41
|
+
*
|
|
42
42
|
* Example:
|
|
43
|
-
*
|
|
43
|
+
*
|
|
44
44
|
* ```typescript
|
|
45
45
|
* const memoryLogHandler = new MemoryLogHandler();
|
|
46
|
-
*
|
|
46
|
+
*
|
|
47
47
|
* interface MetricEvents = {
|
|
48
48
|
* name: string,
|
|
49
49
|
* value: number,
|
|
@@ -53,7 +53,7 @@ export interface MetricHandler<T extends MetricEvent> {
|
|
|
53
53
|
* // Process metric event
|
|
54
54
|
* }
|
|
55
55
|
* }
|
|
56
|
-
*
|
|
56
|
+
*
|
|
57
57
|
* const telemetry = new Telemetry<MetricEvents>({
|
|
58
58
|
* // Enable debug logging
|
|
59
59
|
* logFilter: new LogFilter({ level: LogLevel.DEBUG }),
|
|
@@ -62,16 +62,16 @@ export interface MetricHandler<T extends MetricEvent> {
|
|
|
62
62
|
* // Log to console and own handler to process further
|
|
63
63
|
* metricHandlers: [new ConsoleMetricHandler(), ownMetricHandler],
|
|
64
64
|
* });
|
|
65
|
-
*
|
|
65
|
+
*
|
|
66
66
|
* const logger = telemetry.getLogger('myLogger');
|
|
67
67
|
* logger.debug('Debug message');
|
|
68
|
-
*
|
|
68
|
+
*
|
|
69
69
|
* telemetry.logEvent({ name: 'somethingHappened', value: 42 });
|
|
70
|
-
*
|
|
70
|
+
*
|
|
71
71
|
* const logs = memoryLogHandler.getLogs();
|
|
72
72
|
* // Process logs
|
|
73
73
|
* ```
|
|
74
|
-
*
|
|
74
|
+
*
|
|
75
75
|
* @param logFilter - Log filter to filter logs based on log level, default INFO
|
|
76
76
|
* @param logHandlers - Log handlers to use for logging, see LogHandler implementations
|
|
77
77
|
* @param metricHandlers - Metric handlers to use for logging, see MetricHandler implementations
|
|
@@ -81,13 +81,7 @@ export class Telemetry<T extends MetricEvent> {
|
|
|
81
81
|
private logHandlers: LogHandler[];
|
|
82
82
|
private metricHandlers: MetricHandler<T>[];
|
|
83
83
|
|
|
84
|
-
constructor(
|
|
85
|
-
options?: {
|
|
86
|
-
logFilter?: LogFilter,
|
|
87
|
-
logHandlers?: LogHandler[],
|
|
88
|
-
metricHandlers?: MetricHandler<T>[],
|
|
89
|
-
}
|
|
90
|
-
) {
|
|
84
|
+
constructor(options?: { logFilter?: LogFilter; logHandlers?: LogHandler[]; metricHandlers?: MetricHandler<T>[] }) {
|
|
91
85
|
this.logFilter = options?.logFilter || new LogFilter();
|
|
92
86
|
this.logHandlers = options?.logHandlers || [new ConsoleLogHandler()];
|
|
93
87
|
this.metricHandlers = options?.metricHandlers || [new ConsoleMetricHandler()];
|
|
@@ -102,18 +96,22 @@ export class Telemetry<T extends MetricEvent> {
|
|
|
102
96
|
time: new Date(),
|
|
103
97
|
event,
|
|
104
98
|
};
|
|
105
|
-
this.metricHandlers.forEach(handler => handler.onEvent(metric));
|
|
99
|
+
this.metricHandlers.forEach((handler) => handler.onEvent(metric));
|
|
106
100
|
}
|
|
107
101
|
}
|
|
108
102
|
|
|
109
103
|
/**
|
|
110
104
|
* Logger class that logs messages with different levels.
|
|
111
|
-
*
|
|
105
|
+
*
|
|
112
106
|
* @param name - Name of the logger
|
|
113
107
|
* @param handlers - Log handlers to use for logging, see LogHandler implementations
|
|
114
108
|
*/
|
|
115
109
|
class Logger {
|
|
116
|
-
constructor(
|
|
110
|
+
constructor(
|
|
111
|
+
private name: string,
|
|
112
|
+
private filter: LogFilter,
|
|
113
|
+
private handlers: LogHandler[],
|
|
114
|
+
) {
|
|
117
115
|
this.name = name;
|
|
118
116
|
this.filter = filter;
|
|
119
117
|
this.handlers = handlers;
|
|
@@ -160,15 +158,15 @@ class Logger {
|
|
|
160
158
|
if (!this.filter.filter(log)) {
|
|
161
159
|
return;
|
|
162
160
|
}
|
|
163
|
-
this.handlers.forEach(handler => handler.log(log));
|
|
161
|
+
this.handlers.forEach((handler) => handler.log(log));
|
|
164
162
|
}
|
|
165
163
|
}
|
|
166
164
|
|
|
167
165
|
/**
|
|
168
166
|
* Logger class that logs messages with a prefix.
|
|
169
|
-
*
|
|
167
|
+
*
|
|
170
168
|
* Example:
|
|
171
|
-
*
|
|
169
|
+
*
|
|
172
170
|
* ```typescript
|
|
173
171
|
* const logger = new Logger('myLogger', new LogFilter(), [new ConsoleLogHandler()]);
|
|
174
172
|
* const loggerWithPrefix = new LoggerWithPrefix(logger, 'prefix');
|
|
@@ -176,7 +174,10 @@ class Logger {
|
|
|
176
174
|
* ```
|
|
177
175
|
*/
|
|
178
176
|
export class LoggerWithPrefix {
|
|
179
|
-
constructor(
|
|
177
|
+
constructor(
|
|
178
|
+
private logger: LoggerInterface,
|
|
179
|
+
private prefix: string,
|
|
180
|
+
) {
|
|
180
181
|
this.logger = logger;
|
|
181
182
|
this.prefix = prefix;
|
|
182
183
|
}
|
|
@@ -201,28 +202,29 @@ export class LoggerWithPrefix {
|
|
|
201
202
|
/**
|
|
202
203
|
* Filter logs based on log level. It can be configured by global level or
|
|
203
204
|
* per logger level.
|
|
204
|
-
*
|
|
205
|
+
*
|
|
205
206
|
* @param globalLevel - Global log level, default INFO
|
|
206
207
|
* @param loggerLevels - Log levels for specific loggers, default empty
|
|
207
208
|
*/
|
|
208
209
|
export class LogFilter {
|
|
209
210
|
private logLevelMap = {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}
|
|
211
|
+
DEBUG: 0,
|
|
212
|
+
INFO: 1,
|
|
213
|
+
WARNING: 2,
|
|
214
|
+
ERROR: 3,
|
|
215
|
+
};
|
|
215
216
|
|
|
216
217
|
private globalLevel: number;
|
|
217
218
|
private loggerLevels: { [loggerName: string]: number };
|
|
218
219
|
|
|
219
|
-
constructor(options?: {
|
|
220
|
-
globalLevel?: LogLevel,
|
|
221
|
-
loggerLevels?: { [loggerName: string]: LogLevel },
|
|
222
|
-
}) {
|
|
220
|
+
constructor(options?: { globalLevel?: LogLevel; loggerLevels?: { [loggerName: string]: LogLevel } }) {
|
|
223
221
|
this.globalLevel = this.logLevelMap[options?.globalLevel || LogLevel.INFO];
|
|
224
|
-
this.loggerLevels = Object.fromEntries(
|
|
225
|
-
.map(([loggerName, level]) => [
|
|
222
|
+
this.loggerLevels = Object.fromEntries(
|
|
223
|
+
Object.entries(options?.loggerLevels || {}).map(([loggerName, level]) => [
|
|
224
|
+
loggerName,
|
|
225
|
+
this.logLevelMap[level],
|
|
226
|
+
]),
|
|
227
|
+
);
|
|
226
228
|
}
|
|
227
229
|
|
|
228
230
|
/**
|
|
@@ -243,16 +245,16 @@ export class LogFilter {
|
|
|
243
245
|
|
|
244
246
|
/**
|
|
245
247
|
* Log handler that logs to console.
|
|
246
|
-
*
|
|
248
|
+
*
|
|
247
249
|
* @param formatter - Formatter to use for log messages, default BasicLogFormatter
|
|
248
250
|
*/
|
|
249
251
|
export class ConsoleLogHandler implements LogHandler {
|
|
250
252
|
private logLevelMap = {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
253
|
+
DEBUG: console.debug, // eslint-disable-line no-console
|
|
254
|
+
INFO: console.info, // eslint-disable-line no-console
|
|
255
|
+
WARNING: console.warn, // eslint-disable-line no-console
|
|
256
|
+
ERROR: console.error, // eslint-disable-line no-console
|
|
257
|
+
};
|
|
256
258
|
|
|
257
259
|
private formatter: LogFormatter;
|
|
258
260
|
|
|
@@ -268,10 +270,10 @@ export class ConsoleLogHandler implements LogHandler {
|
|
|
268
270
|
|
|
269
271
|
/**
|
|
270
272
|
* Log handler that stores logs in memory with option to retrieve later.
|
|
271
|
-
*
|
|
273
|
+
*
|
|
272
274
|
* Useful for keeping logs around and retrieve them on demand when an error
|
|
273
275
|
* occures.
|
|
274
|
-
*
|
|
276
|
+
*
|
|
275
277
|
* @param formatter - Formatter to use for log messages, default JSONLogFormatter
|
|
276
278
|
* @param maxLogs - Maximum number of logs to store, default 10000
|
|
277
279
|
*/
|
|
@@ -280,7 +282,10 @@ export class MemoryLogHandler implements LogHandler {
|
|
|
280
282
|
|
|
281
283
|
private formatter: LogFormatter;
|
|
282
284
|
|
|
283
|
-
constructor(
|
|
285
|
+
constructor(
|
|
286
|
+
formatter?: LogFormatter,
|
|
287
|
+
private maxLogs = 10000,
|
|
288
|
+
) {
|
|
284
289
|
this.formatter = formatter || new JSONLogFormatter();
|
|
285
290
|
this.maxLogs = maxLogs;
|
|
286
291
|
}
|
|
@@ -305,7 +310,7 @@ export class MemoryLogHandler implements LogHandler {
|
|
|
305
310
|
|
|
306
311
|
/**
|
|
307
312
|
* Formatter that formats logs as JSON.
|
|
308
|
-
*
|
|
313
|
+
*
|
|
309
314
|
* Useful for machine processing.
|
|
310
315
|
*/
|
|
311
316
|
export class JSONLogFormatter implements LogFormatter {
|
|
@@ -323,16 +328,17 @@ export class JSONLogFormatter implements LogFormatter {
|
|
|
323
328
|
|
|
324
329
|
/**
|
|
325
330
|
* Formatter that formats logs as plain text.
|
|
326
|
-
*
|
|
331
|
+
*
|
|
327
332
|
* Useful for human reading.
|
|
328
333
|
*/
|
|
329
334
|
export class BasicLogFormatter implements LogFormatter {
|
|
330
335
|
format(log: LogRecord) {
|
|
331
336
|
let errorDetails = '';
|
|
332
337
|
if (log.error) {
|
|
333
|
-
errorDetails =
|
|
334
|
-
|
|
335
|
-
|
|
338
|
+
errorDetails =
|
|
339
|
+
log.error instanceof Error
|
|
340
|
+
? `\nError: ${log.error.message}\nStack:\n${log.error.stack}`
|
|
341
|
+
: `\nError: ${log.error}`;
|
|
336
342
|
}
|
|
337
343
|
return `${log.time.toISOString()} ${log.level} [${log.loggerName}] ${log.message}${errorDetails}`;
|
|
338
344
|
}
|
|
@@ -341,6 +347,8 @@ export class BasicLogFormatter implements LogFormatter {
|
|
|
341
347
|
class ConsoleMetricHandler<T extends MetricEvent> implements MetricHandler<T> {
|
|
342
348
|
onEvent(metric: MetricRecord<T>) {
|
|
343
349
|
// eslint-disable-next-line no-console
|
|
344
|
-
console.info(
|
|
350
|
+
console.info(
|
|
351
|
+
`${metric.time.toISOString()} INFO [metric] ${metric.event.eventName} ${JSON.stringify({ ...metric.event, name: undefined })}`,
|
|
352
|
+
);
|
|
345
353
|
}
|
|
346
354
|
}
|
package/src/tests/logger.ts
CHANGED
package/src/tests/telemetry.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ProtonDriveTelemetry } from
|
|
2
|
-
import { getMockLogger } from
|
|
1
|
+
import { ProtonDriveTelemetry } from '../interface';
|
|
2
|
+
import { getMockLogger } from './logger';
|
|
3
3
|
|
|
4
4
|
export function getMockTelemetry(): ProtonDriveTelemetry {
|
|
5
5
|
return {
|
package/src/transformers.ts
CHANGED
|
@@ -13,28 +13,29 @@ import { DecryptedNode as InternalNode, DecryptedRevision as InternalRevision }
|
|
|
13
13
|
|
|
14
14
|
type InternalPartialNode = Pick<
|
|
15
15
|
InternalNode,
|
|
16
|
-
'uid'
|
|
17
|
-
'parentUid'
|
|
18
|
-
'name'
|
|
19
|
-
'keyAuthor'
|
|
20
|
-
'nameAuthor'
|
|
21
|
-
'directMemberRole'
|
|
22
|
-
'type'
|
|
23
|
-
'mediaType'
|
|
24
|
-
'isShared'
|
|
25
|
-
'creationTime'
|
|
26
|
-
'trashTime'
|
|
27
|
-
'activeRevision'
|
|
28
|
-
'folder'
|
|
29
|
-
'totalStorageSize'
|
|
30
|
-
'errors'
|
|
31
|
-
'shareId'
|
|
16
|
+
| 'uid'
|
|
17
|
+
| 'parentUid'
|
|
18
|
+
| 'name'
|
|
19
|
+
| 'keyAuthor'
|
|
20
|
+
| 'nameAuthor'
|
|
21
|
+
| 'directMemberRole'
|
|
22
|
+
| 'type'
|
|
23
|
+
| 'mediaType'
|
|
24
|
+
| 'isShared'
|
|
25
|
+
| 'creationTime'
|
|
26
|
+
| 'trashTime'
|
|
27
|
+
| 'activeRevision'
|
|
28
|
+
| 'folder'
|
|
29
|
+
| 'totalStorageSize'
|
|
30
|
+
| 'errors'
|
|
31
|
+
| 'shareId'
|
|
32
|
+
| 'treeEventScopeId'
|
|
32
33
|
>;
|
|
33
34
|
|
|
34
35
|
type NodeUid = string | { uid: string } | Result<{ uid: string }, { uid: string }>;
|
|
35
36
|
|
|
36
37
|
export function getUid(nodeUid: NodeUid): string {
|
|
37
|
-
if (typeof nodeUid ===
|
|
38
|
+
if (typeof nodeUid === 'string') {
|
|
38
39
|
return nodeUid;
|
|
39
40
|
}
|
|
40
41
|
// Directly passed NodeEntity or DegradedNode that has UID directly.
|
|
@@ -52,13 +53,17 @@ export function getUids(nodeUids: NodeUid[]): string[] {
|
|
|
52
53
|
return nodeUids.map(getUid);
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
export async function
|
|
56
|
+
export async function* convertInternalNodeIterator(
|
|
57
|
+
nodeIterator: AsyncGenerator<InternalPartialNode>,
|
|
58
|
+
): AsyncGenerator<PublicMaybeNode> {
|
|
56
59
|
for await (const node of nodeIterator) {
|
|
57
60
|
yield convertInternalNode(node);
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
|
|
61
|
-
export async function
|
|
64
|
+
export async function* convertInternalMissingNodeIterator(
|
|
65
|
+
nodeIterator: AsyncGenerator<InternalPartialNode | MissingNode>,
|
|
66
|
+
): AsyncGenerator<PublicMaybeMissingNode> {
|
|
62
67
|
for await (const node of nodeIterator) {
|
|
63
68
|
if ('missingUid' in node) {
|
|
64
69
|
yield resultError(node);
|
|
@@ -88,6 +93,7 @@ export function convertInternalNode(node: InternalPartialNode): PublicMaybeNode
|
|
|
88
93
|
totalStorageSize: node.totalStorageSize,
|
|
89
94
|
folder: node.folder,
|
|
90
95
|
deprecatedShareId: node.shareId,
|
|
96
|
+
treeEventScopeId: node.treeEventScopeId,
|
|
91
97
|
};
|
|
92
98
|
|
|
93
99
|
const name = node.name;
|
|
@@ -97,7 +103,9 @@ export function convertInternalNode(node: InternalPartialNode): PublicMaybeNode
|
|
|
97
103
|
return resultError({
|
|
98
104
|
...baseNodeMetadata,
|
|
99
105
|
name,
|
|
100
|
-
activeRevision: activeRevision?.ok
|
|
106
|
+
activeRevision: activeRevision?.ok
|
|
107
|
+
? resultOk(convertInternalRevision(activeRevision.value))
|
|
108
|
+
: activeRevision,
|
|
101
109
|
errors: node.errors,
|
|
102
110
|
} as PublicDegradedNode);
|
|
103
111
|
}
|
|
@@ -120,5 +128,5 @@ function convertInternalRevision(revision: InternalRevision): PublicRevision {
|
|
|
120
128
|
claimedModificationTime: revision.claimedModificationTime,
|
|
121
129
|
claimedDigests: revision.claimedDigests,
|
|
122
130
|
claimedAdditionalMetadata: revision.claimedAdditionalMetadata,
|
|
123
|
-
}
|
|
131
|
+
};
|
|
124
132
|
}
|
package/src/version.ts
CHANGED