{"version":3,"file":"utils.cjs","names":["PerformanceTimingNames"],"sources":["../../../../src/instrumentations/document-load/DocumentLoadInstrumentation/utils.ts"],"sourcesContent":["/*\n * Adapted from OpenTelemetry document-load instrumentation\n * https://github.com/open-telemetry/opentelemetry-js-contrib/tree/cc7eff47e2e7bad7678241b766753d5bd6dbc85f/packages/instrumentation-document-load\n */\n\nimport type { Span } from '@opentelemetry/api';\nimport type { PerformanceEntries } from '@opentelemetry/sdk-trace-web';\nimport { hasKey, PerformanceTimingNames } from '@opentelemetry/sdk-trace-web';\nimport { EventNames } from './enums/EventNames.ts';\n\nexport const getPerformanceNavigationEntries = (): PerformanceEntries => {\n  const entries: PerformanceEntries = {};\n  const performanceNavigationTiming =\n    window.performance.getEntriesByType('navigation')[0];\n\n  const keys = Object.values(PerformanceTimingNames);\n  keys.forEach((key: PerformanceTimingNames) => {\n    if (hasKey(performanceNavigationTiming, key)) {\n      const value = performanceNavigationTiming[key];\n      if (typeof value === 'number') {\n        entries[key] = value;\n      }\n    }\n  });\n\n  return entries;\n};\n\nconst performancePaintNames = {\n  'first-paint': EventNames.FIRST_PAINT,\n  'first-contentful-paint': EventNames.FIRST_CONTENTFUL_PAINT,\n};\n\nexport const addSpanPerformancePaintEvents = (span: Span) => {\n  const performancePaintTiming = window.performance.getEntriesByType('paint');\n  performancePaintTiming.forEach(({ name, startTime }) => {\n    if (hasKey(performancePaintNames, name)) {\n      span.addEvent(performancePaintNames[name], startTime);\n    }\n  });\n};\n"],"mappings":";;;;;AAUA,MAAa,wCAA4D;CACvE,MAAM,UAA8B,EAAE;CACtC,MAAM,8BACJ,OAAO,YAAY,iBAAiB,aAAa,CAAC;AAEvC,QAAO,OAAOA,6BAAAA,uBAAuB,CAC7C,SAAS,QAAgC;AAC5C,OAAA,GAAA,6BAAA,QAAW,6BAA6B,IAAI,EAAE;GAC5C,MAAM,QAAQ,4BAA4B;AAC1C,OAAI,OAAO,UAAU,SACnB,SAAQ,OAAO;;GAGnB;AAEF,QAAO;;AAGT,MAAM,wBAAwB;CAC5B,eAAA;CACA,0BAAA;CACD;AAED,MAAa,iCAAiC,SAAe;AAC5B,QAAO,YAAY,iBAAiB,QAAQ,CACpD,SAAS,EAAE,MAAM,gBAAgB;AACtD,OAAA,GAAA,6BAAA,QAAW,uBAAuB,KAAK,CACrC,MAAK,SAAS,sBAAsB,OAAO,UAAU;GAEvD"}