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":"chunkProgressEvent.js","sourceRoot":"","sources":["../../../../src/utils/events/chunkProgressEvent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ interface EventsEngine {
2
+ addEventListener(eventName: string, handler: (arg?: any) => void): void;
3
+ removeEventListener(eventName: string, handler: (arg?: any) => void): void;
4
+ emit(eventName: string, arg?: any): void;
5
+ }
6
+ export default EventsEngine;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=eventsEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventsEngine.js","sourceRoot":"","sources":["../../../../src/utils/events/eventsEngine.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type EventsEngine from "../eventsEngine";
2
+ export default class NodeEventsEngine implements EventsEngine {
3
+ private readonly eventEmitter;
4
+ addEventListener(eventName: string, handler: (arg?: any) => void): void;
5
+ removeEventListener(eventName: string, handler: (arg?: any) => void): void;
6
+ emit(eventName: string, arg?: any): void;
7
+ }
@@ -0,0 +1,16 @@
1
+ import EventEmitter from "events";
2
+ export default class NodeEventsEngine {
3
+ constructor() {
4
+ this.eventEmitter = new EventEmitter();
5
+ }
6
+ addEventListener(eventName, handler) {
7
+ this.eventEmitter.on(eventName, handler);
8
+ }
9
+ removeEventListener(eventName, handler) {
10
+ this.eventEmitter.off(eventName, handler);
11
+ }
12
+ emit(eventName, arg) {
13
+ this.eventEmitter.emit(eventName, arg);
14
+ }
15
+ }
16
+ //# sourceMappingURL=nodeEventsEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeEventsEngine.js","sourceRoot":"","sources":["../../../../../src/utils/events/node/nodeEventsEngine.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAIlC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAArC;QACqB,iBAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;IAarE,CAAC;IAXG,gBAAgB,CAAC,SAAiB,EAAE,OAA4B;QAC5D,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,OAA4B;QAC/D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,GAAS;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;CACJ"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ import type { Readable, Writable } from "stream";
3
+ interface ChunkStreamProvider {
4
+ readonly isReleased: boolean;
5
+ readonly chunkStartPosition: number;
6
+ readonly chunkLengthInBytes: number;
7
+ getMd5Checksum(format: `hex` | `base64`): Promise<string>;
8
+ getChunkReadStream(): Promise<Readable>;
9
+ getChunkWriteStream(): Promise<Writable>;
10
+ release(): void;
11
+ }
12
+ export default ChunkStreamProvider;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chunkStreamProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkStreamProvider.js","sourceRoot":"","sources":["../../../../src/utils/fileSystem/chunkStreamProvider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type ChunkStreamProvider from "./chunkStreamProvider";
2
+ interface ChunkStreamProviderFactory {
3
+ provide(path: string, start: number, size: number): ChunkStreamProvider;
4
+ }
5
+ export default ChunkStreamProviderFactory;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chunkStreamProviderFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkStreamProviderFactory.js","sourceRoot":"","sources":["../../../../src/utils/fileSystem/chunkStreamProviderFactory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import type ChunkStreamProvider from "./chunkStreamProvider";
2
+ interface FileDetails {
3
+ readonly externalId: string | number;
4
+ readonly fileSizeInBytes: number;
5
+ readonly fileName: string;
6
+ readonly fileDestinationPathInTransfer: string;
7
+ readonly maxChunkSizeInBytes: number;
8
+ readonly chunksCount: number;
9
+ createChunkStreamProvider(chunkSequenceNumber: number): ChunkStreamProvider;
10
+ getChunkStartPositionAndSizeInBytes(chunkSequenceNumber: number): {
11
+ startPosition: number;
12
+ sizeInBytes: number;
13
+ };
14
+ }
15
+ export default FileDetails;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fileDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileDetails.js","sourceRoot":"","sources":["../../../../src/utils/fileSystem/fileDetails.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import type DownloadErrorCode from "../../downloader/dtos/downloadErrorCode";
3
+ interface FileSystemService {
4
+ writeFile(filePath: string, data: string, encoding?: BufferEncoding, abort?: AbortSignal): unknown;
5
+ createFolder(folderPath: string): Promise<void>;
6
+ getAllFilePaths(folderPath: string): Promise<Array<string>>;
7
+ getAllFilePathsRecursive(folderPath: string): Promise<Array<string>>;
8
+ readFileAsString(filePath: string, encoding?: BufferEncoding, abort?: AbortSignal): Promise<string>;
9
+ pathJoin(...paths: Array<string>): string;
10
+ deleteFolder(folderPath: string): Promise<boolean>;
11
+ folderIsEmpty(folderPath: string): Promise<boolean>;
12
+ deleteFile(filePath: string): Promise<boolean>;
13
+ createFile(filePath: string, size?: number): Promise<void>;
14
+ pathExists(thePath: string): Promise<boolean>;
15
+ getFileSize(filePath: string): Promise<number>;
16
+ truncateFile(filePath: string, newSize: number): Promise<void>;
17
+ fileErrorToDownloadErrorCode(error: Error): DownloadErrorCode | undefined;
18
+ }
19
+ export default FileSystemService;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fileSystemService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../../src/utils/fileSystem/fileSystemService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export default class FsError extends Error {
2
+ constructor(message?: string, options?: ErrorOptions);
3
+ }
@@ -0,0 +1,7 @@
1
+ export default class FsError extends Error {
2
+ constructor(message, options) {
3
+ super(message, options);
4
+ this.name = `FsError`;
5
+ }
6
+ }
7
+ //# sourceMappingURL=fsError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsError.js","sourceRoot":"","sources":["../../../../src/utils/fileSystem/fsError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK;IACtC,YAAY,OAAgB,EAAE,OAAsB;QAChD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC;CACJ"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import type { Readable, Writable } from "stream";
3
+ import type ChunkStreamProvider from "../chunkStreamProvider";
4
+ export default class NodeChunkStreamProvider implements ChunkStreamProvider {
5
+ #private;
6
+ readonly chunkStartPosition: number;
7
+ readonly chunkLengthInBytes: number;
8
+ get isReleased(): boolean;
9
+ constructor(fullFilePath: string, chunkStartPosition: number, chunkLengthInBytes: number);
10
+ getMd5Checksum(format?: `hex` | `base64`): Promise<string>;
11
+ getChunkReadStream(): Promise<Readable>;
12
+ private getChunkEndPosition;
13
+ getChunkWriteStream(): Promise<Writable>;
14
+ release(): void;
15
+ }
@@ -0,0 +1,105 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ 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");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _NodeChunkStreamProvider_fullFilePath, _NodeChunkStreamProvider_fileHandle, _NodeChunkStreamProvider_fileReadStream, _NodeChunkStreamProvider_fileWriteStream;
13
+ import fs from "fs/promises";
14
+ import { constants as fsConsts } from "fs";
15
+ import crypto from "crypto";
16
+ import { pipeline } from "stream/promises";
17
+ import FsError from '../fsError.js';
18
+ class NodeChunkStreamProvider {
19
+ get isReleased() {
20
+ const isFileHandleReleased = __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileHandle, "f") === null;
21
+ const isFileReadStreamReleased = __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileReadStream, "f")?.destroyed ?? true;
22
+ const isFileWriteStreamReleased = __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileWriteStream, "f")?.destroyed ?? true;
23
+ return isFileHandleReleased && isFileReadStreamReleased && isFileWriteStreamReleased;
24
+ }
25
+ constructor(fullFilePath, chunkStartPosition, chunkLengthInBytes) {
26
+ _NodeChunkStreamProvider_fullFilePath.set(this, void 0);
27
+ _NodeChunkStreamProvider_fileHandle.set(this, null);
28
+ _NodeChunkStreamProvider_fileReadStream.set(this, null);
29
+ _NodeChunkStreamProvider_fileWriteStream.set(this, null);
30
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fullFilePath, fullFilePath, "f");
31
+ this.chunkStartPosition = chunkStartPosition;
32
+ this.chunkLengthInBytes = chunkLengthInBytes;
33
+ }
34
+ async getMd5Checksum(format = `base64`) {
35
+ try {
36
+ const fileStream = await this.getChunkReadStream();
37
+ const hash = crypto.createHash(`md5`);
38
+ await pipeline(fileStream, hash);
39
+ return hash.digest(format);
40
+ }
41
+ catch (error) {
42
+ throw new FsError(`ComputingFileMd5ChecksumException`, { cause: error });
43
+ }
44
+ finally {
45
+ if (!this.isReleased)
46
+ this.release();
47
+ }
48
+ }
49
+ async getChunkReadStream() {
50
+ try {
51
+ if (!this.isReleased)
52
+ this.release();
53
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fileHandle, await fs.open(__classPrivateFieldGet(this, _NodeChunkStreamProvider_fullFilePath, "f"), fsConsts.O_RDONLY), "f");
54
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fileReadStream, __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileHandle, "f").createReadStream({
55
+ start: this.chunkStartPosition,
56
+ end: this.getChunkEndPosition(),
57
+ }), "f");
58
+ return __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileReadStream, "f");
59
+ }
60
+ catch (error) {
61
+ if (!this.isReleased)
62
+ this.release();
63
+ throw new FsError(`CreatingFileReadStreamException`, { cause: error });
64
+ }
65
+ }
66
+ getChunkEndPosition() {
67
+ let chunkEndPosition = this.chunkStartPosition + this.chunkLengthInBytes - 1;
68
+ if (chunkEndPosition < this.chunkStartPosition)
69
+ chunkEndPosition = this.chunkStartPosition;
70
+ return chunkEndPosition;
71
+ }
72
+ async getChunkWriteStream() {
73
+ try {
74
+ if (!this.isReleased)
75
+ this.release();
76
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fileHandle, await fs.open(__classPrivateFieldGet(this, _NodeChunkStreamProvider_fullFilePath, "f"), fsConsts.O_WRONLY), "f");
77
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fileWriteStream, __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileHandle, "f").createWriteStream({
78
+ start: this.chunkStartPosition,
79
+ }), "f");
80
+ return __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileWriteStream, "f");
81
+ }
82
+ catch (error) {
83
+ if (!this.isReleased)
84
+ this.release();
85
+ throw new FsError(`CreatingFileWriteStreamException`, { cause: error });
86
+ }
87
+ }
88
+ release() {
89
+ if (__classPrivateFieldGet(this, _NodeChunkStreamProvider_fileReadStream, "f") && !__classPrivateFieldGet(this, _NodeChunkStreamProvider_fileReadStream, "f").destroyed) {
90
+ __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileReadStream, "f").destroy();
91
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fileReadStream, null, "f");
92
+ }
93
+ if (__classPrivateFieldGet(this, _NodeChunkStreamProvider_fileWriteStream, "f") && !__classPrivateFieldGet(this, _NodeChunkStreamProvider_fileWriteStream, "f").destroyed) {
94
+ __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileWriteStream, "f").destroy();
95
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fileWriteStream, null, "f");
96
+ }
97
+ if (__classPrivateFieldGet(this, _NodeChunkStreamProvider_fileHandle, "f")) {
98
+ __classPrivateFieldGet(this, _NodeChunkStreamProvider_fileHandle, "f").close();
99
+ __classPrivateFieldSet(this, _NodeChunkStreamProvider_fileHandle, null, "f");
100
+ }
101
+ }
102
+ }
103
+ _NodeChunkStreamProvider_fullFilePath = new WeakMap(), _NodeChunkStreamProvider_fileHandle = new WeakMap(), _NodeChunkStreamProvider_fileReadStream = new WeakMap(), _NodeChunkStreamProvider_fileWriteStream = new WeakMap();
104
+ export default NodeChunkStreamProvider;
105
+ //# sourceMappingURL=nodeChunkStreamProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeChunkStreamProvider.js","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeChunkStreamProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type ChunkStreamProvider from "../chunkStreamProvider";
2
+ import type ChunkStreamProviderFactory from "../chunkStreamProviderFactory";
3
+ export default class NodeChunkStreamProviderFactory implements ChunkStreamProviderFactory {
4
+ provide(path: string, start: number, size: number): ChunkStreamProvider;
5
+ }
@@ -0,0 +1,7 @@
1
+ import NodeChunkStreamProvider from "./nodeChunkStreamProvider.js";
2
+ export default class NodeChunkStreamProviderFactory {
3
+ provide(path, start, size) {
4
+ return new NodeChunkStreamProvider(path, start, size);
5
+ }
6
+ }
7
+ //# sourceMappingURL=nodeChunkStreamProviderFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeChunkStreamProviderFactory.js","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeChunkStreamProviderFactory.ts"],"names":[],"mappings":"AAEA,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,8BAA8B;IAC/C,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;QAC7C,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;CACJ"}
@@ -0,0 +1,20 @@
1
+ import type FileDetails from "../fileDetails";
2
+ import type ChunkStreamProvider from '../chunkStreamProvider';
3
+ export default class NodeFileDetails implements FileDetails {
4
+ readonly externalId: string | number;
5
+ readonly fileFullPath: string;
6
+ readonly fileSizeInBytes: number;
7
+ readonly fileName: string;
8
+ readonly fileDestinationPathInTransfer: string;
9
+ readonly maxChunkSizeInBytes: number;
10
+ readonly chunksCount: number;
11
+ private constructor();
12
+ private getTotalChunksCount;
13
+ static create(externalId: string | number, fileFullPath: string, fileDestinationPathInTransfer: string, chunkSizeInBytes: number): Promise<NodeFileDetails>;
14
+ private static getFileSize;
15
+ createChunkStreamProvider(chunkSequenceNumber: number): ChunkStreamProvider;
16
+ getChunkStartPositionAndSizeInBytes(chunkSequenceNumber: number): {
17
+ startPosition: number;
18
+ sizeInBytes: number;
19
+ };
20
+ }
@@ -0,0 +1,50 @@
1
+ import path from 'path';
2
+ import fs from 'fs/promises';
3
+ import { constants as fsConsts } from 'fs';
4
+ import FsError from '../fsError.js';
5
+ import NodeChunkStreamProvider from './nodeChunkStreamProvider.js';
6
+ export default class NodeFileDetails {
7
+ constructor(externalId, fileFullPath, fileDestinationPathInTransfer, fileSize, chunkSizeInBytes) {
8
+ this.externalId = externalId;
9
+ this.fileFullPath = fileFullPath;
10
+ this.fileSizeInBytes = fileSize;
11
+ this.fileName = path.basename(fileFullPath);
12
+ this.fileDestinationPathInTransfer = fileDestinationPathInTransfer;
13
+ this.maxChunkSizeInBytes = chunkSizeInBytes;
14
+ this.chunksCount = this.getTotalChunksCount();
15
+ }
16
+ getTotalChunksCount() {
17
+ if (this.fileSizeInBytes === 0)
18
+ return 1;
19
+ return Math.ceil(this.fileSizeInBytes / this.maxChunkSizeInBytes);
20
+ }
21
+ static async create(externalId, fileFullPath, fileDestinationPathInTransfer, chunkSizeInBytes) {
22
+ const fileSize = await this.getFileSize(fileFullPath);
23
+ return new NodeFileDetails(externalId, fileFullPath, fileDestinationPathInTransfer, fileSize, chunkSizeInBytes);
24
+ }
25
+ static async getFileSize(fullFilePath) {
26
+ let fileHandle = null;
27
+ try {
28
+ fileHandle = await fs.open(fullFilePath, fsConsts.O_RDONLY);
29
+ const fileStats = await fileHandle.stat();
30
+ return fileStats.size;
31
+ }
32
+ catch (error) {
33
+ throw new FsError(`Can't read file: ${fullFilePath}`, { cause: error });
34
+ }
35
+ finally {
36
+ fileHandle?.close();
37
+ }
38
+ }
39
+ createChunkStreamProvider(chunkSequenceNumber) {
40
+ const { startPosition, sizeInBytes } = this.getChunkStartPositionAndSizeInBytes(chunkSequenceNumber);
41
+ return new NodeChunkStreamProvider(this.fileFullPath, startPosition, sizeInBytes);
42
+ }
43
+ getChunkStartPositionAndSizeInBytes(chunkSequenceNumber) {
44
+ const startPosition = chunkSequenceNumber * this.maxChunkSizeInBytes;
45
+ const end = Math.min(startPosition + this.maxChunkSizeInBytes, this.fileSizeInBytes);
46
+ const sizeInBytes = end - startPosition;
47
+ return { startPosition, sizeInBytes };
48
+ }
49
+ }
50
+ //# sourceMappingURL=nodeFileDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeFileDetails.js","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeFileDetails.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE3C,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAKnE,MAAM,CAAC,OAAO,OAAO,eAAe;IAShC,YAAoB,UAA2B,EAAE,YAAoB,EAAE,6BAAqC,EAAE,QAAgB,EAAE,gBAAwB;QACpJ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;QACnE,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAClD,CAAC;IAEO,mBAAmB;QACvB,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC;YAC1B,OAAO,CAAC,CAAC;QAEb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAA2B,EAAE,YAAoB,EAAE,6BAAqC,EAAE,gBAAwB;QAClI,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEtD,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,6BAA6B,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACpH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,YAAoB;QACjD,IAAI,UAAU,GAAyB,IAAI,CAAC;QAE5C,IAAI;YACA,UAAU,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE5D,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YAE1C,OAAO,SAAS,CAAC,IAAI,CAAC;SACzB;QACD,OAAO,KAAK,EAAE;YACV,MAAM,IAAI,OAAO,CAAC,oBAAoB,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC,CAAC;SACpF;gBACO;YACJ,UAAU,EAAE,KAAK,EAAE,CAAC;SACvB;IACL,CAAC;IAED,yBAAyB,CAAC,mBAA2B;QACjD,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,CAAC;QACrG,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,mCAAmC,CAAC,mBAA2B;QAC3D,MAAM,aAAa,GAAG,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,GAAG,GAAG,aAAa,CAAC;QAExC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;IAC1C,CAAC;CACJ"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" />
2
+ import DownloadErrorCode from '../../../downloader/dtos/downloadErrorCode.js';
3
+ import type FileSystemService from "../fileSystemService.js";
4
+ export default class NodeFileSystemService implements FileSystemService {
5
+ #private;
6
+ getAllFilePathsRecursive(folderPath: string): Promise<string[]>;
7
+ writeFile(filePath: string, data: string, encoding?: BufferEncoding, abort?: AbortSignal | undefined): Promise<void>;
8
+ getAllFilePaths(folderPath: string): Promise<Array<string>>;
9
+ readFileAsString(filePath: string, encoding?: BufferEncoding, abort?: AbortSignal | undefined): Promise<string>;
10
+ pathExists(thePath: string): Promise<boolean>;
11
+ createFolder(folderPath: string): Promise<void>;
12
+ createFile(filePath: string, size?: number): Promise<void>;
13
+ deleteFile(filePath: string): Promise<boolean>;
14
+ folderIsEmpty(folderPath: string): Promise<boolean>;
15
+ deleteFolder(folderPath: string): Promise<boolean>;
16
+ getFileSize(filePath: string): Promise<number>;
17
+ truncateFile(filePath: string, size: number): Promise<void>;
18
+ pathJoin(...paths: Array<string>): string;
19
+ fileErrorToDownloadErrorCode(error: Error): DownloadErrorCode | undefined;
20
+ }
@@ -0,0 +1,106 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _a, _NodeFileSystemService_readDirRecursive;
7
+ import fs from 'fs/promises';
8
+ import path from 'path';
9
+ import DownloadErrorCode from '../../../downloader/dtos/downloadErrorCode.js';
10
+ class NodeFileSystemService {
11
+ async getAllFilePathsRecursive(folderPath) {
12
+ const files = new Array();
13
+ await __classPrivateFieldGet(NodeFileSystemService, _a, "m", _NodeFileSystemService_readDirRecursive).call(NodeFileSystemService, folderPath, files);
14
+ return files;
15
+ }
16
+ async writeFile(filePath, data, encoding = `utf8`, abort = undefined) {
17
+ await fs.writeFile(filePath, data, { encoding, flag: `w`, signal: abort });
18
+ }
19
+ async getAllFilePaths(folderPath) {
20
+ return await fs.readdir(folderPath);
21
+ }
22
+ async readFileAsString(filePath, encoding = `utf8`, abort = undefined) {
23
+ return await fs.readFile(filePath, { encoding, flag: `r`, signal: abort });
24
+ }
25
+ async pathExists(thePath) {
26
+ try {
27
+ await fs.access(thePath);
28
+ return true;
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ async createFolder(folderPath) {
35
+ if (await this.pathExists(folderPath) === false)
36
+ await fs.mkdir(folderPath, { recursive: true });
37
+ }
38
+ async createFile(filePath, size) {
39
+ // Check if file folder exists and create if it doesn't
40
+ const folder = path.dirname(filePath);
41
+ if (await this.pathExists(folder) === false)
42
+ await fs.mkdir(folder, { recursive: true });
43
+ // Open the file for writing; 'w' creates the file
44
+ // (if it doesn't exist) or truncates it (if it exists)
45
+ let handle = null;
46
+ try {
47
+ handle = await fs.open(filePath, `w`);
48
+ if ((size ?? 0) > 0) {
49
+ // Write one byte (with code 0) at the desired offset
50
+ // This forces the expanding of the file and fills the gap
51
+ // with characters with code 0
52
+ // https://stackoverflow.com/questions/49433241/creating-an-empty-file-of-a-certain-size
53
+ await handle.write(Buffer.alloc(1), 0, 1, size - 1);
54
+ }
55
+ }
56
+ finally {
57
+ if (handle !== null)
58
+ await handle.close();
59
+ }
60
+ }
61
+ async deleteFile(filePath) {
62
+ try {
63
+ await fs.rm(filePath);
64
+ return true;
65
+ }
66
+ catch (err) {
67
+ return false;
68
+ }
69
+ }
70
+ async folderIsEmpty(folderPath) {
71
+ const contents = await fs.readdir(folderPath);
72
+ return contents.length === 0;
73
+ }
74
+ async deleteFolder(folderPath) {
75
+ return (await fs.rm(folderPath, { recursive: true, force: true })) === undefined;
76
+ }
77
+ async getFileSize(filePath) {
78
+ const stat = await fs.stat(filePath);
79
+ return stat.size;
80
+ }
81
+ async truncateFile(filePath, size) {
82
+ await fs.truncate(filePath, size);
83
+ }
84
+ pathJoin(...paths) {
85
+ return path.join(...paths);
86
+ }
87
+ fileErrorToDownloadErrorCode(error) {
88
+ if (error && error.code === `ENOSPC`)
89
+ return DownloadErrorCode.DiskFull;
90
+ return undefined;
91
+ }
92
+ }
93
+ _a = NodeFileSystemService, _NodeFileSystemService_readDirRecursive = async function _NodeFileSystemService_readDirRecursive(folder, accumulator) {
94
+ const paths = await fs.readdir(folder);
95
+ for (const itemPath of paths) {
96
+ const abs = path.join(folder, itemPath);
97
+ // eslint-disable-next-line no-await-in-loop
98
+ if ((await fs.stat(abs)).isDirectory())
99
+ // eslint-disable-next-line no-await-in-loop
100
+ await __classPrivateFieldGet(this, _a, "m", _NodeFileSystemService_readDirRecursive).call(this, abs, accumulator);
101
+ else
102
+ accumulator.push(abs);
103
+ }
104
+ };
105
+ export default NodeFileSystemService;
106
+ //# sourceMappingURL=nodeFileSystemService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeFileSystemService.js","sourceRoot":"","sources":["../../../../../src/utils/fileSystem/node/nodeFileSystemService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ interface ThrottlingOptions {
2
+ maxBytesPerSecond: number;
3
+ }
4
+ export default ThrottlingOptions;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=throttlingOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttlingOptions.js","sourceRoot":"","sources":["../../../../src/utils/networking/throttlingOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export default class PseudoRandom {
2
+ static generate(length: number): string;
3
+ }
@@ -0,0 +1,7 @@
1
+ const charSet = `abcdefghijklmnopqrstuvwxyz0123456789`;
2
+ export default class PseudoRandom {
3
+ static generate(length) {
4
+ return [...Array(length).keys()].map(() => charSet.charAt(Math.floor(Math.random() * charSet.length))).join(``);
5
+ }
6
+ }
7
+ //# sourceMappingURL=pseudoRandom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pseudoRandom.js","sourceRoot":"","sources":["../../../src/utils/pseudoRandom.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,MAAM,CAAC,QAAQ,CAAC,MAAc;QAC1B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;CACJ"}
@@ -0,0 +1,5 @@
1
+ import type SemaphoreReleaser from "./semaphoreReleaser";
2
+ interface Semaphore {
3
+ acquire(): Promise<SemaphoreReleaser>;
4
+ }
5
+ export default Semaphore;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semaphore.js","sourceRoot":"","sources":["../../../../src/utils/semaphore/semaphore.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ type SemaphoreReleaser = () => void;
2
+ export default SemaphoreReleaser;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=semaphoreReleaser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semaphoreReleaser.js","sourceRoot":"","sources":["../../../../src/utils/semaphore/semaphoreReleaser.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type Semaphore from "./semaphore";
2
+ import type SemaphoreReleaser from "./semaphoreReleaser";
3
+ declare class TransferSemaphore implements Semaphore {
4
+ #private;
5
+ constructor(maxConcurrency: number);
6
+ acquire(): Promise<SemaphoreReleaser>;
7
+ }
8
+ export default TransferSemaphore;
@@ -0,0 +1,28 @@
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 _TransferSemaphore_semaphore;
13
+ import { Semaphore as AsyncMutexSemaphore } from "async-mutex";
14
+ class TransferSemaphore {
15
+ constructor(maxConcurrency) {
16
+ _TransferSemaphore_semaphore.set(this, void 0);
17
+ if (maxConcurrency <= 0)
18
+ throw new Error(`Max concurrency must be a positive value`);
19
+ __classPrivateFieldSet(this, _TransferSemaphore_semaphore, new AsyncMutexSemaphore(maxConcurrency), "f");
20
+ }
21
+ async acquire() {
22
+ const [, releaser] = await __classPrivateFieldGet(this, _TransferSemaphore_semaphore, "f").acquire();
23
+ return releaser;
24
+ }
25
+ }
26
+ _TransferSemaphore_semaphore = new WeakMap();
27
+ export default TransferSemaphore;
28
+ //# sourceMappingURL=transferSemaphore.js.map