@giveitsmaller/contracts 0.35.0 → 0.36.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 (414) hide show
  1. package/accepted-options/accepted-options.json +58 -1
  2. package/accepted-options/image-output-routes.json +43 -10
  3. package/availability/availability.json +204 -18
  4. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  5. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  6. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  7. package/dist/openapi/models/AccountLimits.js +1 -1
  8. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  10. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  12. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  13. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  16. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  17. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  18. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  19. package/dist/openapi/models/AuthErrorType.js +1 -1
  20. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  21. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  22. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  23. package/dist/openapi/models/AvailabilityValue.js +1 -1
  24. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  25. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  27. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  28. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  29. package/dist/openapi/models/CallbackEventType.js +1 -1
  30. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  31. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  32. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  33. package/dist/openapi/models/CompositionPlan.js +1 -1
  34. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  35. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  36. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  37. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  38. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  39. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  40. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  41. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  42. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  43. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  44. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  45. package/dist/openapi/models/ConnectionSource.js +1 -1
  46. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  47. package/dist/openapi/models/ContactRequest.js +1 -1
  48. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  49. package/dist/openapi/models/ContactSubject.js +1 -1
  50. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  51. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  52. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  53. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  54. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  55. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  56. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  57. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  58. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  59. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  60. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  61. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  62. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  63. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  64. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  65. package/dist/openapi/models/CreditTransaction.js +1 -1
  66. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  67. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  68. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  69. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  70. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  71. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  72. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  73. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  74. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  75. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  76. package/dist/openapi/models/Delivery.d.ts +1 -1
  77. package/dist/openapi/models/Delivery.js +1 -1
  78. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  79. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  80. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  81. package/dist/openapi/models/DeliveryPlan.js +1 -1
  82. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  83. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  84. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  85. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  86. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  87. package/dist/openapi/models/DeliverySelection.js +1 -1
  88. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  89. package/dist/openapi/models/DownloadBundle.js +1 -1
  90. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  91. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  92. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  93. package/dist/openapi/models/EndpointProjection.js +1 -1
  94. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  95. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  96. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  97. package/dist/openapi/models/EstimateQuality.js +1 -1
  98. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  99. package/dist/openapi/models/EstimateRange.js +1 -1
  100. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  101. package/dist/openapi/models/ExternalDestination.js +1 -1
  102. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  103. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  104. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  105. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  106. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  107. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  108. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  109. package/dist/openapi/models/ExternalImportToken.js +1 -1
  110. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  111. package/dist/openapi/models/ExternalSource.js +1 -1
  112. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  113. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  114. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  115. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  116. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  117. package/dist/openapi/models/FeatureViolation.js +1 -1
  118. package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
  119. package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
  120. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  121. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  122. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  123. package/dist/openapi/models/JobDefinition.js +1 -1
  124. package/dist/openapi/models/JobDownload.d.ts +1 -1
  125. package/dist/openapi/models/JobDownload.js +1 -1
  126. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  127. package/dist/openapi/models/JobInputV2.js +1 -1
  128. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  129. package/dist/openapi/models/JobMediaClass.js +1 -1
  130. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  131. package/dist/openapi/models/JobOutputSource.js +1 -1
  132. package/dist/openapi/models/JobResponse.d.ts +1 -1
  133. package/dist/openapi/models/JobResponse.js +1 -1
  134. package/dist/openapi/models/JobStatus.d.ts +1 -1
  135. package/dist/openapi/models/JobStatus.js +1 -1
  136. package/dist/openapi/models/JobType.d.ts +1 -1
  137. package/dist/openapi/models/JobType.js +1 -1
  138. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  139. package/dist/openapi/models/LivenessResponse.js +1 -1
  140. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  141. package/dist/openapi/models/LoginUser200Response.js +1 -1
  142. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  143. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  144. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  145. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  146. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  147. package/dist/openapi/models/LoginUserRequest.js +1 -1
  148. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  149. package/dist/openapi/models/MetadataResponse.js +1 -1
  150. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  151. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  152. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  153. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  154. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  155. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  156. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  157. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  158. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  159. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  160. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  161. package/dist/openapi/models/MultiInputSource.js +1 -1
  162. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  163. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  164. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  165. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  166. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  167. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  168. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  169. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  170. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  171. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  172. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  173. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  174. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  175. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  176. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  177. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  178. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  179. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  180. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  181. package/dist/openapi/models/MultipartPartListing.js +1 -1
  182. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  183. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  184. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  185. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  186. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  187. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  188. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  189. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  190. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  191. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  192. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  193. package/dist/openapi/models/OperationDefinition.js +1 -1
  194. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  195. package/dist/openapi/models/OperationDownload.js +1 -1
  196. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  197. package/dist/openapi/models/OperationInputModel.js +1 -1
  198. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  199. package/dist/openapi/models/OperationResponse.js +1 -1
  200. package/dist/openapi/models/OperationResult.d.ts +1 -1
  201. package/dist/openapi/models/OperationResult.js +1 -1
  202. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  203. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  204. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  205. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  206. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  207. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  208. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  209. package/dist/openapi/models/OperationStatus.js +1 -1
  210. package/dist/openapi/models/OperationType.d.ts +1 -1
  211. package/dist/openapi/models/OperationType.js +1 -1
  212. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  213. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  214. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  215. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  216. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  217. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  218. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  219. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  220. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  221. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  222. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  223. package/dist/openapi/models/OptionSchema.js +1 -1
  224. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  225. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  226. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  227. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  228. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  229. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  230. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  231. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  232. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  233. package/dist/openapi/models/ProcessingClass.js +1 -1
  234. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  235. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  236. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  237. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  238. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  239. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  240. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  241. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  242. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  243. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  244. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  245. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  246. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  247. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  248. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  249. package/dist/openapi/models/ProcessingPlan.js +1 -1
  250. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  251. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  252. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  253. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  254. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  255. package/dist/openapi/models/ReadinessResponse.js +1 -1
  256. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  257. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  258. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  259. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  260. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  261. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  262. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  263. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  264. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  265. package/dist/openapi/models/RetryResponse.js +1 -1
  266. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  267. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  268. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  269. package/dist/openapi/models/SseCompletionBase.js +1 -1
  270. package/dist/openapi/models/SseEventType.d.ts +1 -1
  271. package/dist/openapi/models/SseEventType.js +1 -1
  272. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  273. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  274. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  275. package/dist/openapi/models/SseJobFailedData.js +1 -1
  276. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  277. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  278. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  279. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  280. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  281. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  282. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  283. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  284. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  285. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  286. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  287. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  288. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  289. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  290. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  291. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  292. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  293. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  294. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  295. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  296. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  297. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  298. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  299. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  300. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  301. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  302. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  303. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  304. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  305. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  306. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  307. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  308. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  309. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  310. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  311. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  312. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  313. package/dist/openapi/models/UploadFile403Response.js +1 -1
  314. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  315. package/dist/openapi/models/UploadFile422Response.js +1 -1
  316. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  317. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  318. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  319. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  320. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  321. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  322. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  323. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  324. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  325. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  326. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  327. package/dist/openapi/models/UploadResponse.js +1 -1
  328. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  329. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  330. package/dist/openapi/models/UploadSource.d.ts +1 -1
  331. package/dist/openapi/models/UploadSource.js +1 -1
  332. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  333. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  334. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  335. package/dist/openapi/models/UploadThresholds.js +1 -1
  336. package/dist/openapi/models/UserTier.d.ts +1 -1
  337. package/dist/openapi/models/UserTier.js +1 -1
  338. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  339. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  340. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  341. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  342. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  343. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  344. package/dist/openapi/models/WarningType.d.ts +1 -1
  345. package/dist/openapi/models/WarningType.js +1 -1
  346. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  347. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  348. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  349. package/dist/openapi/models/WebhookPayload.js +1 -1
  350. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  351. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  352. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  353. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  354. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  355. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  356. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  357. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  358. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  359. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  360. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  361. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  362. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  363. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  364. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  365. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  366. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  367. package/dist/openapi/models/WorkflowEdge.js +1 -1
  368. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  369. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  370. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  371. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  372. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  373. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  374. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  375. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  376. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  377. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  378. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  379. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  380. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  381. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  382. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  383. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  384. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  385. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  386. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  387. package/dist/openapi/models/WorkflowSource.js +1 -1
  388. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  389. package/dist/openapi/models/WorkflowStatus.js +1 -1
  390. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  391. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  392. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  393. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  394. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  395. package/dist/openapi/models/WorkflowSummary.js +1 -1
  396. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  397. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  398. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  399. package/dist/openapi/models/WorkflowWarning.js +1 -1
  400. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  401. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  402. package/dist/openapi/runtime.d.ts +1 -1
  403. package/dist/openapi/runtime.js +1 -1
  404. package/dist/operations/compress.d.ts +18 -0
  405. package/dist/operations/compress.js +15 -0
  406. package/dist/operations/compress.metadata.js +33 -0
  407. package/dist/operations/convert.d.ts +21 -0
  408. package/dist/operations/convert.js +15 -0
  409. package/dist/operations/convert.metadata.js +25 -0
  410. package/openapi/api.yaml +1 -1
  411. package/operation-capabilities/operation-capabilities.json +1 -1
  412. package/operations/schemas/compress.yaml +152 -38
  413. package/operations/schemas/convert.yaml +80 -1
  414. package/package.json +1 -1
@@ -236,20 +236,24 @@
236
236
  "accepted_options": {
237
237
  "original": [
238
238
  "avif_speed",
239
+ "encoding_mode",
239
240
  "fit",
240
241
  "height",
241
242
  "metadata",
242
243
  "output_format",
243
244
  "quality",
245
+ "target_size_bytes",
244
246
  "width"
245
247
  ],
246
248
  "webp": [
247
249
  "avif_speed",
250
+ "encoding_mode",
248
251
  "fit",
249
252
  "height",
250
253
  "metadata",
251
254
  "output_format",
252
255
  "quality",
256
+ "target_size_bytes",
253
257
  "width"
254
258
  ]
255
259
  },
@@ -258,6 +262,7 @@
258
262
  "image_jpeg": {
259
263
  "accepted_options": {
260
264
  "original": [
265
+ "encoding_mode",
261
266
  "fit",
262
267
  "height",
263
268
  "lossless",
@@ -265,9 +270,11 @@
265
270
  "output_format",
266
271
  "progressive",
267
272
  "quality",
273
+ "target_size_bytes",
268
274
  "width"
269
275
  ],
270
276
  "webp": [
277
+ "encoding_mode",
271
278
  "fit",
272
279
  "height",
273
280
  "lossless",
@@ -275,6 +282,7 @@
275
282
  "output_format",
276
283
  "progressive",
277
284
  "quality",
285
+ "target_size_bytes",
278
286
  "width"
279
287
  ]
280
288
  },
@@ -323,21 +331,25 @@
323
331
  "image_webp": {
324
332
  "accepted_options": {
325
333
  "original": [
334
+ "encoding_mode",
326
335
  "fit",
327
336
  "height",
328
337
  "lossless",
329
338
  "metadata",
330
339
  "output_format",
331
340
  "quality",
341
+ "target_size_bytes",
332
342
  "width"
333
343
  ],
334
344
  "webp": [
345
+ "encoding_mode",
335
346
  "fit",
336
347
  "height",
337
348
  "lossless",
338
349
  "metadata",
339
350
  "output_format",
340
351
  "quality",
352
+ "target_size_bytes",
341
353
  "width"
342
354
  ]
343
355
  },
@@ -461,6 +473,51 @@
461
473
  "output_format_option": "output_format"
462
474
  },
463
475
  "image": {
476
+ "accepted_options": {
477
+ "avif": [
478
+ "fit",
479
+ "height",
480
+ "output_format",
481
+ "quality",
482
+ "width"
483
+ ],
484
+ "gif": [
485
+ "fit",
486
+ "height",
487
+ "output_format",
488
+ "width"
489
+ ],
490
+ "jpeg": [
491
+ "background",
492
+ "fit",
493
+ "height",
494
+ "output_format",
495
+ "quality",
496
+ "width"
497
+ ],
498
+ "png": [
499
+ "fit",
500
+ "height",
501
+ "output_format",
502
+ "width"
503
+ ],
504
+ "tiff": [
505
+ "fit",
506
+ "height",
507
+ "output_format",
508
+ "width"
509
+ ],
510
+ "webp": [
511
+ "fit",
512
+ "height",
513
+ "output_format",
514
+ "quality",
515
+ "width"
516
+ ]
517
+ },
518
+ "output_format_option": "output_format"
519
+ },
520
+ "image_svg": {
464
521
  "accepted_options": {
465
522
  "avif": [
466
523
  "output_format",
@@ -787,5 +844,5 @@
787
844
  }
788
845
  }
789
846
  },
790
- "schema_version": "2.102.0"
847
+ "schema_version": "2.104.0"
791
848
  }
@@ -7,47 +7,71 @@
7
7
  "format_change": {
8
8
  "avif": {
9
9
  "honored_options": [
10
+ "fit",
11
+ "height",
10
12
  "output_format",
11
- "quality"
13
+ "quality",
14
+ "width"
12
15
  ],
16
+ "max_output_pixels": 16000000,
13
17
  "planned_options": [],
14
18
  "source_op": "convert"
15
19
  },
16
20
  "gif": {
17
21
  "honored_options": [
18
- "output_format"
22
+ "fit",
23
+ "height",
24
+ "output_format",
25
+ "width"
19
26
  ],
27
+ "max_output_pixels": 16000000,
20
28
  "planned_options": [],
21
29
  "source_op": "convert"
22
30
  },
23
31
  "jpeg": {
24
32
  "honored_options": [
25
33
  "background",
34
+ "fit",
35
+ "height",
26
36
  "output_format",
27
- "quality"
37
+ "quality",
38
+ "width"
28
39
  ],
40
+ "max_output_pixels": 16000000,
29
41
  "planned_options": [],
30
42
  "source_op": "convert"
31
43
  },
32
44
  "png": {
33
45
  "honored_options": [
34
- "output_format"
46
+ "fit",
47
+ "height",
48
+ "output_format",
49
+ "width"
35
50
  ],
51
+ "max_output_pixels": 16000000,
36
52
  "planned_options": [],
37
53
  "source_op": "convert"
38
54
  },
39
55
  "tiff": {
40
56
  "honored_options": [
41
- "output_format"
57
+ "fit",
58
+ "height",
59
+ "output_format",
60
+ "width"
42
61
  ],
62
+ "max_output_pixels": 16000000,
43
63
  "planned_options": [],
44
64
  "source_op": "convert"
45
65
  },
46
66
  "webp": {
47
67
  "honored_options": [
68
+ "fit",
69
+ "height",
48
70
  "output_format",
49
- "quality"
71
+ "quality",
72
+ "width"
50
73
  ],
74
+ "max_output_pixels": 16000000,
51
75
  "planned_options": [],
52
76
  "source_op": "convert"
53
77
  }
@@ -66,6 +90,7 @@
66
90
  "avif": {
67
91
  "honored_options": [
68
92
  "avif_speed",
93
+ "encoding_mode",
69
94
  "fit",
70
95
  "height",
71
96
  "metadata",
@@ -75,7 +100,9 @@
75
100
  ],
76
101
  "input_mime": "image/avif",
77
102
  "max_output_pixels": 16000000,
78
- "planned_options": [],
103
+ "planned_options": [
104
+ "target_size_bytes"
105
+ ],
79
106
  "source_op": "compress"
80
107
  },
81
108
  "gif": {
@@ -94,6 +121,7 @@
94
121
  },
95
122
  "jpeg": {
96
123
  "honored_options": [
124
+ "encoding_mode",
97
125
  "fit",
98
126
  "height",
99
127
  "lossless",
@@ -105,7 +133,9 @@
105
133
  ],
106
134
  "input_mime": "image/jpeg",
107
135
  "max_output_pixels": 16000000,
108
- "planned_options": [],
136
+ "planned_options": [
137
+ "target_size_bytes"
138
+ ],
109
139
  "source_op": "compress"
110
140
  },
111
141
  "png": {
@@ -151,6 +181,7 @@
151
181
  },
152
182
  "webp": {
153
183
  "honored_options": [
184
+ "encoding_mode",
154
185
  "fit",
155
186
  "height",
156
187
  "lossless",
@@ -161,7 +192,9 @@
161
192
  ],
162
193
  "input_mime": "image/webp",
163
194
  "max_output_pixels": 16000000,
164
- "planned_options": [],
195
+ "planned_options": [
196
+ "target_size_bytes"
197
+ ],
165
198
  "source_op": "compress"
166
199
  }
167
200
  }
@@ -179,5 +212,5 @@
179
212
  "source_op": "compress"
180
213
  }
181
214
  },
182
- "schema_version": "2.102.0"
215
+ "schema_version": "2.104.0"
183
216
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "capabilities_version": 121,
2
+ "capabilities_version": 123,
3
3
  "endpoints": {
4
4
  "DELETE /api/auth/api-keys/{apiKeyId}": {
5
5
  "auth": "required",
@@ -1125,7 +1125,7 @@
1125
1125
  "logic": "or",
1126
1126
  "width": "set"
1127
1127
  },
1128
- "description": "Resize mode. max = fit within bounds (preserves aspect ratio, no crop), crop/scale = exact dimensions. Applies only when width or height is set, on whichever Output route runs.",
1128
+ "description": "Resize mode. `max` (default) = fit within bounds, preserving aspect ratio and NEVER upscaling \u2014 it caps at the source dimensions. This IS the \"no-enlarge\" behaviour (there is no separate `no_enlarge` flag \u2014 the worker has no such key). `crop`/`scale` = exact dimensions (`scale` deliberately enlarges past source). Applies only when width or height is set, on whichever Output route runs.",
1129
1129
  "honored_on": [
1130
1130
  "same_format",
1131
1131
  "format_change"
@@ -1179,7 +1179,7 @@
1179
1179
  "type": "integer"
1180
1180
  },
1181
1181
  "width": {
1182
- "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven image resize engine (Lanczos, shared with thumbnail-images) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1182
+ "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven convert resize engine (Lanczos; the API routes Output resize through the convert worker, BOTH routes \u2014 the compress optimiser has no resize) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1183
1183
  "honored_on": [
1184
1184
  "same_format",
1185
1185
  "format_change"
@@ -1207,6 +1207,23 @@
1207
1207
  "min": 1,
1208
1208
  "type": "integer"
1209
1209
  },
1210
+ "encoding_mode": {
1211
+ "default": "quality",
1212
+ "description": "Compression mode (mirrors compress.video). `quality` = the `quality` slider drives the encode (default, live). `target_size` = `planned` \u2014 hit a byte budget via the worker's encode-measure-binary-search loop (lambdas building; jpeg/webp/avif only). AVIF encodes are slow, so the loop caps iterations. Optimiser (same_format) route.",
1213
+ "honored_on": [
1214
+ "same_format"
1215
+ ],
1216
+ "per_value_availability": {
1217
+ "target_size": {
1218
+ "availability": "planned"
1219
+ }
1220
+ },
1221
+ "type": "enum",
1222
+ "values": [
1223
+ "quality",
1224
+ "target_size"
1225
+ ]
1226
+ },
1210
1227
  "fit": {
1211
1228
  "default": "max",
1212
1229
  "depends_on": {
@@ -1214,7 +1231,7 @@
1214
1231
  "logic": "or",
1215
1232
  "width": "set"
1216
1233
  },
1217
- "description": "Resize mode. max = fit within bounds (preserves aspect ratio, no crop), crop/scale = exact dimensions. Applies only when width or height is set, on whichever Output route runs.",
1234
+ "description": "Resize mode. `max` (default) = fit within bounds, preserving aspect ratio and NEVER upscaling \u2014 it caps at the source dimensions. This IS the \"no-enlarge\" behaviour (there is no separate `no_enlarge` flag \u2014 the worker has no such key). `crop`/`scale` = exact dimensions (`scale` deliberately enlarges past source). Applies only when width or height is set, on whichever Output route runs.",
1218
1235
  "honored_on": [
1219
1236
  "same_format",
1220
1237
  "format_change"
@@ -1258,7 +1275,10 @@
1258
1275
  },
1259
1276
  "quality": {
1260
1277
  "default": 80,
1261
- "description": "Compression quality (1 = smallest file, 100 = best quality).",
1278
+ "depends_on": {
1279
+ "encoding_mode": "quality"
1280
+ },
1281
+ "description": "Compression quality (1 = smallest file, 100 = best quality). Active in `quality` mode (default); in `target_size` mode the encode-measure loop owns quality, so this option is inactive.",
1262
1282
  "honored_on": [
1263
1283
  "same_format"
1264
1284
  ],
@@ -1266,8 +1286,20 @@
1266
1286
  "min": 1,
1267
1287
  "type": "integer"
1268
1288
  },
1289
+ "target_size_bytes": {
1290
+ "availability": "planned",
1291
+ "depends_on": {
1292
+ "encoding_mode": "target_size"
1293
+ },
1294
+ "description": "Target output size in bytes (min 1024 = 1 KiB). `planned` \u2014 the image encode-measure loop binary-searches quality to land at or under the target; best-effort if the target is unreachable at min quality (the result reports the chosen quality + whether the target was met). Optimiser (same_format) route.",
1295
+ "honored_on": [
1296
+ "same_format"
1297
+ ],
1298
+ "min": 1024,
1299
+ "type": "integer"
1300
+ },
1269
1301
  "width": {
1270
- "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven image resize engine (Lanczos, shared with thumbnail-images) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1302
+ "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven convert resize engine (Lanczos; the API routes Output resize through the convert worker, BOTH routes \u2014 the compress optimiser has no resize) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1271
1303
  "honored_on": [
1272
1304
  "same_format",
1273
1305
  "format_change"
@@ -1284,6 +1316,23 @@
1284
1316
  "image/jpeg"
1285
1317
  ],
1286
1318
  "options": {
1319
+ "encoding_mode": {
1320
+ "default": "quality",
1321
+ "description": "Compression mode (mirrors compress.video). `quality` = the `quality` slider drives the encode (default, live). `target_size` = `planned` \u2014 hit a byte budget via the worker's encode-measure-binary-search loop (lambdas building; jpeg/webp/avif only). Optimiser (same_format) route.",
1322
+ "honored_on": [
1323
+ "same_format"
1324
+ ],
1325
+ "per_value_availability": {
1326
+ "target_size": {
1327
+ "availability": "planned"
1328
+ }
1329
+ },
1330
+ "type": "enum",
1331
+ "values": [
1332
+ "quality",
1333
+ "target_size"
1334
+ ]
1335
+ },
1287
1336
  "fit": {
1288
1337
  "default": "max",
1289
1338
  "depends_on": {
@@ -1291,7 +1340,7 @@
1291
1340
  "logic": "or",
1292
1341
  "width": "set"
1293
1342
  },
1294
- "description": "Resize mode. max = fit within bounds (preserves aspect ratio, no crop), crop/scale = exact dimensions. Applies only when width or height is set, on whichever Output route runs.",
1343
+ "description": "Resize mode. `max` (default) = fit within bounds, preserving aspect ratio and NEVER upscaling \u2014 it caps at the source dimensions. This IS the \"no-enlarge\" behaviour (there is no separate `no_enlarge` flag \u2014 the worker has no such key). `crop`/`scale` = exact dimensions (`scale` deliberately enlarges past source). Applies only when width or height is set, on whichever Output route runs.",
1295
1344
  "honored_on": [
1296
1345
  "same_format",
1297
1346
  "format_change"
@@ -1315,7 +1364,10 @@
1315
1364
  },
1316
1365
  "lossless": {
1317
1366
  "default": false,
1318
- "description": "Lossless JPEG re-optimisation (optimiser path): optimises the Huffman tables WITHOUT re-encoding pixels \u2014 bit-preserving on the pixel data, no quality loss (it cannot recover detail a lossy JPEG already lost). STABLE \u2014 the compress-image worker honours the `lossless` bool (un-parked 2026-06-23). Optimiser (same_format) route only.",
1367
+ "depends_on": {
1368
+ "encoding_mode": "quality"
1369
+ },
1370
+ "description": "Lossless JPEG re-optimisation (optimiser path): optimises the Huffman tables WITHOUT re-encoding pixels \u2014 bit-preserving on the pixel data, no quality loss (it cannot recover detail a lossy JPEG already lost). STABLE \u2014 the compress-image worker honours the `lossless` bool (un-parked 2026-06-23). Only in `quality` mode \u2014 incompatible with `target_size` (the byte-budget loop is inherently lossy). Optimiser (same_format) route only.",
1319
1371
  "honored_on": [
1320
1372
  "same_format"
1321
1373
  ],
@@ -1352,7 +1404,10 @@
1352
1404
  },
1353
1405
  "quality": {
1354
1406
  "default": 80,
1355
- "description": "Compression quality (1 = smallest file, 100 = best quality).",
1407
+ "depends_on": {
1408
+ "encoding_mode": "quality"
1409
+ },
1410
+ "description": "Compression quality (1 = smallest file, 100 = best quality). Active in `quality` mode (default); in `target_size` mode the encode-measure loop owns quality, so this option is inactive.",
1356
1411
  "honored_on": [
1357
1412
  "same_format"
1358
1413
  ],
@@ -1360,8 +1415,20 @@
1360
1415
  "min": 1,
1361
1416
  "type": "integer"
1362
1417
  },
1418
+ "target_size_bytes": {
1419
+ "availability": "planned",
1420
+ "depends_on": {
1421
+ "encoding_mode": "target_size"
1422
+ },
1423
+ "description": "Target output size in bytes (min 1024 = 1 KiB). `planned` \u2014 the image encode-measure loop binary-searches quality to land at or under the target; best-effort if the target is unreachable at min quality (the result reports the chosen quality + whether the target was met). Optimiser (same_format) route.",
1424
+ "honored_on": [
1425
+ "same_format"
1426
+ ],
1427
+ "min": 1024,
1428
+ "type": "integer"
1429
+ },
1363
1430
  "width": {
1364
- "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven image resize engine (Lanczos, shared with thumbnail-images) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1431
+ "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven convert resize engine (Lanczos; the API routes Output resize through the convert worker, BOTH routes \u2014 the compress optimiser has no resize) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1365
1432
  "honored_on": [
1366
1433
  "same_format",
1367
1434
  "format_change"
@@ -1385,7 +1452,7 @@
1385
1452
  "logic": "or",
1386
1453
  "width": "set"
1387
1454
  },
1388
- "description": "Resize mode. max = fit within bounds (preserves aspect ratio, no crop), crop/scale = exact dimensions. Applies only when width or height is set, on whichever Output route runs.",
1455
+ "description": "Resize mode. `max` (default) = fit within bounds, preserving aspect ratio and NEVER upscaling \u2014 it caps at the source dimensions. This IS the \"no-enlarge\" behaviour (there is no separate `no_enlarge` flag \u2014 the worker has no such key). `crop`/`scale` = exact dimensions (`scale` deliberately enlarges past source). Applies only when width or height is set, on whichever Output route runs.",
1389
1456
  "honored_on": [
1390
1457
  "same_format",
1391
1458
  "format_change"
@@ -1458,7 +1525,7 @@
1458
1525
  "type": "integer"
1459
1526
  },
1460
1527
  "width": {
1461
- "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven image resize engine (Lanczos, shared with thumbnail-images) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1528
+ "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven convert resize engine (Lanczos; the API routes Output resize through the convert worker, BOTH routes \u2014 the compress optimiser has no resize) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1462
1529
  "honored_on": [
1463
1530
  "same_format",
1464
1531
  "format_change"
@@ -1512,6 +1579,23 @@
1512
1579
  "image/webp"
1513
1580
  ],
1514
1581
  "options": {
1582
+ "encoding_mode": {
1583
+ "default": "quality",
1584
+ "description": "Compression mode (mirrors compress.video). `quality` = the `quality` slider drives the encode (default, live). `target_size` = `planned` \u2014 hit a byte budget via the worker's encode-measure-binary-search loop (lambdas building; jpeg/webp/avif only). Optimiser (same_format) route.",
1585
+ "honored_on": [
1586
+ "same_format"
1587
+ ],
1588
+ "per_value_availability": {
1589
+ "target_size": {
1590
+ "availability": "planned"
1591
+ }
1592
+ },
1593
+ "type": "enum",
1594
+ "values": [
1595
+ "quality",
1596
+ "target_size"
1597
+ ]
1598
+ },
1515
1599
  "fit": {
1516
1600
  "default": "max",
1517
1601
  "depends_on": {
@@ -1519,7 +1603,7 @@
1519
1603
  "logic": "or",
1520
1604
  "width": "set"
1521
1605
  },
1522
- "description": "Resize mode. max = fit within bounds (preserves aspect ratio, no crop), crop/scale = exact dimensions. Applies only when width or height is set, on whichever Output route runs.",
1606
+ "description": "Resize mode. `max` (default) = fit within bounds, preserving aspect ratio and NEVER upscaling \u2014 it caps at the source dimensions. This IS the \"no-enlarge\" behaviour (there is no separate `no_enlarge` flag \u2014 the worker has no such key). `crop`/`scale` = exact dimensions (`scale` deliberately enlarges past source). Applies only when width or height is set, on whichever Output route runs.",
1523
1607
  "honored_on": [
1524
1608
  "same_format",
1525
1609
  "format_change"
@@ -1543,7 +1627,10 @@
1543
1627
  },
1544
1628
  "lossless": {
1545
1629
  "default": false,
1546
- "description": "Encode WebP losslessly (optimiser path): a genuine lossless WebP encode. STABLE \u2014 the compress-image worker honours the `lossless` bool (un-parked 2026-06-23). Note a lossless encode can be LARGER than a lossy one at the same visual quality. Optimiser (same_format) route only.",
1630
+ "depends_on": {
1631
+ "encoding_mode": "quality"
1632
+ },
1633
+ "description": "Encode WebP losslessly (optimiser path): a genuine lossless WebP encode. STABLE \u2014 the compress-image worker honours the `lossless` bool (un-parked 2026-06-23). Note a lossless encode can be LARGER than a lossy one at the same visual quality. Only in `quality` mode \u2014 incompatible with `target_size` (the byte-budget loop is inherently lossy). Optimiser (same_format) route only.",
1547
1634
  "honored_on": [
1548
1635
  "same_format"
1549
1636
  ],
@@ -1572,7 +1659,10 @@
1572
1659
  },
1573
1660
  "quality": {
1574
1661
  "default": 80,
1575
- "description": "Compression quality (1 = smallest file, 100 = best quality).",
1662
+ "depends_on": {
1663
+ "encoding_mode": "quality"
1664
+ },
1665
+ "description": "Compression quality (1 = smallest file, 100 = best quality). Active in `quality` mode (default); in `target_size` mode the encode-measure loop owns quality, so this option is inactive.",
1576
1666
  "honored_on": [
1577
1667
  "same_format"
1578
1668
  ],
@@ -1580,8 +1670,20 @@
1580
1670
  "min": 1,
1581
1671
  "type": "integer"
1582
1672
  },
1673
+ "target_size_bytes": {
1674
+ "availability": "planned",
1675
+ "depends_on": {
1676
+ "encoding_mode": "target_size"
1677
+ },
1678
+ "description": "Target output size in bytes (min 1024 = 1 KiB). `planned` \u2014 the image encode-measure loop binary-searches quality to land at or under the target; best-effort if the target is unreachable at min quality (the result reports the chosen quality + whether the target was met). Optimiser (same_format) route.",
1679
+ "honored_on": [
1680
+ "same_format"
1681
+ ],
1682
+ "min": 1024,
1683
+ "type": "integer"
1684
+ },
1583
1685
  "width": {
1584
- "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven image resize engine (Lanczos, shared with thumbnail-images) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1686
+ "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). Resize the image as part of Output (replace semantics, ONE transformed output) using the proven convert resize engine (Lanczos; the API routes Output resize through the convert worker, BOTH routes \u2014 the compress optimiser has no resize) \u2014 it is NOT the derivative `thumbnail` op. Optional; omit to keep the source dimensions.",
1585
1687
  "honored_on": [
1586
1688
  "same_format",
1587
1689
  "format_change"
@@ -1865,12 +1967,12 @@
1865
1967
  }
1866
1968
  },
1867
1969
  "image": {
1970
+ "max_output_pixels": 16000000,
1868
1971
  "mimes": [
1869
1972
  "image/jpeg",
1870
1973
  "image/png",
1871
1974
  "image/gif",
1872
1975
  "image/webp",
1873
- "image/svg+xml",
1874
1976
  "image/tiff",
1875
1977
  "image/bmp",
1876
1978
  "image/vnd.microsoft.icon",
@@ -1889,6 +1991,33 @@
1889
1991
  "pattern": "^#[0-9a-fA-F]{6}$",
1890
1992
  "type": "string"
1891
1993
  },
1994
+ "fit": {
1995
+ "default": "max",
1996
+ "depends_on": {
1997
+ "height": "set",
1998
+ "logic": "or",
1999
+ "width": "set"
2000
+ },
2001
+ "description": "Resize mode. `max` (default) = fit within bounds, preserving aspect ratio and NEVER upscaling \u2014 it caps at the source dimensions. This IS the \"no-enlarge\" behaviour (there is no separate `no_enlarge` flag \u2014 the worker has no such key). `crop`/`scale` = exact dimensions (`scale` deliberately enlarges past source). Applies only when width or height is set.",
2002
+ "honored_on": [
2003
+ "format_change"
2004
+ ],
2005
+ "type": "enum",
2006
+ "values": [
2007
+ "max",
2008
+ "crop",
2009
+ "scale"
2010
+ ]
2011
+ },
2012
+ "height": {
2013
+ "description": "Resize-inside-Output: target height in pixels (1-16384; width*height <= max_output_pixels). Not honored for SVG input. See `width`.",
2014
+ "honored_on": [
2015
+ "format_change"
2016
+ ],
2017
+ "max": 16384,
2018
+ "min": 1,
2019
+ "type": "integer"
2020
+ },
1892
2021
  "output_format": {
1893
2022
  "description": "Target format",
1894
2023
  "required": true,
@@ -1918,6 +2047,15 @@
1918
2047
  "max": 100,
1919
2048
  "min": 1,
1920
2049
  "type": "integer"
2050
+ },
2051
+ "width": {
2052
+ "description": "Resize-inside-Output: target width in pixels (1-16384; width*height <= max_output_pixels). The convert worker resizes (Lanczos) before encode; single transformed output. NOT honored for SVG input (the worker rejects svg resize). Input-gated \u2014 see the resize comment above.",
2053
+ "honored_on": [
2054
+ "format_change"
2055
+ ],
2056
+ "max": 16384,
2057
+ "min": 1,
2058
+ "type": "integer"
1921
2059
  }
1922
2060
  },
1923
2061
  "per_mime_availability": {
@@ -1929,6 +2067,54 @@
1929
2067
  }
1930
2068
  }
1931
2069
  },
2070
+ "image_svg": {
2071
+ "mimes": [
2072
+ "image/svg+xml"
2073
+ ],
2074
+ "options": {
2075
+ "background": {
2076
+ "depends_on": {
2077
+ "output_format": "jpeg"
2078
+ },
2079
+ "description": "Background colour as a 6-digit hex (`#RRGGBB`) for transparent SVG rasterised to JPEG (alpha-flatten). HEX ONLY \u2014 non-hex is rejected as `invalid_options` (see convert.image.background).",
2080
+ "honored_on": [
2081
+ "format_change"
2082
+ ],
2083
+ "pattern": "^#[0-9a-fA-F]{6}$",
2084
+ "type": "string"
2085
+ },
2086
+ "output_format": {
2087
+ "description": "Target raster format (SVG is rasterised, then encoded).",
2088
+ "required": true,
2089
+ "type": "enum",
2090
+ "values": [
2091
+ "jpeg",
2092
+ "png",
2093
+ "webp",
2094
+ "avif",
2095
+ "gif",
2096
+ "tiff"
2097
+ ]
2098
+ },
2099
+ "quality": {
2100
+ "default": 85,
2101
+ "depends_on": {
2102
+ "output_format": [
2103
+ "jpeg",
2104
+ "webp",
2105
+ "avif"
2106
+ ]
2107
+ },
2108
+ "description": "Output quality for lossy formats",
2109
+ "honored_on": [
2110
+ "format_change"
2111
+ ],
2112
+ "max": 100,
2113
+ "min": 1,
2114
+ "type": "integer"
2115
+ }
2116
+ }
2117
+ },
1932
2118
  "video": {
1933
2119
  "mimes": [
1934
2120
  "video/mp4",
@@ -3941,7 +4127,7 @@
3941
4127
  "sole_op": true
3942
4128
  }
3943
4129
  },
3944
- "schema_version": "2.102.0",
4130
+ "schema_version": "2.104.0",
3945
4131
  "source_commit": null,
3946
4132
  "user_tier": null,
3947
4133
  "workflow_features": {