@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 17.2 kB
JavaScript
import{queryFormatted as e,queryString as t}from"./helpers/querystring.mjs";import n from"zod";const r=n.object({localeCode:n.string().meta({description:`Locale code`,example:`en`}).nullable(),value:n.string().meta({description:`Translated value`}).nullable()}),i=n.object({x:n.number().min(0).max(1).meta({description:`Horizontal focal point, normalized from 0 to 1`,example:.5}),y:n.number().min(0).max(1).meta({description:`Vertical focal point, normalized from 0 to 1`,example:.5})}),a=n.enum([`human`,`ai_generated`,`ai_modified`]),o=n.object({mimeType:n.string().meta({description:`MIME type`,example:`image/jpeg`}),extension:n.string().meta({description:`File extension`,example:`jpeg`}),fileSize:n.number().meta({description:`File size in bytes`,example:100})}),s=o.extend({width:n.number().nullable().meta({description:`Image width`,example:100}),height:n.number().nullable().meta({description:`Image height`,example:100}),focalPoint:i.nullable().meta({description:`Image focal point for presentation cropping`}),blurHash:n.string().nullable().meta({description:`BlurHash for image previews`,example:`AQABAAAABAAAAgAA...`}),averageColor:n.string().nullable().meta({description:`Average color of the image`,example:`rgba(255, 255, 255, 1)`}),base64:n.string().nullable().meta({description:`Tiny base64-encoded image placeholder`,example:`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoKAAcAAUAmJQBOgCH5AQAA`}),isDark:n.boolean().nullable().meta({description:`Whether the image is predominantly dark`,example:!0}),isLight:n.boolean().nullable().meta({description:`Whether the image is predominantly light`,example:!0})}).meta({description:`Image file metadata`}),c=n.object({x:n.number().min(0).max(1),y:n.number().min(0).max(1),width:n.number().positive().max(1),height:n.number().positive().max(1),rotation:n.number().min(-180).max(180),skewX:n.number().min(-45).max(45),skewY:n.number().min(-45).max(45)}),l=n.object({key:n.string(),url:n.string(),meta:s}),u=n.object({key:n.string().meta({description:`Storage key`,example:`public/123e4567e89b12d3a456426614174000`}),url:n.string().meta({description:`Public file URL`}),fileName:n.string().nullable().meta({description:`Original file name`,example:`placeholder-image.png`})}),d=u.extend({meta:o}),f=n.discriminatedUnion(`sourceType`,[u.extend({sourceType:n.literal(`original`),meta:s}),u.extend({sourceType:n.literal(`crop`),crop:c,meta:s,original:l})]),p=n.object({key:n.string().trim(),fileName:n.string().trim(),width:n.number().positive(),height:n.number().positive(),focalPoint:i.nullable().optional(),blurHash:n.string().trim().nullable().optional(),averageColor:n.string().trim().nullable().optional(),base64:n.string().trim().nullable().optional(),isDark:n.boolean().nullable().optional(),isLight:n.boolean().nullable().optional(),state:c.refine(e=>e.x+e.width<=1.000001,{message:`Crop width must remain within the source image.`}).refine(e=>e.y+e.height<=1.000001,{message:`Crop height must remain within the source image.`})}),m=n.object({partNumber:n.number().int().positive(),etag:n.string().trim(),size:n.number().nonnegative().optional()}),h=n.discriminatedUnion(`mode`,[n.object({mode:n.literal(`single`),key:n.string(),url:n.string(),headers:n.record(n.string(),n.string()).optional()}),n.object({mode:n.literal(`resumable`),key:n.string(),sessionId:n.string(),partSize:n.number(),expiresAt:n.string(),uploadedParts:n.array(m)})]),g=n.discriminatedUnion(`canResume`,[n.object({canResume:n.literal(!0),key:n.string(),sessionId:n.string(),partSize:n.number(),expiresAt:n.string(),uploadedParts:n.array(m)}),n.object({canResume:n.literal(!1),sessionId:n.string(),reason:n.enum([`adapter_not_resumable`,`adapter_changed`])})]),_=n.object({sessionId:n.string().trim().meta({description:`The upload session ID`,example:`1e2230b6-8b62-4f31-a2d4-f4723d58d74a`})}),v=n.object({id:n.number().meta({description:`Media ID`,example:2}),type:n.literal(`image`),origin:a.meta({description:`The provenance origin of the media item`,example:`human`}),title:n.array(r).meta({description:`Translated titles`}),alt:n.array(r).meta({description:`Translated alt texts`}),file:f}),y=n.object({id:n.number().meta({description:`Media ID`,example:2}),type:n.literal(`image`),origin:a.meta({description:`The provenance origin of the media item`,example:`human`}),alt:n.array(r).meta({description:`Translated alt texts`}),file:f}),b=n.number().meta({description:`Media ID`,example:1}),x={folderId:n.number().nullable().meta({description:`Media folder ID`,example:1}),origin:a.meta({description:`The provenance origin of the media item`,example:`human`}),title:n.array(r).meta({description:`Translated titles`})},S={public:n.boolean().meta({description:`Media visibility. Private media can only be accessed by authorized users and when shared`,example:!0}),isDeleted:n.boolean().nullable().meta({description:`Whether the media is deleted`,example:!0}),isDeletedAt:n.string().nullable().meta({description:`The date the media was deleted`,example:`2022-01-01T00:00:00Z`}),deletedBy:n.number().nullable().meta({description:`The user who deleted the media`,example:1}),createdAt:n.string().nullable().meta({description:`Creation timestamp`,example:`2022-01-01T00:00:00Z`}),updatedAt:n.string().nullable().meta({description:`Last update timestamp`,example:`2022-01-01T00:00:00Z`})},C=n.discriminatedUnion(`type`,[n.object({id:b,type:n.literal(`image`),...x,alt:n.array(r).meta({description:`Translated alt texts`}),file:f,...S}),n.object({id:b,type:n.literal(`video`),...x,description:n.array(r).meta({description:`Translated descriptions`}),file:d,poster:y.nullable().meta({description:`Poster image data`}),...S}),n.object({id:b,type:n.literal(`audio`),...x,description:n.array(r).meta({description:`Translated descriptions`}),file:d,...S}),n.object({id:b,type:n.literal(`document`),...x,summary:n.array(r).meta({description:`Translated summaries`}),file:d,...S}),n.object({id:b,type:n.literal(`archive`),...x,file:d,...S}),n.object({id:b,type:n.literal(`unknown`),...x,file:d,...S})]),w=n.object({"filter[title]":t.schema.filter(!1,{example:`Thumbnail`}),"filter[key]":t.schema.filter(!1,{example:`thumbnail-2022`}),"filter[mimeType]":t.schema.filter(!0,{example:`image/png,image/jpg`}),"filter[folderId]":t.schema.filter(!1,{example:`1`,nullable:!0}),"filter[type]":t.schema.filter(!0,{example:`document`}),"filter[extension]":t.schema.filter(!0,{example:`jpg,png`}),"filter[isDeleted]":t.schema.filter(!1,{example:`true`}),"filter[deletedBy]":t.schema.filter(!0,{example:`1`}),"filter[public]":t.schema.filter(!1,{example:`true`}),"filter[origin]":t.schema.filter(!0,{example:`human,ai_generated`}),"filter[fileSize]":t.schema.filter(!1,{example:`1048576`}),"filter[width]":t.schema.filter(!1,{example:`1920`}),"filter[height]":t.schema.filter(!1,{example:`1080`}),"filter[createdAt]":t.schema.filter(!1,{example:`2026-01-01T00:00:00Z`}),"filter[updatedAt]":t.schema.filter(!1,{example:`2026-01-01T00:00:00Z`}),sort:t.schema.sort(`createdAt,updatedAt,title,mimeType,extension`),page:t.schema.page,perPage:t.schema.perPage}).meta(t.meta),T=n.object({filter:n.object({title:e.schema.filters.single.optional(),key:e.schema.filters.single.optional(),mimeType:e.schema.filters.union.optional(),folderId:e.schema.filters.single.optional(),type:e.schema.filters.union.optional(),extension:e.schema.filters.union.optional(),isDeleted:e.schema.filters.single.optional(),deletedBy:e.schema.filters.union.optional(),public:e.schema.filters.single.optional(),origin:e.schema.filters.union.optional(),fileSize:e.schema.filters.single.optional(),width:e.schema.filters.single.optional(),height:e.schema.filters.single.optional(),createdAt:e.schema.filters.single.optional(),updatedAt:e.schema.filters.single.optional()}).optional(),filterOr:e.schema.filterOr,sort:n.array(n.object({key:n.enum([`createdAt`,`updatedAt`,`title`,`fileSize`,`width`,`height`,`mimeType`,`extension`,`deletedBy`,`isDeletedAt`]),direction:n.enum([`asc`,`desc`])})).optional(),page:e.schema.page,perPage:e.schema.perPage}),E={getMultiple:{query:{string:w,formatted:T},params:void 0,body:void 0,response:n.array(C)},getSingle:{body:void 0,query:{string:void 0,formatted:void 0},params:n.object({id:n.string().trim().meta({description:`The media ID`,example:1})}),response:C},deleteSingle:{body:void 0,query:{string:void 0,formatted:void 0},params:n.object({id:n.string().trim().meta({description:`The media ID`,example:1})}),response:void 0},deleteSinglePermanently:{body:void 0,query:{string:void 0,formatted:void 0},params:n.object({id:n.string().trim().meta({description:`The media ID`,example:1})}),response:void 0},deleteMultiplePermanently:{body:n.object({ids:n.array(n.number()).meta({description:`The media IDs`,example:[1,2,3]})}),query:{string:void 0,formatted:void 0},params:void 0,response:void 0},deleteBatch:{body:n.object({folderIds:n.array(n.number()).meta({description:`The media folder IDs`,example:[1,2,3]}),mediaIds:n.array(n.number()).meta({description:`The media IDs`,example:[1,2,3]}),recursiveMedia:n.boolean().meta({description:`Whether to delete all media in the folder`,default:!1,example:!0})}),query:{string:void 0,formatted:void 0},params:void 0,response:void 0},restoreMultiple:{body:n.object({ids:n.array(n.number()).meta({description:`The media IDs`,example:[1,2,3]})}),query:{string:void 0,formatted:void 0},params:void 0,response:void 0},moveFolder:{body:n.object({folderId:n.number().nullable().meta({description:`The media folder ID`,example:1})}),query:{string:void 0,formatted:void 0},params:n.object({id:n.string().trim().meta({description:`The media ID`,example:1})}),response:void 0},updateSingle:{body:n.object({crop:p.nullable().optional(),key:n.string().trim().meta({description:`The media key`,example:`public/123e4567e89b12d3a456426614174000`}).optional(),public:n.boolean().meta({description:`Whether the media is public`,example:!0}).optional(),origin:a.optional().meta({description:`The provenance origin of the media item`,example:`ai_generated`}),aiGenerationRequestId:n.string().trim().optional().meta({description:`The AI generation request ID to link to this media item`,example:`123e4567-e89b-12d3-a456-426614174000`}),folderId:n.number().nullable().meta({description:`The media folder ID`,example:1}).optional(),fileName:n.string().trim().meta({description:`The filename`,example:`funny-cats.jpg`}).optional(),title:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Title value`})})).optional(),alt:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Alt text value`})})).optional(),description:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Description value`})})).optional(),summary:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Summary value`})})).optional(),width:n.number().nullable().meta({description:`The image width`,example:100}).optional(),height:n.number().nullable().meta({description:`The image height`,example:100}).optional(),focalPoint:i.nullable().optional().meta({description:`The image focal point`}),blurHash:n.string().trim().nullable().meta({description:`The blur hash`,example:`AQABAAAABAAAAgAA...`}).optional(),averageColor:n.string().trim().nullable().meta({description:`The average color`,example:`rgba(255, 255, 255, 1)`}).optional(),base64:n.string().trim().nullable().meta({description:`Tiny base64-encoded image placeholder`,example:`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoKAAcAAUAmJQBOgCH5AQAA`}).optional(),isDark:n.boolean().nullable().meta({description:`Whether the image is dark`,example:!0}).optional(),isLight:n.boolean().nullable().meta({description:`Whether the image is light`,example:!0}).optional(),isDeleted:n.boolean().meta({description:`Whether the media is deleted`,example:!0}).optional(),posterId:n.number().nullable().meta({description:`The poster media ID`,example:1}).optional()}),query:{string:void 0,formatted:void 0},params:n.object({id:n.string().meta({description:`The media ID`,example:1})}),response:void 0},clearSingleProcessed:{body:void 0,query:{string:void 0,formatted:void 0},params:n.object({id:n.string().meta({description:`The media ID`,example:1})}),response:void 0},clearAllProcessed:{body:void 0,query:{string:void 0,formatted:void 0},params:void 0,response:void 0},createUploadSession:{body:n.object({fileName:n.string().trim().meta({description:`The file name`,example:`funny-cats.jpg`}),mimeType:n.string().trim().meta({description:`The media's mime type`,example:`image/jpeg`}),size:n.number().nonnegative().meta({description:`The file size in bytes`,example:10485760}),public:n.boolean().meta({description:`Whether the media is public`,example:!0}),temporary:n.boolean().optional().meta({description:`Whether the upload target should be temporary.`,example:!1})}),query:{string:void 0,formatted:void 0},params:void 0,response:h},getUploadSession:{body:void 0,query:{string:void 0,formatted:void 0},params:_,response:g},getUploadPartUrls:{body:n.object({partNumbers:n.array(n.number().int().positive()).min(1)}),query:{string:void 0,formatted:void 0},params:_,response:n.object({parts:n.array(n.object({partNumber:n.number().int().positive(),url:n.string(),headers:n.record(n.string(),n.string()).optional()}))})},completeUploadSession:{body:n.object({parts:n.array(m).min(1)}),query:{string:void 0,formatted:void 0},params:_,response:n.object({key:n.string()})},abortUploadSession:{body:void 0,query:{string:void 0,formatted:void 0},params:_,response:void 0},createSingle:{body:n.object({crop:p.optional(),key:n.string().trim().meta({description:`The media key`,example:`public/123e4567e89b12d3a456426614174000`}),folderId:n.number().nullable().meta({description:`The media folder ID`,example:1}).optional(),fileName:n.string().trim().meta({description:`The filename`,example:`funny-cats.jpg`}),origin:a.meta({description:`The provenance origin of the media item`,example:`human`}),aiGenerationRequestId:n.string().trim().optional().meta({description:`The AI generation request ID to link to this media item`,example:`123e4567-e89b-12d3-a456-426614174000`}),title:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Title value`})})).optional(),alt:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Alt text value`})})).optional(),description:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Description value`})})).optional(),summary:n.array(n.object({localeCode:n.string().trim().meta({description:`Locale code`,example:`en`}),value:n.string().trim().nullable().meta({description:`Summary value`})})).optional(),width:n.number().meta({description:`The image width`,example:100}).optional(),height:n.number().meta({description:`The image height`,example:100}).optional(),focalPoint:i.optional().meta({description:`The image focal point`}),blurHash:n.string().trim().meta({description:`The blur hash`,example:`AQABAAAABAAAAgAA...`}).optional(),averageColor:n.string().trim().meta({description:`The average color`,example:`rgba(255, 255, 255, 1)`}).optional(),base64:n.string().trim().nullable().meta({description:`Tiny base64-encoded image placeholder`,example:`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoKAAcAAUAmJQBOgCH5AQAA`}).optional(),isDark:n.boolean().meta({description:`Whether the image is dark`,example:!0}).optional(),isLight:n.boolean().meta({description:`Whether the image is light`,example:!0}).optional(),posterId:n.number().nullable().meta({description:`The poster media ID`,example:1}).optional(),isHidden:n.boolean().meta({description:`Whether the media should be hidden from library lists`,example:!0}).optional()}),query:{string:void 0,formatted:void 0},params:void 0,response:C},client:{processMedia:{body:n.object({preset:n.string().trim().optional(),format:n.enum([`jpeg`,`png`,`webp`,`avif`]).optional()}).default({}),query:{string:void 0,formatted:void 0},params:n.object({key:n.string().trim().meta({description:`The media key you wish to stream`,example:`public/123e4567e89b12d3a456426614174000`})}),response:n.object({url:n.string().meta({description:`The URL of the media`,example:`https://example.com/cdn/public/123e4567e89b12d3a456426614174000/placeholder-image?preset=thumbnail-small&format=webp`})})},getSingle:{body:void 0,query:{string:void 0,formatted:void 0},params:n.object({id:n.string().trim().meta({description:`The media ID`,example:1})}),response:C},getMultiple:{query:{string:w,formatted:T},params:void 0,body:void 0,response:n.array(C)}}};export{E as controllerSchemas,p as mediaCropInputSchema,a as mediaOriginSchema,v as profilePictureResponseSchema};
//# sourceMappingURL=media.mjs.map