{"version":3,"file":"index.js","sources":["../../../src/sdk/index.ts"],"sourcesContent":["import type { Integration, Options } from '@sentry/core';\nimport { applySdkMetadata, hasSpansEnabled } from '@sentry/core';\nimport type { NodeClient } from '@sentry/node-core';\nimport {\n getDefaultIntegrations as getNodeCoreDefaultIntegrations,\n init as initNodeCore,\n validateOpenTelemetrySetup,\n} from '@sentry/node-core';\nimport { httpIntegration } from '../integrations/http';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing';\nimport type { NodeOptions } from '../types';\nimport { initOpenTelemetry } from './initOtel';\n\n/**\n * Get default integrations, excluding performance.\n */\nexport function getDefaultIntegrationsWithoutPerformance(): Integration[] {\n const nodeCoreIntegrations = getNodeCoreDefaultIntegrations();\n\n // Filter out the node-core HTTP and NodeFetch integrations and replace them with Node SDK's composite versions\n return nodeCoreIntegrations\n .filter(integration => integration.name !== 'Http' && integration.name !== 'NodeFetch')\n .concat(httpIntegration(), nativeNodeFetchIntegration());\n}\n\n/** Get the default integrations for the Node SDK. */\nexport function getDefaultIntegrations(options: Options): Integration[] {\n return [\n ...getDefaultIntegrationsWithoutPerformance(),\n // We only add performance integrations if tracing is enabled\n // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n // This means that generally request isolation will work (because that is done by httpIntegration)\n // But `transactionName` will not be set automatically\n ...(hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nexport function init(options: NodeOptions | undefined = {}): NodeClient | undefined {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Internal initialization function.\n */\nfunction _init(\n options: NodeOptions | undefined = {},\n getDefaultIntegrationsImpl: (options: Options) => Integration[],\n): NodeClient | undefined {\n applySdkMetadata(options, 'node');\n\n const client = initNodeCore({\n ...options,\n // Only use Node SDK defaults if none provided\n defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options),\n });\n\n // Add Node SDK specific OpenTelemetry setup\n if (client && !options.skipOpenTelemetrySetup) {\n initOpenTelemetry(client, {\n spanProcessors: options.openTelemetrySpanProcessors,\n });\n validateOpenTelemetrySetup();\n }\n\n return client;\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nexport function initWithoutDefaultIntegrations(options: NodeOptions | undefined = {}): NodeClient | undefined {\n return _init(options, () => []);\n}\n"],"names":["getNodeCoreDefaultIntegrations","httpIntegration","nativeNodeFetchIntegration","hasSpansEnabled","getAutoPerformanceIntegrations","applySdkMetadata","initNodeCore","initOpenTelemetry","validateOpenTelemetrySetup"],"mappings":";;;;;;;;;AAiBO,SAAS,wCAAA,GAA0D;AACxE,EAAA,MAAM,uBAAuBA,+BAAA,EAA+B;AAG5D,EAAA,OAAO,oBAAA,CACJ,MAAA,CAAO,CAAA,WAAA,KAAe,WAAA,CAAY,SAAS,MAAA,IAAU,WAAA,CAAY,IAAA,KAAS,WAAW,CAAA,CACrF,MAAA,CAAOC,oBAAA,EAAgB,EAAGC,oCAA4B,CAAA;AAC3D;AAGO,SAAS,uBAAuB,OAAA,EAAiC;AACtE,EAAA,OAAO;AAAA,IACL,GAAG,wCAAA,EAAyC;AAAA;AAAA;AAAA;AAAA;AAAA,IAK5C,GAAIC,oBAAA,CAAgB,OAAO,CAAA,GAAIC,oCAAA,KAAmC;AAAC,GACrE;AACF;AAKO,SAAS,IAAA,CAAK,OAAA,GAAmC,EAAC,EAA2B;AAClF,EAAA,OAAO,KAAA,CAAM,SAAS,sBAAsB,CAAA;AAC9C;AAKA,SAAS,KAAA,CACP,OAAA,GAAmC,EAAC,EACpC,0BAAA,EACwB;AACxB,EAAAC,qBAAA,CAAiB,SAAS,MAAM,CAAA;AAEhC,EAAA,MAAM,SAASC,aAAA,CAAa;AAAA,IAC1B,GAAG,OAAA;AAAA;AAAA,IAEH,mBAAA,EAAqB,OAAA,CAAQ,mBAAA,IAAuB,0BAAA,CAA2B,OAAO;AAAA,GACvF,CAAA;AAGD,EAAA,IAAI,MAAA,IAAU,CAAC,OAAA,CAAQ,sBAAA,EAAwB;AAC7C,IAAAC,0BAAA,CAAkB,MAAA,EAAQ;AAAA,MACxB,gBAAgB,OAAA,CAAQ;AAAA,KACzB,CAAA;AACD,IAAAC,mCAAA,EAA2B;AAAA,EAC7B;AAEA,EAAA,OAAO,MAAA;AACT;AAKO,SAAS,8BAAA,CAA+B,OAAA,GAAmC,EAAC,EAA2B;AAC5G,EAAA,OAAO,KAAA,CAAM,OAAA,EAAS,MAAM,EAAE,CAAA;AAChC;;;;;;;"}