{"version":3,"file":"sentry.mjs","sources":["../../../server/src/middlewares/sentry.ts"],"sourcesContent":["import type { Core } from '@strapi/strapi';\nimport type * as Sentry from '@sentry/node';\nimport type createSentryService from '../services/sentry';\n\n/**\n * Programmatic sentry middleware. We do not want to expose it in the plugin\n */\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n  const sentryService: ReturnType<typeof createSentryService> = strapi\n    .plugin('sentry')\n    .service('sentry');\n  sentryService.init();\n  const sentry = sentryService.getInstance();\n\n  if (!sentry) {\n    // initialization failed\n    return;\n  }\n\n  strapi.server.use(async (ctx, next) => {\n    try {\n      await next();\n    } catch (error) {\n      if (error instanceof Error) {\n        sentryService.sendError(error, (scope: Sentry.Scope) => {\n          scope.addEventProcessor((event) => {\n            // Parse Koa context to add error metadata\n            return sentry.Handlers.parseRequest(event, ctx.request as Sentry.Request, {\n              // Don't parse the transaction name, we'll do it manually\n              transaction: false,\n            });\n          });\n\n          // Manually add transaction name\n          scope.setTag('transaction', `${ctx.method} ${ctx._matchedRoute}`);\n          // Manually add Strapi version\n          scope.setTag('strapi_version', strapi.config.info.strapi);\n          scope.setTag('method', ctx.method);\n        });\n      }\n\n      throw error;\n    }\n  });\n};\n"],"names":["strapi","sentryService","plugin","service","init","sentry","getInstance","server","use","ctx","next","error","Error","sendError","scope","addEventProcessor","event","Handlers","parseRequest","request","transaction","setTag","method","_matchedRoute","config","info"],"mappings":"AAIA;;AAEC,IACD,2BAAe,CAAA,CAAC,EAAEA,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAMC,gBAAwDD,MAAAA,CAC3DE,MAAM,CAAC,QAAA,CAAA,CACPC,OAAO,CAAC,QAAA,CAAA;AACXF,IAAAA,aAAAA,CAAcG,IAAI,EAAA;IAClB,MAAMC,MAAAA,GAASJ,cAAcK,WAAW,EAAA;AAExC,IAAA,IAAI,CAACD,MAAAA,EAAQ;;AAEX,QAAA;AACF,IAAA;AAEAL,IAAAA,MAAAA,CAAOO,MAAM,CAACC,GAAG,CAAC,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;QAC5B,IAAI;YACF,MAAMA,IAAAA,EAAAA;AACR,QAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;AACd,YAAA,IAAIA,iBAAiBC,KAAAA,EAAO;gBAC1BX,aAAAA,CAAcY,SAAS,CAACF,KAAAA,EAAO,CAACG,KAAAA,GAAAA;oBAC9BA,KAAAA,CAAMC,iBAAiB,CAAC,CAACC,KAAAA,GAAAA;;wBAEvB,OAAOX,MAAAA,CAAOY,QAAQ,CAACC,YAAY,CAACF,KAAAA,EAAOP,GAAAA,CAAIU,OAAO,EAAoB;;4BAExEC,WAAAA,EAAa;AACf,yBAAA,CAAA;AACF,oBAAA,CAAA,CAAA;;oBAGAN,KAAAA,CAAMO,MAAM,CAAC,aAAA,EAAe,CAAA,EAAGZ,GAAAA,CAAIa,MAAM,CAAC,CAAC,EAAEb,GAAAA,CAAIc,aAAa,CAAA,CAAE,CAAA;;oBAEhET,KAAAA,CAAMO,MAAM,CAAC,gBAAA,EAAkBrB,MAAAA,CAAOwB,MAAM,CAACC,IAAI,CAACzB,MAAM,CAAA;AACxDc,oBAAAA,KAAAA,CAAMO,MAAM,CAAC,QAAA,EAAUZ,GAAAA,CAAIa,MAAM,CAAA;AACnC,gBAAA,CAAA,CAAA;AACF,YAAA;YAEA,MAAMX,KAAAA;AACR,QAAA;AACF,IAAA,CAAA,CAAA;AACF,CAAA;;;;"}