filemail-sdk 9.1.4 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/src/autoDownloader/autoDownloader.d.ts +1 -0
  2. package/dist/src/autoDownloader/autoDownloader.d.ts.map +1 -1
  3. package/dist/src/autoDownloader/autoDownloader.js +4 -0
  4. package/dist/src/autoDownloader/autoDownloader.js.map +1 -1
  5. package/dist/src/autoDownloader/factory/nodeAutoDownloaderFactory.js +1 -1
  6. package/dist/src/autoDownloader/factory/nodeAutoDownloaderFactory.js.map +1 -1
  7. package/dist/src/autoDownloader/factory/nodeAutoDownloaderFactoryOptions.d.ts +1 -0
  8. package/dist/src/autoDownloader/factory/nodeAutoDownloaderFactoryOptions.d.ts.map +1 -1
  9. package/dist/src/autoDownloader/factory/nodeAutoDownloaderFactoryOptions.js.map +1 -1
  10. package/dist/src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.d.ts +2 -1
  11. package/dist/src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.d.ts.map +1 -1
  12. package/dist/src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.js +9 -1
  13. package/dist/src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.js.map +1 -1
  14. package/dist/src/client/healthMonitor/onlineChecker/nodeOnlineChecker.d.ts +0 -1
  15. package/dist/src/client/healthMonitor/onlineChecker/nodeOnlineChecker.d.ts.map +1 -1
  16. package/dist/src/client/healthMonitor/onlineChecker/nodeOnlineChecker.js +0 -3
  17. package/dist/src/client/healthMonitor/onlineChecker/nodeOnlineChecker.js.map +1 -1
  18. package/dist/src/client/healthMonitor/onlineChecker/onlineChecker.d.ts +1 -0
  19. package/dist/src/client/healthMonitor/onlineChecker/onlineChecker.d.ts.map +1 -1
  20. package/dist/src/client/healthMonitor/onlineChecker/onlineChecker.js +6 -3
  21. package/dist/src/client/healthMonitor/onlineChecker/onlineChecker.js.map +1 -1
  22. package/dist/src/client/healthMonitor/onlineChecker/webOnlineChecker.js +1 -1
  23. package/dist/src/client/healthMonitor/onlineChecker/webOnlineChecker.js.map +1 -1
  24. package/dist/src/utils/api/dtos/getInboxTransfersRequest.d.ts +1 -0
  25. package/dist/src/utils/api/dtos/getInboxTransfersRequest.d.ts.map +1 -1
  26. package/dist/src/utils/api/dtos/getInboxTransfersRequest.js.map +1 -1
  27. package/dist/src/utils/api/node/nodeApiClient.d.ts.map +1 -1
  28. package/dist/src/utils/api/node/nodeApiClient.js +7 -4
  29. package/dist/src/utils/api/node/nodeApiClient.js.map +1 -1
  30. package/dist/src/utils/api/web/webApiClient.d.ts.map +1 -1
  31. package/dist/src/utils/api/web/webApiClient.js +7 -4
  32. package/dist/src/utils/api/web/webApiClient.js.map +1 -1
  33. package/package.json +1 -1
@@ -27,6 +27,7 @@ declare class AutoDownloader {
27
27
  set newTransfersCheckIntervalInSeconds(newTransfersCheckIntervalInSeconds: number);
28
28
  set periodToRetrieveTransfersInHours(periodToRetrieveTransfersInHours: number);
29
29
  set downloadForAllUsers(downloadForAllUsers: boolean);
30
+ set portals(portals: string[]);
30
31
  set downloadFolderTemplate(downloadFolderTemplate: string);
31
32
  startCheckingForNewTransfers(): Promise<void>;
32
33
  recoverTransfers(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"autoDownloader.d.ts","sourceRoot":"","sources":["../../../src/autoDownloader/autoDownloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autoDownloader.d.ts","sourceRoot":"","sources":["../../../src/autoDownloader/autoDownloader.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,10 @@ class AutoDownloader {
65
65
  this.#logger.logInfo(`AutoDownloader set downloadForAllUsers = ${downloadForAllUsers} called`);
66
66
  this.#newInboxTransfersRetriever.downloadForAllUsers = downloadForAllUsers;
67
67
  }
68
+ set portals(portals) {
69
+ this.#logger.logInfo(`AutoDownloader set portals = ${portals.join(`, `)} called`);
70
+ this.#newInboxTransfersRetriever.portals = portals;
71
+ }
68
72
  set downloadFolderTemplate(downloadFolderTemplate) {
69
73
  this.#logger.logInfo(`AutoDownloader set downloadFolderTemplate = ${downloadFolderTemplate} called`);
70
74
  this.#transferDownloaderFactory.downloadFolderTemplate = downloadFolderTemplate;
@@ -1 +1 @@
1
- {"version":3,"file":"autoDownloader.js","sourceRoot":"","sources":["../../../src/autoDownloader/autoDownloader.ts"],"names":[],"mappings":"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","sourcesContent":["import sleep from \"abortable-sleep\";\r\n\r\nimport AutoDownloaderError from \"./autoDownloaderError.js\";\r\nimport AutoDownloaderState from \"./state/autoDownloaderState.js\";\r\nimport AutoDownloaderNewTransferHandler from \"./transferHandler/autoDownloaderNewTransferHandler.js\";\r\nimport AutoDownloaderRecoverableTransferHandler from \"./transferHandler/autoDownloaderRecoverableTransferHandler.js\";\r\nimport AutoDownloaderEvent from \"./autoDownloaderEvent.js\";\r\nimport TransferStatus from \"../utils/types/transferStatus.js\";\r\nimport AutoDownloaderDestroyer from \"./autoDownloaderDestroyer.js\";\r\n\r\nimport type Logger from \"../client/loggers/logger.js\";\r\nimport type ConcurrencyController from \"../utils/concurrencyController/concurrencyController.js\";\r\nimport type AutoDownloaderOptions from \"./autoDownloaderOptions.js\";\r\nimport type TransferDownloaderFactory from './transferDownloaderFactory.js';\r\nimport type AutoDownloaderStateSnapshot from './state/autoDownloaderStateSnapshot.js';\r\nimport type AutoDownloaderRecoverableState from './state/autoDownloaderRecoverableState.js';\r\nimport type EventsEngine from '../utils/events/eventsEngine.js';\r\nimport type AutoDownloaderStateSerializer from './autoDownloaderStateSerializer.js';\r\nimport type AutoDownloaderTransferHandlerBase from \"./transferHandler/autoDownloaderTransferHandlerBase.js\";\r\nimport type NewInboxTransfersRetriever from \"./newInboxTransfersRetriever/newInboxTransfersRetriever.js\";\r\nimport type NewInboxTransfer from \"./newInboxTransfersRetriever/newInboxTransfer.js\";\r\nimport type AutoDownloaderStateRecoverableTransfer from \"./state/autoDownloaderStateRecoverableTransfer.js\";\r\nimport type NewTransfersCheckCompletedEventArgs from \"./eventArgs/newTransfersCheckCompletedEventArgs.js\";\r\nimport type AutoDownloadStartedEventArgs from \"./eventArgs/autoDownloadStartedEventArgs.js\";\r\nimport type AutoDownloadFailedEventArgs from \"./eventArgs/autoDownloadFailedEventArgs.js\";\r\nimport type AutoDownloadProgressedEventArgs from \"./eventArgs/autoDownloadProgressedEventArgs.js\";\r\nimport type AutoDownloadEventArgs from \"./eventArgs/autoDownloadEventArgs.js\";\r\nimport type AutoDownloadStartingFailedEventArgs from \"./eventArgs/autoDownloadStartingFailedEventArgs.js\";\r\nimport type CheckingForNewTransfersStartedEventArgs from \"./eventArgs/checkingForNewTransfersStartedEventArgs.js\";\r\nimport type AutoDownloadUnhealthyEventArgs from \"./eventArgs/autoDownloadUnhealthyEventArgs.js\";\r\n\r\nclass AutoDownloader {\r\n #newTransfersCheckIntervalInSeconds: number;\r\n\r\n #logger: Logger;\r\n #eventsEngine: EventsEngine;\r\n #state: AutoDownloaderState;\r\n #newInboxTransfersRetriever: NewInboxTransfersRetriever;\r\n #concurrencyController: ConcurrencyController;\r\n #transferDownloaderFactory: TransferDownloaderFactory;\r\n #destroyer: AutoDownloaderDestroyer;\r\n\r\n #isCheckingForNewTransfers: boolean = false;\r\n #abortController: AbortController = new AbortController();\r\n\r\n constructor(options: AutoDownloaderOptions, logger: Logger, newInboxTransfersRetriever: NewInboxTransfersRetriever, concurrencyController: ConcurrencyController, eventsEngine: EventsEngine, transferDownloaderFactory: TransferDownloaderFactory, stateSerializer: AutoDownloaderStateSerializer, recoverableState: AutoDownloaderRecoverableState | null) {\r\n this.#newTransfersCheckIntervalInSeconds = options.newTransfersCheckIntervalInSeconds;\r\n\r\n this.#logger = logger;\r\n this.#eventsEngine = eventsEngine;\r\n this.#newInboxTransfersRetriever = newInboxTransfersRetriever;\r\n this.#concurrencyController = concurrencyController;\r\n this.#transferDownloaderFactory = transferDownloaderFactory;\r\n\r\n this.#state = new AutoDownloaderState(eventsEngine);\r\n\r\n if (recoverableState)\r\n this.#state.recover(recoverableState);\r\n\r\n this.#state.addRecoverableStateObserver(eventArgs => stateSerializer.serialize(eventArgs));\r\n\r\n this.#destroyer = new AutoDownloaderDestroyer(this.#state, stateSerializer, transferDownloaderFactory, logger);\r\n }\r\n\r\n get state(): AutoDownloaderStateSnapshot {\r\n return {\r\n lastCompletedNewTransfersCheck: this.#state.lastCompletedNewTransfersCheck,\r\n runningTransfers: this.#state.runningTransfers,\r\n completedTransfers: this.#state.completedTransfers,\r\n failedTransfers: new Set(this.#state.failedTransfers.keys()),\r\n canceledTransfers: this.#state.canceledTransfers,\r\n };\r\n }\r\n\r\n get isAnyTransferRunning(): boolean {\r\n return this.#state.isAnyTransferRunning;\r\n }\r\n\r\n get isCheckingForNewTransfers(): boolean {\r\n return this.#isCheckingForNewTransfers;\r\n }\r\n\r\n set loginToken(loginToken: string) {\r\n this.#logger.logInfo(`AutoDownloader set loginToken called`);\r\n this.#newInboxTransfersRetriever.loginToken = loginToken;\r\n }\r\n\r\n set maxNumberOfConcurrentDownloads(maxNumberOfConcurrentDownloads: number) {\r\n this.#logger.logInfo(`AutoDownloader set maxNumberOfConcurrentDownloads = ${maxNumberOfConcurrentDownloads} called`);\r\n this.#concurrencyController.maxConcurrency = maxNumberOfConcurrentDownloads;\r\n }\r\n\r\n set newTransfersCheckIntervalInSeconds(newTransfersCheckIntervalInSeconds: number) {\r\n this.#logger.logInfo(`AutoDownloader set newTransfersCheckIntervalInSeconds = ${newTransfersCheckIntervalInSeconds} called`);\r\n this.#newTransfersCheckIntervalInSeconds = newTransfersCheckIntervalInSeconds;\r\n }\r\n\r\n set periodToRetrieveTransfersInHours(periodToRetrieveTransfersInHours: number) {\r\n this.#logger.logInfo(`AutoDownloader set periodToRetrieveTransfersInHours = ${periodToRetrieveTransfersInHours} called`);\r\n this.#newInboxTransfersRetriever.periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;\r\n }\r\n\r\n set downloadForAllUsers(downloadForAllUsers: boolean) {\r\n this.#logger.logInfo(`AutoDownloader set downloadForAllUsers = ${downloadForAllUsers} called`);\r\n this.#newInboxTransfersRetriever.downloadForAllUsers = downloadForAllUsers;\r\n }\r\n\r\n set downloadFolderTemplate(downloadFolderTemplate: string) {\r\n this.#logger.logInfo(`AutoDownloader set downloadFolderTemplate = ${downloadFolderTemplate} called`);\r\n this.#transferDownloaderFactory.downloadFolderTemplate = downloadFolderTemplate;\r\n }\r\n\r\n async startCheckingForNewTransfers(): Promise<void> {\r\n this.#logger.logInfo(`AutoDownloader startCheckingForNewTransfers called`);\r\n\r\n if (this.#destroyer.isDestroyed)\r\n throw new AutoDownloaderError(`Auto-downloader has been destroyed`);\r\n\r\n if (this.#isCheckingForNewTransfers)\r\n throw new AutoDownloaderError(`Auto-downloader is already checking for new transfers`);\r\n\r\n this.#isCheckingForNewTransfers = true;\r\n this.#abortController = new AbortController();\r\n\r\n const eventArgs: CheckingForNewTransfersStartedEventArgs = { lastCompletedNewTransfersCheck: this.#state.lastCompletedNewTransfersCheck };\r\n this.#eventsEngine.emit(AutoDownloaderEvent.CheckingForNewTransfersStarted, eventArgs);\r\n\r\n while (!this.#abortController.signal.aborted) {\r\n /* eslint-disable no-await-in-loop */\r\n try {\r\n this.#logger.logDebug(`AutoDownloader main loop iteration started`);\r\n\r\n const newTransfers = await this.#newInboxTransfersRetriever.getNewTransfers(transferId => this.#state.isTransferHandled(transferId), this.#abortController.signal);\r\n\r\n this.#logger.logDebug(`AutoDownloader retrieved new transfers to start: [${newTransfers.map(t => t.transferId).join(`, `)}]`);\r\n\r\n if (this.#abortController.signal.aborted)\r\n break;\r\n\r\n await this.startNewTransfers(newTransfers);\r\n\r\n this.#state.newTransfersCheckCompleted();\r\n\r\n this.#logger.logDebug(`AutoDownloader main loop iteration finished`);\r\n }\r\n catch (error) {\r\n this.#logger.logError(error as Error, `AutoDownloader main loop error occured`, { isAborted: this.#abortController.signal.aborted });\r\n }\r\n\r\n await sleep(this.#newTransfersCheckIntervalInSeconds * 1000, this.#abortController.signal);\r\n }\r\n\r\n this.#isCheckingForNewTransfers = false;\r\n\r\n this.#logger.logInfo(`AutoDownloader stopped`);\r\n\r\n this.#eventsEngine.emit(AutoDownloaderEvent.CheckingForNewTransfersStopped);\r\n }\r\n\r\n async recoverTransfers(): Promise<void> {\r\n this.#logger.logInfo(`AutoDownloader recoverTransfers called`);\r\n\r\n if (this.#destroyer.isDestroyed)\r\n throw new AutoDownloaderError(`Auto-downloader has been destroyed`);\r\n\r\n const recoverableTransferHandlerFactory = (transfer: [string, AutoDownloaderStateRecoverableTransfer]) => new AutoDownloaderRecoverableTransferHandler(transfer[1].data, transfer[1].downloadId, this.#state, this.#transferDownloaderFactory, this.#logger);\r\n await this.startTransfers(this.#state.toBeRecoveredTransfers, recoverableTransferHandlerFactory);\r\n }\r\n\r\n private async startNewTransfers(newTransfers: NewInboxTransfer[]) {\r\n const newTransferHandlerFactory = (transfer: NewInboxTransfer) => new AutoDownloaderNewTransferHandler(transfer, this.#state, this.#transferDownloaderFactory, this.#logger);\r\n await this.startTransfers(newTransfers, newTransferHandlerFactory);\r\n }\r\n\r\n private async startTransfers<T>(transfers: Iterable<T>, transferHandlerFactory: (transfer: T) => AutoDownloaderTransferHandlerBase) {\r\n for (const transfer of transfers) {\r\n const releaseSemaphore = await this.#concurrencyController.acquire();\r\n\r\n if (this.#abortController.signal.aborted) {\r\n releaseSemaphore();\r\n return;\r\n }\r\n\r\n const transferHandler = transferHandlerFactory(transfer);\r\n\r\n this.#logger.logInfo(`AutoDownloader starting transfer having id ${transferHandler.transferId}`);\r\n\r\n transferHandler.startTransfer(releaseSemaphore);\r\n }\r\n }\r\n\r\n destroy() {\r\n this.#logger.logInfo(`AutoDownloader destroy called`);\r\n\r\n if (this.#isCheckingForNewTransfers)\r\n this.pauseCheckingForNewTransfers();\r\n\r\n this.#destroyer.destroy();\r\n }\r\n\r\n pauseCheckingForNewTransfers() {\r\n this.#logger.logInfo(`AutoDownloader pauseCheckingForNewTransfers called`);\r\n\r\n if (!this.#isCheckingForNewTransfers)\r\n throw new AutoDownloaderError(`Auto-downloader is not checking for new transfers, so it cannot be paused`);\r\n\r\n this.#eventsEngine.emit(AutoDownloaderEvent.CheckingForNewTransfersStopping);\r\n this.#abortController.abort();\r\n }\r\n\r\n pauseTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader pauseTransfer ${transferId} called`);\r\n\r\n const transferDownloader = this.#state.getRunningTransferDownloader(transferId);\r\n transferDownloader.pause();\r\n }\r\n\r\n resumeTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader resumeTransfer ${transferId} called`);\r\n\r\n const transferDownloader = this.#state.getRunningTransferDownloader(transferId);\r\n transferDownloader.resume();\r\n }\r\n\r\n stopTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader stopTransfer ${transferId} called`);\r\n\r\n const transferDownloader = this.#state.getRunningTransferDownloader(transferId);\r\n\r\n if (transferDownloader.status !== TransferStatus.Running)\r\n return;\r\n\r\n transferDownloader.stop();\r\n }\r\n\r\n stopAllTransfers() {\r\n this.#logger.logInfo(`AutoDownloader stopAllTransfers called`);\r\n\r\n this.#state.runningTransfers.forEach(t => this.stopTransfer(t));\r\n }\r\n\r\n cancelTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader cancelTransfer ${transferId} called`);\r\n\r\n if (this.#state.runningTransfers.has(transferId)) {\r\n this.cancelRunningTransfer(transferId);\r\n return;\r\n }\r\n\r\n if (this.#state.failedTransfers.has(transferId)) {\r\n this.cancelFailedTransfer(transferId);\r\n return;\r\n }\r\n\r\n throw new AutoDownloaderError(`Transfer not found (TransferId = ${transferId})`);\r\n }\r\n\r\n private cancelRunningTransfer(transferId: string) {\r\n this.#destroyer.abortRunningTransfer(transferId);\r\n }\r\n\r\n private cancelFailedTransfer(transferId: string) {\r\n this.#state.transferAborting(transferId);\r\n\r\n const transfer = this.#state.failedTransfers.get(transferId)!;\r\n\r\n if (transfer.downloadId)\r\n this.#destroyer.cleanupTransfer(transfer.downloadId);\r\n\r\n this.#state.transferAborted(transferId);\r\n }\r\n\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadAborted | AutoDownloaderEvent.DownloadCompleted | AutoDownloaderEvent.DownloadResumed | AutoDownloaderEvent.DownloadAborting | AutoDownloaderEvent.DownloadPaused | AutoDownloaderEvent.DownloadPausing | AutoDownloaderEvent.DownloadStopped | AutoDownloaderEvent.DownloadStopping | AutoDownloaderEvent.DownloadHealthy, handler: (event: AutoDownloadEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadUnealthy, handler: (event: AutoDownloadUnhealthyEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadProgressed, handler: (event: AutoDownloadProgressedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadFailed, handler: (event: AutoDownloadFailedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadStarted, handler: (event: AutoDownloadStartedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadStartingFailed, handler: (event: AutoDownloadStartingFailedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.NewTransfersCheckCompleted, handler: (event: NewTransfersCheckCompletedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.CheckingForNewTransfersStarted, handler: (event: CheckingForNewTransfersStartedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.CheckingForNewTransfersStopped | AutoDownloaderEvent.CheckingForNewTransfersStopping, handler: () => void): void\r\n addEventListener(eventName: string, handler: (arg?: any) => void): void\r\n addEventListener(eventName: string, handler: (arg?: any) => void): void {\r\n this.#eventsEngine.addEventListener(eventName, handler);\r\n }\r\n}\r\n\r\nexport default AutoDownloader;"]}
1
+ {"version":3,"file":"autoDownloader.js","sourceRoot":"","sources":["../../../src/autoDownloader/autoDownloader.ts"],"names":[],"mappings":"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","sourcesContent":["import sleep from \"abortable-sleep\";\r\n\r\nimport AutoDownloaderError from \"./autoDownloaderError.js\";\r\nimport AutoDownloaderState from \"./state/autoDownloaderState.js\";\r\nimport AutoDownloaderNewTransferHandler from \"./transferHandler/autoDownloaderNewTransferHandler.js\";\r\nimport AutoDownloaderRecoverableTransferHandler from \"./transferHandler/autoDownloaderRecoverableTransferHandler.js\";\r\nimport AutoDownloaderEvent from \"./autoDownloaderEvent.js\";\r\nimport TransferStatus from \"../utils/types/transferStatus.js\";\r\nimport AutoDownloaderDestroyer from \"./autoDownloaderDestroyer.js\";\r\n\r\nimport type Logger from \"../client/loggers/logger.js\";\r\nimport type ConcurrencyController from \"../utils/concurrencyController/concurrencyController.js\";\r\nimport type AutoDownloaderOptions from \"./autoDownloaderOptions.js\";\r\nimport type TransferDownloaderFactory from './transferDownloaderFactory.js';\r\nimport type AutoDownloaderStateSnapshot from './state/autoDownloaderStateSnapshot.js';\r\nimport type AutoDownloaderRecoverableState from './state/autoDownloaderRecoverableState.js';\r\nimport type EventsEngine from '../utils/events/eventsEngine.js';\r\nimport type AutoDownloaderStateSerializer from './autoDownloaderStateSerializer.js';\r\nimport type AutoDownloaderTransferHandlerBase from \"./transferHandler/autoDownloaderTransferHandlerBase.js\";\r\nimport type NewInboxTransfersRetriever from \"./newInboxTransfersRetriever/newInboxTransfersRetriever.js\";\r\nimport type NewInboxTransfer from \"./newInboxTransfersRetriever/newInboxTransfer.js\";\r\nimport type AutoDownloaderStateRecoverableTransfer from \"./state/autoDownloaderStateRecoverableTransfer.js\";\r\nimport type NewTransfersCheckCompletedEventArgs from \"./eventArgs/newTransfersCheckCompletedEventArgs.js\";\r\nimport type AutoDownloadStartedEventArgs from \"./eventArgs/autoDownloadStartedEventArgs.js\";\r\nimport type AutoDownloadFailedEventArgs from \"./eventArgs/autoDownloadFailedEventArgs.js\";\r\nimport type AutoDownloadProgressedEventArgs from \"./eventArgs/autoDownloadProgressedEventArgs.js\";\r\nimport type AutoDownloadEventArgs from \"./eventArgs/autoDownloadEventArgs.js\";\r\nimport type AutoDownloadStartingFailedEventArgs from \"./eventArgs/autoDownloadStartingFailedEventArgs.js\";\r\nimport type CheckingForNewTransfersStartedEventArgs from \"./eventArgs/checkingForNewTransfersStartedEventArgs.js\";\r\nimport type AutoDownloadUnhealthyEventArgs from \"./eventArgs/autoDownloadUnhealthyEventArgs.js\";\r\n\r\nclass AutoDownloader {\r\n #newTransfersCheckIntervalInSeconds: number;\r\n\r\n #logger: Logger;\r\n #eventsEngine: EventsEngine;\r\n #state: AutoDownloaderState;\r\n #newInboxTransfersRetriever: NewInboxTransfersRetriever;\r\n #concurrencyController: ConcurrencyController;\r\n #transferDownloaderFactory: TransferDownloaderFactory;\r\n #destroyer: AutoDownloaderDestroyer;\r\n\r\n #isCheckingForNewTransfers: boolean = false;\r\n #abortController: AbortController = new AbortController();\r\n\r\n constructor(options: AutoDownloaderOptions, logger: Logger, newInboxTransfersRetriever: NewInboxTransfersRetriever, concurrencyController: ConcurrencyController, eventsEngine: EventsEngine, transferDownloaderFactory: TransferDownloaderFactory, stateSerializer: AutoDownloaderStateSerializer, recoverableState: AutoDownloaderRecoverableState | null) {\r\n this.#newTransfersCheckIntervalInSeconds = options.newTransfersCheckIntervalInSeconds;\r\n\r\n this.#logger = logger;\r\n this.#eventsEngine = eventsEngine;\r\n this.#newInboxTransfersRetriever = newInboxTransfersRetriever;\r\n this.#concurrencyController = concurrencyController;\r\n this.#transferDownloaderFactory = transferDownloaderFactory;\r\n\r\n this.#state = new AutoDownloaderState(eventsEngine);\r\n\r\n if (recoverableState)\r\n this.#state.recover(recoverableState);\r\n\r\n this.#state.addRecoverableStateObserver(eventArgs => stateSerializer.serialize(eventArgs));\r\n\r\n this.#destroyer = new AutoDownloaderDestroyer(this.#state, stateSerializer, transferDownloaderFactory, logger);\r\n }\r\n\r\n get state(): AutoDownloaderStateSnapshot {\r\n return {\r\n lastCompletedNewTransfersCheck: this.#state.lastCompletedNewTransfersCheck,\r\n runningTransfers: this.#state.runningTransfers,\r\n completedTransfers: this.#state.completedTransfers,\r\n failedTransfers: new Set(this.#state.failedTransfers.keys()),\r\n canceledTransfers: this.#state.canceledTransfers,\r\n };\r\n }\r\n\r\n get isAnyTransferRunning(): boolean {\r\n return this.#state.isAnyTransferRunning;\r\n }\r\n\r\n get isCheckingForNewTransfers(): boolean {\r\n return this.#isCheckingForNewTransfers;\r\n }\r\n\r\n set loginToken(loginToken: string) {\r\n this.#logger.logInfo(`AutoDownloader set loginToken called`);\r\n this.#newInboxTransfersRetriever.loginToken = loginToken;\r\n }\r\n\r\n set maxNumberOfConcurrentDownloads(maxNumberOfConcurrentDownloads: number) {\r\n this.#logger.logInfo(`AutoDownloader set maxNumberOfConcurrentDownloads = ${maxNumberOfConcurrentDownloads} called`);\r\n this.#concurrencyController.maxConcurrency = maxNumberOfConcurrentDownloads;\r\n }\r\n\r\n set newTransfersCheckIntervalInSeconds(newTransfersCheckIntervalInSeconds: number) {\r\n this.#logger.logInfo(`AutoDownloader set newTransfersCheckIntervalInSeconds = ${newTransfersCheckIntervalInSeconds} called`);\r\n this.#newTransfersCheckIntervalInSeconds = newTransfersCheckIntervalInSeconds;\r\n }\r\n\r\n set periodToRetrieveTransfersInHours(periodToRetrieveTransfersInHours: number) {\r\n this.#logger.logInfo(`AutoDownloader set periodToRetrieveTransfersInHours = ${periodToRetrieveTransfersInHours} called`);\r\n this.#newInboxTransfersRetriever.periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;\r\n }\r\n\r\n set downloadForAllUsers(downloadForAllUsers: boolean) {\r\n this.#logger.logInfo(`AutoDownloader set downloadForAllUsers = ${downloadForAllUsers} called`);\r\n this.#newInboxTransfersRetriever.downloadForAllUsers = downloadForAllUsers;\r\n }\r\n\r\n set portals(portals: string[]) {\r\n this.#logger.logInfo(`AutoDownloader set portals = ${portals.join(`, `)} called`);\r\n this.#newInboxTransfersRetriever.portals = portals;\r\n }\r\n\r\n set downloadFolderTemplate(downloadFolderTemplate: string) {\r\n this.#logger.logInfo(`AutoDownloader set downloadFolderTemplate = ${downloadFolderTemplate} called`);\r\n this.#transferDownloaderFactory.downloadFolderTemplate = downloadFolderTemplate;\r\n }\r\n\r\n async startCheckingForNewTransfers(): Promise<void> {\r\n this.#logger.logInfo(`AutoDownloader startCheckingForNewTransfers called`);\r\n\r\n if (this.#destroyer.isDestroyed)\r\n throw new AutoDownloaderError(`Auto-downloader has been destroyed`);\r\n\r\n if (this.#isCheckingForNewTransfers)\r\n throw new AutoDownloaderError(`Auto-downloader is already checking for new transfers`);\r\n\r\n this.#isCheckingForNewTransfers = true;\r\n this.#abortController = new AbortController();\r\n\r\n const eventArgs: CheckingForNewTransfersStartedEventArgs = { lastCompletedNewTransfersCheck: this.#state.lastCompletedNewTransfersCheck };\r\n this.#eventsEngine.emit(AutoDownloaderEvent.CheckingForNewTransfersStarted, eventArgs);\r\n\r\n while (!this.#abortController.signal.aborted) {\r\n /* eslint-disable no-await-in-loop */\r\n try {\r\n this.#logger.logDebug(`AutoDownloader main loop iteration started`);\r\n\r\n const newTransfers = await this.#newInboxTransfersRetriever.getNewTransfers(transferId => this.#state.isTransferHandled(transferId), this.#abortController.signal);\r\n\r\n this.#logger.logDebug(`AutoDownloader retrieved new transfers to start: [${newTransfers.map(t => t.transferId).join(`, `)}]`);\r\n\r\n if (this.#abortController.signal.aborted)\r\n break;\r\n\r\n await this.startNewTransfers(newTransfers);\r\n\r\n this.#state.newTransfersCheckCompleted();\r\n\r\n this.#logger.logDebug(`AutoDownloader main loop iteration finished`);\r\n }\r\n catch (error) {\r\n this.#logger.logError(error as Error, `AutoDownloader main loop error occured`, { isAborted: this.#abortController.signal.aborted });\r\n }\r\n\r\n await sleep(this.#newTransfersCheckIntervalInSeconds * 1000, this.#abortController.signal);\r\n }\r\n\r\n this.#isCheckingForNewTransfers = false;\r\n\r\n this.#logger.logInfo(`AutoDownloader stopped`);\r\n\r\n this.#eventsEngine.emit(AutoDownloaderEvent.CheckingForNewTransfersStopped);\r\n }\r\n\r\n async recoverTransfers(): Promise<void> {\r\n this.#logger.logInfo(`AutoDownloader recoverTransfers called`);\r\n\r\n if (this.#destroyer.isDestroyed)\r\n throw new AutoDownloaderError(`Auto-downloader has been destroyed`);\r\n\r\n const recoverableTransferHandlerFactory = (transfer: [string, AutoDownloaderStateRecoverableTransfer]) => new AutoDownloaderRecoverableTransferHandler(transfer[1].data, transfer[1].downloadId, this.#state, this.#transferDownloaderFactory, this.#logger);\r\n await this.startTransfers(this.#state.toBeRecoveredTransfers, recoverableTransferHandlerFactory);\r\n }\r\n\r\n private async startNewTransfers(newTransfers: NewInboxTransfer[]) {\r\n const newTransferHandlerFactory = (transfer: NewInboxTransfer) => new AutoDownloaderNewTransferHandler(transfer, this.#state, this.#transferDownloaderFactory, this.#logger);\r\n await this.startTransfers(newTransfers, newTransferHandlerFactory);\r\n }\r\n\r\n private async startTransfers<T>(transfers: Iterable<T>, transferHandlerFactory: (transfer: T) => AutoDownloaderTransferHandlerBase) {\r\n for (const transfer of transfers) {\r\n const releaseSemaphore = await this.#concurrencyController.acquire();\r\n\r\n if (this.#abortController.signal.aborted) {\r\n releaseSemaphore();\r\n return;\r\n }\r\n\r\n const transferHandler = transferHandlerFactory(transfer);\r\n\r\n this.#logger.logInfo(`AutoDownloader starting transfer having id ${transferHandler.transferId}`);\r\n\r\n transferHandler.startTransfer(releaseSemaphore);\r\n }\r\n }\r\n\r\n destroy() {\r\n this.#logger.logInfo(`AutoDownloader destroy called`);\r\n\r\n if (this.#isCheckingForNewTransfers)\r\n this.pauseCheckingForNewTransfers();\r\n\r\n this.#destroyer.destroy();\r\n }\r\n\r\n pauseCheckingForNewTransfers() {\r\n this.#logger.logInfo(`AutoDownloader pauseCheckingForNewTransfers called`);\r\n\r\n if (!this.#isCheckingForNewTransfers)\r\n throw new AutoDownloaderError(`Auto-downloader is not checking for new transfers, so it cannot be paused`);\r\n\r\n this.#eventsEngine.emit(AutoDownloaderEvent.CheckingForNewTransfersStopping);\r\n this.#abortController.abort();\r\n }\r\n\r\n pauseTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader pauseTransfer ${transferId} called`);\r\n\r\n const transferDownloader = this.#state.getRunningTransferDownloader(transferId);\r\n transferDownloader.pause();\r\n }\r\n\r\n resumeTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader resumeTransfer ${transferId} called`);\r\n\r\n const transferDownloader = this.#state.getRunningTransferDownloader(transferId);\r\n transferDownloader.resume();\r\n }\r\n\r\n stopTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader stopTransfer ${transferId} called`);\r\n\r\n const transferDownloader = this.#state.getRunningTransferDownloader(transferId);\r\n\r\n if (transferDownloader.status !== TransferStatus.Running)\r\n return;\r\n\r\n transferDownloader.stop();\r\n }\r\n\r\n stopAllTransfers() {\r\n this.#logger.logInfo(`AutoDownloader stopAllTransfers called`);\r\n\r\n this.#state.runningTransfers.forEach(t => this.stopTransfer(t));\r\n }\r\n\r\n cancelTransfer(transferId: string) {\r\n this.#logger.logInfo(`AutoDownloader cancelTransfer ${transferId} called`);\r\n\r\n if (this.#state.runningTransfers.has(transferId)) {\r\n this.cancelRunningTransfer(transferId);\r\n return;\r\n }\r\n\r\n if (this.#state.failedTransfers.has(transferId)) {\r\n this.cancelFailedTransfer(transferId);\r\n return;\r\n }\r\n\r\n throw new AutoDownloaderError(`Transfer not found (TransferId = ${transferId})`);\r\n }\r\n\r\n private cancelRunningTransfer(transferId: string) {\r\n this.#destroyer.abortRunningTransfer(transferId);\r\n }\r\n\r\n private cancelFailedTransfer(transferId: string) {\r\n this.#state.transferAborting(transferId);\r\n\r\n const transfer = this.#state.failedTransfers.get(transferId)!;\r\n\r\n if (transfer.downloadId)\r\n this.#destroyer.cleanupTransfer(transfer.downloadId);\r\n\r\n this.#state.transferAborted(transferId);\r\n }\r\n\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadAborted | AutoDownloaderEvent.DownloadCompleted | AutoDownloaderEvent.DownloadResumed | AutoDownloaderEvent.DownloadAborting | AutoDownloaderEvent.DownloadPaused | AutoDownloaderEvent.DownloadPausing | AutoDownloaderEvent.DownloadStopped | AutoDownloaderEvent.DownloadStopping | AutoDownloaderEvent.DownloadHealthy, handler: (event: AutoDownloadEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadUnealthy, handler: (event: AutoDownloadUnhealthyEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadProgressed, handler: (event: AutoDownloadProgressedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadFailed, handler: (event: AutoDownloadFailedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadStarted, handler: (event: AutoDownloadStartedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.DownloadStartingFailed, handler: (event: AutoDownloadStartingFailedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.NewTransfersCheckCompleted, handler: (event: NewTransfersCheckCompletedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.CheckingForNewTransfersStarted, handler: (event: CheckingForNewTransfersStartedEventArgs) => void): void\r\n addEventListener(eventName: AutoDownloaderEvent.CheckingForNewTransfersStopped | AutoDownloaderEvent.CheckingForNewTransfersStopping, handler: () => void): void\r\n addEventListener(eventName: string, handler: (arg?: any) => void): void\r\n addEventListener(eventName: string, handler: (arg?: any) => void): void {\r\n this.#eventsEngine.addEventListener(eventName, handler);\r\n }\r\n}\r\n\r\nexport default AutoDownloader;"]}
@@ -14,7 +14,7 @@ class NodeAutoDownloaderFactory {
14
14
  const eventsEngine = new NodeEventsEngine();
15
15
  const concurrencyController = new TransferConcurrencyController(options.maxNumberOfConcurrentAutoDownloads);
16
16
  const apiClient = this.getNodeApiClient(envValues, options);
17
- const newInboxTransfersRetriever = new NewInboxTransfersRetriever(options.downloadForAllUsers, options.periodToRetrieveTransfersInHours, apiClient);
17
+ const newInboxTransfersRetriever = new NewInboxTransfersRetriever(options.downloadForAllUsers, options.periodToRetrieveTransfersInHours, options.portals, apiClient);
18
18
  const transferDownloaderFactory = this.getNodeTransferDownloaderFactory(options, envValues, logger);
19
19
  const downloadTrackingBaseFolder = this.getDownloadTrackingBaseFolder(options.downloadTrackingBaseFolder, options.downloadTrackingBaseFolderUsername);
20
20
  const recoverableStateSerializer = await NodeAutoDownloaderStateSerializer.create(downloadTrackingBaseFolder, new NodeFileSystemService(), logger);
@@ -1 +1 @@
1
- {"version":3,"file":"nodeAutoDownloaderFactory.js","sourceRoot":"","sources":["../../../../src/autoDownloader/factory/nodeAutoDownloaderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,6BAA6B,MAAM,oEAAoE,CAAC;AAC/G,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAClE,OAAO,iCAAiC,MAAM,8CAA8C,CAAC;AAC7F,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,gBAAgB,MAAM,6CAA6C,CAAC;AAC3E,OAAO,6BAA6B,MAAM,0CAA0C,CAAC;AACrF,OAAO,eAAe,MAAM,qCAAqC,CAAC;AAClE,OAAO,0BAA0B,MAAM,6DAA6D,CAAC;AAMrG,MAAM,yBAAyB;IAC3B,KAAK,CAAC,aAAa,CAAC,OAAyC,EAAE,SAA+B,EAAE,MAAc;QAC1G,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC5C,MAAM,qBAAqB,GAAG,IAAI,6BAA6B,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC5G,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,0BAA0B,GAAG,IAAI,0BAA0B,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;QACpJ,MAAM,yBAAyB,GAAG,IAAI,CAAC,gCAAgC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACpG,MAAM,0BAA0B,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,0BAA0B,EAAE,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAEtJ,MAAM,0BAA0B,GAAG,MAAM,iCAAiC,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;QACnJ,MAAM,gBAAgB,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,CAAC;QAExE,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,YAAY,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,CAAC;IACzL,CAAC;IAEO,gBAAgB,CAAC,SAA+B,EAAE,OAAyC;QAC/F,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,0BAA0B,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAChK,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,gCAAgC,CAAC,OAAyC,EAAE,SAA+B,EAAE,MAAc;QAC/H,MAAM,eAAe,GAAoB,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;QAEvF,OAAO,IAAI,6BAA6B,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAEO,+BAA+B,CAAC,OAAyC;QAC7E,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE9C,eAAe,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAChD,eAAe,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QACxE,eAAe,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;QAChF,eAAe,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAChE,eAAe,CAAC,oCAAoC,GAAG,OAAO,CAAC,oCAAoC,CAAC;QAEpG,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,6BAA6B,CAAC,0BAAkC,EAAE,kCAA0C;QAChH,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC;IAC/D,CAAC;CACJ;AAED,eAAe,yBAAyB,CAAC","sourcesContent":["import { createHash } from 'crypto';\r\nimport path from 'path';\r\n\r\nimport TransferConcurrencyController from \"../../utils/concurrencyController/transferConcurrencyController.js\";\r\nimport AutoDownloader from \"../autoDownloader.js\";\r\nimport NodeApiClient from \"../../utils/api/node/nodeApiClient.js\";\r\nimport NodeAutoDownloaderStateSerializer from \"../node/nodeAutoDownloaderStateSerializer.js\";\r\nimport NodeFileSystemService from \"../../utils/fileSystem/node/nodeFileSystemService.js\";\r\nimport NodeEventsEngine from \"../../utils/events/node/nodeEventsEngine.js\";\r\nimport NodeTransferDownloaderFactory from \"../node/nodeTransferDownloaderFactory.js\";\r\nimport DownloadOptions from \"../../downloader/downloadOptions.js\";\r\nimport NewInboxTransfersRetriever from \"../newInboxTransfersRetriever/newInboxTransfersRetriever.js\";\r\n\r\nimport type Logger from \"../../client/loggers/logger.js\";\r\nimport type EnvironmentVariables from \"../../client/environmentVariables.js\";\r\nimport type NodeAutoDownloaderFactoryOptions from \"./nodeAutoDownloaderFactoryOptions.js\";\r\n\r\nclass NodeAutoDownloaderFactory {\r\n async createForNode(options: NodeAutoDownloaderFactoryOptions, envValues: EnvironmentVariables, logger: Logger): Promise<AutoDownloader> {\r\n const eventsEngine = new NodeEventsEngine();\r\n const concurrencyController = new TransferConcurrencyController(options.maxNumberOfConcurrentAutoDownloads);\r\n const apiClient = this.getNodeApiClient(envValues, options);\r\n const newInboxTransfersRetriever = new NewInboxTransfersRetriever(options.downloadForAllUsers, options.periodToRetrieveTransfersInHours, apiClient);\r\n const transferDownloaderFactory = this.getNodeTransferDownloaderFactory(options, envValues, logger);\r\n const downloadTrackingBaseFolder = this.getDownloadTrackingBaseFolder(options.downloadTrackingBaseFolder, options.downloadTrackingBaseFolderUsername);\r\n\r\n const recoverableStateSerializer = await NodeAutoDownloaderStateSerializer.create(downloadTrackingBaseFolder, new NodeFileSystemService(), logger);\r\n const recoverableState = await recoverableStateSerializer.deserialize();\r\n\r\n return new AutoDownloader(options, logger, newInboxTransfersRetriever, concurrencyController, eventsEngine, transferDownloaderFactory, recoverableStateSerializer, recoverableState);\r\n }\r\n\r\n private getNodeApiClient(envValues: EnvironmentVariables, options: NodeAutoDownloaderFactoryOptions) {\r\n const apiClient = new NodeApiClient(envValues.apiBaseUrl, envValues.source, envValues.sourceDetails, options.apiRequestTotalTimeoutInMs, options.apiRetryLimit);\r\n apiClient.setLoginToken(options.loginToken);\r\n return apiClient;\r\n }\r\n\r\n private getNodeTransferDownloaderFactory(options: NodeAutoDownloaderFactoryOptions, envValues: EnvironmentVariables, logger: Logger): NodeTransferDownloaderFactory {\r\n const downloadOptions: DownloadOptions = this.createTransferDownloaderOptions(options);\r\n\r\n return new NodeTransferDownloaderFactory(downloadOptions, envValues, logger);\r\n }\r\n\r\n private createTransferDownloaderOptions(options: NodeAutoDownloaderFactoryOptions): DownloadOptions {\r\n const downloadOptions = new DownloadOptions();\r\n\r\n downloadOptions.logintoken = options.loginToken;\r\n downloadOptions.downloadFolderTemplate = options.downloadFolderTemplate;\r\n downloadOptions.downloadTrackingBaseFolder = options.downloadTrackingBaseFolder;\r\n downloadOptions.progressTickMillis = options.progressTickMillis;\r\n downloadOptions.momentaryDownloadSpeedTimespanMillis = options.momentaryDownloadSpeedTimespanMillis;\r\n\r\n return downloadOptions;\r\n }\r\n\r\n private getDownloadTrackingBaseFolder(downloadTrackingBaseFolder: string, downloadTrackingBaseFolderUsername: string): string {\r\n const hash = createHash(`sha256`);\r\n hash.update(downloadTrackingBaseFolderUsername);\r\n const userNameHash = hash.digest(`hex`);\r\n\r\n return path.join(downloadTrackingBaseFolder, userNameHash);\r\n }\r\n}\r\n\r\nexport default NodeAutoDownloaderFactory;"]}
1
+ {"version":3,"file":"nodeAutoDownloaderFactory.js","sourceRoot":"","sources":["../../../../src/autoDownloader/factory/nodeAutoDownloaderFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from 'crypto';\r\nimport path from 'path';\r\n\r\nimport TransferConcurrencyController from \"../../utils/concurrencyController/transferConcurrencyController.js\";\r\nimport AutoDownloader from \"../autoDownloader.js\";\r\nimport NodeApiClient from \"../../utils/api/node/nodeApiClient.js\";\r\nimport NodeAutoDownloaderStateSerializer from \"../node/nodeAutoDownloaderStateSerializer.js\";\r\nimport NodeFileSystemService from \"../../utils/fileSystem/node/nodeFileSystemService.js\";\r\nimport NodeEventsEngine from \"../../utils/events/node/nodeEventsEngine.js\";\r\nimport NodeTransferDownloaderFactory from \"../node/nodeTransferDownloaderFactory.js\";\r\nimport DownloadOptions from \"../../downloader/downloadOptions.js\";\r\nimport NewInboxTransfersRetriever from \"../newInboxTransfersRetriever/newInboxTransfersRetriever.js\";\r\n\r\nimport type Logger from \"../../client/loggers/logger.js\";\r\nimport type EnvironmentVariables from \"../../client/environmentVariables.js\";\r\nimport type NodeAutoDownloaderFactoryOptions from \"./nodeAutoDownloaderFactoryOptions.js\";\r\n\r\nclass NodeAutoDownloaderFactory {\r\n async createForNode(options: NodeAutoDownloaderFactoryOptions, envValues: EnvironmentVariables, logger: Logger): Promise<AutoDownloader> {\r\n const eventsEngine = new NodeEventsEngine();\r\n const concurrencyController = new TransferConcurrencyController(options.maxNumberOfConcurrentAutoDownloads);\r\n const apiClient = this.getNodeApiClient(envValues, options);\r\n const newInboxTransfersRetriever = new NewInboxTransfersRetriever(options.downloadForAllUsers, options.periodToRetrieveTransfersInHours, options.portals, apiClient);\r\n const transferDownloaderFactory = this.getNodeTransferDownloaderFactory(options, envValues, logger);\r\n const downloadTrackingBaseFolder = this.getDownloadTrackingBaseFolder(options.downloadTrackingBaseFolder, options.downloadTrackingBaseFolderUsername);\r\n\r\n const recoverableStateSerializer = await NodeAutoDownloaderStateSerializer.create(downloadTrackingBaseFolder, new NodeFileSystemService(), logger);\r\n const recoverableState = await recoverableStateSerializer.deserialize();\r\n\r\n return new AutoDownloader(options, logger, newInboxTransfersRetriever, concurrencyController, eventsEngine, transferDownloaderFactory, recoverableStateSerializer, recoverableState);\r\n }\r\n\r\n private getNodeApiClient(envValues: EnvironmentVariables, options: NodeAutoDownloaderFactoryOptions) {\r\n const apiClient = new NodeApiClient(envValues.apiBaseUrl, envValues.source, envValues.sourceDetails, options.apiRequestTotalTimeoutInMs, options.apiRetryLimit);\r\n apiClient.setLoginToken(options.loginToken);\r\n return apiClient;\r\n }\r\n\r\n private getNodeTransferDownloaderFactory(options: NodeAutoDownloaderFactoryOptions, envValues: EnvironmentVariables, logger: Logger): NodeTransferDownloaderFactory {\r\n const downloadOptions: DownloadOptions = this.createTransferDownloaderOptions(options);\r\n\r\n return new NodeTransferDownloaderFactory(downloadOptions, envValues, logger);\r\n }\r\n\r\n private createTransferDownloaderOptions(options: NodeAutoDownloaderFactoryOptions): DownloadOptions {\r\n const downloadOptions = new DownloadOptions();\r\n\r\n downloadOptions.logintoken = options.loginToken;\r\n downloadOptions.downloadFolderTemplate = options.downloadFolderTemplate;\r\n downloadOptions.downloadTrackingBaseFolder = options.downloadTrackingBaseFolder;\r\n downloadOptions.progressTickMillis = options.progressTickMillis;\r\n downloadOptions.momentaryDownloadSpeedTimespanMillis = options.momentaryDownloadSpeedTimespanMillis;\r\n\r\n return downloadOptions;\r\n }\r\n\r\n private getDownloadTrackingBaseFolder(downloadTrackingBaseFolder: string, downloadTrackingBaseFolderUsername: string): string {\r\n const hash = createHash(`sha256`);\r\n hash.update(downloadTrackingBaseFolderUsername);\r\n const userNameHash = hash.digest(`hex`);\r\n\r\n return path.join(downloadTrackingBaseFolder, userNameHash);\r\n }\r\n}\r\n\r\nexport default NodeAutoDownloaderFactory;"]}
@@ -3,6 +3,7 @@ interface NodeAutoDownloaderFactoryOptions extends AutoDownloaderOptions {
3
3
  apiRetryLimit: number;
4
4
  apiRequestTotalTimeoutInMs: number;
5
5
  periodToRetrieveTransfersInHours: number;
6
+ portals: string[];
6
7
  downloadForAllUsers: boolean;
7
8
  maxNumberOfConcurrentAutoDownloads: number;
8
9
  downloadFolderTemplate: string;
@@ -1 +1 @@
1
- {"version":3,"file":"nodeAutoDownloaderFactoryOptions.d.ts","sourceRoot":"","sources":["../../../../src/autoDownloader/factory/nodeAutoDownloaderFactoryOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AAErE,UAAU,gCAAiC,SAAQ,qBAAqB;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,MAAM,CAAC;IACnC,gCAAgC,EAAE,MAAM,CAAC;IACzC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kCAAkC,EAAE,MAAM,CAAC;IAC3C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oCAAoC,EAAE,MAAM,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,gCAAgC,CAAC"}
1
+ {"version":3,"file":"nodeAutoDownloaderFactoryOptions.d.ts","sourceRoot":"","sources":["../../../../src/autoDownloader/factory/nodeAutoDownloaderFactoryOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AAErE,UAAU,gCAAiC,SAAQ,qBAAqB;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,EAAE,MAAM,CAAC;IACnC,gCAAgC,EAAE,MAAM,CAAC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kCAAkC,EAAE,MAAM,CAAC;IAC3C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oCAAoC,EAAE,MAAM,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAe,gCAAgC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeAutoDownloaderFactoryOptions.js","sourceRoot":"","sources":["../../../../src/autoDownloader/factory/nodeAutoDownloaderFactoryOptions.ts"],"names":[],"mappings":"","sourcesContent":["import type AutoDownloaderOptions from \"../autoDownloaderOptions.js\";\r\n\r\ninterface NodeAutoDownloaderFactoryOptions extends AutoDownloaderOptions {\r\n apiRetryLimit: number;\r\n apiRequestTotalTimeoutInMs: number;\r\n periodToRetrieveTransfersInHours: number,\r\n downloadForAllUsers: boolean,\r\n maxNumberOfConcurrentAutoDownloads: number,\r\n downloadFolderTemplate: string,\r\n downloadTrackingBaseFolder: string,\r\n downloadTrackingBaseFolderUsername: string,\r\n progressTickMillis: number,\r\n momentaryDownloadSpeedTimespanMillis: number,\r\n loginToken: string,\r\n}\r\n\r\nexport default NodeAutoDownloaderFactoryOptions;"]}
1
+ {"version":3,"file":"nodeAutoDownloaderFactoryOptions.js","sourceRoot":"","sources":["../../../../src/autoDownloader/factory/nodeAutoDownloaderFactoryOptions.ts"],"names":[],"mappings":"","sourcesContent":["import type AutoDownloaderOptions from \"../autoDownloaderOptions.js\";\r\n\r\ninterface NodeAutoDownloaderFactoryOptions extends AutoDownloaderOptions {\r\n apiRetryLimit: number;\r\n apiRequestTotalTimeoutInMs: number;\r\n periodToRetrieveTransfersInHours: number,\r\n portals: string[],\r\n downloadForAllUsers: boolean,\r\n maxNumberOfConcurrentAutoDownloads: number,\r\n downloadFolderTemplate: string,\r\n downloadTrackingBaseFolder: string,\r\n downloadTrackingBaseFolderUsername: string,\r\n progressTickMillis: number,\r\n momentaryDownloadSpeedTimespanMillis: number,\r\n loginToken: string,\r\n}\r\n\r\nexport default NodeAutoDownloaderFactoryOptions;"]}
@@ -2,8 +2,9 @@ import type ApiClient from "../../utils/api/apiClient.js";
2
2
  import type NewInboxTransfer from "./newInboxTransfer.js";
3
3
  declare class NewInboxTransfersRetriever {
4
4
  #private;
5
- constructor(downloadForAllUsers: boolean, periodToRetrieveTransfersInHours: number, apiClient: ApiClient);
5
+ constructor(downloadForAllUsers: boolean, periodToRetrieveTransfersInHours: number, portals: string[], apiClient: ApiClient);
6
6
  set periodToRetrieveTransfersInHours(periodToRetrieveTransfersInHours: number);
7
+ set portals(portals: string[]);
7
8
  set loginToken(loginToken: string);
8
9
  set downloadForAllUsers(downloadForAllUsers: boolean);
9
10
  getNewTransfers(isTransferHandled: (transferId: string) => boolean, abortSignal: AbortSignal): Promise<NewInboxTransfer[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"newInboxTransfersRetriever.d.ts","sourceRoot":"","sources":["../../../../src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAI1D,cAAM,0BAA0B;;gBAOhB,mBAAmB,EAAE,OAAO,EAAE,gCAAgC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IASxG,IAAI,gCAAgC,CAAC,gCAAgC,EAAE,MAAM,EAM5E;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IAED,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,EAEnD;IAEK,eAAe,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA8BhI,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,gCAAgC;CAG3C;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"newInboxTransfersRetriever.d.ts","sourceRoot":"","sources":["../../../../src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAI1D,cAAM,0BAA0B;;gBAQhB,mBAAmB,EAAE,OAAO,EAAE,gCAAgC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS;IAU3H,IAAI,gCAAgC,CAAC,gCAAgC,EAAE,MAAM,EAM5E;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAK5B;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,EAEhC;IAED,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,EAEnD;IAEK,eAAe,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA+BhI,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,gCAAgC;CAG3C;AAED,eAAe,0BAA0B,CAAC"}
@@ -5,12 +5,14 @@ class NewInboxTransfersRetriever {
5
5
  #downloadForAllUsers;
6
6
  #apiClient;
7
7
  #periodToRetrieveTransfersInHours;
8
- constructor(downloadForAllUsers, periodToRetrieveTransfersInHours, apiClient) {
8
+ #portals;
9
+ constructor(downloadForAllUsers, periodToRetrieveTransfersInHours, portals, apiClient) {
9
10
  if (periodToRetrieveTransfersInHours <= 0)
10
11
  throw new AutoDownloaderError(`periodToRetrieveTransfersInHours must be a positive value`);
11
12
  this.#downloadForAllUsers = downloadForAllUsers;
12
13
  this.#apiClient = apiClient;
13
14
  this.#periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;
15
+ this.#portals = portals;
14
16
  }
15
17
  set periodToRetrieveTransfersInHours(periodToRetrieveTransfersInHours) {
16
18
  if (periodToRetrieveTransfersInHours <= 0)
@@ -18,6 +20,11 @@ class NewInboxTransfersRetriever {
18
20
  this.#periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;
19
21
  this.#lastCheckDate = undefined;
20
22
  }
23
+ set portals(portals) {
24
+ if (!portals || !Array.isArray(portals))
25
+ throw new AutoDownloaderError(`portals must be an array of strings`);
26
+ this.#portals = portals;
27
+ }
21
28
  set loginToken(loginToken) {
22
29
  this.#apiClient.setLoginToken(loginToken);
23
30
  }
@@ -29,6 +36,7 @@ class NewInboxTransfersRetriever {
29
36
  const request = {
30
37
  getForAllUsers: this.#downloadForAllUsers,
31
38
  sinceUnixTime: this.getSinceUnixTimeApiRequestParam(),
39
+ portals: this.#portals,
32
40
  };
33
41
  const inbox = await this.#apiClient.getInboxTransfers(request, abortSignal);
34
42
  const inboxTransfers = inbox
@@ -1 +1 @@
1
- {"version":3,"file":"newInboxTransfersRetriever.js","sourceRoot":"","sources":["../../../../src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAG5D,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,MAAM,0BAA0B;IAC5B,cAAc,CAAqB;IAEnC,oBAAoB,CAAU;IAC9B,UAAU,CAAY;IACtB,iCAAiC,CAAS;IAE1C,YAAY,mBAA4B,EAAE,gCAAwC,EAAE,SAAoB;QACpG,IAAI,gCAAgC,IAAI,CAAC;YACrC,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC,CAAC;QAE/F,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,iCAAiC,GAAG,gCAAgC,CAAC;IAC9E,CAAC;IAED,IAAI,gCAAgC,CAAC,gCAAwC;QACzE,IAAI,gCAAgC,IAAI,CAAC;YACrC,MAAM,IAAI,mBAAmB,CAAC,2DAA2D,CAAC,CAAC;QAE/F,IAAI,CAAC,iCAAiC,GAAG,gCAAgC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,IAAI,UAAU,CAAC,UAAkB;QAC7B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,mBAAmB,CAAC,mBAA4B;QAChD,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,iBAAkD,EAAE,WAAwB;QAC9F,MAAM,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAE9C,MAAM,OAAO,GAA6B;YACtC,cAAc,EAAE,IAAI,CAAC,oBAAoB;YACzC,aAAa,EAAE,IAAI,CAAC,+BAA+B,EAAE;SACxD,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE5E,MAAM,cAAc,GAAG,KAAK;aACvB,SAAS;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC7G,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACP,UAAU,EAAE,CAAC,CAAC,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC;YAChC,WAAW,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC;QAEvC,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,+BAA+B;QACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,cAAc;YACpB,OAAO,kBAAkB,CAAC;QAE9B,MAAM,qBAAqB,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAEtE,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IAEO,6BAA6B;QACjC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAClF,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAEO,gCAAgC;QACpC,OAAO,IAAI,CAAC,cAAe,GAAG,2BAA2B,CAAC;IAC9D,CAAC;CACJ;AAED,eAAe,0BAA0B,CAAC","sourcesContent":["import type ApiClient from \"../../utils/api/apiClient.js\";\r\nimport type GetInboxTransfersRequest from \"../../utils/api/dtos/getInboxTransfersRequest.js\";\r\nimport AutoDownloaderError from \"../autoDownloaderError.js\";\r\nimport type NewInboxTransfer from \"./newInboxTransfer.js\";\r\n\r\nconst LastCheckSafeMarginAddition = 60 * 1000;\r\n\r\nclass NewInboxTransfersRetriever {\r\n #lastCheckDate: number | undefined;\r\n\r\n #downloadForAllUsers: boolean;\r\n #apiClient: ApiClient;\r\n #periodToRetrieveTransfersInHours: number;\r\n\r\n constructor(downloadForAllUsers: boolean, periodToRetrieveTransfersInHours: number, apiClient: ApiClient) {\r\n if (periodToRetrieveTransfersInHours <= 0)\r\n throw new AutoDownloaderError(`periodToRetrieveTransfersInHours must be a positive value`);\r\n\r\n this.#downloadForAllUsers = downloadForAllUsers;\r\n this.#apiClient = apiClient;\r\n this.#periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;\r\n }\r\n\r\n set periodToRetrieveTransfersInHours(periodToRetrieveTransfersInHours: number) {\r\n if (periodToRetrieveTransfersInHours <= 0)\r\n throw new AutoDownloaderError(`periodToRetrieveTransfersInHours must be a positive value`);\r\n\r\n this.#periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;\r\n this.#lastCheckDate = undefined;\r\n }\r\n\r\n set loginToken(loginToken: string) {\r\n this.#apiClient.setLoginToken(loginToken);\r\n }\r\n\r\n set downloadForAllUsers(downloadForAllUsers: boolean) {\r\n this.#downloadForAllUsers = downloadForAllUsers;\r\n }\r\n\r\n async getNewTransfers(isTransferHandled: (transferId: string) => boolean, abortSignal: AbortSignal): Promise<NewInboxTransfer[]> {\r\n const currentCheckDate = new Date().getTime();\r\n\r\n const request: GetInboxTransfersRequest = {\r\n getForAllUsers: this.#downloadForAllUsers,\r\n sinceUnixTime: this.getSinceUnixTimeApiRequestParam(),\r\n };\r\n\r\n const inbox = await this.#apiClient.getInboxTransfers(request, abortSignal);\r\n\r\n const inboxTransfers = inbox\r\n .transfers\r\n .filter(t => !t.blockdownloads && !t.passwordprotected && !t.isexpired && !t.e2ee && !isTransferHandled(t.id))\r\n .map(t => ({\r\n transferId: t.id,\r\n trackId: t.trackid,\r\n filesCount: t.numberoffiles || 0,\r\n sizeInBytes: t.size || 0,\r\n sentDate: t.sentdate,\r\n from: t.from,\r\n to: t.to,\r\n subject: t.subject,\r\n message: t.message,\r\n }));\r\n\r\n this.#lastCheckDate = currentCheckDate;\r\n\r\n return inboxTransfers;\r\n }\r\n\r\n private getSinceUnixTimeApiRequestParam(): number {\r\n const sinceBasedOnPeriod = this.getSinceUnixTimeBasedOnPeriod();\r\n\r\n if (!this.#lastCheckDate)\r\n return sinceBasedOnPeriod;\r\n\r\n const sinceBasedOnLastCheck = this.getSinceUnixTimeBasedOnLastCheck();\r\n\r\n return Math.max(sinceBasedOnLastCheck, sinceBasedOnPeriod);\r\n }\r\n\r\n private getSinceUnixTimeBasedOnPeriod() {\r\n const sinceDate = new Date();\r\n sinceDate.setHours(sinceDate.getHours() - this.#periodToRetrieveTransfersInHours);\r\n return sinceDate.getTime();\r\n }\r\n\r\n private getSinceUnixTimeBasedOnLastCheck() {\r\n return this.#lastCheckDate! - LastCheckSafeMarginAddition;\r\n }\r\n}\r\n\r\nexport default NewInboxTransfersRetriever;"]}
1
+ {"version":3,"file":"newInboxTransfersRetriever.js","sourceRoot":"","sources":["../../../../src/autoDownloader/newInboxTransfersRetriever/newInboxTransfersRetriever.ts"],"names":[],"mappings":"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","sourcesContent":["import type ApiClient from \"../../utils/api/apiClient.js\";\r\nimport type GetInboxTransfersRequest from \"../../utils/api/dtos/getInboxTransfersRequest.js\";\r\nimport AutoDownloaderError from \"../autoDownloaderError.js\";\r\nimport type NewInboxTransfer from \"./newInboxTransfer.js\";\r\n\r\nconst LastCheckSafeMarginAddition = 60 * 1000;\r\n\r\nclass NewInboxTransfersRetriever {\r\n #lastCheckDate: number | undefined;\r\n\r\n #downloadForAllUsers: boolean;\r\n #apiClient: ApiClient;\r\n #periodToRetrieveTransfersInHours: number;\r\n #portals: string[];\r\n\r\n constructor(downloadForAllUsers: boolean, periodToRetrieveTransfersInHours: number, portals: string[], apiClient: ApiClient) {\r\n if (periodToRetrieveTransfersInHours <= 0)\r\n throw new AutoDownloaderError(`periodToRetrieveTransfersInHours must be a positive value`);\r\n\r\n this.#downloadForAllUsers = downloadForAllUsers;\r\n this.#apiClient = apiClient;\r\n this.#periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;\r\n this.#portals = portals;\r\n }\r\n\r\n set periodToRetrieveTransfersInHours(periodToRetrieveTransfersInHours: number) {\r\n if (periodToRetrieveTransfersInHours <= 0)\r\n throw new AutoDownloaderError(`periodToRetrieveTransfersInHours must be a positive value`);\r\n\r\n this.#periodToRetrieveTransfersInHours = periodToRetrieveTransfersInHours;\r\n this.#lastCheckDate = undefined;\r\n }\r\n\r\n set portals(portals: string[]) {\r\n if (!portals || !Array.isArray(portals))\r\n throw new AutoDownloaderError(`portals must be an array of strings`);\r\n\r\n this.#portals = portals;\r\n }\r\n\r\n set loginToken(loginToken: string) {\r\n this.#apiClient.setLoginToken(loginToken);\r\n }\r\n\r\n set downloadForAllUsers(downloadForAllUsers: boolean) {\r\n this.#downloadForAllUsers = downloadForAllUsers;\r\n }\r\n\r\n async getNewTransfers(isTransferHandled: (transferId: string) => boolean, abortSignal: AbortSignal): Promise<NewInboxTransfer[]> {\r\n const currentCheckDate = new Date().getTime();\r\n\r\n const request: GetInboxTransfersRequest = {\r\n getForAllUsers: this.#downloadForAllUsers,\r\n sinceUnixTime: this.getSinceUnixTimeApiRequestParam(),\r\n portals: this.#portals,\r\n };\r\n\r\n const inbox = await this.#apiClient.getInboxTransfers(request, abortSignal);\r\n\r\n const inboxTransfers = inbox\r\n .transfers\r\n .filter(t => !t.blockdownloads && !t.passwordprotected && !t.isexpired && !t.e2ee && !isTransferHandled(t.id))\r\n .map(t => ({\r\n transferId: t.id,\r\n trackId: t.trackid,\r\n filesCount: t.numberoffiles || 0,\r\n sizeInBytes: t.size || 0,\r\n sentDate: t.sentdate,\r\n from: t.from,\r\n to: t.to,\r\n subject: t.subject,\r\n message: t.message,\r\n }));\r\n\r\n this.#lastCheckDate = currentCheckDate;\r\n\r\n return inboxTransfers;\r\n }\r\n\r\n private getSinceUnixTimeApiRequestParam(): number {\r\n const sinceBasedOnPeriod = this.getSinceUnixTimeBasedOnPeriod();\r\n\r\n if (!this.#lastCheckDate)\r\n return sinceBasedOnPeriod;\r\n\r\n const sinceBasedOnLastCheck = this.getSinceUnixTimeBasedOnLastCheck();\r\n\r\n return Math.max(sinceBasedOnLastCheck, sinceBasedOnPeriod);\r\n }\r\n\r\n private getSinceUnixTimeBasedOnPeriod() {\r\n const sinceDate = new Date();\r\n sinceDate.setHours(sinceDate.getHours() - this.#periodToRetrieveTransfersInHours);\r\n return sinceDate.getTime();\r\n }\r\n\r\n private getSinceUnixTimeBasedOnLastCheck() {\r\n return this.#lastCheckDate! - LastCheckSafeMarginAddition;\r\n }\r\n}\r\n\r\nexport default NewInboxTransfersRetriever;"]}
@@ -1,6 +1,5 @@
1
1
  import OnlineChecker, { OnlineCheckerResult } from "./onlineChecker.js";
2
2
  export default class NodeOnlineChecker extends OnlineChecker {
3
3
  isInternetOnline(): Promise<OnlineCheckerResult>;
4
- private isGoogleReachable;
5
4
  }
6
5
  //# sourceMappingURL=nodeOnlineChecker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeOnlineChecker.d.ts","sourceRoot":"","sources":["../../../../../src/client/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;YAI/C,iBAAiB;CAGlC"}
1
+ {"version":3,"file":"nodeOnlineChecker.d.ts","sourceRoot":"","sources":["../../../../../src/client/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"}
@@ -3,8 +3,5 @@ export default class NodeOnlineChecker extends OnlineChecker {
3
3
  async isInternetOnline() {
4
4
  return await this.isGoogleReachable();
5
5
  }
6
- async isGoogleReachable() {
7
- return await this.probe(`https://www.gstatic.com/generate_204?d=${Date.now()}`);
8
- }
9
6
  }
10
7
  //# sourceMappingURL=nodeOnlineChecker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeOnlineChecker.js","sourceRoot":"","sources":["../../../../../src/client/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;IAEO,KAAK,CAAC,iBAAiB;QAC3B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpF,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\r\n private async isGoogleReachable(): Promise<OnlineCheckerResult> {\r\n return await this.probe(`https://www.gstatic.com/generate_204?d=${Date.now()}`);\r\n }\r\n}"]}
1
+ {"version":3,"file":"nodeOnlineChecker.js","sourceRoot":"","sources":["../../../../../src/client/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}"]}
@@ -4,6 +4,7 @@ export default abstract class OnlineChecker {
4
4
  abstract isInternetOnline(): Promise<OnlineCheckerResult>;
5
5
  isApiReachable(): Promise<OnlineCheckerResult>;
6
6
  isFileServerReachable(fileServerBaseUrl: string): Promise<OnlineCheckerResult>;
7
+ protected isGoogleReachable(): Promise<OnlineCheckerResult>;
7
8
  protected probe(url: string, timeoutInMs?: number): Promise<OnlineCheckerResult>;
8
9
  }
9
10
  export interface OnlineCheckerResult {
@@ -1 +1 @@
1
- {"version":3,"file":"onlineChecker.d.ts","sourceRoot":"","sources":["../../../../../src/client/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;IAEnD,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"}
1
+ {"version":3,"file":"onlineChecker.d.ts","sourceRoot":"","sources":["../../../../../src/client/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;IAEnD,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI9C,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;cAI3E,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;cAIjD,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"}
@@ -11,13 +11,16 @@ export default class OnlineChecker {
11
11
  async isFileServerReachable(fileServerBaseUrl) {
12
12
  return await this.probe(`${fileServerBaseUrl}/up?d=${Date.now()}`);
13
13
  }
14
+ async isGoogleReachable() {
15
+ return await this.probe(`https://www.gstatic.com/generate_204?d=${Date.now()}`);
16
+ }
14
17
  async probe(url, timeoutInMs = 4000) {
15
18
  try {
16
19
  const timeoutSignal = AbortSignal.timeout(timeoutInMs);
17
20
  const result = await fetch(url, { method: `GET`, mode: `no-cors`, cache: `no-store`, signal: timeoutSignal });
18
- if (!result.ok)
19
- throw new Error(`Response returned ${result.status} status`);
20
- return { isOnline: true };
21
+ if (result.ok || result.type === `opaque`)
22
+ return { isOnline: true };
23
+ throw new Error(`Response returned ${result.status} status`);
21
24
  }
22
25
  catch (error) {
23
26
  return { isOnline: false, error: error };
@@ -1 +1 @@
1
- {"version":3,"file":"onlineChecker.js","sourceRoot":"","sources":["../../../../../src/client/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;IAIM,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 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}"]}
1
+ {"version":3,"file":"onlineChecker.js","sourceRoot":"","sources":["../../../../../src/client/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;IAIM,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,iBAAiB;QAC7B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpF,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,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACrC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAE9B,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QACjE,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 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 isGoogleReachable(): Promise<OnlineCheckerResult> {\r\n return await this.probe(`https://www.gstatic.com/generate_204?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 || result.type === `opaque`)\r\n return { isOnline: true };\r\n\r\n throw new Error(`Response returned ${result.status} status`);\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}"]}
@@ -3,7 +3,7 @@ export default class WebOnlineChecker extends OnlineChecker {
3
3
  async isInternetOnline() {
4
4
  if (navigator?.onLine === false)
5
5
  return { isOnline: false, error: new Error(`Offline mode detected by browser`) };
6
- return { isOnline: true };
6
+ return await this.isGoogleReachable();
7
7
  }
8
8
  }
9
9
  //# sourceMappingURL=webOnlineChecker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webOnlineChecker.js","sourceRoot":"","sources":["../../../../../src/client/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,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,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 { isOnline: true };\r\n }\r\n}"]}
1
+ {"version":3,"file":"webOnlineChecker.js","sourceRoot":"","sources":["../../../../../src/client/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}"]}
@@ -1,6 +1,7 @@
1
1
  interface GetInboxTransfersRequest {
2
2
  getForAllUsers: boolean;
3
3
  sinceUnixTime: number;
4
+ portals: string[];
4
5
  }
5
6
  export default GetInboxTransfersRequest;
6
7
  //# sourceMappingURL=getInboxTransfersRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getInboxTransfersRequest.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/getInboxTransfersRequest.ts"],"names":[],"mappings":"AAAA,UAAU,wBAAwB;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"getInboxTransfersRequest.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/getInboxTransfersRequest.ts"],"names":[],"mappings":"AAAA,UAAU,wBAAwB;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAe,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getInboxTransfersRequest.js","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/getInboxTransfersRequest.ts"],"names":[],"mappings":"","sourcesContent":["interface GetInboxTransfersRequest {\r\n getForAllUsers: boolean,\r\n sinceUnixTime: number,\r\n}\r\n\r\nexport default GetInboxTransfersRequest;"]}
1
+ {"version":3,"file":"getInboxTransfersRequest.js","sourceRoot":"","sources":["../../../../../src/utils/api/dtos/getInboxTransfersRequest.ts"],"names":[],"mappings":"","sourcesContent":["interface GetInboxTransfersRequest {\r\n getForAllUsers: boolean,\r\n sinceUnixTime: number,\r\n portals: string[],\r\n}\r\n\r\nexport default GetInboxTransfersRequest;"]}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,0BAA0B,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,+BAA+B,MAAM,4CAA4C,CAAC;AAC9F,OAAO,KAAK,2BAA2B,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,yBAAyB,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAgC,MAAM,sCAAsC,CAAC;AAGpH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAe,YAAW,SAAS;;gBAI9D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,SAAQ,EAAE,UAAU,SAAI;IAcnH,OAAO,CAAC,iBAAiB;IAkBzB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYvC,eAAe,IAAI,IAAI;IAIjB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA2B/E,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAahD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA+BtH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAoBhH,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxF,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuCjG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpG,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5G,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAkB5H"}
1
+ {"version":3,"file":"nodeApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,0BAA0B,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,+BAA+B,MAAM,4CAA4C,CAAC;AAC9F,OAAO,KAAK,2BAA2B,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,yBAAyB,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAgC,MAAM,sCAAsC,CAAC;AAGpH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAe,YAAW,SAAS;;gBAI9D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,SAAQ,EAAE,UAAU,SAAI;IAcnH,OAAO,CAAC,iBAAiB;IAkBzB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYvC,eAAe,IAAI,IAAI;IAIjB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA2B/E,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAahD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA+BtH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAoBhH,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxF,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuCjG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpG,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB5G,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAuB5H"}
@@ -198,11 +198,14 @@ export default class NodeApiClient extends NodeClientBase {
198
198
  }
199
199
  async getInboxTransfers(request, abortSignal) {
200
200
  try {
201
+ const searchParams = new URLSearchParams({
202
+ getforallusers: request.getForAllUsers.toString(),
203
+ from: request.sinceUnixTime.toString(),
204
+ });
205
+ for (const portal of request.portals ?? [])
206
+ searchParams.append(`portalId`, portal);
201
207
  const response = await this.#gotInstance.get(`transfer/inbox`, {
202
- searchParams: {
203
- getforallusers: request.getForAllUsers,
204
- from: request.sinceUnixTime,
205
- },
208
+ searchParams,
206
209
  signal: abortSignal,
207
210
  }).json();
208
211
  this.throwIfPayloadNotOk(response, true);
@@ -1 +1 @@
1
- {"version":3,"file":"nodeApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import got, { Got } from \"got\";\r\n\r\nimport NodeClientBase from \"./nodeClientBase.js\";\r\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\r\nimport { retryEconnresetWorkaround } from \"./gotWorkarounds.js\";\r\n\r\nimport type ApiClient from \"../apiClient.js\";\r\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\r\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\r\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\r\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\r\nimport type LoginRequest from \"../dtos/loginRequest.js\";\r\nimport type LoginResponse from \"../dtos/loginResponse.js\";\r\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\r\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\r\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\r\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\r\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\r\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\r\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\r\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\r\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\r\n\r\nexport default class NodeApiClient extends NodeClientBase implements ApiClient {\r\n #sourceDetails: string;\r\n #gotInstance: Got;\r\n\r\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\r\n super();\r\n\r\n try {\r\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\r\n\r\n this.#sourceDetails = sourceDetails;\r\n this.#gotInstance = this.createGotInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error constructing NodeApiClient`);\r\n }\r\n }\r\n\r\n private createGotInstance(baseUrl: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): Got {\r\n return got.extend({\r\n prefixUrl: baseUrl,\r\n timeout: {\r\n request: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\r\n },\r\n headers: {\r\n \"x-api-version\": `2.0`,\r\n source,\r\n },\r\n retry: {\r\n limit: retryLimit,\r\n methods: [`GET`, `POST`, `PUT`, `PATCH`, `HEAD`, `DELETE`, `OPTIONS`, `TRACE`],\r\n ...retryEconnresetWorkaround,\r\n },\r\n });\r\n }\r\n\r\n setLoginToken(loginToken: string): void {\r\n try {\r\n if (!loginToken || loginToken.length === 0)\r\n throw new Error(`Login token can't be empty`);\r\n\r\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: loginToken } });\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error setting login token`);\r\n }\r\n }\r\n\r\n clearLoginToken(): void {\r\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: undefined } });\r\n }\r\n\r\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\r\n try {\r\n const response: BaseResponse<{\r\n logintoken?: string,\r\n expired?: boolean,\r\n }> = await this.#gotInstance.post(`auth/login`, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n const data = response.data!;\r\n\r\n if (data.expired)\r\n throw new Error(`Subscription has expired`);\r\n\r\n if (!data.logintoken)\r\n throw new Error(`Received empty login token`);\r\n\r\n return { loginToken: data.logintoken };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging in`);\r\n }\r\n }\r\n\r\n async logout(abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`auth/logout`, {\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging out`);\r\n }\r\n }\r\n\r\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\r\n try {\r\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\r\n\r\n const response: BaseResponse<InitializeTransferResponseRaw> = await this.#gotInstance.post(`transfer/initialize`, {\r\n json: { ...apiRequest, sourcedetails: this.#sourceDetails },\r\n headers: {\r\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\r\n },\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n const data = response.data!;\r\n\r\n const udpData = this.getUdpData(data);\r\n\r\n return {\r\n transferId: data.transferid,\r\n transferKey: data.transferkey,\r\n transferUrl: data.transferurl,\r\n transferRegion: data.region,\r\n udp: udpData,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error initializing a transfer`);\r\n }\r\n }\r\n\r\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\r\n try {\r\n const response: BaseResponse<{\r\n downloadurl: string\r\n }> = await this.#gotInstance.put(`transfer/complete`, {\r\n json: { ...request, sourcedetails: this.#sourceDetails },\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n return {\r\n downloadUrl: response.data!.downloadurl,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error finalizing a transfer`);\r\n }\r\n }\r\n\r\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`transfer/${request.transferid}/reset`, {\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error resetting a transfer`);\r\n }\r\n }\r\n\r\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response: BaseResponse<undefined> = await this.#gotInstance.put(`transfer/cancel`, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error canceling a transfer`);\r\n }\r\n }\r\n\r\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\r\n try {\r\n let gotInstance = this.#gotInstance.extend();\r\n\r\n let endpoint = `transfer`;\r\n if (request.transferid)\r\n endpoint += `/${request.transferid}`;\r\n\r\n const searchParams = new URLSearchParams();\r\n if (request.trackid)\r\n searchParams.append(`trackid`, request.trackid);\r\n if (request.password)\r\n searchParams.append(`password`, request.password);\r\n if (request.fprops)\r\n searchParams.append(`fprops`, request.fprops.join(`,`));\r\n if (typeof request.fileslimit !== `undefined`)\r\n searchParams.append(`fileslimit`, request.fileslimit.toString());\r\n if (request.checkLogintoken === true) {\r\n gotInstance = gotInstance.extend({\r\n headers: {\r\n filemaillogintokencheck: `true`,\r\n },\r\n });\r\n }\r\n\r\n const response: BaseResponse<GetTransferResponse> = await gotInstance.get(endpoint, {\r\n searchParams,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n return response.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\r\n }\r\n }\r\n\r\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/file`;\r\n\r\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\r\n }\r\n }\r\n\r\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/transfer`;\r\n\r\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\r\n }\r\n }\r\n\r\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\r\n try {\r\n const response: BaseResponse<GetInboxTransfersResponse> = await this.#gotInstance.get(`transfer/inbox`, {\r\n searchParams: {\r\n getforallusers: request.getForAllUsers,\r\n from: request.sinceUnixTime,\r\n },\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n return response.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting inbox transfers`);\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"nodeApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/node/nodeApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,GAAY,MAAM,KAAK,CAAC;AAE/B,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAmBhE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACrD,cAAc,CAAS;IACvB,YAAY,CAAM;IAElB,YAAY,OAAe,EAAE,MAAc,EAAE,aAAqB,EAAE,uBAAuB,GAAG,KAAK,EAAE,UAAU,GAAG,CAAC;QAC/G,KAAK,EAAE,CAAC;QAER,IAAI,CAAC;YACD,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAExG,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,OAAe,EAAE,MAAc,EAAE,uBAA+B,EAAE,UAAkB;QAC1G,OAAO,GAAG,CAAC,MAAM,CAAC;YACd,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE;gBACL,OAAO,EAAE,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;aAC7E;YACD,OAAO,EAAE;gBACL,eAAe,EAAE,KAAK;gBACtB,MAAM;aACT;YACD,KAAK,EAAE;gBACH,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;gBAC9E,GAAG,yBAAyB;aAC/B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,UAAkB;QAC5B,IAAI,CAAC;YACD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAElD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,WAAyB;QACxD,IAAI,CAAC;YACD,MAAM,QAAQ,GAGT,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC5C,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAK,CAAC;YAE5B,IAAI,IAAI,CAAC,OAAO;gBACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAEhD,IAAI,CAAC,IAAI,CAAC,UAAU;gBAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAElD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAyB;QAClC,IAAI,CAAC;YACD,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE;gBAClF,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAkC,EAAE,WAAyB;QAClF,IAAI,CAAC;YACD,MAAM,UAAU,GAAiC,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YAEhG,MAAM,QAAQ,GAAgD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC9G,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE;gBAC3D,OAAO,EAAE;oBACL,YAAY,EAAE,SAAS,EAAE,mEAAmE;iBAC/F;gBACD,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAK,CAAC;YAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEtC,OAAO;gBACH,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,GAAG,EAAE,OAAO;aACf,CAAC;QACN,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgC,EAAE,WAAyB;QAC9E,IAAI,CAAC;YACD,MAAM,QAAQ,GAET,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE;gBAClD,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE;gBACxD,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEzC,OAAO;gBACH,WAAW,EAAE,QAAQ,CAAC,IAAK,CAAC,WAAW;aAC1C,CAAC;QACN,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA6B,EAAE,WAAyB;QACxE,IAAI,CAAC;YACD,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,UAAU,QAAQ,EAAE;gBAC3G,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA8B,EAAE,WAAyB;QAC1E,IAAI,CAAC;YACD,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE;gBACrF,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B,EAAE,WAAyB;QACpE,IAAI,CAAC;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAE7C,IAAI,QAAQ,GAAG,UAAU,CAAC;YAC1B,IAAI,OAAO,CAAC,UAAU;gBAClB,QAAQ,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAEzC,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,OAAO;gBACf,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,OAAO,CAAC,QAAQ;gBAChB,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,OAAO,CAAC,MAAM;gBACd,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;gBACzC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBACnC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;oBAC7B,OAAO,EAAE;wBACL,uBAAuB,EAAE,MAAM;qBAClC;iBACJ,CAAC,CAAC;YACP,CAAC;YAED,MAAM,QAAQ,GAAsC,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChF,YAAY;gBACZ,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEzC,OAAO,QAAQ,CAAC,IAAK,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,0BAA0B,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;QACpH,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAoC,EAAE,WAAyB;QACtF,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,eAAe,CAAC;YAEjC,MAAM,QAAQ,GAAuB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACxE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,6CAA6C,OAAO,EAAE,UAAU,SAAS,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnI,CAAC;IACL,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,OAAwC,EAAE,WAAyB;QAC9F,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC;YAErC,MAAM,QAAQ,GAAuB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACxE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,iDAAiD,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAiC,EAAE,WAAyB;QAChF,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC;gBACrC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACjD,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE;aACzC,CAAC,CAAC;YAEH,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;gBACtC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAE5C,MAAM,QAAQ,GAA4C,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE;gBACpG,YAAY;gBACZ,MAAM,EAAE,WAAW;aACtB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEzC,OAAO,QAAQ,CAAC,IAAK,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;CACJ","sourcesContent":["import got, { Got } from \"got\";\r\n\r\nimport NodeClientBase from \"./nodeClientBase.js\";\r\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\r\nimport { retryEconnresetWorkaround } from \"./gotWorkarounds.js\";\r\n\r\nimport type ApiClient from \"../apiClient.js\";\r\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\r\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\r\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\r\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\r\nimport type LoginRequest from \"../dtos/loginRequest.js\";\r\nimport type LoginResponse from \"../dtos/loginResponse.js\";\r\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\r\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\r\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\r\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\r\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\r\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\r\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\r\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\r\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\r\n\r\nexport default class NodeApiClient extends NodeClientBase implements ApiClient {\r\n #sourceDetails: string;\r\n #gotInstance: Got;\r\n\r\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\r\n super();\r\n\r\n try {\r\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\r\n\r\n this.#sourceDetails = sourceDetails;\r\n this.#gotInstance = this.createGotInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error constructing NodeApiClient`);\r\n }\r\n }\r\n\r\n private createGotInstance(baseUrl: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): Got {\r\n return got.extend({\r\n prefixUrl: baseUrl,\r\n timeout: {\r\n request: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\r\n },\r\n headers: {\r\n \"x-api-version\": `2.0`,\r\n source,\r\n },\r\n retry: {\r\n limit: retryLimit,\r\n methods: [`GET`, `POST`, `PUT`, `PATCH`, `HEAD`, `DELETE`, `OPTIONS`, `TRACE`],\r\n ...retryEconnresetWorkaround,\r\n },\r\n });\r\n }\r\n\r\n setLoginToken(loginToken: string): void {\r\n try {\r\n if (!loginToken || loginToken.length === 0)\r\n throw new Error(`Login token can't be empty`);\r\n\r\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: loginToken } });\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error setting login token`);\r\n }\r\n }\r\n\r\n clearLoginToken(): void {\r\n this.#gotInstance = this.#gotInstance.extend({ headers: { logintoken: undefined } });\r\n }\r\n\r\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\r\n try {\r\n const response: BaseResponse<{\r\n logintoken?: string,\r\n expired?: boolean,\r\n }> = await this.#gotInstance.post(`auth/login`, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n const data = response.data!;\r\n\r\n if (data.expired)\r\n throw new Error(`Subscription has expired`);\r\n\r\n if (!data.logintoken)\r\n throw new Error(`Received empty login token`);\r\n\r\n return { loginToken: data.logintoken };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging in`);\r\n }\r\n }\r\n\r\n async logout(abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`auth/logout`, {\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging out`);\r\n }\r\n }\r\n\r\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\r\n try {\r\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\r\n\r\n const response: BaseResponse<InitializeTransferResponseRaw> = await this.#gotInstance.post(`transfer/initialize`, {\r\n json: { ...apiRequest, sourcedetails: this.#sourceDetails },\r\n headers: {\r\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\r\n },\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n const data = response.data!;\r\n\r\n const udpData = this.getUdpData(data);\r\n\r\n return {\r\n transferId: data.transferid,\r\n transferKey: data.transferkey,\r\n transferUrl: data.transferurl,\r\n transferRegion: data.region,\r\n udp: udpData,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error initializing a transfer`);\r\n }\r\n }\r\n\r\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\r\n try {\r\n const response: BaseResponse<{\r\n downloadurl: string\r\n }> = await this.#gotInstance.put(`transfer/complete`, {\r\n json: { ...request, sourcedetails: this.#sourceDetails },\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n return {\r\n downloadUrl: response.data!.downloadurl,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error finalizing a transfer`);\r\n }\r\n }\r\n\r\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response: BaseResponse<undefined> = await this.#gotInstance.post(`transfer/${request.transferid}/reset`, {\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error resetting a transfer`);\r\n }\r\n }\r\n\r\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response: BaseResponse<undefined> = await this.#gotInstance.put(`transfer/cancel`, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error canceling a transfer`);\r\n }\r\n }\r\n\r\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\r\n try {\r\n let gotInstance = this.#gotInstance.extend();\r\n\r\n let endpoint = `transfer`;\r\n if (request.transferid)\r\n endpoint += `/${request.transferid}`;\r\n\r\n const searchParams = new URLSearchParams();\r\n if (request.trackid)\r\n searchParams.append(`trackid`, request.trackid);\r\n if (request.password)\r\n searchParams.append(`password`, request.password);\r\n if (request.fprops)\r\n searchParams.append(`fprops`, request.fprops.join(`,`));\r\n if (typeof request.fileslimit !== `undefined`)\r\n searchParams.append(`fileslimit`, request.fileslimit.toString());\r\n if (request.checkLogintoken === true) {\r\n gotInstance = gotInstance.extend({\r\n headers: {\r\n filemaillogintokencheck: `true`,\r\n },\r\n });\r\n }\r\n\r\n const response: BaseResponse<GetTransferResponse> = await gotInstance.get(endpoint, {\r\n searchParams,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n return response.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\r\n }\r\n }\r\n\r\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/file`;\r\n\r\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\r\n }\r\n }\r\n\r\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/transfer`;\r\n\r\n const response: BaseResponse<void> = await this.#gotInstance.post(endpoint, {\r\n json: request,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\r\n }\r\n }\r\n\r\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\r\n try {\r\n const searchParams = new URLSearchParams({\r\n getforallusers: request.getForAllUsers.toString(),\r\n from: request.sinceUnixTime.toString(),\r\n });\r\n\r\n for (const portal of request.portals ?? [])\r\n searchParams.append(`portalId`, portal);\r\n\r\n const response: BaseResponse<GetInboxTransfersResponse> = await this.#gotInstance.get(`transfer/inbox`, {\r\n searchParams,\r\n signal: abortSignal,\r\n }).json();\r\n\r\n this.throwIfPayloadNotOk(response, true);\r\n\r\n return response.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting inbox transfers`);\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"webApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,0BAA0B,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,+BAA+B,MAAM,4CAA4C,CAAC;AAC9F,OAAO,KAAK,2BAA2B,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,yBAAyB,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAgC,MAAM,sCAAsC,CAAC;AAGpH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAc,YAAW,SAAS;;gBAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,SAAQ,EAAE,UAAU,SAAI;IAcnH,OAAO,CAAC,mBAAmB;IA2B3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYvC,eAAe,IAAI,IAAI;IAIjB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B/E,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAahD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgCtH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAmBhH,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxF,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsCjG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAepG,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5G,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAkB5H"}
1
+ {"version":3,"file":"webApiClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,0BAA0B,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,+BAA+B,MAAM,4CAA4C,CAAC;AAC9F,OAAO,KAAK,2BAA2B,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,yBAAyB,MAAM,sCAAsC,CAAC;AAClF,OAAO,KAAK,wBAAwB,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAgC,MAAM,sCAAsC,CAAC;AAGpH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAc,YAAW,SAAS;;gBAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,SAAQ,EAAE,UAAU,SAAI;IAcnH,OAAO,CAAC,mBAAmB;IA2B3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAYvC,eAAe,IAAI,IAAI;IAIjB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B/E,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAahD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAgCtH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAmBhH,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxF,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsCjG,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAepG,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5G,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAuB5H"}
@@ -196,11 +196,14 @@ export default class WebApiClient extends WebClientBase {
196
196
  }
197
197
  async getInboxTransfers(request, abortSignal) {
198
198
  try {
199
+ const params = new URLSearchParams({
200
+ getforallusers: request.getForAllUsers.toString(),
201
+ from: request.sinceUnixTime.toString(),
202
+ });
203
+ for (const portal of request.portals ?? [])
204
+ params.append(`portalId`, portal);
199
205
  const response = await this.#axiosInstance.get(`transfer/inbox`, {
200
- params: {
201
- getforallusers: request.getForAllUsers,
202
- from: request.sinceUnixTime,
203
- },
206
+ params,
204
207
  signal: abortSignal,
205
208
  });
206
209
  this.throwIfPayloadNotOk(response.data, true);
@@ -1 +1 @@
1
- {"version":3,"file":"webApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosInstance } from \"axios\";\r\nimport axiosRetry from \"axios-retry\";\r\n\r\nimport WebClientBase from \"./webClientBase.js\";\r\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\r\n\r\nimport type ApiClient from \"../apiClient.js\";\r\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\r\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\r\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\r\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\r\nimport type LoginRequest from \"../dtos/loginRequest.js\";\r\nimport type LoginResponse from \"../dtos/loginResponse.js\";\r\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\r\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\r\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\r\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\r\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\r\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\r\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\r\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\r\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\r\n\r\nexport default class WebApiClient extends WebClientBase implements ApiClient {\r\n #sourceDetails: string;\r\n #axiosInstance: AxiosInstance;\r\n\r\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\r\n super();\r\n\r\n try {\r\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\r\n\r\n this.#sourceDetails = sourceDetails;\r\n this.#axiosInstance = this.createAxiosInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error constructing WebApiClient`);\r\n }\r\n }\r\n\r\n private createAxiosInstance(baseURL: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): AxiosInstance {\r\n const clientInstance = axios.create({\r\n baseURL,\r\n timeout: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\r\n withCredentials: true,\r\n headers: {\r\n \"x-api-version\": `2.0`,\r\n source,\r\n },\r\n });\r\n\r\n axiosRetry(clientInstance, {\r\n retries: retryLimit,\r\n retryDelay: retryCount => retryCount * 1000,\r\n shouldResetTimeout: true,\r\n retryCondition: error => {\r\n const isNetworkOrIdempotentRequestError = axiosRetry.isNetworkOrIdempotentRequestError(error);\r\n const isRetryablePost = error.config?.method === `post`;\r\n const isTimeoutError = error.code === `ECONNABORTED` && error.message.startsWith(`timeout`);\r\n\r\n return isNetworkOrIdempotentRequestError || isRetryablePost || isTimeoutError;\r\n },\r\n });\r\n\r\n return clientInstance;\r\n }\r\n\r\n setLoginToken(loginToken: string): void {\r\n try {\r\n if (!loginToken || loginToken.length === 0)\r\n throw new Error(`Login token can't be empty`);\r\n\r\n this.#axiosInstance.defaults.headers.common.logintoken = loginToken;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error setting login token`);\r\n }\r\n }\r\n\r\n clearLoginToken(): void {\r\n this.#axiosInstance.defaults.headers.common.logintoken = undefined;\r\n }\r\n\r\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<{\r\n logintoken?: string,\r\n expired?: boolean,\r\n }>>(`auth/login`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n if (data.expired)\r\n throw new Error(`Subscription has expired`);\r\n\r\n if (!data.logintoken)\r\n throw new Error(`Received empty login token`);\r\n\r\n return { loginToken: data.logintoken };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging in`);\r\n }\r\n }\r\n\r\n async logout(abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`auth/logout`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging out`);\r\n }\r\n }\r\n\r\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\r\n try {\r\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\r\n\r\n const requestData = { ...apiRequest, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<InitializeTransferResponseRaw>>(`transfer/initialize`, requestData, {\r\n headers: {\r\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\r\n },\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n const udpData = this.getUdpData(data);\r\n\r\n return {\r\n transferId: data.transferid,\r\n transferKey: data.transferkey,\r\n transferUrl: data.transferurl,\r\n transferRegion: data.region,\r\n udp: udpData,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error initializing a transfer`);\r\n }\r\n }\r\n\r\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\r\n try {\r\n const requestData = { ...request, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.put<BaseResponse<{ downloadurl: string }>>(`transfer/complete`, requestData, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return {\r\n downloadUrl: response.data.data!.downloadurl,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error finalizing a transfer`);\r\n }\r\n }\r\n\r\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`transfer/${request.transferid}/reset`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error resetting a transfer`);\r\n }\r\n }\r\n\r\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.put<BaseResponse<undefined>>(`transfer/cancel`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error canceling a transfer`);\r\n }\r\n }\r\n\r\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\r\n try {\r\n let endpoint = `transfer`;\r\n\r\n if (request.transferid)\r\n endpoint += `/${request.transferid}`;\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (request.trackid)\r\n params.append(`trackid`, request.trackid);\r\n if (request.password)\r\n params.append(`password`, request.password);\r\n if (request.fprops)\r\n params.append(`fprops`, request.fprops.join(`,`));\r\n if (typeof request.fileslimit !== `undefined`)\r\n params.append(`fileslimit`, request.fileslimit.toString());\r\n\r\n const headers: Record<string, string> = {};\r\n\r\n if (request.checkLogintoken === true)\r\n headers.filemaillogintokencheck = `true`;\r\n\r\n const response = await this.#axiosInstance.get<BaseResponse<GetTransferResponse>>(endpoint, {\r\n params,\r\n headers,\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\r\n }\r\n }\r\n\r\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/file`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\r\n }\r\n }\r\n\r\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/transfer`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\r\n }\r\n }\r\n\r\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\r\n try {\r\n const response = await this.#axiosInstance.get<BaseResponse<GetInboxTransfersResponse>>(`transfer/inbox`, {\r\n params: {\r\n getforallusers: request.getForAllUsers,\r\n from: request.sinceUnixTime,\r\n },\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting inbox transfers`);\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"webApiClient.js","sourceRoot":"","sources":["../../../../../src/utils/api/web/webApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosInstance } from \"axios\";\r\nimport axiosRetry from \"axios-retry\";\r\n\r\nimport WebClientBase from \"./webClientBase.js\";\r\nimport { BaseResponse } from \"../dtos/baseResponse.js\";\r\n\r\nimport type ApiClient from \"../apiClient.js\";\r\nimport type CancelTransferRequest from \"../dtos/cancelTransferRequest.js\";\r\nimport type FinalizeTransferRequest from \"../dtos/finalizeTransferRequest.js\";\r\nimport type FinalizeTransferResponse from \"../dtos/finalizeTransferResponse.js\";\r\nimport type InitializeTransferResponse from \"../dtos/initializeTransferResponse.js\";\r\nimport type LoginRequest from \"../dtos/loginRequest.js\";\r\nimport type LoginResponse from \"../dtos/loginResponse.js\";\r\nimport type GetTransferRequest from \"../dtos/getTransferRequest.js\";\r\nimport type GetTransferResponse from \"../dtos/getTransferResponse.js\";\r\nimport type RegisterTransferDownloadRequest from \"../dtos/registerTransferDownloadRequest.js\";\r\nimport type RegisterFileDownloadRequest from \"../dtos/registerFileDownloadRequest.js\";\r\nimport type GetInboxTransfersResponse from \"../dtos/getInboxTransfersResponse.js\";\r\nimport type GetInboxTransfersRequest from \"../dtos/getInboxTransfersRequest.js\";\r\nimport type ResetTransferRequest from \"../dtos/resetTransferRequest.js\";\r\nimport type { InitializeTransferRequest, InitializeTransferRequestRaw } from \"../dtos/initializeTransferRequest.js\";\r\nimport type { InitializeTransferResponseRaw } from \"../dtos/initializeTransferResponse.js\";\r\n\r\nexport default class WebApiClient extends WebClientBase implements ApiClient {\r\n #sourceDetails: string;\r\n #axiosInstance: AxiosInstance;\r\n\r\n constructor(baseUrl: string, source: string, sourceDetails: string, totalRequestTimeoutInMs = 60000, retryLimit = 3) {\r\n super();\r\n\r\n try {\r\n this.validateConstructorParameters(baseUrl, source, sourceDetails, totalRequestTimeoutInMs, retryLimit);\r\n\r\n this.#sourceDetails = sourceDetails;\r\n this.#axiosInstance = this.createAxiosInstance(baseUrl, source, totalRequestTimeoutInMs, retryLimit);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error constructing WebApiClient`);\r\n }\r\n }\r\n\r\n private createAxiosInstance(baseURL: string, source: string, totalRequestTimeoutInMs: number, retryLimit: number): AxiosInstance {\r\n const clientInstance = axios.create({\r\n baseURL,\r\n timeout: totalRequestTimeoutInMs > 0 ? totalRequestTimeoutInMs : undefined,\r\n withCredentials: true,\r\n headers: {\r\n \"x-api-version\": `2.0`,\r\n source,\r\n },\r\n });\r\n\r\n axiosRetry(clientInstance, {\r\n retries: retryLimit,\r\n retryDelay: retryCount => retryCount * 1000,\r\n shouldResetTimeout: true,\r\n retryCondition: error => {\r\n const isNetworkOrIdempotentRequestError = axiosRetry.isNetworkOrIdempotentRequestError(error);\r\n const isRetryablePost = error.config?.method === `post`;\r\n const isTimeoutError = error.code === `ECONNABORTED` && error.message.startsWith(`timeout`);\r\n\r\n return isNetworkOrIdempotentRequestError || isRetryablePost || isTimeoutError;\r\n },\r\n });\r\n\r\n return clientInstance;\r\n }\r\n\r\n setLoginToken(loginToken: string): void {\r\n try {\r\n if (!loginToken || loginToken.length === 0)\r\n throw new Error(`Login token can't be empty`);\r\n\r\n this.#axiosInstance.defaults.headers.common.logintoken = loginToken;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error setting login token`);\r\n }\r\n }\r\n\r\n clearLoginToken(): void {\r\n this.#axiosInstance.defaults.headers.common.logintoken = undefined;\r\n }\r\n\r\n async login(request: LoginRequest, abortSignal?: AbortSignal): Promise<LoginResponse> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<{\r\n logintoken?: string,\r\n expired?: boolean,\r\n }>>(`auth/login`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n if (data.expired)\r\n throw new Error(`Subscription has expired`);\r\n\r\n if (!data.logintoken)\r\n throw new Error(`Received empty login token`);\r\n\r\n return { loginToken: data.logintoken };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging in`);\r\n }\r\n }\r\n\r\n async logout(abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`auth/logout`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error logging out`);\r\n }\r\n }\r\n\r\n async initializeTransfer(request: InitializeTransferRequest, abortSignal?: AbortSignal): Promise<InitializeTransferResponse> {\r\n try {\r\n const apiRequest: InitializeTransferRequestRaw = this.mapInitializeRequestToApiRequest(request);\r\n\r\n const requestData = { ...apiRequest, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<InitializeTransferResponseRaw>>(`transfer/initialize`, requestData, {\r\n headers: {\r\n \"user-agent\": undefined, // the API adds user-agent value to sourceDetails if specified here\r\n },\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n const data = response.data.data!;\r\n\r\n const udpData = this.getUdpData(data);\r\n\r\n return {\r\n transferId: data.transferid,\r\n transferKey: data.transferkey,\r\n transferUrl: data.transferurl,\r\n transferRegion: data.region,\r\n udp: udpData,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error initializing a transfer`);\r\n }\r\n }\r\n\r\n async finalizeTransfer(request: FinalizeTransferRequest, abortSignal?: AbortSignal): Promise<FinalizeTransferResponse> {\r\n try {\r\n const requestData = { ...request, sourcedetails: this.#sourceDetails };\r\n\r\n const response = await this.#axiosInstance.put<BaseResponse<{ downloadurl: string }>>(`transfer/complete`, requestData, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return {\r\n downloadUrl: response.data.data!.downloadurl,\r\n };\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error finalizing a transfer`);\r\n }\r\n }\r\n\r\n async resetTransfer(request: ResetTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.post<BaseResponse<undefined>>(`transfer/${request.transferid}/reset`, null, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error resetting a transfer`);\r\n }\r\n }\r\n\r\n async cancelTransfer(request: CancelTransferRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const response = await this.#axiosInstance.put<BaseResponse<undefined>>(`transfer/cancel`, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error canceling a transfer`);\r\n }\r\n }\r\n\r\n async getTransfer(request: GetTransferRequest, abortSignal?: AbortSignal): Promise<GetTransferResponse> {\r\n try {\r\n let endpoint = `transfer`;\r\n\r\n if (request.transferid)\r\n endpoint += `/${request.transferid}`;\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (request.trackid)\r\n params.append(`trackid`, request.trackid);\r\n if (request.password)\r\n params.append(`password`, request.password);\r\n if (request.fprops)\r\n params.append(`fprops`, request.fprops.join(`,`));\r\n if (typeof request.fileslimit !== `undefined`)\r\n params.append(`fileslimit`, request.fileslimit.toString());\r\n\r\n const headers: Record<string, string> = {};\r\n\r\n if (request.checkLogintoken === true)\r\n headers.filemaillogintokencheck = `true`;\r\n\r\n const response = await this.#axiosInstance.get<BaseResponse<GetTransferResponse>>(endpoint, {\r\n params,\r\n headers,\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting transfer ${request?.transferid || request?.trackid || `NULL`}`);\r\n }\r\n }\r\n\r\n async registerFileDownload(request: RegisterFileDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/file`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering file download: transfer ${request?.transferid} file ${request?.filename}`);\r\n }\r\n }\r\n\r\n async registerTransferDownload(request: RegisterTransferDownloadRequest, abortSignal?: AbortSignal): Promise<void> {\r\n try {\r\n const endpoint = `download/transfer`;\r\n\r\n const response = await this.#axiosInstance.post<BaseResponse<void>>(endpoint, request, {\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, false);\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error registering transfer download: transfer ${request?.transferid}`);\r\n }\r\n }\r\n\r\n async getInboxTransfers(request: GetInboxTransfersRequest, abortSignal?: AbortSignal): Promise<GetInboxTransfersResponse> {\r\n try {\r\n const params = new URLSearchParams({\r\n getforallusers: request.getForAllUsers.toString(),\r\n from: request.sinceUnixTime.toString(),\r\n });\r\n\r\n for (const portal of request.portals ?? [])\r\n params.append(`portalId`, portal);\r\n\r\n const response = await this.#axiosInstance.get<BaseResponse<GetInboxTransfersResponse>>(`transfer/inbox`, {\r\n params,\r\n signal: abortSignal,\r\n });\r\n\r\n this.throwIfPayloadNotOk(response.data, true);\r\n\r\n return response.data.data!;\r\n }\r\n catch (error) {\r\n throw this.createApiError(error, `Error getting inbox transfers`);\r\n }\r\n }\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "filemail-sdk",
3
- "version": "9.1.4",
3
+ "version": "9.2.0",
4
4
  "description": "Library for transferring files to and from Filemail.com",
5
5
  "author": "Filemail AS",
6
6
  "license": "BSD-3-Clause",