{"version":3,"file":"src-index.mjs","sources":["../../src/loaders/src-index.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { statSync, existsSync } from 'fs';\nimport { yup, importDefault } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\nconst srcSchema = yup\n  .object()\n  .shape({\n    bootstrap: yup.mixed().isFunction(),\n    register: yup.mixed().isFunction(),\n    destroy: yup.mixed().isFunction(),\n  })\n  .noUnknown();\n\nconst validateSrcIndex = (srcIndex: unknown) => {\n  return srcSchema.validateSync(srcIndex, { strict: true, abortEarly: false });\n};\n\nexport default (strapi: Core.Strapi) => {\n  if (!existsSync(strapi.dirs.dist.src)) {\n    return;\n  }\n\n  const pathToSrcIndex = resolve(strapi.dirs.dist.src, 'index.js');\n  if (!existsSync(pathToSrcIndex) || statSync(pathToSrcIndex).isDirectory()) {\n    return {};\n  }\n\n  const srcIndex = importDefault(pathToSrcIndex);\n\n  try {\n    validateSrcIndex(srcIndex);\n  } catch (e) {\n    if (e instanceof yup.ValidationError) {\n      strapi.stopWithError({ message: `Invalid file \\`./src/index.js\\`: ${e.message}` });\n    }\n\n    throw e;\n  }\n\n  strapi.app = srcIndex;\n};\n"],"names":["srcSchema","yup","object","shape","bootstrap","mixed","isFunction","register","destroy","noUnknown","validateSrcIndex","srcIndex","validateSync","strict","abortEarly","strapi","existsSync","dirs","dist","src","pathToSrcIndex","resolve","statSync","isDirectory","importDefault","e","ValidationError","stopWithError","message","app"],"mappings":";;;;AAMA,MAAMA,SAAAA,GAAYC,GAAAA,CACfC,MAAM,EAAA,CACNC,KAAK,CAAC;IACLC,SAAAA,EAAWH,GAAAA,CAAII,KAAK,EAAA,CAAGC,UAAU,EAAA;IACjCC,QAAAA,EAAUN,GAAAA,CAAII,KAAK,EAAA,CAAGC,UAAU,EAAA;IAChCE,OAAAA,EAASP,GAAAA,CAAII,KAAK,EAAA,CAAGC,UAAU;AACjC,CAAA,CAAA,CACCG,SAAS,EAAA;AAEZ,MAAMC,mBAAmB,CAACC,QAAAA,GAAAA;IACxB,OAAOX,SAAAA,CAAUY,YAAY,CAACD,QAAAA,EAAU;QAAEE,MAAAA,EAAQ,IAAA;QAAMC,UAAAA,EAAY;AAAM,KAAA,CAAA;AAC5E,CAAA;AAEA,mBAAe,CAAA,CAACC,MAAAA,GAAAA;IACd,IAAI,CAACC,WAAWD,MAAAA,CAAOE,IAAI,CAACC,IAAI,CAACC,GAAG,CAAA,EAAG;AACrC,QAAA;AACF,IAAA;IAEA,MAAMC,cAAAA,GAAiBC,QAAQN,MAAAA,CAAOE,IAAI,CAACC,IAAI,CAACC,GAAG,EAAE,UAAA,CAAA;AACrD,IAAA,IAAI,CAACH,UAAAA,CAAWI,cAAAA,CAAAA,IAAmBE,QAAAA,CAASF,cAAAA,CAAAA,CAAgBG,WAAW,EAAA,EAAI;AACzE,QAAA,OAAO,EAAC;AACV,IAAA;AAEA,IAAA,MAAMZ,WAAWa,aAAAA,CAAcJ,cAAAA,CAAAA;IAE/B,IAAI;QACFV,gBAAAA,CAAiBC,QAAAA,CAAAA;AACnB,IAAA,CAAA,CAAE,OAAOc,CAAAA,EAAG;QACV,IAAIA,CAAAA,YAAaxB,GAAAA,CAAIyB,eAAe,EAAE;AACpCX,YAAAA,MAAAA,CAAOY,aAAa,CAAC;AAAEC,gBAAAA,OAAAA,EAAS,CAAC,iCAAiC,EAAEH,CAAAA,CAAEG,OAAO,CAAA;AAAG,aAAA,CAAA;AAClF,QAAA;QAEA,MAAMH,CAAAA;AACR,IAAA;AAEAV,IAAAA,MAAAA,CAAOc,GAAG,GAAGlB,QAAAA;AACf,CAAA;;;;"}