@transloadit/node 4.1.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 (593) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +701 -0
  3. package/dist/ApiError.d.ts +22 -0
  4. package/dist/ApiError.d.ts.map +1 -0
  5. package/dist/ApiError.js +33 -0
  6. package/dist/ApiError.js.map +1 -0
  7. package/dist/InconsistentResponseError.d.ts +4 -0
  8. package/dist/InconsistentResponseError.d.ts.map +1 -0
  9. package/dist/InconsistentResponseError.js +4 -0
  10. package/dist/InconsistentResponseError.js.map +1 -0
  11. package/dist/PaginationStream.d.ts +14 -0
  12. package/dist/PaginationStream.d.ts.map +1 -0
  13. package/dist/PaginationStream.js +36 -0
  14. package/dist/PaginationStream.js.map +1 -0
  15. package/dist/PollingTimeoutError.d.ts +5 -0
  16. package/dist/PollingTimeoutError.d.ts.map +1 -0
  17. package/dist/PollingTimeoutError.js +5 -0
  18. package/dist/PollingTimeoutError.js.map +1 -0
  19. package/dist/Transloadit.d.ts +250 -0
  20. package/dist/Transloadit.d.ts.map +1 -0
  21. package/dist/Transloadit.js +661 -0
  22. package/dist/Transloadit.js.map +1 -0
  23. package/dist/alphalib/lib/nativeGlobby.d.ts +14 -0
  24. package/dist/alphalib/lib/nativeGlobby.d.ts.map +1 -0
  25. package/dist/alphalib/lib/nativeGlobby.js +181 -0
  26. package/dist/alphalib/lib/nativeGlobby.js.map +1 -0
  27. package/dist/alphalib/mcache.d.ts +65 -0
  28. package/dist/alphalib/mcache.d.ts.map +1 -0
  29. package/dist/alphalib/mcache.js +135 -0
  30. package/dist/alphalib/mcache.js.map +1 -0
  31. package/dist/alphalib/tryCatch.d.ts +21 -0
  32. package/dist/alphalib/tryCatch.d.ts.map +1 -0
  33. package/dist/alphalib/tryCatch.js +17 -0
  34. package/dist/alphalib/tryCatch.js.map +1 -0
  35. package/dist/alphalib/types/assembliesGet.d.ts +62 -0
  36. package/dist/alphalib/types/assembliesGet.d.ts.map +1 -0
  37. package/dist/alphalib/types/assembliesGet.js +33 -0
  38. package/dist/alphalib/types/assembliesGet.js.map +1 -0
  39. package/dist/alphalib/types/assemblyReplay.d.ts +7858 -0
  40. package/dist/alphalib/types/assemblyReplay.d.ts.map +1 -0
  41. package/dist/alphalib/types/assemblyReplay.js +15 -0
  42. package/dist/alphalib/types/assemblyReplay.js.map +1 -0
  43. package/dist/alphalib/types/assemblyReplayNotification.d.ts +7849 -0
  44. package/dist/alphalib/types/assemblyReplayNotification.d.ts.map +1 -0
  45. package/dist/alphalib/types/assemblyReplayNotification.js +13 -0
  46. package/dist/alphalib/types/assemblyReplayNotification.js.map +1 -0
  47. package/dist/alphalib/types/assemblyStatus.d.ts +71084 -0
  48. package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -0
  49. package/dist/alphalib/types/assemblyStatus.js +710 -0
  50. package/dist/alphalib/types/assemblyStatus.js.map +1 -0
  51. package/dist/alphalib/types/bill.d.ts +44 -0
  52. package/dist/alphalib/types/bill.d.ts.map +1 -0
  53. package/dist/alphalib/types/bill.js +8 -0
  54. package/dist/alphalib/types/bill.js.map +1 -0
  55. package/dist/alphalib/types/robots/_index.d.ts +76306 -0
  56. package/dist/alphalib/types/robots/_index.d.ts.map +1 -0
  57. package/dist/alphalib/types/robots/_index.js +354 -0
  58. package/dist/alphalib/types/robots/_index.js.map +1 -0
  59. package/dist/alphalib/types/robots/_instructions-primitives.d.ts +3533 -0
  60. package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -0
  61. package/dist/alphalib/types/robots/_instructions-primitives.js +1491 -0
  62. package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -0
  63. package/dist/alphalib/types/robots/ai-chat.d.ts +2096 -0
  64. package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -0
  65. package/dist/alphalib/types/robots/ai-chat.js +223 -0
  66. package/dist/alphalib/types/robots/ai-chat.js.map +1 -0
  67. package/dist/alphalib/types/robots/assembly-savejson.d.ts +52 -0
  68. package/dist/alphalib/types/robots/assembly-savejson.d.ts.map +1 -0
  69. package/dist/alphalib/types/robots/assembly-savejson.js +22 -0
  70. package/dist/alphalib/types/robots/assembly-savejson.js.map +1 -0
  71. package/dist/alphalib/types/robots/audio-artwork.d.ts +2867 -0
  72. package/dist/alphalib/types/robots/audio-artwork.d.ts.map +1 -0
  73. package/dist/alphalib/types/robots/audio-artwork.js +73 -0
  74. package/dist/alphalib/types/robots/audio-artwork.js.map +1 -0
  75. package/dist/alphalib/types/robots/audio-concat.d.ts +2916 -0
  76. package/dist/alphalib/types/robots/audio-concat.d.ts.map +1 -0
  77. package/dist/alphalib/types/robots/audio-concat.js +106 -0
  78. package/dist/alphalib/types/robots/audio-concat.js.map +1 -0
  79. package/dist/alphalib/types/robots/audio-encode.d.ts +2864 -0
  80. package/dist/alphalib/types/robots/audio-encode.d.ts.map +1 -0
  81. package/dist/alphalib/types/robots/audio-encode.js +67 -0
  82. package/dist/alphalib/types/robots/audio-encode.js.map +1 -0
  83. package/dist/alphalib/types/robots/audio-loop.d.ts +2879 -0
  84. package/dist/alphalib/types/robots/audio-loop.d.ts.map +1 -0
  85. package/dist/alphalib/types/robots/audio-loop.js +67 -0
  86. package/dist/alphalib/types/robots/audio-loop.js.map +1 -0
  87. package/dist/alphalib/types/robots/audio-merge.d.ts +2931 -0
  88. package/dist/alphalib/types/robots/audio-merge.d.ts.map +1 -0
  89. package/dist/alphalib/types/robots/audio-merge.js +101 -0
  90. package/dist/alphalib/types/robots/audio-merge.js.map +1 -0
  91. package/dist/alphalib/types/robots/audio-waveform.d.ts +3131 -0
  92. package/dist/alphalib/types/robots/audio-waveform.d.ts.map +1 -0
  93. package/dist/alphalib/types/robots/audio-waveform.js +238 -0
  94. package/dist/alphalib/types/robots/audio-waveform.js.map +1 -0
  95. package/dist/alphalib/types/robots/azure-import.d.ts +210 -0
  96. package/dist/alphalib/types/robots/azure-import.d.ts.map +1 -0
  97. package/dist/alphalib/types/robots/azure-import.js +73 -0
  98. package/dist/alphalib/types/robots/azure-import.js.map +1 -0
  99. package/dist/alphalib/types/robots/azure-store.d.ts +562 -0
  100. package/dist/alphalib/types/robots/azure-store.d.ts.map +1 -0
  101. package/dist/alphalib/types/robots/azure-store.js +115 -0
  102. package/dist/alphalib/types/robots/azure-store.js.map +1 -0
  103. package/dist/alphalib/types/robots/backblaze-import.d.ts +210 -0
  104. package/dist/alphalib/types/robots/backblaze-import.d.ts.map +1 -0
  105. package/dist/alphalib/types/robots/backblaze-import.js +81 -0
  106. package/dist/alphalib/types/robots/backblaze-import.js.map +1 -0
  107. package/dist/alphalib/types/robots/backblaze-store.d.ts +478 -0
  108. package/dist/alphalib/types/robots/backblaze-store.d.ts.map +1 -0
  109. package/dist/alphalib/types/robots/backblaze-store.js +76 -0
  110. package/dist/alphalib/types/robots/backblaze-store.js.map +1 -0
  111. package/dist/alphalib/types/robots/cloudfiles-import.d.ts +234 -0
  112. package/dist/alphalib/types/robots/cloudfiles-import.d.ts.map +1 -0
  113. package/dist/alphalib/types/robots/cloudfiles-import.js +80 -0
  114. package/dist/alphalib/types/robots/cloudfiles-import.js.map +1 -0
  115. package/dist/alphalib/types/robots/cloudfiles-store.d.ts +490 -0
  116. package/dist/alphalib/types/robots/cloudfiles-store.d.ts.map +1 -0
  117. package/dist/alphalib/types/robots/cloudfiles-store.js +70 -0
  118. package/dist/alphalib/types/robots/cloudfiles-store.js.map +1 -0
  119. package/dist/alphalib/types/robots/cloudflare-import.d.ts +234 -0
  120. package/dist/alphalib/types/robots/cloudflare-import.d.ts.map +1 -0
  121. package/dist/alphalib/types/robots/cloudflare-import.js +81 -0
  122. package/dist/alphalib/types/robots/cloudflare-import.js.map +1 -0
  123. package/dist/alphalib/types/robots/cloudflare-store.d.ts +514 -0
  124. package/dist/alphalib/types/robots/cloudflare-store.d.ts.map +1 -0
  125. package/dist/alphalib/types/robots/cloudflare-store.js +86 -0
  126. package/dist/alphalib/types/robots/cloudflare-store.js.map +1 -0
  127. package/dist/alphalib/types/robots/digitalocean-import.d.ts +234 -0
  128. package/dist/alphalib/types/robots/digitalocean-import.d.ts.map +1 -0
  129. package/dist/alphalib/types/robots/digitalocean-import.js +78 -0
  130. package/dist/alphalib/types/robots/digitalocean-import.js.map +1 -0
  131. package/dist/alphalib/types/robots/digitalocean-store.d.ts +526 -0
  132. package/dist/alphalib/types/robots/digitalocean-store.d.ts.map +1 -0
  133. package/dist/alphalib/types/robots/digitalocean-store.js +91 -0
  134. package/dist/alphalib/types/robots/digitalocean-store.js.map +1 -0
  135. package/dist/alphalib/types/robots/document-autorotate.d.ts +405 -0
  136. package/dist/alphalib/types/robots/document-autorotate.d.ts.map +1 -0
  137. package/dist/alphalib/types/robots/document-autorotate.js +44 -0
  138. package/dist/alphalib/types/robots/document-autorotate.js.map +1 -0
  139. package/dist/alphalib/types/robots/document-convert.d.ts +513 -0
  140. package/dist/alphalib/types/robots/document-convert.d.ts.map +1 -0
  141. package/dist/alphalib/types/robots/document-convert.js +273 -0
  142. package/dist/alphalib/types/robots/document-convert.js.map +1 -0
  143. package/dist/alphalib/types/robots/document-merge.d.ts +429 -0
  144. package/dist/alphalib/types/robots/document-merge.d.ts.map +1 -0
  145. package/dist/alphalib/types/robots/document-merge.js +86 -0
  146. package/dist/alphalib/types/robots/document-merge.js.map +1 -0
  147. package/dist/alphalib/types/robots/document-ocr.d.ts +441 -0
  148. package/dist/alphalib/types/robots/document-ocr.d.ts.map +1 -0
  149. package/dist/alphalib/types/robots/document-ocr.js +86 -0
  150. package/dist/alphalib/types/robots/document-ocr.js.map +1 -0
  151. package/dist/alphalib/types/robots/document-split.d.ts +417 -0
  152. package/dist/alphalib/types/robots/document-split.d.ts.map +1 -0
  153. package/dist/alphalib/types/robots/document-split.js +48 -0
  154. package/dist/alphalib/types/robots/document-split.js.map +1 -0
  155. package/dist/alphalib/types/robots/document-thumbs.d.ts +592 -0
  156. package/dist/alphalib/types/robots/document-thumbs.d.ts.map +1 -0
  157. package/dist/alphalib/types/robots/document-thumbs.js +196 -0
  158. package/dist/alphalib/types/robots/document-thumbs.js.map +1 -0
  159. package/dist/alphalib/types/robots/dropbox-import.d.ts +144 -0
  160. package/dist/alphalib/types/robots/dropbox-import.d.ts.map +1 -0
  161. package/dist/alphalib/types/robots/dropbox-import.js +65 -0
  162. package/dist/alphalib/types/robots/dropbox-import.js.map +1 -0
  163. package/dist/alphalib/types/robots/dropbox-store.d.ts +449 -0
  164. package/dist/alphalib/types/robots/dropbox-store.d.ts.map +1 -0
  165. package/dist/alphalib/types/robots/dropbox-store.js +68 -0
  166. package/dist/alphalib/types/robots/dropbox-store.js.map +1 -0
  167. package/dist/alphalib/types/robots/edgly-deliver.d.ts +100 -0
  168. package/dist/alphalib/types/robots/edgly-deliver.d.ts.map +1 -0
  169. package/dist/alphalib/types/robots/edgly-deliver.js +46 -0
  170. package/dist/alphalib/types/robots/edgly-deliver.js.map +1 -0
  171. package/dist/alphalib/types/robots/file-compress.d.ts +477 -0
  172. package/dist/alphalib/types/robots/file-compress.d.ts.map +1 -0
  173. package/dist/alphalib/types/robots/file-compress.js +139 -0
  174. package/dist/alphalib/types/robots/file-compress.js.map +1 -0
  175. package/dist/alphalib/types/robots/file-decompress.d.ts +404 -0
  176. package/dist/alphalib/types/robots/file-decompress.d.ts.map +1 -0
  177. package/dist/alphalib/types/robots/file-decompress.js +94 -0
  178. package/dist/alphalib/types/robots/file-decompress.js.map +1 -0
  179. package/dist/alphalib/types/robots/file-filter.d.ts +465 -0
  180. package/dist/alphalib/types/robots/file-filter.d.ts.map +1 -0
  181. package/dist/alphalib/types/robots/file-filter.js +136 -0
  182. package/dist/alphalib/types/robots/file-filter.js.map +1 -0
  183. package/dist/alphalib/types/robots/file-hash.d.ts +417 -0
  184. package/dist/alphalib/types/robots/file-hash.d.ts.map +1 -0
  185. package/dist/alphalib/types/robots/file-hash.js +59 -0
  186. package/dist/alphalib/types/robots/file-hash.js.map +1 -0
  187. package/dist/alphalib/types/robots/file-preview.d.ts +854 -0
  188. package/dist/alphalib/types/robots/file-preview.d.ts.map +1 -0
  189. package/dist/alphalib/types/robots/file-preview.js +221 -0
  190. package/dist/alphalib/types/robots/file-preview.js.map +1 -0
  191. package/dist/alphalib/types/robots/file-read.d.ts +405 -0
  192. package/dist/alphalib/types/robots/file-read.d.ts.map +1 -0
  193. package/dist/alphalib/types/robots/file-read.js +44 -0
  194. package/dist/alphalib/types/robots/file-read.js.map +1 -0
  195. package/dist/alphalib/types/robots/file-serve.d.ts +418 -0
  196. package/dist/alphalib/types/robots/file-serve.d.ts.map +1 -0
  197. package/dist/alphalib/types/robots/file-serve.js +99 -0
  198. package/dist/alphalib/types/robots/file-serve.js.map +1 -0
  199. package/dist/alphalib/types/robots/file-verify.d.ts +441 -0
  200. package/dist/alphalib/types/robots/file-verify.d.ts.map +1 -0
  201. package/dist/alphalib/types/robots/file-verify.js +73 -0
  202. package/dist/alphalib/types/robots/file-verify.js.map +1 -0
  203. package/dist/alphalib/types/robots/file-virusscan.d.ts +435 -0
  204. package/dist/alphalib/types/robots/file-virusscan.d.ts.map +1 -0
  205. package/dist/alphalib/types/robots/file-virusscan.js +82 -0
  206. package/dist/alphalib/types/robots/file-virusscan.js.map +1 -0
  207. package/dist/alphalib/types/robots/file-watermark.d.ts +417 -0
  208. package/dist/alphalib/types/robots/file-watermark.d.ts.map +1 -0
  209. package/dist/alphalib/types/robots/file-watermark.js +28 -0
  210. package/dist/alphalib/types/robots/file-watermark.js.map +1 -0
  211. package/dist/alphalib/types/robots/ftp-import.d.ts +198 -0
  212. package/dist/alphalib/types/robots/ftp-import.d.ts.map +1 -0
  213. package/dist/alphalib/types/robots/ftp-import.js +60 -0
  214. package/dist/alphalib/types/robots/ftp-import.js.map +1 -0
  215. package/dist/alphalib/types/robots/ftp-store.d.ts +532 -0
  216. package/dist/alphalib/types/robots/ftp-store.d.ts.map +1 -0
  217. package/dist/alphalib/types/robots/ftp-store.js +91 -0
  218. package/dist/alphalib/types/robots/ftp-store.js.map +1 -0
  219. package/dist/alphalib/types/robots/google-import.d.ts +174 -0
  220. package/dist/alphalib/types/robots/google-import.d.ts.map +1 -0
  221. package/dist/alphalib/types/robots/google-import.js +77 -0
  222. package/dist/alphalib/types/robots/google-import.js.map +1 -0
  223. package/dist/alphalib/types/robots/google-store.d.ts +476 -0
  224. package/dist/alphalib/types/robots/google-store.d.ts.map +1 -0
  225. package/dist/alphalib/types/robots/google-store.js +111 -0
  226. package/dist/alphalib/types/robots/google-store.js.map +1 -0
  227. package/dist/alphalib/types/robots/html-convert.d.ts +531 -0
  228. package/dist/alphalib/types/robots/html-convert.d.ts.map +1 -0
  229. package/dist/alphalib/types/robots/html-convert.js +137 -0
  230. package/dist/alphalib/types/robots/html-convert.js.map +1 -0
  231. package/dist/alphalib/types/robots/http-import.d.ts +215 -0
  232. package/dist/alphalib/types/robots/http-import.d.ts.map +1 -0
  233. package/dist/alphalib/types/robots/http-import.js +135 -0
  234. package/dist/alphalib/types/robots/http-import.js.map +1 -0
  235. package/dist/alphalib/types/robots/image-bgremove.d.ts +453 -0
  236. package/dist/alphalib/types/robots/image-bgremove.d.ts.map +1 -0
  237. package/dist/alphalib/types/robots/image-bgremove.js +65 -0
  238. package/dist/alphalib/types/robots/image-bgremove.js.map +1 -0
  239. package/dist/alphalib/types/robots/image-describe.d.ts +453 -0
  240. package/dist/alphalib/types/robots/image-describe.d.ts.map +1 -0
  241. package/dist/alphalib/types/robots/image-describe.js +86 -0
  242. package/dist/alphalib/types/robots/image-describe.js.map +1 -0
  243. package/dist/alphalib/types/robots/image-facedetect.d.ts +477 -0
  244. package/dist/alphalib/types/robots/image-facedetect.d.ts.map +1 -0
  245. package/dist/alphalib/types/robots/image-facedetect.js +151 -0
  246. package/dist/alphalib/types/robots/image-facedetect.js.map +1 -0
  247. package/dist/alphalib/types/robots/image-generate.d.ts +522 -0
  248. package/dist/alphalib/types/robots/image-generate.d.ts.map +1 -0
  249. package/dist/alphalib/types/robots/image-generate.js +64 -0
  250. package/dist/alphalib/types/robots/image-generate.js.map +1 -0
  251. package/dist/alphalib/types/robots/image-merge.d.ts +477 -0
  252. package/dist/alphalib/types/robots/image-merge.d.ts.map +1 -0
  253. package/dist/alphalib/types/robots/image-merge.js +92 -0
  254. package/dist/alphalib/types/robots/image-merge.js.map +1 -0
  255. package/dist/alphalib/types/robots/image-ocr.d.ts +441 -0
  256. package/dist/alphalib/types/robots/image-ocr.d.ts.map +1 -0
  257. package/dist/alphalib/types/robots/image-ocr.js +79 -0
  258. package/dist/alphalib/types/robots/image-ocr.js.map +1 -0
  259. package/dist/alphalib/types/robots/image-optimize.d.ts +453 -0
  260. package/dist/alphalib/types/robots/image-optimize.d.ts.map +1 -0
  261. package/dist/alphalib/types/robots/image-optimize.js +81 -0
  262. package/dist/alphalib/types/robots/image-optimize.js.map +1 -0
  263. package/dist/alphalib/types/robots/image-resize.d.ts +1758 -0
  264. package/dist/alphalib/types/robots/image-resize.d.ts.map +1 -0
  265. package/dist/alphalib/types/robots/image-resize.js +602 -0
  266. package/dist/alphalib/types/robots/image-resize.js.map +1 -0
  267. package/dist/alphalib/types/robots/meta-read.d.ts +98 -0
  268. package/dist/alphalib/types/robots/meta-read.d.ts.map +1 -0
  269. package/dist/alphalib/types/robots/meta-read.js +24 -0
  270. package/dist/alphalib/types/robots/meta-read.js.map +1 -0
  271. package/dist/alphalib/types/robots/meta-write.d.ts +2842 -0
  272. package/dist/alphalib/types/robots/meta-write.d.ts.map +1 -0
  273. package/dist/alphalib/types/robots/meta-write.js +66 -0
  274. package/dist/alphalib/types/robots/meta-write.js.map +1 -0
  275. package/dist/alphalib/types/robots/minio-import.d.ts +234 -0
  276. package/dist/alphalib/types/robots/minio-import.d.ts.map +1 -0
  277. package/dist/alphalib/types/robots/minio-import.js +81 -0
  278. package/dist/alphalib/types/robots/minio-import.js.map +1 -0
  279. package/dist/alphalib/types/robots/minio-store.d.ts +514 -0
  280. package/dist/alphalib/types/robots/minio-store.d.ts.map +1 -0
  281. package/dist/alphalib/types/robots/minio-store.js +87 -0
  282. package/dist/alphalib/types/robots/minio-store.js.map +1 -0
  283. package/dist/alphalib/types/robots/progress-simulate.d.ts +229 -0
  284. package/dist/alphalib/types/robots/progress-simulate.d.ts.map +1 -0
  285. package/dist/alphalib/types/robots/progress-simulate.js +25 -0
  286. package/dist/alphalib/types/robots/progress-simulate.js.map +1 -0
  287. package/dist/alphalib/types/robots/s3-import.d.ts +246 -0
  288. package/dist/alphalib/types/robots/s3-import.d.ts.map +1 -0
  289. package/dist/alphalib/types/robots/s3-import.js +137 -0
  290. package/dist/alphalib/types/robots/s3-import.js.map +1 -0
  291. package/dist/alphalib/types/robots/s3-store.d.ts +593 -0
  292. package/dist/alphalib/types/robots/s3-store.d.ts.map +1 -0
  293. package/dist/alphalib/types/robots/s3-store.js +169 -0
  294. package/dist/alphalib/types/robots/s3-store.js.map +1 -0
  295. package/dist/alphalib/types/robots/script-run.d.ts +423 -0
  296. package/dist/alphalib/types/robots/script-run.d.ts.map +1 -0
  297. package/dist/alphalib/types/robots/script-run.js +95 -0
  298. package/dist/alphalib/types/robots/script-run.js.map +1 -0
  299. package/dist/alphalib/types/robots/sftp-import.d.ts +192 -0
  300. package/dist/alphalib/types/robots/sftp-import.d.ts.map +1 -0
  301. package/dist/alphalib/types/robots/sftp-import.js +62 -0
  302. package/dist/alphalib/types/robots/sftp-import.js.map +1 -0
  303. package/dist/alphalib/types/robots/sftp-store.d.ts +520 -0
  304. package/dist/alphalib/types/robots/sftp-store.d.ts.map +1 -0
  305. package/dist/alphalib/types/robots/sftp-store.js +83 -0
  306. package/dist/alphalib/types/robots/sftp-store.js.map +1 -0
  307. package/dist/alphalib/types/robots/speech-transcribe.d.ts +465 -0
  308. package/dist/alphalib/types/robots/speech-transcribe.d.ts.map +1 -0
  309. package/dist/alphalib/types/robots/speech-transcribe.js +103 -0
  310. package/dist/alphalib/types/robots/speech-transcribe.js.map +1 -0
  311. package/dist/alphalib/types/robots/supabase-import.d.ts +246 -0
  312. package/dist/alphalib/types/robots/supabase-import.d.ts.map +1 -0
  313. package/dist/alphalib/types/robots/supabase-import.js +83 -0
  314. package/dist/alphalib/types/robots/supabase-import.js.map +1 -0
  315. package/dist/alphalib/types/robots/supabase-store.d.ts +514 -0
  316. package/dist/alphalib/types/robots/supabase-store.d.ts.map +1 -0
  317. package/dist/alphalib/types/robots/supabase-store.js +77 -0
  318. package/dist/alphalib/types/robots/supabase-store.js.map +1 -0
  319. package/dist/alphalib/types/robots/swift-import.d.ts +246 -0
  320. package/dist/alphalib/types/robots/swift-import.d.ts.map +1 -0
  321. package/dist/alphalib/types/robots/swift-import.js +81 -0
  322. package/dist/alphalib/types/robots/swift-import.js.map +1 -0
  323. package/dist/alphalib/types/robots/swift-store.d.ts +526 -0
  324. package/dist/alphalib/types/robots/swift-store.d.ts.map +1 -0
  325. package/dist/alphalib/types/robots/swift-store.js +84 -0
  326. package/dist/alphalib/types/robots/swift-store.js.map +1 -0
  327. package/dist/alphalib/types/robots/text-speak.d.ts +465 -0
  328. package/dist/alphalib/types/robots/text-speak.d.ts.map +1 -0
  329. package/dist/alphalib/types/robots/text-speak.js +119 -0
  330. package/dist/alphalib/types/robots/text-speak.js.map +1 -0
  331. package/dist/alphalib/types/robots/text-translate.d.ts +441 -0
  332. package/dist/alphalib/types/robots/text-translate.d.ts.map +1 -0
  333. package/dist/alphalib/types/robots/text-translate.js +211 -0
  334. package/dist/alphalib/types/robots/text-translate.js.map +1 -0
  335. package/dist/alphalib/types/robots/tigris-import.d.ts +244 -0
  336. package/dist/alphalib/types/robots/tigris-import.d.ts.map +1 -0
  337. package/dist/alphalib/types/robots/tigris-import.js +85 -0
  338. package/dist/alphalib/types/robots/tigris-import.js.map +1 -0
  339. package/dist/alphalib/types/robots/tigris-store.d.ts +524 -0
  340. package/dist/alphalib/types/robots/tigris-store.d.ts.map +1 -0
  341. package/dist/alphalib/types/robots/tigris-store.js +91 -0
  342. package/dist/alphalib/types/robots/tigris-store.js.map +1 -0
  343. package/dist/alphalib/types/robots/tlcdn-deliver.d.ts +100 -0
  344. package/dist/alphalib/types/robots/tlcdn-deliver.d.ts.map +1 -0
  345. package/dist/alphalib/types/robots/tlcdn-deliver.js +46 -0
  346. package/dist/alphalib/types/robots/tlcdn-deliver.js.map +1 -0
  347. package/dist/alphalib/types/robots/tus-store.d.ts +477 -0
  348. package/dist/alphalib/types/robots/tus-store.d.ts.map +1 -0
  349. package/dist/alphalib/types/robots/tus-store.js +102 -0
  350. package/dist/alphalib/types/robots/tus-store.js.map +1 -0
  351. package/dist/alphalib/types/robots/upload-handle.d.ts +100 -0
  352. package/dist/alphalib/types/robots/upload-handle.d.ts.map +1 -0
  353. package/dist/alphalib/types/robots/upload-handle.js +66 -0
  354. package/dist/alphalib/types/robots/upload-handle.js.map +1 -0
  355. package/dist/alphalib/types/robots/video-adaptive.d.ts +2915 -0
  356. package/dist/alphalib/types/robots/video-adaptive.d.ts.map +1 -0
  357. package/dist/alphalib/types/robots/video-adaptive.js +144 -0
  358. package/dist/alphalib/types/robots/video-adaptive.js.map +1 -0
  359. package/dist/alphalib/types/robots/video-concat.d.ts +2891 -0
  360. package/dist/alphalib/types/robots/video-concat.d.ts.map +1 -0
  361. package/dist/alphalib/types/robots/video-concat.js +96 -0
  362. package/dist/alphalib/types/robots/video-concat.js.map +1 -0
  363. package/dist/alphalib/types/robots/video-encode.d.ts +3280 -0
  364. package/dist/alphalib/types/robots/video-encode.d.ts.map +1 -0
  365. package/dist/alphalib/types/robots/video-encode.js +107 -0
  366. package/dist/alphalib/types/robots/video-encode.js.map +1 -0
  367. package/dist/alphalib/types/robots/video-merge.d.ts +2987 -0
  368. package/dist/alphalib/types/robots/video-merge.d.ts.map +1 -0
  369. package/dist/alphalib/types/robots/video-merge.js +102 -0
  370. package/dist/alphalib/types/robots/video-merge.js.map +1 -0
  371. package/dist/alphalib/types/robots/video-ondemand.d.ts +4553 -0
  372. package/dist/alphalib/types/robots/video-ondemand.d.ts.map +1 -0
  373. package/dist/alphalib/types/robots/video-ondemand.js +112 -0
  374. package/dist/alphalib/types/robots/video-ondemand.js.map +1 -0
  375. package/dist/alphalib/types/robots/video-subtitle.d.ts +2975 -0
  376. package/dist/alphalib/types/robots/video-subtitle.d.ts.map +1 -0
  377. package/dist/alphalib/types/robots/video-subtitle.js +122 -0
  378. package/dist/alphalib/types/robots/video-subtitle.js.map +1 -0
  379. package/dist/alphalib/types/robots/video-thumbs.d.ts +2938 -0
  380. package/dist/alphalib/types/robots/video-thumbs.d.ts.map +1 -0
  381. package/dist/alphalib/types/robots/video-thumbs.js +122 -0
  382. package/dist/alphalib/types/robots/video-thumbs.js.map +1 -0
  383. package/dist/alphalib/types/robots/vimeo-import.d.ts +189 -0
  384. package/dist/alphalib/types/robots/vimeo-import.d.ts.map +1 -0
  385. package/dist/alphalib/types/robots/vimeo-import.js +92 -0
  386. package/dist/alphalib/types/robots/vimeo-import.js.map +1 -0
  387. package/dist/alphalib/types/robots/vimeo-store.d.ts +520 -0
  388. package/dist/alphalib/types/robots/vimeo-store.d.ts.map +1 -0
  389. package/dist/alphalib/types/robots/vimeo-store.js +115 -0
  390. package/dist/alphalib/types/robots/vimeo-store.js.map +1 -0
  391. package/dist/alphalib/types/robots/wasabi-import.d.ts +244 -0
  392. package/dist/alphalib/types/robots/wasabi-import.d.ts.map +1 -0
  393. package/dist/alphalib/types/robots/wasabi-import.js +85 -0
  394. package/dist/alphalib/types/robots/wasabi-import.js.map +1 -0
  395. package/dist/alphalib/types/robots/wasabi-store.d.ts +526 -0
  396. package/dist/alphalib/types/robots/wasabi-store.d.ts.map +1 -0
  397. package/dist/alphalib/types/robots/wasabi-store.js +85 -0
  398. package/dist/alphalib/types/robots/wasabi-store.js.map +1 -0
  399. package/dist/alphalib/types/robots/youtube-store.d.ts +477 -0
  400. package/dist/alphalib/types/robots/youtube-store.d.ts.map +1 -0
  401. package/dist/alphalib/types/robots/youtube-store.js +122 -0
  402. package/dist/alphalib/types/robots/youtube-store.js.map +1 -0
  403. package/dist/alphalib/types/stackVersions.d.ts +13 -0
  404. package/dist/alphalib/types/stackVersions.d.ts.map +1 -0
  405. package/dist/alphalib/types/stackVersions.js +13 -0
  406. package/dist/alphalib/types/stackVersions.js.map +1 -0
  407. package/dist/alphalib/types/template.d.ts +131710 -0
  408. package/dist/alphalib/types/template.d.ts.map +1 -0
  409. package/dist/alphalib/types/template.js +218 -0
  410. package/dist/alphalib/types/template.js.map +1 -0
  411. package/dist/alphalib/types/templateCredential.d.ts +95 -0
  412. package/dist/alphalib/types/templateCredential.d.ts.map +1 -0
  413. package/dist/alphalib/types/templateCredential.js +57 -0
  414. package/dist/alphalib/types/templateCredential.js.map +1 -0
  415. package/dist/alphalib/zodParseWithContext.d.ts +17 -0
  416. package/dist/alphalib/zodParseWithContext.d.ts.map +1 -0
  417. package/dist/alphalib/zodParseWithContext.js +248 -0
  418. package/dist/alphalib/zodParseWithContext.js.map +1 -0
  419. package/dist/apiTypes.d.ts +112 -0
  420. package/dist/apiTypes.d.ts.map +1 -0
  421. package/dist/apiTypes.js +3 -0
  422. package/dist/apiTypes.js.map +1 -0
  423. package/dist/cli/OutputCtl.d.ts +47 -0
  424. package/dist/cli/OutputCtl.d.ts.map +1 -0
  425. package/dist/cli/OutputCtl.js +85 -0
  426. package/dist/cli/OutputCtl.js.map +1 -0
  427. package/dist/cli/commands/BaseCommand.d.ts +24 -0
  428. package/dist/cli/commands/BaseCommand.d.ts.map +1 -0
  429. package/dist/cli/commands/BaseCommand.js +52 -0
  430. package/dist/cli/commands/BaseCommand.js.map +1 -0
  431. package/dist/cli/commands/assemblies.d.ts +93 -0
  432. package/dist/cli/commands/assemblies.d.ts.map +1 -0
  433. package/dist/cli/commands/assemblies.js +1021 -0
  434. package/dist/cli/commands/assemblies.js.map +1 -0
  435. package/dist/cli/commands/auth.d.ts +28 -0
  436. package/dist/cli/commands/auth.d.ts.map +1 -0
  437. package/dist/cli/commands/auth.js +280 -0
  438. package/dist/cli/commands/auth.js.map +1 -0
  439. package/dist/cli/commands/bills.d.ts +14 -0
  440. package/dist/cli/commands/bills.d.ts.map +1 -0
  441. package/dist/cli/commands/bills.js +69 -0
  442. package/dist/cli/commands/bills.js.map +1 -0
  443. package/dist/cli/commands/index.d.ts +3 -0
  444. package/dist/cli/commands/index.d.ts.map +1 -0
  445. package/dist/cli/commands/index.js +39 -0
  446. package/dist/cli/commands/index.js.map +1 -0
  447. package/dist/cli/commands/notifications.d.ts +9 -0
  448. package/dist/cli/commands/notifications.d.ts.map +1 -0
  449. package/dist/cli/commands/notifications.js +44 -0
  450. package/dist/cli/commands/notifications.js.map +1 -0
  451. package/dist/cli/commands/templates.d.ts +73 -0
  452. package/dist/cli/commands/templates.d.ts.map +1 -0
  453. package/dist/cli/commands/templates.js +428 -0
  454. package/dist/cli/commands/templates.js.map +1 -0
  455. package/dist/cli/helpers.d.ts +13 -0
  456. package/dist/cli/helpers.d.ts.map +1 -0
  457. package/dist/cli/helpers.js +39 -0
  458. package/dist/cli/helpers.js.map +1 -0
  459. package/dist/cli/template-last-modified.d.ts +10 -0
  460. package/dist/cli/template-last-modified.d.ts.map +1 -0
  461. package/dist/cli/template-last-modified.js +134 -0
  462. package/dist/cli/template-last-modified.js.map +1 -0
  463. package/dist/cli/types.d.ts +78 -0
  464. package/dist/cli/types.d.ts.map +1 -0
  465. package/dist/cli/types.js +49 -0
  466. package/dist/cli/types.js.map +1 -0
  467. package/dist/cli.d.ts +6 -0
  468. package/dist/cli.d.ts.map +1 -0
  469. package/dist/cli.js +41 -0
  470. package/dist/cli.js.map +1 -0
  471. package/dist/tus.d.ts +18 -0
  472. package/dist/tus.d.ts.map +1 -0
  473. package/dist/tus.js +122 -0
  474. package/dist/tus.js.map +1 -0
  475. package/package.json +92 -0
  476. package/src/ApiError.ts +49 -0
  477. package/src/InconsistentResponseError.ts +3 -0
  478. package/src/PaginationStream.ts +54 -0
  479. package/src/PollingTimeoutError.ts +5 -0
  480. package/src/Transloadit.ts +980 -0
  481. package/src/alphalib/lib/nativeGlobby.ts +244 -0
  482. package/src/alphalib/mcache.ts +184 -0
  483. package/src/alphalib/tryCatch.ts +30 -0
  484. package/src/alphalib/types/assembliesGet.ts +42 -0
  485. package/src/alphalib/types/assemblyReplay.ts +24 -0
  486. package/src/alphalib/types/assemblyReplayNotification.ts +16 -0
  487. package/src/alphalib/types/assemblyStatus.ts +794 -0
  488. package/src/alphalib/types/bill.ts +9 -0
  489. package/src/alphalib/types/robots/_index.ts +1201 -0
  490. package/src/alphalib/types/robots/_instructions-primitives.ts +1770 -0
  491. package/src/alphalib/types/robots/ai-chat.ts +278 -0
  492. package/src/alphalib/types/robots/assembly-savejson.ts +37 -0
  493. package/src/alphalib/types/robots/audio-artwork.ts +107 -0
  494. package/src/alphalib/types/robots/audio-concat.ts +142 -0
  495. package/src/alphalib/types/robots/audio-encode.ts +103 -0
  496. package/src/alphalib/types/robots/audio-loop.ts +102 -0
  497. package/src/alphalib/types/robots/audio-merge.ts +137 -0
  498. package/src/alphalib/types/robots/audio-waveform.ts +280 -0
  499. package/src/alphalib/types/robots/azure-import.ts +111 -0
  500. package/src/alphalib/types/robots/azure-store.ts +143 -0
  501. package/src/alphalib/types/robots/backblaze-import.ts +119 -0
  502. package/src/alphalib/types/robots/backblaze-store.ts +104 -0
  503. package/src/alphalib/types/robots/cloudfiles-import.ts +118 -0
  504. package/src/alphalib/types/robots/cloudfiles-store.ts +104 -0
  505. package/src/alphalib/types/robots/cloudflare-import.ts +121 -0
  506. package/src/alphalib/types/robots/cloudflare-store.ts +120 -0
  507. package/src/alphalib/types/robots/digitalocean-import.ts +118 -0
  508. package/src/alphalib/types/robots/digitalocean-store.ts +125 -0
  509. package/src/alphalib/types/robots/document-autorotate.ts +74 -0
  510. package/src/alphalib/types/robots/document-convert.ts +302 -0
  511. package/src/alphalib/types/robots/document-merge.ts +114 -0
  512. package/src/alphalib/types/robots/document-ocr.ts +120 -0
  513. package/src/alphalib/types/robots/document-split.ts +78 -0
  514. package/src/alphalib/types/robots/document-thumbs.ts +231 -0
  515. package/src/alphalib/types/robots/dropbox-import.ts +100 -0
  516. package/src/alphalib/types/robots/dropbox-store.ts +97 -0
  517. package/src/alphalib/types/robots/edgly-deliver.ts +73 -0
  518. package/src/alphalib/types/robots/file-compress.ts +167 -0
  519. package/src/alphalib/types/robots/file-decompress.ts +125 -0
  520. package/src/alphalib/types/robots/file-filter.ts +173 -0
  521. package/src/alphalib/types/robots/file-hash.ts +86 -0
  522. package/src/alphalib/types/robots/file-preview.ts +260 -0
  523. package/src/alphalib/types/robots/file-read.ts +71 -0
  524. package/src/alphalib/types/robots/file-serve.ts +128 -0
  525. package/src/alphalib/types/robots/file-verify.ts +102 -0
  526. package/src/alphalib/types/robots/file-virusscan.ts +113 -0
  527. package/src/alphalib/types/robots/file-watermark.ts +56 -0
  528. package/src/alphalib/types/robots/ftp-import.ts +95 -0
  529. package/src/alphalib/types/robots/ftp-store.ts +119 -0
  530. package/src/alphalib/types/robots/google-import.ts +115 -0
  531. package/src/alphalib/types/robots/google-store.ts +139 -0
  532. package/src/alphalib/types/robots/html-convert.ts +165 -0
  533. package/src/alphalib/types/robots/http-import.ts +168 -0
  534. package/src/alphalib/types/robots/image-bgremove.ts +95 -0
  535. package/src/alphalib/types/robots/image-describe.ts +121 -0
  536. package/src/alphalib/types/robots/image-facedetect.ts +187 -0
  537. package/src/alphalib/types/robots/image-generate.ts +92 -0
  538. package/src/alphalib/types/robots/image-merge.ts +127 -0
  539. package/src/alphalib/types/robots/image-ocr.ts +112 -0
  540. package/src/alphalib/types/robots/image-optimize.ts +114 -0
  541. package/src/alphalib/types/robots/image-resize.ts +653 -0
  542. package/src/alphalib/types/robots/meta-read.ts +44 -0
  543. package/src/alphalib/types/robots/meta-write.ts +93 -0
  544. package/src/alphalib/types/robots/minio-import.ts +120 -0
  545. package/src/alphalib/types/robots/minio-store.ts +115 -0
  546. package/src/alphalib/types/robots/progress-simulate.ts +40 -0
  547. package/src/alphalib/types/robots/s3-import.ts +175 -0
  548. package/src/alphalib/types/robots/s3-store.ts +198 -0
  549. package/src/alphalib/types/robots/script-run.ts +122 -0
  550. package/src/alphalib/types/robots/sftp-import.ts +92 -0
  551. package/src/alphalib/types/robots/sftp-store.ts +110 -0
  552. package/src/alphalib/types/robots/speech-transcribe.ts +139 -0
  553. package/src/alphalib/types/robots/supabase-import.ts +122 -0
  554. package/src/alphalib/types/robots/supabase-store.ts +105 -0
  555. package/src/alphalib/types/robots/swift-import.ts +120 -0
  556. package/src/alphalib/types/robots/swift-store.ts +112 -0
  557. package/src/alphalib/types/robots/text-speak.ts +152 -0
  558. package/src/alphalib/types/robots/text-translate.ts +245 -0
  559. package/src/alphalib/types/robots/tigris-import.ts +124 -0
  560. package/src/alphalib/types/robots/tigris-store.ts +119 -0
  561. package/src/alphalib/types/robots/tlcdn-deliver.ts +73 -0
  562. package/src/alphalib/types/robots/tus-store.ts +129 -0
  563. package/src/alphalib/types/robots/upload-handle.ts +95 -0
  564. package/src/alphalib/types/robots/video-adaptive.ts +179 -0
  565. package/src/alphalib/types/robots/video-concat.ts +130 -0
  566. package/src/alphalib/types/robots/video-encode.ts +141 -0
  567. package/src/alphalib/types/robots/video-merge.ts +138 -0
  568. package/src/alphalib/types/robots/video-ondemand.ts +161 -0
  569. package/src/alphalib/types/robots/video-subtitle.ts +159 -0
  570. package/src/alphalib/types/robots/video-thumbs.ts +158 -0
  571. package/src/alphalib/types/robots/vimeo-import.ts +126 -0
  572. package/src/alphalib/types/robots/vimeo-store.ts +143 -0
  573. package/src/alphalib/types/robots/wasabi-import.ts +124 -0
  574. package/src/alphalib/types/robots/wasabi-store.ts +113 -0
  575. package/src/alphalib/types/robots/youtube-store.ts +153 -0
  576. package/src/alphalib/types/stackVersions.ts +12 -0
  577. package/src/alphalib/types/template.ts +277 -0
  578. package/src/alphalib/types/templateCredential.ts +61 -0
  579. package/src/alphalib/zodParseWithContext.ts +306 -0
  580. package/src/apiTypes.ts +154 -0
  581. package/src/cli/OutputCtl.ts +115 -0
  582. package/src/cli/commands/BaseCommand.ts +71 -0
  583. package/src/cli/commands/assemblies.ts +1373 -0
  584. package/src/cli/commands/auth.ts +354 -0
  585. package/src/cli/commands/bills.ts +91 -0
  586. package/src/cli/commands/index.ts +65 -0
  587. package/src/cli/commands/notifications.ts +63 -0
  588. package/src/cli/commands/templates.ts +556 -0
  589. package/src/cli/helpers.ts +50 -0
  590. package/src/cli/template-last-modified.ts +156 -0
  591. package/src/cli/types.ts +70 -0
  592. package/src/cli.ts +44 -0
  593. package/src/tus.ts +168 -0
@@ -0,0 +1,661 @@
1
+ import * as assert from 'node:assert';
2
+ import { createHmac, randomUUID } from 'node:crypto';
3
+ import { constants, createReadStream } from 'node:fs';
4
+ import { access } from 'node:fs/promises';
5
+ import { setTimeout as delay } from 'node:timers/promises';
6
+ import debug from 'debug';
7
+ import FormData from 'form-data';
8
+ import got, { HTTPError, RequestError } from 'got';
9
+ import intoStream from 'into-stream';
10
+ import { isReadableStream, isStream } from 'is-stream';
11
+ import pMap from 'p-map';
12
+ import packageJson from '../package.json' with { type: 'json' };
13
+ import { ApiError } from "./ApiError.js";
14
+ import { assemblyIndexSchema, assemblyStatusSchema } from "./alphalib/types/assemblyStatus.js";
15
+ import { zodParseWithContext } from "./alphalib/zodParseWithContext.js";
16
+ import InconsistentResponseError from "./InconsistentResponseError.js";
17
+ import PaginationStream from "./PaginationStream.js";
18
+ import PollingTimeoutError from "./PollingTimeoutError.js";
19
+ import { sendTusRequest } from "./tus.js";
20
+ // See https://github.com/sindresorhus/got/tree/v11.8.6?tab=readme-ov-file#errors
21
+ // Expose relevant errors
22
+ export { HTTPError, MaxRedirectsError, ParseError, ReadError, RequestError, TimeoutError, UploadError, } from 'got';
23
+ export * from "./apiTypes.js";
24
+ export { InconsistentResponseError, ApiError };
25
+ const log = debug('transloadit');
26
+ const logWarn = debug('transloadit:warn');
27
+ const { version } = packageJson;
28
+ // Not sure if this is still a problem with the API, but throw a special error type so the user can retry if needed
29
+ function checkAssemblyUrls(result) {
30
+ if (result.assembly_url == null || result.assembly_ssl_url == null) {
31
+ throw new InconsistentResponseError('Server returned an incomplete assembly response (no URL)');
32
+ }
33
+ }
34
+ function getHrTimeMs() {
35
+ return Number(process.hrtime.bigint() / 1000000n);
36
+ }
37
+ function checkResult(result) {
38
+ // In case server returned a successful HTTP status code, but an `error` in the JSON object
39
+ // This happens sometimes, for example when createAssembly with an invalid file (IMPORT_FILE_ERROR)
40
+ if (typeof result === 'object' &&
41
+ result !== null &&
42
+ 'error' in result &&
43
+ typeof result.error === 'string') {
44
+ throw new ApiError({ body: result }); // in this case there is no `cause` because we don't have an HTTPError
45
+ }
46
+ }
47
+ export class Transloadit {
48
+ _authKey;
49
+ _authSecret;
50
+ _endpoint;
51
+ _maxRetries;
52
+ _defaultTimeout;
53
+ _gotRetry;
54
+ _lastUsedAssemblyUrl = '';
55
+ _validateResponses = false;
56
+ constructor(opts) {
57
+ if (opts?.authKey == null) {
58
+ throw new Error('Please provide an authKey');
59
+ }
60
+ if (opts.authSecret == null) {
61
+ throw new Error('Please provide an authSecret');
62
+ }
63
+ if (opts.endpoint?.endsWith('/')) {
64
+ throw new Error('Trailing slash in endpoint is not allowed');
65
+ }
66
+ this._authKey = opts.authKey;
67
+ this._authSecret = opts.authSecret;
68
+ this._endpoint = opts.endpoint || 'https://api2.transloadit.com';
69
+ this._maxRetries = opts.maxRetries != null ? opts.maxRetries : 5;
70
+ this._defaultTimeout = opts.timeout != null ? opts.timeout : 60000;
71
+ // Passed on to got https://github.com/sindresorhus/got/blob/main/documentation/7-retry.md
72
+ this._gotRetry = opts.gotRetry != null ? opts.gotRetry : { limit: 0 };
73
+ if (opts.validateResponses != null)
74
+ this._validateResponses = opts.validateResponses;
75
+ }
76
+ getLastUsedAssemblyUrl() {
77
+ return this._lastUsedAssemblyUrl;
78
+ }
79
+ setDefaultTimeout(timeout) {
80
+ this._defaultTimeout = timeout;
81
+ }
82
+ /**
83
+ * Create an Assembly
84
+ *
85
+ * @param opts assembly options
86
+ */
87
+ createAssembly(opts = {}) {
88
+ const { params = {}, waitForCompletion = false, chunkSize: requestedChunkSize = Number.POSITIVE_INFINITY, uploadConcurrency = 10, timeout = 24 * 60 * 60 * 1000, // 1 day
89
+ onUploadProgress = () => { }, onAssemblyProgress = () => { }, files = {}, uploads = {}, assemblyId, signal, } = opts;
90
+ // Keep track of how long the request took
91
+ const startTimeMs = getHrTimeMs();
92
+ // Undocumented feature to allow specifying a custom assembly id from the client
93
+ // Not recommended for general use due to security. E.g if the user doesn't provide a cryptographically
94
+ // secure ID, then anyone could access the assembly.
95
+ let effectiveAssemblyId;
96
+ if (assemblyId != null) {
97
+ effectiveAssemblyId = assemblyId;
98
+ }
99
+ else {
100
+ effectiveAssemblyId = randomUUID().replace(/-/g, '');
101
+ }
102
+ const urlSuffix = `/assemblies/${effectiveAssemblyId}`;
103
+ // We want to be able to return the promise immediately with custom data
104
+ const promise = (async () => {
105
+ this._lastUsedAssemblyUrl = `${this._endpoint}${urlSuffix}`;
106
+ await pMap(Object.entries(files), async ([, path]) => access(path, constants.F_OK | constants.R_OK), { concurrency: 5 });
107
+ // Convert uploads to streams
108
+ const streamsMap = Object.fromEntries(Object.entries(uploads).map(([label, value]) => {
109
+ const isReadable = isReadableStream(value);
110
+ if (!isReadable && isStream(value)) {
111
+ // https://github.com/transloadit/node-sdk/issues/92
112
+ throw new Error(`Upload named "${label}" is not a Readable stream`);
113
+ }
114
+ return [label, isReadableStream(value) ? value : intoStream(value)];
115
+ }));
116
+ // Wrap in object structure (so we can store whether it's a pathless stream or not)
117
+ const allStreamsMap = Object.fromEntries(Object.entries(streamsMap).map(([label, stream]) => [label, { stream }]));
118
+ // Create streams from files too
119
+ for (const [label, path] of Object.entries(files)) {
120
+ const stream = createReadStream(path);
121
+ allStreamsMap[label] = { stream, path }; // File streams have path
122
+ }
123
+ const allStreams = Object.values(allStreamsMap);
124
+ // Pause all streams
125
+ for (const { stream } of allStreams) {
126
+ stream.pause();
127
+ }
128
+ // If any stream emits error, we want to handle this and exit with error.
129
+ // This promise races against createAssemblyAndUpload() below via Promise.race().
130
+ // When createAssemblyAndUpload wins the race, this promise becomes "orphaned" -
131
+ // it's no longer awaited, but stream error handlers remain attached.
132
+ // The no-op catch prevents Node's unhandled rejection warning if a stream
133
+ // errors after the race is already won.
134
+ const streamErrorPromise = new Promise((_resolve, reject) => {
135
+ for (const { stream } of allStreams) {
136
+ stream.on('error', reject);
137
+ }
138
+ });
139
+ streamErrorPromise.catch(() => { });
140
+ const createAssemblyAndUpload = async () => {
141
+ const result = await this._remoteJson({
142
+ urlSuffix,
143
+ method: 'post',
144
+ timeout: { request: timeout },
145
+ params,
146
+ fields: {
147
+ tus_num_expected_upload_files: allStreams.length,
148
+ },
149
+ signal,
150
+ });
151
+ checkResult(result);
152
+ if (Object.keys(allStreamsMap).length > 0) {
153
+ await sendTusRequest({
154
+ streamsMap: allStreamsMap,
155
+ assembly: result,
156
+ onProgress: onUploadProgress,
157
+ requestedChunkSize,
158
+ uploadConcurrency,
159
+ signal,
160
+ });
161
+ }
162
+ if (!waitForCompletion)
163
+ return result;
164
+ if (result.assembly_id == null) {
165
+ throw new InconsistentResponseError('Server returned an assembly response without an assembly_id after creation');
166
+ }
167
+ const awaitResult = await this.awaitAssemblyCompletion(result.assembly_id, {
168
+ timeout,
169
+ onAssemblyProgress,
170
+ startTimeMs,
171
+ signal,
172
+ });
173
+ checkResult(awaitResult);
174
+ return awaitResult;
175
+ };
176
+ return Promise.race([createAssemblyAndUpload(), streamErrorPromise]);
177
+ })();
178
+ // This allows the user to use or log the assemblyId even before it has been created for easier debugging
179
+ return Object.assign(promise, { assemblyId: effectiveAssemblyId });
180
+ }
181
+ async awaitAssemblyCompletion(assemblyId, { onAssemblyProgress = () => { }, timeout, startTimeMs = getHrTimeMs(), interval = 1000, signal, onPoll, } = {}) {
182
+ assert.ok(assemblyId);
183
+ let lastResult;
184
+ while (true) {
185
+ // Check if caller wants to stop polling early
186
+ if (onPoll?.() === false && lastResult) {
187
+ return lastResult;
188
+ }
189
+ // Check if aborted before making the request
190
+ if (signal?.aborted) {
191
+ throw signal.reason ?? new DOMException('Aborted', 'AbortError');
192
+ }
193
+ const result = await this.getAssembly(assemblyId, { signal });
194
+ lastResult = result;
195
+ // If 'ok' is not in result, it implies a terminal state (e.g., error, completed, canceled).
196
+ // If 'ok' is present, then we check if it's one of the non-terminal polling states.
197
+ if (!('ok' in result) ||
198
+ (result.ok !== 'ASSEMBLY_UPLOADING' &&
199
+ result.ok !== 'ASSEMBLY_EXECUTING' &&
200
+ // ASSEMBLY_REPLAYING is not a valid 'ok' status for polling, it means it's done replaying.
201
+ // The API does not seem to have an ASSEMBLY_REPLAYING status in the typical polling loop.
202
+ // It's usually a final status from the replay endpoint.
203
+ // For polling, we only care about UPLOADING and EXECUTING.
204
+ // If a replay operation puts it into a pollable state, that state would be EXECUTING.
205
+ result.ok !== 'ASSEMBLY_REPLAYING') // This line might need review based on actual API behavior for replayed assembly polling
206
+ ) {
207
+ return result; // Done!
208
+ }
209
+ try {
210
+ onAssemblyProgress(result);
211
+ }
212
+ catch (err) {
213
+ log('Caught onAssemblyProgress error', err);
214
+ }
215
+ const nowMs = getHrTimeMs();
216
+ if (timeout != null && nowMs - startTimeMs >= timeout) {
217
+ throw new PollingTimeoutError('Polling timed out');
218
+ }
219
+ // Make the sleep abortable, ensuring listener cleanup to prevent memory leaks
220
+ await new Promise((resolve, reject) => {
221
+ const timeoutId = setTimeout(() => {
222
+ signal?.removeEventListener('abort', onAbort);
223
+ resolve();
224
+ }, interval);
225
+ function onAbort() {
226
+ clearTimeout(timeoutId);
227
+ reject(signal?.reason ?? new DOMException('Aborted', 'AbortError'));
228
+ }
229
+ signal?.addEventListener('abort', onAbort, { once: true });
230
+ });
231
+ }
232
+ }
233
+ maybeThrowInconsistentResponseError(message) {
234
+ const err = new InconsistentResponseError(message);
235
+ // @TODO, once our schemas have matured, we should remove the option and always throw the error here.
236
+ // But as it stands, schemas are new, and we can't easily update all customer's node-sdks,
237
+ // so there will be a long tail of throws if we enable this now.
238
+ if (this._validateResponses) {
239
+ throw err;
240
+ }
241
+ console.error(`---\nPlease report this error to Transloadit (support@transloadit.com). We are working on better schemas for our API and this looks like something we do not cover yet: \n\n${err}\nThank you in advance!\n---\n`);
242
+ }
243
+ /**
244
+ * Cancel the assembly
245
+ *
246
+ * @param assemblyId assembly ID
247
+ * @returns after the assembly is deleted
248
+ */
249
+ async cancelAssembly(assemblyId) {
250
+ const { assembly_ssl_url: url } = await this.getAssembly(assemblyId);
251
+ const rawResult = await this._remoteJson({
252
+ url,
253
+ method: 'delete',
254
+ });
255
+ const parsedResult = zodParseWithContext(assemblyStatusSchema, rawResult);
256
+ if (!parsedResult.success) {
257
+ this.maybeThrowInconsistentResponseError(`The API responded with data that does not match the expected schema while cancelling Assembly: ${assemblyId}.\n${parsedResult.humanReadable}`);
258
+ }
259
+ checkAssemblyUrls(rawResult);
260
+ return rawResult;
261
+ }
262
+ /**
263
+ * Replay an Assembly
264
+ *
265
+ * @param assemblyId of the assembly to replay
266
+ * @param optional params
267
+ * @returns after the replay is started
268
+ */
269
+ async replayAssembly(assemblyId, params = {}) {
270
+ const result = await this._remoteJson({
271
+ urlSuffix: `/assemblies/${assemblyId}/replay`,
272
+ method: 'post',
273
+ ...(Object.keys(params).length > 0 && { params }),
274
+ });
275
+ checkResult(result);
276
+ return result;
277
+ }
278
+ /**
279
+ * Replay an Assembly notification
280
+ *
281
+ * @param assemblyId of the assembly whose notification to replay
282
+ * @param optional params
283
+ * @returns after the replay is started
284
+ */
285
+ async replayAssemblyNotification(assemblyId, params = {}) {
286
+ return await this._remoteJson({
287
+ urlSuffix: `/assembly_notifications/${assemblyId}/replay`,
288
+ method: 'post',
289
+ ...(Object.keys(params).length > 0 && { params }),
290
+ });
291
+ }
292
+ /**
293
+ * List all assemblies
294
+ *
295
+ * @param params optional request options
296
+ * @returns list of Assemblies
297
+ */
298
+ async listAssemblies(params) {
299
+ const rawResponse = await this._remoteJson({
300
+ urlSuffix: '/assemblies',
301
+ method: 'get',
302
+ params: params || {},
303
+ });
304
+ if (rawResponse == null ||
305
+ typeof rawResponse !== 'object' ||
306
+ !Array.isArray(rawResponse.items)) {
307
+ throw new InconsistentResponseError('API response for listAssemblies is malformed or missing items array');
308
+ }
309
+ const parsedResult = zodParseWithContext(assemblyIndexSchema, rawResponse.items);
310
+ if (!parsedResult.success) {
311
+ this.maybeThrowInconsistentResponseError(`API response for listAssemblies contained items that do not match the expected schema.\n${parsedResult.humanReadable}`);
312
+ }
313
+ return {
314
+ items: rawResponse.items,
315
+ count: rawResponse.count,
316
+ };
317
+ }
318
+ streamAssemblies(params) {
319
+ return new PaginationStream(async (page) => this.listAssemblies({ ...params, page }));
320
+ }
321
+ /**
322
+ * Get an Assembly
323
+ *
324
+ * @param assemblyId the Assembly Id
325
+ * @param options optional request options
326
+ * @returns the retrieved Assembly
327
+ */
328
+ async getAssembly(assemblyId, options) {
329
+ const rawResult = await this._remoteJson({
330
+ urlSuffix: `/assemblies/${assemblyId}`,
331
+ signal: options?.signal,
332
+ });
333
+ const parsedResult = zodParseWithContext(assemblyStatusSchema, rawResult);
334
+ if (!parsedResult.success) {
335
+ this.maybeThrowInconsistentResponseError(`The API responded with data that does not match the expected schema while getting Assembly: ${assemblyId}.\n${parsedResult.humanReadable}`);
336
+ }
337
+ checkAssemblyUrls(rawResult);
338
+ return rawResult;
339
+ }
340
+ /**
341
+ * Create a Credential
342
+ *
343
+ * @param params optional request options
344
+ * @returns when the Credential is created
345
+ */
346
+ async createTemplateCredential(params) {
347
+ return await this._remoteJson({
348
+ urlSuffix: '/template_credentials',
349
+ method: 'post',
350
+ params: params || {},
351
+ });
352
+ }
353
+ /**
354
+ * Edit a Credential
355
+ *
356
+ * @param credentialId the Credential ID
357
+ * @param params optional request options
358
+ * @returns when the Credential is edited
359
+ */
360
+ async editTemplateCredential(credentialId, params) {
361
+ return await this._remoteJson({
362
+ urlSuffix: `/template_credentials/${credentialId}`,
363
+ method: 'put',
364
+ params: params || {},
365
+ });
366
+ }
367
+ /**
368
+ * Delete a Credential
369
+ *
370
+ * @param credentialId the Credential ID
371
+ * @returns when the Credential is deleted
372
+ */
373
+ async deleteTemplateCredential(credentialId) {
374
+ return await this._remoteJson({
375
+ urlSuffix: `/template_credentials/${credentialId}`,
376
+ method: 'delete',
377
+ });
378
+ }
379
+ /**
380
+ * Get a Credential
381
+ *
382
+ * @param credentialId the Credential ID
383
+ * @returns when the Credential is retrieved
384
+ */
385
+ async getTemplateCredential(credentialId) {
386
+ return await this._remoteJson({
387
+ urlSuffix: `/template_credentials/${credentialId}`,
388
+ method: 'get',
389
+ });
390
+ }
391
+ /**
392
+ * List all TemplateCredentials
393
+ *
394
+ * @param params optional request options
395
+ * @returns the list of templates
396
+ */
397
+ async listTemplateCredentials(params) {
398
+ return await this._remoteJson({
399
+ urlSuffix: '/template_credentials',
400
+ method: 'get',
401
+ params: params || {},
402
+ });
403
+ }
404
+ streamTemplateCredentials(params) {
405
+ return new PaginationStream(async (page) => ({
406
+ items: (await this.listTemplateCredentials({ ...params, page })).credentials,
407
+ }));
408
+ }
409
+ /**
410
+ * Create an Assembly Template
411
+ *
412
+ * @param params optional request options
413
+ * @returns when the template is created
414
+ */
415
+ async createTemplate(params) {
416
+ return await this._remoteJson({
417
+ urlSuffix: '/templates',
418
+ method: 'post',
419
+ params: params || {},
420
+ });
421
+ }
422
+ /**
423
+ * Edit an Assembly Template
424
+ *
425
+ * @param templateId the template ID
426
+ * @param params optional request options
427
+ * @returns when the template is edited
428
+ */
429
+ async editTemplate(templateId, params) {
430
+ return await this._remoteJson({
431
+ urlSuffix: `/templates/${templateId}`,
432
+ method: 'put',
433
+ params: params || {},
434
+ });
435
+ }
436
+ /**
437
+ * Delete an Assembly Template
438
+ *
439
+ * @param templateId the template ID
440
+ * @returns when the template is deleted
441
+ */
442
+ async deleteTemplate(templateId) {
443
+ return await this._remoteJson({
444
+ urlSuffix: `/templates/${templateId}`,
445
+ method: 'delete',
446
+ });
447
+ }
448
+ /**
449
+ * Get an Assembly Template
450
+ *
451
+ * @param templateId the template ID
452
+ * @returns when the template is retrieved
453
+ */
454
+ async getTemplate(templateId) {
455
+ return await this._remoteJson({
456
+ urlSuffix: `/templates/${templateId}`,
457
+ method: 'get',
458
+ });
459
+ }
460
+ /**
461
+ * List all Assembly Templates
462
+ *
463
+ * @param params optional request options
464
+ * @returns the list of templates
465
+ */
466
+ async listTemplates(params) {
467
+ return await this._remoteJson({
468
+ urlSuffix: '/templates',
469
+ method: 'get',
470
+ params: params || {},
471
+ });
472
+ }
473
+ streamTemplates(params) {
474
+ return new PaginationStream(async (page) => this.listTemplates({ ...params, page }));
475
+ }
476
+ /**
477
+ * Get account Billing details for a specific month
478
+ *
479
+ * @param month the date for the required billing in the format yyyy-mm
480
+ * @returns with billing data
481
+ * @see https://transloadit.com/docs/api/bill-date-get/
482
+ */
483
+ async getBill(month) {
484
+ assert.ok(month, 'month is required');
485
+ return await this._remoteJson({
486
+ urlSuffix: `/bill/${month}`,
487
+ method: 'get',
488
+ });
489
+ }
490
+ calcSignature(params, algorithm) {
491
+ const jsonParams = this._prepareParams(params);
492
+ const signature = this._calcSignature(jsonParams, algorithm);
493
+ return { signature, params: jsonParams };
494
+ }
495
+ /**
496
+ * Construct a signed Smart CDN URL. See https://transloadit.com/docs/topics/signature-authentication/#smart-cdn.
497
+ */
498
+ getSignedSmartCDNUrl(opts) {
499
+ if (opts.workspace == null || opts.workspace === '')
500
+ throw new TypeError('workspace is required');
501
+ if (opts.template == null || opts.template === '')
502
+ throw new TypeError('template is required');
503
+ if (opts.input == null)
504
+ throw new TypeError('input is required'); // `input` can be an empty string.
505
+ const workspaceSlug = encodeURIComponent(opts.workspace);
506
+ const templateSlug = encodeURIComponent(opts.template);
507
+ const inputField = encodeURIComponent(opts.input);
508
+ const expiresAt = opts.expiresAt || Date.now() + 60 * 60 * 1000; // 1 hour
509
+ const queryParams = new URLSearchParams();
510
+ for (const [key, value] of Object.entries(opts.urlParams || {})) {
511
+ if (Array.isArray(value)) {
512
+ for (const val of value) {
513
+ queryParams.append(key, `${val}`);
514
+ }
515
+ }
516
+ else {
517
+ queryParams.append(key, `${value}`);
518
+ }
519
+ }
520
+ queryParams.set('auth_key', this._authKey);
521
+ queryParams.set('exp', `${expiresAt}`);
522
+ // The signature changes depending on the order of the query parameters. We therefore sort them on the client-
523
+ // and server-side to ensure that we do not get mismatching signatures if a proxy changes the order of query
524
+ // parameters or implementations handle query parameters ordering differently.
525
+ queryParams.sort();
526
+ const stringToSign = `${workspaceSlug}/${templateSlug}/${inputField}?${queryParams}`;
527
+ const algorithm = 'sha256';
528
+ const signature = createHmac(algorithm, this._authSecret).update(stringToSign).digest('hex');
529
+ queryParams.set('sig', `sha256:${signature}`);
530
+ const signedUrl = `https://${workspaceSlug}.tlcdn.com/${templateSlug}/${inputField}?${queryParams}`;
531
+ return signedUrl;
532
+ }
533
+ _calcSignature(toSign, algorithm = 'sha384') {
534
+ return `${algorithm}:${createHmac(algorithm, this._authSecret)
535
+ .update(Buffer.from(toSign, 'utf-8'))
536
+ .digest('hex')}`;
537
+ }
538
+ // Sets the multipart/form-data for POST, PUT and DELETE requests, including
539
+ // the streams, the signed params, and any additional fields.
540
+ _appendForm(form, params, fields) {
541
+ const sigData = this.calcSignature(params);
542
+ const jsonParams = sigData.params;
543
+ const { signature } = sigData;
544
+ form.append('params', jsonParams);
545
+ if (fields != null) {
546
+ for (const [key, val] of Object.entries(fields)) {
547
+ form.append(key, val);
548
+ }
549
+ }
550
+ form.append('signature', signature);
551
+ }
552
+ // Implements HTTP GET query params, handling the case where the url already
553
+ // has params.
554
+ _appendParamsToUrl(url, params) {
555
+ const { signature, params: jsonParams } = this.calcSignature(params);
556
+ const prefix = url.indexOf('?') === -1 ? '?' : '&';
557
+ return `${url}${prefix}signature=${signature}&params=${encodeURIComponent(jsonParams)}`;
558
+ }
559
+ // Responsible for including auth parameters in all requests
560
+ _prepareParams(paramsIn) {
561
+ let params = paramsIn;
562
+ if (params == null) {
563
+ params = {};
564
+ }
565
+ if (params.auth == null) {
566
+ params.auth = {};
567
+ }
568
+ if (params.auth.key == null) {
569
+ params.auth.key = this._authKey;
570
+ }
571
+ if (params.auth.expires == null) {
572
+ params.auth.expires = this._getExpiresDate();
573
+ }
574
+ return JSON.stringify(params);
575
+ }
576
+ // We want to mock this method
577
+ _getExpiresDate() {
578
+ const expiresDate = new Date();
579
+ expiresDate.setDate(expiresDate.getDate() + 1);
580
+ return expiresDate.toISOString();
581
+ }
582
+ // Responsible for making API calls. Automatically sends streams with any POST,
583
+ // PUT or DELETE requests. Automatically adds signature parameters to all
584
+ // requests. Also automatically parses the JSON response.
585
+ async _remoteJson(opts) {
586
+ const { urlSuffix, url: urlInput, timeout = { request: this._defaultTimeout }, method = 'get', params = {}, fields, headers, signal, } = opts;
587
+ // Allow providing either a `urlSuffix` or a full `url`
588
+ if (!urlSuffix && !urlInput)
589
+ throw new Error('No URL provided');
590
+ let url = urlInput || `${this._endpoint}${urlSuffix}`;
591
+ if (method === 'get') {
592
+ url = this._appendParamsToUrl(url, params);
593
+ }
594
+ log('Sending request', method, url);
595
+ // todo use got.retry instead because we are no longer using FormData (which is a stream and can only be used once)
596
+ // https://github.com/sindresorhus/got/issues/1282
597
+ for (let retryCount = 0;; retryCount++) {
598
+ let form;
599
+ if (method === 'post' || method === 'put' || method === 'delete') {
600
+ form = new FormData();
601
+ this._appendForm(form, params, fields);
602
+ }
603
+ const requestOpts = {
604
+ retry: this._gotRetry,
605
+ body: form,
606
+ timeout,
607
+ headers: {
608
+ 'Transloadit-Client': `node-sdk:${version}`,
609
+ 'User-Agent': undefined, // Remove got's user-agent
610
+ ...headers,
611
+ },
612
+ responseType: 'json',
613
+ signal,
614
+ };
615
+ try {
616
+ const request = got[method](url, requestOpts);
617
+ const { body } = await request;
618
+ // console.log(body)
619
+ return body;
620
+ }
621
+ catch (err) {
622
+ if (!(err instanceof RequestError))
623
+ throw err;
624
+ if (err instanceof HTTPError) {
625
+ const { statusCode, body } = err.response;
626
+ logWarn('HTTP error', statusCode, body);
627
+ // check whether we should retry
628
+ // https://transloadit.com/blog/2012/04/introducing-rate-limiting/
629
+ if (typeof body === 'object' &&
630
+ body != null &&
631
+ 'error' in body &&
632
+ 'info' in body &&
633
+ typeof body.info === 'object' &&
634
+ body.info != null &&
635
+ 'retryIn' in body.info &&
636
+ typeof body.info.retryIn === 'number' &&
637
+ Boolean(body.info.retryIn) &&
638
+ retryCount < this._maxRetries && // 413 taken from https://transloadit.com/blog/2012/04/introducing-rate-limiting/
639
+ // todo can 413 be removed?
640
+ ((statusCode === 413 && body.error === 'RATE_LIMIT_REACHED') || statusCode === 429)) {
641
+ const { retryIn: retryInSec } = body.info;
642
+ logWarn(`Rate limit reached, retrying request in approximately ${retryInSec} seconds.`);
643
+ const retryInMs = 1000 * (retryInSec * (1 + 0.1 * Math.random()));
644
+ await delay(retryInMs);
645
+ // Retry
646
+ }
647
+ else {
648
+ throw new ApiError({
649
+ cause: err,
650
+ body: err.response?.body,
651
+ }); // todo don't assert type
652
+ }
653
+ }
654
+ else {
655
+ throw err;
656
+ }
657
+ }
658
+ }
659
+ }
660
+ }
661
+ //# sourceMappingURL=Transloadit.js.map