filemail-sdk 9.0.7 → 9.0.8

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.
Files changed (86) hide show
  1. package/dist/src/client/downloader/node/nodeTransferDownloader.d.ts +2 -2
  2. package/dist/src/client/downloader/node/nodeTransferDownloader.d.ts.map +1 -1
  3. package/dist/src/client/downloader/node/nodeTransferDownloader.js.map +1 -1
  4. package/dist/src/client/downloader/transferDownloader.d.ts +2 -2
  5. package/dist/src/client/downloader/transferDownloader.d.ts.map +1 -1
  6. package/dist/src/client/downloader/transferDownloader.js.map +1 -1
  7. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorHealthyEventArgs.d.ts +9 -0
  8. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorHealthyEventArgs.d.ts.map +1 -0
  9. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorHealthyEventArgs.js +2 -0
  10. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorHealthyEventArgs.js.map +1 -0
  11. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorUnhealthyEventArgs.d.ts +19 -0
  12. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorUnhealthyEventArgs.d.ts.map +1 -0
  13. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorUnhealthyEventArgs.js +2 -0
  14. package/dist/src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorUnhealthyEventArgs.js.map +1 -0
  15. package/dist/src/client/uploader/healthMonitor/events/transferUploadHealthMonitorEvent.d.ts +6 -0
  16. package/dist/src/client/uploader/healthMonitor/events/transferUploadHealthMonitorEvent.d.ts.map +1 -0
  17. package/dist/src/client/uploader/healthMonitor/events/transferUploadHealthMonitorEvent.js +7 -0
  18. package/dist/src/client/uploader/healthMonitor/events/transferUploadHealthMonitorEvent.js.map +1 -0
  19. package/dist/src/client/uploader/healthMonitor/onlineChecker/nodeOnlineChecker.d.ts +5 -0
  20. package/dist/src/client/uploader/healthMonitor/onlineChecker/nodeOnlineChecker.d.ts.map +1 -0
  21. package/dist/src/client/uploader/healthMonitor/onlineChecker/nodeOnlineChecker.js +7 -0
  22. package/dist/src/client/uploader/healthMonitor/onlineChecker/nodeOnlineChecker.js.map +1 -0
  23. package/dist/src/client/uploader/healthMonitor/onlineChecker/onlineChecker.d.ts +14 -0
  24. package/dist/src/client/uploader/healthMonitor/onlineChecker/onlineChecker.d.ts.map +1 -0
  25. package/dist/src/client/uploader/healthMonitor/onlineChecker/onlineChecker.js +30 -0
  26. package/dist/src/client/uploader/healthMonitor/onlineChecker/onlineChecker.js.map +1 -0
  27. package/dist/src/client/uploader/healthMonitor/onlineChecker/webOnlineChecker.d.ts +5 -0
  28. package/dist/src/client/uploader/healthMonitor/onlineChecker/webOnlineChecker.d.ts.map +1 -0
  29. package/dist/src/client/uploader/healthMonitor/onlineChecker/webOnlineChecker.js +9 -0
  30. package/dist/src/client/uploader/healthMonitor/onlineChecker/webOnlineChecker.js.map +1 -0
  31. package/dist/src/client/uploader/healthMonitor/transferUploadHealthMonitor.d.ts +30 -0
  32. package/dist/src/client/uploader/healthMonitor/transferUploadHealthMonitor.d.ts.map +1 -0
  33. package/dist/src/client/uploader/healthMonitor/transferUploadHealthMonitor.js +158 -0
  34. package/dist/src/client/uploader/healthMonitor/transferUploadHealthMonitor.js.map +1 -0
  35. package/dist/src/client/uploader/node/nodeTransferUploader.d.ts.map +1 -1
  36. package/dist/src/client/uploader/node/nodeTransferUploader.js +4 -1
  37. package/dist/src/client/uploader/node/nodeTransferUploader.js.map +1 -1
  38. package/dist/src/client/uploader/transferUploaderBase.d.ts +3 -1
  39. package/dist/src/client/uploader/transferUploaderBase.d.ts.map +1 -1
  40. package/dist/src/client/uploader/transferUploaderBase.js +8 -1
  41. package/dist/src/client/uploader/transferUploaderBase.js.map +1 -1
  42. package/dist/src/client/uploader/web/webTransferUploader.d.ts.map +1 -1
  43. package/dist/src/client/uploader/web/webTransferUploader.js +4 -1
  44. package/dist/src/client/uploader/web/webTransferUploader.js.map +1 -1
  45. package/dist/src/downloader/downloadStatus/downloadState.d.ts +1 -1
  46. package/dist/src/downloader/downloadStatus/downloadState.d.ts.map +1 -1
  47. package/dist/src/downloader/downloadStatus/downloadState.js +2 -2
  48. package/dist/src/downloader/downloadStatus/downloadState.js.map +1 -1
  49. package/dist/src/downloader/dtos/downloadEvent.d.ts +1 -1
  50. package/dist/src/downloader/dtos/downloadEvent.d.ts.map +1 -1
  51. package/dist/src/downloader/dtos/downloadEvent.js +1 -1
  52. package/dist/src/downloader/dtos/downloadEvent.js.map +1 -1
  53. package/dist/src/downloader/eventArgs/downloadMetadataDeterminedEventArgs.d.ts +6 -0
  54. package/dist/src/downloader/eventArgs/downloadMetadataDeterminedEventArgs.d.ts.map +1 -0
  55. package/dist/src/downloader/eventArgs/downloadMetadataDeterminedEventArgs.js +2 -0
  56. package/dist/src/downloader/eventArgs/downloadMetadataDeterminedEventArgs.js.map +1 -0
  57. package/dist/src/downloader/filesDownloader.js +1 -1
  58. package/dist/src/downloader/filesDownloader.js.map +1 -1
  59. package/dist/src/index.d.ts +8 -1
  60. package/dist/src/index.d.ts.map +1 -1
  61. package/dist/src/index.js +5 -0
  62. package/dist/src/index.js.map +1 -1
  63. package/dist/src/index.node.d.ts +1 -1
  64. package/dist/src/index.node.d.ts.map +1 -1
  65. package/dist/src/index.node.js.map +1 -1
  66. package/dist/src/uploader/eventArgs/transferMetadataDeterminedEventArgs.d.ts +7 -0
  67. package/dist/src/uploader/eventArgs/transferMetadataDeterminedEventArgs.d.ts.map +1 -0
  68. package/dist/src/uploader/eventArgs/transferMetadataDeterminedEventArgs.js +2 -0
  69. package/dist/src/uploader/eventArgs/transferMetadataDeterminedEventArgs.js.map +1 -0
  70. package/dist/src/uploader/transferUpload.d.ts +3 -3
  71. package/dist/src/uploader/transferUpload.d.ts.map +1 -1
  72. package/dist/src/uploader/transferUpload.js +9 -5
  73. package/dist/src/uploader/transferUpload.js.map +1 -1
  74. package/dist/src/uploader/transferUploadEvent.d.ts +1 -1
  75. package/dist/src/uploader/transferUploadEvent.d.ts.map +1 -1
  76. package/dist/src/uploader/transferUploadEvent.js +1 -1
  77. package/dist/src/uploader/transferUploadEvent.js.map +1 -1
  78. package/package.json +2 -1
  79. package/dist/src/downloader/eventArgs/downloadRegionDeterminedEventArgs.d.ts +0 -6
  80. package/dist/src/downloader/eventArgs/downloadRegionDeterminedEventArgs.d.ts.map +0 -1
  81. package/dist/src/downloader/eventArgs/downloadRegionDeterminedEventArgs.js +0 -2
  82. package/dist/src/downloader/eventArgs/downloadRegionDeterminedEventArgs.js.map +0 -1
  83. package/dist/src/uploader/eventArgs/transferRegionDeterminedEventArgs.d.ts +0 -5
  84. package/dist/src/uploader/eventArgs/transferRegionDeterminedEventArgs.d.ts.map +0 -1
  85. package/dist/src/uploader/eventArgs/transferRegionDeterminedEventArgs.js +0 -2
  86. package/dist/src/uploader/eventArgs/transferRegionDeterminedEventArgs.js.map +0 -1
@@ -15,7 +15,7 @@ import type DownloadInfo from "../../../downloader/dtos/downloadInfo.js";
15
15
  import type DownloadCommand from "../../../downloader/dtos/downloadCommand.js";
16
16
  import type DownloadFilesCommand from "../../../downloader/dtos/downloadFilesCommand.js";
17
17
  import type DownloadTrackingFailedEventArgs from "../../../downloader/eventArgs/downloadTrackingFailedEventArgs.js";
18
- import type DownloadRegionDeterminedEventArgs from '../../../downloader/eventArgs/downloadRegionDeterminedEventArgs.js';
18
+ import type DownloadMetadataDeterminedEventArgs from '../../../downloader/eventArgs/downloadMetadataDeterminedEventArgs.js';
19
19
  export default class NodeTransferDownloader implements TransferDownloader {
20
20
  #private;
21
21
  constructor(options: DownloadOptions, envValues: EnvironmentVariables, logger: Logger);
@@ -30,7 +30,7 @@ export default class NodeTransferDownloader implements TransferDownloader {
30
30
  addEventListener(eventName: TransferDownloadEvent.DownloadCompleted, handler: (args: DownloadCompletedEventArgs) => void): void;
31
31
  addEventListener(eventName: TransferDownloadEvent.Pausing | TransferDownloadEvent.Paused, handler: (args: DownloadPauseEventArgs) => void): void;
32
32
  addEventListener(eventName: TransferDownloadEvent.NetworkFailure | TransferDownloadEvent.NetworkOk, handler: () => void): void;
33
- addEventListener(eventName: TransferDownloadEvent.TransferRegionDetermined, handler: (args: DownloadRegionDeterminedEventArgs) => void): void;
33
+ addEventListener(eventName: TransferDownloadEvent.TransferMetadataDetermined, handler: (args: DownloadMetadataDeterminedEventArgs) => void): void;
34
34
  addEventListener(eventName: TransferDownloadEvent.ChunkDownloadStarted | TransferDownloadEvent.ChunkDownloadProgressed | TransferDownloadEvent.ChunkDownloadCompleted, handler: (args: ChunkDownloadEventArgs) => void): void;
35
35
  addEventListener(eventName: TransferDownloadEvent.ChunkDownloadFailed, handler: (args: ChunkDownloadFailedEventArgs) => void): void;
36
36
  addEventListener(eventName: TransferDownloadEvent.PossibleSupersizedFile | TransferDownloadEvent.FileDownloadStarted | TransferDownloadEvent.FileDownloadProgressed | TransferDownloadEvent.FileDownloadCompleting | TransferDownloadEvent.FileDownloadCompleted, handler: (args: FileDownloadEventArgs) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTransferDownloader.d.ts","sourceRoot":"","sources":["../../../../../src/client/downloader/node/nodeTransferDownloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeTransferDownloader.d.ts","sourceRoot":"","sources":["../../../../../src/client/downloader/node/nodeTransferDownloader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTransferDownloader.js","sourceRoot":"","sources":["../../../../../src/client/downloader/node/nodeTransferDownloader.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 as guid } from 'uuid';\r\n\r\nimport DownloadOptions from \"../../../downloader/downloadOptions.js\";\r\nimport DownloaderCore from \"../downloaderCore.js\";\r\nimport TransferDownloadEvent from \"../../../downloader/dtos/downloadEvent.js\";\r\nimport NodeFileServerClientFactory from \"../../../utils/api/node/nodeFileServerClientFactory.js\";\r\nimport NodeChunkStreamProviderFactory from \"../../../utils/fileSystem/node/nodeChunkStreamProviderFactory.js\";\r\nimport NodeFileSystemService from \"../../../utils/fileSystem/node/nodeFileSystemService.js\";\r\nimport NodeApiClient from \"../../../utils/api/node/nodeApiClient.js\";\r\nimport NodeEventsEngine from '../../../utils/events/node/nodeEventsEngine.js';\r\nimport DownloadLogger from \"../../../downloader/downloadLogger.js\";\r\nimport NodeCryptographyProvider from '../../../utils/crypto/node/nodeCryptographyProvider.js';\r\n\r\nimport type EnvironmentVariables from \"../../environmentVariables.js\";\r\nimport type TransferDownloader from \"../transferDownloader.js\";\r\nimport type DownloadEventArgs from '../../../downloader/eventArgs/downloadEventArgs.js';\r\nimport type FileDownloadEventArgs from '../../../downloader/eventArgs/fileDownloadEventArgs.js';\r\nimport type FileDownloadFailedEventArgs from '../../../downloader/eventArgs/fileDownloadFailedEventArgs.js';\r\nimport type TransferStatus from '../../../utils/types/transferStatus.js';\r\nimport type ChunkDownloadEventArgs from '../../../downloader/eventArgs/chunkDownloadEventArgs.js';\r\nimport type ChunkDownloadFailedEventArgs from '../../../downloader/eventArgs/chunkDownloadFailedEventArgs.js';\r\nimport type DownloadCompletedEventArgs from '../../../downloader/eventArgs/downloadCompletedEventArgs.js';\r\nimport type DownloadPauseEventArgs from \"../../../downloader/eventArgs/downloadPauseEventArgs.js\";\r\nimport type Logger from \"../../loggers/logger.js\";\r\nimport type DownloadInfo from \"../../../downloader/dtos/downloadInfo.js\";\r\nimport type DownloadCommand from \"../../../downloader/dtos/downloadCommand.js\";\r\nimport type DownloadFilesCommand from \"../../../downloader/dtos/downloadFilesCommand.js\";\r\nimport type DownloadTrackingFailedEventArgs from \"../../../downloader/eventArgs/downloadTrackingFailedEventArgs.js\";\r\nimport type DownloadRegionDeterminedEventArgs from '../../../downloader/eventArgs/downloadRegionDeterminedEventArgs.js';\r\n\r\nexport default class NodeTransferDownloader implements TransferDownloader {\r\n readonly #eventsEngine: NodeEventsEngine;\r\n readonly #downloader: DownloaderCore;\r\n readonly #logger: DownloadLogger;\r\n\r\n constructor(options: DownloadOptions, envValues: EnvironmentVariables, logger: Logger) {\r\n const optionsResolved = this.#buildOptions(options);\r\n\r\n const apiClient = new NodeApiClient(envValues.apiBaseUrl, envValues.source, envValues.sourceDetails, optionsResolved.apiRequestTotalTimeoutInMs, optionsResolved.apiRetryLimit);\r\n if (optionsResolved.logintoken)\r\n apiClient.setLoginToken(optionsResolved.logintoken);\r\n\r\n const chunkProvider = new NodeChunkStreamProviderFactory();\r\n const fileserverClientFactory = new NodeFileServerClientFactory(envValues.source, envValues.sourceDetails, optionsResolved.fileserverDownloadIdleTimeMs!, optionsResolved.fileserverAttemptLimit!);\r\n const fileSystem = new NodeFileSystemService();\r\n const cryptography = new NodeCryptographyProvider();\r\n this.#logger = new DownloadLogger(logger, optionsResolved.trackingId!);\r\n this.#eventsEngine = new NodeEventsEngine();\r\n this.#downloader = new DownloaderCore(optionsResolved, this.#logger, apiClient, chunkProvider, fileserverClientFactory, fileSystem, this.#eventsEngine, cryptography);\r\n\r\n this.addEventListener(TransferDownloadEvent.DownloadStarted, args => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { files, ...downloadInfoWithoutFiles } = args;\r\n this.#logger.logInfo(`Download started`, downloadInfoWithoutFiles);\r\n });\r\n this.addEventListener(TransferDownloadEvent.Aborting, args => this.#logger.logInfo(`Download aborting ${args.transferId} / ${args.downloadId}`));\r\n this.addEventListener(TransferDownloadEvent.Aborted, args => this.#logger.logInfo(`Download aborted ${args.transferId} / ${args.downloadId}`));\r\n this.addEventListener(TransferDownloadEvent.Pausing, args => this.#logger.logInfo(`Download pausing ${args.transferId} / ${args.downloadId} / interrupt:${args.interruptPendingChunks}`));\r\n this.addEventListener(TransferDownloadEvent.Paused, args => this.#logger.logInfo(`Download paused ${args.transferId} / ${args.downloadId} / interrupt:${args.interruptPendingChunks}`));\r\n this.addEventListener(TransferDownloadEvent.RecoveredInterruptedDownload, args => this.#logger.logInfo(`Download recovered ${args.transferId} / ${args.downloadId}`));\r\n this.addEventListener(TransferDownloadEvent.DownloadCompleted, args => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { files, ...downloadInfoWithoutFiles } = args;\r\n this.#logger.logInfo(`Download completed`, downloadInfoWithoutFiles);\r\n });\r\n this.addEventListener(TransferDownloadEvent.FileDownloadStarted, args => this.#logger.logDebug(`File download started`, args));\r\n this.addEventListener(TransferDownloadEvent.FileDownloadCompleted, args => this.#logger.logDebug(`File download completed`, args));\r\n this.addEventListener(TransferDownloadEvent.FileDownloadFailed, args => {\r\n const { reason, ...errorInfoWithoutException } = args;\r\n this.#logger.logError(reason, `File download failed`, errorInfoWithoutException);\r\n });\r\n this.addEventListener(TransferDownloadEvent.DownloadTrackingFailed, args => {\r\n const { error, ...errorInfoWithoutException } = args;\r\n if (error)\r\n this.#logger.logError(error, `Progress tracking failed`, errorInfoWithoutException);\r\n else\r\n this.#logger.logWarning(`Progress tracking failed`, errorInfoWithoutException);\r\n });\r\n }\r\n\r\n #buildOptions(options: DownloadOptions) {\r\n const opts = { ...new DownloadOptions(), ...options };\r\n if (!opts.trackingId)\r\n opts.trackingId = guid();\r\n return opts;\r\n }\r\n\r\n get status(): TransferStatus | null {\r\n return this.#downloader.status;\r\n }\r\n\r\n get state(): DownloadEventArgs | null {\r\n return this.#downloader.state;\r\n }\r\n\r\n get downloadId(): string | undefined {\r\n return this.#downloader.downloadId;\r\n }\r\n\r\n async pause(): Promise<boolean> {\r\n return await this.#downloader.pause({ interruptPendingChunks: false });\r\n }\r\n\r\n async stop(): Promise<boolean> {\r\n return await this.#downloader.pause({ interruptPendingChunks: true });\r\n }\r\n\r\n resume(): boolean {\r\n return this.#downloader.resume();\r\n }\r\n\r\n abort(): boolean {\r\n return this.#downloader.abort();\r\n }\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.Aborting |\r\n TransferDownloadEvent.Aborted |\r\n TransferDownloadEvent.Resumed |\r\n TransferDownloadEvent.RecoveredInterruptedDownload |\r\n TransferDownloadEvent.DownloadStarted |\r\n TransferDownloadEvent.DownloadProgressed, handler: (args: DownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.DownloadCompleted, handler: (args: DownloadCompletedEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.Pausing | TransferDownloadEvent.Paused, handler: (args: DownloadPauseEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.NetworkFailure | TransferDownloadEvent.NetworkOk, handler: () => void): void\r\n addEventListener(eventName: TransferDownloadEvent.TransferRegionDetermined, handler: (args: DownloadRegionDeterminedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.ChunkDownloadStarted |\r\n TransferDownloadEvent.ChunkDownloadProgressed |\r\n TransferDownloadEvent.ChunkDownloadCompleted, handler: (args: ChunkDownloadEventArgs) => void): void;\r\n\r\n addEventListener(eventName: TransferDownloadEvent.ChunkDownloadFailed, handler: (args: ChunkDownloadFailedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.PossibleSupersizedFile |\r\n TransferDownloadEvent.FileDownloadStarted |\r\n TransferDownloadEvent.FileDownloadProgressed |\r\n TransferDownloadEvent.FileDownloadCompleting |\r\n TransferDownloadEvent.FileDownloadCompleted, handler: (args: FileDownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.FileDownloadFailed, handler: (args: FileDownloadFailedEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.DownloadTrackingFailed, handler: (args: DownloadTrackingFailedEventArgs) => void): void\r\n\r\n addEventListener(eventName: string, handler: (args?: any) => void): void {\r\n this.#eventsEngine.addEventListener(eventName, handler);\r\n }\r\n\r\n async downloadAllFiles(command: DownloadCommand): Promise<DownloadInfo> {\r\n return this.#downloader.downloadAllFiles(command);\r\n }\r\n\r\n async downloadAllFilesZipped(command: DownloadCommand): Promise<DownloadInfo> {\r\n return this.#downloader.downloadAllFilesZipped(command);\r\n }\r\n\r\n async downloadSpecificFiles(command: DownloadFilesCommand): Promise<DownloadInfo> {\r\n return this.#downloader.downloadSpecificFiles(command);\r\n }\r\n\r\n async restartFailedDownloader(): Promise<DownloadInfo> {\r\n return this.#downloader.restartFailedDownloader();\r\n }\r\n\r\n async recoverInterruptedDownload(downloadId: string): Promise<DownloadInfo> {\r\n return this.#downloader.recoverInterruptedDownload(downloadId);\r\n }\r\n\r\n async cleanupDownload(downloadId: string | null = null) {\r\n await this.#downloader.cleanupDownload(downloadId);\r\n }\r\n}"]}
1
+ {"version":3,"file":"nodeTransferDownloader.js","sourceRoot":"","sources":["../../../../../src/client/downloader/node/nodeTransferDownloader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAC9E,OAAO,2BAA2B,MAAM,wDAAwD,CAAC;AACjG,OAAO,8BAA8B,MAAM,kEAAkE,CAAC;AAC9G,OAAO,qBAAqB,MAAM,yDAAyD,CAAC;AAC5F,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,gBAAgB,MAAM,gDAAgD,CAAC;AAC9E,OAAO,cAAc,MAAM,uCAAuC,CAAC;AACnE,OAAO,wBAAwB,MAAM,wDAAwD,CAAC;AAmB9F,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAC9B,aAAa,CAAmB;IAChC,WAAW,CAAiB;IAC5B,OAAO,CAAiB;IAEjC,YAAY,OAAwB,EAAE,SAA+B,EAAE,MAAc;QACjF,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,0BAA0B,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAChL,IAAI,eAAe,CAAC,UAAU;YAC1B,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,IAAI,8BAA8B,EAAE,CAAC;QAC3D,MAAM,uBAAuB,GAAG,IAAI,2BAA2B,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,4BAA6B,EAAE,eAAe,CAAC,sBAAuB,CAAC,CAAC;QACnM,MAAM,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,UAAW,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAEtK,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE;YAChE,6DAA6D;YAC7D,MAAM,EAAE,KAAK,EAAE,GAAG,wBAAwB,EAAE,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjJ,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC/I,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,UAAU,gBAAgB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAC1L,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,UAAU,gBAAgB,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACxL,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtK,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE;YAClE,6DAA6D;YAC7D,MAAM,EAAE,KAAK,EAAE,GAAG,wBAAwB,EAAE,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/H,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC;QACnI,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE;YACnE,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAyB,EAAE,GAAG,IAAI,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,EAAE,yBAAyB,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE;YACvE,MAAM,EAAE,KAAK,EAAE,GAAG,yBAAyB,EAAE,GAAG,IAAI,CAAC;YACrD,IAAI,KAAK;gBACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;;gBAEpF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,OAAwB;QAClC,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,UAAU;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,KAAK;QACP,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,IAAI;QACN,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAgCD,gBAAgB,CAAC,SAAiB,EAAE,OAA6B;QAC7D,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAwB;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAwB;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAA6B;QACrD,OAAO,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,uBAAuB;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,UAAkB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,aAA4B,IAAI;QAClD,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;CACJ","sourcesContent":["import { v4 as guid } from 'uuid';\r\n\r\nimport DownloadOptions from \"../../../downloader/downloadOptions.js\";\r\nimport DownloaderCore from \"../downloaderCore.js\";\r\nimport TransferDownloadEvent from \"../../../downloader/dtos/downloadEvent.js\";\r\nimport NodeFileServerClientFactory from \"../../../utils/api/node/nodeFileServerClientFactory.js\";\r\nimport NodeChunkStreamProviderFactory from \"../../../utils/fileSystem/node/nodeChunkStreamProviderFactory.js\";\r\nimport NodeFileSystemService from \"../../../utils/fileSystem/node/nodeFileSystemService.js\";\r\nimport NodeApiClient from \"../../../utils/api/node/nodeApiClient.js\";\r\nimport NodeEventsEngine from '../../../utils/events/node/nodeEventsEngine.js';\r\nimport DownloadLogger from \"../../../downloader/downloadLogger.js\";\r\nimport NodeCryptographyProvider from '../../../utils/crypto/node/nodeCryptographyProvider.js';\r\n\r\nimport type EnvironmentVariables from \"../../environmentVariables.js\";\r\nimport type TransferDownloader from \"../transferDownloader.js\";\r\nimport type DownloadEventArgs from '../../../downloader/eventArgs/downloadEventArgs.js';\r\nimport type FileDownloadEventArgs from '../../../downloader/eventArgs/fileDownloadEventArgs.js';\r\nimport type FileDownloadFailedEventArgs from '../../../downloader/eventArgs/fileDownloadFailedEventArgs.js';\r\nimport type TransferStatus from '../../../utils/types/transferStatus.js';\r\nimport type ChunkDownloadEventArgs from '../../../downloader/eventArgs/chunkDownloadEventArgs.js';\r\nimport type ChunkDownloadFailedEventArgs from '../../../downloader/eventArgs/chunkDownloadFailedEventArgs.js';\r\nimport type DownloadCompletedEventArgs from '../../../downloader/eventArgs/downloadCompletedEventArgs.js';\r\nimport type DownloadPauseEventArgs from \"../../../downloader/eventArgs/downloadPauseEventArgs.js\";\r\nimport type Logger from \"../../loggers/logger.js\";\r\nimport type DownloadInfo from \"../../../downloader/dtos/downloadInfo.js\";\r\nimport type DownloadCommand from \"../../../downloader/dtos/downloadCommand.js\";\r\nimport type DownloadFilesCommand from \"../../../downloader/dtos/downloadFilesCommand.js\";\r\nimport type DownloadTrackingFailedEventArgs from \"../../../downloader/eventArgs/downloadTrackingFailedEventArgs.js\";\r\nimport type DownloadMetadataDeterminedEventArgs from '../../../downloader/eventArgs/downloadMetadataDeterminedEventArgs.js';\r\n\r\nexport default class NodeTransferDownloader implements TransferDownloader {\r\n readonly #eventsEngine: NodeEventsEngine;\r\n readonly #downloader: DownloaderCore;\r\n readonly #logger: DownloadLogger;\r\n\r\n constructor(options: DownloadOptions, envValues: EnvironmentVariables, logger: Logger) {\r\n const optionsResolved = this.#buildOptions(options);\r\n\r\n const apiClient = new NodeApiClient(envValues.apiBaseUrl, envValues.source, envValues.sourceDetails, optionsResolved.apiRequestTotalTimeoutInMs, optionsResolved.apiRetryLimit);\r\n if (optionsResolved.logintoken)\r\n apiClient.setLoginToken(optionsResolved.logintoken);\r\n\r\n const chunkProvider = new NodeChunkStreamProviderFactory();\r\n const fileserverClientFactory = new NodeFileServerClientFactory(envValues.source, envValues.sourceDetails, optionsResolved.fileserverDownloadIdleTimeMs!, optionsResolved.fileserverAttemptLimit!);\r\n const fileSystem = new NodeFileSystemService();\r\n const cryptography = new NodeCryptographyProvider();\r\n this.#logger = new DownloadLogger(logger, optionsResolved.trackingId!);\r\n this.#eventsEngine = new NodeEventsEngine();\r\n this.#downloader = new DownloaderCore(optionsResolved, this.#logger, apiClient, chunkProvider, fileserverClientFactory, fileSystem, this.#eventsEngine, cryptography);\r\n\r\n this.addEventListener(TransferDownloadEvent.DownloadStarted, args => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { files, ...downloadInfoWithoutFiles } = args;\r\n this.#logger.logInfo(`Download started`, downloadInfoWithoutFiles);\r\n });\r\n this.addEventListener(TransferDownloadEvent.Aborting, args => this.#logger.logInfo(`Download aborting ${args.transferId} / ${args.downloadId}`));\r\n this.addEventListener(TransferDownloadEvent.Aborted, args => this.#logger.logInfo(`Download aborted ${args.transferId} / ${args.downloadId}`));\r\n this.addEventListener(TransferDownloadEvent.Pausing, args => this.#logger.logInfo(`Download pausing ${args.transferId} / ${args.downloadId} / interrupt:${args.interruptPendingChunks}`));\r\n this.addEventListener(TransferDownloadEvent.Paused, args => this.#logger.logInfo(`Download paused ${args.transferId} / ${args.downloadId} / interrupt:${args.interruptPendingChunks}`));\r\n this.addEventListener(TransferDownloadEvent.RecoveredInterruptedDownload, args => this.#logger.logInfo(`Download recovered ${args.transferId} / ${args.downloadId}`));\r\n this.addEventListener(TransferDownloadEvent.DownloadCompleted, args => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { files, ...downloadInfoWithoutFiles } = args;\r\n this.#logger.logInfo(`Download completed`, downloadInfoWithoutFiles);\r\n });\r\n this.addEventListener(TransferDownloadEvent.FileDownloadStarted, args => this.#logger.logDebug(`File download started`, args));\r\n this.addEventListener(TransferDownloadEvent.FileDownloadCompleted, args => this.#logger.logDebug(`File download completed`, args));\r\n this.addEventListener(TransferDownloadEvent.FileDownloadFailed, args => {\r\n const { reason, ...errorInfoWithoutException } = args;\r\n this.#logger.logError(reason, `File download failed`, errorInfoWithoutException);\r\n });\r\n this.addEventListener(TransferDownloadEvent.DownloadTrackingFailed, args => {\r\n const { error, ...errorInfoWithoutException } = args;\r\n if (error)\r\n this.#logger.logError(error, `Progress tracking failed`, errorInfoWithoutException);\r\n else\r\n this.#logger.logWarning(`Progress tracking failed`, errorInfoWithoutException);\r\n });\r\n }\r\n\r\n #buildOptions(options: DownloadOptions) {\r\n const opts = { ...new DownloadOptions(), ...options };\r\n if (!opts.trackingId)\r\n opts.trackingId = guid();\r\n return opts;\r\n }\r\n\r\n get status(): TransferStatus | null {\r\n return this.#downloader.status;\r\n }\r\n\r\n get state(): DownloadEventArgs | null {\r\n return this.#downloader.state;\r\n }\r\n\r\n get downloadId(): string | undefined {\r\n return this.#downloader.downloadId;\r\n }\r\n\r\n async pause(): Promise<boolean> {\r\n return await this.#downloader.pause({ interruptPendingChunks: false });\r\n }\r\n\r\n async stop(): Promise<boolean> {\r\n return await this.#downloader.pause({ interruptPendingChunks: true });\r\n }\r\n\r\n resume(): boolean {\r\n return this.#downloader.resume();\r\n }\r\n\r\n abort(): boolean {\r\n return this.#downloader.abort();\r\n }\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.Aborting |\r\n TransferDownloadEvent.Aborted |\r\n TransferDownloadEvent.Resumed |\r\n TransferDownloadEvent.RecoveredInterruptedDownload |\r\n TransferDownloadEvent.DownloadStarted |\r\n TransferDownloadEvent.DownloadProgressed, handler: (args: DownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.DownloadCompleted, handler: (args: DownloadCompletedEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.Pausing | TransferDownloadEvent.Paused, handler: (args: DownloadPauseEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.NetworkFailure | TransferDownloadEvent.NetworkOk, handler: () => void): void\r\n addEventListener(eventName: TransferDownloadEvent.TransferMetadataDetermined, handler: (args: DownloadMetadataDeterminedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.ChunkDownloadStarted |\r\n TransferDownloadEvent.ChunkDownloadProgressed |\r\n TransferDownloadEvent.ChunkDownloadCompleted, handler: (args: ChunkDownloadEventArgs) => void): void;\r\n\r\n addEventListener(eventName: TransferDownloadEvent.ChunkDownloadFailed, handler: (args: ChunkDownloadFailedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.PossibleSupersizedFile |\r\n TransferDownloadEvent.FileDownloadStarted |\r\n TransferDownloadEvent.FileDownloadProgressed |\r\n TransferDownloadEvent.FileDownloadCompleting |\r\n TransferDownloadEvent.FileDownloadCompleted, handler: (args: FileDownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.FileDownloadFailed, handler: (args: FileDownloadFailedEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.DownloadTrackingFailed, handler: (args: DownloadTrackingFailedEventArgs) => void): void\r\n\r\n addEventListener(eventName: string, handler: (args?: any) => void): void {\r\n this.#eventsEngine.addEventListener(eventName, handler);\r\n }\r\n\r\n async downloadAllFiles(command: DownloadCommand): Promise<DownloadInfo> {\r\n return this.#downloader.downloadAllFiles(command);\r\n }\r\n\r\n async downloadAllFilesZipped(command: DownloadCommand): Promise<DownloadInfo> {\r\n return this.#downloader.downloadAllFilesZipped(command);\r\n }\r\n\r\n async downloadSpecificFiles(command: DownloadFilesCommand): Promise<DownloadInfo> {\r\n return this.#downloader.downloadSpecificFiles(command);\r\n }\r\n\r\n async restartFailedDownloader(): Promise<DownloadInfo> {\r\n return this.#downloader.restartFailedDownloader();\r\n }\r\n\r\n async recoverInterruptedDownload(downloadId: string): Promise<DownloadInfo> {\r\n return this.#downloader.recoverInterruptedDownload(downloadId);\r\n }\r\n\r\n async cleanupDownload(downloadId: string | null = null) {\r\n await this.#downloader.cleanupDownload(downloadId);\r\n }\r\n}"]}
@@ -10,7 +10,7 @@ import type DownloadInfo from "../../downloader/dtos/downloadInfo.js";
10
10
  import type DownloadCommand from "../../downloader/dtos/downloadCommand.js";
11
11
  import type DownloadFilesCommand from "../../downloader/dtos/downloadFilesCommand.js";
12
12
  import type TransferStatus from "../../utils/types/transferStatus.js";
13
- import type DownloadRegionDeterminedEventArgs from "../../downloader/eventArgs/downloadRegionDeterminedEventArgs.js";
13
+ import type DownloadMetadataDeterminedEventArgs from "../../downloader/eventArgs/downloadMetadataDeterminedEventArgs.js";
14
14
  interface TransferDownloader {
15
15
  get status(): TransferStatus | null;
16
16
  get state(): DownloadEventArgs | null;
@@ -19,7 +19,7 @@ interface TransferDownloader {
19
19
  addEventListener(eventName: TransferDownloadEvent.DownloadCompleted, handler: (args: DownloadCompletedEventArgs) => void): void;
20
20
  addEventListener(eventName: TransferDownloadEvent.Pausing | TransferDownloadEvent.Paused, handler: (args: DownloadPauseEventArgs) => void): void;
21
21
  addEventListener(eventName: TransferDownloadEvent.NetworkFailure | TransferDownloadEvent.NetworkOk, handler: () => void): void;
22
- addEventListener(eventName: TransferDownloadEvent.TransferRegionDetermined, handler: (args: DownloadRegionDeterminedEventArgs) => void): void;
22
+ addEventListener(eventName: TransferDownloadEvent.TransferMetadataDetermined, handler: (args: DownloadMetadataDeterminedEventArgs) => void): void;
23
23
  addEventListener(eventName: TransferDownloadEvent.ChunkDownloadStarted | TransferDownloadEvent.ChunkDownloadProgressed | TransferDownloadEvent.ChunkDownloadCompleted, handler: (args: ChunkDownloadEventArgs) => void): void;
24
24
  addEventListener(eventName: TransferDownloadEvent.ChunkDownloadFailed, handler: (args: ChunkDownloadFailedEventArgs) => void): void;
25
25
  addEventListener(eventName: TransferDownloadEvent.PossibleSupersizedFile | TransferDownloadEvent.FileDownloadStarted | TransferDownloadEvent.FileDownloadProgressed | TransferDownloadEvent.FileDownloadCompleting | TransferDownloadEvent.FileDownloadCompleted, handler: (args: FileDownloadEventArgs) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"transferDownloader.d.ts","sourceRoot":"","sources":["../../../../src/client/downloader/transferDownloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transferDownloader.d.ts","sourceRoot":"","sources":["../../../../src/client/downloader/transferDownloader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transferDownloader.js","sourceRoot":"","sources":["../../../../src/client/downloader/transferDownloader.ts"],"names":[],"mappings":"","sourcesContent":["import type ChunkDownloadEventArgs from \"../../downloader/eventArgs/chunkDownloadEventArgs.js\";\r\nimport type ChunkDownloadFailedEventArgs from \"../../downloader/eventArgs/chunkDownloadFailedEventArgs.js\";\r\nimport type FileDownloadEventArgs from \"../../downloader/eventArgs/fileDownloadEventArgs.js\";\r\nimport type FileDownloadFailedEventArgs from \"../../downloader/eventArgs/fileDownloadFailedEventArgs.js\";\r\n\r\nimport type DownloadEventArgs from \"../../downloader/eventArgs/downloadEventArgs.js\";\r\nimport type DownloadPauseEventArgs from \"../../downloader/eventArgs/downloadPauseEventArgs.js\";\r\nimport type DownloadCompletedEventArgs from \"../../downloader/eventArgs/downloadCompletedEventArgs.js\";\r\n\r\nimport type TransferDownloadEvent from \"../../downloader/dtos/downloadEvent.js\";\r\nimport type DownloadInfo from \"../../downloader/dtos/downloadInfo.js\";\r\nimport type DownloadCommand from \"../../downloader/dtos/downloadCommand.js\";\r\nimport type DownloadFilesCommand from \"../../downloader/dtos/downloadFilesCommand.js\";\r\nimport type TransferStatus from \"../../utils/types/transferStatus.js\";\r\nimport type DownloadRegionDeterminedEventArgs from \"../../downloader/eventArgs/downloadRegionDeterminedEventArgs.js\";\r\n\r\ninterface TransferDownloader {\r\n\r\n get status(): TransferStatus | null;\r\n get state(): DownloadEventArgs | null;\r\n get downloadId(): string | undefined;\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.Aborting |\r\n TransferDownloadEvent.Aborted |\r\n TransferDownloadEvent.Resumed |\r\n TransferDownloadEvent.RecoveredInterruptedDownload |\r\n TransferDownloadEvent.DownloadStarted |\r\n TransferDownloadEvent.DownloadProgressed, handler: (args: DownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.DownloadCompleted, handler: (args: DownloadCompletedEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.Pausing | TransferDownloadEvent.Paused, handler: (args: DownloadPauseEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.NetworkFailure | TransferDownloadEvent.NetworkOk, handler: () => void): void\r\n addEventListener(eventName: TransferDownloadEvent.TransferRegionDetermined, handler: (args: DownloadRegionDeterminedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.ChunkDownloadStarted |\r\n TransferDownloadEvent.ChunkDownloadProgressed |\r\n TransferDownloadEvent.ChunkDownloadCompleted, handler: (args: ChunkDownloadEventArgs) => void): void;\r\n\r\n addEventListener(eventName: TransferDownloadEvent.ChunkDownloadFailed, handler: (args: ChunkDownloadFailedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.PossibleSupersizedFile |\r\n TransferDownloadEvent.FileDownloadStarted |\r\n TransferDownloadEvent.FileDownloadProgressed |\r\n TransferDownloadEvent.FileDownloadCompleting |\r\n TransferDownloadEvent.FileDownloadCompleted, handler: (args: FileDownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.FileDownloadFailed, handler: (args: FileDownloadFailedEventArgs) => void): void\r\n\r\n recoverInterruptedDownload(downloadId: string): Promise<DownloadInfo>\r\n\r\n downloadAllFiles(command: DownloadCommand): Promise<DownloadInfo>\r\n downloadAllFilesZipped(command: DownloadCommand): Promise<DownloadInfo>\r\n downloadSpecificFiles(command: DownloadFilesCommand): Promise<DownloadInfo>\r\n\r\n // downloadAllFilesZipped(transferId: string, downloadPath: string): Promise<void>\r\n // downloadTorrentFile(transferId: string, downloadPath: string): Promise<void>\r\n\r\n /**\r\n * Lets pending chunks continue until all are complete, then pauses further processing, keeps tracking information intact.\r\n * It will take a few seconds to pause a download due to wait on pending chunks.\r\n * Emits {@link TransferDownloadEvent.Pausing} event when method is called and {@link TransferDownloadEvent.Paused} event when all pending chunks complete and processing is paused.\r\n * Both events emit an event argument indicating that pending chunks will not be interrupted. See {@link DownloadPauseEventArgs}.\r\n * Downloader will end up in {@link TransferStatus.Paused} state.\r\n */\r\n pause(): Promise<boolean>\r\n /**\r\n * Immediately cancels pending chunks, pauses processing.\r\n * Emits {@link TransferDownloadEvent.Pausing} event on method call and then and then {@link TransferDownloadEvent.Paused} event when processing is stopped.\r\n * Both events emit an event argument indicating that pending chunks will be interrupted. See {@link DownloadPauseEventArgs}.\r\n * Downloader will end up in {@link TransferStatus.Paused} state.\r\n */\r\n stop(): Promise<boolean>\r\n /**\r\n * Resumes paused or stopped download based on tracking information stored locally.\r\n */\r\n resume(): void\r\n /**\r\n * Immediately cancels pending chunks, stops further processing, cleans up download data (optionally via config), cleans up tracking data.\r\n * Emits {@link TransferDownloadEvent.Aborting} and {@link TransferDownloadEvent.Aborted} events.\r\n * Downloader will end up in {@link TransferStatus.Aborted} state.\r\n */\r\n abort(): boolean\r\n\r\n cleanupDownload(downloadId: string | null): Promise<void>\r\n}\r\n\r\nexport default TransferDownloader;"]}
1
+ {"version":3,"file":"transferDownloader.js","sourceRoot":"","sources":["../../../../src/client/downloader/transferDownloader.ts"],"names":[],"mappings":"","sourcesContent":["import type ChunkDownloadEventArgs from \"../../downloader/eventArgs/chunkDownloadEventArgs.js\";\r\nimport type ChunkDownloadFailedEventArgs from \"../../downloader/eventArgs/chunkDownloadFailedEventArgs.js\";\r\nimport type FileDownloadEventArgs from \"../../downloader/eventArgs/fileDownloadEventArgs.js\";\r\nimport type FileDownloadFailedEventArgs from \"../../downloader/eventArgs/fileDownloadFailedEventArgs.js\";\r\n\r\nimport type DownloadEventArgs from \"../../downloader/eventArgs/downloadEventArgs.js\";\r\nimport type DownloadPauseEventArgs from \"../../downloader/eventArgs/downloadPauseEventArgs.js\";\r\nimport type DownloadCompletedEventArgs from \"../../downloader/eventArgs/downloadCompletedEventArgs.js\";\r\n\r\nimport type TransferDownloadEvent from \"../../downloader/dtos/downloadEvent.js\";\r\nimport type DownloadInfo from \"../../downloader/dtos/downloadInfo.js\";\r\nimport type DownloadCommand from \"../../downloader/dtos/downloadCommand.js\";\r\nimport type DownloadFilesCommand from \"../../downloader/dtos/downloadFilesCommand.js\";\r\nimport type TransferStatus from \"../../utils/types/transferStatus.js\";\r\nimport type DownloadMetadataDeterminedEventArgs from \"../../downloader/eventArgs/downloadMetadataDeterminedEventArgs.js\";\r\n\r\ninterface TransferDownloader {\r\n\r\n get status(): TransferStatus | null;\r\n get state(): DownloadEventArgs | null;\r\n get downloadId(): string | undefined;\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.Aborting |\r\n TransferDownloadEvent.Aborted |\r\n TransferDownloadEvent.Resumed |\r\n TransferDownloadEvent.RecoveredInterruptedDownload |\r\n TransferDownloadEvent.DownloadStarted |\r\n TransferDownloadEvent.DownloadProgressed, handler: (args: DownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.DownloadCompleted, handler: (args: DownloadCompletedEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.Pausing | TransferDownloadEvent.Paused, handler: (args: DownloadPauseEventArgs) => void): void\r\n addEventListener(eventName: TransferDownloadEvent.NetworkFailure | TransferDownloadEvent.NetworkOk, handler: () => void): void\r\n addEventListener(eventName: TransferDownloadEvent.TransferMetadataDetermined, handler: (args: DownloadMetadataDeterminedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.ChunkDownloadStarted |\r\n TransferDownloadEvent.ChunkDownloadProgressed |\r\n TransferDownloadEvent.ChunkDownloadCompleted, handler: (args: ChunkDownloadEventArgs) => void): void;\r\n\r\n addEventListener(eventName: TransferDownloadEvent.ChunkDownloadFailed, handler: (args: ChunkDownloadFailedEventArgs) => void): void\r\n\r\n addEventListener(eventName:\r\n TransferDownloadEvent.PossibleSupersizedFile |\r\n TransferDownloadEvent.FileDownloadStarted |\r\n TransferDownloadEvent.FileDownloadProgressed |\r\n TransferDownloadEvent.FileDownloadCompleting |\r\n TransferDownloadEvent.FileDownloadCompleted, handler: (args: FileDownloadEventArgs) => void): void\r\n\r\n addEventListener(eventName: TransferDownloadEvent.FileDownloadFailed, handler: (args: FileDownloadFailedEventArgs) => void): void\r\n\r\n recoverInterruptedDownload(downloadId: string): Promise<DownloadInfo>\r\n\r\n downloadAllFiles(command: DownloadCommand): Promise<DownloadInfo>\r\n downloadAllFilesZipped(command: DownloadCommand): Promise<DownloadInfo>\r\n downloadSpecificFiles(command: DownloadFilesCommand): Promise<DownloadInfo>\r\n\r\n // downloadAllFilesZipped(transferId: string, downloadPath: string): Promise<void>\r\n // downloadTorrentFile(transferId: string, downloadPath: string): Promise<void>\r\n\r\n /**\r\n * Lets pending chunks continue until all are complete, then pauses further processing, keeps tracking information intact.\r\n * It will take a few seconds to pause a download due to wait on pending chunks.\r\n * Emits {@link TransferDownloadEvent.Pausing} event when method is called and {@link TransferDownloadEvent.Paused} event when all pending chunks complete and processing is paused.\r\n * Both events emit an event argument indicating that pending chunks will not be interrupted. See {@link DownloadPauseEventArgs}.\r\n * Downloader will end up in {@link TransferStatus.Paused} state.\r\n */\r\n pause(): Promise<boolean>\r\n /**\r\n * Immediately cancels pending chunks, pauses processing.\r\n * Emits {@link TransferDownloadEvent.Pausing} event on method call and then and then {@link TransferDownloadEvent.Paused} event when processing is stopped.\r\n * Both events emit an event argument indicating that pending chunks will be interrupted. See {@link DownloadPauseEventArgs}.\r\n * Downloader will end up in {@link TransferStatus.Paused} state.\r\n */\r\n stop(): Promise<boolean>\r\n /**\r\n * Resumes paused or stopped download based on tracking information stored locally.\r\n */\r\n resume(): void\r\n /**\r\n * Immediately cancels pending chunks, stops further processing, cleans up download data (optionally via config), cleans up tracking data.\r\n * Emits {@link TransferDownloadEvent.Aborting} and {@link TransferDownloadEvent.Aborted} events.\r\n * Downloader will end up in {@link TransferStatus.Aborted} state.\r\n */\r\n abort(): boolean\r\n\r\n cleanupDownload(downloadId: string | null): Promise<void>\r\n}\r\n\r\nexport default TransferDownloader;"]}
@@ -0,0 +1,9 @@
1
+ interface UploadHealthMonitorHealthyEventArgs {
2
+ uploadedBytesTotalCount?: number;
3
+ progressInPercentage?: number;
4
+ remainingSeconds?: number;
5
+ averageSpeedInBytesPerSecond?: number;
6
+ currentSpeedInBytesPerSecond?: number;
7
+ }
8
+ export default UploadHealthMonitorHealthyEventArgs;
9
+ //# sourceMappingURL=uploadHealthMonitorHealthyEventArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadHealthMonitorHealthyEventArgs.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorHealthyEventArgs.ts"],"names":[],"mappings":"AAAA,UAAU,mCAAmC;IACzC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,eAAe,mCAAmC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=uploadHealthMonitorHealthyEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadHealthMonitorHealthyEventArgs.js","sourceRoot":"","sources":["../../../../../../../src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorHealthyEventArgs.ts"],"names":[],"mappings":"","sourcesContent":["interface UploadHealthMonitorHealthyEventArgs {\r\n uploadedBytesTotalCount?: number;\r\n progressInPercentage?: number;\r\n remainingSeconds?: number;\r\n averageSpeedInBytesPerSecond?: number;\r\n currentSpeedInBytesPerSecond?: number;\r\n}\r\n\r\nexport default UploadHealthMonitorHealthyEventArgs;"]}
@@ -0,0 +1,19 @@
1
+ interface UploadHealthMonitorUnhealthyEventArgs {
2
+ reason: UploadHealthMonitorUnhealthyEventArgsReason;
3
+ uploadedBytesTotalCount?: number;
4
+ progressInPercentage?: number;
5
+ remainingSeconds?: number;
6
+ averageSpeedInBytesPerSecond?: number;
7
+ currentSpeedInBytesPerSecond?: number;
8
+ }
9
+ export interface UploadHealthMonitorUnhealthyEventArgsReason {
10
+ internet: UploadHealthMonitorUnhealthyEventArgsReasonValue;
11
+ api: UploadHealthMonitorUnhealthyEventArgsReasonValue;
12
+ fileServer: UploadHealthMonitorUnhealthyEventArgsReasonValue;
13
+ }
14
+ export interface UploadHealthMonitorUnhealthyEventArgsReasonValue {
15
+ status: `Checking` | `Ok` | `Error` | `Unknown`;
16
+ error?: Error;
17
+ }
18
+ export default UploadHealthMonitorUnhealthyEventArgs;
19
+ //# sourceMappingURL=uploadHealthMonitorUnhealthyEventArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadHealthMonitorUnhealthyEventArgs.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorUnhealthyEventArgs.ts"],"names":[],"mappings":"AAAA,UAAU,qCAAqC;IAC3C,MAAM,EAAE,2CAA2C,CAAC;IACpD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,2CAA2C;IACxD,QAAQ,EAAE,gDAAgD,CAAC;IAC3D,GAAG,EAAE,gDAAgD,CAAC;IACtD,UAAU,EAAE,gDAAgD,CAAC;CAChE;AAED,MAAM,WAAW,gDAAgD;IAC7D,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAA;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,eAAe,qCAAqC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=uploadHealthMonitorUnhealthyEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadHealthMonitorUnhealthyEventArgs.js","sourceRoot":"","sources":["../../../../../../../src/client/uploader/healthMonitor/events/eventArgs/uploadHealthMonitorUnhealthyEventArgs.ts"],"names":[],"mappings":"","sourcesContent":["interface UploadHealthMonitorUnhealthyEventArgs {\r\n reason: UploadHealthMonitorUnhealthyEventArgsReason,\r\n uploadedBytesTotalCount?: number;\r\n progressInPercentage?: number;\r\n remainingSeconds?: number;\r\n averageSpeedInBytesPerSecond?: number;\r\n currentSpeedInBytesPerSecond?: number;\r\n}\r\n\r\nexport interface UploadHealthMonitorUnhealthyEventArgsReason {\r\n internet: UploadHealthMonitorUnhealthyEventArgsReasonValue,\r\n api: UploadHealthMonitorUnhealthyEventArgsReasonValue,\r\n fileServer: UploadHealthMonitorUnhealthyEventArgsReasonValue,\r\n}\r\n\r\nexport interface UploadHealthMonitorUnhealthyEventArgsReasonValue {\r\n status: `Checking` | `Ok` | `Error` | `Unknown`\r\n error?: Error,\r\n}\r\n\r\nexport default UploadHealthMonitorUnhealthyEventArgs;"]}
@@ -0,0 +1,6 @@
1
+ declare enum TransferUploadHealthMonitorEvent {
2
+ Healthy = "UploadHealthMonitor_Healthy",
3
+ Unhealthy = "UploadHealthMonitor_Unhealthy"
4
+ }
5
+ export default TransferUploadHealthMonitorEvent;
6
+ //# sourceMappingURL=transferUploadHealthMonitorEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferUploadHealthMonitorEvent.d.ts","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/events/transferUploadHealthMonitorEvent.ts"],"names":[],"mappings":"AAAA,aAAK,gCAAgC;IACjC,OAAO,gCAAgC;IACvC,SAAS,kCAAkC;CAC9C;AAED,eAAe,gCAAgC,CAAC"}
@@ -0,0 +1,7 @@
1
+ var TransferUploadHealthMonitorEvent;
2
+ (function (TransferUploadHealthMonitorEvent) {
3
+ TransferUploadHealthMonitorEvent["Healthy"] = "UploadHealthMonitor_Healthy";
4
+ TransferUploadHealthMonitorEvent["Unhealthy"] = "UploadHealthMonitor_Unhealthy";
5
+ })(TransferUploadHealthMonitorEvent || (TransferUploadHealthMonitorEvent = {}));
6
+ export default TransferUploadHealthMonitorEvent;
7
+ //# sourceMappingURL=transferUploadHealthMonitorEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferUploadHealthMonitorEvent.js","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/events/transferUploadHealthMonitorEvent.ts"],"names":[],"mappings":"AAAA,IAAK,gCAGJ;AAHD,WAAK,gCAAgC;IACjC,2EAAuC,CAAA;IACvC,+EAA2C,CAAA;AAC/C,CAAC,EAHI,gCAAgC,KAAhC,gCAAgC,QAGpC;AAED,eAAe,gCAAgC,CAAC","sourcesContent":["enum TransferUploadHealthMonitorEvent {\r\n Healthy = `UploadHealthMonitor_Healthy`,\r\n Unhealthy = `UploadHealthMonitor_Unhealthy`,\r\n}\r\n\r\nexport default TransferUploadHealthMonitorEvent;"]}
@@ -0,0 +1,5 @@
1
+ import OnlineChecker, { OnlineCheckerResult } from "./onlineChecker.js";
2
+ export default class NodeOnlineChecker extends OnlineChecker {
3
+ isInternetOnline(): Promise<OnlineCheckerResult>;
4
+ }
5
+ //# sourceMappingURL=nodeOnlineChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeOnlineChecker.d.ts","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/onlineChecker/nodeOnlineChecker.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,EAAE,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC3C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAGhE"}
@@ -0,0 +1,7 @@
1
+ import OnlineChecker from "./onlineChecker.js";
2
+ export default class NodeOnlineChecker extends OnlineChecker {
3
+ async isInternetOnline() {
4
+ return await this.isGoogleReachable();
5
+ }
6
+ }
7
+ //# sourceMappingURL=nodeOnlineChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeOnlineChecker.js","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/onlineChecker/nodeOnlineChecker.ts"],"names":[],"mappings":"AAAA,OAAO,aAAsC,MAAM,oBAAoB,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IACjD,KAAK,CAAC,gBAAgB;QACzB,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;CACJ","sourcesContent":["import OnlineChecker, { OnlineCheckerResult } from \"./onlineChecker.js\";\r\n\r\nexport default class NodeOnlineChecker extends OnlineChecker {\r\n public async isInternetOnline(): Promise<OnlineCheckerResult> {\r\n return await this.isGoogleReachable();\r\n }\r\n}"]}
@@ -0,0 +1,14 @@
1
+ export default abstract class OnlineChecker {
2
+ protected apiBaseUrl: string;
3
+ constructor(apiBaseUrl: string);
4
+ abstract isInternetOnline(): Promise<OnlineCheckerResult>;
5
+ protected isGoogleReachable(): Promise<OnlineCheckerResult>;
6
+ isApiReachable(): Promise<OnlineCheckerResult>;
7
+ isFileServerReachable(fileServerBaseUrl: string): Promise<OnlineCheckerResult>;
8
+ protected probe(url: string, timeoutInMs?: number): Promise<OnlineCheckerResult>;
9
+ }
10
+ export interface OnlineCheckerResult {
11
+ isOnline: boolean;
12
+ error?: Error;
13
+ }
14
+ //# sourceMappingURL=onlineChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onlineChecker.d.ts","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/onlineChecker/onlineChecker.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAa;IACvC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEjB,UAAU,EAAE,MAAM;aAOd,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;cAEhD,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIpD,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI9C,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;cAI3E,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAevF;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB"}
@@ -0,0 +1,30 @@
1
+ export default class OnlineChecker {
2
+ apiBaseUrl;
3
+ constructor(apiBaseUrl) {
4
+ if (!apiBaseUrl || apiBaseUrl.length === 0)
5
+ throw new Error(`Api Base URL is required`);
6
+ this.apiBaseUrl = apiBaseUrl;
7
+ }
8
+ async isGoogleReachable() {
9
+ return await this.probe(`https://www.gstatic.com/generate_204?d=${Date.now()}`);
10
+ }
11
+ async isApiReachable() {
12
+ return await this.probe(`${this.apiBaseUrl}/heartbeat?d=${Date.now()}`);
13
+ }
14
+ async isFileServerReachable(fileServerBaseUrl) {
15
+ return await this.probe(`${fileServerBaseUrl}/up?d=${Date.now()}`);
16
+ }
17
+ async probe(url, timeoutInMs = 4000) {
18
+ try {
19
+ const timeoutSignal = AbortSignal.timeout(timeoutInMs);
20
+ const result = await fetch(url, { method: `GET`, mode: `no-cors`, cache: `no-store`, signal: timeoutSignal });
21
+ if (!result.ok)
22
+ throw new Error(`Response returned ${result.status} status`);
23
+ return { isOnline: true };
24
+ }
25
+ catch (error) {
26
+ return { isOnline: false, error: error };
27
+ }
28
+ }
29
+ }
30
+ //# sourceMappingURL=onlineChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onlineChecker.js","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/onlineChecker/onlineChecker.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAgB,aAAa;IAC7B,UAAU,CAAS;IAE7B,YAAY,UAAkB;QAC1B,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAIS,KAAK,CAAC,iBAAiB;QAC7B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,iBAAyB;QACxD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,iBAAiB,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,WAAW,GAAG,IAAI;QACjD,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YAE9G,IAAI,CAAC,MAAM,CAAC,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YAEjE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;QACtD,CAAC;IACL,CAAC;CACJ","sourcesContent":["export default abstract class OnlineChecker {\r\n protected apiBaseUrl: string;\r\n\r\n constructor(apiBaseUrl: string) {\r\n if (!apiBaseUrl || apiBaseUrl.length === 0)\r\n throw new Error(`Api Base URL is required`);\r\n\r\n this.apiBaseUrl = apiBaseUrl;\r\n }\r\n\r\n public abstract isInternetOnline(): Promise<OnlineCheckerResult>;\r\n\r\n protected async isGoogleReachable(): Promise<OnlineCheckerResult> {\r\n return await this.probe(`https://www.gstatic.com/generate_204?d=${Date.now()}`);\r\n }\r\n\r\n public async isApiReachable(): Promise<OnlineCheckerResult> {\r\n return await this.probe(`${this.apiBaseUrl}/heartbeat?d=${Date.now()}`);\r\n }\r\n\r\n public async isFileServerReachable(fileServerBaseUrl: string): Promise<OnlineCheckerResult> {\r\n return await this.probe(`${fileServerBaseUrl}/up?d=${Date.now()}`);\r\n }\r\n\r\n protected async probe(url: string, timeoutInMs = 4000): Promise<OnlineCheckerResult> {\r\n try {\r\n const timeoutSignal = AbortSignal.timeout(timeoutInMs);\r\n\r\n const result = await fetch(url, { method: `GET`, mode: `no-cors`, cache: `no-store`, signal: timeoutSignal });\r\n\r\n if (!result.ok)\r\n throw new Error(`Response returned ${result.status} status`);\r\n\r\n return { isOnline: true };\r\n }\r\n catch (error) {\r\n return { isOnline: false, error: error as Error };\r\n }\r\n }\r\n}\r\n\r\nexport interface OnlineCheckerResult {\r\n isOnline: boolean,\r\n error?: Error,\r\n}"]}
@@ -0,0 +1,5 @@
1
+ import OnlineChecker, { OnlineCheckerResult } from "./onlineChecker.js";
2
+ export default class WebOnlineChecker extends OnlineChecker {
3
+ isInternetOnline(): Promise<OnlineCheckerResult>;
4
+ }
5
+ //# sourceMappingURL=webOnlineChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webOnlineChecker.d.ts","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/onlineChecker/webOnlineChecker.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,EAAE,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IAC1C,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAMhE"}
@@ -0,0 +1,9 @@
1
+ import OnlineChecker from "./onlineChecker.js";
2
+ export default class WebOnlineChecker extends OnlineChecker {
3
+ async isInternetOnline() {
4
+ if (navigator?.onLine === false)
5
+ return { isOnline: false, error: new Error(`Offline mode detected by browser`) };
6
+ return await this.isGoogleReachable();
7
+ }
8
+ }
9
+ //# sourceMappingURL=webOnlineChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webOnlineChecker.js","sourceRoot":"","sources":["../../../../../../src/client/uploader/healthMonitor/onlineChecker/webOnlineChecker.ts"],"names":[],"mappings":"AAAA,OAAO,aAAsC,MAAM,oBAAoB,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IAChD,KAAK,CAAC,gBAAgB;QACzB,IAAI,SAAS,EAAE,MAAM,KAAK,KAAK;YAC3B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC;QAErF,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;CACJ","sourcesContent":["import OnlineChecker, { OnlineCheckerResult } from \"./onlineChecker.js\";\r\n\r\nexport default class WebOnlineChecker extends OnlineChecker {\r\n public async isInternetOnline(): Promise<OnlineCheckerResult> {\r\n if (navigator?.onLine === false)\r\n return { isOnline: false, error: new Error(`Offline mode detected by browser`) };\r\n\r\n return await this.isGoogleReachable();\r\n }\r\n}"]}
@@ -0,0 +1,30 @@
1
+ import type EventsEngine from "../../../utils/events/eventsEngine.js";
2
+ import TransferUploadHealthMonitorEvent from "./events/transferUploadHealthMonitorEvent.js";
3
+ import UploadHealthMonitorHealthyEventArgs from "./events/eventArgs/uploadHealthMonitorHealthyEventArgs.js";
4
+ import UploadHealthMonitorUnhealthyEventArgs from "./events/eventArgs/uploadHealthMonitorUnhealthyEventArgs.js";
5
+ import OnlineChecker from "./onlineChecker/onlineChecker.js";
6
+ export default class TransferUploadHealthMonitor {
7
+ #private;
8
+ constructor(onlineChecker: OnlineChecker, transferEventsEngine: EventsEngine, healthCheckIntervalWhenHealthy?: number, healthCheckIntervalWhenUnhealthy?: number);
9
+ start(): void;
10
+ private resetState;
11
+ stop(): void;
12
+ private subscribeToTransferRunningEvents;
13
+ private unsubscribeFromTransferRunningEvents;
14
+ private transferMetadataDetermined;
15
+ private transferProgressed;
16
+ private checkHealth;
17
+ private determineIsHealthy;
18
+ private figureOutUnhealthyReasonWithNotifications;
19
+ private isOnlineResultToStatus;
20
+ private getHealthCheckInterval;
21
+ private notifyHealthy;
22
+ private notifyStartedCheckingUnhealthyReason;
23
+ private notifyUnhealthyInternetOkRestCheckingReason;
24
+ private notifyUnhealthyNoInternetReason;
25
+ private notifyUnhealthyApiOrFileServerErrorReason;
26
+ private notifyUnhealthyAllOkReason;
27
+ addEventListener(eventName: TransferUploadHealthMonitorEvent.Healthy, handler: (event: UploadHealthMonitorHealthyEventArgs) => void): void;
28
+ addEventListener(eventName: TransferUploadHealthMonitorEvent.Unhealthy, handler: (event: UploadHealthMonitorUnhealthyEventArgs) => void): void;
29
+ }
30
+ //# sourceMappingURL=transferUploadHealthMonitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferUploadHealthMonitor.d.ts","sourceRoot":"","sources":["../../../../../src/client/uploader/healthMonitor/transferUploadHealthMonitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAC;AAEtE,OAAO,gCAAgC,MAAM,8CAA8C,CAAC;AAC5F,OAAO,mCAAmC,MAAM,2DAA2D,CAAC;AAC5G,OAAO,qCAAqC,MAAM,6DAA6D,CAAC;AAChH,OAAO,aAAsC,MAAM,kCAAkC,CAAC;AAGtF,MAAM,CAAC,OAAO,OAAO,2BAA2B;;gBAehC,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,8BAA8B,SAAS,EAAE,gCAAgC,SAAQ;IAa/J,KAAK;IAQL,OAAO,CAAC,UAAU;IAIlB,IAAI;IAMJ,OAAO,CAAC,gCAAgC;IAKxC,OAAO,CAAC,oCAAoC;IAK5C,OAAO,CAAC,0BAA0B,CAEhC;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,WAAW,CAiBjB;IAEF,OAAO,CAAC,kBAAkB;YAIZ,yCAAyC;IA8BvD,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,oCAAoC;IAa5C,OAAO,CAAC,2CAA2C;IAanD,OAAO,CAAC,+BAA+B;IAavC,OAAO,CAAC,yCAAyC;IAajD,OAAO,CAAC,0BAA0B;IAalC,gBAAgB,CAAC,SAAS,EAAE,gCAAgC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,IAAI,GAAG,IAAI;IAC1I,gBAAgB,CAAC,SAAS,EAAE,gCAAgC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,qCAAqC,KAAK,IAAI,GAAG,IAAI;CAIjJ"}
@@ -0,0 +1,158 @@
1
+ import TransferUploadEvent from "../../../uploader/transferUploadEvent.js";
2
+ import TransferUploadHealthMonitorEvent from "./events/transferUploadHealthMonitorEvent.js";
3
+ export default class TransferUploadHealthMonitor {
4
+ #onlineChecker;
5
+ #transferEventsEngine;
6
+ #healthCheckIntervalWhenHealthy;
7
+ #healthCheckIntervalWhenUnhealthy;
8
+ #timeout;
9
+ #fileServerUrl;
10
+ #progressHistory = [];
11
+ #lastProgressEvent;
12
+ constructor(onlineChecker, transferEventsEngine, healthCheckIntervalWhenHealthy = 15_000, healthCheckIntervalWhenUnhealthy = 5_000) {
13
+ if (!onlineChecker)
14
+ throw new Error(`Online checker can't be empty`);
15
+ if (!transferEventsEngine)
16
+ throw new Error(`Events engine can't be empty`);
17
+ this.#onlineChecker = onlineChecker;
18
+ this.#transferEventsEngine = transferEventsEngine;
19
+ this.#healthCheckIntervalWhenHealthy = healthCheckIntervalWhenHealthy;
20
+ this.#healthCheckIntervalWhenUnhealthy = healthCheckIntervalWhenUnhealthy;
21
+ }
22
+ start() {
23
+ this.resetState();
24
+ this.subscribeToTransferRunningEvents();
25
+ this.#timeout = setTimeout(() => this.checkHealth(), this.#healthCheckIntervalWhenHealthy);
26
+ }
27
+ resetState() {
28
+ this.#progressHistory = [];
29
+ }
30
+ stop() {
31
+ clearTimeout(this.#timeout);
32
+ this.unsubscribeFromTransferRunningEvents();
33
+ }
34
+ subscribeToTransferRunningEvents() {
35
+ this.#transferEventsEngine.addEventListener(TransferUploadEvent.TransferMetadataDetermined, this.transferMetadataDetermined);
36
+ this.#transferEventsEngine.addEventListener(TransferUploadEvent.TransferProgressed, this.transferProgressed);
37
+ }
38
+ unsubscribeFromTransferRunningEvents() {
39
+ this.#transferEventsEngine.removeEventListener(TransferUploadEvent.TransferMetadataDetermined, this.transferMetadataDetermined);
40
+ this.#transferEventsEngine.removeEventListener(TransferUploadEvent.TransferProgressed, this.transferProgressed);
41
+ }
42
+ transferMetadataDetermined = (eventArgs) => {
43
+ this.#fileServerUrl = eventArgs.fileServerUrl;
44
+ };
45
+ transferProgressed = (eventArgs) => {
46
+ this.#progressHistory.push({ time: Date.now(), eventArgs });
47
+ };
48
+ checkHealth = async () => {
49
+ const currentHistoryLastProgressEvent = this.#progressHistory.at(-1)?.eventArgs;
50
+ this.#lastProgressEvent = currentHistoryLastProgressEvent || this.#lastProgressEvent;
51
+ const isHealthy = this.determineIsHealthy(currentHistoryLastProgressEvent);
52
+ if (isHealthy)
53
+ this.notifyHealthy();
54
+ else
55
+ await this.figureOutUnhealthyReasonWithNotifications();
56
+ this.resetState();
57
+ const nextHealthCheck = this.getHealthCheckInterval(isHealthy);
58
+ this.#timeout = setTimeout(() => this.checkHealth(), nextHealthCheck);
59
+ };
60
+ determineIsHealthy(currentHistoryLastProgressEvent) {
61
+ return currentHistoryLastProgressEvent !== undefined && currentHistoryLastProgressEvent.currentSpeedInBytesPerSecond > 0;
62
+ }
63
+ async figureOutUnhealthyReasonWithNotifications() {
64
+ this.notifyStartedCheckingUnhealthyReason();
65
+ const { isOnline: isInternetOnline, error: internetOnlineError } = await this.#onlineChecker.isInternetOnline();
66
+ if (isInternetOnline)
67
+ this.notifyUnhealthyInternetOkRestCheckingReason();
68
+ else {
69
+ this.notifyUnhealthyNoInternetReason(internetOnlineError);
70
+ return;
71
+ }
72
+ const isApiOnlinePromise = this.#onlineChecker.isApiReachable();
73
+ const isFileServerOnlinePromise = this.#fileServerUrl
74
+ ? this.#onlineChecker.isFileServerReachable(this.#fileServerUrl)
75
+ : Promise.resolve(undefined);
76
+ const { isOnline: isApiOnline, error: apiOnlineError } = await isApiOnlinePromise;
77
+ const isFileServerOnlineResult = await isFileServerOnlinePromise;
78
+ if (isApiOnline && isFileServerOnlineResult?.isOnline === true)
79
+ this.notifyUnhealthyAllOkReason();
80
+ else {
81
+ const fileServerStatus = this.isOnlineResultToStatus(isFileServerOnlineResult);
82
+ this.notifyUnhealthyApiOrFileServerErrorReason(fileServerStatus, isFileServerOnlineResult?.error, apiOnlineError);
83
+ }
84
+ }
85
+ isOnlineResultToStatus(isFileServerOnlineResult) {
86
+ if (!isFileServerOnlineResult)
87
+ return `Unknown`;
88
+ return isFileServerOnlineResult.isOnline ? `Ok` : `Error`;
89
+ }
90
+ getHealthCheckInterval(isHealthy) {
91
+ return isHealthy ? this.#healthCheckIntervalWhenHealthy : this.#healthCheckIntervalWhenUnhealthy;
92
+ }
93
+ notifyHealthy() {
94
+ const eventArgs = {
95
+ ...this.#lastProgressEvent,
96
+ };
97
+ this.#transferEventsEngine.emit(TransferUploadHealthMonitorEvent.Healthy, eventArgs);
98
+ }
99
+ notifyStartedCheckingUnhealthyReason() {
100
+ const eventArgs = {
101
+ reason: {
102
+ internet: { status: `Checking` },
103
+ api: { status: `Checking` },
104
+ fileServer: { status: `Checking` },
105
+ },
106
+ ...this.#lastProgressEvent,
107
+ };
108
+ this.#transferEventsEngine.emit(TransferUploadHealthMonitorEvent.Unhealthy, eventArgs);
109
+ }
110
+ notifyUnhealthyInternetOkRestCheckingReason() {
111
+ const eventArgs = {
112
+ reason: {
113
+ internet: { status: `Ok` },
114
+ api: { status: `Checking` },
115
+ fileServer: { status: `Checking` },
116
+ },
117
+ ...this.#lastProgressEvent,
118
+ };
119
+ this.#transferEventsEngine.emit(TransferUploadHealthMonitorEvent.Unhealthy, eventArgs);
120
+ }
121
+ notifyUnhealthyNoInternetReason(error) {
122
+ const eventArgs = {
123
+ reason: {
124
+ internet: { status: `Error`, error },
125
+ api: { status: `Unknown` },
126
+ fileServer: { status: `Unknown` },
127
+ },
128
+ ...this.#lastProgressEvent,
129
+ };
130
+ this.#transferEventsEngine.emit(TransferUploadHealthMonitorEvent.Unhealthy, eventArgs);
131
+ }
132
+ notifyUnhealthyApiOrFileServerErrorReason(fileServerStatus, fileServerError, apiError) {
133
+ const eventArgs = {
134
+ reason: {
135
+ internet: { status: `Ok` },
136
+ api: apiError ? { status: `Error`, error: apiError } : { status: `Ok` },
137
+ fileServer: fileServerError ? { status: `Error`, error: fileServerError } : { status: fileServerStatus },
138
+ },
139
+ ...this.#lastProgressEvent,
140
+ };
141
+ this.#transferEventsEngine.emit(TransferUploadHealthMonitorEvent.Unhealthy, eventArgs);
142
+ }
143
+ notifyUnhealthyAllOkReason() {
144
+ const eventArgs = {
145
+ reason: {
146
+ internet: { status: `Ok` },
147
+ api: { status: `Ok` },
148
+ fileServer: { status: `Ok` },
149
+ },
150
+ ...this.#lastProgressEvent,
151
+ };
152
+ this.#transferEventsEngine.emit(TransferUploadHealthMonitorEvent.Unhealthy, eventArgs);
153
+ }
154
+ addEventListener(eventName, handler) {
155
+ this.#transferEventsEngine.addEventListener(eventName, handler);
156
+ }
157
+ }
158
+ //# sourceMappingURL=transferUploadHealthMonitor.js.map