filemail-sdk 9.4.10 → 10.0.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/client/downloader/downloaderCore.js +1 -1
- package/dist/src/client/downloader/downloaderCore.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 +1 -0
- package/dist/src/client/uploader/transferUploaderBase.d.ts.map +1 -1
- package/dist/src/client/uploader/transferUploaderBase.js +23 -28
- 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/chunkDownloader.js +2 -2
- package/dist/src/downloader/chunkDownloader.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- 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/export/transferUploadExportData.d.ts +3 -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 +2 -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/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/transferUploadState.d.ts +11 -8
- package/dist/src/uploader/state/transferUploadState.d.ts.map +1 -1
- package/dist/src/uploader/state/transferUploadState.js +54 -26
- 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/transferUpload.d.ts +17 -14
- package/dist/src/uploader/transferUpload.d.ts.map +1 -1
- package/dist/src/uploader/transferUpload.js +109 -123
- package/dist/src/uploader/transferUpload.js.map +1 -1
- package/dist/src/uploader/transferUploadAcker.d.ts +19 -0
- package/dist/src/uploader/transferUploadAcker.d.ts.map +1 -0
- package/dist/src/uploader/transferUploadAcker.js +119 -0
- package/dist/src/uploader/transferUploadAcker.js.map +1 -0
- package/dist/src/uploader/transferUploadEvent.d.ts +3 -1
- package/dist/src/uploader/transferUploadEvent.d.ts.map +1 -1
- package/dist/src/uploader/transferUploadEvent.js +3 -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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferUploadState.js","sourceRoot":"","sources":["../../../../src/uploader/state/transferUploadState.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport throttle from 'lodash.throttle';\n\nimport TransferUploadStateFile from \"./transferUploadStateFile.js\";\nimport TransferUploadEvent from \"../transferUploadEvent.js\";\nimport TransferStatus from \"../../utils/types/transferStatus.js\";\nimport TransferUploadError from \"../transferUploadError.js\";\nimport TransferUploadRatesCalculator from \"./transferUploadProgressCalculator.js\";\nimport ContinuousChunksCalculator from './continuousChunksCalculator.js';\n\nimport type ChunkProgressEvent from \"../../utils/events/chunkProgressEvent.js\";\nimport type EventsEngine from \"../../utils/events/eventsEngine.js\";\nimport type FileDetails from \"../../utils/fileSystem/fileDetails.js\";\nimport type TransferUploadStateFiles from \"./transferUploadStateFiles.js\";\nimport type FileChunkUploadFailedEventArgs from \"../eventArgs/fileChunkUploadFailedEventArgs.js\";\nimport type FileChunkUploadEventArgs from \"../eventArgs/fileChunkUploadEventArgs.js\";\nimport type FileUploadEventArgs from \"../eventArgs/fileUploadEventArgs.js\";\nimport type TransferUploadCompletedEventArgs from \"../eventArgs/transferUploadCompletedEventArgs.js\";\nimport type ReadonlyTransferUploadStateFile from \"./readonlyTransferUploadStateFile.js\";\nimport type ReadonlyTransferUploadStateFiles from \"./readonlyTransferUploadStateFiles.js\";\nimport type FileUploadFailedEventArgs from \"../eventArgs/fileUploadFailedEventArgs.js\";\nimport type TransferUploadExportState from \"../export/transferUploadExportState.js\";\nimport type TransferUploadProgressedEventArgs from \"../eventArgs/transferUploadProgressedEventArgs.js\";\nimport type TransferUploadMetadata from '../export/transferUploadMetadata.js';\nimport type FileChunkUploadProgressedEventArgs from '../eventArgs/fileChunkUploadProgressedEventArgs.js';\nimport type { ContinuousChunk } from './continuousChunksCalculator.js';\nimport type FileChunkUploadCompletedPartiallyEventArgs from '../eventArgs/fileChunkUploadCompletedPartiallyEventArgs.js';\nimport type FileChunkUploadCompletedEventArgs from '../eventArgs/fileChunkUploadCompletedEventArgs.js';\n\nexport default class TransferUploadState {\n #status: TransferStatus = TransferStatus.Initialized;\n\n #completedFilesCount = 0;\n #failedFilesCount = 0;\n #files: TransferUploadStateFiles = {};\n #eventsEngine: EventsEngine;\n\n #ratesCalculator: TransferUploadRatesCalculator;\n #continuousChunkCalculator: ContinuousChunksCalculator;\n #currentRatesTimespanInMs: number;\n\n #uploadedBytesCount = 0;\n #failedBytesCount = 0;\n\n #totalBytesCount = 0;\n\n #getRatesAndNotifyUploadProgressedThrottled: ReturnType<typeof throttle<TransferUploadState[`getRatesAndNotifyUploadProgressed`]>>;\n\n get status(): TransferStatus {\n return this.#status;\n }\n\n get completedFilesCount(): number {\n return this.#completedFilesCount;\n }\n\n get failedFilesCount(): number {\n return this.#failedFilesCount;\n }\n\n get uploadedBytesCount(): number {\n return this.#uploadedBytesCount;\n }\n\n get failedBytesCount(): number {\n return this.#failedBytesCount;\n }\n\n get files(): ReadonlyTransferUploadStateFiles {\n return this.#files;\n }\n\n constructor(files: readonly FileDetails[], eventsEngine: EventsEngine, currentRatesTimespanInMs: number, progressEventThrottlingInMs: number)\n constructor(files: readonly FileDetails[], eventsEngine: EventsEngine, currentRatesTimespanInMs: number, progressEventThrottlingInMs: number, exportedState: TransferUploadExportState)\n constructor(files: readonly FileDetails[], eventsEngine: EventsEngine, currentRatesTimespanInMs: number, progressEventThrottlingInMs: number, exportedState?: TransferUploadExportState) {\n this.#eventsEngine = eventsEngine;\n this.#currentRatesTimespanInMs = currentRatesTimespanInMs;\n\n this.#getRatesAndNotifyUploadProgressedThrottled = throttle(this.getRatesAndNotifyUploadProgressed, progressEventThrottlingInMs);\n\n this.initializeTransferStatus(files);\n\n this.#ratesCalculator = new TransferUploadRatesCalculator(this.#totalBytesCount, this.#currentRatesTimespanInMs);\n this.#continuousChunkCalculator = new ContinuousChunksCalculator();\n\n if (exportedState)\n this.recoverFromExportedState(exportedState);\n }\n\n private initializeTransferStatus(filesDetails: readonly FileDetails[]) {\n for (const file of filesDetails) {\n this.#files[file.externalId] = new TransferUploadStateFile(file.externalId, file.fileSizeInBytes, file.fileName);\n\n this.#totalBytesCount += file.fileSizeInBytes;\n }\n }\n\n getChunksForFile(externalId: string | number): readonly Readonly<ContinuousChunk>[] {\n return this.#continuousChunkCalculator.getChunks(externalId);\n }\n\n export(): TransferUploadExportState {\n return this.#continuousChunkCalculator.export();\n }\n\n recover() {\n this.#status = TransferStatus.Initialized;\n this.#completedFilesCount = 0;\n this.#uploadedBytesCount = 0;\n this.#failedFilesCount = 0;\n this.#failedBytesCount = 0;\n\n for (const [, file] of Object.entries(this.#files)) {\n file.isBeingUploaded = false;\n file.runningChunksCount = 0;\n file.isFailed = false;\n file.failedReason = null;\n file.failedBytesCount = 0;\n\n if (file.isCompleted)\n this.#completedFilesCount += 1;\n\n file.uploadedBytesCount = this.#continuousChunkCalculator.getChunksUploadedBytesCount(file.externalId);\n\n this.#uploadedBytesCount += file.uploadedBytesCount;\n }\n }\n\n private recoverFromExportedState(exportedState: TransferUploadExportState) {\n this.#continuousChunkCalculator.recover(exportedState);\n\n for (const [, file] of Object.entries(this.#files)) {\n const fileChunks = this.#continuousChunkCalculator.getChunks(file.externalId);\n\n file.isCompleted = fileChunks.length === 1 && fileChunks[0]!.startPosition === 0 && fileChunks[0]!.sizeInBytes === file.fileSizeInBytes;\n file.uploadedBytesCount = this.#continuousChunkCalculator.getChunksUploadedBytesCount(file.externalId);\n\n if (file.isCompleted)\n this.#completedFilesCount += 1;\n\n this.#uploadedBytesCount += file.uploadedBytesCount;\n }\n }\n\n getFile(externalFileId: string | number): ReadonlyTransferUploadStateFile {\n return this.getFileInternal(externalFileId);\n }\n\n private getFileInternal(externalFileId: string | number): TransferUploadStateFile {\n const file = this.#files[externalFileId];\n\n if (!file)\n throw new TransferUploadError(`File with id = ${externalFileId} doesn't exist`);\n\n return file;\n }\n\n transferRun() {\n this.#status = TransferStatus.Running;\n\n this.#ratesCalculator = new TransferUploadRatesCalculator(this.#totalBytesCount, this.#currentRatesTimespanInMs);\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferRun);\n }\n\n transferPauseRequested() {\n this.#status = TransferStatus.Pausing;\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferPauseRequested);\n }\n\n transferPaused() {\n this.#status = TransferStatus.Paused;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.flush();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferPaused);\n }\n\n transferAbortRequested() {\n this.#status = TransferStatus.Aborting;\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferAbortRequested);\n }\n\n transferAborted() {\n this.#status = TransferStatus.Aborted;\n\n for (const [, file] of Object.entries(this.#files)) {\n if (file.isBeingUploaded) {\n file.isBeingUploaded = false;\n file.isFailed = true;\n\n if (!file.failedReason)\n file.failedReason = `Aborted`;\n }\n }\n\n this.#getRatesAndNotifyUploadProgressedThrottled.cancel();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferAborted);\n }\n\n transferCancelRequested() {\n this.#status = TransferStatus.Canceling;\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferCancelRequested);\n }\n\n transferCanceled() {\n this.#status = TransferStatus.Canceled;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.cancel();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferCanceled);\n }\n\n transferCompleted(transferMetadata: TransferUploadMetadata, transferDownloadUrl: string, confirmationUrl: string | undefined, recipientTrackingLinks?: TransferUploadCompletedEventArgs[`recipientTrackingLinks`]) {\n this.#status = TransferStatus.Completed;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.flush();\n\n const eventArgs: TransferUploadCompletedEventArgs = {\n transferId: transferMetadata.transferId,\n transferKey: transferMetadata.transferKey,\n transferDownloadUrl,\n confirmationUrl,\n fileServerUrl: transferMetadata.transferFileServerUrl,\n region: transferMetadata.transferRegion,\n recipientTrackingLinks,\n };\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferCompleted, eventArgs);\n }\n\n transferFailed() {\n this.#status = TransferStatus.Failed;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.cancel();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferFailed);\n }\n\n fileUploadStarted(file: TransferUploadStateFile) {\n file.isBeingUploaded = true;\n\n const eventArgs: FileUploadEventArgs = { fileStatus: file };\n this.#eventsEngine.emit(TransferUploadEvent.FileUploadStarted, eventArgs);\n }\n\n fileUploadCompleted(file: TransferUploadStateFile) {\n file.isBeingUploaded = false;\n file.isCompleted = true;\n\n this.#completedFilesCount += 1;\n\n const eventArgs: FileUploadEventArgs = { fileStatus: file };\n this.#eventsEngine.emit(TransferUploadEvent.FileUploadCompleted, eventArgs);\n }\n\n fileUploadFailed(file: TransferUploadStateFile) {\n file.isBeingUploaded = false;\n file.isFailed = true;\n\n this.#failedFilesCount += 1;\n\n const eventArgs: FileUploadFailedEventArgs = { fileStatus: file, reason: file.failedReason };\n this.#eventsEngine.emit(TransferUploadEvent.FileUploadFailed, eventArgs);\n }\n\n chunkUploadStarted(externalFileId: string | number, chunkStartPosition: number, chunkSizeInBytes: number) {\n const file = this.getFileInternal(externalFileId);\n\n if (!file.isBeingUploaded)\n this.fileUploadStarted(file);\n\n file.runningChunksCount += 1;\n\n const eventArgs: FileChunkUploadEventArgs = { fileStatus: file, chunkStartPosition, chunkSizeInBytes };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadStarted, eventArgs);\n }\n\n chunkUploadProgressed(externalFileId: string | number, chunkStartPosition: number, chunkSizeInBytes: number, apiEventArgs: ChunkProgressEvent): void {\n const file = this.getFileInternal(externalFileId);\n\n file.uploadedBytesCount += apiEventArgs.transferredBytesSinceLastEvent;\n this.#uploadedBytesCount += apiEventArgs.transferredBytesSinceLastEvent;\n\n this.#ratesCalculator.addNewProgressEvent(apiEventArgs.transferredBytesSinceLastEvent);\n\n const eventArgs: FileChunkUploadProgressedEventArgs = { fileStatus: file, chunkStartPosition, chunkSizeInBytes, transferredBytesSinceLastEvent: apiEventArgs.transferredBytesSinceLastEvent };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadProgressed, eventArgs);\n\n this.#getRatesAndNotifyUploadProgressedThrottled();\n }\n\n private getRatesAndNotifyUploadProgressed() {\n const progressStats = this.#ratesCalculator.getRates(this.#uploadedBytesCount);\n\n const tranferEventArgs: TransferUploadProgressedEventArgs = {\n uploadedBytesTotalCount: this.#uploadedBytesCount,\n progressInPercentage: (this.#uploadedBytesCount * 100) / this.#totalBytesCount,\n remainingSeconds: progressStats.remainingSeconds,\n averageSpeedInBytesPerSecond: progressStats.averageSpeedInBytesPerSec,\n currentSpeedInBytesPerSecond: progressStats.currentSpeedInBytesPerSec,\n };\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferProgressed, tranferEventArgs);\n }\n\n chunkUploadCompleted(externalFileId: string | number, startPosition: number, sizeInBytes: number, latencyInMsIfUdp: number | undefined) {\n const file = this.getFileInternal(externalFileId);\n\n file.runningChunksCount -= 1;\n\n this.#continuousChunkCalculator.addNewChunk(externalFileId, { startPosition, sizeInBytes });\n\n this.#eventsEngine.emit(TransferUploadEvent.RecreateDataUpdated);\n\n const eventArgs: FileChunkUploadCompletedEventArgs = { fileStatus: file, chunkStartPosition: startPosition, chunkSizeInBytes: sizeInBytes, latencyInMsIfUdp };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadCompleted, eventArgs);\n\n if (file.runningChunksCount > 0)\n return;\n\n if (file.uploadedBytesCount === file.fileSizeInBytes)\n this.fileUploadCompleted(file);\n else if (file.uploadedBytesCount + file.failedBytesCount === file.fileSizeInBytes)\n this.fileUploadFailed(file);\n }\n\n chunkUploadCompletedPartially(externalFileId: string | number, startPosition: number, sizeInBytes: number, uploadedBytesCount: number, isPauseRequested: boolean, latencyInMsIfUdp?: number) {\n const file = this.getFileInternal(externalFileId);\n\n file.runningChunksCount -= 1;\n\n const failedBytes = sizeInBytes - uploadedBytesCount;\n\n file.failedBytesCount += failedBytes;\n this.#failedBytesCount += failedBytes;\n\n if (!file.failedReason)\n file.failedReason = isPauseRequested ? `Pause requested` : `Chunk upload completed partially`;\n\n if (uploadedBytesCount > 0)\n this.#continuousChunkCalculator.addNewChunk(externalFileId, { startPosition, sizeInBytes: uploadedBytesCount });\n\n this.#eventsEngine.emit(TransferUploadEvent.RecreateDataUpdated);\n\n const eventArgs: FileChunkUploadCompletedPartiallyEventArgs = { fileStatus: file, chunkStartPosition: startPosition, chunkSizeInBytes: sizeInBytes, uploadedBytesCount, isPauseRequested, latencyInMsIfUdp };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadCompletedPartially, eventArgs);\n\n if (file.runningChunksCount === 0 && file.uploadedBytesCount + file.failedBytesCount === file.fileSizeInBytes)\n this.fileUploadFailed(file);\n }\n\n chunkUploadFailed(externalFileId: string | number, chunkStartPosition: number, chunkSizeInBytes: number, uploadedBytesCount: number, failedReason: string, error: Error) {\n const file = this.getFileInternal(externalFileId);\n\n file.runningChunksCount -= 1;\n\n const failedBytes = chunkSizeInBytes;\n\n file.uploadedBytesCount -= uploadedBytesCount;\n file.failedBytesCount += failedBytes;\n\n this.#uploadedBytesCount -= uploadedBytesCount;\n this.#failedBytesCount += failedBytes;\n\n if (!file.failedReason)\n file.failedReason = failedReason;\n\n const eventArgs: FileChunkUploadFailedEventArgs = { fileStatus: file, chunkStartPosition, chunkSizeInBytes, reason: failedReason, error };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadFailed, eventArgs);\n\n if (file.runningChunksCount === 0 && file.uploadedBytesCount + file.failedBytesCount === file.fileSizeInBytes)\n this.fileUploadFailed(file);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"transferUploadState.js","sourceRoot":"","sources":["../../../../src/uploader/state/transferUploadState.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,cAAc,MAAM,qCAAqC,CAAC;AACjE,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,6BAA6B,MAAM,uCAAuC,CAAC;AAClF,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AAsBzE,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,OAAO,GAAmB,cAAc,CAAC,WAAW,CAAC;IAErD,oBAAoB,GAAG,CAAC,CAAC;IACzB,iBAAiB,GAAG,CAAC,CAAC;IACtB,MAAM,GAA6B,EAAE,CAAC;IACtC,aAAa,CAAe;IAE5B,gBAAgB,CAAgC;IAChD,0BAA0B,CAA6B;IACvD,yBAAyB,CAAS;IAElC,mBAAmB,GAAG,CAAC,CAAC;IACxB,iBAAiB,GAAG,CAAC,CAAC;IAEtB,gBAAgB,GAAG,CAAC,CAAC;IAErB,2CAA2C,CAAwF;IAEnI,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,mBAAmB;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAID,YAAY,KAA6B,EAAE,YAA0B,EAAE,wBAAgC,EAAE,2BAAmC,EAAE,aAAyC;QACnL,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,CAAC;QAE1D,IAAI,CAAC,2CAA2C,GAAG,QAAQ,CAAC,IAAI,CAAC,iCAAiC,EAAE,2BAA2B,CAAC,CAAC;QAEjI,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,gBAAgB,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACjH,IAAI,CAAC,0BAA0B,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAEnE,IAAI,aAAa;YACb,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAEO,wBAAwB,CAAC,YAAoC;QACjE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEjH,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,CAAC;QAClD,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,UAA2B;QACxC,OAAO,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,MAAM;QACF,OAAO;YACH,+BAA+B,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE;YACzE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;SAC3G,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAE3B,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAE1B,IAAI,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAEnC,uGAAuG;YACvG,qGAAqG;YACrG,uGAAuG;YACvG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,0BAA0B,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEvG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,kBAAkB,CAAC;QACxD,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,IAA6B;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9E,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,aAAa,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAE,CAAC,WAAW,KAAK,IAAI,CAAC,eAAe,CAAC;IAChI,CAAC;IAEO,wBAAwB,CAAC,aAA0E;QACvG,0GAA0G;QAC1G,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE1D,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,+BAA+B,CAAC;QACnH,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAEhG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE1D,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,0BAA0B,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEvG,IAAI,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,kBAAkB,CAAC;QACxD,CAAC;IACL,CAAC;IAED,OAAO,CAAC,cAA+B;QACnC,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAEO,eAAe,CAAC,cAA+B;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI;YACL,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,cAAc,gBAAgB,CAAC,CAAC;QAEpF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QAEtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEjH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QAEtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACxE,CAAC;IAED,cAAc;QACV,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;QAErC,IAAI,CAAC,2CAA2C,CAAC,KAAK,EAAE,CAAC;QAEzD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC;QAEvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACxE,CAAC;IAED,eAAe;QACX,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QAEtC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAErB,IAAI,CAAC,IAAI,CAAC,YAAY;oBAClB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YACtC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,2CAA2C,CAAC,MAAM,EAAE,CAAC;QAE1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,uBAAuB;QACnB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC;QAExC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IACzE,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC;QAEvC,IAAI,CAAC,2CAA2C,CAAC,MAAM,EAAE,CAAC;QAE1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB,CAAC,gBAAwC,EAAE,mBAA2B,EAAE,eAAmC,EAAE,sBAAmF;QAC7M,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC;QAExC,IAAI,CAAC,2CAA2C,CAAC,KAAK,EAAE,CAAC;QAEzD,MAAM,SAAS,GAAqC;YAChD,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW,EAAE,gBAAgB,CAAC,WAAW;YACzC,mBAAmB;YACnB,eAAe;YACf,aAAa,EAAE,gBAAgB,CAAC,qBAAqB;YACrD,MAAM,EAAE,gBAAgB,CAAC,cAAc;YACvC,sBAAsB;SACzB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc;QACV,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;QAErC,IAAI,CAAC,2CAA2C,CAAC,MAAM,EAAE,CAAC;QAE1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,iBAAiB,CAAC,IAA6B,EAAE,YAAgC;QAC7E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,MAAM,SAAS,GAAwB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC1E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,mBAAmB,CAAC,IAA6B,EAAE,YAAgC;QAC/E,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,MAAM,SAAS,GAAwB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC1E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;IAED,aAAa,CAAC,cAA+B,EAAE,YAAgC;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAEjE,MAAM,SAAS,GAAwB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC1E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa,CAAC,cAA+B,EAAE,YAAoB,EAAE,MAAc,EAAE,KAAY;QAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAElD,MAAM,SAAS,GAA2B,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC5F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,IAA6B,EAAE,YAAgC;QAC5E,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAE5B,MAAM,SAAS,GAA8B,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3G,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,kBAAkB,CAAC,cAA+B,EAAE,YAAgC,EAAE,kBAA0B,EAAE,gBAAwB;QACtI,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,eAAe;YACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE/C,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAE7B,MAAM,SAAS,GAA6B,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;QACrH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,qBAAqB,CAAC,cAA+B,EAAE,YAAgC,EAAE,kBAA0B,EAAE,gBAAwB,EAAE,YAAgC;QAC3K,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,IAAI,YAAY,CAAC,8BAA8B,CAAC;QACvE,IAAI,CAAC,mBAAmB,IAAI,YAAY,CAAC,8BAA8B,CAAC;QAExE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC;QAEvF,MAAM,SAAS,GAAuC,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,YAAY,CAAC,8BAA8B,EAAE,CAAC;QAC5M,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;QAElF,IAAI,CAAC,2CAA2C,EAAE,CAAC;IACvD,CAAC;IAEO,iCAAiC;QACrC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE/E,MAAM,gBAAgB,GAAsC;YACxD,uBAAuB,EAAE,IAAI,CAAC,mBAAmB;YACjD,oBAAoB,EAAE,CAAC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB;YAC9E,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;YAChD,4BAA4B,EAAE,aAAa,CAAC,yBAAyB;YACrE,4BAA4B,EAAE,aAAa,CAAC,yBAAyB;SACxE,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IACtF,CAAC;IAED,oBAAoB,CAAC,cAA+B,EAAE,YAAgC,EAAE,aAAqB,EAAE,WAAmB;QAC9H,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;QAE5F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAEjE,MAAM,SAAS,GAAsC,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;QAC1J,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAEjF,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC;YAC3B,OAAO;QAEX,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,eAAe;YAChD,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aAC5C,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,eAAe;YAC7E,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,6BAA6B,CAAC,cAA+B,EAAE,YAAgC,EAAE,aAAqB,EAAE,WAAmB,EAAE,kBAA0B,EAAE,gBAAyB;QAC9L,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAE7B,MAAM,WAAW,GAAG,WAAW,GAAG,kBAAkB,CAAC;QAErD,IAAI,CAAC,gBAAgB,IAAI,WAAW,CAAC;QACrC,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,YAAY;YAClB,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kCAAkC,CAAC;QAElG,IAAI,kBAAkB,GAAG,CAAC;YACtB,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAEpH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAEjE,MAAM,SAAS,GAA+C,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;QACzM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;QAE1F,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,eAAe;YACzG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,cAA+B,EAAE,YAAgC,EAAE,kBAA0B,EAAE,gBAAwB,EAAE,kBAA0B,EAAE,YAAoB,EAAE,KAAY;QACrM,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAE7B,MAAM,WAAW,GAAG,gBAAgB,CAAC;QAErC,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC;QAC9C,IAAI,CAAC,gBAAgB,IAAI,WAAW,CAAC;QAErC,IAAI,CAAC,mBAAmB,IAAI,kBAAkB,CAAC;QAC/C,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,YAAY;YAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAErC,MAAM,SAAS,GAAmC,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACxJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAE9E,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,eAAe;YACzG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;CACJ","sourcesContent":["/* eslint-disable no-param-reassign */\nimport throttle from 'lodash.throttle';\n\nimport TransferUploadStateFile from \"./transferUploadStateFile.js\";\nimport TransferUploadEvent from \"../transferUploadEvent.js\";\nimport TransferStatus from \"../../utils/types/transferStatus.js\";\nimport TransferUploadError from \"../transferUploadError.js\";\nimport TransferUploadRatesCalculator from \"./transferUploadProgressCalculator.js\";\nimport ContinuousChunksCalculator from './continuousChunksCalculator.js';\n\nimport type ChunkProgressEvent from \"../../utils/events/chunkProgressEvent.js\";\nimport type EventsEngine from \"../../utils/events/eventsEngine.js\";\nimport type FileDetails from \"../../utils/fileSystem/fileDetails.js\";\nimport type TransferUploadStateFiles from \"./transferUploadStateFiles.js\";\nimport type FileChunkUploadFailedEventArgs from \"../eventArgs/fileChunkUploadFailedEventArgs.js\";\nimport type FileAckFailedEventArgs from \"../eventArgs/fileAckFailedEventArgs.js\";\nimport type FileChunkUploadEventArgs from \"../eventArgs/fileChunkUploadEventArgs.js\";\nimport type FileUploadEventArgs from \"../eventArgs/fileUploadEventArgs.js\";\nimport type TransferUploadCompletedEventArgs from \"../eventArgs/transferUploadCompletedEventArgs.js\";\nimport type ReadonlyTransferUploadStateFile from \"./readonlyTransferUploadStateFile.js\";\nimport type ReadonlyTransferUploadStateFiles from \"./readonlyTransferUploadStateFiles.js\";\nimport type FileUploadFailedEventArgs from \"../eventArgs/fileUploadFailedEventArgs.js\";\nimport type TransferUploadExportState from \"../export/transferUploadExportState.js\";\nimport type TransferUploadProgressedEventArgs from \"../eventArgs/transferUploadProgressedEventArgs.js\";\nimport type TransferUploadMetadata from '../export/transferUploadMetadata.js';\nimport type FileChunkUploadProgressedEventArgs from '../eventArgs/fileChunkUploadProgressedEventArgs.js';\nimport type { ContinuousChunk, ContinuousChunksCalculatorState } from './continuousChunksCalculator.js';\nimport type FileChunkUploadCompletedPartiallyEventArgs from '../eventArgs/fileChunkUploadCompletedPartiallyEventArgs.js';\nimport type FileChunkUploadCompletedEventArgs from '../eventArgs/fileChunkUploadCompletedEventArgs.js';\n\nexport default class TransferUploadState {\n #status: TransferStatus = TransferStatus.Initialized;\n\n #completedFilesCount = 0;\n #failedFilesCount = 0;\n #files: TransferUploadStateFiles = {};\n #eventsEngine: EventsEngine;\n\n #ratesCalculator: TransferUploadRatesCalculator;\n #continuousChunkCalculator: ContinuousChunksCalculator;\n #currentRatesTimespanInMs: number;\n\n #uploadedBytesCount = 0;\n #failedBytesCount = 0;\n\n #totalBytesCount = 0;\n\n #getRatesAndNotifyUploadProgressedThrottled: ReturnType<typeof throttle<TransferUploadState[`getRatesAndNotifyUploadProgressed`]>>;\n\n get status(): TransferStatus {\n return this.#status;\n }\n\n get completedFilesCount(): number {\n return this.#completedFilesCount;\n }\n\n get failedFilesCount(): number {\n return this.#failedFilesCount;\n }\n\n get uploadedBytesCount(): number {\n return this.#uploadedBytesCount;\n }\n\n get failedBytesCount(): number {\n return this.#failedBytesCount;\n }\n\n get files(): ReadonlyTransferUploadStateFiles {\n return this.#files;\n }\n\n constructor(files: readonly FileDetails[], eventsEngine: EventsEngine, currentRatesTimespanInMs: number, progressEventThrottlingInMs: number)\n constructor(files: readonly FileDetails[], eventsEngine: EventsEngine, currentRatesTimespanInMs: number, progressEventThrottlingInMs: number, exportedState: TransferUploadExportState)\n constructor(files: readonly FileDetails[], eventsEngine: EventsEngine, currentRatesTimespanInMs: number, progressEventThrottlingInMs: number, exportedState?: TransferUploadExportState) {\n this.#eventsEngine = eventsEngine;\n this.#currentRatesTimespanInMs = currentRatesTimespanInMs;\n\n this.#getRatesAndNotifyUploadProgressedThrottled = throttle(this.getRatesAndNotifyUploadProgressed, progressEventThrottlingInMs);\n\n this.initializeTransferStatus(files);\n\n this.#ratesCalculator = new TransferUploadRatesCalculator(this.#totalBytesCount, this.#currentRatesTimespanInMs);\n this.#continuousChunkCalculator = new ContinuousChunksCalculator();\n\n if (exportedState)\n this.recoverFromExportedState(exportedState);\n }\n\n private initializeTransferStatus(filesDetails: readonly FileDetails[]) {\n for (const file of filesDetails) {\n this.#files[file.externalId] = new TransferUploadStateFile(file.externalId, file.fileSizeInBytes, file.fileName);\n\n this.#totalBytesCount += file.fileSizeInBytes;\n }\n }\n\n getChunksForFile(externalId: string | number): readonly Readonly<ContinuousChunk>[] {\n return this.#continuousChunkCalculator.getChunks(externalId);\n }\n\n export(): TransferUploadExportState {\n return {\n continuousChunksCalculatorState: this.#continuousChunkCalculator.export(),\n completedFiles: Object.values(this.#files).filter(file => file.isCompleted).map(file => file.externalId),\n };\n }\n\n recover() {\n this.#status = TransferStatus.Initialized;\n this.#completedFilesCount = 0;\n this.#uploadedBytesCount = 0;\n this.#failedFilesCount = 0;\n this.#failedBytesCount = 0;\n\n for (const [, file] of Object.entries(this.#files)) {\n file.isBeingUploaded = false;\n file.runningChunksCount = 0;\n file.isFailed = false;\n file.failedReason = null;\n file.failedBytesCount = 0;\n\n if (file.isCompleted)\n this.#completedFilesCount += 1;\n\n // A file can have all its chunks recorded and still miss the live isUploadCompleted transition (e.g. a\n // full chunk recorded through the partially-completed path on pause), so the flag is recomputed from\n // the chunks the same way recoverFromExportedState does - such a file has to be acked on the next run.\n file.isUploadCompleted = this.hasAllChunksUploaded(file);\n file.uploadedBytesCount = this.#continuousChunkCalculator.getChunksUploadedBytesCount(file.externalId);\n\n this.#uploadedBytesCount += file.uploadedBytesCount;\n }\n }\n\n private hasAllChunksUploaded(file: TransferUploadStateFile): boolean {\n const fileChunks = this.#continuousChunkCalculator.getChunks(file.externalId);\n\n return fileChunks.length === 1 && fileChunks[0]!.startPosition === 0 && fileChunks[0]!.sizeInBytes === file.fileSizeInBytes;\n }\n\n private recoverFromExportedState(exportedState: TransferUploadExportState | ContinuousChunksCalculatorState) {\n // Remove this variable and the legacy recovery logic after all our clients are on desktop version >= 4.22\n const isLegacyModeTransfer = Array.isArray(exportedState);\n\n const continuousChunksState = isLegacyModeTransfer ? exportedState : exportedState.continuousChunksCalculatorState;\n const completedFiles = isLegacyModeTransfer ? undefined : new Set(exportedState.completedFiles);\n\n this.#continuousChunkCalculator.recover(continuousChunksState);\n\n for (const [, file] of Object.entries(this.#files)) {\n const isUploadCompleted = this.hasAllChunksUploaded(file);\n\n file.isUploadCompleted = isUploadCompleted;\n file.isCompleted = isLegacyModeTransfer ? isUploadCompleted : completedFiles!.has(file.externalId);\n file.uploadedBytesCount = this.#continuousChunkCalculator.getChunksUploadedBytesCount(file.externalId);\n\n if (file.isCompleted)\n this.#completedFilesCount += 1;\n\n this.#uploadedBytesCount += file.uploadedBytesCount;\n }\n }\n\n getFile(externalFileId: string | number): ReadonlyTransferUploadStateFile {\n return this.getFileInternal(externalFileId);\n }\n\n private getFileInternal(externalFileId: string | number): TransferUploadStateFile {\n const file = this.#files[externalFileId];\n\n if (!file)\n throw new TransferUploadError(`File with id = ${externalFileId} doesn't exist`);\n\n return file;\n }\n\n transferRun() {\n this.#status = TransferStatus.Running;\n\n this.#ratesCalculator = new TransferUploadRatesCalculator(this.#totalBytesCount, this.#currentRatesTimespanInMs);\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferRun);\n }\n\n transferPauseRequested() {\n this.#status = TransferStatus.Pausing;\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferPauseRequested);\n }\n\n transferPaused() {\n this.#status = TransferStatus.Paused;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.flush();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferPaused);\n }\n\n transferAbortRequested() {\n this.#status = TransferStatus.Aborting;\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferAbortRequested);\n }\n\n transferAborted() {\n this.#status = TransferStatus.Aborted;\n\n for (const [, file] of Object.entries(this.#files)) {\n if (file.isBeingUploaded) {\n file.isBeingUploaded = false;\n file.isFailed = true;\n\n if (!file.failedReason)\n file.failedReason = `Aborted`;\n }\n }\n\n this.#getRatesAndNotifyUploadProgressedThrottled.cancel();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferAborted);\n }\n\n transferCancelRequested() {\n this.#status = TransferStatus.Canceling;\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferCancelRequested);\n }\n\n transferCanceled() {\n this.#status = TransferStatus.Canceled;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.cancel();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferCanceled);\n }\n\n transferCompleted(transferMetadata: TransferUploadMetadata, transferDownloadUrl: string, confirmationUrl: string | undefined, recipientTrackingLinks?: TransferUploadCompletedEventArgs[`recipientTrackingLinks`]) {\n this.#status = TransferStatus.Completed;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.flush();\n\n const eventArgs: TransferUploadCompletedEventArgs = {\n transferId: transferMetadata.transferId,\n transferKey: transferMetadata.transferKey,\n transferDownloadUrl,\n confirmationUrl,\n fileServerUrl: transferMetadata.transferFileServerUrl,\n region: transferMetadata.transferRegion,\n recipientTrackingLinks,\n };\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferCompleted, eventArgs);\n }\n\n transferFailed() {\n this.#status = TransferStatus.Failed;\n\n this.#getRatesAndNotifyUploadProgressedThrottled.cancel();\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferFailed);\n }\n\n fileUploadStarted(file: TransferUploadStateFile, uploadItemId: string | undefined) {\n file.isBeingUploaded = true;\n\n const eventArgs: FileUploadEventArgs = { fileStatus: file, uploadItemId };\n this.#eventsEngine.emit(TransferUploadEvent.FileUploadStarted, eventArgs);\n }\n\n fileUploadCompleted(file: TransferUploadStateFile, uploadItemId: string | undefined) {\n file.isBeingUploaded = false;\n file.isUploadCompleted = true;\n\n const eventArgs: FileUploadEventArgs = { fileStatus: file, uploadItemId };\n this.#eventsEngine.emit(TransferUploadEvent.FileUploadCompleted, eventArgs);\n }\n\n fileCompleted(externalFileId: string | number, uploadItemId: string | undefined) {\n const file = this.getFileInternal(externalFileId);\n\n file.isCompleted = true;\n\n this.#completedFilesCount += 1;\n\n this.#eventsEngine.emit(TransferUploadEvent.RecreateDataUpdated);\n\n const eventArgs: FileUploadEventArgs = { fileStatus: file, uploadItemId };\n this.#eventsEngine.emit(TransferUploadEvent.FileCompleted, eventArgs);\n }\n\n fileAckFailed(externalFileId: string | number, uploadItemId: string, reason: string, error: Error) {\n const file = this.getFileInternal(externalFileId);\n\n const eventArgs: FileAckFailedEventArgs = { fileStatus: file, uploadItemId, reason, error };\n this.#eventsEngine.emit(TransferUploadEvent.FileAckFailed, eventArgs);\n }\n\n fileUploadFailed(file: TransferUploadStateFile, uploadItemId: string | undefined) {\n file.isBeingUploaded = false;\n file.isFailed = true;\n\n this.#failedFilesCount += 1;\n\n const eventArgs: FileUploadFailedEventArgs = { fileStatus: file, uploadItemId, reason: file.failedReason };\n this.#eventsEngine.emit(TransferUploadEvent.FileUploadFailed, eventArgs);\n }\n\n chunkUploadStarted(externalFileId: string | number, uploadItemId: string | undefined, chunkStartPosition: number, chunkSizeInBytes: number) {\n const file = this.getFileInternal(externalFileId);\n\n if (!file.isBeingUploaded)\n this.fileUploadStarted(file, uploadItemId);\n\n file.runningChunksCount += 1;\n\n const eventArgs: FileChunkUploadEventArgs = { fileStatus: file, uploadItemId, chunkStartPosition, chunkSizeInBytes };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadStarted, eventArgs);\n }\n\n chunkUploadProgressed(externalFileId: string | number, uploadItemId: string | undefined, chunkStartPosition: number, chunkSizeInBytes: number, apiEventArgs: ChunkProgressEvent): void {\n const file = this.getFileInternal(externalFileId);\n\n file.uploadedBytesCount += apiEventArgs.transferredBytesSinceLastEvent;\n this.#uploadedBytesCount += apiEventArgs.transferredBytesSinceLastEvent;\n\n this.#ratesCalculator.addNewProgressEvent(apiEventArgs.transferredBytesSinceLastEvent);\n\n const eventArgs: FileChunkUploadProgressedEventArgs = { fileStatus: file, uploadItemId, chunkStartPosition, chunkSizeInBytes, transferredBytesSinceLastEvent: apiEventArgs.transferredBytesSinceLastEvent };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadProgressed, eventArgs);\n\n this.#getRatesAndNotifyUploadProgressedThrottled();\n }\n\n private getRatesAndNotifyUploadProgressed() {\n const progressStats = this.#ratesCalculator.getRates(this.#uploadedBytesCount);\n\n const tranferEventArgs: TransferUploadProgressedEventArgs = {\n uploadedBytesTotalCount: this.#uploadedBytesCount,\n progressInPercentage: (this.#uploadedBytesCount * 100) / this.#totalBytesCount,\n remainingSeconds: progressStats.remainingSeconds,\n averageSpeedInBytesPerSecond: progressStats.averageSpeedInBytesPerSec,\n currentSpeedInBytesPerSecond: progressStats.currentSpeedInBytesPerSec,\n };\n\n this.#eventsEngine.emit(TransferUploadEvent.TransferProgressed, tranferEventArgs);\n }\n\n chunkUploadCompleted(externalFileId: string | number, uploadItemId: string | undefined, startPosition: number, sizeInBytes: number) {\n const file = this.getFileInternal(externalFileId);\n\n file.runningChunksCount -= 1;\n\n this.#continuousChunkCalculator.addNewChunk(externalFileId, { startPosition, sizeInBytes });\n\n this.#eventsEngine.emit(TransferUploadEvent.RecreateDataUpdated);\n\n const eventArgs: FileChunkUploadCompletedEventArgs = { fileStatus: file, uploadItemId, chunkStartPosition: startPosition, chunkSizeInBytes: sizeInBytes };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadCompleted, eventArgs);\n\n if (file.runningChunksCount > 0)\n return;\n\n if (file.uploadedBytesCount === file.fileSizeInBytes)\n this.fileUploadCompleted(file, uploadItemId);\n else if (file.uploadedBytesCount + file.failedBytesCount === file.fileSizeInBytes)\n this.fileUploadFailed(file, uploadItemId);\n }\n\n chunkUploadCompletedPartially(externalFileId: string | number, uploadItemId: string | undefined, startPosition: number, sizeInBytes: number, uploadedBytesCount: number, isPauseRequested: boolean) {\n const file = this.getFileInternal(externalFileId);\n\n file.runningChunksCount -= 1;\n\n const failedBytes = sizeInBytes - uploadedBytesCount;\n\n file.failedBytesCount += failedBytes;\n this.#failedBytesCount += failedBytes;\n\n if (!file.failedReason)\n file.failedReason = isPauseRequested ? `Pause requested` : `Chunk upload completed partially`;\n\n if (uploadedBytesCount > 0)\n this.#continuousChunkCalculator.addNewChunk(externalFileId, { startPosition, sizeInBytes: uploadedBytesCount });\n\n this.#eventsEngine.emit(TransferUploadEvent.RecreateDataUpdated);\n\n const eventArgs: FileChunkUploadCompletedPartiallyEventArgs = { fileStatus: file, uploadItemId, chunkStartPosition: startPosition, chunkSizeInBytes: sizeInBytes, uploadedBytesCount, isPauseRequested };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadCompletedPartially, eventArgs);\n\n if (file.runningChunksCount === 0 && file.uploadedBytesCount + file.failedBytesCount === file.fileSizeInBytes)\n this.fileUploadFailed(file, uploadItemId);\n }\n\n chunkUploadFailed(externalFileId: string | number, uploadItemId: string | undefined, chunkStartPosition: number, chunkSizeInBytes: number, uploadedBytesCount: number, failedReason: string, error: Error) {\n const file = this.getFileInternal(externalFileId);\n\n file.runningChunksCount -= 1;\n\n const failedBytes = chunkSizeInBytes;\n\n file.uploadedBytesCount -= uploadedBytesCount;\n file.failedBytesCount += failedBytes;\n\n this.#uploadedBytesCount -= uploadedBytesCount;\n this.#failedBytesCount += failedBytes;\n\n if (!file.failedReason)\n file.failedReason = failedReason;\n\n const eventArgs: FileChunkUploadFailedEventArgs = { fileStatus: file, uploadItemId, chunkStartPosition, chunkSizeInBytes, reason: failedReason, error };\n this.#eventsEngine.emit(TransferUploadEvent.FileChunkUploadFailed, eventArgs);\n\n if (file.runningChunksCount === 0 && file.uploadedBytesCount + file.failedBytesCount === file.fileSizeInBytes)\n this.fileUploadFailed(file, uploadItemId);\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferUploadStateFile.d.ts","sourceRoot":"","sources":["../../../../src/uploader/state/transferUploadStateFile.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,eAAe,UAAS;IACxB,kBAAkB,SAAK;IACvB,WAAW,UAAS;IACpB,QAAQ,UAAS;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,gBAAgB,SAAK;IACrB,kBAAkB,SAAK;gBAEX,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAKrF"}
|
|
1
|
+
{"version":3,"file":"transferUploadStateFile.d.ts","sourceRoot":"","sources":["../../../../src/uploader/state/transferUploadStateFile.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,eAAe,UAAS;IACxB,kBAAkB,SAAK;IACvB,iBAAiB,UAAS;IAC1B,WAAW,UAAS;IACpB,QAAQ,UAAS;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,gBAAgB,SAAK;IACrB,kBAAkB,SAAK;gBAEX,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAKrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferUploadStateFile.js","sourceRoot":"","sources":["../../../../src/uploader/state/transferUploadStateFile.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC/B,UAAU,CAAkB;IAC5B,eAAe,CAAS;IACxB,QAAQ,CAAS;IAC1B,eAAe,GAAG,KAAK,CAAC;IACxB,kBAAkB,GAAG,CAAC,CAAC;IACvB,WAAW,GAAG,KAAK,CAAC;IACpB,QAAQ,GAAG,KAAK,CAAC;IACjB,YAAY,GAAkB,IAAI,CAAC;IACnC,gBAAgB,GAAG,CAAC,CAAC;IACrB,kBAAkB,GAAG,CAAC,CAAC;IAEvB,YAAY,UAA2B,EAAE,eAAuB,EAAE,QAAgB;QAC9E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ","sourcesContent":["export default class TransferUploadStateFile {\n readonly externalId: string | number;\n readonly fileSizeInBytes: number;\n readonly fileName: string;\n isBeingUploaded = false;\n runningChunksCount = 0;\n isCompleted = false;\n isFailed = false;\n failedReason: string | null = null;\n failedBytesCount = 0;\n uploadedBytesCount = 0;\n\n constructor(externalId: string | number, fileSizeInBytes: number, fileName: string) {\n this.externalId = externalId;\n this.fileSizeInBytes = fileSizeInBytes;\n this.fileName = fileName;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"transferUploadStateFile.js","sourceRoot":"","sources":["../../../../src/uploader/state/transferUploadStateFile.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC/B,UAAU,CAAkB;IAC5B,eAAe,CAAS;IACxB,QAAQ,CAAS;IAC1B,eAAe,GAAG,KAAK,CAAC;IACxB,kBAAkB,GAAG,CAAC,CAAC;IACvB,iBAAiB,GAAG,KAAK,CAAC;IAC1B,WAAW,GAAG,KAAK,CAAC;IACpB,QAAQ,GAAG,KAAK,CAAC;IACjB,YAAY,GAAkB,IAAI,CAAC;IACnC,gBAAgB,GAAG,CAAC,CAAC;IACrB,kBAAkB,GAAG,CAAC,CAAC;IAEvB,YAAY,UAA2B,EAAE,eAAuB,EAAE,QAAgB;QAC9E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ","sourcesContent":["export default class TransferUploadStateFile {\n readonly externalId: string | number;\n readonly fileSizeInBytes: number;\n readonly fileName: string;\n isBeingUploaded = false;\n runningChunksCount = 0;\n isUploadCompleted = false;\n isCompleted = false;\n isFailed = false;\n failedReason: string | null = null;\n failedBytesCount = 0;\n uploadedBytesCount = 0;\n\n constructor(externalId: string | number, fileSizeInBytes: number, fileName: string) {\n this.externalId = externalId;\n this.fileSizeInBytes = fileSizeInBytes;\n this.fileName = fileName;\n }\n}\n"]}
|
|
@@ -11,13 +11,15 @@ import type FileChunkUploadFailedEventArgs from './eventArgs/fileChunkUploadFail
|
|
|
11
11
|
import type FileUploadEventArgs from './eventArgs/fileUploadEventArgs.js';
|
|
12
12
|
import type TransferUploadCompletedEventArgs from './eventArgs/transferUploadCompletedEventArgs.js';
|
|
13
13
|
import type FileUploadFailedEventArgs from './eventArgs/fileUploadFailedEventArgs.js';
|
|
14
|
+
import type FileAckFailedEventArgs from './eventArgs/fileAckFailedEventArgs.js';
|
|
15
|
+
import type FilesBatchAckFailedEventArgs from './eventArgs/filesBatchAckFailedEventArgs.js';
|
|
16
|
+
import type TransferUploadAcker from './transferUploadAcker.js';
|
|
14
17
|
import type TransferUploadProgressedEventArgs from './eventArgs/transferUploadProgressedEventArgs.js';
|
|
15
18
|
import type FileChunkUploadProgressedEventArgs from './eventArgs/fileChunkUploadProgressedEventArgs.js';
|
|
16
19
|
import type UploaderChunkStreamProviderFactory from './chunkStreamProviderFactory/uploaderChunkStreamProviderFactory.js';
|
|
17
20
|
import type TransferUploadConfig from './options/transferUploadConfig.js';
|
|
18
21
|
import type { PauseSignal } from './pauseController.js';
|
|
19
|
-
import type
|
|
20
|
-
import type UploadOptimizer from './optimizer/uploadOptimizer.js';
|
|
22
|
+
import type ConcurrencyController from '../utils/concurrencyController/concurrencyController.js';
|
|
21
23
|
import type FileChunkUploadCompletedPartiallyEventArgs from './eventArgs/fileChunkUploadCompletedPartiallyEventArgs.js';
|
|
22
24
|
import type FileChunkUploadCompletedEventArgs from './eventArgs/fileChunkUploadCompletedEventArgs.js';
|
|
23
25
|
import type TransferMetadataDeterminedEventArgs from './eventArgs/transferMetadataDeterminedEventArgs.js';
|
|
@@ -36,29 +38,29 @@ export default class TransferUpload<T extends FileDetails> {
|
|
|
36
38
|
get files(): readonly Readonly<T>[];
|
|
37
39
|
get totalSizeInBytes(): number;
|
|
38
40
|
get transferId(): string | undefined;
|
|
39
|
-
constructor(chunkStreamProviderFactory: UploaderChunkStreamProviderFactory<T>, apiClient: ApiClient, fileServerClientFactory: FileServerClientFactory, eventsEngine: EventsEngine, info: TransferUploadInfo<T> | TransferUploadAppendInfo<T>, config: TransferUploadConfig,
|
|
41
|
+
constructor(chunkStreamProviderFactory: UploaderChunkStreamProviderFactory<T>, apiClient: ApiClient, fileServerClientFactory: FileServerClientFactory, eventsEngine: EventsEngine, info: TransferUploadInfo<T> | TransferUploadAppendInfo<T>, config: TransferUploadConfig, concurrencyController: ConcurrencyController, cryptography: CryptographyProvider, acker: TransferUploadAcker);
|
|
40
42
|
private isUploadAppend;
|
|
41
43
|
private isUploadAppendInfo;
|
|
44
|
+
private registerFilesAndCreateTransferMetadataFromInfo;
|
|
42
45
|
private createTransferMetadataFromInfo;
|
|
43
46
|
run(transferPauseSignal: PauseSignal, transferAbortSignal: AbortSignal): Promise<void>;
|
|
44
47
|
private notifyMetadataDetermined;
|
|
45
|
-
private pingServerAndChooseUploadMode;
|
|
46
|
-
private getPingTimeout;
|
|
47
|
-
private serverUdpHandshake;
|
|
48
|
-
private getHandshakeTimeout;
|
|
49
48
|
private sendChunkAndKeepUpdatingState;
|
|
50
49
|
private sendChunk;
|
|
51
|
-
private sendChunkUsingUdp;
|
|
52
|
-
private sendChunkUsingTcp;
|
|
53
50
|
private getChunkFailedReason;
|
|
54
51
|
private throwIfNotPossibleToRun;
|
|
55
52
|
private addPauseAndStopListeners;
|
|
56
53
|
private removePauseAndStopListeners;
|
|
57
|
-
private
|
|
54
|
+
private shouldStopProcessing;
|
|
58
55
|
private isFailureAbortRequested;
|
|
59
56
|
private startApiTransferAndCreateMetadata;
|
|
57
|
+
private registerTransferFilesWithValidation;
|
|
58
|
+
private joinTransferPath;
|
|
59
|
+
private getRegisteredFile;
|
|
60
|
+
private enqueueFileAck;
|
|
61
|
+
private hasUnackedFiles;
|
|
62
|
+
private isLegacyTransfer;
|
|
60
63
|
private generateEncryptionDataAndIvSaltHmacHex;
|
|
61
|
-
private getResponseOrForcedUdpData;
|
|
62
64
|
private finalizeTransfer;
|
|
63
65
|
private resetApiTransfer;
|
|
64
66
|
private finalizeApiTransfer;
|
|
@@ -67,8 +69,10 @@ export default class TransferUpload<T extends FileDetails> {
|
|
|
67
69
|
private throwIfInWrongStateToCancel;
|
|
68
70
|
private cancelApiTransfer;
|
|
69
71
|
addEventListener(eventName: TransferUploadEvent.TransferRun | TransferUploadEvent.TransferPauseRequested | TransferUploadEvent.TransferPaused | TransferUploadEvent.TransferAbortRequested | TransferUploadEvent.TransferAborted | TransferUploadEvent.TransferCancelRequested | TransferUploadEvent.TransferCanceled | TransferUploadEvent.TransferFailed, handler: () => void): void;
|
|
70
|
-
addEventListener(eventName: TransferUploadEvent.FileUploadStarted | TransferUploadEvent.FileUploadCompleted, handler: (event: FileUploadEventArgs) => void): void;
|
|
72
|
+
addEventListener(eventName: TransferUploadEvent.FileUploadStarted | TransferUploadEvent.FileUploadCompleted | TransferUploadEvent.FileCompleted, handler: (event: FileUploadEventArgs) => void): void;
|
|
71
73
|
addEventListener(eventName: TransferUploadEvent.FileUploadFailed, handler: (event: FileUploadFailedEventArgs) => void): void;
|
|
74
|
+
addEventListener(eventName: TransferUploadEvent.FileAckFailed, handler: (event: FileAckFailedEventArgs) => void): void;
|
|
75
|
+
addEventListener(eventName: TransferUploadEvent.FilesBatchAckFailed, handler: (event: FilesBatchAckFailedEventArgs) => void): void;
|
|
72
76
|
addEventListener(eventName: TransferUploadEvent.FileChunkUploadProgressed, handler: (event: FileChunkUploadProgressedEventArgs) => void): void;
|
|
73
77
|
addEventListener(eventName: TransferUploadEvent.FileChunkUploadStarted, handler: (event: FileChunkUploadEventArgs) => void): void;
|
|
74
78
|
addEventListener(eventName: TransferUploadEvent.FileChunkUploadCompleted, handler: (event: FileChunkUploadCompletedEventArgs) => void): void;
|
|
@@ -76,13 +80,12 @@ export default class TransferUpload<T extends FileDetails> {
|
|
|
76
80
|
addEventListener(eventName: TransferUploadEvent.FileChunkUploadFailed, handler: (event: FileChunkUploadFailedEventArgs) => void): void;
|
|
77
81
|
addEventListener(eventName: TransferUploadEvent.TransferProgressed, handler: (event: TransferUploadProgressedEventArgs) => void): void;
|
|
78
82
|
addEventListener(eventName: TransferUploadEvent.TransferCompleted, handler: (event: TransferUploadCompletedEventArgs) => void): void;
|
|
79
|
-
addEventListener(eventName: TransferUploadEvent.TransferUploadModeChosen, handler: (event: TransferUploadModeChosenEventArgs) => void): void;
|
|
80
83
|
addEventListener(eventName: TransferUploadEvent.TransferMetadataDetermined, handler: (event: TransferMetadataDeterminedEventArgs) => void): void;
|
|
81
84
|
addEventListener(eventName: string, handler: (arg?: any) => void): void;
|
|
82
85
|
exportAsString(): string;
|
|
83
86
|
export(): TransferUploadExportData<T>;
|
|
84
87
|
private getTransferMetadataExportValue;
|
|
85
|
-
static recreate<T extends FileDetails>(transferExportData: TransferUploadExportData<T>, config: TransferUploadConfig, chunkStreamProviderFactory: UploaderChunkStreamProviderFactory<T>, apiClient: ApiClient, fileServerClientFactory: FileServerClientFactory, eventsEngine: EventsEngine,
|
|
88
|
+
static recreate<T extends FileDetails>(transferExportData: TransferUploadExportData<T>, config: TransferUploadConfig, chunkStreamProviderFactory: UploaderChunkStreamProviderFactory<T>, apiClient: ApiClient, fileServerClientFactory: FileServerClientFactory, eventsEngine: EventsEngine, concurrencyController: ConcurrencyController, cryptography: CryptographyProvider, acker: TransferUploadAcker): TransferUpload<T>;
|
|
86
89
|
private static recreateTransferMetadata;
|
|
87
90
|
private static validateRecreateParams;
|
|
88
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferUpload.d.ts","sourceRoot":"","sources":["../../../src/uploader/transferUpload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transferUpload.d.ts","sourceRoot":"","sources":["../../../src/uploader/transferUpload.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAU3D,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AAGvD,OAAO,KAAK,uBAAuB,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,WAAW,MAAM,oCAAoC,CAAC;AAElE,OAAO,KAAK,kBAAkB,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,wBAAwB,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,8BAA8B,MAAM,+CAA+C,CAAC;AAGhG,OAAO,KAAK,mBAAmB,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,gCAAgC,MAAM,iDAAiD,CAAC;AAGpG,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,sBAAsB,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,4BAA4B,MAAM,6CAA6C,CAAC;AAC5F,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,iCAAiC,MAAM,kDAAkD,CAAC;AACtG,OAAO,KAAK,kCAAkC,MAAM,mDAAmD,CAAC;AACxG,OAAO,KAAK,kCAAkC,MAAM,oEAAoE,CAAC;AACzH,OAAO,KAAK,oBAAoB,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,qBAAqB,MAAM,yDAAyD,CAAC;AACjG,OAAO,KAAK,0CAA0C,MAAM,2DAA2D,CAAC;AACxH,OAAO,KAAK,iCAAiC,MAAM,kDAAkD,CAAC;AACtG,OAAO,KAAK,mCAAmC,MAAM,oDAAoD,CAAC;AAC1G,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAoC,MAAM,sCAAsC,CAAC;AAIvH,MAAM,CAAC,OAAO,OAAO,cAAc,CAAC,CAAC,SAAS,WAAW;;IAuBrD,kBAAkB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7C,kBAAkB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAI7C,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,oBAAoB,IAAI,MAAM,CAKjC;IAED,IAAI,KAAK,IAAI,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAElC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;gBAEW,0BAA0B,EAAE,kCAAkC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,EAAE,mBAAmB;IAiBxX,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,kBAAkB;YAIZ,8CAA8C;IAW5D,OAAO,CAAC,8BAA8B;IAahC,GAAG,CAAC,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsH5F,OAAO,CAAC,wBAAwB;YAalB,6BAA6B;YA8C7B,SAAS;IAevB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,uBAAuB;YAIjB,iCAAiC;YA+CjC,mCAAmC;IAgCjD,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,gBAAgB;YAIV,sCAAsC;YAoBtC,gBAAgB;YAShB,gBAAgB;YAahB,mBAAmB;IAmB3B,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCtD,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,2BAA2B;YAWrB,iBAAiB;IAc/B,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,WAAW,GAAG,mBAAmB,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,cAAc,GAAG,mBAAmB,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,eAAe,GAAG,mBAAmB,CAAC,uBAAuB,GAAG,mBAAmB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IACtX,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,IAAI;IACrM,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,GAAG,IAAI;IAC5H,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI;IACtH,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GAAG,IAAI;IAClI,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,kCAAkC,KAAK,IAAI,GAAG,IAAI;IAC9I,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,sBAAsB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,GAAG,IAAI;IACjI,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,wBAAwB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,iCAAiC,KAAK,IAAI,GAAG,IAAI;IAC5I,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,iCAAiC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,0CAA0C,KAAK,IAAI,GAAG,IAAI;IAC9J,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,8BAA8B,KAAK,IAAI,GAAG,IAAI;IACtI,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,iCAAiC,KAAK,IAAI,GAAG,IAAI;IACtI,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,IAAI,GAAG,IAAI;IACpI,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,0BAA0B,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,IAAI,GAAG,IAAI;IAChJ,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAKvE,cAAc,IAAI,MAAM;IAKxB,MAAM,IAAI,wBAAwB,CAAC,CAAC,CAAC;IAWrC,OAAO,CAAC,8BAA8B;IAgBtC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,kBAAkB,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,kCAAkC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC,CAAC;IAmB7Z,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAgBvC,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAiBxC"}
|