@giveitsmaller/contracts 0.58.0 โ 0.60.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 +14 -1
- package/accepted-options/image-output-routes.json +1 -1
- package/asyncapi/events.yaml +36 -9
- package/availability/availability.json +136 -27
- package/code-builder/code-builder-metadata.json +136 -27
- package/dist/asyncapi/ErrorCode.d.ts +2 -0
- package/dist/asyncapi/ErrorCode.js +2 -0
- 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/BillingCheckoutRequest.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutRequest.js +1 -1
- package/dist/openapi/models/BillingCheckoutSession.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSession.js +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +1 -1
- package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +1 -1
- package/dist/openapi/models/CallbackEventType.d.ts +1 -1
- package/dist/openapi/models/CallbackEventType.js +1 -1
- package/dist/openapi/models/CapabilityCondition.d.ts +1 -1
- package/dist/openapi/models/CapabilityCondition.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf1.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf2.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf3.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf4.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf5.js +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +1 -1
- package/dist/openapi/models/CapabilityConditionOneOf6.js +1 -1
- package/dist/openapi/models/CapabilityConstraint.d.ts +1 -1
- package/dist/openapi/models/CapabilityConstraint.js +1 -1
- package/dist/openapi/models/CapabilityInputSpec.d.ts +1 -1
- package/dist/openapi/models/CapabilityInputSpec.js +1 -1
- package/dist/openapi/models/CapabilityProduces.d.ts +1 -1
- package/dist/openapi/models/CapabilityProduces.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf1.js +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +1 -1
- package/dist/openapi/models/CapabilityProducesOneOf2.js +1 -1
- package/dist/openapi/models/ChangePasswordRequest.d.ts +1 -1
- package/dist/openapi/models/ChangePasswordRequest.js +1 -1
- package/dist/openapi/models/CodegenSource.d.ts +1 -1
- package/dist/openapi/models/CodegenSource.js +1 -1
- package/dist/openapi/models/CodegenSourceInput.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceInput.js +1 -1
- package/dist/openapi/models/CodegenSourceJob.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceJob.js +1 -1
- package/dist/openapi/models/CodegenSourceJobSource.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceJobSource.js +1 -1
- package/dist/openapi/models/CodegenSourceOperation.d.ts +1 -1
- package/dist/openapi/models/CodegenSourceOperation.js +1 -1
- package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +1 -1
- package/dist/openapi/models/CodegenUploadPlaceholder.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/CreateBillingCheckoutSession422Response.d.ts +1 -1
- package/dist/openapi/models/CreateBillingCheckoutSession422Response.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/CreateWorkflow401Response.d.ts +1 -1
- package/dist/openapi/models/CreateWorkflow401Response.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 +43 -1
- package/dist/openapi/models/CreditsUsageResponse.js +5 -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/DroppedOption.d.ts +88 -0
- package/dist/openapi/models/DroppedOption.js +54 -0
- package/dist/openapi/models/EmailNotify.d.ts +1 -1
- package/dist/openapi/models/EmailNotify.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/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 +23 -1
- package/dist/openapi/models/JobResponse.js +3 -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/LoginUser401Response.d.ts +1 -1
- package/dist/openapi/models/LoginUser401Response.js +1 -1
- package/dist/openapi/models/LoginUserRequest.d.ts +1 -1
- package/dist/openapi/models/LoginUserRequest.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +5 -2
- package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +1 -1
- package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.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 +38 -1
- package/dist/openapi/models/MimeGroupSchema.js +5 -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/NotifyConfig.d.ts +1 -1
- package/dist/openapi/models/NotifyConfig.js +1 -1
- package/dist/openapi/models/OperationCapability.d.ts +1 -1
- package/dist/openapi/models/OperationCapability.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 +103 -5
- 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 +30 -6
- 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 +10 -1
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +4 -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/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +33 -0
- package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +42 -0
- package/dist/openapi/models/OptionSchema.d.ts +30 -1
- package/dist/openapi/models/OptionSchema.js +4 -1
- package/dist/openapi/models/OutputProperties.d.ts +1 -1
- package/dist/openapi/models/OutputProperties.js +1 -1
- package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +1 -1
- package/dist/openapi/models/OutputPropertiesIsAnimated.js +1 -1
- package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +58 -0
- package/dist/openapi/models/PerClassAvailabilityEntry.js +48 -0
- package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +1 -1
- package/dist/openapi/models/PerRoleCardinalityEntry.js +1 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +44 -1
- package/dist/openapi/models/PerValueAvailabilityEntry.js +5 -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 +23 -6
- package/dist/openapi/models/ProcessingClassHint.js +23 -6
- package/dist/openapi/models/ProcessingClassReason.d.ts +78 -1
- package/dist/openapi/models/ProcessingClassReason.js +79 -2
- 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 +30 -1
- package/dist/openapi/models/ProcessingPlanJob.js +4 -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/ResendVerificationEmailRequest.d.ts +1 -1
- package/dist/openapi/models/ResendVerificationEmailRequest.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 +9 -4
- 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 -19
- package/dist/openapi/models/UploadSource.js +1 -3
- 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/WorkflowArchiveResponse.d.ts +81 -0
- package/dist/openapi/models/WorkflowArchiveResponse.js +71 -0
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +54 -0
- 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/WorkflowCreditSummary.d.ts +1 -1
- package/dist/openapi/models/WorkflowCreditSummary.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/WorkflowRestoreResponse.d.ts +60 -0
- package/dist/openapi/models/WorkflowRestoreResponse.js +58 -0
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +46 -0
- package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +54 -0
- 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 +12 -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 +24 -1
- package/dist/openapi/models/WorkflowSummary.js +5 -1
- package/dist/openapi/models/WorkflowSummaryJob.d.ts +11 -5
- 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/models/index.d.ts +7 -0
- package/dist/openapi/models/index.js +7 -0
- package/dist/openapi/runtime.d.ts +1 -1
- package/dist/openapi/runtime.js +1 -1
- package/dist/operations/merge.metadata.js +6 -1
- package/dist/operations/thumbnail.d.ts +21 -0
- package/dist/operations/thumbnail.js +16 -0
- package/dist/operations/thumbnail.metadata.js +25 -0
- package/openapi/api.yaml +895 -45
- package/operation-capabilities/operation-capabilities.json +1 -1
- package/operations/schemas/audio_overlay.yaml +0 -4
- package/operations/schemas/audio_to_video.yaml +1 -0
- package/operations/schemas/compress.yaml +113 -22
- package/operations/schemas/convert.yaml +10 -4
- package/operations/schemas/merge.yaml +90 -3
- package/operations/schemas/render_variants.yaml +30 -7
- package/operations/schemas/split.yaml +13 -3
- package/operations/schemas/thumbnail.yaml +190 -3
- package/package.json +1 -1
|
@@ -241,7 +241,6 @@ operation:
|
|
|
241
241
|
type: float
|
|
242
242
|
min: -80.0
|
|
243
243
|
max: -10.0
|
|
244
|
-
default: -50.0
|
|
245
244
|
availability: planned
|
|
246
245
|
description: |
|
|
247
246
|
Silence threshold (dB) for the `sync_to_silence` feature.
|
|
@@ -254,7 +253,6 @@ operation:
|
|
|
254
253
|
type: integer
|
|
255
254
|
min: 50
|
|
256
255
|
max: 30000
|
|
257
|
-
default: 500
|
|
258
256
|
availability: planned
|
|
259
257
|
description: |
|
|
260
258
|
Minimum silence duration (milliseconds) to qualify as an
|
|
@@ -412,7 +410,6 @@ operation:
|
|
|
412
410
|
type: float
|
|
413
411
|
min: -80.0
|
|
414
412
|
max: -10.0
|
|
415
|
-
default: -50.0
|
|
416
413
|
availability: planned
|
|
417
414
|
description: |
|
|
418
415
|
Silence threshold (dB) for `sync_to_silence`. Inert
|
|
@@ -422,7 +419,6 @@ operation:
|
|
|
422
419
|
type: integer
|
|
423
420
|
min: 50
|
|
424
421
|
max: 30000
|
|
425
|
-
default: 500
|
|
426
422
|
availability: planned
|
|
427
423
|
description: |
|
|
428
424
|
Minimum silence duration (milliseconds) for
|
|
@@ -24,10 +24,14 @@ operation:
|
|
|
24
24
|
# fixed `all` โ BOTH now superseded by the image-options work: RESIZE
|
|
25
25
|
# (width/height/fit) is back STABLE (v2.97.0, the route-aware Output model);
|
|
26
26
|
# `metadata` is strip/keep (canonical `strip`, deprecated `all`); `auto_orient`
|
|
27
|
-
# is
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
27
|
+
# is STABLE; and the old `icc_profile` is superseded by the decoupled
|
|
28
|
+
# `color_profile` control, also STABLE (only the `srgb` VALUE on the gif/tiff
|
|
29
|
+
# `image` group is still planned) โ ICC handling is its own axis, NOT folded
|
|
30
|
+
# into metadata-strip; that fold-in was the silent-colour-shift bug.
|
|
31
|
+
# THE PER-OPTION BLOCKS ARE AUTHORITATIVE; this header is orientation only.
|
|
32
|
+
# (auto_orient/color_profile read "wave-2, planned" here until 2026-07-21,
|
|
33
|
+
# long after both went stable โ a stale comment nearly got relayed to a
|
|
34
|
+
# consumer as fact. A comment cannot fail a test; do not cite one as shape.)
|
|
31
35
|
#
|
|
32
36
|
# output_format (replicated identically per group): the LIVE concrete
|
|
33
37
|
# targets are `original` (no-op, default) and `webp` (the one proven
|
|
@@ -90,6 +94,7 @@ operation:
|
|
|
90
94
|
# Resize-inside-Output shares the convert resize engine's 16MP output-area
|
|
91
95
|
# wall โ the per-axis 16384 cap can't express it (FORMAT.md ยงmax_output_pixels).
|
|
92
96
|
max_output_pixels: 16000000
|
|
97
|
+
max_input_size_bytes: 524288000 # 500 MiB compress input ceiling (uKsFzORi)
|
|
93
98
|
options:
|
|
94
99
|
quality:
|
|
95
100
|
type: integer
|
|
@@ -261,7 +266,19 @@ operation:
|
|
|
261
266
|
mimes:
|
|
262
267
|
- image/png
|
|
263
268
|
max_output_pixels: 16000000
|
|
269
|
+
max_input_size_bytes: 524288000 # 500 MiB compress input ceiling (uKsFzORi)
|
|
264
270
|
options:
|
|
271
|
+
# PROVENANCE (author-side, NOT user-facing โ kept out of the description per
|
|
272
|
+
# 7KkNSvdv / FE BhVwdlhQ: no implementation detail or licence copy in user text):
|
|
273
|
+
# PNG lossy quantization is `imagequant` (GPL-3.0-or-later OR commercial);
|
|
274
|
+
# lossless is `oxipng` (MIT โ no licence claim). imagequant is licence-cleared
|
|
275
|
+
# for our server-side SaaS backend ONLY โ NOT a blanket clearance: static
|
|
276
|
+
# linking makes the binary a combined GPLv3 work, so any future distribution
|
|
277
|
+
# (desktop / on-prem) re-opens it. Also covers GIF quantisation (5mwmSb3t).
|
|
278
|
+
# Ruling: the user (antoniocs), 2026-06-26, quoted verbatim in *lambdas*
|
|
279
|
+
# ADR-0012 (compression_lambdas/docs/explanation/decisions/
|
|
280
|
+
# 0012-lossy-png-quantization-licensing.md โ the LAMBDAS ADR, distinct from
|
|
281
|
+
# contracts' own ADR-0012 band-ceiling). Was cited as card `kkajDFXD`.
|
|
265
282
|
quality:
|
|
266
283
|
type: integer
|
|
267
284
|
min: 1
|
|
@@ -270,12 +287,12 @@ operation:
|
|
|
270
287
|
honored_on: [same_format]
|
|
271
288
|
description: >-
|
|
272
289
|
Compression quality (1-100). For PNG this is the SINGLE lossy/lossless
|
|
273
|
-
control: `quality` < 100 applies lossy palette quantization (
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
290
|
+
control: `quality` < 100 applies lossy palette quantization (the value is
|
|
291
|
+
the quantization level), while `quality: 100` keeps the PNG lossless
|
|
292
|
+
(lossless optimisation only โ tune the lossless effort via
|
|
293
|
+
`optimization_level`). 1 = smallest file, 100 = best quality / lossless.
|
|
294
|
+
There is no separate lossy/lossless toggle for PNG โ it is purely
|
|
295
|
+
quality-driven.
|
|
279
296
|
metadata:
|
|
280
297
|
type: enum
|
|
281
298
|
values: [strip, keep, all]
|
|
@@ -385,6 +402,7 @@ operation:
|
|
|
385
402
|
mimes:
|
|
386
403
|
- image/avif
|
|
387
404
|
max_output_pixels: 16000000
|
|
405
|
+
max_input_size_bytes: 20971520 # 20 MiB compress input ceiling (uKsFzORi; AVIF decode OOM guard, worker AVIF_MAX_MB)
|
|
388
406
|
options:
|
|
389
407
|
quality:
|
|
390
408
|
type: integer
|
|
@@ -544,6 +562,7 @@ operation:
|
|
|
544
562
|
mimes:
|
|
545
563
|
- image/webp
|
|
546
564
|
max_output_pixels: 16000000
|
|
565
|
+
max_input_size_bytes: 524288000 # 500 MiB compress input ceiling (uKsFzORi)
|
|
547
566
|
options:
|
|
548
567
|
quality:
|
|
549
568
|
type: integer
|
|
@@ -701,10 +720,68 @@ operation:
|
|
|
701
720
|
# optimiser `lossless` knob does not apply. SVG compression is SVGO; only
|
|
702
721
|
# quality/metadata/output_format carry. NO Resize / lossless / area cap here.
|
|
703
722
|
image_svg:
|
|
723
|
+
# SVG -> SVG optimisation via SVGO is STABLE and working. Restored
|
|
724
|
+
# 2026-07-21 (G9O6yrQD); Form-A attestation is compression-image.yaml
|
|
725
|
+
# `compress.image` accepts (lambdas #325).
|
|
726
|
+
#
|
|
727
|
+
# WHY THIS BLOCK IS WRITTEN DEFENSIVELY: on 2026-07-17 this group was
|
|
728
|
+
# downgraded to `planned` on the strength of a single stale COMMENT in the
|
|
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
|
|
731
|
+
# compress_svg shells to the SVGO binary via ToolRunner, and the crate
|
|
732
|
+
# Dockerfile builds and ships it. Staging had proved it the day before:
|
|
733
|
+
# job 019f6aa3-d275-7b10-a5cf-58acc705c7e2, 43777 -> 33061 bytes (24.5%),
|
|
734
|
+
# "Operation completed successfully".
|
|
735
|
+
# Because `original` is ALSO this option's default, and the API
|
|
736
|
+
# materializes defaults before the availability gate (api 4a7a2628,
|
|
737
|
+
# 2026-07-17 20:16), the downgrade 422'd SVG compress at create for EVERY
|
|
738
|
+
# website user โ the workbench never sends output_format, so the bare path
|
|
739
|
+
# is the only path a customer has. A working, deployed, customer-facing
|
|
740
|
+
# capability was dark for four days (e2e J3sbGMSb).
|
|
741
|
+
# The rule that came out of it (hub standing policy, 2026-07-21): a
|
|
742
|
+
# downgrade MUST cite worker CODE or a STAGING LOG positively showing the
|
|
743
|
+
# capability does NOT work. An absent manifest entry is NOT evidence of an
|
|
744
|
+
# absent capability, and where no evidence exists either way the answer is
|
|
745
|
+
# "we do not know", which BLOCKS the downgrade rather than licensing it.
|
|
746
|
+
#
|
|
747
|
+
# THE GROUP STAYS STABLE. A group-level `planned` would ALSO gate off
|
|
748
|
+
# `output_format: webp`, which works today via the convert facade โ the
|
|
749
|
+
# over-narrow the user's standing rule forbids ("exclude only on EVIDENCE
|
|
750
|
+
# OF BREAKAGE", 2026-07-07).
|
|
751
|
+
#
|
|
752
|
+
# NOT "LOSSLESS" โ do not describe this route as lossless anywhere
|
|
753
|
+
# user-facing. `tools/svgo/svgo.ts` enables `preset-default`, which
|
|
754
|
+
# includes `convertPathData`; that rounds path coordinates (default
|
|
755
|
+
# floatPrecision 3), so geometry changes within a rounding tolerance.
|
|
756
|
+
# "Visually preserving" is the honest wording. (The worker does set
|
|
757
|
+
# lossless=true internally at image_compressor.rs:1778, but it lands in
|
|
758
|
+
# CompressionResult.settings which CompressionProcessor discards โ its own
|
|
759
|
+
# NOTE at :1782 โ so it reaches no consumer, and nothing should start
|
|
760
|
+
# claiming it.)
|
|
704
761
|
mimes:
|
|
705
762
|
- image/svg+xml
|
|
763
|
+
# KNOWN OVER-ADVERTISEMENT, DELIBERATELY LEFT AS-IS โ do NOT lower this
|
|
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/*
|
|
766
|
+
# default over-states what the SVG route can actually serve: a valid input
|
|
767
|
+
# inside the advertised limit can fail on the worker cap. Codex flagged it
|
|
768
|
+
# on the flip PR and it is a real gap.
|
|
769
|
+
#
|
|
770
|
+
# It stays 500 MiB here because this value is an API-ENFORCED constant, not
|
|
771
|
+
# documentation โ tests/test_group_input_caps.py pins these to the api
|
|
772
|
+
# enforcer, so changing the contract alone would create contract-vs-enforcer
|
|
773
|
+
# DRIFT rather than fix anything. Lowering it needs an api co-land, and a
|
|
774
|
+
# figure lambdas has actually measured (the only SVG datapoint today is a
|
|
775
|
+
# 43 KB fixture). Ticket filed; lambdas already flagged a per-format cap as
|
|
776
|
+
# their follow-up.
|
|
777
|
+
#
|
|
778
|
+
# PRE-EXISTING, not introduced by the 2026-07-21 restore: the same 500 MiB
|
|
779
|
+
# applied while this route was stable before 2026-07-17. Recorded rather
|
|
780
|
+
# than silently carried.
|
|
781
|
+
max_input_size_bytes: 524288000 # 500 MiB compress input ceiling (uKsFzORi; image/* default)
|
|
706
782
|
options:
|
|
707
|
-
# No `quality`: compress SVG is SVG->SVG via SVGO (
|
|
783
|
+
# No `quality`: compress SVG is SVG->SVG via SVGO (VISUALLY PRESERVING
|
|
784
|
+
# vector optimise โ not lossless; see the group note above on convertPathData);
|
|
708
785
|
# `quality` is never passed to the worker, so a quality slider here is a no-op
|
|
709
786
|
# (removed โ lambdas worker-code investigation, the SVG-quality ticket). Raster
|
|
710
787
|
# output (the webp facade route) goes through convert, which carries its own
|
|
@@ -729,8 +806,26 @@ operation:
|
|
|
729
806
|
auto: { availability: planned }
|
|
730
807
|
smallest: { availability: planned }
|
|
731
808
|
description: >-
|
|
732
|
-
Output format. original = keep input format
|
|
733
|
-
|
|
809
|
+
Output format. `original` = keep input format โ SVG -> SVG optimisation
|
|
810
|
+
via SVGO. **STABLE and working** (restored 2026-07-21, G9O6yrQD;
|
|
811
|
+
worker-proven on staging job 019f6aa3-d275-7b10-a5cf-58acc705c7e2 at
|
|
812
|
+
24.5% reduction, Form-A attested in lambdas #325). It is also the schema
|
|
813
|
+
`default`, so a bare `compress` on an SVG takes this route.
|
|
814
|
+
Optimisation is **visually preserving, NOT lossless** โ SVGO's
|
|
815
|
+
`preset-default` includes `convertPathData`, which rounds path
|
|
816
|
+
coordinates within a tolerance.
|
|
817
|
+
NOTE for anyone re-reading history here: this value was `planned` from
|
|
818
|
+
2026-07-17 to 2026-07-21 on a false premise, and because the API
|
|
819
|
+
materializes an omitted default before the availability gate (api
|
|
820
|
+
4a7a2628), that tag 422'd EVERY website SVG compress at create โ the
|
|
821
|
+
workbench does not send `output_format`, so the defaulted path is the
|
|
822
|
+
only path a customer has. A `planned` DEFAULT is therefore never a
|
|
823
|
+
partial restriction; it is a total one. Weigh that before tagging any
|
|
824
|
+
future default `planned`.
|
|
825
|
+
`webp` = recompress to WebP: **STABLE and working today** โ this facade
|
|
826
|
+
route canonicalizes to the `convert` operation (`convert.image_svg` carries
|
|
827
|
+
its own quality), which is why this group is NOT gated at group level.
|
|
828
|
+
Concrete format changes are handled by the convert operation. `auto` /
|
|
734
829
|
`smallest` are PLANNED auto-format directives (the server picks the
|
|
735
830
|
best/smallest candidate format, reported via the result `mime_type`) โ
|
|
736
831
|
selection strategies, not concrete targets, planned until supported. See
|
|
@@ -743,6 +838,7 @@ operation:
|
|
|
743
838
|
- image/gif
|
|
744
839
|
- image/tiff
|
|
745
840
|
max_output_pixels: 16000000
|
|
841
|
+
max_input_size_bytes: 524288000 # 500 MiB compress input ceiling (uKsFzORi)
|
|
746
842
|
options:
|
|
747
843
|
quality:
|
|
748
844
|
type: integer
|
|
@@ -1136,7 +1232,6 @@ operation:
|
|
|
1136
1232
|
type: float
|
|
1137
1233
|
min: 0.25
|
|
1138
1234
|
max: 4.0
|
|
1139
|
-
default: 1.0
|
|
1140
1235
|
availability: planned
|
|
1141
1236
|
# SHORT-FORM only, mirroring trim: the long-form (Fargate) path does not
|
|
1142
1237
|
# apply speed, so it is rejected at create via the
|
|
@@ -1147,7 +1242,7 @@ operation:
|
|
|
1147
1242
|
# lambdas โ a pre-flip rename is cheap while planned. Audio pitch is
|
|
1148
1243
|
# PRESERVED via ffmpeg `atempo` (tempo-shift, NOT `asetrate` resample).
|
|
1149
1244
|
description: >
|
|
1150
|
-
Playback speed multiplier. 1.0 = unchanged
|
|
1245
|
+
Playback speed multiplier. 1.0 = unchanged, 2.0 = twice as
|
|
1151
1246
|
fast (half the output duration), 0.5 = half speed (double the
|
|
1152
1247
|
duration); range 0.25โ4.0. Audio PITCH IS PRESERVED (a tempo-shift,
|
|
1153
1248
|
not a resample โ ffmpeg `atempo` semantics), so a 2.0x clip sounds
|
|
@@ -1173,6 +1268,7 @@ operation:
|
|
|
1173
1268
|
- application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
|
1174
1269
|
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
|
1175
1270
|
- application/vnd.openxmlformats-officedocument.presentationml.presentation
|
|
1271
|
+
max_input_size_bytes: 104857600 # 100 MiB compress input ceiling (uKsFzORi; zip-based worker MAX_INPUT_SIZE)
|
|
1176
1272
|
# See the document_pdf honesty note: the worker reads ONLY `quality` today;
|
|
1177
1273
|
# the per-format options are `planned` (advertised-ahead, FE-hidden).
|
|
1178
1274
|
options:
|
|
@@ -1189,17 +1285,14 @@ operation:
|
|
|
1189
1285
|
# if a distinct image-vs-document quality split is genuinely wanted (small wiring).
|
|
1190
1286
|
strip_macros:
|
|
1191
1287
|
type: boolean
|
|
1192
|
-
default: true
|
|
1193
1288
|
availability: planned
|
|
1194
1289
|
description: "Remove VBA macros and ActiveX controls. `planned` โ not yet supported."
|
|
1195
1290
|
strip_hidden_data:
|
|
1196
1291
|
type: boolean
|
|
1197
|
-
default: true
|
|
1198
1292
|
availability: planned
|
|
1199
1293
|
description: "Remove revisions, comments, personal info, hidden rows/columns, and speaker notes. `planned` โ not yet supported."
|
|
1200
1294
|
strip_unused_fonts:
|
|
1201
1295
|
type: boolean
|
|
1202
|
-
default: false
|
|
1203
1296
|
availability: planned
|
|
1204
1297
|
description: "Remove embedded fonts not referenced in the document. Risk: may affect rendering on systems without the font installed. `planned` โ not yet supported."
|
|
1205
1298
|
|
|
@@ -1208,6 +1301,7 @@ operation:
|
|
|
1208
1301
|
- application/vnd.oasis.opendocument.text
|
|
1209
1302
|
- application/vnd.oasis.opendocument.spreadsheet
|
|
1210
1303
|
- application/vnd.oasis.opendocument.presentation
|
|
1304
|
+
max_input_size_bytes: 104857600 # 100 MiB compress input ceiling (uKsFzORi; zip-based worker MAX_INPUT_SIZE)
|
|
1211
1305
|
# See the document_pdf honesty note: worker reads ONLY `quality`; the rest `planned`.
|
|
1212
1306
|
options:
|
|
1213
1307
|
quality:
|
|
@@ -1223,18 +1317,17 @@ operation:
|
|
|
1223
1317
|
# if a distinct image-vs-document quality split is genuinely wanted (small wiring).
|
|
1224
1318
|
strip_metadata:
|
|
1225
1319
|
type: boolean
|
|
1226
|
-
default: true
|
|
1227
1320
|
availability: planned
|
|
1228
1321
|
description: "Remove document metadata (author, revision history, comments). `planned` โ not yet supported."
|
|
1229
1322
|
strip_unused_styles:
|
|
1230
1323
|
type: boolean
|
|
1231
|
-
default: false
|
|
1232
1324
|
availability: planned
|
|
1233
1325
|
description: "Remove style definitions not referenced in document content. `planned` โ not yet supported."
|
|
1234
1326
|
|
|
1235
1327
|
document_epub:
|
|
1236
1328
|
mimes:
|
|
1237
1329
|
- application/epub+zip
|
|
1330
|
+
max_input_size_bytes: 104857600 # 100 MiB compress input ceiling (uKsFzORi; zip-based worker MAX_INPUT_SIZE)
|
|
1238
1331
|
# See the document_pdf honesty note: worker reads ONLY `quality`; the rest `planned`.
|
|
1239
1332
|
options:
|
|
1240
1333
|
quality:
|
|
@@ -1250,11 +1343,9 @@ operation:
|
|
|
1250
1343
|
# if a distinct image-vs-document quality split is genuinely wanted (small wiring).
|
|
1251
1344
|
font_subsetting:
|
|
1252
1345
|
type: boolean
|
|
1253
|
-
default: true
|
|
1254
1346
|
availability: planned
|
|
1255
1347
|
description: "Subset embedded fonts to only include glyphs used in the document. Significant size reduction for books with large font files. `planned` โ not yet supported."
|
|
1256
1348
|
strip_unused_css:
|
|
1257
1349
|
type: boolean
|
|
1258
|
-
default: false
|
|
1259
1350
|
availability: planned
|
|
1260
1351
|
description: "Remove CSS rules not referenced by any content. Risk: may affect rendering in some readers. `planned` โ not yet supported."
|
|
@@ -83,13 +83,14 @@ operation:
|
|
|
83
83
|
metadata:
|
|
84
84
|
type: enum
|
|
85
85
|
values: [strip, keep]
|
|
86
|
-
default: strip
|
|
87
86
|
availability: planned
|
|
88
87
|
honored_on: [format_change]
|
|
89
88
|
description: >-
|
|
90
89
|
Metadata handling across a format change. `strip` = remove all
|
|
91
|
-
EXIF/IPTC/XMP
|
|
92
|
-
yet preserved across a format change
|
|
90
|
+
EXIF/IPTC/XMP, `keep` = preserve. `planned` โ metadata is not
|
|
91
|
+
yet preserved across a format change, so this option carries **no
|
|
92
|
+
default**: omit it and the worker's own behaviour applies. The
|
|
93
|
+
honoured target subset may
|
|
93
94
|
narrow (avif/heic targets are re-encoded and cannot keep metadata).
|
|
94
95
|
width:
|
|
95
96
|
type: integer
|
|
@@ -463,7 +464,12 @@ operation:
|
|
|
463
464
|
default: "1"
|
|
464
465
|
description: |
|
|
465
466
|
Page selection (e.g. '1-5,8'). Each resolved page produces a
|
|
466
|
-
separate output file
|
|
467
|
+
separate output file whose `page_index` is the **literal source
|
|
468
|
+
page number** โ a sparse selection stays sparse: `pages: '1-5,8'`
|
|
469
|
+
yields outputs with `page_index` `1,2,3,4,5,8` (NOT renumbered
|
|
470
|
+
`1..6`), and `pages: '5-7'` yields `5,6,7`. The download `filename`
|
|
471
|
+
suffix is a separate 0-based array position and does NOT track the
|
|
472
|
+
page number. **Maximum 200 resolved entries per
|
|
467
473
|
request** โ aligns with the `OperationResult.outputs[]`
|
|
468
474
|
`maxItems: 200` cap. Expressions resolving to more than 200
|
|
469
475
|
entries (e.g. `'1-201'`, `'1-100,102-205'`) are out of
|
|
@@ -124,9 +124,26 @@ operation:
|
|
|
124
124
|
type: integer
|
|
125
125
|
min: 1
|
|
126
126
|
max: 60
|
|
127
|
-
|
|
127
|
+
# `availability: planned` AND the `default:` REMOVED โ the two halves
|
|
128
|
+
# are one fix, not two. The V1 merge worker hardcodes 30 fps
|
|
129
|
+
# (`filter_graph.rs:3` `TARGET_FPS = 30`) and rejects the `fps` key on
|
|
130
|
+
# PRESENCE, so it rejected requests asking for the frame rate it was
|
|
131
|
+
# already about to produce. A schema-driven client materialises the
|
|
132
|
+
# defaults whose `depends_on` is satisfied, so `default: 30` was itself
|
|
133
|
+
# what put the rejected key on the wire โ every UI slideshow merge sent
|
|
134
|
+
# `fps: 30` and died at run time without the caller touching anything.
|
|
135
|
+
# Marking it `planned` while KEEPING the default would only move that
|
|
136
|
+
# death earlier (422 at create for every slideshow, per api's
|
|
137
|
+
# materialise-to-evaluate gate #551). Dropping the default stops the key
|
|
138
|
+
# being sent at all, so slideshows produce 30 fps exactly as before, and
|
|
139
|
+
# only a caller who explicitly asks for a rate gets an honest 422.
|
|
140
|
+
# Worker-side follow-up to actually honour it: lambdas EJOfg8c9.
|
|
141
|
+
availability: planned
|
|
128
142
|
depends_on: { output_type: video }
|
|
129
|
-
description:
|
|
143
|
+
description: >-
|
|
144
|
+
Output frame rate. **Not yet configurable** โ slideshow output is
|
|
145
|
+
currently produced at a fixed 30 fps; setting this explicitly is
|
|
146
|
+
rejected (`feature_not_available`). Omit it to get 30 fps.
|
|
130
147
|
video_format:
|
|
131
148
|
type: enum
|
|
132
149
|
values: [mp4, webm]
|
|
@@ -249,7 +266,26 @@ operation:
|
|
|
249
266
|
normalize_audio:
|
|
250
267
|
type: boolean
|
|
251
268
|
default: true
|
|
252
|
-
|
|
269
|
+
# ๐ด UNAVAILABLE ON LONG-FORM โ and this one needed a RULING, not a
|
|
270
|
+
# mechanical marking. Long-form FORCES loudnorm off, so:
|
|
271
|
+
# accepting the default `true` is a SILENT NO-OP โ the caller asked
|
|
272
|
+
# for normalisation and we quietly skip it;
|
|
273
|
+
# refusing it kills EVERY defaulted long-form merge.
|
|
274
|
+
# Neither is acceptable, which is precisely the situation this overlay
|
|
275
|
+
# exists for: the defaulted value is DROPPED AND REPORTED rather than
|
|
276
|
+
# silently ignored or fatal.
|
|
277
|
+
#
|
|
278
|
+
# POSITION 4 in the worker's first-hit `LONG_FORM_REJECTED` array, and
|
|
279
|
+
# it has NO `depends_on` at all โ so it materialises on every merge
|
|
280
|
+
# unconditionally. Fixing `encoding_mode` alone would move the failure
|
|
281
|
+
# from position 2 to position 4 with a different message and an
|
|
282
|
+
# identical outcome for the customer.
|
|
283
|
+
per_class_availability:
|
|
284
|
+
long_form_re_encode: { availability: planned }
|
|
285
|
+
description: >-
|
|
286
|
+
Normalize audio levels across all clips. NOT available on the
|
|
287
|
+
long-form path, which forces loudness normalisation off โ a defaulted
|
|
288
|
+
value is dropped and reported there rather than silently ignored.
|
|
253
289
|
|
|
254
290
|
re_encode_mode:
|
|
255
291
|
type: enum
|
|
@@ -308,8 +344,59 @@ operation:
|
|
|
308
344
|
values: [crf, target_size]
|
|
309
345
|
default: crf
|
|
310
346
|
depends_on: { re_encode_mode: [auto, always] }
|
|
347
|
+
# ๐ด THE WHOLE OPTION IS UNAVAILABLE ON LONG-FORM, NOT JUST ONE VALUE.
|
|
348
|
+
# The long-form Fargate worker refuses `encoding_mode` BY PRESENCE โ it
|
|
349
|
+
# does not read the value at all (`LONG_FORM_REJECTED`, position 2).
|
|
350
|
+
#
|
|
351
|
+
# This was previously declared only on the `target_size` VALUE, which
|
|
352
|
+
# said `crf` was honoured on long-form. It is not. So the API's
|
|
353
|
+
# drop-vs-422 rule looked at a defaulted `encoding_mode: crf`, found it
|
|
354
|
+
# available, and passed it to a worker that rejects the key โ and every
|
|
355
|
+
# merge left on automatic settings failed at the worker after a 201.
|
|
356
|
+
# THE RULE WAS CORRECT; ITS INPUT WAS A LIE (user report 2026-07-29,
|
|
357
|
+
# workflow 019fae34-d903-7bfe-9ab4-5e5f0b7a9bc4).
|
|
358
|
+
#
|
|
359
|
+
# `depends_on: re_encode_mode โ [auto, always]` is SATISFIED by default
|
|
360
|
+
# (`re_encode_mode` defaults to `auto`), so this materialises on every
|
|
361
|
+
# merge. Nobody chose it.
|
|
362
|
+
#
|
|
363
|
+
# Effect once api reads this: a DEFAULTED value is dropped and reported
|
|
364
|
+
# on `dropped_options[]`, and the merge runs on the path's native
|
|
365
|
+
# single-pass CRF. An EXPLICIT value still 422s, correctly โ the caller
|
|
366
|
+
# asked for something this path cannot do.
|
|
367
|
+
per_class_availability:
|
|
368
|
+
long_form_re_encode: { availability: planned }
|
|
311
369
|
per_value_depends_on:
|
|
312
370
|
target_size: { codec: [h264] }
|
|
371
|
+
per_value_availability:
|
|
372
|
+
# `target_size` is honoured on the SHORT-FORM path (the worker
|
|
373
|
+
# parses+validates it and selects two-pass FFmpeg orchestration),
|
|
374
|
+
# but the long-form Fargate path is single-pass-CRF BY CONSTRUCTION
|
|
375
|
+
# in Phase 2 โ two-pass target-size lands in Phase 3. So this is a
|
|
376
|
+
# per-EXECUTION-PATH limitation, not an operation-wide one.
|
|
377
|
+
#
|
|
378
|
+
# Marking the whole option `planned` would withdraw a real, working
|
|
379
|
+
# short-form capability from every customer in order to describe a
|
|
380
|
+
# long-form gap โ the SVG withdrawal mirrored. `per_class_availability`
|
|
381
|
+
# is the instrument that lets us say the true thing instead.
|
|
382
|
+
#
|
|
383
|
+
# LIVE CASE, not hypothetical: both SDKs SYNTHESIZE
|
|
384
|
+
# `encoding_mode: target_size` whenever the caller sets an ergonomic
|
|
385
|
+
# `targetSize` (merge.ts / MergeBuilder.php), so a caller who never
|
|
386
|
+
# typed this key reaches Fargate with it set and the job dies mid-
|
|
387
|
+
# execution. With this overlay the API can refuse at CREATE with an
|
|
388
|
+
# honest `feature_not_available` naming target-size-on-long-form,
|
|
389
|
+
# while the identical call on short-form inputs keeps working
|
|
390
|
+
# unchanged. sdks `zJN6XIi5`.
|
|
391
|
+
target_size:
|
|
392
|
+
# Blanket truth stated explicitly alongside the overlay: `stable`
|
|
393
|
+
# is TRUE โ short-form honours target_size end to end. The overlay
|
|
394
|
+
# restricts one class on top, and most-cautious inheritance yields
|
|
395
|
+
# the intended behaviour. Required by PerValueAvailabilityEntry so
|
|
396
|
+
# the absence of a key never has to carry meaning.
|
|
397
|
+
availability: stable
|
|
398
|
+
per_class_availability:
|
|
399
|
+
long_form_re_encode: { availability: planned }
|
|
313
400
|
# target_size is currently codec=h264 only โ h265 / vp9 / av1
|
|
314
401
|
# each require a different encoder invocation and are tracked
|
|
315
402
|
# as separate per-codec Lambda follow-ups. The
|
|
@@ -7,13 +7,36 @@ operation:
|
|
|
7
7
|
# ticket w3EwzHYd. Worker = the shared convert image-encode stack + FitMode
|
|
8
8
|
# (lambdas-confirmed reuse: image_convert.rs encode + domain/thumbnailer.rs).
|
|
9
9
|
#
|
|
10
|
-
# availability: planned โ the
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
10
|
+
# availability: planned โ the blocker is that the worker has NEVER BEEN
|
|
11
|
+
# EXERCISED, not that it does not exist. Flip gate: lambdas px2OKk42 (a
|
|
12
|
+
# direct-invoke staging proof asserting TRANSFORMATION โ each output's decoded
|
|
13
|
+
# pixel dimensions match its requested target, and two differently-sized
|
|
14
|
+
# targets differ from each other; "N outputs exist" passes for any re-encode).
|
|
15
|
+
# The flip to beta is a SEPARATE lockstep cut (the two-gate rule; never flip
|
|
16
|
+
# beta ahead of the publisher).
|
|
17
|
+
#
|
|
18
|
+
# This comment previously justified `planned` by asserting that the worker
|
|
19
|
+
# (08q0ySAc) and its SNS subscription (terraform MNuDYJaY) did not exist yet.
|
|
20
|
+
# Both halves were measured FALSE on 2026-07-28: the Lambda is deployed
|
|
21
|
+
# (`gisl-stg-euw1-operation-render-variants`, image git-fe33902) and its event
|
|
22
|
+
# source mapping has been `Enabled` on the queue since 2026-06-09. What is
|
|
23
|
+
# true is that it has never run โ zero log streams, against a positive control
|
|
24
|
+
# showing non-zero for merge / compression-image / video-text-watermark in the
|
|
25
|
+
# same query. DEPLOYED and WIRED are not PROVEN, so this stays `planned`.
|
|
26
|
+
#
|
|
27
|
+
# Deliberately restated as the GATE being waited on rather than a snapshot of
|
|
28
|
+
# another repo's infrastructure: a gate cannot rot, a restated snapshot does โ
|
|
29
|
+
# this one had gone false underneath us, which is the SVG failure shape. Do
|
|
30
|
+
# not reintroduce cross-repo state claims here; cite the owning repo's ticket.
|
|
31
|
+
#
|
|
32
|
+
# No caller impact at any point: `render_variants` is a capability-only
|
|
33
|
+
# artifact op and is deliberately NOT an API `OperationType` enum case, so it
|
|
34
|
+
# is unreachable from the API regardless of this value (API activation is
|
|
35
|
+
# uDW3k2Gw, Backlog P2 โ the worker proof does not depend on it).
|
|
36
|
+
#
|
|
37
|
+
# Source MIMEs are jpeg/png/webp only โ AVIF is encode-only in the worker
|
|
38
|
+
# stack (decode unsupported), so it is a valid `output_format` target but NOT
|
|
39
|
+
# a source input.
|
|
17
40
|
description: "Generate multiple resized / re-encoded image variants from a single source image in one operation (image fan-out)."
|
|
18
41
|
availability: planned
|
|
19
42
|
input_model: single
|
|
@@ -44,13 +44,23 @@ operation:
|
|
|
44
44
|
(cross-ref [`WgCqnMRa`](https://trello.com/c/WgCqnMRa))
|
|
45
45
|
- GIF: resolved frame count after expansion `<= 200`
|
|
46
46
|
|
|
47
|
-
**Output naming**:
|
|
48
|
-
`output-200
|
|
47
|
+
**Output naming (S3 object key)**: the object-key leaf is 3-digit
|
|
48
|
+
zero-padded โ `output-001` .. `output-200` (ADR-0014 ยงD9). This binds the
|
|
49
|
+
**S3 object key**, NOT the user-facing download filename โ the API
|
|
50
|
+
synthesises that separately (see `OperationDownload.filename` in
|
|
51
|
+
`openapi/api.yaml`). Only the **3-digit zero-padding** follows the convert
|
|
52
|
+
PDFโN precedent โ convert keys are `page-NNN.ext`, split keys are
|
|
53
|
+
`output-NNN.ext`.
|
|
49
54
|
|
|
50
55
|
**Output envelope binding**:
|
|
51
56
|
- `image_gif`: `PositionIndexed` (frame stream-position 0-based
|
|
52
57
|
ordinal)
|
|
53
|
-
- `document_pdf`: `PageIndexed` (1-based
|
|
58
|
+
- `document_pdf`: `PageIndexed` (1-based literal source page number).
|
|
59
|
+
**`mode: page_range` only** โ each output is one page, so `page_index` is
|
|
60
|
+
that page. For **`mode: page_groups`** an output spans multiple source
|
|
61
|
+
pages, so a single `page_index` cannot name them all; that grouped-output
|
|
62
|
+
semantics is NOT specified by this correction and is deferred (do not
|
|
63
|
+
assume it is the group's first page โ that is unverified).
|
|
54
64
|
- `audio`: `PositionIndexed` (cut stream-position ordinal)
|
|
55
65
|
- `video`: `PositionIndexed` (cut stream-position ordinal)
|
|
56
66
|
|