@giveitsmaller/contracts 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accepted-options/accepted-options.json +58 -1
- package/accepted-options/image-output-routes.json +41 -10
- package/availability/availability.json +218 -69
- package/dist/openapi/models/AccountLimitEntry.d.ts +1 -1
- package/dist/openapi/models/AccountLimitEntry.js +1 -1
- package/dist/openapi/models/AccountLimits.d.ts +1 -1
- package/dist/openapi/models/AccountLimits.js +1 -1
- package/dist/openapi/models/AccountLimitsLimits.d.ts +1 -1
- package/dist/openapi/models/AccountLimitsLimits.js +1 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeRequest.js +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +1 -1
- package/dist/openapi/models/AudioWatermarkDecodeResponse.js +1 -1
- package/dist/openapi/models/AuthErrorResponse.d.ts +1 -1
- package/dist/openapi/models/AuthErrorResponse.js +1 -1
- package/dist/openapi/models/AuthErrorType.d.ts +1 -1
- package/dist/openapi/models/AuthErrorType.js +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.d.ts +1 -1
- package/dist/openapi/models/AuthRejectionEnvelope.js +1 -1
- package/dist/openapi/models/AvailabilityValue.d.ts +1 -1
- package/dist/openapi/models/AvailabilityValue.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponse.js +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +1 -1
- package/dist/openapi/models/CallbackEventType.d.ts +1 -1
- package/dist/openapi/models/CallbackEventType.js +1 -1
- package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ChangePasswordRequest.js +1 -1
- package/dist/openapi/models/CompositionPlan.d.ts +1 -1
- package/dist/openapi/models/CompositionPlan.js +1 -1
- package/dist/openapi/models/CompositionPlanJob.d.ts +1 -1
- package/dist/openapi/models/CompositionPlanJob.js +1 -1
- package/dist/openapi/models/CompositionPlanOperation.d.ts +1 -1
- package/dist/openapi/models/CompositionPlanOperation.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200Response.js +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +1 -1
- package/dist/openapi/models/ConfirmEmailChangeRequest.js +1 -1
- package/dist/openapi/models/ConnectionSource.d.ts +1 -1
- package/dist/openapi/models/ConnectionSource.js +1 -1
- package/dist/openapi/models/ContactRequest.d.ts +1 -1
- package/dist/openapi/models/ContactRequest.js +1 -1
- package/dist/openapi/models/ContactSubject.d.ts +1 -1
- package/dist/openapi/models/ContactSubject.js +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.d.ts +1 -1
- package/dist/openapi/models/ContactValidationErrorResponse.js +1 -1
- package/dist/openapi/models/CreateApiKey201Response.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201Response.js +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +1 -1
- package/dist/openapi/models/CreateApiKey201ResponseData.js +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.d.ts +1 -1
- package/dist/openapi/models/CreateApiKeyRequest.js +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport403Response.js +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.d.ts +1 -1
- package/dist/openapi/models/CreateExternalImport422Response.js +1 -1
- package/dist/openapi/models/CreateWorkflow422Response.d.ts +1 -1
- package/dist/openapi/models/CreateWorkflow422Response.js +1 -1
- package/dist/openapi/models/CreditTransaction.d.ts +1 -1
- package/dist/openapi/models/CreditTransaction.js +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +1 -1
- package/dist/openapi/models/CreditTransactionSourceBucket.js +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceResponse.js +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CreditsUsageResponse.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageResponse.js +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +1 -1
- package/dist/openapi/models/Delivery.d.ts +1 -1
- package/dist/openapi/models/Delivery.js +1 -1
- package/dist/openapi/models/DeliveryOutputRef.d.ts +1 -1
- package/dist/openapi/models/DeliveryOutputRef.js +1 -1
- package/dist/openapi/models/DeliveryPlan.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlan.js +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanOutput.js +1 -1
- package/dist/openapi/models/DeliveryPlanReason.d.ts +1 -1
- package/dist/openapi/models/DeliveryPlanReason.js +1 -1
- package/dist/openapi/models/DeliverySelection.d.ts +1 -1
- package/dist/openapi/models/DeliverySelection.js +1 -1
- package/dist/openapi/models/DownloadBundle.d.ts +1 -1
- package/dist/openapi/models/DownloadBundle.js +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/EmptySuccessEnvelope.js +1 -1
- package/dist/openapi/models/EndpointProjection.d.ts +1 -1
- package/dist/openapi/models/EndpointProjection.js +1 -1
- package/dist/openapi/models/ErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ErrorEnvelope.js +1 -1
- package/dist/openapi/models/EstimateQuality.d.ts +1 -1
- package/dist/openapi/models/EstimateQuality.js +1 -1
- package/dist/openapi/models/EstimateRange.d.ts +1 -1
- package/dist/openapi/models/EstimateRange.js +1 -1
- package/dist/openapi/models/ExternalDestination.d.ts +1 -1
- package/dist/openapi/models/ExternalDestination.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedResponse.js +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +1 -1
- package/dist/openapi/models/ExternalImportRequest.d.ts +1 -1
- package/dist/openapi/models/ExternalImportRequest.js +1 -1
- package/dist/openapi/models/ExternalImportToken.d.ts +1 -1
- package/dist/openapi/models/ExternalImportToken.js +1 -1
- package/dist/openapi/models/ExternalSource.d.ts +1 -1
- package/dist/openapi/models/ExternalSource.js +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureNotAvailableResponse.js +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +1 -1
- package/dist/openapi/models/FeatureTierRestrictedResponse.js +1 -1
- package/dist/openapi/models/FeatureViolation.d.ts +1 -1
- package/dist/openapi/models/FeatureViolation.js +1 -1
- package/dist/openapi/models/ForgotPasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ForgotPasswordRequest.js +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.d.ts +1 -1
- package/dist/openapi/models/ImageEncodeCapabilities.js +1 -1
- package/dist/openapi/models/JobDefinition.d.ts +1 -1
- package/dist/openapi/models/JobDefinition.js +1 -1
- package/dist/openapi/models/JobDownload.d.ts +1 -1
- package/dist/openapi/models/JobDownload.js +1 -1
- package/dist/openapi/models/JobInputV2.d.ts +1 -1
- package/dist/openapi/models/JobInputV2.js +1 -1
- package/dist/openapi/models/JobMediaClass.d.ts +1 -1
- package/dist/openapi/models/JobMediaClass.js +1 -1
- package/dist/openapi/models/JobOutputSource.d.ts +1 -1
- package/dist/openapi/models/JobOutputSource.js +1 -1
- package/dist/openapi/models/JobResponse.d.ts +1 -1
- package/dist/openapi/models/JobResponse.js +1 -1
- package/dist/openapi/models/JobStatus.d.ts +1 -1
- package/dist/openapi/models/JobStatus.js +1 -1
- package/dist/openapi/models/JobType.d.ts +1 -1
- package/dist/openapi/models/JobType.js +1 -1
- package/dist/openapi/models/LivenessResponse.d.ts +1 -1
- package/dist/openapi/models/LivenessResponse.js +1 -1
- package/dist/openapi/models/LoginUser200Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser200Response.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseData.js +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +1 -1
- package/dist/openapi/models/LoginUser200ResponseDataUser.js +1 -1
- package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
- package/dist/openapi/models/LoginUserRequest.js +1 -1
- package/dist/openapi/models/MetadataResponse.d.ts +1 -1
- package/dist/openapi/models/MetadataResponse.js +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseDimensions.js +1 -1
- package/dist/openapi/models/MetadataResponseExif.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExif.js +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.d.ts +1 -1
- package/dist/openapi/models/MetadataResponseExifGps.js +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MetadataSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MimeGroupSchema.d.ts +1 -1
- package/dist/openapi/models/MimeGroupSchema.js +1 -1
- package/dist/openapi/models/MultiInputSource.d.ts +1 -1
- package/dist/openapi/models/MultiInputSource.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequest.js +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteResponse.js +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateResponse.js +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveResponse.js +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartPartListing.d.ts +1 -1
- package/dist/openapi/models/MultipartPartListing.js +1 -1
- package/dist/openapi/models/MultipartPresignRequest.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignRequest.js +1 -1
- package/dist/openapi/models/MultipartPresignResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignResponse.js +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +1 -1
- package/dist/openapi/models/MultipartStatusResponse.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusResponse.js +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/OperationDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationDefinition.js +1 -1
- package/dist/openapi/models/OperationDownload.d.ts +1 -1
- package/dist/openapi/models/OperationDownload.js +1 -1
- package/dist/openapi/models/OperationInputModel.d.ts +1 -1
- package/dist/openapi/models/OperationInputModel.js +1 -1
- package/dist/openapi/models/OperationResponse.d.ts +1 -1
- package/dist/openapi/models/OperationResponse.js +1 -1
- package/dist/openapi/models/OperationResult.d.ts +1 -1
- package/dist/openapi/models/OperationResult.js +1 -1
- package/dist/openapi/models/OperationResultMetadata.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetadata.js +1 -1
- package/dist/openapi/models/OperationResultMetrics.d.ts +1 -1
- package/dist/openapi/models/OperationResultMetrics.js +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.d.ts +1 -1
- package/dist/openapi/models/OperationSchemaDefinition.js +1 -1
- package/dist/openapi/models/OperationStatus.d.ts +1 -1
- package/dist/openapi/models/OperationStatus.js +1 -1
- package/dist/openapi/models/OperationType.d.ts +1 -1
- package/dist/openapi/models/OperationType.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponse.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponse.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +1 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +1 -1
- package/dist/openapi/models/OptionSchema.d.ts +15 -1
- package/dist/openapi/models/OptionSchema.js +3 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.js +1 -1
- package/dist/openapi/models/PresignedUrlPart.d.ts +1 -1
- package/dist/openapi/models/PresignedUrlPart.js +1 -1
- package/dist/openapi/models/ProbePendingResponse.d.ts +1 -1
- package/dist/openapi/models/ProbePendingResponse.js +1 -1
- package/dist/openapi/models/ProcessingClass.d.ts +1 -1
- package/dist/openapi/models/ProcessingClass.js +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassBandViolation.js +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassConstraints.js +1 -1
- package/dist/openapi/models/ProcessingClassEntry.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassEntry.js +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +1 -1
- package/dist/openapi/models/ProcessingClassHint.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassHint.js +1 -1
- package/dist/openapi/models/ProcessingClassReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassReason.js +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.d.ts +1 -1
- package/dist/openapi/models/ProcessingClassRejectReason.js +1 -1
- package/dist/openapi/models/ProcessingPlan.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlan.js +1 -1
- package/dist/openapi/models/ProcessingPlanJob.d.ts +1 -1
- package/dist/openapi/models/ProcessingPlanJob.js +1 -1
- package/dist/openapi/models/ReEncodeDecision.d.ts +1 -1
- package/dist/openapi/models/ReEncodeDecision.js +1 -1
- package/dist/openapi/models/ReadinessResponse.d.ts +1 -1
- package/dist/openapi/models/ReadinessResponse.js +1 -1
- package/dist/openapi/models/RegisterUser422Response.d.ts +1 -1
- package/dist/openapi/models/RegisterUser422Response.js +1 -1
- package/dist/openapi/models/RegisterUserRequest.d.ts +1 -1
- package/dist/openapi/models/RegisterUserRequest.js +1 -1
- package/dist/openapi/models/ResetPasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ResetPasswordRequest.js +1 -1
- package/dist/openapi/models/ResponseEnvelope.d.ts +1 -1
- package/dist/openapi/models/ResponseEnvelope.js +1 -1
- package/dist/openapi/models/RetryResponse.d.ts +1 -1
- package/dist/openapi/models/RetryResponse.js +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/RetrySuccessEnvelope.js +1 -1
- package/dist/openapi/models/SseCompletionBase.d.ts +1 -1
- package/dist/openapi/models/SseCompletionBase.js +1 -1
- package/dist/openapi/models/SseEventType.d.ts +1 -1
- package/dist/openapi/models/SseEventType.js +1 -1
- package/dist/openapi/models/SseJobCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseJobCompletedData.js +1 -1
- package/dist/openapi/models/SseJobFailedData.d.ts +1 -1
- package/dist/openapi/models/SseJobFailedData.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletion.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +1 -1
- package/dist/openapi/models/SseMultiOutputResultEntry.js +1 -1
- package/dist/openapi/models/SseOperationCompletedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletedData.js +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.d.ts +1 -1
- package/dist/openapi/models/SseOperationCompletionResult.js +1 -1
- package/dist/openapi/models/SseOperationFailedData.d.ts +1 -1
- package/dist/openapi/models/SseOperationFailedData.js +1 -1
- package/dist/openapi/models/SseOperationProgressData.d.ts +1 -1
- package/dist/openapi/models/SseOperationProgressData.js +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.d.ts +1 -1
- package/dist/openapi/models/SseSingleOutputCompletion.js +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.d.ts +1 -1
- package/dist/openapi/models/SseWorkflowTerminalData.js +1 -1
- package/dist/openapi/models/TierRestrictionKind.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionKind.js +1 -1
- package/dist/openapi/models/TierRestrictionResponse.d.ts +1 -1
- package/dist/openapi/models/TierRestrictionResponse.js +1 -1
- package/dist/openapi/models/UpdateProfile200Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200Response.js +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile200ResponseData.js +1 -1
- package/dist/openapi/models/UpdateProfile422Response.d.ts +1 -1
- package/dist/openapi/models/UpdateProfile422Response.js +1 -1
- package/dist/openapi/models/UpdateProfileRequest.d.ts +1 -1
- package/dist/openapi/models/UpdateProfileRequest.js +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.d.ts +1 -1
- package/dist/openapi/models/UploadConstraintsApplied.js +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadDurationExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadFile403Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile403Response.js +1 -1
- package/dist/openapi/models/UploadFile422Response.d.ts +1 -1
- package/dist/openapi/models/UploadFile422Response.js +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +1 -1
- package/dist/openapi/models/UploadProbeMediaMetadata.js +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.d.ts +1 -1
- package/dist/openapi/models/UploadProbeProcessingClass.js +1 -1
- package/dist/openapi/models/UploadProbeResponse.d.ts +1 -1
- package/dist/openapi/models/UploadProbeResponse.js +1 -1
- package/dist/openapi/models/UploadProbeStatus.d.ts +1 -1
- package/dist/openapi/models/UploadProbeStatus.js +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadProbeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadResponse.d.ts +1 -1
- package/dist/openapi/models/UploadResponse.js +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +1 -1
- package/dist/openapi/models/UploadSizeExceedsTierResponse.js +1 -1
- package/dist/openapi/models/UploadSource.d.ts +1 -1
- package/dist/openapi/models/UploadSource.js +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/UploadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/UploadThresholds.d.ts +1 -1
- package/dist/openapi/models/UploadThresholds.js +1 -1
- package/dist/openapi/models/UserTier.d.ts +1 -1
- package/dist/openapi/models/UserTier.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelope.js +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +1 -1
- package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +1 -1
- package/dist/openapi/models/VerifyEmailRequest.d.ts +1 -1
- package/dist/openapi/models/VerifyEmailRequest.js +1 -1
- package/dist/openapi/models/WarningType.d.ts +1 -1
- package/dist/openapi/models/WarningType.js +1 -1
- package/dist/openapi/models/WebhookOperationContext.d.ts +1 -1
- package/dist/openapi/models/WebhookOperationContext.js +1 -1
- package/dist/openapi/models/WebhookPayload.d.ts +1 -1
- package/dist/openapi/models/WebhookPayload.js +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelBillingEffect.js +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelResponse.js +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateRequest.js +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateResponse.js +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadResponse.js +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowEdge.d.ts +1 -1
- package/dist/openapi/models/WorkflowEdge.js +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowExpiredResponse.js +1 -1
- package/dist/openapi/models/WorkflowListResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowListResponse.js +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowListSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +1 -1
- package/dist/openapi/models/WorkflowPauseRequiredAction.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetail.js +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +1 -1
- package/dist/openapi/models/WorkflowPausedDetailLinks.js +1 -1
- package/dist/openapi/models/WorkflowProcessing.d.ts +1 -1
- package/dist/openapi/models/WorkflowProcessing.js +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeResponse.js +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSource.d.ts +1 -1
- package/dist/openapi/models/WorkflowSource.js +1 -1
- package/dist/openapi/models/WorkflowStatus.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatus.js +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusResponse.js +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +1 -1
- package/dist/openapi/models/WorkflowSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummary.js +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +1 -1
- package/dist/openapi/models/WorkflowSummaryJob.js +1 -1
- package/dist/openapi/models/WorkflowWarning.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarning.js +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.d.ts +1 -1
- package/dist/openapi/models/WorkflowWarningSeverity.js +1 -1
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/dist/operations/compress.d.ts +20 -4
- package/dist/operations/compress.js +15 -2
- package/dist/operations/compress.metadata.js +30 -27
- package/dist/operations/convert.d.ts +21 -0
- package/dist/operations/convert.js +15 -0
- package/dist/operations/convert.metadata.js +25 -0
- package/openapi/api.yaml +13 -1
- package/operation-capabilities/operation-capabilities.json +28 -1
- package/operations/schemas/compress.yaml +217 -118
- package/operations/schemas/convert.yaml +89 -2
- package/package.json +1 -1
|
@@ -44,29 +44,33 @@ operation:
|
|
|
44
44
|
# see FORMAT.md §"Route-aware Output model"). The derived per-(media, route,
|
|
45
45
|
# output_format) projection is accepted-options/image-output-routes.json.
|
|
46
46
|
#
|
|
47
|
-
# RESIZE-INSIDE-OUTPUT ships STABLE (hub-directed fast-path, 2026-06-22
|
|
48
|
-
#
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
|
-
#
|
|
53
|
-
#
|
|
47
|
+
# RESIZE-INSIDE-OUTPUT ships STABLE (hub-directed fast-path, 2026-06-22;
|
|
48
|
+
# engine corrected per API worker-verification n4CmaDE8, 2026-06-23):
|
|
49
|
+
# width / height / fit + max_output_pixels. The CONVERT worker is the image
|
|
50
|
+
# resize engine for the WHOLE Output op (image_convert.rs, Lanczos, 1-16384,
|
|
51
|
+
# 16MP cap, svg-reject; live #257) — the compress optimiser has NO resize.
|
|
52
|
+
# The API routes BOTH arms through convert (same_format = convert to the same
|
|
53
|
+
# token; format_change = convert to the target), so these keys are declared
|
|
54
|
+
# HERE (the facade entry) AND on convert.image (where the worker reads them +
|
|
55
|
+
# the API re-validates the rewritten op). REPLACE transform, ONE output —
|
|
56
|
+
# NOT thumbnail's derivative/preview semantics; thumbnail.yaml untouched.
|
|
54
57
|
#
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
#
|
|
65
|
-
#
|
|
58
|
+
# STABLE on the optimiser (same_format) route (all worker-proven 2026-06-23):
|
|
59
|
+
# lossless (jpeg/webp) — worker honours the `lossless` bool, API emits it.
|
|
60
|
+
# metadata: keep — preserve EXIF/ICC/XMP (libcaesium; lambdas PR #260). keep
|
|
61
|
+
# is honored on libcaesium (jpeg/png/webp/gif/tiff) ONLY; AVIF (ravif) +
|
|
62
|
+
# SVG (SVGO) re-encode from pixels so `keep` is NOT in their enum (worker
|
|
63
|
+
# would reject it). metadata `all` (strip) is the universal default.
|
|
64
|
+
#
|
|
65
|
+
# Still availability:planned (ANTI-REGRESSION — no stable-flip until worker-
|
|
66
|
+
# proven; plan §2.5):
|
|
67
|
+
# lossy (png) -> palette quantization (pngquant/imagequant-class); planned +
|
|
68
|
+
# licensing-gated by the lambdas spike — do NOT stable-flip until that
|
|
69
|
+
# confirms a permissive path.
|
|
66
70
|
image_jpeg:
|
|
67
71
|
mimes:
|
|
68
72
|
- image/jpeg
|
|
69
|
-
# Resize-inside-Output
|
|
73
|
+
# Resize-inside-Output shares the convert resize engine's 16MP output-area
|
|
70
74
|
# wall — the per-axis 16384 cap can't express it (FORMAT.md §max_output_pixels).
|
|
71
75
|
max_output_pixels: 16000000
|
|
72
76
|
options:
|
|
@@ -75,22 +79,46 @@ operation:
|
|
|
75
79
|
min: 1
|
|
76
80
|
max: 100
|
|
77
81
|
default: 80
|
|
82
|
+
depends_on: { encoding_mode: quality }
|
|
78
83
|
honored_on: [same_format]
|
|
79
|
-
description:
|
|
84
|
+
description: >-
|
|
85
|
+
Compression quality (1 = smallest file, 100 = best quality). Active in
|
|
86
|
+
`quality` mode (default); in `target_size` mode the encode-measure loop
|
|
87
|
+
owns quality, so this option is inactive.
|
|
88
|
+
encoding_mode:
|
|
89
|
+
type: enum
|
|
90
|
+
values: [quality, target_size]
|
|
91
|
+
default: quality
|
|
92
|
+
per_value_availability:
|
|
93
|
+
target_size: { availability: planned }
|
|
94
|
+
honored_on: [same_format]
|
|
95
|
+
description: >-
|
|
96
|
+
Compression mode (mirrors compress.video). `quality` = the `quality`
|
|
97
|
+
slider drives the encode (default, live). `target_size` = `planned` —
|
|
98
|
+
hit a byte budget via the worker's encode-measure-binary-search loop
|
|
99
|
+
(lambdas building; jpeg/webp/avif only). Optimiser (same_format) route.
|
|
100
|
+
target_size_bytes:
|
|
101
|
+
type: integer
|
|
102
|
+
min: 1024
|
|
103
|
+
availability: planned
|
|
104
|
+
depends_on: { encoding_mode: target_size }
|
|
105
|
+
honored_on: [same_format]
|
|
106
|
+
description: >-
|
|
107
|
+
Target output size in bytes (min 1024 = 1 KiB). `planned` — the image
|
|
108
|
+
encode-measure loop binary-searches quality to land at or under the
|
|
109
|
+
target; best-effort if the target is unreachable at min quality (the
|
|
110
|
+
result reports the chosen quality + whether the target was met).
|
|
111
|
+
Optimiser (same_format) route.
|
|
80
112
|
metadata:
|
|
81
113
|
type: enum
|
|
82
114
|
values: [all, keep]
|
|
83
115
|
default: all
|
|
84
|
-
per_value_availability:
|
|
85
|
-
keep: { availability: planned }
|
|
86
116
|
honored_on: [same_format]
|
|
87
117
|
description: >-
|
|
88
|
-
Metadata handling. `all` = strip all
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Optimiser (same_format) route — the format-change transcoder has no
|
|
93
|
-
metadata-preservation control today.
|
|
118
|
+
Metadata handling (optimiser/same_format route). `all` = strip all
|
|
119
|
+
EXIF/IPTC/XMP (default). `keep` = preserve EXIF/ICC/XMP — STABLE
|
|
120
|
+
(worker-proven, libcaesium; lambdas PR #260, staging round-trip +
|
|
121
|
+
unit test). Any other value is rejected as invalid_options.
|
|
94
122
|
progressive:
|
|
95
123
|
type: boolean
|
|
96
124
|
default: true
|
|
@@ -108,12 +136,16 @@ operation:
|
|
|
108
136
|
lossless:
|
|
109
137
|
type: boolean
|
|
110
138
|
default: false
|
|
111
|
-
|
|
139
|
+
depends_on: { encoding_mode: quality }
|
|
112
140
|
honored_on: [same_format]
|
|
113
141
|
description: >-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
142
|
+
Lossless JPEG re-optimisation (optimiser path): optimises the Huffman
|
|
143
|
+
tables WITHOUT re-encoding pixels — bit-preserving on the pixel data,
|
|
144
|
+
no quality loss (it cannot recover detail a lossy JPEG already lost).
|
|
145
|
+
STABLE — the compress-image worker honours the `lossless` bool
|
|
146
|
+
(un-parked 2026-06-23). Only in `quality` mode — incompatible with
|
|
147
|
+
`target_size` (the byte-budget loop is inherently lossy). Optimiser
|
|
148
|
+
(same_format) route only.
|
|
117
149
|
width:
|
|
118
150
|
type: integer
|
|
119
151
|
min: 1
|
|
@@ -122,8 +154,9 @@ operation:
|
|
|
122
154
|
description: >-
|
|
123
155
|
Resize-inside-Output: target width in pixels (1-16384; width*height <=
|
|
124
156
|
max_output_pixels). Resize the image as part of Output (replace semantics,
|
|
125
|
-
ONE transformed output) using the proven
|
|
126
|
-
|
|
157
|
+
ONE transformed output) using the proven convert resize engine (Lanczos;
|
|
158
|
+
the API routes Output resize through the convert worker, BOTH routes —
|
|
159
|
+
the compress optimiser has no resize) — it is NOT the derivative `thumbnail` op.
|
|
127
160
|
Optional; omit to keep the source dimensions.
|
|
128
161
|
height:
|
|
129
162
|
type: integer
|
|
@@ -138,9 +171,12 @@ operation:
|
|
|
138
171
|
depends_on: { width: set, height: set, logic: or }
|
|
139
172
|
honored_on: [same_format, format_change]
|
|
140
173
|
description: >-
|
|
141
|
-
Resize mode. max = fit within bounds
|
|
142
|
-
|
|
143
|
-
|
|
174
|
+
Resize mode. `max` (default) = fit within bounds, preserving aspect ratio
|
|
175
|
+
and NEVER upscaling — it caps at the source dimensions. This IS the
|
|
176
|
+
"no-enlarge" behaviour (there is no separate `no_enlarge` flag — the
|
|
177
|
+
worker has no such key). `crop`/`scale` = exact dimensions (`scale`
|
|
178
|
+
deliberately enlarges past source). Applies only when width or height is
|
|
179
|
+
set, on whichever Output route runs.
|
|
144
180
|
|
|
145
181
|
image_png:
|
|
146
182
|
mimes:
|
|
@@ -158,16 +194,12 @@ operation:
|
|
|
158
194
|
type: enum
|
|
159
195
|
values: [all, keep]
|
|
160
196
|
default: all
|
|
161
|
-
per_value_availability:
|
|
162
|
-
keep: { availability: planned }
|
|
163
197
|
honored_on: [same_format]
|
|
164
198
|
description: >-
|
|
165
|
-
Metadata handling. `all` = strip all
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
Optimiser (same_format) route — the format-change transcoder has no
|
|
170
|
-
metadata-preservation control today.
|
|
199
|
+
Metadata handling (optimiser/same_format route). `all` = strip all
|
|
200
|
+
EXIF/IPTC/XMP (default). `keep` = preserve EXIF/ICC/XMP — STABLE
|
|
201
|
+
(worker-proven, libcaesium; lambdas PR #260, staging round-trip +
|
|
202
|
+
unit test). Any other value is rejected as invalid_options.
|
|
171
203
|
optimization_level:
|
|
172
204
|
type: integer
|
|
173
205
|
min: 0
|
|
@@ -203,8 +235,9 @@ operation:
|
|
|
203
235
|
description: >-
|
|
204
236
|
Resize-inside-Output: target width in pixels (1-16384; width*height <=
|
|
205
237
|
max_output_pixels). Resize the image as part of Output (replace semantics,
|
|
206
|
-
ONE transformed output) using the proven
|
|
207
|
-
|
|
238
|
+
ONE transformed output) using the proven convert resize engine (Lanczos;
|
|
239
|
+
the API routes Output resize through the convert worker, BOTH routes —
|
|
240
|
+
the compress optimiser has no resize) — it is NOT the derivative `thumbnail` op.
|
|
208
241
|
Optional; omit to keep the source dimensions.
|
|
209
242
|
height:
|
|
210
243
|
type: integer
|
|
@@ -219,9 +252,12 @@ operation:
|
|
|
219
252
|
depends_on: { width: set, height: set, logic: or }
|
|
220
253
|
honored_on: [same_format, format_change]
|
|
221
254
|
description: >-
|
|
222
|
-
Resize mode. max = fit within bounds
|
|
223
|
-
|
|
224
|
-
|
|
255
|
+
Resize mode. `max` (default) = fit within bounds, preserving aspect ratio
|
|
256
|
+
and NEVER upscaling — it caps at the source dimensions. This IS the
|
|
257
|
+
"no-enlarge" behaviour (there is no separate `no_enlarge` flag — the
|
|
258
|
+
worker has no such key). `crop`/`scale` = exact dimensions (`scale`
|
|
259
|
+
deliberately enlarges past source). Applies only when width or height is
|
|
260
|
+
set, on whichever Output route runs.
|
|
225
261
|
|
|
226
262
|
image_avif:
|
|
227
263
|
availability: beta
|
|
@@ -243,22 +279,47 @@ operation:
|
|
|
243
279
|
min: 1
|
|
244
280
|
max: 100
|
|
245
281
|
default: 80
|
|
282
|
+
depends_on: { encoding_mode: quality }
|
|
246
283
|
honored_on: [same_format]
|
|
247
|
-
description:
|
|
284
|
+
description: >-
|
|
285
|
+
Compression quality (1 = smallest file, 100 = best quality). Active in
|
|
286
|
+
`quality` mode (default); in `target_size` mode the encode-measure loop
|
|
287
|
+
owns quality, so this option is inactive.
|
|
288
|
+
encoding_mode:
|
|
289
|
+
type: enum
|
|
290
|
+
values: [quality, target_size]
|
|
291
|
+
default: quality
|
|
292
|
+
per_value_availability:
|
|
293
|
+
target_size: { availability: planned }
|
|
294
|
+
honored_on: [same_format]
|
|
295
|
+
description: >-
|
|
296
|
+
Compression mode (mirrors compress.video). `quality` = the `quality`
|
|
297
|
+
slider drives the encode (default, live). `target_size` = `planned` —
|
|
298
|
+
hit a byte budget via the worker's encode-measure-binary-search loop
|
|
299
|
+
(lambdas building; jpeg/webp/avif only). AVIF encodes are slow, so the
|
|
300
|
+
loop caps iterations. Optimiser (same_format) route.
|
|
301
|
+
target_size_bytes:
|
|
302
|
+
type: integer
|
|
303
|
+
min: 1024
|
|
304
|
+
availability: planned
|
|
305
|
+
depends_on: { encoding_mode: target_size }
|
|
306
|
+
honored_on: [same_format]
|
|
307
|
+
description: >-
|
|
308
|
+
Target output size in bytes (min 1024 = 1 KiB). `planned` — the image
|
|
309
|
+
encode-measure loop binary-searches quality to land at or under the
|
|
310
|
+
target; best-effort if the target is unreachable at min quality (the
|
|
311
|
+
result reports the chosen quality + whether the target was met).
|
|
312
|
+
Optimiser (same_format) route.
|
|
248
313
|
metadata:
|
|
249
314
|
type: enum
|
|
250
|
-
values: [all
|
|
315
|
+
values: [all]
|
|
251
316
|
default: all
|
|
252
|
-
per_value_availability:
|
|
253
|
-
keep: { availability: planned }
|
|
254
317
|
honored_on: [same_format]
|
|
255
318
|
description: >-
|
|
256
|
-
Metadata handling. `all` = strip all EXIF/IPTC/XMP (
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
Optimiser (same_format) route — the format-change transcoder has no
|
|
261
|
-
metadata-preservation control today.
|
|
319
|
+
Metadata handling. `all` = strip all EXIF/IPTC/XMP (the only supported
|
|
320
|
+
value). `keep` is NOT offered for AVIF — ravif re-encodes from pixels
|
|
321
|
+
and cannot preserve metadata (the worker rejects `keep` as
|
|
322
|
+
invalid_options).
|
|
262
323
|
avif_speed:
|
|
263
324
|
type: integer
|
|
264
325
|
min: 1
|
|
@@ -283,8 +344,9 @@ operation:
|
|
|
283
344
|
description: >-
|
|
284
345
|
Resize-inside-Output: target width in pixels (1-16384; width*height <=
|
|
285
346
|
max_output_pixels). Resize the image as part of Output (replace semantics,
|
|
286
|
-
ONE transformed output) using the proven
|
|
287
|
-
|
|
347
|
+
ONE transformed output) using the proven convert resize engine (Lanczos;
|
|
348
|
+
the API routes Output resize through the convert worker, BOTH routes —
|
|
349
|
+
the compress optimiser has no resize) — it is NOT the derivative `thumbnail` op.
|
|
288
350
|
Optional; omit to keep the source dimensions.
|
|
289
351
|
height:
|
|
290
352
|
type: integer
|
|
@@ -299,9 +361,12 @@ operation:
|
|
|
299
361
|
depends_on: { width: set, height: set, logic: or }
|
|
300
362
|
honored_on: [same_format, format_change]
|
|
301
363
|
description: >-
|
|
302
|
-
Resize mode. max = fit within bounds
|
|
303
|
-
|
|
304
|
-
|
|
364
|
+
Resize mode. `max` (default) = fit within bounds, preserving aspect ratio
|
|
365
|
+
and NEVER upscaling — it caps at the source dimensions. This IS the
|
|
366
|
+
"no-enlarge" behaviour (there is no separate `no_enlarge` flag — the
|
|
367
|
+
worker has no such key). `crop`/`scale` = exact dimensions (`scale`
|
|
368
|
+
deliberately enlarges past source). Applies only when width or height is
|
|
369
|
+
set, on whichever Output route runs.
|
|
305
370
|
|
|
306
371
|
# webp split out of the former bundled image group: it is the one input that
|
|
307
372
|
# carries BOTH Resize (raster, proven in thumbnail-images) AND the optimiser
|
|
@@ -317,22 +382,46 @@ operation:
|
|
|
317
382
|
min: 1
|
|
318
383
|
max: 100
|
|
319
384
|
default: 80
|
|
385
|
+
depends_on: { encoding_mode: quality }
|
|
320
386
|
honored_on: [same_format]
|
|
321
|
-
description:
|
|
387
|
+
description: >-
|
|
388
|
+
Compression quality (1 = smallest file, 100 = best quality). Active in
|
|
389
|
+
`quality` mode (default); in `target_size` mode the encode-measure loop
|
|
390
|
+
owns quality, so this option is inactive.
|
|
391
|
+
encoding_mode:
|
|
392
|
+
type: enum
|
|
393
|
+
values: [quality, target_size]
|
|
394
|
+
default: quality
|
|
395
|
+
per_value_availability:
|
|
396
|
+
target_size: { availability: planned }
|
|
397
|
+
honored_on: [same_format]
|
|
398
|
+
description: >-
|
|
399
|
+
Compression mode (mirrors compress.video). `quality` = the `quality`
|
|
400
|
+
slider drives the encode (default, live). `target_size` = `planned` —
|
|
401
|
+
hit a byte budget via the worker's encode-measure-binary-search loop
|
|
402
|
+
(lambdas building; jpeg/webp/avif only). Optimiser (same_format) route.
|
|
403
|
+
target_size_bytes:
|
|
404
|
+
type: integer
|
|
405
|
+
min: 1024
|
|
406
|
+
availability: planned
|
|
407
|
+
depends_on: { encoding_mode: target_size }
|
|
408
|
+
honored_on: [same_format]
|
|
409
|
+
description: >-
|
|
410
|
+
Target output size in bytes (min 1024 = 1 KiB). `planned` — the image
|
|
411
|
+
encode-measure loop binary-searches quality to land at or under the
|
|
412
|
+
target; best-effort if the target is unreachable at min quality (the
|
|
413
|
+
result reports the chosen quality + whether the target was met).
|
|
414
|
+
Optimiser (same_format) route.
|
|
322
415
|
metadata:
|
|
323
416
|
type: enum
|
|
324
417
|
values: [all, keep]
|
|
325
418
|
default: all
|
|
326
|
-
per_value_availability:
|
|
327
|
-
keep: { availability: planned }
|
|
328
419
|
honored_on: [same_format]
|
|
329
420
|
description: >-
|
|
330
|
-
Metadata handling. `all` = strip all
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
Optimiser (same_format) route — the format-change transcoder has no
|
|
335
|
-
metadata-preservation control today.
|
|
421
|
+
Metadata handling (optimiser/same_format route). `all` = strip all
|
|
422
|
+
EXIF/IPTC/XMP (default). `keep` = preserve EXIF/ICC/XMP — STABLE
|
|
423
|
+
(worker-proven, libcaesium; lambdas PR #260, staging round-trip +
|
|
424
|
+
unit test). Any other value is rejected as invalid_options.
|
|
336
425
|
output_format:
|
|
337
426
|
type: enum
|
|
338
427
|
values: [original, webp]
|
|
@@ -345,12 +434,15 @@ operation:
|
|
|
345
434
|
lossless:
|
|
346
435
|
type: boolean
|
|
347
436
|
default: false
|
|
348
|
-
|
|
437
|
+
depends_on: { encoding_mode: quality }
|
|
349
438
|
honored_on: [same_format]
|
|
350
439
|
description: >-
|
|
351
|
-
Encode WebP losslessly (optimiser path)
|
|
352
|
-
|
|
353
|
-
|
|
440
|
+
Encode WebP losslessly (optimiser path): a genuine lossless WebP encode.
|
|
441
|
+
STABLE — the compress-image worker honours the `lossless` bool (un-parked
|
|
442
|
+
2026-06-23). Note a lossless encode can be LARGER than a lossy one at the
|
|
443
|
+
same visual quality. Only in `quality` mode — incompatible with
|
|
444
|
+
`target_size` (the byte-budget loop is inherently lossy). Optimiser
|
|
445
|
+
(same_format) route only.
|
|
354
446
|
width:
|
|
355
447
|
type: integer
|
|
356
448
|
min: 1
|
|
@@ -359,8 +451,9 @@ operation:
|
|
|
359
451
|
description: >-
|
|
360
452
|
Resize-inside-Output: target width in pixels (1-16384; width*height <=
|
|
361
453
|
max_output_pixels). Resize the image as part of Output (replace semantics,
|
|
362
|
-
ONE transformed output) using the proven
|
|
363
|
-
|
|
454
|
+
ONE transformed output) using the proven convert resize engine (Lanczos;
|
|
455
|
+
the API routes Output resize through the convert worker, BOTH routes —
|
|
456
|
+
the compress optimiser has no resize) — it is NOT the derivative `thumbnail` op.
|
|
364
457
|
Optional; omit to keep the source dimensions.
|
|
365
458
|
height:
|
|
366
459
|
type: integer
|
|
@@ -375,9 +468,12 @@ operation:
|
|
|
375
468
|
depends_on: { width: set, height: set, logic: or }
|
|
376
469
|
honored_on: [same_format, format_change]
|
|
377
470
|
description: >-
|
|
378
|
-
Resize mode. max = fit within bounds
|
|
379
|
-
|
|
380
|
-
|
|
471
|
+
Resize mode. `max` (default) = fit within bounds, preserving aspect ratio
|
|
472
|
+
and NEVER upscaling — it caps at the source dimensions. This IS the
|
|
473
|
+
"no-enlarge" behaviour (there is no separate `no_enlarge` flag — the
|
|
474
|
+
worker has no such key). `crop`/`scale` = exact dimensions (`scale`
|
|
475
|
+
deliberately enlarges past source). Applies only when width or height is
|
|
476
|
+
set, on whichever Output route runs.
|
|
381
477
|
|
|
382
478
|
# svg is VECTOR: no raster resize (thumbnail-images does not list svg), and the
|
|
383
479
|
# optimiser `lossless` knob does not apply. SVG compression is SVGO; only
|
|
@@ -395,15 +491,13 @@ operation:
|
|
|
395
491
|
description: "Compression quality (1 = smallest file, 100 = best quality)."
|
|
396
492
|
metadata:
|
|
397
493
|
type: enum
|
|
398
|
-
values: [all
|
|
494
|
+
values: [all]
|
|
399
495
|
default: all
|
|
400
|
-
per_value_availability:
|
|
401
|
-
keep: { availability: planned }
|
|
402
496
|
honored_on: [same_format]
|
|
403
497
|
description: >-
|
|
404
|
-
Metadata handling. `all` = strip all metadata (
|
|
405
|
-
|
|
406
|
-
(
|
|
498
|
+
Metadata handling. `all` = strip all metadata (the only supported value).
|
|
499
|
+
`keep` is NOT offered for SVG — SVGO optimises the markup and cannot
|
|
500
|
+
preserve a metadata block (the worker rejects `keep` as invalid_options).
|
|
407
501
|
output_format:
|
|
408
502
|
type: enum
|
|
409
503
|
values: [original, webp]
|
|
@@ -433,16 +527,12 @@ operation:
|
|
|
433
527
|
type: enum
|
|
434
528
|
values: [all, keep]
|
|
435
529
|
default: all
|
|
436
|
-
per_value_availability:
|
|
437
|
-
keep: { availability: planned }
|
|
438
530
|
honored_on: [same_format]
|
|
439
531
|
description: >-
|
|
440
|
-
Metadata handling. `all` = strip all
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
Optimiser (same_format) route — the format-change transcoder has no
|
|
445
|
-
metadata-preservation control today.
|
|
532
|
+
Metadata handling (optimiser/same_format route). `all` = strip all
|
|
533
|
+
EXIF/IPTC/XMP (default). `keep` = preserve EXIF/ICC/XMP — STABLE
|
|
534
|
+
(worker-proven, libcaesium; lambdas PR #260, staging round-trip +
|
|
535
|
+
unit test). Any other value is rejected as invalid_options.
|
|
446
536
|
output_format:
|
|
447
537
|
type: enum
|
|
448
538
|
values: [original, webp]
|
|
@@ -460,8 +550,9 @@ operation:
|
|
|
460
550
|
description: >-
|
|
461
551
|
Resize-inside-Output: target width in pixels (1-16384; width*height <=
|
|
462
552
|
max_output_pixels). Resize the image as part of Output (replace semantics,
|
|
463
|
-
ONE transformed output) using the proven
|
|
464
|
-
|
|
553
|
+
ONE transformed output) using the proven convert resize engine (Lanczos;
|
|
554
|
+
the API routes Output resize through the convert worker, BOTH routes —
|
|
555
|
+
the compress optimiser has no resize) — it is NOT the derivative `thumbnail` op.
|
|
465
556
|
Optional; omit to keep the source dimensions.
|
|
466
557
|
height:
|
|
467
558
|
type: integer
|
|
@@ -476,9 +567,12 @@ operation:
|
|
|
476
567
|
depends_on: { width: set, height: set, logic: or }
|
|
477
568
|
honored_on: [same_format, format_change]
|
|
478
569
|
description: >-
|
|
479
|
-
Resize mode. max = fit within bounds
|
|
480
|
-
|
|
481
|
-
|
|
570
|
+
Resize mode. `max` (default) = fit within bounds, preserving aspect ratio
|
|
571
|
+
and NEVER upscaling — it caps at the source dimensions. This IS the
|
|
572
|
+
"no-enlarge" behaviour (there is no separate `no_enlarge` flag — the
|
|
573
|
+
worker has no such key). `crop`/`scale` = exact dimensions (`scale`
|
|
574
|
+
deliberately enlarges past source). Applies only when width or height is
|
|
575
|
+
set, on whichever Output route runs.
|
|
482
576
|
|
|
483
577
|
audio:
|
|
484
578
|
mimes:
|
|
@@ -542,18 +636,19 @@ operation:
|
|
|
542
636
|
trim_start:
|
|
543
637
|
type: float
|
|
544
638
|
min: 0
|
|
545
|
-
availability: planned
|
|
546
639
|
description: >
|
|
547
|
-
Trim from beginning in seconds
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
640
|
+
Trim from beginning in seconds (absent = from the start). STABLE
|
|
641
|
+
(qZI5EK9j) — the compress-audio worker cuts the clip before encoding
|
|
642
|
+
(input-side ffmpeg `-ss`/`-t`; lambdas PR #259), SAME FROM-END
|
|
643
|
+
semantic as compress.video / convert / merge: the kept clip is
|
|
644
|
+
[`trim_start`, input_duration − `trim_end`].
|
|
552
645
|
trim_end:
|
|
553
646
|
type: float
|
|
554
647
|
min: 0
|
|
555
|
-
|
|
556
|
-
|
|
648
|
+
description: >
|
|
649
|
+
Trim from end in seconds (absent = to the end). Removes this many
|
|
650
|
+
seconds from the end; with `trim_start` the kept clip is
|
|
651
|
+
[`trim_start`, input_duration − `trim_end`]. STABLE — see `trim_start`.
|
|
557
652
|
|
|
558
653
|
video:
|
|
559
654
|
mimes:
|
|
@@ -749,18 +844,22 @@ operation:
|
|
|
749
844
|
trim_start:
|
|
750
845
|
type: float
|
|
751
846
|
min: 0
|
|
752
|
-
availability: planned
|
|
753
847
|
description: >
|
|
754
|
-
Trim from beginning in seconds
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
848
|
+
Trim from beginning in seconds (absent = from the start). STABLE
|
|
849
|
+
(qZI5EK9j) — the compress-video worker cuts the clip before encoding
|
|
850
|
+
(input-side ffmpeg `-ss`/`-t`; lambdas PR #258), SAME FROM-END
|
|
851
|
+
semantic as convert/merge: the kept clip is [`trim_start`,
|
|
852
|
+
input_duration − `trim_end`]. SHORT-FORM only — for long-form video
|
|
853
|
+
the server returns `feature_not_available` (trim a short clip, or
|
|
854
|
+
chain a `split`); see the compress.video.trim.longform constraint.
|
|
759
855
|
trim_end:
|
|
760
856
|
type: float
|
|
761
857
|
min: 0
|
|
762
|
-
|
|
763
|
-
|
|
858
|
+
description: >
|
|
859
|
+
Trim from end in seconds (absent = to the end). Removes this many
|
|
860
|
+
seconds from the end; with `trim_start` the kept clip is
|
|
861
|
+
[`trim_start`, input_duration − `trim_end`]. STABLE — see
|
|
862
|
+
`trim_start` (short-form only; long-form → `feature_not_available`).
|
|
764
863
|
|
|
765
864
|
document_pdf:
|
|
766
865
|
mimes:
|
|
@@ -8,12 +8,16 @@ operation:
|
|
|
8
8
|
|
|
9
9
|
mime_groups:
|
|
10
10
|
image:
|
|
11
|
+
# svg is split into convert.image_svg (below): it rasterises to raster
|
|
12
|
+
# formats but CANNOT be raster-resized (worker rejects svg resize), so it
|
|
13
|
+
# must NOT sit in a group that declares width/height/fit — else the raw
|
|
14
|
+
# schema / availability / accepted-options advertise svg resize. Mirrors
|
|
15
|
+
# compress.image_svg.
|
|
11
16
|
mimes:
|
|
12
17
|
- image/jpeg
|
|
13
18
|
- image/png
|
|
14
19
|
- image/gif
|
|
15
20
|
- image/webp
|
|
16
|
-
- image/svg+xml
|
|
17
21
|
- image/tiff
|
|
18
22
|
- image/bmp
|
|
19
23
|
- image/vnd.microsoft.icon
|
|
@@ -33,6 +37,20 @@ operation:
|
|
|
33
37
|
# output_format) projection (accepted-options/image-output-routes.json)
|
|
34
38
|
# attributes them to the transcoder path — `background` is the canonical
|
|
35
39
|
# transparency→JPEG fill on format-change-to-jpeg, already live + stable.
|
|
40
|
+
#
|
|
41
|
+
# RESIZE: convert is the image resize ENGINE for the WHOLE Output op (both
|
|
42
|
+
# routes) — the compress optimiser has NO resize code (it never reads
|
|
43
|
+
# width/height/fit). The API carries width/height/fit onto the convert op
|
|
44
|
+
# for BOTH arms: format_change = convert to the requested format; same_format
|
|
45
|
+
# = convert to the SAME format token (the optimiser leg delegates resize to
|
|
46
|
+
# the transcoder — see compress.image resize comments). So width/height/fit
|
|
47
|
+
# are declared HERE (the worker reads them: image_convert.rs ->
|
|
48
|
+
# shared::image::resize_request_from_job, full validation + 16MP cap + svg
|
|
49
|
+
# REJECT + animation preserve; live #257). svg INPUT cannot be raster-resized
|
|
50
|
+
# (worker rejects as invalid_options) — the output-keyed projection lists
|
|
51
|
+
# resize on every format_change target, so it is INPUT-GATED: consumers
|
|
52
|
+
# cross-ref same_format[input] (svg has no resize) before offering it.
|
|
53
|
+
max_output_pixels: 16000000 # worker MAX_OUTPUT_PIXELS; parity with compress.image
|
|
36
54
|
options:
|
|
37
55
|
output_format:
|
|
38
56
|
type: enum
|
|
@@ -49,9 +67,78 @@ operation:
|
|
|
49
67
|
description: "Output quality for lossy formats"
|
|
50
68
|
background:
|
|
51
69
|
type: string
|
|
70
|
+
pattern: "^#[0-9a-fA-F]{6}$"
|
|
71
|
+
depends_on: { output_format: jpeg }
|
|
72
|
+
honored_on: [format_change]
|
|
73
|
+
description: >-
|
|
74
|
+
Background colour as a 6-digit hex (`#RRGGBB`, e.g. `#ffffff`) for
|
|
75
|
+
transparent images converted to JPEG (the format-change→JPEG
|
|
76
|
+
alpha-flatten — Output's transparency fill control). HEX ONLY: the
|
|
77
|
+
worker honours only `#RRGGBB` and silently drops a CSS named colour
|
|
78
|
+
(e.g. `magenta`) to the white default, so the `pattern` rejects a
|
|
79
|
+
non-hex value as `invalid_options` rather than advertising an inert
|
|
80
|
+
free-form string (e2e staging-verified 2026-06-22).
|
|
81
|
+
width:
|
|
82
|
+
type: integer
|
|
83
|
+
min: 1
|
|
84
|
+
max: 16384
|
|
85
|
+
honored_on: [format_change]
|
|
86
|
+
description: >-
|
|
87
|
+
Resize-inside-Output: target width in pixels (1-16384; width*height <=
|
|
88
|
+
max_output_pixels). The convert worker resizes (Lanczos) before encode;
|
|
89
|
+
single transformed output. NOT honored for SVG input (the worker
|
|
90
|
+
rejects svg resize). Input-gated — see the resize comment above.
|
|
91
|
+
height:
|
|
92
|
+
type: integer
|
|
93
|
+
min: 1
|
|
94
|
+
max: 16384
|
|
95
|
+
honored_on: [format_change]
|
|
96
|
+
description: "Resize-inside-Output: target height in pixels (1-16384; width*height <= max_output_pixels). Not honored for SVG input. See `width`."
|
|
97
|
+
fit:
|
|
98
|
+
type: enum
|
|
99
|
+
values: [max, crop, scale]
|
|
100
|
+
default: max
|
|
101
|
+
depends_on: { width: set, height: set, logic: or }
|
|
102
|
+
honored_on: [format_change]
|
|
103
|
+
description: >-
|
|
104
|
+
Resize mode. `max` (default) = fit within bounds, preserving aspect ratio
|
|
105
|
+
and NEVER upscaling — it caps at the source dimensions. This IS the
|
|
106
|
+
"no-enlarge" behaviour (there is no separate `no_enlarge` flag — the
|
|
107
|
+
worker has no such key). `crop`/`scale` = exact dimensions (`scale`
|
|
108
|
+
deliberately enlarges past source). Applies only when width or height is set.
|
|
109
|
+
|
|
110
|
+
# svg is VECTOR: it converts (rasterises) to a raster format, but CANNOT be
|
|
111
|
+
# raster-resized — the convert worker rejects svg resize. Split out of
|
|
112
|
+
# convert.image so width/height/fit are STRUCTURALLY absent for svg input:
|
|
113
|
+
# the API validates an svg op against THIS group + rejects resize at create
|
|
114
|
+
# (not prose), and raw schema / availability / accepted-options never
|
|
115
|
+
# advertise svg resize. Mirrors compress.image_svg. NO resize, NO area cap.
|
|
116
|
+
image_svg:
|
|
117
|
+
mimes:
|
|
118
|
+
- image/svg+xml
|
|
119
|
+
options:
|
|
120
|
+
output_format:
|
|
121
|
+
type: enum
|
|
122
|
+
values: [jpeg, png, webp, avif, gif, tiff]
|
|
123
|
+
required: true
|
|
124
|
+
description: "Target raster format (SVG is rasterised, then encoded)."
|
|
125
|
+
quality:
|
|
126
|
+
type: integer
|
|
127
|
+
min: 1
|
|
128
|
+
max: 100
|
|
129
|
+
default: 85
|
|
130
|
+
depends_on: { output_format: [jpeg, webp, avif] }
|
|
131
|
+
honored_on: [format_change]
|
|
132
|
+
description: "Output quality for lossy formats"
|
|
133
|
+
background:
|
|
134
|
+
type: string
|
|
135
|
+
pattern: "^#[0-9a-fA-F]{6}$"
|
|
52
136
|
depends_on: { output_format: jpeg }
|
|
53
137
|
honored_on: [format_change]
|
|
54
|
-
description:
|
|
138
|
+
description: >-
|
|
139
|
+
Background colour as a 6-digit hex (`#RRGGBB`) for transparent SVG
|
|
140
|
+
rasterised to JPEG (alpha-flatten). HEX ONLY — non-hex is rejected as
|
|
141
|
+
`invalid_options` (see convert.image.background).
|
|
55
142
|
|
|
56
143
|
video:
|
|
57
144
|
mimes:
|