filemail-sdk 9.4.10 → 10.2.0
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/src/autoDownloader/autoDownloader.d.ts.map +1 -1
- package/dist/src/autoDownloader/autoDownloader.js +0 -1
- package/dist/src/autoDownloader/autoDownloader.js.map +1 -1
- package/dist/src/client/downloader/downloaderCore.js +1 -1
- package/dist/src/client/downloader/downloaderCore.js.map +1 -1
- package/dist/src/client/downloader/node/nodeTransferDownloader.d.ts.map +1 -1
- package/dist/src/client/downloader/node/nodeTransferDownloader.js +0 -2
- package/dist/src/client/downloader/node/nodeTransferDownloader.js.map +1 -1
- package/dist/src/client/uploader/node/nodeTransferUploader.d.ts.map +1 -1
- package/dist/src/client/uploader/node/nodeTransferUploader.js +6 -5
- package/dist/src/client/uploader/node/nodeTransferUploader.js.map +1 -1
- package/dist/src/client/uploader/transferUploaderBase.d.ts +2 -0
- package/dist/src/client/uploader/transferUploaderBase.d.ts.map +1 -1
- package/dist/src/client/uploader/transferUploaderBase.js +45 -31
- package/dist/src/client/uploader/transferUploaderBase.js.map +1 -1
- package/dist/src/client/uploader/transferUploaderConfig.d.ts +3 -4
- package/dist/src/client/uploader/transferUploaderConfig.d.ts.map +1 -1
- package/dist/src/client/uploader/transferUploaderConfig.js.map +1 -1
- package/dist/src/client/uploader/utils/uploaderUtils.d.ts.map +1 -1
- package/dist/src/client/uploader/utils/uploaderUtils.js +1 -2
- package/dist/src/client/uploader/utils/uploaderUtils.js.map +1 -1
- package/dist/src/client/uploader/web/webTransferUploader.d.ts.map +1 -1
- package/dist/src/client/uploader/web/webTransferUploader.js +5 -4
- package/dist/src/client/uploader/web/webTransferUploader.js.map +1 -1
- package/dist/src/downloader/api/node/nodeFileServerDownloadClient.d.ts.map +1 -1
- package/dist/src/downloader/api/node/nodeFileServerDownloadClient.js +6 -2
- package/dist/src/downloader/api/node/nodeFileServerDownloadClient.js.map +1 -1
- package/dist/src/downloader/chunkDownloader.d.ts.map +1 -1
- package/dist/src/downloader/chunkDownloader.js +2 -3
- package/dist/src/downloader/chunkDownloader.js.map +1 -1
- package/dist/src/downloader/downloadTracker.d.ts.map +1 -1
- package/dist/src/downloader/downloadTracker.js +0 -1
- package/dist/src/downloader/downloadTracker.js.map +1 -1
- package/dist/src/downloader/filesDownloader.d.ts.map +1 -1
- package/dist/src/downloader/filesDownloader.js +0 -1
- package/dist/src/downloader/filesDownloader.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/uploader/api/node/nodeFileServerUploadClient.d.ts +1 -1
- package/dist/src/uploader/api/node/nodeFileServerUploadClient.d.ts.map +1 -1
- package/dist/src/uploader/api/node/nodeFileServerUploadClient.js +5 -4
- package/dist/src/uploader/api/node/nodeFileServerUploadClient.js.map +1 -1
- package/dist/src/uploader/api/web/webFileServerUploadClient.d.ts +1 -1
- package/dist/src/uploader/api/web/webFileServerUploadClient.d.ts.map +1 -1
- package/dist/src/uploader/api/web/webFileServerUploadClient.js +5 -4
- package/dist/src/uploader/api/web/webFileServerUploadClient.js.map +1 -1
- package/dist/src/uploader/chunksIterator/chunksIterator.d.ts +1 -3
- package/dist/src/uploader/chunksIterator/chunksIterator.d.ts.map +1 -1
- package/dist/src/uploader/chunksIterator/chunksIterator.js +4 -4
- package/dist/src/uploader/chunksIterator/chunksIterator.js.map +1 -1
- package/dist/src/uploader/eventArgs/fileAckFailedEventArgs.d.ts +8 -0
- package/dist/src/uploader/eventArgs/fileAckFailedEventArgs.d.ts.map +1 -0
- package/dist/src/uploader/eventArgs/fileAckFailedEventArgs.js +2 -0
- package/dist/src/uploader/eventArgs/fileAckFailedEventArgs.js.map +1 -0
- package/dist/src/uploader/eventArgs/fileChunkUploadCompletedEventArgs.d.ts +1 -1
- package/dist/src/uploader/eventArgs/fileChunkUploadCompletedEventArgs.d.ts.map +1 -1
- package/dist/src/uploader/eventArgs/fileChunkUploadCompletedEventArgs.js.map +1 -1
- package/dist/src/uploader/eventArgs/fileChunkUploadEventArgs.d.ts +1 -0
- package/dist/src/uploader/eventArgs/fileChunkUploadEventArgs.d.ts.map +1 -1
- package/dist/src/uploader/eventArgs/fileChunkUploadEventArgs.js.map +1 -1
- package/dist/src/uploader/eventArgs/fileChunkUploadProgressedEventArgs.d.ts +1 -0
- package/dist/src/uploader/eventArgs/fileChunkUploadProgressedEventArgs.d.ts.map +1 -1
- package/dist/src/uploader/eventArgs/fileChunkUploadProgressedEventArgs.js.map +1 -1
- package/dist/src/uploader/eventArgs/fileUploadEventArgs.d.ts +1 -0
- package/dist/src/uploader/eventArgs/fileUploadEventArgs.d.ts.map +1 -1
- package/dist/src/uploader/eventArgs/fileUploadEventArgs.js.map +1 -1
- package/dist/src/uploader/eventArgs/filesBatchAckFailedEventArgs.d.ts +6 -0
- package/dist/src/uploader/eventArgs/filesBatchAckFailedEventArgs.d.ts.map +1 -0
- package/dist/src/uploader/eventArgs/filesBatchAckFailedEventArgs.js +2 -0
- package/dist/src/uploader/eventArgs/filesBatchAckFailedEventArgs.js.map +1 -0
- package/dist/src/uploader/eventArgs/filesRegistrationBatchFailedEventArgs.d.ts +6 -0
- package/dist/src/uploader/eventArgs/filesRegistrationBatchFailedEventArgs.d.ts.map +1 -0
- package/dist/src/uploader/eventArgs/filesRegistrationBatchFailedEventArgs.js +2 -0
- package/dist/src/uploader/eventArgs/filesRegistrationBatchFailedEventArgs.js.map +1 -0
- package/dist/src/uploader/export/transferUploadExportData.d.ts +4 -1
- package/dist/src/uploader/export/transferUploadExportData.d.ts.map +1 -1
- package/dist/src/uploader/export/transferUploadExportData.js.map +1 -1
- package/dist/src/uploader/export/transferUploadExportState.d.ts +4 -1
- package/dist/src/uploader/export/transferUploadExportState.d.ts.map +1 -1
- package/dist/src/uploader/export/transferUploadExportState.js.map +1 -1
- package/dist/src/uploader/export/transferUploadMetadata.d.ts +0 -9
- package/dist/src/uploader/export/transferUploadMetadata.d.ts.map +1 -1
- package/dist/src/uploader/export/transferUploadMetadata.js.map +1 -1
- package/dist/src/uploader/options/transferUploadAppendInfo.d.ts +1 -0
- package/dist/src/uploader/options/transferUploadAppendInfo.d.ts.map +1 -1
- package/dist/src/uploader/options/transferUploadAppendInfo.js.map +1 -1
- package/dist/src/uploader/options/transferUploadConfig.d.ts +1 -2
- package/dist/src/uploader/options/transferUploadConfig.d.ts.map +1 -1
- package/dist/src/uploader/options/transferUploadConfig.js.map +1 -1
- package/dist/src/uploader/pendingFileAck.d.ts +7 -0
- package/dist/src/uploader/pendingFileAck.d.ts.map +1 -0
- package/dist/src/uploader/pendingFileAck.js +2 -0
- package/dist/src/uploader/pendingFileAck.js.map +1 -0
- package/dist/src/uploader/registeredTransferFile.d.ts +6 -0
- package/dist/src/uploader/registeredTransferFile.d.ts.map +1 -0
- package/dist/src/uploader/registeredTransferFile.js +2 -0
- package/dist/src/uploader/registeredTransferFile.js.map +1 -0
- package/dist/src/uploader/state/continuousChunksCalculator.d.ts +1 -0
- package/dist/src/uploader/state/continuousChunksCalculator.d.ts.map +1 -1
- package/dist/src/uploader/state/continuousChunksCalculator.js +8 -2
- package/dist/src/uploader/state/continuousChunksCalculator.js.map +1 -1
- package/dist/src/uploader/state/transferUploadState.d.ts +11 -8
- package/dist/src/uploader/state/transferUploadState.d.ts.map +1 -1
- package/dist/src/uploader/state/transferUploadState.js +57 -28
- package/dist/src/uploader/state/transferUploadState.js.map +1 -1
- package/dist/src/uploader/state/transferUploadStateFile.d.ts +1 -0
- package/dist/src/uploader/state/transferUploadStateFile.d.ts.map +1 -1
- package/dist/src/uploader/state/transferUploadStateFile.js +1 -0
- package/dist/src/uploader/state/transferUploadStateFile.js.map +1 -1
- package/dist/src/uploader/transferFilesRegistrar.d.ts +30 -0
- package/dist/src/uploader/transferFilesRegistrar.d.ts.map +1 -0
- package/dist/src/uploader/transferFilesRegistrar.js +158 -0
- package/dist/src/uploader/transferFilesRegistrar.js.map +1 -0
- package/dist/src/uploader/transferUpload.d.ts +21 -14
- package/dist/src/uploader/transferUpload.d.ts.map +1 -1
- package/dist/src/uploader/transferUpload.js +122 -142
- package/dist/src/uploader/transferUpload.js.map +1 -1
- package/dist/src/uploader/transferUploadAcker.d.ts +18 -0
- package/dist/src/uploader/transferUploadAcker.d.ts.map +1 -0
- package/dist/src/uploader/transferUploadAcker.js +123 -0
- package/dist/src/uploader/transferUploadAcker.js.map +1 -0
- package/dist/src/uploader/transferUploadEvent.d.ts +4 -1
- package/dist/src/uploader/transferUploadEvent.d.ts.map +1 -1
- package/dist/src/uploader/transferUploadEvent.js +4 -1
- package/dist/src/uploader/transferUploadEvent.js.map +1 -1
- package/dist/src/utils/api/apiClient.d.ts +6 -0
- package/dist/src/utils/api/apiClient.d.ts.map +1 -1
- package/dist/src/utils/api/apiClient.js.map +1 -1
- package/dist/src/utils/api/apiClientBase.d.ts +0 -2
- package/dist/src/utils/api/apiClientBase.d.ts.map +1 -1
- package/dist/src/utils/api/apiClientBase.js +6 -13
- package/dist/src/utils/api/apiClientBase.js.map +1 -1
- package/dist/src/utils/api/dtos/ackTransferFilesRequest.d.ts +9 -0
- package/dist/src/utils/api/dtos/ackTransferFilesRequest.d.ts.map +1 -0
- package/dist/src/utils/api/dtos/ackTransferFilesRequest.js +2 -0
- package/dist/src/utils/api/dtos/ackTransferFilesRequest.js.map +1 -0
- package/dist/src/utils/api/dtos/ackTransferFilesResponse.d.ts +7 -0
- package/dist/src/utils/api/dtos/ackTransferFilesResponse.d.ts.map +1 -0
- package/dist/src/utils/api/dtos/ackTransferFilesResponse.js +2 -0
- package/dist/src/utils/api/dtos/ackTransferFilesResponse.js.map +1 -0
- package/dist/src/utils/api/dtos/finalizeTransferRequest.d.ts +1 -1
- package/dist/src/utils/api/dtos/finalizeTransferRequest.d.ts.map +1 -1
- package/dist/src/utils/api/dtos/finalizeTransferRequest.js.map +1 -1
- package/dist/src/utils/api/dtos/initializeTransferRequest.d.ts +1 -0
- package/dist/src/utils/api/dtos/initializeTransferRequest.d.ts.map +1 -1
- package/dist/src/utils/api/dtos/initializeTransferRequest.js.map +1 -1
- package/dist/src/utils/api/dtos/initializeTransferResponse.d.ts +0 -9
- package/dist/src/utils/api/dtos/initializeTransferResponse.d.ts.map +1 -1
- package/dist/src/utils/api/dtos/initializeTransferResponse.js.map +1 -1
- package/dist/src/utils/api/dtos/registerTransferFilesRequest.d.ts +18 -0
- package/dist/src/utils/api/dtos/registerTransferFilesRequest.d.ts.map +1 -0
- package/dist/src/utils/api/dtos/registerTransferFilesRequest.js +2 -0
- package/dist/src/utils/api/dtos/registerTransferFilesRequest.js.map +1 -0
- package/dist/src/utils/api/dtos/registerTransferFilesResponse.d.ts +9 -0
- package/dist/src/utils/api/dtos/registerTransferFilesResponse.d.ts.map +1 -0
- package/dist/src/utils/api/dtos/registerTransferFilesResponse.js +2 -0
- package/dist/src/utils/api/dtos/registerTransferFilesResponse.js.map +1 -0
- package/dist/src/utils/api/fileServerClientFactory.d.ts +2 -4
- package/dist/src/utils/api/fileServerClientFactory.d.ts.map +1 -1
- package/dist/src/utils/api/fileServerClientFactory.js.map +1 -1
- package/dist/src/utils/api/node/nodeApiClient.d.ts +6 -0
- package/dist/src/utils/api/node/nodeApiClient.d.ts.map +1 -1
- package/dist/src/utils/api/node/nodeApiClient.js +26 -2
- package/dist/src/utils/api/node/nodeApiClient.js.map +1 -1
- package/dist/src/utils/api/node/nodeFileServerClientFactory.d.ts +2 -4
- package/dist/src/utils/api/node/nodeFileServerClientFactory.d.ts.map +1 -1
- package/dist/src/utils/api/node/nodeFileServerClientFactory.js +3 -7
- package/dist/src/utils/api/node/nodeFileServerClientFactory.js.map +1 -1
- package/dist/src/utils/api/web/webApiClient.d.ts +6 -0
- package/dist/src/utils/api/web/webApiClient.d.ts.map +1 -1
- package/dist/src/utils/api/web/webApiClient.js +24 -2
- package/dist/src/utils/api/web/webApiClient.js.map +1 -1
- package/dist/src/utils/api/web/webFileServerClientFactory.d.ts +2 -4
- package/dist/src/utils/api/web/webFileServerClientFactory.d.ts.map +1 -1
- package/dist/src/utils/api/web/webFileServerClientFactory.js +3 -6
- package/dist/src/utils/api/web/webFileServerClientFactory.js.map +1 -1
- package/dist/src/utils/fileSystem/node/nodeFileSystemService.d.ts.map +1 -1
- package/dist/src/utils/fileSystem/node/nodeFileSystemService.js +0 -3
- package/dist/src/utils/fileSystem/node/nodeFileSystemService.js.map +1 -1
- package/dist/src/utils/mergeAbortAndPauseSignals.d.ts +6 -1
- package/dist/src/utils/mergeAbortAndPauseSignals.d.ts.map +1 -1
- package/dist/src/utils/mergeAbortAndPauseSignals.js +14 -7
- package/dist/src/utils/mergeAbortAndPauseSignals.js.map +1 -1
- package/dist/src/utils/promiseAll.d.ts.map +1 -1
- package/dist/src/utils/promiseAll.js +0 -1
- package/dist/src/utils/promiseAll.js.map +1 -1
- package/package.json +1 -2
- package/dist/src/uploader/api/dtos/handshakeRequest.d.ts +0 -6
- package/dist/src/uploader/api/dtos/handshakeRequest.d.ts.map +0 -1
- package/dist/src/uploader/api/dtos/handshakeRequest.js +0 -2
- package/dist/src/uploader/api/dtos/handshakeRequest.js.map +0 -1
- package/dist/src/uploader/api/dtos/handshakeResponse.d.ts +0 -6
- package/dist/src/uploader/api/dtos/handshakeResponse.d.ts.map +0 -1
- package/dist/src/uploader/api/dtos/handshakeResponse.js +0 -2
- package/dist/src/uploader/api/dtos/handshakeResponse.js.map +0 -1
- package/dist/src/uploader/api/dtos/pingResponse.d.ts +0 -5
- package/dist/src/uploader/api/dtos/pingResponse.d.ts.map +0 -1
- package/dist/src/uploader/api/dtos/pingResponse.js +0 -2
- package/dist/src/uploader/api/dtos/pingResponse.js.map +0 -1
- package/dist/src/uploader/api/dtos/sendChunkRequest.d.ts +0 -10
- package/dist/src/uploader/api/dtos/sendChunkRequest.d.ts.map +0 -1
- package/dist/src/uploader/api/dtos/sendChunkRequest.js +0 -2
- package/dist/src/uploader/api/dtos/sendChunkRequest.js.map +0 -1
- package/dist/src/uploader/api/fileServerUdpClient.d.ts +0 -19
- package/dist/src/uploader/api/fileServerUdpClient.d.ts.map +0 -1
- package/dist/src/uploader/api/fileServerUdpClient.js +0 -2
- package/dist/src/uploader/api/fileServerUdpClient.js.map +0 -1
- package/dist/src/uploader/api/node/nodeFileServerUdpClient.d.ts +0 -39
- package/dist/src/uploader/api/node/nodeFileServerUdpClient.d.ts.map +0 -1
- package/dist/src/uploader/api/node/nodeFileServerUdpClient.js +0 -264
- package/dist/src/uploader/api/node/nodeFileServerUdpClient.js.map +0 -1
- package/dist/src/uploader/eventArgs/transferUploadModeChosenEventArgs.d.ts +0 -7
- package/dist/src/uploader/eventArgs/transferUploadModeChosenEventArgs.d.ts.map +0 -1
- package/dist/src/uploader/eventArgs/transferUploadModeChosenEventArgs.js +0 -2
- package/dist/src/uploader/eventArgs/transferUploadModeChosenEventArgs.js.map +0 -1
- package/dist/src/uploader/optimizer/optimizationValues.d.ts +0 -9
- package/dist/src/uploader/optimizer/optimizationValues.d.ts.map +0 -1
- package/dist/src/uploader/optimizer/optimizationValues.js +0 -2
- package/dist/src/uploader/optimizer/optimizationValues.js.map +0 -1
- package/dist/src/uploader/optimizer/strategies/udpConcurrencyBasedOptimizationStrategy.d.ts +0 -33
- package/dist/src/uploader/optimizer/strategies/udpConcurrencyBasedOptimizationStrategy.d.ts.map +0 -1
- package/dist/src/uploader/optimizer/strategies/udpConcurrencyBasedOptimizationStrategy.js +0 -135
- package/dist/src/uploader/optimizer/strategies/udpConcurrencyBasedOptimizationStrategy.js.map +0 -1
- package/dist/src/uploader/optimizer/strategies/udpSleepBasedOptimizationStrategy.d.ts +0 -30
- package/dist/src/uploader/optimizer/strategies/udpSleepBasedOptimizationStrategy.d.ts.map +0 -1
- package/dist/src/uploader/optimizer/strategies/udpSleepBasedOptimizationStrategy.js +0 -106
- package/dist/src/uploader/optimizer/strategies/udpSleepBasedOptimizationStrategy.js.map +0 -1
- package/dist/src/uploader/optimizer/transferUploadOptimizationStrategy.d.ts +0 -20
- package/dist/src/uploader/optimizer/transferUploadOptimizationStrategy.d.ts.map +0 -1
- package/dist/src/uploader/optimizer/transferUploadOptimizationStrategy.js +0 -2
- package/dist/src/uploader/optimizer/transferUploadOptimizationStrategy.js.map +0 -1
- package/dist/src/uploader/optimizer/transferUploadOptimizer.d.ts +0 -27
- package/dist/src/uploader/optimizer/transferUploadOptimizer.d.ts.map +0 -1
- package/dist/src/uploader/optimizer/transferUploadOptimizer.js +0 -169
- package/dist/src/uploader/optimizer/transferUploadOptimizer.js.map +0 -1
- package/dist/src/uploader/optimizer/uploadOptimizer.d.ts +0 -11
- package/dist/src/uploader/optimizer/uploadOptimizer.d.ts.map +0 -1
- package/dist/src/uploader/optimizer/uploadOptimizer.js +0 -2
- package/dist/src/uploader/optimizer/uploadOptimizer.js.map +0 -1
|
@@ -91,19 +91,41 @@ export default class WebApiClient extends WebClientBase {
|
|
|
91
91
|
});
|
|
92
92
|
this.throwIfPayloadNotOk(response.data, true);
|
|
93
93
|
const data = response.data.data;
|
|
94
|
-
const udpData = this.getUdpData(data);
|
|
95
94
|
return {
|
|
96
95
|
transferId: data.transferid,
|
|
97
96
|
transferKey: data.transferkey,
|
|
98
97
|
transferUrl: data.transferurl,
|
|
99
98
|
transferRegion: data.region,
|
|
100
|
-
udp: udpData,
|
|
101
99
|
};
|
|
102
100
|
}
|
|
103
101
|
catch (error) {
|
|
104
102
|
throw this.createApiError(error, `Error initializing a transfer`);
|
|
105
103
|
}
|
|
106
104
|
}
|
|
105
|
+
async registerTransferFiles(transferId, request, abortSignal) {
|
|
106
|
+
try {
|
|
107
|
+
const response = await this.#axiosInstance.post(`transfer/${transferId}/file`, request, {
|
|
108
|
+
signal: abortSignal,
|
|
109
|
+
});
|
|
110
|
+
this.throwIfPayloadNotOk(response.data, true);
|
|
111
|
+
return response.data.data;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
throw this.createApiError(error, `Error registering transfer files`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async ackTransferFiles(transferId, request, abortSignal) {
|
|
118
|
+
try {
|
|
119
|
+
const response = await this.#axiosInstance.post(`transfer/${transferId}/file/ack`, request, {
|
|
120
|
+
signal: abortSignal,
|
|
121
|
+
});
|
|
122
|
+
this.throwIfPayloadNotOk(response.data, true);
|
|
123
|
+
return response.data.data;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
throw this.createApiError(error, `Error acknowledging transfer files`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
107
129
|
async finalizeTransfer(request, abortSignal) {
|
|
108
130
|
try {
|
|
109
131
|
const requestData = { ...request, sourcedetails: this.#sourceDetails };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosInstance } from \"axios\";\nimport axiosRetry from \"axios-retry\";\n\nimport WebClientBase from \"./webClientBase.js\";\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\n\nimport type ApiClient from \"../apiClient.js\";\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\nimport type { FinalizeTransferResponseRaw } from \"../dtos/finalizeTransferResponse.js\";\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\nimport type LoginRequest from \"../dtos/loginRequest.js\";\nimport type LoginResponse from \"../dtos/loginResponse.js\";\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\n\nexport default class WebApiClient extends WebClientBase implements ApiClient {\n #sourceDetails: string;\n #axiosInstance: AxiosInstance;\n\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\n super();\n\n try {\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\n\n this.#sourceDetails = sourceDetails;\n this.#axiosInstance = this.createAxiosInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\n }\n catch (error) {\n throw this.createApiError(error, `Error constructing WebApiClient`);\n }\n }\n\n private createAxiosInstance(baseURL: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): AxiosInstance {\n const clientInstance = axios.create({\n baseURL,\n timeout: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\n withCredentials: true,\n headers: {\n \"x-api-version\": `2.0`,\n source,\n },\n });\n\n axiosRetry(clientInstance, {\n retries: retryLimit,\n retryDelay: retryCount => retryCount * 1000,\n shouldResetTimeout: true,\n retryCondition: error => {\n const isNetworkOrIdempotentRequestError = axiosRetry.isNetworkOrIdempotentRequestError(error);\n const isRetryablePost = error.config?.method === `post`;\n const isTimeoutError = error.code === `ECONNABORTED` && error.message.startsWith(`timeout`);\n\n return isNetworkOrIdempotentRequestError || isRetryablePost || isTimeoutError;\n },\n });\n\n return clientInstance;\n }\n\n setLoginToken(loginToken: string): void {\n try {\n if (!loginToken || loginToken.length === 0)\n throw new Error(`Login token can't be empty`);\n\n this.#axiosInstance.defaults.headers.common.logintoken = loginToken;\n }\n catch (error) {\n throw this.createApiError(error, `Error setting login token`);\n }\n }\n\n clearLoginToken(): void {\n this.#axiosInstance.defaults.headers.common.logintoken = undefined;\n }\n\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<{\n logintoken?: string,\n expired?: boolean,\n }>>(`auth/login`, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n const data = response.data.data!;\n\n if (data.expired)\n throw new Error(`Subscription has expired`);\n\n if (!data.logintoken)\n throw new Error(`Received empty login token`);\n\n return { loginToken: data.logintoken };\n }\n catch (error) {\n throw this.createApiError(error, `Error logging in`);\n }\n }\n\n async logout(abortSignal?: AbortSignal): Promise<void> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`auth/logout`, null, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error logging out`);\n }\n }\n\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\n try {\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\n\n const requestData = { ...apiRequest, sourcedetails: this.#sourceDetails };\n\n const response = await this.#axiosInstance.post<BaseResponse<InitializeTransferResponseRaw>>(`transfer/initialize`, requestData, {\n headers: {\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\n },\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n const data = response.data.data!;\n\n const udpData = this.getUdpData(data);\n\n return {\n transferId: data.transferid,\n transferKey: data.transferkey,\n transferUrl: data.transferurl,\n transferRegion: data.region,\n udp: udpData,\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error initializing a transfer`);\n }\n }\n\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\n try {\n const requestData = { ...request, sourcedetails: this.#sourceDetails };\n\n const response = await this.#axiosInstance.put<BaseResponse<FinalizeTransferResponseRaw>>(`transfer/complete`, requestData, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return {\n downloadUrl: response.data.data!.downloadurl,\n confirmationUrl: response.data.data!.confirmationUrl,\n recipientTrackingLinks: response.data.data!.recipients?.map(recipient => ({\n email: recipient.email,\n downloadLink: recipient.downloadlink,\n })),\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error finalizing a transfer`);\n }\n }\n\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`transfer/${request.transferid}/reset`, null, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error resetting a transfer`);\n }\n }\n\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response = await this.#axiosInstance.put<BaseResponse<undefined>>(`transfer/cancel`, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error canceling a transfer`);\n }\n }\n\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\n try {\n let endpoint = `transfer`;\n\n if (request.transferid)\n endpoint += `/${request.transferid}`;\n\n const params = new URLSearchParams();\n\n if (request.trackid)\n params.append(`trackid`, request.trackid);\n if (request.password)\n params.append(`password`, request.password);\n if (request.fprops)\n params.append(`fprops`, request.fprops.join(`,`));\n if (typeof request.fileslimit !== `undefined`)\n params.append(`fileslimit`, request.fileslimit.toString());\n\n const headers: Record<string, string> = {};\n\n if (request.checkLogintoken === true)\n headers.filemaillogintokencheck = `true`;\n\n const response = await this.#axiosInstance.get<BaseResponse<GetTransferResponse>>(endpoint, {\n params,\n headers,\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return response.data.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\n }\n }\n\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/file`;\n\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\n }\n }\n\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/transfer`;\n\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\n }\n }\n\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\n try {\n const params = new URLSearchParams({\n getforallusers: request.getForAllUsers.toString(),\n from: request.sinceUnixTime.toString(),\n });\n\n for (const portal of request.portals ?? [])\n params.append(`portalId`, portal);\n\n const response = await this.#axiosInstance.get<BaseResponse<GetInboxTransfersResponse>>(`transfer/inbox`, {\n params,\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return response.data.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting inbox transfers`);\n }\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"webApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosInstance } from \"axios\";\nimport axiosRetry from \"axios-retry\";\n\nimport WebClientBase from \"./webClientBase.js\";\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\n\nimport type ApiClient from \"../apiClient.js\";\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\nimport type { FinalizeTransferResponseRaw } from \"../dtos/finalizeTransferResponse.js\";\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\nimport type LoginRequest from \"../dtos/loginRequest.js\";\nimport type LoginResponse from \"../dtos/loginResponse.js\";\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\nimport type { RegisterTransferFilesRequest } from \"../dtos/registerTransferFilesRequest.js\";\nimport type { RegisterTransferFilesResponse } from \"../dtos/registerTransferFilesResponse.js\";\nimport type { AckTransferFilesRequest } from \"../dtos/ackTransferFilesRequest.js\";\nimport type { AckTransferFilesResponse } from \"../dtos/ackTransferFilesResponse.js\";\n\nexport default class WebApiClient extends WebClientBase implements ApiClient {\n #sourceDetails: string;\n #axiosInstance: AxiosInstance;\n\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\n super();\n\n try {\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\n\n this.#sourceDetails = sourceDetails;\n this.#axiosInstance = this.createAxiosInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\n }\n catch (error) {\n throw this.createApiError(error, `Error constructing WebApiClient`);\n }\n }\n\n private createAxiosInstance(baseURL: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): AxiosInstance {\n const clientInstance = axios.create({\n baseURL,\n timeout: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\n withCredentials: true,\n headers: {\n \"x-api-version\": `2.0`,\n source,\n },\n });\n\n axiosRetry(clientInstance, {\n retries: retryLimit,\n retryDelay: retryCount => retryCount * 1000,\n shouldResetTimeout: true,\n retryCondition: error => {\n const isNetworkOrIdempotentRequestError = axiosRetry.isNetworkOrIdempotentRequestError(error);\n const isRetryablePost = error.config?.method === `post`;\n const isTimeoutError = error.code === `ECONNABORTED` && error.message.startsWith(`timeout`);\n\n return isNetworkOrIdempotentRequestError || isRetryablePost || isTimeoutError;\n },\n });\n\n return clientInstance;\n }\n\n setLoginToken(loginToken: string): void {\n try {\n if (!loginToken || loginToken.length === 0)\n throw new Error(`Login token can't be empty`);\n\n this.#axiosInstance.defaults.headers.common.logintoken = loginToken;\n }\n catch (error) {\n throw this.createApiError(error, `Error setting login token`);\n }\n }\n\n clearLoginToken(): void {\n this.#axiosInstance.defaults.headers.common.logintoken = undefined;\n }\n\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<{\n logintoken?: string,\n expired?: boolean,\n }>>(`auth/login`, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n const data = response.data.data!;\n\n if (data.expired)\n throw new Error(`Subscription has expired`);\n\n if (!data.logintoken)\n throw new Error(`Received empty login token`);\n\n return { loginToken: data.logintoken };\n }\n catch (error) {\n throw this.createApiError(error, `Error logging in`);\n }\n }\n\n async logout(abortSignal?: AbortSignal): Promise<void> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`auth/logout`, null, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error logging out`);\n }\n }\n\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\n try {\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\n\n const requestData = { ...apiRequest, sourcedetails: this.#sourceDetails };\n\n const response = await this.#axiosInstance.post<BaseResponse<InitializeTransferResponseRaw>>(`transfer/initialize`, requestData, {\n headers: {\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\n },\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n const data = response.data.data!;\n\n return {\n transferId: data.transferid,\n transferKey: data.transferkey,\n transferUrl: data.transferurl,\n transferRegion: data.region,\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error initializing a transfer`);\n }\n }\n\n async registerTransferFiles(transferId: string, request: RegisterTransferFilesRequest, abortSignal?: AbortSignal): Promise<RegisterTransferFilesResponse> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<RegisterTransferFilesResponse>>(`transfer/${transferId}/file`, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return response.data.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error registering transfer files`);\n }\n }\n\n async ackTransferFiles(transferId: string, request: AckTransferFilesRequest, abortSignal?: AbortSignal): Promise<AckTransferFilesResponse> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<AckTransferFilesResponse>>(`transfer/${transferId}/file/ack`, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return response.data.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error acknowledging transfer files`);\n }\n }\n\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\n try {\n const requestData = { ...request, sourcedetails: this.#sourceDetails };\n\n const response = await this.#axiosInstance.put<BaseResponse<FinalizeTransferResponseRaw>>(`transfer/complete`, requestData, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return {\n downloadUrl: response.data.data!.downloadurl,\n confirmationUrl: response.data.data!.confirmationUrl,\n recipientTrackingLinks: response.data.data!.recipients?.map(recipient => ({\n email: recipient.email,\n downloadLink: recipient.downloadlink,\n })),\n };\n }\n catch (error) {\n throw this.createApiError(error, `Error finalizing a transfer`);\n }\n }\n\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`transfer/${request.transferid}/reset`, null, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error resetting a transfer`);\n }\n }\n\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const response = await this.#axiosInstance.put<BaseResponse<undefined>>(`transfer/cancel`, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error canceling a transfer`);\n }\n }\n\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\n try {\n let endpoint = `transfer`;\n\n if (request.transferid)\n endpoint += `/${request.transferid}`;\n\n const params = new URLSearchParams();\n\n if (request.trackid)\n params.append(`trackid`, request.trackid);\n if (request.password)\n params.append(`password`, request.password);\n if (request.fprops)\n params.append(`fprops`, request.fprops.join(`,`));\n if (typeof request.fileslimit !== `undefined`)\n params.append(`fileslimit`, request.fileslimit.toString());\n\n const headers: Record<string, string> = {};\n\n if (request.checkLogintoken === true)\n headers.filemaillogintokencheck = `true`;\n\n const response = await this.#axiosInstance.get<BaseResponse<GetTransferResponse>>(endpoint, {\n params,\n headers,\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return response.data.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\n }\n }\n\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/file`;\n\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\n }\n }\n\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\n try {\n const endpoint = `download/transfer`;\n\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, false);\n }\n catch (error) {\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\n }\n }\n\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\n try {\n const params = new URLSearchParams({\n getforallusers: request.getForAllUsers.toString(),\n from: request.sinceUnixTime.toString(),\n });\n\n for (const portal of request.portals ?? [])\n params.append(`portalId`, portal);\n\n const response = await this.#axiosInstance.get<BaseResponse<GetInboxTransfersResponse>>(`transfer/inbox`, {\n params,\n signal: abortSignal,\n });\n\n this.throwIfPayloadNotOk(response.data, true);\n\n return response.data.data!;\n }\n catch (error) {\n throw this.createApiError(error, `Error getting inbox transfers`);\n }\n }\n}"]}
|
|
@@ -2,12 +2,10 @@ import type FileServerUploadClient from "../../../uploader/api/fileServerUploadC
|
|
|
2
2
|
import type FileServerClientFactory from "../fileServerClientFactory.js";
|
|
3
3
|
import type FileServerDownloadClient from "../../../downloader/api/fileServerDownloadClient.js";
|
|
4
4
|
import type DownloadOptions from "../../../downloader/downloadOptions.js";
|
|
5
|
-
import type FileServerUdpClient from "../../../uploader/api/fileServerUdpClient.js";
|
|
6
5
|
export default class WebFileServerClientFactory implements FileServerClientFactory {
|
|
7
6
|
#private;
|
|
8
7
|
constructor(source: string, sourceDetails: string, idleTimeoutInMs: number, retryLimit: number);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
createFileServerTcpUploadClient(baseUploadUrl: string, transferId: string, transferKey: string, fileName: string, fileDestinationPath: string, fileTotalSize: number): FileServerUploadClient;
|
|
8
|
+
createFileServerDownloadClient(_downloadUrl: string, _start: number | null, _end: number | null, _transferId: string, _fileName: string, _options: DownloadOptions): FileServerDownloadClient;
|
|
9
|
+
createFileServerUploadClient(baseUploadUrl: string, transferId: string, transferKey: string, fileName: string, fileDestinationPath: string, fileTotalSize: number, fileId: string | undefined): FileServerUploadClient;
|
|
12
10
|
}
|
|
13
11
|
//# sourceMappingURL=webFileServerClientFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webFileServerClientFactory.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/web/webFileServerClientFactory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,sBAAsB,MAAM,iDAAiD,CAAC;AAC1F,OAAO,KAAK,uBAAuB,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,wBAAwB,MAAM,qDAAqD,CAAC;AAChG,OAAO,KAAK,eAAe,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"webFileServerClientFactory.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/web/webFileServerClientFactory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,sBAAsB,MAAM,iDAAiD,CAAC;AAC1F,OAAO,KAAK,uBAAuB,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,wBAAwB,MAAM,qDAAqD,CAAC;AAChG,OAAO,KAAK,eAAe,MAAM,wCAAwC,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,0BAA2B,YAAW,uBAAuB;;gBAMlE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAOvF,8BAA8B,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,wBAAwB;IAI7L,4BAA4B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,sBAAsB;CAGhO"}
|
|
@@ -11,14 +11,11 @@ export default class WebFileServerClientFactory {
|
|
|
11
11
|
this.#idleTimeoutInMs = idleTimeoutInMs;
|
|
12
12
|
this.#retryLimit = retryLimit;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
throw new Error(`UDP is not implemented for WEB`);
|
|
16
|
-
}
|
|
17
|
-
createFileServerTcpDownloadClient(_downloadUrl, _start, _end, _transferId, _fileName, _options) {
|
|
14
|
+
createFileServerDownloadClient(_downloadUrl, _start, _end, _transferId, _fileName, _options) {
|
|
18
15
|
throw new Error(`Downloader is not implemented for WEB`);
|
|
19
16
|
}
|
|
20
|
-
|
|
21
|
-
return new WebFileServerUploadClient(baseUploadUrl, transferId, transferKey, fileName, fileDestinationPath, fileTotalSize, this.#source, this.#sourceDetails, this.#idleTimeoutInMs, this.#retryLimit);
|
|
17
|
+
createFileServerUploadClient(baseUploadUrl, transferId, transferKey, fileName, fileDestinationPath, fileTotalSize, fileId) {
|
|
18
|
+
return new WebFileServerUploadClient(baseUploadUrl, transferId, transferKey, fileName, fileDestinationPath, fileTotalSize, fileId, this.#source, this.#sourceDetails, this.#idleTimeoutInMs, this.#retryLimit);
|
|
22
19
|
}
|
|
23
20
|
}
|
|
24
21
|
//# sourceMappingURL=webFileServerClientFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webFileServerClientFactory.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webFileServerClientFactory.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,yBAAyB,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"webFileServerClientFactory.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webFileServerClientFactory.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,yBAAyB,MAAM,wDAAwD,CAAC;AAO/F,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC3C,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,gBAAgB,CAAS;IACzB,WAAW,CAAS;IAEpB,YAAY,MAAc,EAAE,aAAqB,EAAE,eAAuB,EAAE,UAAkB;QAC1F,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAEM,8BAA8B,CAAC,YAAoB,EAAE,MAAqB,EAAE,IAAmB,EAAE,WAAmB,EAAE,SAAiB,EAAE,QAAyB;QACrK,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC;IAEM,4BAA4B,CAAC,aAAqB,EAAE,UAAkB,EAAE,WAAmB,EAAE,QAAgB,EAAE,mBAA2B,EAAE,aAAqB,EAAE,MAA0B;QAChM,OAAO,IAAI,yBAAyB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnN,CAAC;CACJ","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport WebFileServerUploadClient from \"../../../uploader/api/web/webFileServerUploadClient.js\";\n\nimport type FileServerUploadClient from \"../../../uploader/api/fileServerUploadClient.js\";\nimport type FileServerClientFactory from \"../fileServerClientFactory.js\";\nimport type FileServerDownloadClient from \"../../../downloader/api/fileServerDownloadClient.js\";\nimport type DownloadOptions from \"../../../downloader/downloadOptions.js\";\n\nexport default class WebFileServerClientFactory implements FileServerClientFactory {\n #source: string;\n #sourceDetails: string;\n #idleTimeoutInMs: number;\n #retryLimit: number;\n\n constructor(source: string, sourceDetails: string, idleTimeoutInMs: number, retryLimit: number) {\n this.#source = source;\n this.#sourceDetails = sourceDetails;\n this.#idleTimeoutInMs = idleTimeoutInMs;\n this.#retryLimit = retryLimit;\n }\n\n public createFileServerDownloadClient(_downloadUrl: string, _start: number | null, _end: number | null, _transferId: string, _fileName: string, _options: DownloadOptions): FileServerDownloadClient {\n throw new Error(`Downloader is not implemented for WEB`);\n }\n\n public createFileServerUploadClient(baseUploadUrl: string, transferId: string, transferKey: string, fileName: string, fileDestinationPath: string, fileTotalSize: number, fileId: string | undefined): FileServerUploadClient {\n return new WebFileServerUploadClient(baseUploadUrl, transferId, transferKey, fileName, fileDestinationPath, fileTotalSize, fileId, this.#source, this.#sourceDetails, this.#idleTimeoutInMs, this.#retryLimit);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeFileSystemService.d.ts","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeFileSystemService.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,qBAAsB,YAAW,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"nodeFileSystemService.d.ts","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeFileSystemService.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,qBAAsB,YAAW,iBAAiB;;IAkB7D,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM/D,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,EAAE,KAAK,GAAE,WAAW,GAAG,SAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAI3D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,EAAE,KAAK,GAAE,WAAW,GAAG,SAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAY7E,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAmBvC,kBAAkB;IA+B1B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B1E,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU9C,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjE,QAAQ,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM;IAIzC,4BAA4B,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,GAAG,SAAS;IAoBzE,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAI3C,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAI9C,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;CAOvE"}
|
|
@@ -6,9 +6,7 @@ export default class NodeFileSystemService {
|
|
|
6
6
|
const paths = await fs.readdir(folder);
|
|
7
7
|
for (const itemPath of paths) {
|
|
8
8
|
const abs = path.join(folder, itemPath);
|
|
9
|
-
// eslint-disable-next-line no-await-in-loop
|
|
10
9
|
if ((await fs.stat(abs)).isDirectory())
|
|
11
|
-
// eslint-disable-next-line no-await-in-loop
|
|
12
10
|
await this.#readDirRecursive(abs, accumulator);
|
|
13
11
|
else
|
|
14
12
|
accumulator.push(abs);
|
|
@@ -74,7 +72,6 @@ export default class NodeFileSystemService {
|
|
|
74
72
|
if (NodeFileSystemService.#isFolderTheRoot(dir))
|
|
75
73
|
continue; // the requested directory is a root directory (e.g. F:\ or /) - consider it as existing
|
|
76
74
|
try {
|
|
77
|
-
// eslint-disable-next-line no-await-in-loop
|
|
78
75
|
await fs.mkdir(dir);
|
|
79
76
|
}
|
|
80
77
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeFileSystemService.js","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeFileSystemService.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs/promises';\nimport path from 'path';\nimport DownloadErrorCode from '../../../downloader/dtos/downloadErrorCode.js';\nimport type FileSystemService from \"../fileSystemService.js\";\nimport type ParsedPath from '../parsedPath.js';\n\nexport default class NodeFileSystemService implements FileSystemService {\n static async #readDirRecursive(folder: string, accumulator: Array<string>) {\n const paths = await fs.readdir(folder);\n for (const itemPath of paths) {\n const abs = path.join(folder, itemPath);\n // eslint-disable-next-line no-await-in-loop\n if ((await fs.stat(abs)).isDirectory())\n // eslint-disable-next-line no-await-in-loop\n await this.#readDirRecursive(abs, accumulator);\n else\n accumulator.push(abs);\n }\n }\n\n static #isFolderTheRoot(folder: string): boolean {\n const thisOne = path.normalize(folder);\n const oneUp = path.join(folder, `..`);\n return oneUp === thisOne || oneUp === path.sep;\n }\n\n async getAllFilePathsRecursive(folderPath: string): Promise<string[]> {\n const files = new Array<string>();\n await NodeFileSystemService.#readDirRecursive(folderPath, files);\n return files;\n }\n\n async writeFile(filePath: string, data: string, encoding: BufferEncoding = `utf8`, abort: AbortSignal | undefined = undefined): Promise<void> {\n await fs.writeFile(filePath, data, { encoding, flag: `w`, signal: abort });\n }\n\n async getAllFilePaths(folderPath: string): Promise<Array<string>> {\n return await fs.readdir(folderPath);\n }\n\n async readFileAsString(filePath: string, encoding: BufferEncoding = `utf8`, abort: AbortSignal | undefined = undefined): Promise<string> {\n return await fs.readFile(filePath, { encoding, flag: `r`, signal: abort });\n }\n\n async pathExists(thePath: string, checkReadWriteAccess?: boolean): Promise<boolean> {\n try {\n // eslint-disable-next-line no-bitwise\n const mode = checkReadWriteAccess ? (fs.constants.W_OK | fs.constants.R_OK) : fs.constants.F_OK;\n await fs.access(thePath, mode);\n return true;\n }\n catch {\n return false;\n }\n }\n\n async createFolder(folderPath: string): Promise<void> {\n if (NodeFileSystemService.#isFolderTheRoot(folderPath))\n // the requested directory is a root directory (e.g. F:\\ or /) - consider it as existing\n return;\n\n try {\n await fs.mkdir(folderPath, { recursive: true });\n }\n catch (err) {\n const dirErr = err as Error;\n\n if (dirErr && dirErr.code === `EEXIST`)\n // EEXIST error is OK - the requested directory already exists\n return;\n\n await this.mkdirRecursiveSafe(folderPath);\n }\n }\n\n private async mkdirRecursiveSafe(target: string): Promise<void> {\n const foldersChain: string[] = [];\n\n let currentFolder = target;\n\n while (true) {\n foldersChain.push(currentFolder);\n\n const parent = path.dirname(currentFolder);\n\n if (parent === currentFolder)\n break;\n\n currentFolder = parent;\n }\n\n foldersChain.reverse();\n\n for (const dir of foldersChain) {\n if (NodeFileSystemService.#isFolderTheRoot(dir))\n continue; // the requested directory is a root directory (e.g. F:\\ or /) - consider it as existing\n try {\n // eslint-disable-next-line no-await-in-loop\n await fs.mkdir(dir);\n }\n catch (err: any) {\n if (err?.code !== `EEXIST`) // EEXIST error is OK - the requested directory already exists\n throw err;\n }\n }\n }\n\n async createFile(filePath: string, overwriteExisting: boolean): Promise<boolean> {\n // Check if file folder exists and create if it doesn't\n const folder = path.dirname(filePath);\n await this.createFolder(folder);\n\n // Open the file for writing\n // overwriteExisting === true --> 'w' creates the file (if it doesn't exist) or truncates it (if it exists)\n // overwriteExisting === false --> 'wx' creates the file (if it doesn't exist) or fails (if it exists)\n const openMode = overwriteExisting ? `w` : `wx`;\n let handle: fs.FileHandle | null = null;\n try {\n try {\n handle = await fs.open(filePath, openMode);\n }\n catch (err) {\n const fileErr = err as Error;\n if (fileErr && fileErr.code === `EEXIST`)\n return false;\n\n throw err;\n }\n\n return true;\n }\n finally {\n if (handle !== null)\n await handle.close();\n }\n }\n\n async deleteFile(filePath: string): Promise<boolean> {\n try {\n await fs.rm(filePath);\n return true;\n }\n catch {\n return false;\n }\n }\n\n async folderIsEmpty(folderPath: string): Promise<boolean> {\n const contents = await fs.readdir(folderPath);\n return contents.length === 0;\n }\n\n async deleteFolder(folderPath: string): Promise<boolean> {\n return (await fs.rm(folderPath, { recursive: true, force: true })) === undefined;\n }\n\n async getFileSize(filePath: string): Promise<number> {\n const stat = await fs.stat(filePath);\n return stat.size;\n }\n\n async truncateFile(filePath: string, size: number): Promise<void> {\n await fs.truncate(filePath, size);\n }\n\n async renameFile(oldPath: string, newPath: string): Promise<void> {\n await fs.rename(oldPath, newPath);\n }\n\n async getAvailableDiskSpace(pathToCheck: string): Promise<bigint> {\n const stats = await fs.statfs(pathToCheck, { bigint: true });\n return stats.bavail * stats.bsize;\n }\n\n pathJoin(...paths: Array<string>): string {\n return path.join(...paths);\n }\n\n fileErrorToDownloadErrorCode(error: Error): DownloadErrorCode | undefined {\n if (NodeFileSystemService.#extractErrorCode(error) === `ENOSPC`)\n return DownloadErrorCode.DiskFull;\n\n return undefined;\n }\n\n static #extractErrorCode(error: unknown): string | undefined {\n let current = error as { code?: string, cause?: unknown } | undefined;\n\n for (let depth = 0; depth < 8 && current; depth++) {\n if (typeof current.code === `string`)\n return current.code;\n\n current = current.cause as { code?: string, cause?: unknown } | undefined;\n }\n\n return undefined;\n }\n\n parseFilePath(filePath: string): ParsedPath {\n return path.parse(filePath);\n }\n\n formatFilePath(parsedPath: ParsedPath): string {\n return path.format(parsedPath);\n }\n\n replaceFilenameInPath(filePath: string, newFileName: string): string {\n const parsed = path.parse(filePath);\n return path.format({\n dir: parsed.dir,\n base: newFileName,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nodeFileSystemService.js","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeFileSystemService.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs/promises';\nimport path from 'path';\nimport DownloadErrorCode from '../../../downloader/dtos/downloadErrorCode.js';\nimport type FileSystemService from \"../fileSystemService.js\";\nimport type ParsedPath from '../parsedPath.js';\n\nexport default class NodeFileSystemService implements FileSystemService {\n static async #readDirRecursive(folder: string, accumulator: Array<string>) {\n const paths = await fs.readdir(folder);\n for (const itemPath of paths) {\n const abs = path.join(folder, itemPath);\n if ((await fs.stat(abs)).isDirectory())\n await this.#readDirRecursive(abs, accumulator);\n else\n accumulator.push(abs);\n }\n }\n\n static #isFolderTheRoot(folder: string): boolean {\n const thisOne = path.normalize(folder);\n const oneUp = path.join(folder, `..`);\n return oneUp === thisOne || oneUp === path.sep;\n }\n\n async getAllFilePathsRecursive(folderPath: string): Promise<string[]> {\n const files = new Array<string>();\n await NodeFileSystemService.#readDirRecursive(folderPath, files);\n return files;\n }\n\n async writeFile(filePath: string, data: string, encoding: BufferEncoding = `utf8`, abort: AbortSignal | undefined = undefined): Promise<void> {\n await fs.writeFile(filePath, data, { encoding, flag: `w`, signal: abort });\n }\n\n async getAllFilePaths(folderPath: string): Promise<Array<string>> {\n return await fs.readdir(folderPath);\n }\n\n async readFileAsString(filePath: string, encoding: BufferEncoding = `utf8`, abort: AbortSignal | undefined = undefined): Promise<string> {\n return await fs.readFile(filePath, { encoding, flag: `r`, signal: abort });\n }\n\n async pathExists(thePath: string, checkReadWriteAccess?: boolean): Promise<boolean> {\n try {\n // eslint-disable-next-line no-bitwise\n const mode = checkReadWriteAccess ? (fs.constants.W_OK | fs.constants.R_OK) : fs.constants.F_OK;\n await fs.access(thePath, mode);\n return true;\n }\n catch {\n return false;\n }\n }\n\n async createFolder(folderPath: string): Promise<void> {\n if (NodeFileSystemService.#isFolderTheRoot(folderPath))\n // the requested directory is a root directory (e.g. F:\\ or /) - consider it as existing\n return;\n\n try {\n await fs.mkdir(folderPath, { recursive: true });\n }\n catch (err) {\n const dirErr = err as Error;\n\n if (dirErr && dirErr.code === `EEXIST`)\n // EEXIST error is OK - the requested directory already exists\n return;\n\n await this.mkdirRecursiveSafe(folderPath);\n }\n }\n\n private async mkdirRecursiveSafe(target: string): Promise<void> {\n const foldersChain: string[] = [];\n\n let currentFolder = target;\n\n while (true) {\n foldersChain.push(currentFolder);\n\n const parent = path.dirname(currentFolder);\n\n if (parent === currentFolder)\n break;\n\n currentFolder = parent;\n }\n\n foldersChain.reverse();\n\n for (const dir of foldersChain) {\n if (NodeFileSystemService.#isFolderTheRoot(dir))\n continue; // the requested directory is a root directory (e.g. F:\\ or /) - consider it as existing\n try {\n await fs.mkdir(dir);\n }\n catch (err: any) {\n if (err?.code !== `EEXIST`) // EEXIST error is OK - the requested directory already exists\n throw err;\n }\n }\n }\n\n async createFile(filePath: string, overwriteExisting: boolean): Promise<boolean> {\n // Check if file folder exists and create if it doesn't\n const folder = path.dirname(filePath);\n await this.createFolder(folder);\n\n // Open the file for writing\n // overwriteExisting === true --> 'w' creates the file (if it doesn't exist) or truncates it (if it exists)\n // overwriteExisting === false --> 'wx' creates the file (if it doesn't exist) or fails (if it exists)\n const openMode = overwriteExisting ? `w` : `wx`;\n let handle: fs.FileHandle | null = null;\n try {\n try {\n handle = await fs.open(filePath, openMode);\n }\n catch (err) {\n const fileErr = err as Error;\n if (fileErr && fileErr.code === `EEXIST`)\n return false;\n\n throw err;\n }\n\n return true;\n }\n finally {\n if (handle !== null)\n await handle.close();\n }\n }\n\n async deleteFile(filePath: string): Promise<boolean> {\n try {\n await fs.rm(filePath);\n return true;\n }\n catch {\n return false;\n }\n }\n\n async folderIsEmpty(folderPath: string): Promise<boolean> {\n const contents = await fs.readdir(folderPath);\n return contents.length === 0;\n }\n\n async deleteFolder(folderPath: string): Promise<boolean> {\n return (await fs.rm(folderPath, { recursive: true, force: true })) === undefined;\n }\n\n async getFileSize(filePath: string): Promise<number> {\n const stat = await fs.stat(filePath);\n return stat.size;\n }\n\n async truncateFile(filePath: string, size: number): Promise<void> {\n await fs.truncate(filePath, size);\n }\n\n async renameFile(oldPath: string, newPath: string): Promise<void> {\n await fs.rename(oldPath, newPath);\n }\n\n async getAvailableDiskSpace(pathToCheck: string): Promise<bigint> {\n const stats = await fs.statfs(pathToCheck, { bigint: true });\n return stats.bavail * stats.bsize;\n }\n\n pathJoin(...paths: Array<string>): string {\n return path.join(...paths);\n }\n\n fileErrorToDownloadErrorCode(error: Error): DownloadErrorCode | undefined {\n if (NodeFileSystemService.#extractErrorCode(error) === `ENOSPC`)\n return DownloadErrorCode.DiskFull;\n\n return undefined;\n }\n\n static #extractErrorCode(error: unknown): string | undefined {\n let current = error as { code?: string, cause?: unknown } | undefined;\n\n for (let depth = 0; depth < 8 && current; depth++) {\n if (typeof current.code === `string`)\n return current.code;\n\n current = current.cause as { code?: string, cause?: unknown } | undefined;\n }\n\n return undefined;\n }\n\n parseFilePath(filePath: string): ParsedPath {\n return path.parse(filePath);\n }\n\n formatFilePath(parsedPath: ParsedPath): string {\n return path.format(parsedPath);\n }\n\n replaceFilenameInPath(filePath: string, newFileName: string): string {\n const parsed = path.parse(filePath);\n return path.format({\n dir: parsed.dir,\n base: newFileName,\n });\n }\n}\n"]}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import type { PauseSignal } from "../uploader/pauseController.js";
|
|
2
|
-
export default function mergeAbortAndPauseSignals(pauseSignal: PauseSignal, abortSignal: AbortSignal):
|
|
2
|
+
export default function mergeAbortAndPauseSignals(pauseSignal: PauseSignal, abortSignal: AbortSignal): MergedAbortAndPauseController;
|
|
3
|
+
interface MergedAbortAndPauseController {
|
|
4
|
+
signal: AbortSignal;
|
|
5
|
+
dispose: () => void;
|
|
6
|
+
}
|
|
7
|
+
export type { MergedAbortAndPauseController };
|
|
3
8
|
//# sourceMappingURL=mergeAbortAndPauseSignals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAbortAndPauseSignals.d.ts","sourceRoot":"","sources":["../../../src/utils/mergeAbortAndPauseSignals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"mergeAbortAndPauseSignals.d.ts","sourceRoot":"","sources":["../../../src/utils/mergeAbortAndPauseSignals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,6BAA6B,CA6BnI;AAED,UAAU,6BAA6B;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,YAAY,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
export default function mergeAbortAndPauseSignals(pauseSignal, abortSignal) {
|
|
2
|
-
if (pauseSignal.paused || abortSignal.aborted)
|
|
3
|
-
return AbortSignal.abort();
|
|
4
2
|
const mergedController = new AbortController();
|
|
3
|
+
if (pauseSignal.paused || abortSignal.aborted) {
|
|
4
|
+
mergedController.abort();
|
|
5
|
+
return { signal: mergedController.signal, dispose: () => { } };
|
|
6
|
+
}
|
|
5
7
|
const abortMergedController = () => {
|
|
6
8
|
mergedController.abort();
|
|
7
9
|
};
|
|
8
|
-
|
|
9
|
-
abortSignal.addEventListener(`abort`, abortMergedController);
|
|
10
|
-
mergedController.signal.addEventListener(`abort`, () => {
|
|
10
|
+
const removeSourceListeners = () => {
|
|
11
11
|
pauseSignal.removeEventListener(`pause`, abortMergedController);
|
|
12
12
|
abortSignal.removeEventListener(`abort`, abortMergedController);
|
|
13
|
-
}
|
|
14
|
-
|
|
13
|
+
};
|
|
14
|
+
pauseSignal.addEventListener(`pause`, abortMergedController);
|
|
15
|
+
abortSignal.addEventListener(`abort`, abortMergedController);
|
|
16
|
+
mergedController.signal.addEventListener(`abort`, removeSourceListeners);
|
|
17
|
+
const dispose = () => {
|
|
18
|
+
mergedController.abort();
|
|
19
|
+
removeSourceListeners();
|
|
20
|
+
};
|
|
21
|
+
return { signal: mergedController.signal, dispose };
|
|
15
22
|
}
|
|
16
23
|
//# sourceMappingURL=mergeAbortAndPauseSignals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAbortAndPauseSignals.js","sourceRoot":"","sources":["../../../src/utils/mergeAbortAndPauseSignals.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,WAAwB,EAAE,WAAwB;IAChG,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"mergeAbortAndPauseSignals.js","sourceRoot":"","sources":["../../../src/utils/mergeAbortAndPauseSignals.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,WAAwB,EAAE,WAAwB;IAChG,MAAM,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;IAE/C,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QAC5C,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAEzB,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAChE,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAC7D,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAE7D,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,qBAAqB,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACxD,CAAC","sourcesContent":["import type { PauseSignal } from \"../uploader/pauseController.js\";\n\nexport default function mergeAbortAndPauseSignals(pauseSignal: PauseSignal, abortSignal: AbortSignal): MergedAbortAndPauseController {\n const mergedController = new AbortController();\n\n if (pauseSignal.paused || abortSignal.aborted) {\n mergedController.abort();\n\n return { signal: mergedController.signal, dispose: () => { } };\n }\n\n const abortMergedController = () => {\n mergedController.abort();\n };\n\n const removeSourceListeners = () => {\n pauseSignal.removeEventListener(`pause`, abortMergedController);\n abortSignal.removeEventListener(`abort`, abortMergedController);\n };\n\n pauseSignal.addEventListener(`pause`, abortMergedController);\n abortSignal.addEventListener(`abort`, abortMergedController);\n\n mergedController.signal.addEventListener(`abort`, removeSourceListeners);\n\n const dispose = () => {\n mergedController.abort();\n removeSourceListeners();\n };\n\n return { signal: mergedController.signal, dispose };\n}\n\ninterface MergedAbortAndPauseController {\n signal: AbortSignal;\n dispose: () => void;\n}\n\nexport type { MergedAbortAndPauseController };"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseAll.d.ts","sourceRoot":"","sources":["../../../src/utils/promiseAll.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promiseAll.d.ts","sourceRoot":"","sources":["../../../src/utils/promiseAll.ts"],"names":[],"mappings":"AAGA,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhF;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAYlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseAll.js","sourceRoot":"","sources":["../../../src/utils/promiseAll.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"promiseAll.js","sourceRoot":"","sources":["../../../src/utils/promiseAll.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,uBAAuB,GAAG,kBAAkB,GAAG,CAAC,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAI,QAAsB;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAChE,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAI,QAAsB;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAChE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,QAAsB;IAChE,MAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC","sourcesContent":["const MAX_PROMISES_COUNT = 2_000_000;\nconst SAFE_MAX_PROMISES_COUNT = MAX_PROMISES_COUNT / 3;\n\nexport async function promiseAllSettled<T>(promises: Promise<T>[]): Promise<void> {\n for (let i = 0; i < promises.length; i += SAFE_MAX_PROMISES_COUNT) {\n const subArray = promises.slice(i, i + SAFE_MAX_PROMISES_COUNT);\n await Promise.allSettled(subArray);\n }\n}\n\nexport async function promiseAll<T>(promises: Promise<T>[]): Promise<void> {\n for (let i = 0; i < promises.length; i += SAFE_MAX_PROMISES_COUNT) {\n const subArray = promises.slice(i, i + SAFE_MAX_PROMISES_COUNT);\n await Promise.all(subArray);\n }\n}\n\nexport async function promiseAllDeprecated<T>(promises: Promise<T>[]): Promise<T[]> {\n const results: T[] = [];\n\n for (let i = 0; i < promises.length; i += SAFE_MAX_PROMISES_COUNT) {\n const subArray = promises.slice(i, i + SAFE_MAX_PROMISES_COUNT);\n const subArrayResults = await Promise.all(subArray);\n\n for (let j = 0; j < subArrayResults.length; j++)\n results.push(subArrayResults[j]);\n }\n\n return results;\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "filemail-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.2.0",
|
|
4
4
|
"description": "Library for transferring files to and from Filemail.com",
|
|
5
5
|
"author": "Filemail AS",
|
|
6
6
|
"license": "BSD-3-Clause",
|
|
@@ -63,7 +63,6 @@
|
|
|
63
63
|
"axios-retry": "^4.5.0",
|
|
64
64
|
"got": "^14.0.0",
|
|
65
65
|
"lodash.throttle": "^4.1.1",
|
|
66
|
-
"promisified-udp-client": "^1.0.0",
|
|
67
66
|
"spark-md5": "^3.0.2",
|
|
68
67
|
"tap-tc": "^4.4.4",
|
|
69
68
|
"uuid": "^13.0.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handshakeRequest.d.ts","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/handshakeRequest.ts"],"names":[],"mappings":"AAAA,UAAU,gBAAgB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handshakeRequest.js","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/handshakeRequest.ts"],"names":[],"mappings":"","sourcesContent":["interface HandshakeRequest {\n transferKey: string,\n transferId: string,\n}\n\nexport default HandshakeRequest;"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handshakeResponse.d.ts","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/handshakeResponse.ts"],"names":[],"mappings":"AAAA,UAAU,iBAAiB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handshakeResponse.js","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/handshakeResponse.ts"],"names":[],"mappings":"","sourcesContent":["interface HandshakeResponse {\n sessionGuid: string,\n aesKey: Buffer,\n}\n\nexport default HandshakeResponse;"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pingResponse.d.ts","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/pingResponse.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACrB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pingResponse.js","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/pingResponse.ts"],"names":[],"mappings":"","sourcesContent":["interface LatencyResponse {\n latencyInMs: number;\n}\n\nexport default LatencyResponse;"]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
interface SendChunkRequest {
|
|
2
|
-
sessionGuid: string;
|
|
3
|
-
fileSizeInBytes: number;
|
|
4
|
-
chunkStartPosition: number;
|
|
5
|
-
aesKey: Uint8Array;
|
|
6
|
-
fileDestinationPathInTransfer: string;
|
|
7
|
-
fileName: string;
|
|
8
|
-
}
|
|
9
|
-
export default SendChunkRequest;
|
|
10
|
-
//# sourceMappingURL=sendChunkRequest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendChunkRequest.d.ts","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/sendChunkRequest.ts"],"names":[],"mappings":"AAAA,UAAU,gBAAgB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,6BAA6B,EAAE,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sendChunkRequest.js","sourceRoot":"","sources":["../../../../../src/uploader/api/dtos/sendChunkRequest.ts"],"names":[],"mappings":"","sourcesContent":["interface SendChunkRequest {\n sessionGuid: string,\n fileSizeInBytes: number,\n chunkStartPosition: number,\n aesKey: Uint8Array,\n fileDestinationPathInTransfer: string,\n fileName: string,\n}\n\nexport default SendChunkRequest;"]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { RemoteInfo } from 'dgram';
|
|
2
|
-
import type LatencyResponse from "./dtos/pingResponse.js";
|
|
3
|
-
import type HandshakeRequest from './dtos/handshakeRequest.js';
|
|
4
|
-
import type SendChunkRequest from './dtos/sendChunkRequest.js';
|
|
5
|
-
import type HandshakeResponse from './dtos/handshakeResponse.js';
|
|
6
|
-
import type ChunkStreamProvider from '../../utils/fileSystem/chunkStreamProvider.js';
|
|
7
|
-
interface FileServerUdpClient {
|
|
8
|
-
addMessageListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
9
|
-
removeMessageListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
10
|
-
addErrorListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
11
|
-
removeErrorListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
12
|
-
connect(): Promise<void>;
|
|
13
|
-
close(): Promise<void>;
|
|
14
|
-
ping(): Promise<LatencyResponse>;
|
|
15
|
-
handshake(request: HandshakeRequest): Promise<HandshakeResponse>;
|
|
16
|
-
sendChunk(request: SendChunkRequest, chunkStreamProvider: ChunkStreamProvider): Promise<LatencyResponse>;
|
|
17
|
-
}
|
|
18
|
-
export default FileServerUdpClient;
|
|
19
|
-
//# sourceMappingURL=fileServerUdpClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fileServerUdpClient.d.ts","sourceRoot":"","sources":["../../../../src/uploader/api/fileServerUdpClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,mBAAmB,MAAM,+CAA+C,CAAC;AAErF,UAAU,mBAAmB;IACzB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7E,qBAAqB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAChF,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3E,mBAAmB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5G;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fileServerUdpClient.js","sourceRoot":"","sources":["../../../../src/uploader/api/fileServerUdpClient.ts"],"names":[],"mappings":"","sourcesContent":["import type { RemoteInfo } from 'dgram';\n\nimport type LatencyResponse from \"./dtos/pingResponse.js\";\nimport type HandshakeRequest from './dtos/handshakeRequest.js';\nimport type SendChunkRequest from './dtos/sendChunkRequest.js';\nimport type HandshakeResponse from './dtos/handshakeResponse.js';\nimport type ChunkStreamProvider from '../../utils/fileSystem/chunkStreamProvider.js';\n\ninterface FileServerUdpClient {\n addMessageListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;\n removeMessageListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;\n addErrorListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;\n removeErrorListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;\n connect(): Promise<void>;\n close(): Promise<void>;\n ping(): Promise<LatencyResponse>;\n handshake(request: HandshakeRequest): Promise<HandshakeResponse>;\n sendChunk(request: SendChunkRequest, chunkStreamProvider: ChunkStreamProvider): Promise<LatencyResponse>;\n}\n\nexport default FileServerUdpClient;"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { RemoteInfo } from 'dgram';
|
|
2
|
-
import type LatencyResponse from "../dtos/pingResponse.js";
|
|
3
|
-
import type HandshakeRequest from '../dtos/handshakeRequest.js';
|
|
4
|
-
import type SendChunkRequest from '../dtos/sendChunkRequest.js';
|
|
5
|
-
import type FileServerUdpClient from '../fileServerUdpClient.js';
|
|
6
|
-
import type HandshakeResponse from '../dtos/handshakeResponse.js';
|
|
7
|
-
import type ChunkStreamProvider from '../../../utils/fileSystem/chunkStreamProvider.js';
|
|
8
|
-
export default class NodeFileServerUdpClient implements FileServerUdpClient {
|
|
9
|
-
#private;
|
|
10
|
-
constructor(address: string, port: number, requestTimeout: number, retries: number, abortSignal?: AbortSignal, retryDelay?: number);
|
|
11
|
-
addMessageListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
12
|
-
removeMessageListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
13
|
-
addErrorListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
14
|
-
removeErrorListener(listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
15
|
-
connect(): Promise<void>;
|
|
16
|
-
close(): Promise<void>;
|
|
17
|
-
private retryMechanism;
|
|
18
|
-
ping(): Promise<LatencyResponse>;
|
|
19
|
-
handshake(request: HandshakeRequest): Promise<HandshakeResponse>;
|
|
20
|
-
sendChunk(request: SendChunkRequest, chunkStreamProvider: ChunkStreamProvider): Promise<LatencyResponse>;
|
|
21
|
-
private isWrappedCreatingFileReadStreamException;
|
|
22
|
-
private pingCall;
|
|
23
|
-
private createPingRequest;
|
|
24
|
-
private createLatencyResponse;
|
|
25
|
-
private handshakeCall;
|
|
26
|
-
private generateAes256Key;
|
|
27
|
-
private createHandshakeRequest;
|
|
28
|
-
private transferKeyToGuid;
|
|
29
|
-
private publicRsaEncrypt;
|
|
30
|
-
private createHandshakeResponse;
|
|
31
|
-
private sendChunkCall;
|
|
32
|
-
private readStreamToEnd;
|
|
33
|
-
private createSendChunkRequest;
|
|
34
|
-
private aesEncrypt;
|
|
35
|
-
private makeCall;
|
|
36
|
-
private isAckResponse;
|
|
37
|
-
private isAck;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=nodeFileServerUdpClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nodeFileServerUdpClient.d.ts","sourceRoot":"","sources":["../../../../../src/uploader/api/node/nodeFileServerUdpClient.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAUxC,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,iBAAiB,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,mBAAmB,MAAM,kDAAkD,CAAC;AAiBxF,MAAM,CAAC,OAAO,OAAO,uBAAwB,YAAW,mBAAmB;;gBAY3D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,UAAU,GAAE,MAAa;IAWxI,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI;IAIrE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI;IAIxE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI;IAInE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI;IAIhE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,cAAc;IAsBtB,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAIhC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIhE,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgB9G,OAAO,CAAC,wCAAwC;YAIlC,QAAQ;IAQtB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,qBAAqB;YAMf,aAAa;IAU3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,uBAAuB;YAOjB,aAAa;YAWb,eAAe;IA4B7B,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,UAAU;YAaJ,QAAQ;IA+CtB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,KAAK;CAIhB"}
|