{"version":3,"file":"LogAPI.cjs","names":["NoOpLogManager","ProxyLogManager","createSafeProxy","diag"],"sources":["../../../../src/api-logs/api/LogAPI/LogAPI.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { createSafeProxy } from '../../../utils/index.ts';\nimport type { LogManager } from '../../manager/index.ts';\nimport { NoOpLogManager, ProxyLogManager } from '../../manager/index.ts';\n\n/**\n * Public interface for LogAPI including SDK-internal methods.\n */\nexport interface LogAPIInstance extends LogManager {\n  /** @internal SDK use only */\n  setGlobalLogManager(logManager: LogManager): void;\n  /** @internal SDK use only */\n  getLogManager(): LogManager;\n}\n\nconst NOOP_LOG_MANAGER = new NoOpLogManager();\nconst INTERNAL_METHODS = new Set(['setDelegate', 'getDelegate']);\n\nexport class LogAPI {\n  private static _instance?: LogAPIInstance;\n\n  public static getInstance(): LogAPIInstance {\n    if (!LogAPI._instance) {\n      const proxyManager = new ProxyLogManager();\n\n      const safeManager = createSafeProxy(\n        proxyManager,\n        NOOP_LOG_MANAGER,\n        diag.createComponentLogger({ namespace: 'LogAPI' }),\n        INTERNAL_METHODS,\n      );\n\n      LogAPI._instance = Object.assign(safeManager, {\n        setGlobalLogManager(logManager: LogManager): void {\n          proxyManager.setDelegate(logManager);\n        },\n        getLogManager(): LogManager {\n          return proxyManager;\n        },\n      }) as LogAPIInstance;\n    }\n\n    return LogAPI._instance;\n  }\n\n  public static resetInstance(): void {\n    LogAPI._instance = undefined;\n  }\n}\n"],"mappings":";;;;;;;AAeA,MAAM,mBAAmB,IAAIA,uDAAAA,gBAAgB;AAC7C,MAAM,mBAAmB,IAAI,IAAI,CAAC,eAAe,cAAc,CAAC;AAEhE,IAAa,SAAb,MAAa,OAAO;CAClB,OAAe;CAEf,OAAc,cAA8B;AAC1C,MAAI,CAAC,OAAO,WAAW;GACrB,MAAM,eAAe,IAAIC,yDAAAA,iBAAiB;GAE1C,MAAM,cAAcC,8CAAAA,gBAClB,cACA,kBACAC,mBAAAA,KAAK,sBAAsB,EAAE,WAAW,UAAU,CAAC,EACnD,iBACD;AAED,UAAO,YAAY,OAAO,OAAO,aAAa;IAC5C,oBAAoB,YAA8B;AAChD,kBAAa,YAAY,WAAW;;IAEtC,gBAA4B;AAC1B,YAAO;;IAEV,CAAC;;AAGJ,SAAO,OAAO;;CAGhB,OAAc,gBAAsB;AAClC,SAAO,YAAY,KAAA"}