{"version":3,"file":"EmbraceTraceManager.cjs","names":["trace","KEY_EMB_TYPE","context","EmbraceExtendedSpan"],"sources":["../../../src/managers/EmbraceTraceManager/EmbraceTraceManager.ts"],"sourcesContent":["import type { Context, Tracer } from '@opentelemetry/api';\nimport { context, trace } from '@opentelemetry/api';\nimport type {\n  ExtendedSpan,\n  ExtendedSpanOptions,\n  TraceManager,\n  TraceManagerArgs,\n} from '../../api-traces/index.ts';\nimport { EMB_TYPES, KEY_EMB_TYPE } from '../../constants/index.ts';\nimport { EmbraceExtendedSpan } from './EmbraceExtendedSpan.ts';\n\nexport class EmbraceTraceManager implements TraceManager {\n  private readonly _tracer: Tracer;\n\n  public constructor({\n    tracerProvider: globalTraceProviderOverride,\n  }: TraceManagerArgs = {}) {\n    const tracerProvider = globalTraceProviderOverride ?? trace;\n\n    this._tracer = tracerProvider.getTracer('embrace-web-sdk-traces');\n  }\n\n  public startSpan(\n    name: string,\n    options: ExtendedSpanOptions = {},\n    ctx?: Context,\n  ): ExtendedSpan {\n    options.attributes = options.attributes ? options.attributes : {};\n    options.attributes[KEY_EMB_TYPE] = EMB_TYPES.Perf;\n\n    const activeContext = options.parentSpan\n      ? trace.setSpan(context.active(), options.parentSpan)\n      : ctx;\n\n    return new EmbraceExtendedSpan(\n      this._tracer.startSpan(name, options, activeContext),\n    );\n  }\n\n  public setSpan: TraceManager['setSpan'] = trace.setSpan;\n\n  public getSpan(context: Context): ExtendedSpan | undefined {\n    const span = trace.getSpan(context);\n\n    if (span) {\n      return new EmbraceExtendedSpan(span);\n    }\n\n    return undefined;\n  }\n}\n"],"mappings":";;;;;AAWA,IAAa,sBAAb,MAAyD;CACvD;CAEA,YAAmB,EACjB,gBAAgB,gCACI,CAAC,GAAG;EACxB,MAAM,iBAAiB,+BAA+BA,mBAAAA;EAEtD,KAAK,UAAU,eAAe,UAAU,wBAAwB;CAClE;CAEA,UACE,MACA,UAA+B,CAAC,GAChC,KACc;EACd,QAAQ,aAAa,QAAQ,aAAa,QAAQ,aAAa,CAAC;EAChE,QAAQ,WAAWC,6BAAAA,gBAAAA;EAEnB,MAAM,gBAAgB,QAAQ,aAC1BD,mBAAAA,MAAM,QAAQE,mBAAAA,QAAQ,OAAO,GAAG,QAAQ,UAAU,IAClD;EAEJ,OAAO,IAAIC,yDAAAA,oBACT,KAAK,QAAQ,UAAU,MAAM,SAAS,aAAa,CACrD;CACF;CAEA,UAA0CH,mBAAAA,MAAM;CAEhD,QAAe,SAA4C;EACzD,MAAM,OAAOA,mBAAAA,MAAM,QAAQ,OAAO;EAElC,IAAI,MACF,OAAO,IAAIG,yDAAAA,oBAAoB,IAAI;CAIvC;AACF"}