transloadit 4.7.6 → 4.8.1

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 (518) hide show
  1. package/README.md +97 -22
  2. package/dist/alphalib/assembly-linter.js +1 -1
  3. package/dist/alphalib/assembly-linter.js.map +1 -1
  4. package/dist/alphalib/stepParsing.js +2 -2
  5. package/dist/alphalib/stepParsing.js.map +1 -1
  6. package/dist/alphalib/types/assemblyReplay.d.ts +2 -7860
  7. package/dist/alphalib/types/assemblyReplay.d.ts.map +1 -1
  8. package/dist/alphalib/types/assemblyReplayNotification.d.ts +2 -7860
  9. package/dist/alphalib/types/assemblyReplayNotification.d.ts.map +1 -1
  10. package/dist/alphalib/types/assemblyStatus.d.ts +4807 -298
  11. package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -1
  12. package/dist/alphalib/types/assemblyStatus.js +36 -1
  13. package/dist/alphalib/types/assemblyStatus.js.map +1 -1
  14. package/dist/alphalib/types/robots/_index.d.ts +903 -72620
  15. package/dist/alphalib/types/robots/_index.d.ts.map +1 -1
  16. package/dist/alphalib/types/robots/_index.js +62 -11
  17. package/dist/alphalib/types/robots/_index.js.map +1 -1
  18. package/dist/alphalib/types/robots/_instructions-primitives.d.ts +41 -10
  19. package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -1
  20. package/dist/alphalib/types/robots/_instructions-primitives.js +89 -3
  21. package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -1
  22. package/dist/alphalib/types/robots/ai-chat.d.ts +33 -0
  23. package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -1
  24. package/dist/alphalib/types/robots/ai-chat.js +28 -5
  25. package/dist/alphalib/types/robots/ai-chat.js.map +1 -1
  26. package/dist/alphalib/types/robots/assembly-savejson.d.ts.map +1 -1
  27. package/dist/alphalib/types/robots/assembly-savejson.js +8 -0
  28. package/dist/alphalib/types/robots/assembly-savejson.js.map +1 -1
  29. package/dist/alphalib/types/robots/audio-artwork.d.ts.map +1 -1
  30. package/dist/alphalib/types/robots/audio-artwork.js +4 -5
  31. package/dist/alphalib/types/robots/audio-artwork.js.map +1 -1
  32. package/dist/alphalib/types/robots/audio-concat.d.ts.map +1 -1
  33. package/dist/alphalib/types/robots/audio-concat.js +1 -2
  34. package/dist/alphalib/types/robots/audio-concat.js.map +1 -1
  35. package/dist/alphalib/types/robots/audio-encode.d.ts.map +1 -1
  36. package/dist/alphalib/types/robots/audio-encode.js +1 -2
  37. package/dist/alphalib/types/robots/audio-encode.js.map +1 -1
  38. package/dist/alphalib/types/robots/audio-loop.d.ts.map +1 -1
  39. package/dist/alphalib/types/robots/audio-loop.js +1 -2
  40. package/dist/alphalib/types/robots/audio-loop.js.map +1 -1
  41. package/dist/alphalib/types/robots/audio-merge.d.ts.map +1 -1
  42. package/dist/alphalib/types/robots/audio-merge.js +1 -2
  43. package/dist/alphalib/types/robots/audio-merge.js.map +1 -1
  44. package/dist/alphalib/types/robots/audio-split.d.ts +2936 -0
  45. package/dist/alphalib/types/robots/audio-split.d.ts.map +1 -0
  46. package/dist/alphalib/types/robots/audio-split.js +88 -0
  47. package/dist/alphalib/types/robots/audio-split.js.map +1 -0
  48. package/dist/alphalib/types/robots/audio-waveform.d.ts +92 -6
  49. package/dist/alphalib/types/robots/audio-waveform.d.ts.map +1 -1
  50. package/dist/alphalib/types/robots/audio-waveform.js +72 -6
  51. package/dist/alphalib/types/robots/audio-waveform.js.map +1 -1
  52. package/dist/alphalib/types/robots/azure-import.d.ts.map +1 -1
  53. package/dist/alphalib/types/robots/azure-import.js +0 -1
  54. package/dist/alphalib/types/robots/azure-import.js.map +1 -1
  55. package/dist/alphalib/types/robots/azure-store.d.ts.map +1 -1
  56. package/dist/alphalib/types/robots/azure-store.js +0 -1
  57. package/dist/alphalib/types/robots/azure-store.js.map +1 -1
  58. package/dist/alphalib/types/robots/backblaze-import.d.ts.map +1 -1
  59. package/dist/alphalib/types/robots/backblaze-import.js +0 -1
  60. package/dist/alphalib/types/robots/backblaze-import.js.map +1 -1
  61. package/dist/alphalib/types/robots/backblaze-store.d.ts.map +1 -1
  62. package/dist/alphalib/types/robots/backblaze-store.js +0 -1
  63. package/dist/alphalib/types/robots/backblaze-store.js.map +1 -1
  64. package/dist/alphalib/types/robots/box-import.d.ts +150 -0
  65. package/dist/alphalib/types/robots/box-import.d.ts.map +1 -0
  66. package/dist/alphalib/types/robots/box-import.js +63 -0
  67. package/dist/alphalib/types/robots/box-import.js.map +1 -0
  68. package/dist/alphalib/types/robots/box-store.d.ts +455 -0
  69. package/dist/alphalib/types/robots/box-store.d.ts.map +1 -0
  70. package/dist/alphalib/types/robots/box-store.js +66 -0
  71. package/dist/alphalib/types/robots/box-store.js.map +1 -0
  72. package/dist/alphalib/types/robots/cloudfiles-import.d.ts.map +1 -1
  73. package/dist/alphalib/types/robots/cloudfiles-import.js +0 -1
  74. package/dist/alphalib/types/robots/cloudfiles-import.js.map +1 -1
  75. package/dist/alphalib/types/robots/cloudfiles-store.d.ts.map +1 -1
  76. package/dist/alphalib/types/robots/cloudfiles-store.js +0 -1
  77. package/dist/alphalib/types/robots/cloudfiles-store.js.map +1 -1
  78. package/dist/alphalib/types/robots/cloudflare-import.d.ts.map +1 -1
  79. package/dist/alphalib/types/robots/cloudflare-import.js +0 -1
  80. package/dist/alphalib/types/robots/cloudflare-import.js.map +1 -1
  81. package/dist/alphalib/types/robots/cloudflare-store.d.ts.map +1 -1
  82. package/dist/alphalib/types/robots/cloudflare-store.js +0 -1
  83. package/dist/alphalib/types/robots/cloudflare-store.js.map +1 -1
  84. package/dist/alphalib/types/robots/digitalocean-import.d.ts.map +1 -1
  85. package/dist/alphalib/types/robots/digitalocean-import.js +0 -1
  86. package/dist/alphalib/types/robots/digitalocean-import.js.map +1 -1
  87. package/dist/alphalib/types/robots/digitalocean-store.d.ts.map +1 -1
  88. package/dist/alphalib/types/robots/digitalocean-store.js +0 -1
  89. package/dist/alphalib/types/robots/digitalocean-store.js.map +1 -1
  90. package/dist/alphalib/types/robots/document-autorotate.d.ts.map +1 -1
  91. package/dist/alphalib/types/robots/document-autorotate.js +8 -1
  92. package/dist/alphalib/types/robots/document-autorotate.js.map +1 -1
  93. package/dist/alphalib/types/robots/document-convert.d.ts +8 -8
  94. package/dist/alphalib/types/robots/document-convert.d.ts.map +1 -1
  95. package/dist/alphalib/types/robots/document-convert.js +9 -3
  96. package/dist/alphalib/types/robots/document-convert.js.map +1 -1
  97. package/dist/alphalib/types/robots/document-merge.d.ts.map +1 -1
  98. package/dist/alphalib/types/robots/document-merge.js +0 -1
  99. package/dist/alphalib/types/robots/document-merge.js.map +1 -1
  100. package/dist/alphalib/types/robots/document-ocr.d.ts.map +1 -1
  101. package/dist/alphalib/types/robots/document-ocr.js +0 -1
  102. package/dist/alphalib/types/robots/document-ocr.js.map +1 -1
  103. package/dist/alphalib/types/robots/document-optimize.d.ts.map +1 -1
  104. package/dist/alphalib/types/robots/document-optimize.js +0 -1
  105. package/dist/alphalib/types/robots/document-optimize.js.map +1 -1
  106. package/dist/alphalib/types/robots/document-split.d.ts.map +1 -1
  107. package/dist/alphalib/types/robots/document-split.js +9 -1
  108. package/dist/alphalib/types/robots/document-split.js.map +1 -1
  109. package/dist/alphalib/types/robots/document-thumbs.d.ts +12 -0
  110. package/dist/alphalib/types/robots/document-thumbs.d.ts.map +1 -1
  111. package/dist/alphalib/types/robots/document-thumbs.js +23 -4
  112. package/dist/alphalib/types/robots/document-thumbs.js.map +1 -1
  113. package/dist/alphalib/types/robots/dropbox-import.d.ts.map +1 -1
  114. package/dist/alphalib/types/robots/dropbox-import.js +0 -1
  115. package/dist/alphalib/types/robots/dropbox-import.js.map +1 -1
  116. package/dist/alphalib/types/robots/dropbox-store.d.ts.map +1 -1
  117. package/dist/alphalib/types/robots/dropbox-store.js +0 -1
  118. package/dist/alphalib/types/robots/dropbox-store.js.map +1 -1
  119. package/dist/alphalib/types/robots/edgly-deliver.d.ts.map +1 -1
  120. package/dist/alphalib/types/robots/edgly-deliver.js +8 -1
  121. package/dist/alphalib/types/robots/edgly-deliver.js.map +1 -1
  122. package/dist/alphalib/types/robots/file-compress.d.ts +12 -0
  123. package/dist/alphalib/types/robots/file-compress.d.ts.map +1 -1
  124. package/dist/alphalib/types/robots/file-compress.js +8 -1
  125. package/dist/alphalib/types/robots/file-compress.js.map +1 -1
  126. package/dist/alphalib/types/robots/file-decompress.d.ts +24 -0
  127. package/dist/alphalib/types/robots/file-decompress.d.ts.map +1 -1
  128. package/dist/alphalib/types/robots/file-decompress.js +30 -5
  129. package/dist/alphalib/types/robots/file-decompress.js.map +1 -1
  130. package/dist/alphalib/types/robots/file-filter.d.ts.map +1 -1
  131. package/dist/alphalib/types/robots/file-filter.js +23 -6
  132. package/dist/alphalib/types/robots/file-filter.js.map +1 -1
  133. package/dist/alphalib/types/robots/file-hash.d.ts +24 -0
  134. package/dist/alphalib/types/robots/file-hash.d.ts.map +1 -1
  135. package/dist/alphalib/types/robots/file-hash.js +23 -1
  136. package/dist/alphalib/types/robots/file-hash.js.map +1 -1
  137. package/dist/alphalib/types/robots/file-preview.d.ts +12 -0
  138. package/dist/alphalib/types/robots/file-preview.d.ts.map +1 -1
  139. package/dist/alphalib/types/robots/file-preview.js +8 -1
  140. package/dist/alphalib/types/robots/file-preview.js.map +1 -1
  141. package/dist/alphalib/types/robots/file-read.d.ts.map +1 -1
  142. package/dist/alphalib/types/robots/file-read.js +9 -1
  143. package/dist/alphalib/types/robots/file-read.js.map +1 -1
  144. package/dist/alphalib/types/robots/file-serve.d.ts +12 -0
  145. package/dist/alphalib/types/robots/file-serve.d.ts.map +1 -1
  146. package/dist/alphalib/types/robots/file-serve.js +38 -7
  147. package/dist/alphalib/types/robots/file-serve.js.map +1 -1
  148. package/dist/alphalib/types/robots/file-verify.d.ts.map +1 -1
  149. package/dist/alphalib/types/robots/file-verify.js +0 -1
  150. package/dist/alphalib/types/robots/file-verify.js.map +1 -1
  151. package/dist/alphalib/types/robots/file-virusscan.d.ts.map +1 -1
  152. package/dist/alphalib/types/robots/file-virusscan.js +5 -4
  153. package/dist/alphalib/types/robots/file-virusscan.js.map +1 -1
  154. package/dist/alphalib/types/robots/file-watermark.d.ts.map +1 -1
  155. package/dist/alphalib/types/robots/file-watermark.js +10 -0
  156. package/dist/alphalib/types/robots/file-watermark.js.map +1 -1
  157. package/dist/alphalib/types/robots/ftp-import.d.ts.map +1 -1
  158. package/dist/alphalib/types/robots/ftp-import.js +0 -1
  159. package/dist/alphalib/types/robots/ftp-import.js.map +1 -1
  160. package/dist/alphalib/types/robots/ftp-store.d.ts.map +1 -1
  161. package/dist/alphalib/types/robots/ftp-store.js +0 -1
  162. package/dist/alphalib/types/robots/ftp-store.js.map +1 -1
  163. package/dist/alphalib/types/robots/google-import.d.ts.map +1 -1
  164. package/dist/alphalib/types/robots/google-import.js +0 -1
  165. package/dist/alphalib/types/robots/google-import.js.map +1 -1
  166. package/dist/alphalib/types/robots/google-store.d.ts.map +1 -1
  167. package/dist/alphalib/types/robots/google-store.js +0 -1
  168. package/dist/alphalib/types/robots/google-store.js.map +1 -1
  169. package/dist/alphalib/types/robots/html-convert.d.ts.map +1 -1
  170. package/dist/alphalib/types/robots/html-convert.js +0 -1
  171. package/dist/alphalib/types/robots/html-convert.js.map +1 -1
  172. package/dist/alphalib/types/robots/http-import.d.ts.map +1 -1
  173. package/dist/alphalib/types/robots/http-import.js +0 -1
  174. package/dist/alphalib/types/robots/http-import.js.map +1 -1
  175. package/dist/alphalib/types/robots/image-bgremove.d.ts +8 -8
  176. package/dist/alphalib/types/robots/image-bgremove.d.ts.map +1 -1
  177. package/dist/alphalib/types/robots/image-bgremove.js +4 -2
  178. package/dist/alphalib/types/robots/image-bgremove.js.map +1 -1
  179. package/dist/alphalib/types/robots/image-copyrightdetect.d.ts +465 -0
  180. package/dist/alphalib/types/robots/image-copyrightdetect.d.ts.map +1 -0
  181. package/dist/alphalib/types/robots/image-copyrightdetect.js +136 -0
  182. package/dist/alphalib/types/robots/image-copyrightdetect.js.map +1 -0
  183. package/dist/alphalib/types/robots/image-describe.d.ts.map +1 -1
  184. package/dist/alphalib/types/robots/image-describe.js +0 -1
  185. package/dist/alphalib/types/robots/image-describe.js.map +1 -1
  186. package/dist/alphalib/types/robots/image-enhance.d.ts +502 -0
  187. package/dist/alphalib/types/robots/image-enhance.d.ts.map +1 -0
  188. package/dist/alphalib/types/robots/image-enhance.js +146 -0
  189. package/dist/alphalib/types/robots/image-enhance.js.map +1 -0
  190. package/dist/alphalib/types/robots/image-facedetect.d.ts.map +1 -1
  191. package/dist/alphalib/types/robots/image-facedetect.js +0 -1
  192. package/dist/alphalib/types/robots/image-facedetect.js.map +1 -1
  193. package/dist/alphalib/types/robots/image-generate.d.ts +4 -5
  194. package/dist/alphalib/types/robots/image-generate.d.ts.map +1 -1
  195. package/dist/alphalib/types/robots/image-generate.js +62 -8
  196. package/dist/alphalib/types/robots/image-generate.js.map +1 -1
  197. package/dist/alphalib/types/robots/image-merge.d.ts +12 -12
  198. package/dist/alphalib/types/robots/image-merge.d.ts.map +1 -1
  199. package/dist/alphalib/types/robots/image-merge.js +0 -1
  200. package/dist/alphalib/types/robots/image-merge.js.map +1 -1
  201. package/dist/alphalib/types/robots/image-ocr.d.ts.map +1 -1
  202. package/dist/alphalib/types/robots/image-ocr.js +0 -1
  203. package/dist/alphalib/types/robots/image-ocr.js.map +1 -1
  204. package/dist/alphalib/types/robots/image-optimize.d.ts +12 -0
  205. package/dist/alphalib/types/robots/image-optimize.d.ts.map +1 -1
  206. package/dist/alphalib/types/robots/image-optimize.js +16 -3
  207. package/dist/alphalib/types/robots/image-optimize.js.map +1 -1
  208. package/dist/alphalib/types/robots/image-resize.d.ts +20 -8
  209. package/dist/alphalib/types/robots/image-resize.d.ts.map +1 -1
  210. package/dist/alphalib/types/robots/image-resize.js +37 -1
  211. package/dist/alphalib/types/robots/image-resize.js.map +1 -1
  212. package/dist/alphalib/types/robots/image-upscale.d.ts +447 -0
  213. package/dist/alphalib/types/robots/image-upscale.d.ts.map +1 -0
  214. package/dist/alphalib/types/robots/image-upscale.js +65 -0
  215. package/dist/alphalib/types/robots/image-upscale.js.map +1 -0
  216. package/dist/alphalib/types/robots/mega-import.d.ts +244 -0
  217. package/dist/alphalib/types/robots/mega-import.d.ts.map +1 -0
  218. package/dist/alphalib/types/robots/mega-import.js +84 -0
  219. package/dist/alphalib/types/robots/mega-import.js.map +1 -0
  220. package/dist/alphalib/types/robots/mega-store.d.ts +526 -0
  221. package/dist/alphalib/types/robots/mega-store.d.ts.map +1 -0
  222. package/dist/alphalib/types/robots/mega-store.js +82 -0
  223. package/dist/alphalib/types/robots/mega-store.js.map +1 -0
  224. package/dist/alphalib/types/robots/meta-read.d.ts.map +1 -1
  225. package/dist/alphalib/types/robots/meta-read.js +8 -0
  226. package/dist/alphalib/types/robots/meta-read.js.map +1 -1
  227. package/dist/alphalib/types/robots/meta-write.d.ts.map +1 -1
  228. package/dist/alphalib/types/robots/meta-write.js +0 -1
  229. package/dist/alphalib/types/robots/meta-write.js.map +1 -1
  230. package/dist/alphalib/types/robots/minio-import.d.ts.map +1 -1
  231. package/dist/alphalib/types/robots/minio-import.js +0 -1
  232. package/dist/alphalib/types/robots/minio-import.js.map +1 -1
  233. package/dist/alphalib/types/robots/minio-store.d.ts.map +1 -1
  234. package/dist/alphalib/types/robots/minio-store.js +0 -1
  235. package/dist/alphalib/types/robots/minio-store.js.map +1 -1
  236. package/dist/alphalib/types/robots/progress-simulate.d.ts.map +1 -1
  237. package/dist/alphalib/types/robots/progress-simulate.js +13 -0
  238. package/dist/alphalib/types/robots/progress-simulate.js.map +1 -1
  239. package/dist/alphalib/types/robots/s3-import.d.ts.map +1 -1
  240. package/dist/alphalib/types/robots/s3-import.js +0 -1
  241. package/dist/alphalib/types/robots/s3-import.js.map +1 -1
  242. package/dist/alphalib/types/robots/s3-store.d.ts.map +1 -1
  243. package/dist/alphalib/types/robots/s3-store.js +0 -1
  244. package/dist/alphalib/types/robots/s3-store.js.map +1 -1
  245. package/dist/alphalib/types/robots/script-run.d.ts.map +1 -1
  246. package/dist/alphalib/types/robots/script-run.js +10 -1
  247. package/dist/alphalib/types/robots/script-run.js.map +1 -1
  248. package/dist/alphalib/types/robots/sftp-import.d.ts.map +1 -1
  249. package/dist/alphalib/types/robots/sftp-import.js +0 -1
  250. package/dist/alphalib/types/robots/sftp-import.js.map +1 -1
  251. package/dist/alphalib/types/robots/sftp-store.d.ts.map +1 -1
  252. package/dist/alphalib/types/robots/sftp-store.js +0 -1
  253. package/dist/alphalib/types/robots/sftp-store.js.map +1 -1
  254. package/dist/alphalib/types/robots/speech-transcribe.d.ts.map +1 -1
  255. package/dist/alphalib/types/robots/speech-transcribe.js +0 -1
  256. package/dist/alphalib/types/robots/speech-transcribe.js.map +1 -1
  257. package/dist/alphalib/types/robots/supabase-import.d.ts.map +1 -1
  258. package/dist/alphalib/types/robots/supabase-import.js +0 -1
  259. package/dist/alphalib/types/robots/supabase-import.js.map +1 -1
  260. package/dist/alphalib/types/robots/supabase-store.d.ts.map +1 -1
  261. package/dist/alphalib/types/robots/supabase-store.js +0 -1
  262. package/dist/alphalib/types/robots/supabase-store.js.map +1 -1
  263. package/dist/alphalib/types/robots/swift-import.d.ts.map +1 -1
  264. package/dist/alphalib/types/robots/swift-import.js +0 -1
  265. package/dist/alphalib/types/robots/swift-import.js.map +1 -1
  266. package/dist/alphalib/types/robots/swift-store.d.ts.map +1 -1
  267. package/dist/alphalib/types/robots/swift-store.js +0 -1
  268. package/dist/alphalib/types/robots/swift-store.js.map +1 -1
  269. package/dist/alphalib/types/robots/text-speak.d.ts.map +1 -1
  270. package/dist/alphalib/types/robots/text-speak.js +0 -1
  271. package/dist/alphalib/types/robots/text-speak.js.map +1 -1
  272. package/dist/alphalib/types/robots/text-translate.d.ts.map +1 -1
  273. package/dist/alphalib/types/robots/text-translate.js +0 -1
  274. package/dist/alphalib/types/robots/text-translate.js.map +1 -1
  275. package/dist/alphalib/types/robots/tigris-import.d.ts.map +1 -1
  276. package/dist/alphalib/types/robots/tigris-import.js +0 -1
  277. package/dist/alphalib/types/robots/tigris-import.js.map +1 -1
  278. package/dist/alphalib/types/robots/tigris-store.d.ts.map +1 -1
  279. package/dist/alphalib/types/robots/tigris-store.js +0 -1
  280. package/dist/alphalib/types/robots/tigris-store.js.map +1 -1
  281. package/dist/alphalib/types/robots/tlcdn-deliver.d.ts.map +1 -1
  282. package/dist/alphalib/types/robots/tlcdn-deliver.js +8 -1
  283. package/dist/alphalib/types/robots/tlcdn-deliver.js.map +1 -1
  284. package/dist/alphalib/types/robots/tus-store.d.ts.map +1 -1
  285. package/dist/alphalib/types/robots/tus-store.js +1 -14
  286. package/dist/alphalib/types/robots/tus-store.js.map +1 -1
  287. package/dist/alphalib/types/robots/upload-handle.d.ts.map +1 -1
  288. package/dist/alphalib/types/robots/upload-handle.js +0 -1
  289. package/dist/alphalib/types/robots/upload-handle.js.map +1 -1
  290. package/dist/alphalib/types/robots/video-adaptive.d.ts +32 -8
  291. package/dist/alphalib/types/robots/video-adaptive.d.ts.map +1 -1
  292. package/dist/alphalib/types/robots/video-adaptive.js +22 -6
  293. package/dist/alphalib/types/robots/video-adaptive.js.map +1 -1
  294. package/dist/alphalib/types/robots/video-artwork.d.ts +2855 -0
  295. package/dist/alphalib/types/robots/video-artwork.d.ts.map +1 -0
  296. package/dist/alphalib/types/robots/video-artwork.js +66 -0
  297. package/dist/alphalib/types/robots/video-artwork.js.map +1 -0
  298. package/dist/alphalib/types/robots/video-concat.d.ts +36 -0
  299. package/dist/alphalib/types/robots/video-concat.d.ts.map +1 -1
  300. package/dist/alphalib/types/robots/video-concat.js +30 -1
  301. package/dist/alphalib/types/robots/video-concat.js.map +1 -1
  302. package/dist/alphalib/types/robots/video-encode.d.ts.map +1 -1
  303. package/dist/alphalib/types/robots/video-encode.js +0 -1
  304. package/dist/alphalib/types/robots/video-encode.js.map +1 -1
  305. package/dist/alphalib/types/robots/video-generate.d.ts +594 -0
  306. package/dist/alphalib/types/robots/video-generate.d.ts.map +1 -0
  307. package/dist/alphalib/types/robots/video-generate.js +90 -0
  308. package/dist/alphalib/types/robots/video-generate.js.map +1 -0
  309. package/dist/alphalib/types/robots/video-merge.d.ts +24 -0
  310. package/dist/alphalib/types/robots/video-merge.d.ts.map +1 -1
  311. package/dist/alphalib/types/robots/video-merge.js +33 -1
  312. package/dist/alphalib/types/robots/video-merge.js.map +1 -1
  313. package/dist/alphalib/types/robots/video-ondemand.d.ts.map +1 -1
  314. package/dist/alphalib/types/robots/video-ondemand.js +3 -4
  315. package/dist/alphalib/types/robots/video-ondemand.js.map +1 -1
  316. package/dist/alphalib/types/robots/video-split.d.ts +2939 -0
  317. package/dist/alphalib/types/robots/video-split.d.ts.map +1 -0
  318. package/dist/alphalib/types/robots/video-split.js +78 -0
  319. package/dist/alphalib/types/robots/video-split.js.map +1 -0
  320. package/dist/alphalib/types/robots/video-subtitle.d.ts +52 -4
  321. package/dist/alphalib/types/robots/video-subtitle.d.ts.map +1 -1
  322. package/dist/alphalib/types/robots/video-subtitle.js +61 -8
  323. package/dist/alphalib/types/robots/video-subtitle.js.map +1 -1
  324. package/dist/alphalib/types/robots/video-thumbs.d.ts.map +1 -1
  325. package/dist/alphalib/types/robots/video-thumbs.js +0 -1
  326. package/dist/alphalib/types/robots/video-thumbs.js.map +1 -1
  327. package/dist/alphalib/types/robots/vimeo-import.d.ts +4 -4
  328. package/dist/alphalib/types/robots/vimeo-import.d.ts.map +1 -1
  329. package/dist/alphalib/types/robots/vimeo-import.js +0 -1
  330. package/dist/alphalib/types/robots/vimeo-import.js.map +1 -1
  331. package/dist/alphalib/types/robots/vimeo-store.d.ts +2 -2
  332. package/dist/alphalib/types/robots/vimeo-store.d.ts.map +1 -1
  333. package/dist/alphalib/types/robots/vimeo-store.js +14 -3
  334. package/dist/alphalib/types/robots/vimeo-store.js.map +1 -1
  335. package/dist/alphalib/types/robots/wasabi-import.d.ts.map +1 -1
  336. package/dist/alphalib/types/robots/wasabi-import.js +0 -1
  337. package/dist/alphalib/types/robots/wasabi-import.js.map +1 -1
  338. package/dist/alphalib/types/robots/wasabi-store.d.ts.map +1 -1
  339. package/dist/alphalib/types/robots/wasabi-store.js +0 -1
  340. package/dist/alphalib/types/robots/wasabi-store.js.map +1 -1
  341. package/dist/alphalib/types/robots/youtube-store.d.ts.map +1 -1
  342. package/dist/alphalib/types/robots/youtube-store.js +4 -5
  343. package/dist/alphalib/types/robots/youtube-store.js.map +1 -1
  344. package/dist/alphalib/types/template.d.ts +41 -132175
  345. package/dist/alphalib/types/template.d.ts.map +1 -1
  346. package/dist/alphalib/types/template.js +16 -3
  347. package/dist/alphalib/types/template.js.map +1 -1
  348. package/dist/alphalib/types/templateCredential.d.ts +3 -3
  349. package/dist/alphalib/types/templateCredential.d.ts.map +1 -1
  350. package/dist/alphalib/types/templateCredential.js +1 -0
  351. package/dist/alphalib/types/templateCredential.js.map +1 -1
  352. package/dist/alphalib/zodParseWithContext.d.ts.map +1 -1
  353. package/dist/alphalib/zodParseWithContext.js +15 -11
  354. package/dist/alphalib/zodParseWithContext.js.map +1 -1
  355. package/dist/bearerToken.d.ts +1 -0
  356. package/dist/bearerToken.d.ts.map +1 -1
  357. package/dist/bearerToken.js +5 -3
  358. package/dist/bearerToken.js.map +1 -1
  359. package/dist/cli/commands/BaseCommand.d.ts +0 -1
  360. package/dist/cli/commands/BaseCommand.d.ts.map +1 -1
  361. package/dist/cli/commands/BaseCommand.js +7 -9
  362. package/dist/cli/commands/BaseCommand.js.map +1 -1
  363. package/dist/cli/commands/auth.d.ts.map +1 -1
  364. package/dist/cli/commands/auth.js +49 -29
  365. package/dist/cli/commands/auth.js.map +1 -1
  366. package/dist/cli/generateIntentDocs.d.ts +5 -1
  367. package/dist/cli/generateIntentDocs.d.ts.map +1 -1
  368. package/dist/cli/generateIntentDocs.js +27 -9
  369. package/dist/cli/generateIntentDocs.js.map +1 -1
  370. package/dist/cli/helpers.d.ts +19 -4
  371. package/dist/cli/helpers.d.ts.map +1 -1
  372. package/dist/cli/helpers.js +232 -10
  373. package/dist/cli/helpers.js.map +1 -1
  374. package/dist/cli/intentCommandSpecs.d.ts.map +1 -1
  375. package/dist/cli/intentCommandSpecs.js +4 -6
  376. package/dist/cli/intentCommandSpecs.js.map +1 -1
  377. package/dist/cli/intentRuntime.d.ts.map +1 -1
  378. package/dist/cli/intentRuntime.js +4 -4
  379. package/dist/cli/intentRuntime.js.map +1 -1
  380. package/dist/cli/semanticIntents/imageDescribe.d.ts +3 -1
  381. package/dist/cli/semanticIntents/imageDescribe.d.ts.map +1 -1
  382. package/dist/cli/semanticIntents/imageDescribe.js +1 -1
  383. package/dist/cli/semanticIntents/imageDescribe.js.map +1 -1
  384. package/dist/cli/semanticIntents/imageGenerate.d.ts +94 -0
  385. package/dist/cli/semanticIntents/imageGenerate.d.ts.map +1 -0
  386. package/dist/cli/semanticIntents/imageGenerate.js +215 -0
  387. package/dist/cli/semanticIntents/imageGenerate.js.map +1 -0
  388. package/dist/cli/semanticIntents/index.d.ts +3 -1
  389. package/dist/cli/semanticIntents/index.d.ts.map +1 -1
  390. package/dist/cli/semanticIntents/index.js +2 -0
  391. package/dist/cli/semanticIntents/index.js.map +1 -1
  392. package/dist/cli/semanticIntents/markdownPdf.js +1 -1
  393. package/dist/cli/semanticIntents/markdownPdf.js.map +1 -1
  394. package/dist/cli.d.ts +0 -1
  395. package/dist/cli.d.ts.map +1 -1
  396. package/dist/cli.js +3 -2
  397. package/dist/cli.js.map +1 -1
  398. package/dist/robots.js +2 -2
  399. package/dist/robots.js.map +1 -1
  400. package/package.json +1 -1
  401. package/src/alphalib/assembly-linter.ts +1 -1
  402. package/src/alphalib/stepParsing.ts +2 -2
  403. package/src/alphalib/types/assemblyStatus.ts +41 -2
  404. package/src/alphalib/types/robots/_index.ts +211 -20
  405. package/src/alphalib/types/robots/_instructions-primitives.ts +93 -3
  406. package/src/alphalib/types/robots/ai-chat.ts +35 -5
  407. package/src/alphalib/types/robots/assembly-savejson.ts +8 -0
  408. package/src/alphalib/types/robots/audio-artwork.ts +4 -5
  409. package/src/alphalib/types/robots/audio-concat.ts +1 -2
  410. package/src/alphalib/types/robots/audio-encode.ts +1 -2
  411. package/src/alphalib/types/robots/audio-loop.ts +1 -2
  412. package/src/alphalib/types/robots/audio-merge.ts +1 -2
  413. package/src/alphalib/types/robots/audio-split.ts +130 -0
  414. package/src/alphalib/types/robots/audio-waveform.ts +90 -6
  415. package/src/alphalib/types/robots/azure-import.ts +0 -1
  416. package/src/alphalib/types/robots/azure-store.ts +0 -1
  417. package/src/alphalib/types/robots/backblaze-import.ts +0 -1
  418. package/src/alphalib/types/robots/backblaze-store.ts +0 -1
  419. package/src/alphalib/types/robots/box-import.ts +97 -0
  420. package/src/alphalib/types/robots/box-store.ts +94 -0
  421. package/src/alphalib/types/robots/cloudfiles-import.ts +0 -1
  422. package/src/alphalib/types/robots/cloudfiles-store.ts +0 -1
  423. package/src/alphalib/types/robots/cloudflare-import.ts +0 -1
  424. package/src/alphalib/types/robots/cloudflare-store.ts +0 -1
  425. package/src/alphalib/types/robots/digitalocean-import.ts +0 -1
  426. package/src/alphalib/types/robots/digitalocean-store.ts +0 -1
  427. package/src/alphalib/types/robots/document-autorotate.ts +8 -1
  428. package/src/alphalib/types/robots/document-convert.ts +10 -3
  429. package/src/alphalib/types/robots/document-merge.ts +0 -1
  430. package/src/alphalib/types/robots/document-ocr.ts +0 -1
  431. package/src/alphalib/types/robots/document-optimize.ts +0 -1
  432. package/src/alphalib/types/robots/document-split.ts +9 -1
  433. package/src/alphalib/types/robots/document-thumbs.ts +26 -4
  434. package/src/alphalib/types/robots/dropbox-import.ts +0 -1
  435. package/src/alphalib/types/robots/dropbox-store.ts +0 -1
  436. package/src/alphalib/types/robots/edgly-deliver.ts +8 -1
  437. package/src/alphalib/types/robots/file-compress.ts +8 -1
  438. package/src/alphalib/types/robots/file-decompress.ts +30 -5
  439. package/src/alphalib/types/robots/file-filter.ts +23 -6
  440. package/src/alphalib/types/robots/file-hash.ts +23 -1
  441. package/src/alphalib/types/robots/file-preview.ts +8 -1
  442. package/src/alphalib/types/robots/file-read.ts +9 -1
  443. package/src/alphalib/types/robots/file-serve.ts +39 -7
  444. package/src/alphalib/types/robots/file-verify.ts +0 -1
  445. package/src/alphalib/types/robots/file-virusscan.ts +6 -4
  446. package/src/alphalib/types/robots/file-watermark.ts +10 -0
  447. package/src/alphalib/types/robots/ftp-import.ts +0 -1
  448. package/src/alphalib/types/robots/ftp-store.ts +0 -1
  449. package/src/alphalib/types/robots/google-import.ts +0 -1
  450. package/src/alphalib/types/robots/google-store.ts +0 -1
  451. package/src/alphalib/types/robots/html-convert.ts +0 -1
  452. package/src/alphalib/types/robots/http-import.ts +0 -1
  453. package/src/alphalib/types/robots/image-bgremove.ts +4 -2
  454. package/src/alphalib/types/robots/image-copyrightdetect.ts +167 -0
  455. package/src/alphalib/types/robots/image-describe.ts +0 -1
  456. package/src/alphalib/types/robots/image-enhance.ts +185 -0
  457. package/src/alphalib/types/robots/image-facedetect.ts +0 -1
  458. package/src/alphalib/types/robots/image-generate.ts +74 -8
  459. package/src/alphalib/types/robots/image-merge.ts +0 -1
  460. package/src/alphalib/types/robots/image-ocr.ts +0 -1
  461. package/src/alphalib/types/robots/image-optimize.ts +16 -3
  462. package/src/alphalib/types/robots/image-resize.ts +37 -1
  463. package/src/alphalib/types/robots/image-upscale.ts +93 -0
  464. package/src/alphalib/types/robots/mega-import.ts +123 -0
  465. package/src/alphalib/types/robots/mega-store.ts +109 -0
  466. package/src/alphalib/types/robots/meta-read.ts +8 -0
  467. package/src/alphalib/types/robots/meta-write.ts +0 -1
  468. package/src/alphalib/types/robots/minio-import.ts +0 -1
  469. package/src/alphalib/types/robots/minio-store.ts +0 -1
  470. package/src/alphalib/types/robots/progress-simulate.ts +13 -0
  471. package/src/alphalib/types/robots/s3-import.ts +0 -1
  472. package/src/alphalib/types/robots/s3-store.ts +0 -1
  473. package/src/alphalib/types/robots/script-run.ts +11 -1
  474. package/src/alphalib/types/robots/sftp-import.ts +0 -1
  475. package/src/alphalib/types/robots/sftp-store.ts +0 -1
  476. package/src/alphalib/types/robots/speech-transcribe.ts +0 -1
  477. package/src/alphalib/types/robots/supabase-import.ts +0 -1
  478. package/src/alphalib/types/robots/supabase-store.ts +0 -1
  479. package/src/alphalib/types/robots/swift-import.ts +0 -1
  480. package/src/alphalib/types/robots/swift-store.ts +0 -1
  481. package/src/alphalib/types/robots/text-speak.ts +0 -1
  482. package/src/alphalib/types/robots/text-translate.ts +0 -1
  483. package/src/alphalib/types/robots/tigris-import.ts +0 -1
  484. package/src/alphalib/types/robots/tigris-store.ts +0 -1
  485. package/src/alphalib/types/robots/tlcdn-deliver.ts +8 -1
  486. package/src/alphalib/types/robots/tus-store.ts +1 -14
  487. package/src/alphalib/types/robots/upload-handle.ts +0 -1
  488. package/src/alphalib/types/robots/video-adaptive.ts +22 -6
  489. package/src/alphalib/types/robots/video-artwork.ts +100 -0
  490. package/src/alphalib/types/robots/video-concat.ts +30 -1
  491. package/src/alphalib/types/robots/video-encode.ts +0 -1
  492. package/src/alphalib/types/robots/video-generate.ts +120 -0
  493. package/src/alphalib/types/robots/video-merge.ts +33 -1
  494. package/src/alphalib/types/robots/video-ondemand.ts +3 -4
  495. package/src/alphalib/types/robots/video-split.ts +117 -0
  496. package/src/alphalib/types/robots/video-subtitle.ts +61 -8
  497. package/src/alphalib/types/robots/video-thumbs.ts +0 -1
  498. package/src/alphalib/types/robots/vimeo-import.ts +0 -1
  499. package/src/alphalib/types/robots/vimeo-store.ts +14 -3
  500. package/src/alphalib/types/robots/wasabi-import.ts +0 -1
  501. package/src/alphalib/types/robots/wasabi-store.ts +0 -1
  502. package/src/alphalib/types/robots/youtube-store.ts +4 -5
  503. package/src/alphalib/types/template.ts +47 -15
  504. package/src/alphalib/types/templateCredential.ts +1 -0
  505. package/src/alphalib/zodParseWithContext.ts +19 -12
  506. package/src/bearerToken.ts +14 -3
  507. package/src/cli/commands/BaseCommand.ts +7 -9
  508. package/src/cli/commands/auth.ts +66 -32
  509. package/src/cli/generateIntentDocs.ts +30 -9
  510. package/src/cli/helpers.ts +278 -13
  511. package/src/cli/intentCommandSpecs.ts +4 -9
  512. package/src/cli/intentRuntime.ts +8 -3
  513. package/src/cli/semanticIntents/imageDescribe.ts +4 -1
  514. package/src/cli/semanticIntents/imageGenerate.ts +254 -0
  515. package/src/cli/semanticIntents/index.ts +6 -1
  516. package/src/cli/semanticIntents/markdownPdf.ts +1 -1
  517. package/src/cli.ts +3 -2
  518. package/src/robots.ts +2 -2
@@ -0,0 +1,117 @@
1
+ import { z } from 'zod'
2
+
3
+ import { stackVersions } from '../stackVersions.ts'
4
+ import type { RobotMetaInput } from './_instructions-primitives.ts'
5
+ import {
6
+ interpolateRobot,
7
+ robotBase,
8
+ robotFFmpegVideo,
9
+ robotUse,
10
+ } from './_instructions-primitives.ts'
11
+
12
+ export const meta: RobotMetaInput = {
13
+ bytescount: 1,
14
+ discount_factor: 1,
15
+ discount_pct: 0,
16
+ example_code: {
17
+ steps: {
18
+ split: {
19
+ robot: '/video/split',
20
+ use: ':original',
21
+ ffmpeg_stack: stackVersions.ffmpeg.recommendedVersion,
22
+ segments: [
23
+ { from: 0, to: 30 },
24
+ { from: 60, to: 90 },
25
+ ],
26
+ },
27
+ },
28
+ },
29
+ example_code_description:
30
+ 'Split a video into two segments, extracting the first 30 seconds and a segment from 1:00 to 1:30:',
31
+ minimum_charge: 0,
32
+ output_factor: 0.6,
33
+ override_lvl1: 'Video Encoding',
34
+ purpose_sentence: 'splits a video into multiple segments based on an array of from/to durations',
35
+ purpose_verb: 'split',
36
+ purpose_word: 'split',
37
+ purpose_words: 'Split video',
38
+ service_slug: 'video-encoding',
39
+ slot_count: 60,
40
+ title: 'Split video',
41
+ typical_file_size_mb: 80,
42
+ typical_file_type: 'video',
43
+ uses_tools: ['ffmpeg'],
44
+ name: 'VideoSplitRobot',
45
+ priceFactor: 1,
46
+ queueSlotCount: 60,
47
+ isAllowedForUrlTransform: false,
48
+ trackOutputFileSize: true,
49
+ isInternal: false,
50
+ removeJobResultFilesFromDiskRightAfterStoringOnS3: false,
51
+ stage: 'ga',
52
+ }
53
+
54
+ const segmentSchema = z
55
+ .object({
56
+ from: z
57
+ .union([z.number(), z.string()])
58
+ .describe(
59
+ 'Start time of the segment in seconds (e.g. `30`) or as a timecode string (e.g. `"00:00:30.000"`).',
60
+ ),
61
+ to: z
62
+ .union([z.number(), z.string()])
63
+ .describe(
64
+ 'End time of the segment in seconds (e.g. `60`) or as a timecode string (e.g. `"00:01:00.000"`).',
65
+ ),
66
+ })
67
+ .strict()
68
+
69
+ export const robotVideoSplitInstructionsSchema = robotBase
70
+ .merge(robotUse)
71
+ .merge(robotFFmpegVideo)
72
+ .extend({
73
+ robot: z.literal('/video/split').describe(`
74
+ Splits a video into multiple segments based on an array of from/to durations. Each segment produces a separate output file. This is useful for cutting a video into parts, for example to insert ads later via [🤖/video/concat](/docs/robots/video-concat/).
75
+ `),
76
+ segments: z
77
+ .array(segmentSchema)
78
+ .min(1)
79
+ .describe(`
80
+ An array of objects, each specifying a segment to extract from the input video. Each object must have a \`from\` and \`to\` key indicating the start and end time of the segment.
81
+
82
+ Times can be specified as numbers (seconds) or as timecode strings (e.g. \`"00:01:30.000"\`).
83
+ `),
84
+ })
85
+ .strict()
86
+
87
+ export const robotVideoSplitInstructionsWithHiddenFieldsSchema =
88
+ robotVideoSplitInstructionsSchema.extend({
89
+ result: z
90
+ .union([z.literal('debug'), robotVideoSplitInstructionsSchema.shape.result])
91
+ .optional(),
92
+ })
93
+
94
+ export type RobotVideoSplitInstructions = z.infer<typeof robotVideoSplitInstructionsSchema>
95
+ export type RobotVideoSplitInstructionsWithHiddenFields = z.infer<
96
+ typeof robotVideoSplitInstructionsWithHiddenFieldsSchema
97
+ >
98
+
99
+ export const interpolatableRobotVideoSplitInstructionsSchema = interpolateRobot(
100
+ robotVideoSplitInstructionsSchema,
101
+ )
102
+ export type InterpolatableRobotVideoSplitInstructions =
103
+ InterpolatableRobotVideoSplitInstructionsInput
104
+
105
+ export type InterpolatableRobotVideoSplitInstructionsInput = z.input<
106
+ typeof interpolatableRobotVideoSplitInstructionsSchema
107
+ >
108
+
109
+ export const interpolatableRobotVideoSplitInstructionsWithHiddenFieldsSchema = interpolateRobot(
110
+ robotVideoSplitInstructionsWithHiddenFieldsSchema,
111
+ )
112
+ export type InterpolatableRobotVideoSplitInstructionsWithHiddenFields = z.infer<
113
+ typeof interpolatableRobotVideoSplitInstructionsWithHiddenFieldsSchema
114
+ >
115
+ export type InterpolatableRobotVideoSplitInstructionsWithHiddenFieldsInput = z.input<
116
+ typeof interpolatableRobotVideoSplitInstructionsWithHiddenFieldsSchema
117
+ >
@@ -13,13 +13,12 @@ import {
13
13
  } from './_instructions-primitives.ts'
14
14
 
15
15
  export const meta: RobotMetaInput = {
16
- allowed_for_url_transform: false,
17
16
  bytescount: 1,
18
17
  discount_factor: 1,
19
18
  discount_pct: 0,
20
19
  example_code: {
21
20
  steps: {
22
- subtitled: {
21
+ add_english_subtitles: {
23
22
  robot: '/video/subtitle',
24
23
  use: {
25
24
  steps: [
@@ -30,17 +29,39 @@ export const meta: RobotMetaInput = {
30
29
  },
31
30
  {
32
31
  name: ':original',
33
- fields: 'input_srt',
32
+ fields: 'input_srt_en',
34
33
  as: 'subtitles',
35
34
  },
36
35
  ],
37
36
  },
37
+ language: 'eng',
38
+ name: 'English',
39
+ ffmpeg_stack: stackVersions.ffmpeg.recommendedVersion,
40
+ },
41
+ add_german_subtitles: {
42
+ robot: '/video/subtitle',
43
+ use: {
44
+ steps: [
45
+ {
46
+ name: 'add_english_subtitles',
47
+ as: 'video',
48
+ },
49
+ {
50
+ name: ':original',
51
+ fields: 'input_srt_de',
52
+ as: 'subtitles',
53
+ },
54
+ ],
55
+ },
56
+ language: 'deu',
57
+ name: 'Deutsch',
58
+ keep_subtitles: true,
38
59
  ffmpeg_stack: stackVersions.ffmpeg.recommendedVersion,
39
60
  },
40
61
  },
41
62
  },
42
63
  example_code_description:
43
- 'If you have two file input fields in a form — one for a video and another for an SRT or VTT subtitle, named `input_video` and `input_srt` respectively (with the HTML `name` attribute), hereʼs how to embed the subtitles into the video with Transloadit:',
64
+ 'If you have file input fields in a form — one for a video and one for each subtitle language (named `input_video`, `input_srt_en`, and `input_srt_de` via the HTML `name` attribute) hereʼs how to add multiple subtitle streams with language tags to the video. Chain multiple `/video/subtitle` Steps with `keep_subtitles` set to `true` so each new stream is added alongside existing ones:',
44
65
  minimum_charge: 0,
45
66
  output_factor: 0.6,
46
67
  override_lvl1: 'Video Encoding',
@@ -96,8 +117,11 @@ The font family to use. Also includes boldness and style of the font.
96
117
 
97
118
  [Here](/docs/supported-formats/fonts/) is a list of all supported fonts.
98
119
  `),
99
- font_color: color_without_alpha.default('FFFFFF').describe(`
100
- The color of the subtitle text. The first two hex digits specify the alpha value of the color.
120
+ font_color: z
121
+ .union([color_without_alpha, color_with_alpha])
122
+ .default('FFFFFF')
123
+ .describe(`
124
+ The color of the subtitle text in \`"rgb"\`, \`"rrggbb"\`, or \`"aarrggbb"\` format. If 8 hex digits are provided, the first two specify the alpha value of the color (\`"00"\` is fully opaque, \`"ff"\` is fully transparent).
101
125
  `),
102
126
  font_size: z
103
127
  .number()
@@ -106,6 +130,28 @@ The color of the subtitle text. The first two hex digits specify the alpha value
106
130
  .default(16)
107
131
  .describe(`
108
132
  Specifies the size of the text.
133
+ `),
134
+ bold: z
135
+ .boolean()
136
+ .default(false)
137
+ .describe(`
138
+ Specifies whether the subtitle text should be bold. Only applies to burned subtitles.
139
+ `),
140
+ italic: z
141
+ .boolean()
142
+ .default(false)
143
+ .describe(`
144
+ Specifies whether the subtitle text should be italic. Only applies to burned subtitles.
145
+ `),
146
+ outline_width: z
147
+ .number()
148
+ .int()
149
+ .min(0)
150
+ .max(10)
151
+ .optional()
152
+ .nullable()
153
+ .describe(`
154
+ Specifies the width of the text outline in pixels. Only applies to burned subtitles with \`"outline"\` or \`"box"\` border styles. If not specified, the default width is used.
109
155
  `),
110
156
  position: positionSchema.default('bottom').describe(`
111
157
  Specifies the position of the subtitles.
@@ -115,13 +161,20 @@ Specifies the position of the subtitles.
115
161
  .optional()
116
162
  .nullable()
117
163
  .describe(`
118
- Specifies the language of the subtitles. Only used if the subtitles are external.
164
+ Specifies the language of the subtitle stream using a three-letter language code (e.g. \`"eng"\`, \`"deu"\`, \`"spa"\`). Only used if the subtitles are external. When adding multiple subtitle streams, set a different language for each stream so that video players can offer language selection.
165
+ `),
166
+ name: z
167
+ .string()
168
+ .optional()
169
+ .nullable()
170
+ .describe(`
171
+ Specifies a human-readable name for the subtitle track (e.g. \`"English"\`, \`"Deutsch"\`, \`"Español"\`). Only used if the subtitles are external. This name is displayed in video player subtitle menus alongside the language.
119
172
  `),
120
173
  keep_subtitles: z
121
174
  .boolean()
122
175
  .default(false)
123
176
  .describe(`
124
- Specifies if existing subtitles in the input file should be kept or be replaced by the new subtitle. Only used if the subtitles are external.
177
+ Specifies if existing subtitles in the input file should be kept or be replaced by the new subtitle. Only used if the subtitles are external. Set this to \`true\` when chaining multiple \`/video/subtitle\` Steps to add several subtitle streams (e.g. different languages) to the same video.
125
178
  `),
126
179
  })
127
180
  .strict()
@@ -13,7 +13,6 @@ import {
13
13
  } from './_instructions-primitives.ts'
14
14
 
15
15
  export const meta: RobotMetaInput = {
16
- allowed_for_url_transform: false,
17
16
  bytescount: 10,
18
17
  discount_factor: 0.1,
19
18
  discount_pct: 90,
@@ -10,7 +10,6 @@ import {
10
10
  } from './_instructions-primitives.ts'
11
11
 
12
12
  export const meta: RobotMetaInput = {
13
- allowed_for_url_transform: true,
14
13
  bytescount: 10,
15
14
  discount_factor: 0.1,
16
15
  discount_pct: 90,
@@ -4,10 +4,10 @@ import type { RobotMetaInput } from './_instructions-primitives.ts'
4
4
  import { interpolateRobot, robotBase, robotUse, vimeoBase } from './_instructions-primitives.ts'
5
5
 
6
6
  export const meta: RobotMetaInput = {
7
- allowed_for_url_transform: true,
8
7
  bytescount: 6,
9
8
  discount_factor: 0.15000150001500018,
10
9
  discount_pct: 84.99984999849998,
10
+ hideCredentialsWarning: true,
11
11
  example_code: {
12
12
  steps: {
13
13
  exported: {
@@ -24,7 +24,7 @@ export const meta: RobotMetaInput = {
24
24
  minimum_charge: 0,
25
25
  output_factor: 1,
26
26
  override_lvl1: 'File Exporting',
27
- purpose_sentence: 'exports encoding results to vimeo',
27
+ purpose_sentence: 'exports encoding results to Vimeo',
28
28
  purpose_verb: 'export',
29
29
  purpose_word: 'Vimeo',
30
30
  purpose_words: 'Export files to Vimeo',
@@ -47,7 +47,18 @@ export const robotVimeoStoreInstructionsSchema = robotBase
47
47
  .merge(robotUse)
48
48
  .merge(vimeoBase)
49
49
  .extend({
50
- robot: z.literal('/vimeo/store'),
50
+ robot: z.literal('/vimeo/store').describe(`
51
+ ## Getting started
52
+
53
+ Since Vimeo works with OAuth, you will need to generate [Template Credentials](https://transloadit.com/c/template-credentials/) to use this <dfn>Robot</dfn>.
54
+
55
+ To change the \`title\` or \`description\` per video, we recommend to [inject variables into your Template](/docs/topics/templates/).
56
+
57
+ > [!Warning]
58
+ > Vimeo's API limits the number of concurrent uploads per minute based on your Vimeo account plan. To see how many videos can be uploaded at once based on your plan, click the following [link](https://developer.vimeo.com/guidelines/rate-limiting#table-1).
59
+
60
+ Note that this <dfn>Robot</dfn> only accepts videos.
61
+ `),
51
62
  title: z.string().describe(`
52
63
  The title of the video to be displayed on Vimeo.
53
64
  `),
@@ -14,7 +14,6 @@ import {
14
14
  } from './_instructions-primitives.ts'
15
15
 
16
16
  export const meta: RobotMetaInput = {
17
- allowed_for_url_transform: true,
18
17
  bytescount: 10,
19
18
  discount_factor: 0.1,
20
19
  discount_pct: 90,
@@ -4,7 +4,6 @@ import type { RobotMetaInput } from './_instructions-primitives.ts'
4
4
  import { interpolateRobot, robotBase, robotUse, wasabiBase } from './_instructions-primitives.ts'
5
5
 
6
6
  export const meta: RobotMetaInput = {
7
- allowed_for_url_transform: true,
8
7
  bytescount: 6,
9
8
  discount_factor: 0.15000150001500018,
10
9
  discount_pct: 84.99984999849998,
@@ -4,10 +4,10 @@ import type { RobotMetaInput } from './_instructions-primitives.ts'
4
4
  import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts'
5
5
 
6
6
  export const meta: RobotMetaInput = {
7
- allowed_for_url_transform: true,
8
7
  bytescount: 6,
9
8
  discount_factor: 0.15000150001500018,
10
9
  discount_pct: 84.99984999849998,
10
+ hideCredentialsWarning: true,
11
11
  example_code: {
12
12
  steps: {
13
13
  exported: {
@@ -49,15 +49,14 @@ export const robotYoutubeStoreInstructionsSchema = robotBase
49
49
  .merge(robotUse)
50
50
  .extend({
51
51
  robot: z.literal('/youtube/store').describe(`
52
- > [!Note]
53
- > This <dfn>Robot</dfn> only accepts videos.
54
-
55
- ## Installation
52
+ ## Getting started
56
53
 
57
54
  Since YouTube works with OAuth, you will need to generate [Template Credentials](/c/template-credentials/) to use this <dfn>Robot</dfn>.
58
55
 
59
56
  To change the \`title\`, \`description\`, \`category\`, or \`keywords\` per video, we recommend to [inject variables into your Template](/docs/topics/templates/).
60
57
 
58
+ Note that this <dfn>Robot</dfn> only accepts videos.
59
+
61
60
  ## Adding a thumbnail image to your video
62
61
 
63
62
  You can add a custom thumbnail to your video on YouTube by using our \`"as"\` syntax for the \`"use"\` parameter to supply both a video and an image to the step:
@@ -1,9 +1,22 @@
1
1
  import { z } from 'zod'
2
2
 
3
- import { robotsSchema, robotsWithHiddenBotsAndFieldsSchema } from './robots/_index.ts'
3
+ import {
4
+ robotsSchema,
5
+ robotsWithHiddenBotsAndFieldsSchema,
6
+ } from './robots/_index.ts'
7
+ import type {
8
+ RobotsSchema,
9
+ RobotsWithHiddenBotsAndFields,
10
+ } from './robots/_index.ts'
4
11
  import type { RobotUse } from './robots/_instructions-primitives.ts'
5
12
 
6
- export const stepSchema = z
13
+ export type Step = RobotsSchema
14
+ export type StepInput = Step
15
+ export type StepInputWithUse = StepInput & RobotUse
16
+ export type Steps = Record<string, Step>
17
+ export type StepsInput = Steps
18
+
19
+ export const stepSchema: z.ZodType<Step> = z
7
20
  .object({
8
21
  // This is a hack to get nicer robot hover messages in editors.
9
22
  robot: z
@@ -11,15 +24,17 @@ export const stepSchema = z
11
24
  .describe('Identifier of the [robot](https://transloadit.com/docs/robots/) to execute'),
12
25
  })
13
26
  .and(robotsSchema)
14
- export const stepsSchema = z.record(stepSchema).describe('Contains Assembly Instructions.')
15
- export type Step = z.infer<typeof stepSchema>
16
- export type StepInput = z.input<typeof stepSchema>
17
- export type StepInputWithUse = StepInput & RobotUse
18
- export type Steps = z.infer<typeof stepsSchema>
19
- export type StepsInput = z.input<typeof stepsSchema>
27
+ export const stepsSchema: z.ZodType<Steps> = z
28
+ .record(stepSchema)
29
+ .describe('Contains Assembly Instructions.')
20
30
  export const optionalStepsSchema = stepsSchema.optional()
21
31
 
22
- export const stepSchemaWithHiddenFields = z
32
+ export type StepWithHiddenFields = RobotsWithHiddenBotsAndFields
33
+ export type StepWithHiddenFieldsInput = StepWithHiddenFields
34
+ export type StepsWithHiddenFields = Record<string, StepWithHiddenFields>
35
+ export type StepsWithHiddenFieldsInput = StepsWithHiddenFields
36
+
37
+ export const stepSchemaWithHiddenFields: z.ZodType<StepWithHiddenFields> = z
23
38
  .object({
24
39
  // This is a hack to get nicer robot hover messages in editors.
25
40
  robot: z
@@ -27,13 +42,9 @@ export const stepSchemaWithHiddenFields = z
27
42
  .describe('Identifier of the [robot](https://transloadit.com/docs/robots/) to execute'),
28
43
  })
29
44
  .and(robotsWithHiddenBotsAndFieldsSchema)
30
- export const stepsSchemaWithHiddenFields = z
45
+ export const stepsSchemaWithHiddenFields: z.ZodType<StepsWithHiddenFields> = z
31
46
  .record(stepSchemaWithHiddenFields)
32
47
  .describe('Contains Assembly Instructions.')
33
- export type StepWithHiddenFields = z.infer<typeof stepSchemaWithHiddenFields>
34
- export type StepWithHiddenFieldsInput = z.input<typeof stepSchemaWithHiddenFields>
35
- export type StepsWithHiddenFields = z.infer<typeof stepsSchemaWithHiddenFields>
36
- export type StepsWithHiddenFieldsInput = z.input<typeof stepsSchemaWithHiddenFields>
37
48
  const optionalStepsWithHiddenFieldsSchema = stepsSchemaWithHiddenFields.optional()
38
49
 
39
50
  export const fieldsSchema = z
@@ -48,7 +59,27 @@ export const notifyUrlSchema = z
48
59
  .optional()
49
60
  .nullable()
50
61
  .describe(
51
- 'Transloadit can send a Pingback to your server when the Assembly is completed. Well send the Assembly status in a form url-encoded JSON string inside of a transloadit field in a multipart POST request to the URL supplied here.',
62
+ "Transloadit can send a Pingback to your server when the Assembly is completed. We'll send the Assembly status in a form url-encoded JSON string inside of a transloadit field in a multipart POST request to the URL supplied here. Use `notification_payload` to reduce the payload size (e.g. `without_uploads`, `without_results`); the same filtering applies to notification replays.",
63
+ )
64
+
65
+ export type NotificationPayloadFilter =
66
+ | 'without_result_meta_data'
67
+ | 'without_results'
68
+ | 'without_upload_meta_data'
69
+ | 'without_uploads'
70
+
71
+ export const notificationPayloadFilterValues = [
72
+ 'without_result_meta_data',
73
+ 'without_results',
74
+ 'without_upload_meta_data',
75
+ 'without_uploads',
76
+ ] as const satisfies readonly NotificationPayloadFilter[]
77
+
78
+ export const notificationPayloadSchema = z
79
+ .array(z.enum(notificationPayloadFilterValues))
80
+ .optional()
81
+ .describe(
82
+ 'Controls the size of the payload sent in Assembly notifications (both the initial notification and any notification replays). An empty array (default) sends the complete Assembly status. Add `"without_upload_meta_data"` to strip `meta` from files in `uploads`. Add `"without_result_meta_data"` to strip `meta` from files in `results`. Add `"without_uploads"` to strip `uploads` entirely. Add `"without_results"` to strip `results` entirely. Filtering is applied before serialization, so using these options reduces memory use and helps avoid oversized-payload or OOM failures on large assemblies.',
52
83
  )
53
84
 
54
85
  export const templateIdSchema = z
@@ -122,6 +153,7 @@ const assemblyInstructionsSharedShape = {
122
153
  'Set this to false to disallow Overruling Templates at Runtime. If you set this to false then template_id and steps will be mutually exclusive and you may only supply one of those parameters. Recommended when deploying Transloadit in untrusted environments. This makes sense to set as part of a Template, rather than on the Assembly itself when creating it.',
123
154
  ),
124
155
  notify_url: notifyUrlSchema,
156
+ notification_payload: notificationPayloadSchema,
125
157
  fields: fieldsSchema,
126
158
  quiet: z
127
159
  .boolean()
@@ -30,6 +30,7 @@ export const templateCredentialsSchema = z
30
30
  'ftp',
31
31
  'google',
32
32
  'http',
33
+ 'mega',
33
34
  'minio',
34
35
  'rackspace',
35
36
  's3',
@@ -227,14 +227,9 @@ export function zodParseWithContext<T extends z.ZodType>(
227
227
  }
228
228
  // Handle other specific error codes (only if not handled above)
229
229
  else {
230
- // Handle specific error codes for better messages
231
- let received: string
232
- let type: string
233
- let bigType: string
234
-
235
230
  switch (zodIssue.code) {
236
231
  case 'invalid_type': {
237
- received = zodIssue.received === 'undefined' ? 'missing' : zodIssue.received
232
+ const received = zodIssue.received === 'undefined' ? 'missing' : zodIssue.received
238
233
  const actualValue = getByPath(obj, path)
239
234
  const actualValueStr =
240
235
  typeof actualValue === 'object' && actualValue !== null
@@ -254,14 +249,26 @@ export function zodParseWithContext<T extends z.ZodType>(
254
249
  messages.push(zodIssue.message)
255
250
  }
256
251
  break
257
- case 'too_small':
258
- type = zodIssue.type === 'string' ? 'characters' : 'items'
259
- messages.push(`should have at least ${zodIssue.minimum} ${type}`)
252
+ case 'too_small': {
253
+ messages.push(
254
+ zodIssue.type === 'string'
255
+ ? `should have at least ${zodIssue.minimum} characters`
256
+ : zodIssue.type === 'array' || zodIssue.type === 'set'
257
+ ? `should have at least ${zodIssue.minimum} items`
258
+ : `must be ${zodIssue.minimum} or greater`,
259
+ )
260
260
  break
261
- case 'too_big':
262
- bigType = zodIssue.type === 'string' ? 'characters' : 'items'
263
- messages.push(`should have at most ${zodIssue.maximum} ${bigType}`)
261
+ }
262
+ case 'too_big': {
263
+ messages.push(
264
+ zodIssue.type === 'string'
265
+ ? `may have at most ${zodIssue.maximum} characters`
266
+ : zodIssue.type === 'array' || zodIssue.type === 'set'
267
+ ? `may have at most ${zodIssue.maximum} items`
268
+ : `may not exceed ${zodIssue.maximum}`,
269
+ )
264
270
  break
271
+ }
265
272
  case 'custom':
266
273
  messages.push(zodIssue.message)
267
274
  break
@@ -10,6 +10,7 @@ export type BearerTokenResponse = {
10
10
  }
11
11
 
12
12
  export type MintBearerTokenOptions = {
13
+ allowProcessEnvEndpointFallback?: boolean
13
14
  endpoint?: string
14
15
  aud?: BearerTokenAudience | string
15
16
  /**
@@ -49,8 +50,15 @@ const isLoopbackHost = (hostname: string): boolean =>
49
50
 
50
51
  type TokenBaseResult = { ok: true; baseUrl: URL } | { ok: false; error: string }
51
52
 
52
- const normalizeTokenBaseEndpoint = (raw?: string): TokenBaseResult => {
53
- const baseRaw = (raw || process.env.TRANSLOADIT_ENDPOINT || 'https://api2.transloadit.com').trim()
53
+ const normalizeTokenBaseEndpoint = (
54
+ raw?: string,
55
+ allowProcessEnvEndpointFallback = true,
56
+ ): TokenBaseResult => {
57
+ const baseRaw = (
58
+ raw ||
59
+ (allowProcessEnvEndpointFallback ? process.env.TRANSLOADIT_ENDPOINT : undefined) ||
60
+ 'https://api2.transloadit.com'
61
+ ).trim()
54
62
 
55
63
  let url: URL
56
64
  try {
@@ -118,7 +126,10 @@ export async function mintBearerTokenWithCredentials(
118
126
  credentials: { authKey: string; authSecret: string },
119
127
  options: MintBearerTokenOptions = {},
120
128
  ): Promise<MintBearerTokenResult> {
121
- const endpointResult = normalizeTokenBaseEndpoint(options.endpoint)
129
+ const endpointResult = normalizeTokenBaseEndpoint(
130
+ options.endpoint,
131
+ options.allowProcessEnvEndpointFallback,
132
+ )
122
133
  if (!endpointResult.ok) {
123
134
  return { ok: false, error: endpointResult.error }
124
135
  }
@@ -1,8 +1,6 @@
1
- import 'dotenv/config'
2
- import process from 'node:process'
3
1
  import { Command, Option } from 'clipanion'
4
2
  import { Transloadit as TransloaditClient } from '../../Transloadit.ts'
5
- import { requireEnvCredentials } from '../helpers.ts'
3
+ import { buildMissingAuthMessage, resolveCliConfig } from '../helpers.ts'
6
4
  import type { IOutputCtl } from '../OutputCtl.ts'
7
5
  import OutputCtl, { LOG_LEVEL_DEFAULT, LOG_LEVEL_NAMES, parseLogLevel } from '../OutputCtl.ts'
8
6
 
@@ -17,7 +15,7 @@ abstract class BaseCommand extends Command {
17
15
 
18
16
  endpoint = Option.String('--endpoint', {
19
17
  description:
20
- 'API endpoint URL (default: https://api2.transloadit.com, or TRANSLOADIT_ENDPOINT env var)',
18
+ 'API endpoint URL (default: https://api2.transloadit.com, or TRANSLOADIT_ENDPOINT from the environment, .env, or ~/.transloadit/credentials)',
21
19
  })
22
20
 
23
21
  protected output!: IOutputCtl
@@ -32,16 +30,16 @@ abstract class BaseCommand extends Command {
32
30
  }
33
31
 
34
32
  protected setupClient(): boolean {
35
- const credsResult = requireEnvCredentials()
36
- if (!credsResult.ok) {
37
- this.output.error(credsResult.error)
33
+ const config = resolveCliConfig()
34
+ if (config.auth == null) {
35
+ this.output.error(config.loadError ?? buildMissingAuthMessage())
38
36
  return false
39
37
  }
40
38
 
41
- const endpoint = this.endpoint || process.env.TRANSLOADIT_ENDPOINT
39
+ const endpoint = this.endpoint || config.endpoint
42
40
 
43
41
  this.client = new TransloaditClient({
44
- ...credsResult.credentials,
42
+ ...config.auth,
45
43
  ...(endpoint && { endpoint }),
46
44
  })
47
45
  return true