{"version":3,"file":"policy.mjs","sources":["../../../src/services/server/policy.ts"],"sourcesContent":["import { policy as policyUtils, errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst createPolicicesMiddleware = (route: Core.Route, strapi: Core.Strapi) => {\n  const policiesConfig = route?.config?.policies ?? [];\n  const resolvedPolicies = strapi.get('policies').resolve(policiesConfig, route.info);\n\n  const policiesMiddleware: Core.MiddlewareHandler = async (ctx, next) => {\n    const context = policyUtils.createPolicyContext('koa', ctx);\n\n    for (const { handler, config } of resolvedPolicies) {\n      const result = await handler(context, config, { strapi });\n\n      if (![true, undefined].includes(result)) {\n        throw new errors.PolicyError();\n      }\n    }\n\n    await next();\n  };\n\n  return policiesMiddleware;\n};\n\nexport { createPolicicesMiddleware };\n"],"names":["createPolicicesMiddleware","route","strapi","policiesConfig","config","policies","resolvedPolicies","get","resolve","info","policiesMiddleware","ctx","next","context","policyUtils","createPolicyContext","handler","result","undefined","includes","errors","PolicyError"],"mappings":";;AAGA,MAAMA,yBAAAA,GAA4B,CAACC,KAAAA,EAAmBC,MAAAA,GAAAA;AACpD,IAAA,MAAMC,cAAAA,GAAiBF,KAAAA,EAAOG,MAAAA,EAAQC,QAAAA,IAAY,EAAE;IACpD,MAAMC,gBAAAA,GAAmBJ,OAAOK,GAAG,CAAC,YAAYC,OAAO,CAACL,cAAAA,EAAgBF,KAAAA,CAAMQ,IAAI,CAAA;IAElF,MAAMC,kBAAAA,GAA6C,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;AAC7D,QAAA,MAAMC,OAAAA,GAAUC,MAAAA,CAAYC,mBAAmB,CAAC,KAAA,EAAOJ,GAAAA,CAAAA;AAEvD,QAAA,KAAK,MAAM,EAAEK,OAAO,EAAEZ,MAAM,EAAE,IAAIE,gBAAAA,CAAkB;AAClD,YAAA,MAAMW,MAAAA,GAAS,MAAMD,OAAAA,CAAQH,OAAAA,EAAST,MAAAA,EAAQ;AAAEF,gBAAAA;AAAO,aAAA,CAAA;AAEvD,YAAA,IAAI,CAAC;AAAC,gBAAA,IAAA;AAAMgB,gBAAAA;aAAU,CAACC,QAAQ,CAACF,MAAAA,CAAAA,EAAS;gBACvC,MAAM,IAAIG,OAAOC,WAAW,EAAA;AAC9B,YAAA;AACF,QAAA;QAEA,MAAMT,IAAAA,EAAAA;AACR,IAAA,CAAA;IAEA,OAAOF,kBAAAA;AACT;;;;"}