Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
3.7 KiB
Plaintext
1 line
3.7 KiB
Plaintext
{"version":3,"sources":["../../src/locked-documents/config.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\n\nimport { defaultAccess } from '../auth/defaultAccess.js'\n\nexport const lockedDocumentsCollectionSlug = 'payload-locked-documents'\n\nexport const getLockedDocumentsCollection = (config: Config): CollectionConfig | null => {\n const lockableCollections = config\n .collections!.filter((collectionConfig) => collectionConfig.lockDocuments !== false)\n .map((collectionConfig) => collectionConfig.slug)\n\n const lockableGlobals = config.globals\n ? config.globals.filter((globalConfig) => globalConfig.lockDocuments !== false)\n : []\n\n const authCollections = config\n .collections!.filter((collectionConfig) => collectionConfig.auth)\n .map((collectionConfig) => collectionConfig.slug)\n\n // If there are no lockable collections AND no lockable globals, don't create the collection\n if (lockableCollections.length === 0 && lockableGlobals.length === 0) {\n return null\n }\n\n // If there are no auth collections, we can't track who locked the document\n // so we shouldn't create the locked-documents collection\n if (authCollections.length === 0) {\n return null\n }\n\n const fields: CollectionConfig['fields'] = []\n\n // Only include the document field if there are lockable collections\n if (lockableCollections.length > 0) {\n fields.push({\n name: 'document',\n type: 'relationship',\n index: true,\n maxDepth: 0,\n relationTo: lockableCollections,\n })\n }\n\n // Always include globalSlug field for tracking global locks\n fields.push({\n name: 'globalSlug',\n type: 'text',\n index: true,\n })\n\n // Always include user field\n fields.push({\n name: 'user',\n type: 'relationship',\n maxDepth: 1,\n relationTo: authCollections,\n required: true,\n })\n\n return {\n slug: lockedDocumentsCollectionSlug,\n access: {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n update: defaultAccess,\n },\n admin: {\n hidden: true,\n },\n fields,\n lockDocuments: false,\n }\n}\n"],"names":["defaultAccess","lockedDocumentsCollectionSlug","getLockedDocumentsCollection","config","lockableCollections","collections","filter","collectionConfig","lockDocuments","map","slug","lockableGlobals","globals","globalConfig","authCollections","auth","length","fields","push","name","type","index","maxDepth","relationTo","required","access","create","delete","read","update","admin","hidden"],"mappings":"AAGA,SAASA,aAAa,QAAQ,2BAA0B;AAExD,OAAO,MAAMC,gCAAgC,2BAA0B;AAEvE,OAAO,MAAMC,+BAA+B,CAACC;IAC3C,MAAMC,sBAAsBD,OACzBE,WAAW,CAAEC,MAAM,CAAC,CAACC,mBAAqBA,iBAAiBC,aAAa,KAAK,OAC7EC,GAAG,CAAC,CAACF,mBAAqBA,iBAAiBG,IAAI;IAElD,MAAMC,kBAAkBR,OAAOS,OAAO,GAClCT,OAAOS,OAAO,CAACN,MAAM,CAAC,CAACO,eAAiBA,aAAaL,aAAa,KAAK,SACvE,EAAE;IAEN,MAAMM,kBAAkBX,OACrBE,WAAW,CAAEC,MAAM,CAAC,CAACC,mBAAqBA,iBAAiBQ,IAAI,EAC/DN,GAAG,CAAC,CAACF,mBAAqBA,iBAAiBG,IAAI;IAElD,4FAA4F;IAC5F,IAAIN,oBAAoBY,MAAM,KAAK,KAAKL,gBAAgBK,MAAM,KAAK,GAAG;QACpE,OAAO;IACT;IAEA,2EAA2E;IAC3E,yDAAyD;IACzD,IAAIF,gBAAgBE,MAAM,KAAK,GAAG;QAChC,OAAO;IACT;IAEA,MAAMC,SAAqC,EAAE;IAE7C,oEAAoE;IACpE,IAAIb,oBAAoBY,MAAM,GAAG,GAAG;QAClCC,OAAOC,IAAI,CAAC;YACVC,MAAM;YACNC,MAAM;YACNC,OAAO;YACPC,UAAU;YACVC,YAAYnB;QACd;IACF;IAEA,4DAA4D;IAC5Da,OAAOC,IAAI,CAAC;QACVC,MAAM;QACNC,MAAM;QACNC,OAAO;IACT;IAEA,4BAA4B;IAC5BJ,OAAOC,IAAI,CAAC;QACVC,MAAM;QACNC,MAAM;QACNE,UAAU;QACVC,YAAYT;QACZU,UAAU;IACZ;IAEA,OAAO;QACLd,MAAMT;QACNwB,QAAQ;YACNC,QAAQ1B;YACR2B,QAAQ3B;YACR4B,MAAM5B;YACN6B,QAAQ7B;QACV;QACA8B,OAAO;YACLC,QAAQ;QACV;QACAd;QACAT,eAAe;IACjB;AACF,EAAC"} |