{"version":3,"file":"TraceAPI.cjs","names":["NoOpTraceManager","ProxyTraceManager","createSafeProxy","diag"],"sources":["../../../../src/api-traces/api/TraceAPI/TraceAPI.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { createSafeProxy } from '../../../utils/index.ts';\nimport type { TraceManager } from '../../manager/index.ts';\nimport { NoOpTraceManager, ProxyTraceManager } from '../../manager/index.ts';\n\n/**\n * Public interface for TraceAPI including SDK-internal methods.\n */\nexport interface TraceAPIInstance extends TraceManager {\n  /** @internal SDK use only */\n  setGlobalTraceManager(traceManager: TraceManager): void;\n  /** @internal SDK use only */\n  getTraceManager(): TraceManager;\n}\n\nconst NOOP_TRACE_MANAGER = new NoOpTraceManager();\nconst INTERNAL_METHODS = new Set(['setDelegate', 'getDelegate']);\n\nexport class TraceAPI {\n  private static _instance?: TraceAPIInstance;\n\n  public static getInstance(): TraceAPIInstance {\n    if (!TraceAPI._instance) {\n      const proxyManager = new ProxyTraceManager();\n\n      const safeManager = createSafeProxy(\n        proxyManager,\n        NOOP_TRACE_MANAGER,\n        diag.createComponentLogger({ namespace: 'TraceAPI' }),\n        INTERNAL_METHODS,\n      );\n\n      TraceAPI._instance = Object.assign(safeManager, {\n        setGlobalTraceManager(traceManager: TraceManager): void {\n          proxyManager.setDelegate(traceManager);\n        },\n        getTraceManager(): TraceManager {\n          return proxyManager;\n        },\n      }) as TraceAPIInstance;\n    }\n\n    return TraceAPI._instance;\n  }\n\n  public static resetInstance(): void {\n    TraceAPI._instance = undefined;\n  }\n}\n"],"mappings":";;;;;;;AAeA,MAAM,qBAAqB,IAAIA,6DAAAA,kBAAkB;AACjD,MAAM,mBAAmB,IAAI,IAAI,CAAC,eAAe,cAAc,CAAC;AAEhE,IAAa,WAAb,MAAa,SAAS;CACpB,OAAe;CAEf,OAAc,cAAgC;AAC5C,MAAI,CAAC,SAAS,WAAW;GACvB,MAAM,eAAe,IAAIC,+DAAAA,mBAAmB;GAE5C,MAAM,cAAcC,8CAAAA,gBAClB,cACA,oBACAC,mBAAAA,KAAK,sBAAsB,EAAE,WAAW,YAAY,CAAC,EACrD,iBACD;AAED,YAAS,YAAY,OAAO,OAAO,aAAa;IAC9C,sBAAsB,cAAkC;AACtD,kBAAa,YAAY,aAAa;;IAExC,kBAAgC;AAC9B,YAAO;;IAEV,CAAC;;AAGJ,SAAO,SAAS;;CAGlB,OAAc,gBAAsB;AAClC,WAAS,YAAY,KAAA"}