{"version":3,"file":"extensions.js","sources":["../../src/extensions.ts"],"sourcesContent":["import { addTracingExtensions, getMainCarrier } from '@sentry/core';\nimport type { Integration, IntegrationClass } from '@sentry/types';\nimport { dynamicRequire, isNodeEnv, loadModule } from '@sentry/utils';\n\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations(): void {\n  const carrier = getMainCarrier();\n  if (!carrier.__SENTRY__) {\n    return;\n  }\n\n  const packageToIntegrationMapping: Record<string, () => Integration> = {\n    mongodb() {\n      const integration = dynamicRequire(module, './node/integrations/mongo') as {\n        Mongo: IntegrationClass<Integration>;\n      };\n      return new integration.Mongo();\n    },\n    mongoose() {\n      const integration = dynamicRequire(module, './node/integrations/mongo') as {\n        Mongo: IntegrationClass<Integration>;\n      };\n      return new integration.Mongo();\n    },\n    mysql() {\n      const integration = dynamicRequire(module, './node/integrations/mysql') as {\n        Mysql: IntegrationClass<Integration>;\n      };\n      return new integration.Mysql();\n    },\n    pg() {\n      const integration = dynamicRequire(module, './node/integrations/postgres') as {\n        Postgres: IntegrationClass<Integration>;\n      };\n      return new integration.Postgres();\n    },\n  };\n\n  const mappedPackages = Object.keys(packageToIntegrationMapping)\n    .filter(moduleName => !!loadModule(moduleName))\n    .map(pkg => {\n      try {\n        return packageToIntegrationMapping[pkg]();\n      } catch (e) {\n        return undefined;\n      }\n    })\n    .filter(p => p) as Integration[];\n\n  if (mappedPackages.length > 0) {\n    carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n  }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods(): void {\n  addTracingExtensions();\n\n  // Detect and automatically load specified integrations.\n  if (isNodeEnv()) {\n    _autoloadDatabaseIntegrations();\n  }\n}\n"],"names":["getMainCarrier","dynamicRequire","loadModule","addTracingExtensions","isNodeEnv"],"mappings":";;;;;AAIA;AACA;AACA;AACA,SAAS,6BAA6B,GAAS;AAC/C,EAAE,MAAM,OAAA,GAAUA,mBAAc,EAAE,CAAA;AAClC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC3B,IAAI,OAAM;AACV,GAAE;AACF;AACA,EAAE,MAAM,2BAA2B,GAAsC;AACzE,IAAI,OAAO,GAAG;AACd,MAAM,MAAM,cAAcC,oBAAc,CAAC,MAAM,EAAE,2BAA2B,CAAE;;AAExE,CAAA;AACN,MAAM,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,CAAA;AACpC,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,MAAM,MAAM,cAAcA,oBAAc,CAAC,MAAM,EAAE,2BAA2B,CAAE;;AAExE,CAAA;AACN,MAAM,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,CAAA;AACpC,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,MAAM,MAAM,cAAcA,oBAAc,CAAC,MAAM,EAAE,2BAA2B,CAAE;;AAExE,CAAA;AACN,MAAM,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,CAAA;AACpC,KAAK;AACL,IAAI,EAAE,GAAG;AACT,MAAM,MAAM,cAAcA,oBAAc,CAAC,MAAM,EAAE,8BAA8B,CAAE;;AAE3E,CAAA;AACN,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAA;AACvC,KAAK;AACL,GAAG,CAAA;AACH;AACA,EAAE,MAAM,cAAe,GAAE,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAA;AAChE,KAAK,MAAM,CAAC,UAAW,IAAG,CAAC,CAACC,gBAAU,CAAC,UAAU,CAAC,CAAA;AAClD,KAAK,GAAG,CAAC,GAAA,IAAO;AAChB,MAAM,IAAI;AACV,QAAQ,OAAO,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAA;AACjD,OAAQ,CAAA,OAAO,CAAC,EAAE;AAClB,QAAQ,OAAO,SAAS,CAAA;AACxB,OAAM;AACN,KAAK,CAAA;AACL,KAAK,MAAM,CAAC,CAAE,IAAG,CAAC,CAAE,EAAA;AACpB;AACA,EAAE,IAAI,cAAc,CAAC,MAAO,GAAE,CAAC,EAAE;AACjC,IAAI,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,CAAA;AACrG,GAAE;AACF,CAAA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,GAAS;AAC5C,EAAEC,yBAAoB,EAAE,CAAA;AACxB;AACA;AACA,EAAE,IAAIC,eAAS,EAAE,EAAE;AACnB,IAAI,6BAA6B,EAAE,CAAA;AACnC,GAAE;AACF;;;;"}