{"version":3,"file":"EmbraceInstrumentationBase.cjs","names":["InstrumentationAbstract","OTelPerformanceManager","session","log"],"sources":["../../../src/instrumentations/EmbraceInstrumentationBase/EmbraceInstrumentationBase.ts"],"sourcesContent":["import type {\n  Instrumentation,\n  InstrumentationConfig,\n  InstrumentationModuleDefinition,\n} from '@opentelemetry/instrumentation';\nimport type { LogManager } from '../../api-logs/index.ts';\nimport { log } from '../../api-logs/index.ts';\nimport type { SpanSessionManager } from '../../api-sessions/index.ts';\nimport { session } from '../../api-sessions/index.ts';\nimport type { LimitManagerInternal } from '../../managers/index.ts';\nimport type { PerformanceManager } from '../../utils/index.ts';\nimport { OTelPerformanceManager } from '../../utils/index.ts';\nimport { InstrumentationAbstract } from '../InstrumentationAbstract/index.ts';\nimport type { EmbraceInstrumentationBaseArgs } from './types.ts';\n\nexport abstract class EmbraceInstrumentationBase<\n    ConfigType extends InstrumentationConfig = InstrumentationConfig,\n  >\n  extends InstrumentationAbstract<ConfigType>\n  implements Instrumentation<ConfigType>\n{\n  private _sessionManager: SpanSessionManager;\n  private _logManager: LogManager;\n  private readonly _perf: PerformanceManager;\n  private _limitManager: LimitManagerInternal | undefined;\n\n  protected constructor({\n    instrumentationName,\n    instrumentationVersion,\n    config,\n    diag,\n    perf,\n    limitManager,\n  }: EmbraceInstrumentationBaseArgs<ConfigType>) {\n    super(instrumentationName, instrumentationVersion, config);\n    // optionally override the diag logger from the base class\n    if (diag) {\n      this._diag = diag;\n    }\n    this._perf = perf ?? new OTelPerformanceManager();\n    this._limitManager = limitManager;\n    this._sessionManager = session.getSpanSessionManager();\n    this._logManager = log.getLogManager();\n  }\n\n  /* Returns session provider */\n  protected get sessionManager(): SpanSessionManager {\n    return this._sessionManager;\n  }\n\n  /* Returns log manager */\n  protected get logManager(): LogManager {\n    return this._logManager;\n  }\n\n  /* Returns the performance manager */\n  protected get perf(): PerformanceManager {\n    return this._perf;\n  }\n\n  /* Returns the limit manager */\n  protected get limitManager(): LimitManagerInternal | undefined {\n    return this._limitManager;\n  }\n\n  public setLimitManager(limitManager: LimitManagerInternal): void {\n    this._limitManager = limitManager;\n  }\n\n  // no-op\n  // Note: OTel uses `| void` but we use `| undefined` for semantic clarity.\n  // `void` in union types is confusing because it mixes \"returns nothing\" with \"returns data or nothing\".\n  // `undefined` better expresses the intent: this method may or may not return a value.\n  protected override init():\n    | InstrumentationModuleDefinition\n    | InstrumentationModuleDefinition[]\n    | undefined {\n    return;\n  }\n\n  public setLogManager(logManager: LogManager): void {\n    this._logManager = logManager;\n  }\n\n  public setSessionManager(sessionManager: SpanSessionManager): void {\n    this._sessionManager = sessionManager;\n  }\n}\n"],"mappings":";;;;;;AAeA,IAAsB,6BAAtB,cAGUA,yEAAAA,wBAEV;CACE;CACA;CACA;CACA;CAEA,YAAsB,EACpB,qBACA,wBACA,QACA,MACA,MACA,gBAC6C;AAC7C,QAAM,qBAAqB,wBAAwB,OAAO;AAE1D,MAAI,KACF,MAAK,QAAQ;AAEf,OAAK,QAAQ,QAAQ,IAAIC,wDAAAA,wBAAwB;AACjD,OAAK,gBAAgB;AACrB,OAAK,kBAAkBC,gCAAAA,QAAQ,uBAAuB;AACtD,OAAK,cAAcC,wBAAAA,IAAI,eAAe;;CAIxC,IAAc,iBAAqC;AACjD,SAAO,KAAK;;CAId,IAAc,aAAyB;AACrC,SAAO,KAAK;;CAId,IAAc,OAA2B;AACvC,SAAO,KAAK;;CAId,IAAc,eAAiD;AAC7D,SAAO,KAAK;;CAGd,gBAAuB,cAA0C;AAC/D,OAAK,gBAAgB;;CAOvB,OAGc;CAId,cAAqB,YAA8B;AACjD,OAAK,cAAc;;CAGrB,kBAAyB,gBAA0C;AACjE,OAAK,kBAAkB"}