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
15 KiB
Plaintext
1 line
15 KiB
Plaintext
{"version":3,"sources":["../../src/uploads/getBaseFields.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\nimport type { Field } from '../fields/config/types.js'\nimport type { UploadConfig } from './types.js'\n\nimport { generateFilePathOrURL } from './generateFilePathOrURL.js'\nimport { mimeTypeValidator } from './mimeTypeValidator.js'\n\ntype Options = {\n collection: CollectionConfig\n config: Config\n}\n\nexport const getBaseUploadFields = ({ collection, config }: Options): Field[] => {\n const uploadOptions: UploadConfig = typeof collection.upload === 'object' ? collection.upload : {}\n\n const mimeType: Field = {\n name: 'mimeType',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'MIME Type',\n }\n\n const thumbnailURL: Field = {\n name: 'thumbnailURL',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n hooks: {\n afterRead: [\n ({ originalDoc, req }) => {\n const adminThumbnail =\n typeof collection.upload !== 'boolean' ? collection.upload?.adminThumbnail : undefined\n\n if (typeof adminThumbnail === 'function') {\n return adminThumbnail({ doc: originalDoc })\n }\n\n return generateFilePathOrURL({\n collectionSlug: collection.slug,\n config,\n filename:\n typeof adminThumbnail === 'string'\n ? (originalDoc.sizes?.[adminThumbnail]?.filename as string)\n : undefined,\n relative: false,\n serverURL: req.payload.config.serverURL,\n urlOrPath:\n typeof adminThumbnail === 'string'\n ? (originalDoc.sizes?.[adminThumbnail]?.url as string)\n : undefined,\n })\n },\n ],\n },\n label: 'Thumbnail URL',\n }\n\n const width: Field = {\n name: 'width',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:width'),\n }\n\n const height: Field = {\n name: 'height',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:height'),\n }\n\n const filesize: Field = {\n name: 'filesize',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:fileSize'),\n }\n\n const filename: Field = {\n name: 'filename',\n type: 'text',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n readOnly: true,\n },\n index: true,\n label: ({ t }) => t('upload:fileName'),\n }\n\n // Only set unique: true if the collection does not have a compound index\n if (\n collection.upload === true ||\n (typeof collection.upload === 'object' && !collection.upload.filenameCompoundIndex)\n ) {\n filename.unique = true\n }\n\n const url: Field = {\n name: 'url',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'URL',\n }\n\n let uploadFields: Field[] = [\n {\n ...url,\n hooks: {\n afterRead: [\n ({ data, originalDoc, req, value }) =>\n generateFilePathOrURL({\n collectionSlug: collection.slug,\n config,\n filename: data?.filename || originalDoc?.filename,\n relative: false,\n serverURL: req.payload.config.serverURL,\n urlOrPath: value,\n }),\n ],\n beforeChange: [\n ({ collection, data, originalDoc, req, value }) =>\n generateFilePathOrURL({\n collectionSlug: collection?.slug as string,\n config,\n filename: data?.filename || originalDoc?.filename,\n relative: true,\n serverURL: req.payload.config.serverURL,\n urlOrPath: value,\n }),\n ],\n },\n },\n thumbnailURL,\n filename,\n mimeType,\n filesize,\n width,\n height,\n ]\n\n // Add focal point fields if not disabled\n if (\n uploadOptions.focalPoint !== false ||\n uploadOptions.imageSizes ||\n uploadOptions.resizeOptions\n ) {\n uploadFields = uploadFields.concat(\n ['focalX', 'focalY'].map((name) => {\n return {\n name,\n type: 'number',\n admin: {\n disableGroupBy: true,\n disableListColumn: true,\n disableListFilter: true,\n hidden: true,\n },\n }\n }),\n )\n }\n\n if (uploadOptions.mimeTypes) {\n mimeType.validate = mimeTypeValidator(uploadOptions.mimeTypes)\n }\n\n // In Payload v4, image size subfields (`url`, `width`, `height`, etc.) should\n // default to `disableGroupBy: true`, `disableListColumn: true` and `disableListFilter: true`\n // to avoid cluttering the collection list view and filters by default.\n if (uploadOptions.imageSizes) {\n uploadFields = uploadFields.concat([\n {\n name: 'sizes',\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: uploadOptions.imageSizes.map((size) => ({\n name: size.name,\n type: 'group',\n admin: {\n hidden: true,\n ...(size.admin?.disableGroupBy && { disableGroupBy: true }),\n ...(size.admin?.disableListColumn && { disableListColumn: true }),\n ...(size.admin?.disableListFilter && { disableListFilter: true }),\n },\n fields: [\n {\n ...url,\n admin: {\n ...url.admin,\n ...(size.admin?.disableGroupBy && { disableGroupBy: true }),\n ...(size.admin?.disableListColumn && { disableListColumn: true }),\n ...(size.admin?.disableListFilter && { disableListFilter: true }),\n },\n hooks: {\n afterRead: [\n ({ collection, data, originalDoc, req, value }) =>\n generateFilePathOrURL({\n collectionSlug: collection?.slug as string,\n config,\n filename:\n data?.sizes?.[size.name]?.filename ||\n originalDoc?.sizes?.[size.name]?.filename,\n relative: false,\n serverURL: req.payload.config.serverURL,\n urlOrPath: value,\n }),\n ],\n beforeChange: [\n ({ collection, data, originalDoc, req, value }) =>\n generateFilePathOrURL({\n collectionSlug: collection?.slug as string,\n config,\n filename:\n data?.sizes?.[size.name]?.filename ||\n originalDoc?.sizes?.[size.name]?.filename,\n relative: true,\n serverURL: req.payload.config.serverURL,\n urlOrPath: value,\n }),\n ],\n },\n },\n {\n ...width,\n admin: {\n ...width.admin,\n ...(size.admin?.disableGroupBy && { disableGroupBy: true }),\n ...(size.admin?.disableListColumn && { disableListColumn: true }),\n ...(size.admin?.disableListFilter && { disableListFilter: true }),\n },\n },\n {\n ...height,\n admin: {\n ...height.admin,\n ...(size.admin?.disableGroupBy && { disableGroupBy: true }),\n ...(size.admin?.disableListColumn && { disableListColumn: true }),\n ...(size.admin?.disableListFilter && { disableListFilter: true }),\n },\n },\n {\n ...mimeType,\n admin: {\n ...mimeType.admin,\n ...(size.admin?.disableGroupBy && { disableGroupBy: true }),\n ...(size.admin?.disableListColumn && { disableListColumn: true }),\n ...(size.admin?.disableListFilter && { disableListFilter: true }),\n },\n },\n {\n ...filesize,\n admin: {\n ...filesize.admin,\n ...(size.admin?.disableGroupBy && { disableGroupBy: true }),\n ...(size.admin?.disableListColumn && { disableListColumn: true }),\n ...(size.admin?.disableListFilter && { disableListFilter: true }),\n },\n },\n {\n ...filename,\n admin: {\n ...filename.admin,\n ...(size.admin?.disableGroupBy && { disableGroupBy: true }),\n ...(size.admin?.disableListColumn && { disableListColumn: true }),\n ...(size.admin?.disableListFilter && { disableListFilter: true }),\n },\n unique: false,\n },\n ],\n label: size.name,\n })),\n label: ({ t }) => t('upload:sizes'),\n },\n ])\n }\n return uploadFields\n}\n"],"names":["generateFilePathOrURL","mimeTypeValidator","getBaseUploadFields","collection","config","uploadOptions","upload","mimeType","name","type","admin","hidden","readOnly","label","thumbnailURL","hooks","afterRead","originalDoc","req","adminThumbnail","undefined","doc","collectionSlug","slug","filename","sizes","relative","serverURL","payload","urlOrPath","url","width","t","height","filesize","disableBulkEdit","index","filenameCompoundIndex","unique","uploadFields","data","value","beforeChange","focalPoint","imageSizes","resizeOptions","concat","map","disableGroupBy","disableListColumn","disableListFilter","mimeTypes","validate","fields","size"],"mappings":"AAKA,SAASA,qBAAqB,QAAQ,6BAA4B;AAClE,SAASC,iBAAiB,QAAQ,yBAAwB;AAO1D,OAAO,MAAMC,sBAAsB,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAW;IACjE,MAAMC,gBAA8B,OAAOF,WAAWG,MAAM,KAAK,WAAWH,WAAWG,MAAM,GAAG,CAAC;IAEjG,MAAMC,WAAkB;QACtBC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;IACT;IAEA,MAAMC,eAAsB;QAC1BN,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAG,OAAO;YACLC,WAAW;gBACT,CAAC,EAAEC,WAAW,EAAEC,GAAG,EAAE;oBACnB,MAAMC,iBACJ,OAAOhB,WAAWG,MAAM,KAAK,YAAYH,WAAWG,MAAM,EAAEa,iBAAiBC;oBAE/E,IAAI,OAAOD,mBAAmB,YAAY;wBACxC,OAAOA,eAAe;4BAAEE,KAAKJ;wBAAY;oBAC3C;oBAEA,OAAOjB,sBAAsB;wBAC3BsB,gBAAgBnB,WAAWoB,IAAI;wBAC/BnB;wBACAoB,UACE,OAAOL,mBAAmB,WACrBF,YAAYQ,KAAK,EAAE,CAACN,eAAe,EAAEK,WACtCJ;wBACNM,UAAU;wBACVC,WAAWT,IAAIU,OAAO,CAACxB,MAAM,CAACuB,SAAS;wBACvCE,WACE,OAAOV,mBAAmB,WACrBF,YAAYQ,KAAK,EAAE,CAACN,eAAe,EAAEW,MACtCV;oBACR;gBACF;aACD;QACH;QACAP,OAAO;IACT;IAEA,MAAMkB,QAAe;QACnBvB,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO,CAAC,EAAEmB,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,MAAMC,SAAgB;QACpBzB,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO,CAAC,EAAEmB,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,MAAME,WAAkB;QACtB1B,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO,CAAC,EAAEmB,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,MAAMR,WAAkB;QACtBhB,MAAM;QACNC,MAAM;QACNC,OAAO;YACLyB,iBAAiB;YACjBxB,QAAQ;YACRC,UAAU;QACZ;QACAwB,OAAO;QACPvB,OAAO,CAAC,EAAEmB,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,yEAAyE;IACzE,IACE7B,WAAWG,MAAM,KAAK,QACrB,OAAOH,WAAWG,MAAM,KAAK,YAAY,CAACH,WAAWG,MAAM,CAAC+B,qBAAqB,EAClF;QACAb,SAASc,MAAM,GAAG;IACpB;IAEA,MAAMR,MAAa;QACjBtB,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;IACT;IAEA,IAAI0B,eAAwB;QAC1B;YACE,GAAGT,GAAG;YACNf,OAAO;gBACLC,WAAW;oBACT,CAAC,EAAEwB,IAAI,EAAEvB,WAAW,EAAEC,GAAG,EAAEuB,KAAK,EAAE,GAChCzC,sBAAsB;4BACpBsB,gBAAgBnB,WAAWoB,IAAI;4BAC/BnB;4BACAoB,UAAUgB,MAAMhB,YAAYP,aAAaO;4BACzCE,UAAU;4BACVC,WAAWT,IAAIU,OAAO,CAACxB,MAAM,CAACuB,SAAS;4BACvCE,WAAWY;wBACb;iBACH;gBACDC,cAAc;oBACZ,CAAC,EAAEvC,UAAU,EAAEqC,IAAI,EAAEvB,WAAW,EAAEC,GAAG,EAAEuB,KAAK,EAAE,GAC5CzC,sBAAsB;4BACpBsB,gBAAgBnB,YAAYoB;4BAC5BnB;4BACAoB,UAAUgB,MAAMhB,YAAYP,aAAaO;4BACzCE,UAAU;4BACVC,WAAWT,IAAIU,OAAO,CAACxB,MAAM,CAACuB,SAAS;4BACvCE,WAAWY;wBACb;iBACH;YACH;QACF;QACA3B;QACAU;QACAjB;QACA2B;QACAH;QACAE;KACD;IAED,yCAAyC;IACzC,IACE5B,cAAcsC,UAAU,KAAK,SAC7BtC,cAAcuC,UAAU,IACxBvC,cAAcwC,aAAa,EAC3B;QACAN,eAAeA,aAAaO,MAAM,CAChC;YAAC;YAAU;SAAS,CAACC,GAAG,CAAC,CAACvC;YACxB,OAAO;gBACLA;gBACAC,MAAM;gBACNC,OAAO;oBACLsC,gBAAgB;oBAChBC,mBAAmB;oBACnBC,mBAAmB;oBACnBvC,QAAQ;gBACV;YACF;QACF;IAEJ;IAEA,IAAIN,cAAc8C,SAAS,EAAE;QAC3B5C,SAAS6C,QAAQ,GAAGnD,kBAAkBI,cAAc8C,SAAS;IAC/D;IAEA,8EAA8E;IAC9E,6FAA6F;IAC7F,uEAAuE;IACvE,IAAI9C,cAAcuC,UAAU,EAAE;QAC5BL,eAAeA,aAAaO,MAAM,CAAC;YACjC;gBACEtC,MAAM;gBACNC,MAAM;gBACNC,OAAO;oBACLC,QAAQ;gBACV;gBACA0C,QAAQhD,cAAcuC,UAAU,CAACG,GAAG,CAAC,CAACO,OAAU,CAAA;wBAC9C9C,MAAM8C,KAAK9C,IAAI;wBACfC,MAAM;wBACNC,OAAO;4BACLC,QAAQ;4BACR,GAAI2C,KAAK5C,KAAK,EAAEsC,kBAAkB;gCAAEA,gBAAgB;4BAAK,CAAC;4BAC1D,GAAIM,KAAK5C,KAAK,EAAEuC,qBAAqB;gCAAEA,mBAAmB;4BAAK,CAAC;4BAChE,GAAIK,KAAK5C,KAAK,EAAEwC,qBAAqB;gCAAEA,mBAAmB;4BAAK,CAAC;wBAClE;wBACAG,QAAQ;4BACN;gCACE,GAAGvB,GAAG;gCACNpB,OAAO;oCACL,GAAGoB,IAAIpB,KAAK;oCACZ,GAAI4C,KAAK5C,KAAK,EAAEsC,kBAAkB;wCAAEA,gBAAgB;oCAAK,CAAC;oCAC1D,GAAIM,KAAK5C,KAAK,EAAEuC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;oCAChE,GAAIK,KAAK5C,KAAK,EAAEwC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;gCAClE;gCACAnC,OAAO;oCACLC,WAAW;wCACT,CAAC,EAAEb,UAAU,EAAEqC,IAAI,EAAEvB,WAAW,EAAEC,GAAG,EAAEuB,KAAK,EAAE,GAC5CzC,sBAAsB;gDACpBsB,gBAAgBnB,YAAYoB;gDAC5BnB;gDACAoB,UACEgB,MAAMf,OAAO,CAAC6B,KAAK9C,IAAI,CAAC,EAAEgB,YAC1BP,aAAaQ,OAAO,CAAC6B,KAAK9C,IAAI,CAAC,EAAEgB;gDACnCE,UAAU;gDACVC,WAAWT,IAAIU,OAAO,CAACxB,MAAM,CAACuB,SAAS;gDACvCE,WAAWY;4CACb;qCACH;oCACDC,cAAc;wCACZ,CAAC,EAAEvC,UAAU,EAAEqC,IAAI,EAAEvB,WAAW,EAAEC,GAAG,EAAEuB,KAAK,EAAE,GAC5CzC,sBAAsB;gDACpBsB,gBAAgBnB,YAAYoB;gDAC5BnB;gDACAoB,UACEgB,MAAMf,OAAO,CAAC6B,KAAK9C,IAAI,CAAC,EAAEgB,YAC1BP,aAAaQ,OAAO,CAAC6B,KAAK9C,IAAI,CAAC,EAAEgB;gDACnCE,UAAU;gDACVC,WAAWT,IAAIU,OAAO,CAACxB,MAAM,CAACuB,SAAS;gDACvCE,WAAWY;4CACb;qCACH;gCACH;4BACF;4BACA;gCACE,GAAGV,KAAK;gCACRrB,OAAO;oCACL,GAAGqB,MAAMrB,KAAK;oCACd,GAAI4C,KAAK5C,KAAK,EAAEsC,kBAAkB;wCAAEA,gBAAgB;oCAAK,CAAC;oCAC1D,GAAIM,KAAK5C,KAAK,EAAEuC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;oCAChE,GAAIK,KAAK5C,KAAK,EAAEwC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;gCAClE;4BACF;4BACA;gCACE,GAAGjB,MAAM;gCACTvB,OAAO;oCACL,GAAGuB,OAAOvB,KAAK;oCACf,GAAI4C,KAAK5C,KAAK,EAAEsC,kBAAkB;wCAAEA,gBAAgB;oCAAK,CAAC;oCAC1D,GAAIM,KAAK5C,KAAK,EAAEuC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;oCAChE,GAAIK,KAAK5C,KAAK,EAAEwC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;gCAClE;4BACF;4BACA;gCACE,GAAG3C,QAAQ;gCACXG,OAAO;oCACL,GAAGH,SAASG,KAAK;oCACjB,GAAI4C,KAAK5C,KAAK,EAAEsC,kBAAkB;wCAAEA,gBAAgB;oCAAK,CAAC;oCAC1D,GAAIM,KAAK5C,KAAK,EAAEuC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;oCAChE,GAAIK,KAAK5C,KAAK,EAAEwC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;gCAClE;4BACF;4BACA;gCACE,GAAGhB,QAAQ;gCACXxB,OAAO;oCACL,GAAGwB,SAASxB,KAAK;oCACjB,GAAI4C,KAAK5C,KAAK,EAAEsC,kBAAkB;wCAAEA,gBAAgB;oCAAK,CAAC;oCAC1D,GAAIM,KAAK5C,KAAK,EAAEuC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;oCAChE,GAAIK,KAAK5C,KAAK,EAAEwC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;gCAClE;4BACF;4BACA;gCACE,GAAG1B,QAAQ;gCACXd,OAAO;oCACL,GAAGc,SAASd,KAAK;oCACjB,GAAI4C,KAAK5C,KAAK,EAAEsC,kBAAkB;wCAAEA,gBAAgB;oCAAK,CAAC;oCAC1D,GAAIM,KAAK5C,KAAK,EAAEuC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;oCAChE,GAAIK,KAAK5C,KAAK,EAAEwC,qBAAqB;wCAAEA,mBAAmB;oCAAK,CAAC;gCAClE;gCACAZ,QAAQ;4BACV;yBACD;wBACDzB,OAAOyC,KAAK9C,IAAI;oBAClB,CAAA;gBACAK,OAAO,CAAC,EAAEmB,CAAC,EAAE,GAAKA,EAAE;YACtB;SACD;IACH;IACA,OAAOO;AACT,EAAC"} |