{"version":3,"file":"policies.mjs","sources":["../../src/loaders/policies.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadPolicies(strapi: Core.Strapi) {\n  const dir = strapi.dirs.dist.policies;\n\n  if (!(await fse.pathExists(dir))) {\n    return;\n  }\n\n  const policies: Record<string, Core.Policy> = {};\n  const paths = await fse.readdir(dir, { withFileTypes: true });\n\n  for (const fd of paths) {\n    const { name } = fd;\n    const fullPath = join(dir, name);\n\n    if (fd.isFile() && extname(name) === '.js') {\n      const key = basename(name, '.js');\n      policies[key] = importDefault(fullPath);\n    }\n  }\n\n  strapi.get('policies').add(`global::`, policies);\n}\n"],"names":["loadPolicies","strapi","dir","dirs","dist","policies","fse","pathExists","paths","readdir","withFileTypes","fd","name","fullPath","join","isFile","extname","key","basename","importDefault","get","add"],"mappings":";;;;AAMA;AACe,eAAeA,aAAaC,MAAmB,EAAA;AAC5D,IAAA,MAAMC,MAAMD,MAAAA,CAAOE,IAAI,CAACC,IAAI,CAACC,QAAQ;AAErC,IAAA,IAAI,CAAE,MAAMC,GAAAA,CAAIC,UAAU,CAACL,GAAAA,CAAAA,EAAO;AAChC,QAAA;AACF,IAAA;AAEA,IAAA,MAAMG,WAAwC,EAAC;AAC/C,IAAA,MAAMG,KAAAA,GAAQ,MAAMF,GAAAA,CAAIG,OAAO,CAACP,GAAAA,EAAK;QAAEQ,aAAAA,EAAe;AAAK,KAAA,CAAA;IAE3D,KAAK,MAAMC,MAAMH,KAAAA,CAAO;QACtB,MAAM,EAAEI,IAAI,EAAE,GAAGD,EAAAA;QACjB,MAAME,QAAAA,GAAWC,KAAKZ,GAAAA,EAAKU,IAAAA,CAAAA;AAE3B,QAAA,IAAID,EAAAA,CAAGI,MAAM,EAAA,IAAMC,OAAAA,CAAQJ,UAAU,KAAA,EAAO;YAC1C,MAAMK,GAAAA,GAAMC,SAASN,IAAAA,EAAM,KAAA,CAAA;YAC3BP,QAAQ,CAACY,GAAAA,CAAI,GAAGE,aAAAA,CAAcN,QAAAA,CAAAA;AAChC,QAAA;AACF,IAAA;IAEAZ,MAAAA,CAAOmB,GAAG,CAAC,UAAA,CAAA,CAAYC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAEhB,QAAAA,CAAAA;AACzC;;;;"}