@giveitsmaller/contracts 0.47.0 → 0.50.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 (476) hide show
  1. package/accepted-options/accepted-options.json +29 -53
  2. package/accepted-options/image-output-routes.json +20 -30
  3. package/asyncapi/events.yaml +32 -6
  4. package/availability/availability.json +94 -269
  5. package/dist/asyncapi/OperationMetrics.d.ts +2 -0
  6. package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
  7. package/dist/openapi/models/AccountLimitEntry.js +1 -1
  8. package/dist/openapi/models/AccountLimits.d.ts +1 -1
  9. package/dist/openapi/models/AccountLimits.js +1 -1
  10. package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
  11. package/dist/openapi/models/AccountLimitsLimits.js +1 -1
  12. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
  13. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
  14. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
  15. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
  16. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
  17. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
  18. package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
  19. package/dist/openapi/models/AuthErrorResponse.js +1 -1
  20. package/dist/openapi/models/AuthErrorType.d.ts +1 -1
  21. package/dist/openapi/models/AuthErrorType.js +1 -1
  22. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
  23. package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
  24. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  25. package/dist/openapi/models/AvailabilityValue.js +1 -1
  26. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  27. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  28. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  29. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  30. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  31. package/dist/openapi/models/CallbackEventType.js +1 -1
  32. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  33. package/dist/openapi/models/CapabilityCondition.js +1 -1
  34. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  35. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  36. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  37. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  38. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  39. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  40. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  41. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  42. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  43. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  44. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  45. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  48. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  49. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  50. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  51. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  52. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  53. package/dist/openapi/models/CapabilityProduces.js +1 -1
  54. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  55. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  56. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  57. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  58. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  59. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  60. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  61. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  62. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  63. package/dist/openapi/models/CodegenSource.js +1 -1
  64. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  65. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  66. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  67. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  68. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  69. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  70. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  71. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  72. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  73. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  74. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  75. package/dist/openapi/models/CompositionPlan.js +1 -1
  76. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  77. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  78. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  79. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  80. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  81. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  82. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  83. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  84. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  85. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  86. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  87. package/dist/openapi/models/ConnectionSource.js +1 -1
  88. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  89. package/dist/openapi/models/ContactRequest.js +1 -1
  90. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  91. package/dist/openapi/models/ContactSubject.js +1 -1
  92. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  93. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  94. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  95. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  96. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  97. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  98. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  99. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  100. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  101. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  102. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  103. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  104. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  105. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  106. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  107. package/dist/openapi/models/CreditTransaction.js +1 -1
  108. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  109. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  110. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  111. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  112. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  113. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  114. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  115. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  116. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  117. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  118. package/dist/openapi/models/Delivery.d.ts +1 -1
  119. package/dist/openapi/models/Delivery.js +1 -1
  120. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  121. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  122. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  123. package/dist/openapi/models/DeliveryPlan.js +1 -1
  124. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  125. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  126. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  127. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  128. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  129. package/dist/openapi/models/DeliverySelection.js +1 -1
  130. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  131. package/dist/openapi/models/DownloadBundle.js +1 -1
  132. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  133. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  134. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  135. package/dist/openapi/models/EndpointProjection.js +1 -1
  136. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  137. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  138. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  139. package/dist/openapi/models/EstimateQuality.js +1 -1
  140. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  141. package/dist/openapi/models/EstimateRange.js +1 -1
  142. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  143. package/dist/openapi/models/ExternalDestination.js +1 -1
  144. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  145. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  146. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  147. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  148. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  149. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  150. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  151. package/dist/openapi/models/ExternalImportToken.js +1 -1
  152. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  153. package/dist/openapi/models/ExternalSource.js +1 -1
  154. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  155. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  156. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  157. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  158. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  159. package/dist/openapi/models/FeatureViolation.js +1 -1
  160. package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
  161. package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
  162. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  163. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  164. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  165. package/dist/openapi/models/JobDefinition.js +1 -1
  166. package/dist/openapi/models/JobDownload.d.ts +1 -1
  167. package/dist/openapi/models/JobDownload.js +1 -1
  168. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  169. package/dist/openapi/models/JobInputV2.js +1 -1
  170. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  171. package/dist/openapi/models/JobMediaClass.js +1 -1
  172. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  173. package/dist/openapi/models/JobOutputSource.js +1 -1
  174. package/dist/openapi/models/JobResponse.d.ts +1 -1
  175. package/dist/openapi/models/JobResponse.js +1 -1
  176. package/dist/openapi/models/JobStatus.d.ts +1 -1
  177. package/dist/openapi/models/JobStatus.js +1 -1
  178. package/dist/openapi/models/JobType.d.ts +1 -1
  179. package/dist/openapi/models/JobType.js +1 -1
  180. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  181. package/dist/openapi/models/LivenessResponse.js +1 -1
  182. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  183. package/dist/openapi/models/LoginUser200Response.js +1 -1
  184. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  185. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  186. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  187. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  188. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  189. package/dist/openapi/models/LoginUserRequest.js +1 -1
  190. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  191. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  192. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  193. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  194. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  195. package/dist/openapi/models/MetadataResponse.js +1 -1
  196. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  197. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  198. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  199. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  200. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  201. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  202. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  203. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  204. package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
  205. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  206. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  207. package/dist/openapi/models/MultiInputSource.js +1 -1
  208. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  209. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  210. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  211. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  212. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  213. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  214. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  215. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  216. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  217. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  218. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  219. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  220. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  221. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  222. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  223. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  224. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  225. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  226. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  227. package/dist/openapi/models/MultipartPartListing.js +1 -1
  228. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  229. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  230. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  231. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  232. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  233. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  234. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  235. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  236. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  237. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  238. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  239. package/dist/openapi/models/OperationCapability.js +1 -1
  240. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  241. package/dist/openapi/models/OperationDefinition.js +1 -1
  242. package/dist/openapi/models/OperationDownload.d.ts +27 -4
  243. package/dist/openapi/models/OperationDownload.js +5 -1
  244. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  245. package/dist/openapi/models/OperationInputModel.js +1 -1
  246. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  247. package/dist/openapi/models/OperationResponse.js +1 -1
  248. package/dist/openapi/models/OperationResult.d.ts +1 -1
  249. package/dist/openapi/models/OperationResult.js +1 -1
  250. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  251. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  252. package/dist/openapi/models/OperationResultMetrics.d.ts +28 -5
  253. package/dist/openapi/models/OperationResultMetrics.js +5 -1
  254. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  255. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  256. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  257. package/dist/openapi/models/OperationStatus.js +1 -1
  258. package/dist/openapi/models/OperationType.d.ts +3 -3
  259. package/dist/openapi/models/OperationType.js +3 -3
  260. package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
  261. package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
  262. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  263. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  264. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  265. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  266. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  267. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  268. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  269. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  270. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  271. package/dist/openapi/models/OptionSchema.js +1 -1
  272. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  273. package/dist/openapi/models/OutputProperties.js +1 -1
  274. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  275. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  276. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  277. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  278. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  279. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  280. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  281. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  282. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  283. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  284. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  285. package/dist/openapi/models/ProcessingClass.js +1 -1
  286. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  287. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  288. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  289. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  290. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  291. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  292. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  293. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  294. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  295. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  296. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  297. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  298. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  299. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  300. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  301. package/dist/openapi/models/ProcessingPlan.js +1 -1
  302. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  303. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  304. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  305. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  306. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  307. package/dist/openapi/models/ReadinessResponse.js +1 -1
  308. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  309. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  310. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  311. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  312. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  313. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  314. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  315. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  316. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  317. package/dist/openapi/models/RetryResponse.js +1 -1
  318. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  319. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  320. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  321. package/dist/openapi/models/SseCompletionBase.js +1 -1
  322. package/dist/openapi/models/SseEventType.d.ts +1 -1
  323. package/dist/openapi/models/SseEventType.js +1 -1
  324. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  325. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  326. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  327. package/dist/openapi/models/SseJobFailedData.js +1 -1
  328. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  329. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  330. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  331. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  332. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  333. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  334. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  335. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  336. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  337. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  338. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  339. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  340. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  341. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  342. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  343. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  344. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  345. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  346. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  347. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  348. package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
  349. package/dist/openapi/models/TierRestrictionKind.js +1 -1
  350. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  351. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  352. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  353. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  354. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  355. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  356. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  357. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  358. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  359. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  360. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  361. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  362. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  363. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  364. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  365. package/dist/openapi/models/UploadFile403Response.js +1 -1
  366. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  367. package/dist/openapi/models/UploadFile422Response.js +1 -1
  368. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  369. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  370. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  371. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  372. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  373. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  374. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  375. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  376. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  377. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  378. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  379. package/dist/openapi/models/UploadResponse.js +1 -1
  380. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  381. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  382. package/dist/openapi/models/UploadSource.d.ts +1 -1
  383. package/dist/openapi/models/UploadSource.js +1 -1
  384. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  385. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  386. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  387. package/dist/openapi/models/UploadThresholds.js +1 -1
  388. package/dist/openapi/models/UserTier.d.ts +1 -1
  389. package/dist/openapi/models/UserTier.js +1 -1
  390. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  391. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  392. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  393. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  394. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  395. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  396. package/dist/openapi/models/WarningType.d.ts +1 -1
  397. package/dist/openapi/models/WarningType.js +1 -1
  398. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  399. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  400. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  401. package/dist/openapi/models/WebhookPayload.js +1 -1
  402. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  403. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  404. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  405. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  406. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  407. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  408. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  409. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  410. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  411. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  412. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  413. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  414. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  415. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  416. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  417. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  418. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  419. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  420. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  421. package/dist/openapi/models/WorkflowEdge.js +1 -1
  422. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  423. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  424. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  425. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  426. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  427. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  428. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  429. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  430. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  431. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  432. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  433. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  434. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  435. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  436. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  437. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  438. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  439. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  440. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  441. package/dist/openapi/models/WorkflowSource.js +1 -1
  442. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  443. package/dist/openapi/models/WorkflowStatus.js +1 -1
  444. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  445. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  446. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  447. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  448. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  449. package/dist/openapi/models/WorkflowSummary.js +1 -1
  450. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  451. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  452. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  453. package/dist/openapi/models/WorkflowWarning.js +1 -1
  454. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  455. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  456. package/dist/openapi/runtime.d.ts +1 -1
  457. package/dist/openapi/runtime.js +1 -1
  458. package/dist/operations/compress.d.ts +27 -12
  459. package/dist/operations/compress.js +24 -0
  460. package/dist/operations/compress.metadata.js +15 -44
  461. package/dist/operations/convert.d.ts +3 -6
  462. package/dist/operations/convert.js +2 -5
  463. package/dist/operations/convert.metadata.js +1 -17
  464. package/dist/operations/image_watermark.metadata.js +0 -2
  465. package/dist/operations/text_watermark.metadata.js +0 -2
  466. package/dist/operations/thumbnail.d.ts +6 -24
  467. package/dist/operations/thumbnail.js +0 -12
  468. package/dist/operations/thumbnail.metadata.js +0 -33
  469. package/openapi/api.yaml +50 -10
  470. package/operation-capabilities/operation-capabilities.json +12 -2
  471. package/operations/schemas/compress.yaml +156 -146
  472. package/operations/schemas/convert.yaml +53 -52
  473. package/operations/schemas/image_watermark.yaml +19 -18
  474. package/operations/schemas/text_watermark.yaml +17 -17
  475. package/operations/schemas/thumbnail.yaml +40 -77
  476. package/package.json +1 -1
@@ -25,20 +25,16 @@ operation:
25
25
  - image/avif
26
26
  - image/heic
27
27
  - image/heif
28
- per_mime_availability:
29
- # avif/heic/heif input decode in the convert worker via libheif (the
30
- # opt-in beta tier — heavier/newer decode path). beta: live + opt-in,
31
- # shape-stable. avif/heic re-added after the v2.67.0 crash-window drop
32
- # (aYPbNVKD Phase 2). image/heif is the accept-list ALIAS of the HEIF
33
- # container (same libheif decode as heic) — added 2026-06-24, lambdas
34
- # PR #265 (deployed git-7b13754) staging-proved heif→jpeg + heif→png
35
- # (decode→encode via libheif; pure accept-list widening, no verify_mime).
36
- # Kept beta to match heic/avif (the libheif tier); flip the whole tier
37
- # to stable as a deliberate GA-finish if product wants it.
38
- # (avif is also a valid OUTPUT via output_format — ravif encode.)
39
- image/avif: { availability: beta }
40
- image/heic: { availability: beta }
41
- image/heif: { availability: beta }
28
+ # avif/heic/heif input decode in the convert worker via libheif is now
29
+ # GA-STABLE — no per_mime_availability tag = stable (the group default),
30
+ # promoted beta→stable 2026-06-30 on the lambdas GA attestation: libheif
31
+ # decode (w34Taquf #210/#211; heif accept-list alias #265, git-7b13754)
32
+ # has been LIVE on staging since 2026-06-14, e2e decode-smoke green, zero
33
+ # decode failures since. Standard files are GA; exotic variants (10-bit /
34
+ # HDR / multi-image HEIC) decode best-effort. heif is the accept-list ALIAS
35
+ # of the HEIF container (same libheif decode as heic; pure accept-list
36
+ # widening, no verify_mime). (avif is also a valid OUTPUT via output_format
37
+ # — ravif encode.)
42
38
  # convert.image is the TRANSCODER leg of the route-aware image "Output"
43
39
  # model (FORMAT.md §"Route-aware Output model"): a format_change Output
44
40
  # route (output_format != input) runs here. Its options carry
@@ -127,14 +123,17 @@ operation:
127
123
  type: enum
128
124
  values: [keep, srgb, strip]
129
125
  default: keep
130
- availability: planned
131
126
  honored_on: [format_change]
132
127
  description: >-
133
128
  Colour-profile handling — a dedicated control, separate from `metadata`
134
129
  so that stripping metadata never silently shifts colours. `keep`
135
- (default) = preserve the embedded colour profile; `srgb` = convert to
136
- sRGB (also handles CMYK → sRGB); `strip` = drop the profile. `planned` —
137
- not yet supported.
130
+ (default) = preserve your colours: embed the ICC profile where the target
131
+ format can carry one, otherwise convert to sRGB and bake the colours in so
132
+ they survive (never a silent drop); `srgb` = convert to sRGB (transform
133
+ pixels to sRGB, emit untagged — no embedded ICC, the web default;
134
+ CMYK/grayscale best-effort); `strip` = drop the profile. The worker reads
135
+ the input ICC for every accepted raster input (JPEG/PNG/WebP/TIFF, plus
136
+ HEIF/AVIF via the ISO-BMFF `colr` box).
138
137
  auto_orient:
139
138
  type: boolean
140
139
  default: true
@@ -180,18 +179,17 @@ operation:
180
179
  rejected (see convert.image.background).
181
180
 
182
181
  # gif is animated raster: it converts to a STILL image (first frame / rasterise —
183
- # the existing image targets, stable) AND — NEW, planned — to VIDEO (mp4/webm):
184
- # the GIF→video transcode (animated GIF → muted, play-once video; ~85-95% smaller
185
- # than the GIF; card oEjNe9gT). Split out of convert.image so ONLY gif advertises
186
- # the mp4/webm video targets (a jpeg/png input must not show them). The output
182
+ # the existing image targets, stable) AND to VIDEO (mp4/webm): the GIF→video
183
+ # transcode (animated GIF → muted, play-once video; ~85-95% smaller than the
184
+ # GIF; card oEjNe9gT). Split out of convert.image so ONLY gif advertises the
185
+ # mp4/webm video targets (a jpeg/png input must not show them). The output
187
186
  # crosses the media boundary image→video; per codex convergence this stays
188
187
  # operation_type=convert (the convert worker's video_convert path owns the ffmpeg
189
188
  # mp4/webm encode — NOT a new op, NOT the compression-video worker). mp4/webm are
190
- # per_value_availability:planned and flip INDEPENDENTLY (like target_size's
191
- # per-format flip) on lambdas worker-proof + API representability + the API's
192
- # output-aware billing override (convert.image_gif→video is video-class encode
193
- # work, NOT a cheap image transcode — the API must not price it as convert.image;
194
- # API owns that, ticket 0Z4zunCr). Planned-first anti-regression (image-options §2.5).
189
+ # now STABLE (flipped planned→stable in v2.114.0 #258 on lambdas worker-proof);
190
+ # the API applies an output-aware billing override (convert.image_gif→video is
191
+ # video-class encode work, NOT a cheap image transcode — priced as video, not
192
+ # convert.image; API owns that, ticket 0Z4zunCr).
195
193
  image_gif:
196
194
  mimes:
197
195
  - image/gif
@@ -229,16 +227,12 @@ operation:
229
227
  Background colour as a 6-digit hex (`#RRGGBB`) for a transparent GIF
230
228
  flattened to JPEG (alpha-flatten). HEX ONLY — a non-hex value is
231
229
  rejected (see convert.image.background).
232
- metadata:
233
- type: enum
234
- values: [strip, keep]
235
- default: strip
236
- availability: planned
237
- honored_on: [format_change]
238
- description: >-
239
- Metadata handling for the still-image targets. `planned` — metadata is
240
- not yet preserved across a format change. The video targets carry no
241
- EXIF/IPTC/XMP.
230
+ # metadata REMOVED 2026-06-30 (hub honesty decision; won't-do): the GIF INPUT
231
+ # carries no standard EXIF/IPTC/XMP/ICC, so "preserve metadata across the
232
+ # format change" has nothing to preserve (colour is already handled by
233
+ # color_profile=keep's sRGB bake). The video targets carry no metadata either.
234
+ # (convert.image — a real raster group — keeps its metadata option; only the
235
+ # GIF-input group's metadata was a phantom.)
242
236
  width:
243
237
  type: integer
244
238
  min: 1
@@ -272,15 +266,16 @@ operation:
272
266
  type: enum
273
267
  values: [keep, srgb, strip]
274
268
  default: keep
275
- availability: planned
276
269
  depends_on: { output_format: [jpeg, png, webp, avif, gif, tiff] }
277
270
  honored_on: [format_change]
278
271
  description: >-
279
- Colour-profile handling — `keep` (default) = preserve the embedded colour
280
- profile; `srgb` = convert to sRGB; `strip` = drop the profile. `planned`
281
- — not yet supported. Scoped to the STILL-IMAGE targets only — the video
282
- targets (mp4/webm) carry no colour profile, so this is not accepted for a
283
- gif→video output.
272
+ Colour-profile handling — `keep` (default) = preserve your colours (embed
273
+ where the target carries an ICC, else bake to sRGB; a no-op for the GIF
274
+ input itself, which carries no profile); `srgb` = convert to sRGB
275
+ (transform pixels to sRGB, emit untagged — no embedded ICC, the web
276
+ default); `strip` = drop the profile. Scoped to the STILL-IMAGE targets
277
+ only — the video targets (mp4/webm) carry no colour profile, so this is
278
+ not accepted for a gif→video output.
284
279
  auto_orient:
285
280
  type: boolean
286
281
  default: true
@@ -326,22 +321,28 @@ operation:
326
321
  options:
327
322
  output_format:
328
323
  type: enum
329
- values: [mp4, webm, ogg, gif]
324
+ values: [mp4, webm, ogg, gif, mov, mkv]
330
325
  required: true
331
326
  # The video codec is DETERMINED by the target container, NOT a caller
332
327
  # choice: the convert-video worker hard-wires it per container
333
- # (mp4 -> H.264/libx264, webm -> VP9, ogg -> Theora, gif -> palette;
334
- # lambdas-confirmed video_convert.rs). The former `codec` option
335
- # (enum h264/h265/vp9/av1) was a SILENT NO-OP — the worker never read
336
- # it — so it was removed (honesty pass, 2026-06-20). To choose a codec,
337
- # use compress.video (which has a real, worker-honored `codec`).
338
- description: "Target format. The video codec is fixed by the container (mp4->H.264, webm->VP9, ogg->Theora, gif->palette) — not caller-selectable."
328
+ # (mp4 -> H.264/libx264, webm -> VP9, ogg -> Theora, gif -> palette,
329
+ # mov -> H.264/libx264, mkv -> H.264/libx264; lambdas-confirmed
330
+ # video_convert.rs). mov + mkv added 2026-06-30 on the lambdas staging proof
331
+ # (operation-convert #287, prove-convert-video-formats-staging.sh 2/2 PASS:
332
+ # mp4->mov [Content-Type video/quicktime, vcodec h264] + mp4->mkv
333
+ # [video/x-matroska, vcodec h264], real re-encodes, container-by-extension).
334
+ # Added STABLE — no per_value gating, matching the rest of this enum (the
335
+ # proof is in hand; they are h264 in a different container, same codec as the
336
+ # already-GA mp4). The former `codec` option (enum h264/h265/vp9/av1) was a
337
+ # SILENT NO-OP — the worker never read it — so it was removed (honesty pass,
338
+ # 2026-06-20). To choose a codec, use compress.video (real worker-honored `codec`).
339
+ description: "Target format. The video codec is fixed by the container (mp4->H.264, webm->VP9, ogg->Theora, gif->palette, mov->H.264, mkv->H.264) — not caller-selectable."
339
340
  crf:
340
341
  type: integer
341
342
  min: 0
342
343
  max: 51
343
344
  default: 23
344
- depends_on: { output_format: [mp4, webm, ogg] }
345
+ depends_on: { output_format: [mp4, webm, ogg, mov, mkv] }
345
346
  # Renamed `quality` -> `crf` (2026-06-20) to match compress.video.crf
346
347
  # and stop the misnomer: this is a Constant Rate Factor (0=best/lossless,
347
348
  # 51=worst), the INVERSE of convert.image.quality (1-100, higher=better).
@@ -361,7 +362,7 @@ operation:
361
362
  Trim from beginning in seconds (absent = from the start). The clip
362
363
  is cut before transcoding — the user's "trim a video then make a GIF"
363
364
  path. The kept clip is [`trim_start`, input_duration − `trim_end`]. Live
364
- for all video outputs (gif/mp4/webm/ogg).
365
+ for all video outputs.
365
366
  trim_end:
366
367
  type: float
367
368
  min: 0
@@ -18,15 +18,14 @@ operation:
18
18
  dispatch returns `feature_not_available` (422) until backend
19
19
  support ships.
20
20
 
21
- TIFF (image/tiff) and BMP (image/bmp) bases are likewise advertised
22
- as `planned` via the parallel `image_tiff` / `image_bmp` mime_groups.
23
- Both formats are already decodable and the worker's encode arms are a
24
- cheap add (shared `image`-crate encoders), so each flips to `stable`
25
- once its arm ships and is proven. Because watermark output mirrors the
26
- input format (`produces: same_as_input`), advertising a base format is
27
- only honest when the worker can both decode AND encode it — which
28
- holds for TIFF/BMP but not for HEIC/AVIF (no encoder) or SVG (cannot
29
- re-emit svg from a rasterised composite); those stay out of scope.
21
+ TIFF (image/tiff) and BMP (image/bmp) bases are now `stable` too
22
+ (flipped planned->stable 2026-06-30 on the lambdas staging proof,
23
+ UANjD38A / #296) via the parallel `image_tiff` / `image_bmp`
24
+ mime_groups. Because watermark output mirrors the input format
25
+ (`produces: same_as_input`), advertising a base format is only honest
26
+ when the worker can both decode AND encode it — which holds for
27
+ TIFF/BMP but not for HEIC/AVIF (no encoder) or SVG (cannot re-emit svg
28
+ from a rasterised composite); those stay out of scope.
30
29
 
31
30
  **Video bases are NOT supported by `image_watermark`.** Use the
32
31
  dedicated `video_watermark` operation
@@ -217,12 +216,13 @@ operation:
217
216
  width. Aspect ratio preserved. Omit to use the original
218
217
  overlay size.
219
218
 
220
- # TIFF base — separate group because backend support ships in its own
221
- # wave: the format is already decodable, but the encode arm (shared
222
- # `image`-crate TiffEncoder) is pending. Tagged `planned` until the arm
223
- # ships and is proven, then flips to `stable` (cross-repo UANjD38A).
219
+ # TIFF base — separate group (its backend arm shipped in its own wave).
220
+ # Now STABLE (flipped 2026-06-30 — see the group comment below).
224
221
  image_tiff:
225
- availability: planned
222
+ # planned->stable 2026-06-30 (UANjD38A): lambdas staging-proved the TIFF
223
+ # image-watermark encode (composited output md5 != base, decodable as TIFF,
224
+ # PR #296 c664d80; encoder shipped dark in #274). Manifest lists image/tiff in
225
+ # accepts + outputs.
226
226
  mimes:
227
227
  - image/tiff
228
228
  options:
@@ -289,11 +289,12 @@ operation:
289
289
  width. Aspect ratio preserved. Omit to use the original
290
290
  overlay size.
291
291
 
292
- # BMP base — separate group for the same reason as image_tiff: decode
293
- # is ready, the encode arm (shared `image`-crate BmpEncoder) is pending.
294
- # Tagged `planned` until the arm ships and is proven (cross-repo UANjD38A).
292
+ # BMP base — separate group for the same reason as image_tiff. Now
293
+ # STABLE (flipped 2026-06-30 — see the group comment below).
295
294
  image_bmp:
296
- availability: planned
295
+ # planned->stable 2026-06-30 (UANjD38A): lambdas staging-proved the BMP
296
+ # image-watermark encode (composited + decodable as BMP, PR #296 c664d80;
297
+ # encoder shipped dark in #274). Manifest lists image/bmp in accepts + outputs.
297
298
  mimes:
298
299
  - image/bmp
299
300
  options:
@@ -15,14 +15,13 @@ operation:
15
15
  pattern); rotation default -45° and tile_spacing controls density.
16
16
 
17
17
  Stable today for image/jpeg, image/png, image/webp inputs. TIFF
18
- (image/tiff) and BMP (image/bmp) inputs are advertised as `planned`
19
- via the parallel `image_tiff` / `image_bmp` mime_groups — both are
20
- already decodable and the worker's encode arms are a cheap add
21
- (shared `image`-crate encoders), so each flips to `stable` once its
22
- arm ships and is proven. Output mirrors the input format
23
- (`produces: same_as_input`), so a format is only advertised when the
24
- worker can both decode AND encode it; HEIC/AVIF (no encoder) and SVG
25
- (cannot re-emit svg from a rasterised composite) stay out of scope.
18
+ (image/tiff) and BMP (image/bmp) inputs are now `stable` too (flipped
19
+ planned->stable 2026-06-30 on the lambdas staging proof, UANjD38A /
20
+ #296) via the parallel `image_tiff` / `image_bmp` mime_groups. Output
21
+ mirrors the input format (`produces: same_as_input`), so a format is
22
+ only advertised when the worker can both decode AND encode it;
23
+ HEIC/AVIF (no encoder) and SVG (cannot re-emit svg from a rasterised
24
+ composite) stay out of scope.
26
25
  default: false
27
26
  input_model: single
28
27
  sole_op: true # bypasses V1 chain validation — must be the only operation in its job (ADR-0025)
@@ -158,14 +157,14 @@ operation:
158
157
  `color` already encodes transparency, so opacity is usually
159
158
  left at 1.0 and transparency is set via the color hex.
160
159
 
161
- # TIFF input — separate group because backend support ships in its own
162
- # wave: the format is already decodable, but the encode arm (shared
163
- # `image`-crate TiffEncoder) is pending. Tagged `planned` until the arm
164
- # ships and is proven, then flips to `stable` (cross-repo UANjD38A).
160
+ # TIFF input — separate group (its backend arm shipped in its own wave).
161
+ # Now STABLE (flipped 2026-06-30 — see the group comment below).
165
162
  # Text-rendering options are format-independent, so the shape mirrors
166
163
  # the canonical `image` group exactly.
167
164
  image_tiff:
168
- availability: planned
165
+ # planned->stable 2026-06-30 (UANjD38A): lambdas staging-proved the TIFF
166
+ # text-watermark encode (composited + decodable as TIFF, PR #296 c664d80;
167
+ # encoder shipped dark in #274). Manifest lists image/tiff in accepts + outputs.
169
168
  mimes:
170
169
  - image/tiff
171
170
  options:
@@ -284,11 +283,12 @@ operation:
284
283
  `color` already encodes transparency, so opacity is usually
285
284
  left at 1.0 and transparency is set via the color hex.
286
285
 
287
- # BMP input — separate group for the same reason as image_tiff: decode
288
- # is ready, the encode arm (shared `image`-crate BmpEncoder) is pending.
289
- # Tagged `planned` until the arm ships and is proven (cross-repo UANjD38A).
286
+ # BMP input — separate group for the same reason as image_tiff. Now
287
+ # STABLE (flipped 2026-06-30 — see the group comment below).
290
288
  image_bmp:
291
- availability: planned
289
+ # planned->stable 2026-06-30 (UANjD38A): lambdas staging-proved the BMP
290
+ # text-watermark encode (composited + decodable as BMP, PR #296 c664d80;
291
+ # encoder shipped dark in #274). Manifest lists image/bmp in accepts + outputs.
292
292
  mimes:
293
293
  - image/bmp
294
294
  options:
@@ -17,12 +17,12 @@ operation:
17
17
  - image/bmp
18
18
  - image/avif
19
19
  - image/heic
20
- per_mime_availability:
21
- # avif/heic decode shipped in the thumbnail-image worker via libheif
22
- # (lambdas w34Taquf, #210). beta: live + opt-in, shape-stable.
23
- # Re-add after the v2.67.0 interim crash-window drop (aYPbNVKD Phase 2).
24
- image/avif: { availability: beta }
25
- image/heic: { availability: beta }
20
+ # avif/heic decode in the thumbnail-image worker via libheif (lambdas
21
+ # w34Taquf, #210) is now GA-STABLE — no per_mime_availability tag = stable
22
+ # (the group default), promoted beta→stable 2026-06-30 on the lambdas GA
23
+ # attestation: libheif decode LIVE on staging since 2026-06-14, e2e
24
+ # decode-smoke green, zero decode failures since. Standard files are GA;
25
+ # exotic variants (10-bit / HDR / multi-image HEIC) decode best-effort.
26
26
  # Output-area wall (lambdas thumbnail-image MAX_OUTPUT_PIXELS): the FE
27
27
  # pre-validates width*height <= max_output_pixels. The per-axis max (16384)
28
28
  # is NOT the real limit — e.g. 6000x6000 (36MP) is rejected though each axis
@@ -36,72 +36,20 @@ operation:
36
36
  type: integer
37
37
  min: 1
38
38
  max: 16384
39
- required: true
40
- description: "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview."
41
- height:
42
- type: integer
43
- min: 1
44
- max: 16384
45
- required: true
46
- description: "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview."
47
- fit:
48
- type: enum
49
- values: [max, crop, scale]
50
- default: crop
51
- description: "Resize mode"
52
- format:
53
- type: enum
54
- values: [jpg, png, webp]
55
- default: jpg
56
- description: "Output format for the thumbnail"
57
- quality:
58
- type: integer
59
- min: 1
60
- max: 100
61
- default: 85
62
- depends_on: { format: [jpg, webp] }
63
- description: "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless)."
64
- background:
65
- type: string
66
- pattern: "^#[0-9a-fA-F]{6}$"
67
- depends_on: { format: jpg }
68
39
  description: >-
69
- Background colour as a 6-digit hex (`#RRGGBB`, e.g. `#ffffff`) for a
70
- transparent image (e.g. PNG/WebP with alpha) resized to an opaque JPG
71
- thumbnail — the alpha-flatten fill colour. Mirrors
72
- convert.image.background. HEX ONLY: a non-hex value (e.g. a CSS named
73
- colour) is rejected rather than advertising an inert free-form string.
74
- When omitted, transparency is flattened onto white. JPG output only:
75
- PNG/WebP keep alpha, so the flatten (and this option) do not apply.
76
-
77
- # SVG input (planned, UANjD38A). SVG is split into its own parallel mime_group
78
- # (group-level `availability: planned`, which the API gates -> feature_not_available)
79
- # rather than tagged inside the stable `image` group, because per-MIME planned is
80
- # advisory/not enforced. SVG rasterises to a bitmap cleanly, so render->resize for
81
- # thumbnail is feasible. Flip planned -> stable
82
- # (or beta) once the worker proves svg-rasterise input. Shares the `image` group's
83
- # option shape (FORMAT.md "Parallel groups").
84
- image_svg:
85
- availability: planned
86
- mimes:
87
- - image/svg+xml
88
- max_output_pixels: 16000000
89
- options:
90
- # IMAGE input is a full resizer (Lanczos): width/height accept the
91
- # worker's real 1-16384px range (area-capped above) — this op is the
92
- # image-resize path, surfaced in the UI as "Resize", not only thumbnails.
93
- width:
94
- type: integer
95
- min: 1
96
- max: 16384
97
- required: true
98
- description: "Target width in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview."
40
+ Target width in pixels (1-16384; width*height <= 16MP). For image input
41
+ this is a full resize, not just a small preview. Optional — when omitted
42
+ the server applies an aspect-preserving default (both omitted → longest
43
+ edge 320px; only one of width/height provided → the other is derived from
44
+ the source aspect ratio), so non-square images are never distorted.
99
45
  height:
100
46
  type: integer
101
47
  min: 1
102
48
  max: 16384
103
- required: true
104
- description: "Target height in pixels (1-16384; width*height <= 16MP). For image input this is a full resize, not just a small preview."
49
+ description: >-
50
+ Target height in pixels (1-16384; width*height <= 16MP). For image input
51
+ this is a full resize. Optional — see `width` for the omitted-default
52
+ (aspect-preserving) behaviour.
105
53
  fit:
106
54
  type: enum
107
55
  values: [max, crop, scale]
@@ -117,8 +65,15 @@ operation:
117
65
  min: 1
118
66
  max: 100
119
67
  default: 85
120
- depends_on: { format: [jpg, webp] }
121
- description: "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless)."
68
+ depends_on: { format: [jpg, webp, png] }
69
+ description: >-
70
+ Output quality for lossy thumbnail formats (jpg / webp / png): higher =
71
+ better quality, larger file. For PNG, `quality` < 100 applies lossy palette
72
+ quantization (imagequant — transparency preserved); `quality: 100` keeps the
73
+ PNG lossless. Per-format effective default (server-resolved when `quality`
74
+ is unset, per ADR-0020 D1): PNG → 70 (more aggressive — thumbnails target
75
+ small files), jpg/webp → 85. The schema `default` is the nominal jpg/webp
76
+ value (85); the FE shows 70 as the initial PNG slider value.
122
77
  background:
123
78
  type: string
124
79
  pattern: "^#[0-9a-fA-F]{6}$"
@@ -175,14 +130,18 @@ operation:
175
130
  type: integer
176
131
  min: 1
177
132
  max: 16384
178
- required: true
179
- description: "Target width in pixels (1-16384; width*height <= 16MP). Rounded down to an even number."
133
+ description: >-
134
+ Target width in pixels (1-16384; width*height <= 16MP). Rounded down to an
135
+ even number. Optional — when omitted the server applies an aspect-preserving
136
+ default (both omitted → longest edge 320px; only one of width/height
137
+ provided → the other is derived from the source aspect ratio).
180
138
  height:
181
139
  type: integer
182
140
  min: 1
183
141
  max: 16384
184
- required: true
185
- description: "Target height in pixels (1-16384; width*height <= 16MP). Rounded down to an even number."
142
+ description: >-
143
+ Target height in pixels (1-16384; width*height <= 16MP). Rounded down to an
144
+ even number. Optional — see `width` for the omitted-default behaviour.
186
145
  fit:
187
146
  type: enum
188
147
  values: [max, crop, scale]
@@ -237,14 +196,18 @@ operation:
237
196
  type: integer
238
197
  min: 1
239
198
  max: 16384
240
- required: true
241
- description: "Target width in pixels (1-16384; width*height <= 16MP)."
199
+ description: >-
200
+ Target width in pixels (1-16384; width*height <= 16MP). Optional — when
201
+ omitted the server applies an aspect-preserving default (both omitted →
202
+ longest edge 320px; only one of width/height provided → the other is
203
+ derived from the source aspect ratio).
242
204
  height:
243
205
  type: integer
244
206
  min: 1
245
207
  max: 16384
246
- required: true
247
- description: "Target height in pixels (1-16384; width*height <= 16MP)."
208
+ description: >-
209
+ Target height in pixels (1-16384; width*height <= 16MP). Optional — see
210
+ `width` for the omitted-default behaviour.
248
211
  fit:
249
212
  type: enum
250
213
  values: [max, crop, scale]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@giveitsmaller/contracts",
3
- "version": "0.47.0",
3
+ "version": "0.50.0",
4
4
  "description": "Generated contract types for GISL (Give It Smaller)",
5
5
  "license": "MIT",
6
6
  "type": "module",