transloadit 3.0.2 → 4.0.0-2

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