@giveitsmaller/contracts 0.65.0 → 0.68.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 (523) hide show
  1. package/README.md +2 -2
  2. package/accepted-options/accepted-options.json +17 -3
  3. package/accepted-options/image-output-routes.json +1 -1
  4. package/availability/availability.json +97 -11
  5. package/code-builder/code-builder-metadata.json +120 -11
  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 +15 -7
  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/{TierDefaultsByAudience.d.ts → AuthenticatedIdentity.d.ts} +56 -40
  25. package/dist/openapi/models/{TierDefaultsByAudience.js → AuthenticatedIdentity.js} +31 -25
  26. package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
  27. package/dist/openapi/models/AvailabilityValue.js +1 -1
  28. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
  29. package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
  30. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
  31. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
  32. package/dist/openapi/models/BillingCheckoutRequest.d.ts +1 -1
  33. package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
  34. package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
  35. package/dist/openapi/models/BillingCheckoutSession.js +1 -1
  36. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
  37. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
  38. package/dist/openapi/models/CallbackEventType.d.ts +1 -1
  39. package/dist/openapi/models/CallbackEventType.js +1 -1
  40. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +1 -1
  41. package/dist/openapi/models/CancelAccountDeletion200Response.js +1 -1
  42. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +1 -1
  43. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +1 -1
  44. package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
  45. package/dist/openapi/models/CapabilityCondition.js +1 -1
  46. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
  47. package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
  48. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
  49. package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
  50. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
  51. package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
  52. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
  53. package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
  54. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
  55. package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
  56. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
  57. package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
  58. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
  59. package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
  60. package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
  61. package/dist/openapi/models/CapabilityConstraint.js +1 -1
  62. package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
  63. package/dist/openapi/models/CapabilityInputSpec.js +1 -1
  64. package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
  65. package/dist/openapi/models/CapabilityProduces.js +1 -1
  66. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
  67. package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
  68. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
  69. package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
  70. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
  71. package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
  72. package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
  73. package/dist/openapi/models/ChangePasswordRequest.js +1 -1
  74. package/dist/openapi/models/CodegenSource.d.ts +1 -1
  75. package/dist/openapi/models/CodegenSource.js +1 -1
  76. package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
  77. package/dist/openapi/models/CodegenSourceInput.js +1 -1
  78. package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
  79. package/dist/openapi/models/CodegenSourceJob.js +1 -1
  80. package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
  81. package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
  82. package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
  83. package/dist/openapi/models/CodegenSourceOperation.js +1 -1
  84. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
  85. package/dist/openapi/models/CodegenUploadPlaceholder.js +1 -1
  86. package/dist/openapi/models/CompositionPlan.d.ts +1 -1
  87. package/dist/openapi/models/CompositionPlan.js +1 -1
  88. package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
  89. package/dist/openapi/models/CompositionPlanJob.js +1 -1
  90. package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
  91. package/dist/openapi/models/CompositionPlanOperation.js +1 -1
  92. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
  93. package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
  94. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
  95. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
  96. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
  97. package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
  98. package/dist/openapi/models/ConnectionSource.d.ts +1 -1
  99. package/dist/openapi/models/ConnectionSource.js +1 -1
  100. package/dist/openapi/models/ContactRequest.d.ts +1 -1
  101. package/dist/openapi/models/ContactRequest.js +1 -1
  102. package/dist/openapi/models/ContactSubject.d.ts +1 -1
  103. package/dist/openapi/models/ContactSubject.js +1 -1
  104. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
  105. package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
  106. package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
  107. package/dist/openapi/models/CreateApiKey201Response.js +1 -1
  108. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
  109. package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
  110. package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
  111. package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
  112. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +1 -1
  113. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +1 -1
  114. package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
  115. package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
  116. package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
  117. package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
  118. package/dist/openapi/models/CreateWorkflow401Response.d.ts +1 -1
  119. package/dist/openapi/models/CreateWorkflow401Response.js +1 -1
  120. package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
  121. package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
  122. package/dist/openapi/models/CreditTransaction.d.ts +1 -1
  123. package/dist/openapi/models/CreditTransaction.js +1 -1
  124. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
  125. package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
  126. package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
  127. package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
  128. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
  129. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
  130. package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
  131. package/dist/openapi/models/CreditsUsageResponse.js +1 -1
  132. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
  133. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
  134. package/dist/openapi/models/Delivery.d.ts +1 -1
  135. package/dist/openapi/models/Delivery.js +1 -1
  136. package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
  137. package/dist/openapi/models/DeliveryOutputRef.js +1 -1
  138. package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
  139. package/dist/openapi/models/DeliveryPlan.js +1 -1
  140. package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
  141. package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
  142. package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
  143. package/dist/openapi/models/DeliveryPlanReason.js +1 -1
  144. package/dist/openapi/models/DeliverySelection.d.ts +1 -1
  145. package/dist/openapi/models/DeliverySelection.js +1 -1
  146. package/dist/openapi/models/DownloadBundle.d.ts +1 -1
  147. package/dist/openapi/models/DownloadBundle.js +1 -1
  148. package/dist/openapi/models/DroppedOption.d.ts +1 -1
  149. package/dist/openapi/models/DroppedOption.js +1 -1
  150. package/dist/openapi/models/EmailNotify.d.ts +1 -1
  151. package/dist/openapi/models/EmailNotify.js +1 -1
  152. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
  153. package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
  154. package/dist/openapi/models/EndpointProjection.d.ts +1 -1
  155. package/dist/openapi/models/EndpointProjection.js +1 -1
  156. package/dist/openapi/models/EndpointProjectionServersInner.d.ts +1 -1
  157. package/dist/openapi/models/EndpointProjectionServersInner.js +1 -1
  158. package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
  159. package/dist/openapi/models/ErrorEnvelope.js +1 -1
  160. package/dist/openapi/models/EstimateQuality.d.ts +1 -1
  161. package/dist/openapi/models/EstimateQuality.js +1 -1
  162. package/dist/openapi/models/EstimateRange.d.ts +1 -1
  163. package/dist/openapi/models/EstimateRange.js +1 -1
  164. package/dist/openapi/models/ExportAccountData200Response.d.ts +1 -1
  165. package/dist/openapi/models/ExportAccountData200Response.js +1 -1
  166. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +1 -1
  167. package/dist/openapi/models/ExportAccountData200ResponseData.js +1 -1
  168. package/dist/openapi/models/ExternalDestination.d.ts +1 -1
  169. package/dist/openapi/models/ExternalDestination.js +1 -1
  170. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
  171. package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
  172. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
  173. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
  174. package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
  175. package/dist/openapi/models/ExternalImportRequest.js +1 -1
  176. package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
  177. package/dist/openapi/models/ExternalImportToken.js +1 -1
  178. package/dist/openapi/models/ExternalSource.d.ts +1 -1
  179. package/dist/openapi/models/ExternalSource.js +1 -1
  180. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
  181. package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
  182. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
  183. package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
  184. package/dist/openapi/models/FeatureViolation.d.ts +1 -1
  185. package/dist/openapi/models/FeatureViolation.js +1 -1
  186. package/dist/openapi/models/{MediaCategory.js → GetProfile200Response.d.ts} +31 -34
  187. package/dist/openapi/models/{TierDefaults.js → GetProfile200Response.js} +22 -17
  188. package/dist/openapi/models/{MediaCategory.d.ts → GetProfile200ResponseData.d.ts} +19 -17
  189. package/dist/openapi/models/{TierDefaultLimits.js → GetProfile200ResponseData.js} +13 -16
  190. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
  191. package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
  192. package/dist/openapi/models/JobDefinition.d.ts +1 -1
  193. package/dist/openapi/models/JobDefinition.js +1 -1
  194. package/dist/openapi/models/JobDownload.d.ts +1 -1
  195. package/dist/openapi/models/JobDownload.js +1 -1
  196. package/dist/openapi/models/JobInputV2.d.ts +1 -1
  197. package/dist/openapi/models/JobInputV2.js +1 -1
  198. package/dist/openapi/models/JobMediaClass.d.ts +1 -1
  199. package/dist/openapi/models/JobMediaClass.js +1 -1
  200. package/dist/openapi/models/JobOutputSource.d.ts +1 -1
  201. package/dist/openapi/models/JobOutputSource.js +1 -1
  202. package/dist/openapi/models/JobResponse.d.ts +1 -1
  203. package/dist/openapi/models/JobResponse.js +1 -1
  204. package/dist/openapi/models/JobStatus.d.ts +1 -1
  205. package/dist/openapi/models/JobStatus.js +1 -1
  206. package/dist/openapi/models/JobType.d.ts +1 -1
  207. package/dist/openapi/models/JobType.js +1 -1
  208. package/dist/openapi/models/LivenessResponse.d.ts +1 -1
  209. package/dist/openapi/models/LivenessResponse.js +1 -1
  210. package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
  211. package/dist/openapi/models/LoginUser200Response.js +1 -1
  212. package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
  213. package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
  214. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
  215. package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
  216. package/dist/openapi/models/LoginUser401Response.d.ts +1 -1
  217. package/dist/openapi/models/LoginUser401Response.js +1 -1
  218. package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
  219. package/dist/openapi/models/LoginUserRequest.js +1 -1
  220. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +1 -1
  221. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
  222. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
  223. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +1 -1
  224. package/dist/openapi/models/MetadataResponse.d.ts +1 -1
  225. package/dist/openapi/models/MetadataResponse.js +1 -1
  226. package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
  227. package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
  228. package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
  229. package/dist/openapi/models/MetadataResponseExif.js +1 -1
  230. package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
  231. package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
  232. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
  233. package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
  234. package/dist/openapi/models/MimeGroupSchema.d.ts +17 -8
  235. package/dist/openapi/models/MimeGroupSchema.js +1 -1
  236. package/dist/openapi/models/MultiInputSource.d.ts +1 -1
  237. package/dist/openapi/models/MultiInputSource.js +1 -1
  238. package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
  239. package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
  240. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
  241. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
  242. package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
  243. package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
  244. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
  245. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
  246. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
  247. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
  248. package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
  249. package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
  250. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
  251. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
  252. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
  253. package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
  254. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
  255. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
  256. package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
  257. package/dist/openapi/models/MultipartPartListing.js +1 -1
  258. package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
  259. package/dist/openapi/models/MultipartPresignRequest.js +1 -1
  260. package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
  261. package/dist/openapi/models/MultipartPresignResponse.js +1 -1
  262. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
  263. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
  264. package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
  265. package/dist/openapi/models/MultipartStatusResponse.js +1 -1
  266. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
  267. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
  268. package/dist/openapi/models/NotifyConfig.d.ts +1 -1
  269. package/dist/openapi/models/NotifyConfig.js +1 -1
  270. package/dist/openapi/models/OperationCapability.d.ts +1 -1
  271. package/dist/openapi/models/OperationCapability.js +1 -1
  272. package/dist/openapi/models/OperationDefinition.d.ts +1 -1
  273. package/dist/openapi/models/OperationDefinition.js +1 -1
  274. package/dist/openapi/models/OperationDownload.d.ts +1 -1
  275. package/dist/openapi/models/OperationDownload.js +1 -1
  276. package/dist/openapi/models/OperationInputModel.d.ts +1 -1
  277. package/dist/openapi/models/OperationInputModel.js +1 -1
  278. package/dist/openapi/models/OperationResponse.d.ts +1 -1
  279. package/dist/openapi/models/OperationResponse.js +1 -1
  280. package/dist/openapi/models/OperationResult.d.ts +1 -1
  281. package/dist/openapi/models/OperationResult.js +1 -1
  282. package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
  283. package/dist/openapi/models/OperationResultMetadata.js +1 -1
  284. package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
  285. package/dist/openapi/models/OperationResultMetrics.js +1 -1
  286. package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
  287. package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
  288. package/dist/openapi/models/OperationStatus.d.ts +1 -1
  289. package/dist/openapi/models/OperationStatus.js +1 -1
  290. package/dist/openapi/models/OperationType.d.ts +1 -1
  291. package/dist/openapi/models/OperationType.js +1 -1
  292. package/dist/openapi/models/OperationsSchemaResponse.d.ts +24 -7
  293. package/dist/openapi/models/OperationsSchemaResponse.js +3 -4
  294. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
  295. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
  296. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
  297. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
  298. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
  299. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
  300. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
  301. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
  302. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +1 -1
  303. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +1 -1
  304. package/dist/openapi/models/OptionSchema.d.ts +1 -1
  305. package/dist/openapi/models/OptionSchema.js +1 -1
  306. package/dist/openapi/models/OutputProperties.d.ts +1 -1
  307. package/dist/openapi/models/OutputProperties.js +1 -1
  308. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
  309. package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
  310. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +1 -1
  311. package/dist/openapi/models/PerClassAvailabilityEntry.js +1 -1
  312. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
  313. package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
  314. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
  315. package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
  316. package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
  317. package/dist/openapi/models/PresignedUrlPart.js +1 -1
  318. package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
  319. package/dist/openapi/models/ProbePendingResponse.js +1 -1
  320. package/dist/openapi/models/ProcessingClass.d.ts +1 -1
  321. package/dist/openapi/models/ProcessingClass.js +1 -1
  322. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
  323. package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
  324. package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
  325. package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
  326. package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
  327. package/dist/openapi/models/ProcessingClassEntry.js +1 -1
  328. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
  329. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
  330. package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
  331. package/dist/openapi/models/ProcessingClassHint.js +1 -1
  332. package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
  333. package/dist/openapi/models/ProcessingClassReason.js +1 -1
  334. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
  335. package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
  336. package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
  337. package/dist/openapi/models/ProcessingPlan.js +1 -1
  338. package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
  339. package/dist/openapi/models/ProcessingPlanJob.js +1 -1
  340. package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
  341. package/dist/openapi/models/ReEncodeDecision.js +1 -1
  342. package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
  343. package/dist/openapi/models/ReadinessResponse.js +1 -1
  344. package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
  345. package/dist/openapi/models/RegisterUser422Response.js +1 -1
  346. package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
  347. package/dist/openapi/models/RegisterUserRequest.js +1 -1
  348. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +1 -1
  349. package/dist/openapi/models/RequestAccountDeletion200Response.js +1 -1
  350. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +1 -1
  351. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +1 -1
  352. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +1 -1
  353. package/dist/openapi/models/RequestAccountDeletionRequest.js +1 -1
  354. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +1 -1
  355. package/dist/openapi/models/ResendVerificationEmailRequest.js +1 -1
  356. package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
  357. package/dist/openapi/models/ResetPasswordRequest.js +1 -1
  358. package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
  359. package/dist/openapi/models/ResponseEnvelope.js +1 -1
  360. package/dist/openapi/models/RetryResponse.d.ts +1 -1
  361. package/dist/openapi/models/RetryResponse.js +1 -1
  362. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
  363. package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
  364. package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
  365. package/dist/openapi/models/SseCompletionBase.js +1 -1
  366. package/dist/openapi/models/SseEventType.d.ts +1 -1
  367. package/dist/openapi/models/SseEventType.js +1 -1
  368. package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
  369. package/dist/openapi/models/SseJobCompletedData.js +1 -1
  370. package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
  371. package/dist/openapi/models/SseJobFailedData.js +1 -1
  372. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
  373. package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
  374. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
  375. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
  376. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
  377. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
  378. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
  379. package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
  380. package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
  381. package/dist/openapi/models/SseOperationCompletedData.js +1 -1
  382. package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
  383. package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
  384. package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
  385. package/dist/openapi/models/SseOperationFailedData.js +1 -1
  386. package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
  387. package/dist/openapi/models/SseOperationProgressData.js +1 -1
  388. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
  389. package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
  390. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
  391. package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
  392. package/dist/openapi/models/TierRestrictionKind.d.ts +19 -5
  393. package/dist/openapi/models/TierRestrictionKind.js +19 -5
  394. package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
  395. package/dist/openapi/models/TierRestrictionResponse.js +1 -1
  396. package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
  397. package/dist/openapi/models/UpdateProfile200Response.js +1 -1
  398. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
  399. package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
  400. package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
  401. package/dist/openapi/models/UpdateProfile422Response.js +1 -1
  402. package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
  403. package/dist/openapi/models/UpdateProfileRequest.js +1 -1
  404. package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
  405. package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
  406. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
  407. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
  408. package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
  409. package/dist/openapi/models/UploadFile403Response.js +1 -1
  410. package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
  411. package/dist/openapi/models/UploadFile422Response.js +1 -1
  412. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
  413. package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
  414. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
  415. package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
  416. package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
  417. package/dist/openapi/models/UploadProbeResponse.js +1 -1
  418. package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
  419. package/dist/openapi/models/UploadProbeStatus.js +1 -1
  420. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
  421. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
  422. package/dist/openapi/models/UploadResponse.d.ts +1 -1
  423. package/dist/openapi/models/UploadResponse.js +1 -1
  424. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
  425. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
  426. package/dist/openapi/models/UploadSource.d.ts +1 -1
  427. package/dist/openapi/models/UploadSource.js +1 -1
  428. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
  429. package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
  430. package/dist/openapi/models/UploadThresholds.d.ts +1 -1
  431. package/dist/openapi/models/UploadThresholds.js +1 -1
  432. package/dist/openapi/models/UserTier.d.ts +66 -33
  433. package/dist/openapi/models/UserTier.js +66 -33
  434. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
  435. package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
  436. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
  437. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
  438. package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
  439. package/dist/openapi/models/VerifyEmailRequest.js +1 -1
  440. package/dist/openapi/models/WarningType.d.ts +1 -1
  441. package/dist/openapi/models/WarningType.js +1 -1
  442. package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
  443. package/dist/openapi/models/WebhookOperationContext.js +1 -1
  444. package/dist/openapi/models/WebhookPayload.d.ts +1 -1
  445. package/dist/openapi/models/WebhookPayload.js +1 -1
  446. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +1 -1
  447. package/dist/openapi/models/WorkflowArchiveResponse.js +1 -1
  448. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +1 -1
  449. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +1 -1
  450. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
  451. package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
  452. package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
  453. package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
  454. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
  455. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
  456. package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
  457. package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
  458. package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
  459. package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
  460. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
  461. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
  462. package/dist/openapi/models/WorkflowCreditSummary.d.ts +1 -1
  463. package/dist/openapi/models/WorkflowCreditSummary.js +1 -1
  464. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
  465. package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
  466. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
  467. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
  468. package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
  469. package/dist/openapi/models/WorkflowEdge.js +1 -1
  470. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
  471. package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
  472. package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
  473. package/dist/openapi/models/WorkflowListResponse.js +1 -1
  474. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
  475. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
  476. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
  477. package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
  478. package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
  479. package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
  480. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
  481. package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
  482. package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
  483. package/dist/openapi/models/WorkflowProcessing.js +1 -1
  484. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +1 -1
  485. package/dist/openapi/models/WorkflowRestoreResponse.js +1 -1
  486. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +1 -1
  487. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +1 -1
  488. package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
  489. package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
  490. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
  491. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
  492. package/dist/openapi/models/WorkflowSource.d.ts +1 -1
  493. package/dist/openapi/models/WorkflowSource.js +1 -1
  494. package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
  495. package/dist/openapi/models/WorkflowStatus.js +1 -1
  496. package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
  497. package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
  498. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
  499. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
  500. package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
  501. package/dist/openapi/models/WorkflowSummary.js +1 -1
  502. package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
  503. package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
  504. package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
  505. package/dist/openapi/models/WorkflowWarning.js +1 -1
  506. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
  507. package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
  508. package/dist/openapi/models/index.d.ts +3 -4
  509. package/dist/openapi/models/index.js +3 -4
  510. package/dist/openapi/runtime.d.ts +1 -1
  511. package/dist/openapi/runtime.js +1 -1
  512. package/dist/operations/metadata-types.d.ts +1 -1
  513. package/dist/operations/thumbnail.d.ts +30 -7
  514. package/dist/operations/thumbnail.js +34 -17
  515. package/dist/operations/thumbnail.metadata.js +29 -1
  516. package/openapi/README.md +1 -1
  517. package/openapi/api.yaml +755 -214
  518. package/operation-capabilities/operation-capabilities.json +1 -1
  519. package/operations/schemas/compress.yaml +67 -10
  520. package/operations/schemas/thumbnail.yaml +100 -1
  521. package/package.json +7 -3
  522. package/dist/openapi/models/TierDefaultLimits.d.ts +0 -59
  523. package/dist/openapi/models/TierDefaults.d.ts +0 -66
@@ -732,5 +732,5 @@
732
732
  "isAnimated": "maybe"
733
733
  }
734
734
  },
735
- "schema_version": "2.194.0"
735
+ "schema_version": "2.198.0"
736
736
  }
@@ -727,7 +727,7 @@ operation:
727
727
  # WHY THIS BLOCK IS WRITTEN DEFENSIVELY: on 2026-07-17 this group was
728
728
  # downgraded to `planned` on the strength of a single stale COMMENT in the
729
729
  # lambda manifest ("SVG is a follow-up"). The worker had implemented SVGO
730
- # all along — image_compressor.rs:211 maps image/svg+xml, :1225
730
+ # all along — image_compressor.rs:211 maps image/svg+xml, :1227
731
731
  # compress_svg shells to the SVGO binary via ToolRunner, and the crate
732
732
  # Dockerfile builds and ships it. Staging had proved it the day before:
733
733
  # job 019f6aa3-d275-7b10-a5cf-58acc705c7e2, 43777 -> 33061 bytes (24.5%),
@@ -754,15 +754,15 @@ operation:
754
754
  # includes `convertPathData`; that rounds path coordinates (default
755
755
  # floatPrecision 3), so geometry changes within a rounding tolerance.
756
756
  # "Visually preserving" is the honest wording. (The worker does set
757
- # lossless=true internally at image_compressor.rs:1778, but it lands in
757
+ # lossless=true internally at image_compressor.rs:1781, but it lands in
758
758
  # CompressionResult.settings which CompressionProcessor discards — its own
759
- # NOTE at :1782 — so it reaches no consumer, and nothing should start
759
+ # NOTE at :1784 — so it reaches no consumer, and nothing should start
760
760
  # claiming it.)
761
761
  mimes:
762
762
  - image/svg+xml
763
763
  # KNOWN OVER-ADVERTISEMENT, DELIBERATELY LEFT AS-IS — do NOT lower this
764
764
  # unilaterally. compress_svg holds the markup in memory and caps SVGO
765
- # output at 100 MiB (image_compressor.rs:1241), so the 500 MiB image/*
765
+ # output at 100 MiB (image_compressor.rs:1243), so the 500 MiB image/*
766
766
  # default over-states what the SVG route can actually serve: a valid input
767
767
  # inside the advertised limit can fail on the worker cap. Codex flagged it
768
768
  # on the flip PR and it is a real gap.
@@ -1114,11 +1114,38 @@ operation:
1114
1114
  # per-value-availability tag: option availability is binary and cannot be
1115
1115
  # output-container-scoped (same cross-axis limitation as
1116
1116
  # compress.audio.bitrate's lossy-output rule). crf is universal. ADR-0023 D8.
1117
- description: >-
1118
- crf = constant quality (variable file size). target_size = constrained
1119
- output file size (two-pass). target_size is LIVE for mp4/MOV output; for
1120
- webm/ogg output and long-form the server returns `feature_not_available`
1121
- (use crf there) until two-pass for this container ships.
1117
+ description: |
1118
+ `crf` = constant quality. `target_size` = constrained output file size
1119
+ (two-pass). `target_size` is LIVE for mp4/MOV output; for webm/ogg output
1120
+ and long-form the server returns `feature_not_available` (use `crf` there)
1121
+ until two-pass for this container ships.
1122
+
1123
+ 🔴 **`crf` DOES NOT MEAN UNCONSTRAINED FILE SIZE. THIS DESCRIPTION USED TO
1124
+ SAY "variable file size" AND THAT WAS FALSE BY OMISSION.** For **mp4/MOV
1125
+ output**, the worker additionally derives a **source-relative peak-bitrate
1126
+ ceiling of roughly 60% of the source video bitrate** (`-maxrate`/`-bufsize`),
1127
+ and **it binds regardless of an explicit `crf`** — constrained-CRF. The `crf`
1128
+ value is still honoured as the **quality ceiling**; the cap adds a peak
1129
+ ceiling on top of it.
1130
+
1131
+ ⚠️ **Scope, because "we cap every video" would be a second false sentence:**
1132
+ the cap is **mp4/MOV only** — WebM/VP9 discards it and skips the probe
1133
+ entirely — and it is **best-effort**, so an unprobeable source gets no cap.
1134
+
1135
+ ⭐ **Why it exists, which is also why the old wording surprised in the wrong
1136
+ direction:** plain CRF alone **INFLATES already-efficient sources** — an
1137
+ efficient HEVC re-encoded to H.264 at CRF 23/25/30 grows. The compress
1138
+ contract is *reduce file size*, so the cap is what makes shrinking reliable.
1139
+ A caller who deliberately pins a low `crf` on an efficient source therefore
1140
+ gets a constrained-CRF transcode rather than a byte-for-byte original: a
1141
+ deliberate, accepted shift.
1142
+
1143
+ 🔴 **THIS DESCRIPTION IS BOUND TO THE WORKER, NOT DATED AGAINST IT.**
1144
+ `tests/test_bitrate_cap_disclosure_matches_the_worker.py` reads
1145
+ `compression_lambdas` at `origin/main` and fails if the cap stops
1146
+ being source-relative, stops being mp4/MOV-only, or stops deriving
1147
+ from a source probe. **An as-of date would make a superseded
1148
+ sentence look deliberate**; a gate makes it go red instead.
1122
1149
  crf:
1123
1150
  type: integer
1124
1151
  min: 0
@@ -1142,7 +1169,37 @@ operation:
1142
1169
  type: enum
1143
1170
  values: [ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow]
1144
1171
  default: medium
1145
- description: "Encoding speed vs compression ratio trade-off"
1172
+ description: |
1173
+ x264/x265 encoder effort. **A SIZE LEVER, CONDITIONALLY** — it moves
1174
+ output size **only while the mp4/MOV peak-bitrate cap is NOT binding.**
1175
+
1176
+ **Measured by `compression_lambdas`, medium vs slow, all else held:**
1177
+
1178
+ crf 30, cap inert 1,220,156 vs 1,144,043 bytes 6.2% apart
1179
+ crf 18, cap binding 2,514,788 vs 2,516,986 bytes 0.09% apart
1180
+
1181
+ 🔴 **THE MECHANISM IS MECHANICAL, NOT EMPIRICAL, AND EXPLAINS BOTH ROWS.**
1182
+ In pure CRF the encoder targets constant QUALITY, so a slower preset spends
1183
+ its extra effort producing a **smaller file at the same quality**. Once
1184
+ `-maxrate` binds the encode is rate-limited, so the extra effort can only go
1185
+ into **picture at a fixed size** — an axis a size measurement cannot see.
1186
+
1187
+ ⚠️ **This description previously said `preset` was effort-only and that `crf`
1188
+ was the size lever. That was wrong**, and it was wrong because a 0.09% figure
1189
+ measured on a **cap-binding** clip was generalised into a property of `preset`.
1190
+ **A measurement is not a property until you know what held it.**
1191
+
1192
+ ⇒ **Callers optimising for size:** `crf` is the primary lever; `preset` adds
1193
+ real reduction **only when the cap is not already constraining the encode** —
1194
+ which is exactly the high-`crf`, small-output end. See `encoding_mode` for what
1195
+ the cap is and when it applies.
1196
+
1197
+ ⚠️ **What the extra effort buys once the cap DOES bind is mechanically
1198
+ implied and empirically UNCONFIRMED.** The mechanism says it must go
1199
+ into picture; `compression_lambdas` could not see a difference on 2x
1200
+ crops, but that was **one frame of one 5-second clip**, and preset
1201
+ differences concentrate in high-motion frames that were not
1202
+ deliberately sampled. **Recorded as unestablished, not asserted.**
1146
1203
  width:
1147
1204
  type: integer
1148
1205
  min: 2
@@ -160,15 +160,108 @@ operation:
160
160
  depends_on: { format: [jpg, webp] }
161
161
  description: "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless)."
162
162
 
163
- document:
163
+ # SPLIT FROM THE FORMER `document` GROUP (jLxWpQEZ). PDF and office/ODF
164
+ # thumbnails are rendered by DIFFERENT WORKERS with DIFFERENT input bounds,
165
+ # and one group cannot carry two ceilings honestly — a single group-level
166
+ # number would have capped PDF at the office limit and over-refused PDFs the
167
+ # worker handles fine.
168
+ document_pdf:
164
169
  mimes:
165
170
  - application/pdf
171
+ # 🔴 NO BYTE CEILING, SAID EXPLICITLY RATHER THAN LEFT ABSENT.
172
+ # The Poppler render path is bounded by PROCESSING TIME, not input size.
173
+ # `FORMAT.md` says an absent `max_input_size_bytes` means NOT ADVERTISED
174
+ # and explicitly NOT "no limit exists" — so silence here would be
175
+ # indistinguishable from the omission that let a 100 MiB EPUB refusal hide
176
+ # behind a 200 MiB declaration. A consumer must be able to tell "we did not
177
+ # fill this in" from "there is genuinely no size bound".
178
+ input_size_bound: processing_time
179
+ # Same 16MP output-area wall as image (width*height <= max_output_pixels).
180
+ # The page is rendered at 150 DPI (render-side ~25MP raster) then resized;
181
+ # the output file is capped at 50MB (worker-enforced, prose-only).
182
+ max_output_pixels: 16000000
183
+ options:
184
+ source:
185
+ type: enum
186
+ values: [page, cover]
187
+ default: page
188
+ # `cover` is RETAINED here deliberately (G9O6yrQD / codex #322). EPUB — the
189
+ # only input it ever meant anything for — moved to the `document_epub`
190
+ # group, so `cover` is now inert for every mime in THIS group. Removing it
191
+ # looked like tidying a phantom, but it is a REQUEST-ENUM NARROWING: a
192
+ # caller sending `source: cover` with a PDF succeeds today (the worker
193
+ # ignores it) and would start getting a 422 invalid_options. That is a
194
+ # caller-visible break for zero benefit, and "nobody sends it" is not a
195
+ # reason (the same reasoning was wrong for declared_duration_seconds, which
196
+ # turned out settable on npm-latest). Retiring it properly = tag it
197
+ # `deprecated` -> migrate -> remove, which is its own cut, not a drive-by
198
+ # in a defect fix.
199
+ description: >-
200
+ `page` = render a specific page/slide. `cover` = extract a cover image —
201
+ only meaningful for EPUB inputs, which are served by the `document_epub`
202
+ group; on PDF/office/ODF it is accepted and IGNORED (retained for
203
+ backward compatibility).
204
+ page:
205
+ type: integer
206
+ min: 1
207
+ default: 1
208
+ depends_on: { source: page }
209
+ description: >-
210
+ 1-based index of the printed page to render, after print-layout
211
+ pagination is applied. For office formats this is the page in the
212
+ document's print layout — NOT a 1:1 sheet/slide index: a spreadsheet
213
+ sheet may span multiple printed pages and multi-sheet workbooks
214
+ paginate their sheets in order. For PDF inputs it is the PDF page
215
+ number directly.
216
+ width:
217
+ type: integer
218
+ min: 1
219
+ max: 16384
220
+ description: >-
221
+ Target width in pixels (1-16384; width*height <= 16MP). Optional — when
222
+ omitted the server applies an aspect-preserving default (both omitted →
223
+ longest edge 320px; only one of width/height provided → the other is
224
+ derived from the source aspect ratio).
225
+ height:
226
+ type: integer
227
+ min: 1
228
+ max: 16384
229
+ description: >-
230
+ Target height in pixels (1-16384; width*height <= 16MP). Optional — see
231
+ `width` for the omitted-default behaviour.
232
+ fit:
233
+ type: enum
234
+ values: [max, crop, scale]
235
+ default: crop
236
+ description: "Resize mode"
237
+ format:
238
+ type: enum
239
+ values: [jpg, png, webp]
240
+ default: jpg
241
+ description: "Output format for the thumbnail"
242
+ quality:
243
+ type: integer
244
+ min: 1
245
+ max: 100
246
+ default: 85
247
+ depends_on: { format: [jpg, webp] }
248
+ description: "Output quality for lossy thumbnail formats (jpg/webp): higher = better quality, larger file. Ignored for png (lossless)."
249
+
250
+
251
+ # SPLIT FROM THE FORMER `document` GROUP (jLxWpQEZ) — see `document_pdf`.
252
+ document_office:
253
+ mimes:
166
254
  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
167
255
  - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
168
256
  - application/vnd.openxmlformats-officedocument.presentationml.presentation
169
257
  - application/vnd.oasis.opendocument.text
170
258
  - application/vnd.oasis.opendocument.spreadsheet
171
259
  - application/vnd.oasis.opendocument.presentation
260
+ # LibreOffice worker input ceiling, mirroring the Rust `MAX_INPUT_SIZE`
261
+ # literal and the value `compression_lambdas`' manifest has declared since
262
+ # 2026-08-25. Undeclared here until now, which is why a create could be
263
+ # accepted and then refused: see jLxWpQEZ.
264
+ max_input_size_bytes: 157286400
172
265
  # Same 16MP output-area wall as image (width*height <= max_output_pixels).
173
266
  # The page is rendered at 150 DPI (render-side ~25MP raster) then resized;
174
267
  # the output file is capped at 50MB (worker-enforced, prose-only).
@@ -301,6 +394,12 @@ operation:
301
394
  # true here. Re-add it additively when a renderer ships AND is proven.
302
395
  mimes:
303
396
  - application/epub+zip
397
+ # EPUB thumbnail worker input ceiling, mirroring the Rust `MAX_INPUT_SIZE`
398
+ # literal. ⚠️ `compression_lambdas`' manifest has declared this number since
399
+ # 2026-07-18 — THIRTY-NINE DAYS before a 128,232,024-byte EPUB was accepted,
400
+ # billed, and refused by it on 2026-08-26. The number was public on their
401
+ # side the whole time; the silence was HERE. jLxWpQEZ.
402
+ max_input_size_bytes: 104857600
304
403
  max_output_pixels: 16000000
305
404
  options:
306
405
  source:
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@giveitsmaller/contracts",
3
- "version": "0.65.0",
4
- "description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.194.0.",
5
- "gislContractsSpec": "v2.194.0",
3
+ "version": "0.68.0",
4
+ "description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.198.0.",
5
+ "gislContractsSpec": "v2.198.0",
6
6
  "license": "Apache-2.0",
7
+ "homepage": "https://docs.giveitsmaller.com",
8
+ "bugs": {
9
+ "url": "https://github.com/giveitsmaller"
10
+ },
7
11
  "type": "module",
8
12
  "main": "./dist/index.js",
9
13
  "types": "./dist/index.d.ts",
@@ -1,59 +0,0 @@
1
- /**
2
- * GISL Compression API
3
- * REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
4
- *
5
- * The version of the OpenAPI document: 2.194.0
6
- *
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- /**
13
- * One audience's default limits. **Defaults, not entitlements** — a
14
- * specific account may carry an override, which only
15
- * `GET /api/v2/account/limits` can report.
16
- *
17
- * @export
18
- * @interface TierDefaultLimits
19
- */
20
- export interface TierDefaultLimits {
21
- /**
22
- * Per-FILE upload cap. Same axis as
23
- * `AccountLimits.limits.max_upload_size_bytes`.
24
- *
25
- * ⚠️ **A client MUST NOT treat this as the only size bound.** The
26
- * per-operation processing ceilings (`max_input_size_bytes` in the
27
- * operation schemas) are a **different axis and a different
28
- * number**, and can be SMALLER than this cap — an upload that
29
- * succeeds may still be rejected at operation time. A picker that
30
- * shows one number without the other will let a user pick a file
31
- * the product cannot process.
32
- *
33
- * @type {number}
34
- * @memberof TierDefaultLimits
35
- */
36
- maxUploadSizeBytes: number;
37
- /**
38
- * Per-upload duration cap for time-based media. `null` where the
39
- * audience has no duration cap.
40
- *
41
- * ⚠️ **DISTINCT from `processing_class.short_form.max_input_duration`
42
- * (`PT5M`) in the operation schemas, which it may numerically
43
- * equal.** That is the short-form/long-form PROCESSING boundary and
44
- * applies to every audience; this is an entitlement. Two concepts,
45
- * one integer — read this one for entitlement.
46
- *
47
- * @type {number}
48
- * @memberof TierDefaultLimits
49
- */
50
- maxDurationSeconds: number | null;
51
- }
52
- /**
53
- * Check if a given object implements the TierDefaultLimits interface.
54
- */
55
- export declare function instanceOfTierDefaultLimits(value: object): value is TierDefaultLimits;
56
- export declare function TierDefaultLimitsFromJSON(json: any): TierDefaultLimits;
57
- export declare function TierDefaultLimitsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TierDefaultLimits;
58
- export declare function TierDefaultLimitsToJSON(json: any): TierDefaultLimits;
59
- export declare function TierDefaultLimitsToJSONTyped(value?: TierDefaultLimits | null, ignoreDiscriminator?: boolean): any;
@@ -1,66 +0,0 @@
1
- /**
2
- * GISL Compression API
3
- * REST API for the GISL (Give It Smaller) file compression and processing service. **Architecture:** - Upload files to get a `file_id` - Create workflows referencing uploaded files with operations (compress, thumbnail, image_watermark, text_watermark, merge, archive, convert, custom_luma, audio_overlay, audio_watermark) - Poll status, stream SSE events, or receive webhook callbacks - Download results per operation output **Response envelope:** All mutation and query endpoints return `{ success: true, data: {...} }` on success and `{ success: false, error: \"...\", details: [...] }` on failure. Exceptions: `GET /api/operations/schema` returns raw JSON (per-tier private caching with ETag revalidation per ADR-0002 + I3), health probes return flat objects, and `POST /api/contact` returns 204 with no body. **Availability metadata.** This spec uses the `x-availability` vendor extension as **decorative documentation only**. Per [ADR-0001](../docs/decisions/0001-contract-first-availability.md) §1.5, the runtime endpoint `GET /api/operations/schema` (ticket I3) is the authoritative source; the sidecar `availability.json` (ticket I3b) is the authoritative companion (generated, never hand-edited; CI cross-checks runtime ⇄ sidecar). SDKs MUST NOT depend on `x-availability` reaching generated code — code-generators that surface vendor extensions may emit it as documentation, but consumers read availability from the runtime endpoint, not from the generated bindings. The 5-value vocabulary (`stable | beta | experimental | planned | deprecated`) is defined in the `AvailabilityValue` schema. See `schemas/FORMAT.md` §Availability Taxonomy for the operational rules (parser obligation: absent = stable; per-enum-value granularity is the `per_value_availability` primitive landed via ticket I17). **Localisation (per ticket [I26](https://trello.com/c/rcnqwgI4)).** Error responses + paused/blocked workflow statuses carry a localised human-readable `message` alongside a stable, never-localised `message_key`. Machine-readable fields (`error`, enum values, status codes) stay canonical English. - **Currently committed locales:** `en-GB` only (per ticket [`4GKyuYo6`](https://trello.com/c/4GKyuYo6)). The I26 carrier shape (`Accept-Language` + `Content-Language` + `Vary` headers + `locale` envelope field + `message_key` + `message_params`) is stable and exercised; the **catalog** of translated `message` strings is en-GB-only at runtime today. Additional locales (e.g. `pt-PT`) will be advertised by name when their catalogs ship — the request/response carrier shape does NOT change when a new locale lands. Treat unrequested locales as \"machine-code + `message_key` path is committed; localised `message` prose is not\" until this prose enumerates them by name. - **Request:** `Accept-Language` header per RFC 9110 §12.5.4 (q-value negotiation supported). The server selects the best-match locale from its supported list; falls back to `en-GB` when no match — which, until additional catalogs land, is every non-`en-GB` `Accept-Language`. - **Response:** `Content-Language: <locale>` echo on every localised response; `Vary: Accept-Language` on every response (CDN/cache correctness — different `Accept-Language` requests produce different responses). `Vary` is emitted unconditionally so the header contract does not flip when a second locale ships. - **Fallback locale:** `en-GB` (also the canonical locale for `message_key` translations and English `message` prose). - **SDK guidance:** switch on `error` (machine code) for typed error branches; surface `message_key` to client-side i18n catalogs (SDK companion work tracked at X19, cross-repo); display `message` for end-user UI; **never parse `message` for control flow** — it changes per locale. Carrier shape lives on `ErrorEnvelope` (envelope-level optional `message_key` + `message` + `locale` + `message_params`) and `ValidationErrorEnvelope` (also per-`details[]` entry). Existing 402 / 403 / 422 envelopes (`BalanceExhaustedResponse`, `FeatureNotAvailableResponse`, `FeatureTierRestrictedResponse`, `WorkflowPausedDetail`) inherit the convention. **Upload thresholds (per tickets [u0ar7Yye](https://trello.com/c/u0ar7Yye) + [58nBQLWQ](https://trello.com/c/58nBQLWQ)).** Canonical upload constants (single-shot cap, multipart chunk size, multipart concurrency default, multipart first-chunk size) live on the `UploadThresholds` schema with `const:`-pinned values. SDK generators emit these as typed binding constants so frontend / API / SDKs reference one source of truth instead of hardcoding magic numbers. A runtime `GET /api/uploads/limits` endpoint for dynamic discovery (per-tier / per-environment overrides) is a deferred follow-up.
4
- *
5
- * The version of the OpenAPI document: 2.194.0
6
- *
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- import type { TierDefaultsByAudience } from './TierDefaultsByAudience.js';
13
- import type { MediaCategory } from './MediaCategory.js';
14
- /**
15
- * The **published default limits**, readable by an ANONYMOUS caller.
16
- *
17
- * **Why this exists separately from `GET /api/v2/account/limits`:** that
18
- * endpoint is per-account and override-aware, so it requires auth and
19
- * returns `401` to an anonymous caller — **correctly**, because
20
- * `effective` / `tier_default` / `overridden` is meaningless without an
21
- * account. What a logged-out visitor needs is the **tier defaults**,
22
- * which are not per-account. This publishes AS DATA what the `UserTier`
23
- * description already publishes as prose.
24
- *
25
- * **The server is authoritative for the values.** This contract declares
26
- * the SHAPE; the numbers are computed per environment and per tier
27
- * model, and a client MUST read them here rather than hard-coding a
28
- * table (the drift this field exists to end).
29
- *
30
- * @export
31
- * @interface TierDefaults
32
- */
33
- export interface TierDefaults {
34
- /**
35
- * The input media families available **to every audience,
36
- * including anonymous**. Declared ONCE, not per-tier, because it
37
- * does not vary — hub decision 25 made audio universal, and there
38
- * is now no tier boundary at which the category axis changes.
39
- *
40
- * ⚠️ **Deliberately NOT a per-audience allow-list.** A structure
41
- * with one row per tier, every row identical, is a gate whose every
42
- * row is open — it reads as an entitlement mechanism while
43
- * encoding no entitlement, and the next reader maintains it as
44
- * though it did. If a future tier DOES restrict categories, this
45
- * field moves into `by_audience` in a deliberate change, and that
46
- * change is where the restriction gets argued.
47
- *
48
- * @type {Set<MediaCategory>}
49
- * @memberof TierDefaults
50
- */
51
- mediaCategories: Set<MediaCategory>;
52
- /**
53
- *
54
- * @type {TierDefaultsByAudience}
55
- * @memberof TierDefaults
56
- */
57
- byAudience: TierDefaultsByAudience;
58
- }
59
- /**
60
- * Check if a given object implements the TierDefaults interface.
61
- */
62
- export declare function instanceOfTierDefaults(value: object): value is TierDefaults;
63
- export declare function TierDefaultsFromJSON(json: any): TierDefaults;
64
- export declare function TierDefaultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TierDefaults;
65
- export declare function TierDefaultsToJSON(json: any): TierDefaults;
66
- export declare function TierDefaultsToJSONTyped(value?: TierDefaults | null, ignoreDiscriminator?: boolean): any;