@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 3.02 kB
JavaScript
import{hydrateAdminCopyDefaults as e}from"../i18n/hydrate-admin-copy-defaults.mjs";import{tenantAccessAllowed as t}from"../../utils/helpers/tenants.mjs";import{resolveCollectionPermission as n,resolveCollectionPermissions as r}from"../permission/collection-permissions.mjs";const i=e=>{let t=l({collections:e.allCollections,tenantKey:e.tenantKey});return e.collections.map(n=>a({collection:n,documentTargetCollectionKeys:t,tenantKey:e.tenantKey,queueSupportsScheduling:e.queueSupportsScheduling,adminTranslations:e.adminTranslations,include:e.include,documents:e.documents}))},a=i=>{let a=i.collection.getData,c=i.collection.key,u=r(i.collection),f=i.documentTargetCollectionKeys??l({collections:i.allCollections??[i.collection],tenantKey:i.tenantKey});return e({key:c,mode:a.mode,tenants:a.tenants,group:a.group,documentId:i.include?.documentId?d(c,i.documents):void 0,details:{name:a.details.name,singularName:a.details.singularName,summary:a.details.summary},localized:a.localized,revisions:a.revisions,locked:a.locked,listing:i.collection.listing,labelFields:a.labelFields,autoSave:a.autoSave,scheduling:a.scheduling,orderable:a.orderable,revisionRetentionDays:a.revisionRetentionDays,review:a.review,workflow:a.workflow,environments:a.environments.map(e=>({key:e.key,name:e.name,requires:e.requires,permissions:{publish:n({collection:i.collection,action:`publish`}),review:n({collection:i.collection,action:`review`})}})),preview:a.preview,capabilities:{scheduling:a.scheduling===!0&&i.queueSupportsScheduling===!0,preview:a.preview!==null},permissions:u,migrationStatus:i.migrationStatus??null,fixedBricks:i.include?.bricks?i.collection.config.bricks?.fixed?.filter(e=>t(e.config.tenants,i.tenantKey)).map(e=>o({brick:e,documentTargetCollectionKeys:f}))??[]:[],builderBricks:i.include?.bricks?i.collection.config.bricks?.builder?.filter(e=>t(e.config.tenants,i.tenantKey)).map(e=>o({brick:e,documentTargetCollectionKeys:f}))??[]:[],fields:i.include?.fields?s(i.collection.fieldTree,i.collection.fields,f):[]},i.adminTranslations)},o=e=>({key:e.brick.key,details:e.brick.config.details,preview:e.brick.config.preview,fields:s(e.brick.fieldTree,e.brick.fields,e.documentTargetCollectionKeys)}),s=(e,t,n)=>e.map(e=>c(e,t,n)),c=(e,t,n)=>{let r=`fields`in e&&Array.isArray(e.fields)?e.fields:void 0,i=t.get(e.key),a=i?u(e,i):void 0,o={...e};return a?o.ai=a:delete o.ai,o.type===`relation`&&(o.collection=(Array.isArray(o.collection)?o.collection:[o.collection]).filter(e=>n.has(e)),o.default=o.default?.filter(e=>n.has(e.collectionKey))),r&&(o.fields=s(r,t,n)),o},l=e=>new Set(e.collections.filter(n=>t(n.getData.tenants,e.tenantKey)).map(e=>e.key)),u=(e,t)=>{if(!t.supportsAi)return;let n=Object.hasOwn(e,`ai`),r=t.aiConfig;if(!(r.enabled!==!0&&r.guidance.length===0&&n===!1))return{enabled:r.enabled,guidance:r.guidance.map(e=>({key:e.key,label:e.label}))}},d=(e,t)=>t?.find(t=>t.collection_key===e)?.id??void 0;var f={formatMultiple:i,formatSingle:a};export{f as default};
//# sourceMappingURL=collections.mjs.map