filemail-sdk 3.0.3

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 (320) hide show
  1. package/LICENSE +11 -0
  2. package/dist/src/client/downloaderCore.d.ts +23 -0
  3. package/dist/src/client/downloaderCore.js +199 -0
  4. package/dist/src/client/downloaderCore.js.map +1 -0
  5. package/dist/src/client/environmentVariables.d.ts +6 -0
  6. package/dist/src/client/environmentVariables.js +2 -0
  7. package/dist/src/client/environmentVariables.js.map +1 -0
  8. package/dist/src/client/loggers/dummyLogger.d.ts +8 -0
  9. package/dist/src/client/loggers/dummyLogger.js +10 -0
  10. package/dist/src/client/loggers/dummyLogger.js.map +1 -0
  11. package/dist/src/client/loggers/logger.d.ts +7 -0
  12. package/dist/src/client/loggers/logger.js +2 -0
  13. package/dist/src/client/loggers/logger.js.map +1 -0
  14. package/dist/src/client/node/nodeFileDetailsProvider.d.ts +16 -0
  15. package/dist/src/client/node/nodeFileDetailsProvider.js +74 -0
  16. package/dist/src/client/node/nodeFileDetailsProvider.js.map +1 -0
  17. package/dist/src/client/node/nodeTransferDownloader.d.ts +35 -0
  18. package/dist/src/client/node/nodeTransferDownloader.js +78 -0
  19. package/dist/src/client/node/nodeTransferDownloader.js.map +1 -0
  20. package/dist/src/client/node/nodeTransferUploader.d.ts +21 -0
  21. package/dist/src/client/node/nodeTransferUploader.js +160 -0
  22. package/dist/src/client/node/nodeTransferUploader.js.map +1 -0
  23. package/dist/src/client/transferDownloader.d.ts +21 -0
  24. package/dist/src/client/transferDownloader.js +2 -0
  25. package/dist/src/client/transferDownloader.js.map +1 -0
  26. package/dist/src/client/transferUploader.d.ts +9 -0
  27. package/dist/src/client/transferUploader.js +2 -0
  28. package/dist/src/client/transferUploader.js.map +1 -0
  29. package/dist/src/client/transferUploaderOptions.d.ts +18 -0
  30. package/dist/src/client/transferUploaderOptions.js +2 -0
  31. package/dist/src/client/transferUploaderOptions.js.map +1 -0
  32. package/dist/src/downloader/api/fileServerDownloadClient.d.ts +10 -0
  33. package/dist/src/downloader/api/fileServerDownloadClient.js +2 -0
  34. package/dist/src/downloader/api/fileServerDownloadClient.js.map +1 -0
  35. package/dist/src/downloader/api/node/nodeFileServerDownloadClient.d.ts +11 -0
  36. package/dist/src/downloader/api/node/nodeFileServerDownloadClient.js +120 -0
  37. package/dist/src/downloader/api/node/nodeFileServerDownloadClient.js.map +1 -0
  38. package/dist/src/downloader/chunkDownloader.d.ts +12 -0
  39. package/dist/src/downloader/chunkDownloader.js +172 -0
  40. package/dist/src/downloader/chunkDownloader.js.map +1 -0
  41. package/dist/src/downloader/downloadFolderResolver.d.ts +6 -0
  42. package/dist/src/downloader/downloadFolderResolver.js +72 -0
  43. package/dist/src/downloader/downloadFolderResolver.js.map +1 -0
  44. package/dist/src/downloader/downloadOptions.d.ts +147 -0
  45. package/dist/src/downloader/downloadOptions.js +150 -0
  46. package/dist/src/downloader/downloadOptions.js.map +1 -0
  47. package/dist/src/downloader/downloadStatus/downloadFileChunkProgress.d.ts +12 -0
  48. package/dist/src/downloader/downloadStatus/downloadFileChunkProgress.js +14 -0
  49. package/dist/src/downloader/downloadStatus/downloadFileChunkProgress.js.map +1 -0
  50. package/dist/src/downloader/downloadStatus/downloadFileProgress.d.ts +16 -0
  51. package/dist/src/downloader/downloadStatus/downloadFileProgress.js +19 -0
  52. package/dist/src/downloader/downloadStatus/downloadFileProgress.js.map +1 -0
  53. package/dist/src/downloader/downloadStatus/downloadState.d.ts +40 -0
  54. package/dist/src/downloader/downloadStatus/downloadState.js +352 -0
  55. package/dist/src/downloader/downloadStatus/downloadState.js.map +1 -0
  56. package/dist/src/downloader/downloadTracker.d.ts +16 -0
  57. package/dist/src/downloader/downloadTracker.js +236 -0
  58. package/dist/src/downloader/downloadTracker.js.map +1 -0
  59. package/dist/src/downloader/dtos/downloadCommand.d.ts +9 -0
  60. package/dist/src/downloader/dtos/downloadCommand.js +2 -0
  61. package/dist/src/downloader/dtos/downloadCommand.js.map +1 -0
  62. package/dist/src/downloader/dtos/downloadError.d.ts +5 -0
  63. package/dist/src/downloader/dtos/downloadError.js +8 -0
  64. package/dist/src/downloader/dtos/downloadError.js.map +1 -0
  65. package/dist/src/downloader/dtos/downloadErrorCode.d.ts +11 -0
  66. package/dist/src/downloader/dtos/downloadErrorCode.js +13 -0
  67. package/dist/src/downloader/dtos/downloadErrorCode.js.map +1 -0
  68. package/dist/src/downloader/dtos/downloadEvent.d.ts +27 -0
  69. package/dist/src/downloader/dtos/downloadEvent.js +29 -0
  70. package/dist/src/downloader/dtos/downloadEvent.js.map +1 -0
  71. package/dist/src/downloader/dtos/downloadFileChunkInfo.d.ts +19 -0
  72. package/dist/src/downloader/dtos/downloadFileChunkInfo.js +39 -0
  73. package/dist/src/downloader/dtos/downloadFileChunkInfo.js.map +1 -0
  74. package/dist/src/downloader/dtos/downloadFileInfo.d.ts +44 -0
  75. package/dist/src/downloader/dtos/downloadFileInfo.js +114 -0
  76. package/dist/src/downloader/dtos/downloadFileInfo.js.map +1 -0
  77. package/dist/src/downloader/dtos/downloadInfo.d.ts +7 -0
  78. package/dist/src/downloader/dtos/downloadInfo.js +2 -0
  79. package/dist/src/downloader/dtos/downloadInfo.js.map +1 -0
  80. package/dist/src/downloader/dtos/downloadTrackerFileInfo.d.ts +27 -0
  81. package/dist/src/downloader/dtos/downloadTrackerFileInfo.js +2 -0
  82. package/dist/src/downloader/dtos/downloadTrackerFileInfo.js.map +1 -0
  83. package/dist/src/downloader/dtos/downloadTrackerProgressInfo.d.ts +6 -0
  84. package/dist/src/downloader/dtos/downloadTrackerProgressInfo.js +2 -0
  85. package/dist/src/downloader/dtos/downloadTrackerProgressInfo.js.map +1 -0
  86. package/dist/src/downloader/dtos/downloaderRestoredState.d.ts +4 -0
  87. package/dist/src/downloader/dtos/downloaderRestoredState.js +2 -0
  88. package/dist/src/downloader/dtos/downloaderRestoredState.js.map +1 -0
  89. package/dist/src/downloader/eventArgs/chunkDownloadEventArgs.d.ts +9 -0
  90. package/dist/src/downloader/eventArgs/chunkDownloadEventArgs.js +2 -0
  91. package/dist/src/downloader/eventArgs/chunkDownloadEventArgs.js.map +1 -0
  92. package/dist/src/downloader/eventArgs/chunkDownloadFailedEventArgs.d.ts +6 -0
  93. package/dist/src/downloader/eventArgs/chunkDownloadFailedEventArgs.js +2 -0
  94. package/dist/src/downloader/eventArgs/chunkDownloadFailedEventArgs.js.map +1 -0
  95. package/dist/src/downloader/eventArgs/downloadCompletedEventArgs.d.ts +6 -0
  96. package/dist/src/downloader/eventArgs/downloadCompletedEventArgs.js +2 -0
  97. package/dist/src/downloader/eventArgs/downloadCompletedEventArgs.js.map +1 -0
  98. package/dist/src/downloader/eventArgs/downloadEventArgs.d.ts +18 -0
  99. package/dist/src/downloader/eventArgs/downloadEventArgs.js +2 -0
  100. package/dist/src/downloader/eventArgs/downloadEventArgs.js.map +1 -0
  101. package/dist/src/downloader/eventArgs/fileDownloadEventArgs.d.ts +7 -0
  102. package/dist/src/downloader/eventArgs/fileDownloadEventArgs.js +2 -0
  103. package/dist/src/downloader/eventArgs/fileDownloadEventArgs.js.map +1 -0
  104. package/dist/src/downloader/eventArgs/fileDownloadFailedEventArgs.d.ts +6 -0
  105. package/dist/src/downloader/eventArgs/fileDownloadFailedEventArgs.js +2 -0
  106. package/dist/src/downloader/eventArgs/fileDownloadFailedEventArgs.js.map +1 -0
  107. package/dist/src/downloader/filesDownloader.d.ts +20 -0
  108. package/dist/src/downloader/filesDownloader.js +199 -0
  109. package/dist/src/downloader/filesDownloader.js.map +1 -0
  110. package/dist/src/downloader/filesPreparer.d.ts +7 -0
  111. package/dist/src/downloader/filesPreparer.js +55 -0
  112. package/dist/src/downloader/filesPreparer.js.map +1 -0
  113. package/dist/src/index.d.ts +69 -0
  114. package/dist/src/index.js +70 -0
  115. package/dist/src/index.js.map +1 -0
  116. package/dist/src/uploader/api/fileServerUploadClient.d.ts +8 -0
  117. package/dist/src/uploader/api/fileServerUploadClient.js +2 -0
  118. package/dist/src/uploader/api/fileServerUploadClient.js.map +1 -0
  119. package/dist/src/uploader/api/node/nodeFileServerUploadClient.d.ts +16 -0
  120. package/dist/src/uploader/api/node/nodeFileServerUploadClient.js +145 -0
  121. package/dist/src/uploader/api/node/nodeFileServerUploadClient.js.map +1 -0
  122. package/dist/src/uploader/eventArgs/fileChunkEventArgs.d.ts +8 -0
  123. package/dist/src/uploader/eventArgs/fileChunkEventArgs.js +2 -0
  124. package/dist/src/uploader/eventArgs/fileChunkEventArgs.js.map +1 -0
  125. package/dist/src/uploader/eventArgs/fileChunkUploadFailedEventArgs.d.ts +5 -0
  126. package/dist/src/uploader/eventArgs/fileChunkUploadFailedEventArgs.js +2 -0
  127. package/dist/src/uploader/eventArgs/fileChunkUploadFailedEventArgs.js.map +1 -0
  128. package/dist/src/uploader/eventArgs/fileEventArgs.d.ts +5 -0
  129. package/dist/src/uploader/eventArgs/fileEventArgs.js +2 -0
  130. package/dist/src/uploader/eventArgs/fileEventArgs.js.map +1 -0
  131. package/dist/src/uploader/eventArgs/fileUploadFailedEventArgs.d.ts +5 -0
  132. package/dist/src/uploader/eventArgs/fileUploadFailedEventArgs.js +2 -0
  133. package/dist/src/uploader/eventArgs/fileUploadFailedEventArgs.js.map +1 -0
  134. package/dist/src/uploader/eventArgs/transferCompletedEventArgs.d.ts +4 -0
  135. package/dist/src/uploader/eventArgs/transferCompletedEventArgs.js +2 -0
  136. package/dist/src/uploader/eventArgs/transferCompletedEventArgs.js.map +1 -0
  137. package/dist/src/uploader/export/transferExportData.d.ts +9 -0
  138. package/dist/src/uploader/export/transferExportData.js +2 -0
  139. package/dist/src/uploader/export/transferExportData.js.map +1 -0
  140. package/dist/src/uploader/export/transferExportFileChunk.d.ts +4 -0
  141. package/dist/src/uploader/export/transferExportFileChunk.js +2 -0
  142. package/dist/src/uploader/export/transferExportFileChunk.js.map +1 -0
  143. package/dist/src/uploader/export/transferExportFileStatus.d.ts +7 -0
  144. package/dist/src/uploader/export/transferExportFileStatus.js +2 -0
  145. package/dist/src/uploader/export/transferExportFileStatus.js.map +1 -0
  146. package/dist/src/uploader/export/transferExportFileStatuses.d.ts +3 -0
  147. package/dist/src/uploader/export/transferExportFileStatuses.js +2 -0
  148. package/dist/src/uploader/export/transferExportFileStatuses.js.map +1 -0
  149. package/dist/src/uploader/export/transferMetadata.d.ts +6 -0
  150. package/dist/src/uploader/export/transferMetadata.js +2 -0
  151. package/dist/src/uploader/export/transferMetadata.js.map +1 -0
  152. package/dist/src/uploader/fileDetailsContainer.d.ts +10 -0
  153. package/dist/src/uploader/fileDetailsContainer.js +51 -0
  154. package/dist/src/uploader/fileDetailsContainer.js.map +1 -0
  155. package/dist/src/uploader/pauseController.d.ts +7 -0
  156. package/dist/src/uploader/pauseController.js +26 -0
  157. package/dist/src/uploader/pauseController.js.map +1 -0
  158. package/dist/src/uploader/transfer.d.ts +55 -0
  159. package/dist/src/uploader/transfer.js +352 -0
  160. package/dist/src/uploader/transfer.js.map +1 -0
  161. package/dist/src/uploader/transferError.d.ts +3 -0
  162. package/dist/src/uploader/transferError.js +7 -0
  163. package/dist/src/uploader/transferError.js.map +1 -0
  164. package/dist/src/uploader/transferEvent.d.ts +19 -0
  165. package/dist/src/uploader/transferEvent.js +21 -0
  166. package/dist/src/uploader/transferEvent.js.map +1 -0
  167. package/dist/src/uploader/transferOptions.d.ts +11 -0
  168. package/dist/src/uploader/transferOptions.js +2 -0
  169. package/dist/src/uploader/transferOptions.js.map +1 -0
  170. package/dist/src/uploader/transferState.d.ts +41 -0
  171. package/dist/src/uploader/transferState.js +256 -0
  172. package/dist/src/uploader/transferState.js.map +1 -0
  173. package/dist/src/uploader/transferStatus/readonlyTransferStatusFile.d.ts +6 -0
  174. package/dist/src/uploader/transferStatus/readonlyTransferStatusFile.js +2 -0
  175. package/dist/src/uploader/transferStatus/readonlyTransferStatusFile.js.map +1 -0
  176. package/dist/src/uploader/transferStatus/readonlyTransferStatusFiles.d.ts +5 -0
  177. package/dist/src/uploader/transferStatus/readonlyTransferStatusFiles.js +2 -0
  178. package/dist/src/uploader/transferStatus/readonlyTransferStatusFiles.js.map +1 -0
  179. package/dist/src/uploader/transferStatus/transferStatusFile.d.ts +16 -0
  180. package/dist/src/uploader/transferStatus/transferStatusFile.js +17 -0
  181. package/dist/src/uploader/transferStatus/transferStatusFile.js.map +1 -0
  182. package/dist/src/uploader/transferStatus/transferStatusFileChunk.d.ts +8 -0
  183. package/dist/src/uploader/transferStatus/transferStatusFileChunk.js +11 -0
  184. package/dist/src/uploader/transferStatus/transferStatusFileChunk.js.map +1 -0
  185. package/dist/src/uploader/transferStatus/transferStatusFiles.d.ts +4 -0
  186. package/dist/src/uploader/transferStatus/transferStatusFiles.js +3 -0
  187. package/dist/src/uploader/transferStatus/transferStatusFiles.js.map +1 -0
  188. package/dist/src/utils/api/apiClient.d.ts +21 -0
  189. package/dist/src/utils/api/apiClient.js +2 -0
  190. package/dist/src/utils/api/apiClient.js.map +1 -0
  191. package/dist/src/utils/api/apiError.d.ts +4 -0
  192. package/dist/src/utils/api/apiError.js +8 -0
  193. package/dist/src/utils/api/apiError.js.map +1 -0
  194. package/dist/src/utils/api/apiInternalErrorCode.d.ts +4 -0
  195. package/dist/src/utils/api/apiInternalErrorCode.js +6 -0
  196. package/dist/src/utils/api/apiInternalErrorCode.js.map +1 -0
  197. package/dist/src/utils/api/dtos/TransferCustomFieldDto.d.ts +8 -0
  198. package/dist/src/utils/api/dtos/TransferCustomFieldDto.js +2 -0
  199. package/dist/src/utils/api/dtos/TransferCustomFieldDto.js.map +1 -0
  200. package/dist/src/utils/api/dtos/TransferFileDto.d.ts +9 -0
  201. package/dist/src/utils/api/dtos/TransferFileDto.js +2 -0
  202. package/dist/src/utils/api/dtos/TransferFileDto.js.map +1 -0
  203. package/dist/src/utils/api/dtos/baseResponse.d.ts +11 -0
  204. package/dist/src/utils/api/dtos/baseResponse.js +4 -0
  205. package/dist/src/utils/api/dtos/baseResponse.js.map +1 -0
  206. package/dist/src/utils/api/dtos/cancelTransferRequest.d.ts +5 -0
  207. package/dist/src/utils/api/dtos/cancelTransferRequest.js +2 -0
  208. package/dist/src/utils/api/dtos/cancelTransferRequest.js.map +1 -0
  209. package/dist/src/utils/api/dtos/finalizeTransferRequest.d.ts +5 -0
  210. package/dist/src/utils/api/dtos/finalizeTransferRequest.js +2 -0
  211. package/dist/src/utils/api/dtos/finalizeTransferRequest.js.map +1 -0
  212. package/dist/src/utils/api/dtos/finalizeTransferResponse.d.ts +4 -0
  213. package/dist/src/utils/api/dtos/finalizeTransferResponse.js +2 -0
  214. package/dist/src/utils/api/dtos/finalizeTransferResponse.js.map +1 -0
  215. package/dist/src/utils/api/dtos/getCompanyResponse.d.ts +6 -0
  216. package/dist/src/utils/api/dtos/getCompanyResponse.js +2 -0
  217. package/dist/src/utils/api/dtos/getCompanyResponse.js.map +1 -0
  218. package/dist/src/utils/api/dtos/getRangehashResponse.d.ts +5 -0
  219. package/dist/src/utils/api/dtos/getRangehashResponse.js +2 -0
  220. package/dist/src/utils/api/dtos/getRangehashResponse.js.map +1 -0
  221. package/dist/src/utils/api/dtos/getTransferRequest.d.ts +7 -0
  222. package/dist/src/utils/api/dtos/getTransferRequest.js +2 -0
  223. package/dist/src/utils/api/dtos/getTransferRequest.js.map +1 -0
  224. package/dist/src/utils/api/dtos/getTransferResponse.d.ts +20 -0
  225. package/dist/src/utils/api/dtos/getTransferResponse.js +2 -0
  226. package/dist/src/utils/api/dtos/getTransferResponse.js.map +1 -0
  227. package/dist/src/utils/api/dtos/initializeTransferRequest.d.ts +12 -0
  228. package/dist/src/utils/api/dtos/initializeTransferRequest.js +2 -0
  229. package/dist/src/utils/api/dtos/initializeTransferRequest.js.map +1 -0
  230. package/dist/src/utils/api/dtos/initializeTransferResponse.d.ts +6 -0
  231. package/dist/src/utils/api/dtos/initializeTransferResponse.js +2 -0
  232. package/dist/src/utils/api/dtos/initializeTransferResponse.js.map +1 -0
  233. package/dist/src/utils/api/dtos/loginRequest.d.ts +5 -0
  234. package/dist/src/utils/api/dtos/loginRequest.js +2 -0
  235. package/dist/src/utils/api/dtos/loginRequest.js.map +1 -0
  236. package/dist/src/utils/api/dtos/loginResponse.d.ts +4 -0
  237. package/dist/src/utils/api/dtos/loginResponse.js +2 -0
  238. package/dist/src/utils/api/dtos/loginResponse.js.map +1 -0
  239. package/dist/src/utils/api/dtos/registerTransferDownloadRequest.d.ts +8 -0
  240. package/dist/src/utils/api/dtos/registerTransferDownloadRequest.js +2 -0
  241. package/dist/src/utils/api/dtos/registerTransferDownloadRequest.js.map +1 -0
  242. package/dist/src/utils/api/dtos/sendFileChunkRequest.d.ts +6 -0
  243. package/dist/src/utils/api/dtos/sendFileChunkRequest.js +2 -0
  244. package/dist/src/utils/api/dtos/sendFileChunkRequest.js.map +1 -0
  245. package/dist/src/utils/api/fileServerClientFactory.d.ts +8 -0
  246. package/dist/src/utils/api/fileServerClientFactory.js +2 -0
  247. package/dist/src/utils/api/fileServerClientFactory.js.map +1 -0
  248. package/dist/src/utils/api/node/nodeApiClient.d.ts +28 -0
  249. package/dist/src/utils/api/node/nodeApiClient.js +186 -0
  250. package/dist/src/utils/api/node/nodeApiClient.js.map +1 -0
  251. package/dist/src/utils/api/node/nodeClientBase.d.ts +17 -0
  252. package/dist/src/utils/api/node/nodeClientBase.js +83 -0
  253. package/dist/src/utils/api/node/nodeClientBase.js.map +1 -0
  254. package/dist/src/utils/api/node/nodeFileServerClientFactory.d.ts +10 -0
  255. package/dist/src/utils/api/node/nodeFileServerClientFactory.js +35 -0
  256. package/dist/src/utils/api/node/nodeFileServerClientFactory.js.map +1 -0
  257. package/dist/src/utils/api/node/nodeFileserverClientBase.d.ts +5 -0
  258. package/dist/src/utils/api/node/nodeFileserverClientBase.js +18 -0
  259. package/dist/src/utils/api/node/nodeFileserverClientBase.js.map +1 -0
  260. package/dist/src/utils/dateAndTime/simpleDateFormatter.d.ts +9 -0
  261. package/dist/src/utils/dateAndTime/simpleDateFormatter.js +31 -0
  262. package/dist/src/utils/dateAndTime/simpleDateFormatter.js.map +1 -0
  263. package/dist/src/utils/events/chunkProgressEvent.d.ts +5 -0
  264. package/dist/src/utils/events/chunkProgressEvent.js +2 -0
  265. package/dist/src/utils/events/chunkProgressEvent.js.map +1 -0
  266. package/dist/src/utils/events/eventsEngine.d.ts +6 -0
  267. package/dist/src/utils/events/eventsEngine.js +2 -0
  268. package/dist/src/utils/events/eventsEngine.js.map +1 -0
  269. package/dist/src/utils/events/node/nodeEventsEngine.d.ts +7 -0
  270. package/dist/src/utils/events/node/nodeEventsEngine.js +16 -0
  271. package/dist/src/utils/events/node/nodeEventsEngine.js.map +1 -0
  272. package/dist/src/utils/fileSystem/chunkStreamProvider.d.ts +12 -0
  273. package/dist/src/utils/fileSystem/chunkStreamProvider.js +2 -0
  274. package/dist/src/utils/fileSystem/chunkStreamProvider.js.map +1 -0
  275. package/dist/src/utils/fileSystem/chunkStreamProviderFactory.d.ts +5 -0
  276. package/dist/src/utils/fileSystem/chunkStreamProviderFactory.js +2 -0
  277. package/dist/src/utils/fileSystem/chunkStreamProviderFactory.js.map +1 -0
  278. package/dist/src/utils/fileSystem/fileDetails.d.ts +15 -0
  279. package/dist/src/utils/fileSystem/fileDetails.js +2 -0
  280. package/dist/src/utils/fileSystem/fileDetails.js.map +1 -0
  281. package/dist/src/utils/fileSystem/fileSystemService.d.ts +19 -0
  282. package/dist/src/utils/fileSystem/fileSystemService.js +2 -0
  283. package/dist/src/utils/fileSystem/fileSystemService.js.map +1 -0
  284. package/dist/src/utils/fileSystem/fsError.d.ts +3 -0
  285. package/dist/src/utils/fileSystem/fsError.js +7 -0
  286. package/dist/src/utils/fileSystem/fsError.js.map +1 -0
  287. package/dist/src/utils/fileSystem/node/nodeChunkStreamProvider.d.ts +15 -0
  288. package/dist/src/utils/fileSystem/node/nodeChunkStreamProvider.js +105 -0
  289. package/dist/src/utils/fileSystem/node/nodeChunkStreamProvider.js.map +1 -0
  290. package/dist/src/utils/fileSystem/node/nodeChunkStreamProviderFactory.d.ts +5 -0
  291. package/dist/src/utils/fileSystem/node/nodeChunkStreamProviderFactory.js +7 -0
  292. package/dist/src/utils/fileSystem/node/nodeChunkStreamProviderFactory.js.map +1 -0
  293. package/dist/src/utils/fileSystem/node/nodeFileDetails.d.ts +20 -0
  294. package/dist/src/utils/fileSystem/node/nodeFileDetails.js +50 -0
  295. package/dist/src/utils/fileSystem/node/nodeFileDetails.js.map +1 -0
  296. package/dist/src/utils/fileSystem/node/nodeFileSystemService.d.ts +20 -0
  297. package/dist/src/utils/fileSystem/node/nodeFileSystemService.js +106 -0
  298. package/dist/src/utils/fileSystem/node/nodeFileSystemService.js.map +1 -0
  299. package/dist/src/utils/networking/throttlingOptions.d.ts +4 -0
  300. package/dist/src/utils/networking/throttlingOptions.js +2 -0
  301. package/dist/src/utils/networking/throttlingOptions.js.map +1 -0
  302. package/dist/src/utils/pseudoRandom.d.ts +3 -0
  303. package/dist/src/utils/pseudoRandom.js +7 -0
  304. package/dist/src/utils/pseudoRandom.js.map +1 -0
  305. package/dist/src/utils/semaphore/semaphore.d.ts +5 -0
  306. package/dist/src/utils/semaphore/semaphore.js +2 -0
  307. package/dist/src/utils/semaphore/semaphore.js.map +1 -0
  308. package/dist/src/utils/semaphore/semaphoreReleaser.d.ts +2 -0
  309. package/dist/src/utils/semaphore/semaphoreReleaser.js +2 -0
  310. package/dist/src/utils/semaphore/semaphoreReleaser.js.map +1 -0
  311. package/dist/src/utils/semaphore/transferSemaphore.d.ts +8 -0
  312. package/dist/src/utils/semaphore/transferSemaphore.js +28 -0
  313. package/dist/src/utils/semaphore/transferSemaphore.js.map +1 -0
  314. package/dist/src/utils/sleep.d.ts +1 -0
  315. package/dist/src/utils/sleep.js +6 -0
  316. package/dist/src/utils/sleep.js.map +1 -0
  317. package/dist/src/utils/types/transferStatus.d.ts +13 -0
  318. package/dist/src/utils/types/transferStatus.js +15 -0
  319. package/dist/src/utils/types/transferStatus.js.map +1 -0
  320. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadFileInfo.js","sourceRoot":"","sources":["../../../../src/downloader/dtos/downloadFileInfo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type DownloadEventArgs from "../eventArgs/downloadEventArgs";
2
+ interface DownloadInfo {
3
+ downloadId: string;
4
+ transferId: string;
5
+ completion: Promise<DownloadEventArgs>;
6
+ }
7
+ export default DownloadInfo;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=downloadInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadInfo.js","sourceRoot":"","sources":["../../../../src/downloader/dtos/downloadInfo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ interface DownloadTrackerFileInfo {
2
+ /**
3
+ * External ID (as comes from FS api)
4
+ */
5
+ id: string;
6
+ /**
7
+ * Download url
8
+ */
9
+ u: string;
10
+ /**
11
+ * Size in bytes
12
+ */
13
+ s: number;
14
+ /**
15
+ * File name (as comes from FS api)
16
+ */
17
+ n: string;
18
+ /**
19
+ * Absolute download path
20
+ */
21
+ dp: string;
22
+ /**
23
+ * Number of chunks
24
+ */
25
+ cc: number;
26
+ }
27
+ export default DownloadTrackerFileInfo;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=downloadTrackerFileInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadTrackerFileInfo.js","sourceRoot":"","sources":["../../../../src/downloader/dtos/downloadTrackerFileInfo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type DownloadFileProgress from "../downloadStatus/downloadFileProgress";
2
+ interface DownloadTrackerProgressInfo {
3
+ pendingFiles: Array<DownloadFileProgress>;
4
+ activeTime: number;
5
+ }
6
+ export default DownloadTrackerProgressInfo;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=downloadTrackerProgressInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadTrackerProgressInfo.js","sourceRoot":"","sources":["../../../../src/downloader/dtos/downloadTrackerProgressInfo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ interface DownloaderRestoredState {
2
+ activeTime: number;
3
+ }
4
+ export default DownloaderRestoredState;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=downloaderRestoredState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloaderRestoredState.js","sourceRoot":"","sources":["../../../../src/downloader/dtos/downloaderRestoredState.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type DownloadFileChunkProgress from "../downloadStatus/downloadFileChunkProgress";
2
+ import type DownloadFileProgress from "../downloadStatus/downloadFileProgress";
3
+ interface ChunkDownloadEventArgs {
4
+ transferId: string;
5
+ file: DownloadFileProgress;
6
+ chunk: DownloadFileChunkProgress;
7
+ activeTime: number;
8
+ }
9
+ export default ChunkDownloadEventArgs;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chunkDownloadEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkDownloadEventArgs.js","sourceRoot":"","sources":["../../../../src/downloader/eventArgs/chunkDownloadEventArgs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type DownloadError from "../dtos/downloadError";
2
+ import type ChunkDownloadEventArgs from "./chunkDownloadEventArgs";
3
+ interface ChunkDownloadFailedEventArgs extends ChunkDownloadEventArgs {
4
+ reason: DownloadError;
5
+ }
6
+ export default ChunkDownloadFailedEventArgs;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chunkDownloadFailedEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkDownloadFailedEventArgs.js","sourceRoot":"","sources":["../../../../src/downloader/eventArgs/chunkDownloadFailedEventArgs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type DownloadFileProgress from "../downloadStatus/downloadFileProgress";
2
+ import type DownloadEventArgs from "./downloadEventArgs";
3
+ interface DownloadCompletedEventArgs extends DownloadEventArgs {
4
+ failedFiles: Array<DownloadFileProgress>;
5
+ }
6
+ export default DownloadCompletedEventArgs;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=downloadCompletedEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadCompletedEventArgs.js","sourceRoot":"","sources":["../../../../src/downloader/eventArgs/downloadCompletedEventArgs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type TransferStatus from "../../utils/types/transferStatus";
2
+ import type DownloadFileProgress from "../downloadStatus/downloadFileProgress";
3
+ interface DownloadEventArgs {
4
+ status: TransferStatus;
5
+ downloadId: string;
6
+ transferId: string;
7
+ activeTimeMillis: number;
8
+ totalTimeMillis: number;
9
+ progressPercent: number;
10
+ bytesPerSecondAverage: number;
11
+ bytesPerSecondCurrent: number;
12
+ estimatedRemainingTimeSeconds: number | null;
13
+ totalSize: number;
14
+ downloadedBytes: number;
15
+ files: Array<DownloadFileProgress> | null;
16
+ downloadBaseFolder: string;
17
+ }
18
+ export default DownloadEventArgs;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=downloadEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadEventArgs.js","sourceRoot":"","sources":["../../../../src/downloader/eventArgs/downloadEventArgs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type DownloadFileProgress from "../downloadStatus/downloadFileProgress";
2
+ interface FileDownloadEventArgs {
3
+ transferId: string;
4
+ file: DownloadFileProgress;
5
+ activeTime: number;
6
+ }
7
+ export default FileDownloadEventArgs;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fileDownloadEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileDownloadEventArgs.js","sourceRoot":"","sources":["../../../../src/downloader/eventArgs/fileDownloadEventArgs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type DownloadError from "../dtos/downloadError";
2
+ import type FileDownloadEventArgs from "./fileDownloadEventArgs";
3
+ interface FileDownloadFailedEventArgs extends FileDownloadEventArgs {
4
+ reason: DownloadError;
5
+ }
6
+ export default FileDownloadFailedEventArgs;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fileDownloadFailedEventArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileDownloadFailedEventArgs.js","sourceRoot":"","sources":["../../../../src/downloader/eventArgs/fileDownloadFailedEventArgs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import type FileSystemService from "../utils/fileSystem/fileSystemService";
2
+ import type DownloadOptions from "./downloadOptions";
3
+ import type Semaphore from "../utils/semaphore/semaphore";
4
+ import type DownloadFileInfo from "./dtos/downloadFileInfo";
5
+ import type DownloaderRestoredState from "./dtos/downloaderRestoredState";
6
+ import type FileServerClientFactory from "../utils/api/fileServerClientFactory";
7
+ import type ChunkStreamProviderFactory from "../utils/fileSystem/chunkStreamProviderFactory";
8
+ import type EventsEngine from "../utils/events/eventsEngine";
9
+ import TransferStatus from "../utils/types/transferStatus.js";
10
+ import type DownloadEventArgs from "./eventArgs/downloadEventArgs";
11
+ import type ApiClient from "../utils/api/apiClient";
12
+ export default class FilesDownloader {
13
+ #private;
14
+ constructor(transferId: string, trackId: string | undefined, downloadId: string, files: DownloadFileInfo | Array<DownloadFileInfo>, oldState: DownloaderRestoredState | undefined, fileSystem: FileSystemService, semaphore: Semaphore, eventsEngine: EventsEngine, options: DownloadOptions, apiClient: ApiClient, fileserverClientFactory: FileServerClientFactory, chunkStreamProviderFactory: ChunkStreamProviderFactory);
15
+ start(): Promise<DownloadEventArgs>;
16
+ requestPause(): boolean;
17
+ resume(): boolean;
18
+ requestAbort(): boolean;
19
+ get status(): TransferStatus;
20
+ }
@@ -0,0 +1,199 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _FilesDownloader_instances, _FilesDownloader_transferId, _FilesDownloader_trackId, _FilesDownloader_downloadId, _FilesDownloader_files, _FilesDownloader_downloadState, _FilesDownloader_options, _FilesDownloader_semaphore, _FilesDownloader_fileSystem, _FilesDownloader_apiClient, _FilesDownloader_fileserverClientFactory, _FilesDownloader_chunkStreamProviderFactory, _FilesDownloader_eventsEngine, _FilesDownloader_deleteEntireDownload, _FilesDownloader_registerTransferDownload, _FilesDownloader_addEventListeners, _FilesDownloader_removeEventListeners, _FilesDownloader_onFileSupersized, _FilesDownloader_onFileFailed;
13
+ import DownloadState from "./downloadStatus/downloadState.js";
14
+ import DownloadError from "./dtos/downloadError.js";
15
+ import DownloadEvent from "./dtos/downloadEvent.js";
16
+ import ChunkDownloader from "./chunkDownloader.js";
17
+ import TransferStatus from "../utils/types/transferStatus.js";
18
+ class FilesDownloader {
19
+ constructor(transferId, trackId, downloadId, files, oldState, fileSystem, semaphore, eventsEngine, options, apiClient, fileserverClientFactory, chunkStreamProviderFactory) {
20
+ _FilesDownloader_instances.add(this);
21
+ _FilesDownloader_transferId.set(this, void 0);
22
+ _FilesDownloader_trackId.set(this, void 0);
23
+ _FilesDownloader_downloadId.set(this, void 0);
24
+ _FilesDownloader_files.set(this, void 0);
25
+ _FilesDownloader_downloadState.set(this, void 0);
26
+ _FilesDownloader_options.set(this, void 0);
27
+ _FilesDownloader_semaphore.set(this, void 0);
28
+ _FilesDownloader_fileSystem.set(this, void 0);
29
+ _FilesDownloader_apiClient.set(this, void 0);
30
+ _FilesDownloader_fileserverClientFactory.set(this, void 0);
31
+ _FilesDownloader_chunkStreamProviderFactory.set(this, void 0);
32
+ _FilesDownloader_eventsEngine.set(this, void 0);
33
+ _FilesDownloader_onFileSupersized.set(this, async (fileArgs) => {
34
+ if (await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").getFileSize(fileArgs.file.downloadPath) > fileArgs.file.size)
35
+ await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").truncateFile(fileArgs.file.downloadPath, fileArgs.file.size);
36
+ });
37
+ _FilesDownloader_onFileFailed.set(this, async (args) => {
38
+ if (__classPrivateFieldGet(this, _FilesDownloader_options, "f").deleteFailedFilesFromDisk)
39
+ await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").deleteFile(args.file.downloadPath);
40
+ });
41
+ if (!transferId)
42
+ throw new DownloadError(`No transfer specified`);
43
+ if (!files)
44
+ throw new DownloadError(`No files added to downloader`);
45
+ if (Array.isArray(files) && files.length === 0)
46
+ throw new DownloadError(`No files added to downloader`);
47
+ if (!options.downloadFolder)
48
+ throw new DownloadError(`No downloadFolder specified`);
49
+ __classPrivateFieldSet(this, _FilesDownloader_downloadId, downloadId, "f");
50
+ __classPrivateFieldSet(this, _FilesDownloader_transferId, transferId, "f");
51
+ __classPrivateFieldSet(this, _FilesDownloader_trackId, trackId, "f");
52
+ __classPrivateFieldSet(this, _FilesDownloader_fileSystem, fileSystem, "f");
53
+ __classPrivateFieldSet(this, _FilesDownloader_files, Array.isArray(files) ? files : [files], "f");
54
+ __classPrivateFieldSet(this, _FilesDownloader_options, options, "f");
55
+ __classPrivateFieldSet(this, _FilesDownloader_eventsEngine, eventsEngine, "f");
56
+ __classPrivateFieldSet(this, _FilesDownloader_downloadState, new DownloadState(__classPrivateFieldGet(this, _FilesDownloader_downloadId, "f"), __classPrivateFieldGet(this, _FilesDownloader_transferId, "f"), __classPrivateFieldGet(this, _FilesDownloader_files, "f"), __classPrivateFieldGet(this, _FilesDownloader_options, "f"), eventsEngine, oldState), "f");
57
+ __classPrivateFieldSet(this, _FilesDownloader_semaphore, semaphore, "f");
58
+ __classPrivateFieldSet(this, _FilesDownloader_apiClient, apiClient, "f");
59
+ __classPrivateFieldSet(this, _FilesDownloader_fileserverClientFactory, fileserverClientFactory, "f");
60
+ __classPrivateFieldSet(this, _FilesDownloader_chunkStreamProviderFactory, chunkStreamProviderFactory, "f");
61
+ }
62
+ async start() {
63
+ try {
64
+ let fileDownloaderIsFinished = false;
65
+ __classPrivateFieldGet(this, _FilesDownloader_instances, "m", _FilesDownloader_addEventListeners).call(this);
66
+ while (fileDownloaderIsFinished === false) {
67
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").start();
68
+ const ongoingChunkDownloads = {};
69
+ // MAIN FILE LOOP
70
+ for (const file of __classPrivateFieldGet(this, _FilesDownloader_files, "f")) {
71
+ if (file.isCompleted || file.isFailed)
72
+ continue;
73
+ const fileExistsAndHasCorrectSize = await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").pathExists(file.downloadPath)
74
+ && await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").getFileSize(file.downloadPath) === file.sizeInBytes;
75
+ if (__classPrivateFieldGet(this, _FilesDownloader_options, "f").preventOverwrites && fileExistsAndHasCorrectSize && file.wasEverWritten === false) {
76
+ // TODO: adjust total progress accordingly, but we can't just add bytes - this will ruin download speed calc...
77
+ // see https://filemail.atlassian.net/browse/FILEMAIL-3537
78
+ file.downloadedBytes_bank = file.sizeInBytes;
79
+ file.updateProgress();
80
+ if (__classPrivateFieldGet(this, _FilesDownloader_options, "f").failFileWhenPreventingOverwrite)
81
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").fileFailed(file, new DownloadError(`File ${file.downloadPath} already exists and download option "preventOverwrites" is set to true`));
82
+ else
83
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").fileCompleted(file);
84
+ continue;
85
+ }
86
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").fileStarting(file);
87
+ if (fileExistsAndHasCorrectSize === false) {
88
+ try {
89
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").fileCreating(file);
90
+ await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").createFile(file.downloadPath, file.sizeInBytes);
91
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").fileCreated(file);
92
+ }
93
+ catch (fileWriteErr) {
94
+ const errorCode = __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").fileErrorToDownloadErrorCode(fileWriteErr);
95
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").fileFailed(file, new DownloadError(`File ${file.downloadPath} could not be created with specific size. See 'cause' for more details.`, { cause: fileWriteErr }, errorCode));
96
+ continue;
97
+ }
98
+ }
99
+ if (file.chunks.length) {
100
+ // MAIN CHUNK LOOP
101
+ for (const chunk of file.chunks) {
102
+ if (chunk.isCompleted || chunk.isFailed)
103
+ continue;
104
+ const releaseSemaphore = await __classPrivateFieldGet(this, _FilesDownloader_semaphore, "f").acquire();
105
+ if (__classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").isRunning === false) {
106
+ // downloader is not running - stop trying more chunks
107
+ releaseSemaphore();
108
+ break;
109
+ }
110
+ if (file.isFailed) {
111
+ // do not try to download more chunks if the file has failed
112
+ releaseSemaphore();
113
+ break;
114
+ }
115
+ const chunkDownloader = new ChunkDownloader(__classPrivateFieldGet(this, _FilesDownloader_transferId, "f"), file, chunk, __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f"), __classPrivateFieldGet(this, _FilesDownloader_options, "f"), __classPrivateFieldGet(this, _FilesDownloader_fileserverClientFactory, "f"), __classPrivateFieldGet(this, _FilesDownloader_chunkStreamProviderFactory, "f"), __classPrivateFieldGet(this, _FilesDownloader_eventsEngine, "f"));
116
+ const chunkPromise = chunkDownloader.download();
117
+ ongoingChunkDownloads[chunk.id] = chunkPromise;
118
+ // TODO: check if this really keeps the promise dictionary small all the time
119
+ chunkPromise.finally(() => {
120
+ releaseSemaphore();
121
+ delete ongoingChunkDownloads[chunk.id];
122
+ });
123
+ }
124
+ if (__classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").isRunning === false)
125
+ break;
126
+ }
127
+ else {
128
+ // zerobyte file
129
+ file.updateProgress();
130
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").fileCompleted(file);
131
+ }
132
+ }
133
+ // wait for remaining pending chunks
134
+ await Promise.allSettled(Object.values(ongoingChunkDownloads));
135
+ // when we got here it's either pause request, abort request or everything is complete;
136
+ if (__classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").status === TransferStatus.Pausing)
137
+ // set status to paused and await until resume/abort; the main while loop based on `fileDownloaderIsFinished` will continue;
138
+ await __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").paused();
139
+ if (__classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").status === TransferStatus.Aborting) {
140
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").aborted();
141
+ if (__classPrivateFieldGet(this, _FilesDownloader_options, "f").deleteAbortedDownloadsFromDisk)
142
+ await __classPrivateFieldGet(this, _FilesDownloader_instances, "m", _FilesDownloader_deleteEntireDownload).call(this);
143
+ }
144
+ else if (__classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").allFilesCompletedOrFailed) {
145
+ await __classPrivateFieldGet(this, _FilesDownloader_instances, "m", _FilesDownloader_registerTransferDownload).call(this);
146
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").completed();
147
+ }
148
+ if (__classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").status === TransferStatus.Completed || __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").status === TransferStatus.Aborted) {
149
+ fileDownloaderIsFinished = true;
150
+ if (__classPrivateFieldGet(this, _FilesDownloader_options, "f").deleteEmptyDownloadFoldersAfterDownload && await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").folderIsEmpty(__classPrivateFieldGet(this, _FilesDownloader_options, "f").downloadFolder))
151
+ await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").deleteFolder(__classPrivateFieldGet(this, _FilesDownloader_options, "f").downloadFolder);
152
+ }
153
+ }
154
+ return __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").getCurrentState(true);
155
+ }
156
+ catch (error) {
157
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").completed();
158
+ if (error instanceof DownloadError)
159
+ throw error;
160
+ else
161
+ throw new DownloadError(`Unhandled error occured. See "cause" for more details`, { cause: error });
162
+ }
163
+ finally {
164
+ __classPrivateFieldGet(this, _FilesDownloader_instances, "m", _FilesDownloader_removeEventListeners).call(this);
165
+ }
166
+ }
167
+ requestPause() {
168
+ return __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").requestPause();
169
+ }
170
+ resume() {
171
+ return __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").resume();
172
+ }
173
+ requestAbort() {
174
+ return __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").requestAbort();
175
+ }
176
+ get status() {
177
+ return __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").status;
178
+ }
179
+ }
180
+ _FilesDownloader_transferId = new WeakMap(), _FilesDownloader_trackId = new WeakMap(), _FilesDownloader_downloadId = new WeakMap(), _FilesDownloader_files = new WeakMap(), _FilesDownloader_downloadState = new WeakMap(), _FilesDownloader_options = new WeakMap(), _FilesDownloader_semaphore = new WeakMap(), _FilesDownloader_fileSystem = new WeakMap(), _FilesDownloader_apiClient = new WeakMap(), _FilesDownloader_fileserverClientFactory = new WeakMap(), _FilesDownloader_chunkStreamProviderFactory = new WeakMap(), _FilesDownloader_eventsEngine = new WeakMap(), _FilesDownloader_onFileSupersized = new WeakMap(), _FilesDownloader_onFileFailed = new WeakMap(), _FilesDownloader_instances = new WeakSet(), _FilesDownloader_deleteEntireDownload = async function _FilesDownloader_deleteEntireDownload() {
181
+ for (const file of __classPrivateFieldGet(this, _FilesDownloader_files, "f"))
182
+ await __classPrivateFieldGet(this, _FilesDownloader_fileSystem, "f").deleteFile(file.downloadPath);
183
+ }, _FilesDownloader_registerTransferDownload = async function _FilesDownloader_registerTransferDownload() {
184
+ __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").registeringTransferDownload();
185
+ await __classPrivateFieldGet(this, _FilesDownloader_apiClient, "f").registerTransferDownload({
186
+ transferid: __classPrivateFieldGet(this, _FilesDownloader_transferId, "f"),
187
+ track: __classPrivateFieldGet(this, _FilesDownloader_trackId, "f"),
188
+ bps: __classPrivateFieldGet(this, _FilesDownloader_downloadState, "f").averageBytesPerSecond,
189
+ browser: __classPrivateFieldGet(this, _FilesDownloader_options, "f").userAgent,
190
+ });
191
+ }, _FilesDownloader_addEventListeners = function _FilesDownloader_addEventListeners() {
192
+ __classPrivateFieldGet(this, _FilesDownloader_eventsEngine, "f").addEventListener(DownloadEvent.FileDownloadFailed, __classPrivateFieldGet(this, _FilesDownloader_onFileFailed, "f"));
193
+ __classPrivateFieldGet(this, _FilesDownloader_eventsEngine, "f").addEventListener(DownloadEvent.PossibleSupersizedFile, __classPrivateFieldGet(this, _FilesDownloader_onFileSupersized, "f"));
194
+ }, _FilesDownloader_removeEventListeners = function _FilesDownloader_removeEventListeners() {
195
+ __classPrivateFieldGet(this, _FilesDownloader_eventsEngine, "f").removeEventListener(DownloadEvent.FileDownloadFailed, __classPrivateFieldGet(this, _FilesDownloader_onFileFailed, "f"));
196
+ __classPrivateFieldGet(this, _FilesDownloader_eventsEngine, "f").removeEventListener(DownloadEvent.PossibleSupersizedFile, __classPrivateFieldGet(this, _FilesDownloader_onFileSupersized, "f"));
197
+ };
198
+ export default FilesDownloader;
199
+ //# sourceMappingURL=filesDownloader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesDownloader.js","sourceRoot":"","sources":["../../../src/downloader/filesDownloader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type FileSystem from "../utils/fileSystem/fileSystemService";
2
+ import type DownloadFileInfo from "./dtos/downloadFileInfo";
3
+ export default class FilesPreparer {
4
+ #private;
5
+ constructor(downloadBaseFolder: string, maxChunkSize: number | null, fileSystem: FileSystem);
6
+ prepareFiles(files: Array<DownloadFileInfo>): void;
7
+ }
@@ -0,0 +1,55 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _FilesPreparer_instances, _FilesPreparer_downloadBaseFolder, _FilesPreparer_maxChunkSize, _FilesPreparer_fileSystem, _FilesPreparer_computeFileDownloadPath;
13
+ import DownloadError from "./dtos/downloadError.js";
14
+ import DownloadFileChunkInfo from "./dtos/downloadFileChunkInfo.js";
15
+ class FilesPreparer {
16
+ constructor(downloadBaseFolder, maxChunkSize, fileSystem) {
17
+ _FilesPreparer_instances.add(this);
18
+ _FilesPreparer_downloadBaseFolder.set(this, void 0);
19
+ _FilesPreparer_maxChunkSize.set(this, void 0);
20
+ _FilesPreparer_fileSystem.set(this, void 0);
21
+ __classPrivateFieldSet(this, _FilesPreparer_downloadBaseFolder, downloadBaseFolder, "f");
22
+ __classPrivateFieldSet(this, _FilesPreparer_maxChunkSize, maxChunkSize, "f");
23
+ __classPrivateFieldSet(this, _FilesPreparer_fileSystem, fileSystem, "f");
24
+ }
25
+ prepareFiles(files) {
26
+ for (const file of files) {
27
+ if (!file.externalId)
28
+ throw new DownloadError(`All files require an external ID: ${file.url}`);
29
+ __classPrivateFieldGet(this, _FilesPreparer_instances, "m", _FilesPreparer_computeFileDownloadPath).call(this, file);
30
+ if (file.sizeInBytes > 0) {
31
+ if (__classPrivateFieldGet(this, _FilesPreparer_maxChunkSize, "f") === null)
32
+ file.chunkCount = 1;
33
+ else
34
+ file.chunkCount = Math.ceil(file.sizeInBytes / __classPrivateFieldGet(this, _FilesPreparer_maxChunkSize, "f"));
35
+ }
36
+ else
37
+ file.chunkCount = 0;
38
+ file.chunks = new Array(file.chunkCount);
39
+ for (let k = 0; k < file.chunkCount; k++)
40
+ file.chunks[k] = new DownloadFileChunkInfo(file, k, __classPrivateFieldGet(this, _FilesPreparer_maxChunkSize, "f") || null);
41
+ }
42
+ }
43
+ }
44
+ _FilesPreparer_downloadBaseFolder = new WeakMap(), _FilesPreparer_maxChunkSize = new WeakMap(), _FilesPreparer_fileSystem = new WeakMap(), _FilesPreparer_instances = new WeakSet(), _FilesPreparer_computeFileDownloadPath = function _FilesPreparer_computeFileDownloadPath(file) {
45
+ if (!file.hasDownloadPath) {
46
+ if (file.downloadName)
47
+ // eslint-disable-next-line no-param-reassign
48
+ file.downloadPath = __classPrivateFieldGet(this, _FilesPreparer_fileSystem, "f").pathJoin(__classPrivateFieldGet(this, _FilesPreparer_downloadBaseFolder, "f"), file.downloadName);
49
+ else
50
+ // eslint-disable-next-line no-param-reassign
51
+ file.downloadPath = __classPrivateFieldGet(this, _FilesPreparer_fileSystem, "f").pathJoin(__classPrivateFieldGet(this, _FilesPreparer_downloadBaseFolder, "f"), file.name);
52
+ }
53
+ };
54
+ export default FilesPreparer;
55
+ //# sourceMappingURL=filesPreparer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesPreparer.js","sourceRoot":"","sources":["../../../src/downloader/filesPreparer.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,qBAAqB,MAAM,iCAAiC,CAAC;AAGpE,MAAqB,aAAa;IAK9B,YAAY,kBAA0B,EAAE,YAA2B,EAAE,UAAsB;;QAJ3F,oDAA4B;QAC5B,8CAA6B;QAC7B,4CAAwB;QAGpB,uBAAA,IAAI,qCAAuB,kBAAkB,MAAA,CAAC;QAC9C,uBAAA,IAAI,+BAAiB,YAAY,MAAA,CAAC;QAClC,uBAAA,IAAI,6BAAe,UAAU,MAAA,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,KAA8B;QACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU;gBAChB,MAAM,IAAI,aAAa,CAAC,qCAAqC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7E,uBAAA,IAAI,wEAAyB,MAA7B,IAAI,EAA0B,IAAI,CAAC,CAAC;YAEpC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;gBACtB,IAAI,uBAAA,IAAI,mCAAc,KAAK,IAAI;oBAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;;oBAEpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,uBAAA,IAAI,mCAAe,CAAC,CAAC;aAC3E;;gBAEG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YAExB,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAwB,IAAI,CAAC,UAAU,CAAC,CAAC;YAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;gBACpC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,uBAAA,IAAI,mCAAc,IAAI,IAAI,CAAC,CAAC;SACvF;IACL,CAAC;CAYJ;8QAV4B,IAAsB;IAC3C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;QACvB,IAAI,IAAI,CAAC,YAAY;YACjB,6CAA6C;YAC7C,IAAI,CAAC,YAAY,GAAG,uBAAA,IAAI,iCAAY,CAAC,QAAQ,CAAC,uBAAA,IAAI,yCAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;;YAE5F,6CAA6C;YAC7C,IAAI,CAAC,YAAY,GAAG,uBAAA,IAAI,iCAAY,CAAC,QAAQ,CAAC,uBAAA,IAAI,yCAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3F;AACL,CAAC;eA1CgB,aAAa"}
@@ -0,0 +1,69 @@
1
+ export { default as CancelTransferRequest } from "./utils/api/dtos/cancelTransferRequest.js";
2
+ export { BaseResponse } from "./utils/api/dtos/baseResponse.js";
3
+ export { default as FinalizeTransferRequest } from "./utils/api/dtos/finalizeTransferRequest.js";
4
+ export { default as FinalizeTransferResponse } from "./utils/api/dtos/finalizeTransferResponse.js";
5
+ export { default as InitializeTransferRequest } from "./utils/api/dtos/initializeTransferRequest.js";
6
+ export { default as InitializeTransferResponse } from "./utils/api/dtos/initializeTransferResponse.js";
7
+ export { default as LoginRequest } from "./utils/api/dtos/loginRequest.js";
8
+ export { default as LoginResponse } from "./utils/api/dtos/loginResponse.js";
9
+ export { default as SendFileChunkRequest } from "./utils/api/dtos/sendFileChunkRequest.js";
10
+ export { default as ChunkProgressEvent } from "./utils/events/chunkProgressEvent.js";
11
+ export { default as NodeApiClient } from "./utils/api/node/nodeApiClient.js";
12
+ export { default as NodeClientBase } from "./utils/api/node/nodeClientBase.js";
13
+ export { default as NodeFileServerUploadClient } from "./uploader/api/node/nodeFileServerUploadClient.js";
14
+ export { default as NodeFileServerDownloadClient } from "./downloader/api/node/nodeFileServerDownloadClient.js";
15
+ export { default as NodeFileServerClientFactory } from "./utils/api/node/nodeFileServerClientFactory.js";
16
+ export { default as ApiClient } from "./utils/api/apiClient.js";
17
+ export { default as ApiError } from "./utils/api/apiError.js";
18
+ export { default as ApiInternalErrorCode } from "./utils/api/apiInternalErrorCode.js";
19
+ export { default as FileServerClient } from "./uploader/api/fileServerUploadClient.js";
20
+ export { default as FileServerClientFactory } from "./utils/api/fileServerClientFactory.js";
21
+ export { default as NodeEventsEngine } from "./utils/events/node/nodeEventsEngine.js";
22
+ export { default as EventsEngine } from "./utils/events/eventsEngine.js";
23
+ export { default as NodeChunkStreamProvider } from "./utils/fileSystem/node/nodeChunkStreamProvider.js";
24
+ export { default as NodeFileDetails } from "./utils/fileSystem/node/nodeFileDetails.js";
25
+ export { default as ChunkStreamProvider } from "./utils/fileSystem/chunkStreamProvider.js";
26
+ export { default as FileDetails } from "./utils/fileSystem/fileDetails.js";
27
+ export { default as FsError } from "./utils/fileSystem/fsError.js";
28
+ export { default as Semaphore } from "./utils/semaphore/semaphore.js";
29
+ export { default as SemaphoreReleaser } from "./utils/semaphore/semaphoreReleaser.js";
30
+ export { default as TransferSemaphore } from "./utils/semaphore/transferSemaphore.js";
31
+ export { default as TransferExportData } from "./uploader/export/transferExportData.js";
32
+ export { default as TransferMetadata } from "./uploader/export/transferMetadata.js";
33
+ export { default as FileChunkUploadFailedEventArgs } from "./uploader/eventArgs/fileChunkUploadFailedEventArgs.js";
34
+ export { default as FileChunkEventArgs } from "./uploader/eventArgs/fileChunkEventArgs.js";
35
+ export { default as FileEventArgs } from "./uploader/eventArgs/fileEventArgs.js";
36
+ export { default as FileUploadFailedEventArgs } from "./uploader/eventArgs/fileUploadFailedEventArgs.js";
37
+ export { default as TransferCompletedEventArgs } from "./uploader/eventArgs/transferCompletedEventArgs.js";
38
+ export { default as ReadonlyTransferStatusFile } from "./uploader/transferStatus/readonlyTransferStatusFile.js";
39
+ export { default as ReadonlyTransferStatusFiles } from "./uploader/transferStatus/readonlyTransferStatusFiles.js";
40
+ export { default as TransferStatusFile } from "./uploader/transferStatus/transferStatusFile.js";
41
+ export { default as TransferStatusFileChunk } from "./uploader/transferStatus/transferStatusFileChunk.js";
42
+ export { default as TransferStatusFiles } from "./uploader/transferStatus/transferStatusFiles.js";
43
+ export { default as FileDetailsContainer } from "./uploader/fileDetailsContainer.js";
44
+ export { default as PauseController } from "./uploader/pauseController.js";
45
+ export { default as Transfer } from "./uploader/transfer.js";
46
+ export { default as TransferError } from "./uploader/transferError.js";
47
+ export { default as TransferEvent } from "./uploader/transferEvent.js";
48
+ export { default as TransferOptions } from "./uploader/transferOptions.js";
49
+ export { default as TransferState } from "./uploader/transferState.js";
50
+ export { default as TransferStatus } from "./utils/types/transferStatus.js";
51
+ export { default as DummyLogger } from "./client/loggers/dummyLogger.js";
52
+ export { default as Logger } from "./client/loggers/logger.js";
53
+ export { default as NodeFileDetailsProvider } from "./client/node/nodeFileDetailsProvider.js";
54
+ export { default as NodeTransferUploader } from "./client/node/nodeTransferUploader.js";
55
+ export { default as TransferUploader } from "./client/transferUploader.js";
56
+ export { default as EnvironmentVariables } from "./client/environmentVariables.js";
57
+ export { default as TransferUploaderOptions } from "./client/transferUploaderOptions.js";
58
+ export { default as FilesDownloader } from "./downloader/filesDownloader.js";
59
+ export { default as NodeFileSystemService } from "./utils/fileSystem/node/nodeFileSystemService.js";
60
+ export { default as NodeChunkStreamProviderFactory } from "./utils/fileSystem/node/nodeChunkStreamProviderFactory.js";
61
+ export { default as DownloadFileInfo } from "./downloader/dtos/downloadFileInfo.js";
62
+ export { default as DownloadFileChunkInfo } from "./downloader/dtos/downloadFileChunkInfo.js";
63
+ export { default as DownloadEvent } from "./downloader/dtos/downloadEvent.js";
64
+ export { default as DownloadEventArgs } from "./downloader/eventArgs/downloadEventArgs.js";
65
+ export { default as DownloadCompletedEventArgs } from "./downloader/eventArgs/downloadCompletedEventArgs.js";
66
+ export { default as FileDownloadEventArgs } from "./downloader/eventArgs/fileDownloadEventArgs.js";
67
+ export { default as FileDownloadFailedEventArgs } from "./downloader/eventArgs/fileDownloadFailedEventArgs.js";
68
+ export { default as DownloadError } from "./downloader/dtos/downloadError.js";
69
+ export { default as DownloadOptions } from "./downloader/downloadOptions.js";