@protontech/drive-sdk 0.0.13 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.js +3 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/memoryCache.d.ts +1 -1
- package/dist/cache/memoryCache.js +0 -1
- package/dist/cache/memoryCache.js.map +1 -1
- package/dist/cache/memoryCache.test.js +2 -4
- package/dist/cache/memoryCache.test.js.map +1 -1
- package/dist/cache/nullCache.d.ts +14 -0
- package/dist/cache/nullCache.js +36 -0
- package/dist/cache/nullCache.js.map +1 -0
- package/dist/config.d.ts +16 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/crypto/driveCrypto.d.ts +2 -5
- package/dist/crypto/driveCrypto.js +7 -12
- package/dist/crypto/driveCrypto.js.map +1 -1
- package/dist/crypto/driveCrypto.test.js +14 -14
- package/dist/crypto/openPGPCrypto.js +5 -3
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/diagnostic/eventsGenerator.d.ts +14 -0
- package/dist/diagnostic/eventsGenerator.js +49 -0
- package/dist/diagnostic/eventsGenerator.js.map +1 -0
- package/dist/diagnostic/httpClient.d.ts +16 -0
- package/dist/diagnostic/httpClient.js +81 -0
- package/dist/diagnostic/httpClient.js.map +1 -0
- package/dist/diagnostic/index.d.ts +10 -0
- package/dist/diagnostic/index.js +35 -0
- package/dist/diagnostic/index.js.map +1 -0
- package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
- package/dist/diagnostic/integrityVerificationStream.js +56 -0
- package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
- package/dist/diagnostic/interface.d.ts +102 -0
- package/dist/diagnostic/interface.js +3 -0
- package/dist/diagnostic/interface.js.map +1 -0
- package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
- package/dist/diagnostic/sdkDiagnostic.js +222 -0
- package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
- package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
- package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
- package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
- package/dist/diagnostic/telemetry.d.ts +25 -0
- package/dist/diagnostic/telemetry.js +70 -0
- package/dist/diagnostic/telemetry.js.map +1 -0
- package/dist/diagnostic/zipGenerators.d.ts +9 -0
- package/dist/diagnostic/zipGenerators.js +64 -0
- package/dist/diagnostic/zipGenerators.js.map +1 -0
- package/dist/diagnostic/zipGenerators.test.js +144 -0
- package/dist/diagnostic/zipGenerators.test.js.map +1 -0
- package/dist/errors.d.ts +2 -1
- package/dist/errors.js +3 -1
- package/dist/errors.js.map +1 -1
- package/dist/interface/config.d.ts +26 -0
- package/dist/interface/config.js +3 -0
- package/dist/interface/config.js.map +1 -0
- package/dist/interface/download.d.ts +2 -2
- package/dist/interface/events.d.ts +58 -20
- package/dist/interface/events.js +11 -1
- package/dist/interface/events.js.map +1 -1
- package/dist/interface/httpClient.d.ts +0 -14
- package/dist/interface/index.d.ts +11 -7
- package/dist/interface/index.js +2 -2
- package/dist/interface/index.js.map +1 -1
- package/dist/interface/nodes.d.ts +9 -0
- package/dist/interface/nodes.js.map +1 -1
- package/dist/interface/result.js.map +1 -1
- package/dist/interface/sharing.d.ts +2 -0
- package/dist/interface/sharing.js.map +1 -1
- package/dist/interface/telemetry.js +0 -8
- package/dist/interface/telemetry.js.map +1 -1
- package/dist/interface/thumbnail.js.map +1 -1
- package/dist/interface/upload.d.ts +7 -1
- package/dist/internal/apiService/apiService.d.ts +1 -1
- package/dist/internal/apiService/apiService.js +7 -11
- package/dist/internal/apiService/apiService.js.map +1 -1
- package/dist/internal/apiService/apiService.test.js +55 -48
- package/dist/internal/apiService/apiService.test.js.map +1 -1
- package/dist/internal/apiService/coreTypes.d.ts +2356 -2356
- package/dist/internal/apiService/driveTypes.d.ts +1680 -1680
- package/dist/internal/apiService/errors.js +14 -8
- package/dist/internal/apiService/errors.js.map +1 -1
- package/dist/internal/apiService/errors.test.js +17 -12
- package/dist/internal/apiService/errors.test.js.map +1 -1
- package/dist/internal/apiService/transformers.d.ts +1 -1
- package/dist/internal/apiService/transformers.js +1 -1
- package/dist/internal/asyncIteratorMap.test.js +2 -2
- package/dist/internal/asyncIteratorMap.test.js.map +1 -1
- package/dist/internal/asyncIteratorRace.d.ts +13 -0
- package/dist/internal/asyncIteratorRace.js +59 -0
- package/dist/internal/asyncIteratorRace.js.map +1 -0
- package/dist/internal/asyncIteratorRace.test.d.ts +1 -0
- package/dist/internal/asyncIteratorRace.test.js +119 -0
- package/dist/internal/asyncIteratorRace.test.js.map +1 -0
- package/dist/internal/batch.d.ts +1 -0
- package/dist/internal/batch.js +12 -0
- package/dist/internal/batch.js.map +1 -0
- package/dist/internal/batch.test.d.ts +1 -0
- package/dist/internal/batch.test.js +41 -0
- package/dist/internal/batch.test.js.map +1 -0
- package/dist/internal/batchLoading.js.map +1 -1
- package/dist/internal/batchLoading.test.js +13 -13
- package/dist/internal/batchLoading.test.js.map +1 -1
- package/dist/internal/devices/apiService.d.ts +3 -3
- package/dist/internal/devices/apiService.js +2 -2
- package/dist/internal/devices/apiService.js.map +1 -1
- package/dist/internal/devices/cryptoService.js +1 -2
- package/dist/internal/devices/cryptoService.js.map +1 -1
- package/dist/internal/devices/index.d.ts +5 -5
- package/dist/internal/devices/index.js.map +1 -1
- package/dist/internal/devices/interface.d.ts +3 -3
- package/dist/internal/devices/manager.js +2 -2
- package/dist/internal/devices/manager.js.map +1 -1
- package/dist/internal/devices/manager.test.js +38 -7
- package/dist/internal/devices/manager.test.js.map +1 -1
- package/dist/internal/download/apiService.d.ts +4 -4
- package/dist/internal/download/apiService.js +32 -32
- package/dist/internal/download/apiService.js.map +1 -1
- package/dist/internal/download/cryptoService.d.ts +4 -4
- package/dist/internal/download/cryptoService.js +6 -5
- package/dist/internal/download/cryptoService.js.map +1 -1
- package/dist/internal/download/fileDownloader.d.ts +6 -6
- package/dist/internal/download/fileDownloader.js +3 -2
- package/dist/internal/download/fileDownloader.js.map +1 -1
- package/dist/internal/download/fileDownloader.test.js +1 -1
- package/dist/internal/download/fileDownloader.test.js.map +1 -1
- package/dist/internal/download/index.d.ts +5 -5
- package/dist/internal/download/index.js +5 -5
- package/dist/internal/download/index.js.map +1 -1
- package/dist/internal/download/interface.d.ts +3 -4
- package/dist/internal/download/telemetry.d.ts +3 -3
- package/dist/internal/download/telemetry.js +4 -2
- package/dist/internal/download/telemetry.js.map +1 -1
- package/dist/internal/download/telemetry.test.js +8 -8
- package/dist/internal/download/telemetry.test.js.map +1 -1
- package/dist/internal/download/thumbnailDownloader.d.ts +4 -4
- package/dist/internal/download/thumbnailDownloader.js +6 -6
- package/dist/internal/download/thumbnailDownloader.js.map +1 -1
- package/dist/internal/download/thumbnailDownloader.test.js.map +1 -1
- package/dist/internal/errors.d.ts +1 -1
- package/dist/internal/errors.js +1 -3
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/events/apiService.d.ts +5 -7
- package/dist/internal/events/apiService.js +19 -22
- package/dist/internal/events/apiService.js.map +1 -1
- package/dist/internal/events/coreEventManager.d.ts +9 -12
- package/dist/internal/events/coreEventManager.js +19 -36
- package/dist/internal/events/coreEventManager.js.map +1 -1
- package/dist/internal/events/coreEventManager.test.d.ts +1 -0
- package/dist/internal/events/coreEventManager.test.js +87 -0
- package/dist/internal/events/coreEventManager.test.js.map +1 -0
- package/dist/internal/events/eventManager.d.ts +11 -36
- package/dist/internal/events/eventManager.js +59 -106
- package/dist/internal/events/eventManager.js.map +1 -1
- package/dist/internal/events/eventManager.test.js +177 -83
- package/dist/internal/events/eventManager.test.js.map +1 -1
- package/dist/internal/events/index.d.ts +16 -36
- package/dist/internal/events/index.js +56 -72
- package/dist/internal/events/index.js.map +1 -1
- package/dist/internal/events/interface.d.ts +59 -14
- package/dist/internal/events/interface.js +12 -3
- package/dist/internal/events/interface.js.map +1 -1
- package/dist/internal/events/volumeEventManager.d.ts +9 -19
- package/dist/internal/events/volumeEventManager.js +58 -45
- package/dist/internal/events/volumeEventManager.js.map +1 -1
- package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
- package/dist/internal/events/volumeEventManager.test.js +203 -0
- package/dist/internal/events/volumeEventManager.test.js.map +1 -0
- package/dist/internal/nodes/apiService.d.ts +4 -3
- package/dist/internal/nodes/apiService.js +36 -15
- package/dist/internal/nodes/apiService.js.map +1 -1
- package/dist/internal/nodes/apiService.test.js +60 -41
- package/dist/internal/nodes/apiService.test.js.map +1 -1
- package/dist/internal/nodes/cache.d.ts +14 -5
- package/dist/internal/nodes/cache.js +31 -7
- package/dist/internal/nodes/cache.js.map +1 -1
- package/dist/internal/nodes/cache.test.js +31 -9
- package/dist/internal/nodes/cache.test.js.map +1 -1
- package/dist/internal/nodes/cryptoCache.d.ts +2 -2
- package/dist/internal/nodes/cryptoCache.js.map +1 -1
- package/dist/internal/nodes/cryptoCache.test.js +24 -4
- package/dist/internal/nodes/cryptoCache.test.js.map +1 -1
- package/dist/internal/nodes/cryptoService.d.ts +4 -4
- package/dist/internal/nodes/cryptoService.js +11 -17
- package/dist/internal/nodes/cryptoService.js.map +1 -1
- package/dist/internal/nodes/cryptoService.test.js +320 -241
- package/dist/internal/nodes/cryptoService.test.js.map +1 -1
- package/dist/internal/nodes/events.d.ts +8 -84
- package/dist/internal/nodes/events.js +43 -217
- package/dist/internal/nodes/events.js.map +1 -1
- package/dist/internal/nodes/events.test.js +35 -279
- package/dist/internal/nodes/events.test.js.map +1 -1
- package/dist/internal/nodes/extendedAttributes.d.ts +1 -1
- package/dist/internal/nodes/extendedAttributes.js +3 -1
- package/dist/internal/nodes/extendedAttributes.js.map +1 -1
- package/dist/internal/nodes/extendedAttributes.test.js +7 -10
- package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
- package/dist/internal/nodes/index.d.ts +12 -13
- package/dist/internal/nodes/index.js +5 -5
- package/dist/internal/nodes/index.js.map +1 -1
- package/dist/internal/nodes/index.test.js +24 -32
- package/dist/internal/nodes/index.test.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +2 -2
- package/dist/internal/nodes/nodesAccess.d.ts +22 -7
- package/dist/internal/nodes/nodesAccess.js +65 -16
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +165 -101
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.d.ts +7 -9
- package/dist/internal/nodes/nodesManagement.js +21 -33
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.test.js +42 -21
- package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
- package/dist/internal/nodes/nodesRevisions.d.ts +4 -4
- package/dist/internal/nodes/nodesRevisions.js.map +1 -1
- package/dist/internal/photos/albums.d.ts +3 -3
- package/dist/internal/photos/albums.js.map +1 -1
- package/dist/internal/photos/apiService.d.ts +1 -1
- package/dist/internal/photos/apiService.js +3 -6
- package/dist/internal/photos/apiService.js.map +1 -1
- package/dist/internal/photos/cache.d.ts +1 -1
- package/dist/internal/photos/index.d.ts +5 -5
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/interface.d.ts +2 -2
- package/dist/internal/photos/photosTimeline.d.ts +3 -3
- package/dist/internal/photos/photosTimeline.js +1 -2
- package/dist/internal/photos/photosTimeline.js.map +1 -1
- package/dist/internal/sdkEvents.d.ts +1 -1
- package/dist/internal/sdkEvents.js +2 -7
- package/dist/internal/sdkEvents.js.map +1 -1
- package/dist/internal/sdkEvents.test.js +8 -8
- package/dist/internal/shares/apiService.d.ts +2 -2
- package/dist/internal/shares/apiService.js +5 -3
- package/dist/internal/shares/apiService.js.map +1 -1
- package/dist/internal/shares/cache.d.ts +4 -2
- package/dist/internal/shares/cache.js +14 -6
- package/dist/internal/shares/cache.js.map +1 -1
- package/dist/internal/shares/cache.test.js.map +1 -1
- package/dist/internal/shares/cryptoCache.d.ts +2 -2
- package/dist/internal/shares/cryptoCache.test.js +8 -2
- package/dist/internal/shares/cryptoCache.test.js.map +1 -1
- package/dist/internal/shares/cryptoService.d.ts +3 -3
- package/dist/internal/shares/cryptoService.js.map +1 -1
- package/dist/internal/shares/cryptoService.test.js +42 -42
- package/dist/internal/shares/cryptoService.test.js.map +1 -1
- package/dist/internal/shares/index.d.ts +4 -4
- package/dist/internal/shares/index.js.map +1 -1
- package/dist/internal/shares/interface.d.ts +2 -2
- package/dist/internal/shares/manager.d.ts +8 -7
- package/dist/internal/shares/manager.js +3 -0
- package/dist/internal/shares/manager.js.map +1 -1
- package/dist/internal/shares/manager.test.js +71 -63
- package/dist/internal/shares/manager.test.js.map +1 -1
- package/dist/internal/sharing/apiService.d.ts +4 -4
- package/dist/internal/sharing/apiService.js +5 -3
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/sharing/cache.d.ts +1 -1
- package/dist/internal/sharing/cache.test.js +33 -33
- package/dist/internal/sharing/cryptoService.d.ts +3 -3
- package/dist/internal/sharing/cryptoService.js +3 -4
- package/dist/internal/sharing/cryptoService.js.map +1 -1
- package/dist/internal/sharing/cryptoService.test.js +39 -39
- package/dist/internal/sharing/cryptoService.test.js.map +1 -1
- package/dist/internal/sharing/events.d.ts +24 -56
- package/dist/internal/sharing/events.js +45 -138
- package/dist/internal/sharing/events.js.map +1 -1
- package/dist/internal/sharing/events.test.js +85 -189
- package/dist/internal/sharing/events.test.js.map +1 -1
- package/dist/internal/sharing/index.d.ts +8 -9
- package/dist/internal/sharing/index.js +5 -5
- package/dist/internal/sharing/index.js.map +1 -1
- package/dist/internal/sharing/interface.d.ts +8 -4
- package/dist/internal/sharing/sharingAccess.d.ts +6 -6
- package/dist/internal/sharing/sharingAccess.js +8 -4
- package/dist/internal/sharing/sharingAccess.js.map +1 -1
- package/dist/internal/sharing/sharingAccess.test.js +45 -39
- package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.d.ts +5 -6
- package/dist/internal/sharing/sharingManagement.js +12 -16
- package/dist/internal/sharing/sharingManagement.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.test.js +305 -286
- package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
- package/dist/internal/uids.js.map +1 -1
- package/dist/internal/upload/apiService.d.ts +5 -6
- package/dist/internal/upload/apiService.js +8 -5
- package/dist/internal/upload/apiService.js.map +1 -1
- package/dist/internal/upload/blockVerifier.d.ts +3 -3
- package/dist/internal/upload/blockVerifier.js +1 -1
- package/dist/internal/upload/blockVerifier.js.map +1 -1
- package/dist/internal/upload/chunkStreamReader.test.js +6 -6
- package/dist/internal/upload/cryptoService.d.ts +4 -4
- package/dist/internal/upload/cryptoService.js +4 -4
- package/dist/internal/upload/cryptoService.js.map +1 -1
- package/dist/internal/upload/digests.js.map +1 -1
- package/dist/internal/upload/fileUploader.d.ts +6 -6
- package/dist/internal/upload/fileUploader.js.map +1 -1
- package/dist/internal/upload/fileUploader.test.js.map +1 -1
- package/dist/internal/upload/index.d.ts +6 -6
- package/dist/internal/upload/index.js +3 -3
- package/dist/internal/upload/index.js.map +1 -1
- package/dist/internal/upload/interface.d.ts +5 -3
- package/dist/internal/upload/manager.d.ts +8 -8
- package/dist/internal/upload/manager.js +23 -52
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/manager.test.js +185 -147
- package/dist/internal/upload/manager.test.js.map +1 -1
- package/dist/internal/upload/streamUploader.d.ts +6 -6
- package/dist/internal/upload/streamUploader.js +9 -8
- package/dist/internal/upload/streamUploader.js.map +1 -1
- package/dist/internal/upload/streamUploader.test.js +17 -12
- package/dist/internal/upload/streamUploader.test.js.map +1 -1
- package/dist/internal/upload/telemetry.d.ts +3 -3
- package/dist/internal/upload/telemetry.js +5 -3
- package/dist/internal/upload/telemetry.js.map +1 -1
- package/dist/internal/upload/telemetry.test.js +8 -8
- package/dist/internal/upload/telemetry.test.js.map +1 -1
- package/dist/protonDriveClient.d.ts +27 -170
- package/dist/protonDriveClient.js +37 -198
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.js +3 -2
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/dist/telemetry.js +18 -15
- package/dist/telemetry.js.map +1 -1
- package/dist/tests/logger.js.map +1 -1
- package/dist/tests/telemetry.d.ts +1 -1
- package/dist/transformers.js +4 -2
- package/dist/transformers.js.map +1 -1
- package/package.json +3 -3
- package/src/cache/index.ts +1 -0
- package/src/cache/interface.ts +22 -22
- package/src/cache/memoryCache.test.ts +7 -7
- package/src/cache/memoryCache.ts +5 -5
- package/src/cache/nullCache.ts +38 -0
- package/src/config.ts +17 -2
- package/src/crypto/driveCrypto.test.ts +15 -15
- package/src/crypto/driveCrypto.ts +120 -156
- package/src/crypto/hmac.ts +1 -1
- package/src/crypto/interface.ts +63 -72
- package/src/crypto/openPGPCrypto.ts +76 -94
- package/src/crypto/utils.ts +1 -1
- package/src/diagnostic/eventsGenerator.ts +48 -0
- package/src/diagnostic/httpClient.ts +84 -0
- package/src/diagnostic/index.ts +40 -0
- package/src/diagnostic/integrityVerificationStream.ts +55 -0
- package/src/diagnostic/interface.ts +158 -0
- package/src/diagnostic/sdkDiagnostic.ts +249 -0
- package/src/diagnostic/sdkDiagnosticFull.ts +37 -0
- package/src/diagnostic/telemetry.ts +74 -0
- package/src/diagnostic/zipGenerators.test.ts +177 -0
- package/src/diagnostic/zipGenerators.ts +70 -0
- package/src/errors.ts +25 -22
- package/src/index.ts +3 -3
- package/src/interface/account.ts +10 -10
- package/src/interface/author.ts +6 -6
- package/src/interface/config.ts +28 -0
- package/src/interface/devices.ts +6 -6
- package/src/interface/download.ts +12 -9
- package/src/interface/events.ts +76 -25
- package/src/interface/httpClient.ts +11 -27
- package/src/interface/index.ts +81 -20
- package/src/interface/nodes.ts +67 -60
- package/src/interface/result.ts +1 -3
- package/src/interface/sharing.ts +60 -56
- package/src/interface/telemetry.ts +74 -74
- package/src/interface/thumbnail.ts +5 -6
- package/src/interface/upload.ts +25 -11
- package/src/internal/apiService/apiService.test.ts +109 -76
- package/src/internal/apiService/apiService.ts +40 -26
- package/src/internal/apiService/coreTypes.ts +2474 -2463
- package/src/internal/apiService/driveTypes.ts +1868 -1822
- package/src/internal/apiService/errorCodes.ts +4 -4
- package/src/internal/apiService/errors.test.ts +25 -23
- package/src/internal/apiService/errors.ts +15 -9
- package/src/internal/apiService/index.ts +1 -1
- package/src/internal/apiService/transformers.ts +2 -2
- package/src/internal/asyncIteratorMap.test.ts +4 -4
- package/src/internal/asyncIteratorMap.ts +1 -1
- package/src/internal/asyncIteratorRace.test.ts +149 -0
- package/src/internal/asyncIteratorRace.ts +79 -0
- package/src/internal/batch.test.ts +50 -0
- package/src/internal/batch.ts +9 -0
- package/src/internal/batchLoading.test.ts +13 -14
- package/src/internal/batchLoading.ts +8 -8
- package/src/internal/devices/apiService.ts +58 -51
- package/src/internal/devices/cryptoService.ts +22 -17
- package/src/internal/devices/index.ts +17 -10
- package/src/internal/devices/interface.ts +21 -12
- package/src/internal/devices/manager.test.ts +40 -9
- package/src/internal/devices/manager.ts +3 -3
- package/src/internal/download/apiService.ts +72 -52
- package/src/internal/download/cryptoService.ts +34 -18
- package/src/internal/download/fileDownloader.test.ts +25 -9
- package/src/internal/download/fileDownloader.ts +38 -20
- package/src/internal/download/index.ts +19 -19
- package/src/internal/download/interface.ts +19 -20
- package/src/internal/download/queue.ts +3 -3
- package/src/internal/download/telemetry.test.ts +11 -11
- package/src/internal/download/telemetry.ts +24 -14
- package/src/internal/download/thumbnailDownloader.test.ts +11 -6
- package/src/internal/download/thumbnailDownloader.ts +43 -32
- package/src/internal/errors.ts +7 -5
- package/src/internal/events/apiService.ts +46 -36
- package/src/internal/events/coreEventManager.test.ts +101 -0
- package/src/internal/events/coreEventManager.ts +26 -48
- package/src/internal/events/eventManager.test.ts +211 -93
- package/src/internal/events/eventManager.ts +72 -117
- package/src/internal/events/index.ts +71 -91
- package/src/internal/events/interface.ts +92 -29
- package/src/internal/events/volumeEventManager.test.ts +239 -0
- package/src/internal/events/volumeEventManager.ts +68 -57
- package/src/internal/nodes/apiService.test.ts +197 -147
- package/src/internal/nodes/apiService.ts +288 -174
- package/src/internal/nodes/cache.test.ts +48 -20
- package/src/internal/nodes/cache.ts +79 -45
- package/src/internal/nodes/cryptoCache.test.ts +34 -14
- package/src/internal/nodes/cryptoCache.ts +10 -5
- package/src/internal/nodes/cryptoService.test.ts +492 -351
- package/src/internal/nodes/cryptoService.ts +171 -89
- package/src/internal/nodes/events.test.ts +48 -344
- package/src/internal/nodes/events.ts +48 -254
- package/src/internal/nodes/extendedAttributes.test.ts +28 -24
- package/src/internal/nodes/extendedAttributes.ts +20 -15
- package/src/internal/nodes/index.test.ts +51 -55
- package/src/internal/nodes/index.ts +32 -22
- package/src/internal/nodes/interface.ts +44 -31
- package/src/internal/nodes/nodesAccess.test.ts +237 -130
- package/src/internal/nodes/nodesAccess.ts +113 -50
- package/src/internal/nodes/nodesManagement.test.ts +64 -39
- package/src/internal/nodes/nodesManagement.ts +51 -62
- package/src/internal/nodes/nodesRevisions.ts +7 -7
- package/src/internal/nodes/validations.ts +2 -2
- package/src/internal/photos/albums.ts +5 -5
- package/src/internal/photos/apiService.ts +4 -7
- package/src/internal/photos/cache.ts +1 -1
- package/src/internal/photos/index.ts +8 -8
- package/src/internal/photos/interface.ts +2 -2
- package/src/internal/photos/photosTimeline.ts +4 -5
- package/src/internal/sdkEvents.test.ts +10 -10
- package/src/internal/sdkEvents.ts +5 -13
- package/src/internal/shares/apiService.ts +44 -33
- package/src/internal/shares/cache.test.ts +6 -4
- package/src/internal/shares/cache.ts +25 -14
- package/src/internal/shares/cryptoCache.test.ts +17 -11
- package/src/internal/shares/cryptoCache.ts +4 -4
- package/src/internal/shares/cryptoService.test.ts +72 -74
- package/src/internal/shares/cryptoService.ts +48 -23
- package/src/internal/shares/index.ts +23 -11
- package/src/internal/shares/interface.ts +8 -8
- package/src/internal/shares/manager.test.ts +88 -80
- package/src/internal/shares/manager.ts +27 -23
- package/src/internal/sharing/apiService.ts +283 -175
- package/src/internal/sharing/cache.test.ts +35 -35
- package/src/internal/sharing/cache.ts +3 -3
- package/src/internal/sharing/cryptoService.test.ts +58 -46
- package/src/internal/sharing/cryptoService.ts +121 -83
- package/src/internal/sharing/events.test.ts +97 -207
- package/src/internal/sharing/events.ts +46 -157
- package/src/internal/sharing/index.ts +24 -16
- package/src/internal/sharing/interface.ts +46 -42
- package/src/internal/sharing/sharingAccess.test.ts +71 -65
- package/src/internal/sharing/sharingAccess.ts +39 -21
- package/src/internal/sharing/sharingManagement.test.ts +405 -335
- package/src/internal/sharing/sharingManagement.ts +144 -75
- package/src/internal/uids.ts +1 -1
- package/src/internal/upload/apiService.ts +168 -119
- package/src/internal/upload/blockVerifier.ts +8 -6
- package/src/internal/upload/chunkStreamReader.test.ts +7 -7
- package/src/internal/upload/cryptoService.ts +42 -36
- package/src/internal/upload/digests.ts +2 -2
- package/src/internal/upload/fileUploader.test.ts +15 -3
- package/src/internal/upload/fileUploader.ts +39 -17
- package/src/internal/upload/index.ts +17 -18
- package/src/internal/upload/interface.ts +79 -77
- package/src/internal/upload/manager.test.ts +222 -175
- package/src/internal/upload/manager.ts +74 -80
- package/src/internal/upload/queue.ts +3 -3
- package/src/internal/upload/streamUploader.test.ts +40 -27
- package/src/internal/upload/streamUploader.ts +87 -71
- package/src/internal/upload/telemetry.test.ts +11 -11
- package/src/internal/upload/telemetry.ts +25 -15
- package/src/internal/wait.test.ts +1 -1
- package/src/internal/wait.ts +3 -3
- package/src/protonDriveClient.ts +189 -276
- package/src/protonDrivePhotosClient.ts +20 -13
- package/src/telemetry.ts +60 -52
- package/src/tests/logger.ts +1 -1
- package/src/tests/telemetry.ts +2 -2
- package/src/transformers.ts +27 -21
- package/src/version.ts +0 -1
- package/dist/internal/events/cache.d.ts +0 -28
- package/dist/internal/events/cache.js +0 -67
- package/dist/internal/events/cache.js.map +0 -1
- package/dist/internal/events/cache.test.js +0 -43
- package/dist/internal/events/cache.test.js.map +0 -1
- package/src/internal/events/cache.test.ts +0 -47
- package/src/internal/events/cache.ts +0 -80
- /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
|
@@ -4,39 +4,23 @@ export interface ProtonDriveHTTPClient {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
export type ProtonDriveHTTPClientJsonOptions = ProtonDriveHTTPClientBaseOptions & {
|
|
7
|
-
json?: object
|
|
8
|
-
}
|
|
7
|
+
json?: object;
|
|
8
|
+
};
|
|
9
9
|
|
|
10
10
|
export type ProtonDriveHTTPClientBlobOptions = ProtonDriveHTTPClientBaseOptions & {
|
|
11
|
-
body?: XMLHttpRequestBodyInit
|
|
12
|
-
onProgress?: (progress: number) => void
|
|
13
|
-
}
|
|
11
|
+
body?: XMLHttpRequestBodyInit;
|
|
12
|
+
onProgress?: (progress: number) => void;
|
|
13
|
+
};
|
|
14
14
|
|
|
15
15
|
type ProtonDriveHTTPClientBaseOptions = {
|
|
16
|
-
url: string
|
|
17
|
-
method: string
|
|
18
|
-
headers: Headers
|
|
16
|
+
url: string;
|
|
17
|
+
method: string;
|
|
18
|
+
headers: Headers;
|
|
19
19
|
/**
|
|
20
20
|
* The timeout in milliseconds.
|
|
21
21
|
*
|
|
22
22
|
* When timeout is reached, the request will be aborted with TimeoutError.
|
|
23
23
|
*/
|
|
24
|
-
timeoutMs: number
|
|
25
|
-
signal?: AbortSignal
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export type ProtonDriveConfig = {
|
|
29
|
-
/**
|
|
30
|
-
* The base URL for the Proton Drive (without schema).
|
|
31
|
-
*
|
|
32
|
-
* If not provided, defaults to 'drive-api.proton.me'.
|
|
33
|
-
*/
|
|
34
|
-
baseUrl?: string,
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* The language to use for error messages.
|
|
38
|
-
*
|
|
39
|
-
* If not provided, defaults to 'en'.
|
|
40
|
-
*/
|
|
41
|
-
language?: string,
|
|
42
|
-
}
|
|
24
|
+
timeoutMs: number;
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
};
|
package/src/interface/index.ts
CHANGED
|
@@ -1,24 +1,84 @@
|
|
|
1
1
|
import { ProtonDriveCache } from '../cache';
|
|
2
2
|
import { OpenPGPCrypto, PrivateKey, SessionKey, SRPModule } from '../crypto';
|
|
3
|
+
import { LatestEventIdProvider } from '../internal/events/interface';
|
|
3
4
|
import { ProtonDriveAccount } from './account';
|
|
4
|
-
import {
|
|
5
|
+
import { ProtonDriveConfig } from './config';
|
|
6
|
+
import { ProtonDriveHTTPClient } from './httpClient';
|
|
5
7
|
import { Telemetry, MetricEvent } from './telemetry';
|
|
6
8
|
|
|
7
9
|
export type { Result } from './result';
|
|
8
10
|
export { resultOk, resultError } from './result';
|
|
9
11
|
export type { ProtonDriveAccount, ProtonDriveAccountAddress } from './account';
|
|
10
12
|
export type { Author, UnverifiedAuthorError, AnonymousUser } from './author';
|
|
13
|
+
export type { ProtonDriveConfig } from './config';
|
|
11
14
|
export type { Device, DeviceOrUid } from './devices';
|
|
12
15
|
export { DeviceType } from './devices';
|
|
13
16
|
export type { FileDownloader, DownloadController } from './download';
|
|
14
|
-
export type {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
export type {
|
|
18
|
+
DriveListener,
|
|
19
|
+
LatestEventIdProvider,
|
|
20
|
+
DriveEvent,
|
|
21
|
+
NodeEvent,
|
|
22
|
+
FastForwardEvent,
|
|
23
|
+
TreeRefreshEvent,
|
|
24
|
+
TreeRemovalEvent,
|
|
25
|
+
SharedWithMeUpdated,
|
|
26
|
+
} from './events';
|
|
27
|
+
export { DriveEventType, SDKEvent } from './events';
|
|
28
|
+
export type {
|
|
29
|
+
ProtonDriveHTTPClient,
|
|
30
|
+
ProtonDriveHTTPClientJsonOptions,
|
|
31
|
+
ProtonDriveHTTPClientBlobOptions,
|
|
32
|
+
} from './httpClient';
|
|
33
|
+
export type {
|
|
34
|
+
MaybeNode,
|
|
35
|
+
NodeEntity,
|
|
36
|
+
DegradedNode,
|
|
37
|
+
MaybeMissingNode,
|
|
38
|
+
MissingNode,
|
|
39
|
+
InvalidNameError,
|
|
40
|
+
Revision,
|
|
41
|
+
NodeOrUid,
|
|
42
|
+
RevisionOrUid,
|
|
43
|
+
NodeResult,
|
|
44
|
+
} from './nodes';
|
|
18
45
|
export { NodeType, MemberRole, RevisionState } from './nodes';
|
|
19
|
-
export type {
|
|
46
|
+
export type {
|
|
47
|
+
ProtonInvitation,
|
|
48
|
+
ProtonInvitationWithNode,
|
|
49
|
+
NonProtonInvitation,
|
|
50
|
+
Member,
|
|
51
|
+
PublicLink,
|
|
52
|
+
MaybeBookmark,
|
|
53
|
+
Bookmark,
|
|
54
|
+
DegradedBookmark,
|
|
55
|
+
ProtonInvitationOrUid,
|
|
56
|
+
NonProtonInvitationOrUid,
|
|
57
|
+
BookmarkOrUid,
|
|
58
|
+
ShareNodeSettings,
|
|
59
|
+
UnshareNodeSettings,
|
|
60
|
+
ShareMembersSettings,
|
|
61
|
+
SharePublicLinkSettings,
|
|
62
|
+
SharePublicLinkSettingsObject,
|
|
63
|
+
ShareResult,
|
|
64
|
+
} from './sharing';
|
|
20
65
|
export { NonProtonInvitationState } from './sharing';
|
|
21
|
-
export type {
|
|
66
|
+
export type {
|
|
67
|
+
Telemetry,
|
|
68
|
+
Logger,
|
|
69
|
+
MetricAPIRetrySucceededEvent,
|
|
70
|
+
MetricUploadEvent,
|
|
71
|
+
MetricsUploadErrorType,
|
|
72
|
+
MetricDownloadEvent,
|
|
73
|
+
MetricsDownloadErrorType,
|
|
74
|
+
MetricDecryptionErrorEvent,
|
|
75
|
+
MetricsDecryptionErrorField,
|
|
76
|
+
MetricVerificationErrorEvent,
|
|
77
|
+
MetricVerificationErrorField,
|
|
78
|
+
MetricBlockVerificationErrorEvent,
|
|
79
|
+
MetricVolumeEventsSubscriptionsChangedEvent,
|
|
80
|
+
MetricEvent,
|
|
81
|
+
} from './telemetry';
|
|
22
82
|
export { MetricVolumeType } from './telemetry';
|
|
23
83
|
export type { FileUploader, FileRevisionUploader, UploadController, UploadMetadata } from './upload';
|
|
24
84
|
export type { Thumbnail, ThumbnailResult } from './thumbnail';
|
|
@@ -28,19 +88,20 @@ export type ProtonDriveTelemetry = Telemetry<MetricEvent>;
|
|
|
28
88
|
export type ProtonDriveEntitiesCache = ProtonDriveCache<string>;
|
|
29
89
|
export type ProtonDriveCryptoCache = ProtonDriveCache<CachedCryptoMaterial>;
|
|
30
90
|
export type CachedCryptoMaterial = {
|
|
31
|
-
passphrase?: string
|
|
32
|
-
key: PrivateKey
|
|
33
|
-
passphraseSessionKey: SessionKey
|
|
34
|
-
hashKey?: Uint8Array
|
|
91
|
+
passphrase?: string;
|
|
92
|
+
key: PrivateKey;
|
|
93
|
+
passphraseSessionKey: SessionKey;
|
|
94
|
+
hashKey?: Uint8Array;
|
|
35
95
|
};
|
|
36
96
|
|
|
37
97
|
export interface ProtonDriveClientContructorParameters {
|
|
38
|
-
httpClient: ProtonDriveHTTPClient
|
|
39
|
-
entitiesCache: ProtonDriveEntitiesCache
|
|
40
|
-
cryptoCache: ProtonDriveCryptoCache
|
|
41
|
-
account: ProtonDriveAccount
|
|
42
|
-
openPGPCryptoModule: OpenPGPCrypto
|
|
43
|
-
srpModule: SRPModule
|
|
44
|
-
config?: ProtonDriveConfig
|
|
45
|
-
telemetry?: ProtonDriveTelemetry
|
|
46
|
-
|
|
98
|
+
httpClient: ProtonDriveHTTPClient;
|
|
99
|
+
entitiesCache: ProtonDriveEntitiesCache;
|
|
100
|
+
cryptoCache: ProtonDriveCryptoCache;
|
|
101
|
+
account: ProtonDriveAccount;
|
|
102
|
+
openPGPCryptoModule: OpenPGPCrypto;
|
|
103
|
+
srpModule: SRPModule;
|
|
104
|
+
config?: ProtonDriveConfig;
|
|
105
|
+
telemetry?: ProtonDriveTelemetry;
|
|
106
|
+
latestEventIdProvider?: LatestEventIdProvider;
|
|
107
|
+
}
|
package/src/interface/nodes.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Author } from './author';
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Node representing a file or folder in the system.
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
7
|
* This covers both happy path and degraded path. It is used in the SDK to
|
|
8
8
|
* represent the node in a way that is easy to work with. Whenever any field
|
|
9
9
|
* cannot be decrypted, it is returned as `DegradedNode` type.
|
|
@@ -12,7 +12,7 @@ export type MaybeNode = Result<NodeEntity, DegradedNode>;
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Node representing a file or folder in the system, or missing node.
|
|
15
|
-
*
|
|
15
|
+
*
|
|
16
16
|
* In most cases, SDK returns `MaybeNode`, but in some specific cases, when
|
|
17
17
|
* client is requesting specific nodes, SDK must return `MissingNode` type
|
|
18
18
|
* to indicate the case when the node is not available. That can be when
|
|
@@ -22,49 +22,49 @@ export type MaybeNode = Result<NodeEntity, DegradedNode>;
|
|
|
22
22
|
export type MaybeMissingNode = Result<NodeEntity, DegradedNode | MissingNode>;
|
|
23
23
|
|
|
24
24
|
export type MissingNode = {
|
|
25
|
-
missingUid: string
|
|
25
|
+
missingUid: string;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Node representing a file or folder in the system.
|
|
30
|
-
*
|
|
30
|
+
*
|
|
31
31
|
* This is a happy path representation of the node. It is used in the SDK to
|
|
32
32
|
* represent the node in a way that is easy to work with. Whenever any field
|
|
33
33
|
* cannot be decrypted, it is returned as `DegradedNode` type.
|
|
34
|
-
*
|
|
34
|
+
*
|
|
35
35
|
* SDK never returns this entity directly but wrapped in `MaybeNode`.
|
|
36
36
|
*
|
|
37
37
|
* Note on naming: Node is reserved by JS/DOM, thus we need exception how the
|
|
38
38
|
* entity is called.
|
|
39
39
|
*/
|
|
40
40
|
export type NodeEntity = {
|
|
41
|
-
uid: string
|
|
42
|
-
parentUid?: string
|
|
43
|
-
name: string
|
|
41
|
+
uid: string;
|
|
42
|
+
parentUid?: string;
|
|
43
|
+
name: string;
|
|
44
44
|
/**
|
|
45
45
|
* Author of the node key.
|
|
46
|
-
*
|
|
46
|
+
*
|
|
47
47
|
* Person who created the node and keys for it. If user A uploads the file
|
|
48
48
|
* and user B renames the file and uploads new revision, name and content
|
|
49
49
|
* author is user B, while key author stays to user A who has forever
|
|
50
50
|
* option to decrypt latest versions.
|
|
51
51
|
*/
|
|
52
|
-
keyAuthor: Author
|
|
52
|
+
keyAuthor: Author;
|
|
53
53
|
/**
|
|
54
54
|
* Author of the name.
|
|
55
|
-
*
|
|
55
|
+
*
|
|
56
56
|
* Person who named the file. If user A uploads the file and user B renames
|
|
57
57
|
* the file, key and content author is user A, while name author is user B.
|
|
58
58
|
*/
|
|
59
|
-
nameAuthor: Author
|
|
60
|
-
directMemberRole: MemberRole
|
|
61
|
-
type: NodeType
|
|
62
|
-
mediaType?: string
|
|
59
|
+
nameAuthor: Author;
|
|
60
|
+
directMemberRole: MemberRole;
|
|
61
|
+
type: NodeType;
|
|
62
|
+
mediaType?: string;
|
|
63
63
|
/**
|
|
64
64
|
* Whether the node is shared. If true, the node is shared with at least
|
|
65
65
|
* one user, or via public link.
|
|
66
66
|
*/
|
|
67
|
-
isShared: boolean
|
|
67
|
+
isShared: boolean;
|
|
68
68
|
/**
|
|
69
69
|
* Provides the ID of the share that the node is shared with.
|
|
70
70
|
*
|
|
@@ -73,53 +73,62 @@ export type NodeEntity = {
|
|
|
73
73
|
*
|
|
74
74
|
* @deprecated This field is not part of the public API.
|
|
75
75
|
*/
|
|
76
|
-
deprecatedShareId?: string
|
|
76
|
+
deprecatedShareId?: string;
|
|
77
77
|
/**
|
|
78
78
|
* Created on server date.
|
|
79
79
|
*/
|
|
80
|
-
creationTime: Date
|
|
81
|
-
trashTime?: Date
|
|
80
|
+
creationTime: Date;
|
|
81
|
+
trashTime?: Date;
|
|
82
82
|
/**
|
|
83
83
|
* Total size of all revisions, encrypted size on the server.
|
|
84
84
|
*/
|
|
85
|
-
totalStorageSize?: number
|
|
86
|
-
activeRevision?: Revision
|
|
85
|
+
totalStorageSize?: number;
|
|
86
|
+
activeRevision?: Revision;
|
|
87
87
|
folder?: {
|
|
88
|
-
claimedModificationTime?: Date
|
|
89
|
-
}
|
|
90
|
-
|
|
88
|
+
claimedModificationTime?: Date;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Provides an ID for the event scope.
|
|
92
|
+
*
|
|
93
|
+
* By subscribing to events in a scope, all updates to nodes
|
|
94
|
+
* withing that scope will be passed to the client. The scope can
|
|
95
|
+
* comprise one or more folder trees and will be shared by all
|
|
96
|
+
* nodes in the tree. Nodes cannot change scopes.
|
|
97
|
+
*/
|
|
98
|
+
treeEventScopeId: string;
|
|
99
|
+
};
|
|
91
100
|
|
|
92
101
|
/**
|
|
93
102
|
* Degraded node representing a file or folder in the system.
|
|
94
|
-
*
|
|
103
|
+
*
|
|
95
104
|
* This is a degraded path representation of the node. It is used in the SDK to
|
|
96
105
|
* represent the node in a way that is easy to work with. Whenever any field
|
|
97
106
|
* cannot be decrypted, it is returned as `DegradedNode` type.
|
|
98
|
-
*
|
|
107
|
+
*
|
|
99
108
|
* SDK never returns this entity directly but wrapped in `MaybeNode`.
|
|
100
|
-
*
|
|
109
|
+
*
|
|
101
110
|
* The node can be still used around, but it is not guaranteed that all
|
|
102
111
|
* properties are decrypted, or that all actions can be performed on it.
|
|
103
|
-
*
|
|
112
|
+
*
|
|
104
113
|
* For example, if the node has issue decrypting the name, the name will be
|
|
105
114
|
* set as `Error` and potentially rename or move actions will not be
|
|
106
115
|
* possible, but download and upload new revision will still work.
|
|
107
116
|
*/
|
|
108
117
|
export type DegradedNode = Omit<NodeEntity, 'name' | 'activeRevision'> & {
|
|
109
|
-
name: Result<string, Error | InvalidNameError
|
|
110
|
-
activeRevision?: Result<Revision, Error
|
|
118
|
+
name: Result<string, Error | InvalidNameError>;
|
|
119
|
+
activeRevision?: Result<Revision, Error>;
|
|
111
120
|
/**
|
|
112
121
|
* If the error is not related to any specific field, it is set here.
|
|
113
|
-
*
|
|
122
|
+
*
|
|
114
123
|
* For example, if the node has issue decrypting the name, the name will be
|
|
115
124
|
* set as `Error` while this will be empty.
|
|
116
|
-
*
|
|
125
|
+
*
|
|
117
126
|
* On the other hand, if the node has issue decrypting the node key, but
|
|
118
127
|
* the name is still working, this will include the node key error, while
|
|
119
128
|
* the name will be set to the decrypted value.
|
|
120
129
|
*/
|
|
121
|
-
errors?: unknown[]
|
|
122
|
-
}
|
|
130
|
+
errors?: unknown[];
|
|
131
|
+
};
|
|
123
132
|
|
|
124
133
|
/**
|
|
125
134
|
* Invalid name error represents node name that includes invalid characters.
|
|
@@ -128,13 +137,13 @@ export type InvalidNameError = {
|
|
|
128
137
|
/**
|
|
129
138
|
* Placeholder instead of node name that client can use to display.
|
|
130
139
|
*/
|
|
131
|
-
name: string
|
|
132
|
-
error: string
|
|
133
|
-
}
|
|
140
|
+
name: string;
|
|
141
|
+
error: string;
|
|
142
|
+
};
|
|
134
143
|
|
|
135
144
|
export enum NodeType {
|
|
136
|
-
File =
|
|
137
|
-
Folder =
|
|
145
|
+
File = 'file',
|
|
146
|
+
Folder = 'folder',
|
|
138
147
|
/**
|
|
139
148
|
* Album is a special type available only in Photos section.
|
|
140
149
|
*
|
|
@@ -145,44 +154,42 @@ export enum NodeType {
|
|
|
145
154
|
*
|
|
146
155
|
* @deprecated This type is not part of the public API.
|
|
147
156
|
*/
|
|
148
|
-
Album =
|
|
157
|
+
Album = 'album',
|
|
149
158
|
}
|
|
150
159
|
|
|
151
160
|
export enum MemberRole {
|
|
152
|
-
Viewer =
|
|
153
|
-
Editor =
|
|
154
|
-
Admin =
|
|
155
|
-
Inherited =
|
|
161
|
+
Viewer = 'viewer',
|
|
162
|
+
Editor = 'editor',
|
|
163
|
+
Admin = 'admin',
|
|
164
|
+
Inherited = 'inherited',
|
|
156
165
|
}
|
|
157
166
|
|
|
158
167
|
export type Revision = {
|
|
159
|
-
uid: string
|
|
160
|
-
state: RevisionState
|
|
161
|
-
creationTime: Date
|
|
162
|
-
contentAuthor: Author
|
|
168
|
+
uid: string;
|
|
169
|
+
state: RevisionState;
|
|
170
|
+
creationTime: Date; // created on server date
|
|
171
|
+
contentAuthor: Author;
|
|
163
172
|
/**
|
|
164
173
|
* Encrypted size of the revision, as stored on the server.
|
|
165
174
|
*/
|
|
166
|
-
storageSize: number
|
|
175
|
+
storageSize: number;
|
|
167
176
|
/**
|
|
168
177
|
* Raw size of the revision, as stored in extended attributes.
|
|
169
178
|
*/
|
|
170
|
-
claimedSize?: number
|
|
171
|
-
claimedModificationTime?: Date
|
|
179
|
+
claimedSize?: number;
|
|
180
|
+
claimedModificationTime?: Date;
|
|
172
181
|
claimedDigests?: {
|
|
173
|
-
sha1?: string
|
|
174
|
-
}
|
|
175
|
-
claimedAdditionalMetadata?: object
|
|
176
|
-
}
|
|
182
|
+
sha1?: string;
|
|
183
|
+
};
|
|
184
|
+
claimedAdditionalMetadata?: object;
|
|
185
|
+
};
|
|
177
186
|
|
|
178
187
|
export enum RevisionState {
|
|
179
|
-
Active =
|
|
180
|
-
Superseded =
|
|
188
|
+
Active = 'active',
|
|
189
|
+
Superseded = 'superseded',
|
|
181
190
|
}
|
|
182
191
|
|
|
183
192
|
export type NodeOrUid = MaybeNode | NodeEntity | DegradedNode | string;
|
|
184
193
|
export type RevisionOrUid = Revision | string;
|
|
185
194
|
|
|
186
|
-
export type NodeResult =
|
|
187
|
-
{uid: string, ok: true} |
|
|
188
|
-
{uid: string, ok: false, error: string};
|
|
195
|
+
export type NodeResult = { uid: string; ok: true } | { uid: string; ok: false; error: string };
|
package/src/interface/result.ts
CHANGED
package/src/interface/sharing.ts
CHANGED
|
@@ -3,107 +3,111 @@ import { UnverifiedAuthorError } from './author';
|
|
|
3
3
|
import { NodeType, MemberRole, InvalidNameError } from './nodes';
|
|
4
4
|
|
|
5
5
|
export type Member = {
|
|
6
|
-
uid: string
|
|
7
|
-
invitationTime: Date
|
|
8
|
-
addedByEmail: Result<string, UnverifiedAuthorError
|
|
9
|
-
inviteeEmail: string
|
|
10
|
-
role: MemberRole
|
|
11
|
-
}
|
|
6
|
+
uid: string;
|
|
7
|
+
invitationTime: Date;
|
|
8
|
+
addedByEmail: Result<string, UnverifiedAuthorError>;
|
|
9
|
+
inviteeEmail: string;
|
|
10
|
+
role: MemberRole;
|
|
11
|
+
};
|
|
12
12
|
|
|
13
13
|
export type ProtonInvitation = Member;
|
|
14
14
|
|
|
15
15
|
export type ProtonInvitationWithNode = ProtonInvitation & {
|
|
16
16
|
node: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
17
|
+
uid: string;
|
|
18
|
+
name: Result<string, Error | InvalidNameError>;
|
|
19
|
+
type: NodeType;
|
|
20
|
+
mediaType?: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
22
23
|
|
|
23
24
|
export type NonProtonInvitation = ProtonInvitation & {
|
|
24
|
-
state: NonProtonInvitationState
|
|
25
|
-
}
|
|
25
|
+
state: NonProtonInvitationState;
|
|
26
|
+
};
|
|
26
27
|
|
|
27
28
|
export enum NonProtonInvitationState {
|
|
28
|
-
Pending =
|
|
29
|
-
UserRegistered =
|
|
29
|
+
Pending = 'pending',
|
|
30
|
+
UserRegistered = 'userRegistered',
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
export type PublicLink = {
|
|
33
|
-
uid: string
|
|
34
|
-
creationTime: Date
|
|
35
|
-
role: MemberRole
|
|
36
|
-
url: string
|
|
37
|
-
customPassword?: string
|
|
38
|
-
expirationTime?: Date
|
|
39
|
-
|
|
34
|
+
uid: string;
|
|
35
|
+
creationTime: Date;
|
|
36
|
+
role: MemberRole;
|
|
37
|
+
url: string;
|
|
38
|
+
customPassword?: string;
|
|
39
|
+
expirationTime?: Date;
|
|
40
|
+
numberOfInitializedDownloads: number;
|
|
41
|
+
};
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
44
|
* Bookmark representing a saved link to publicly shared node.
|
|
43
|
-
*
|
|
45
|
+
*
|
|
44
46
|
* This covers both happy path and degraded path.
|
|
45
47
|
*/
|
|
46
48
|
export type MaybeBookmark = Result<Bookmark, DegradedBookmark>;
|
|
47
49
|
|
|
48
50
|
export type Bookmark = {
|
|
49
|
-
uid: string
|
|
50
|
-
creationTime: Date
|
|
51
|
-
url: string
|
|
51
|
+
uid: string;
|
|
52
|
+
creationTime: Date;
|
|
53
|
+
url: string;
|
|
52
54
|
node: {
|
|
53
|
-
name: string
|
|
54
|
-
type: NodeType
|
|
55
|
-
mediaType?: string
|
|
56
|
-
}
|
|
57
|
-
}
|
|
55
|
+
name: string;
|
|
56
|
+
type: NodeType;
|
|
57
|
+
mediaType?: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
58
60
|
|
|
59
61
|
/**
|
|
60
62
|
* Degraded bookmark representing a saved link to publicly shared node.
|
|
61
|
-
*
|
|
63
|
+
*
|
|
62
64
|
* This is a degraded path representation of the bookmark. It is used in the
|
|
63
65
|
* SDK to represent the bookmark in a way that is easy to work with. Whenever
|
|
64
66
|
* any field cannot be decrypted, it is returned as `DegradedBookmark` type.
|
|
65
67
|
*/
|
|
66
68
|
export type DegradedBookmark = Omit<Bookmark, 'url' | 'node'> & {
|
|
67
|
-
url: Result<string, Error
|
|
69
|
+
url: Result<string, Error>;
|
|
68
70
|
node: Omit<Bookmark['node'], 'name'> & {
|
|
69
|
-
name: Result<string, Error | InvalidNameError
|
|
70
|
-
}
|
|
71
|
-
}
|
|
71
|
+
name: Result<string, Error | InvalidNameError>;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
72
74
|
|
|
73
75
|
export type ProtonInvitationOrUid = ProtonInvitation | string;
|
|
74
76
|
export type NonProtonInvitationOrUid = NonProtonInvitation | string;
|
|
75
77
|
export type BookmarkOrUid = Bookmark | string;
|
|
76
78
|
|
|
77
79
|
export type ShareNodeSettings = {
|
|
78
|
-
users?: ShareMembersSettings
|
|
79
|
-
publicLink?: SharePublicLinkSettings
|
|
80
|
+
users?: ShareMembersSettings;
|
|
81
|
+
publicLink?: SharePublicLinkSettings;
|
|
80
82
|
emailOptions?: {
|
|
81
|
-
message?: string
|
|
82
|
-
includeNodeName?: boolean
|
|
83
|
-
}
|
|
84
|
-
}
|
|
83
|
+
message?: string;
|
|
84
|
+
includeNodeName?: boolean;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
85
87
|
|
|
86
|
-
export type ShareMembersSettings =
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
export type ShareMembersSettings =
|
|
89
|
+
| string[]
|
|
90
|
+
| {
|
|
91
|
+
email: string;
|
|
92
|
+
role: MemberRole;
|
|
93
|
+
}[];
|
|
90
94
|
|
|
91
95
|
export type SharePublicLinkSettings = boolean | SharePublicLinkSettingsObject;
|
|
92
96
|
|
|
93
97
|
export type SharePublicLinkSettingsObject = {
|
|
94
|
-
role: MemberRole
|
|
95
|
-
customPassword?: string | undefined
|
|
96
|
-
expiration?: Date | undefined
|
|
98
|
+
role: MemberRole;
|
|
99
|
+
customPassword?: string | undefined;
|
|
100
|
+
expiration?: Date | undefined;
|
|
97
101
|
};
|
|
98
102
|
|
|
99
103
|
export type ShareResult = {
|
|
100
|
-
protonInvitations: ProtonInvitation[]
|
|
101
|
-
nonProtonInvitations: NonProtonInvitation[]
|
|
102
|
-
members: Member[]
|
|
103
|
-
publicLink?: PublicLink
|
|
104
|
-
}
|
|
104
|
+
protonInvitations: ProtonInvitation[];
|
|
105
|
+
nonProtonInvitations: NonProtonInvitation[];
|
|
106
|
+
members: Member[];
|
|
107
|
+
publicLink?: PublicLink;
|
|
108
|
+
};
|
|
105
109
|
|
|
106
110
|
export type UnshareNodeSettings = {
|
|
107
|
-
users?: string[]
|
|
108
|
-
publicLink?: 'remove'
|
|
111
|
+
users?: string[];
|
|
112
|
+
publicLink?: 'remove';
|
|
109
113
|
};
|