{"version":3,"file":"SignalCorrelationSpanProcessor.cjs","names":["isSoftNavigationSpan","isSessionPartSpan","KEY_EMB_TYPE"],"sources":["../../../src/processors/SignalCorrelationSpanProcessor/SignalCorrelationSpanProcessor.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { hrTimeToMilliseconds } from '@opentelemetry/core';\nimport type { Span, SpanProcessor } from '@opentelemetry/sdk-trace';\nimport { KEY_EMB_TYPE } from '../../constants/index.ts';\nimport { isSessionPartSpan, isSoftNavigationSpan } from '../../utils/index.ts';\nimport type { SignalBuffer } from '../utils/SignalBuffer.ts';\nimport type { SignalCorrelationSpanProcessorArgs } from './types.ts';\n\n/**\n * Records eligible spans as they start into a shared buffer, so a\n * soft-navigation span can later correlate the logs and spans that started\n * within its window.\n */\nexport class SignalCorrelationSpanProcessor implements SpanProcessor {\n  private readonly _buffer: SignalBuffer;\n\n  public constructor({ buffer }: SignalCorrelationSpanProcessorArgs) {\n    this._buffer = buffer;\n  }\n\n  public forceFlush(): Promise<void> {\n    return Promise.resolve(undefined);\n  }\n\n  public onStart(span: Span): void {\n    try {\n      if (isSoftNavigationSpan(span) || isSessionPartSpan(span)) {\n        return;\n      }\n      this._buffer.record({\n        kind: 'span',\n        id: span.spanContext().spanId,\n        startTime: hrTimeToMilliseconds(span.startTime),\n        type: span.attributes[KEY_EMB_TYPE] as string | undefined,\n      });\n    } catch (e) {\n      diag.error('failed to record span for correlation', e);\n    }\n  }\n\n  public onEnd(this: void): void {\n    // do nothing.\n  }\n\n  public shutdown(): Promise<void> {\n    return Promise.resolve(undefined);\n  }\n}\n"],"mappings":";;;;;;;;;;;AAaA,IAAa,iCAAb,MAAqE;CACnE;CAEA,YAAmB,EAAE,UAA8C;EACjE,KAAK,UAAU;CACjB;CAEA,aAAmC;EACjC,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;CAEA,QAAe,MAAkB;EAC/B,IAAI;GACF,IAAIA,6BAAAA,qBAAqB,IAAI,KAAKC,6BAAAA,kBAAkB,IAAI,GACtD;GAEF,KAAK,QAAQ,OAAO;IAClB,MAAM;IACN,IAAI,KAAK,YAAY,CAAC,CAAC;IACvB,YAAA,GAAA,oBAAA,qBAAA,CAAgC,KAAK,SAAS;IAC9C,MAAM,KAAK,WAAWC,6BAAAA;GACxB,CAAC;EACH,SAAS,GAAG;GACV,mBAAA,KAAK,MAAM,yCAAyC,CAAC;EACvD;CACF;CAEA,QAA+B,CAE/B;CAEA,WAAiC;EAC/B,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;AACF"}