{"version":3,"file":"BrowserSpanProcessor.cjs","names":["KEY_BROWSER_URL_FULL"],"sources":["../../../src/processors/BrowserSpanProcessor/BrowserSpanProcessor.ts"],"sourcesContent":["import type { ReadableSpan, SpanProcessor } from '@opentelemetry/sdk-trace-web';\nimport type { URLDocument } from '../../common/index.ts';\nimport { KEY_BROWSER_URL_FULL } from '../../constants/index.ts';\nimport type { BrowserSpanProcessorArgs } from './types.ts';\n\n/**\n * BrowserSpanProcessor sets the browser.url.full attribute on all spans.\n */\nexport class BrowserSpanProcessor implements SpanProcessor {\n  private readonly _urlDocument: URLDocument;\n\n  public constructor({\n    urlDocument = window.document,\n  }: BrowserSpanProcessorArgs = {}) {\n    this._urlDocument = urlDocument;\n  }\n\n  public forceFlush(): Promise<void> {\n    return Promise.resolve(undefined);\n  }\n\n  public onEnd(span: ReadableSpan): void {\n    if (!span.attributes[KEY_BROWSER_URL_FULL]) {\n      span.attributes[KEY_BROWSER_URL_FULL] = this._urlDocument.URL;\n    }\n  }\n\n  public onStart(this: void): void {\n    // do nothing.\n  }\n\n  public shutdown(): Promise<void> {\n    return Promise.resolve(undefined);\n  }\n}\n"],"mappings":";;;;;;AAQA,IAAa,uBAAb,MAA2D;CACzD;CAEA,YAAmB,EACjB,cAAc,OAAO,aACO,EAAE,EAAE;AAChC,OAAK,eAAe;;CAGtB,aAAmC;AACjC,SAAO,QAAQ,QAAQ,KAAA,EAAU;;CAGnC,MAAa,MAA0B;AACrC,MAAI,CAAC,KAAK,WAAA,oBACR,MAAK,WAAWA,6BAAAA,wBAAwB,KAAK,aAAa;;CAI9D,UAAiC;CAIjC,WAAiC;AAC/B,SAAO,QAAQ,QAAQ,KAAA,EAAU"}