UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 2.95 kB
import{copy as e}from"../../../libs/i18n/copy.mjs";import t from"../../../libs/repositories/ai-generations.mjs";import n from"../checks/check-feature-enabled.mjs";import r from"../../../libs/lucid-remote/services/get-cms-ai-request.mjs";import{getCmsAiGenerateFailedMessage as i,isCmsAiGenerateAcceptedData as a,isCmsAiGenerateCompletedData as o,isCmsAiGenerateFailedData as s}from"../../../libs/lucid-remote/utils.mjs";import c from"../../options/get-license-key.mjs";import l from"../storage/store-failed-generation.mjs";import u from"../storage/complete-stored-generation.mjs";import d from"zod";const f=d.object({id:d.string(),url:d.string(),storageKey:d.string(),byteSize:d.number().int().nonnegative(),mimeType:d.string(),extension:d.string(),size:d.string(),quality:d.string(),outputFormat:d.string()}).strict(),p=async(d,p)=>{let m=await n(d,{feature:`imageGeneration`});if(m.error)return m;let h=await new t(d.db.client,d.config.db).selectSingleByRequestId({requestId:p.requestId,select:[`id`],tenantKey:d.request.tenantKey,validation:{enabled:!0,defaultError:{message:e(`server:core.ai.generation.request.not.found`),status:404}}});if(h.error)return h;let g=await c(d);if(g.error)return g;let _=await r(d,{licenseKey:g.data,requestId:p.requestId});if(_.error){if(_.error.key?.startsWith(`ai_provider_`)||_.error.key===`cms_ai_generation_request_not_found`||_.error.key===`cms_ai_generated_image_not_found`){let e=await l(d,{requestId:p.requestId,errorMessage:d.translate(_.error.message)??null});if(e.error)return e}return _}if(a(_.data.json.data))return{error:void 0,data:{mode:_.data.json.data.mode,requestId:_.data.json.data.requestId,feature:{key:`media.image.generate`,version:`v1`},status:_.data.json.data.status}};if(s(_.data.json.data)){let t=i(_.data.json.data,d.translate(`server:core.routes.ai.generate.error.message`)),n=await l(d,{requestId:_.data.json.data.requestId,errorMessage:t,usage:_.data.json.data.usage});return n.error?n:{error:{type:`basic`,status:502,message:e.literal(t)},data:void 0}}if(!o(_.data.json.data)){let t=await l(d,{requestId:p.requestId,errorMessage:d.translate(`server:core.routes.ai.generate.error.message`)});return t.error?t:{error:{type:`basic`,status:502,message:e(`server:core.routes.ai.generate.error.message`)},data:void 0}}let v=f.safeParse(_.data.json.data.output);if(!v.success){let t=await l(d,{requestId:_.data.json.data.requestId,errorMessage:d.translate(`server:core.routes.ai.generate.error.message`),usage:_.data.json.data.usage});return t.error?t:{error:{type:`basic`,status:502,message:e(`server:core.routes.ai.generate.error.message`)},data:void 0}}let y={mode:_.data.json.data.mode,status:_.data.json.data.status,requestId:_.data.json.data.requestId,feature:{key:`media.image.generate`,version:`v1`},output:v.data,usage:_.data.json.data.usage},b=await u(d,{response:y});return b.error?b:{error:void 0,data:y}};export{p as default}; //# sourceMappingURL=media-image-completion.mjs.map