@airtop/sdk 0.1.36 → 0.1.37-beta0

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 (327) hide show
  1. package/Client.d.ts +3 -0
  2. package/Client.js +11 -6
  3. package/README.md +9 -10
  4. package/api/resources/automations/client/Client.js +4 -4
  5. package/api/resources/files/client/Client.d.ts +69 -0
  6. package/api/resources/files/client/Client.js +286 -0
  7. package/api/resources/files/client/index.d.ts +1 -0
  8. package/api/resources/files/client/index.js +17 -0
  9. package/api/resources/files/client/requests/CreateFileRestInputV1.d.ts +20 -0
  10. package/api/resources/files/client/requests/CreateFileRestInputV1.js +5 -0
  11. package/api/resources/files/client/requests/FilesListRequest.d.ts +24 -0
  12. package/api/resources/files/client/requests/FilesListRequest.js +5 -0
  13. package/api/resources/files/client/requests/index.d.ts +2 -0
  14. package/api/resources/files/client/requests/index.js +2 -0
  15. package/api/resources/files/index.d.ts +2 -0
  16. package/api/resources/files/index.js +18 -0
  17. package/api/resources/files/types/CreateFileRestInputV1FileType.d.ts +13 -0
  18. package/api/resources/files/types/CreateFileRestInputV1FileType.js +12 -0
  19. package/api/resources/files/types/index.d.ts +1 -0
  20. package/api/resources/files/types/index.js +17 -0
  21. package/api/resources/index.d.ts +3 -0
  22. package/api/resources/index.js +4 -1
  23. package/api/resources/profiles/client/Client.js +1 -1
  24. package/api/resources/requests/client/Client.js +1 -1
  25. package/api/resources/sessions/client/Client.js +6 -6
  26. package/api/resources/sessions/types/SessionsEventsResponse.d.ts +4 -1
  27. package/api/resources/sessions/types/SessionsEventsResponseFileEvent.d.ts +11 -0
  28. package/api/resources/sessions/types/SessionsEventsResponseFileEvent.js +5 -0
  29. package/api/resources/sessions/types/index.d.ts +1 -0
  30. package/api/resources/sessions/types/index.js +1 -0
  31. package/api/resources/windows/client/Client.d.ts +126 -0
  32. package/api/resources/windows/client/Client.js +577 -21
  33. package/api/resources/windows/client/requests/AsyncClickRequest.d.ts +29 -0
  34. package/api/resources/windows/client/requests/AsyncClickRequest.js +5 -0
  35. package/api/resources/windows/client/requests/AsyncHoverRequest.d.ts +27 -0
  36. package/api/resources/windows/client/requests/AsyncHoverRequest.js +5 -0
  37. package/api/resources/windows/client/requests/AsyncMonitorRequest.d.ts +27 -0
  38. package/api/resources/windows/client/requests/AsyncMonitorRequest.js +5 -0
  39. package/api/resources/windows/client/requests/AsyncPageQueryRequest.d.ts +29 -0
  40. package/api/resources/windows/client/requests/AsyncPageQueryRequest.js +5 -0
  41. package/api/resources/windows/client/requests/AsyncPaginatedExtractionRequest.d.ts +27 -0
  42. package/api/resources/windows/client/requests/AsyncPaginatedExtractionRequest.js +5 -0
  43. package/api/resources/windows/client/requests/AsyncPromptContentRequest.d.ts +29 -0
  44. package/api/resources/windows/client/requests/AsyncPromptContentRequest.js +5 -0
  45. package/api/resources/windows/client/requests/AsyncScreenshotRequest.d.ts +23 -0
  46. package/api/resources/windows/client/requests/AsyncScreenshotRequest.js +5 -0
  47. package/api/resources/windows/client/requests/AsyncSummarizeContentRequest.d.ts +25 -0
  48. package/api/resources/windows/client/requests/AsyncSummarizeContentRequest.js +5 -0
  49. package/api/resources/windows/client/requests/AsyncTypeRequest.d.ts +37 -0
  50. package/api/resources/windows/client/requests/AsyncTypeRequest.js +5 -0
  51. package/api/resources/windows/client/requests/OperatorPromptV1Body.d.ts +25 -0
  52. package/api/resources/windows/client/requests/OperatorPromptV1Body.js +5 -0
  53. package/api/resources/windows/client/requests/index.d.ts +10 -0
  54. package/api/types/AsyncOperatorPromptResponseEnvelope.d.ts +9 -0
  55. package/api/types/AsyncOperatorPromptResponseEnvelope.js +5 -0
  56. package/api/types/CreateFileV1.d.ts +24 -0
  57. package/api/types/CreateFileV1.js +5 -0
  58. package/api/types/CreateFileV1FileType.d.ts +13 -0
  59. package/api/types/CreateFileV1FileType.js +12 -0
  60. package/api/types/CreateFileV1Status.d.ts +13 -0
  61. package/api/types/CreateFileV1Status.js +12 -0
  62. package/api/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.d.ts +10 -0
  63. package/api/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.js +5 -0
  64. package/api/types/EnvelopeGetFileV1EnvelopeDefaultMeta.d.ts +10 -0
  65. package/api/types/EnvelopeGetFileV1EnvelopeDefaultMeta.js +5 -0
  66. package/api/types/ExternalFile.d.ts +35 -0
  67. package/api/types/ExternalFile.js +5 -0
  68. package/api/types/FileEventMessage.d.ts +14 -0
  69. package/api/types/FileEventMessage.js +5 -0
  70. package/api/types/FileEventMessageStatus.d.ts +13 -0
  71. package/api/types/FileEventMessageStatus.js +12 -0
  72. package/api/types/FilesResponse.d.ts +10 -0
  73. package/api/types/FilesResponse.js +5 -0
  74. package/api/types/FilesWithPagination.d.ts +10 -0
  75. package/api/types/FilesWithPagination.js +5 -0
  76. package/api/types/GetFileV1.d.ts +26 -0
  77. package/api/types/GetFileV1.js +5 -0
  78. package/api/types/GetFileV1FileType.d.ts +13 -0
  79. package/api/types/GetFileV1FileType.js +12 -0
  80. package/api/types/GetFileV1Status.d.ts +13 -0
  81. package/api/types/GetFileV1Status.js +12 -0
  82. package/api/types/index.d.ts +14 -0
  83. package/api/types/index.js +14 -0
  84. package/dist/Client.d.ts +3 -0
  85. package/dist/Client.js +11 -6
  86. package/dist/api/resources/automations/client/Client.js +4 -4
  87. package/dist/api/resources/files/client/Client.d.ts +69 -0
  88. package/dist/api/resources/files/client/Client.js +286 -0
  89. package/dist/api/resources/files/client/index.d.ts +1 -0
  90. package/dist/api/resources/files/client/index.js +17 -0
  91. package/dist/api/resources/files/client/requests/CreateFileRestInputV1.d.ts +20 -0
  92. package/dist/api/resources/files/client/requests/CreateFileRestInputV1.js +5 -0
  93. package/dist/api/resources/files/client/requests/FilesListRequest.d.ts +24 -0
  94. package/dist/api/resources/files/client/requests/FilesListRequest.js +5 -0
  95. package/dist/api/resources/files/client/requests/index.d.ts +2 -0
  96. package/dist/api/resources/files/client/requests/index.js +2 -0
  97. package/dist/api/resources/files/index.d.ts +2 -0
  98. package/dist/api/resources/files/index.js +18 -0
  99. package/dist/api/resources/files/types/CreateFileRestInputV1FileType.d.ts +13 -0
  100. package/dist/api/resources/files/types/CreateFileRestInputV1FileType.js +12 -0
  101. package/dist/api/resources/files/types/index.d.ts +1 -0
  102. package/dist/api/resources/files/types/index.js +17 -0
  103. package/dist/api/resources/index.d.ts +3 -0
  104. package/dist/api/resources/index.js +4 -1
  105. package/dist/api/resources/profiles/client/Client.js +1 -1
  106. package/dist/api/resources/requests/client/Client.js +1 -1
  107. package/dist/api/resources/sessions/client/Client.js +6 -6
  108. package/dist/api/resources/sessions/types/SessionsEventsResponse.d.ts +4 -1
  109. package/dist/api/resources/sessions/types/SessionsEventsResponseFileEvent.d.ts +11 -0
  110. package/dist/api/resources/sessions/types/SessionsEventsResponseFileEvent.js +5 -0
  111. package/dist/api/resources/sessions/types/index.d.ts +1 -0
  112. package/dist/api/resources/sessions/types/index.js +1 -0
  113. package/dist/api/resources/windows/client/Client.d.ts +126 -0
  114. package/dist/api/resources/windows/client/Client.js +577 -21
  115. package/dist/api/resources/windows/client/requests/AsyncClickRequest.d.ts +29 -0
  116. package/dist/api/resources/windows/client/requests/AsyncClickRequest.js +5 -0
  117. package/dist/api/resources/windows/client/requests/AsyncHoverRequest.d.ts +27 -0
  118. package/dist/api/resources/windows/client/requests/AsyncHoverRequest.js +5 -0
  119. package/dist/api/resources/windows/client/requests/AsyncMonitorRequest.d.ts +27 -0
  120. package/dist/api/resources/windows/client/requests/AsyncMonitorRequest.js +5 -0
  121. package/dist/api/resources/windows/client/requests/AsyncPageQueryRequest.d.ts +29 -0
  122. package/dist/api/resources/windows/client/requests/AsyncPageQueryRequest.js +5 -0
  123. package/dist/api/resources/windows/client/requests/AsyncPaginatedExtractionRequest.d.ts +27 -0
  124. package/dist/api/resources/windows/client/requests/AsyncPaginatedExtractionRequest.js +5 -0
  125. package/dist/api/resources/windows/client/requests/AsyncPromptContentRequest.d.ts +29 -0
  126. package/dist/api/resources/windows/client/requests/AsyncPromptContentRequest.js +5 -0
  127. package/dist/api/resources/windows/client/requests/AsyncScreenshotRequest.d.ts +23 -0
  128. package/dist/api/resources/windows/client/requests/AsyncScreenshotRequest.js +5 -0
  129. package/dist/api/resources/windows/client/requests/AsyncSummarizeContentRequest.d.ts +25 -0
  130. package/dist/api/resources/windows/client/requests/AsyncSummarizeContentRequest.js +5 -0
  131. package/dist/api/resources/windows/client/requests/AsyncTypeRequest.d.ts +37 -0
  132. package/dist/api/resources/windows/client/requests/AsyncTypeRequest.js +5 -0
  133. package/dist/api/resources/windows/client/requests/OperatorPromptV1Body.d.ts +25 -0
  134. package/dist/api/resources/windows/client/requests/OperatorPromptV1Body.js +5 -0
  135. package/dist/api/resources/windows/client/requests/index.d.ts +10 -0
  136. package/dist/api/types/AsyncOperatorPromptResponseEnvelope.d.ts +9 -0
  137. package/dist/api/types/AsyncOperatorPromptResponseEnvelope.js +5 -0
  138. package/dist/api/types/CreateFileV1.d.ts +24 -0
  139. package/dist/api/types/CreateFileV1.js +5 -0
  140. package/dist/api/types/CreateFileV1FileType.d.ts +13 -0
  141. package/dist/api/types/CreateFileV1FileType.js +12 -0
  142. package/dist/api/types/CreateFileV1Status.d.ts +13 -0
  143. package/dist/api/types/CreateFileV1Status.js +12 -0
  144. package/dist/api/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.d.ts +10 -0
  145. package/dist/api/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.js +5 -0
  146. package/dist/api/types/EnvelopeGetFileV1EnvelopeDefaultMeta.d.ts +10 -0
  147. package/dist/api/types/EnvelopeGetFileV1EnvelopeDefaultMeta.js +5 -0
  148. package/dist/api/types/ExternalFile.d.ts +35 -0
  149. package/dist/api/types/ExternalFile.js +5 -0
  150. package/dist/api/types/FileEventMessage.d.ts +14 -0
  151. package/dist/api/types/FileEventMessage.js +5 -0
  152. package/dist/api/types/FileEventMessageStatus.d.ts +13 -0
  153. package/dist/api/types/FileEventMessageStatus.js +12 -0
  154. package/dist/api/types/FilesResponse.d.ts +10 -0
  155. package/dist/api/types/FilesResponse.js +5 -0
  156. package/dist/api/types/FilesWithPagination.d.ts +10 -0
  157. package/dist/api/types/FilesWithPagination.js +5 -0
  158. package/dist/api/types/GetFileV1.d.ts +26 -0
  159. package/dist/api/types/GetFileV1.js +5 -0
  160. package/dist/api/types/GetFileV1FileType.d.ts +13 -0
  161. package/dist/api/types/GetFileV1FileType.js +12 -0
  162. package/dist/api/types/GetFileV1Status.d.ts +13 -0
  163. package/dist/api/types/GetFileV1Status.js +12 -0
  164. package/dist/api/types/index.d.ts +14 -0
  165. package/dist/api/types/index.js +14 -0
  166. package/dist/serialization/resources/files/client/index.d.ts +1 -0
  167. package/dist/serialization/resources/files/client/index.js +17 -0
  168. package/dist/serialization/resources/files/client/requests/CreateFileRestInputV1.d.ts +16 -0
  169. package/dist/serialization/resources/files/client/requests/CreateFileRestInputV1.js +47 -0
  170. package/dist/serialization/resources/files/client/requests/index.d.ts +1 -0
  171. package/dist/serialization/resources/files/client/requests/index.js +5 -0
  172. package/dist/serialization/resources/files/index.d.ts +2 -0
  173. package/dist/serialization/resources/files/index.js +18 -0
  174. package/dist/serialization/resources/files/types/CreateFileRestInputV1FileType.d.ts +10 -0
  175. package/dist/serialization/resources/files/types/CreateFileRestInputV1FileType.js +41 -0
  176. package/dist/serialization/resources/files/types/index.d.ts +1 -0
  177. package/dist/serialization/resources/files/types/index.js +17 -0
  178. package/dist/serialization/resources/index.d.ts +3 -0
  179. package/dist/serialization/resources/index.js +4 -1
  180. package/dist/serialization/resources/sessions/types/SessionsEventsResponse.d.ts +5 -1
  181. package/dist/serialization/resources/sessions/types/SessionsEventsResponse.js +2 -0
  182. package/dist/serialization/resources/sessions/types/SessionsEventsResponseFileEvent.d.ts +15 -0
  183. package/dist/serialization/resources/sessions/types/SessionsEventsResponseFileEvent.js +46 -0
  184. package/dist/serialization/resources/sessions/types/index.d.ts +1 -0
  185. package/dist/serialization/resources/sessions/types/index.js +1 -0
  186. package/dist/serialization/resources/windows/client/requests/AsyncClickRequest.d.ts +20 -0
  187. package/dist/serialization/resources/windows/client/requests/AsyncClickRequest.js +51 -0
  188. package/dist/serialization/resources/windows/client/requests/AsyncHoverRequest.d.ts +19 -0
  189. package/dist/serialization/resources/windows/client/requests/AsyncHoverRequest.js +50 -0
  190. package/dist/serialization/resources/windows/client/requests/AsyncMonitorRequest.d.ts +19 -0
  191. package/dist/serialization/resources/windows/client/requests/AsyncMonitorRequest.js +50 -0
  192. package/dist/serialization/resources/windows/client/requests/AsyncPageQueryRequest.d.ts +20 -0
  193. package/dist/serialization/resources/windows/client/requests/AsyncPageQueryRequest.js +51 -0
  194. package/dist/serialization/resources/windows/client/requests/AsyncPaginatedExtractionRequest.d.ts +19 -0
  195. package/dist/serialization/resources/windows/client/requests/AsyncPaginatedExtractionRequest.js +50 -0
  196. package/dist/serialization/resources/windows/client/requests/AsyncPromptContentRequest.d.ts +20 -0
  197. package/dist/serialization/resources/windows/client/requests/AsyncPromptContentRequest.js +51 -0
  198. package/dist/serialization/resources/windows/client/requests/AsyncScreenshotRequest.d.ts +18 -0
  199. package/dist/serialization/resources/windows/client/requests/AsyncScreenshotRequest.js +49 -0
  200. package/dist/serialization/resources/windows/client/requests/AsyncSummarizeContentRequest.d.ts +19 -0
  201. package/dist/serialization/resources/windows/client/requests/AsyncSummarizeContentRequest.js +50 -0
  202. package/dist/serialization/resources/windows/client/requests/AsyncTypeRequest.d.ts +24 -0
  203. package/dist/serialization/resources/windows/client/requests/AsyncTypeRequest.js +55 -0
  204. package/dist/serialization/resources/windows/client/requests/OperatorPromptV1Body.d.ts +17 -0
  205. package/dist/serialization/resources/windows/client/requests/OperatorPromptV1Body.js +48 -0
  206. package/dist/serialization/resources/windows/client/requests/index.d.ts +10 -0
  207. package/dist/serialization/resources/windows/client/requests/index.js +21 -1
  208. package/dist/serialization/types/AsyncOperatorPromptResponseEnvelope.d.ts +15 -0
  209. package/dist/serialization/types/AsyncOperatorPromptResponseEnvelope.js +46 -0
  210. package/dist/serialization/types/CreateFileV1.d.ts +22 -0
  211. package/dist/serialization/types/CreateFileV1.js +53 -0
  212. package/dist/serialization/types/CreateFileV1FileType.d.ts +10 -0
  213. package/dist/serialization/types/CreateFileV1FileType.js +41 -0
  214. package/dist/serialization/types/CreateFileV1Status.d.ts +10 -0
  215. package/dist/serialization/types/CreateFileV1Status.js +41 -0
  216. package/dist/serialization/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.d.ts +18 -0
  217. package/dist/serialization/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.js +49 -0
  218. package/dist/serialization/types/EnvelopeGetFileV1EnvelopeDefaultMeta.d.ts +18 -0
  219. package/dist/serialization/types/EnvelopeGetFileV1EnvelopeDefaultMeta.js +49 -0
  220. package/dist/serialization/types/ExternalFile.d.ts +26 -0
  221. package/dist/serialization/types/ExternalFile.js +57 -0
  222. package/dist/serialization/types/FileEventMessage.d.ts +16 -0
  223. package/dist/serialization/types/FileEventMessage.js +47 -0
  224. package/dist/serialization/types/FileEventMessageStatus.d.ts +10 -0
  225. package/dist/serialization/types/FileEventMessageStatus.js +41 -0
  226. package/dist/serialization/types/FilesResponse.d.ts +18 -0
  227. package/dist/serialization/types/FilesResponse.js +49 -0
  228. package/dist/serialization/types/FilesWithPagination.d.ts +15 -0
  229. package/dist/serialization/types/FilesWithPagination.js +46 -0
  230. package/dist/serialization/types/GetFileV1.d.ts +23 -0
  231. package/dist/serialization/types/GetFileV1.js +54 -0
  232. package/dist/serialization/types/GetFileV1FileType.d.ts +10 -0
  233. package/dist/serialization/types/GetFileV1FileType.js +41 -0
  234. package/dist/serialization/types/GetFileV1Status.d.ts +10 -0
  235. package/dist/serialization/types/GetFileV1Status.js +41 -0
  236. package/dist/serialization/types/index.d.ts +14 -0
  237. package/dist/serialization/types/index.js +14 -0
  238. package/dist/version.d.ts +1 -1
  239. package/dist/version.js +1 -1
  240. package/dist/wrapper/AirtopClient.d.ts +3 -0
  241. package/dist/wrapper/AirtopClient.js +5 -0
  242. package/dist/wrapper/AirtopFiles.d.ts +50 -0
  243. package/dist/wrapper/AirtopFiles.js +180 -0
  244. package/dist/wrapper/AirtopSessions.d.ts +39 -0
  245. package/dist/wrapper/AirtopSessions.js +219 -17
  246. package/package.json +1 -1
  247. package/reference.md +1122 -166
  248. package/serialization/resources/files/client/index.d.ts +1 -0
  249. package/serialization/resources/files/client/index.js +17 -0
  250. package/serialization/resources/files/client/requests/CreateFileRestInputV1.d.ts +16 -0
  251. package/serialization/resources/files/client/requests/CreateFileRestInputV1.js +47 -0
  252. package/serialization/resources/files/client/requests/index.d.ts +1 -0
  253. package/serialization/resources/files/client/requests/index.js +5 -0
  254. package/serialization/resources/files/index.d.ts +2 -0
  255. package/serialization/resources/files/index.js +18 -0
  256. package/serialization/resources/files/types/CreateFileRestInputV1FileType.d.ts +10 -0
  257. package/serialization/resources/files/types/CreateFileRestInputV1FileType.js +41 -0
  258. package/serialization/resources/files/types/index.d.ts +1 -0
  259. package/serialization/resources/files/types/index.js +17 -0
  260. package/serialization/resources/index.d.ts +3 -0
  261. package/serialization/resources/index.js +4 -1
  262. package/serialization/resources/sessions/types/SessionsEventsResponse.d.ts +5 -1
  263. package/serialization/resources/sessions/types/SessionsEventsResponse.js +2 -0
  264. package/serialization/resources/sessions/types/SessionsEventsResponseFileEvent.d.ts +15 -0
  265. package/serialization/resources/sessions/types/SessionsEventsResponseFileEvent.js +46 -0
  266. package/serialization/resources/sessions/types/index.d.ts +1 -0
  267. package/serialization/resources/sessions/types/index.js +1 -0
  268. package/serialization/resources/windows/client/requests/AsyncClickRequest.d.ts +20 -0
  269. package/serialization/resources/windows/client/requests/AsyncClickRequest.js +51 -0
  270. package/serialization/resources/windows/client/requests/AsyncHoverRequest.d.ts +19 -0
  271. package/serialization/resources/windows/client/requests/AsyncHoverRequest.js +50 -0
  272. package/serialization/resources/windows/client/requests/AsyncMonitorRequest.d.ts +19 -0
  273. package/serialization/resources/windows/client/requests/AsyncMonitorRequest.js +50 -0
  274. package/serialization/resources/windows/client/requests/AsyncPageQueryRequest.d.ts +20 -0
  275. package/serialization/resources/windows/client/requests/AsyncPageQueryRequest.js +51 -0
  276. package/serialization/resources/windows/client/requests/AsyncPaginatedExtractionRequest.d.ts +19 -0
  277. package/serialization/resources/windows/client/requests/AsyncPaginatedExtractionRequest.js +50 -0
  278. package/serialization/resources/windows/client/requests/AsyncPromptContentRequest.d.ts +20 -0
  279. package/serialization/resources/windows/client/requests/AsyncPromptContentRequest.js +51 -0
  280. package/serialization/resources/windows/client/requests/AsyncScreenshotRequest.d.ts +18 -0
  281. package/serialization/resources/windows/client/requests/AsyncScreenshotRequest.js +49 -0
  282. package/serialization/resources/windows/client/requests/AsyncSummarizeContentRequest.d.ts +19 -0
  283. package/serialization/resources/windows/client/requests/AsyncSummarizeContentRequest.js +50 -0
  284. package/serialization/resources/windows/client/requests/AsyncTypeRequest.d.ts +24 -0
  285. package/serialization/resources/windows/client/requests/AsyncTypeRequest.js +55 -0
  286. package/serialization/resources/windows/client/requests/OperatorPromptV1Body.d.ts +17 -0
  287. package/serialization/resources/windows/client/requests/OperatorPromptV1Body.js +48 -0
  288. package/serialization/resources/windows/client/requests/index.d.ts +10 -0
  289. package/serialization/resources/windows/client/requests/index.js +21 -1
  290. package/serialization/types/AsyncOperatorPromptResponseEnvelope.d.ts +15 -0
  291. package/serialization/types/AsyncOperatorPromptResponseEnvelope.js +46 -0
  292. package/serialization/types/CreateFileV1.d.ts +22 -0
  293. package/serialization/types/CreateFileV1.js +53 -0
  294. package/serialization/types/CreateFileV1FileType.d.ts +10 -0
  295. package/serialization/types/CreateFileV1FileType.js +41 -0
  296. package/serialization/types/CreateFileV1Status.d.ts +10 -0
  297. package/serialization/types/CreateFileV1Status.js +41 -0
  298. package/serialization/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.d.ts +18 -0
  299. package/serialization/types/EnvelopeCreateFileV1EnvelopeDefaultMeta.js +49 -0
  300. package/serialization/types/EnvelopeGetFileV1EnvelopeDefaultMeta.d.ts +18 -0
  301. package/serialization/types/EnvelopeGetFileV1EnvelopeDefaultMeta.js +49 -0
  302. package/serialization/types/ExternalFile.d.ts +26 -0
  303. package/serialization/types/ExternalFile.js +57 -0
  304. package/serialization/types/FileEventMessage.d.ts +16 -0
  305. package/serialization/types/FileEventMessage.js +47 -0
  306. package/serialization/types/FileEventMessageStatus.d.ts +10 -0
  307. package/serialization/types/FileEventMessageStatus.js +41 -0
  308. package/serialization/types/FilesResponse.d.ts +18 -0
  309. package/serialization/types/FilesResponse.js +49 -0
  310. package/serialization/types/FilesWithPagination.d.ts +15 -0
  311. package/serialization/types/FilesWithPagination.js +46 -0
  312. package/serialization/types/GetFileV1.d.ts +23 -0
  313. package/serialization/types/GetFileV1.js +54 -0
  314. package/serialization/types/GetFileV1FileType.d.ts +10 -0
  315. package/serialization/types/GetFileV1FileType.js +41 -0
  316. package/serialization/types/GetFileV1Status.d.ts +10 -0
  317. package/serialization/types/GetFileV1Status.js +41 -0
  318. package/serialization/types/index.d.ts +14 -0
  319. package/serialization/types/index.js +14 -0
  320. package/version.d.ts +1 -1
  321. package/version.js +1 -1
  322. package/wrapper/AirtopClient.d.ts +3 -0
  323. package/wrapper/AirtopClient.js +5 -0
  324. package/wrapper/AirtopFiles.d.ts +50 -0
  325. package/wrapper/AirtopFiles.js +180 -0
  326. package/wrapper/AirtopSessions.d.ts +39 -0
  327. package/wrapper/AirtopSessions.js +219 -17
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.AirtopFiles = void 0;
49
+ const Client_1 = require("../api/resources/files/client/Client");
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ const node_fetch_1 = __importDefault(require("node-fetch"));
53
+ const readable_stream_1 = require("readable-stream");
54
+ class AirtopFiles extends Client_1.Files {
55
+ constructor(_options) {
56
+ super(_options);
57
+ this._options = _options;
58
+ }
59
+ /**
60
+ * Uploads a file to Airtop by first creating a file entry and then uploading the contents
61
+ * If @options is not provided, the fileName will be calculated from the filePath.
62
+ * @options.fileType defaults to `customer_upload`
63
+ *
64
+ * @param filePath - Path to the local file to upload
65
+ * @param options - Optional API request configuration
66
+ * @returns The created file entry response
67
+ *
68
+ * @example
69
+ * const result = await client.files.upload("/path/to/file.pdf")
70
+ */
71
+ upload(filePath, options) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ var _a, _b;
74
+ const fileName = (_a = options === null || options === void 0 ? void 0 : options.fileName) !== null && _a !== void 0 ? _a : path.basename(filePath);
75
+ const fileType = (_b = options === null || options === void 0 ? void 0 : options.fileType) !== null && _b !== void 0 ? _b : 'customer_upload';
76
+ const fileEntry = yield this.create(Object.assign(Object.assign({}, options), { fileName,
77
+ fileType }));
78
+ const fileContent = fs.readFileSync(filePath);
79
+ const uploadResponse = yield (0, node_fetch_1.default)(fileEntry.data.uploadUrl, {
80
+ method: 'PUT',
81
+ body: fileContent,
82
+ headers: {
83
+ 'Content-Type': 'application/octet-stream',
84
+ },
85
+ });
86
+ if (!uploadResponse.ok) {
87
+ throw new Error(`Failed to upload file content: ${uploadResponse.statusText}`);
88
+ }
89
+ const updatedFileEntry = yield this.get(fileEntry.data.id);
90
+ return updatedFileEntry;
91
+ });
92
+ }
93
+ /**
94
+ * Downloads a file from Airtop to a local path
95
+ *
96
+ * @param fileId - The ID of the file to download
97
+ * @param destinationPath - Local path where the file should be saved
98
+ * @param options - Optional API request configuration
99
+ * @param onProgress - Optional callback to monitor download progress
100
+ *
101
+ * @example
102
+ * await client.files.download(
103
+ * "123e4567-e89b-12d3-a456-426614174000",
104
+ * "/path/to/save/file.pdf",
105
+ * (downloaded, total) => {
106
+ * const percent = Math.round((downloaded / total) * 100);
107
+ * console.log(`Downloaded: ${downloaded} / ${total} bytes (${percent}%)`);
108
+ * }
109
+ * )
110
+ */
111
+ download(fileId, destinationPath, onProgress, options) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ var _a;
114
+ // Get the file entry to get the download URL
115
+ const fileEntry = yield this.get(fileId, options);
116
+ //*****
117
+ //TODO: get file status, and return error if upload not complete
118
+ //*****
119
+ // Download the file content
120
+ const downloadResponse = yield (0, node_fetch_1.default)(fileEntry.data.downloadUrl);
121
+ if (!downloadResponse.ok) {
122
+ throw new Error(`Failed to download file: ${downloadResponse.statusText}`);
123
+ }
124
+ const totalBytes = Number.parseInt((_a = downloadResponse.headers.get('content-length')) !== null && _a !== void 0 ? _a : '0', 10);
125
+ let downloadedBytes = 0;
126
+ fs.mkdirSync(path.dirname(destinationPath), { recursive: true });
127
+ const fileStream = fs.createWriteStream(destinationPath);
128
+ yield new Promise((resolve, reject) => {
129
+ var _a, _b;
130
+ if (onProgress && downloadResponse.body) {
131
+ // Create a transform stream to track progress
132
+ const progressStream = new readable_stream_1.Transform({
133
+ transform(chunk, encoding, callback) {
134
+ downloadedBytes += chunk.length;
135
+ onProgress(downloadedBytes, totalBytes);
136
+ callback(null, chunk);
137
+ },
138
+ });
139
+ downloadResponse.body.pipe(progressStream).pipe(fileStream);
140
+ progressStream.on('error', reject);
141
+ }
142
+ else {
143
+ // If no progress callback, pipe directly
144
+ (_a = downloadResponse.body) === null || _a === void 0 ? void 0 : _a.pipe(fileStream);
145
+ }
146
+ (_b = downloadResponse.body) === null || _b === void 0 ? void 0 : _b.on('error', reject);
147
+ fileStream.on('finish', resolve);
148
+ });
149
+ });
150
+ }
151
+ /**
152
+ * Waits for a file to become available for download
153
+ *
154
+ * @param fileId - The ID of the file to wait for
155
+ * @param options - Optional request configuration including timeout
156
+ * @returns The file entry once it becomes available
157
+ * @throws Error if the file doesn't become available within the timeout period
158
+ *
159
+ * @example
160
+ * const fileEntry = await client.files.waitForDownloadAvailable("123e4567-e89b-12d3-a456-426614174000")
161
+ */
162
+ waitForDownloadAvailable(fileId, options) {
163
+ return __awaiter(this, void 0, void 0, function* () {
164
+ const timeoutSeconds = (options === null || options === void 0 ? void 0 : options.timeoutInSeconds) || 120;
165
+ const intervalMs = 5000; // 5 seconds
166
+ const startTime = Date.now();
167
+ while (Date.now() - startTime < timeoutSeconds * 1000) {
168
+ const fileEntry = yield this.get(fileId, options);
169
+ // Check if the file has a valid download URL and size, which indicates it's available
170
+ if (fileEntry.data.downloadUrl && fileEntry.data.fileBytes > 0) {
171
+ return fileEntry;
172
+ }
173
+ // Wait before checking again
174
+ yield new Promise((resolve) => setTimeout(resolve, intervalMs));
175
+ }
176
+ throw new Error(`Timeout waiting for file ${fileId} to become available`);
177
+ });
178
+ }
179
+ }
180
+ exports.AirtopFiles = AirtopFiles;
@@ -20,5 +20,44 @@ export declare class AirtopSessions extends SessionsClass {
20
20
  * await client.sessions.create()
21
21
  */
22
22
  create(request?: AirtopSessionRestInputV1, requestOptions?: SessionsNamespace.RequestOptions): Promise<Airtop.SessionResponse>;
23
+ /**
24
+ * Waits for a session to enter the 'running' status
25
+ *
26
+ * @param id - The ID of the session to wait for
27
+ * @param requestOptions - Optional request configuration including timeout
28
+ * @returns The session event indicating the session is ready, or null if timed out
29
+ */
23
30
  waitForSessionReady(id: string, requestOptions?: SessionsNamespace.RequestOptions): Promise<Airtop.SessionsEventsResponse | null>;
31
+ /**
32
+ * Waits for a file to be downloaded in a session and reach 'available' status
33
+ *
34
+ * @param sessionId - The ID of the session to monitor
35
+ * @param requestOptions - Optional request configuration including timeout
36
+ * @returns Object containing file's id and downloadUrl, or null if timed out
37
+ */
38
+ waitForDownload(sessionId: string, requestOptions?: SessionsNamespace.RequestOptions): Promise<{
39
+ id: string;
40
+ downloadUrl: string;
41
+ } | null>;
42
+ /**
43
+ * Waits for a file download to start in a session
44
+ *
45
+ * @param sessionId - The ID of the session to monitor
46
+ * @param requestOptions - Optional request configuration including timeout
47
+ * @returns Object containing file's id and downloadUrl, or null if timed out
48
+ */
49
+ waitForDownloadStart(sessionId: string, requestOptions?: SessionsNamespace.RequestOptions): Promise<{
50
+ id: string;
51
+ downloadUrl: string;
52
+ } | null>;
53
+ /**
54
+ * Downloads the next file from a session as soon as it starts to become available
55
+ *
56
+ * @param sessionId - The ID of the session to download from
57
+ * @param destinationPath - The local path where the file should be saved
58
+ * @param onProgress - Optional callback to track download progress
59
+ * @param requestOptions - Optional request configuration including timeout
60
+ * @throws Error if no file is available to download within the timeout period
61
+ */
62
+ downloadNextFile(sessionId: string, destinationPath: string, onProgress?: (downloadedBytes: number, totalBytes: number) => void, requestOptions?: SessionsNamespace.RequestOptions): Promise<void>;
24
63
  }
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
37
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -15,9 +48,16 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
15
48
  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
49
  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
50
  };
51
+ var __importDefault = (this && this.__importDefault) || function (mod) {
52
+ return (mod && mod.__esModule) ? mod : { "default": mod };
53
+ };
18
54
  Object.defineProperty(exports, "__esModule", { value: true });
19
55
  exports.AirtopSessions = void 0;
56
+ const readable_stream_1 = require("readable-stream");
57
+ const fs = __importStar(require("fs"));
58
+ const path = __importStar(require("path"));
20
59
  const Client_1 = require("../api/resources/sessions/client/Client");
60
+ const node_fetch_1 = __importDefault(require("node-fetch"));
21
61
  class AirtopSessions extends Client_1.Sessions {
22
62
  constructor(_options, debug = false) {
23
63
  super(_options);
@@ -66,30 +106,192 @@ class AirtopSessions extends Client_1.Sessions {
66
106
  }
67
107
  });
68
108
  }
109
+ /**
110
+ * Waits for a session to enter the 'running' status
111
+ *
112
+ * @param id - The ID of the session to wait for
113
+ * @param requestOptions - Optional request configuration including timeout
114
+ * @returns The session event indicating the session is ready, or null if timed out
115
+ */
69
116
  waitForSessionReady(id, requestOptions) {
70
117
  return __awaiter(this, void 0, void 0, function* () {
71
- var _a, e_1, _b, _c;
72
- const sessionEvents = yield this.events(id, {}, Object.assign({ timeoutInSeconds: 60 }, (requestOptions || {})));
73
- try {
74
- for (var _d = true, sessionEvents_1 = __asyncValues(sessionEvents), sessionEvents_1_1; sessionEvents_1_1 = yield sessionEvents_1.next(), _a = sessionEvents_1_1.done, !_a; _d = true) {
75
- _c = sessionEvents_1_1.value;
76
- _d = false;
77
- const event = _c;
78
- this.log(`status message received:\n${JSON.stringify(event, null, 2)}`);
79
- const e = event;
80
- if (e.event === 'status' && e.status === 'running') {
81
- return event;
118
+ const timeoutSeconds = (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) || 300;
119
+ // Create a promise that resolves to null after the timeout
120
+ const timeoutPromise = new Promise((resolve) => {
121
+ setTimeout(() => resolve(null), timeoutSeconds * 1000);
122
+ });
123
+ // Create a promise for the event processing
124
+ const processEventsPromise = (() => __awaiter(this, void 0, void 0, function* () {
125
+ var _a, e_1, _b, _c;
126
+ const sessionEvents = yield this.events(id, {}, Object.assign({ timeoutInSeconds: timeoutSeconds }, (requestOptions || {})));
127
+ try {
128
+ for (var _d = true, sessionEvents_1 = __asyncValues(sessionEvents), sessionEvents_1_1; sessionEvents_1_1 = yield sessionEvents_1.next(), _a = sessionEvents_1_1.done, !_a; _d = true) {
129
+ _c = sessionEvents_1_1.value;
130
+ _d = false;
131
+ const event = _c;
132
+ const e = event;
133
+ if (e.event === 'status') {
134
+ this.log(`status message received:\n${JSON.stringify(event, null, 2)}`);
135
+ if (e.status === 'running') {
136
+ return event;
137
+ }
138
+ }
82
139
  }
83
140
  }
84
- }
85
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
86
- finally {
141
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
142
+ finally {
143
+ try {
144
+ if (!_d && !_a && (_b = sessionEvents_1.return)) yield _b.call(sessionEvents_1);
145
+ }
146
+ finally { if (e_1) throw e_1.error; }
147
+ }
148
+ return null;
149
+ }))();
150
+ // Race the timeout against the event processing
151
+ return Promise.race([timeoutPromise, processEventsPromise]);
152
+ });
153
+ }
154
+ /**
155
+ * Waits for a file to be downloaded in a session and reach 'available' status
156
+ *
157
+ * @param sessionId - The ID of the session to monitor
158
+ * @param requestOptions - Optional request configuration including timeout
159
+ * @returns Object containing file's id and downloadUrl, or null if timed out
160
+ */
161
+ waitForDownload(sessionId, requestOptions) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ const timeoutSeconds = (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) || 120;
164
+ // Create a promise that resolves to null after the timeout
165
+ const timeoutPromise = new Promise((resolve) => {
166
+ setTimeout(() => resolve(null), timeoutSeconds * 1000);
167
+ });
168
+ // Create a promise for the event processing
169
+ const processEventsPromise = (() => __awaiter(this, void 0, void 0, function* () {
170
+ var _a, e_2, _b, _c;
171
+ const sessionEvents = yield this.events(sessionId, {}, Object.assign({ timeoutInSeconds: timeoutSeconds }, (requestOptions || {})));
172
+ try {
173
+ for (var _d = true, sessionEvents_2 = __asyncValues(sessionEvents), sessionEvents_2_1; sessionEvents_2_1 = yield sessionEvents_2.next(), _a = sessionEvents_2_1.done, !_a; _d = true) {
174
+ _c = sessionEvents_2_1.value;
175
+ _d = false;
176
+ const event = _c;
177
+ const e = event;
178
+ if (e.event === 'file_status') {
179
+ this.log(`file_status message received:\n${JSON.stringify(event, null, 2)}`);
180
+ if (e.status === 'available') {
181
+ return {
182
+ id: e.fileId,
183
+ downloadUrl: e.downloadUrl,
184
+ };
185
+ }
186
+ }
187
+ }
188
+ }
189
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
190
+ finally {
191
+ try {
192
+ if (!_d && !_a && (_b = sessionEvents_2.return)) yield _b.call(sessionEvents_2);
193
+ }
194
+ finally { if (e_2) throw e_2.error; }
195
+ }
196
+ return null;
197
+ }))();
198
+ // Race the timeout against the event processing
199
+ return Promise.race([timeoutPromise, processEventsPromise]);
200
+ });
201
+ }
202
+ /**
203
+ * Waits for a file download to start in a session
204
+ *
205
+ * @param sessionId - The ID of the session to monitor
206
+ * @param requestOptions - Optional request configuration including timeout
207
+ * @returns Object containing file's id and downloadUrl, or null if timed out
208
+ */
209
+ waitForDownloadStart(sessionId, requestOptions) {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ const timeoutSeconds = (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) || 60;
212
+ // Create a promise that resolves to null after the timeout
213
+ const timeoutPromise = new Promise((resolve) => {
214
+ setTimeout(() => resolve(null), timeoutSeconds * 1000);
215
+ });
216
+ // Create a promise for the event processing
217
+ const processEventsPromise = (() => __awaiter(this, void 0, void 0, function* () {
218
+ var _a, e_3, _b, _c;
219
+ const sessionEvents = yield this.events(sessionId, {}, Object.assign({ timeoutInSeconds: timeoutSeconds }, (requestOptions || {})));
87
220
  try {
88
- if (!_d && !_a && (_b = sessionEvents_1.return)) yield _b.call(sessionEvents_1);
221
+ for (var _d = true, sessionEvents_3 = __asyncValues(sessionEvents), sessionEvents_3_1; sessionEvents_3_1 = yield sessionEvents_3.next(), _a = sessionEvents_3_1.done, !_a; _d = true) {
222
+ _c = sessionEvents_3_1.value;
223
+ _d = false;
224
+ const event = _c;
225
+ const e = event;
226
+ if (e.event === 'file_status') {
227
+ this.log(`file_status message received:\n${JSON.stringify(event, null, 2)}`);
228
+ if (e.status === 'uploading') {
229
+ return {
230
+ id: e.fileId,
231
+ downloadUrl: e.downloadUrl,
232
+ };
233
+ }
234
+ }
235
+ }
236
+ }
237
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
238
+ finally {
239
+ try {
240
+ if (!_d && !_a && (_b = sessionEvents_3.return)) yield _b.call(sessionEvents_3);
241
+ }
242
+ finally { if (e_3) throw e_3.error; }
89
243
  }
90
- finally { if (e_1) throw e_1.error; }
244
+ return null;
245
+ }))();
246
+ // Race the timeout against the event processing
247
+ return Promise.race([timeoutPromise, processEventsPromise]);
248
+ });
249
+ }
250
+ /**
251
+ * Downloads the next file from a session as soon as it starts to become available
252
+ *
253
+ * @param sessionId - The ID of the session to download from
254
+ * @param destinationPath - The local path where the file should be saved
255
+ * @param onProgress - Optional callback to track download progress
256
+ * @param requestOptions - Optional request configuration including timeout
257
+ * @throws Error if no file is available to download within the timeout period
258
+ */
259
+ downloadNextFile(sessionId, destinationPath, onProgress, requestOptions) {
260
+ return __awaiter(this, void 0, void 0, function* () {
261
+ var _a;
262
+ const nextFile = yield this.waitForDownload(sessionId, requestOptions);
263
+ if (!nextFile) {
264
+ throw new Error('No file to download within timeout');
265
+ }
266
+ const downloadResponse = yield (0, node_fetch_1.default)(nextFile.downloadUrl);
267
+ if (!downloadResponse.ok) {
268
+ throw new Error(`Failed to download file: ${downloadResponse.statusText}`);
91
269
  }
92
- return null;
270
+ const totalBytes = Number.parseInt((_a = downloadResponse.headers.get('content-length')) !== null && _a !== void 0 ? _a : '0', 10);
271
+ let downloadedBytes = 0;
272
+ fs.mkdirSync(path.dirname(destinationPath), { recursive: true });
273
+ const fileStream = fs.createWriteStream(destinationPath);
274
+ yield new Promise((resolve, reject) => {
275
+ var _a, _b;
276
+ if (onProgress && downloadResponse.body) {
277
+ // Create a transform stream to track progress
278
+ const progressStream = new readable_stream_1.Transform({
279
+ transform(chunk, encoding, callback) {
280
+ downloadedBytes += chunk.length;
281
+ onProgress(downloadedBytes, totalBytes);
282
+ callback(null, chunk);
283
+ },
284
+ });
285
+ downloadResponse.body.pipe(progressStream).pipe(fileStream);
286
+ progressStream.on('error', reject);
287
+ }
288
+ else {
289
+ // If no progress callback, pipe directly
290
+ (_a = downloadResponse.body) === null || _a === void 0 ? void 0 : _a.pipe(fileStream);
291
+ }
292
+ (_b = downloadResponse.body) === null || _b === void 0 ? void 0 : _b.on('error', reject);
293
+ fileStream.on('finish', resolve);
294
+ });
93
295
  });
94
296
  }
95
297
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airtop/sdk",
3
- "version": "0.1.36",
3
+ "version": "0.1.37-beta0",
4
4
  "private": false,
5
5
  "repository": "https://github.com/airtop-ai/airtop-node-sdk",
6
6
  "main": "./index.js",