{"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,EAAE,EAAE;EACxB,MAAM,iBAAiB,+BAA+BA,mBAAAA;AAEtD,OAAK,UAAU,eAAe,UAAU,yBAAyB;;CAGnE,UACE,MACA,UAA+B,EAAE,EACjC,KACc;AACd,UAAQ,aAAa,QAAQ,aAAa,QAAQ,aAAa,EAAE;AACjE,UAAQ,WAAWC,6BAAAA,gBAAAA;EAEnB,MAAM,gBAAgB,QAAQ,aAC1BD,mBAAAA,MAAM,QAAQE,mBAAAA,QAAQ,QAAQ,EAAE,QAAQ,WAAW,GACnD;AAEJ,SAAO,IAAIC,yDAAAA,oBACT,KAAK,QAAQ,UAAU,MAAM,SAAS,cAAc,CACrD;;CAGH,UAA0CH,mBAAAA,MAAM;CAEhD,QAAe,SAA4C;EACzD,MAAM,OAAOA,mBAAAA,MAAM,QAAQ,QAAQ;AAEnC,MAAI,KACF,QAAO,IAAIG,yDAAAA,oBAAoB,KAAK"}