@transloadit/zod 4.2.0 → 4.3.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 (517) hide show
  1. package/README.md +2 -2
  2. package/dist/v3/assembliesGet.d.ts +8 -3
  3. package/dist/v3/assembliesGet.d.ts.map +1 -1
  4. package/dist/v3/assemblyReplay.d.ts +7 -7858
  5. package/dist/v3/assemblyReplay.d.ts.map +1 -1
  6. package/dist/v3/assemblyReplayNotification.d.ts +7 -7858
  7. package/dist/v3/assemblyReplayNotification.d.ts.map +1 -1
  8. package/dist/v3/assemblyStatus.d.ts +4832 -323
  9. package/dist/v3/assemblyStatus.d.ts.map +1 -1
  10. package/dist/v3/assemblyStatus.js +53 -3
  11. package/dist/v3/bill.d.ts +5 -0
  12. package/dist/v3/bill.d.ts.map +1 -1
  13. package/dist/v3/builtinTemplates.d.ts +83 -0
  14. package/dist/v3/builtinTemplates.d.ts.map +1 -0
  15. package/dist/v3/builtinTemplates.js +18 -0
  16. package/dist/v3/index.d.ts +2 -0
  17. package/dist/v3/index.d.ts.map +1 -1
  18. package/dist/v3/index.js +2 -0
  19. package/dist/v3/robots/_index.d.ts +903 -72600
  20. package/dist/v3/robots/_index.d.ts.map +1 -1
  21. package/dist/v3/robots/_index.js +62 -11
  22. package/dist/v3/robots/_instructions-primitives.d.ts +41 -10
  23. package/dist/v3/robots/_instructions-primitives.d.ts.map +1 -1
  24. package/dist/v3/robots/_instructions-primitives.js +89 -3
  25. package/dist/v3/robots/ai-chat.d.ts +57 -4
  26. package/dist/v3/robots/ai-chat.d.ts.map +1 -1
  27. package/dist/v3/robots/ai-chat.js +34 -6
  28. package/dist/v3/robots/assembly-savejson.d.ts.map +1 -1
  29. package/dist/v3/robots/assembly-savejson.js +8 -0
  30. package/dist/v3/robots/audio-artwork.d.ts.map +1 -1
  31. package/dist/v3/robots/audio-artwork.js +4 -5
  32. package/dist/v3/robots/audio-concat.d.ts.map +1 -1
  33. package/dist/v3/robots/audio-concat.js +1 -2
  34. package/dist/v3/robots/audio-encode.d.ts.map +1 -1
  35. package/dist/v3/robots/audio-encode.js +1 -2
  36. package/dist/v3/robots/audio-loop.d.ts.map +1 -1
  37. package/dist/v3/robots/audio-loop.js +1 -2
  38. package/dist/v3/robots/audio-merge.d.ts.map +1 -1
  39. package/dist/v3/robots/audio-merge.js +1 -2
  40. package/dist/v3/robots/audio-split.d.ts +2936 -0
  41. package/dist/v3/robots/audio-split.d.ts.map +1 -0
  42. package/dist/v3/robots/audio-split.js +87 -0
  43. package/dist/v3/robots/audio-waveform.d.ts +92 -6
  44. package/dist/v3/robots/audio-waveform.d.ts.map +1 -1
  45. package/dist/v3/robots/audio-waveform.js +72 -6
  46. package/dist/v3/robots/azure-import.d.ts.map +1 -1
  47. package/dist/v3/robots/azure-import.js +0 -1
  48. package/dist/v3/robots/azure-store.d.ts.map +1 -1
  49. package/dist/v3/robots/azure-store.js +0 -1
  50. package/dist/v3/robots/backblaze-import.d.ts.map +1 -1
  51. package/dist/v3/robots/backblaze-import.js +0 -1
  52. package/dist/v3/robots/backblaze-store.d.ts.map +1 -1
  53. package/dist/v3/robots/backblaze-store.js +0 -1
  54. package/dist/v3/robots/box-import.d.ts +150 -0
  55. package/dist/v3/robots/box-import.d.ts.map +1 -0
  56. package/dist/v3/robots/box-import.js +62 -0
  57. package/dist/v3/robots/box-store.d.ts +455 -0
  58. package/dist/v3/robots/box-store.d.ts.map +1 -0
  59. package/dist/v3/robots/box-store.js +65 -0
  60. package/dist/v3/robots/cloudfiles-import.d.ts.map +1 -1
  61. package/dist/v3/robots/cloudfiles-import.js +0 -1
  62. package/dist/v3/robots/cloudfiles-store.d.ts.map +1 -1
  63. package/dist/v3/robots/cloudfiles-store.js +0 -1
  64. package/dist/v3/robots/cloudflare-import.d.ts.map +1 -1
  65. package/dist/v3/robots/cloudflare-import.js +0 -1
  66. package/dist/v3/robots/cloudflare-store.d.ts.map +1 -1
  67. package/dist/v3/robots/cloudflare-store.js +0 -1
  68. package/dist/v3/robots/digitalocean-import.d.ts.map +1 -1
  69. package/dist/v3/robots/digitalocean-import.js +0 -1
  70. package/dist/v3/robots/digitalocean-store.d.ts.map +1 -1
  71. package/dist/v3/robots/digitalocean-store.js +0 -1
  72. package/dist/v3/robots/document-autorotate.d.ts.map +1 -1
  73. package/dist/v3/robots/document-autorotate.js +8 -1
  74. package/dist/v3/robots/document-convert.d.ts +8 -8
  75. package/dist/v3/robots/document-convert.d.ts.map +1 -1
  76. package/dist/v3/robots/document-convert.js +9 -3
  77. package/dist/v3/robots/document-merge.d.ts.map +1 -1
  78. package/dist/v3/robots/document-merge.js +0 -1
  79. package/dist/v3/robots/document-ocr.d.ts.map +1 -1
  80. package/dist/v3/robots/document-ocr.js +0 -1
  81. package/dist/v3/robots/document-optimize.d.ts.map +1 -1
  82. package/dist/v3/robots/document-optimize.js +0 -1
  83. package/dist/v3/robots/document-split.d.ts.map +1 -1
  84. package/dist/v3/robots/document-split.js +9 -1
  85. package/dist/v3/robots/document-thumbs.d.ts +12 -0
  86. package/dist/v3/robots/document-thumbs.d.ts.map +1 -1
  87. package/dist/v3/robots/document-thumbs.js +23 -4
  88. package/dist/v3/robots/dropbox-import.d.ts.map +1 -1
  89. package/dist/v3/robots/dropbox-import.js +0 -1
  90. package/dist/v3/robots/dropbox-store.d.ts.map +1 -1
  91. package/dist/v3/robots/dropbox-store.js +0 -1
  92. package/dist/v3/robots/edgly-deliver.d.ts.map +1 -1
  93. package/dist/v3/robots/edgly-deliver.js +8 -1
  94. package/dist/v3/robots/file-compress.d.ts +12 -0
  95. package/dist/v3/robots/file-compress.d.ts.map +1 -1
  96. package/dist/v3/robots/file-compress.js +8 -1
  97. package/dist/v3/robots/file-decompress.d.ts +24 -0
  98. package/dist/v3/robots/file-decompress.d.ts.map +1 -1
  99. package/dist/v3/robots/file-decompress.js +30 -5
  100. package/dist/v3/robots/file-filter.d.ts.map +1 -1
  101. package/dist/v3/robots/file-filter.js +23 -6
  102. package/dist/v3/robots/file-hash.d.ts +24 -0
  103. package/dist/v3/robots/file-hash.d.ts.map +1 -1
  104. package/dist/v3/robots/file-hash.js +23 -1
  105. package/dist/v3/robots/file-preview.d.ts +12 -0
  106. package/dist/v3/robots/file-preview.d.ts.map +1 -1
  107. package/dist/v3/robots/file-preview.js +8 -1
  108. package/dist/v3/robots/file-read.d.ts.map +1 -1
  109. package/dist/v3/robots/file-read.js +9 -1
  110. package/dist/v3/robots/file-serve.d.ts +12 -0
  111. package/dist/v3/robots/file-serve.d.ts.map +1 -1
  112. package/dist/v3/robots/file-serve.js +38 -7
  113. package/dist/v3/robots/file-verify.d.ts.map +1 -1
  114. package/dist/v3/robots/file-verify.js +0 -1
  115. package/dist/v3/robots/file-virusscan.d.ts.map +1 -1
  116. package/dist/v3/robots/file-virusscan.js +5 -4
  117. package/dist/v3/robots/file-watermark.d.ts.map +1 -1
  118. package/dist/v3/robots/file-watermark.js +10 -0
  119. package/dist/v3/robots/ftp-import.d.ts.map +1 -1
  120. package/dist/v3/robots/ftp-import.js +0 -1
  121. package/dist/v3/robots/ftp-store.d.ts.map +1 -1
  122. package/dist/v3/robots/ftp-store.js +0 -1
  123. package/dist/v3/robots/google-import.d.ts.map +1 -1
  124. package/dist/v3/robots/google-import.js +0 -1
  125. package/dist/v3/robots/google-store.d.ts.map +1 -1
  126. package/dist/v3/robots/google-store.js +0 -1
  127. package/dist/v3/robots/html-convert.d.ts.map +1 -1
  128. package/dist/v3/robots/html-convert.js +0 -1
  129. package/dist/v3/robots/http-import.d.ts.map +1 -1
  130. package/dist/v3/robots/http-import.js +0 -1
  131. package/dist/v3/robots/image-bgremove.d.ts +8 -8
  132. package/dist/v3/robots/image-bgremove.d.ts.map +1 -1
  133. package/dist/v3/robots/image-bgremove.js +4 -2
  134. package/dist/v3/robots/image-copyrightdetect.d.ts +465 -0
  135. package/dist/v3/robots/image-copyrightdetect.d.ts.map +1 -0
  136. package/dist/v3/robots/image-copyrightdetect.js +135 -0
  137. package/dist/v3/robots/image-describe.d.ts.map +1 -1
  138. package/dist/v3/robots/image-describe.js +0 -1
  139. package/dist/v3/robots/image-enhance.d.ts +502 -0
  140. package/dist/v3/robots/image-enhance.d.ts.map +1 -0
  141. package/dist/v3/robots/image-enhance.js +145 -0
  142. package/dist/v3/robots/image-facedetect.d.ts.map +1 -1
  143. package/dist/v3/robots/image-facedetect.js +0 -1
  144. package/dist/v3/robots/image-generate.d.ts +4 -5
  145. package/dist/v3/robots/image-generate.d.ts.map +1 -1
  146. package/dist/v3/robots/image-generate.js +62 -8
  147. package/dist/v3/robots/image-merge.d.ts +96 -24
  148. package/dist/v3/robots/image-merge.d.ts.map +1 -1
  149. package/dist/v3/robots/image-merge.js +75 -7
  150. package/dist/v3/robots/image-ocr.d.ts.map +1 -1
  151. package/dist/v3/robots/image-ocr.js +0 -1
  152. package/dist/v3/robots/image-optimize.d.ts +12 -0
  153. package/dist/v3/robots/image-optimize.d.ts.map +1 -1
  154. package/dist/v3/robots/image-optimize.js +16 -3
  155. package/dist/v3/robots/image-resize.d.ts +20 -8
  156. package/dist/v3/robots/image-resize.d.ts.map +1 -1
  157. package/dist/v3/robots/image-resize.js +37 -1
  158. package/dist/v3/robots/image-upscale.d.ts +447 -0
  159. package/dist/v3/robots/image-upscale.d.ts.map +1 -0
  160. package/dist/v3/robots/image-upscale.js +64 -0
  161. package/dist/v3/robots/mega-import.d.ts +244 -0
  162. package/dist/v3/robots/mega-import.d.ts.map +1 -0
  163. package/dist/v3/robots/mega-import.js +83 -0
  164. package/dist/v3/robots/mega-store.d.ts +526 -0
  165. package/dist/v3/robots/mega-store.d.ts.map +1 -0
  166. package/dist/v3/robots/mega-store.js +81 -0
  167. package/dist/v3/robots/meta-read.d.ts.map +1 -1
  168. package/dist/v3/robots/meta-read.js +8 -0
  169. package/dist/v3/robots/meta-write.d.ts.map +1 -1
  170. package/dist/v3/robots/meta-write.js +0 -1
  171. package/dist/v3/robots/minio-import.d.ts.map +1 -1
  172. package/dist/v3/robots/minio-import.js +0 -1
  173. package/dist/v3/robots/minio-store.d.ts.map +1 -1
  174. package/dist/v3/robots/minio-store.js +0 -1
  175. package/dist/v3/robots/progress-simulate.d.ts.map +1 -1
  176. package/dist/v3/robots/progress-simulate.js +13 -0
  177. package/dist/v3/robots/s3-import.d.ts.map +1 -1
  178. package/dist/v3/robots/s3-import.js +0 -1
  179. package/dist/v3/robots/s3-store.d.ts.map +1 -1
  180. package/dist/v3/robots/s3-store.js +0 -1
  181. package/dist/v3/robots/script-run.d.ts.map +1 -1
  182. package/dist/v3/robots/script-run.js +10 -1
  183. package/dist/v3/robots/sftp-import.d.ts.map +1 -1
  184. package/dist/v3/robots/sftp-import.js +0 -1
  185. package/dist/v3/robots/sftp-store.d.ts.map +1 -1
  186. package/dist/v3/robots/sftp-store.js +0 -1
  187. package/dist/v3/robots/speech-transcribe.d.ts.map +1 -1
  188. package/dist/v3/robots/speech-transcribe.js +0 -1
  189. package/dist/v3/robots/supabase-import.d.ts.map +1 -1
  190. package/dist/v3/robots/supabase-import.js +0 -1
  191. package/dist/v3/robots/supabase-store.d.ts.map +1 -1
  192. package/dist/v3/robots/supabase-store.js +0 -1
  193. package/dist/v3/robots/swift-import.d.ts.map +1 -1
  194. package/dist/v3/robots/swift-import.js +0 -1
  195. package/dist/v3/robots/swift-store.d.ts.map +1 -1
  196. package/dist/v3/robots/swift-store.js +0 -1
  197. package/dist/v3/robots/text-speak.d.ts.map +1 -1
  198. package/dist/v3/robots/text-speak.js +0 -1
  199. package/dist/v3/robots/text-translate.d.ts +8 -8
  200. package/dist/v3/robots/text-translate.d.ts.map +1 -1
  201. package/dist/v3/robots/text-translate.js +0 -1
  202. package/dist/v3/robots/tigris-import.d.ts.map +1 -1
  203. package/dist/v3/robots/tigris-import.js +0 -1
  204. package/dist/v3/robots/tigris-store.d.ts.map +1 -1
  205. package/dist/v3/robots/tigris-store.js +0 -1
  206. package/dist/v3/robots/tlcdn-deliver.d.ts.map +1 -1
  207. package/dist/v3/robots/tlcdn-deliver.js +8 -1
  208. package/dist/v3/robots/tus-store.d.ts.map +1 -1
  209. package/dist/v3/robots/tus-store.js +1 -14
  210. package/dist/v3/robots/upload-handle.d.ts.map +1 -1
  211. package/dist/v3/robots/upload-handle.js +0 -1
  212. package/dist/v3/robots/video-adaptive.d.ts +32 -8
  213. package/dist/v3/robots/video-adaptive.d.ts.map +1 -1
  214. package/dist/v3/robots/video-adaptive.js +22 -6
  215. package/dist/v3/robots/video-artwork.d.ts +2855 -0
  216. package/dist/v3/robots/video-artwork.d.ts.map +1 -0
  217. package/dist/v3/robots/video-artwork.js +65 -0
  218. package/dist/v3/robots/video-concat.d.ts +36 -0
  219. package/dist/v3/robots/video-concat.d.ts.map +1 -1
  220. package/dist/v3/robots/video-concat.js +30 -1
  221. package/dist/v3/robots/video-encode.d.ts.map +1 -1
  222. package/dist/v3/robots/video-encode.js +0 -1
  223. package/dist/v3/robots/video-generate.d.ts +594 -0
  224. package/dist/v3/robots/video-generate.d.ts.map +1 -0
  225. package/dist/v3/robots/video-generate.js +89 -0
  226. package/dist/v3/robots/video-merge.d.ts +24 -0
  227. package/dist/v3/robots/video-merge.d.ts.map +1 -1
  228. package/dist/v3/robots/video-merge.js +33 -1
  229. package/dist/v3/robots/video-ondemand.d.ts.map +1 -1
  230. package/dist/v3/robots/video-ondemand.js +3 -4
  231. package/dist/v3/robots/video-split.d.ts +2939 -0
  232. package/dist/v3/robots/video-split.d.ts.map +1 -0
  233. package/dist/v3/robots/video-split.js +77 -0
  234. package/dist/v3/robots/video-subtitle.d.ts +52 -4
  235. package/dist/v3/robots/video-subtitle.d.ts.map +1 -1
  236. package/dist/v3/robots/video-subtitle.js +61 -8
  237. package/dist/v3/robots/video-thumbs.d.ts.map +1 -1
  238. package/dist/v3/robots/video-thumbs.js +0 -1
  239. package/dist/v3/robots/vimeo-import.d.ts +4 -4
  240. package/dist/v3/robots/vimeo-import.d.ts.map +1 -1
  241. package/dist/v3/robots/vimeo-import.js +0 -1
  242. package/dist/v3/robots/vimeo-store.d.ts +2 -2
  243. package/dist/v3/robots/vimeo-store.d.ts.map +1 -1
  244. package/dist/v3/robots/vimeo-store.js +14 -3
  245. package/dist/v3/robots/wasabi-import.d.ts.map +1 -1
  246. package/dist/v3/robots/wasabi-import.js +0 -1
  247. package/dist/v3/robots/wasabi-store.d.ts.map +1 -1
  248. package/dist/v3/robots/wasabi-store.js +0 -1
  249. package/dist/v3/robots/youtube-store.d.ts.map +1 -1
  250. package/dist/v3/robots/youtube-store.js +4 -5
  251. package/dist/v3/skillFrontmatter.d.ts +29 -0
  252. package/dist/v3/skillFrontmatter.d.ts.map +1 -0
  253. package/dist/v3/skillFrontmatter.js +18 -0
  254. package/dist/v3/template.d.ts +77 -132139
  255. package/dist/v3/template.d.ts.map +1 -1
  256. package/dist/v3/template.js +26 -3
  257. package/dist/v3/templateCredential.d.ts +13 -3
  258. package/dist/v3/templateCredential.d.ts.map +1 -1
  259. package/dist/v3/templateCredential.js +1 -0
  260. package/dist/v4/assembliesGet.d.ts +1 -0
  261. package/dist/v4/assembliesGet.d.ts.map +1 -1
  262. package/dist/v4/assemblyReplay.d.ts +1 -0
  263. package/dist/v4/assemblyReplay.d.ts.map +1 -1
  264. package/dist/v4/assemblyReplayNotification.d.ts +1 -0
  265. package/dist/v4/assemblyReplayNotification.d.ts.map +1 -1
  266. package/dist/v4/assemblyStatus.d.ts +259 -46
  267. package/dist/v4/assemblyStatus.d.ts.map +1 -1
  268. package/dist/v4/assemblyStatus.js +53 -3
  269. package/dist/v4/bill.d.ts +1 -0
  270. package/dist/v4/bill.d.ts.map +1 -1
  271. package/dist/v4/builtinTemplates.d.ts +35 -0
  272. package/dist/v4/builtinTemplates.d.ts.map +1 -0
  273. package/dist/v4/builtinTemplates.js +18 -0
  274. package/dist/v4/index.d.ts +2 -0
  275. package/dist/v4/index.d.ts.map +1 -1
  276. package/dist/v4/index.js +2 -0
  277. package/dist/v4/robots/_index.d.ts +911 -26311
  278. package/dist/v4/robots/_index.d.ts.map +1 -1
  279. package/dist/v4/robots/_index.js +62 -11
  280. package/dist/v4/robots/_instructions-primitives.d.ts +44 -7
  281. package/dist/v4/robots/_instructions-primitives.d.ts.map +1 -1
  282. package/dist/v4/robots/_instructions-primitives.js +89 -3
  283. package/dist/v4/robots/ai-chat.d.ts +45 -4
  284. package/dist/v4/robots/ai-chat.d.ts.map +1 -1
  285. package/dist/v4/robots/ai-chat.js +34 -6
  286. package/dist/v4/robots/assembly-savejson.d.ts.map +1 -1
  287. package/dist/v4/robots/assembly-savejson.js +8 -0
  288. package/dist/v4/robots/audio-artwork.d.ts.map +1 -1
  289. package/dist/v4/robots/audio-artwork.js +4 -5
  290. package/dist/v4/robots/audio-concat.d.ts.map +1 -1
  291. package/dist/v4/robots/audio-concat.js +1 -2
  292. package/dist/v4/robots/audio-encode.d.ts.map +1 -1
  293. package/dist/v4/robots/audio-encode.js +1 -2
  294. package/dist/v4/robots/audio-loop.d.ts.map +1 -1
  295. package/dist/v4/robots/audio-loop.js +1 -2
  296. package/dist/v4/robots/audio-merge.d.ts.map +1 -1
  297. package/dist/v4/robots/audio-merge.js +1 -2
  298. package/dist/v4/robots/audio-split.d.ts +714 -0
  299. package/dist/v4/robots/audio-split.d.ts.map +1 -0
  300. package/dist/v4/robots/audio-split.js +87 -0
  301. package/dist/v4/robots/audio-waveform.d.ts +124 -6
  302. package/dist/v4/robots/audio-waveform.d.ts.map +1 -1
  303. package/dist/v4/robots/audio-waveform.js +72 -6
  304. package/dist/v4/robots/azure-import.d.ts.map +1 -1
  305. package/dist/v4/robots/azure-import.js +0 -1
  306. package/dist/v4/robots/azure-store.d.ts.map +1 -1
  307. package/dist/v4/robots/azure-store.js +0 -1
  308. package/dist/v4/robots/backblaze-import.d.ts.map +1 -1
  309. package/dist/v4/robots/backblaze-import.js +0 -1
  310. package/dist/v4/robots/backblaze-store.d.ts.map +1 -1
  311. package/dist/v4/robots/backblaze-store.js +0 -1
  312. package/dist/v4/robots/box-import.d.ts +82 -0
  313. package/dist/v4/robots/box-import.d.ts.map +1 -0
  314. package/dist/v4/robots/box-import.js +62 -0
  315. package/dist/v4/robots/box-store.d.ts +135 -0
  316. package/dist/v4/robots/box-store.d.ts.map +1 -0
  317. package/dist/v4/robots/box-store.js +65 -0
  318. package/dist/v4/robots/cloudfiles-import.d.ts.map +1 -1
  319. package/dist/v4/robots/cloudfiles-import.js +0 -1
  320. package/dist/v4/robots/cloudfiles-store.d.ts.map +1 -1
  321. package/dist/v4/robots/cloudfiles-store.js +0 -1
  322. package/dist/v4/robots/cloudflare-import.d.ts.map +1 -1
  323. package/dist/v4/robots/cloudflare-import.js +0 -1
  324. package/dist/v4/robots/cloudflare-store.d.ts.map +1 -1
  325. package/dist/v4/robots/cloudflare-store.js +0 -1
  326. package/dist/v4/robots/digitalocean-import.d.ts.map +1 -1
  327. package/dist/v4/robots/digitalocean-import.js +0 -1
  328. package/dist/v4/robots/digitalocean-store.d.ts.map +1 -1
  329. package/dist/v4/robots/digitalocean-store.js +0 -1
  330. package/dist/v4/robots/document-autorotate.d.ts.map +1 -1
  331. package/dist/v4/robots/document-autorotate.js +8 -1
  332. package/dist/v4/robots/document-convert.d.ts +4 -0
  333. package/dist/v4/robots/document-convert.d.ts.map +1 -1
  334. package/dist/v4/robots/document-convert.js +9 -3
  335. package/dist/v4/robots/document-merge.d.ts.map +1 -1
  336. package/dist/v4/robots/document-merge.js +0 -1
  337. package/dist/v4/robots/document-ocr.d.ts.map +1 -1
  338. package/dist/v4/robots/document-ocr.js +0 -1
  339. package/dist/v4/robots/document-optimize.d.ts.map +1 -1
  340. package/dist/v4/robots/document-optimize.js +0 -1
  341. package/dist/v4/robots/document-split.d.ts.map +1 -1
  342. package/dist/v4/robots/document-split.js +9 -1
  343. package/dist/v4/robots/document-thumbs.d.ts +4 -0
  344. package/dist/v4/robots/document-thumbs.d.ts.map +1 -1
  345. package/dist/v4/robots/document-thumbs.js +23 -4
  346. package/dist/v4/robots/dropbox-import.d.ts.map +1 -1
  347. package/dist/v4/robots/dropbox-import.js +0 -1
  348. package/dist/v4/robots/dropbox-store.d.ts.map +1 -1
  349. package/dist/v4/robots/dropbox-store.js +0 -1
  350. package/dist/v4/robots/edgly-deliver.d.ts.map +1 -1
  351. package/dist/v4/robots/edgly-deliver.js +8 -1
  352. package/dist/v4/robots/file-compress.d.ts +4 -0
  353. package/dist/v4/robots/file-compress.d.ts.map +1 -1
  354. package/dist/v4/robots/file-compress.js +8 -1
  355. package/dist/v4/robots/file-decompress.d.ts +8 -0
  356. package/dist/v4/robots/file-decompress.d.ts.map +1 -1
  357. package/dist/v4/robots/file-decompress.js +30 -5
  358. package/dist/v4/robots/file-filter.d.ts.map +1 -1
  359. package/dist/v4/robots/file-filter.js +23 -6
  360. package/dist/v4/robots/file-hash.d.ts +28 -0
  361. package/dist/v4/robots/file-hash.d.ts.map +1 -1
  362. package/dist/v4/robots/file-hash.js +23 -1
  363. package/dist/v4/robots/file-preview.d.ts +12 -8
  364. package/dist/v4/robots/file-preview.d.ts.map +1 -1
  365. package/dist/v4/robots/file-preview.js +8 -1
  366. package/dist/v4/robots/file-read.d.ts.map +1 -1
  367. package/dist/v4/robots/file-read.js +9 -1
  368. package/dist/v4/robots/file-serve.d.ts +4 -0
  369. package/dist/v4/robots/file-serve.d.ts.map +1 -1
  370. package/dist/v4/robots/file-serve.js +38 -7
  371. package/dist/v4/robots/file-verify.d.ts.map +1 -1
  372. package/dist/v4/robots/file-verify.js +0 -1
  373. package/dist/v4/robots/file-virusscan.d.ts.map +1 -1
  374. package/dist/v4/robots/file-virusscan.js +5 -4
  375. package/dist/v4/robots/file-watermark.d.ts.map +1 -1
  376. package/dist/v4/robots/file-watermark.js +10 -0
  377. package/dist/v4/robots/ftp-import.d.ts.map +1 -1
  378. package/dist/v4/robots/ftp-import.js +0 -1
  379. package/dist/v4/robots/ftp-store.d.ts.map +1 -1
  380. package/dist/v4/robots/ftp-store.js +0 -1
  381. package/dist/v4/robots/google-import.d.ts.map +1 -1
  382. package/dist/v4/robots/google-import.js +0 -1
  383. package/dist/v4/robots/google-store.d.ts.map +1 -1
  384. package/dist/v4/robots/google-store.js +0 -1
  385. package/dist/v4/robots/html-convert.d.ts.map +1 -1
  386. package/dist/v4/robots/html-convert.js +0 -1
  387. package/dist/v4/robots/http-import.d.ts.map +1 -1
  388. package/dist/v4/robots/http-import.js +0 -1
  389. package/dist/v4/robots/image-bgremove.d.ts +4 -4
  390. package/dist/v4/robots/image-bgremove.d.ts.map +1 -1
  391. package/dist/v4/robots/image-bgremove.js +4 -2
  392. package/dist/v4/robots/image-copyrightdetect.d.ts +174 -0
  393. package/dist/v4/robots/image-copyrightdetect.d.ts.map +1 -0
  394. package/dist/v4/robots/image-copyrightdetect.js +135 -0
  395. package/dist/v4/robots/image-describe.d.ts.map +1 -1
  396. package/dist/v4/robots/image-describe.js +0 -1
  397. package/dist/v4/robots/image-enhance.d.ts +262 -0
  398. package/dist/v4/robots/image-enhance.d.ts.map +1 -0
  399. package/dist/v4/robots/image-enhance.js +145 -0
  400. package/dist/v4/robots/image-facedetect.d.ts.map +1 -1
  401. package/dist/v4/robots/image-facedetect.js +0 -1
  402. package/dist/v4/robots/image-generate.d.ts +4 -4
  403. package/dist/v4/robots/image-generate.d.ts.map +1 -1
  404. package/dist/v4/robots/image-generate.js +62 -8
  405. package/dist/v4/robots/image-merge.d.ts +104 -8
  406. package/dist/v4/robots/image-merge.d.ts.map +1 -1
  407. package/dist/v4/robots/image-merge.js +75 -7
  408. package/dist/v4/robots/image-ocr.d.ts.map +1 -1
  409. package/dist/v4/robots/image-ocr.js +0 -1
  410. package/dist/v4/robots/image-optimize.d.ts +4 -0
  411. package/dist/v4/robots/image-optimize.d.ts.map +1 -1
  412. package/dist/v4/robots/image-optimize.js +16 -3
  413. package/dist/v4/robots/image-resize.d.ts +63 -59
  414. package/dist/v4/robots/image-resize.d.ts.map +1 -1
  415. package/dist/v4/robots/image-resize.js +37 -1
  416. package/dist/v4/robots/image-upscale.d.ts +148 -0
  417. package/dist/v4/robots/image-upscale.d.ts.map +1 -0
  418. package/dist/v4/robots/image-upscale.js +64 -0
  419. package/dist/v4/robots/mega-import.d.ts +114 -0
  420. package/dist/v4/robots/mega-import.d.ts.map +1 -0
  421. package/dist/v4/robots/mega-import.js +83 -0
  422. package/dist/v4/robots/mega-store.d.ts +170 -0
  423. package/dist/v4/robots/mega-store.d.ts.map +1 -0
  424. package/dist/v4/robots/mega-store.js +80 -0
  425. package/dist/v4/robots/meta-read.d.ts.map +1 -1
  426. package/dist/v4/robots/meta-read.js +8 -0
  427. package/dist/v4/robots/meta-write.d.ts.map +1 -1
  428. package/dist/v4/robots/meta-write.js +0 -1
  429. package/dist/v4/robots/minio-import.d.ts.map +1 -1
  430. package/dist/v4/robots/minio-import.js +0 -1
  431. package/dist/v4/robots/minio-store.d.ts.map +1 -1
  432. package/dist/v4/robots/minio-store.js +0 -1
  433. package/dist/v4/robots/progress-simulate.d.ts.map +1 -1
  434. package/dist/v4/robots/progress-simulate.js +13 -0
  435. package/dist/v4/robots/s3-import.d.ts.map +1 -1
  436. package/dist/v4/robots/s3-import.js +0 -1
  437. package/dist/v4/robots/s3-store.d.ts.map +1 -1
  438. package/dist/v4/robots/s3-store.js +0 -1
  439. package/dist/v4/robots/script-run.d.ts.map +1 -1
  440. package/dist/v4/robots/script-run.js +10 -1
  441. package/dist/v4/robots/sftp-import.d.ts.map +1 -1
  442. package/dist/v4/robots/sftp-import.js +0 -1
  443. package/dist/v4/robots/sftp-store.d.ts.map +1 -1
  444. package/dist/v4/robots/sftp-store.js +0 -1
  445. package/dist/v4/robots/speech-transcribe.d.ts.map +1 -1
  446. package/dist/v4/robots/speech-transcribe.js +0 -1
  447. package/dist/v4/robots/supabase-import.d.ts.map +1 -1
  448. package/dist/v4/robots/supabase-import.js +0 -1
  449. package/dist/v4/robots/supabase-store.d.ts.map +1 -1
  450. package/dist/v4/robots/supabase-store.js +0 -1
  451. package/dist/v4/robots/swift-import.d.ts.map +1 -1
  452. package/dist/v4/robots/swift-import.js +0 -1
  453. package/dist/v4/robots/swift-store.d.ts.map +1 -1
  454. package/dist/v4/robots/swift-store.js +0 -1
  455. package/dist/v4/robots/text-speak.d.ts.map +1 -1
  456. package/dist/v4/robots/text-speak.js +0 -1
  457. package/dist/v4/robots/text-translate.d.ts +72 -72
  458. package/dist/v4/robots/text-translate.d.ts.map +1 -1
  459. package/dist/v4/robots/text-translate.js +0 -1
  460. package/dist/v4/robots/tigris-import.d.ts.map +1 -1
  461. package/dist/v4/robots/tigris-import.js +0 -1
  462. package/dist/v4/robots/tigris-store.d.ts.map +1 -1
  463. package/dist/v4/robots/tigris-store.js +0 -1
  464. package/dist/v4/robots/tlcdn-deliver.d.ts.map +1 -1
  465. package/dist/v4/robots/tlcdn-deliver.js +8 -1
  466. package/dist/v4/robots/tus-store.d.ts.map +1 -1
  467. package/dist/v4/robots/tus-store.js +1 -14
  468. package/dist/v4/robots/upload-handle.d.ts.map +1 -1
  469. package/dist/v4/robots/upload-handle.js +0 -1
  470. package/dist/v4/robots/video-adaptive.d.ts +12 -0
  471. package/dist/v4/robots/video-adaptive.d.ts.map +1 -1
  472. package/dist/v4/robots/video-adaptive.js +22 -6
  473. package/dist/v4/robots/video-artwork.d.ts +706 -0
  474. package/dist/v4/robots/video-artwork.d.ts.map +1 -0
  475. package/dist/v4/robots/video-artwork.js +65 -0
  476. package/dist/v4/robots/video-concat.d.ts +28 -0
  477. package/dist/v4/robots/video-concat.d.ts.map +1 -1
  478. package/dist/v4/robots/video-concat.js +30 -1
  479. package/dist/v4/robots/video-encode.d.ts.map +1 -1
  480. package/dist/v4/robots/video-encode.js +0 -1
  481. package/dist/v4/robots/video-generate.d.ts +193 -0
  482. package/dist/v4/robots/video-generate.d.ts.map +1 -0
  483. package/dist/v4/robots/video-generate.js +89 -0
  484. package/dist/v4/robots/video-merge.d.ts +24 -0
  485. package/dist/v4/robots/video-merge.d.ts.map +1 -1
  486. package/dist/v4/robots/video-merge.js +33 -1
  487. package/dist/v4/robots/video-ondemand.d.ts.map +1 -1
  488. package/dist/v4/robots/video-ondemand.js +3 -4
  489. package/dist/v4/robots/video-split.d.ts +1354 -0
  490. package/dist/v4/robots/video-split.d.ts.map +1 -0
  491. package/dist/v4/robots/video-split.js +77 -0
  492. package/dist/v4/robots/video-subtitle.d.ts +20 -4
  493. package/dist/v4/robots/video-subtitle.d.ts.map +1 -1
  494. package/dist/v4/robots/video-subtitle.js +61 -8
  495. package/dist/v4/robots/video-thumbs.d.ts.map +1 -1
  496. package/dist/v4/robots/video-thumbs.js +0 -1
  497. package/dist/v4/robots/vimeo-import.d.ts.map +1 -1
  498. package/dist/v4/robots/vimeo-import.js +0 -1
  499. package/dist/v4/robots/vimeo-store.d.ts.map +1 -1
  500. package/dist/v4/robots/vimeo-store.js +14 -3
  501. package/dist/v4/robots/wasabi-import.d.ts.map +1 -1
  502. package/dist/v4/robots/wasabi-import.js +0 -1
  503. package/dist/v4/robots/wasabi-store.d.ts.map +1 -1
  504. package/dist/v4/robots/wasabi-store.js +0 -1
  505. package/dist/v4/robots/youtube-store.d.ts +6 -6
  506. package/dist/v4/robots/youtube-store.d.ts.map +1 -1
  507. package/dist/v4/robots/youtube-store.js +4 -5
  508. package/dist/v4/skillFrontmatter.d.ts +15 -0
  509. package/dist/v4/skillFrontmatter.d.ts.map +1 -0
  510. package/dist/v4/skillFrontmatter.js +18 -0
  511. package/dist/v4/template.d.ts +55 -39011
  512. package/dist/v4/template.d.ts.map +1 -1
  513. package/dist/v4/template.js +25 -3
  514. package/dist/v4/templateCredential.d.ts +3 -0
  515. package/dist/v4/templateCredential.d.ts.map +1 -1
  516. package/dist/v4/templateCredential.js +1 -0
  517. package/package.json +5 -7
@@ -1,10 +1,27 @@
1
1
  import { z } from 'zod/v4';
2
2
  import { interpolateRobot, robotBase, robotUse } from "./_instructions-primitives.js";
3
3
  export const meta = {
4
- allowed_for_url_transform: true,
5
4
  bytescount: 1,
6
5
  discount_factor: 1,
7
6
  discount_pct: 0,
7
+ example_code: {
8
+ steps: {
9
+ ':original': {
10
+ robot: '/upload/handle',
11
+ },
12
+ inpainted: {
13
+ robot: '/image/generate',
14
+ use: [
15
+ { name: ':original', as: 'image' },
16
+ { name: ':original', as: 'mask' },
17
+ ],
18
+ model: 'google/nano-banana-pro',
19
+ prompt: 'Replace the masked area with a breaching whale. Keep the rest of the image unchanged.',
20
+ format: 'png',
21
+ },
22
+ },
23
+ },
24
+ example_code_description: 'Inpaint an image by uploading an original image and a mask image, then use both files in /image/generate.',
8
25
  minimum_charge: 0,
9
26
  output_factor: 0.6,
10
27
  purpose_sentence: 'generates images from text prompts using AI',
@@ -26,23 +43,60 @@ export const meta = {
26
43
  removeJobResultFilesFromDiskRightAfterStoringOnS3: false,
27
44
  stage: 'ga',
28
45
  };
46
+ // Internal documentation (for public docs, see transloadit.com/docs)
47
+ //
48
+ // Inpainting: When input files are provided via `use`, file metadata (field name, mime) is
49
+ // prepended to the prompt so the model understands each file's role. Users should name upload
50
+ // fields semantically (e.g., "mask", "image") or use the `as` directive. Field is checked first,
51
+ // then `as`. Models that accept explicit image/mask inputs use these roles deterministically.
52
+ // Models that infer roles from prompt context receive this file metadata in the prompt.
29
53
  export const robotImageGenerateInstructionsSchema = robotBase
30
54
  .merge(robotUse)
31
55
  .extend({
32
56
  robot: z.literal('/image/generate'),
57
+ use: robotUse.shape.use.describe(`
58
+ Specifies which Step(s) to use as input.
59
+
60
+ For inpainting, provide both the source image and mask through \`use\`, typically with:
61
+
62
+ \`\`\`json
63
+ {
64
+ "use": [
65
+ { "name": ":original", "as": "image" },
66
+ { "name": ":original", "as": "mask" }
67
+ ]
68
+ }
69
+ \`\`\`
70
+
71
+ Best practice:
72
+ - Tag source and mask inputs explicitly using \`as\` (or semantic upload field names)
73
+ - Keep the prompt focused on what should change in the masked/transparent region
74
+ - Leave the model/provider choice to the robot defaults unless you have a specific need
75
+ `),
33
76
  model: z
34
77
  .string()
35
78
  .optional()
36
- .describe('The AI model to use for image generation. Defaults to google/nano-banana.'),
37
- prompt: z.string().describe('The prompt describing the desired image content.'),
79
+ .describe('The AI model to use. Defaults to google/nano-banana. Supported models include flux-1.1-pro-ultra, flux-schnell, recraft-v3, google/nano-banana, google/nano-banana-2, google/nano-banana-pro, openai/gpt-image-2, and stability-ai/stable-diffusion-inpainting. The legacy alias gpt-image-2 is also accepted for backwards compatibility.'),
80
+ prompt: z
81
+ .string()
82
+ .describe('Prompt describing the desired image. For inpainting, describe what should appear in the masked/transparent region and that the rest should stay unchanged.'),
38
83
  format: z
39
84
  .enum(['jpeg', 'jpg', 'png', 'gif', 'webp', 'svg'])
40
85
  .optional()
41
- .describe('Format of the generated image.'),
86
+ .describe('Output format. Defaults depend on model: png for Google models and openai/gpt-image-2, svg for recraft-v3, jpeg for others. Google models currently return PNG only.'),
42
87
  seed: z.number().optional().describe('Seed for the random number generator.'),
43
- aspect_ratio: z.string().optional().describe('Aspect ratio of the generated image.'),
44
- height: z.number().optional().describe('Height of the generated image.'),
45
- width: z.number().optional().describe('Width of the generated image.'),
88
+ aspect_ratio: z
89
+ .string()
90
+ .optional()
91
+ .describe('Requested output aspect ratio. For Google models, width/height can also be used and orientation is derived automatically when aspect_ratio is omitted.'),
92
+ height: z
93
+ .number()
94
+ .optional()
95
+ .describe('Requested output height in pixels (mainly used by Google image models and openai/gpt-image-2).'),
96
+ width: z
97
+ .number()
98
+ .optional()
99
+ .describe('Requested output width in pixels (mainly used by Google image models and openai/gpt-image-2).'),
46
100
  style: z.string().optional().describe('Style of the generated image.'),
47
101
  num_outputs: z
48
102
  .number()
@@ -50,7 +104,7 @@ export const robotImageGenerateInstructionsSchema = robotBase
50
104
  .min(1)
51
105
  .max(10)
52
106
  .optional()
53
- .describe('Number of image variants to generate.'),
107
+ .describe('Number of output variants to generate (1-10).'),
54
108
  })
55
109
  .strict();
56
110
  export const robotImageGenerateInstructionsWithHiddenFieldsSchema = robotImageGenerateInstructionsSchema.extend({
@@ -30,13 +30,37 @@ export declare const robotImageMergeInstructionsSchema: z.ZodObject<{
30
30
  format: z.ZodDefault<z.ZodEnum<{
31
31
  jpg: "jpg";
32
32
  png: "png";
33
+ webp: "webp";
33
34
  }>>;
34
35
  direction: z.ZodDefault<z.ZodEnum<{
35
- horizontal: "horizontal";
36
36
  vertical: "vertical";
37
+ horizontal: "horizontal";
38
+ }>>;
39
+ effect: z.ZodOptional<z.ZodEnum<{
40
+ mosaic: "mosaic";
41
+ "polaroid-stack": "polaroid-stack";
37
42
  }>>;
38
43
  border: z.ZodDefault<z.ZodNumber>;
39
- background: z.ZodDefault<z.ZodString>;
44
+ background: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodEnum<{
45
+ none: "none";
46
+ transparent: "transparent";
47
+ black: "black";
48
+ white: "white";
49
+ red: "red";
50
+ green: "green";
51
+ blue: "blue";
52
+ yellow: "yellow";
53
+ cyan: "cyan";
54
+ magenta: "magenta";
55
+ gray: "gray";
56
+ grey: "grey";
57
+ opaque: "opaque";
58
+ }>]>>;
59
+ width: z.ZodOptional<z.ZodNumber>;
60
+ height: z.ZodOptional<z.ZodNumber>;
61
+ seed: z.ZodOptional<z.ZodNumber>;
62
+ shuffle: z.ZodDefault<z.ZodBoolean>;
63
+ coverage: z.ZodOptional<z.ZodNumber>;
40
64
  adaptive_filtering: z.ZodDefault<z.ZodBoolean>;
41
65
  quality: z.ZodDefault<z.ZodNumber>;
42
66
  }, z.core.$strict>;
@@ -68,13 +92,37 @@ export declare const robotImageMergeInstructionsWithHiddenFieldsSchema: z.ZodObj
68
92
  format: z.ZodDefault<z.ZodEnum<{
69
93
  jpg: "jpg";
70
94
  png: "png";
95
+ webp: "webp";
71
96
  }>>;
72
97
  direction: z.ZodDefault<z.ZodEnum<{
73
- horizontal: "horizontal";
74
98
  vertical: "vertical";
99
+ horizontal: "horizontal";
100
+ }>>;
101
+ effect: z.ZodOptional<z.ZodEnum<{
102
+ mosaic: "mosaic";
103
+ "polaroid-stack": "polaroid-stack";
75
104
  }>>;
76
105
  border: z.ZodDefault<z.ZodNumber>;
77
- background: z.ZodDefault<z.ZodString>;
106
+ background: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodEnum<{
107
+ none: "none";
108
+ transparent: "transparent";
109
+ black: "black";
110
+ white: "white";
111
+ red: "red";
112
+ green: "green";
113
+ blue: "blue";
114
+ yellow: "yellow";
115
+ cyan: "cyan";
116
+ magenta: "magenta";
117
+ gray: "gray";
118
+ grey: "grey";
119
+ opaque: "opaque";
120
+ }>]>>;
121
+ width: z.ZodOptional<z.ZodNumber>;
122
+ height: z.ZodOptional<z.ZodNumber>;
123
+ seed: z.ZodOptional<z.ZodNumber>;
124
+ shuffle: z.ZodDefault<z.ZodBoolean>;
125
+ coverage: z.ZodOptional<z.ZodNumber>;
78
126
  adaptive_filtering: z.ZodDefault<z.ZodBoolean>;
79
127
  quality: z.ZodDefault<z.ZodNumber>;
80
128
  result: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"debug">, z.ZodDefault<z.ZodBoolean>]>>;
@@ -110,13 +158,37 @@ export declare const interpolatableRobotImageMergeInstructionsSchema: z.ZodObjec
110
158
  format: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
111
159
  jpg: "jpg";
112
160
  png: "png";
161
+ webp: "webp";
113
162
  }>]>>;
114
163
  direction: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
115
- horizontal: "horizontal";
116
164
  vertical: "vertical";
165
+ horizontal: "horizontal";
166
+ }>]>>;
167
+ effect: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<{
168
+ mosaic: "mosaic";
169
+ "polaroid-stack": "polaroid-stack";
117
170
  }>]>>;
118
171
  border: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
119
- background: z.ZodDefault<z.ZodString>;
172
+ background: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString, z.ZodUnion<[z.ZodString, z.ZodEnum<{
173
+ none: "none";
174
+ transparent: "transparent";
175
+ black: "black";
176
+ white: "white";
177
+ red: "red";
178
+ green: "green";
179
+ blue: "blue";
180
+ yellow: "yellow";
181
+ cyan: "cyan";
182
+ magenta: "magenta";
183
+ gray: "gray";
184
+ grey: "grey";
185
+ opaque: "opaque";
186
+ }>]>]>>;
187
+ width: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
188
+ height: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
189
+ seed: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
190
+ shuffle: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
191
+ coverage: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
120
192
  adaptive_filtering: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
121
193
  quality: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
122
194
  }, z.core.$strict>;
@@ -150,13 +222,37 @@ export declare const interpolatableRobotImageMergeInstructionsWithHiddenFieldsSc
150
222
  format: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
151
223
  jpg: "jpg";
152
224
  png: "png";
225
+ webp: "webp";
153
226
  }>]>>;
154
227
  direction: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
155
- horizontal: "horizontal";
156
228
  vertical: "vertical";
229
+ horizontal: "horizontal";
230
+ }>]>>;
231
+ effect: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<{
232
+ mosaic: "mosaic";
233
+ "polaroid-stack": "polaroid-stack";
157
234
  }>]>>;
158
235
  border: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
159
- background: z.ZodDefault<z.ZodString>;
236
+ background: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString, z.ZodUnion<[z.ZodString, z.ZodEnum<{
237
+ none: "none";
238
+ transparent: "transparent";
239
+ black: "black";
240
+ white: "white";
241
+ red: "red";
242
+ green: "green";
243
+ blue: "blue";
244
+ yellow: "yellow";
245
+ cyan: "cyan";
246
+ magenta: "magenta";
247
+ gray: "gray";
248
+ grey: "grey";
249
+ opaque: "opaque";
250
+ }>]>]>>;
251
+ width: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
252
+ height: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
253
+ seed: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
254
+ shuffle: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
255
+ coverage: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
160
256
  adaptive_filtering: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
161
257
  quality: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
162
258
  result: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodUnion<[z.ZodString, z.ZodLiteral<"debug">]>, z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"image-merge.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AASnE,eAAO,MAAM,IAAI,EAAE,cAsClB,CAAA;AAED,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2CnC,CAAA;AAEX,eAAO,MAAM,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAK1D,CAAA;AAEJ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAC3F,MAAM,MAAM,2CAA2C,GAAG,CAAC,CAAC,KAAK,CAC/D,OAAO,iDAAiD,CACzD,CAAA;AAED,eAAO,MAAM,+CAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE3D,CAAA;AACD,MAAM,MAAM,yCAAyC,GACnD,8CAA8C,CAAA;AAEhD,MAAM,MAAM,8CAA8C,GAAG,CAAC,CAAC,KAAK,CAClE,OAAO,+CAA+C,CACvD,CAAA;AAED,eAAO,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE3E,CAAA;AACD,MAAM,MAAM,yDAAyD,GAAG,CAAC,CAAC,KAAK,CAC7E,OAAO,+DAA+D,CACvE,CAAA;AACD,MAAM,MAAM,8DAA8D,GAAG,CAAC,CAAC,KAAK,CAClF,OAAO,+DAA+D,CACvE,CAAA"}
1
+ {"version":3,"file":"image-merge.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAQnE,eAAO,MAAM,IAAI,EAAE,cAqClB,CAAA;AAED,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgHnC,CAAA;AAEX,eAAO,MAAM,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAK1D,CAAA;AAEJ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAC3F,MAAM,MAAM,2CAA2C,GAAG,CAAC,CAAC,KAAK,CAC/D,OAAO,iDAAiD,CACzD,CAAA;AAED,eAAO,MAAM,+CAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE3D,CAAA;AACD,MAAM,MAAM,yCAAyC,GACnD,8CAA8C,CAAA;AAEhD,MAAM,MAAM,8CAA8C,GAAG,CAAC,CAAC,KAAK,CAClE,OAAO,+CAA+C,CACvD,CAAA;AAED,eAAO,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE3E,CAAA;AACD,MAAM,MAAM,yDAAyD,GAAG,CAAC,CAAC,KAAK,CAC7E,OAAO,+DAA+D,CACvE,CAAA;AACD,MAAM,MAAM,8DAA8D,GAAG,CAAC,CAAC,KAAK,CAClF,OAAO,+DAA+D,CACvE,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { z } from 'zod/v4';
2
- import { color_without_alpha, imageQualitySchema, interpolateRobot, robotBase, robotUse, } from "./_instructions-primitives.js";
2
+ import { color_without_alpha_with_named, interpolateRobot, robotBase, robotUse, } from "./_instructions-primitives.js";
3
3
  export const meta = {
4
- allowed_for_url_transform: true,
5
4
  bytescount: 1,
6
5
  discount_factor: 1,
7
6
  discount_pct: 0,
@@ -49,13 +48,25 @@ It's recommended to use this Robot with
49
48
  similar size before merging them.
50
49
  `),
51
50
  format: z
52
- .enum(['jpg', 'png'])
51
+ .enum(['jpg', 'png', 'webp'])
53
52
  .default('png')
54
53
  .describe('The output format for the modified image.'),
55
54
  direction: z
56
55
  .enum(['horizontal', 'vertical'])
57
56
  .default('horizontal')
58
- .describe('Specifies the direction which the images are displayed.'),
57
+ .describe(`
58
+ Specifies the direction which the images are displayed.
59
+
60
+ Only applies to the default spritesheet layout. Ignored when \`effect\` is set to \`polaroid-stack\` or \`mosaic\`, as those effects use their own layout algorithms.
61
+ `),
62
+ effect: z
63
+ .enum(['mosaic', 'polaroid-stack'])
64
+ .optional()
65
+ .describe(`
66
+ Applies a styled collage layout instead of a plain horizontal or vertical spritesheet.
67
+
68
+ Currently supports \`polaroid-stack\`, which renders the inputs as overlapping instant photos on a canvas, and \`mosaic\`, which builds a justified tiled collage.
69
+ `),
59
70
  // TODO: default is not between 1 and 10
60
71
  border: z
61
72
  .number()
@@ -65,13 +76,62 @@ similar size before merging them.
65
76
  An integer value which defines the gap between images on the spritesheet.
66
77
 
67
78
  A value of \`10\` would cause the images to have the largest gap between them, while a value of \`1\` would place the images side-by-side.
79
+
80
+ When \`effect\` is \`polaroid-stack\`, this value is instead used as canvas padding so the outermost photos keep that many pixels of distance from the edge.
81
+
82
+ When \`effect\` is \`mosaic\`, this value is used both as the outer canvas padding and as the gutter width between neighbouring tiles.
68
83
  `),
69
- background: color_without_alpha.default('#FFFFFF').describe(`
84
+ background: color_without_alpha_with_named.default('#fff').describe(`
70
85
  Either the hexadecimal code or [name](https://www.imagemagick.org/script/color.php#color_names) of the color used to fill the background (only shown with a border > 1).
71
86
 
72
- By default, the background of transparent images is changed to white.
87
+ By default, the background of transparent images is changed to white. Set to \`none\` or \`transparent\` for a transparent canvas — requires \`format\` \`png\` or \`webp\` to preserve alpha.
73
88
 
74
89
  For details about how to preserve transparency across all image types, see [this demo](/demos/image-manipulation/properly-preserve-transparency-across-all-image-types/).
90
+ `),
91
+ width: z
92
+ .number()
93
+ .int()
94
+ .positive()
95
+ .optional()
96
+ .describe(`
97
+ The output canvas width in pixels.
98
+
99
+ This is mainly used by styled effects such as \`polaroid-stack\` and \`mosaic\`.
100
+ `),
101
+ height: z
102
+ .number()
103
+ .int()
104
+ .positive()
105
+ .optional()
106
+ .describe(`
107
+ The output canvas height in pixels.
108
+
109
+ This is mainly used by styled effects such as \`polaroid-stack\` and \`mosaic\`.
110
+ `),
111
+ seed: z
112
+ .number()
113
+ .int()
114
+ .optional()
115
+ .describe(`
116
+ Optional deterministic seed used by styled effects such as \`polaroid-stack\` and \`mosaic\`.
117
+ `),
118
+ shuffle: z
119
+ .boolean()
120
+ .default(false)
121
+ .describe(`
122
+ Whether styled effects such as \`polaroid-stack\` and \`mosaic\` may shuffle the input order before laying out the canvas.
123
+ `),
124
+ coverage: z
125
+ .number()
126
+ .min(0.5)
127
+ .max(3)
128
+ .optional()
129
+ .describe(`
130
+ Area-coverage multiplier for the \`polaroid-stack\` effect. Controls how large each polaroid is relative to the canvas and consequently how much of the canvas is covered by photos.
131
+
132
+ The default of \`1.5\` leaves a subtle beige border along some edges. Use \`2.0\`–\`2.5\` for edge-to-edge coverage (photos overlap more). Values below \`1.0\` produce smaller, more widely spaced polaroids.
133
+
134
+ Has no effect on the \`mosaic\` style or on plain spritesheets.
75
135
  `),
76
136
  adaptive_filtering: z
77
137
  .boolean()
@@ -79,7 +139,15 @@ For details about how to preserve transparency across all image types, see [this
79
139
  .describe(`
80
140
  Controls the image compression for PNG images. Setting to \`true\` results in smaller file size, while increasing processing time. It is encouraged to keep this option disabled.
81
141
  `),
82
- quality: imageQualitySchema,
142
+ quality: z
143
+ .number()
144
+ .int()
145
+ .min(1)
146
+ .max(100)
147
+ .default(100)
148
+ .describe(`
149
+ Controls the image compression for JPG, PNG, and WebP images. Please also take a look at [🤖/image/optimize](/docs/robots/image-optimize/).
150
+ `),
83
151
  })
84
152
  .strict();
85
153
  export const robotImageMergeInstructionsWithHiddenFieldsSchema = robotImageMergeInstructionsSchema.extend({
@@ -1 +1 @@
1
- {"version":3,"file":"image-ocr.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-ocr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AASnE,eAAO,MAAM,IAAI,EAAE,cAyClB,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4BjC,CAAA;AAEX,eAAO,MAAM,+CAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAGxD,CAAA;AAEJ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACvF,MAAM,MAAM,yCAAyC,GAAG,CAAC,CAAC,KAAK,CAC7D,OAAO,+CAA+C,CACvD,CAAA;AAED,eAAO,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAEzD,CAAA;AACD,MAAM,MAAM,uCAAuC,GAAG,4CAA4C,CAAA;AAElG,MAAM,MAAM,4CAA4C,GAAG,CAAC,CAAC,KAAK,CAChE,OAAO,6CAA6C,CACrD,CAAA;AAED,eAAO,MAAM,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAEzE,CAAA;AACD,MAAM,MAAM,uDAAuD,GAAG,CAAC,CAAC,KAAK,CAC3E,OAAO,6DAA6D,CACrE,CAAA;AACD,MAAM,MAAM,4DAA4D,GAAG,CAAC,CAAC,KAAK,CAChF,OAAO,6DAA6D,CACrE,CAAA"}
1
+ {"version":3,"file":"image-ocr.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-ocr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AASnE,eAAO,MAAM,IAAI,EAAE,cAwClB,CAAA;AAED,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4BjC,CAAA;AAEX,eAAO,MAAM,+CAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAGxD,CAAA;AAEJ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACvF,MAAM,MAAM,yCAAyC,GAAG,CAAC,CAAC,KAAK,CAC7D,OAAO,+CAA+C,CACvD,CAAA;AAED,eAAO,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAEzD,CAAA;AACD,MAAM,MAAM,uCAAuC,GAAG,4CAA4C,CAAA;AAElG,MAAM,MAAM,4CAA4C,GAAG,CAAC,CAAC,KAAK,CAChE,OAAO,6CAA6C,CACrD,CAAA;AAED,eAAO,MAAM,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAEzE,CAAA;AACD,MAAM,MAAM,uDAAuD,GAAG,CAAC,CAAC,KAAK,CAC3E,OAAO,6DAA6D,CACrE,CAAA;AACD,MAAM,MAAM,4DAA4D,GAAG,CAAC,CAAC,KAAK,CAChF,OAAO,6DAA6D,CACrE,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { z } from 'zod/v4';
2
2
  import { aiProviderSchema, granularitySchema, interpolateRobot, robotBase, robotUse, } from "./_instructions-primitives.js";
3
3
  export const meta = {
4
- allowed_for_url_transform: true,
5
4
  bytescount: 1,
6
5
  discount_factor: 1,
7
6
  discount_pct: 0,
@@ -34,6 +34,7 @@ export declare const robotImageOptimizeInstructionsSchema: z.ZodObject<{
34
34
  progressive: z.ZodDefault<z.ZodBoolean>;
35
35
  preserve_meta_data: z.ZodDefault<z.ZodBoolean>;
36
36
  fix_breaking_images: z.ZodDefault<z.ZodBoolean>;
37
+ lossy: z.ZodDefault<z.ZodBoolean>;
37
38
  }, z.core.$strict>;
38
39
  export declare const robotImageOptimizeInstructionsWithHiddenFieldsSchema: z.ZodObject<{
39
40
  output_meta: z.ZodOptional<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodBoolean>, z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
@@ -67,6 +68,7 @@ export declare const robotImageOptimizeInstructionsWithHiddenFieldsSchema: z.Zod
67
68
  progressive: z.ZodDefault<z.ZodBoolean>;
68
69
  preserve_meta_data: z.ZodDefault<z.ZodBoolean>;
69
70
  fix_breaking_images: z.ZodDefault<z.ZodBoolean>;
71
+ lossy: z.ZodDefault<z.ZodBoolean>;
70
72
  result: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"debug">, z.ZodDefault<z.ZodBoolean>]>>;
71
73
  }, z.core.$strict>;
72
74
  export type RobotImageOptimizeInstructions = z.infer<typeof robotImageOptimizeInstructionsSchema>;
@@ -104,6 +106,7 @@ export declare const interpolatableRobotImageOptimizeInstructionsSchema: z.ZodOb
104
106
  progressive: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
105
107
  preserve_meta_data: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
106
108
  fix_breaking_images: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
109
+ lossy: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
107
110
  }, z.core.$strict>;
108
111
  export type InterpolatableRobotImageOptimizeInstructions = InterpolatableRobotImageOptimizeInstructionsInput;
109
112
  export type InterpolatableRobotImageOptimizeInstructionsInput = z.input<typeof interpolatableRobotImageOptimizeInstructionsSchema>;
@@ -139,6 +142,7 @@ export declare const interpolatableRobotImageOptimizeInstructionsWithHiddenField
139
142
  progressive: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
140
143
  preserve_meta_data: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
141
144
  fix_breaking_images: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
145
+ lossy: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
142
146
  result: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodUnion<[z.ZodString, z.ZodLiteral<"debug">]>, z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>]>>;
143
147
  }, z.core.$strict>;
144
148
  export type InterpolatableRobotImageOptimizeInstructionsWithHiddenFields = z.infer<typeof interpolatableRobotImageOptimizeInstructionsWithHiddenFieldsSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"image-optimize.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-optimize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAQnE,eAAO,MAAM,IAAI,EAAE,cAkClB,CAAA;AAED,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmCtC,CAAA;AAEX,eAAO,MAAM,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAK7D,CAAA;AAEJ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AACjG,MAAM,MAAM,8CAA8C,GAAG,CAAC,CAAC,KAAK,CAClE,OAAO,oDAAoD,CAC5D,CAAA;AAED,eAAO,MAAM,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9D,CAAA;AACD,MAAM,MAAM,4CAA4C,GACtD,iDAAiD,CAAA;AAEnD,MAAM,MAAM,iDAAiD,GAAG,CAAC,CAAC,KAAK,CACrE,OAAO,kDAAkD,CAC1D,CAAA;AAED,eAAO,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9E,CAAA;AACD,MAAM,MAAM,4DAA4D,GAAG,CAAC,CAAC,KAAK,CAChF,OAAO,kEAAkE,CAC1E,CAAA;AACD,MAAM,MAAM,iEAAiE,GAAG,CAAC,CAAC,KAAK,CACrF,OAAO,kEAAkE,CAC1E,CAAA"}
1
+ {"version":3,"file":"image-optimize.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-optimize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAQnE,eAAO,MAAM,IAAI,EAAE,cAiClB,CAAA;AAED,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiDtC,CAAA;AAEX,eAAO,MAAM,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAK7D,CAAA;AAEJ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AACjG,MAAM,MAAM,8CAA8C,GAAG,CAAC,CAAC,KAAK,CAClE,OAAO,oDAAoD,CAC5D,CAAA;AAED,eAAO,MAAM,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9D,CAAA;AACD,MAAM,MAAM,4CAA4C,GACtD,iDAAiD,CAAA;AAEnD,MAAM,MAAM,iDAAiD,GAAG,CAAC,CAAC,KAAK,CACrE,OAAO,kDAAkD,CAC1D,CAAA;AAED,eAAO,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9E,CAAA;AACD,MAAM,MAAM,4DAA4D,GAAG,CAAC,CAAC,KAAK,CAChF,OAAO,kEAAkE,CAC1E,CAAA;AACD,MAAM,MAAM,iEAAiE,GAAG,CAAC,CAAC,KAAK,CACrF,OAAO,kEAAkE,CAC1E,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { z } from 'zod/v4';
2
2
  import { interpolateRobot, optimize_priority, robotBase, robotUse, } from "./_instructions-primitives.js";
3
3
  export const meta = {
4
- allowed_for_url_transform: true,
5
4
  bytescount: 1,
6
5
  discount_factor: 1,
7
6
  discount_pct: 0,
@@ -22,13 +21,13 @@ export const meta = {
22
21
  purpose_word: 'optimize',
23
22
  purpose_words: 'Optimize images without quality loss',
24
23
  service_slug: 'image-manipulation',
25
- slot_count: 15,
24
+ slot_count: 5,
26
25
  title: 'Optimize images without quality loss',
27
26
  typical_file_size_mb: 0.8,
28
27
  typical_file_type: 'image',
29
28
  name: 'ImageOptimizeRobot',
30
29
  priceFactor: 1,
31
- queueSlotCount: 15,
30
+ queueSlotCount: 5,
32
31
  isAllowedForUrlTransform: true,
33
32
  trackOutputFileSize: true,
34
33
  isInternal: false,
@@ -47,6 +46,9 @@ It works well together with [🤖/image/resize](/docs/robots/image-resize/) to b
47
46
 
48
47
  > [!Note]
49
48
  > This <dfn>Robot</dfn> accepts all image types and will just pass on unsupported image types unoptimized. Hence, there is no need to set up [🤖/file/filter](/docs/robots/file-filter/) workflows for this.
49
+
50
+ > [!Note]
51
+ > PNG optimization uses only lossless (optipng) compressors by default. To also enable lossy compression (pngquant), set \`lossy: true\`. When enabled, both lossy and lossless compressors compete and the smallest result wins, which may cause color shifts in some images.
50
52
  `),
51
53
  priority: optimize_priority.describe(`
52
54
  Provides different algorithms for better or worse compression for your images, but that run slower or faster. The value \`"conversion-speed"\` will result in an average compression ratio of 18%. \`"compression-ratio"\` will result in an average compression ratio of 31%.
@@ -68,6 +70,17 @@ Specifies if the image's metadata should be preserved during the optimization, o
68
70
  .default(true)
69
71
  .describe(`
70
72
  If set to \`true\` this parameter tries to fix images that would otherwise make the underlying tool error out and thereby break your <dfn>Assemblies</dfn>. This can sometimes result in a larger file size, though.
73
+ `),
74
+ lossy: z
75
+ .boolean()
76
+ .default(false)
77
+ .describe(`
78
+ When set to \`false\` (the default), only lossless PNG optimizers are used, disabling pngquant to preserve color accuracy.
79
+
80
+ When set to \`true\`, both lossy and lossless PNG optimizers compete and the smallest result wins. This allows pngquant, a lossy compressor that reduces PNGs to a 256-color palette, which may cause noticeable color shifts in images with rich color palettes, subtle gradients, or brand-specific colors.
81
+
82
+ > [!Note]
83
+ > This parameter only affects PNG optimization. JPEG, GIF, WebP, and SVG optimization is unaffected.
71
84
  `),
72
85
  })
73
86
  .strict();