{"version":3,"file":"upload.mjs","sources":["../../../../../server/src/controllers/validation/admin/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst focalPointSchema = yup\n  .object({\n    x: yup.number().min(0).max(100).required(),\n    y: yup.number().min(0).max(100).required(),\n  })\n  .nullable()\n  .default(null);\n\nconst fileInfoSchema = yup.object({\n  name: yup.string().nullable(),\n  alternativeText: yup.string().nullable(),\n  caption: yup.string().nullable(),\n  focalPoint: focalPointSchema,\n  folder: yup\n    .strapiID()\n    .nullable()\n    .test('folder-exists', 'the folder does not exist', async (folderId) => {\n      if (isNil(folderId)) {\n        return true;\n      }\n\n      const exists = await getService('folder').exists({ id: folderId });\n\n      return exists;\n    }),\n});\n\nconst uploadSchema = yup.object({\n  fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n  fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n  const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n  return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n  | yup.InferType<typeof uploadSchema>\n  | yup.InferType<typeof multiUploadSchema>;\n\nconst bulkUpdatesSchema = yup.object({\n  updates: yup\n    .array()\n    .of(\n      yup.object({\n        id: yup.number().required(),\n        fileInfo: fileInfoSchema.required(),\n      })\n    )\n    .min(1)\n    .required(),\n});\n\nexport const validateBulkUpdateBody = validateYupSchema(bulkUpdatesSchema);\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","strapiID","test","folderId","isNil","exists","getService","id","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict","bulkUpdatesSchema","updates","validateBulkUpdateBody"],"mappings":";;;;AAIA,MAAMA,gBAAAA,GAAmBC,GAAAA,CACtBC,MAAM,CAAC;IACNC,CAAAA,EAAGF,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAAA,EAAGP,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CAAA,CAAA,CACCE,QAAQ,EAAA,CACRC,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,GAAAA,CAAIC,MAAM,CAAC;IAChCU,IAAAA,EAAMX,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAAA,EAAiBb,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAAAA,EAASd,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAAA,EAAYhB,gBAAAA;IACZiB,MAAAA,EAAQhB,GAAAA,CACLiB,QAAQ,EAAA,CACRT,QAAQ,GACRU,IAAI,CAAC,eAAA,EAAiB,2BAAA,EAA6B,OAAOC,QAAAA,GAAAA;AACzD,QAAA,IAAIC,MAAMD,QAAAA,CAAAA,EAAW;YACnB,OAAO,IAAA;AACT,QAAA;AAEA,QAAA,MAAME,MAAAA,GAAS,MAAMC,UAAAA,CAAW,QAAA,CAAA,CAAUD,MAAM,CAAC;YAAEE,EAAAA,EAAIJ;AAAS,SAAA,CAAA;QAEhE,OAAOE,MAAAA;AACT,IAAA,CAAA;AACJ,CAAA,CAAA;AAEA,MAAMG,YAAAA,GAAexB,GAAAA,CAAIC,MAAM,CAAC;IAC9BwB,QAAAA,EAAUf;AACZ,CAAA,CAAA;AAEA,MAAMgB,iBAAAA,GAAoB1B,GAAAA,CAAIC,MAAM,CAAC;AACnCwB,IAAAA,QAAAA,EAAUzB,GAAAA,CAAI2B,KAAK,EAAA,CAAGC,EAAE,CAAClB,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMmB,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAAA,GAAoBF,YAAAA;AAE7C,IAAA,OAAOS,kBAAkBD,MAAAA,EAAQ;QAAEE,MAAAA,EAAQ;KAAM,CAAA,CAAGJ,IAAAA,CAAAA;AACtD;AAQA,MAAMK,iBAAAA,GAAoBnC,GAAAA,CAAIC,MAAM,CAAC;AACnCmC,IAAAA,OAAAA,EAASpC,IACN2B,KAAK,EAAA,CACLC,EAAE,CACD5B,GAAAA,CAAIC,MAAM,CAAC;QACTsB,EAAAA,EAAIvB,GAAAA,CAAIG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AACzBmB,QAAAA,QAAAA,EAAUf,eAAeJ,QAAQ;KACnC,CAAA,CAAA,CAEDF,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ;AACb,CAAA,CAAA;AAEO,MAAM+B,sBAAAA,GAAyBJ,iBAAAA,CAAkBE,iBAAAA;;;;"}