transloadit 4.7.6 → 4.8.0

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 (495) hide show
  1. package/README.md +46 -19
  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/cli/generateIntentDocs.d.ts +5 -1
  356. package/dist/cli/generateIntentDocs.d.ts.map +1 -1
  357. package/dist/cli/generateIntentDocs.js +25 -9
  358. package/dist/cli/generateIntentDocs.js.map +1 -1
  359. package/dist/cli/intentCommandSpecs.d.ts.map +1 -1
  360. package/dist/cli/intentCommandSpecs.js +4 -6
  361. package/dist/cli/intentCommandSpecs.js.map +1 -1
  362. package/dist/cli/intentRuntime.d.ts.map +1 -1
  363. package/dist/cli/intentRuntime.js +4 -4
  364. package/dist/cli/intentRuntime.js.map +1 -1
  365. package/dist/cli/semanticIntents/imageDescribe.d.ts +3 -1
  366. package/dist/cli/semanticIntents/imageDescribe.d.ts.map +1 -1
  367. package/dist/cli/semanticIntents/imageDescribe.js +1 -1
  368. package/dist/cli/semanticIntents/imageDescribe.js.map +1 -1
  369. package/dist/cli/semanticIntents/imageGenerate.d.ts +94 -0
  370. package/dist/cli/semanticIntents/imageGenerate.d.ts.map +1 -0
  371. package/dist/cli/semanticIntents/imageGenerate.js +215 -0
  372. package/dist/cli/semanticIntents/imageGenerate.js.map +1 -0
  373. package/dist/cli/semanticIntents/index.d.ts +3 -1
  374. package/dist/cli/semanticIntents/index.d.ts.map +1 -1
  375. package/dist/cli/semanticIntents/index.js +2 -0
  376. package/dist/cli/semanticIntents/index.js.map +1 -1
  377. package/dist/cli/semanticIntents/markdownPdf.js +1 -1
  378. package/dist/cli/semanticIntents/markdownPdf.js.map +1 -1
  379. package/dist/cli.js +0 -0
  380. package/dist/robots.js +2 -2
  381. package/dist/robots.js.map +1 -1
  382. package/package.json +1 -1
  383. package/src/alphalib/assembly-linter.ts +1 -1
  384. package/src/alphalib/stepParsing.ts +2 -2
  385. package/src/alphalib/types/assemblyStatus.ts +41 -2
  386. package/src/alphalib/types/robots/_index.ts +211 -20
  387. package/src/alphalib/types/robots/_instructions-primitives.ts +93 -3
  388. package/src/alphalib/types/robots/ai-chat.ts +35 -5
  389. package/src/alphalib/types/robots/assembly-savejson.ts +8 -0
  390. package/src/alphalib/types/robots/audio-artwork.ts +4 -5
  391. package/src/alphalib/types/robots/audio-concat.ts +1 -2
  392. package/src/alphalib/types/robots/audio-encode.ts +1 -2
  393. package/src/alphalib/types/robots/audio-loop.ts +1 -2
  394. package/src/alphalib/types/robots/audio-merge.ts +1 -2
  395. package/src/alphalib/types/robots/audio-split.ts +130 -0
  396. package/src/alphalib/types/robots/audio-waveform.ts +90 -6
  397. package/src/alphalib/types/robots/azure-import.ts +0 -1
  398. package/src/alphalib/types/robots/azure-store.ts +0 -1
  399. package/src/alphalib/types/robots/backblaze-import.ts +0 -1
  400. package/src/alphalib/types/robots/backblaze-store.ts +0 -1
  401. package/src/alphalib/types/robots/box-import.ts +97 -0
  402. package/src/alphalib/types/robots/box-store.ts +94 -0
  403. package/src/alphalib/types/robots/cloudfiles-import.ts +0 -1
  404. package/src/alphalib/types/robots/cloudfiles-store.ts +0 -1
  405. package/src/alphalib/types/robots/cloudflare-import.ts +0 -1
  406. package/src/alphalib/types/robots/cloudflare-store.ts +0 -1
  407. package/src/alphalib/types/robots/digitalocean-import.ts +0 -1
  408. package/src/alphalib/types/robots/digitalocean-store.ts +0 -1
  409. package/src/alphalib/types/robots/document-autorotate.ts +8 -1
  410. package/src/alphalib/types/robots/document-convert.ts +10 -3
  411. package/src/alphalib/types/robots/document-merge.ts +0 -1
  412. package/src/alphalib/types/robots/document-ocr.ts +0 -1
  413. package/src/alphalib/types/robots/document-optimize.ts +0 -1
  414. package/src/alphalib/types/robots/document-split.ts +9 -1
  415. package/src/alphalib/types/robots/document-thumbs.ts +26 -4
  416. package/src/alphalib/types/robots/dropbox-import.ts +0 -1
  417. package/src/alphalib/types/robots/dropbox-store.ts +0 -1
  418. package/src/alphalib/types/robots/edgly-deliver.ts +8 -1
  419. package/src/alphalib/types/robots/file-compress.ts +8 -1
  420. package/src/alphalib/types/robots/file-decompress.ts +30 -5
  421. package/src/alphalib/types/robots/file-filter.ts +23 -6
  422. package/src/alphalib/types/robots/file-hash.ts +23 -1
  423. package/src/alphalib/types/robots/file-preview.ts +8 -1
  424. package/src/alphalib/types/robots/file-read.ts +9 -1
  425. package/src/alphalib/types/robots/file-serve.ts +39 -7
  426. package/src/alphalib/types/robots/file-verify.ts +0 -1
  427. package/src/alphalib/types/robots/file-virusscan.ts +6 -4
  428. package/src/alphalib/types/robots/file-watermark.ts +10 -0
  429. package/src/alphalib/types/robots/ftp-import.ts +0 -1
  430. package/src/alphalib/types/robots/ftp-store.ts +0 -1
  431. package/src/alphalib/types/robots/google-import.ts +0 -1
  432. package/src/alphalib/types/robots/google-store.ts +0 -1
  433. package/src/alphalib/types/robots/html-convert.ts +0 -1
  434. package/src/alphalib/types/robots/http-import.ts +0 -1
  435. package/src/alphalib/types/robots/image-bgremove.ts +4 -2
  436. package/src/alphalib/types/robots/image-copyrightdetect.ts +167 -0
  437. package/src/alphalib/types/robots/image-describe.ts +0 -1
  438. package/src/alphalib/types/robots/image-enhance.ts +185 -0
  439. package/src/alphalib/types/robots/image-facedetect.ts +0 -1
  440. package/src/alphalib/types/robots/image-generate.ts +74 -8
  441. package/src/alphalib/types/robots/image-merge.ts +0 -1
  442. package/src/alphalib/types/robots/image-ocr.ts +0 -1
  443. package/src/alphalib/types/robots/image-optimize.ts +16 -3
  444. package/src/alphalib/types/robots/image-resize.ts +37 -1
  445. package/src/alphalib/types/robots/image-upscale.ts +93 -0
  446. package/src/alphalib/types/robots/mega-import.ts +123 -0
  447. package/src/alphalib/types/robots/mega-store.ts +109 -0
  448. package/src/alphalib/types/robots/meta-read.ts +8 -0
  449. package/src/alphalib/types/robots/meta-write.ts +0 -1
  450. package/src/alphalib/types/robots/minio-import.ts +0 -1
  451. package/src/alphalib/types/robots/minio-store.ts +0 -1
  452. package/src/alphalib/types/robots/progress-simulate.ts +13 -0
  453. package/src/alphalib/types/robots/s3-import.ts +0 -1
  454. package/src/alphalib/types/robots/s3-store.ts +0 -1
  455. package/src/alphalib/types/robots/script-run.ts +11 -1
  456. package/src/alphalib/types/robots/sftp-import.ts +0 -1
  457. package/src/alphalib/types/robots/sftp-store.ts +0 -1
  458. package/src/alphalib/types/robots/speech-transcribe.ts +0 -1
  459. package/src/alphalib/types/robots/supabase-import.ts +0 -1
  460. package/src/alphalib/types/robots/supabase-store.ts +0 -1
  461. package/src/alphalib/types/robots/swift-import.ts +0 -1
  462. package/src/alphalib/types/robots/swift-store.ts +0 -1
  463. package/src/alphalib/types/robots/text-speak.ts +0 -1
  464. package/src/alphalib/types/robots/text-translate.ts +0 -1
  465. package/src/alphalib/types/robots/tigris-import.ts +0 -1
  466. package/src/alphalib/types/robots/tigris-store.ts +0 -1
  467. package/src/alphalib/types/robots/tlcdn-deliver.ts +8 -1
  468. package/src/alphalib/types/robots/tus-store.ts +1 -14
  469. package/src/alphalib/types/robots/upload-handle.ts +0 -1
  470. package/src/alphalib/types/robots/video-adaptive.ts +22 -6
  471. package/src/alphalib/types/robots/video-artwork.ts +100 -0
  472. package/src/alphalib/types/robots/video-concat.ts +30 -1
  473. package/src/alphalib/types/robots/video-encode.ts +0 -1
  474. package/src/alphalib/types/robots/video-generate.ts +120 -0
  475. package/src/alphalib/types/robots/video-merge.ts +33 -1
  476. package/src/alphalib/types/robots/video-ondemand.ts +3 -4
  477. package/src/alphalib/types/robots/video-split.ts +117 -0
  478. package/src/alphalib/types/robots/video-subtitle.ts +61 -8
  479. package/src/alphalib/types/robots/video-thumbs.ts +0 -1
  480. package/src/alphalib/types/robots/vimeo-import.ts +0 -1
  481. package/src/alphalib/types/robots/vimeo-store.ts +14 -3
  482. package/src/alphalib/types/robots/wasabi-import.ts +0 -1
  483. package/src/alphalib/types/robots/wasabi-store.ts +0 -1
  484. package/src/alphalib/types/robots/youtube-store.ts +4 -5
  485. package/src/alphalib/types/template.ts +47 -15
  486. package/src/alphalib/types/templateCredential.ts +1 -0
  487. package/src/alphalib/zodParseWithContext.ts +19 -12
  488. package/src/cli/generateIntentDocs.ts +28 -9
  489. package/src/cli/intentCommandSpecs.ts +4 -9
  490. package/src/cli/intentRuntime.ts +8 -3
  491. package/src/cli/semanticIntents/imageDescribe.ts +4 -1
  492. package/src/cli/semanticIntents/imageGenerate.ts +254 -0
  493. package/src/cli/semanticIntents/index.ts +6 -1
  494. package/src/cli/semanticIntents/markdownPdf.ts +1 -1
  495. 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
@@ -1,5 +1,6 @@
1
1
  import { mkdir, readFile, writeFile } from 'node:fs/promises'
2
2
  import { dirname } from 'node:path'
3
+ import { pathToFileURL } from 'node:url'
3
4
  import {
4
5
  getConcurrencyOptionDocumentation,
5
6
  getDeleteAfterProcessingOptionDocumentation,
@@ -127,7 +128,14 @@ function getBackendSummary(catalogDefinition: IntentDefinition): string {
127
128
  function getUsage(definition: ResolvedIntentCommandDefinition): string {
128
129
  const parts = ['npx transloadit', ...definition.paths]
129
130
  if (definition.runnerKind !== 'no-input') {
130
- parts.push('--input', '<path|dir|url|->')
131
+ if (
132
+ 'inputPolicy' in definition.intentDefinition &&
133
+ definition.intentDefinition.inputPolicy.kind === 'optional'
134
+ ) {
135
+ parts.push('[--input', '<path|dir|url|->]')
136
+ } else {
137
+ parts.push('--input', '<path|dir|url|->')
138
+ }
131
139
  }
132
140
  parts.push('[options]')
133
141
  return parts.join(' ')
@@ -322,7 +330,7 @@ function renderAtAGlanceTable(definitions: ResolvedIntentCommandDefinition[]): s
322
330
  )
323
331
  }
324
332
 
325
- function renderIntentDocsBody({
333
+ export function renderIntentDocsBody({
326
334
  definitions,
327
335
  headingLevel,
328
336
  }: {
@@ -359,6 +367,15 @@ function renderIntentDocsBody({
359
367
  return lines.join('\n').trim()
360
368
  }
361
369
 
370
+ function isEntrypoint(): boolean {
371
+ const entrypoint = process.argv[1]
372
+ if (entrypoint == null) {
373
+ return false
374
+ }
375
+
376
+ return import.meta.url === pathToFileURL(entrypoint).href
377
+ }
378
+
362
379
  function replaceGeneratedBlock({
363
380
  endMarker,
364
381
  markdown,
@@ -410,10 +427,12 @@ async function main(): Promise<void> {
410
427
  await writeFile(readmeUrl, `${nextReadme}\n`)
411
428
  }
412
429
 
413
- main().catch((error) => {
414
- if (!(error instanceof Error)) {
415
- throw new Error(`Was thrown a non-error: ${String(error)}`)
416
- }
417
- console.error(error)
418
- process.exit(1)
419
- })
430
+ if (isEntrypoint()) {
431
+ main().catch((error) => {
432
+ if (!(error instanceof Error)) {
433
+ throw new Error(`Was thrown a non-error: ${String(error)}`)
434
+ }
435
+ console.error(error)
436
+ process.exit(1)
437
+ })
438
+ }
@@ -37,10 +37,6 @@ import {
37
37
  robotImageBgremoveInstructionsSchema,
38
38
  meta as robotImageBgremoveMeta,
39
39
  } from '../alphalib/types/robots/image-bgremove.ts'
40
- import {
41
- robotImageGenerateInstructionsSchema,
42
- meta as robotImageGenerateMeta,
43
- } from '../alphalib/types/robots/image-generate.ts'
44
40
  import {
45
41
  robotImageOptimizeInstructionsSchema,
46
42
  meta as robotImageOptimizeMeta,
@@ -169,11 +165,10 @@ export function findIntentDefinitionByPaths(
169
165
  }
170
166
 
171
167
  export const intentCatalog = [
172
- defineRobotIntent({
173
- kind: 'robot',
174
- robot: '/image/generate',
175
- meta: robotImageGenerateMeta,
176
- schema: robotImageGenerateInstructionsSchema,
168
+ defineSemanticIntent({
169
+ kind: 'semantic',
170
+ paths: ['image', 'generate'],
171
+ semantic: 'image-generate',
177
172
  }),
178
173
  defineRobotIntent({
179
174
  kind: 'robot',
@@ -318,8 +318,9 @@ function createSingleStep(
318
318
  function createDynamicIntentStep(
319
319
  execution: IntentDynamicStepExecutionDefinition,
320
320
  rawValues: Record<string, unknown>,
321
+ hasInputs: boolean,
321
322
  ): Record<string, unknown> {
322
- return getSemanticIntentDescriptor(execution.handler).createStep(rawValues)
323
+ return getSemanticIntentDescriptor(execution.handler).createStep(rawValues, { hasInputs })
323
324
  }
324
325
 
325
326
  function requiresLocalInput(
@@ -367,7 +368,11 @@ async function executeIntentCommand({
367
368
  rawValues,
368
369
  createOptions.inputs.length > 0,
369
370
  )
370
- : createDynamicIntentStep(definition.execution, rawValues),
371
+ : createDynamicIntentStep(
372
+ definition.execution,
373
+ rawValues,
374
+ createOptions.inputs.length > 0,
375
+ ),
371
376
  } as AssembliesCreateOptions['stepsData'],
372
377
  }
373
378
 
@@ -563,7 +568,7 @@ abstract class GeneratedFileIntentCommandBase extends GeneratedIntentCommandBase
563
568
 
564
569
  const execution = this.getIntentDefinition().execution
565
570
  if (execution.kind === 'dynamic-step') {
566
- createDynamicIntentStep(execution, rawValues)
571
+ createDynamicIntentStep(execution, rawValues, this.getProvidedInputCount() > 0)
567
572
  }
568
573
 
569
574
  return undefined
@@ -212,7 +212,10 @@ function buildDescribeAiChatMessages({
212
212
  }
213
213
  }
214
214
 
215
- function createImageDescribeStep(rawValues: Record<string, unknown>): Record<string, unknown> {
215
+ function createImageDescribeStep(
216
+ rawValues: Record<string, unknown>,
217
+ _context: { hasInputs: boolean },
218
+ ): Record<string, unknown> {
216
219
  const { fields, profile } = resolveImageDescribeRequest(rawValues)
217
220
  if (fields.length === 1 && fields[0] === 'labels') {
218
221
  return {