/usr/share/grafana/public/build
{"version":3,"file":"1484.3da94e44ecdadcd342d4.js","mappings":"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","sources":["webpack://grafana/./node_modules/@opentelemetry/core/build/esm/trace/W3CTraceContextPropagator.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/trace/suppress-tracing.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/platform/browser/timer-util.js","webpack://grafana/./node_modules/@opentelemetry/otlp-transformer/build/src/common/internal.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/common/logging-error-handler.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/baggage/utils.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/status.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/version.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/semconv.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/platform/browser/sdk-info.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/propagation/composite.js","webpack://grafana/./node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/utils/lodash.merge.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/utils/merge.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/context/context.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/platform/browser/environment.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/noop.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/internalLogger/const.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/unpatchedConsole/const.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/extensions/baseExtension.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/instrumentations/base.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/version.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/date.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/shortId.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/reactive.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/transports/const.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/is.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/json.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/deepEqual.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/const.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/events/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/utils.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/exceptions/const.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/exceptions/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/logs/const.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/logs/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/measurements/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/meta/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/traces/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/ItemBuffer.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/userActionLifecycleHandler.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/api/initialize.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/userActions/const.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/userActions/domMutationMonitor.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/utils/url.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/userActions/httpRequestMonitor.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/consts.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/utils/webStorage.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/instrumentationConstants.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/performanceConstants.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/performanceUtils.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/navigation.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/resource.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/performance/instrumentation.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/userActions/performanceEntriesMonitor.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/userActions/util.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/userActions/processUserActionEventHandler.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/userActions/instrumentation.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/const.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/getValueAndTypeFromMessage.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/const.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/buildStackFrame.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/getStackFramesFromError.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/getErrorDetails.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/registerOnerror.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/registerOnunhandledrejection.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/instrumentation.js","webpack://grafana/./node_modules/web-vitals/dist/web-vitals.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/webVitalsBasic.js","webpack://grafana/./node_modules/web-vitals/dist/web-vitals.attribution.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/webVitalsWithAttribution.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/webVitals/instrumentation.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/semantic.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/metas/session/createSession.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sampling.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/utils/throttle.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sessionConstants.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/sessionManagerUtils.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/PersistentSessionsManager.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/VolatileSessionManager.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/sessionManager/getSessionManagerByConfig.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/session/instrumentation.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/view/instrumentation.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/csp/instrumentation.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/console/instrumentation.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/config/getWebInstrumentations.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/transports/base.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/promiseBuffer.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/transports/utils.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/transports/fetch/transport.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/instrumentations/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/instrumentations/registerInitial.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/internalLogger/createInternalLogger.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/internalLogger/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/metas/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/utils/sourceMaps.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/metas/registerInitial.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/transports/batchExecutor.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/transports/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/transports/registerInitial.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/unpatchedConsole/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/initialize.js","webpack://grafana/./node_modules/@grafana/faro-core/dist/esm/config/const.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/consts.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/instrumentations/errors/stackFrames/parseStacktrace.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/metas/browser/meta.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/metas/k6/meta.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/metas/page/meta.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/config/makeCoreConfig.js","webpack://grafana/./node_modules/@grafana/faro-web-sdk/dist/esm/initialize.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/api/metrics.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/metrics-api.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/platform/browser/globalThis.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/internal/global-utils.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/NoopLogger.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/NoopLoggerProvider.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/ProxyLogger.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/ProxyLoggerProvider.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/api/logs.js","webpack://grafana/./node_modules/@opentelemetry/api-logs/build/esm/index.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation/build/esm/autoLoaderUtils.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation/build/esm/autoLoader.js","webpack://grafana/./node_modules/@opentelemetry/resources/build/esm/platform/browser/default-service-name.js","webpack://grafana/./node_modules/@opentelemetry/resources/build/esm/utils.js","webpack://grafana/./node_modules/@opentelemetry/resources/build/esm/ResourceImpl.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/span_kind.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/enums.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/Span.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/Sampler.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/AlwaysOffSampler.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/AlwaysOnSampler.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/ParentBasedSampler.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/TraceIdRatioBasedSampler.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/config.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/utility.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/browser/RandomIdGenerator.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/MultiSpanProcessor.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/BasicTracerProvider.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-web/build/esm/StackContextManager.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-web/build/esm/WebTracerProvider.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/export/BatchSpanProcessorBase.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/browser/export/BatchSpanProcessor.js","webpack://grafana/./node_modules/@opentelemetry/semantic-conventions/build/esm/internal/utils.js","webpack://grafana/./node_modules/@opentelemetry/semantic-conventions/build/esm/resource/SemanticResourceAttributes.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/semconv.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/faroMetaAttributesSpanProcessor.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/faroTraceExporter.utils.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/faroTraceExporter.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/faroUserActionSpanProcessor.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation/build/esm/shimmer.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation/build/esm/platform/browser/instrumentation.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation/build/esm/semconvStability.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation/build/esm/utils.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-web/build/esm/enums/PerformanceTimingNames.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-web/build/esm/semconv.js","webpack://grafana/./node_modules/@opentelemetry/sdk-trace-web/build/esm/utils.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-fetch/build/esm/enums/AttributeNames.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-fetch/build/esm/utils.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-fetch/build/esm/version.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-fetch/build/esm/fetch.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-xml-http-request/build/esm/semconv.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-xml-http-request/build/esm/enums/EventNames.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-xml-http-request/build/esm/utils.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-xml-http-request/build/esm/version.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-xml-http-request/build/esm/enums/AttributeNames.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-xml-http-request/build/esm/xhr.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/faroXhrInstrumentation.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/instrumentationUtils.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/getDefaultOTELInstrumentations.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/sampler.js","webpack://grafana/./node_modules/@grafana/faro-web-tracing/dist/esm/instrumentation.js","webpack://grafana/./public/app/core/services/echo/backends/grafana-javascript-agent/EchoSrvTransport.ts","webpack://grafana/./public/app/core/services/echo/backends/grafana-javascript-agent/beforeSendHandler.ts","webpack://grafana/./public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.ts","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/context-api.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/api/diag.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/api/propagation.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/propagation-api.js","webpack://grafana/./node_modules/@opentelemetry/otlp-transformer/build/src/common/utils.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/internal/validators.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/trace/TraceState.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/common/time.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js","webpack://grafana/./node_modules/@opentelemetry/otlp-transformer/build/src/common/hex-to-binary.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/context-utils.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/api/trace.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace-api.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/platform/browser/performance.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/version.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/internal/semver.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/internal/global-utils.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/baggage/propagation/W3CBaggagePropagator.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/diag/types.js","webpack://grafana/./node_modules/ua-parser-js/src/ua-parser.js","webpack://grafana/./node_modules/@opentelemetry/instrumentation-fetch/build/src/semconv.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/common/global-error-handler.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/utils/url.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/diag-api.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/api/context.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/common/attributes.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/baggage/constants.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/common/anchored-clock.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/trace/rpc-metadata.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/utils/timeout.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/utils/configuration.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/internal/exporter.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/index.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/platform/browser/globalThis.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/ExportResult.js","webpack://grafana/./node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal.js","webpack://grafana/./node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/baggage/utils.js","webpack://grafana/./node_modules/@opentelemetry/otlp-transformer/build/src/trace/internal-types.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/utils/promise.js","webpack://grafana/./node_modules/@opentelemetry/core/build/esm/utils/callback.js"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isSpanContextValid, trace, TraceFlags, } from '@opentelemetry/api';\nimport { isTracingSuppressed } from './suppress-tracing';\nimport { TraceState } from './TraceState';\nexport const TRACE_PARENT_HEADER = 'traceparent';\nexport const TRACE_STATE_HEADER = 'tracestate';\nconst VERSION = '00';\nconst VERSION_PART = '(?!ff)[\\\\da-f]{2}';\nconst TRACE_ID_PART = '(?![0]{32})[\\\\da-f]{32}';\nconst PARENT_ID_PART = '(?![0]{16})[\\\\da-f]{16}';\nconst FLAGS_PART = '[\\\\da-f]{2}';\nconst TRACE_PARENT_REGEX = new RegExp(`^\\\\s?(${VERSION_PART})-(${TRACE_ID_PART})-(${PARENT_ID_PART})-(${FLAGS_PART})(-.*)?\\\\s?$`);\n/**\n * Parses information from the [traceparent] span tag and converts it into {@link SpanContext}\n * @param traceParent - A meta property that comes from server.\n * It should be dynamically generated server side to have the server's request trace Id,\n * a parent span Id that was set on the server's request span,\n * and the trace flags to indicate the server's sampling decision\n * (01 = sampled, 00 = not sampled).\n * for example: '{version}-{traceId}-{spanId}-{sampleDecision}'\n * For more information see {@link https://www.w3.org/TR/trace-context/}\n */\nexport function parseTraceParent(traceParent) {\n const match = TRACE_PARENT_REGEX.exec(traceParent);\n if (!match)\n return null;\n // According to the specification the implementation should be compatible\n // with future versions. If there are more parts, we only reject it if it's using version 00\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\n if (match[1] === '00' && match[5])\n return null;\n return {\n traceId: match[2],\n spanId: match[3],\n traceFlags: parseInt(match[4], 16),\n };\n}\n/**\n * Propagates {@link SpanContext} through Trace Context format propagation.\n *\n * Based on the Trace Context specification:\n * https://www.w3.org/TR/trace-context/\n */\nexport class W3CTraceContextPropagator {\n inject(context, carrier, setter) {\n const spanContext = trace.getSpanContext(context);\n if (!spanContext ||\n isTracingSuppressed(context) ||\n !isSpanContextValid(spanContext))\n return;\n const traceParent = `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-0${Number(spanContext.traceFlags || TraceFlags.NONE).toString(16)}`;\n setter.set(carrier, TRACE_PARENT_HEADER, traceParent);\n if (spanContext.traceState) {\n setter.set(carrier, TRACE_STATE_HEADER, spanContext.traceState.serialize());\n }\n }\n extract(context, carrier, getter) {\n const traceParentHeader = getter.get(carrier, TRACE_PARENT_HEADER);\n if (!traceParentHeader)\n return context;\n const traceParent = Array.isArray(traceParentHeader)\n ? traceParentHeader[0]\n : traceParentHeader;\n if (typeof traceParent !== 'string')\n return context;\n const spanContext = parseTraceParent(traceParent);\n if (!spanContext)\n return context;\n spanContext.isRemote = true;\n const traceStateHeader = getter.get(carrier, TRACE_STATE_HEADER);\n if (traceStateHeader) {\n // If more than one `tracestate` header is found, we merge them into a\n // single header.\n const state = Array.isArray(traceStateHeader)\n ? traceStateHeader.join(',')\n : traceStateHeader;\n spanContext.traceState = new TraceState(typeof state === 'string' ? state : undefined);\n }\n return trace.setSpanContext(context, spanContext);\n }\n fields() {\n return [TRACE_PARENT_HEADER, TRACE_STATE_HEADER];\n }\n}\n//# sourceMappingURL=W3CTraceContextPropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContextKey } from '@opentelemetry/api';\nconst SUPPRESS_TRACING_KEY = createContextKey('OpenTelemetry SDK Context Key SUPPRESS_TRACING');\nexport function suppressTracing(context) {\n return context.setValue(SUPPRESS_TRACING_KEY, true);\n}\nexport function unsuppressTracing(context) {\n return context.deleteValue(SUPPRESS_TRACING_KEY);\n}\nexport function isTracingSuppressed(context) {\n return context.getValue(SUPPRESS_TRACING_KEY) === true;\n}\n//# sourceMappingURL=suppress-tracing.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function unrefTimer(_timer) { }\n//# sourceMappingURL=timer-util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toAnyValue = exports.toKeyValue = exports.toAttributes = exports.createInstrumentationScope = exports.createResource = void 0;\nfunction createResource(resource) {\n return {\n attributes: toAttributes(resource.attributes),\n droppedAttributesCount: 0,\n };\n}\nexports.createResource = createResource;\nfunction createInstrumentationScope(scope) {\n return {\n name: scope.name,\n version: scope.version,\n };\n}\nexports.createInstrumentationScope = createInstrumentationScope;\nfunction toAttributes(attributes) {\n return Object.keys(attributes).map(key => toKeyValue(key, attributes[key]));\n}\nexports.toAttributes = toAttributes;\nfunction toKeyValue(key, value) {\n return {\n key: key,\n value: toAnyValue(value),\n };\n}\nexports.toKeyValue = toKeyValue;\nfunction toAnyValue(value) {\n const t = typeof value;\n if (t === 'string')\n return { stringValue: value };\n if (t === 'number') {\n if (!Number.isInteger(value))\n return { doubleValue: value };\n return { intValue: value };\n }\n if (t === 'boolean')\n return { boolValue: value };\n if (value instanceof Uint8Array)\n return { bytesValue: value };\n if (Array.isArray(value))\n return { arrayValue: { values: value.map(toAnyValue) } };\n if (t === 'object' && value != null)\n return {\n kvlistValue: {\n values: Object.entries(value).map(([k, v]) => toKeyValue(k, v)),\n },\n };\n return {};\n}\nexports.toAnyValue = toAnyValue;\n//# sourceMappingURL=internal.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\n/**\n * Returns a function that logs an error using the provided logger, or a\n * console logger if one was not provided.\n */\nexport function loggingErrorHandler() {\n return (ex) => {\n diag.error(stringifyException(ex));\n };\n}\n/**\n * Converts an exception into a string representation\n * @param {Exception} ex\n */\nfunction stringifyException(ex) {\n if (typeof ex === 'string') {\n return ex;\n }\n else {\n return JSON.stringify(flattenException(ex));\n }\n}\n/**\n * Flattens an exception into key-value pairs by traversing the prototype chain\n * and coercing values to strings. Duplicate properties will not be overwritten;\n * the first insert wins.\n */\nfunction flattenException(ex) {\n const result = {};\n let current = ex;\n while (current !== null) {\n Object.getOwnPropertyNames(current).forEach(propertyName => {\n if (result[propertyName])\n return;\n const value = current[propertyName];\n if (value) {\n result[propertyName] = String(value);\n }\n });\n current = Object.getPrototypeOf(current);\n }\n return result;\n}\n//# sourceMappingURL=logging-error-handler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar BaggageImpl = /** @class */ (function () {\n function BaggageImpl(entries) {\n this._entries = entries ? new Map(entries) : new Map();\n }\n BaggageImpl.prototype.getEntry = function (key) {\n var entry = this._entries.get(key);\n if (!entry) {\n return undefined;\n }\n return Object.assign({}, entry);\n };\n BaggageImpl.prototype.getAllEntries = function () {\n return Array.from(this._entries.entries()).map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return [k, v];\n });\n };\n BaggageImpl.prototype.setEntry = function (key, entry) {\n var newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.set(key, entry);\n return newBaggage;\n };\n BaggageImpl.prototype.removeEntry = function (key) {\n var newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.delete(key);\n return newBaggage;\n };\n BaggageImpl.prototype.removeEntries = function () {\n var e_1, _a;\n var keys = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n keys[_i] = arguments[_i];\n }\n var newBaggage = new BaggageImpl(this._entries);\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n newBaggage._entries.delete(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return newBaggage;\n };\n BaggageImpl.prototype.clear = function () {\n return new BaggageImpl();\n };\n return BaggageImpl;\n}());\nexport { BaggageImpl };\n//# sourceMappingURL=baggage-impl.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Symbol used to make BaggageEntryMetadata an opaque type\n */\nexport var baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');\n//# sourceMappingURL=symbol.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DiagAPI } from '../api/diag';\nimport { BaggageImpl } from './internal/baggage-impl';\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\nvar diag = DiagAPI.instance();\n/**\n * Create a new Baggage with optional entries\n *\n * @param entries An array of baggage entries the new baggage should contain\n */\nexport function createBaggage(entries) {\n if (entries === void 0) { entries = {}; }\n return new BaggageImpl(new Map(Object.entries(entries)));\n}\n/**\n * Create a serializable BaggageEntryMetadata object from a string.\n *\n * @param str string metadata. Format is currently not defined by the spec and has no special meaning.\n *\n */\nexport function baggageEntryMetadataFromString(str) {\n if (typeof str !== 'string') {\n diag.error(\"Cannot create baggage metadata from unknown type: \" + typeof str);\n str = '';\n }\n return {\n __TYPE__: baggageEntryMetadataSymbol,\n toString: function () {\n return str;\n },\n };\n}\n//# sourceMappingURL=utils.js.map","/**\n * An enumeration of status codes.\n */\nexport var SpanStatusCode;\n(function (SpanStatusCode) {\n /**\n * The default status.\n */\n SpanStatusCode[SpanStatusCode[\"UNSET\"] = 0] = \"UNSET\";\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n SpanStatusCode[SpanStatusCode[\"OK\"] = 1] = \"OK\";\n /**\n * The operation contains an error.\n */\n SpanStatusCode[SpanStatusCode[\"ERROR\"] = 2] = \"ERROR\";\n})(SpanStatusCode || (SpanStatusCode = {}));\n//# sourceMappingURL=status.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '2.0.1';\n//# sourceMappingURL=version.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * The name of the runtime of this process.\n *\n * @example OpenJDK Runtime Environment\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_RUNTIME_NAME = 'process.runtime.name';\n//# sourceMappingURL=semconv.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { VERSION } from '../../version';\nimport { ATTR_TELEMETRY_SDK_NAME, ATTR_TELEMETRY_SDK_LANGUAGE, TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS, ATTR_TELEMETRY_SDK_VERSION, } from '@opentelemetry/semantic-conventions';\nimport { ATTR_PROCESS_RUNTIME_NAME } from '../../semconv';\n/** Constants describing the SDK in use */\nexport const SDK_INFO = {\n [ATTR_TELEMETRY_SDK_NAME]: 'opentelemetry',\n [ATTR_PROCESS_RUNTIME_NAME]: 'browser',\n [ATTR_TELEMETRY_SDK_LANGUAGE]: TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS,\n [ATTR_TELEMETRY_SDK_VERSION]: VERSION,\n};\n//# sourceMappingURL=sdk-info.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag, } from '@opentelemetry/api';\n/** Combines multiple propagators into a single propagator. */\nexport class CompositePropagator {\n _propagators;\n _fields;\n /**\n * Construct a composite propagator from a list of propagators.\n *\n * @param [config] Configuration object for composite propagator\n */\n constructor(config = {}) {\n this._propagators = config.propagators ?? [];\n this._fields = Array.from(new Set(this._propagators\n // older propagators may not have fields function, null check to be sure\n .map(p => (typeof p.fields === 'function' ? p.fields() : []))\n .reduce((x, y) => x.concat(y), [])));\n }\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same carrier key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to inject\n * @param carrier Carrier into which context will be injected\n */\n inject(context, carrier, setter) {\n for (const propagator of this._propagators) {\n try {\n propagator.inject(context, carrier, setter);\n }\n catch (err) {\n diag.warn(`Failed to inject with ${propagator.constructor.name}. Err: ${err.message}`);\n }\n }\n }\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same context key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to add values to\n * @param carrier Carrier from which to extract context\n */\n extract(context, carrier, getter) {\n return this._propagators.reduce((ctx, propagator) => {\n try {\n return propagator.extract(ctx, carrier, getter);\n }\n catch (err) {\n diag.warn(`Failed to extract with ${propagator.constructor.name}. Err: ${err.message}`);\n }\n return ctx;\n }, context);\n }\n fields() {\n // return a new array so our fields cannot be modified\n return this._fields.slice();\n }\n}\n//# sourceMappingURL=composite.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates/registry/stable/attributes.ts.j2\n//----------------------------------------------------------------------------------------------------------\n/**\n * ASP.NET Core exception middleware handling result.\n *\n * @example handled\n * @example unhandled\n */\nexport const ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT = 'aspnetcore.diagnostics.exception.result';\n/**\n * Enum value \"aborted\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception handling didn't run because the request was aborted.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED = \"aborted\";\n/**\n * Enum value \"handled\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception was handled by the exception handling middleware.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED = \"handled\";\n/**\n * Enum value \"skipped\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception handling was skipped because the response had started.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED = \"skipped\";\n/**\n * Enum value \"unhandled\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception was not handled by the exception handling middleware.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED = \"unhandled\";\n/**\n * Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.\n *\n * @example Contoso.MyHandler\n */\nexport const ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE = 'aspnetcore.diagnostics.handler.type';\n/**\n * Rate limiting policy name.\n *\n * @example fixed\n * @example sliding\n * @example token\n */\nexport const ATTR_ASPNETCORE_RATE_LIMITING_POLICY = 'aspnetcore.rate_limiting.policy';\n/**\n * Rate-limiting result, shows whether the lease was acquired or contains a rejection reason\n *\n * @example acquired\n * @example request_canceled\n */\nexport const ATTR_ASPNETCORE_RATE_LIMITING_RESULT = 'aspnetcore.rate_limiting.result';\n/**\n * Enum value \"acquired\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease was acquired\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED = \"acquired\";\n/**\n * Enum value \"endpoint_limiter\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease request was rejected by the endpoint limiter\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER = \"endpoint_limiter\";\n/**\n * Enum value \"global_limiter\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease request was rejected by the global limiter\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER = \"global_limiter\";\n/**\n * Enum value \"request_canceled\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease request was canceled\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED = \"request_canceled\";\n/**\n * Flag indicating if request was handled by the application pipeline.\n *\n * @example true\n */\nexport const ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED = 'aspnetcore.request.is_unhandled';\n/**\n * A value that indicates whether the matched route is a fallback route.\n *\n * @example true\n */\nexport const ATTR_ASPNETCORE_ROUTING_IS_FALLBACK = 'aspnetcore.routing.is_fallback';\n/**\n * Match result - success or failure\n *\n * @example success\n * @example failure\n */\nexport const ATTR_ASPNETCORE_ROUTING_MATCH_STATUS = 'aspnetcore.routing.match_status';\n/**\n * Enum value \"failure\" for attribute {@link ATTR_ASPNETCORE_ROUTING_MATCH_STATUS}.\n *\n * Match failed\n */\nexport const ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE = \"failure\";\n/**\n * Enum value \"success\" for attribute {@link ATTR_ASPNETCORE_ROUTING_MATCH_STATUS}.\n *\n * Match succeeded\n */\nexport const ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS = \"success\";\n/**\n * A value that indicates whether the user is authenticated.\n *\n * @example true\n */\nexport const ATTR_ASPNETCORE_USER_IS_AUTHENTICATED = 'aspnetcore.user.is_authenticated';\n/**\n * Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\n *\n * @example client.example.com\n * @example 10.1.2.80\n * @example /tmp/my.sock\n *\n * @note When observed from the server side, and when communicating through an intermediary, `client.address` **SHOULD** represent the client address behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_CLIENT_ADDRESS = 'client.address';\n/**\n * Client port number.\n *\n * @example 65123\n *\n * @note When observed from the server side, and when communicating through an intermediary, `client.port` **SHOULD** represent the client port behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_CLIENT_PORT = 'client.port';\n/**\n * The column number in `code.file.path` best representing the operation. It **SHOULD** point within the code unit named in `code.function.name`. This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Line'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example 16\n */\nexport const ATTR_CODE_COLUMN_NUMBER = 'code.column.number';\n/**\n * The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Function'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example \"/usr/local/MyApplication/content_root/app/index.php\"\n */\nexport const ATTR_CODE_FILE_PATH = 'code.file.path';\n/**\n * The method or function fully-qualified name without arguments. The value should fit the natural representation of the language runtime, which is also likely the same used within `code.stacktrace` attribute value. This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Function'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example com.example.MyHttpService.serveRequest\n * @example GuzzleHttp\\\\Client::transfer\n * @example fopen\n *\n * @note Values and format depends on each language runtime, thus it is impossible to provide an exhaustive list of examples.\n * The values are usually the same (or prefixes of) the ones found in native stack trace representation stored in\n * `code.stacktrace` without information on arguments.\n *\n * Examples:\n *\n * - Java method: `com.example.MyHttpService.serveRequest`\n * - Java anonymous class method: `com.mycompany.Main$1.myMethod`\n * - Java lambda method: `com.mycompany.Main$$Lambda/0x0000748ae4149c00.myMethod`\n * - PHP function: `GuzzleHttp\\Client::transfer`\n * - Go function: `github.com/my/repo/pkg.foo.func5`\n * - Elixir: `OpenTelemetry.Ctx.new`\n * - Erlang: `opentelemetry_ctx:new`\n * - Rust: `playground::my_module::my_cool_func`\n * - C function: `fopen`\n */\nexport const ATTR_CODE_FUNCTION_NAME = 'code.function.name';\n/**\n * The line number in `code.file.path` best representing the operation. It **SHOULD** point within the code unit named in `code.function.name`. This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Line'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example 42\n */\nexport const ATTR_CODE_LINE_NUMBER = 'code.line.number';\n/**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is identical to [`exception.stacktrace`](/docs/exceptions/exceptions-spans.md#stacktrace-representation). This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Location'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example \"at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\\\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\\\n at com.example.GenerateTrace.main(GenerateTrace.java:5)\\\\n\"\n */\nexport const ATTR_CODE_STACKTRACE = 'code.stacktrace';\n/**\n * The name of a collection (table, container) within the database.\n *\n * @example public.users\n * @example customers\n *\n * @note It is **RECOMMENDED** to capture the value as provided by the application\n * without attempting to do any case normalization.\n *\n * The collection name **SHOULD NOT** be extracted from `db.query.text`,\n * when the database system supports query text with multiple collections\n * in non-batch operations.\n *\n * For batch operations, if the individual operations are known to have the same\n * collection name then that collection name **SHOULD** be used.\n */\nexport const ATTR_DB_COLLECTION_NAME = 'db.collection.name';\n/**\n * The name of the database, fully qualified within the server address and port.\n *\n * @example customers\n * @example test.users\n *\n * @note If a database system has multiple namespace components, they **SHOULD** be concatenated from the most general to the most specific namespace component, using `|` as a separator between the components. Any missing components (and their associated separators) **SHOULD** be omitted.\n * Semantic conventions for individual database systems **SHOULD** document what `db.namespace` means in the context of that system.\n * It is **RECOMMENDED** to capture the value as provided by the application without attempting to do any case normalization.\n */\nexport const ATTR_DB_NAMESPACE = 'db.namespace';\n/**\n * The number of queries included in a batch operation.\n *\n * @example 2\n * @example 3\n * @example 4\n *\n * @note Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` **SHOULD** never be `1`.\n */\nexport const ATTR_DB_OPERATION_BATCH_SIZE = 'db.operation.batch.size';\n/**\n * The name of the operation or command being executed.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @note It is **RECOMMENDED** to capture the value as provided by the application\n * without attempting to do any case normalization.\n *\n * The operation name **SHOULD NOT** be extracted from `db.query.text`,\n * when the database system supports query text with multiple operations\n * in non-batch operations.\n *\n * If spaces can occur in the operation name, multiple consecutive spaces\n * **SHOULD** be normalized to a single space.\n *\n * For batch operations, if the individual operations are known to have the same operation name\n * then that operation name **SHOULD** be used prepended by `BATCH `,\n * otherwise `db.operation.name` **SHOULD** be `BATCH` or some other database\n * system specific term if more applicable.\n */\nexport const ATTR_DB_OPERATION_NAME = 'db.operation.name';\n/**\n * Low cardinality summary of a database query.\n *\n * @example SELECT wuser_table\n * @example INSERT shipping_details SELECT orders\n * @example get user by id\n *\n * @note The query summary describes a class of database queries and is useful\n * as a grouping key, especially when analyzing telemetry for database\n * calls involving complex queries.\n *\n * Summary may be available to the instrumentation through\n * instrumentation hooks or other means. If it is not available, instrumentations\n * that support query parsing **SHOULD** generate a summary following\n * [Generating query summary](/docs/database/database-spans.md#generating-a-summary-of-the-query)\n * section.\n */\nexport const ATTR_DB_QUERY_SUMMARY = 'db.query.summary';\n/**\n * The database query being executed.\n *\n * @example SELECT * FROM wuser_table where username = ?\n * @example SET mykey ?\n *\n * @note For sanitization see [Sanitization of `db.query.text`](/docs/database/database-spans.md#sanitization-of-dbquerytext).\n * For batch operations, if the individual operations are known to have the same query text then that query text **SHOULD** be used, otherwise all of the individual query texts **SHOULD** be concatenated with separator `; ` or some other database system specific separator if more applicable.\n * Parameterized query text **SHOULD NOT** be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.\n */\nexport const ATTR_DB_QUERY_TEXT = 'db.query.text';\n/**\n * Database response status code.\n *\n * @example 102\n * @example ORA-17002\n * @example 08P01\n * @example 404\n *\n * @note The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.\n * Semantic conventions for individual database systems **SHOULD** document what `db.response.status_code` means in the context of that system.\n */\nexport const ATTR_DB_RESPONSE_STATUS_CODE = 'db.response.status_code';\n/**\n * The name of a stored procedure within the database.\n *\n * @example GetCustomer\n *\n * @note It is **RECOMMENDED** to capture the value as provided by the application\n * without attempting to do any case normalization.\n *\n * For batch operations, if the individual operations are known to have the same\n * stored procedure name then that stored procedure name **SHOULD** be used.\n */\nexport const ATTR_DB_STORED_PROCEDURE_NAME = 'db.stored_procedure.name';\n/**\n * The database management system (DBMS) product as identified by the client instrumentation.\n *\n * @note The actual DBMS may differ from the one identified by the client. For example, when using PostgreSQL client libraries to connect to a CockroachDB, the `db.system.name` is set to `postgresql` based on the instrumentation's best knowledge.\n */\nexport const ATTR_DB_SYSTEM_NAME = 'db.system.name';\n/**\n * Enum value \"mariadb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MariaDB](https://mariadb.org/)\n */\nexport const DB_SYSTEM_NAME_VALUE_MARIADB = \"mariadb\";\n/**\n * Enum value \"microsoft.sql_server\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Microsoft SQL Server](https://www.microsoft.com/sql-server)\n */\nexport const DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER = \"microsoft.sql_server\";\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MySQL](https://www.mysql.com/)\n */\nexport const DB_SYSTEM_NAME_VALUE_MYSQL = \"mysql\";\n/**\n * Enum value \"postgresql\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [PostgreSQL](https://www.postgresql.org/)\n */\nexport const DB_SYSTEM_NAME_VALUE_POSTGRESQL = \"postgresql\";\n/**\n * Name of the garbage collector managed heap generation.\n *\n * @example gen0\n * @example gen1\n * @example gen2\n */\nexport const ATTR_DOTNET_GC_HEAP_GENERATION = 'dotnet.gc.heap.generation';\n/**\n * Enum value \"gen0\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Generation 0\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_GEN0 = \"gen0\";\n/**\n * Enum value \"gen1\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Generation 1\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_GEN1 = \"gen1\";\n/**\n * Enum value \"gen2\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Generation 2\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_GEN2 = \"gen2\";\n/**\n * Enum value \"loh\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Large Object Heap\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_LOH = \"loh\";\n/**\n * Enum value \"poh\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Pinned Object Heap\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_POH = \"poh\";\n/**\n * Describes a class of error the operation ended with.\n *\n * @example timeout\n * @example java.net.UnknownHostException\n * @example server_certificate_invalid\n * @example 500\n *\n * @note The `error.type` **SHOULD** be predictable, and **SHOULD** have low cardinality.\n *\n * When `error.type` is set to a type (e.g., an exception type), its\n * canonical class name identifying the type within the artifact **SHOULD** be used.\n *\n * Instrumentations **SHOULD** document the list of errors they report.\n *\n * The cardinality of `error.type` within one instrumentation library **SHOULD** be low.\n * Telemetry consumers that aggregate data from multiple instrumentation libraries and applications\n * should be prepared for `error.type` to have high cardinality at query time when no\n * additional filters are applied.\n *\n * If the operation has completed successfully, instrumentations **SHOULD NOT** set `error.type`.\n *\n * If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status codes),\n * it's **RECOMMENDED** to:\n *\n * - Use a domain-specific attribute\n * - Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.\n */\nexport const ATTR_ERROR_TYPE = 'error.type';\n/**\n * Enum value \"_OTHER\" for attribute {@link ATTR_ERROR_TYPE}.\n *\n * A fallback error value to be used when the instrumentation doesn't define a custom value.\n */\nexport const ERROR_TYPE_VALUE_OTHER = \"_OTHER\";\n/**\n * Indicates that the exception is escaping the scope of the span.\n *\n * @deprecated It's no longer recommended to record exceptions that are handled and do not escape the scope of a span.\n */\nexport const ATTR_EXCEPTION_ESCAPED = 'exception.escaped';\n/**\n * The exception message.\n *\n * @example Division by zero\n * @example Can't convert 'int' object to str implicitly\n */\nexport const ATTR_EXCEPTION_MESSAGE = 'exception.message';\n/**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\n *\n * @example \"Exception in thread \"main\" java.lang.RuntimeException: Test exception\\\\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\\\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\\\n at com.example.GenerateTrace.main(GenerateTrace.java:5)\\\\n\"\n */\nexport const ATTR_EXCEPTION_STACKTRACE = 'exception.stacktrace';\n/**\n * The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\n *\n * @example java.net.ConnectException\n * @example OSError\n */\nexport const ATTR_EXCEPTION_TYPE = 'exception.type';\n/**\n * HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.\n *\n * @example [\"application/json\"]\n * @example [\"1.2.3.4\", \"1.2.3.5\"]\n *\n * @note Instrumentations **SHOULD** require an explicit configuration of which headers are to be captured.\n * Including all request headers can be a security risk - explicit configuration helps avoid leaking sensitive information.\n *\n * The `User-Agent` header is already captured in the `user_agent.original` attribute.\n * Users **MAY** explicitly configure instrumentations to capture them even though it is not recommended.\n *\n * The attribute value **MUST** consist of either multiple header values as an array of strings\n * or a single-item array containing a possibly comma-concatenated string, depending on the way\n * the HTTP library provides access to headers.\n *\n * Examples:\n *\n * - A header `Content-Type: application/json` **SHOULD** be recorded as the `http.request.header.content-type`\n * attribute with value `[\"application/json\"]`.\n * - A header `X-Forwarded-For: 1.2.3.4, 1.2.3.5` **SHOULD** be recorded as the `http.request.header.x-forwarded-for`\n * attribute with value `[\"1.2.3.4\", \"1.2.3.5\"]` or `[\"1.2.3.4, 1.2.3.5\"]` depending on the HTTP library.\n */\nexport const ATTR_HTTP_REQUEST_HEADER = (key) => `http.request.header.${key}`;\n/**\n * HTTP request method.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @note HTTP request method value **SHOULD** be \"known\" to the instrumentation.\n * By default, this convention defines \"known\" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)\n * and the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html).\n *\n * If the HTTP request method is not known to instrumentation, it **MUST** set the `http.request.method` attribute to `_OTHER`.\n *\n * If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it **MUST** provide a way to override\n * the list of known HTTP methods. If this override is done via environment variable, then the environment variable **MUST** be named\n * OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods\n * (this list **MUST** be a full override of the default known method, it is not a list of known methods in addition to the defaults).\n *\n * HTTP method names are case-sensitive and `http.request.method` attribute value **MUST** match a known HTTP method name exactly.\n * Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, **SHOULD** populate a canonical equivalent.\n * Tracing instrumentations that do so, **MUST** also set `http.request.method_original` to the original value.\n */\nexport const ATTR_HTTP_REQUEST_METHOD = 'http.request.method';\n/**\n * Enum value \"_OTHER\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * Any HTTP method that the instrumentation has no prior knowledge of.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_OTHER = \"_OTHER\";\n/**\n * Enum value \"CONNECT\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * CONNECT method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_CONNECT = \"CONNECT\";\n/**\n * Enum value \"DELETE\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * DELETE method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_DELETE = \"DELETE\";\n/**\n * Enum value \"GET\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * GET method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_GET = \"GET\";\n/**\n * Enum value \"HEAD\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * HEAD method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_HEAD = \"HEAD\";\n/**\n * Enum value \"OPTIONS\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * OPTIONS method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_OPTIONS = \"OPTIONS\";\n/**\n * Enum value \"PATCH\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * PATCH method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_PATCH = \"PATCH\";\n/**\n * Enum value \"POST\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * POST method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_POST = \"POST\";\n/**\n * Enum value \"PUT\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * PUT method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_PUT = \"PUT\";\n/**\n * Enum value \"TRACE\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * TRACE method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_TRACE = \"TRACE\";\n/**\n * Original HTTP method sent by the client in the request line.\n *\n * @example GeT\n * @example ACL\n * @example foo\n */\nexport const ATTR_HTTP_REQUEST_METHOD_ORIGINAL = 'http.request.method_original';\n/**\n * The ordinal number of request resending attempt (for any reason, including redirects).\n *\n * @example 3\n *\n * @note The resend count **SHOULD** be updated each time an HTTP request gets resent by the client, regardless of what was the cause of the resending (e.g. redirection, authorization failure, 503 Server Unavailable, network issues, or any other).\n */\nexport const ATTR_HTTP_REQUEST_RESEND_COUNT = 'http.request.resend_count';\n/**\n * HTTP response headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.\n *\n * @example [\"application/json\"]\n * @example [\"abc\", \"def\"]\n *\n * @note Instrumentations **SHOULD** require an explicit configuration of which headers are to be captured.\n * Including all response headers can be a security risk - explicit configuration helps avoid leaking sensitive information.\n *\n * Users **MAY** explicitly configure instrumentations to capture them even though it is not recommended.\n *\n * The attribute value **MUST** consist of either multiple header values as an array of strings\n * or a single-item array containing a possibly comma-concatenated string, depending on the way\n * the HTTP library provides access to headers.\n *\n * Examples:\n *\n * - A header `Content-Type: application/json` header **SHOULD** be recorded as the `http.request.response.content-type`\n * attribute with value `[\"application/json\"]`.\n * - A header `My-custom-header: abc, def` header **SHOULD** be recorded as the `http.response.header.my-custom-header`\n * attribute with value `[\"abc\", \"def\"]` or `[\"abc, def\"]` depending on the HTTP library.\n */\nexport const ATTR_HTTP_RESPONSE_HEADER = (key) => `http.response.header.${key}`;\n/**\n * [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).\n *\n * @example 200\n */\nexport const ATTR_HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code';\n/**\n * The matched route, that is, the path template in the format used by the respective server framework.\n *\n * @example /users/:userID?\n * @example {controller}/{action}/{id?}\n *\n * @note **MUST NOT** be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.\n * **SHOULD** include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.\n */\nexport const ATTR_HTTP_ROUTE = 'http.route';\n/**\n * Name of the garbage collector action.\n *\n * @example end of minor GC\n * @example end of major GC\n *\n * @note Garbage collector action is generally obtained via [GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()).\n */\nexport const ATTR_JVM_GC_ACTION = 'jvm.gc.action';\n/**\n * Name of the garbage collector.\n *\n * @example G1 Young Generation\n * @example G1 Old Generation\n *\n * @note Garbage collector name is generally obtained via [GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()).\n */\nexport const ATTR_JVM_GC_NAME = 'jvm.gc.name';\n/**\n * Name of the memory pool.\n *\n * @example G1 Old Gen\n * @example G1 Eden space\n * @example G1 Survivor Space\n *\n * @note Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).\n */\nexport const ATTR_JVM_MEMORY_POOL_NAME = 'jvm.memory.pool.name';\n/**\n * The type of memory.\n *\n * @example heap\n * @example non_heap\n */\nexport const ATTR_JVM_MEMORY_TYPE = 'jvm.memory.type';\n/**\n * Enum value \"heap\" for attribute {@link ATTR_JVM_MEMORY_TYPE}.\n *\n * Heap memory.\n */\nexport const JVM_MEMORY_TYPE_VALUE_HEAP = \"heap\";\n/**\n * Enum value \"non_heap\" for attribute {@link ATTR_JVM_MEMORY_TYPE}.\n *\n * Non-heap memory\n */\nexport const JVM_MEMORY_TYPE_VALUE_NON_HEAP = \"non_heap\";\n/**\n * Whether the thread is daemon or not.\n */\nexport const ATTR_JVM_THREAD_DAEMON = 'jvm.thread.daemon';\n/**\n * State of the thread.\n *\n * @example runnable\n * @example blocked\n */\nexport const ATTR_JVM_THREAD_STATE = 'jvm.thread.state';\n/**\n * Enum value \"blocked\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that is blocked waiting for a monitor lock is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_BLOCKED = \"blocked\";\n/**\n * Enum value \"new\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that has not yet started is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_NEW = \"new\";\n/**\n * Enum value \"runnable\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread executing in the Java virtual machine is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_RUNNABLE = \"runnable\";\n/**\n * Enum value \"terminated\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that has exited is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_TERMINATED = \"terminated\";\n/**\n * Enum value \"timed_waiting\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_TIMED_WAITING = \"timed_waiting\";\n/**\n * Enum value \"waiting\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that is waiting indefinitely for another thread to perform a particular action is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_WAITING = \"waiting\";\n/**\n * Local address of the network connection - IP address or Unix domain socket name.\n *\n * @example 10.1.2.80\n * @example /tmp/my.sock\n */\nexport const ATTR_NETWORK_LOCAL_ADDRESS = 'network.local.address';\n/**\n * Local port number of the network connection.\n *\n * @example 65123\n */\nexport const ATTR_NETWORK_LOCAL_PORT = 'network.local.port';\n/**\n * Peer address of the network connection - IP address or Unix domain socket name.\n *\n * @example 10.1.2.80\n * @example /tmp/my.sock\n */\nexport const ATTR_NETWORK_PEER_ADDRESS = 'network.peer.address';\n/**\n * Peer port number of the network connection.\n *\n * @example 65123\n */\nexport const ATTR_NETWORK_PEER_PORT = 'network.peer.port';\n/**\n * [OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.\n *\n * @example amqp\n * @example http\n * @example mqtt\n *\n * @note The value **SHOULD** be normalized to lowercase.\n */\nexport const ATTR_NETWORK_PROTOCOL_NAME = 'network.protocol.name';\n/**\n * The actual version of the protocol used for network communication.\n *\n * @example 1.1\n * @example 2\n *\n * @note If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute **SHOULD** be set to the negotiated version. If the actual protocol version is not known, this attribute **SHOULD NOT** be set.\n */\nexport const ATTR_NETWORK_PROTOCOL_VERSION = 'network.protocol.version';\n/**\n * [OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).\n *\n * @example tcp\n * @example udp\n *\n * @note The value **SHOULD** be normalized to lowercase.\n *\n * Consider always setting the transport when setting a port number, since\n * a port number is ambiguous without knowing the transport. For example\n * different processes could be listening on TCP port 12345 and UDP port 12345.\n */\nexport const ATTR_NETWORK_TRANSPORT = 'network.transport';\n/**\n * Enum value \"pipe\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * Named or anonymous pipe.\n */\nexport const NETWORK_TRANSPORT_VALUE_PIPE = \"pipe\";\n/**\n * Enum value \"quic\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * QUIC\n */\nexport const NETWORK_TRANSPORT_VALUE_QUIC = \"quic\";\n/**\n * Enum value \"tcp\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * TCP\n */\nexport const NETWORK_TRANSPORT_VALUE_TCP = \"tcp\";\n/**\n * Enum value \"udp\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * UDP\n */\nexport const NETWORK_TRANSPORT_VALUE_UDP = \"udp\";\n/**\n * Enum value \"unix\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * Unix domain socket\n */\nexport const NETWORK_TRANSPORT_VALUE_UNIX = \"unix\";\n/**\n * [OSI network layer](https://wikipedia.org/wiki/Network_layer) or non-OSI equivalent.\n *\n * @example ipv4\n * @example ipv6\n *\n * @note The value **SHOULD** be normalized to lowercase.\n */\nexport const ATTR_NETWORK_TYPE = 'network.type';\n/**\n * Enum value \"ipv4\" for attribute {@link ATTR_NETWORK_TYPE}.\n *\n * IPv4\n */\nexport const NETWORK_TYPE_VALUE_IPV4 = \"ipv4\";\n/**\n * Enum value \"ipv6\" for attribute {@link ATTR_NETWORK_TYPE}.\n *\n * IPv6\n */\nexport const NETWORK_TYPE_VALUE_IPV6 = \"ipv6\";\n/**\n * The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).\n *\n * @example io.opentelemetry.contrib.mongodb\n */\nexport const ATTR_OTEL_SCOPE_NAME = 'otel.scope.name';\n/**\n * The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).\n *\n * @example 1.0.0\n */\nexport const ATTR_OTEL_SCOPE_VERSION = 'otel.scope.version';\n/**\n * Name of the code, either \"OK\" or \"ERROR\". **MUST NOT** be set if the status code is UNSET.\n */\nexport const ATTR_OTEL_STATUS_CODE = 'otel.status_code';\n/**\n * Enum value \"ERROR\" for attribute {@link ATTR_OTEL_STATUS_CODE}.\n *\n * The operation contains an error.\n */\nexport const OTEL_STATUS_CODE_VALUE_ERROR = \"ERROR\";\n/**\n * Enum value \"OK\" for attribute {@link ATTR_OTEL_STATUS_CODE}.\n *\n * The operation has been validated by an Application developer or Operator to have completed successfully.\n */\nexport const OTEL_STATUS_CODE_VALUE_OK = \"OK\";\n/**\n * Description of the Status if it has a value, otherwise not set.\n *\n * @example resource not found\n */\nexport const ATTR_OTEL_STATUS_DESCRIPTION = 'otel.status_description';\n/**\n * Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\n *\n * @example example.com\n * @example 10.1.2.80\n * @example /tmp/my.sock\n *\n * @note When observed from the client side, and when communicating through an intermediary, `server.address` **SHOULD** represent the server address behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_SERVER_ADDRESS = 'server.address';\n/**\n * Server port number.\n *\n * @example 80\n * @example 8080\n * @example 443\n *\n * @note When observed from the client side, and when communicating through an intermediary, `server.port` **SHOULD** represent the server port behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_SERVER_PORT = 'server.port';\n/**\n * Logical name of the service.\n *\n * @example shoppingcart\n *\n * @note **MUST** be the same for all instances of horizontally scaled services. If the value was not specified, SDKs **MUST** fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value **MUST** be set to `unknown_service`.\n */\nexport const ATTR_SERVICE_NAME = 'service.name';\n/**\n * The version string of the service API or implementation. The format is not defined by these conventions.\n *\n * @example 2.0.0\n * @example a01dbef8a\n */\nexport const ATTR_SERVICE_VERSION = 'service.version';\n/**\n * SignalR HTTP connection closure status.\n *\n * @example app_shutdown\n * @example timeout\n */\nexport const ATTR_SIGNALR_CONNECTION_STATUS = 'signalr.connection.status';\n/**\n * Enum value \"app_shutdown\" for attribute {@link ATTR_SIGNALR_CONNECTION_STATUS}.\n *\n * The connection was closed because the app is shutting down.\n */\nexport const SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN = \"app_shutdown\";\n/**\n * Enum value \"normal_closure\" for attribute {@link ATTR_SIGNALR_CONNECTION_STATUS}.\n *\n * The connection was closed normally.\n */\nexport const SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE = \"normal_closure\";\n/**\n * Enum value \"timeout\" for attribute {@link ATTR_SIGNALR_CONNECTION_STATUS}.\n *\n * The connection was closed due to a timeout.\n */\nexport const SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT = \"timeout\";\n/**\n * [SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)\n *\n * @example web_sockets\n * @example long_polling\n */\nexport const ATTR_SIGNALR_TRANSPORT = 'signalr.transport';\n/**\n * Enum value \"long_polling\" for attribute {@link ATTR_SIGNALR_TRANSPORT}.\n *\n * LongPolling protocol\n */\nexport const SIGNALR_TRANSPORT_VALUE_LONG_POLLING = \"long_polling\";\n/**\n * Enum value \"server_sent_events\" for attribute {@link ATTR_SIGNALR_TRANSPORT}.\n *\n * ServerSentEvents protocol\n */\nexport const SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS = \"server_sent_events\";\n/**\n * Enum value \"web_sockets\" for attribute {@link ATTR_SIGNALR_TRANSPORT}.\n *\n * WebSockets protocol\n */\nexport const SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS = \"web_sockets\";\n/**\n * The language of the telemetry SDK.\n */\nexport const ATTR_TELEMETRY_SDK_LANGUAGE = 'telemetry.sdk.language';\n/**\n * Enum value \"cpp\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_CPP = \"cpp\";\n/**\n * Enum value \"dotnet\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET = \"dotnet\";\n/**\n * Enum value \"erlang\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG = \"erlang\";\n/**\n * Enum value \"go\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_GO = \"go\";\n/**\n * Enum value \"java\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_JAVA = \"java\";\n/**\n * Enum value \"nodejs\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS = \"nodejs\";\n/**\n * Enum value \"php\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_PHP = \"php\";\n/**\n * Enum value \"python\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON = \"python\";\n/**\n * Enum value \"ruby\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_RUBY = \"ruby\";\n/**\n * Enum value \"rust\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_RUST = \"rust\";\n/**\n * Enum value \"swift\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT = \"swift\";\n/**\n * Enum value \"webjs\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS = \"webjs\";\n/**\n * The name of the telemetry SDK as defined above.\n *\n * @example opentelemetry\n *\n * @note The OpenTelemetry SDK **MUST** set the `telemetry.sdk.name` attribute to `opentelemetry`.\n * If another SDK, like a fork or a vendor-provided implementation, is used, this SDK **MUST** set the\n * `telemetry.sdk.name` attribute to the fully-qualified class or module name of this SDK's main entry point\n * or another suitable identifier depending on the language.\n * The identifier `opentelemetry` is reserved and **MUST NOT** be used in this case.\n * All custom identifiers **SHOULD** be stable across different versions of an implementation.\n */\nexport const ATTR_TELEMETRY_SDK_NAME = 'telemetry.sdk.name';\n/**\n * The version string of the telemetry SDK.\n *\n * @example 1.2.3\n */\nexport const ATTR_TELEMETRY_SDK_VERSION = 'telemetry.sdk.version';\n/**\n * The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component\n *\n * @example SemConv\n */\nexport const ATTR_URL_FRAGMENT = 'url.fragment';\n/**\n * Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)\n *\n * @example https://www.foo.bar/search?q=OpenTelemetry#SemConv\n * @example //localhost\n *\n * @note For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment\n * is not transmitted over HTTP, but if it is known, it **SHOULD** be included nevertheless.\n *\n * `url.full` **MUST NOT** contain credentials passed via URL in form of `https://username:password@www.example.com/`.\n * In such case username and password **SHOULD** be redacted and attribute's value **SHOULD** be `https://REDACTED:REDACTED@www.example.com/`.\n *\n * `url.full` **SHOULD** capture the absolute URL when it is available (or can be reconstructed).\n *\n * Sensitive content provided in `url.full` **SHOULD** be scrubbed when instrumentations can identify it.\n *\n *\n * Query string values for the following keys **SHOULD** be redacted by default and replaced by the\n * value `REDACTED`:\n *\n * - [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)\n * - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)\n *\n * This list is subject to change over time.\n *\n * When a query string value is redacted, the query string key **SHOULD** still be preserved, e.g.\n * `https://www.example.com/path?color=blue&sig=REDACTED`.\n */\nexport const ATTR_URL_FULL = 'url.full';\n/**\n * The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component\n *\n * @example /search\n *\n * @note Sensitive content provided in `url.path` **SHOULD** be scrubbed when instrumentations can identify it.\n */\nexport const ATTR_URL_PATH = 'url.path';\n/**\n * The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component\n *\n * @example q=OpenTelemetry\n *\n * @note Sensitive content provided in `url.query` **SHOULD** be scrubbed when instrumentations can identify it.\n *\n *\n * Query string values for the following keys **SHOULD** be redacted by default and replaced by the value `REDACTED`:\n *\n * - [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)\n * - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)\n *\n * This list is subject to change over time.\n *\n * When a query string value is redacted, the query string key **SHOULD** still be preserved, e.g.\n * `q=OpenTelemetry&sig=REDACTED`.\n */\nexport const ATTR_URL_QUERY = 'url.query';\n/**\n * The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.\n *\n * @example https\n * @example ftp\n * @example telnet\n */\nexport const ATTR_URL_SCHEME = 'url.scheme';\n/**\n * Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client.\n *\n * @example CERN-LineMode/2.15 libwww/2.17b3\n * @example Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\n * @example YourApp/1.0.0 grpc-java-okhttp/1.27.2\n */\nexport const ATTR_USER_AGENT_ORIGINAL = 'user_agent.original';\n//# sourceMappingURL=stable_attributes.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * based on lodash in order to support esm builds without esModuleInterop.\n * lodash is using MIT License.\n **/\nconst objectTag = '[object Object]';\nconst nullTag = '[object Null]';\nconst undefinedTag = '[object Undefined]';\nconst funcProto = Function.prototype;\nconst funcToString = funcProto.toString;\nconst objectCtorString = funcToString.call(Object);\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectProto = Object.prototype;\nconst hasOwnProperty = objectProto.hasOwnProperty;\nconst symToStringTag = Symbol ? Symbol.toStringTag : undefined;\nconst nativeObjectToString = objectProto.toString;\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nexport function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) !== objectTag) {\n return false;\n }\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor &&\n funcToString.call(Ctor) === objectCtorString);\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value)\n ? getRawTag(value)\n : objectToString(value);\n}\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n const isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n }\n catch (e) {\n // silence\n }\n const result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n }\n else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n//# sourceMappingURL=lodash.merge.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlainObject } from './lodash.merge';\nconst MAX_LEVEL = 20;\n/**\n * Merges objects together\n * @param args - objects / values to be merged\n */\nexport function merge(...args) {\n let result = args.shift();\n const objects = new WeakMap();\n while (args.length > 0) {\n result = mergeTwoObjects(result, args.shift(), 0, objects);\n }\n return result;\n}\nfunction takeValue(value) {\n if (isArray(value)) {\n return value.slice();\n }\n return value;\n}\n/**\n * Merges two objects\n * @param one - first object\n * @param two - second object\n * @param level - current deep level\n * @param objects - objects holder that has been already referenced - to prevent\n * cyclic dependency\n */\nfunction mergeTwoObjects(one, two, level = 0, objects) {\n let result;\n if (level > MAX_LEVEL) {\n return undefined;\n }\n level++;\n if (isPrimitive(one) || isPrimitive(two) || isFunction(two)) {\n result = takeValue(two);\n }\n else if (isArray(one)) {\n result = one.slice();\n if (isArray(two)) {\n for (let i = 0, j = two.length; i < j; i++) {\n result.push(takeValue(two[i]));\n }\n }\n else if (isObject(two)) {\n const keys = Object.keys(two);\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n result[key] = takeValue(two[key]);\n }\n }\n }\n else if (isObject(one)) {\n if (isObject(two)) {\n if (!shouldMerge(one, two)) {\n return two;\n }\n result = Object.assign({}, one);\n const keys = Object.keys(two);\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n const twoValue = two[key];\n if (isPrimitive(twoValue)) {\n if (typeof twoValue === 'undefined') {\n delete result[key];\n }\n else {\n // result[key] = takeValue(twoValue);\n result[key] = twoValue;\n }\n }\n else {\n const obj1 = result[key];\n const obj2 = twoValue;\n if (wasObjectReferenced(one, key, objects) ||\n wasObjectReferenced(two, key, objects)) {\n delete result[key];\n }\n else {\n if (isObject(obj1) && isObject(obj2)) {\n const arr1 = objects.get(obj1) || [];\n const arr2 = objects.get(obj2) || [];\n arr1.push({ obj: one, key });\n arr2.push({ obj: two, key });\n objects.set(obj1, arr1);\n objects.set(obj2, arr2);\n }\n result[key] = mergeTwoObjects(result[key], twoValue, level, objects);\n }\n }\n }\n }\n else {\n result = two;\n }\n }\n return result;\n}\n/**\n * Function to check if object has been already reference\n * @param obj\n * @param key\n * @param objects\n */\nfunction wasObjectReferenced(obj, key, objects) {\n const arr = objects.get(obj[key]) || [];\n for (let i = 0, j = arr.length; i < j; i++) {\n const info = arr[i];\n if (info.key === key && info.obj === obj) {\n return true;\n }\n }\n return false;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isObject(value) {\n return (!isPrimitive(value) &&\n !isArray(value) &&\n !isFunction(value) &&\n typeof value === 'object');\n}\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'undefined' ||\n value instanceof Date ||\n value instanceof RegExp ||\n value === null);\n}\nfunction shouldMerge(one, two) {\n if (!isPlainObject(one) || !isPlainObject(two)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=merge.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nvar NonRecordingSpan = /** @class */ (function () {\n function NonRecordingSpan(_spanContext) {\n if (_spanContext === void 0) { _spanContext = INVALID_SPAN_CONTEXT; }\n this._spanContext = _spanContext;\n }\n // Returns a SpanContext.\n NonRecordingSpan.prototype.spanContext = function () {\n return this._spanContext;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setAttribute = function (_key, _value) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setAttributes = function (_attributes) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.addEvent = function (_name, _attributes) {\n return this;\n };\n NonRecordingSpan.prototype.addLink = function (_link) {\n return this;\n };\n NonRecordingSpan.prototype.addLinks = function (_links) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setStatus = function (_status) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.updateName = function (_name) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.end = function (_endTime) { };\n // isRecording always returns false for NonRecordingSpan.\n NonRecordingSpan.prototype.isRecording = function () {\n return false;\n };\n // By default does nothing\n NonRecordingSpan.prototype.recordException = function (_exception, _time) { };\n return NonRecordingSpan;\n}());\nexport { NonRecordingSpan };\n//# sourceMappingURL=NonRecordingSpan.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\nvar BaseContext = /** @class */ (function () {\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n function BaseContext(parentContext) {\n // for minification\n var self = this;\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n self.getValue = function (key) { return self._currentContext.get(key); };\n self.setValue = function (key, value) {\n var context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n self.deleteValue = function (key) {\n var context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n return BaseContext;\n}());\n/** The root context is used as the default parent context when there is no active context */\nexport var ROOT_CONTEXT = new BaseContext();\n//# sourceMappingURL=context.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function getStringFromEnv(_) {\n return undefined;\n}\nexport function getBooleanFromEnv(_) {\n return undefined;\n}\nexport function getNumberFromEnv(_) {\n return undefined;\n}\nexport function getStringListFromEnv(_) {\n return undefined;\n}\n//# sourceMappingURL=environment.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { noop } from '../utils';\nexport var InternalLoggerLevel;\n(function (InternalLoggerLevel) {\n InternalLoggerLevel[InternalLoggerLevel[\"OFF\"] = 0] = \"OFF\";\n InternalLoggerLevel[InternalLoggerLevel[\"ERROR\"] = 1] = \"ERROR\";\n InternalLoggerLevel[InternalLoggerLevel[\"WARN\"] = 2] = \"WARN\";\n InternalLoggerLevel[InternalLoggerLevel[\"INFO\"] = 3] = \"INFO\";\n InternalLoggerLevel[InternalLoggerLevel[\"VERBOSE\"] = 4] = \"VERBOSE\";\n})(InternalLoggerLevel || (InternalLoggerLevel = {}));\nexport const defaultInternalLoggerPrefix = 'Faro';\nexport const defaultInternalLogger = {\n debug: noop,\n error: noop,\n info: noop,\n prefix: defaultInternalLoggerPrefix,\n warn: noop,\n};\nexport const defaultInternalLoggerLevel = InternalLoggerLevel.ERROR;\n//# sourceMappingURL=const.js.map","export const defaultUnpatchedConsole = Object.assign({}, console);\n//# sourceMappingURL=const.js.map","import { defaultInternalLogger } from '../internalLogger';\nimport { defaultUnpatchedConsole } from '../unpatchedConsole';\nexport class BaseExtension {\n constructor() {\n this.unpatchedConsole = defaultUnpatchedConsole;\n this.internalLogger = defaultInternalLogger;\n this.config = {};\n this.metas = {};\n }\n logDebug(...args) {\n this.internalLogger.debug(`${this.name}\\n`, ...args);\n }\n logInfo(...args) {\n this.internalLogger.info(`${this.name}\\n`, ...args);\n }\n logWarn(...args) {\n this.internalLogger.warn(`${this.name}\\n`, ...args);\n }\n logError(...args) {\n this.internalLogger.error(`${this.name}\\n`, ...args);\n }\n}\n//# sourceMappingURL=baseExtension.js.map","import { BaseExtension } from '../extensions';\nexport class BaseInstrumentation extends BaseExtension {\n constructor() {\n super(...arguments);\n this.api = {};\n this.transports = {};\n }\n}\n//# sourceMappingURL=base.js.map","// auto-generated by bin/genVersion.ts\nexport const VERSION = '1.19.0';\n//# sourceMappingURL=version.js.map","export function dateNow() {\n return Date.now();\n}\nexport function getCurrentTimestamp() {\n return new Date().toISOString();\n}\nexport function timestampToIsoString(value) {\n return new Date(value).toISOString();\n}\n//# sourceMappingURL=date.js.map","const alphabet = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789';\nexport function genShortID(length = 10) {\n return Array.from(Array(length))\n .map(() => alphabet[Math.floor(Math.random() * alphabet.length)])\n .join('');\n}\n//# sourceMappingURL=shortId.js.map","export class Observable {\n constructor() {\n this.subscribers = [];\n }\n subscribe(subscriber) {\n this.subscribers.push(subscriber);\n return {\n unsubscribe: () => this.unsubscribe(subscriber),\n };\n }\n unsubscribe(subscriber) {\n this.subscribers = this.subscribers.filter((sub) => sub !== subscriber);\n }\n notify(value) {\n this.subscribers.forEach((subscriber) => subscriber(value));\n }\n first() {\n const result = new Observable();\n const internalSubscriber = (data) => {\n result.notify(data);\n subscription.unsubscribe();\n };\n const subscription = this.subscribe(internalSubscriber);\n const resultUnsubscribeFn = result.unsubscribe.bind(result);\n return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);\n }\n takeWhile(predicate) {\n const result = new Observable();\n const internalSubscriber = (value) => {\n if (predicate(value)) {\n result.notify(value);\n }\n else {\n result.unsubscribe(internalSubscriber);\n }\n };\n this.subscribe(internalSubscriber);\n const resultUnsubscribeFn = result.unsubscribe.bind(result);\n return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);\n }\n filter(predicate) {\n const result = new Observable();\n const internalSubscriber = (value) => {\n if (predicate(value)) {\n result.notify(value);\n }\n };\n this.subscribe(internalSubscriber);\n const resultUnsubscribeFn = result.unsubscribe.bind(result);\n return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);\n }\n merge(...observables) {\n const mergerObservable = new Observable();\n const subscriptions = [];\n observables.forEach((observable) => {\n const subscription = observable.subscribe((value) => {\n mergerObservable.notify(value);\n });\n subscriptions.push(subscription);\n });\n const originalUnsubscribeAll = mergerObservable.unsubscribeAll.bind(mergerObservable);\n mergerObservable.unsubscribe = () => {\n subscriptions.forEach((subscription) => subscription.unsubscribe());\n originalUnsubscribeAll();\n };\n return mergerObservable;\n }\n withUnsubscribeOverride(observable, resultUnsubscribeFn, internalSubscriber) {\n observable.unsubscribe = (subscriber) => {\n resultUnsubscribeFn(subscriber);\n this.unsubscribe(internalSubscriber);\n };\n return observable;\n }\n unsubscribeAll() {\n this.subscribers = [];\n }\n}\n//# sourceMappingURL=reactive.js.map","export var TransportItemType;\n(function (TransportItemType) {\n TransportItemType[\"EXCEPTION\"] = \"exception\";\n TransportItemType[\"LOG\"] = \"log\";\n TransportItemType[\"MEASUREMENT\"] = \"measurement\";\n TransportItemType[\"TRACE\"] = \"trace\";\n TransportItemType[\"EVENT\"] = \"event\";\n})(TransportItemType || (TransportItemType = {}));\nexport const transportItemTypeToBodyKey = {\n [TransportItemType.EXCEPTION]: 'exceptions',\n [TransportItemType.LOG]: 'logs',\n [TransportItemType.MEASUREMENT]: 'measurements',\n [TransportItemType.TRACE]: 'traces',\n [TransportItemType.EVENT]: 'events',\n};\n//# sourceMappingURL=const.js.map","export function isTypeof(value, type) {\n return typeof value === type;\n}\nexport function isToString(value, type) {\n return Object.prototype.toString.call(value) === `[object ${type}]`;\n}\nexport function isInstanceOf(value, reference) {\n try {\n return value instanceof reference;\n }\n catch (err) {\n return false;\n }\n}\nexport const isUndefined = ((value) => isTypeof(value, 'undefined'));\nexport const isNull = ((value) => isTypeof(value, 'null'));\nexport const isString = ((value) => isTypeof(value, 'string'));\nexport const isNumber = ((value) => (isTypeof(value, 'number') && !isNaN(value)) || isTypeof(value, 'bigint'));\nexport const isInt = ((value) => isNumber(value) && Number.isInteger(value));\nexport const isBoolean = ((value) => isTypeof(value, 'boolean'));\nexport const isSymbol = ((value) => isTypeof(value, 'symbol'));\nexport const isObject = ((value) => !isNull(value) && isTypeof(value, 'object'));\nexport const isFunction = ((value) => isTypeof(value, 'function'));\nexport const isArray = ((value) => isToString(value, 'Array'));\nexport const isRegExp = ((value) => isToString(value, 'RegExp'));\nexport const isThenable = ((value) => isFunction(value === null || value === void 0 ? void 0 : value.then));\nexport const isPrimitive = ((value) => !isObject(value) && !isFunction(value));\nexport const isEventDefined = typeof Event !== 'undefined';\nexport const isEvent = ((value) => isEventDefined && isInstanceOf(value, Event));\nexport const isErrorDefined = typeof Error !== 'undefined';\nexport const isError = ((value) => isErrorDefined && isInstanceOf(value, Error));\nexport const isErrorEvent = ((value) => isToString(value, 'ErrorEvent'));\nexport const isDomError = ((value) => isToString(value, 'DOMError'));\nexport const isDomException = ((value) => isToString(value, 'DOMException'));\nexport const isElementDefined = typeof Element !== 'undefined';\nexport const isElement = ((value) => isElementDefined && isInstanceOf(value, Element));\nexport const isMapDefined = typeof Map !== 'undefined';\nexport const isMap = ((value) => isMapDefined && isInstanceOf(value, Map));\nexport const isSyntheticEvent = ((value) => isObject(value) &&\n 'nativeEvent' in value &&\n 'preventDefault' in value &&\n 'stopPropagation' in value);\nexport function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArray(value) || isString(value)) {\n return value.length === 0;\n }\n if (isObject(value)) {\n return Object.keys(value).length === 0;\n }\n return false;\n}\n//# sourceMappingURL=is.js.map","import { isObject } from './is';\nexport function getCircularDependencyReplacer() {\n const valueSeen = new WeakSet();\n return function (_key, value) {\n if (isObject(value) && value !== null) {\n if (valueSeen.has(value)) {\n return null;\n }\n valueSeen.add(value);\n }\n return value;\n };\n}\nexport function stringifyExternalJson(json = {}) {\n return JSON.stringify(json !== null && json !== void 0 ? json : {}, getCircularDependencyReplacer());\n}\nexport function stringifyObjectValues(obj = {}) {\n const o = {};\n for (const [key, value] of Object.entries(obj)) {\n o[key] = isObject(value) && value !== null ? stringifyExternalJson(value) : String(value);\n }\n return o;\n}\n//# sourceMappingURL=json.js.map","import { isArray, isObject, isTypeof } from './is';\n// This function was inspired by fast-deep-equal\n// fast-deep-equal has issues with Rollup and also it checks for some edge cases that we don't need\nexport function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n // Using isTypeOf instead of isNumber as isNumber also checks against NaN\n if (isTypeof(a, 'number') && isNaN(a)) {\n return isTypeof(b, 'number') && isNaN(b);\n }\n const aIsArray = isArray(a);\n const bIsArray = isArray(b);\n if (aIsArray !== bIsArray) {\n return false;\n }\n if (aIsArray && bIsArray) {\n const length = a.length;\n if (length !== b.length) {\n return false;\n }\n for (let idx = length; idx-- !== 0;) {\n if (!deepEqual(a[idx], b[idx])) {\n return false;\n }\n }\n return true;\n }\n const aIsObject = isObject(a);\n const bIsObject = isObject(b);\n if (aIsObject !== bIsObject) {\n return false;\n }\n if (a && b && aIsObject && bIsObject) {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const aLength = aKeys.length;\n const bLength = bKeys.length;\n if (aLength !== bLength) {\n return false;\n }\n for (let aKey of aKeys) {\n if (!bKeys.includes(aKey)) {\n return false;\n }\n }\n for (let aKey of aKeys) {\n if (!deepEqual(a[aKey], b[aKey])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=deepEqual.js.map","export const USER_ACTION_START = 'user-action-start';\nexport const USER_ACTION_END = 'user-action-end';\nexport const USER_ACTION_CANCEL = 'user-action-cancel';\nexport const USER_ACTION_HALT = 'user-action-halt';\n//# sourceMappingURL=const.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isEmpty, isNull, stringifyObjectValues } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START } from '../const';\nexport function initializeEventsAPI({ internalLogger, config, metas, transports, tracesApi, actionBuffer, getMessage, }) {\n let lastPayload = null;\n const pushEvent = (name, attributes, domain, { skipDedupe, spanContext, timestampOverwriteMs, customPayloadTransformer = (payload) => payload } = {}) => {\n try {\n const attrs = stringifyObjectValues(attributes);\n const item = {\n meta: metas.value,\n payload: customPayloadTransformer({\n name,\n domain: domain !== null && domain !== void 0 ? domain : config.eventDomain,\n attributes: isEmpty(attrs) ? undefined : attrs,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n }),\n type: TransportItemType.EVENT,\n };\n const testingPayload = {\n name: item.payload.name,\n attributes: item.payload.attributes,\n domain: item.payload.domain,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping event push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing event\\n', item);\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START) {\n actionBuffer.addItem(item);\n }\n else {\n transports.execute(item);\n }\n }\n catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n return {\n pushEvent,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { isString } from '../utils/is';\nexport function shouldIgnoreEvent(patterns, msg) {\n return patterns.some((pattern) => {\n return isString(pattern) ? msg.includes(pattern) : !!msg.match(pattern);\n });\n}\n//# sourceMappingURL=utils.js.map","import { isObject, stringifyExternalJson } from '../../utils';\nexport const defaultExceptionType = 'Error';\nexport const defaultErrorArgsSerializer = (args) => {\n return args\n .map((arg) => {\n if (isObject(arg)) {\n return stringifyExternalJson(arg);\n }\n return String(arg);\n })\n .join(' ');\n};\n//# sourceMappingURL=const.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isArray, isEmpty, isError, isNull, isObject, stringifyExternalJson, stringifyObjectValues, } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START } from '../const';\nimport { shouldIgnoreEvent } from '../utils';\nimport { defaultExceptionType } from './const';\nlet stacktraceParser;\nexport function initializeExceptionsAPI({ internalLogger, config, metas, transports, tracesApi, actionBuffer, getMessage, }) {\n var _a;\n internalLogger.debug('Initializing exceptions API');\n let lastPayload = null;\n stacktraceParser = (_a = config.parseStacktrace) !== null && _a !== void 0 ? _a : stacktraceParser;\n const changeStacktraceParser = (newStacktraceParser) => {\n internalLogger.debug('Changing stacktrace parser');\n stacktraceParser = newStacktraceParser !== null && newStacktraceParser !== void 0 ? newStacktraceParser : stacktraceParser;\n };\n const getStacktraceParser = () => stacktraceParser;\n const { ignoreErrors = [], preserveOriginalError } = config;\n const pushError = (error, { skipDedupe, stackFrames, type, context, spanContext, timestampOverwriteMs, originalError } = {}) => {\n if (isErrorIgnored(ignoreErrors, originalError !== null && originalError !== void 0 ? originalError : error)) {\n return;\n }\n try {\n const ctx = stringifyObjectValues(Object.assign(Object.assign({}, parseCause(originalError !== null && originalError !== void 0 ? originalError : error)), (context !== null && context !== void 0 ? context : {})));\n const item = {\n meta: metas.value,\n payload: Object.assign(Object.assign({ type: type || error.name || defaultExceptionType, value: error.message, timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(), trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext() }, (isEmpty(ctx) ? {} : { context: ctx })), (preserveOriginalError ? { originalError } : {})),\n type: TransportItemType.EXCEPTION,\n };\n stackFrames = stackFrames !== null && stackFrames !== void 0 ? stackFrames : (error.stack ? stacktraceParser === null || stacktraceParser === void 0 ? void 0 : stacktraceParser(error).frames : undefined);\n if (stackFrames === null || stackFrames === void 0 ? void 0 : stackFrames.length) {\n item.payload.stacktrace = {\n frames: stackFrames,\n };\n }\n const testingPayload = {\n type: item.payload.type,\n value: item.payload.value,\n stackTrace: item.payload.stacktrace,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping error push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing exception\\n', item);\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START) {\n actionBuffer.addItem(item);\n }\n else {\n transports.execute(item);\n }\n }\n catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n changeStacktraceParser(config.parseStacktrace);\n return {\n changeStacktraceParser,\n getStacktraceParser,\n pushError,\n };\n}\nfunction parseCause(error) {\n let cause = error.cause;\n if (isError(cause)) {\n cause = error.cause.toString();\n // typeof operator on null returns \"object\". This is a well-known quirk in JavaScript and is considered a bug that cannot be fixed due to backward compatibility issues.\n // MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof#typeof_null\n }\n else if (cause !== null && (isObject(error.cause) || isArray(error.cause))) {\n cause = stringifyExternalJson(error.cause);\n }\n else if (cause != null) {\n cause = error.cause.toString();\n }\n return cause == null ? {} : { cause };\n}\nfunction isErrorIgnored(ignoreErrors, error) {\n const { message, name, stack } = error;\n return shouldIgnoreEvent(ignoreErrors, message + ' ' + name + ' ' + stack);\n}\n//# sourceMappingURL=initialize.js.map","export const defaultLogArgsSerializer = (args) => args\n .map((arg) => {\n try {\n return String(arg);\n }\n catch (err) {\n return '';\n }\n})\n .join(' ');\n//# sourceMappingURL=const.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, defaultLogLevel, getCurrentTimestamp, isEmpty, isNull, stringifyObjectValues } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START } from '../const';\nimport { defaultLogArgsSerializer } from './const';\nexport function initializeLogsAPI({ internalLogger, config, metas, transports, tracesApi, actionBuffer, getMessage, }) {\n var _a;\n internalLogger.debug('Initializing logs API');\n let lastPayload = null;\n const logArgsSerializer = (_a = config.logArgsSerializer) !== null && _a !== void 0 ? _a : defaultLogArgsSerializer;\n const pushLog = (args, { context, level, skipDedupe, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const ctx = stringifyObjectValues(context);\n const item = {\n type: TransportItemType.LOG,\n payload: {\n message: logArgsSerializer(args),\n level: level !== null && level !== void 0 ? level : defaultLogLevel,\n context: isEmpty(ctx) ? undefined : ctx,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n },\n meta: metas.value,\n };\n const testingPayload = {\n message: item.payload.message,\n level: item.payload.level,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping log push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing log\\n', item);\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START) {\n actionBuffer.addItem(item);\n }\n else {\n transports.execute(item);\n }\n }\n catch (err) {\n internalLogger.error('Error pushing log\\n', err);\n }\n };\n return {\n pushLog,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nimport { deepEqual, getCurrentTimestamp, isEmpty, isNull, stringifyObjectValues } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START } from '../const';\nexport function initializeMeasurementsAPI({ internalLogger, config, metas, transports, tracesApi, actionBuffer, getMessage, }) {\n internalLogger.debug('Initializing measurements API');\n let lastPayload = null;\n const pushMeasurement = (payload, { skipDedupe, context, spanContext, timestampOverwriteMs } = {}) => {\n try {\n const ctx = stringifyObjectValues(context);\n const item = {\n type: TransportItemType.MEASUREMENT,\n payload: Object.assign(Object.assign({}, payload), { trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(), timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(), context: isEmpty(ctx) ? undefined : ctx }),\n meta: metas.value,\n };\n const testingPayload = {\n type: item.payload.type,\n values: item.payload.values,\n context: item.payload.context,\n };\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping measurement push because it is the same as the last one\\n', item.payload);\n return;\n }\n lastPayload = testingPayload;\n internalLogger.debug('Pushing measurement\\n', item);\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START) {\n actionBuffer.addItem(item);\n }\n else {\n transports.execute(item);\n }\n }\n catch (err) {\n internalLogger.error('Error pushing measurement\\n', err);\n }\n };\n return {\n pushMeasurement,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { isEmpty, isString } from '../../utils/is';\nexport function initializeMetaAPI({ internalLogger, metas, }) {\n internalLogger.debug('Initializing meta API');\n let metaSession = undefined;\n let metaUser = undefined;\n let metaView = undefined;\n let metaPage = undefined;\n const setUser = (user) => {\n if (metaUser) {\n metas.remove(metaUser);\n }\n metaUser = {\n user,\n };\n metas.add(metaUser);\n };\n const setSession = (session, options) => {\n var _a;\n const newOverrides = options === null || options === void 0 ? void 0 : options.overrides;\n const overrides = newOverrides\n ? {\n overrides: Object.assign(Object.assign({}, (_a = metaSession === null || metaSession === void 0 ? void 0 : metaSession.session) === null || _a === void 0 ? void 0 : _a.overrides), newOverrides),\n }\n : {};\n if (metaSession) {\n metas.remove(metaSession);\n }\n metaSession = {\n session: Object.assign(Object.assign({}, (isEmpty(session) ? undefined : session)), overrides),\n };\n metas.add(metaSession);\n };\n const getSession = () => metas.value.session;\n const setView = (view, options) => {\n var _a;\n if (options === null || options === void 0 ? void 0 : options.overrides) {\n setSession(getSession(), { overrides: options.overrides });\n }\n if (((_a = metaView === null || metaView === void 0 ? void 0 : metaView.view) === null || _a === void 0 ? void 0 : _a.name) === (view === null || view === void 0 ? void 0 : view.name)) {\n return;\n }\n const previousView = metaView;\n metaView = {\n view,\n };\n metas.add(metaView);\n if (previousView) {\n metas.remove(previousView);\n }\n };\n const getView = () => metas.value.view;\n const setPage = (page) => {\n var _a;\n const pageMeta = isString(page)\n ? Object.assign(Object.assign({}, ((_a = metaPage === null || metaPage === void 0 ? void 0 : metaPage.page) !== null && _a !== void 0 ? _a : getPage())), { id: page }) : page;\n if (metaPage) {\n metas.remove(metaPage);\n }\n metaPage = {\n page: pageMeta,\n };\n metas.add(metaPage);\n };\n const getPage = () => metas.value.page;\n return {\n setUser,\n resetUser: setUser,\n setSession,\n resetSession: setSession,\n getSession,\n setView,\n getView,\n setPage,\n getPage,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { TransportItemType } from '../../transports';\nexport function initializeTracesAPI(_unpatchedConsole, internalLogger, _config, metas, transports) {\n internalLogger.debug('Initializing traces API');\n let otel = undefined;\n const initOTEL = (trace, context) => {\n internalLogger.debug('Initializing OpenTelemetry');\n otel = {\n trace,\n context,\n };\n };\n const getTraceContext = () => {\n const ctx = otel === null || otel === void 0 ? void 0 : otel.trace.getSpanContext(otel.context.active());\n return !ctx\n ? undefined\n : {\n trace_id: ctx.traceId,\n span_id: ctx.spanId,\n };\n };\n const pushTraces = (payload) => {\n try {\n const item = {\n type: TransportItemType.TRACE,\n payload,\n meta: metas.value,\n };\n internalLogger.debug('Pushing trace\\n', item);\n transports.execute(item);\n }\n catch (err) {\n internalLogger.error('Error pushing trace\\n', err);\n }\n };\n const getOTEL = () => otel;\n const isOTELInitialized = () => !!otel;\n return {\n getOTEL,\n getTraceContext,\n initOTEL,\n isOTELInitialized,\n pushTraces,\n };\n}\n//# sourceMappingURL=initialize.js.map","import { isFunction } from '../utils/is';\nexport class ItemBuffer {\n constructor() {\n this.buffer = [];\n }\n addItem(item) {\n this.buffer.push(item);\n }\n flushBuffer(cb) {\n if (isFunction(cb)) {\n for (const item of this.buffer) {\n cb(item);\n }\n }\n this.buffer.length = 0;\n }\n size() {\n return this.buffer.length;\n }\n}\n//# sourceMappingURL=ItemBuffer.js.map","import { TransportItemType } from '../transports';\nimport { USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_HALT, USER_ACTION_START } from './const';\nimport { ItemBuffer } from './ItemBuffer';\nexport function createUserActionLifecycleHandler({ apiMessageBus, transports, config, }) {\n const actionBuffer = new ItemBuffer();\n const trackUserActionsExcludeItem = config.trackUserActionsExcludeItem;\n let message;\n apiMessageBus.subscribe((msg) => {\n if (USER_ACTION_START === msg.type || USER_ACTION_HALT === msg.type) {\n message = msg;\n return;\n }\n if (msg.type === USER_ACTION_END) {\n const { id, name } = msg;\n actionBuffer.flushBuffer((item) => {\n if (isExcludeFromUserAction(item, trackUserActionsExcludeItem)) {\n transports.execute(item);\n return;\n }\n const userActionItem = Object.assign(Object.assign({}, item), { payload: Object.assign(Object.assign({}, item.payload), { action: {\n parentId: id,\n name,\n } }) });\n transports.execute(userActionItem);\n });\n message = undefined;\n return;\n }\n if (msg.type === USER_ACTION_CANCEL) {\n message = undefined;\n actionBuffer.flushBuffer((item) => {\n transports.execute(item);\n });\n }\n });\n const getMessage = () => message;\n return { actionBuffer, getMessage };\n}\nfunction isExcludeFromUserAction(item, trackUserActionsExcludeItem) {\n return ((trackUserActionsExcludeItem === null || trackUserActionsExcludeItem === void 0 ? void 0 : trackUserActionsExcludeItem(item)) ||\n (item.type === TransportItemType.MEASUREMENT && item.payload.type === 'web-vitals'));\n}\n//# sourceMappingURL=userActionLifecycleHandler.js.map","import { Observable } from '../utils';\nimport { initializeEventsAPI } from './events';\nimport { initializeExceptionsAPI } from './exceptions';\nimport { initializeLogsAPI } from './logs';\nimport { initializeMeasurementsAPI } from './measurements';\nimport { initializeMetaAPI } from './meta';\nimport { initializeTracesAPI } from './traces';\nimport { createUserActionLifecycleHandler } from './userActionLifecycleHandler';\nexport const apiMessageBus = new Observable();\nexport function initializeAPI(unpatchedConsole, internalLogger, config, metas, transports) {\n internalLogger.debug('Initializing API');\n const { actionBuffer, getMessage } = createUserActionLifecycleHandler({ apiMessageBus, transports, config });\n const tracesApi = initializeTracesAPI(unpatchedConsole, internalLogger, config, metas, transports);\n const props = {\n unpatchedConsole,\n internalLogger,\n config,\n metas,\n transports,\n tracesApi,\n actionBuffer,\n getMessage,\n };\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, tracesApi), initializeExceptionsAPI(props)), initializeMetaAPI(props)), initializeLogsAPI(props)), initializeMeasurementsAPI(props)), initializeEventsAPI(props));\n}\n//# sourceMappingURL=initialize.js.map","export const MESSAGE_TYPE_RESOURCE_ENTRY = 'resource-entry';\nexport const MESSAGE_TYPE_HTTP_REQUEST_START = 'http-request-start';\nexport const MESSAGE_TYPE_HTTP_REQUEST_END = 'http-request-end';\nexport const MESSAGE_TYPE_DOM_MUTATION = 'dom-mutation';\nexport const userActionDataAttributeParsed = 'faroUserActionName';\nexport const userActionDataAttribute = 'data-faro-user-action-name';\nexport const userActionStartByApiCallEventName = 'faroApiCall';\n//# sourceMappingURL=const.js.map","import { Observable } from '@grafana/faro-core';\nimport { MESSAGE_TYPE_DOM_MUTATION } from './const';\nexport function monitorDomMutations() {\n const observable = new Observable();\n const observer = new MutationObserver((_mutationsList, _observer) => {\n observable.notify({ type: MESSAGE_TYPE_DOM_MUTATION });\n });\n observer.observe(document, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true,\n });\n return observable;\n}\n//# sourceMappingURL=domMutationMonitor.js.map","import { faro, isEmpty, isFunction, isString } from '@grafana/faro-core';\n/**\n * Retrieves a list of URLs to be ignored by aggregating the ignore URLs from all transports.\n *\n * @returns {string[]} An array of URLs to be ignored.\n */\nexport function getIgnoreUrls() {\n return faro.transports.transports.flatMap((transport) => transport.getIgnoreUrls());\n}\n/**\n * Checks if the given URL should be ignored based on a list of ignored URLs.\n *\n * @param url - The URL to check.\n * @returns `true` if the URL is in the list of ignored URLs, `false` otherwise.\n */\nexport function isUrlIgnored(url = '') {\n return getIgnoreUrls().some((ignoredUrl) => url && url.match(ignoredUrl) != null);\n}\n/**\n * Extracts a URL string from the given resource.\n *\n * @param resource - The input resource which can be a string, a URL object, or an object with a `toString` method.\n * @returns The URL as a string if the resource is a valid URL-like object, or `undefined` if the resource is not valid.\n *\n */\nexport function getUrlFromResource(resource) {\n if (isString(resource)) {\n return resource;\n }\n if (resource instanceof URL) {\n return resource.href;\n }\n if (!isEmpty(resource) && isFunction(resource === null || resource === void 0 ? void 0 : resource.toString)) {\n return resource.toString();\n }\n return undefined;\n}\n//# sourceMappingURL=url.js.map","import { genShortID, Observable } from '@grafana/faro-core';\nimport { getUrlFromResource, isUrlIgnored } from '../../utils/url';\nimport { MESSAGE_TYPE_HTTP_REQUEST_END, MESSAGE_TYPE_HTTP_REQUEST_START } from './const';\nconst apiTypeFetch = 'fetch';\nconst apiTypeXhr = 'xhr';\n/**\n * Monitors if any http requests are in progress.\n */\nexport function monitorHttpRequests() {\n const observable = new Observable();\n function emitStartMessage(requestProps) {\n observable.notify({\n type: MESSAGE_TYPE_HTTP_REQUEST_START,\n request: requestProps,\n });\n }\n function emitEndMessage(requestProps) {\n observable.notify({\n type: MESSAGE_TYPE_HTTP_REQUEST_END,\n request: requestProps,\n });\n }\n monitorFetch({\n onRequestStart: emitStartMessage,\n onRequestEnd: emitEndMessage,\n });\n monitorXhr({\n onRequestStart: emitStartMessage,\n onRequestEnd: emitEndMessage,\n });\n return observable;\n}\nfunction monitorXhr({ onRequestStart, onRequestEnd, }) {\n const originalOpen = XMLHttpRequest.prototype.open;\n XMLHttpRequest.prototype.open = function () {\n const url = arguments[1];\n const isIgnoredUrl = isUrlIgnored(url);\n const method = arguments[0];\n const requestId = genShortID();\n // request has started to load data.\n this.addEventListener('loadstart', function () {\n if (!isIgnoredUrl) {\n onRequestStart({ url, method, requestId, apiType: apiTypeXhr });\n }\n });\n // transaction completes successfully.\n this.addEventListener('load', function () {\n if (!isIgnoredUrl) {\n onRequestEnd({ url, method, requestId, apiType: apiTypeXhr });\n }\n });\n this.addEventListener('error', function () {\n if (!isIgnoredUrl) {\n onRequestEnd({ url, method, requestId, apiType: apiTypeXhr });\n }\n });\n this.addEventListener('abort', function () {\n if (!isIgnoredUrl) {\n onRequestEnd({ url, method, requestId, apiType: apiTypeXhr });\n }\n });\n originalOpen.apply(this, arguments);\n };\n}\nfunction monitorFetch({ onRequestEnd, onRequestStart, }) {\n const originalFetch = window.fetch;\n window.fetch = function () {\n var _a, _b;\n const url = (_a = getUrlFromResource(arguments[0])) !== null && _a !== void 0 ? _a : '';\n const isIgnoredUrl = isUrlIgnored(url);\n const method = ((_b = arguments[1]) !== null && _b !== void 0 ? _b : {}).method;\n const requestId = genShortID();\n if (!isIgnoredUrl) {\n onRequestStart({ url, method, requestId, apiType: apiTypeFetch });\n }\n return originalFetch\n .apply(this, arguments)\n .then((response) => {\n if (!isIgnoredUrl) {\n onRequestEnd({ url, method, requestId, apiType: apiTypeFetch });\n }\n return response;\n })\n .catch((error) => {\n if (!isIgnoredUrl) {\n onRequestEnd({ url, method, requestId, apiType: apiTypeFetch });\n }\n throw error;\n });\n };\n}\n//# sourceMappingURL=httpRequestMonitor.js.map","export const unknownString = 'unknown';\n//# sourceMappingURL=consts.js.map","import { faro } from '@grafana/faro-core';\nexport const webStorageType = {\n session: 'sessionStorage',\n local: 'localStorage',\n};\n/**\n * Check if selected web storage mechanism is available.\n * @param type storage mechanism to test availability for.\n * @returns\n */\nexport function isWebStorageAvailable(type) {\n var _a;\n try {\n let storage;\n storage = window[type];\n const testItem = '__faro_storage_test__';\n storage.setItem(testItem, testItem);\n storage.removeItem(testItem);\n return true;\n }\n catch (error) {\n // the above can throw\n (_a = faro.internalLogger) === null || _a === void 0 ? void 0 : _a.info(`Web storage of type ${type} is not available. Reason: ${error}`);\n return false;\n }\n}\n/**\n * Get item from SessionStorage or LocalStorage.\n * @param key: the item key.\n * @param webStorageMechanism: wether the item shall be received form local storage or session storage. Defaults to local storage.\n */\nexport function getItem(key, webStorageMechanism) {\n if (isWebStorageTypeAvailable(webStorageMechanism)) {\n return window[webStorageMechanism].getItem(key);\n }\n return null;\n}\n/**\n * Store item in SessionStorage or LocalStorage.\n * @param key: the item key.\n * @param value: the item data.\n * @param webStorageMechanism: wether the item shall be received form local storage or session storage. Defaults to local storage.\n */\nexport function setItem(key, value, webStorageMechanism) {\n if (isWebStorageTypeAvailable(webStorageMechanism)) {\n try {\n window[webStorageMechanism].setItem(key, value);\n }\n catch (error) {\n // do nothing\n }\n }\n}\n/**\n * Remove item from SessionStorage or LocalStorage.\n * @param key: the item key.\n * @param webStorageMechanism: wether the item shall be received form local storage or session storage. Defaults to local storage.\n */\nexport function removeItem(key, webStorageMechanism) {\n if (isWebStorageTypeAvailable(webStorageMechanism)) {\n window[webStorageMechanism].removeItem(key);\n }\n}\nexport const isLocalStorageAvailable = isWebStorageAvailable(webStorageType.local);\nexport const isSessionStorageAvailable = isWebStorageAvailable(webStorageType.session);\nfunction isWebStorageTypeAvailable(webStorageMechanism) {\n if (webStorageMechanism === webStorageType.local) {\n return isLocalStorageAvailable;\n }\n if (webStorageMechanism === webStorageType.session) {\n return isSessionStorageAvailable;\n }\n return false;\n}\n//# sourceMappingURL=webStorage.js.map","export const NAVIGATION_ID_STORAGE_KEY = 'com.grafana.faro.lastNavigationId';\n//# sourceMappingURL=instrumentationConstants.js.map","export const NAVIGATION_ENTRY = 'navigation';\nexport const RESOURCE_ENTRY = 'resource';\n//# sourceMappingURL=performanceConstants.js.map","import { isArray, unknownString } from '@grafana/faro-core';\nconst w3cTraceparentFormat = /^00-[a-f0-9]{32}-[a-f0-9]{16}-[0-9]{1,2}$/;\n// Extract traceparent from serverTiming, if present\nexport function getSpanContextFromServerTiming(serverTimings = []) {\n for (const serverEntry of serverTimings) {\n if (serverEntry.name === 'traceparent') {\n if (!w3cTraceparentFormat.test(serverEntry.description)) {\n continue;\n }\n const [, traceId, spanId] = serverEntry.description.split('-');\n if (traceId != null && spanId != null) {\n return { traceId, spanId };\n }\n break;\n }\n }\n return undefined;\n}\nexport function performanceObserverSupported() {\n return 'PerformanceObserver' in window;\n}\nexport function onDocumentReady(handleReady) {\n if (document.readyState === 'complete') {\n handleReady();\n }\n else {\n const readyStateCompleteHandler = () => {\n if (document.readyState === 'complete') {\n handleReady();\n document.removeEventListener('readystatechange', readyStateCompleteHandler);\n }\n };\n document.addEventListener('readystatechange', readyStateCompleteHandler);\n }\n}\nexport function includePerformanceEntry(performanceEntryJSON, allowProps = {}) {\n for (const [allowPropKey, allowPropValue] of Object.entries(allowProps)) {\n const perfEntryPropVal = performanceEntryJSON[allowPropKey];\n if (perfEntryPropVal == null) {\n return false;\n }\n if (isArray(allowPropValue)) {\n return allowPropValue.includes(perfEntryPropVal);\n }\n return perfEntryPropVal === allowPropValue;\n }\n // empty object allows all\n return true;\n}\nexport function createFaroResourceTiming(resourceEntryRaw) {\n const { connectEnd, connectStart, decodedBodySize, domainLookupEnd, domainLookupStart, duration, encodedBodySize, fetchStart, initiatorType, name, nextHopProtocol, redirectEnd, redirectStart, \n // @ts-expect-error the renderBlockingStatus property is not available in all browsers\n renderBlockingStatus: rbs, requestStart, responseEnd, responseStart, responseStatus, secureConnectionStart, transferSize, workerStart, } = resourceEntryRaw;\n return {\n name: name,\n duration: toFaroPerformanceTimingString(duration),\n tcpHandshakeTime: toFaroPerformanceTimingString(connectEnd - connectStart),\n dnsLookupTime: toFaroPerformanceTimingString(domainLookupEnd - domainLookupStart),\n tlsNegotiationTime: toFaroPerformanceTimingString(connectEnd - secureConnectionStart),\n responseStatus: toFaroPerformanceTimingString(responseStatus),\n redirectTime: toFaroPerformanceTimingString(redirectEnd - redirectStart),\n requestTime: toFaroPerformanceTimingString(responseStart - requestStart),\n responseTime: toFaroPerformanceTimingString(responseEnd - responseStart),\n fetchTime: toFaroPerformanceTimingString(responseEnd - fetchStart),\n serviceWorkerTime: toFaroPerformanceTimingString(fetchStart - workerStart),\n decodedBodySize: toFaroPerformanceTimingString(decodedBodySize),\n encodedBodySize: toFaroPerformanceTimingString(encodedBodySize),\n cacheHitStatus: getCacheType(),\n renderBlockingStatus: toFaroPerformanceTimingString(rbs),\n protocol: nextHopProtocol,\n initiatorType: initiatorType,\n visibilityState: document.visibilityState,\n ttfb: toFaroPerformanceTimingString(responseStart - requestStart),\n transferSize: toFaroPerformanceTimingString(transferSize),\n // TODO: add in future iteration, ideally after nested objects are supported by the collector.\n // serverTiming: resourceEntryRaw.serverTiming,\n };\n function getCacheType() {\n let cacheType = 'fullLoad';\n if (transferSize === 0) {\n if (decodedBodySize > 0) {\n cacheType = 'cache';\n }\n }\n else {\n if (responseStatus != null) {\n if (responseStatus === 304) {\n cacheType = 'conditionalFetch';\n }\n }\n else if (encodedBodySize > 0 && transferSize < encodedBodySize) {\n cacheType = 'conditionalFetch';\n }\n }\n return cacheType;\n }\n}\nexport function createFaroNavigationTiming(navigationEntryRaw) {\n const { activationStart, domComplete, domContentLoadedEventEnd, domContentLoadedEventStart, domInteractive, fetchStart, loadEventEnd, loadEventStart, responseStart, type, } = navigationEntryRaw;\n const parserStart = getDocumentParsingTime();\n return Object.assign(Object.assign({}, createFaroResourceTiming(navigationEntryRaw)), { pageLoadTime: toFaroPerformanceTimingString(domComplete - fetchStart), documentParsingTime: toFaroPerformanceTimingString(parserStart ? domInteractive - parserStart : null), domProcessingTime: toFaroPerformanceTimingString(domComplete - domInteractive), domContentLoadHandlerTime: toFaroPerformanceTimingString(domContentLoadedEventEnd - domContentLoadedEventStart), onLoadTime: toFaroPerformanceTimingString(loadEventEnd - loadEventStart), \n // For navigation entries we can calculate the TTFB based on activationStart. We overwrite the TTFB value coming with the resource entry.\n // For more accuracy on prerendered pages page we calculate relative top the activationStart instead of the start of the navigation.\n // clamp to 0 if activationStart occurs after first byte is received.\n ttfb: toFaroPerformanceTimingString(Math.max(responseStart - (activationStart !== null && activationStart !== void 0 ? activationStart : 0), 0)), type: type });\n}\nfunction getDocumentParsingTime() {\n var _a;\n if (((_a = performance.timing) === null || _a === void 0 ? void 0 : _a.domLoading) != null) {\n // the browser is about to start parsing the first received bytes of the HTML document.\n // This property is deprecated but there isn't a really good alternative atm.\n // For now we stick with domLoading and keep researching a better alternative.\n return performance.timing.domLoading - performance.timeOrigin;\n }\n return null;\n}\nfunction toFaroPerformanceTimingString(v) {\n if (v == null) {\n return unknownString;\n }\n if (typeof v === 'number') {\n return Math.round(v > 0 ? v : 0).toString();\n }\n return v.toString();\n}\n//# sourceMappingURL=performanceUtils.js.map","import { genShortID, unknownString } from '@grafana/faro-core';\nimport { getItem, setItem, webStorageType } from '../../utils';\nimport { isUrlIgnored } from '../../utils/url';\nimport { NAVIGATION_ID_STORAGE_KEY } from '../instrumentationConstants';\nimport { NAVIGATION_ENTRY } from './performanceConstants';\nimport { createFaroNavigationTiming, getSpanContextFromServerTiming } from './performanceUtils';\nexport function getNavigationTimings(pushEvent) {\n let faroNavigationEntryResolve;\n const faroNavigationEntryPromise = new Promise((resolve) => {\n faroNavigationEntryResolve = resolve;\n });\n const observer = new PerformanceObserver((observedEntries) => {\n var _a;\n const [navigationEntryRaw] = observedEntries.getEntries();\n if (navigationEntryRaw == null || isUrlIgnored(navigationEntryRaw.name)) {\n return;\n }\n const navEntryJson = navigationEntryRaw.toJSON();\n let spanContext = getSpanContextFromServerTiming(navEntryJson === null || navEntryJson === void 0 ? void 0 : navEntryJson.serverTiming);\n const faroPreviousNavigationId = (_a = getItem(NAVIGATION_ID_STORAGE_KEY, webStorageType.session)) !== null && _a !== void 0 ? _a : unknownString;\n const faroNavigationEntry = Object.assign(Object.assign({}, createFaroNavigationTiming(navEntryJson)), { faroNavigationId: genShortID(), faroPreviousNavigationId });\n setItem(NAVIGATION_ID_STORAGE_KEY, faroNavigationEntry.faroNavigationId, webStorageType.session);\n pushEvent('faro.performance.navigation', faroNavigationEntry, undefined, {\n spanContext,\n timestampOverwriteMs: performance.timeOrigin + navEntryJson.startTime,\n });\n faroNavigationEntryResolve(faroNavigationEntry);\n });\n observer.observe({\n type: NAVIGATION_ENTRY,\n buffered: true,\n });\n return faroNavigationEntryPromise;\n}\n//# sourceMappingURL=navigation.js.map","import { faro, genShortID } from '@grafana/faro-core';\nimport { isUrlIgnored } from '../../utils/url';\nimport { RESOURCE_ENTRY } from './performanceConstants';\nimport { createFaroResourceTiming, getSpanContextFromServerTiming, includePerformanceEntry } from './performanceUtils';\nconst DEFAULT_TRACK_RESOURCES = { initiatorType: ['xmlhttprequest', 'fetch'] };\nexport function observeResourceTimings(faroNavigationId, pushEvent, observable) {\n const trackResources = faro.config.trackResources;\n const observer = new PerformanceObserver((observedEntries) => {\n const entries = observedEntries.getEntries();\n for (const resourceEntryRaw of entries) {\n if (isUrlIgnored(resourceEntryRaw.name)) {\n return;\n }\n const resourceEntryJson = resourceEntryRaw.toJSON();\n let spanContext = getSpanContextFromServerTiming(resourceEntryJson === null || resourceEntryJson === void 0 ? void 0 : resourceEntryJson.serverTiming);\n if ((trackResources == null && includePerformanceEntry(resourceEntryJson, DEFAULT_TRACK_RESOURCES)) ||\n trackResources) {\n const faroResourceEntry = Object.assign(Object.assign({}, createFaroResourceTiming(resourceEntryJson)), { faroNavigationId, faroResourceId: genShortID() });\n if (faro.config.trackUserActionsPreview) {\n observable === null || observable === void 0 ? void 0 : observable.notify({\n type: RESOURCE_ENTRY,\n });\n }\n pushEvent('faro.performance.resource', faroResourceEntry, undefined, {\n spanContext,\n timestampOverwriteMs: performance.timeOrigin + resourceEntryJson.startTime,\n });\n }\n }\n });\n observer.observe({\n type: RESOURCE_ENTRY,\n buffered: true,\n });\n}\n//# sourceMappingURL=resource.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BaseInstrumentation, Observable, VERSION } from '@grafana/faro-core';\nimport { getNavigationTimings } from './navigation';\nimport { onDocumentReady, performanceObserverSupported } from './performanceUtils';\nimport { observeResourceTimings } from './resource';\nexport const performanceEntriesSubscription = new Observable();\nexport class PerformanceInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-performance';\n this.version = VERSION;\n }\n initialize() {\n if (!performanceObserverSupported()) {\n this.logDebug('performance observer not supported. Disable performance instrumentation.');\n return;\n }\n onDocumentReady(() => __awaiter(this, void 0, void 0, function* () {\n const pushEvent = this.api.pushEvent;\n const { faroNavigationId } = yield getNavigationTimings(pushEvent);\n if (faroNavigationId != null) {\n observeResourceTimings(faroNavigationId, pushEvent, performanceEntriesSubscription);\n }\n }));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","import { Observable } from '@grafana/faro-core';\nimport { performanceEntriesSubscription } from '../performance/instrumentation';\nimport { RESOURCE_ENTRY } from '../performance/performanceConstants';\nimport { MESSAGE_TYPE_RESOURCE_ENTRY } from './const';\nexport function monitorPerformanceEntries() {\n const observable = new Observable();\n performanceEntriesSubscription.subscribe((data) => {\n if (data.type === RESOURCE_ENTRY) {\n observable.notify({ type: MESSAGE_TYPE_RESOURCE_ENTRY });\n }\n });\n return observable;\n}\n//# sourceMappingURL=performanceEntriesMonitor.js.map","/**\n * Parses the action attribute name by removing the 'data-' prefix and converting\n * the remaining string to camelCase.\n *\n * This is needed because the browser will remove the 'data-' prefix and the dashes from\n * data attributes and make then camelCase.\n */\nexport function convertDataAttributeName(userActionDataAttribute) {\n const withoutData = userActionDataAttribute.split('data-')[1];\n const withUpperCase = withoutData === null || withoutData === void 0 ? void 0 : withoutData.replace(/-(.)/g, (_, char) => char.toUpperCase());\n return withUpperCase === null || withUpperCase === void 0 ? void 0 : withUpperCase.replace(/-/g, '');\n}\n//# sourceMappingURL=util.js.map","import { apiMessageBus, dateNow, genShortID, Observable, stringifyObjectValues, USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_HALT, USER_ACTION_START, } from '@grafana/faro-core';\nimport { MESSAGE_TYPE_HTTP_REQUEST_END, MESSAGE_TYPE_HTTP_REQUEST_START, userActionDataAttributeParsed as userActionDataAttribute, userActionStartByApiCallEventName, } from './const';\nimport { monitorDomMutations } from './domMutationMonitor';\nimport { monitorHttpRequests } from './httpRequestMonitor';\nimport { monitorPerformanceEntries } from './performanceEntriesMonitor';\nimport { convertDataAttributeName } from './util';\nconst maxFollowUpActionTimeRange = 100;\nexport function getUserEventHandler(faro) {\n const { api, config } = faro;\n const httpMonitor = monitorHttpRequests();\n const domMutationsMonitor = monitorDomMutations();\n const performanceEntriesMonitor = monitorPerformanceEntries();\n let timeoutId;\n let actionRunning = false;\n function processUserEvent(event) {\n var _a;\n let userActionName;\n const isApiEventDetected = isApiEvent(event);\n if (isApiEventDetected) {\n userActionName = event.name;\n }\n else {\n userActionName = getUserActionName(event.target, (_a = config.trackUserActionsDataAttributeName) !== null && _a !== void 0 ? _a : userActionDataAttribute);\n }\n if (actionRunning || userActionName == null) {\n return;\n }\n actionRunning = true;\n const startTime = dateNow();\n let endTime;\n const actionId = genShortID();\n apiMessageBus.notify({\n type: USER_ACTION_START,\n name: userActionName,\n startTime: startTime,\n parentId: actionId,\n });\n // Triggers if no initial action happened within the first 100ms\n timeoutId = startTimeout(timeoutId, () => {\n endTime = dateNow();\n // Listening for follow up activities stops once action is cancelled (set to false)\n actionRunning = false;\n sendUserActionCancelMessage(userActionName, actionId);\n }, maxFollowUpActionTimeRange);\n const runningRequests = new Map();\n let isHalted = false;\n let pendingActionTimeoutId;\n const allMonitorsSub = new Observable()\n .merge(httpMonitor, domMutationsMonitor, performanceEntriesMonitor)\n .takeWhile(() => actionRunning)\n .filter((msg) => {\n // If the user action is in halt state, we only keep listening to ended http requests\n if (isHalted && !(isRequestEndMessage(msg) && runningRequests.has(msg.request.requestId))) {\n return false;\n }\n return true;\n })\n .subscribe((msg) => {\n if (isRequestStartMessage(msg)) {\n // An action is on halt if it has pending items, like pending HTTP requests.\n // In this case we start a separate timeout to wait for the requests to finish\n // If in the halt state, we stop adding Faro signals to the action's buffer (see userActionLifecycleHandler.ts)\n // But we are still subscribed to\n runningRequests.set(msg.request.requestId, msg.request);\n }\n if (isRequestEndMessage(msg)) {\n runningRequests.delete(msg.request.requestId);\n }\n // A http request, a DOM mutation or a performance entry happened so we have a follow up activity and start the timeout again\n // If timeout is triggered the user action is done and we send respective messages and events\n timeoutId = startTimeout(timeoutId, () => {\n endTime = dateNow();\n const userActionParentEventProps = Object.assign({ api,\n userActionName,\n startTime, endTime: endTime, actionId,\n event }, (isApiEventDetected ? { attributes: event.attributes } : {}));\n const hasPendingRequests = runningRequests.size > 0;\n const isAllPendingRequestsResolved = isHalted && !hasPendingRequests;\n if (isAllPendingRequestsResolved) {\n clearTimeout(pendingActionTimeoutId);\n isHalted = false;\n }\n if (hasPendingRequests) {\n isHalted = true;\n apiMessageBus.notify({\n type: USER_ACTION_HALT,\n name: userActionName,\n parentId: actionId,\n reason: 'pending-requests',\n haltTime: dateNow(),\n });\n pendingActionTimeoutId = startTimeout(undefined, () => {\n unsubscribeAllMonitors(allMonitorsSub);\n endUserAction(userActionParentEventProps);\n actionRunning = false;\n isHalted = false;\n }, 1000 * 10);\n }\n else {\n unsubscribeAllMonitors(allMonitorsSub);\n endUserAction(userActionParentEventProps);\n actionRunning = false;\n isHalted = false;\n }\n }, maxFollowUpActionTimeRange);\n });\n }\n return processUserEvent;\n}\n/**\n * User action was successfully completed and we send the final event(s)\n */\nfunction endUserAction(props) {\n const { api, userActionName, startTime, endTime, actionId, event, attributes } = props;\n const duration = endTime - startTime;\n const eventType = event.type;\n // order matters, first emit the user-action-end event and afterwards push the parent event\n apiMessageBus.notify({\n type: USER_ACTION_END,\n name: userActionName,\n id: actionId,\n startTime,\n endTime,\n duration,\n eventType,\n });\n // Send the final action parent event\n api.pushEvent(userActionName, Object.assign({ userActionStartTime: startTime.toString(), userActionEndTime: endTime.toString(), userActionDuration: duration.toString(), userActionTrigger: eventType }, stringifyObjectValues(attributes)), undefined, {\n timestampOverwriteMs: startTime,\n customPayloadTransformer: (payload) => {\n payload.action = {\n id: actionId,\n name: userActionName,\n };\n return payload;\n },\n });\n}\nfunction getUserActionName(element, dataAttributeName) {\n const parsedDataAttributeName = convertDataAttributeName(dataAttributeName);\n const dataset = element.dataset;\n for (const key in dataset) {\n if (key === parsedDataAttributeName) {\n return dataset[key];\n }\n }\n return undefined;\n}\nfunction startTimeout(timeoutId, cb, delay) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n //@ts-expect-error for some reason vscode is using the node types\n timeoutId = setTimeout(() => {\n cb();\n }, delay);\n return timeoutId;\n}\nfunction sendUserActionCancelMessage(userActionName, actionId) {\n apiMessageBus.notify({\n type: USER_ACTION_CANCEL,\n name: userActionName,\n parentId: actionId,\n });\n}\nfunction unsubscribeAllMonitors(allMonitorsSub) {\n allMonitorsSub === null || allMonitorsSub === void 0 ? void 0 : allMonitorsSub.unsubscribe();\n allMonitorsSub = undefined;\n}\nfunction isRequestStartMessage(msg) {\n return msg.type === MESSAGE_TYPE_HTTP_REQUEST_START;\n}\nfunction isRequestEndMessage(msg) {\n return msg.type === MESSAGE_TYPE_HTTP_REQUEST_END;\n}\nfunction isApiEvent(apiEvent) {\n return apiEvent.type === userActionStartByApiCallEventName && typeof apiEvent.name === 'string';\n}\n//# sourceMappingURL=processUserActionEventHandler.js.map","import { BaseInstrumentation, faro, VERSION } from '@grafana/faro-core';\nimport { userActionStartByApiCallEventName } from './const';\nimport { getUserEventHandler } from './processUserActionEventHandler';\nlet processUserEventHandler;\nexport class UserActionInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-user-action';\n this.version = VERSION;\n }\n initialize() {\n processUserEventHandler = getUserEventHandler(faro);\n window.addEventListener('pointerdown', processUserEventHandler);\n window.addEventListener('keydown', processUserEventHandler);\n }\n}\nexport function startUserAction(name, attributes) {\n processUserEventHandler === null || processUserEventHandler === void 0 ? void 0 : processUserEventHandler(createUserActionApiEvent(name, attributes));\n}\nfunction createUserActionApiEvent(name, attributes) {\n return {\n name,\n attributes,\n type: userActionStartByApiCallEventName,\n };\n}\n//# sourceMappingURL=instrumentation.js.map","export const primitiveUnhandledValue = 'Non-Error promise rejection captured with value:';\nexport const primitiveUnhandledType = 'UnhandledRejection';\nexport const domErrorType = 'DOMError';\nexport const domExceptionType = 'DOMException';\nexport const objectEventValue = 'Non-Error exception captured with keys:';\nexport const unknownSymbolString = '?';\nexport const valueTypeRegex = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n//# sourceMappingURL=const.js.map","import { defaultExceptionType } from '@grafana/faro-core';\nimport { valueTypeRegex } from './const';\nexport function getValueAndTypeFromMessage(message) {\n var _a, _b;\n const groups = message.match(valueTypeRegex);\n const type = (_a = groups === null || groups === void 0 ? void 0 : groups[1]) !== null && _a !== void 0 ? _a : defaultExceptionType;\n const value = (_b = groups === null || groups === void 0 ? void 0 : groups[2]) !== null && _b !== void 0 ? _b : message;\n return [value, type];\n}\n//# sourceMappingURL=getValueAndTypeFromMessage.js.map","export const newLineString = '\\n';\nexport const evalString = 'eval';\nexport const unknownSymbolString = '?';\nexport const atString = '@';\nexport const webkitLineRegex = /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nexport const webkitEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nexport const webkitEvalString = 'eval';\nexport const webkitAddressAtString = 'address at ';\nexport const webkitAddressAtStringLength = webkitAddressAtString.length;\nexport const firefoxLineRegex = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nexport const firefoxEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nexport const firefoxEvalString = ' > eval';\nexport const safariExtensionString = 'safari-extension';\nexport const safariWebExtensionString = 'safari-web-extension';\nexport const reactMinifiedRegex = /Minified React error #\\d+;/i;\n//# sourceMappingURL=const.js.map","import { unknownSymbolString } from './const';\nexport function buildStackFrame(filename, func, lineno, colno) {\n const stackFrame = {\n filename: filename || document.location.href,\n function: func || unknownSymbolString,\n };\n if (lineno !== undefined) {\n stackFrame.lineno = lineno;\n }\n if (colno !== undefined) {\n stackFrame.colno = colno;\n }\n return stackFrame;\n}\n//# sourceMappingURL=buildStackFrame.js.map","import { atString, safariExtensionString, safariWebExtensionString } from './const';\nexport function getDataFromSafariExtensions(func, filename) {\n const isSafariExtension = func === null || func === void 0 ? void 0 : func.includes(safariExtensionString);\n const isSafariWebExtension = !isSafariExtension && (func === null || func === void 0 ? void 0 : func.includes(safariWebExtensionString));\n if (!isSafariExtension && !isSafariWebExtension) {\n return [func, filename];\n }\n return [\n (func === null || func === void 0 ? void 0 : func.includes(atString)) ? func.split(atString)[0] : func,\n isSafariExtension ? `${safariExtensionString}:${filename}` : `${safariWebExtensionString}:${filename}`,\n ];\n}\n//# sourceMappingURL=getDataFromSafariExtensions.js.map","import { isNumber } from '@grafana/faro-core';\nimport { buildStackFrame } from './buildStackFrame';\nimport { evalString, firefoxEvalRegex, firefoxEvalString, firefoxLineRegex, newLineString, reactMinifiedRegex, webkitAddressAtString, webkitAddressAtStringLength, webkitEvalRegex, webkitEvalString, webkitLineRegex, } from './const';\nimport { getDataFromSafariExtensions } from './getDataFromSafariExtensions';\nexport function getStackFramesFromError(error) {\n let lines = [];\n if (error.stacktrace) {\n lines = error.stacktrace.split(newLineString).filter((_line, idx) => idx % 2 === 0);\n }\n else if (error.stack) {\n lines = error.stack.split(newLineString);\n }\n const stackFrames = lines.reduce((acc, line, idx) => {\n let parts;\n let func;\n let filename;\n let lineno;\n let colno;\n if ((parts = webkitLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[2];\n lineno = parts[3];\n colno = parts[4];\n if (filename === null || filename === void 0 ? void 0 : filename.startsWith(webkitEvalString)) {\n const submatch = webkitEvalRegex.exec(filename);\n if (submatch) {\n filename = submatch[1];\n lineno = submatch[2];\n colno = submatch[3];\n }\n }\n filename = (filename === null || filename === void 0 ? void 0 : filename.startsWith(webkitAddressAtString))\n ? filename.substring(webkitAddressAtStringLength)\n : filename;\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n else if ((parts = firefoxLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[3];\n lineno = parts[4];\n colno = parts[5];\n if (!!filename && filename.includes(firefoxEvalString)) {\n const submatch = firefoxEvalRegex.exec(filename);\n if (submatch) {\n func = func || evalString;\n filename = submatch[1];\n lineno = submatch[2];\n }\n }\n else if (idx === 0 && !colno && isNumber(error.columnNumber)) {\n colno = String(error.columnNumber + 1);\n }\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n if (filename || func) {\n acc.push(buildStackFrame(filename, func, lineno ? Number(lineno) : undefined, colno ? Number(colno) : undefined));\n }\n return acc;\n }, []);\n if (reactMinifiedRegex.test(error.message)) {\n return stackFrames.slice(1);\n }\n return stackFrames;\n}\n//# sourceMappingURL=getStackFramesFromError.js.map","import { isDomError, isDomException, isError, isErrorEvent, isEvent, isObject, isString } from '@grafana/faro-core';\nimport { domErrorType, domExceptionType, objectEventValue, unknownSymbolString } from './const';\nimport { getValueAndTypeFromMessage } from './getValueAndTypeFromMessage';\nimport { buildStackFrame, getStackFramesFromError } from './stackFrames';\nexport function getErrorDetails(evt) {\n let value;\n let type;\n let stackFrames = [];\n let isDomErrorRes;\n let isEventRes;\n if (isErrorEvent(evt) && evt.error) {\n value = evt.error.message;\n type = evt.error.name;\n stackFrames = getStackFramesFromError(evt.error);\n }\n else if ((isDomErrorRes = isDomError(evt)) || isDomException(evt)) {\n const { name, message } = evt;\n type = name !== null && name !== void 0 ? name : (isDomErrorRes ? domErrorType : domExceptionType);\n value = message ? `${type}: ${message}` : type;\n }\n else if (isError(evt)) {\n value = evt.message;\n stackFrames = getStackFramesFromError(evt);\n }\n else if (isObject(evt) || (isEventRes = isEvent(evt))) {\n type = isEventRes ? evt.constructor.name : undefined;\n value = `${objectEventValue} ${Object.keys(evt)}`;\n }\n return [value, type, stackFrames];\n}\nexport function getDetailsFromErrorArgs(args) {\n const [evt, source, lineno, colno, error] = args;\n let value;\n let type;\n let stackFrames = [];\n const eventIsString = isString(evt);\n const initialStackFrame = buildStackFrame(source, unknownSymbolString, lineno, colno);\n if (error || !eventIsString) {\n [value, type, stackFrames] = getErrorDetails((error !== null && error !== void 0 ? error : evt));\n if (stackFrames.length === 0) {\n stackFrames = [initialStackFrame];\n }\n }\n else if (eventIsString) {\n [value, type] = getValueAndTypeFromMessage(evt);\n stackFrames = [initialStackFrame];\n }\n return { value, type, stackFrames };\n}\nexport function getDetailsFromConsoleErrorArgs(args, serializer) {\n if (isError(args[0])) {\n return getDetailsFromErrorArgs(args);\n }\n else {\n return { value: serializer(args) };\n }\n}\n//# sourceMappingURL=getErrorDetails.js.map","import { getDetailsFromErrorArgs } from './getErrorDetails';\nexport function registerOnerror(api) {\n const oldOnerror = window.onerror;\n window.onerror = (...args) => {\n try {\n const { value, type, stackFrames } = getDetailsFromErrorArgs(args);\n const originalError = args[4];\n if (value) {\n const options = { type, stackFrames };\n if (originalError != null) {\n options.originalError = originalError;\n }\n api.pushError(new Error(value), options);\n }\n }\n finally {\n oldOnerror === null || oldOnerror === void 0 ? void 0 : oldOnerror.apply(window, args);\n }\n };\n}\n//# sourceMappingURL=registerOnerror.js.map","import { isPrimitive } from '@grafana/faro-core';\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nexport function registerOnunhandledrejection(api) {\n window.addEventListener('unhandledrejection', (evt) => {\n var _a, _b;\n let error = evt;\n if (error.reason) {\n error = evt.reason;\n }\n else if ((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.reason) {\n error = (_b = evt.detail) === null || _b === void 0 ? void 0 : _b.reason;\n }\n let value;\n let type;\n let stackFrames = [];\n if (isPrimitive(error)) {\n value = `${primitiveUnhandledValue} ${String(error)}`;\n type = primitiveUnhandledType;\n }\n else {\n [value, type, stackFrames] = getErrorDetails(error);\n }\n if (value) {\n api.pushError(new Error(value), { type, stackFrames });\n }\n });\n}\n//# sourceMappingURL=registerOnunhandledrejection.js.map","import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { registerOnerror } from './registerOnerror';\nimport { registerOnunhandledrejection } from './registerOnunhandledrejection';\nexport class ErrorsInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-errors';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing');\n registerOnerror(this.api);\n registerOnunhandledrejection(this.api);\n }\n}\n//# sourceMappingURL=instrumentation.js.map","var e,n,t,r,i,o=-1,a=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(o=n.timeStamp,e(n))}),!0)},c=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},u=function(){var e=c();return e&&e.activationStart||0},f=function(e,n){var t=c(),r=\"navigate\";o>=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries.push(e),t(!0)))}))}));o&&(t=d(e,i,b,n.reportAllChanges),a((function(r){i=f(\"FCP\"),t=d(e,i,b,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,t(!0)}))})))}))},L=[.1,.25],w=function(e,n){n=n||{},S(v((function(){var t,r=f(\"CLS\",0),i=0,o=[],c=function(e){e.forEach((function(e){if(!e.hadRecentInput){var n=o[0],t=o[o.length-1];i&&e.startTime-t.startTime<1e3&&e.startTime-n.startTime<5e3?(i+=e.value,o.push(e)):(i=e.value,o=[e])}})),i>r.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){return e?A:performance.interactionCount||0},F=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},D=[],x=new Map,R=0,B=function(){var e=Math.min(D.length-1,Math.floor((k()-R)/50));return D[e]},H=[],q=function(e){if(H.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=D[D.length-1],t=x.get(e.interactionId);if(t||D.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};x.set(r.id,r),D.push(r)}D.sort((function(e,n){return n.latency-e.latency})),D.length>10&&D.splice(10).forEach((function(e){return x.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},N=[200,500],j=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;F();var r,i=f(\"INP\"),o=function(e){O((function(){e.forEach(q);var n=B();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,N,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){R=k(),D.length=0,x.clear(),i=f(\"INP\"),r=d(e,i,N,n.reportAllChanges)})))})))},_=[2500,4e3],z={},G=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries=[e],t())}))},c=s(\"largest-contentful-paint\",o);if(c){t=d(e,i,_,n.reportAllChanges);var m=v((function(){z[i.id]||(o(c.takeRecords()),c.disconnect(),z[i.id]=!0,t(!0))}));[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,(function(){return O(m)}),!0)})),p(m),a((function(r){i=f(\"LCP\"),t=d(e,i,_,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,z[i.id]=!0,t(!0)}))}))}}))},J=[800,1800],K=function e(n){document.prerendering?C((function(){return e(n)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(n)}),!0):setTimeout(n,0)},Q=function(e,n){n=n||{};var t=f(\"TTFB\"),r=d(e,t,J,n.reportAllChanges);K((function(){var i=c();i&&(t.value=Math.max(i.responseStart-u(),0),t.entries=[i],r(!0),a((function(){t=f(\"TTFB\",0),(r=d(e,t,J,n.reportAllChanges))(!0)})))}))},U={passive:!0,capture:!0},V=new Date,W=function(e,i){n||(n=i,t=e,r=new Date,Z(removeEventListener),X())},X=function(){if(t>=0&&t<r-V){var e={entryType:\"first-input\",name:n.type,target:n.target,cancelable:n.cancelable,startTime:n.timeStamp,processingStart:n.timeStamp+t};i.forEach((function(n){n(e)})),i=[]}},Y=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){W(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,U),removeEventListener(\"pointercancel\",r,U)};addEventListener(\"pointerup\",t,U),addEventListener(\"pointercancel\",r,U)}(n,e):W(n,e)}},Z=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,Y,U)}))},$=[100,300],ee=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime<c.firstHiddenTime&&(u.value=e.processingStart-e.startTime,u.entries.push(e),o(!0))},m=function(e){e.forEach(l)},h=s(\"first-input\",m);o=d(e,u,$,r.reportAllChanges),h&&(p(v((function(){m(h.takeRecords()),h.disconnect()}))),a((function(){var a;u=f(\"FID\"),o=d(e,u,$,r.reportAllChanges),i=[],t=-1,n=null,Z(addEventListener),a=l,i.push(a),X()})))}))};export{L as CLSThresholds,b as FCPThresholds,$ as FIDThresholds,N as INPThresholds,_ as LCPThresholds,J as TTFBThresholds,w as onCLS,S as onFCP,ee as onFID,j as onINP,G as onLCP,Q as onTTFB};\n","import { onCLS, onFCP, onFID, onINP, onLCP, onTTFB } from 'web-vitals';\nexport class WebVitalsBasic {\n constructor(pushMeasurement, webVitalConfig) {\n this.pushMeasurement = pushMeasurement;\n this.webVitalConfig = webVitalConfig;\n }\n initialize() {\n Object.entries(WebVitalsBasic.mapping).forEach(([indicator, executor]) => {\n var _a;\n executor((metric) => {\n this.pushMeasurement({\n type: 'web-vitals',\n values: {\n [indicator]: metric.value,\n },\n });\n }, { reportAllChanges: (_a = this.webVitalConfig) === null || _a === void 0 ? void 0 : _a.reportAllChanges });\n });\n }\n}\nWebVitalsBasic.mapping = {\n cls: onCLS,\n fcp: onFCP,\n fid: onFID,\n inp: onINP,\n lcp: onLCP,\n ttfb: onTTFB,\n};\n//# sourceMappingURL=webVitalsBasic.js.map","var t,e,n,r=function(){var t=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(t&&t.responseStart>0&&t.responseStart<performance.now())return t},i=function(t){if(\"loading\"===document.readyState)return\"loading\";var e=r();if(e){if(t<e.domInteractive)return\"loading\";if(0===e.domContentLoadedEventStart||t<e.domContentLoadedEventStart)return\"dom-interactive\";if(0===e.domComplete||t<e.domComplete)return\"dom-content-loaded\"}return\"complete\"},a=function(t){var e=t.nodeName;return 1===t.nodeType?e.toLowerCase():e.toUpperCase().replace(/^#/,\"\")},o=function(t,e){var n=\"\";try{for(;t&&9!==t.nodeType;){var r=t,i=r.id?\"#\"+r.id:a(r)+(r.classList&&r.classList.value&&r.classList.value.trim()&&r.classList.value.trim().length?\".\"+r.classList.value.trim().replace(/\\s+/g,\".\"):\"\");if(n.length+i.length>(e||100)-1)return n||i;if(n=n?i+\">\"+n:i,r.id)break;t=r.parentNode}}catch(t){}return n},c=-1,u=function(){return c},s=function(t){addEventListener(\"pageshow\",(function(e){e.persisted&&(c=e.timeStamp,t(e))}),!0)},f=function(){var t=r();return t&&t.activationStart||0},d=function(t,e){var n=r(),i=\"navigate\";u()>=0?i=\"back-forward-cache\":n&&(document.prerendering||f()>0?i=\"prerender\":document.wasDiscarded?i=\"restore\":n.type&&(i=n.type.replace(/_/g,\"-\")));return{name:t,value:void 0===e?-1:e,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},l=function(t,e,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var r=new PerformanceObserver((function(t){Promise.resolve().then((function(){e(t.getEntries())}))}));return r.observe(Object.assign({type:t,buffered:!0},n||{})),r}}catch(t){}},m=function(t,e,n,r){var i,a;return function(o){e.value>=0&&(o||r)&&((a=e.value-(i||0))||void 0===i)&&(i=e.value,e.delta=a,e.rating=function(t,e){return t>e[1]?\"poor\":t>e[0]?\"needs-improvement\":\"good\"}(e.value,n),t(e))}},v=function(t){requestAnimationFrame((function(){return requestAnimationFrame((function(){return t()}))}))},p=function(t){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&t()}))},g=function(t){var e=!1;return function(){e||(t(),e=!0)}},h=-1,T=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},y=function(t){\"hidden\"===document.visibilityState&&h>-1&&(h=\"visibilitychange\"===t.type?t.timeStamp:0,S())},E=function(){addEventListener(\"visibilitychange\",y,!0),addEventListener(\"prerenderingchange\",y,!0)},S=function(){removeEventListener(\"visibilitychange\",y,!0),removeEventListener(\"prerenderingchange\",y,!0)},b=function(){return h<0&&(h=T(),E(),s((function(){setTimeout((function(){h=T(),E()}),0)}))),{get firstHiddenTime(){return h}}},L=function(t){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return t()}),!0):t()},C=[1800,3e3],M=function(t,e){e=e||{},L((function(){var n,r=b(),i=d(\"FCP\"),a=l(\"paint\",(function(t){t.forEach((function(t){\"first-contentful-paint\"===t.name&&(a.disconnect(),t.startTime<r.firstHiddenTime&&(i.value=Math.max(t.startTime-f(),0),i.entries.push(t),n(!0)))}))}));a&&(n=m(t,i,C,e.reportAllChanges),s((function(r){i=d(\"FCP\"),n=m(t,i,C,e.reportAllChanges),v((function(){i.value=performance.now()-r.timeStamp,n(!0)}))})))}))},D=[.1,.25],w=function(t,e){!function(t,e){e=e||{},M(g((function(){var n,r=d(\"CLS\",0),i=0,a=[],o=function(t){t.forEach((function(t){if(!t.hadRecentInput){var e=a[0],n=a[a.length-1];i&&t.startTime-n.startTime<1e3&&t.startTime-e.startTime<5e3?(i+=t.value,a.push(t)):(i=t.value,a=[t])}})),i>r.value&&(r.value=i,r.entries=a,n())},c=l(\"layout-shift\",o);c&&(n=m(t,r,D,e.reportAllChanges),p((function(){o(c.takeRecords()),n(!0)})),s((function(){i=0,r=d(\"CLS\",0),n=m(t,r,D,e.reportAllChanges),v((function(){return n()}))})),setTimeout(n,0))})))}((function(e){var n=function(t){var e,n={};if(t.entries.length){var r=t.entries.reduce((function(t,e){return t&&t.value>e.value?t:e}));if(r&&r.sources&&r.sources.length){var a=(e=r.sources).find((function(t){return t.node&&1===t.node.nodeType}))||e[0];a&&(n={largestShiftTarget:o(a.node),largestShiftTime:r.startTime,largestShiftValue:r.value,largestShiftSource:a,largestShiftEntry:r,loadState:i(r.startTime)})}}return Object.assign(t,{attribution:n})}(e);t(n)}),e)},x=function(t,e){M((function(e){var n=function(t){var e={timeToFirstByte:0,firstByteToFCP:t.value,loadState:i(u())};if(t.entries.length){var n=r(),a=t.entries[t.entries.length-1];if(n){var o=n.activationStart||0,c=Math.max(0,n.responseStart-o);e={timeToFirstByte:c,firstByteToFCP:t.value-c,loadState:i(t.entries[0].startTime),navigationEntry:n,fcpEntry:a}}}return Object.assign(t,{attribution:e})}(e);t(n)}),e)},I=0,k=1/0,A=0,F=function(t){t.forEach((function(t){t.interactionId&&(k=Math.min(k,t.interactionId),A=Math.max(A,t.interactionId),I=A?(A-k)/7+1:0)}))},P=function(){return t?I:performance.interactionCount||0},B=function(){\"interactionCount\"in performance||t||(t=l(\"event\",F,{type:\"event\",buffered:!0,durationThreshold:0}))},O=[],R=new Map,j=0,q=function(){var t=Math.min(O.length-1,Math.floor((P()-j)/50));return O[t]},H=[],N=function(t){if(H.forEach((function(e){return e(t)})),t.interactionId||\"first-input\"===t.entryType){var e=O[O.length-1],n=R.get(t.interactionId);if(n||O.length<10||t.duration>e.latency){if(n)t.duration>n.latency?(n.entries=[t],n.latency=t.duration):t.duration===n.latency&&t.startTime===n.entries[0].startTime&&n.entries.push(t);else{var r={id:t.interactionId,latency:t.duration,entries:[t]};R.set(r.id,r),O.push(r)}O.sort((function(t,e){return e.latency-t.latency})),O.length>10&&O.splice(10).forEach((function(t){return R.delete(t.id)}))}}},W=function(t){var e=self.requestIdleCallback||self.setTimeout,n=-1;return t=g(t),\"hidden\"===document.visibilityState?t():(n=e(t),p(t)),n},z=[200,500],U=function(t,e){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(e=e||{},L((function(){var n;B();var r,i=d(\"INP\"),a=function(t){W((function(){t.forEach(N);var e=q();e&&e.latency!==i.value&&(i.value=e.latency,i.entries=e.entries,r())}))},o=l(\"event\",a,{durationThreshold:null!==(n=e.durationThreshold)&&void 0!==n?n:40});r=m(t,i,z,e.reportAllChanges),o&&(o.observe({type:\"first-input\",buffered:!0}),p((function(){a(o.takeRecords()),r(!0)})),s((function(){j=P(),O.length=0,R.clear(),i=d(\"INP\"),r=m(t,i,z,e.reportAllChanges)})))})))},V=[],_=[],G=new WeakMap,J=new Map,K=-1,Q=function(t){V=V.concat(t),X()},X=function(){K<0&&(K=W(Y))},Y=function(){J.size>10&&J.forEach((function(t,e){R.has(e)||J.delete(e)}));var t=O.map((function(t){return G.get(t.entries[0])})),e=_.length-50;_=_.filter((function(n,r){return r>=e||t.includes(n)}));for(var r=new Set,i=0;i<_.length;i++){var a=_[i];nt(a.startTime,a.processingEnd).forEach((function(t){r.add(t)}))}for(var o=0;o<50;o++){var c=V[V.length-1-o];if(!c||c.startTime<n)break;r.add(c)}V=Array.from(r),K=-1};H.push((function(t){t.interactionId&&t.target&&!J.has(t.interactionId)&&J.set(t.interactionId,t.target)}),(function(t){var e,r=t.startTime+t.duration;n=Math.max(n,t.processingEnd);for(var i=_.length-1;i>=0;i--){var a=_[i];if(Math.abs(r-a.renderTime)<=8){(e=a).startTime=Math.min(t.startTime,e.startTime),e.processingStart=Math.min(t.processingStart,e.processingStart),e.processingEnd=Math.max(t.processingEnd,e.processingEnd),e.entries.push(t);break}}e||(e={startTime:t.startTime,processingStart:t.processingStart,processingEnd:t.processingEnd,renderTime:r,entries:[t]},_.push(e)),(t.interactionId||\"first-input\"===t.entryType)&&G.set(t,e),X()}));var Z,$,tt,et,nt=function(t,e){for(var n,r=[],i=0;n=V[i];i++)if(!(n.startTime+n.duration<t)){if(n.startTime>e)break;r.push(n)}return r},rt=function(t,n){e||(e=l(\"long-animation-frame\",Q)),U((function(e){var n=function(t){var e=t.entries[0],n=G.get(e),r=e.processingStart,a=n.processingEnd,c=n.entries.sort((function(t,e){return t.processingStart-e.processingStart})),u=nt(e.startTime,a),s=t.entries.find((function(t){return t.target})),f=s&&s.target||J.get(e.interactionId),d=[e.startTime+e.duration,a].concat(u.map((function(t){return t.startTime+t.duration}))),l=Math.max.apply(Math,d),m={interactionTarget:o(f),interactionTargetElement:f,interactionType:e.name.startsWith(\"key\")?\"keyboard\":\"pointer\",interactionTime:e.startTime,nextPaintTime:l,processedEventEntries:c,longAnimationFrameEntries:u,inputDelay:r-e.startTime,processingDuration:a-r,presentationDelay:Math.max(l-a,0),loadState:i(e.startTime)};return Object.assign(t,{attribution:m})}(e);t(n)}),n)},it=[2500,4e3],at={},ot=function(t,e){!function(t,e){e=e||{},L((function(){var n,r=b(),i=d(\"LCP\"),a=function(t){e.reportAllChanges||(t=t.slice(-1)),t.forEach((function(t){t.startTime<r.firstHiddenTime&&(i.value=Math.max(t.startTime-f(),0),i.entries=[t],n())}))},o=l(\"largest-contentful-paint\",a);if(o){n=m(t,i,it,e.reportAllChanges);var c=g((function(){at[i.id]||(a(o.takeRecords()),o.disconnect(),at[i.id]=!0,n(!0))}));[\"keydown\",\"click\"].forEach((function(t){addEventListener(t,(function(){return W(c)}),!0)})),p(c),s((function(r){i=d(\"LCP\"),n=m(t,i,it,e.reportAllChanges),v((function(){i.value=performance.now()-r.timeStamp,at[i.id]=!0,n(!0)}))}))}}))}((function(e){var n=function(t){var e={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:t.value};if(t.entries.length){var n=r();if(n){var i=n.activationStart||0,a=t.entries[t.entries.length-1],c=a.url&&performance.getEntriesByType(\"resource\").filter((function(t){return t.name===a.url}))[0],u=Math.max(0,n.responseStart-i),s=Math.max(u,c?(c.requestStart||c.startTime)-i:0),f=Math.max(s,c?c.responseEnd-i:0),d=Math.max(f,a.startTime-i);e={element:o(a.element),timeToFirstByte:u,resourceLoadDelay:s-u,resourceLoadDuration:f-s,elementRenderDelay:d-f,navigationEntry:n,lcpEntry:a},a.url&&(e.url=a.url),c&&(e.lcpResourceEntry=c)}}return Object.assign(t,{attribution:e})}(e);t(n)}),e)},ct=[800,1800],ut=function t(e){document.prerendering?L((function(){return t(e)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return t(e)}),!0):setTimeout(e,0)},st=function(t,e){e=e||{};var n=d(\"TTFB\"),i=m(t,n,ct,e.reportAllChanges);ut((function(){var a=r();a&&(n.value=Math.max(a.responseStart-f(),0),n.entries=[a],i(!0),s((function(){n=d(\"TTFB\",0),(i=m(t,n,ct,e.reportAllChanges))(!0)})))}))},ft=function(t,e){st((function(e){var n=function(t){var e={waitingDuration:0,cacheDuration:0,dnsDuration:0,connectionDuration:0,requestDuration:0};if(t.entries.length){var n=t.entries[0],r=n.activationStart||0,i=Math.max((n.workerStart||n.fetchStart)-r,0),a=Math.max(n.domainLookupStart-r,0),o=Math.max(n.connectStart-r,0),c=Math.max(n.connectEnd-r,0);e={waitingDuration:i,cacheDuration:a-i,dnsDuration:o-a,connectionDuration:c-o,requestDuration:t.value-c,navigationEntry:n}}return Object.assign(t,{attribution:e})}(e);t(n)}),e)},dt={passive:!0,capture:!0},lt=new Date,mt=function(t,e){Z||(Z=e,$=t,tt=new Date,gt(removeEventListener),vt())},vt=function(){if($>=0&&$<tt-lt){var t={entryType:\"first-input\",name:Z.type,target:Z.target,cancelable:Z.cancelable,startTime:Z.timeStamp,processingStart:Z.timeStamp+$};et.forEach((function(e){e(t)})),et=[]}},pt=function(t){if(t.cancelable){var e=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;\"pointerdown\"==t.type?function(t,e){var n=function(){mt(t,e),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",n,dt),removeEventListener(\"pointercancel\",r,dt)};addEventListener(\"pointerup\",n,dt),addEventListener(\"pointercancel\",r,dt)}(e,t):mt(e,t)}},gt=function(t){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(e){return t(e,pt,dt)}))},ht=[100,300],Tt=function(t,e){e=e||{},L((function(){var n,r=b(),i=d(\"FID\"),a=function(t){t.startTime<r.firstHiddenTime&&(i.value=t.processingStart-t.startTime,i.entries.push(t),n(!0))},o=function(t){t.forEach(a)},c=l(\"first-input\",o);n=m(t,i,ht,e.reportAllChanges),c&&(p(g((function(){o(c.takeRecords()),c.disconnect()}))),s((function(){var r;i=d(\"FID\"),n=m(t,i,ht,e.reportAllChanges),et=[],$=-1,Z=null,gt(addEventListener),r=a,et.push(r),vt()})))}))},yt=function(t,e){Tt((function(e){var n=function(t){var e=t.entries[0],n={eventTarget:o(e.target),eventType:e.name,eventTime:e.startTime,eventEntry:e,loadState:i(e.startTime)};return Object.assign(t,{attribution:n})}(e);t(n)}),e)};export{D as CLSThresholds,C as FCPThresholds,ht as FIDThresholds,z as INPThresholds,it as LCPThresholds,ct as TTFBThresholds,w as onCLS,x as onFCP,yt as onFID,rt as onINP,ot as onLCP,ft as onTTFB};\n","import { onCLS, onFCP, onFID, onINP, onLCP, onTTFB } from 'web-vitals/attribution';\nimport { unknownString } from '@grafana/faro-core';\nimport { getItem, webStorageType } from '../../utils';\nimport { NAVIGATION_ID_STORAGE_KEY } from '../instrumentationConstants';\n// duplicate keys saved in variables to save bundle size\n// refs: https://github.com/grafana/faro-web-sdk/pull/595#discussion_r1615833968\nconst loadStateKey = 'load_state';\nconst timeToFirstByteKey = 'time_to_first_byte';\nexport class WebVitalsWithAttribution {\n constructor(corePushMeasurement, webVitalConfig) {\n this.corePushMeasurement = corePushMeasurement;\n this.webVitalConfig = webVitalConfig;\n }\n initialize() {\n this.measureCLS();\n this.measureFCP();\n this.measureFID();\n this.measureINP();\n this.measureLCP();\n this.measureTTFB();\n }\n measureCLS() {\n var _a;\n onCLS((metric) => {\n const { loadState, largestShiftValue, largestShiftTime, largestShiftTarget } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'largest_shift_value', largestShiftValue);\n this.addIfPresent(values, 'largest_shift_time', largestShiftTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.addIfPresent(context, 'largest_shift_target', largestShiftTarget);\n this.pushMeasurement(values, context);\n }, { reportAllChanges: (_a = this.webVitalConfig) === null || _a === void 0 ? void 0 : _a.reportAllChanges });\n }\n measureFCP() {\n var _a;\n onFCP((metric) => {\n const { firstByteToFCP, timeToFirstByte, loadState } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'first_byte_to_fcp', firstByteToFCP);\n this.addIfPresent(values, timeToFirstByteKey, timeToFirstByte);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.pushMeasurement(values, context);\n }, { reportAllChanges: (_a = this.webVitalConfig) === null || _a === void 0 ? void 0 : _a.reportAllChanges });\n }\n measureFID() {\n var _a;\n onFID((metric) => {\n const { eventTime, eventTarget, eventType, loadState } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'event_time', eventTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, 'event_target', eventTarget);\n this.addIfPresent(context, 'event_type', eventType);\n this.addIfPresent(context, loadStateKey, loadState);\n this.pushMeasurement(values, context);\n }, { reportAllChanges: (_a = this.webVitalConfig) === null || _a === void 0 ? void 0 : _a.reportAllChanges });\n }\n measureINP() {\n var _a;\n onINP((metric) => {\n const { interactionTime, presentationDelay, inputDelay, processingDuration, nextPaintTime, loadState, interactionTarget, interactionType, } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'interaction_time', interactionTime);\n this.addIfPresent(values, 'presentation_delay', presentationDelay);\n this.addIfPresent(values, 'input_delay', inputDelay);\n this.addIfPresent(values, 'processing_duration', processingDuration);\n this.addIfPresent(values, 'next_paint_time', nextPaintTime);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, loadStateKey, loadState);\n this.addIfPresent(context, 'interaction_target', interactionTarget);\n this.addIfPresent(context, 'interaction_type', interactionType);\n this.pushMeasurement(values, context);\n }, { reportAllChanges: (_a = this.webVitalConfig) === null || _a === void 0 ? void 0 : _a.reportAllChanges });\n }\n measureLCP() {\n var _a;\n onLCP((metric) => {\n const { elementRenderDelay, resourceLoadDelay, resourceLoadDuration, timeToFirstByte, element } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'element_render_delay', elementRenderDelay);\n this.addIfPresent(values, 'resource_load_delay', resourceLoadDelay);\n this.addIfPresent(values, 'resource_load_duration', resourceLoadDuration);\n this.addIfPresent(values, timeToFirstByteKey, timeToFirstByte);\n const context = this.buildInitialContext(metric);\n this.addIfPresent(context, 'element', element);\n this.pushMeasurement(values, context);\n }, { reportAllChanges: (_a = this.webVitalConfig) === null || _a === void 0 ? void 0 : _a.reportAllChanges });\n }\n measureTTFB() {\n var _a;\n onTTFB((metric) => {\n const { dnsDuration, connectionDuration, requestDuration, waitingDuration, cacheDuration } = metric.attribution;\n const values = this.buildInitialValues(metric);\n this.addIfPresent(values, 'dns_duration', dnsDuration);\n this.addIfPresent(values, 'connection_duration', connectionDuration);\n this.addIfPresent(values, 'request_duration', requestDuration);\n this.addIfPresent(values, 'waiting_duration', waitingDuration);\n this.addIfPresent(values, 'cache_duration', cacheDuration);\n const context = this.buildInitialContext(metric);\n this.pushMeasurement(values, context);\n }, { reportAllChanges: (_a = this.webVitalConfig) === null || _a === void 0 ? void 0 : _a.reportAllChanges });\n }\n buildInitialValues(metric) {\n const indicator = metric.name.toLowerCase();\n return {\n [indicator]: metric.value,\n delta: metric.delta,\n };\n }\n buildInitialContext(metric) {\n var _a;\n const navigationEntryId = (_a = getItem(NAVIGATION_ID_STORAGE_KEY, webStorageType.session)) !== null && _a !== void 0 ? _a : unknownString;\n return {\n id: metric.id,\n rating: metric.rating,\n navigation_type: metric.navigationType,\n navigation_entry_id: navigationEntryId,\n };\n }\n pushMeasurement(values, context) {\n const type = 'web-vitals';\n this.corePushMeasurement({ type, values }, { context });\n }\n addIfPresent(source, key, metric) {\n if (metric) {\n source[key] = metric;\n }\n }\n}\n//# sourceMappingURL=webVitalsWithAttribution.js.map","import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\nimport { WebVitalsBasic } from './webVitalsBasic';\nimport { WebVitalsWithAttribution } from './webVitalsWithAttribution';\nexport class WebVitalsInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-web-vitals';\n this.version = VERSION;\n }\n initialize() {\n this.logDebug('Initializing');\n const webVitals = this.intializeWebVitalsInstrumentation();\n webVitals.initialize();\n }\n intializeWebVitalsInstrumentation() {\n var _a, _b, _c;\n if (((_a = this.config) === null || _a === void 0 ? void 0 : _a.trackWebVitalsAttribution) === false ||\n ((_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.webVitalsInstrumentation) === null || _c === void 0 ? void 0 : _c.trackAttribution) === false) {\n return new WebVitalsBasic(this.api.pushMeasurement, this.config.webVitalsInstrumentation);\n }\n return new WebVitalsWithAttribution(this.api.pushMeasurement, this.config.webVitalsInstrumentation);\n }\n}\n//# sourceMappingURL=instrumentation.js.map","/**\n * @deprecated The conventions object will be removed in a future version\n */\nexport const Conventions = {\n /**\n * @deprecated The event names object will be removed in a future version\n */\n EventNames: {\n CLICK: 'click',\n NAVIGATION: 'navigation',\n SESSION_START: 'session_start',\n VIEW_CHANGED: 'view_changed',\n },\n};\nexport const EVENT_CLICK = 'click';\nexport const EVENT_NAVIGATION = 'navigation';\nexport const EVENT_VIEW_CHANGED = 'view_changed';\nexport const EVENT_SESSION_START = 'session_start';\nexport const EVENT_SESSION_RESUME = 'session_resume';\nexport const EVENT_SESSION_EXTEND = 'session_extend';\nexport const EVENT_OVERRIDES_SERVICE_NAME = 'service_name_override';\nexport const EVENT_ROUTE_CHANGE = 'route_change';\n//# sourceMappingURL=semantic.js.map","import { faro, genShortID } from '@grafana/faro-core';\nexport function createSession(attributes) {\n var _a, _b, _c, _d;\n return {\n id: (_d = (_c = (_b = (_a = faro.config) === null || _a === void 0 ? void 0 : _a.sessionTracking) === null || _b === void 0 ? void 0 : _b.generateSessionId) === null || _c === void 0 ? void 0 : _c.call(_b)) !== null && _d !== void 0 ? _d : genShortID(),\n attributes,\n };\n}\n//# sourceMappingURL=createSession.js.map","import { faro } from '@grafana/faro-core';\nexport function isSampled() {\n var _a, _b, _c;\n const sendAllSignals = 1;\n const sessionTracking = faro.config.sessionTracking;\n let samplingRate = (_c = (_b = (_a = sessionTracking === null || sessionTracking === void 0 ? void 0 : sessionTracking.sampler) === null || _a === void 0 ? void 0 : _a.call(sessionTracking, { metas: faro.metas.value })) !== null && _b !== void 0 ? _b : sessionTracking === null || sessionTracking === void 0 ? void 0 : sessionTracking.samplingRate) !== null && _c !== void 0 ? _c : sendAllSignals;\n if (typeof samplingRate !== 'number') {\n const sendNoSignals = 0;\n samplingRate = sendNoSignals;\n }\n return Math.random() < samplingRate;\n}\n//# sourceMappingURL=sampling.js.map","/**\n * Tail based throttle which caches the args of the last call and updates\n */\nexport function throttle(callback, delay) {\n let pause = false;\n let lastPending;\n const timeoutBehavior = () => {\n if (lastPending == null) {\n pause = false;\n return;\n }\n callback(...lastPending);\n lastPending = null;\n setTimeout(timeoutBehavior, delay);\n };\n return (...args) => {\n if (pause) {\n lastPending = args;\n return;\n }\n callback(...args);\n pause = true;\n setTimeout(timeoutBehavior, delay);\n };\n}\n//# sourceMappingURL=throttle.js.map","export const STORAGE_KEY = 'com.grafana.faro.session';\nexport const SESSION_EXPIRATION_TIME = 4 * 60 * 60 * 1000; // hrs\nexport const SESSION_INACTIVITY_TIME = 15 * 60 * 1000; // minutes\nexport const STORAGE_UPDATE_DELAY = 1 * 1000; // seconds\n/**\n * @deprecated MAX_SESSION_PERSISTENCE_TIME_BUFFER is not used anymore. The constant will be removed in the future\n */\nexport const MAX_SESSION_PERSISTENCE_TIME_BUFFER = 1 * 60 * 1000;\nexport const MAX_SESSION_PERSISTENCE_TIME = SESSION_INACTIVITY_TIME;\nexport const defaultSessionTrackingConfig = {\n enabled: true,\n persistent: false,\n maxSessionPersistenceTime: MAX_SESSION_PERSISTENCE_TIME,\n};\n//# sourceMappingURL=sessionConstants.js.map","import { dateNow, deepEqual, EVENT_OVERRIDES_SERVICE_NAME, faro, genShortID, isEmpty } from '@grafana/faro-core';\nimport { isLocalStorageAvailable, isSessionStorageAvailable } from '../../../utils';\nimport { isSampled } from './sampling';\nimport { SESSION_EXPIRATION_TIME, SESSION_INACTIVITY_TIME } from './sessionConstants';\nexport function createUserSessionObject({ sessionId, started, lastActivity, isSampled = true, } = {}) {\n var _a, _b;\n const now = dateNow();\n const generateSessionId = (_b = (_a = faro.config) === null || _a === void 0 ? void 0 : _a.sessionTracking) === null || _b === void 0 ? void 0 : _b.generateSessionId;\n if (sessionId == null) {\n sessionId = typeof generateSessionId === 'function' ? generateSessionId() : genShortID();\n }\n return {\n sessionId,\n lastActivity: lastActivity !== null && lastActivity !== void 0 ? lastActivity : now,\n started: started !== null && started !== void 0 ? started : now,\n isSampled: isSampled,\n };\n}\nexport function isUserSessionValid(session) {\n if (session == null) {\n return false;\n }\n const now = dateNow();\n const lifetimeValid = now - session.started < SESSION_EXPIRATION_TIME;\n if (!lifetimeValid) {\n return false;\n }\n const inactivityPeriodValid = now - session.lastActivity < SESSION_INACTIVITY_TIME;\n return inactivityPeriodValid;\n}\nexport function getUserSessionUpdater({ fetchUserSession, storeUserSession, }) {\n return function updateSession({ forceSessionExtend } = { forceSessionExtend: false }) {\n var _a, _b, _c;\n if (!fetchUserSession || !storeUserSession) {\n return;\n }\n const sessionTrackingConfig = faro.config.sessionTracking;\n const isPersistentSessions = sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.persistent;\n if ((isPersistentSessions && !isLocalStorageAvailable) || (!isPersistentSessions && !isSessionStorageAvailable)) {\n return;\n }\n const sessionFromStorage = fetchUserSession();\n if (forceSessionExtend === false && isUserSessionValid(sessionFromStorage)) {\n storeUserSession(Object.assign(Object.assign({}, sessionFromStorage), { lastActivity: dateNow() }));\n }\n else {\n let newSession = addSessionMetadataToNextSession(createUserSessionObject({ isSampled: isSampled() }), sessionFromStorage);\n storeUserSession(newSession);\n (_a = faro.api) === null || _a === void 0 ? void 0 : _a.setSession(newSession.sessionMeta);\n (_b = sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.onSessionChange) === null || _b === void 0 ? void 0 : _b.call(sessionTrackingConfig, (_c = sessionFromStorage === null || sessionFromStorage === void 0 ? void 0 : sessionFromStorage.sessionMeta) !== null && _c !== void 0 ? _c : null, newSession.sessionMeta);\n }\n };\n}\nexport function addSessionMetadataToNextSession(newSession, previousSession) {\n var _a, _b, _c, _d, _e, _f, _g;\n const sessionWithMeta = Object.assign(Object.assign({}, newSession), { sessionMeta: {\n id: newSession.sessionId,\n attributes: Object.assign(Object.assign(Object.assign({}, (_b = (_a = faro.config.sessionTracking) === null || _a === void 0 ? void 0 : _a.session) === null || _b === void 0 ? void 0 : _b.attributes), ((_d = (_c = faro.metas.value.session) === null || _c === void 0 ? void 0 : _c.attributes) !== null && _d !== void 0 ? _d : {})), { isSampled: newSession.isSampled.toString() }),\n } });\n const overrides = (_f = (_e = faro.metas.value.session) === null || _e === void 0 ? void 0 : _e.overrides) !== null && _f !== void 0 ? _f : (_g = previousSession === null || previousSession === void 0 ? void 0 : previousSession.sessionMeta) === null || _g === void 0 ? void 0 : _g.overrides;\n if (!isEmpty(overrides)) {\n sessionWithMeta.sessionMeta.overrides = overrides;\n }\n const previousSessionId = previousSession === null || previousSession === void 0 ? void 0 : previousSession.sessionId;\n if (previousSessionId != null) {\n sessionWithMeta.sessionMeta.attributes['previousSession'] = previousSessionId;\n }\n return sessionWithMeta;\n}\nexport function getSessionMetaUpdateHandler({ fetchUserSession, storeUserSession, }) {\n return function syncSessionIfChangedExternally(meta) {\n const session = meta.session;\n const sessionFromSessionStorage = fetchUserSession();\n let sessionId = session === null || session === void 0 ? void 0 : session.id;\n const sessionAttributes = session === null || session === void 0 ? void 0 : session.attributes;\n const sessionOverrides = session === null || session === void 0 ? void 0 : session.overrides;\n const storedSessionMeta = sessionFromSessionStorage === null || sessionFromSessionStorage === void 0 ? void 0 : sessionFromSessionStorage.sessionMeta;\n const storedSessionMetaOverrides = storedSessionMeta === null || storedSessionMeta === void 0 ? void 0 : storedSessionMeta.overrides;\n const hasSessionOverridesChanged = !!sessionOverrides && !deepEqual(sessionOverrides, storedSessionMetaOverrides);\n const hasAttributesChanged = !!sessionAttributes && !deepEqual(sessionAttributes, storedSessionMeta === null || storedSessionMeta === void 0 ? void 0 : storedSessionMeta.attributes);\n const hasSessionIdChanged = !!session && sessionId !== (sessionFromSessionStorage === null || sessionFromSessionStorage === void 0 ? void 0 : sessionFromSessionStorage.sessionId);\n if (hasSessionIdChanged || hasAttributesChanged || hasSessionOverridesChanged) {\n const userSession = addSessionMetadataToNextSession(createUserSessionObject({ sessionId, isSampled: isSampled() }), sessionFromSessionStorage);\n storeUserSession(userSession);\n sendOverrideEvent(hasSessionOverridesChanged, sessionOverrides, storedSessionMetaOverrides);\n faro.api.setSession(userSession.sessionMeta);\n }\n };\n}\nfunction sendOverrideEvent(hasSessionOverridesChanged, sessionOverrides = {}, storedSessionOverrides = {}) {\n var _a, _b, _c;\n if (!hasSessionOverridesChanged) {\n return;\n }\n const serviceName = sessionOverrides.serviceName;\n const previousServiceName = (_c = (_a = storedSessionOverrides.serviceName) !== null && _a !== void 0 ? _a : (_b = faro.metas.value.app) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';\n if (serviceName && serviceName !== previousServiceName) {\n faro.api.pushEvent(EVENT_OVERRIDES_SERVICE_NAME, {\n serviceName,\n previousServiceName,\n });\n }\n}\n//# sourceMappingURL=sessionManagerUtils.js.map","import { faro, stringifyExternalJson } from '@grafana/faro-core';\nimport { throttle } from '../../../utils';\nimport { getItem, removeItem, setItem, webStorageType } from '../../../utils/webStorage';\nimport { STORAGE_KEY, STORAGE_UPDATE_DELAY } from './sessionConstants';\nimport { getSessionMetaUpdateHandler, getUserSessionUpdater } from './sessionManagerUtils';\nexport class PersistentSessionsManager {\n constructor() {\n this.updateSession = throttle(() => this.updateUserSession(), STORAGE_UPDATE_DELAY);\n this.updateUserSession = getUserSessionUpdater({\n fetchUserSession: PersistentSessionsManager.fetchUserSession,\n storeUserSession: PersistentSessionsManager.storeUserSession,\n });\n this.init();\n }\n static removeUserSession() {\n removeItem(STORAGE_KEY, PersistentSessionsManager.storageTypeLocal);\n }\n static storeUserSession(session) {\n setItem(STORAGE_KEY, stringifyExternalJson(session), PersistentSessionsManager.storageTypeLocal);\n }\n static fetchUserSession() {\n const storedSession = getItem(STORAGE_KEY, PersistentSessionsManager.storageTypeLocal);\n if (storedSession) {\n return JSON.parse(storedSession);\n }\n return null;\n }\n init() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.updateSession();\n }\n });\n // Users can call the setSession() method, so we need to sync this with the local storage session\n faro.metas.addListener(getSessionMetaUpdateHandler({\n fetchUserSession: PersistentSessionsManager.fetchUserSession,\n storeUserSession: PersistentSessionsManager.storeUserSession,\n }));\n }\n}\nPersistentSessionsManager.storageTypeLocal = webStorageType.local;\n//# sourceMappingURL=PersistentSessionsManager.js.map","import { faro, stringifyExternalJson } from '@grafana/faro-core';\nimport { throttle } from '../../../utils';\nimport { getItem, removeItem, setItem, webStorageType } from '../../../utils/webStorage';\nimport { STORAGE_KEY, STORAGE_UPDATE_DELAY } from './sessionConstants';\nimport { getSessionMetaUpdateHandler, getUserSessionUpdater } from './sessionManagerUtils';\nexport class VolatileSessionsManager {\n constructor() {\n this.updateSession = throttle(() => this.updateUserSession(), STORAGE_UPDATE_DELAY);\n this.updateUserSession = getUserSessionUpdater({\n fetchUserSession: VolatileSessionsManager.fetchUserSession,\n storeUserSession: VolatileSessionsManager.storeUserSession,\n });\n this.init();\n }\n static removeUserSession() {\n removeItem(STORAGE_KEY, VolatileSessionsManager.storageTypeSession);\n }\n static storeUserSession(session) {\n setItem(STORAGE_KEY, stringifyExternalJson(session), VolatileSessionsManager.storageTypeSession);\n }\n static fetchUserSession() {\n const storedSession = getItem(STORAGE_KEY, VolatileSessionsManager.storageTypeSession);\n if (storedSession) {\n return JSON.parse(storedSession);\n }\n return null;\n }\n init() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.updateSession();\n }\n });\n // Users can call the setSession() method, so we need to sync this with the local storage session\n faro.metas.addListener(getSessionMetaUpdateHandler({\n fetchUserSession: VolatileSessionsManager.fetchUserSession,\n storeUserSession: VolatileSessionsManager.storeUserSession,\n }));\n }\n}\nVolatileSessionsManager.storageTypeSession = webStorageType.session;\n//# sourceMappingURL=VolatileSessionManager.js.map","import { PersistentSessionsManager } from './PersistentSessionsManager';\nimport { VolatileSessionsManager } from './VolatileSessionManager';\nexport function getSessionManagerByConfig(sessionTrackingConfig) {\n return (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.persistent) ? PersistentSessionsManager : VolatileSessionsManager;\n}\n//# sourceMappingURL=getSessionManagerByConfig.js.map","import { BaseInstrumentation, dateNow, EVENT_SESSION_EXTEND, EVENT_SESSION_RESUME, EVENT_SESSION_START, VERSION, } from '@grafana/faro-core';\nimport { createSession } from '../../metas';\nimport { getSessionManagerByConfig, isSampled } from './sessionManager';\nimport { PersistentSessionsManager } from './sessionManager/PersistentSessionsManager';\nimport { createUserSessionObject, isUserSessionValid } from './sessionManager/sessionManagerUtils';\nexport class SessionInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-session';\n this.version = VERSION;\n }\n sendSessionStartEvent(meta) {\n var _a, _b;\n const session = meta.session;\n if (session && session.id !== ((_a = this.notifiedSession) === null || _a === void 0 ? void 0 : _a.id)) {\n if (this.notifiedSession && this.notifiedSession.id === ((_b = session.attributes) === null || _b === void 0 ? void 0 : _b['previousSession'])) {\n this.api.pushEvent(EVENT_SESSION_EXTEND, {}, undefined, { skipDedupe: true });\n this.notifiedSession = session;\n return;\n }\n this.notifiedSession = session;\n // no need to add attributes and session id, they are included as part of meta\n // automatically\n this.api.pushEvent(EVENT_SESSION_START, {}, undefined, { skipDedupe: true });\n }\n }\n createInitialSession(SessionManager, sessionsConfig) {\n var _a, _b, _c, _d, _e, _f;\n let storedUserSession = SessionManager.fetchUserSession();\n if (sessionsConfig.persistent && sessionsConfig.maxSessionPersistenceTime && storedUserSession) {\n const now = dateNow();\n const shouldClearPersistentSession = storedUserSession.lastActivity < now - sessionsConfig.maxSessionPersistenceTime;\n if (shouldClearPersistentSession) {\n PersistentSessionsManager.removeUserSession();\n storedUserSession = null;\n }\n }\n let lifecycleType;\n let initialSession;\n if (isUserSessionValid(storedUserSession)) {\n const sessionId = storedUserSession === null || storedUserSession === void 0 ? void 0 : storedUserSession.sessionId;\n initialSession = createUserSessionObject({\n sessionId,\n isSampled: storedUserSession.isSampled || false,\n started: storedUserSession === null || storedUserSession === void 0 ? void 0 : storedUserSession.started,\n });\n const storedUserSessionMeta = storedUserSession === null || storedUserSession === void 0 ? void 0 : storedUserSession.sessionMeta;\n // For resumed sessions we want to merge the previous overrides with the configured ones.\n // If the same key is present in both, the new one will override the old one.\n const overrides = Object.assign(Object.assign({}, (_a = sessionsConfig.session) === null || _a === void 0 ? void 0 : _a.overrides), storedUserSessionMeta === null || storedUserSessionMeta === void 0 ? void 0 : storedUserSessionMeta.overrides);\n initialSession.sessionMeta = Object.assign(Object.assign({}, sessionsConfig.session), { id: sessionId, attributes: Object.assign(Object.assign(Object.assign({}, (_b = sessionsConfig.session) === null || _b === void 0 ? void 0 : _b.attributes), storedUserSessionMeta === null || storedUserSessionMeta === void 0 ? void 0 : storedUserSessionMeta.attributes), { \n // For valid resumed sessions we do not want to recalculate the sampling decision on each init phase.\n isSampled: initialSession.isSampled.toString() }), overrides });\n lifecycleType = EVENT_SESSION_RESUME;\n }\n else {\n const sessionId = (_d = (_c = sessionsConfig.session) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : createSession().id;\n initialSession = createUserSessionObject({\n sessionId,\n isSampled: isSampled(),\n });\n const overrides = (_e = sessionsConfig.session) === null || _e === void 0 ? void 0 : _e.overrides;\n initialSession.sessionMeta = Object.assign({ id: sessionId, attributes: Object.assign({ isSampled: initialSession.isSampled.toString() }, (_f = sessionsConfig.session) === null || _f === void 0 ? void 0 : _f.attributes) }, (overrides ? { overrides } : {}));\n lifecycleType = EVENT_SESSION_START;\n }\n return { initialSession, lifecycleType };\n }\n registerBeforeSendHook(SessionManager) {\n var _a;\n const { updateSession } = new SessionManager();\n (_a = this.transports) === null || _a === void 0 ? void 0 : _a.addBeforeSendHooks((item) => {\n var _a, _b, _c;\n updateSession();\n const attributes = (_a = item.meta.session) === null || _a === void 0 ? void 0 : _a.attributes;\n if (attributes && (attributes === null || attributes === void 0 ? void 0 : attributes['isSampled']) === 'true') {\n let newItem = JSON.parse(JSON.stringify(item));\n const newAttributes = (_b = newItem.meta.session) === null || _b === void 0 ? void 0 : _b.attributes;\n newAttributes === null || newAttributes === void 0 ? true : delete newAttributes['isSampled'];\n if (Object.keys(newAttributes !== null && newAttributes !== void 0 ? newAttributes : {}).length === 0) {\n (_c = newItem.meta.session) === null || _c === void 0 ? true : delete _c.attributes;\n }\n return newItem;\n }\n return null;\n });\n }\n initialize() {\n this.logDebug('init session instrumentation');\n const sessionTrackingConfig = this.config.sessionTracking;\n if (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.enabled) {\n const SessionManager = getSessionManagerByConfig(sessionTrackingConfig);\n this.registerBeforeSendHook(SessionManager);\n const { initialSession, lifecycleType } = this.createInitialSession(SessionManager, sessionTrackingConfig);\n SessionManager.storeUserSession(initialSession);\n const initialSessionMeta = initialSession.sessionMeta;\n this.notifiedSession = initialSessionMeta;\n this.api.setSession(initialSessionMeta);\n if (lifecycleType === EVENT_SESSION_START) {\n this.api.pushEvent(EVENT_SESSION_START, {}, undefined, { skipDedupe: true });\n }\n if (lifecycleType === EVENT_SESSION_RESUME) {\n this.api.pushEvent(EVENT_SESSION_RESUME, {}, undefined, { skipDedupe: true });\n }\n }\n this.metas.addListener(this.sendSessionStartEvent.bind(this));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","import { BaseInstrumentation, EVENT_VIEW_CHANGED, unknownString, VERSION } from '@grafana/faro-core';\n// all this does is send VIEW_CHANGED event\nexport class ViewInstrumentation extends BaseInstrumentation {\n constructor() {\n super(...arguments);\n this.name = '@grafana/faro-web-sdk:instrumentation-view';\n this.version = VERSION;\n }\n sendViewChangedEvent(meta) {\n var _a, _b, _c, _d;\n const view = meta.view;\n if (view && view.name !== ((_a = this.notifiedView) === null || _a === void 0 ? void 0 : _a.name)) {\n this.api.pushEvent(EVENT_VIEW_CHANGED, {\n fromView: (_c = (_b = this.notifiedView) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : unknownString,\n toView: (_d = view.name) !== null && _d !== void 0 ? _d : unknownString,\n }, undefined, { skipDedupe: true });\n this.notifiedView = view;\n }\n }\n initialize() {\n this.metas.addListener(this.sendViewChangedEvent.bind(this));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","import { BaseInstrumentation, stringifyObjectValues, VERSION } from '@grafana/faro-core';\nexport class CSPInstrumentation extends BaseInstrumentation {\n constructor() {\n super();\n this.name = '@grafana/faro-web-sdk:instrumentation-csp';\n this.version = VERSION;\n }\n initialize() {\n document.addEventListener('securitypolicyviolation', this.securitypolicyviolationHandler.bind(this));\n }\n destroy() {\n document.removeEventListener('securitypolicyviolation', this.securitypolicyviolationHandler);\n }\n securitypolicyviolationHandler(ev) {\n this.api.pushEvent('securitypolicyviolation', stringifyObjectValues(ev));\n }\n}\n//# sourceMappingURL=instrumentation.js.map","import { allLogLevels, BaseInstrumentation, defaultErrorArgsSerializer, defaultLogArgsSerializer, LogLevel, VERSION, } from '@grafana/faro-core';\nimport { getDetailsFromConsoleErrorArgs } from '../errors/getErrorDetails';\nexport class ConsoleInstrumentation extends BaseInstrumentation {\n constructor(options = {}) {\n super();\n this.options = options;\n this.name = '@grafana/faro-web-sdk:instrumentation-console';\n this.version = VERSION;\n this.errorSerializer = defaultLogArgsSerializer;\n }\n initialize() {\n var _a, _b, _c, _d;\n this.options = Object.assign(Object.assign({}, this.options), this.config.consoleInstrumentation);\n const serializeErrors = ((_a = this.options) === null || _a === void 0 ? void 0 : _a.serializeErrors) || !!((_b = this.options) === null || _b === void 0 ? void 0 : _b.errorSerializer);\n this.errorSerializer = serializeErrors\n ? ((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.errorSerializer) !== null && _d !== void 0 ? _d : defaultErrorArgsSerializer)\n : defaultLogArgsSerializer;\n allLogLevels\n .filter((level) => { var _a, _b; return !((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.disabledLevels) !== null && _b !== void 0 ? _b : ConsoleInstrumentation.defaultDisabledLevels).includes(level); })\n .forEach((level) => {\n /* eslint-disable-next-line no-console */\n console[level] = (...args) => {\n var _a, _b;\n try {\n if (level === LogLevel.ERROR && !((_a = this.options) === null || _a === void 0 ? void 0 : _a.consoleErrorAsLog)) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n if (value && !type && !stackFrames) {\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value));\n return;\n }\n this.api.pushError(new Error(ConsoleInstrumentation.consoleErrorPrefix + value), { type, stackFrames });\n }\n else if (level === LogLevel.ERROR && ((_b = this.options) === null || _b === void 0 ? void 0 : _b.consoleErrorAsLog)) {\n const { value, type, stackFrames } = getDetailsFromConsoleErrorArgs(args, this.errorSerializer);\n this.api.pushLog(value ? [ConsoleInstrumentation.consoleErrorPrefix + value] : args, {\n level,\n context: {\n value: value !== null && value !== void 0 ? value : '',\n type: type !== null && type !== void 0 ? type : '',\n stackFrames: (stackFrames === null || stackFrames === void 0 ? void 0 : stackFrames.length) ? defaultErrorArgsSerializer(stackFrames) : '',\n },\n });\n }\n else {\n this.api.pushLog(args, { level });\n }\n }\n catch (err) {\n this.logError(err);\n }\n finally {\n this.unpatchedConsole[level](...args);\n }\n };\n });\n }\n}\nConsoleInstrumentation.defaultDisabledLevels = [LogLevel.DEBUG, LogLevel.TRACE, LogLevel.LOG];\nConsoleInstrumentation.consoleErrorPrefix = 'console.error: ';\n//# sourceMappingURL=instrumentation.js.map","import { ConsoleInstrumentation, CSPInstrumentation, ErrorsInstrumentation, PerformanceInstrumentation, SessionInstrumentation, UserActionInstrumentation, ViewInstrumentation, WebVitalsInstrumentation, } from '../instrumentations';\nexport function getWebInstrumentations(options = {}) {\n const instrumentations = [\n new UserActionInstrumentation(),\n new ErrorsInstrumentation(),\n new WebVitalsInstrumentation(),\n new SessionInstrumentation(),\n new ViewInstrumentation(),\n ];\n if (options.enablePerformanceInstrumentation !== false) {\n // unshift to ensure that initialization starts before the other instrumentations\n instrumentations.unshift(new PerformanceInstrumentation());\n }\n if (options.enableContentSecurityPolicyInstrumentation !== false) {\n instrumentations.push(new CSPInstrumentation());\n }\n if (options.captureConsole !== false) {\n instrumentations.push(new ConsoleInstrumentation({\n disabledLevels: options.captureConsoleDisabledLevels,\n }));\n }\n return instrumentations;\n}\n//# sourceMappingURL=getWebInstrumentations.js.map","import { BaseExtension } from '../extensions';\nexport class BaseTransport extends BaseExtension {\n isBatched() {\n return false;\n }\n getIgnoreUrls() {\n return [];\n }\n}\n//# sourceMappingURL=base.js.map","export function createPromiseBuffer(options) {\n const { size, concurrency } = options;\n const buffer = []; // pending, not-yet-started tasks\n let inProgress = 0; // counter for tasks currently in progress\n const work = () => {\n // if there's space for a task and buffer is not empty,\n // take one task from buffer and run it\n if (inProgress < concurrency && buffer.length) {\n const { producer, resolve, reject } = buffer.shift();\n inProgress++;\n producer().then((result) => {\n inProgress--;\n work();\n resolve(result);\n }, (reason) => {\n inProgress--;\n work();\n reject(reason);\n });\n }\n };\n const add = (promiseProducer) => {\n if (buffer.length + inProgress >= size) {\n throw new Error('Task buffer full');\n }\n return new Promise((resolve, reject) => {\n buffer.push({\n producer: promiseProducer,\n resolve,\n reject,\n });\n work();\n });\n };\n return {\n add,\n };\n}\n//# sourceMappingURL=promiseBuffer.js.map","import { TransportItemType, transportItemTypeToBodyKey } from './const';\nexport function mergeResourceSpans(traces, resourceSpans) {\n var _a, _b;\n if (resourceSpans === undefined) {\n return traces;\n }\n if (traces === undefined) {\n return {\n resourceSpans,\n };\n }\n const currentResource = (_a = traces.resourceSpans) === null || _a === void 0 ? void 0 : _a[0];\n if (currentResource === undefined) {\n return traces;\n }\n const currentSpans = (currentResource === null || currentResource === void 0 ? void 0 : currentResource.scopeSpans) || [];\n const newSpans = ((_b = resourceSpans === null || resourceSpans === void 0 ? void 0 : resourceSpans[0]) === null || _b === void 0 ? void 0 : _b.scopeSpans) || [];\n return Object.assign(Object.assign({}, traces), { resourceSpans: [\n Object.assign(Object.assign({}, currentResource), { scopeSpans: [...currentSpans, ...newSpans] }),\n ] });\n}\nexport function getTransportBody(item) {\n let body = {\n meta: {},\n };\n if (item[0] !== undefined) {\n body.meta = item[0].meta;\n }\n item.forEach((currentItem) => {\n switch (currentItem.type) {\n case TransportItemType.LOG:\n case TransportItemType.EVENT:\n case TransportItemType.EXCEPTION:\n case TransportItemType.MEASUREMENT:\n const bk = transportItemTypeToBodyKey[currentItem.type];\n const signals = body[bk];\n body = Object.assign(Object.assign({}, body), { [bk]: signals === undefined ? [currentItem.payload] : [...signals, currentItem.payload] });\n break;\n case TransportItemType.TRACE:\n body = Object.assign(Object.assign({}, body), { traces: mergeResourceSpans(body.traces, currentItem.payload.resourceSpans) });\n break;\n }\n });\n return body;\n}\n//# sourceMappingURL=utils.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { BaseExtension, BaseTransport, createPromiseBuffer, getTransportBody, noop, VERSION } from '@grafana/faro-core';\nimport { getSessionManagerByConfig } from '../../instrumentations/session/sessionManager';\nimport { getUserSessionUpdater } from '../../instrumentations/session/sessionManager/sessionManagerUtils';\nconst DEFAULT_BUFFER_SIZE = 30;\nconst DEFAULT_CONCURRENCY = 5; // chrome supports 10 total, firefox 17\nconst DEFAULT_RATE_LIMIT_BACKOFF_MS = 5000;\nconst BEACON_BODY_SIZE_LIMIT = 60000;\nconst TOO_MANY_REQUESTS = 429;\nconst ACCEPTED = 202;\nexport class FetchTransport extends BaseTransport {\n constructor(options) {\n var _a, _b, _c, _d;\n super();\n this.options = options;\n this.name = '@grafana/faro-web-sdk:transport-fetch';\n this.version = VERSION;\n this.disabledUntil = new Date();\n this.rateLimitBackoffMs = (_a = options.defaultRateLimitBackoffMs) !== null && _a !== void 0 ? _a : DEFAULT_RATE_LIMIT_BACKOFF_MS;\n this.getNow = (_b = options.getNow) !== null && _b !== void 0 ? _b : (() => Date.now());\n this.promiseBuffer = createPromiseBuffer({\n size: (_c = options.bufferSize) !== null && _c !== void 0 ? _c : DEFAULT_BUFFER_SIZE,\n concurrency: (_d = options.concurrency) !== null && _d !== void 0 ? _d : DEFAULT_CONCURRENCY,\n });\n }\n send(items) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (this.disabledUntil > new Date(this.getNow())) {\n this.logWarn(`Dropping transport item due to too many requests. Backoff until ${this.disabledUntil}`);\n return Promise.resolve();\n }\n yield this.promiseBuffer.add(() => {\n const body = JSON.stringify(getTransportBody(items));\n const { url, requestOptions, apiKey } = this.options;\n const _a = requestOptions !== null && requestOptions !== void 0 ? requestOptions : {}, { headers } = _a, restOfRequestOptions = __rest(_a, [\"headers\"]);\n let sessionId;\n const sessionMeta = this.metas.value.session;\n if (sessionMeta != null) {\n sessionId = sessionMeta.id;\n }\n return fetch(url, Object.assign({ method: 'POST', headers: Object.assign(Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (headers !== null && headers !== void 0 ? headers : {})), (apiKey ? { 'x-api-key': apiKey } : {})), (sessionId ? { 'x-faro-session-id': sessionId } : {})), body, keepalive: body.length <= BEACON_BODY_SIZE_LIMIT }, (restOfRequestOptions !== null && restOfRequestOptions !== void 0 ? restOfRequestOptions : {})))\n .then((response) => __awaiter(this, void 0, void 0, function* () {\n if (response.status === ACCEPTED) {\n const sessionExpired = response.headers.get('X-Faro-Session-Status') === 'invalid';\n if (sessionExpired) {\n this.extendFaroSession(this.config, this.logDebug);\n }\n }\n if (response.status === TOO_MANY_REQUESTS) {\n this.disabledUntil = this.getRetryAfterDate(response);\n this.logWarn(`Too many requests, backing off until ${this.disabledUntil}`);\n }\n // read the body so the connection can be closed\n response.text().catch(noop);\n return response;\n }))\n .catch((err) => {\n this.logError('Failed sending payload to the receiver\\n', JSON.parse(body), err);\n });\n });\n }\n catch (err) {\n this.logError(err);\n }\n });\n }\n getIgnoreUrls() {\n var _a;\n return [this.options.url].concat((_a = this.config.ignoreUrls) !== null && _a !== void 0 ? _a : []);\n }\n isBatched() {\n return true;\n }\n getRetryAfterDate(response) {\n const now = this.getNow();\n const retryAfterHeader = response.headers.get('Retry-After');\n if (retryAfterHeader) {\n const delay = Number(retryAfterHeader);\n if (!isNaN(delay)) {\n return new Date(delay * 1000 + now);\n }\n const date = Date.parse(retryAfterHeader);\n if (!isNaN(date)) {\n return new Date(date);\n }\n }\n return new Date(now + this.rateLimitBackoffMs);\n }\n extendFaroSession(config, logDebug) {\n const SessionExpiredString = `Session expired`;\n const sessionTrackingConfig = config.sessionTracking;\n if (sessionTrackingConfig === null || sessionTrackingConfig === void 0 ? void 0 : sessionTrackingConfig.enabled) {\n const { fetchUserSession, storeUserSession } = getSessionManagerByConfig(sessionTrackingConfig);\n getUserSessionUpdater({ fetchUserSession, storeUserSession })({ forceSessionExtend: true });\n logDebug(`${SessionExpiredString} created new session.`);\n }\n else {\n logDebug(`${SessionExpiredString}.`);\n }\n }\n}\n//# sourceMappingURL=transport.js.map","export function initializeInstrumentations(unpatchedConsole, internalLogger, config, metas, transports, api) {\n internalLogger.debug('Initializing instrumentations');\n const instrumentations = [];\n const add = (...newInstrumentations) => {\n internalLogger.debug('Adding instrumentations');\n newInstrumentations.forEach((newInstrumentation) => {\n internalLogger.debug(`Adding \"${newInstrumentation.name}\" instrumentation`);\n const exists = instrumentations.some((existingInstrumentation) => existingInstrumentation.name === newInstrumentation.name);\n if (exists) {\n internalLogger.warn(`Instrumentation ${newInstrumentation.name} is already added`);\n return;\n }\n newInstrumentation.unpatchedConsole = unpatchedConsole;\n newInstrumentation.internalLogger = internalLogger;\n newInstrumentation.config = config;\n newInstrumentation.metas = metas;\n newInstrumentation.transports = transports;\n newInstrumentation.api = api;\n instrumentations.push(newInstrumentation);\n newInstrumentation.initialize();\n });\n };\n const remove = (...instrumentationsToRemove) => {\n internalLogger.debug('Removing instrumentations');\n instrumentationsToRemove.forEach((instrumentationToRemove) => {\n var _a, _b;\n internalLogger.debug(`Removing \"${instrumentationToRemove.name}\" instrumentation`);\n const existingInstrumentationIndex = instrumentations.reduce((acc, existingInstrumentation, existingTransportIndex) => {\n if (acc === null && existingInstrumentation.name === instrumentationToRemove.name) {\n return existingTransportIndex;\n }\n return null;\n }, null);\n if (existingInstrumentationIndex === null) {\n internalLogger.warn(`Instrumentation \"${instrumentationToRemove.name}\" is not added`);\n return;\n }\n (_b = (_a = instrumentations[existingInstrumentationIndex]).destroy) === null || _b === void 0 ? void 0 : _b.call(_a);\n instrumentations.splice(existingInstrumentationIndex, 1);\n });\n };\n return {\n add,\n get instrumentations() {\n return [...instrumentations];\n },\n remove,\n };\n}\n//# sourceMappingURL=initialize.js.map","export function registerInitialInstrumentations(faro) {\n faro.instrumentations.add(...faro.config.instrumentations);\n}\n//# sourceMappingURL=registerInitial.js.map","import { defaultUnpatchedConsole } from '../unpatchedConsole';\nimport { noop } from '../utils';\nimport { defaultInternalLogger, defaultInternalLoggerLevel, InternalLoggerLevel } from './const';\nexport function createInternalLogger(unpatchedConsole = defaultUnpatchedConsole, internalLoggerLevel = defaultInternalLoggerLevel) {\n const internalLogger = defaultInternalLogger;\n if (internalLoggerLevel > InternalLoggerLevel.OFF) {\n internalLogger.error =\n internalLoggerLevel >= InternalLoggerLevel.ERROR\n ? function (...args) {\n unpatchedConsole.error(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.warn =\n internalLoggerLevel >= InternalLoggerLevel.WARN\n ? function (...args) {\n unpatchedConsole.warn(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.info =\n internalLoggerLevel >= InternalLoggerLevel.INFO\n ? function (...args) {\n unpatchedConsole.info(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n internalLogger.debug =\n internalLoggerLevel >= InternalLoggerLevel.VERBOSE\n ? function (...args) {\n unpatchedConsole.debug(`${internalLogger.prefix}\\n`, ...args);\n }\n : noop;\n }\n return internalLogger;\n}\n//# sourceMappingURL=createInternalLogger.js.map","import { defaultInternalLogger } from './const';\nimport { createInternalLogger } from './createInternalLogger';\nexport let internalLogger = defaultInternalLogger;\nexport function initializeInternalLogger(unpatchedConsole, config) {\n internalLogger = createInternalLogger(unpatchedConsole, config.internalLoggerLevel);\n return internalLogger;\n}\n//# sourceMappingURL=initialize.js.map","import { isFunction } from '../utils';\nexport function initializeMetas(_unpatchedConsole, internalLogger, _config) {\n let items = [];\n let listeners = [];\n const getValue = () => items.reduce((acc, item) => Object.assign(acc, isFunction(item) ? item() : item), {});\n const notifyListeners = () => {\n if (listeners.length) {\n const value = getValue();\n listeners.forEach((listener) => listener(value));\n }\n };\n const add = (...newItems) => {\n internalLogger.debug('Adding metas\\n', newItems);\n items.push(...newItems);\n notifyListeners();\n };\n const remove = (...itemsToRemove) => {\n internalLogger.debug('Removing metas\\n', itemsToRemove);\n items = items.filter((currentItem) => !itemsToRemove.includes(currentItem));\n notifyListeners();\n };\n const addListener = (listener) => {\n internalLogger.debug('Adding metas listener\\n', listener);\n listeners.push(listener);\n };\n const removeListener = (listener) => {\n internalLogger.debug('Removing metas listener\\n', listener);\n listeners = listeners.filter((currentListener) => currentListener !== listener);\n };\n return {\n add,\n remove,\n addListener,\n removeListener,\n get value() {\n return getValue();\n },\n };\n}\n//# sourceMappingURL=initialize.js.map","import { globalObject } from '../globalObject';\nexport function getBundleId(appName) {\n return globalObject === null || globalObject === void 0 ? void 0 : globalObject[`__faroBundleId_${appName}`];\n}\n//# sourceMappingURL=sourceMaps.js.map","import { getBundleId } from '../utils/sourceMaps';\nimport { VERSION } from '../version';\nexport function registerInitialMetas(faro) {\n var _a, _b;\n const initial = {\n sdk: {\n version: VERSION,\n },\n app: {\n bundleId: faro.config.app.name && getBundleId(faro.config.app.name),\n },\n };\n const session = (_a = faro.config.sessionTracking) === null || _a === void 0 ? void 0 : _a.session;\n if (session) {\n faro.api.setSession(session);\n }\n if (faro.config.app) {\n initial.app = Object.assign(Object.assign({}, faro.config.app), initial.app);\n }\n if (faro.config.user) {\n initial.user = faro.config.user;\n }\n if (faro.config.view) {\n initial.view = faro.config.view;\n }\n faro.metas.add(initial, ...((_b = faro.config.metas) !== null && _b !== void 0 ? _b : []));\n}\n//# sourceMappingURL=registerInitial.js.map","const DEFAULT_SEND_TIMEOUT_MS = 250;\nconst DEFAULT_BATCH_ITEM_LIMIT = 50;\nexport class BatchExecutor {\n constructor(sendFn, options) {\n var _a, _b;\n this.signalBuffer = [];\n this.itemLimit = (_a = options === null || options === void 0 ? void 0 : options.itemLimit) !== null && _a !== void 0 ? _a : DEFAULT_BATCH_ITEM_LIMIT;\n this.sendTimeout = (_b = options === null || options === void 0 ? void 0 : options.sendTimeout) !== null && _b !== void 0 ? _b : DEFAULT_SEND_TIMEOUT_MS;\n this.paused = (options === null || options === void 0 ? void 0 : options.paused) || false;\n this.sendFn = sendFn;\n this.flushInterval = -1;\n if (!this.paused) {\n this.start();\n }\n // Send batched/buffered data when user navigates to new page, switches or closes the tab, minimizes or closes the browser.\n // If on mobile, it also sends data if user switches from the browser to a different app.\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'hidden') {\n this.flush();\n }\n });\n }\n addItem(item) {\n if (this.paused) {\n return;\n }\n this.signalBuffer.push(item);\n if (this.signalBuffer.length >= this.itemLimit) {\n this.flush();\n }\n }\n start() {\n this.paused = false;\n if (this.sendTimeout > 0) {\n this.flushInterval = window.setInterval(() => this.flush(), this.sendTimeout);\n }\n }\n pause() {\n this.paused = true;\n clearInterval(this.flushInterval);\n }\n groupItems(items) {\n const itemMap = new Map();\n items.forEach((item) => {\n const metaKey = JSON.stringify(item.meta);\n let currentItems = itemMap.get(metaKey);\n if (currentItems === undefined) {\n currentItems = [item];\n }\n else {\n currentItems = [...currentItems, item];\n }\n itemMap.set(metaKey, currentItems);\n });\n return Array.from(itemMap.values());\n }\n flush() {\n if (this.paused || this.signalBuffer.length === 0) {\n return;\n }\n const itemGroups = this.groupItems(this.signalBuffer);\n itemGroups.forEach(this.sendFn);\n this.signalBuffer = [];\n }\n}\n//# sourceMappingURL=batchExecutor.js.map","import { BatchExecutor } from './batchExecutor';\nimport { TransportItemType } from './const';\nexport function initializeTransports(unpatchedConsole, internalLogger, config, metas) {\n var _a;\n internalLogger.debug('Initializing transports');\n const transports = [];\n let paused = config.paused;\n let beforeSendHooks = [];\n const add = (...newTransports) => {\n internalLogger.debug('Adding transports');\n newTransports.forEach((newTransport) => {\n internalLogger.debug(`Adding \"${newTransport.name}\" transport`);\n const exists = transports.some((existingTransport) => existingTransport === newTransport);\n if (exists) {\n internalLogger.warn(`Transport ${newTransport.name} is already added`);\n return;\n }\n newTransport.unpatchedConsole = unpatchedConsole;\n newTransport.internalLogger = internalLogger;\n newTransport.config = config;\n newTransport.metas = metas;\n transports.push(newTransport);\n });\n };\n const addBeforeSendHooks = (...newBeforeSendHooks) => {\n internalLogger.debug('Adding beforeSendHooks\\n', beforeSendHooks);\n newBeforeSendHooks.forEach((beforeSendHook) => {\n if (beforeSendHook) {\n beforeSendHooks.push(beforeSendHook);\n }\n });\n };\n const applyBeforeSendHooks = (items) => {\n let filteredItems = items;\n for (const hook of beforeSendHooks) {\n const modified = filteredItems.map(hook).filter(Boolean);\n if (modified.length === 0) {\n return [];\n }\n filteredItems = sanitizeItems(modified, config);\n }\n return filteredItems;\n };\n const batchedSend = (items) => {\n const filteredItems = applyBeforeSendHooks(items);\n if (filteredItems.length === 0) {\n return;\n }\n for (const transport of transports) {\n internalLogger.debug(`Transporting item using ${transport.name}\\n`, filteredItems);\n if (transport.isBatched()) {\n transport.send(filteredItems);\n }\n }\n };\n const instantSend = (item) => {\n var _a, _b;\n // prevent all beforeSend hooks being executed twice if batching is enabled.\n if (((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) && transports.every((transport) => transport.isBatched())) {\n return;\n }\n const [filteredItem] = applyBeforeSendHooks([item]);\n if (filteredItem === undefined) {\n return;\n }\n for (const transport of transports) {\n internalLogger.debug(`Transporting item using ${transport.name}\\n`, filteredItem);\n if (!transport.isBatched()) {\n transport.send(filteredItem);\n }\n else if (!((_b = config.batching) === null || _b === void 0 ? void 0 : _b.enabled)) {\n transport.send([filteredItem]);\n }\n }\n };\n let batchExecutor;\n if ((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) {\n batchExecutor = new BatchExecutor(batchedSend, {\n sendTimeout: config.batching.sendTimeout,\n itemLimit: config.batching.itemLimit,\n paused,\n });\n }\n // Send a signal to the appropriate transports\n //\n // 1. If SDK is paused, early return\n // 2. If batching is not enabled send the signal to all transports\n // instantly.\n // 3i. If batching is enabled, enqueue the signal\n // 3ii. Send the signal instantly to all un-batched transports\n const execute = (item) => {\n var _a;\n if (paused) {\n return;\n }\n if ((_a = config.batching) === null || _a === void 0 ? void 0 : _a.enabled) {\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.addItem(item);\n }\n instantSend(item);\n };\n const getBeforeSendHooks = () => [...beforeSendHooks];\n const isPaused = () => paused;\n const pause = () => {\n internalLogger.debug('Pausing transports');\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.pause();\n paused = true;\n };\n const remove = (...transportsToRemove) => {\n internalLogger.debug('Removing transports');\n transportsToRemove.forEach((transportToRemove) => {\n internalLogger.debug(`Removing \"${transportToRemove.name}\" transport`);\n const existingTransportIndex = transports.indexOf(transportToRemove);\n if (existingTransportIndex === -1) {\n internalLogger.warn(`Transport \"${transportToRemove.name}\" is not added`);\n return;\n }\n transports.splice(existingTransportIndex, 1);\n });\n };\n const removeBeforeSendHooks = (...beforeSendHooksToRemove) => {\n beforeSendHooks.filter((beforeSendHook) => !beforeSendHooksToRemove.includes(beforeSendHook));\n };\n const unpause = () => {\n internalLogger.debug('Unpausing transports');\n batchExecutor === null || batchExecutor === void 0 ? void 0 : batchExecutor.start();\n paused = false;\n };\n return {\n add,\n addBeforeSendHooks,\n getBeforeSendHooks,\n execute,\n isPaused,\n pause,\n remove,\n removeBeforeSendHooks,\n get transports() {\n return [...transports];\n },\n unpause,\n };\n}\n/**\n * Removes the `payload.originalError` property from the provided `TransportItem[]` parameter.\n */\nfunction sanitizeItems(filteredItems, config) {\n if (config.preserveOriginalError) {\n for (const item of filteredItems) {\n if (item.type === TransportItemType.EXCEPTION) {\n delete item.payload.originalError;\n }\n }\n }\n return filteredItems;\n}\n//# sourceMappingURL=initialize.js.map","export function registerInitialTransports(faro) {\n faro.transports.add(...faro.config.transports);\n faro.transports.addBeforeSendHooks(faro.config.beforeSend);\n}\n//# sourceMappingURL=registerInitial.js.map","import { defaultUnpatchedConsole } from './const';\nexport let unpatchedConsole = defaultUnpatchedConsole;\nexport function initializeUnpatchedConsole(config) {\n var _a;\n unpatchedConsole = (_a = config.unpatchedConsole) !== null && _a !== void 0 ? _a : unpatchedConsole;\n return unpatchedConsole;\n}\n//# sourceMappingURL=initialize.js.map","import { initializeAPI } from './api';\nimport { initializeInstrumentations, registerInitialInstrumentations } from './instrumentations';\nimport { initializeInternalLogger } from './internalLogger';\nimport { initializeMetas, registerInitialMetas } from './metas';\nimport { isInternalFaroOnGlobalObject, registerFaro } from './sdk';\nimport { initializeTransports, registerInitialTransports } from './transports';\nimport { initializeUnpatchedConsole } from './unpatchedConsole';\nexport function initializeFaro(config) {\n const unpatchedConsole = initializeUnpatchedConsole(config);\n const internalLogger = initializeInternalLogger(unpatchedConsole, config);\n if (isInternalFaroOnGlobalObject() && !config.isolate) {\n internalLogger.error('Faro is already registered. Either add instrumentations, transports etc. to the global faro instance or use the \"isolate\" property');\n return undefined;\n }\n internalLogger.debug('Initializing');\n // Initializing the APIs\n const metas = initializeMetas(unpatchedConsole, internalLogger, config);\n const transports = initializeTransports(unpatchedConsole, internalLogger, config, metas);\n const api = initializeAPI(unpatchedConsole, internalLogger, config, metas, transports);\n const instrumentations = initializeInstrumentations(unpatchedConsole, internalLogger, config, metas, transports, api);\n const faro = registerFaro(unpatchedConsole, internalLogger, config, metas, transports, api, instrumentations);\n // make sure Faro is initialized before registering default metas, instrumentations, transports etc.\n registerInitialMetas(faro);\n registerInitialTransports(faro);\n registerInitialInstrumentations(faro);\n return faro;\n}\n//# sourceMappingURL=initialize.js.map","export const defaultGlobalObjectKey = 'faro';\nexport const defaultBatchingConfig = {\n enabled: true,\n sendTimeout: 250,\n itemLimit: 50,\n};\n//# sourceMappingURL=const.js.map","export const defaultEventDomain = 'browser';\n//# sourceMappingURL=consts.js.map","import { getStackFramesFromError } from './getStackFramesFromError';\nexport function parseStacktrace(error) {\n return {\n frames: getStackFramesFromError(error),\n };\n}\n//# sourceMappingURL=parseStacktrace.js.map","import { UAParser } from 'ua-parser-js';\nimport { unknownString } from '@grafana/faro-core';\nexport const browserMeta = () => {\n const parser = new UAParser();\n const { name, version } = parser.getBrowser();\n const { name: osName, version: osVersion } = parser.getOS();\n const userAgent = parser.getUA();\n const language = navigator.language;\n const mobile = navigator.userAgent.includes('Mobi');\n const brands = getBrands();\n return {\n browser: {\n name: name !== null && name !== void 0 ? name : unknownString,\n version: version !== null && version !== void 0 ? version : unknownString,\n os: `${osName !== null && osName !== void 0 ? osName : unknownString} ${osVersion !== null && osVersion !== void 0 ? osVersion : unknownString}`,\n userAgent: userAgent !== null && userAgent !== void 0 ? userAgent : unknownString,\n language: language !== null && language !== void 0 ? language : unknownString,\n mobile,\n brands: brands !== null && brands !== void 0 ? brands : unknownString,\n viewportWidth: `${window.innerWidth}`,\n viewportHeight: `${window.innerHeight}`,\n },\n };\n function getBrands() {\n if (!name || !version) {\n return undefined;\n }\n if ('userAgentData' in navigator && navigator.userAgentData) {\n // userAgentData in experimental (only Chrome supports it) thus TS does not ship the respective type declarations\n return navigator.userAgentData.brands;\n }\n return undefined;\n }\n};\n//# sourceMappingURL=meta.js.map","export const k6Meta = () => {\n const k6Properties = window.k6;\n return {\n k6: Object.assign({ \n // we only add the k6 meta if Faro is running inside a k6 environment, so this is always true\n isK6Browser: true }, ((k6Properties === null || k6Properties === void 0 ? void 0 : k6Properties.testRunId) && { testRunId: k6Properties === null || k6Properties === void 0 ? void 0 : k6Properties.testRunId })),\n };\n};\n//# sourceMappingURL=meta.js.map","import { isFunction } from '@grafana/faro-core';\nlet currentHref;\nlet pageId;\nexport function createPageMeta({ generatePageId, initialPageMeta } = {}) {\n const pageMeta = () => {\n const locationHref = location.href;\n if (isFunction(generatePageId) && currentHref !== locationHref) {\n currentHref = locationHref;\n pageId = generatePageId(location);\n }\n return {\n page: Object.assign(Object.assign({ url: locationHref }, (pageId ? { id: pageId } : {})), initialPageMeta),\n };\n };\n return pageMeta;\n}\n//# sourceMappingURL=meta.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { createInternalLogger, defaultBatchingConfig, defaultGlobalObjectKey, defaultInternalLoggerLevel, defaultLogArgsSerializer, defaultUnpatchedConsole, isBoolean, isEmpty, isObject, } from '@grafana/faro-core';\nimport { defaultEventDomain } from '../consts';\nimport { parseStacktrace } from '../instrumentations';\nimport { defaultSessionTrackingConfig } from '../instrumentations/session';\nimport { userActionDataAttribute } from '../instrumentations/userActions/const';\nimport { browserMeta } from '../metas';\nimport { k6Meta } from '../metas/k6';\nimport { createPageMeta } from '../metas/page';\nimport { FetchTransport } from '../transports';\nimport { getWebInstrumentations } from './getWebInstrumentations';\nexport function makeCoreConfig(browserConfig) {\n var _a;\n const transports = [];\n const internalLogger = createInternalLogger(browserConfig.unpatchedConsole, browserConfig.internalLoggerLevel);\n if (browserConfig.transports) {\n if (browserConfig.url || browserConfig.apiKey) {\n internalLogger.error('if \"transports\" is defined, \"url\" and \"apiKey\" should not be defined');\n }\n transports.push(...browserConfig.transports);\n }\n else if (browserConfig.url) {\n transports.push(new FetchTransport({\n url: browserConfig.url,\n apiKey: browserConfig.apiKey,\n }));\n }\n else {\n internalLogger.error('either \"url\" or \"transports\" must be defined');\n }\n const { \n // properties with default values\n dedupe = true, eventDomain = defaultEventDomain, globalObjectKey = defaultGlobalObjectKey, instrumentations = getWebInstrumentations(), internalLoggerLevel = defaultInternalLoggerLevel, isolate = false, logArgsSerializer = defaultLogArgsSerializer, metas = createDefaultMetas(browserConfig), paused = false, preventGlobalExposure = false, unpatchedConsole = defaultUnpatchedConsole, trackUserActionsPreview = false, trackUserActionsDataAttributeName = userActionDataAttribute, url: browserConfigUrl } = browserConfig, \n // Properties without default values or which aren't used to create derived config\n restProperties = __rest(browserConfig, [\"dedupe\", \"eventDomain\", \"globalObjectKey\", \"instrumentations\", \"internalLoggerLevel\", \"isolate\", \"logArgsSerializer\", \"metas\", \"paused\", \"preventGlobalExposure\", \"unpatchedConsole\", \"trackUserActionsPreview\", \"trackUserActionsDataAttributeName\", \"url\"]);\n return Object.assign(Object.assign({}, restProperties), { batching: Object.assign(Object.assign({}, defaultBatchingConfig), browserConfig.batching), dedupe: dedupe, globalObjectKey, instrumentations: getFilteredInstrumentations(instrumentations, browserConfig), internalLoggerLevel,\n isolate,\n logArgsSerializer,\n metas,\n parseStacktrace,\n paused,\n preventGlobalExposure,\n transports,\n unpatchedConsole,\n eventDomain, ignoreUrls: [\n ...((_a = browserConfig.ignoreUrls) !== null && _a !== void 0 ? _a : []),\n // ignore configured cloud collector url by default\n ...(browserConfigUrl ? [browserConfigUrl] : []),\n // Try our best to exclude collector URLs form other Faro instances. By default these are URLs ending with /collect or /collect/ followed by alphanumeric characters.\n /\\/collect(?:\\/[\\w]*)?$/,\n ], sessionTracking: Object.assign(Object.assign(Object.assign({}, defaultSessionTrackingConfig), browserConfig.sessionTracking), crateSessionMeta({\n trackGeolocation: browserConfig.trackGeolocation,\n sessionTracking: browserConfig.sessionTracking,\n })), trackUserActionsPreview,\n trackUserActionsDataAttributeName });\n}\nfunction getFilteredInstrumentations(instrumentations, { trackUserActionsPreview }) {\n return instrumentations.filter((instr) => {\n if (instr.name === '@grafana/faro-web-sdk:instrumentation-user-action' && !trackUserActionsPreview) {\n return false;\n }\n return true;\n });\n}\nfunction createDefaultMetas(browserConfig) {\n var _a, _b;\n const { page, generatePageId } = (_a = browserConfig === null || browserConfig === void 0 ? void 0 : browserConfig.pageTracking) !== null && _a !== void 0 ? _a : {};\n const initialMetas = [\n browserMeta,\n createPageMeta({ generatePageId, initialPageMeta: page }),\n ...((_b = browserConfig.metas) !== null && _b !== void 0 ? _b : []),\n ];\n const isK6BrowserSession = isObject(window.k6);\n if (isK6BrowserSession) {\n return [...initialMetas, k6Meta];\n }\n return initialMetas;\n}\nfunction crateSessionMeta({ trackGeolocation, sessionTracking, }) {\n var _a;\n const overrides = {};\n if (isBoolean(trackGeolocation)) {\n overrides.geoLocationTrackingEnabled = trackGeolocation;\n }\n if (isEmpty(overrides)) {\n return {};\n }\n return {\n session: Object.assign(Object.assign({}, ((_a = sessionTracking === null || sessionTracking === void 0 ? void 0 : sessionTracking.session) !== null && _a !== void 0 ? _a : {})), { overrides }),\n };\n}\n//# sourceMappingURL=makeCoreConfig.js.map","import { initializeFaro as coreInit } from '@grafana/faro-core';\nimport { makeCoreConfig } from './config';\nexport function initializeFaro(config) {\n const coreConfig = makeCoreConfig(config);\n if (!coreConfig) {\n return undefined;\n }\n return coreInit(coreConfig);\n}\n//# sourceMappingURL=initialize.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses\n * constant NoopMetrics for all of its methods.\n */\nvar NoopMeter = /** @class */ (function () {\n function NoopMeter() {\n }\n /**\n * @see {@link Meter.createGauge}\n */\n NoopMeter.prototype.createGauge = function (_name, _options) {\n return NOOP_GAUGE_METRIC;\n };\n /**\n * @see {@link Meter.createHistogram}\n */\n NoopMeter.prototype.createHistogram = function (_name, _options) {\n return NOOP_HISTOGRAM_METRIC;\n };\n /**\n * @see {@link Meter.createCounter}\n */\n NoopMeter.prototype.createCounter = function (_name, _options) {\n return NOOP_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.createUpDownCounter}\n */\n NoopMeter.prototype.createUpDownCounter = function (_name, _options) {\n return NOOP_UP_DOWN_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.createObservableGauge}\n */\n NoopMeter.prototype.createObservableGauge = function (_name, _options) {\n return NOOP_OBSERVABLE_GAUGE_METRIC;\n };\n /**\n * @see {@link Meter.createObservableCounter}\n */\n NoopMeter.prototype.createObservableCounter = function (_name, _options) {\n return NOOP_OBSERVABLE_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.createObservableUpDownCounter}\n */\n NoopMeter.prototype.createObservableUpDownCounter = function (_name, _options) {\n return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.addBatchObservableCallback}\n */\n NoopMeter.prototype.addBatchObservableCallback = function (_callback, _observables) { };\n /**\n * @see {@link Meter.removeBatchObservableCallback}\n */\n NoopMeter.prototype.removeBatchObservableCallback = function (_callback) { };\n return NoopMeter;\n}());\nexport { NoopMeter };\nvar NoopMetric = /** @class */ (function () {\n function NoopMetric() {\n }\n return NoopMetric;\n}());\nexport { NoopMetric };\nvar NoopCounterMetric = /** @class */ (function (_super) {\n __extends(NoopCounterMetric, _super);\n function NoopCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopCounterMetric.prototype.add = function (_value, _attributes) { };\n return NoopCounterMetric;\n}(NoopMetric));\nexport { NoopCounterMetric };\nvar NoopUpDownCounterMetric = /** @class */ (function (_super) {\n __extends(NoopUpDownCounterMetric, _super);\n function NoopUpDownCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopUpDownCounterMetric.prototype.add = function (_value, _attributes) { };\n return NoopUpDownCounterMetric;\n}(NoopMetric));\nexport { NoopUpDownCounterMetric };\nvar NoopGaugeMetric = /** @class */ (function (_super) {\n __extends(NoopGaugeMetric, _super);\n function NoopGaugeMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopGaugeMetric.prototype.record = function (_value, _attributes) { };\n return NoopGaugeMetric;\n}(NoopMetric));\nexport { NoopGaugeMetric };\nvar NoopHistogramMetric = /** @class */ (function (_super) {\n __extends(NoopHistogramMetric, _super);\n function NoopHistogramMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopHistogramMetric.prototype.record = function (_value, _attributes) { };\n return NoopHistogramMetric;\n}(NoopMetric));\nexport { NoopHistogramMetric };\nvar NoopObservableMetric = /** @class */ (function () {\n function NoopObservableMetric() {\n }\n NoopObservableMetric.prototype.addCallback = function (_callback) { };\n NoopObservableMetric.prototype.removeCallback = function (_callback) { };\n return NoopObservableMetric;\n}());\nexport { NoopObservableMetric };\nvar NoopObservableCounterMetric = /** @class */ (function (_super) {\n __extends(NoopObservableCounterMetric, _super);\n function NoopObservableCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NoopObservableCounterMetric;\n}(NoopObservableMetric));\nexport { NoopObservableCounterMetric };\nvar NoopObservableGaugeMetric = /** @class */ (function (_super) {\n __extends(NoopObservableGaugeMetric, _super);\n function NoopObservableGaugeMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NoopObservableGaugeMetric;\n}(NoopObservableMetric));\nexport { NoopObservableGaugeMetric };\nvar NoopObservableUpDownCounterMetric = /** @class */ (function (_super) {\n __extends(NoopObservableUpDownCounterMetric, _super);\n function NoopObservableUpDownCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NoopObservableUpDownCounterMetric;\n}(NoopObservableMetric));\nexport { NoopObservableUpDownCounterMetric };\nexport var NOOP_METER = new NoopMeter();\n// Synchronous instruments\nexport var NOOP_COUNTER_METRIC = new NoopCounterMetric();\nexport var NOOP_GAUGE_METRIC = new NoopGaugeMetric();\nexport var NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric();\nexport var NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric();\n// Asynchronous instruments\nexport var NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric();\nexport var NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric();\nexport var NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric();\n/**\n * Create a no-op Meter\n */\nexport function createNoopMeter() {\n return NOOP_METER;\n}\n//# sourceMappingURL=NoopMeter.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NOOP_METER } from './NoopMeter';\n/**\n * An implementation of the {@link MeterProvider} which returns an impotent Meter\n * for all calls to `getMeter`\n */\nvar NoopMeterProvider = /** @class */ (function () {\n function NoopMeterProvider() {\n }\n NoopMeterProvider.prototype.getMeter = function (_name, _version, _options) {\n return NOOP_METER;\n };\n return NoopMeterProvider;\n}());\nexport { NoopMeterProvider };\nexport var NOOP_METER_PROVIDER = new NoopMeterProvider();\n//# sourceMappingURL=NoopMeterProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NOOP_METER_PROVIDER } from '../metrics/NoopMeterProvider';\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'metrics';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Metrics API\n */\nvar MetricsAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function MetricsAPI() {\n }\n /** Get the singleton instance of the Metrics API */\n MetricsAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new MetricsAPI();\n }\n return this._instance;\n };\n /**\n * Set the current global meter provider.\n * Returns true if the meter provider was successfully registered, else false.\n */\n MetricsAPI.prototype.setGlobalMeterProvider = function (provider) {\n return registerGlobal(API_NAME, provider, DiagAPI.instance());\n };\n /**\n * Returns the global meter provider.\n */\n MetricsAPI.prototype.getMeterProvider = function () {\n return getGlobal(API_NAME) || NOOP_METER_PROVIDER;\n };\n /**\n * Returns a meter from the global meter provider.\n */\n MetricsAPI.prototype.getMeter = function (name, version, options) {\n return this.getMeterProvider().getMeter(name, version, options);\n };\n /** Remove the global meter provider */\n MetricsAPI.prototype.disable = function () {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n };\n return MetricsAPI;\n}());\nexport { MetricsAPI };\n//# sourceMappingURL=metrics.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { MetricsAPI } from './api/metrics';\n/** Entrypoint for metrics API */\nexport var metrics = MetricsAPI.getInstance();\n//# sourceMappingURL=metrics-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Updates to this file should also be replicated to @opentelemetry/api and\n// @opentelemetry/core too.\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - <object> (When all else fails)\n */\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport const _globalThis = typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {};\n//# sourceMappingURL=globalThis.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { _globalThis } from '../platform';\nexport const GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\nexport const _global = _globalThis;\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nexport function makeGetter(requiredVersion, instance, fallback) {\n return (version) => version === requiredVersion ? instance : fallback;\n}\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexport const API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n//# sourceMappingURL=global-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class NoopLogger {\n emit(_logRecord) { }\n}\nexport const NOOP_LOGGER = new NoopLogger();\n//# sourceMappingURL=NoopLogger.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoopLogger } from './NoopLogger';\nexport class NoopLoggerProvider {\n getLogger(_name, _version, _options) {\n return new NoopLogger();\n }\n}\nexport const NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n//# sourceMappingURL=NoopLoggerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NOOP_LOGGER } from './NoopLogger';\nexport class ProxyLogger {\n constructor(_provider, name, version, options) {\n this._provider = _provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n /**\n * Emit a log record. This method should only be used by log appenders.\n *\n * @param logRecord\n */\n emit(logRecord) {\n this._getLogger().emit(logRecord);\n }\n /**\n * Try to get a logger from the proxy logger provider.\n * If the proxy logger provider has no delegate, return a noop logger.\n */\n _getLogger() {\n if (this._delegate) {\n return this._delegate;\n }\n const logger = this._provider.getDelegateLogger(this.name, this.version, this.options);\n if (!logger) {\n return NOOP_LOGGER;\n }\n this._delegate = logger;\n return this._delegate;\n }\n}\n//# sourceMappingURL=ProxyLogger.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NOOP_LOGGER_PROVIDER } from './NoopLoggerProvider';\nimport { ProxyLogger } from './ProxyLogger';\nexport class ProxyLoggerProvider {\n getLogger(name, version, options) {\n var _a;\n return ((_a = this.getDelegateLogger(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyLogger(this, name, version, options));\n }\n getDelegate() {\n var _a;\n return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_LOGGER_PROVIDER;\n }\n /**\n * Set the delegate logger provider\n */\n setDelegate(delegate) {\n this._delegate = delegate;\n }\n getDelegateLogger(name, version, options) {\n var _a;\n return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getLogger(name, version, options);\n }\n}\n//# sourceMappingURL=ProxyLoggerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { API_BACKWARDS_COMPATIBILITY_VERSION, GLOBAL_LOGS_API_KEY, _global, makeGetter, } from '../internal/global-utils';\nimport { NOOP_LOGGER_PROVIDER } from '../NoopLoggerProvider';\nimport { ProxyLoggerProvider } from '../ProxyLoggerProvider';\nexport class LogsAPI {\n constructor() {\n this._proxyLoggerProvider = new ProxyLoggerProvider();\n }\n static getInstance() {\n if (!this._instance) {\n this._instance = new LogsAPI();\n }\n return this._instance;\n }\n setGlobalLoggerProvider(provider) {\n if (_global[GLOBAL_LOGS_API_KEY]) {\n return this.getLoggerProvider();\n }\n _global[GLOBAL_LOGS_API_KEY] = makeGetter(API_BACKWARDS_COMPATIBILITY_VERSION, provider, NOOP_LOGGER_PROVIDER);\n this._proxyLoggerProvider.setDelegate(provider);\n return provider;\n }\n /**\n * Returns the global logger provider.\n *\n * @returns LoggerProvider\n */\n getLoggerProvider() {\n var _a, _b;\n return ((_b = (_a = _global[GLOBAL_LOGS_API_KEY]) === null || _a === void 0 ? void 0 : _a.call(_global, API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== void 0 ? _b : this._proxyLoggerProvider);\n }\n /**\n * Returns a logger from the global logger provider.\n *\n * @returns Logger\n */\n getLogger(name, version, options) {\n return this.getLoggerProvider().getLogger(name, version, options);\n }\n /** Remove the global logger provider */\n disable() {\n delete _global[GLOBAL_LOGS_API_KEY];\n this._proxyLoggerProvider = new ProxyLoggerProvider();\n }\n}\n//# sourceMappingURL=logs.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { SeverityNumber } from './types/LogRecord';\nexport { NOOP_LOGGER, NoopLogger } from './NoopLogger';\nexport { NOOP_LOGGER_PROVIDER, NoopLoggerProvider } from './NoopLoggerProvider';\nexport { ProxyLogger } from './ProxyLogger';\nexport { ProxyLoggerProvider } from './ProxyLoggerProvider';\nimport { LogsAPI } from './api/logs';\nexport const logs = LogsAPI.getInstance();\n//# sourceMappingURL=index.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nexport function enableInstrumentations(instrumentations, tracerProvider, meterProvider, loggerProvider) {\n for (let i = 0, j = instrumentations.length; i < j; i++) {\n const instrumentation = instrumentations[i];\n if (tracerProvider) {\n instrumentation.setTracerProvider(tracerProvider);\n }\n if (meterProvider) {\n instrumentation.setMeterProvider(meterProvider);\n }\n if (loggerProvider && instrumentation.setLoggerProvider) {\n instrumentation.setLoggerProvider(loggerProvider);\n }\n // instrumentations have been already enabled during creation\n // so enable only if user prevented that by setting enabled to false\n // this is to prevent double enabling but when calling register all\n // instrumentations should be now enabled\n if (!instrumentation.getConfig().enabled) {\n instrumentation.enable();\n }\n }\n}\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nexport function disableInstrumentations(instrumentations) {\n instrumentations.forEach(instrumentation => instrumentation.disable());\n}\n//# sourceMappingURL=autoLoaderUtils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { trace, metrics } from '@opentelemetry/api';\nimport { logs } from '@opentelemetry/api-logs';\nimport { disableInstrumentations, enableInstrumentations, } from './autoLoaderUtils';\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n * registered\n */\nexport function registerInstrumentations(options) {\n const tracerProvider = options.tracerProvider || trace.getTracerProvider();\n const meterProvider = options.meterProvider || metrics.getMeterProvider();\n const loggerProvider = options.loggerProvider || logs.getLoggerProvider();\n const instrumentations = options.instrumentations?.flat() ?? [];\n enableInstrumentations(instrumentations, tracerProvider, meterProvider, loggerProvider);\n return () => {\n disableInstrumentations(instrumentations);\n };\n}\n//# sourceMappingURL=autoLoader.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function defaultServiceName() {\n return 'unknown_service';\n}\n//# sourceMappingURL=default-service-name.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport const isPromiseLike = (val) => {\n return (val !== null &&\n typeof val === 'object' &&\n typeof val.then === 'function');\n};\nexport function identity(_) {\n return _;\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\nimport { SDK_INFO } from '@opentelemetry/core';\nimport { ATTR_SERVICE_NAME, ATTR_TELEMETRY_SDK_LANGUAGE, ATTR_TELEMETRY_SDK_NAME, ATTR_TELEMETRY_SDK_VERSION, } from '@opentelemetry/semantic-conventions';\nimport { defaultServiceName } from './platform';\nimport { isPromiseLike } from './utils';\nclass ResourceImpl {\n _rawAttributes;\n _asyncAttributesPending = false;\n _memoizedAttributes;\n static FromAttributeList(attributes) {\n const res = new ResourceImpl({});\n res._rawAttributes = guardedRawAttributes(attributes);\n res._asyncAttributesPending =\n attributes.filter(([_, val]) => isPromiseLike(val)).length > 0;\n return res;\n }\n constructor(\n /**\n * A dictionary of attributes with string keys and values that provide\n * information about the entity as numbers, strings or booleans\n * TODO: Consider to add check/validation on attributes.\n */\n resource) {\n const attributes = resource.attributes ?? {};\n this._rawAttributes = Object.entries(attributes).map(([k, v]) => {\n if (isPromiseLike(v)) {\n // side-effect\n this._asyncAttributesPending = true;\n }\n return [k, v];\n });\n this._rawAttributes = guardedRawAttributes(this._rawAttributes);\n }\n get asyncAttributesPending() {\n return this._asyncAttributesPending;\n }\n async waitForAsyncAttributes() {\n if (!this.asyncAttributesPending) {\n return;\n }\n for (let i = 0; i < this._rawAttributes.length; i++) {\n const [k, v] = this._rawAttributes[i];\n this._rawAttributes[i] = [k, isPromiseLike(v) ? await v : v];\n }\n this._asyncAttributesPending = false;\n }\n get attributes() {\n if (this.asyncAttributesPending) {\n diag.error('Accessing resource attributes before async attributes settled');\n }\n if (this._memoizedAttributes) {\n return this._memoizedAttributes;\n }\n const attrs = {};\n for (const [k, v] of this._rawAttributes) {\n if (isPromiseLike(v)) {\n diag.debug(`Unsettled resource attribute ${k} skipped`);\n continue;\n }\n if (v != null) {\n attrs[k] ??= v;\n }\n }\n // only memoize output if all attributes are settled\n if (!this._asyncAttributesPending) {\n this._memoizedAttributes = attrs;\n }\n return attrs;\n }\n getRawAttributes() {\n return this._rawAttributes;\n }\n merge(resource) {\n if (resource == null)\n return this;\n // Order is important\n // Spec states incoming attributes override existing attributes\n return ResourceImpl.FromAttributeList([\n ...resource.getRawAttributes(),\n ...this.getRawAttributes(),\n ]);\n }\n}\nexport function resourceFromAttributes(attributes) {\n return ResourceImpl.FromAttributeList(Object.entries(attributes));\n}\nexport function resourceFromDetectedResource(detectedResource) {\n return new ResourceImpl(detectedResource);\n}\nexport function emptyResource() {\n return resourceFromAttributes({});\n}\nexport function defaultResource() {\n return resourceFromAttributes({\n [ATTR_SERVICE_NAME]: defaultServiceName(),\n [ATTR_TELEMETRY_SDK_LANGUAGE]: SDK_INFO[ATTR_TELEMETRY_SDK_LANGUAGE],\n [ATTR_TELEMETRY_SDK_NAME]: SDK_INFO[ATTR_TELEMETRY_SDK_NAME],\n [ATTR_TELEMETRY_SDK_VERSION]: SDK_INFO[ATTR_TELEMETRY_SDK_VERSION],\n });\n}\nfunction guardedRawAttributes(attributes) {\n return attributes.map(([k, v]) => {\n if (isPromiseLike(v)) {\n return [\n k,\n v.catch(err => {\n diag.debug('promise rejection for resource attribute: %s - %s', k, err);\n return undefined;\n }),\n ];\n }\n return [k, v];\n });\n}\n//# sourceMappingURL=ResourceImpl.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var SpanKind;\n(function (SpanKind) {\n /** Default value. Indicates that the span is used internally. */\n SpanKind[SpanKind[\"INTERNAL\"] = 0] = \"INTERNAL\";\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SpanKind[SpanKind[\"SERVER\"] = 1] = \"SERVER\";\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n SpanKind[SpanKind[\"CLIENT\"] = 2] = \"CLIENT\";\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n SpanKind[SpanKind[\"PRODUCER\"] = 3] = \"PRODUCER\";\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n SpanKind[SpanKind[\"CONSUMER\"] = 4] = \"CONSUMER\";\n})(SpanKind || (SpanKind = {}));\n//# sourceMappingURL=span_kind.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport var SamplingDecision;\n(function (SamplingDecision) {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n SamplingDecision[SamplingDecision[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD\"] = 1] = \"RECORD\";\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n})(SamplingDecision || (SamplingDecision = {}));\n//# sourceMappingURL=SamplingResult.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Event name definitions\nexport const ExceptionEventName = 'exception';\n//# sourceMappingURL=enums.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag, SpanStatusCode, } from '@opentelemetry/api';\nimport { addHrTimes, millisToHrTime, getTimeOrigin, hrTime, hrTimeDuration, isAttributeValue, isTimeInput, isTimeInputHrTime, otperformance, sanitizeAttributes, } from '@opentelemetry/core';\nimport { ATTR_EXCEPTION_MESSAGE, ATTR_EXCEPTION_STACKTRACE, ATTR_EXCEPTION_TYPE, } from '@opentelemetry/semantic-conventions';\nimport { ExceptionEventName } from './enums';\n/**\n * This class represents a span.\n */\nexport class SpanImpl {\n // Below properties are included to implement ReadableSpan for export\n // purposes but are not intended to be written-to directly.\n _spanContext;\n kind;\n parentSpanContext;\n attributes = {};\n links = [];\n events = [];\n startTime;\n resource;\n instrumentationScope;\n _droppedAttributesCount = 0;\n _droppedEventsCount = 0;\n _droppedLinksCount = 0;\n name;\n status = {\n code: SpanStatusCode.UNSET,\n };\n endTime = [0, 0];\n _ended = false;\n _duration = [-1, -1];\n _spanProcessor;\n _spanLimits;\n _attributeValueLengthLimit;\n _performanceStartTime;\n _performanceOffset;\n _startTimeProvided;\n /**\n * Constructs a new SpanImpl instance.\n */\n constructor(opts) {\n const now = Date.now();\n this._spanContext = opts.spanContext;\n this._performanceStartTime = otperformance.now();\n this._performanceOffset =\n now - (this._performanceStartTime + getTimeOrigin());\n this._startTimeProvided = opts.startTime != null;\n this._spanLimits = opts.spanLimits;\n this._attributeValueLengthLimit =\n this._spanLimits.attributeValueLengthLimit || 0;\n this._spanProcessor = opts.spanProcessor;\n this.name = opts.name;\n this.parentSpanContext = opts.parentSpanContext;\n this.kind = opts.kind;\n this.links = opts.links || [];\n this.startTime = this._getTime(opts.startTime ?? now);\n this.resource = opts.resource;\n this.instrumentationScope = opts.scope;\n if (opts.attributes != null) {\n this.setAttributes(opts.attributes);\n }\n this._spanProcessor.onStart(this, opts.context);\n }\n spanContext() {\n return this._spanContext;\n }\n setAttribute(key, value) {\n if (value == null || this._isSpanEnded())\n return this;\n if (key.length === 0) {\n diag.warn(`Invalid attribute key: ${key}`);\n return this;\n }\n if (!isAttributeValue(value)) {\n diag.warn(`Invalid attribute value set for key: ${key}`);\n return this;\n }\n const { attributeCountLimit } = this._spanLimits;\n if (attributeCountLimit !== undefined &&\n Object.keys(this.attributes).length >= attributeCountLimit &&\n !Object.prototype.hasOwnProperty.call(this.attributes, key)) {\n this._droppedAttributesCount++;\n return this;\n }\n this.attributes[key] = this._truncateToSize(value);\n return this;\n }\n setAttributes(attributes) {\n for (const [k, v] of Object.entries(attributes)) {\n this.setAttribute(k, v);\n }\n return this;\n }\n /**\n *\n * @param name Span Name\n * @param [attributesOrStartTime] Span attributes or start time\n * if type is {@type TimeInput} and 3rd param is undefined\n * @param [timeStamp] Specified time stamp for the event\n */\n addEvent(name, attributesOrStartTime, timeStamp) {\n if (this._isSpanEnded())\n return this;\n const { eventCountLimit } = this._spanLimits;\n if (eventCountLimit === 0) {\n diag.warn('No events allowed.');\n this._droppedEventsCount++;\n return this;\n }\n if (eventCountLimit !== undefined &&\n this.events.length >= eventCountLimit) {\n if (this._droppedEventsCount === 0) {\n diag.debug('Dropping extra events.');\n }\n this.events.shift();\n this._droppedEventsCount++;\n }\n if (isTimeInput(attributesOrStartTime)) {\n if (!isTimeInput(timeStamp)) {\n timeStamp = attributesOrStartTime;\n }\n attributesOrStartTime = undefined;\n }\n const attributes = sanitizeAttributes(attributesOrStartTime);\n this.events.push({\n name,\n attributes,\n time: this._getTime(timeStamp),\n droppedAttributesCount: 0,\n });\n return this;\n }\n addLink(link) {\n this.links.push(link);\n return this;\n }\n addLinks(links) {\n this.links.push(...links);\n return this;\n }\n setStatus(status) {\n if (this._isSpanEnded())\n return this;\n this.status = { ...status };\n // When using try-catch, the caught \"error\" is of type `any`. When then assigning `any` to `status.message`,\n // TypeScript will not error. While this can happen during use of any API, it is more common on Span#setStatus()\n // as it's likely used in a catch-block. Therefore, we validate if `status.message` is actually a string, null, or\n // undefined to avoid an incorrect type causing issues downstream.\n if (this.status.message != null && typeof status.message !== 'string') {\n diag.warn(`Dropping invalid status.message of type '${typeof status.message}', expected 'string'`);\n delete this.status.message;\n }\n return this;\n }\n updateName(name) {\n if (this._isSpanEnded())\n return this;\n this.name = name;\n return this;\n }\n end(endTime) {\n if (this._isSpanEnded()) {\n diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);\n return;\n }\n this._ended = true;\n this.endTime = this._getTime(endTime);\n this._duration = hrTimeDuration(this.startTime, this.endTime);\n if (this._duration[0] < 0) {\n diag.warn('Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.', this.startTime, this.endTime);\n this.endTime = this.startTime.slice();\n this._duration = [0, 0];\n }\n if (this._droppedEventsCount > 0) {\n diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`);\n }\n this._spanProcessor.onEnd(this);\n }\n _getTime(inp) {\n if (typeof inp === 'number' && inp <= otperformance.now()) {\n // must be a performance timestamp\n // apply correction and convert to hrtime\n return hrTime(inp + this._performanceOffset);\n }\n if (typeof inp === 'number') {\n return millisToHrTime(inp);\n }\n if (inp instanceof Date) {\n return millisToHrTime(inp.getTime());\n }\n if (isTimeInputHrTime(inp)) {\n return inp;\n }\n if (this._startTimeProvided) {\n // if user provided a time for the start manually\n // we can't use duration to calculate event/end times\n return millisToHrTime(Date.now());\n }\n const msDuration = otperformance.now() - this._performanceStartTime;\n return addHrTimes(this.startTime, millisToHrTime(msDuration));\n }\n isRecording() {\n return this._ended === false;\n }\n recordException(exception, time) {\n const attributes = {};\n if (typeof exception === 'string') {\n attributes[ATTR_EXCEPTION_MESSAGE] = exception;\n }\n else if (exception) {\n if (exception.code) {\n attributes[ATTR_EXCEPTION_TYPE] = exception.code.toString();\n }\n else if (exception.name) {\n attributes[ATTR_EXCEPTION_TYPE] = exception.name;\n }\n if (exception.message) {\n attributes[ATTR_EXCEPTION_MESSAGE] = exception.message;\n }\n if (exception.stack) {\n attributes[ATTR_EXCEPTION_STACKTRACE] = exception.stack;\n }\n }\n // these are minimum requirements from spec\n if (attributes[ATTR_EXCEPTION_TYPE] || attributes[ATTR_EXCEPTION_MESSAGE]) {\n this.addEvent(ExceptionEventName, attributes, time);\n }\n else {\n diag.warn(`Failed to record an exception ${exception}`);\n }\n }\n get duration() {\n return this._duration;\n }\n get ended() {\n return this._ended;\n }\n get droppedAttributesCount() {\n return this._droppedAttributesCount;\n }\n get droppedEventsCount() {\n return this._droppedEventsCount;\n }\n get droppedLinksCount() {\n return this._droppedLinksCount;\n }\n _isSpanEnded() {\n if (this._ended) {\n const error = new Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);\n diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`, error);\n }\n return this._ended;\n }\n // Utility function to truncate given value within size\n // for value type of string, will truncate to given limit\n // for type of non-string, will return same value\n _truncateToLimitUtil(value, limit) {\n if (value.length <= limit) {\n return value;\n }\n return value.substring(0, limit);\n }\n /**\n * If the given attribute value is of type string and has more characters than given {@code attributeValueLengthLimit} then\n * return string with truncated to {@code attributeValueLengthLimit} characters\n *\n * If the given attribute value is array of strings then\n * return new array of strings with each element truncated to {@code attributeValueLengthLimit} characters\n *\n * Otherwise return same Attribute {@code value}\n *\n * @param value Attribute value\n * @returns truncated attribute value if required, otherwise same value\n */\n _truncateToSize(value) {\n const limit = this._attributeValueLengthLimit;\n // Check limit\n if (limit <= 0) {\n // Negative values are invalid, so do not truncate\n diag.warn(`Attribute value limit must be positive, got ${limit}`);\n return value;\n }\n // String\n if (typeof value === 'string') {\n return this._truncateToLimitUtil(value, limit);\n }\n // Array of strings\n if (Array.isArray(value)) {\n return value.map(val => typeof val === 'string' ? this._truncateToLimitUtil(val, limit) : val);\n }\n // Other types, no need to apply value length limit\n return value;\n }\n}\n//# sourceMappingURL=Span.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport var SamplingDecision;\n(function (SamplingDecision) {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n SamplingDecision[SamplingDecision[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD\"] = 1] = \"RECORD\";\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n})(SamplingDecision || (SamplingDecision = {}));\n//# sourceMappingURL=Sampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SamplingDecision } from '../Sampler';\n/** Sampler that samples no traces. */\nexport class AlwaysOffSampler {\n shouldSample() {\n return {\n decision: SamplingDecision.NOT_RECORD,\n };\n }\n toString() {\n return 'AlwaysOffSampler';\n }\n}\n//# sourceMappingURL=AlwaysOffSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SamplingDecision } from '../Sampler';\n/** Sampler that samples all traces. */\nexport class AlwaysOnSampler {\n shouldSample() {\n return {\n decision: SamplingDecision.RECORD_AND_SAMPLED,\n };\n }\n toString() {\n return 'AlwaysOnSampler';\n }\n}\n//# sourceMappingURL=AlwaysOnSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isSpanContextValid, TraceFlags, trace, } from '@opentelemetry/api';\nimport { globalErrorHandler } from '@opentelemetry/core';\nimport { AlwaysOffSampler } from './AlwaysOffSampler';\nimport { AlwaysOnSampler } from './AlwaysOnSampler';\n/**\n * A composite sampler that either respects the parent span's sampling decision\n * or delegates to `delegateSampler` for root spans.\n */\nexport class ParentBasedSampler {\n _root;\n _remoteParentSampled;\n _remoteParentNotSampled;\n _localParentSampled;\n _localParentNotSampled;\n constructor(config) {\n this._root = config.root;\n if (!this._root) {\n globalErrorHandler(new Error('ParentBasedSampler must have a root sampler configured'));\n this._root = new AlwaysOnSampler();\n }\n this._remoteParentSampled =\n config.remoteParentSampled ?? new AlwaysOnSampler();\n this._remoteParentNotSampled =\n config.remoteParentNotSampled ?? new AlwaysOffSampler();\n this._localParentSampled =\n config.localParentSampled ?? new AlwaysOnSampler();\n this._localParentNotSampled =\n config.localParentNotSampled ?? new AlwaysOffSampler();\n }\n shouldSample(context, traceId, spanName, spanKind, attributes, links) {\n const parentContext = trace.getSpanContext(context);\n if (!parentContext || !isSpanContextValid(parentContext)) {\n return this._root.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n if (parentContext.isRemote) {\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._remoteParentSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n return this._remoteParentNotSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._localParentSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n return this._localParentNotSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n toString() {\n return `ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`;\n }\n}\n//# sourceMappingURL=ParentBasedSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isValidTraceId } from '@opentelemetry/api';\nimport { SamplingDecision } from '../Sampler';\n/** Sampler that samples a given fraction of traces based of trace id deterministically. */\nexport class TraceIdRatioBasedSampler {\n _ratio;\n _upperBound;\n constructor(_ratio = 0) {\n this._ratio = _ratio;\n this._ratio = this._normalize(_ratio);\n this._upperBound = Math.floor(this._ratio * 0xffffffff);\n }\n shouldSample(context, traceId) {\n return {\n decision: isValidTraceId(traceId) && this._accumulate(traceId) < this._upperBound\n ? SamplingDecision.RECORD_AND_SAMPLED\n : SamplingDecision.NOT_RECORD,\n };\n }\n toString() {\n return `TraceIdRatioBased{${this._ratio}}`;\n }\n _normalize(ratio) {\n if (typeof ratio !== 'number' || isNaN(ratio))\n return 0;\n return ratio >= 1 ? 1 : ratio <= 0 ? 0 : ratio;\n }\n _accumulate(traceId) {\n let accumulation = 0;\n for (let i = 0; i < traceId.length / 8; i++) {\n const pos = i * 8;\n const part = parseInt(traceId.slice(pos, pos + 8), 16);\n accumulation = (accumulation ^ part) >>> 0;\n }\n return accumulation;\n }\n}\n//# sourceMappingURL=TraceIdRatioBasedSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\nimport { getNumberFromEnv, getStringFromEnv } from '@opentelemetry/core';\nimport { AlwaysOffSampler } from './sampler/AlwaysOffSampler';\nimport { AlwaysOnSampler } from './sampler/AlwaysOnSampler';\nimport { ParentBasedSampler } from './sampler/ParentBasedSampler';\nimport { TraceIdRatioBasedSampler } from './sampler/TraceIdRatioBasedSampler';\nconst DEFAULT_RATIO = 1;\n/**\n * Load default configuration. For fields with primitive values, any user-provided\n * value will override the corresponding default value. For fields with\n * non-primitive values (like `spanLimits`), the user-provided value will be\n * used to extend the default value.\n */\n// object needs to be wrapped in this function and called when needed otherwise\n// envs are parsed before tests are ran - causes tests using these envs to fail\nexport function loadDefaultConfig() {\n return {\n sampler: buildSamplerFromEnv(),\n forceFlushTimeoutMillis: 30000,\n generalLimits: {\n attributeValueLengthLimit: getNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT') ?? Infinity,\n attributeCountLimit: getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT') ?? 128,\n },\n spanLimits: {\n attributeValueLengthLimit: getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT') ?? Infinity,\n attributeCountLimit: getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT') ?? 128,\n linkCountLimit: getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT') ?? 128,\n eventCountLimit: getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT') ?? 128,\n attributePerEventCountLimit: getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT') ?? 128,\n attributePerLinkCountLimit: getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT') ?? 128,\n },\n };\n}\n/**\n * Based on environment, builds a sampler, complies with specification.\n */\nexport function buildSamplerFromEnv() {\n const sampler = getStringFromEnv('OTEL_TRACES_SAMPLER') ??\n \"parentbased_always_on\" /* TracesSamplerValues.ParentBasedAlwaysOn */;\n switch (sampler) {\n case \"always_on\" /* TracesSamplerValues.AlwaysOn */:\n return new AlwaysOnSampler();\n case \"always_off\" /* TracesSamplerValues.AlwaysOff */:\n return new AlwaysOffSampler();\n case \"parentbased_always_on\" /* TracesSamplerValues.ParentBasedAlwaysOn */:\n return new ParentBasedSampler({\n root: new AlwaysOnSampler(),\n });\n case \"parentbased_always_off\" /* TracesSamplerValues.ParentBasedAlwaysOff */:\n return new ParentBasedSampler({\n root: new AlwaysOffSampler(),\n });\n case \"traceidratio\" /* TracesSamplerValues.TraceIdRatio */:\n return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv());\n case \"parentbased_traceidratio\" /* TracesSamplerValues.ParentBasedTraceIdRatio */:\n return new ParentBasedSampler({\n root: new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv()),\n });\n default:\n diag.error(`OTEL_TRACES_SAMPLER value \"${sampler}\" invalid, defaulting to \"${\"parentbased_always_on\" /* TracesSamplerValues.ParentBasedAlwaysOn */}\".`);\n return new ParentBasedSampler({\n root: new AlwaysOnSampler(),\n });\n }\n}\nfunction getSamplerProbabilityFromEnv() {\n const probability = getNumberFromEnv('OTEL_TRACES_SAMPLER_ARG');\n if (probability == null) {\n diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${DEFAULT_RATIO}.`);\n return DEFAULT_RATIO;\n }\n if (probability < 0 || probability > 1) {\n diag.error(`OTEL_TRACES_SAMPLER_ARG=${probability} was given, but it is out of range ([0..1]), defaulting to ${DEFAULT_RATIO}.`);\n return DEFAULT_RATIO;\n }\n return probability;\n}\n//# sourceMappingURL=config.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { buildSamplerFromEnv, loadDefaultConfig } from './config';\nimport { getNumberFromEnv } from '@opentelemetry/core';\nexport const DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128;\nexport const DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;\n/**\n * Function to merge Default configuration (as specified in './config') with\n * user provided configurations.\n */\nexport function mergeConfig(userConfig) {\n const perInstanceDefaults = {\n sampler: buildSamplerFromEnv(),\n };\n const DEFAULT_CONFIG = loadDefaultConfig();\n const target = Object.assign({}, DEFAULT_CONFIG, perInstanceDefaults, userConfig);\n target.generalLimits = Object.assign({}, DEFAULT_CONFIG.generalLimits, userConfig.generalLimits || {});\n target.spanLimits = Object.assign({}, DEFAULT_CONFIG.spanLimits, userConfig.spanLimits || {});\n return target;\n}\n/**\n * When general limits are provided and model specific limits are not,\n * configures the model specific limits by using the values from the general ones.\n * @param userConfig User provided tracer configuration\n */\nexport function reconfigureLimits(userConfig) {\n const spanLimits = Object.assign({}, userConfig.spanLimits);\n /**\n * Reassign span attribute count limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeCountLimit =\n userConfig.spanLimits?.attributeCountLimit ??\n userConfig.generalLimits?.attributeCountLimit ??\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT') ??\n getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT') ??\n DEFAULT_ATTRIBUTE_COUNT_LIMIT;\n /**\n * Reassign span attribute value length limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeValueLengthLimit =\n userConfig.spanLimits?.attributeValueLengthLimit ??\n userConfig.generalLimits?.attributeValueLengthLimit ??\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT') ??\n getNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT') ??\n DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT;\n return Object.assign({}, userConfig, { spanLimits });\n}\n//# sourceMappingURL=utility.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst SPAN_ID_BYTES = 8;\nconst TRACE_ID_BYTES = 16;\nexport class RandomIdGenerator {\n /**\n * Returns a random 16-byte trace ID formatted/encoded as a 32 lowercase hex\n * characters corresponding to 128 bits.\n */\n generateTraceId = getIdGenerator(TRACE_ID_BYTES);\n /**\n * Returns a random 8-byte span ID formatted/encoded as a 16 lowercase hex\n * characters corresponding to 64 bits.\n */\n generateSpanId = getIdGenerator(SPAN_ID_BYTES);\n}\nconst SHARED_CHAR_CODES_ARRAY = Array(32);\nfunction getIdGenerator(bytes) {\n return function generateId() {\n for (let i = 0; i < bytes * 2; i++) {\n SHARED_CHAR_CODES_ARRAY[i] = Math.floor(Math.random() * 16) + 48;\n // valid hex characters in the range 48-57 and 97-102\n if (SHARED_CHAR_CODES_ARRAY[i] >= 58) {\n SHARED_CHAR_CODES_ARRAY[i] += 39;\n }\n }\n return String.fromCharCode.apply(null, SHARED_CHAR_CODES_ARRAY.slice(0, bytes * 2));\n };\n}\n//# sourceMappingURL=RandomIdGenerator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as api from '@opentelemetry/api';\nimport { sanitizeAttributes, isTracingSuppressed, } from '@opentelemetry/core';\nimport { SpanImpl } from './Span';\nimport { mergeConfig } from './utility';\nimport { RandomIdGenerator } from './platform';\n/**\n * This class represents a basic tracer.\n */\nexport class Tracer {\n _sampler;\n _generalLimits;\n _spanLimits;\n _idGenerator;\n instrumentationScope;\n _resource;\n _spanProcessor;\n /**\n * Constructs a new Tracer instance.\n */\n constructor(instrumentationScope, config, resource, spanProcessor) {\n const localConfig = mergeConfig(config);\n this._sampler = localConfig.sampler;\n this._generalLimits = localConfig.generalLimits;\n this._spanLimits = localConfig.spanLimits;\n this._idGenerator = config.idGenerator || new RandomIdGenerator();\n this._resource = resource;\n this._spanProcessor = spanProcessor;\n this.instrumentationScope = instrumentationScope;\n }\n /**\n * Starts a new Span or returns the default NoopSpan based on the sampling\n * decision.\n */\n startSpan(name, options = {}, context = api.context.active()) {\n // remove span from context in case a root span is requested via options\n if (options.root) {\n context = api.trace.deleteSpan(context);\n }\n const parentSpan = api.trace.getSpan(context);\n if (isTracingSuppressed(context)) {\n api.diag.debug('Instrumentation suppressed, returning Noop Span');\n const nonRecordingSpan = api.trace.wrapSpanContext(api.INVALID_SPAN_CONTEXT);\n return nonRecordingSpan;\n }\n const parentSpanContext = parentSpan?.spanContext();\n const spanId = this._idGenerator.generateSpanId();\n let validParentSpanContext;\n let traceId;\n let traceState;\n if (!parentSpanContext ||\n !api.trace.isSpanContextValid(parentSpanContext)) {\n // New root span.\n traceId = this._idGenerator.generateTraceId();\n }\n else {\n // New child span.\n traceId = parentSpanContext.traceId;\n traceState = parentSpanContext.traceState;\n validParentSpanContext = parentSpanContext;\n }\n const spanKind = options.kind ?? api.SpanKind.INTERNAL;\n const links = (options.links ?? []).map(link => {\n return {\n context: link.context,\n attributes: sanitizeAttributes(link.attributes),\n };\n });\n const attributes = sanitizeAttributes(options.attributes);\n // make sampling decision\n const samplingResult = this._sampler.shouldSample(context, traceId, name, spanKind, attributes, links);\n traceState = samplingResult.traceState ?? traceState;\n const traceFlags = samplingResult.decision === api.SamplingDecision.RECORD_AND_SAMPLED\n ? api.TraceFlags.SAMPLED\n : api.TraceFlags.NONE;\n const spanContext = { traceId, spanId, traceFlags, traceState };\n if (samplingResult.decision === api.SamplingDecision.NOT_RECORD) {\n api.diag.debug('Recording is off, propagating context in a non-recording span');\n const nonRecordingSpan = api.trace.wrapSpanContext(spanContext);\n return nonRecordingSpan;\n }\n // Set initial span attributes. The attributes object may have been mutated\n // by the sampler, so we sanitize the merged attributes before setting them.\n const initAttributes = sanitizeAttributes(Object.assign(attributes, samplingResult.attributes));\n const span = new SpanImpl({\n resource: this._resource,\n scope: this.instrumentationScope,\n context,\n spanContext,\n name,\n kind: spanKind,\n links,\n parentSpanContext: validParentSpanContext,\n attributes: initAttributes,\n startTime: options.startTime,\n spanProcessor: this._spanProcessor,\n spanLimits: this._spanLimits,\n });\n return span;\n }\n startActiveSpan(name, arg2, arg3, arg4) {\n let opts;\n let ctx;\n let fn;\n if (arguments.length < 2) {\n return;\n }\n else if (arguments.length === 2) {\n fn = arg2;\n }\n else if (arguments.length === 3) {\n opts = arg2;\n fn = arg3;\n }\n else {\n opts = arg2;\n ctx = arg3;\n fn = arg4;\n }\n const parentContext = ctx ?? api.context.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = api.trace.setSpan(parentContext, span);\n return api.context.with(contextWithSpanSet, fn, undefined, span);\n }\n /** Returns the active {@link GeneralLimits}. */\n getGeneralLimits() {\n return this._generalLimits;\n }\n /** Returns the active {@link SpanLimits}. */\n getSpanLimits() {\n return this._spanLimits;\n }\n}\n//# sourceMappingURL=Tracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { globalErrorHandler } from '@opentelemetry/core';\n/**\n * Implementation of the {@link SpanProcessor} that simply forwards all\n * received events to a list of {@link SpanProcessor}s.\n */\nexport class MultiSpanProcessor {\n _spanProcessors;\n constructor(_spanProcessors) {\n this._spanProcessors = _spanProcessors;\n }\n forceFlush() {\n const promises = [];\n for (const spanProcessor of this._spanProcessors) {\n promises.push(spanProcessor.forceFlush());\n }\n return new Promise(resolve => {\n Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(error => {\n globalErrorHandler(error || new Error('MultiSpanProcessor: forceFlush failed'));\n resolve();\n });\n });\n }\n onStart(span, context) {\n for (const spanProcessor of this._spanProcessors) {\n spanProcessor.onStart(span, context);\n }\n }\n onEnd(span) {\n for (const spanProcessor of this._spanProcessors) {\n spanProcessor.onEnd(span);\n }\n }\n shutdown() {\n const promises = [];\n for (const spanProcessor of this._spanProcessors) {\n promises.push(spanProcessor.shutdown());\n }\n return new Promise((resolve, reject) => {\n Promise.all(promises).then(() => {\n resolve();\n }, reject);\n });\n }\n}\n//# sourceMappingURL=MultiSpanProcessor.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { merge } from '@opentelemetry/core';\nimport { defaultResource } from '@opentelemetry/resources';\nimport { Tracer } from './Tracer';\nimport { loadDefaultConfig } from './config';\nimport { MultiSpanProcessor } from './MultiSpanProcessor';\nimport { reconfigureLimits } from './utility';\nexport var ForceFlushState;\n(function (ForceFlushState) {\n ForceFlushState[ForceFlushState[\"resolved\"] = 0] = \"resolved\";\n ForceFlushState[ForceFlushState[\"timeout\"] = 1] = \"timeout\";\n ForceFlushState[ForceFlushState[\"error\"] = 2] = \"error\";\n ForceFlushState[ForceFlushState[\"unresolved\"] = 3] = \"unresolved\";\n})(ForceFlushState || (ForceFlushState = {}));\n/**\n * This class represents a basic tracer provider which platform libraries can extend\n */\nexport class BasicTracerProvider {\n _config;\n _tracers = new Map();\n _resource;\n _activeSpanProcessor;\n constructor(config = {}) {\n const mergedConfig = merge({}, loadDefaultConfig(), reconfigureLimits(config));\n this._resource = mergedConfig.resource ?? defaultResource();\n this._config = Object.assign({}, mergedConfig, {\n resource: this._resource,\n });\n const spanProcessors = [];\n if (config.spanProcessors?.length) {\n spanProcessors.push(...config.spanProcessors);\n }\n this._activeSpanProcessor = new MultiSpanProcessor(spanProcessors);\n }\n getTracer(name, version, options) {\n const key = `${name}@${version || ''}:${options?.schemaUrl || ''}`;\n if (!this._tracers.has(key)) {\n this._tracers.set(key, new Tracer({ name, version, schemaUrl: options?.schemaUrl }, this._config, this._resource, this._activeSpanProcessor));\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._tracers.get(key);\n }\n forceFlush() {\n const timeout = this._config.forceFlushTimeoutMillis;\n const promises = this._activeSpanProcessor['_spanProcessors'].map((spanProcessor) => {\n return new Promise(resolve => {\n let state;\n const timeoutInterval = setTimeout(() => {\n resolve(new Error(`Span processor did not completed within timeout period of ${timeout} ms`));\n state = ForceFlushState.timeout;\n }, timeout);\n spanProcessor\n .forceFlush()\n .then(() => {\n clearTimeout(timeoutInterval);\n if (state !== ForceFlushState.timeout) {\n state = ForceFlushState.resolved;\n resolve(state);\n }\n })\n .catch(error => {\n clearTimeout(timeoutInterval);\n state = ForceFlushState.error;\n resolve(error);\n });\n });\n });\n return new Promise((resolve, reject) => {\n Promise.all(promises)\n .then(results => {\n const errors = results.filter(result => result !== ForceFlushState.resolved);\n if (errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n })\n .catch(error => reject([error]));\n });\n }\n shutdown() {\n return this._activeSpanProcessor.shutdown();\n }\n}\n//# sourceMappingURL=BasicTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ROOT_CONTEXT } from '@opentelemetry/api';\n/**\n * Stack Context Manager for managing the state in web\n * it doesn't fully support the async calls though\n */\nexport class StackContextManager {\n /**\n * whether the context manager is enabled or not\n */\n _enabled = false;\n /**\n * Keeps the reference to current context\n */\n _currentContext = ROOT_CONTEXT;\n /**\n *\n * @param context\n * @param target Function to be executed within the context\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n _bindFunction(context = ROOT_CONTEXT, target) {\n const manager = this;\n const contextWrapper = function (...args) {\n return manager.with(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n return contextWrapper;\n }\n /**\n * Returns the active context\n */\n active() {\n return this._currentContext;\n }\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n bind(context, target) {\n // if no specific context to propagate is given, we use the current one\n if (context === undefined) {\n context = this.active();\n }\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n }\n /**\n * Disable the context manager (clears the current context)\n */\n disable() {\n this._currentContext = ROOT_CONTEXT;\n this._enabled = false;\n return this;\n }\n /**\n * Enables the context manager and creates a default(root) context\n */\n enable() {\n if (this._enabled) {\n return this;\n }\n this._enabled = true;\n this._currentContext = ROOT_CONTEXT;\n return this;\n }\n /**\n * Calls the callback function [fn] with the provided [context]. If [context] is undefined then it will use the window.\n * The context will be set as active\n * @param context\n * @param fn Callback function\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n with(context, fn, thisArg, ...args) {\n const previousContext = this._currentContext;\n this._currentContext = context || ROOT_CONTEXT;\n try {\n return fn.call(thisArg, ...args);\n }\n finally {\n this._currentContext = previousContext;\n }\n }\n}\n//# sourceMappingURL=StackContextManager.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { BasicTracerProvider, } from '@opentelemetry/sdk-trace-base';\nimport { StackContextManager } from './StackContextManager';\nimport { trace, context, propagation, } from '@opentelemetry/api';\nimport { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator, } from '@opentelemetry/core';\nfunction setupContextManager(contextManager) {\n // null means 'do not register'\n if (contextManager === null) {\n return;\n }\n // undefined means 'register default'\n if (contextManager === undefined) {\n const defaultContextManager = new StackContextManager();\n defaultContextManager.enable();\n context.setGlobalContextManager(defaultContextManager);\n return;\n }\n contextManager.enable();\n context.setGlobalContextManager(contextManager);\n}\nfunction setupPropagator(propagator) {\n // null means 'do not register'\n if (propagator === null) {\n return;\n }\n // undefined means 'register default'\n if (propagator === undefined) {\n propagation.setGlobalPropagator(new CompositePropagator({\n propagators: [\n new W3CTraceContextPropagator(),\n new W3CBaggagePropagator(),\n ],\n }));\n return;\n }\n propagation.setGlobalPropagator(propagator);\n}\n/**\n * This class represents a web tracer with {@link StackContextManager}\n */\nexport class WebTracerProvider extends BasicTracerProvider {\n /**\n * Constructs a new Tracer instance.\n * @param config Web Tracer config\n */\n constructor(config = {}) {\n super(config);\n }\n /**\n * Register this TracerProvider for use with the OpenTelemetry API.\n * Undefined values may be replaced with defaults, and\n * null values will be skipped.\n *\n * @param config Configuration object for SDK registration\n */\n register(config = {}) {\n trace.setGlobalTracerProvider(this);\n setupPropagator(config.propagator);\n setupContextManager(config.contextManager);\n }\n}\n//# sourceMappingURL=WebTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { context, diag, TraceFlags } from '@opentelemetry/api';\nimport { BindOnceFuture, ExportResultCode, getNumberFromEnv, globalErrorHandler, suppressTracing, unrefTimer, } from '@opentelemetry/core';\n/**\n * Implementation of the {@link SpanProcessor} that batches spans exported by\n * the SDK then pushes them to the exporter pipeline.\n */\nexport class BatchSpanProcessorBase {\n _exporter;\n _maxExportBatchSize;\n _maxQueueSize;\n _scheduledDelayMillis;\n _exportTimeoutMillis;\n _isExporting = false;\n _finishedSpans = [];\n _timer;\n _shutdownOnce;\n _droppedSpansCount = 0;\n constructor(_exporter, config) {\n this._exporter = _exporter;\n this._maxExportBatchSize =\n typeof config?.maxExportBatchSize === 'number'\n ? config.maxExportBatchSize\n : (getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512);\n this._maxQueueSize =\n typeof config?.maxQueueSize === 'number'\n ? config.maxQueueSize\n : (getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048);\n this._scheduledDelayMillis =\n typeof config?.scheduledDelayMillis === 'number'\n ? config.scheduledDelayMillis\n : (getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000);\n this._exportTimeoutMillis =\n typeof config?.exportTimeoutMillis === 'number'\n ? config.exportTimeoutMillis\n : (getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000);\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n if (this._maxExportBatchSize > this._maxQueueSize) {\n diag.warn('BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize');\n this._maxExportBatchSize = this._maxQueueSize;\n }\n }\n forceFlush() {\n if (this._shutdownOnce.isCalled) {\n return this._shutdownOnce.promise;\n }\n return this._flushAll();\n }\n // does nothing.\n onStart(_span, _parentContext) { }\n onEnd(span) {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {\n return;\n }\n this._addToBuffer(span);\n }\n shutdown() {\n return this._shutdownOnce.call();\n }\n _shutdown() {\n return Promise.resolve()\n .then(() => {\n return this.onShutdown();\n })\n .then(() => {\n return this._flushAll();\n })\n .then(() => {\n return this._exporter.shutdown();\n });\n }\n /** Add a span in the buffer. */\n _addToBuffer(span) {\n if (this._finishedSpans.length >= this._maxQueueSize) {\n // limit reached, drop span\n if (this._droppedSpansCount === 0) {\n diag.debug('maxQueueSize reached, dropping spans');\n }\n this._droppedSpansCount++;\n return;\n }\n if (this._droppedSpansCount > 0) {\n // some spans were dropped, log once with count of spans dropped\n diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`);\n this._droppedSpansCount = 0;\n }\n this._finishedSpans.push(span);\n this._maybeStartTimer();\n }\n /**\n * Send all spans to the exporter respecting the batch size limit\n * This function is used only on forceFlush or shutdown,\n * for all other cases _flush should be used\n * */\n _flushAll() {\n return new Promise((resolve, reject) => {\n const promises = [];\n // calculate number of batches\n const count = Math.ceil(this._finishedSpans.length / this._maxExportBatchSize);\n for (let i = 0, j = count; i < j; i++) {\n promises.push(this._flushOneBatch());\n }\n Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(reject);\n });\n }\n _flushOneBatch() {\n this._clearTimer();\n if (this._finishedSpans.length === 0) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n // don't wait anymore for export, this way the next batch can start\n reject(new Error('Timeout'));\n }, this._exportTimeoutMillis);\n // prevent downstream exporter calls from generating spans\n context.with(suppressTracing(context.active()), () => {\n // Reset the finished spans buffer here because the next invocations of the _flush method\n // could pass the same finished spans to the exporter if the buffer is cleared\n // outside the execution of this callback.\n let spans;\n if (this._finishedSpans.length <= this._maxExportBatchSize) {\n spans = this._finishedSpans;\n this._finishedSpans = [];\n }\n else {\n spans = this._finishedSpans.splice(0, this._maxExportBatchSize);\n }\n const doExport = () => this._exporter.export(spans, result => {\n clearTimeout(timer);\n if (result.code === ExportResultCode.SUCCESS) {\n resolve();\n }\n else {\n reject(result.error ??\n new Error('BatchSpanProcessor: span export failed'));\n }\n });\n let pendingResources = null;\n for (let i = 0, len = spans.length; i < len; i++) {\n const span = spans[i];\n if (span.resource.asyncAttributesPending &&\n span.resource.waitForAsyncAttributes) {\n pendingResources ??= [];\n pendingResources.push(span.resource.waitForAsyncAttributes());\n }\n }\n // Avoid scheduling a promise to make the behavior more predictable and easier to test\n if (pendingResources === null) {\n doExport();\n }\n else {\n Promise.all(pendingResources).then(doExport, err => {\n globalErrorHandler(err);\n reject(err);\n });\n }\n });\n });\n }\n _maybeStartTimer() {\n if (this._isExporting)\n return;\n const flush = () => {\n this._isExporting = true;\n this._flushOneBatch()\n .finally(() => {\n this._isExporting = false;\n if (this._finishedSpans.length > 0) {\n this._clearTimer();\n this._maybeStartTimer();\n }\n })\n .catch(e => {\n this._isExporting = false;\n globalErrorHandler(e);\n });\n };\n // we only wait if the queue doesn't have enough elements yet\n if (this._finishedSpans.length >= this._maxExportBatchSize) {\n return flush();\n }\n if (this._timer !== undefined)\n return;\n this._timer = setTimeout(() => flush(), this._scheduledDelayMillis);\n unrefTimer(this._timer);\n }\n _clearTimer() {\n if (this._timer !== undefined) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n }\n}\n//# sourceMappingURL=BatchSpanProcessorBase.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { BatchSpanProcessorBase } from '../../../export/BatchSpanProcessorBase';\nimport { globalErrorHandler } from '@opentelemetry/core';\nexport class BatchSpanProcessor extends BatchSpanProcessorBase {\n _visibilityChangeListener;\n _pageHideListener;\n constructor(_exporter, config) {\n super(_exporter, config);\n this.onInit(config);\n }\n onInit(config) {\n if (config?.disableAutoFlushOnDocumentHide !== true &&\n typeof document !== 'undefined') {\n this._visibilityChangeListener = () => {\n if (document.visibilityState === 'hidden') {\n this.forceFlush().catch(error => {\n globalErrorHandler(error);\n });\n }\n };\n this._pageHideListener = () => {\n this.forceFlush().catch(error => {\n globalErrorHandler(error);\n });\n };\n document.addEventListener('visibilitychange', this._visibilityChangeListener);\n // use 'pagehide' event as a fallback for Safari; see https://bugs.webkit.org/show_bug.cgi?id=116769\n document.addEventListener('pagehide', this._pageHideListener);\n }\n }\n onShutdown() {\n if (typeof document !== 'undefined') {\n if (this._visibilityChangeListener) {\n document.removeEventListener('visibilitychange', this._visibilityChangeListener);\n }\n if (this._pageHideListener) {\n document.removeEventListener('pagehide', this._pageHideListener);\n }\n }\n }\n}\n//# sourceMappingURL=BatchSpanProcessor.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Creates a const map from the given values\n * @param values - An array of values to be used as keys and values in the map.\n * @returns A populated version of the map with the values and keys derived from the values.\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function createConstMap(values) {\n // eslint-disable-next-line prefer-const, @typescript-eslint/no-explicit-any\n let res = {};\n const len = values.length;\n for (let lp = 0; lp < len; lp++) {\n const val = values[lp];\n if (val) {\n res[String(val).toUpperCase().replace(/[-.]/g, '_')] = val;\n }\n }\n return res;\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createConstMap } from '../internal/utils';\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates//templates/SemanticAttributes.ts.j2\n//----------------------------------------------------------------------------------------------------------\n//----------------------------------------------------------------------------------------------------------\n// Constant values for SemanticResourceAttributes\n//----------------------------------------------------------------------------------------------------------\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_CLOUD_PROVIDER = 'cloud.provider';\nconst TMP_CLOUD_ACCOUNT_ID = 'cloud.account.id';\nconst TMP_CLOUD_REGION = 'cloud.region';\nconst TMP_CLOUD_AVAILABILITY_ZONE = 'cloud.availability_zone';\nconst TMP_CLOUD_PLATFORM = 'cloud.platform';\nconst TMP_AWS_ECS_CONTAINER_ARN = 'aws.ecs.container.arn';\nconst TMP_AWS_ECS_CLUSTER_ARN = 'aws.ecs.cluster.arn';\nconst TMP_AWS_ECS_LAUNCHTYPE = 'aws.ecs.launchtype';\nconst TMP_AWS_ECS_TASK_ARN = 'aws.ecs.task.arn';\nconst TMP_AWS_ECS_TASK_FAMILY = 'aws.ecs.task.family';\nconst TMP_AWS_ECS_TASK_REVISION = 'aws.ecs.task.revision';\nconst TMP_AWS_EKS_CLUSTER_ARN = 'aws.eks.cluster.arn';\nconst TMP_AWS_LOG_GROUP_NAMES = 'aws.log.group.names';\nconst TMP_AWS_LOG_GROUP_ARNS = 'aws.log.group.arns';\nconst TMP_AWS_LOG_STREAM_NAMES = 'aws.log.stream.names';\nconst TMP_AWS_LOG_STREAM_ARNS = 'aws.log.stream.arns';\nconst TMP_CONTAINER_NAME = 'container.name';\nconst TMP_CONTAINER_ID = 'container.id';\nconst TMP_CONTAINER_RUNTIME = 'container.runtime';\nconst TMP_CONTAINER_IMAGE_NAME = 'container.image.name';\nconst TMP_CONTAINER_IMAGE_TAG = 'container.image.tag';\nconst TMP_DEPLOYMENT_ENVIRONMENT = 'deployment.environment';\nconst TMP_DEVICE_ID = 'device.id';\nconst TMP_DEVICE_MODEL_IDENTIFIER = 'device.model.identifier';\nconst TMP_DEVICE_MODEL_NAME = 'device.model.name';\nconst TMP_FAAS_NAME = 'faas.name';\nconst TMP_FAAS_ID = 'faas.id';\nconst TMP_FAAS_VERSION = 'faas.version';\nconst TMP_FAAS_INSTANCE = 'faas.instance';\nconst TMP_FAAS_MAX_MEMORY = 'faas.max_memory';\nconst TMP_HOST_ID = 'host.id';\nconst TMP_HOST_NAME = 'host.name';\nconst TMP_HOST_TYPE = 'host.type';\nconst TMP_HOST_ARCH = 'host.arch';\nconst TMP_HOST_IMAGE_NAME = 'host.image.name';\nconst TMP_HOST_IMAGE_ID = 'host.image.id';\nconst TMP_HOST_IMAGE_VERSION = 'host.image.version';\nconst TMP_K8S_CLUSTER_NAME = 'k8s.cluster.name';\nconst TMP_K8S_NODE_NAME = 'k8s.node.name';\nconst TMP_K8S_NODE_UID = 'k8s.node.uid';\nconst TMP_K8S_NAMESPACE_NAME = 'k8s.namespace.name';\nconst TMP_K8S_POD_UID = 'k8s.pod.uid';\nconst TMP_K8S_POD_NAME = 'k8s.pod.name';\nconst TMP_K8S_CONTAINER_NAME = 'k8s.container.name';\nconst TMP_K8S_REPLICASET_UID = 'k8s.replicaset.uid';\nconst TMP_K8S_REPLICASET_NAME = 'k8s.replicaset.name';\nconst TMP_K8S_DEPLOYMENT_UID = 'k8s.deployment.uid';\nconst TMP_K8S_DEPLOYMENT_NAME = 'k8s.deployment.name';\nconst TMP_K8S_STATEFULSET_UID = 'k8s.statefulset.uid';\nconst TMP_K8S_STATEFULSET_NAME = 'k8s.statefulset.name';\nconst TMP_K8S_DAEMONSET_UID = 'k8s.daemonset.uid';\nconst TMP_K8S_DAEMONSET_NAME = 'k8s.daemonset.name';\nconst TMP_K8S_JOB_UID = 'k8s.job.uid';\nconst TMP_K8S_JOB_NAME = 'k8s.job.name';\nconst TMP_K8S_CRONJOB_UID = 'k8s.cronjob.uid';\nconst TMP_K8S_CRONJOB_NAME = 'k8s.cronjob.name';\nconst TMP_OS_TYPE = 'os.type';\nconst TMP_OS_DESCRIPTION = 'os.description';\nconst TMP_OS_NAME = 'os.name';\nconst TMP_OS_VERSION = 'os.version';\nconst TMP_PROCESS_PID = 'process.pid';\nconst TMP_PROCESS_EXECUTABLE_NAME = 'process.executable.name';\nconst TMP_PROCESS_EXECUTABLE_PATH = 'process.executable.path';\nconst TMP_PROCESS_COMMAND = 'process.command';\nconst TMP_PROCESS_COMMAND_LINE = 'process.command_line';\nconst TMP_PROCESS_COMMAND_ARGS = 'process.command_args';\nconst TMP_PROCESS_OWNER = 'process.owner';\nconst TMP_PROCESS_RUNTIME_NAME = 'process.runtime.name';\nconst TMP_PROCESS_RUNTIME_VERSION = 'process.runtime.version';\nconst TMP_PROCESS_RUNTIME_DESCRIPTION = 'process.runtime.description';\nconst TMP_SERVICE_NAME = 'service.name';\nconst TMP_SERVICE_NAMESPACE = 'service.namespace';\nconst TMP_SERVICE_INSTANCE_ID = 'service.instance.id';\nconst TMP_SERVICE_VERSION = 'service.version';\nconst TMP_TELEMETRY_SDK_NAME = 'telemetry.sdk.name';\nconst TMP_TELEMETRY_SDK_LANGUAGE = 'telemetry.sdk.language';\nconst TMP_TELEMETRY_SDK_VERSION = 'telemetry.sdk.version';\nconst TMP_TELEMETRY_AUTO_VERSION = 'telemetry.auto.version';\nconst TMP_WEBENGINE_NAME = 'webengine.name';\nconst TMP_WEBENGINE_VERSION = 'webengine.version';\nconst TMP_WEBENGINE_DESCRIPTION = 'webengine.description';\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use ATTR_CLOUD_PROVIDER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_PROVIDER = TMP_CLOUD_PROVIDER;\n/**\n * The cloud account ID the resource is assigned to.\n *\n * @deprecated Use ATTR_CLOUD_ACCOUNT_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_ACCOUNT_ID = TMP_CLOUD_ACCOUNT_ID;\n/**\n * The geographical region the resource is running. Refer to your provider's docs to see the available regions, for example [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [Azure regions](https://azure.microsoft.com/en-us/global-infrastructure/geographies/), or [Google Cloud regions](https://cloud.google.com/about/locations).\n *\n * @deprecated Use ATTR_CLOUD_REGION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_REGION = TMP_CLOUD_REGION;\n/**\n * Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.\n *\n * Note: Availability zones are called "zones" on Alibaba Cloud and Google Cloud.\n *\n * @deprecated Use ATTR_CLOUD_AVAILABILITY_ZONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_AVAILABILITY_ZONE = TMP_CLOUD_AVAILABILITY_ZONE;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use ATTR_CLOUD_PLATFORM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_PLATFORM = TMP_CLOUD_PLATFORM;\n/**\n * The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\n *\n * @deprecated Use ATTR_AWS_ECS_CONTAINER_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_CONTAINER_ARN = TMP_AWS_ECS_CONTAINER_ARN;\n/**\n * The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\n *\n * @deprecated Use ATTR_AWS_ECS_CLUSTER_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_CLUSTER_ARN = TMP_AWS_ECS_CLUSTER_ARN;\n/**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n *\n * @deprecated Use ATTR_AWS_ECS_LAUNCHTYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_LAUNCHTYPE = TMP_AWS_ECS_LAUNCHTYPE;\n/**\n * The ARN of an [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\n *\n * @deprecated Use ATTR_AWS_ECS_TASK_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_TASK_ARN = TMP_AWS_ECS_TASK_ARN;\n/**\n * The task definition family this task definition is a member of.\n *\n * @deprecated Use ATTR_AWS_ECS_TASK_FAMILY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_TASK_FAMILY = TMP_AWS_ECS_TASK_FAMILY;\n/**\n * The revision for this task definition.\n *\n * @deprecated Use ATTR_AWS_ECS_TASK_REVISION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_TASK_REVISION = TMP_AWS_ECS_TASK_REVISION;\n/**\n * The ARN of an EKS cluster.\n *\n * @deprecated Use ATTR_AWS_EKS_CLUSTER_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_EKS_CLUSTER_ARN = TMP_AWS_EKS_CLUSTER_ARN;\n/**\n * The name(s) of the AWS log group(s) an application is writing to.\n *\n * Note: Multiple log groups must be supported for cases like multi-container applications, where a single application has sidecar containers, and each write to their own log group.\n *\n * @deprecated Use ATTR_AWS_LOG_GROUP_NAMES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_GROUP_NAMES = TMP_AWS_LOG_GROUP_NAMES;\n/**\n * The Amazon Resource Name(s) (ARN) of the AWS log group(s).\n *\n * Note: See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n *\n * @deprecated Use ATTR_AWS_LOG_GROUP_ARNS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_GROUP_ARNS = TMP_AWS_LOG_GROUP_ARNS;\n/**\n * The name(s) of the AWS log stream(s) an application is writing to.\n *\n * @deprecated Use ATTR_AWS_LOG_STREAM_NAMES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_STREAM_NAMES = TMP_AWS_LOG_STREAM_NAMES;\n/**\n * The ARN(s) of the AWS log stream(s).\n *\n * Note: See the [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream.\n *\n * @deprecated Use ATTR_AWS_LOG_STREAM_ARNS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_STREAM_ARNS = TMP_AWS_LOG_STREAM_ARNS;\n/**\n * Container name.\n *\n * @deprecated Use ATTR_CONTAINER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_NAME = TMP_CONTAINER_NAME;\n/**\n * Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/reference/run/#container-identification). The UUID might be abbreviated.\n *\n * @deprecated Use ATTR_CONTAINER_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_ID = TMP_CONTAINER_ID;\n/**\n * The container runtime managing this container.\n *\n * @deprecated Use ATTR_CONTAINER_RUNTIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_RUNTIME = TMP_CONTAINER_RUNTIME;\n/**\n * Name of the image the container was built on.\n *\n * @deprecated Use ATTR_CONTAINER_IMAGE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_IMAGE_NAME = TMP_CONTAINER_IMAGE_NAME;\n/**\n * Container image tag.\n *\n * @deprecated Use ATTR_CONTAINER_IMAGE_TAGS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_IMAGE_TAG = TMP_CONTAINER_IMAGE_TAG;\n/**\n * Name of the [deployment environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka deployment tier).\n *\n * @deprecated Use ATTR_DEPLOYMENT_ENVIRONMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEPLOYMENT_ENVIRONMENT = TMP_DEPLOYMENT_ENVIRONMENT;\n/**\n * A unique identifier representing the device.\n *\n * Note: The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence.\n *\n * @deprecated Use ATTR_DEVICE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEVICE_ID = TMP_DEVICE_ID;\n/**\n * The model identifier for the device.\n *\n * Note: It's recommended this value represents a machine readable version of the model identifier rather than the market or consumer-friendly name of the device.\n *\n * @deprecated Use ATTR_DEVICE_MODEL_IDENTIFIER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEVICE_MODEL_IDENTIFIER = TMP_DEVICE_MODEL_IDENTIFIER;\n/**\n * The marketing name for the device model.\n *\n * Note: It's recommended this value represents a human readable version of the device model rather than a machine readable alternative.\n *\n * @deprecated Use ATTR_DEVICE_MODEL_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEVICE_MODEL_NAME = TMP_DEVICE_MODEL_NAME;\n/**\n * The name of the single function that this runtime instance executes.\n *\n * Note: This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback function (which may be stored in the [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-general.md#source-code-attributes) span attributes).\n *\n * @deprecated Use ATTR_FAAS_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_FAAS_NAME = TMP_FAAS_NAME;\n/**\n* The unique ID of the single function that this runtime instance executes.\n*\n* Note: Depending on the cloud provider, use:\n\n* **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).\nTake care not to use the "invoked ARN" directly but replace any\n[alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple\ndifferent aliases.\n* **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)\n* **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id).\n\nOn some providers, it may not be possible to determine the full ID at startup,\nwhich is why this field cannot be made required. For example, on AWS the account ID\npart of the ARN is not available without calling another AWS API\nwhich may be deemed too slow for a short-running lambda function.\nAs an alternative, consider setting `faas.id` as a span attribute instead.\n*\n* @deprecated Use ATTR_CLOUD_RESOURCE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n*/\nexport const SEMRESATTRS_FAAS_ID = TMP_FAAS_ID;\n/**\n* The immutable version of the function being executed.\n*\n* Note: Depending on the cloud provider and platform, use:\n\n* **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)\n (an integer represented as a decimal string).\n* **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions)\n (i.e., the function name plus the revision suffix).\n* **Google Cloud Functions:** The value of the\n [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).\n* **Azure Functions:** Not applicable. Do not set this attribute.\n*\n* @deprecated Use ATTR_FAAS_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n*/\nexport const SEMRESATTRS_FAAS_VERSION = TMP_FAAS_VERSION;\n/**\n * The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.\n *\n * Note: * **AWS Lambda:** Use the (full) log stream name.\n *\n * @deprecated Use ATTR_FAAS_INSTANCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_FAAS_INSTANCE = TMP_FAAS_INSTANCE;\n/**\n * The amount of memory available to the serverless function in MiB.\n *\n * Note: It's recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information.\n *\n * @deprecated Use ATTR_FAAS_MAX_MEMORY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_FAAS_MAX_MEMORY = TMP_FAAS_MAX_MEMORY;\n/**\n * Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider.\n *\n * @deprecated Use ATTR_HOST_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_ID = TMP_HOST_ID;\n/**\n * Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.\n *\n * @deprecated Use ATTR_HOST_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_NAME = TMP_HOST_NAME;\n/**\n * Type of host. For Cloud, this must be the machine type.\n *\n * @deprecated Use ATTR_HOST_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_TYPE = TMP_HOST_TYPE;\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use ATTR_HOST_ARCH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_ARCH = TMP_HOST_ARCH;\n/**\n * Name of the VM image or OS install the host was instantiated from.\n *\n * @deprecated Use ATTR_HOST_IMAGE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_IMAGE_NAME = TMP_HOST_IMAGE_NAME;\n/**\n * VM image ID. For Cloud, this value is from the provider.\n *\n * @deprecated Use ATTR_HOST_IMAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_IMAGE_ID = TMP_HOST_IMAGE_ID;\n/**\n * The version string of the VM image as defined in [Version Attributes](README.md#version-attributes).\n *\n * @deprecated Use ATTR_HOST_IMAGE_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_IMAGE_VERSION = TMP_HOST_IMAGE_VERSION;\n/**\n * The name of the cluster.\n *\n * @deprecated Use ATTR_K8S_CLUSTER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CLUSTER_NAME = TMP_K8S_CLUSTER_NAME;\n/**\n * The name of the Node.\n *\n * @deprecated Use ATTR_K8S_NODE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_NODE_NAME = TMP_K8S_NODE_NAME;\n/**\n * The UID of the Node.\n *\n * @deprecated Use ATTR_K8S_NODE_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_NODE_UID = TMP_K8S_NODE_UID;\n/**\n * The name of the namespace that the pod is running in.\n *\n * @deprecated Use ATTR_K8S_NAMESPACE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_NAMESPACE_NAME = TMP_K8S_NAMESPACE_NAME;\n/**\n * The UID of the Pod.\n *\n * @deprecated Use ATTR_K8S_POD_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_POD_UID = TMP_K8S_POD_UID;\n/**\n * The name of the Pod.\n *\n * @deprecated Use ATTR_K8S_POD_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_POD_NAME = TMP_K8S_POD_NAME;\n/**\n * The name of the Container in a Pod template.\n *\n * @deprecated Use ATTR_K8S_CONTAINER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CONTAINER_NAME = TMP_K8S_CONTAINER_NAME;\n/**\n * The UID of the ReplicaSet.\n *\n * @deprecated Use ATTR_K8S_REPLICASET_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_REPLICASET_UID = TMP_K8S_REPLICASET_UID;\n/**\n * The name of the ReplicaSet.\n *\n * @deprecated Use ATTR_K8S_REPLICASET_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_REPLICASET_NAME = TMP_K8S_REPLICASET_NAME;\n/**\n * The UID of the Deployment.\n *\n * @deprecated Use ATTR_K8S_DEPLOYMENT_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DEPLOYMENT_UID = TMP_K8S_DEPLOYMENT_UID;\n/**\n * The name of the Deployment.\n *\n * @deprecated Use ATTR_K8S_DEPLOYMENT_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DEPLOYMENT_NAME = TMP_K8S_DEPLOYMENT_NAME;\n/**\n * The UID of the StatefulSet.\n *\n * @deprecated Use ATTR_K8S_STATEFULSET_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_STATEFULSET_UID = TMP_K8S_STATEFULSET_UID;\n/**\n * The name of the StatefulSet.\n *\n * @deprecated Use ATTR_K8S_STATEFULSET_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_STATEFULSET_NAME = TMP_K8S_STATEFULSET_NAME;\n/**\n * The UID of the DaemonSet.\n *\n * @deprecated Use ATTR_K8S_DAEMONSET_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DAEMONSET_UID = TMP_K8S_DAEMONSET_UID;\n/**\n * The name of the DaemonSet.\n *\n * @deprecated Use ATTR_K8S_DAEMONSET_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DAEMONSET_NAME = TMP_K8S_DAEMONSET_NAME;\n/**\n * The UID of the Job.\n *\n * @deprecated Use ATTR_K8S_JOB_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_JOB_UID = TMP_K8S_JOB_UID;\n/**\n * The name of the Job.\n *\n * @deprecated Use ATTR_K8S_JOB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_JOB_NAME = TMP_K8S_JOB_NAME;\n/**\n * The UID of the CronJob.\n *\n * @deprecated Use ATTR_K8S_CRONJOB_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CRONJOB_UID = TMP_K8S_CRONJOB_UID;\n/**\n * The name of the CronJob.\n *\n * @deprecated Use ATTR_K8S_CRONJOB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CRONJOB_NAME = TMP_K8S_CRONJOB_NAME;\n/**\n * The operating system type.\n *\n * @deprecated Use ATTR_OS_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_TYPE = TMP_OS_TYPE;\n/**\n * Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.\n *\n * @deprecated Use ATTR_OS_DESCRIPTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_DESCRIPTION = TMP_OS_DESCRIPTION;\n/**\n * Human readable operating system name.\n *\n * @deprecated Use ATTR_OS_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_NAME = TMP_OS_NAME;\n/**\n * The version string of the operating system as defined in [Version Attributes](../../resource/semantic_conventions/README.md#version-attributes).\n *\n * @deprecated Use ATTR_OS_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_VERSION = TMP_OS_VERSION;\n/**\n * Process identifier (PID).\n *\n * @deprecated Use ATTR_PROCESS_PID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_PID = TMP_PROCESS_PID;\n/**\n * The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.\n *\n * @deprecated Use ATTR_PROCESS_EXECUTABLE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_EXECUTABLE_NAME = TMP_PROCESS_EXECUTABLE_NAME;\n/**\n * The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.\n *\n * @deprecated Use ATTR_PROCESS_EXECUTABLE_PATH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_EXECUTABLE_PATH = TMP_PROCESS_EXECUTABLE_PATH;\n/**\n * The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.\n *\n * @deprecated Use ATTR_PROCESS_COMMAND in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_COMMAND = TMP_PROCESS_COMMAND;\n/**\n * The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.\n *\n * @deprecated Use ATTR_PROCESS_COMMAND_LINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_COMMAND_LINE = TMP_PROCESS_COMMAND_LINE;\n/**\n * All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.\n *\n * @deprecated Use ATTR_PROCESS_COMMAND_ARGS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_COMMAND_ARGS = TMP_PROCESS_COMMAND_ARGS;\n/**\n * The username of the user that owns the process.\n *\n * @deprecated Use ATTR_PROCESS_OWNER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_OWNER = TMP_PROCESS_OWNER;\n/**\n * The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler.\n *\n * @deprecated Use ATTR_PROCESS_RUNTIME_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_RUNTIME_NAME = TMP_PROCESS_RUNTIME_NAME;\n/**\n * The version of the runtime of this process, as returned by the runtime without modification.\n *\n * @deprecated Use ATTR_PROCESS_RUNTIME_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_RUNTIME_VERSION = TMP_PROCESS_RUNTIME_VERSION;\n/**\n * An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.\n *\n * @deprecated Use ATTR_PROCESS_RUNTIME_DESCRIPTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION = TMP_PROCESS_RUNTIME_DESCRIPTION;\n/**\n * Logical name of the service.\n *\n * Note: MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md#process), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value MUST be set to `unknown_service`.\n *\n * @deprecated Use ATTR_SERVICE_NAME.\n */\nexport const SEMRESATTRS_SERVICE_NAME = TMP_SERVICE_NAME;\n/**\n * A namespace for `service.name`.\n *\n * Note: A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. `service.name` is expected to be unique within the same namespace. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.\n *\n * @deprecated Use ATTR_SERVICE_NAMESPACE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_SERVICE_NAMESPACE = TMP_SERVICE_NAMESPACE;\n/**\n * The string ID of the service instance.\n *\n * Note: MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations).\n *\n * @deprecated Use ATTR_SERVICE_INSTANCE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_SERVICE_INSTANCE_ID = TMP_SERVICE_INSTANCE_ID;\n/**\n * The version string of the service API or implementation.\n *\n * @deprecated Use ATTR_SERVICE_VERSION.\n */\nexport const SEMRESATTRS_SERVICE_VERSION = TMP_SERVICE_VERSION;\n/**\n * The name of the telemetry SDK as defined above.\n *\n * @deprecated Use ATTR_TELEMETRY_SDK_NAME.\n */\nexport const SEMRESATTRS_TELEMETRY_SDK_NAME = TMP_TELEMETRY_SDK_NAME;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use ATTR_TELEMETRY_SDK_LANGUAGE.\n */\nexport const SEMRESATTRS_TELEMETRY_SDK_LANGUAGE = TMP_TELEMETRY_SDK_LANGUAGE;\n/**\n * The version string of the telemetry SDK.\n *\n * @deprecated Use ATTR_TELEMETRY_SDK_VERSION.\n */\nexport const SEMRESATTRS_TELEMETRY_SDK_VERSION = TMP_TELEMETRY_SDK_VERSION;\n/**\n * The version string of the auto instrumentation agent, if used.\n *\n * @deprecated Use ATTR_TELEMETRY_DISTRO_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_TELEMETRY_AUTO_VERSION = TMP_TELEMETRY_AUTO_VERSION;\n/**\n * The name of the web engine.\n *\n * @deprecated Use ATTR_WEBENGINE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_WEBENGINE_NAME = TMP_WEBENGINE_NAME;\n/**\n * The version of the web engine.\n *\n * @deprecated Use ATTR_WEBENGINE_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_WEBENGINE_VERSION = TMP_WEBENGINE_VERSION;\n/**\n * Additional description of the web engine (e.g. detailed version and edition information).\n *\n * @deprecated Use ATTR_WEBENGINE_DESCRIPTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_WEBENGINE_DESCRIPTION = TMP_WEBENGINE_DESCRIPTION;\n/**\n * Create exported Value Map for SemanticResourceAttributes values\n * @deprecated Use the SEMRESATTRS_XXXXX constants rather than the SemanticResourceAttributes.XXXXX for bundle minification\n */\nexport const SemanticResourceAttributes = \n/*#__PURE__*/ createConstMap([\n TMP_CLOUD_PROVIDER,\n TMP_CLOUD_ACCOUNT_ID,\n TMP_CLOUD_REGION,\n TMP_CLOUD_AVAILABILITY_ZONE,\n TMP_CLOUD_PLATFORM,\n TMP_AWS_ECS_CONTAINER_ARN,\n TMP_AWS_ECS_CLUSTER_ARN,\n TMP_AWS_ECS_LAUNCHTYPE,\n TMP_AWS_ECS_TASK_ARN,\n TMP_AWS_ECS_TASK_FAMILY,\n TMP_AWS_ECS_TASK_REVISION,\n TMP_AWS_EKS_CLUSTER_ARN,\n TMP_AWS_LOG_GROUP_NAMES,\n TMP_AWS_LOG_GROUP_ARNS,\n TMP_AWS_LOG_STREAM_NAMES,\n TMP_AWS_LOG_STREAM_ARNS,\n TMP_CONTAINER_NAME,\n TMP_CONTAINER_ID,\n TMP_CONTAINER_RUNTIME,\n TMP_CONTAINER_IMAGE_NAME,\n TMP_CONTAINER_IMAGE_TAG,\n TMP_DEPLOYMENT_ENVIRONMENT,\n TMP_DEVICE_ID,\n TMP_DEVICE_MODEL_IDENTIFIER,\n TMP_DEVICE_MODEL_NAME,\n TMP_FAAS_NAME,\n TMP_FAAS_ID,\n TMP_FAAS_VERSION,\n TMP_FAAS_INSTANCE,\n TMP_FAAS_MAX_MEMORY,\n TMP_HOST_ID,\n TMP_HOST_NAME,\n TMP_HOST_TYPE,\n TMP_HOST_ARCH,\n TMP_HOST_IMAGE_NAME,\n TMP_HOST_IMAGE_ID,\n TMP_HOST_IMAGE_VERSION,\n TMP_K8S_CLUSTER_NAME,\n TMP_K8S_NODE_NAME,\n TMP_K8S_NODE_UID,\n TMP_K8S_NAMESPACE_NAME,\n TMP_K8S_POD_UID,\n TMP_K8S_POD_NAME,\n TMP_K8S_CONTAINER_NAME,\n TMP_K8S_REPLICASET_UID,\n TMP_K8S_REPLICASET_NAME,\n TMP_K8S_DEPLOYMENT_UID,\n TMP_K8S_DEPLOYMENT_NAME,\n TMP_K8S_STATEFULSET_UID,\n TMP_K8S_STATEFULSET_NAME,\n TMP_K8S_DAEMONSET_UID,\n TMP_K8S_DAEMONSET_NAME,\n TMP_K8S_JOB_UID,\n TMP_K8S_JOB_NAME,\n TMP_K8S_CRONJOB_UID,\n TMP_K8S_CRONJOB_NAME,\n TMP_OS_TYPE,\n TMP_OS_DESCRIPTION,\n TMP_OS_NAME,\n TMP_OS_VERSION,\n TMP_PROCESS_PID,\n TMP_PROCESS_EXECUTABLE_NAME,\n TMP_PROCESS_EXECUTABLE_PATH,\n TMP_PROCESS_COMMAND,\n TMP_PROCESS_COMMAND_LINE,\n TMP_PROCESS_COMMAND_ARGS,\n TMP_PROCESS_OWNER,\n TMP_PROCESS_RUNTIME_NAME,\n TMP_PROCESS_RUNTIME_VERSION,\n TMP_PROCESS_RUNTIME_DESCRIPTION,\n TMP_SERVICE_NAME,\n TMP_SERVICE_NAMESPACE,\n TMP_SERVICE_INSTANCE_ID,\n TMP_SERVICE_VERSION,\n TMP_TELEMETRY_SDK_NAME,\n TMP_TELEMETRY_SDK_LANGUAGE,\n TMP_TELEMETRY_SDK_VERSION,\n TMP_TELEMETRY_AUTO_VERSION,\n TMP_WEBENGINE_NAME,\n TMP_WEBENGINE_VERSION,\n TMP_WEBENGINE_DESCRIPTION,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for CloudProviderValues enum definition\n *\n * Name of the cloud provider.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD = 'alibaba_cloud';\nconst TMP_CLOUDPROVIDERVALUES_AWS = 'aws';\nconst TMP_CLOUDPROVIDERVALUES_AZURE = 'azure';\nconst TMP_CLOUDPROVIDERVALUES_GCP = 'gcp';\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_ALIBABA_CLOUD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_ALIBABA_CLOUD = TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD;\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_AWS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_AWS = TMP_CLOUDPROVIDERVALUES_AWS;\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_AZURE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_AZURE = TMP_CLOUDPROVIDERVALUES_AZURE;\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_GCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_GCP = TMP_CLOUDPROVIDERVALUES_GCP;\n/**\n * The constant map of values for CloudProviderValues.\n * @deprecated Use the CLOUDPROVIDERVALUES_XXXXX constants rather than the CloudProviderValues.XXXXX for bundle minification.\n */\nexport const CloudProviderValues = \n/*#__PURE__*/ createConstMap([\n TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD,\n TMP_CLOUDPROVIDERVALUES_AWS,\n TMP_CLOUDPROVIDERVALUES_AZURE,\n TMP_CLOUDPROVIDERVALUES_GCP,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for CloudPlatformValues enum definition\n *\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS = 'alibaba_cloud_ecs';\nconst TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC = 'alibaba_cloud_fc';\nconst TMP_CLOUDPLATFORMVALUES_AWS_EC2 = 'aws_ec2';\nconst TMP_CLOUDPLATFORMVALUES_AWS_ECS = 'aws_ecs';\nconst TMP_CLOUDPLATFORMVALUES_AWS_EKS = 'aws_eks';\nconst TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA = 'aws_lambda';\nconst TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK = 'aws_elastic_beanstalk';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_VM = 'azure_vm';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES = 'azure_container_instances';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_AKS = 'azure_aks';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS = 'azure_functions';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE = 'azure_app_service';\nconst TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE = 'gcp_compute_engine';\nconst TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN = 'gcp_cloud_run';\nconst TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE = 'gcp_kubernetes_engine';\nconst TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS = 'gcp_cloud_functions';\nconst TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE = 'gcp_app_engine';\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_ALIBABA_CLOUD_ECS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS = TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_ALIBABA_CLOUD_FC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC = TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_EC2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_EC2 = TMP_CLOUDPLATFORMVALUES_AWS_EC2;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_ECS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_ECS = TMP_CLOUDPLATFORMVALUES_AWS_ECS;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_EKS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_EKS = TMP_CLOUDPLATFORMVALUES_AWS_EKS;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_LAMBDA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_LAMBDA = TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_ELASTIC_BEANSTALK in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK = TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_VM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_VM = TMP_CLOUDPLATFORMVALUES_AZURE_VM;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_CONTAINER_INSTANCES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES = TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_AKS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_AKS = TMP_CLOUDPLATFORMVALUES_AZURE_AKS;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_FUNCTIONS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_FUNCTIONS = TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_APP_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_APP_SERVICE = TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_COMPUTE_ENGINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE = TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_CLOUD_RUN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_CLOUD_RUN = TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_KUBERNETES_ENGINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE = TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_CLOUD_FUNCTIONS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS = TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS;\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_APP_ENGINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_APP_ENGINE = TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE;\n/**\n * The constant map of values for CloudPlatformValues.\n * @deprecated Use the CLOUDPLATFORMVALUES_XXXXX constants rather than the CloudPlatformValues.XXXXX for bundle minification.\n */\nexport const CloudPlatformValues = \n/*#__PURE__*/ createConstMap([\n TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS,\n TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC,\n TMP_CLOUDPLATFORMVALUES_AWS_EC2,\n TMP_CLOUDPLATFORMVALUES_AWS_ECS,\n TMP_CLOUDPLATFORMVALUES_AWS_EKS,\n TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA,\n TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK,\n TMP_CLOUDPLATFORMVALUES_AZURE_VM,\n TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES,\n TMP_CLOUDPLATFORMVALUES_AZURE_AKS,\n TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS,\n TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE,\n TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE,\n TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN,\n TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE,\n TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS,\n TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for AwsEcsLaunchtypeValues enum definition\n *\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_AWSECSLAUNCHTYPEVALUES_EC2 = 'ec2';\nconst TMP_AWSECSLAUNCHTYPEVALUES_FARGATE = 'fargate';\n/**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n *\n * @deprecated Use AWS_ECS_LAUNCHTYPE_VALUE_EC2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const AWSECSLAUNCHTYPEVALUES_EC2 = TMP_AWSECSLAUNCHTYPEVALUES_EC2;\n/**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n *\n * @deprecated Use AWS_ECS_LAUNCHTYPE_VALUE_FARGATE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const AWSECSLAUNCHTYPEVALUES_FARGATE = TMP_AWSECSLAUNCHTYPEVALUES_FARGATE;\n/**\n * The constant map of values for AwsEcsLaunchtypeValues.\n * @deprecated Use the AWSECSLAUNCHTYPEVALUES_XXXXX constants rather than the AwsEcsLaunchtypeValues.XXXXX for bundle minification.\n */\nexport const AwsEcsLaunchtypeValues = \n/*#__PURE__*/ createConstMap([\n TMP_AWSECSLAUNCHTYPEVALUES_EC2,\n TMP_AWSECSLAUNCHTYPEVALUES_FARGATE,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for HostArchValues enum definition\n *\n * The CPU architecture the host system is running on.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_HOSTARCHVALUES_AMD64 = 'amd64';\nconst TMP_HOSTARCHVALUES_ARM32 = 'arm32';\nconst TMP_HOSTARCHVALUES_ARM64 = 'arm64';\nconst TMP_HOSTARCHVALUES_IA64 = 'ia64';\nconst TMP_HOSTARCHVALUES_PPC32 = 'ppc32';\nconst TMP_HOSTARCHVALUES_PPC64 = 'ppc64';\nconst TMP_HOSTARCHVALUES_X86 = 'x86';\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_AMD64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_AMD64 = TMP_HOSTARCHVALUES_AMD64;\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_ARM32 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_ARM32 = TMP_HOSTARCHVALUES_ARM32;\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_ARM64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_ARM64 = TMP_HOSTARCHVALUES_ARM64;\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_IA64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_IA64 = TMP_HOSTARCHVALUES_IA64;\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_PPC32 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_PPC32 = TMP_HOSTARCHVALUES_PPC32;\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_PPC64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_PPC64 = TMP_HOSTARCHVALUES_PPC64;\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_X86 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_X86 = TMP_HOSTARCHVALUES_X86;\n/**\n * The constant map of values for HostArchValues.\n * @deprecated Use the HOSTARCHVALUES_XXXXX constants rather than the HostArchValues.XXXXX for bundle minification.\n */\nexport const HostArchValues = \n/*#__PURE__*/ createConstMap([\n TMP_HOSTARCHVALUES_AMD64,\n TMP_HOSTARCHVALUES_ARM32,\n TMP_HOSTARCHVALUES_ARM64,\n TMP_HOSTARCHVALUES_IA64,\n TMP_HOSTARCHVALUES_PPC32,\n TMP_HOSTARCHVALUES_PPC64,\n TMP_HOSTARCHVALUES_X86,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for OsTypeValues enum definition\n *\n * The operating system type.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_OSTYPEVALUES_WINDOWS = 'windows';\nconst TMP_OSTYPEVALUES_LINUX = 'linux';\nconst TMP_OSTYPEVALUES_DARWIN = 'darwin';\nconst TMP_OSTYPEVALUES_FREEBSD = 'freebsd';\nconst TMP_OSTYPEVALUES_NETBSD = 'netbsd';\nconst TMP_OSTYPEVALUES_OPENBSD = 'openbsd';\nconst TMP_OSTYPEVALUES_DRAGONFLYBSD = 'dragonflybsd';\nconst TMP_OSTYPEVALUES_HPUX = 'hpux';\nconst TMP_OSTYPEVALUES_AIX = 'aix';\nconst TMP_OSTYPEVALUES_SOLARIS = 'solaris';\nconst TMP_OSTYPEVALUES_Z_OS = 'z_os';\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_WINDOWS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_WINDOWS = TMP_OSTYPEVALUES_WINDOWS;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_LINUX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_LINUX = TMP_OSTYPEVALUES_LINUX;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_DARWIN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_DARWIN = TMP_OSTYPEVALUES_DARWIN;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_FREEBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_FREEBSD = TMP_OSTYPEVALUES_FREEBSD;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_NETBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_NETBSD = TMP_OSTYPEVALUES_NETBSD;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_OPENBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_OPENBSD = TMP_OSTYPEVALUES_OPENBSD;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_DRAGONFLYBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_DRAGONFLYBSD = TMP_OSTYPEVALUES_DRAGONFLYBSD;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_HPUX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_HPUX = TMP_OSTYPEVALUES_HPUX;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_AIX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_AIX = TMP_OSTYPEVALUES_AIX;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_SOLARIS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_SOLARIS = TMP_OSTYPEVALUES_SOLARIS;\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_Z_OS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_Z_OS = TMP_OSTYPEVALUES_Z_OS;\n/**\n * The constant map of values for OsTypeValues.\n * @deprecated Use the OSTYPEVALUES_XXXXX constants rather than the OsTypeValues.XXXXX for bundle minification.\n */\nexport const OsTypeValues = \n/*#__PURE__*/ createConstMap([\n TMP_OSTYPEVALUES_WINDOWS,\n TMP_OSTYPEVALUES_LINUX,\n TMP_OSTYPEVALUES_DARWIN,\n TMP_OSTYPEVALUES_FREEBSD,\n TMP_OSTYPEVALUES_NETBSD,\n TMP_OSTYPEVALUES_OPENBSD,\n TMP_OSTYPEVALUES_DRAGONFLYBSD,\n TMP_OSTYPEVALUES_HPUX,\n TMP_OSTYPEVALUES_AIX,\n TMP_OSTYPEVALUES_SOLARIS,\n TMP_OSTYPEVALUES_Z_OS,\n]);\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for TelemetrySdkLanguageValues enum definition\n *\n * The language of the telemetry SDK.\n * ---------------------------------------------------------------------------------------------------------- */\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_CPP = 'cpp';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET = 'dotnet';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG = 'erlang';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_GO = 'go';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA = 'java';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS = 'nodejs';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_PHP = 'php';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON = 'python';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY = 'ruby';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS = 'webjs';\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_CPP.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_CPP = TMP_TELEMETRYSDKLANGUAGEVALUES_CPP;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_DOTNET = TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_ERLANG = TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_GO.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_GO = TMP_TELEMETRYSDKLANGUAGEVALUES_GO;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_JAVA.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_JAVA = TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_NODEJS = TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_PHP.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_PHP = TMP_TELEMETRYSDKLANGUAGEVALUES_PHP;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_PYTHON = TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_RUBY.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_RUBY = TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY;\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_WEBJS = TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS;\n/**\n * The constant map of values for TelemetrySdkLanguageValues.\n * @deprecated Use the TELEMETRYSDKLANGUAGEVALUES_XXXXX constants rather than the TelemetrySdkLanguageValues.XXXXX for bundle minification.\n */\nexport const TelemetrySdkLanguageValues = \n/*#__PURE__*/ createConstMap([\n TMP_TELEMETRYSDKLANGUAGEVALUES_CPP,\n TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET,\n TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG,\n TMP_TELEMETRYSDKLANGUAGEVALUES_GO,\n TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA,\n TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS,\n TMP_TELEMETRYSDKLANGUAGEVALUES_PHP,\n TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON,\n TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY,\n TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS,\n]);\n//# sourceMappingURL=SemanticResourceAttributes.js.map","/**\n Unstable SemConv\n Because the \"incubating\" entry-point may include breaking changes in minor versions,\n it is recommended that instrumentation libraries not import @opentelemetry/semantic-conventions/incubating in runtime code,\n but instead copy relevant definitions into their own code base. (This is the same recommendation as for other languages.)\n \n See: https://www.npmjs.com/package/@opentelemetry/semantic-conventions#:~:text=%7D)%3B-,Unstable%20SemConv,-Because%20the%20%22incubating\n */\nexport const ATTR_SESSION_ID = 'session.id';\nexport const ATTR_DEPLOYMENT_ENVIRONMENT_NAME = 'deployment.environment.name';\nexport const ATTR_SERVICE_NAMESPACE = 'service.namespace';\n// https://opentelemetry.io/docs/specs/semconv/resource/process/#javascript-runtimes\nexport const ATTR_PROCESS_RUNTIME_NAME = 'process.runtime.name';\nexport const ATTR_PROCESS_RUNTIME_VERSION = 'process.runtime.version';\n// https://opentelemetry.io/docs/specs/semconv/attributes-registry/telemetry/#telemetry-attributes\nexport const ATTR_TELEMETRY_DISTRO_NAME = 'telemetry.distro.name';\nexport const ATTR_TELEMETRY_DISTRO_VERSION = 'telemetry.distro.version';\n// https://opentelemetry.io/docs/specs/semconv/resource/browser/\nexport const ATTR_BROWSER_BRANDS = 'browser.brands';\nexport const ATTR_BROWSER_LANGUAGE = 'browser.language';\nexport const ATTR_BROWSER_MOBILE = 'browser.mobile';\nexport const ATTR_BROWSER_PLATFORM = 'browser.platform';\n//# sourceMappingURL=semconv.js.map","import { ATTR_SESSION_ID } from './semconv';\nexport class FaroMetaAttributesSpanProcessor {\n constructor(processor, metas) {\n this.processor = processor;\n this.metas = metas;\n }\n forceFlush() {\n return this.processor.forceFlush();\n }\n onStart(span, parentContext) {\n var _a;\n const session = this.metas.value.session;\n if (session === null || session === void 0 ? void 0 : session.id) {\n span.attributes[ATTR_SESSION_ID] = session.id;\n /**\n * @deprecated will be removed in the future and has been replaced by ATTR_SESSION_ID (session.id)\n */\n span.attributes['session_id'] = session.id;\n }\n const user = (_a = this.metas.value.user) !== null && _a !== void 0 ? _a : {};\n if (user.email) {\n span.attributes['user.email'] = user.email;\n }\n if (user.id) {\n span.attributes['user.id'] = user.id;\n }\n if (user.username) {\n span.attributes['user.name'] = user.username;\n }\n if (user.fullName) {\n span.attributes['user.full_name'] = user.fullName;\n }\n if (user.roles) {\n span.attributes['user.roles'] = user.roles.split(',').map((role) => role.trim());\n }\n if (user.hash) {\n span.attributes['user.hash'] = user.hash;\n }\n this.processor.onStart(span, parentContext);\n }\n onEnd(span) {\n this.processor.onEnd(span);\n }\n shutdown() {\n return this.processor.shutdown();\n }\n}\n//# sourceMappingURL=faroMetaAttributesSpanProcessor.js.map","import { ESpanKind } from '@opentelemetry/otlp-transformer/build/src/trace/internal-types';\nimport { faro, unknownString } from '@grafana/faro-web-sdk';\nconst DURATION_NS_KEY = 'duration_ns';\nexport function sendFaroEvents(resourceSpans = []) {\n var _a, _b;\n for (const resourceSpan of resourceSpans) {\n const { scopeSpans } = resourceSpan;\n for (const scopeSpan of scopeSpans) {\n const { scope, spans = [] } = scopeSpan;\n for (const span of spans) {\n if (span.kind !== ESpanKind.SPAN_KIND_CLIENT) {\n continue;\n }\n const spanContext = {\n traceId: span.traceId.toString(),\n spanId: span.spanId.toString(),\n };\n const faroEventAttributes = {};\n for (const attribute of span.attributes) {\n faroEventAttributes[attribute.key] = String(Object.values(attribute.value)[0]);\n }\n // Add span duration in nanoseconds\n if (!Number.isNaN(span.endTimeUnixNano) && !Number.isNaN(span.startTimeUnixNano)) {\n faroEventAttributes[DURATION_NS_KEY] = String(Number(span.endTimeUnixNano) - Number(span.startTimeUnixNano));\n }\n const index = ((_a = scope === null || scope === void 0 ? void 0 : scope.name) !== null && _a !== void 0 ? _a : '').indexOf('-');\n let eventName = unknownString;\n if (scope === null || scope === void 0 ? void 0 : scope.name) {\n if (index === -1) {\n eventName = (_b = scope.name.split('/')[1]) !== null && _b !== void 0 ? _b : scope.name;\n }\n if (index > -1) {\n eventName = scope === null || scope === void 0 ? void 0 : scope.name.substring(index + 1);\n }\n }\n faro.api.pushEvent(`faro.tracing.${eventName}`, faroEventAttributes, undefined, {\n spanContext,\n // Convert nanoseconds to milliseconds\n timestampOverwriteMs: Number(span.endTimeUnixNano) / 1000000,\n customPayloadTransformer: (payload) => {\n var _a, _b;\n if (faroEventAttributes['faro.action.user.name'] != null &&\n faroEventAttributes['faro.action.user.parentId'] != null) {\n payload.action = {\n name: faroEventAttributes['faro.action.user.name'],\n parentId: faroEventAttributes['faro.action.user.parentId'],\n };\n (_a = payload.attributes) === null || _a === void 0 ? true : delete _a['faro.action.user.name'];\n (_b = payload.attributes) === null || _b === void 0 ? true : delete _b['faro.action.user.parentId'];\n }\n return payload;\n },\n });\n }\n }\n }\n}\n//# sourceMappingURL=faroTraceExporter.utils.js.map","import { ExportResultCode } from '@opentelemetry/core';\nimport { createExportTraceServiceRequest } from '@opentelemetry/otlp-transformer/build/src/trace/internal';\nimport { sendFaroEvents } from './faroTraceExporter.utils';\nexport class FaroTraceExporter {\n constructor(config) {\n this.config = config;\n }\n export(spans, resultCallback) {\n const traceEvent = createExportTraceServiceRequest(spans, { useHex: true, useLongBits: false });\n this.config.api.pushTraces(traceEvent);\n sendFaroEvents(traceEvent.resourceSpans);\n resultCallback({ code: ExportResultCode.SUCCESS });\n }\n shutdown() {\n return Promise.resolve(undefined);\n }\n}\n//# sourceMappingURL=faroTraceExporter.js.map","import { SpanKind } from '@opentelemetry/api';\nimport { apiMessageBus, USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_HALT, USER_ACTION_START, } from '@grafana/faro-web-sdk';\nexport class FaroUserActionSpanProcessor {\n constructor(processor) {\n this.processor = processor;\n apiMessageBus.subscribe((msg) => {\n if (msg.type === USER_ACTION_START) {\n this.message = msg;\n return;\n }\n if ([USER_ACTION_END, USER_ACTION_HALT, USER_ACTION_CANCEL].includes(msg.type)) {\n this.message = undefined;\n }\n });\n }\n forceFlush() {\n return this.processor.forceFlush();\n }\n onStart(span, parentContext) {\n var _a, _b;\n if (span.kind === SpanKind.CLIENT) {\n // If the span is created when the message object is available it is created before the user action timeout has been reached so it belongs to the user-action.\n // In this case we can add the user action name and parentId to the span attributes.\n // If the span is created after the user action timeout span, the message object will be undefined which means the action has been cancelled or is ended.\n if (this.message) {\n span.attributes['faro.action.user.name'] = (_a = this.message) === null || _a === void 0 ? void 0 : _a.name;\n span.attributes['faro.action.user.parentId'] = (_b = this.message) === null || _b === void 0 ? void 0 : _b.parentId;\n }\n }\n this.processor.onStart(span, parentContext);\n }\n onEnd(span) {\n this.processor.onEnd(span);\n }\n shutdown() {\n return this.processor.shutdown();\n }\n}\n//# sourceMappingURL=faroUserActionSpanProcessor.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger = console.error.bind(console);\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj, name, value) {\n const enumerable = !!obj[name] &&\n Object.prototype.propertyIsEnumerable.call(obj, name);\n Object.defineProperty(obj, name, {\n configurable: true,\n enumerable,\n writable: true,\n value,\n });\n}\nexport const wrap = (nodule, name, wrapper) => {\n if (!nodule || !nodule[name]) {\n logger('no original function ' + String(name) + ' to wrap');\n return;\n }\n if (!wrapper) {\n logger('no wrapper function');\n logger(new Error().stack);\n return;\n }\n const original = nodule[name];\n if (typeof original !== 'function' || typeof wrapper !== 'function') {\n logger('original object and wrapper must be functions');\n return;\n }\n const wrapped = wrapper(original, name);\n defineProperty(wrapped, '__original', original);\n defineProperty(wrapped, '__unwrap', () => {\n if (nodule[name] === wrapped) {\n defineProperty(nodule, name, original);\n }\n });\n defineProperty(wrapped, '__wrapped', true);\n defineProperty(nodule, name, wrapped);\n return wrapped;\n};\nexport const massWrap = (nodules, names, wrapper) => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n }\n else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to wrap on modules');\n return;\n }\n nodules.forEach(nodule => {\n names.forEach(name => {\n wrap(nodule, name, wrapper);\n });\n });\n};\nexport const unwrap = (nodule, name) => {\n if (!nodule || !nodule[name]) {\n logger('no function to unwrap.');\n logger(new Error().stack);\n return;\n }\n const wrapped = nodule[name];\n if (!wrapped.__unwrap) {\n logger('no original to unwrap to -- has ' +\n String(name) +\n ' already been unwrapped?');\n }\n else {\n wrapped.__unwrap();\n return;\n }\n};\nexport const massUnwrap = (nodules, names) => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n }\n else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to unwrap on modules');\n return;\n }\n nodules.forEach(nodule => {\n names.forEach(name => {\n unwrap(nodule, name);\n });\n });\n};\nexport default function shimmer(options) {\n if (options && options.logger) {\n if (typeof options.logger !== 'function') {\n logger(\"new logger isn't a function, not replacing\");\n }\n else {\n logger = options.logger;\n }\n }\n}\nshimmer.wrap = wrap;\nshimmer.massWrap = massWrap;\nshimmer.unwrap = unwrap;\nshimmer.massUnwrap = massUnwrap;\n//# sourceMappingURL=shimmer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag, metrics, trace, } from '@opentelemetry/api';\nimport { logs } from '@opentelemetry/api-logs';\nimport * as shimmer from './shimmer';\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nexport class InstrumentationAbstract {\n instrumentationName;\n instrumentationVersion;\n _config = {};\n _tracer;\n _meter;\n _logger;\n _diag;\n constructor(instrumentationName, instrumentationVersion, config) {\n this.instrumentationName = instrumentationName;\n this.instrumentationVersion = instrumentationVersion;\n this.setConfig(config);\n this._diag = diag.createComponentLogger({\n namespace: instrumentationName,\n });\n this._tracer = trace.getTracer(instrumentationName, instrumentationVersion);\n this._meter = metrics.getMeter(instrumentationName, instrumentationVersion);\n this._logger = logs.getLogger(instrumentationName, instrumentationVersion);\n this._updateMetricInstruments();\n }\n /* Api to wrap instrumented method */\n _wrap = shimmer.wrap;\n /* Api to unwrap instrumented methods */\n _unwrap = shimmer.unwrap;\n /* Api to mass wrap instrumented method */\n _massWrap = shimmer.massWrap;\n /* Api to mass unwrap instrumented methods */\n _massUnwrap = shimmer.massUnwrap;\n /* Returns meter */\n get meter() {\n return this._meter;\n }\n /**\n * Sets MeterProvider to this plugin\n * @param meterProvider\n */\n setMeterProvider(meterProvider) {\n this._meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);\n this._updateMetricInstruments();\n }\n /* Returns logger */\n get logger() {\n return this._logger;\n }\n /**\n * Sets LoggerProvider to this plugin\n * @param loggerProvider\n */\n setLoggerProvider(loggerProvider) {\n this._logger = loggerProvider.getLogger(this.instrumentationName, this.instrumentationVersion);\n }\n /**\n * @experimental\n *\n * Get module definitions defined by {@link init}.\n * This can be used for experimental compile-time instrumentation.\n *\n * @returns an array of {@link InstrumentationModuleDefinition}\n */\n getModuleDefinitions() {\n const initResult = this.init() ?? [];\n if (!Array.isArray(initResult)) {\n return [initResult];\n }\n return initResult;\n }\n /**\n * Sets the new metric instruments with the current Meter.\n */\n _updateMetricInstruments() {\n return;\n }\n /* Returns InstrumentationConfig */\n getConfig() {\n return this._config;\n }\n /**\n * Sets InstrumentationConfig to this plugin\n * @param config\n */\n setConfig(config) {\n // copy config first level properties to ensure they are immutable.\n // nested properties are not copied, thus are mutable from the outside.\n this._config = {\n enabled: true,\n ...config,\n };\n }\n /**\n * Sets TraceProvider to this plugin\n * @param tracerProvider\n */\n setTracerProvider(tracerProvider) {\n this._tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);\n }\n /* Returns tracer */\n get tracer() {\n return this._tracer;\n }\n /**\n * Execute span customization hook, if configured, and log any errors.\n * Any semantics of the trigger and info are defined by the specific instrumentation.\n * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n * @param triggerName The name of the trigger for executing the hook for logging purposes\n * @param span The span to which the hook should be applied\n * @param info The info object to be passed to the hook, with useful data the hook may use\n */\n _runSpanCustomizationHook(hookHandler, triggerName, span, info) {\n if (!hookHandler) {\n return;\n }\n try {\n hookHandler(span, info);\n }\n catch (e) {\n this._diag.error(`Error running span customization hook due to exception in handler`, { triggerName }, e);\n }\n }\n}\n//# sourceMappingURL=instrumentation.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InstrumentationAbstract } from '../../instrumentation';\n/**\n * Base abstract class for instrumenting web plugins\n */\nexport class InstrumentationBase extends InstrumentationAbstract {\n constructor(instrumentationName, instrumentationVersion, config) {\n super(instrumentationName, instrumentationVersion, config);\n if (this._config.enabled) {\n this.enable();\n }\n }\n}\n//# sourceMappingURL=instrumentation.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var SemconvStability;\n(function (SemconvStability) {\n /** Emit only stable semantic conventions. */\n SemconvStability[SemconvStability[\"STABLE\"] = 1] = \"STABLE\";\n /** Emit only old semantic conventions. */\n SemconvStability[SemconvStability[\"OLD\"] = 2] = \"OLD\";\n /** Emit both stable and old semantic conventions. */\n SemconvStability[SemconvStability[\"DUPLICATE\"] = 3] = \"DUPLICATE\";\n})(SemconvStability || (SemconvStability = {}));\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n * import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n * export class FooInstrumentation extends InstrumentationBase<FooInstrumentationConfig> {\n * private _semconvStability: SemconvStability;\n * constructor(config: FooInstrumentationConfig = {}) {\n * super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n * // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n * );\n *\n * // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n * // the web where there are no envvars).\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * config?.semconvStabilityOptIn\n * );\n * }\n * }\n *\n * // Then, to apply semconv, use the following or similar:\n * if (this._semconvStability & SemconvStability.OLD) {\n * // ...\n * }\n * if (this._semconvStability & SemconvStability.STABLE) {\n * // ...\n * }\n *\n */\nexport function semconvStabilityFromStr(namespace, str) {\n let semconvStability = SemconvStability.OLD;\n // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n const entries = str\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n for (const entry of entries ?? []) {\n if (entry.toLowerCase() === namespace + '/dup') {\n // DUPLICATE takes highest precedence.\n semconvStability = SemconvStability.DUPLICATE;\n break;\n }\n else if (entry.toLowerCase() === namespace) {\n semconvStability = SemconvStability.STABLE;\n }\n }\n return semconvStability;\n}\n//# sourceMappingURL=semconvStability.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport function safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport async function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n let error;\n let result;\n try {\n result = await execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nexport function isWrapped(func) {\n return (typeof func === 'function' &&\n typeof func.__original === 'function' &&\n typeof func.__unwrap === 'function' &&\n func.__wrapped === true);\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var PerformanceTimingNames;\n(function (PerformanceTimingNames) {\n PerformanceTimingNames[\"CONNECT_END\"] = \"connectEnd\";\n PerformanceTimingNames[\"CONNECT_START\"] = \"connectStart\";\n PerformanceTimingNames[\"DECODED_BODY_SIZE\"] = \"decodedBodySize\";\n PerformanceTimingNames[\"DOM_COMPLETE\"] = \"domComplete\";\n PerformanceTimingNames[\"DOM_CONTENT_LOADED_EVENT_END\"] = \"domContentLoadedEventEnd\";\n PerformanceTimingNames[\"DOM_CONTENT_LOADED_EVENT_START\"] = \"domContentLoadedEventStart\";\n PerformanceTimingNames[\"DOM_INTERACTIVE\"] = \"domInteractive\";\n PerformanceTimingNames[\"DOMAIN_LOOKUP_END\"] = \"domainLookupEnd\";\n PerformanceTimingNames[\"DOMAIN_LOOKUP_START\"] = \"domainLookupStart\";\n PerformanceTimingNames[\"ENCODED_BODY_SIZE\"] = \"encodedBodySize\";\n PerformanceTimingNames[\"FETCH_START\"] = \"fetchStart\";\n PerformanceTimingNames[\"LOAD_EVENT_END\"] = \"loadEventEnd\";\n PerformanceTimingNames[\"LOAD_EVENT_START\"] = \"loadEventStart\";\n PerformanceTimingNames[\"NAVIGATION_START\"] = \"navigationStart\";\n PerformanceTimingNames[\"REDIRECT_END\"] = \"redirectEnd\";\n PerformanceTimingNames[\"REDIRECT_START\"] = \"redirectStart\";\n PerformanceTimingNames[\"REQUEST_START\"] = \"requestStart\";\n PerformanceTimingNames[\"RESPONSE_END\"] = \"responseEnd\";\n PerformanceTimingNames[\"RESPONSE_START\"] = \"responseStart\";\n PerformanceTimingNames[\"SECURE_CONNECTION_START\"] = \"secureConnectionStart\";\n PerformanceTimingNames[\"START_TIME\"] = \"startTime\";\n PerformanceTimingNames[\"UNLOAD_EVENT_END\"] = \"unloadEventEnd\";\n PerformanceTimingNames[\"UNLOAD_EVENT_START\"] = \"unloadEventStart\";\n})(PerformanceTimingNames || (PerformanceTimingNames = {}));\n//# sourceMappingURL=PerformanceTimingNames.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use `http.response.header.<key>` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.header.<key>`.\n */\nexport const ATTR_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\n/**\n * Deprecated, use `http.response.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replace by `http.response.body.size`.\n */\nexport const ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = 'http.response_content_length_uncompressed';\n//# sourceMappingURL=semconv.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { PerformanceTimingNames as PTN } from './enums/PerformanceTimingNames';\nimport { hrTimeToNanoseconds, timeInputToHrTime, urlMatches, } from '@opentelemetry/core';\nimport { ATTR_HTTP_RESPONSE_CONTENT_LENGTH, ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED, } from './semconv';\n// Used to normalize relative URLs\nlet urlNormalizingAnchor;\nfunction getUrlNormalizingAnchor() {\n if (!urlNormalizingAnchor) {\n urlNormalizingAnchor = document.createElement('a');\n }\n return urlNormalizingAnchor;\n}\n/**\n * Helper function to be able to use enum as typed key in type and in interface when using forEach\n * @param obj\n * @param key\n */\nexport function hasKey(obj, key) {\n return key in obj;\n}\n/**\n * Helper function for starting an event on span based on {@link PerformanceEntries}\n * @param span\n * @param performanceName name of performance entry for time start\n * @param entries\n * @param ignoreZeros\n */\nexport function addSpanNetworkEvent(span, performanceName, entries, ignoreZeros = true) {\n if (hasKey(entries, performanceName) &&\n typeof entries[performanceName] === 'number' &&\n !(ignoreZeros && entries[performanceName] === 0)) {\n return span.addEvent(performanceName, entries[performanceName]);\n }\n return undefined;\n}\n/**\n * Helper function for adding network events and content length attributes.\n */\nexport function addSpanNetworkEvents(span, resource, ignoreNetworkEvents = false, ignoreZeros, skipOldSemconvContentLengthAttrs) {\n if (ignoreZeros === undefined) {\n ignoreZeros = resource[PTN.START_TIME] !== 0;\n }\n if (!ignoreNetworkEvents) {\n addSpanNetworkEvent(span, PTN.FETCH_START, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.DOMAIN_LOOKUP_START, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.DOMAIN_LOOKUP_END, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.CONNECT_START, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.SECURE_CONNECTION_START, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.CONNECT_END, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.REQUEST_START, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.RESPONSE_START, resource, ignoreZeros);\n addSpanNetworkEvent(span, PTN.RESPONSE_END, resource, ignoreZeros);\n }\n if (!skipOldSemconvContentLengthAttrs) {\n // This block adds content-length-related span attributes using the\n // *old* HTTP semconv (v1.7.0).\n const encodedLength = resource[PTN.ENCODED_BODY_SIZE];\n if (encodedLength !== undefined) {\n span.setAttribute(ATTR_HTTP_RESPONSE_CONTENT_LENGTH, encodedLength);\n }\n const decodedLength = resource[PTN.DECODED_BODY_SIZE];\n // Spec: Not set if transport encoding not used (in which case encoded and decoded sizes match)\n if (decodedLength !== undefined && encodedLength !== decodedLength) {\n span.setAttribute(ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED, decodedLength);\n }\n }\n}\n/**\n * sort resources by startTime\n * @param filteredResources\n */\nexport function sortResources(filteredResources) {\n return filteredResources.slice().sort((a, b) => {\n const valueA = a[PTN.FETCH_START];\n const valueB = b[PTN.FETCH_START];\n if (valueA > valueB) {\n return 1;\n }\n else if (valueA < valueB) {\n return -1;\n }\n return 0;\n });\n}\n/** Returns the origin if present (if in browser context). */\nfunction getOrigin() {\n return typeof location !== 'undefined' ? location.origin : undefined;\n}\n/**\n * Get closest performance resource ignoring the resources that have been\n * already used.\n * @param spanUrl\n * @param startTimeHR\n * @param endTimeHR\n * @param resources\n * @param ignoredResources\n * @param initiatorType\n */\nexport function getResource(spanUrl, startTimeHR, endTimeHR, resources, ignoredResources = new WeakSet(), initiatorType) {\n // de-relativize the URL before usage (does no harm to absolute URLs)\n const parsedSpanUrl = parseUrl(spanUrl);\n spanUrl = parsedSpanUrl.toString();\n const filteredResources = filterResourcesForSpan(spanUrl, startTimeHR, endTimeHR, resources, ignoredResources, initiatorType);\n if (filteredResources.length === 0) {\n return {\n mainRequest: undefined,\n };\n }\n if (filteredResources.length === 1) {\n return {\n mainRequest: filteredResources[0],\n };\n }\n const sorted = sortResources(filteredResources);\n if (parsedSpanUrl.origin !== getOrigin() && sorted.length > 1) {\n let corsPreFlightRequest = sorted[0];\n let mainRequest = findMainRequest(sorted, corsPreFlightRequest[PTN.RESPONSE_END], endTimeHR);\n const responseEnd = corsPreFlightRequest[PTN.RESPONSE_END];\n const fetchStart = mainRequest[PTN.FETCH_START];\n // no corsPreFlightRequest\n if (fetchStart < responseEnd) {\n mainRequest = corsPreFlightRequest;\n corsPreFlightRequest = undefined;\n }\n return {\n corsPreFlightRequest,\n mainRequest,\n };\n }\n else {\n return {\n mainRequest: filteredResources[0],\n };\n }\n}\n/**\n * Will find the main request skipping the cors pre flight requests\n * @param resources\n * @param corsPreFlightRequestEndTime\n * @param spanEndTimeHR\n */\nfunction findMainRequest(resources, corsPreFlightRequestEndTime, spanEndTimeHR) {\n const spanEndTime = hrTimeToNanoseconds(spanEndTimeHR);\n const minTime = hrTimeToNanoseconds(timeInputToHrTime(corsPreFlightRequestEndTime));\n let mainRequest = resources[1];\n let bestGap;\n const length = resources.length;\n for (let i = 1; i < length; i++) {\n const resource = resources[i];\n const resourceStartTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.FETCH_START]));\n const resourceEndTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.RESPONSE_END]));\n const currentGap = spanEndTime - resourceEndTime;\n if (resourceStartTime >= minTime && (!bestGap || currentGap < bestGap)) {\n bestGap = currentGap;\n mainRequest = resource;\n }\n }\n return mainRequest;\n}\n/**\n * Filter all resources that has started and finished according to span start time and end time.\n * It will return the closest resource to a start time\n * @param spanUrl\n * @param startTimeHR\n * @param endTimeHR\n * @param resources\n * @param ignoredResources\n */\nfunction filterResourcesForSpan(spanUrl, startTimeHR, endTimeHR, resources, ignoredResources, initiatorType) {\n const startTime = hrTimeToNanoseconds(startTimeHR);\n const endTime = hrTimeToNanoseconds(endTimeHR);\n let filteredResources = resources.filter(resource => {\n const resourceStartTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.FETCH_START]));\n const resourceEndTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.RESPONSE_END]));\n return (resource.initiatorType.toLowerCase() ===\n (initiatorType || 'xmlhttprequest') &&\n resource.name === spanUrl &&\n resourceStartTime >= startTime &&\n resourceEndTime <= endTime);\n });\n if (filteredResources.length > 0) {\n filteredResources = filteredResources.filter(resource => {\n return !ignoredResources.has(resource);\n });\n }\n return filteredResources;\n}\n/**\n * Parses url using URL constructor or fallback to anchor element.\n * @param url\n */\nexport function parseUrl(url) {\n if (typeof URL === 'function') {\n return new URL(url, typeof document !== 'undefined'\n ? document.baseURI\n : typeof location !== 'undefined' // Some JS runtimes (e.g. Deno) don't define this\n ? location.href\n : undefined);\n }\n const element = getUrlNormalizingAnchor();\n element.href = url;\n return element;\n}\n/**\n * Parses url using URL constructor or fallback to anchor element and serialize\n * it to a string.\n *\n * Performs the steps described in https://html.spec.whatwg.org/multipage/urls-and-fetching.html#parse-a-url\n *\n * @param url\n */\nexport function normalizeUrl(url) {\n const urlLike = parseUrl(url);\n return urlLike.href;\n}\n/**\n * Get element XPath\n * @param target - target element\n * @param optimised - when id attribute of element is present the xpath can be\n * simplified to contain id\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function getElementXPath(target, optimised) {\n if (target.nodeType === Node.DOCUMENT_NODE) {\n return '/';\n }\n const targetValue = getNodeValue(target, optimised);\n if (optimised && targetValue.indexOf('@id') > 0) {\n return targetValue;\n }\n let xpath = '';\n if (target.parentNode) {\n xpath += getElementXPath(target.parentNode, false);\n }\n xpath += targetValue;\n return xpath;\n}\n/**\n * get node index within the siblings\n * @param target\n */\nfunction getNodeIndex(target) {\n if (!target.parentNode) {\n return 0;\n }\n const allowedTypes = [target.nodeType];\n if (target.nodeType === Node.CDATA_SECTION_NODE) {\n allowedTypes.push(Node.TEXT_NODE);\n }\n let elements = Array.from(target.parentNode.childNodes);\n elements = elements.filter((element) => {\n const localName = element.localName;\n return (allowedTypes.indexOf(element.nodeType) >= 0 &&\n localName === target.localName);\n });\n if (elements.length >= 1) {\n return elements.indexOf(target) + 1; // xpath starts from 1\n }\n // if there are no other similar child xpath doesn't need index\n return 0;\n}\n/**\n * get node value for xpath\n * @param target\n * @param optimised\n */\nfunction getNodeValue(target, optimised) {\n const nodeType = target.nodeType;\n const index = getNodeIndex(target);\n let nodeValue = '';\n if (nodeType === Node.ELEMENT_NODE) {\n const id = target.getAttribute('id');\n if (optimised && id) {\n return `//*[@id=\"${id}\"]`;\n }\n nodeValue = target.localName;\n }\n else if (nodeType === Node.TEXT_NODE ||\n nodeType === Node.CDATA_SECTION_NODE) {\n nodeValue = 'text()';\n }\n else if (nodeType === Node.COMMENT_NODE) {\n nodeValue = 'comment()';\n }\n else {\n return '';\n }\n // if index is 1 it can be omitted in xpath\n if (nodeValue && index > 1) {\n return `/${nodeValue}[${index}]`;\n }\n return `/${nodeValue}`;\n}\n/**\n * Checks if trace headers should be propagated\n * @param spanUrl\n * @private\n */\nexport function shouldPropagateTraceHeaders(spanUrl, propagateTraceHeaderCorsUrls) {\n let propagateTraceHeaderUrls = propagateTraceHeaderCorsUrls || [];\n if (typeof propagateTraceHeaderUrls === 'string' ||\n propagateTraceHeaderUrls instanceof RegExp) {\n propagateTraceHeaderUrls = [propagateTraceHeaderUrls];\n }\n const parsedSpanUrl = parseUrl(spanUrl);\n if (parsedSpanUrl.origin === getOrigin()) {\n return true;\n }\n else {\n return propagateTraceHeaderUrls.some(propagateTraceHeaderUrl => urlMatches(spanUrl, propagateTraceHeaderUrl));\n }\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md\n */\nexport var AttributeNames;\n(function (AttributeNames) {\n AttributeNames[\"COMPONENT\"] = \"component\";\n AttributeNames[\"HTTP_STATUS_TEXT\"] = \"http.status_text\";\n})(AttributeNames || (AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Much of the logic here overlaps with the same utils file in opentelemetry-instrumentation-xml-http-request\n// These may be unified in the future.\nimport * as api from '@opentelemetry/api';\nimport { getStringListFromEnv } from '@opentelemetry/core';\nconst DIAG_LOGGER = api.diag.createComponentLogger({\n namespace: '@opentelemetry/opentelemetry-instrumentation-fetch/utils',\n});\n/**\n * Helper function to determine payload content length for fetch requests\n *\n * The fetch API is kinda messy: there are a couple of ways the body can be passed in.\n *\n * In all cases, the body param can be some variation of ReadableStream,\n * and ReadableStreams can only be read once! We want to avoid consuming the body here,\n * because that would mean that the body never gets sent with the actual fetch request.\n *\n * Either the first arg is a Request object, which can be cloned\n * so we can clone that object and read the body of the clone\n * without disturbing the original argument\n * However, reading the body here can only be done async; the body() method returns a promise\n * this means this entire function has to return a promise\n *\n * OR the first arg is a url/string\n * in which case the second arg has type RequestInit\n * RequestInit is NOT cloneable, but RequestInit.body is writable\n * so we can chain it into ReadableStream.pipeThrough()\n *\n * ReadableStream.pipeThrough() lets us process a stream and returns a new stream\n * So we can measure the body length as it passes through the pie, but need to attach\n * the new stream to the original request\n * so that the browser still has access to the body.\n *\n * @param body\n * @returns promise that resolves to the content length of the body\n */\nexport function getFetchBodyLength(...args) {\n if (args[0] instanceof URL || typeof args[0] === 'string') {\n const requestInit = args[1];\n if (!requestInit?.body) {\n return Promise.resolve();\n }\n if (requestInit.body instanceof ReadableStream) {\n const { body, length } = _getBodyNonDestructively(requestInit.body);\n requestInit.body = body;\n return length;\n }\n else {\n return Promise.resolve(getXHRBodyLength(requestInit.body));\n }\n }\n else {\n const info = args[0];\n if (!info?.body) {\n return Promise.resolve();\n }\n return info\n .clone()\n .text()\n .then(t => getByteLength(t));\n }\n}\nfunction _getBodyNonDestructively(body) {\n // can't read a ReadableStream without destroying it\n // but we CAN pipe it through and return a new ReadableStream\n // some (older) platforms don't expose the pipeThrough method and in that scenario, we're out of luck;\n // there's no way to read the stream without consuming it.\n if (!body.pipeThrough) {\n DIAG_LOGGER.warn('Platform has ReadableStream but not pipeThrough!');\n return {\n body,\n length: Promise.resolve(undefined),\n };\n }\n let length = 0;\n let resolveLength;\n const lengthPromise = new Promise(resolve => {\n resolveLength = resolve;\n });\n const transform = new TransformStream({\n start() { },\n async transform(chunk, controller) {\n const bytearray = (await chunk);\n length += bytearray.byteLength;\n controller.enqueue(chunk);\n },\n flush() {\n resolveLength(length);\n },\n });\n return {\n body: body.pipeThrough(transform),\n length: lengthPromise,\n };\n}\nfunction isDocument(value) {\n return typeof Document !== 'undefined' && value instanceof Document;\n}\n/**\n * Helper function to determine payload content length for XHR requests\n * @param body\n * @returns content length\n */\nexport function getXHRBodyLength(body) {\n if (isDocument(body)) {\n return new XMLSerializer().serializeToString(document).length;\n }\n // XMLHttpRequestBodyInit expands to the following:\n if (typeof body === 'string') {\n return getByteLength(body);\n }\n if (body instanceof Blob) {\n return body.size;\n }\n if (body instanceof FormData) {\n return getFormDataSize(body);\n }\n if (body instanceof URLSearchParams) {\n return getByteLength(body.toString());\n }\n // ArrayBuffer | ArrayBufferView\n if (body.byteLength !== undefined) {\n return body.byteLength;\n }\n DIAG_LOGGER.warn('unknown body type');\n return undefined;\n}\nconst TEXT_ENCODER = new TextEncoder();\nfunction getByteLength(s) {\n return TEXT_ENCODER.encode(s).byteLength;\n}\nfunction getFormDataSize(formData) {\n let size = 0;\n for (const [key, value] of formData.entries()) {\n size += key.length;\n if (value instanceof Blob) {\n size += value.size;\n }\n else {\n size += value.length;\n }\n }\n return size;\n}\n/**\n * Normalize an HTTP request method string per `http.request.method` spec\n * https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-spans.md#http-client-span\n */\nexport function normalizeHttpRequestMethod(method) {\n const knownMethods = getKnownMethods();\n const methUpper = method.toUpperCase();\n if (methUpper in knownMethods) {\n return methUpper;\n }\n else {\n return '_OTHER';\n }\n}\nconst DEFAULT_KNOWN_METHODS = {\n CONNECT: true,\n DELETE: true,\n GET: true,\n HEAD: true,\n OPTIONS: true,\n PATCH: true,\n POST: true,\n PUT: true,\n TRACE: true,\n};\nlet knownMethods;\nfunction getKnownMethods() {\n if (knownMethods === undefined) {\n const cfgMethods = getStringListFromEnv('OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS');\n if (cfgMethods && cfgMethods.length > 0) {\n knownMethods = {};\n cfgMethods.forEach(m => {\n knownMethods[m] = true;\n });\n }\n else {\n knownMethods = DEFAULT_KNOWN_METHODS;\n }\n }\n return knownMethods;\n}\nconst HTTP_PORT_FROM_PROTOCOL = {\n 'https:': '443',\n 'http:': '80',\n};\nexport function serverPortFromUrl(url) {\n const serverPort = Number(url.port || HTTP_PORT_FROM_PROTOCOL[url.protocol]);\n // Guard with `if (serverPort)` because `Number('') === 0`.\n if (serverPort && !isNaN(serverPort)) {\n return serverPort;\n }\n else {\n return undefined;\n }\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.202.0';\n//# sourceMappingURL=version.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as api from '@opentelemetry/api';\nimport { SemconvStability, semconvStabilityFromStr, isWrapped, InstrumentationBase, safeExecuteInTheMiddle, } from '@opentelemetry/instrumentation';\nimport * as core from '@opentelemetry/core';\nimport * as web from '@opentelemetry/sdk-trace-web';\nimport { AttributeNames } from './enums/AttributeNames';\nimport { ATTR_HTTP_STATUS_CODE, ATTR_HTTP_HOST, ATTR_HTTP_USER_AGENT, ATTR_HTTP_SCHEME, ATTR_HTTP_URL, ATTR_HTTP_METHOD, ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED, ATTR_HTTP_REQUEST_BODY_SIZE, } from '../src/semconv';\nimport { ATTR_ERROR_TYPE, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_REQUEST_METHOD_ORIGINAL, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT, ATTR_URL_FULL, } from '@opentelemetry/semantic-conventions';\nimport { getFetchBodyLength, normalizeHttpRequestMethod, serverPortFromUrl, } from './utils';\nimport { VERSION } from './version';\nimport { _globalThis } from '@opentelemetry/core';\n// how long to wait for observer to collect information about resources\n// this is needed as event \"load\" is called before observer\n// hard to say how long it should really wait, seems like 300ms is\n// safe enough\nconst OBSERVER_WAIT_TIME_MS = 300;\nconst isNode = typeof process === 'object' && process.release?.name === 'node';\n/**\n * This class represents a fetch plugin for auto instrumentation\n */\nexport class FetchInstrumentation extends InstrumentationBase {\n component = 'fetch';\n version = VERSION;\n moduleName = this.component;\n _usedResources = new WeakSet();\n _tasksCount = 0;\n _semconvStability;\n constructor(config = {}) {\n super('@opentelemetry/instrumentation-fetch', VERSION, config);\n this._semconvStability = semconvStabilityFromStr('http', config?.semconvStabilityOptIn);\n }\n init() { }\n /**\n * Add cors pre flight child span\n * @param span\n * @param corsPreFlightRequest\n */\n _addChildSpan(span, corsPreFlightRequest) {\n const childSpan = this.tracer.startSpan('CORS Preflight', {\n startTime: corsPreFlightRequest[web.PerformanceTimingNames.FETCH_START],\n }, api.trace.setSpan(api.context.active(), span));\n const skipOldSemconvContentLengthAttrs = !(this._semconvStability & SemconvStability.OLD);\n web.addSpanNetworkEvents(childSpan, corsPreFlightRequest, this.getConfig().ignoreNetworkEvents, undefined, skipOldSemconvContentLengthAttrs);\n childSpan.end(corsPreFlightRequest[web.PerformanceTimingNames.RESPONSE_END]);\n }\n /**\n * Adds more attributes to span just before ending it\n * @param span\n * @param response\n */\n _addFinalSpanAttributes(span, response) {\n const parsedUrl = web.parseUrl(response.url);\n if (this._semconvStability & SemconvStability.OLD) {\n span.setAttribute(ATTR_HTTP_STATUS_CODE, response.status);\n if (response.statusText != null) {\n span.setAttribute(AttributeNames.HTTP_STATUS_TEXT, response.statusText);\n }\n span.setAttribute(ATTR_HTTP_HOST, parsedUrl.host);\n span.setAttribute(ATTR_HTTP_SCHEME, parsedUrl.protocol.replace(':', ''));\n if (typeof navigator !== 'undefined') {\n span.setAttribute(ATTR_HTTP_USER_AGENT, navigator.userAgent);\n }\n }\n if (this._semconvStability & SemconvStability.STABLE) {\n span.setAttribute(ATTR_HTTP_RESPONSE_STATUS_CODE, response.status);\n // TODO: Set server.{address,port} at span creation for sampling decisions\n // (a \"SHOULD\" requirement in semconv).\n span.setAttribute(ATTR_SERVER_ADDRESS, parsedUrl.hostname);\n const serverPort = serverPortFromUrl(parsedUrl);\n if (serverPort) {\n span.setAttribute(ATTR_SERVER_PORT, serverPort);\n }\n }\n }\n /**\n * Add headers\n * @param options\n * @param spanUrl\n */\n _addHeaders(options, spanUrl) {\n if (!web.shouldPropagateTraceHeaders(spanUrl, this.getConfig().propagateTraceHeaderCorsUrls)) {\n const headers = {};\n api.propagation.inject(api.context.active(), headers);\n if (Object.keys(headers).length > 0) {\n this._diag.debug('headers inject skipped due to CORS policy');\n }\n return;\n }\n if (options instanceof Request) {\n api.propagation.inject(api.context.active(), options.headers, {\n set: (h, k, v) => h.set(k, typeof v === 'string' ? v : String(v)),\n });\n }\n else if (options.headers instanceof Headers) {\n api.propagation.inject(api.context.active(), options.headers, {\n set: (h, k, v) => h.set(k, typeof v === 'string' ? v : String(v)),\n });\n }\n else if (options.headers instanceof Map) {\n api.propagation.inject(api.context.active(), options.headers, {\n set: (h, k, v) => h.set(k, typeof v === 'string' ? v : String(v)),\n });\n }\n else {\n const headers = {};\n api.propagation.inject(api.context.active(), headers);\n options.headers = Object.assign({}, headers, options.headers || {});\n }\n }\n /**\n * Clears the resource timings and all resources assigned with spans\n * when {@link FetchPluginConfig.clearTimingResources} is\n * set to true (default false)\n * @private\n */\n _clearResources() {\n if (this._tasksCount === 0 && this.getConfig().clearTimingResources) {\n performance.clearResourceTimings();\n this._usedResources = new WeakSet();\n }\n }\n /**\n * Creates a new span\n * @param url\n * @param options\n */\n _createSpan(url, options = {}) {\n if (core.isUrlIgnored(url, this.getConfig().ignoreUrls)) {\n this._diag.debug('ignoring span as url matches ignored url');\n return;\n }\n let name = '';\n const attributes = {};\n if (this._semconvStability & SemconvStability.OLD) {\n const method = (options.method || 'GET').toUpperCase();\n name = `HTTP ${method}`;\n attributes[AttributeNames.COMPONENT] = this.moduleName;\n attributes[ATTR_HTTP_METHOD] = method;\n attributes[ATTR_HTTP_URL] = url;\n }\n if (this._semconvStability & SemconvStability.STABLE) {\n const origMethod = options.method;\n const normMethod = normalizeHttpRequestMethod(options.method || 'GET');\n if (!name) {\n // The \"old\" span name wins if emitting both old and stable semconv\n // ('http/dup').\n name = normMethod;\n }\n attributes[ATTR_HTTP_REQUEST_METHOD] = normMethod;\n if (normMethod !== origMethod) {\n attributes[ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = origMethod;\n }\n attributes[ATTR_URL_FULL] = url;\n }\n return this.tracer.startSpan(name, {\n kind: api.SpanKind.CLIENT,\n attributes,\n });\n }\n /**\n * Finds appropriate resource and add network events to the span\n * @param span\n * @param resourcesObserver\n * @param endTime\n */\n _findResourceAndAddNetworkEvents(span, resourcesObserver, endTime) {\n let resources = resourcesObserver.entries;\n if (!resources.length) {\n if (!performance.getEntriesByType) {\n return;\n }\n // fallback - either Observer is not available or it took longer\n // then OBSERVER_WAIT_TIME_MS and observer didn't collect enough\n // information\n resources = performance.getEntriesByType('resource');\n }\n const resource = web.getResource(resourcesObserver.spanUrl, resourcesObserver.startTime, endTime, resources, this._usedResources, 'fetch');\n if (resource.mainRequest) {\n const mainRequest = resource.mainRequest;\n this._markResourceAsUsed(mainRequest);\n const corsPreFlightRequest = resource.corsPreFlightRequest;\n if (corsPreFlightRequest) {\n this._addChildSpan(span, corsPreFlightRequest);\n this._markResourceAsUsed(corsPreFlightRequest);\n }\n const skipOldSemconvContentLengthAttrs = !(this._semconvStability & SemconvStability.OLD);\n web.addSpanNetworkEvents(span, mainRequest, this.getConfig().ignoreNetworkEvents, undefined, skipOldSemconvContentLengthAttrs);\n }\n }\n /**\n * Marks certain [resource]{@link PerformanceResourceTiming} when information\n * from this is used to add events to span.\n * This is done to avoid reusing the same resource again for next span\n * @param resource\n */\n _markResourceAsUsed(resource) {\n this._usedResources.add(resource);\n }\n /**\n * Finish span, add attributes, network events etc.\n * @param span\n * @param spanData\n * @param response\n */\n _endSpan(span, spanData, response) {\n const endTime = core.millisToHrTime(Date.now());\n const performanceEndTime = core.hrTime();\n this._addFinalSpanAttributes(span, response);\n if (this._semconvStability & SemconvStability.STABLE) {\n // https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-spans.md#status\n if (response.status >= 400) {\n span.setStatus({ code: api.SpanStatusCode.ERROR });\n span.setAttribute(ATTR_ERROR_TYPE, String(response.status));\n }\n }\n setTimeout(() => {\n spanData.observer?.disconnect();\n this._findResourceAndAddNetworkEvents(span, spanData, performanceEndTime);\n this._tasksCount--;\n this._clearResources();\n span.end(endTime);\n }, OBSERVER_WAIT_TIME_MS);\n }\n /**\n * Patches the constructor of fetch\n */\n _patchConstructor() {\n return original => {\n const plugin = this;\n return function patchConstructor(...args) {\n const self = this;\n const url = web.parseUrl(args[0] instanceof Request ? args[0].url : String(args[0])).href;\n const options = args[0] instanceof Request ? args[0] : args[1] || {};\n const createdSpan = plugin._createSpan(url, options);\n if (!createdSpan) {\n return original.apply(this, args);\n }\n const spanData = plugin._prepareSpanData(url);\n if (plugin.getConfig().measureRequestSize) {\n getFetchBodyLength(...args)\n .then(bodyLength => {\n if (!bodyLength)\n return;\n if (plugin._semconvStability & SemconvStability.OLD) {\n createdSpan.setAttribute(ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED, bodyLength);\n }\n if (plugin._semconvStability & SemconvStability.STABLE) {\n createdSpan.setAttribute(ATTR_HTTP_REQUEST_BODY_SIZE, bodyLength);\n }\n })\n .catch(error => {\n plugin._diag.warn('getFetchBodyLength', error);\n });\n }\n function endSpanOnError(span, error) {\n plugin._applyAttributesAfterFetch(span, options, error);\n plugin._endSpan(span, spanData, {\n status: error.status || 0,\n statusText: error.message,\n url,\n });\n }\n function endSpanOnSuccess(span, response) {\n plugin._applyAttributesAfterFetch(span, options, response);\n if (response.status >= 200 && response.status < 400) {\n plugin._endSpan(span, spanData, response);\n }\n else {\n plugin._endSpan(span, spanData, {\n status: response.status,\n statusText: response.statusText,\n url,\n });\n }\n }\n function onSuccess(span, resolve, response) {\n try {\n const resClone = response.clone();\n const body = resClone.body;\n if (body) {\n const reader = body.getReader();\n const read = () => {\n reader.read().then(({ done }) => {\n if (done) {\n endSpanOnSuccess(span, response);\n }\n else {\n read();\n }\n }, error => {\n endSpanOnError(span, error);\n });\n };\n read();\n }\n else {\n // some older browsers don't have .body implemented\n endSpanOnSuccess(span, response);\n }\n }\n finally {\n resolve(response);\n }\n }\n function onError(span, reject, error) {\n try {\n endSpanOnError(span, error);\n }\n finally {\n reject(error);\n }\n }\n return new Promise((resolve, reject) => {\n return api.context.with(api.trace.setSpan(api.context.active(), createdSpan), () => {\n plugin._addHeaders(options, url);\n // Important to execute \"_callRequestHook\" after \"_addHeaders\", allowing the consumer code to override the request headers.\n plugin._callRequestHook(createdSpan, options);\n plugin._tasksCount++;\n // TypeScript complains about arrow function captured a this typed as globalThis\n // ts(7041)\n return original\n .apply(self, options instanceof Request ? [options] : [url, options])\n .then(onSuccess.bind(self, createdSpan, resolve), onError.bind(self, createdSpan, reject));\n });\n });\n };\n };\n }\n _applyAttributesAfterFetch(span, request, result) {\n const applyCustomAttributesOnSpan = this.getConfig().applyCustomAttributesOnSpan;\n if (applyCustomAttributesOnSpan) {\n safeExecuteInTheMiddle(() => applyCustomAttributesOnSpan(span, request, result), error => {\n if (!error) {\n return;\n }\n this._diag.error('applyCustomAttributesOnSpan', error);\n }, true);\n }\n }\n _callRequestHook(span, request) {\n const requestHook = this.getConfig().requestHook;\n if (requestHook) {\n safeExecuteInTheMiddle(() => requestHook(span, request), error => {\n if (!error) {\n return;\n }\n this._diag.error('requestHook', error);\n }, true);\n }\n }\n /**\n * Prepares a span data - needed later for matching appropriate network\n * resources\n * @param spanUrl\n */\n _prepareSpanData(spanUrl) {\n const startTime = core.hrTime();\n const entries = [];\n if (typeof PerformanceObserver !== 'function') {\n return { entries, startTime, spanUrl };\n }\n const observer = new PerformanceObserver(list => {\n const perfObsEntries = list.getEntries();\n perfObsEntries.forEach(entry => {\n if (entry.initiatorType === 'fetch' && entry.name === spanUrl) {\n entries.push(entry);\n }\n });\n });\n observer.observe({\n entryTypes: ['resource'],\n });\n return { entries, observer, startTime, spanUrl };\n }\n /**\n * implements enable function\n */\n enable() {\n if (isNode) {\n // Node.js v18+ *does* have a global `fetch()`, but this package does not\n // support instrumenting it.\n this._diag.warn(\"this instrumentation is intended for web usage only, it does not instrument Node.js's fetch()\");\n return;\n }\n if (isWrapped(fetch)) {\n this._unwrap(_globalThis, 'fetch');\n this._diag.debug('removing previous patch for constructor');\n }\n this._wrap(_globalThis, 'fetch', this._patchConstructor());\n }\n /**\n * implements unpatch function\n */\n disable() {\n if (isNode) {\n return;\n }\n this._unwrap(_globalThis, 'fetch');\n this._usedResources = new WeakSet();\n }\n}\n//# sourceMappingURL=fetch.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.\n *\n * @example www.example.org\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage.\n */\nexport const ATTR_HTTP_HOST = 'http.host';\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexport const ATTR_HTTP_METHOD = 'http.method';\n/**\n * The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HTTP_REQUEST_BODY_SIZE = 'http.request.body.size';\n/**\n * Deprecated, use `http.request.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.body.size`.\n */\nexport const ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = 'http.request_content_length_uncompressed';\n/**\n * Deprecated, use `http.response.header.<key>` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.header.<key>`.\n */\nexport const ATTR_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\n/**\n * Deprecated, use `url.scheme` instead.\n *\n * @example http\n * @example https\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.scheme` instead.\n */\nexport const ATTR_HTTP_SCHEME = 'http.scheme';\n/**\n * Deprecated, use `http.response.status_code` instead.\n *\n * @example 200\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.status_code`.\n */\nexport const ATTR_HTTP_STATUS_CODE = 'http.status_code';\n/**\n * Deprecated, use `url.full` instead.\n *\n * @example https://www.foo.bar/search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.full`.\n */\nexport const ATTR_HTTP_URL = 'http.url';\n/**\n * Deprecated, use `user_agent.original` instead.\n *\n * @example CERN-LineMode/2.15 libwww/2.17b3\n * @example Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `user_agent.original`.\n */\nexport const ATTR_HTTP_USER_AGENT = 'http.user_agent';\n//# sourceMappingURL=semconv.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var EventNames;\n(function (EventNames) {\n EventNames[\"METHOD_OPEN\"] = \"open\";\n EventNames[\"METHOD_SEND\"] = \"send\";\n EventNames[\"EVENT_ABORT\"] = \"abort\";\n EventNames[\"EVENT_ERROR\"] = \"error\";\n EventNames[\"EVENT_LOAD\"] = \"loaded\";\n EventNames[\"EVENT_TIMEOUT\"] = \"timeout\";\n})(EventNames || (EventNames = {}));\n//# sourceMappingURL=EventNames.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Much of the logic here overlaps with the same utils file in opentelemetry-instrumentation-fetch\n// These may be unified in the future.\nimport * as api from '@opentelemetry/api';\nimport { getStringListFromEnv } from '@opentelemetry/core';\nconst DIAG_LOGGER = api.diag.createComponentLogger({\n namespace: '@opentelemetry/opentelemetry-instrumentation-xml-http-request/utils',\n});\nfunction isDocument(value) {\n return typeof Document !== 'undefined' && value instanceof Document;\n}\n/**\n * Helper function to determine payload content length for XHR requests\n * @param body\n * @returns content length\n */\nexport function getXHRBodyLength(body) {\n if (isDocument(body)) {\n return new XMLSerializer().serializeToString(document).length;\n }\n // XMLHttpRequestBodyInit expands to the following:\n if (typeof body === 'string') {\n return getByteLength(body);\n }\n if (body instanceof Blob) {\n return body.size;\n }\n if (body instanceof FormData) {\n return getFormDataSize(body);\n }\n if (body instanceof URLSearchParams) {\n return getByteLength(body.toString());\n }\n // ArrayBuffer | ArrayBufferView\n if (body.byteLength !== undefined) {\n return body.byteLength;\n }\n DIAG_LOGGER.warn('unknown body type');\n return undefined;\n}\nconst TEXT_ENCODER = new TextEncoder();\nfunction getByteLength(s) {\n return TEXT_ENCODER.encode(s).byteLength;\n}\nfunction getFormDataSize(formData) {\n let size = 0;\n for (const [key, value] of formData.entries()) {\n size += key.length;\n if (value instanceof Blob) {\n size += value.size;\n }\n else {\n size += value.length;\n }\n }\n return size;\n}\n/**\n * Normalize an HTTP request method string per `http.request.method` spec\n * https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-spans.md#http-client-span\n */\nexport function normalizeHttpRequestMethod(method) {\n const knownMethods = getKnownMethods();\n const methUpper = method.toUpperCase();\n if (methUpper in knownMethods) {\n return methUpper;\n }\n else {\n return '_OTHER';\n }\n}\nconst DEFAULT_KNOWN_METHODS = {\n CONNECT: true,\n DELETE: true,\n GET: true,\n HEAD: true,\n OPTIONS: true,\n PATCH: true,\n POST: true,\n PUT: true,\n TRACE: true,\n};\nlet knownMethods;\nfunction getKnownMethods() {\n if (knownMethods === undefined) {\n const cfgMethods = getStringListFromEnv('OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS');\n if (cfgMethods && cfgMethods.length > 0) {\n knownMethods = {};\n cfgMethods.forEach(m => {\n knownMethods[m] = true;\n });\n }\n else {\n knownMethods = DEFAULT_KNOWN_METHODS;\n }\n }\n return knownMethods;\n}\nconst HTTP_PORT_FROM_PROTOCOL = {\n 'https:': '443',\n 'http:': '80',\n};\nexport function serverPortFromUrl(url) {\n const serverPort = Number(url.port || HTTP_PORT_FROM_PROTOCOL[url.protocol]);\n // Guard with `if (serverPort)` because `Number('') === 0`.\n if (serverPort && !isNaN(serverPort)) {\n return serverPort;\n }\n else {\n return undefined;\n }\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.202.0';\n//# sourceMappingURL=version.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md\n */\nexport var AttributeNames;\n(function (AttributeNames) {\n AttributeNames[\"HTTP_STATUS_TEXT\"] = \"http.status_text\";\n})(AttributeNames || (AttributeNames = {}));\n//# sourceMappingURL=AttributeNames.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as api from '@opentelemetry/api';\nimport { SemconvStability, semconvStabilityFromStr, isWrapped, InstrumentationBase, safeExecuteInTheMiddle, } from '@opentelemetry/instrumentation';\nimport { hrTime, isUrlIgnored, otperformance } from '@opentelemetry/core';\nimport { addSpanNetworkEvents, getResource, PerformanceTimingNames as PTN, shouldPropagateTraceHeaders, parseUrl, } from '@opentelemetry/sdk-trace-web';\nimport { ATTR_ERROR_TYPE, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_REQUEST_METHOD_ORIGINAL, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT, ATTR_URL_FULL, } from '@opentelemetry/semantic-conventions';\nimport { ATTR_HTTP_HOST, ATTR_HTTP_METHOD, ATTR_HTTP_SCHEME, ATTR_HTTP_STATUS_CODE, ATTR_HTTP_URL, ATTR_HTTP_USER_AGENT, ATTR_HTTP_REQUEST_BODY_SIZE, ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED, } from './semconv';\nimport { EventNames } from './enums/EventNames';\nimport { normalizeHttpRequestMethod, serverPortFromUrl, getXHRBodyLength, } from './utils';\nimport { VERSION } from './version';\nimport { AttributeNames } from './enums/AttributeNames';\n// how long to wait for observer to collect information about resources\n// this is needed as event \"load\" is called before observer\n// hard to say how long it should really wait, seems like 300ms is\n// safe enough\nconst OBSERVER_WAIT_TIME_MS = 300;\n/**\n * This class represents a XMLHttpRequest plugin for auto instrumentation\n */\nexport class XMLHttpRequestInstrumentation extends InstrumentationBase {\n component = 'xml-http-request';\n version = VERSION;\n moduleName = this.component;\n _tasksCount = 0;\n _xhrMem = new WeakMap();\n _usedResources = new WeakSet();\n _semconvStability;\n constructor(config = {}) {\n super('@opentelemetry/instrumentation-xml-http-request', VERSION, config);\n this._semconvStability = semconvStabilityFromStr('http', config?.semconvStabilityOptIn);\n }\n init() { }\n /**\n * Adds custom headers to XMLHttpRequest\n * @param xhr\n * @param spanUrl\n * @private\n */\n _addHeaders(xhr, spanUrl) {\n const url = parseUrl(spanUrl).href;\n if (!shouldPropagateTraceHeaders(url, this.getConfig().propagateTraceHeaderCorsUrls)) {\n const headers = {};\n api.propagation.inject(api.context.active(), headers);\n if (Object.keys(headers).length > 0) {\n this._diag.debug('headers inject skipped due to CORS policy');\n }\n return;\n }\n const headers = {};\n api.propagation.inject(api.context.active(), headers);\n Object.keys(headers).forEach(key => {\n xhr.setRequestHeader(key, String(headers[key]));\n });\n }\n /**\n * Add cors pre flight child span\n * @param span\n * @param corsPreFlightRequest\n * @private\n */\n _addChildSpan(span, corsPreFlightRequest) {\n api.context.with(api.trace.setSpan(api.context.active(), span), () => {\n const childSpan = this.tracer.startSpan('CORS Preflight', {\n startTime: corsPreFlightRequest[PTN.FETCH_START],\n });\n const skipOldSemconvContentLengthAttrs = !(this._semconvStability & SemconvStability.OLD);\n addSpanNetworkEvents(childSpan, corsPreFlightRequest, this.getConfig().ignoreNetworkEvents, undefined, skipOldSemconvContentLengthAttrs);\n childSpan.end(corsPreFlightRequest[PTN.RESPONSE_END]);\n });\n }\n /**\n * Add attributes when span is going to end\n * @param span\n * @param xhr\n * @param spanUrl\n * @private\n */\n _addFinalSpanAttributes(span, xhrMem, spanUrl) {\n if (this._semconvStability & SemconvStability.OLD) {\n if (xhrMem.status !== undefined) {\n span.setAttribute(ATTR_HTTP_STATUS_CODE, xhrMem.status);\n }\n if (xhrMem.statusText !== undefined) {\n span.setAttribute(AttributeNames.HTTP_STATUS_TEXT, xhrMem.statusText);\n }\n if (typeof spanUrl === 'string') {\n const parsedUrl = parseUrl(spanUrl);\n span.setAttribute(ATTR_HTTP_HOST, parsedUrl.host);\n span.setAttribute(ATTR_HTTP_SCHEME, parsedUrl.protocol.replace(':', ''));\n }\n // @TODO do we want to collect this or it will be collected earlier once only or\n // maybe when parent span is not available ?\n span.setAttribute(ATTR_HTTP_USER_AGENT, navigator.userAgent);\n }\n if (this._semconvStability & SemconvStability.STABLE) {\n if (xhrMem.status) {\n // Intentionally exclude status=0, because XHR uses 0 for before a\n // response is received and semconv says to only add the attribute if\n // received a response.\n span.setAttribute(ATTR_HTTP_RESPONSE_STATUS_CODE, xhrMem.status);\n }\n }\n }\n _applyAttributesAfterXHR(span, xhr) {\n const applyCustomAttributesOnSpan = this.getConfig().applyCustomAttributesOnSpan;\n if (typeof applyCustomAttributesOnSpan === 'function') {\n safeExecuteInTheMiddle(() => applyCustomAttributesOnSpan(span, xhr), error => {\n if (!error) {\n return;\n }\n this._diag.error('applyCustomAttributesOnSpan', error);\n }, true);\n }\n }\n /**\n * will collect information about all resources created\n * between \"send\" and \"end\" with additional waiting for main resource\n * @param xhr\n * @param spanUrl\n * @private\n */\n _addResourceObserver(xhr, spanUrl) {\n const xhrMem = this._xhrMem.get(xhr);\n if (!xhrMem ||\n typeof PerformanceObserver !== 'function' ||\n typeof PerformanceResourceTiming !== 'function') {\n return;\n }\n xhrMem.createdResources = {\n observer: new PerformanceObserver(list => {\n const entries = list.getEntries();\n const parsedUrl = parseUrl(spanUrl);\n entries.forEach(entry => {\n if (entry.initiatorType === 'xmlhttprequest' &&\n entry.name === parsedUrl.href) {\n if (xhrMem.createdResources) {\n xhrMem.createdResources.entries.push(entry);\n }\n }\n });\n }),\n entries: [],\n };\n xhrMem.createdResources.observer.observe({\n entryTypes: ['resource'],\n });\n }\n /**\n * Clears the resource timings and all resources assigned with spans\n * when {@link XMLHttpRequestInstrumentationConfig.clearTimingResources} is\n * set to true (default false)\n * @private\n */\n _clearResources() {\n if (this._tasksCount === 0 && this.getConfig().clearTimingResources) {\n otperformance.clearResourceTimings();\n this._xhrMem = new WeakMap();\n this._usedResources = new WeakSet();\n }\n }\n /**\n * Finds appropriate resource and add network events to the span\n * @param span\n */\n _findResourceAndAddNetworkEvents(xhrMem, span, spanUrl, startTime, endTime) {\n if (!spanUrl || !startTime || !endTime || !xhrMem.createdResources) {\n return;\n }\n let resources = xhrMem.createdResources.entries;\n if (!resources || !resources.length) {\n // fallback - either Observer is not available or it took longer\n // then OBSERVER_WAIT_TIME_MS and observer didn't collect enough\n // information\n // ts thinks this is the perf_hooks module, but it is the browser performance api\n resources = otperformance.getEntriesByType('resource');\n }\n const resource = getResource(parseUrl(spanUrl).href, startTime, endTime, resources, this._usedResources);\n if (resource.mainRequest) {\n const mainRequest = resource.mainRequest;\n this._markResourceAsUsed(mainRequest);\n const corsPreFlightRequest = resource.corsPreFlightRequest;\n if (corsPreFlightRequest) {\n this._addChildSpan(span, corsPreFlightRequest);\n this._markResourceAsUsed(corsPreFlightRequest);\n }\n const skipOldSemconvContentLengthAttrs = !(this._semconvStability & SemconvStability.OLD);\n addSpanNetworkEvents(span, mainRequest, this.getConfig().ignoreNetworkEvents, undefined, skipOldSemconvContentLengthAttrs);\n }\n }\n /**\n * Removes the previous information about span.\n * This might happened when the same xhr is used again.\n * @param xhr\n * @private\n */\n _cleanPreviousSpanInformation(xhr) {\n const xhrMem = this._xhrMem.get(xhr);\n if (xhrMem) {\n const callbackToRemoveEvents = xhrMem.callbackToRemoveEvents;\n if (callbackToRemoveEvents) {\n callbackToRemoveEvents();\n }\n this._xhrMem.delete(xhr);\n }\n }\n /**\n * Creates a new span when method \"open\" is called\n * @param xhr\n * @param url\n * @param method\n * @private\n */\n _createSpan(xhr, url, method) {\n if (isUrlIgnored(url, this.getConfig().ignoreUrls)) {\n this._diag.debug('ignoring span as url matches ignored url');\n return;\n }\n let name = '';\n const parsedUrl = parseUrl(url);\n const attributes = {};\n if (this._semconvStability & SemconvStability.OLD) {\n name = method.toUpperCase();\n attributes[ATTR_HTTP_METHOD] = method;\n attributes[ATTR_HTTP_URL] = parsedUrl.toString();\n }\n if (this._semconvStability & SemconvStability.STABLE) {\n const origMethod = method;\n const normMethod = normalizeHttpRequestMethod(method);\n if (!name) {\n // The \"old\" span name wins if emitting both old and stable semconv\n // ('http/dup').\n name = normMethod;\n }\n attributes[ATTR_HTTP_REQUEST_METHOD] = normMethod;\n if (normMethod !== origMethod) {\n attributes[ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = origMethod;\n }\n attributes[ATTR_URL_FULL] = parsedUrl.toString();\n attributes[ATTR_SERVER_ADDRESS] = parsedUrl.hostname;\n const serverPort = serverPortFromUrl(parsedUrl);\n if (serverPort) {\n attributes[ATTR_SERVER_PORT] = serverPort;\n }\n }\n const currentSpan = this.tracer.startSpan(name, {\n kind: api.SpanKind.CLIENT,\n attributes,\n });\n currentSpan.addEvent(EventNames.METHOD_OPEN);\n this._cleanPreviousSpanInformation(xhr);\n this._xhrMem.set(xhr, {\n span: currentSpan,\n spanUrl: url,\n });\n return currentSpan;\n }\n /**\n * Marks certain [resource]{@link PerformanceResourceTiming} when information\n * from this is used to add events to span.\n * This is done to avoid reusing the same resource again for next span\n * @param resource\n * @private\n */\n _markResourceAsUsed(resource) {\n this._usedResources.add(resource);\n }\n /**\n * Patches the method open\n * @private\n */\n _patchOpen() {\n return (original) => {\n const plugin = this;\n return function patchOpen(...args) {\n const method = args[0];\n const url = args[1];\n plugin._createSpan(this, url, method);\n return original.apply(this, args);\n };\n };\n }\n /**\n * Patches the method send\n * @private\n */\n _patchSend() {\n const plugin = this;\n function endSpanTimeout(eventName, xhrMem, performanceEndTime, endTime) {\n const callbackToRemoveEvents = xhrMem.callbackToRemoveEvents;\n if (typeof callbackToRemoveEvents === 'function') {\n callbackToRemoveEvents();\n }\n const { span, spanUrl, sendStartTime } = xhrMem;\n if (span) {\n plugin._findResourceAndAddNetworkEvents(xhrMem, span, spanUrl, sendStartTime, performanceEndTime);\n span.addEvent(eventName, endTime);\n plugin._addFinalSpanAttributes(span, xhrMem, spanUrl);\n span.end(endTime);\n plugin._tasksCount--;\n }\n plugin._clearResources();\n }\n function endSpan(eventName, xhr, isError, errorType) {\n const xhrMem = plugin._xhrMem.get(xhr);\n if (!xhrMem) {\n return;\n }\n xhrMem.status = xhr.status;\n xhrMem.statusText = xhr.statusText;\n plugin._xhrMem.delete(xhr);\n if (xhrMem.span) {\n const span = xhrMem.span;\n plugin._applyAttributesAfterXHR(span, xhr);\n if (plugin._semconvStability & SemconvStability.STABLE) {\n if (isError) {\n if (errorType) {\n span.setStatus({\n code: api.SpanStatusCode.ERROR,\n message: errorType,\n });\n span.setAttribute(ATTR_ERROR_TYPE, errorType);\n }\n }\n else if (xhrMem.status && xhrMem.status >= 400) {\n span.setStatus({ code: api.SpanStatusCode.ERROR });\n span.setAttribute(ATTR_ERROR_TYPE, String(xhrMem.status));\n }\n }\n }\n const performanceEndTime = hrTime();\n const endTime = Date.now();\n // the timeout is needed as observer doesn't have yet information\n // when event \"load\" is called. Also the time may differ depends on\n // browser and speed of computer\n setTimeout(() => {\n endSpanTimeout(eventName, xhrMem, performanceEndTime, endTime);\n }, OBSERVER_WAIT_TIME_MS);\n }\n function onError() {\n endSpan(EventNames.EVENT_ERROR, this, true, 'error');\n }\n function onAbort() {\n endSpan(EventNames.EVENT_ABORT, this, false);\n }\n function onTimeout() {\n endSpan(EventNames.EVENT_TIMEOUT, this, true, 'timeout');\n }\n function onLoad() {\n if (this.status < 299) {\n endSpan(EventNames.EVENT_LOAD, this, false);\n }\n else {\n endSpan(EventNames.EVENT_ERROR, this, false);\n }\n }\n function unregister(xhr) {\n xhr.removeEventListener('abort', onAbort);\n xhr.removeEventListener('error', onError);\n xhr.removeEventListener('load', onLoad);\n xhr.removeEventListener('timeout', onTimeout);\n const xhrMem = plugin._xhrMem.get(xhr);\n if (xhrMem) {\n xhrMem.callbackToRemoveEvents = undefined;\n }\n }\n return (original) => {\n return function patchSend(...args) {\n const xhrMem = plugin._xhrMem.get(this);\n if (!xhrMem) {\n return original.apply(this, args);\n }\n const currentSpan = xhrMem.span;\n const spanUrl = xhrMem.spanUrl;\n if (currentSpan && spanUrl) {\n if (plugin.getConfig().measureRequestSize && args?.[0]) {\n const body = args[0];\n const bodyLength = getXHRBodyLength(body);\n if (bodyLength !== undefined) {\n if (plugin._semconvStability & SemconvStability.OLD) {\n currentSpan.setAttribute(ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED, bodyLength);\n }\n if (plugin._semconvStability & SemconvStability.STABLE) {\n currentSpan.setAttribute(ATTR_HTTP_REQUEST_BODY_SIZE, bodyLength);\n }\n }\n }\n api.context.with(api.trace.setSpan(api.context.active(), currentSpan), () => {\n plugin._tasksCount++;\n xhrMem.sendStartTime = hrTime();\n currentSpan.addEvent(EventNames.METHOD_SEND);\n this.addEventListener('abort', onAbort);\n this.addEventListener('error', onError);\n this.addEventListener('load', onLoad);\n this.addEventListener('timeout', onTimeout);\n xhrMem.callbackToRemoveEvents = () => {\n unregister(this);\n if (xhrMem.createdResources) {\n xhrMem.createdResources.observer.disconnect();\n }\n };\n plugin._addHeaders(this, spanUrl);\n plugin._addResourceObserver(this, spanUrl);\n });\n }\n return original.apply(this, args);\n };\n };\n }\n /**\n * implements enable function\n */\n enable() {\n this._diag.debug('applying patch to', this.moduleName, this.version);\n if (isWrapped(XMLHttpRequest.prototype.open)) {\n this._unwrap(XMLHttpRequest.prototype, 'open');\n this._diag.debug('removing previous patch from method open');\n }\n if (isWrapped(XMLHttpRequest.prototype.send)) {\n this._unwrap(XMLHttpRequest.prototype, 'send');\n this._diag.debug('removing previous patch from method send');\n }\n this._wrap(XMLHttpRequest.prototype, 'open', this._patchOpen());\n this._wrap(XMLHttpRequest.prototype, 'send', this._patchSend());\n }\n /**\n * implements disable function\n */\n disable() {\n this._diag.debug('removing patch from', this.moduleName, this.version);\n this._unwrap(XMLHttpRequest.prototype, 'open');\n this._unwrap(XMLHttpRequest.prototype, 'send');\n this._tasksCount = 0;\n this._xhrMem = new WeakMap();\n this._usedResources = new WeakSet();\n }\n}\n//# sourceMappingURL=xhr.js.map","import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';\nimport { faro, getUrlFromResource } from '@grafana/faro-web-sdk';\nexport class FaroXhrInstrumentation extends XMLHttpRequestInstrumentation {\n constructor(config = {}) {\n super(config);\n const self = this;\n this.parentCreateSpan = self._createSpan.bind(this);\n }\n // Patching the parent's private method to handle url type string or URL\n _patchOpen() {\n return (original) => {\n const plugin = this;\n return function patchOpen(...args) {\n try {\n const method = args[0];\n let url = getUrlFromResource(args[1]);\n plugin.parentCreateSpan(this, url, method);\n }\n catch (error) {\n faro.internalLogger.error(error);\n }\n return original.apply(this, args);\n };\n };\n }\n}\n//# sourceMappingURL=faroXhrInstrumentation.js.map","import { SpanStatusCode } from '@opentelemetry/api';\n/**\n * Adds HTTP status code to every span.\n *\n * The fetch instrumentation does not always set the span status to error as defined by the spec.\n * To work around that issue we manually set the span status.\n *\n * Issue: https://github.com/open-telemetry/opentelemetry-js/issues/3564\n * Spec: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.20.0/specification/trace/semantic_conventions/http.md#status\n */\nexport function setSpanStatusOnFetchError(span, _request, result) {\n const httpStatusCode = result instanceof Error ? 0 : result.status;\n setSpanStatus(span, httpStatusCode);\n}\nexport function setSpanStatusOnXMLHttpRequestError(span, xhr) {\n setSpanStatus(span, xhr.status);\n}\nfunction setSpanStatus(span, httpStatusCode) {\n if (httpStatusCode == null) {\n return;\n }\n const isError = httpStatusCode === 0;\n const isClientOrServerError = httpStatusCode >= 400 && httpStatusCode < 600;\n if (isError || isClientOrServerError) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n}\nexport function fetchCustomAttributeFunctionWithDefaults(callback) {\n return (span, request, result) => {\n setSpanStatusOnFetchError(span, request, result);\n callback === null || callback === void 0 ? void 0 : callback(span, request, result);\n };\n}\nexport function xhrCustomAttributeFunctionWithDefaults(callback) {\n return (span, xhr) => {\n setSpanStatusOnXMLHttpRequestError(span, xhr);\n callback === null || callback === void 0 ? void 0 : callback(span, xhr);\n };\n}\n//# sourceMappingURL=instrumentationUtils.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch';\nimport { FaroXhrInstrumentation } from './faroXhrInstrumentation';\nimport { fetchCustomAttributeFunctionWithDefaults, xhrCustomAttributeFunctionWithDefaults, } from './instrumentationUtils';\nexport function getDefaultOTELInstrumentations(options = {}) {\n const { fetchInstrumentationOptions, xhrInstrumentationOptions } = options, sharedOptions = __rest(options, [\"fetchInstrumentationOptions\", \"xhrInstrumentationOptions\"]);\n const fetchOpts = createFetchInstrumentationOptions(fetchInstrumentationOptions, sharedOptions);\n const xhrOpts = createXhrInstrumentationOptions(xhrInstrumentationOptions, sharedOptions);\n return [new FetchInstrumentation(fetchOpts), new FaroXhrInstrumentation(xhrOpts)];\n}\nfunction createFetchInstrumentationOptions(fetchInstrumentationOptions, sharedOptions) {\n return Object.assign(Object.assign(Object.assign(Object.assign({}, sharedOptions), { ignoreNetworkEvents: true }), fetchInstrumentationOptions), { \n // always keep this function\n applyCustomAttributesOnSpan: fetchCustomAttributeFunctionWithDefaults(fetchInstrumentationOptions === null || fetchInstrumentationOptions === void 0 ? void 0 : fetchInstrumentationOptions.applyCustomAttributesOnSpan) });\n}\nfunction createXhrInstrumentationOptions(xhrInstrumentationOptions, sharedOptions) {\n return Object.assign(Object.assign(Object.assign(Object.assign({}, sharedOptions), { ignoreNetworkEvents: true }), xhrInstrumentationOptions), { \n // always keep this function\n applyCustomAttributesOnSpan: xhrCustomAttributeFunctionWithDefaults(xhrInstrumentationOptions === null || xhrInstrumentationOptions === void 0 ? void 0 : xhrInstrumentationOptions.applyCustomAttributesOnSpan) });\n}\n//# sourceMappingURL=getDefaultOTELInstrumentations.js.map","import { SamplingDecision } from '@opentelemetry/sdk-trace-web';\nexport function getSamplingDecision(sessionMeta = {}) {\n var _a;\n const isSessionSampled = ((_a = sessionMeta.attributes) === null || _a === void 0 ? void 0 : _a['isSampled']) === 'true';\n const samplingDecision = isSessionSampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD;\n return samplingDecision;\n}\n//# sourceMappingURL=sampler.js.map","import { context, trace } from '@opentelemetry/api';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport { BatchSpanProcessor, WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION, ATTR_USER_AGENT_ORIGINAL, SEMRESATTRS_DEPLOYMENT_ENVIRONMENT, } from '@opentelemetry/semantic-conventions';\nimport { BaseInstrumentation, isArray, VERSION } from '@grafana/faro-web-sdk';\nimport { FaroMetaAttributesSpanProcessor } from './faroMetaAttributesSpanProcessor';\nimport { FaroTraceExporter } from './faroTraceExporter';\nimport { FaroUserActionSpanProcessor } from './faroUserActionSpanProcessor';\nimport { getDefaultOTELInstrumentations } from './getDefaultOTELInstrumentations';\nimport { getSamplingDecision } from './sampler';\nimport { ATTR_BROWSER_BRANDS, ATTR_BROWSER_LANGUAGE, ATTR_BROWSER_MOBILE, ATTR_BROWSER_PLATFORM, ATTR_DEPLOYMENT_ENVIRONMENT_NAME, ATTR_PROCESS_RUNTIME_NAME, ATTR_PROCESS_RUNTIME_VERSION, ATTR_SERVICE_NAMESPACE, ATTR_TELEMETRY_DISTRO_NAME, ATTR_TELEMETRY_DISTRO_VERSION, } from './semconv';\n// the providing of app name here is not great\n// should delay initialization and provide the full Faro config,\n// taking app name from it\nexport class TracingInstrumentation extends BaseInstrumentation {\n constructor(options = {}) {\n super();\n this.options = options;\n this.name = '@grafana/faro-web-tracing';\n this.version = VERSION;\n }\n initialize() {\n var _a, _b, _c, _d, _e;\n const options = this.options;\n const attributes = {};\n if (this.config.app.name) {\n attributes[ATTR_SERVICE_NAME] = this.config.app.name;\n }\n if (this.config.app.namespace) {\n attributes[ATTR_SERVICE_NAMESPACE] = this.config.app.namespace;\n }\n if (this.config.app.version) {\n attributes[ATTR_SERVICE_VERSION] = this.config.app.version;\n }\n if (this.config.app.environment) {\n attributes[ATTR_DEPLOYMENT_ENVIRONMENT_NAME] = this.config.app.environment;\n /**\n * @deprecated will be removed in the future and has been replaced by ATTR_DEPLOYMENT_ENVIRONMENT_NAME (deployment.environment.name)\n */\n attributes[SEMRESATTRS_DEPLOYMENT_ENVIRONMENT] = this.config.app.environment;\n }\n const browserMeta = this.metas.value.browser;\n if (isArray(browserMeta === null || browserMeta === void 0 ? void 0 : browserMeta.brands)) {\n attributes[ATTR_BROWSER_BRANDS] = browserMeta.brands.map((entry) => entry.brand);\n }\n if (browserMeta === null || browserMeta === void 0 ? void 0 : browserMeta.language) {\n attributes[ATTR_BROWSER_LANGUAGE] = browserMeta.language;\n }\n if (typeof (browserMeta === null || browserMeta === void 0 ? void 0 : browserMeta.mobile) === 'boolean') {\n attributes[ATTR_BROWSER_MOBILE] = Boolean(browserMeta.mobile);\n }\n if (browserMeta === null || browserMeta === void 0 ? void 0 : browserMeta.os) {\n attributes[ATTR_BROWSER_PLATFORM] = browserMeta.os;\n }\n if (browserMeta === null || browserMeta === void 0 ? void 0 : browserMeta.userAgent) {\n attributes[ATTR_USER_AGENT_ORIGINAL] = browserMeta.userAgent;\n }\n attributes[ATTR_PROCESS_RUNTIME_NAME] = 'browser';\n attributes[ATTR_PROCESS_RUNTIME_VERSION] = (_a = this.metas.value.browser) === null || _a === void 0 ? void 0 : _a.userAgent;\n attributes[ATTR_TELEMETRY_DISTRO_NAME] = 'faro-web-sdk';\n attributes[ATTR_TELEMETRY_DISTRO_VERSION] = VERSION;\n Object.assign(attributes, options.resourceAttributes);\n const resource = defaultResource().merge(resourceFromAttributes(attributes));\n const provider = new WebTracerProvider({\n resource,\n sampler: {\n shouldSample: () => {\n return {\n decision: getSamplingDecision(this.api.getSession()),\n };\n },\n },\n spanProcessors: [\n (_b = options.spanProcessor) !== null && _b !== void 0 ? _b : new FaroUserActionSpanProcessor(new FaroMetaAttributesSpanProcessor(new BatchSpanProcessor(new FaroTraceExporter({ api: this.api }), {\n scheduledDelayMillis: TracingInstrumentation.SCHEDULED_BATCH_DELAY_MS,\n maxExportBatchSize: 30,\n }), this.metas)),\n ],\n });\n provider.register({\n propagator: (_c = options.propagator) !== null && _c !== void 0 ? _c : new W3CTraceContextPropagator(),\n contextManager: options.contextManager,\n });\n const { propagateTraceHeaderCorsUrls, fetchInstrumentationOptions, xhrInstrumentationOptions } = (_d = this.options.instrumentationOptions) !== null && _d !== void 0 ? _d : {};\n registerInstrumentations({\n instrumentations: (_e = options.instrumentations) !== null && _e !== void 0 ? _e : getDefaultOTELInstrumentations({\n ignoreUrls: this.getIgnoreUrls(),\n propagateTraceHeaderCorsUrls,\n fetchInstrumentationOptions,\n xhrInstrumentationOptions,\n }),\n });\n this.api.initOTEL(trace, context);\n }\n getIgnoreUrls() {\n return this.transports.transports.flatMap((transport) => transport.getIgnoreUrls());\n }\n}\nTracingInstrumentation.SCHEDULED_BATCH_DELAY_MS = 1000;\n//# sourceMappingURL=instrumentation.js.map","import { BaseTransport, TransportItem } from '@grafana/faro-core';\nimport { getEchoSrv, EchoEventType, config } from '@grafana/runtime';\n\ninterface EchoSrcTransportOptions {\n ignoreUrls: RegExp[];\n}\n\nexport class EchoSrvTransport extends BaseTransport {\n readonly name: string = 'EchoSrvTransport';\n readonly version: string = config.buildInfo.version;\n private ignoreUrls: RegExp[] = [];\n\n constructor(options?: EchoSrcTransportOptions) {\n super();\n\n this.ignoreUrls = options?.ignoreUrls ?? [];\n }\n\n send(items: TransportItem[]) {\n getEchoSrv().addEvent({\n type: EchoEventType.GrafanaJavascriptAgent,\n payload: items,\n });\n }\n\n isBatched() {\n return true;\n }\n\n getIgnoreUrls() {\n return this.ignoreUrls;\n }\n}\n","import { TransportItem } from '@grafana/faro-core';\n\n// as listed in https://grafana.com/docs/grafana-cloud/monitor-applications/frontend-observability/instrument/filter-bots/#filter-out-bots-from-collecting-data-for-frontend-observability\nconst bots =\n '(googlebot|googlebot-mobile|googlebot-image|google favicon|mediapartners-google|' +\n 'bingbot|slurp|commons-httpclient|python-urllib|libwww|httpunit|nutch|phpcrawl|' +\n 'msnbot|jyxobot|fast-webcrawler|fast enterprise crawler|biglotron|teoma|convera|' +\n 'seekbot|gigablast|exabot|ngbot|ia_archiver|gingercrawler|webmon |httrack|' +\n 'webcrawler|grub.org|usinenouvellecrawler|antibot|netresearchserver|speedy|fluffy|' +\n 'bibnum.bnf|findlink|msrbot|panscient|yacybot|aisearchbot|ioi|ips-agent|tagoobot|' +\n 'mj12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|linguee bot|voyager|' +\n 'cyberpatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|' +\n 'scribdbot|page2rss|sitebot|linkdex|adidxbot|blekkobot|ezooms|mail.ru_bot|discobot|' +\n 'heritrix|findthatfile|europarchive.org|nerdbynature.bot|sistrix crawler|ahrefsbot|' +\n 'aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|' +\n 'gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|retrevopageanalyzer|lb-spider|' +\n 'sogou|lssbot|careerbot|wotbox|wocbot|ichiro|duckduckbot|lssrocketcrawler|drupact|' +\n 'webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|' +\n 'backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|' +\n 'it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|' +\n 'changedetection|blexbot|arabot|wesee:search|niki-bot|crystalsemanticsbot|rogerbot|' +\n '360spider|psbot|interfaxscanbot|lipperhey seo service|cc metadata scraper|g00g1e.net|' +\n 'grapeshotcrawler|urlappendbot|brainobot|fr-crawler|binlar|simplecrawler|livelapbot|' +\n 'twitterbot|cxensebot|smtbot|bnf.fr_bot|a6-indexer|admantx|facebot|orangebot|' +\n 'memorybot|advbot|megaindex|semanticscholarbot|ltx71|nerdybot|xovibot|bubing|' +\n 'qwantify|archive.org_bot|applebot|tweetmemebot|crawler4j|findxbot|semrushbot|' +\n 'yoozbot|lipperhey|y!j-asr|domain re-animator bot|addthis|bytespider)';\n\nconst botsRegex = new RegExp(bots);\n\nexport function beforeSendHandler(botFilterEnabled: boolean, item: TransportItem): TransportItem | null {\n if (!botFilterEnabled) {\n return item;\n }\n\n if (typeof item.meta.browser?.userAgent !== 'string') {\n return null;\n }\n\n const userAgent = item.meta.browser?.userAgent?.trim().toLowerCase();\n if (!userAgent) {\n return null;\n }\n\n if (userAgent.length > 512) {\n return null;\n }\n\n try {\n const isBot = botsRegex.test(userAgent);\n return isBot ? null : item;\n } catch (error) {\n return null;\n }\n}\n","import { escapeRegex } from '@grafana/data';\nimport { BaseTransport, defaultInternalLoggerLevel } from '@grafana/faro-core';\nimport {\n initializeFaro,\n BrowserConfig,\n FetchTransport,\n getWebInstrumentations,\n type Instrumentation,\n} from '@grafana/faro-web-sdk';\nimport { TracingInstrumentation } from '@grafana/faro-web-tracing';\nimport { EchoBackend, EchoEvent, EchoEventType } from '@grafana/runtime';\n\nimport { EchoSrvTransport } from './EchoSrvTransport';\nimport { beforeSendHandler } from './beforeSendHandler';\nimport { GrafanaJavascriptAgentBackendOptions, GrafanaJavascriptAgentEchoEvent } from './types';\n\nfunction isCrossOriginIframe() {\n try {\n return document.location.hostname !== window.parent.location.hostname;\n } catch (e) {\n return true;\n }\n}\n\nexport const TRACKING_URLS = [\n /\\.(google-analytics|googletagmanager)\\.com/,\n /frontend-metrics/,\n /\\/collect(?:\\/[\\w]*)?$/,\n];\n\nexport class GrafanaJavascriptAgentBackend\n implements EchoBackend<GrafanaJavascriptAgentEchoEvent, GrafanaJavascriptAgentBackendOptions>\n{\n supportedEvents = [EchoEventType.GrafanaJavascriptAgent];\n\n constructor(public options: GrafanaJavascriptAgentBackendOptions) {\n // configure instrumentations.\n const instrumentations: Instrumentation[] = [\n ...getWebInstrumentations({\n captureConsole: options.consoleInstrumentalizationEnabled,\n enablePerformanceInstrumentation: options.performanceInstrumentalizationEnabled,\n enableContentSecurityPolicyInstrumentation: options.cspInstrumentalizationEnabled,\n }),\n ];\n\n if (options.tracingInstrumentalizationEnabled) {\n instrumentations.push(new TracingInstrumentation());\n }\n\n const ignoreUrls = [...TRACKING_URLS, ...options.ignoreUrls];\n if (options.customEndpoint) {\n ignoreUrls.unshift(new RegExp(`.*${escapeRegex(options.customEndpoint)}.*`));\n }\n\n const transports: BaseTransport[] = [new EchoSrvTransport({ ignoreUrls })];\n\n // If in cross origin iframe, default to writing to instance logging endpoint\n if (options.customEndpoint && !isCrossOriginIframe()) {\n transports.push(new FetchTransport({ url: options.customEndpoint, apiKey: options.apiKey }));\n }\n\n // initialize GrafanaJavascriptAgent so it can set up its hooks and start collecting errors\n const grafanaJavaScriptAgentOptions: BrowserConfig = {\n app: {\n name: 'grafana-frontend',\n version: options.buildInfo.version,\n environment: options.buildInfo.env,\n },\n\n user: {\n id: options.userIdentifier,\n },\n\n instrumentations: instrumentations,\n transports,\n\n consoleInstrumentation: {\n serializeErrors: true,\n },\n trackWebVitalsAttribution: options.webVitalsAttribution,\n ignoreErrors: [\n 'ResizeObserver loop limit exceeded',\n 'ResizeObserver loop completed',\n 'Non-Error exception captured with keys',\n 'Failed sending payload to the receiver',\n ],\n ignoreUrls,\n sessionTracking: {\n persistent: true,\n },\n batching: {\n sendTimeout: 1000,\n },\n beforeSend: (item) => beforeSendHandler(options.botFilterEnabled, item),\n internalLoggerLevel: options.internalLoggerLevel ?? defaultInternalLoggerLevel,\n };\n\n initializeFaro(grafanaJavaScriptAgentOptions);\n }\n\n // noop because the EchoSrvTransport registered in Faro will already broadcast all signals emitted by the Faro API\n addEvent = (e: EchoEvent) => {};\n\n // backend will log events to stdout, and at least in case of hosted grafana they will be\n // ingested into Loki. Due to Loki limitations logs cannot be backdated,\n // so not using buffering for this backend to make sure that events are logged as close\n // to their context as possible\n flush = () => {};\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ContextAPI } from './api/context';\n/** Entrypoint for context API */\nexport var context = ContextAPI.getInstance();\n//# sourceMappingURL=context-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getGlobal } from '../internal/global-utils';\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nvar DiagComponentLogger = /** @class */ (function () {\n function DiagComponentLogger(props) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n DiagComponentLogger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('debug', this._namespace, args);\n };\n DiagComponentLogger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('error', this._namespace, args);\n };\n DiagComponentLogger.prototype.info = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('info', this._namespace, args);\n };\n DiagComponentLogger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('warn', this._namespace, args);\n };\n DiagComponentLogger.prototype.verbose = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('verbose', this._namespace, args);\n };\n return DiagComponentLogger;\n}());\nexport { DiagComponentLogger };\nfunction logProxy(funcName, namespace, args) {\n var logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n args.unshift(namespace);\n return logger[funcName].apply(logger, __spreadArray([], __read(args), false));\n}\n//# sourceMappingURL=ComponentLogger.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DiagLogLevel } from '../types';\nexport function createLogLevelDiagLogger(maxLevel, logger) {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n }\n else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n // In case the logger is null or undefined\n logger = logger || {};\n function _filterFunc(funcName, theLevel) {\n var theFunc = logger[funcName];\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () { };\n }\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n//# sourceMappingURL=logLevelLogger.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport { DiagLogLevel, } from '../diag/types';\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nvar API_NAME = 'diag';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nvar DiagAPI = /** @class */ (function () {\n /**\n * Private internal constructor\n * @private\n */\n function DiagAPI() {\n function _logProxy(funcName) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger)\n return;\n return logger[funcName].apply(logger, __spreadArray([], __read(args), false));\n };\n }\n // Using self local variable for minification purposes as 'this' cannot be minified\n var self = this;\n // DiagAPI specific functions\n var setLogger = function (logger, optionsOrLogLevel) {\n var _a, _b, _c;\n if (optionsOrLogLevel === void 0) { optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }; }\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation');\n self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);\n return false;\n }\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n var oldLogger = getGlobal('diag');\n var newLogger = createLogLevelDiagLogger((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : DiagLogLevel.INFO, logger);\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n var stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : '<failed to generate stacktrace>';\n oldLogger.warn(\"Current logger will be overwritten from \" + stack);\n newLogger.warn(\"Current logger will overwrite one already registered from \" + stack);\n }\n return registerGlobal('diag', newLogger, self, true);\n };\n self.setLogger = setLogger;\n self.disable = function () {\n unregisterGlobal(API_NAME, self);\n };\n self.createComponentLogger = function (options) {\n return new DiagComponentLogger(options);\n };\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n /** Get the singleton instance of the DiagAPI API */\n DiagAPI.instance = function () {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n return this._instance;\n };\n return DiagAPI;\n}());\nexport { DiagAPI };\n//# sourceMappingURL=diag.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var TraceFlags;\n(function (TraceFlags) {\n /** Represents no flag set. */\n TraceFlags[TraceFlags[\"NONE\"] = 0] = \"NONE\";\n /** Bit to represent whether trace is sampled in trace flags. */\n TraceFlags[TraceFlags[\"SAMPLED\"] = 1] = \"SAMPLED\";\n})(TraceFlags || (TraceFlags = {}));\n//# sourceMappingURL=trace_flags.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * No-op implementations of {@link TextMapPropagator}.\n */\nvar NoopTextMapPropagator = /** @class */ (function () {\n function NoopTextMapPropagator() {\n }\n /** Noop inject function does nothing */\n NoopTextMapPropagator.prototype.inject = function (_context, _carrier) { };\n /** Noop extract function does nothing and returns the input context */\n NoopTextMapPropagator.prototype.extract = function (context, _carrier) {\n return context;\n };\n NoopTextMapPropagator.prototype.fields = function () {\n return [];\n };\n return NoopTextMapPropagator;\n}());\nexport { NoopTextMapPropagator };\n//# sourceMappingURL=NoopTextMapPropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var defaultTextMapGetter = {\n get: function (carrier, key) {\n if (carrier == null) {\n return undefined;\n }\n return carrier[key];\n },\n keys: function (carrier) {\n if (carrier == null) {\n return [];\n }\n return Object.keys(carrier);\n },\n};\nexport var defaultTextMapSetter = {\n set: function (carrier, key, value) {\n if (carrier == null) {\n return;\n }\n carrier[key] = value;\n },\n};\n//# sourceMappingURL=TextMapPropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ContextAPI } from '../api/context';\nimport { createContextKey } from '../context/context';\n/**\n * Baggage key\n */\nvar BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key');\n/**\n * Retrieve the current baggage from the given context\n *\n * @param {Context} Context that manage all context values\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getBaggage(context) {\n return context.getValue(BAGGAGE_KEY) || undefined;\n}\n/**\n * Retrieve the current baggage from the active/current context\n *\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getActiveBaggage() {\n return getBaggage(ContextAPI.getInstance().active());\n}\n/**\n * Store a baggage in the given context\n *\n * @param {Context} Context that manage all context values\n * @param {Baggage} baggage that will be set in the actual context\n */\nexport function setBaggage(context, baggage) {\n return context.setValue(BAGGAGE_KEY, baggage);\n}\n/**\n * Delete the baggage stored in the given context\n *\n * @param {Context} Context that manage all context values\n */\nexport function deleteBaggage(context) {\n return context.deleteValue(BAGGAGE_KEY);\n}\n//# sourceMappingURL=context-helpers.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport { defaultTextMapGetter, defaultTextMapSetter, } from '../propagation/TextMapPropagator';\nimport { getBaggage, getActiveBaggage, setBaggage, deleteBaggage, } from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'propagation';\nvar NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n */\nvar PropagationAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function PropagationAPI() {\n this.createBaggage = createBaggage;\n this.getBaggage = getBaggage;\n this.getActiveBaggage = getActiveBaggage;\n this.setBaggage = setBaggage;\n this.deleteBaggage = deleteBaggage;\n }\n /** Get the singleton instance of the Propagator API */\n PropagationAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n return this._instance;\n };\n /**\n * Set the current propagator.\n *\n * @returns true if the propagator was successfully registered, else false\n */\n PropagationAPI.prototype.setGlobalPropagator = function (propagator) {\n return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n };\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param context Context carrying tracing data to inject\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n */\n PropagationAPI.prototype.inject = function (context, carrier, setter) {\n if (setter === void 0) { setter = defaultTextMapSetter; }\n return this._getGlobalPropagator().inject(context, carrier, setter);\n };\n /**\n * Extract context from a carrier\n *\n * @param context Context which the newly created context will inherit from\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n */\n PropagationAPI.prototype.extract = function (context, carrier, getter) {\n if (getter === void 0) { getter = defaultTextMapGetter; }\n return this._getGlobalPropagator().extract(context, carrier, getter);\n };\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n PropagationAPI.prototype.fields = function () {\n return this._getGlobalPropagator().fields();\n };\n /** Remove the global propagator */\n PropagationAPI.prototype.disable = function () {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n };\n PropagationAPI.prototype._getGlobalPropagator = function () {\n return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n };\n return PropagationAPI;\n}());\nexport { PropagationAPI };\n//# sourceMappingURL=propagation.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { PropagationAPI } from './api/propagation';\n/** Entrypoint for propagation API */\nexport var propagation = PropagationAPI.getInstance();\n//# sourceMappingURL=propagation-api.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOtlpEncoder = exports.encodeAsString = exports.encodeAsLongBits = exports.toLongBits = exports.hrTimeToNanos = void 0;\nconst core_1 = require(\"@opentelemetry/core\");\nconst hex_to_binary_1 = require(\"./hex-to-binary\");\nfunction hrTimeToNanos(hrTime) {\n const NANOSECONDS = BigInt(1000000000);\n return BigInt(hrTime[0]) * NANOSECONDS + BigInt(hrTime[1]);\n}\nexports.hrTimeToNanos = hrTimeToNanos;\nfunction toLongBits(value) {\n const low = Number(BigInt.asUintN(32, value));\n const high = Number(BigInt.asUintN(32, value >> BigInt(32)));\n return { low, high };\n}\nexports.toLongBits = toLongBits;\nfunction encodeAsLongBits(hrTime) {\n const nanos = hrTimeToNanos(hrTime);\n return toLongBits(nanos);\n}\nexports.encodeAsLongBits = encodeAsLongBits;\nfunction encodeAsString(hrTime) {\n const nanos = hrTimeToNanos(hrTime);\n return nanos.toString();\n}\nexports.encodeAsString = encodeAsString;\nconst encodeTimestamp = typeof BigInt !== 'undefined' ? encodeAsString : core_1.hrTimeToNanoseconds;\nfunction identity(value) {\n return value;\n}\nfunction optionalHexToBinary(str) {\n if (str === undefined)\n return undefined;\n return (0, hex_to_binary_1.hexToBinary)(str);\n}\nconst DEFAULT_ENCODER = {\n encodeHrTime: encodeAsLongBits,\n encodeSpanContext: hex_to_binary_1.hexToBinary,\n encodeOptionalSpanContext: optionalHexToBinary,\n};\nfunction getOtlpEncoder(options) {\n if (options === undefined) {\n return DEFAULT_ENCODER;\n }\n const useLongBits = options.useLongBits ?? true;\n const useHex = options.useHex ?? false;\n return {\n encodeHrTime: useLongBits ? encodeAsLongBits : encodeTimestamp,\n encodeSpanContext: useHex ? identity : hex_to_binary_1.hexToBinary,\n encodeOptionalSpanContext: useHex ? identity : optionalHexToBinary,\n };\n}\nexports.getOtlpEncoder = getOtlpEncoder;\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key) {\n return VALID_KEY_REGEX.test(key);\n}\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value) {\n return (VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value));\n}\n//# sourceMappingURL=validators.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { validateKey, validateValue } from '../internal/validators';\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nexport class TraceState {\n _internalState = new Map();\n constructor(rawTraceState) {\n if (rawTraceState)\n this._parse(rawTraceState);\n }\n set(key, value) {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n unset(key) {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n get(key) {\n return this._internalState.get(key);\n }\n serialize() {\n return this._keys()\n .reduce((agg, key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n _parse(rawTraceState) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN)\n return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg, part) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n }\n else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS));\n }\n }\n _keys() {\n return Array.from(this._internalState.keys()).reverse();\n }\n _clone() {\n const traceState = new TraceState();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\n//# sourceMappingURL=TraceState.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { otperformance as performance } from '../platform';\nconst NANOSECOND_DIGITS = 9;\nconst NANOSECOND_DIGITS_IN_MILLIS = 6;\nconst MILLISECONDS_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS_IN_MILLIS);\nconst SECOND_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS);\n/**\n * Converts a number of milliseconds from epoch to HrTime([seconds, remainder in nanoseconds]).\n * @param epochMillis\n */\nexport function millisToHrTime(epochMillis) {\n const epochSeconds = epochMillis / 1000;\n // Decimals only.\n const seconds = Math.trunc(epochSeconds);\n // Round sub-nanosecond accuracy to nanosecond.\n const nanos = Math.round((epochMillis % 1000) * MILLISECONDS_TO_NANOSECONDS);\n return [seconds, nanos];\n}\nexport function getTimeOrigin() {\n let timeOrigin = performance.timeOrigin;\n if (typeof timeOrigin !== 'number') {\n const perf = performance;\n timeOrigin = perf.timing && perf.timing.fetchStart;\n }\n return timeOrigin;\n}\n/**\n * Returns an hrtime calculated via performance component.\n * @param performanceNow\n */\nexport function hrTime(performanceNow) {\n const timeOrigin = millisToHrTime(getTimeOrigin());\n const now = millisToHrTime(typeof performanceNow === 'number' ? performanceNow : performance.now());\n return addHrTimes(timeOrigin, now);\n}\n/**\n *\n * Converts a TimeInput to an HrTime, defaults to _hrtime().\n * @param time\n */\nexport function timeInputToHrTime(time) {\n // process.hrtime\n if (isTimeInputHrTime(time)) {\n return time;\n }\n else if (typeof time === 'number') {\n // Must be a performance.now() if it's smaller than process start time.\n if (time < getTimeOrigin()) {\n return hrTime(time);\n }\n else {\n // epoch milliseconds or performance.timeOrigin\n return millisToHrTime(time);\n }\n }\n else if (time instanceof Date) {\n return millisToHrTime(time.getTime());\n }\n else {\n throw TypeError('Invalid input type');\n }\n}\n/**\n * Returns a duration of two hrTime.\n * @param startTime\n * @param endTime\n */\nexport function hrTimeDuration(startTime, endTime) {\n let seconds = endTime[0] - startTime[0];\n let nanos = endTime[1] - startTime[1];\n // overflow\n if (nanos < 0) {\n seconds -= 1;\n // negate\n nanos += SECOND_TO_NANOSECONDS;\n }\n return [seconds, nanos];\n}\n/**\n * Convert hrTime to timestamp, for example \"2019-05-14T17:00:00.000123456Z\"\n * @param time\n */\nexport function hrTimeToTimeStamp(time) {\n const precision = NANOSECOND_DIGITS;\n const tmp = `${'0'.repeat(precision)}${time[1]}Z`;\n const nanoString = tmp.substring(tmp.length - precision - 1);\n const date = new Date(time[0] * 1000).toISOString();\n return date.replace('000Z', nanoString);\n}\n/**\n * Convert hrTime to nanoseconds.\n * @param time\n */\nexport function hrTimeToNanoseconds(time) {\n return time[0] * SECOND_TO_NANOSECONDS + time[1];\n}\n/**\n * Convert hrTime to milliseconds.\n * @param time\n */\nexport function hrTimeToMilliseconds(time) {\n return time[0] * 1e3 + time[1] / 1e6;\n}\n/**\n * Convert hrTime to microseconds.\n * @param time\n */\nexport function hrTimeToMicroseconds(time) {\n return time[0] * 1e6 + time[1] / 1e3;\n}\n/**\n * check if time is HrTime\n * @param value\n */\nexport function isTimeInputHrTime(value) {\n return (Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number');\n}\n/**\n * check if input value is a correct types.TimeInput\n * @param value\n */\nexport function isTimeInput(value) {\n return (isTimeInputHrTime(value) ||\n typeof value === 'number' ||\n value instanceof Date);\n}\n/**\n * Given 2 HrTime formatted times, return their sum as an HrTime.\n */\nexport function addHrTimes(time1, time2) {\n const out = [time1[0] + time2[0], time1[1] + time2[1]];\n // Nanoseconds\n if (out[1] >= SECOND_TO_NANOSECONDS) {\n out[1] -= SECOND_TO_NANOSECONDS;\n out[0] += 1;\n }\n return out;\n}\n//# sourceMappingURL=time.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nvar VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nvar VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\nexport function isValidTraceId(traceId) {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\nexport function isValidSpanId(spanId) {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext) {\n return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId));\n}\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext) {\n return new NonRecordingSpan(spanContext);\n}\n//# sourceMappingURL=spancontext-utils.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hexToBinary = void 0;\nfunction intValue(charCode) {\n // 0-9\n if (charCode >= 48 && charCode <= 57) {\n return charCode - 48;\n }\n // a-f\n if (charCode >= 97 && charCode <= 102) {\n return charCode - 87;\n }\n // A-F\n return charCode - 55;\n}\nfunction hexToBinary(hexStr) {\n const buf = new Uint8Array(hexStr.length / 2);\n let offset = 0;\n for (let i = 0; i < hexStr.length; i += 2) {\n const hi = intValue(hexStr.charCodeAt(i));\n const lo = intValue(hexStr.charCodeAt(i + 1));\n buf[offset++] = (hi << 4) | lo;\n }\n return buf;\n}\nexports.hexToBinary = hexToBinary;\n//# sourceMappingURL=hex-to-binary.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContextKey } from '../context/context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n/**\n * span key\n */\nvar SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context) {\n return context.getValue(SPAN_KEY) || undefined;\n}\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan() {\n return getSpan(ContextAPI.getInstance().active());\n}\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context, span) {\n return context.setValue(SPAN_KEY, span);\n}\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context) {\n return context.deleteValue(SPAN_KEY);\n}\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(context, spanContext) {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context) {\n var _a;\n return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext();\n}\n//# sourceMappingURL=context-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ContextAPI } from '../api/context';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { isSpanContextValid } from './spancontext-utils';\nvar contextApi = ContextAPI.getInstance();\n/**\n * No-op implementations of {@link Tracer}.\n */\nvar NoopTracer = /** @class */ (function () {\n function NoopTracer() {\n }\n // startSpan starts a noop span.\n NoopTracer.prototype.startSpan = function (name, options, context) {\n if (context === void 0) { context = contextApi.active(); }\n var root = Boolean(options === null || options === void 0 ? void 0 : options.root);\n if (root) {\n return new NonRecordingSpan();\n }\n var parentFromContext = context && getSpanContext(context);\n if (isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)) {\n return new NonRecordingSpan(parentFromContext);\n }\n else {\n return new NonRecordingSpan();\n }\n };\n NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) {\n var opts;\n var ctx;\n var fn;\n if (arguments.length < 2) {\n return;\n }\n else if (arguments.length === 2) {\n fn = arg2;\n }\n else if (arguments.length === 3) {\n opts = arg2;\n fn = arg3;\n }\n else {\n opts = arg2;\n ctx = arg3;\n fn = arg4;\n }\n var parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active();\n var span = this.startSpan(name, opts, parentContext);\n var contextWithSpanSet = setSpan(parentContext, span);\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n };\n return NoopTracer;\n}());\nexport { NoopTracer };\nfunction isSpanContext(spanContext) {\n return (typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number');\n}\n//# sourceMappingURL=NoopTracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoopTracer } from './NoopTracer';\nvar NOOP_TRACER = new NoopTracer();\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nvar ProxyTracer = /** @class */ (function () {\n function ProxyTracer(_provider, name, version, options) {\n this._provider = _provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n ProxyTracer.prototype.startSpan = function (name, options, context) {\n return this._getTracer().startSpan(name, options, context);\n };\n ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) {\n var tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n };\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n ProxyTracer.prototype._getTracer = function () {\n if (this._delegate) {\n return this._delegate;\n }\n var tracer = this._provider.getDelegateTracer(this.name, this.version, this.options);\n if (!tracer) {\n return NOOP_TRACER;\n }\n this._delegate = tracer;\n return this._delegate;\n };\n return ProxyTracer;\n}());\nexport { ProxyTracer };\n//# sourceMappingURL=ProxyTracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoopTracer } from './NoopTracer';\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nvar NoopTracerProvider = /** @class */ (function () {\n function NoopTracerProvider() {\n }\n NoopTracerProvider.prototype.getTracer = function (_name, _version, _options) {\n return new NoopTracer();\n };\n return NoopTracerProvider;\n}());\nexport { NoopTracerProvider };\n//# sourceMappingURL=NoopTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nvar NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nvar ProxyTracerProvider = /** @class */ (function () {\n function ProxyTracerProvider() {\n }\n /**\n * Get a {@link ProxyTracer}\n */\n ProxyTracerProvider.prototype.getTracer = function (name, version, options) {\n var _a;\n return ((_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options));\n };\n ProxyTracerProvider.prototype.getDelegate = function () {\n var _a;\n return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;\n };\n /**\n * Set the delegate tracer provider\n */\n ProxyTracerProvider.prototype.setDelegate = function (delegate) {\n this._delegate = delegate;\n };\n ProxyTracerProvider.prototype.getDelegateTracer = function (name, version, options) {\n var _a;\n return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options);\n };\n return ProxyTracerProvider;\n}());\nexport { ProxyTracerProvider };\n//# sourceMappingURL=ProxyTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport { isSpanContextValid, wrapSpanContext, } from '../trace/spancontext-utils';\nimport { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext, } from '../trace/context-utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'trace';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nvar TraceAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function TraceAPI() {\n this._proxyTracerProvider = new ProxyTracerProvider();\n this.wrapSpanContext = wrapSpanContext;\n this.isSpanContextValid = isSpanContextValid;\n this.deleteSpan = deleteSpan;\n this.getSpan = getSpan;\n this.getActiveSpan = getActiveSpan;\n this.getSpanContext = getSpanContext;\n this.setSpan = setSpan;\n this.setSpanContext = setSpanContext;\n }\n /** Get the singleton instance of the Trace API */\n TraceAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n return this._instance;\n };\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n TraceAPI.prototype.setGlobalTracerProvider = function (provider) {\n var success = registerGlobal(API_NAME, this._proxyTracerProvider, DiagAPI.instance());\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n };\n /**\n * Returns the global tracer provider.\n */\n TraceAPI.prototype.getTracerProvider = function () {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n };\n /**\n * Returns a tracer from the global tracer provider.\n */\n TraceAPI.prototype.getTracer = function (name, version) {\n return this.getTracerProvider().getTracer(name, version);\n };\n /** Remove the global tracer provider */\n TraceAPI.prototype.disable = function () {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n };\n return TraceAPI;\n}());\nexport { TraceAPI };\n//# sourceMappingURL=trace.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport var trace = TraceAPI.getInstance();\n//# sourceMappingURL=trace-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport const otperformance = performance;\n//# sourceMappingURL=performance.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Updates to this file should also be replicated to @opentelemetry/core too.\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - <object> (When all else fails)\n */\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport var _globalThis = typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {};\n//# sourceMappingURL=globalThis.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// this is autogenerated file, see scripts/version-update.js\nexport var VERSION = '1.9.0';\n//# sourceMappingURL=version.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { VERSION } from '../version';\nvar re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(ownVersion) {\n var acceptedVersions = new Set([ownVersion]);\n var rejectedVersions = new Set();\n var myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return function () { return false; };\n }\n var ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion) {\n return globalVersion === ownVersion;\n };\n }\n function _reject(v) {\n rejectedVersions.add(v);\n return false;\n }\n function _accept(v) {\n acceptedVersions.add(v);\n return true;\n }\n return function isCompatible(globalVersion) {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n var globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n var globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n if (ownVersionParsed.major === 0) {\n if (ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n }\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n };\n}\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport var isCompatible = _makeCompatibilityCheck(VERSION);\n//# sourceMappingURL=semver.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { _globalThis } from '../platform';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\nvar major = VERSION.split('.')[0];\nvar GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\"opentelemetry.js.api.\" + major);\nvar _global = _globalThis;\nexport function registerGlobal(type, instance, diag, allowOverride) {\n var _a;\n if (allowOverride === void 0) { allowOverride = false; }\n var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : {\n version: VERSION,\n });\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n var err = new Error(\"@opentelemetry/api: Attempted duplicate registration of API: \" + type);\n diag.error(err.stack || err.message);\n return false;\n }\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n var err = new Error(\"@opentelemetry/api: Registration of version v\" + api.version + \" for \" + type + \" does not match previously registered API v\" + VERSION);\n diag.error(err.stack || err.message);\n return false;\n }\n api[type] = instance;\n diag.debug(\"@opentelemetry/api: Registered a global for \" + type + \" v\" + VERSION + \".\");\n return true;\n}\nexport function getGlobal(type) {\n var _a, _b;\n var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];\n}\nexport function unregisterGlobal(type, diag) {\n diag.debug(\"@opentelemetry/api: Unregistering a global for \" + type + \" v\" + VERSION + \".\");\n var api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n if (api) {\n delete api[type];\n }\n}\n//# sourceMappingURL=global-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { propagation, } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '../../trace/suppress-tracing';\nimport { BAGGAGE_HEADER, BAGGAGE_ITEMS_SEPARATOR, BAGGAGE_MAX_NAME_VALUE_PAIRS, BAGGAGE_MAX_PER_NAME_VALUE_PAIRS, } from '../constants';\nimport { getKeyPairs, parsePairKeyValue, serializeKeyPairs } from '../utils';\n/**\n * Propagates {@link Baggage} through Context format propagation.\n *\n * Based on the Baggage specification:\n * https://w3c.github.io/baggage/\n */\nexport class W3CBaggagePropagator {\n inject(context, carrier, setter) {\n const baggage = propagation.getBaggage(context);\n if (!baggage || isTracingSuppressed(context))\n return;\n const keyPairs = getKeyPairs(baggage)\n .filter((pair) => {\n return pair.length <= BAGGAGE_MAX_PER_NAME_VALUE_PAIRS;\n })\n .slice(0, BAGGAGE_MAX_NAME_VALUE_PAIRS);\n const headerValue = serializeKeyPairs(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, BAGGAGE_HEADER, headerValue);\n }\n }\n extract(context, carrier, getter) {\n const headerValue = getter.get(carrier, BAGGAGE_HEADER);\n const baggageString = Array.isArray(headerValue)\n ? headerValue.join(BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString)\n return context;\n const baggage = {};\n if (baggageString.length === 0) {\n return context;\n }\n const pairs = baggageString.split(BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair) {\n const baggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return propagation.setBaggage(context, propagation.createBaggage(baggage));\n }\n fields() {\n return [BAGGAGE_HEADER];\n }\n}\n//# sourceMappingURL=W3CBaggagePropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport var DiagLogLevel;\n(function (DiagLogLevel) {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n DiagLogLevel[DiagLogLevel[\"NONE\"] = 0] = \"NONE\";\n /** Identifies an error scenario */\n DiagLogLevel[DiagLogLevel[\"ERROR\"] = 30] = \"ERROR\";\n /** Identifies a warning scenario */\n DiagLogLevel[DiagLogLevel[\"WARN\"] = 50] = \"WARN\";\n /** General informational log message */\n DiagLogLevel[DiagLogLevel[\"INFO\"] = 60] = \"INFO\";\n /** General debug log message */\n DiagLogLevel[DiagLogLevel[\"DEBUG\"] = 70] = \"DEBUG\";\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n DiagLogLevel[DiagLogLevel[\"VERBOSE\"] = 80] = \"VERBOSE\";\n /** Used to set the logging level to include all logging */\n DiagLogLevel[DiagLogLevel[\"ALL\"] = 9999] = \"ALL\";\n})(DiagLogLevel || (DiagLogLevel = {}));\n//# sourceMappingURL=types.js.map","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.33\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.33',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 350;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof(str) === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i\n ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /yabrowser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 '+BROWSER]], [\n /(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [ // Oculus/Samsung/Sailfish/Huawei Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ], [NAME, VERSION], [\n /(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n // Ordered by popularity\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /\\((ip(?:hone|od)[\\w ]*);/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi)( bui|\\))/i, // Kindle Fire without Silk\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( 2)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i // iCab\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows) nt 6\\.2; (arm)/i, // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+ ([\\w\\.]+\\w)/i // Chromium OS\n ], [[NAME, 'Chromium OS'], VERSION],[\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _ua = ua || ((typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser.major = majorize(_browser.version);\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ATTR_HTTP_USER_AGENT = exports.ATTR_HTTP_URL = exports.ATTR_HTTP_STATUS_CODE = exports.ATTR_HTTP_SCHEME = exports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH = exports.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = exports.ATTR_HTTP_REQUEST_BODY_SIZE = exports.ATTR_HTTP_METHOD = exports.ATTR_HTTP_HOST = void 0;\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n/**\n * Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.\n *\n * @example www.example.org\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage.\n */\nexports.ATTR_HTTP_HOST = 'http.host';\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexports.ATTR_HTTP_METHOD = 'http.method';\n/**\n * The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexports.ATTR_HTTP_REQUEST_BODY_SIZE = 'http.request.body.size';\n/**\n * Deprecated, use `http.request.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.body.size`.\n */\nexports.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = 'http.request_content_length_uncompressed';\n/**\n * Deprecated, use `http.response.header.<key>` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.header.<key>`.\n */\nexports.ATTR_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\n/**\n * Deprecated, use `url.scheme` instead.\n *\n * @example http\n * @example https\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.scheme` instead.\n */\nexports.ATTR_HTTP_SCHEME = 'http.scheme';\n/**\n * Deprecated, use `http.response.status_code` instead.\n *\n * @example 200\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.status_code`.\n */\nexports.ATTR_HTTP_STATUS_CODE = 'http.status_code';\n/**\n * Deprecated, use `url.full` instead.\n *\n * @example https://www.foo.bar/search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.full`.\n */\nexports.ATTR_HTTP_URL = 'http.url';\n/**\n * Deprecated, use `user_agent.original` instead.\n *\n * @example CERN-LineMode/2.15 libwww/2.17b3\n * @example Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `user_agent.original`.\n */\nexports.ATTR_HTTP_USER_AGENT = 'http.user_agent';\n//# sourceMappingURL=semconv.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { loggingErrorHandler } from './logging-error-handler';\n/** The global error handler delegate */\nlet delegateHandler = loggingErrorHandler();\n/**\n * Set the global error handler\n * @param {ErrorHandler} handler\n */\nexport function setGlobalErrorHandler(handler) {\n delegateHandler = handler;\n}\n/**\n * Return the global error handler\n * @param {Exception} ex\n */\nexport function globalErrorHandler(ex) {\n try {\n delegateHandler(ex);\n }\n catch { } // eslint-disable-line no-empty\n}\n//# sourceMappingURL=global-error-handler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function urlMatches(url, urlToMatch) {\n if (typeof urlToMatch === 'string') {\n return url === urlToMatch;\n }\n else {\n return !!url.match(urlToMatch);\n }\n}\n/**\n * Check if {@param url} should be ignored when comparing against {@param ignoredUrls}\n * @param url\n * @param ignoredUrls\n */\nexport function isUrlIgnored(url, ignoredUrls) {\n if (!ignoredUrls) {\n return false;\n }\n for (const ignoreUrl of ignoredUrls) {\n if (urlMatches(url, ignoreUrl)) {\n return true;\n }\n }\n return false;\n}\n//# sourceMappingURL=url.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { DiagAPI } from './api/diag';\n/**\n * Entrypoint for Diag API.\n * Defines Diagnostic handler used for internal diagnostic logging operations.\n * The default provides a Noop DiagLogger implementation which may be changed via the\n * diag.setLogger(logger: DiagLogger) function.\n */\nexport var diag = DiagAPI.instance();\n//# sourceMappingURL=diag-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ROOT_CONTEXT } from './context';\nvar NoopContextManager = /** @class */ (function () {\n function NoopContextManager() {\n }\n NoopContextManager.prototype.active = function () {\n return ROOT_CONTEXT;\n };\n NoopContextManager.prototype.with = function (_context, fn, thisArg) {\n var args = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n args[_i - 3] = arguments[_i];\n }\n return fn.call.apply(fn, __spreadArray([thisArg], __read(args), false));\n };\n NoopContextManager.prototype.bind = function (_context, target) {\n return target;\n };\n NoopContextManager.prototype.enable = function () {\n return this;\n };\n NoopContextManager.prototype.disable = function () {\n return this;\n };\n return NoopContextManager;\n}());\nexport { NoopContextManager };\n//# sourceMappingURL=NoopContextManager.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'context';\nvar NOOP_CONTEXT_MANAGER = new NoopContextManager();\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nvar ContextAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function ContextAPI() {\n }\n /** Get the singleton instance of the Context API */\n ContextAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n return this._instance;\n };\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n ContextAPI.prototype.setGlobalContextManager = function (contextManager) {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n };\n /**\n * Get the currently active context\n */\n ContextAPI.prototype.active = function () {\n return this._getContextManager().active();\n };\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n ContextAPI.prototype.with = function (context, fn, thisArg) {\n var _a;\n var args = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n args[_i - 3] = arguments[_i];\n }\n return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], __read(args), false));\n };\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n ContextAPI.prototype.bind = function (context, target) {\n return this._getContextManager().bind(context, target);\n };\n ContextAPI.prototype._getContextManager = function () {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n };\n /** Disable and remove the global context manager */\n ContextAPI.prototype.disable = function () {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n };\n return ContextAPI;\n}());\nexport { ContextAPI };\n//# sourceMappingURL=context.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\nexport function sanitizeAttributes(attributes) {\n const out = {};\n if (typeof attributes !== 'object' || attributes == null) {\n return out;\n }\n for (const [key, val] of Object.entries(attributes)) {\n if (!isAttributeKey(key)) {\n diag.warn(`Invalid attribute key: ${key}`);\n continue;\n }\n if (!isAttributeValue(val)) {\n diag.warn(`Invalid attribute value set for key: ${key}`);\n continue;\n }\n if (Array.isArray(val)) {\n out[key] = val.slice();\n }\n else {\n out[key] = val;\n }\n }\n return out;\n}\nexport function isAttributeKey(key) {\n return typeof key === 'string' && key.length > 0;\n}\nexport function isAttributeValue(val) {\n if (val == null) {\n return true;\n }\n if (Array.isArray(val)) {\n return isHomogeneousAttributeValueArray(val);\n }\n return isValidPrimitiveAttributeValue(val);\n}\nfunction isHomogeneousAttributeValueArray(arr) {\n let type;\n for (const element of arr) {\n // null/undefined elements are allowed\n if (element == null)\n continue;\n if (!type) {\n if (isValidPrimitiveAttributeValue(element)) {\n type = typeof element;\n continue;\n }\n // encountered an invalid primitive\n return false;\n }\n if (typeof element === type) {\n continue;\n }\n return false;\n }\n return true;\n}\nfunction isValidPrimitiveAttributeValue(val) {\n switch (typeof val) {\n case 'number':\n case 'boolean':\n case 'string':\n return true;\n }\n return false;\n}\n//# sourceMappingURL=attributes.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport const BAGGAGE_KEY_PAIR_SEPARATOR = '=';\nexport const BAGGAGE_PROPERTIES_SEPARATOR = ';';\nexport const BAGGAGE_ITEMS_SEPARATOR = ',';\n// Name of the http header used to propagate the baggage\nexport const BAGGAGE_HEADER = 'baggage';\n// Maximum number of name-value pairs allowed by w3c spec\nexport const BAGGAGE_MAX_NAME_VALUE_PAIRS = 180;\n// Maximum number of bytes per a single name-value pair allowed by w3c spec\nexport const BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = 4096;\n// Maximum total length of all name-value pairs allowed by w3c spec\nexport const BAGGAGE_MAX_TOTAL_LENGTH = 8192;\n//# sourceMappingURL=constants.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A utility for returning wall times anchored to a given point in time. Wall time measurements will\n * not be taken from the system, but instead are computed by adding a monotonic clock time\n * to the anchor point.\n *\n * This is needed because the system time can change and result in unexpected situations like\n * spans ending before they are started. Creating an anchored clock for each local root span\n * ensures that span timings and durations are accurate while preventing span times from drifting\n * too far from the system clock.\n *\n * Only creating an anchored clock once per local trace ensures span times are correct relative\n * to each other. For example, a child span will never have a start time before its parent even\n * if the system clock is corrected during the local trace.\n *\n * Heavily inspired by the OTel Java anchored clock\n * https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/AnchoredClock.java\n */\nexport class AnchoredClock {\n _monotonicClock;\n _epochMillis;\n _performanceMillis;\n /**\n * Create a new AnchoredClock anchored to the current time returned by systemClock.\n *\n * @param systemClock should be a clock that returns the number of milliseconds since January 1 1970 such as Date\n * @param monotonicClock should be a clock that counts milliseconds monotonically such as window.performance or perf_hooks.performance\n */\n constructor(systemClock, monotonicClock) {\n this._monotonicClock = monotonicClock;\n this._epochMillis = systemClock.now();\n this._performanceMillis = monotonicClock.now();\n }\n /**\n * Returns the current time by adding the number of milliseconds since the\n * AnchoredClock was created to the creation epoch time\n */\n now() {\n const delta = this._monotonicClock.now() - this._performanceMillis;\n return this._epochMillis + delta;\n }\n}\n//# sourceMappingURL=anchored-clock.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContextKey } from '@opentelemetry/api';\nconst RPC_METADATA_KEY = createContextKey('OpenTelemetry SDK Context Key RPC_METADATA');\nexport var RPCType;\n(function (RPCType) {\n RPCType[\"HTTP\"] = \"http\";\n})(RPCType || (RPCType = {}));\nexport function setRPCMetadata(context, meta) {\n return context.setValue(RPC_METADATA_KEY, meta);\n}\nexport function deleteRPCMetadata(context) {\n return context.deleteValue(RPC_METADATA_KEY);\n}\nexport function getRPCMetadata(context) {\n return context.getValue(RPC_METADATA_KEY);\n}\n//# sourceMappingURL=rpc-metadata.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Error that is thrown on timeouts.\n */\nexport class TimeoutError extends Error {\n constructor(message) {\n super(message);\n // manually adjust prototype to retain `instanceof` functionality when targeting ES5, see:\n // https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, TimeoutError.prototype);\n }\n}\n/**\n * Adds a timeout to a promise and rejects if the specified timeout has elapsed. Also rejects if the specified promise\n * rejects, and resolves if the specified promise resolves.\n *\n * <p> NOTE: this operation will continue even after it throws a {@link TimeoutError}.\n *\n * @param promise promise to use with timeout.\n * @param timeout the timeout in milliseconds until the returned promise is rejected.\n */\nexport function callWithTimeout(promise, timeout) {\n let timeoutHandle;\n const timeoutPromise = new Promise(function timeoutFunction(_resolve, reject) {\n timeoutHandle = setTimeout(function timeoutHandler() {\n reject(new TimeoutError('Operation timed out.'));\n }, timeout);\n });\n return Promise.race([promise, timeoutPromise]).then(result => {\n clearTimeout(timeoutHandle);\n return result;\n }, reason => {\n clearTimeout(timeoutHandle);\n throw reason;\n });\n}\n//# sourceMappingURL=timeout.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag, DiagLogLevel } from '@opentelemetry/api';\nconst logLevelMap = {\n ALL: DiagLogLevel.ALL,\n VERBOSE: DiagLogLevel.VERBOSE,\n DEBUG: DiagLogLevel.DEBUG,\n INFO: DiagLogLevel.INFO,\n WARN: DiagLogLevel.WARN,\n ERROR: DiagLogLevel.ERROR,\n NONE: DiagLogLevel.NONE,\n};\n/**\n * Convert a string to a {@link DiagLogLevel}, defaults to {@link DiagLogLevel} if the log level does not exist or undefined if the input is undefined.\n * @param value\n */\nexport function diagLogLevelFromString(value) {\n if (value == null) {\n // don't fall back to default - no value set has different semantics for ús than an incorrect value (do not set vs. fall back to default)\n return undefined;\n }\n const resolvedLogLevel = logLevelMap[value.toUpperCase()];\n if (resolvedLogLevel == null) {\n diag.warn(`Unknown log level \"${value}\", expected one of ${Object.keys(logLevelMap)}, using default`);\n return DiagLogLevel.INFO;\n }\n return resolvedLogLevel;\n}\n//# sourceMappingURL=configuration.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { context } from '@opentelemetry/api';\nimport { suppressTracing } from '../trace/suppress-tracing';\n/**\n * @internal\n * Shared functionality used by Exporters while exporting data, including suppression of Traces.\n */\nexport function _export(exporter, arg) {\n return new Promise(resolve => {\n // prevent downstream exporter calls from generating spans\n context.with(suppressTracing(context.active()), () => {\n exporter.export(arg, (result) => {\n resolve(result);\n });\n });\n });\n}\n//# sourceMappingURL=exporter.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { W3CBaggagePropagator } from './baggage/propagation/W3CBaggagePropagator';\nexport { AnchoredClock } from './common/anchored-clock';\nexport { isAttributeValue, sanitizeAttributes } from './common/attributes';\nexport { globalErrorHandler, setGlobalErrorHandler, } from './common/global-error-handler';\nexport { loggingErrorHandler } from './common/logging-error-handler';\nexport { addHrTimes, getTimeOrigin, hrTime, hrTimeDuration, hrTimeToMicroseconds, hrTimeToMilliseconds, hrTimeToNanoseconds, hrTimeToTimeStamp, isTimeInput, isTimeInputHrTime, millisToHrTime, timeInputToHrTime, } from './common/time';\nexport { ExportResultCode } from './ExportResult';\nexport { parseKeyPairsIntoRecord } from './baggage/utils';\nexport { SDK_INFO, _globalThis, getStringFromEnv, getBooleanFromEnv, getNumberFromEnv, getStringListFromEnv, otperformance, unrefTimer, } from './platform';\nexport { CompositePropagator, } from './propagation/composite';\nexport { TRACE_PARENT_HEADER, TRACE_STATE_HEADER, W3CTraceContextPropagator, parseTraceParent, } from './trace/W3CTraceContextPropagator';\nexport { RPCType, deleteRPCMetadata, getRPCMetadata, setRPCMetadata, } from './trace/rpc-metadata';\nexport { isTracingSuppressed, suppressTracing, unsuppressTracing, } from './trace/suppress-tracing';\nexport { TraceState } from './trace/TraceState';\nexport { merge } from './utils/merge';\nexport { TimeoutError, callWithTimeout } from './utils/timeout';\nexport { isUrlIgnored, urlMatches } from './utils/url';\nexport { BindOnceFuture } from './utils/callback';\nexport { diagLogLevelFromString } from './utils/configuration';\nimport { _export } from './internal/exporter';\nexport const internal = {\n _export,\n};\n//# sourceMappingURL=index.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Updates to this file should also be replicated to @opentelemetry/api too.\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - <object> (When all else fails)\n */\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport const _globalThis = typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {};\n//# sourceMappingURL=globalThis.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var ExportResultCode;\n(function (ExportResultCode) {\n ExportResultCode[ExportResultCode[\"SUCCESS\"] = 0] = \"SUCCESS\";\n ExportResultCode[ExportResultCode[\"FAILED\"] = 1] = \"FAILED\";\n})(ExportResultCode || (ExportResultCode = {}));\n//# sourceMappingURL=ExportResult.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExportTraceServiceRequest = exports.toOtlpSpanEvent = exports.toOtlpLink = exports.sdkSpanToOtlpSpan = void 0;\nconst internal_1 = require(\"../common/internal\");\nconst utils_1 = require(\"../common/utils\");\nfunction sdkSpanToOtlpSpan(span, encoder) {\n const ctx = span.spanContext();\n const status = span.status;\n const parentSpanId = span.parentSpanContext?.spanId\n ? encoder.encodeSpanContext(span.parentSpanContext?.spanId)\n : undefined;\n return {\n traceId: encoder.encodeSpanContext(ctx.traceId),\n spanId: encoder.encodeSpanContext(ctx.spanId),\n parentSpanId: parentSpanId,\n traceState: ctx.traceState?.serialize(),\n name: span.name,\n // Span kind is offset by 1 because the API does not define a value for unset\n kind: span.kind == null ? 0 : span.kind + 1,\n startTimeUnixNano: encoder.encodeHrTime(span.startTime),\n endTimeUnixNano: encoder.encodeHrTime(span.endTime),\n attributes: (0, internal_1.toAttributes)(span.attributes),\n droppedAttributesCount: span.droppedAttributesCount,\n events: span.events.map(event => toOtlpSpanEvent(event, encoder)),\n droppedEventsCount: span.droppedEventsCount,\n status: {\n // API and proto enums share the same values\n code: status.code,\n message: status.message,\n },\n links: span.links.map(link => toOtlpLink(link, encoder)),\n droppedLinksCount: span.droppedLinksCount,\n };\n}\nexports.sdkSpanToOtlpSpan = sdkSpanToOtlpSpan;\nfunction toOtlpLink(link, encoder) {\n return {\n attributes: link.attributes ? (0, internal_1.toAttributes)(link.attributes) : [],\n spanId: encoder.encodeSpanContext(link.context.spanId),\n traceId: encoder.encodeSpanContext(link.context.traceId),\n traceState: link.context.traceState?.serialize(),\n droppedAttributesCount: link.droppedAttributesCount || 0,\n };\n}\nexports.toOtlpLink = toOtlpLink;\nfunction toOtlpSpanEvent(timedEvent, encoder) {\n return {\n attributes: timedEvent.attributes\n ? (0, internal_1.toAttributes)(timedEvent.attributes)\n : [],\n name: timedEvent.name,\n timeUnixNano: encoder.encodeHrTime(timedEvent.time),\n droppedAttributesCount: timedEvent.droppedAttributesCount || 0,\n };\n}\nexports.toOtlpSpanEvent = toOtlpSpanEvent;\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction createExportTraceServiceRequest(spans, options) {\n const encoder = (0, utils_1.getOtlpEncoder)(options);\n return {\n resourceSpans: spanRecordsToResourceSpans(spans, encoder),\n };\n}\nexports.createExportTraceServiceRequest = createExportTraceServiceRequest;\nfunction createResourceMap(readableSpans) {\n const resourceMap = new Map();\n for (const record of readableSpans) {\n let ilsMap = resourceMap.get(record.resource);\n if (!ilsMap) {\n ilsMap = new Map();\n resourceMap.set(record.resource, ilsMap);\n }\n // TODO this is duplicated in basic tracer. Consolidate on a common helper in core\n const instrumentationScopeKey = `${record.instrumentationScope.name}@${record.instrumentationScope.version || ''}:${record.instrumentationScope.schemaUrl || ''}`;\n let records = ilsMap.get(instrumentationScopeKey);\n if (!records) {\n records = [];\n ilsMap.set(instrumentationScopeKey, records);\n }\n records.push(record);\n }\n return resourceMap;\n}\nfunction spanRecordsToResourceSpans(readableSpans, encoder) {\n const resourceMap = createResourceMap(readableSpans);\n const out = [];\n const entryIterator = resourceMap.entries();\n let entry = entryIterator.next();\n while (!entry.done) {\n const [resource, ilmMap] = entry.value;\n const scopeResourceSpans = [];\n const ilmIterator = ilmMap.values();\n let ilmEntry = ilmIterator.next();\n while (!ilmEntry.done) {\n const scopeSpans = ilmEntry.value;\n if (scopeSpans.length > 0) {\n const spans = scopeSpans.map(readableSpan => sdkSpanToOtlpSpan(readableSpan, encoder));\n scopeResourceSpans.push({\n scope: (0, internal_1.createInstrumentationScope)(scopeSpans[0].instrumentationScope),\n spans: spans,\n schemaUrl: scopeSpans[0].instrumentationScope.schemaUrl,\n });\n }\n ilmEntry = ilmIterator.next();\n }\n // TODO SDK types don't provide resource schema URL at this time\n const transformedSpans = {\n resource: (0, internal_1.createResource)(resource),\n scopeSpans: scopeResourceSpans,\n schemaUrl: undefined,\n };\n out.push(transformedSpans);\n entry = entryIterator.next();\n }\n return out;\n}\n//# sourceMappingURL=internal.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TraceFlags } from './trace_flags';\nexport var INVALID_SPANID = '0000000000000000';\nexport var INVALID_TRACEID = '00000000000000000000000000000000';\nexport var INVALID_SPAN_CONTEXT = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n//# sourceMappingURL=invalid-span-constants.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { baggageEntryMetadataFromString, } from '@opentelemetry/api';\nimport { BAGGAGE_ITEMS_SEPARATOR, BAGGAGE_PROPERTIES_SEPARATOR, BAGGAGE_KEY_PAIR_SEPARATOR, BAGGAGE_MAX_TOTAL_LENGTH, } from './constants';\nexport function serializeKeyPairs(keyPairs) {\n return keyPairs.reduce((hValue, current) => {\n const value = `${hValue}${hValue !== '' ? BAGGAGE_ITEMS_SEPARATOR : ''}${current}`;\n return value.length > BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexport function getKeyPairs(baggage) {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexport function parsePairKeyValue(entry) {\n const valueProps = entry.split(BAGGAGE_PROPERTIES_SEPARATOR);\n if (valueProps.length <= 0)\n return;\n const keyPairPart = valueProps.shift();\n if (!keyPairPart)\n return;\n const separatorIndex = keyPairPart.indexOf(BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0)\n return;\n const key = decodeURIComponent(keyPairPart.substring(0, separatorIndex).trim());\n const value = decodeURIComponent(keyPairPart.substring(separatorIndex + 1).trim());\n let metadata;\n if (valueProps.length > 0) {\n metadata = baggageEntryMetadataFromString(valueProps.join(BAGGAGE_PROPERTIES_SEPARATOR));\n }\n return { key, value, metadata };\n}\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nexport function parseKeyPairsIntoRecord(value) {\n const result = {};\n if (typeof value === 'string' && value.length > 0) {\n value.split(BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n return result;\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EStatusCode = exports.ESpanKind = void 0;\n/**\n * SpanKind is the type of span. Can be used to specify additional relationships between spans\n * in addition to a parent/child relationship.\n */\nvar ESpanKind;\n(function (ESpanKind) {\n /** Unspecified. Do NOT use as default. Implementations MAY assume SpanKind to be INTERNAL when receiving UNSPECIFIED. */\n ESpanKind[ESpanKind[\"SPAN_KIND_UNSPECIFIED\"] = 0] = \"SPAN_KIND_UNSPECIFIED\";\n /** Indicates that the span represents an internal operation within an application,\n * as opposed to an operation happening at the boundaries. Default value.\n */\n ESpanKind[ESpanKind[\"SPAN_KIND_INTERNAL\"] = 1] = \"SPAN_KIND_INTERNAL\";\n /** Indicates that the span covers server-side handling of an RPC or other\n * remote network request.\n */\n ESpanKind[ESpanKind[\"SPAN_KIND_SERVER\"] = 2] = \"SPAN_KIND_SERVER\";\n /** Indicates that the span describes a request to some remote service.\n */\n ESpanKind[ESpanKind[\"SPAN_KIND_CLIENT\"] = 3] = \"SPAN_KIND_CLIENT\";\n /** Indicates that the span describes a producer sending a message to a broker.\n * Unlike CLIENT and SERVER, there is often no direct critical path latency relationship\n * between producer and consumer spans. A PRODUCER span ends when the message was accepted\n * by the broker while the logical processing of the message might span a much longer time.\n */\n ESpanKind[ESpanKind[\"SPAN_KIND_PRODUCER\"] = 4] = \"SPAN_KIND_PRODUCER\";\n /** Indicates that the span describes consumer receiving a message from a broker.\n * Like the PRODUCER kind, there is often no direct critical path latency relationship\n * between producer and consumer spans.\n */\n ESpanKind[ESpanKind[\"SPAN_KIND_CONSUMER\"] = 5] = \"SPAN_KIND_CONSUMER\";\n})(ESpanKind = exports.ESpanKind || (exports.ESpanKind = {}));\n/** StatusCode enum. */\nvar EStatusCode;\n(function (EStatusCode) {\n /** The default status. */\n EStatusCode[EStatusCode[\"STATUS_CODE_UNSET\"] = 0] = \"STATUS_CODE_UNSET\";\n /** The Span has been evaluated by an Application developers or Operator to have completed successfully. */\n EStatusCode[EStatusCode[\"STATUS_CODE_OK\"] = 1] = \"STATUS_CODE_OK\";\n /** The Span contains an error. */\n EStatusCode[EStatusCode[\"STATUS_CODE_ERROR\"] = 2] = \"STATUS_CODE_ERROR\";\n})(EStatusCode = exports.EStatusCode || (exports.EStatusCode = {}));\n//# sourceMappingURL=internal-types.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class Deferred {\n _promise;\n _resolve;\n _reject;\n constructor() {\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n get promise() {\n return this._promise;\n }\n resolve(val) {\n this._resolve(val);\n }\n reject(err) {\n this._reject(err);\n }\n}\n//# sourceMappingURL=promise.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Deferred } from './promise';\n/**\n * Bind the callback and only invoke the callback once regardless how many times `BindOnceFuture.call` is invoked.\n */\nexport class BindOnceFuture {\n _callback;\n _that;\n _isCalled = false;\n _deferred = new Deferred();\n constructor(_callback, _that) {\n this._callback = _callback;\n this._that = _that;\n }\n get isCalled() {\n return this._isCalled;\n }\n get promise() {\n return this._deferred.promise;\n }\n call(...args) {\n if (!this._isCalled) {\n this._isCalled = true;\n try {\n Promise.resolve(this._callback.call(this._that, ...args)).then(val => this._deferred.resolve(val), err => this._deferred.reject(err));\n }\n catch (err) {\n this._deferred.reject(err);\n }\n }\n return this._deferred.promise;\n }\n}\n//# sourceMappingURL=callback.js.map"],"names":["TRACE_PARENT_HEADER","TRACE_STATE_HEADER","VERSION","VERSION_PART","TRACE_ID_PART","PARENT_ID_PART","FLAGS_PART","TRACE_PARENT_REGEX","parseTraceParent","traceParent","match","W3CTraceContextPropagator","context","carrier","setter","spanContext","getter","traceParentHeader","traceStateHeader","state","SUPPRESS_TRACING_KEY","suppressTracing","unsuppressTracing","isTracingSuppressed","unrefTimer","_timer","exports","createResource","resource","toAttributes","createInstrumentationScope","scope","attributes","key","toKeyValue","value","toAnyValue","t","k","v","loggingErrorHandler","ex","stringifyException","flattenException","result","current","propertyName","__read","o","n","m","i","r","ar","e","error","__values","s","BaggageImpl","entries","entry","_a","_b","newBaggage","e_1","keys","_i","keys_1","keys_1_1","e_1_1","baggageEntryMetadataSymbol","createBaggage","baggageEntryMetadataFromString","str","SpanStatusCode","ATTR_PROCESS_RUNTIME_NAME","SDK_INFO","CompositePropagator","config","p","x","y","propagator","err","ctx","ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT","ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED","ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED","ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED","ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED","ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE","ATTR_ASPNETCORE_RATE_LIMITING_POLICY","ATTR_ASPNETCORE_RATE_LIMITING_RESULT","ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED","ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER","ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER","ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED","ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED","ATTR_ASPNETCORE_ROUTING_IS_FALLBACK","ATTR_ASPNETCORE_ROUTING_MATCH_STATUS","ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE","ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS","ATTR_ASPNETCORE_USER_IS_AUTHENTICATED","ATTR_CLIENT_ADDRESS","ATTR_CLIENT_PORT","ATTR_CODE_COLUMN_NUMBER","ATTR_CODE_FILE_PATH","ATTR_CODE_FUNCTION_NAME","ATTR_CODE_LINE_NUMBER","ATTR_CODE_STACKTRACE","ATTR_DB_COLLECTION_NAME","ATTR_DB_NAMESPACE","ATTR_DB_OPERATION_BATCH_SIZE","ATTR_DB_OPERATION_NAME","ATTR_DB_QUERY_SUMMARY","ATTR_DB_QUERY_TEXT","ATTR_DB_RESPONSE_STATUS_CODE","ATTR_DB_STORED_PROCEDURE_NAME","ATTR_DB_SYSTEM_NAME","DB_SYSTEM_NAME_VALUE_MARIADB","DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER","DB_SYSTEM_NAME_VALUE_MYSQL","DB_SYSTEM_NAME_VALUE_POSTGRESQL","ATTR_DOTNET_GC_HEAP_GENERATION","DOTNET_GC_HEAP_GENERATION_VALUE_GEN0","DOTNET_GC_HEAP_GENERATION_VALUE_GEN1","DOTNET_GC_HEAP_GENERATION_VALUE_GEN2","DOTNET_GC_HEAP_GENERATION_VALUE_LOH","DOTNET_GC_HEAP_GENERATION_VALUE_POH","ATTR_ERROR_TYPE","ERROR_TYPE_VALUE_OTHER","ATTR_EXCEPTION_ESCAPED","ATTR_EXCEPTION_MESSAGE","ATTR_EXCEPTION_STACKTRACE","ATTR_EXCEPTION_TYPE","ATTR_HTTP_REQUEST_HEADER","ATTR_HTTP_REQUEST_METHOD","HTTP_REQUEST_METHOD_VALUE_OTHER","HTTP_REQUEST_METHOD_VALUE_CONNECT","HTTP_REQUEST_METHOD_VALUE_DELETE","HTTP_REQUEST_METHOD_VALUE_GET","HTTP_REQUEST_METHOD_VALUE_HEAD","HTTP_REQUEST_METHOD_VALUE_OPTIONS","HTTP_REQUEST_METHOD_VALUE_PATCH","HTTP_REQUEST_METHOD_VALUE_POST","HTTP_REQUEST_METHOD_VALUE_PUT","HTTP_REQUEST_METHOD_VALUE_TRACE","ATTR_HTTP_REQUEST_METHOD_ORIGINAL","ATTR_HTTP_REQUEST_RESEND_COUNT","ATTR_HTTP_RESPONSE_HEADER","ATTR_HTTP_RESPONSE_STATUS_CODE","ATTR_HTTP_ROUTE","ATTR_JVM_GC_ACTION","ATTR_JVM_GC_NAME","ATTR_JVM_MEMORY_POOL_NAME","ATTR_JVM_MEMORY_TYPE","JVM_MEMORY_TYPE_VALUE_HEAP","JVM_MEMORY_TYPE_VALUE_NON_HEAP","ATTR_JVM_THREAD_DAEMON","ATTR_JVM_THREAD_STATE","JVM_THREAD_STATE_VALUE_BLOCKED","JVM_THREAD_STATE_VALUE_NEW","JVM_THREAD_STATE_VALUE_RUNNABLE","JVM_THREAD_STATE_VALUE_TERMINATED","JVM_THREAD_STATE_VALUE_TIMED_WAITING","JVM_THREAD_STATE_VALUE_WAITING","ATTR_NETWORK_LOCAL_ADDRESS","ATTR_NETWORK_LOCAL_PORT","ATTR_NETWORK_PEER_ADDRESS","ATTR_NETWORK_PEER_PORT","ATTR_NETWORK_PROTOCOL_NAME","ATTR_NETWORK_PROTOCOL_VERSION","ATTR_NETWORK_TRANSPORT","NETWORK_TRANSPORT_VALUE_PIPE","NETWORK_TRANSPORT_VALUE_QUIC","NETWORK_TRANSPORT_VALUE_TCP","NETWORK_TRANSPORT_VALUE_UDP","NETWORK_TRANSPORT_VALUE_UNIX","ATTR_NETWORK_TYPE","NETWORK_TYPE_VALUE_IPV4","NETWORK_TYPE_VALUE_IPV6","ATTR_OTEL_SCOPE_NAME","ATTR_OTEL_SCOPE_VERSION","ATTR_OTEL_STATUS_CODE","OTEL_STATUS_CODE_VALUE_ERROR","OTEL_STATUS_CODE_VALUE_OK","ATTR_OTEL_STATUS_DESCRIPTION","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","ATTR_SIGNALR_CONNECTION_STATUS","SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN","SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE","SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT","ATTR_SIGNALR_TRANSPORT","SIGNALR_TRANSPORT_VALUE_LONG_POLLING","SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS","SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS","ATTR_TELEMETRY_SDK_LANGUAGE","TELEMETRY_SDK_LANGUAGE_VALUE_CPP","TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET","TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG","TELEMETRY_SDK_LANGUAGE_VALUE_GO","TELEMETRY_SDK_LANGUAGE_VALUE_JAVA","TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS","TELEMETRY_SDK_LANGUAGE_VALUE_PHP","TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON","TELEMETRY_SDK_LANGUAGE_VALUE_RUBY","TELEMETRY_SDK_LANGUAGE_VALUE_RUST","TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT","TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS","ATTR_TELEMETRY_SDK_NAME","ATTR_TELEMETRY_SDK_VERSION","ATTR_URL_FRAGMENT","ATTR_URL_FULL","ATTR_URL_PATH","ATTR_URL_QUERY","ATTR_URL_SCHEME","ATTR_USER_AGENT_ORIGINAL","objectTag","nullTag","undefinedTag","funcToString","objectCtorString","getPrototypeOf","objectProto","symToStringTag","nativeObjectToString","isPlainObject","isObjectLike","baseGetTag","proto","Ctor","getRawTag","objectToString","isOwn","tag","unmasked","MAX_LEVEL","merge","args","objects","mergeTwoObjects","takeValue","isArray","one","two","level","isPrimitive","isFunction","j","isObject","shouldMerge","twoValue","obj1","obj2","wasObjectReferenced","arr1","arr2","obj","arr","info","NonRecordingSpan","_spanContext","_key","_value","_attributes","_name","_link","_links","_status","_endTime","_exception","_time","createContextKey","description","BaseContext","parentContext","self","ROOT_CONTEXT","getStringFromEnv","_","getBooleanFromEnv","getNumberFromEnv","getStringListFromEnv","noop","InternalLoggerLevel","defaultInternalLogger","defaultInternalLoggerLevel","defaultUnpatchedConsole","BaseExtension","BaseInstrumentation","dateNow","getCurrentTimestamp","timestampToIsoString","alphabet","genShortID","length","Observable","subscriber","sub","internalSubscriber","data","subscription","resultUnsubscribeFn","predicate","observables","mergerObservable","subscriptions","observable","originalUnsubscribeAll","TransportItemType","transportItemTypeToBodyKey","isTypeof","type","isToString","isInstanceOf","reference","isUndefined","isNull","isString","isNumber","isInt","isBoolean","isSymbol","isRegExp","isThenable","isEventDefined","isEvent","isErrorDefined","isError","isErrorEvent","isDomError","isDomException","isElementDefined","isElement","isMapDefined","isMap","isSyntheticEvent","isEmpty","getCircularDependencyReplacer","valueSeen","stringifyExternalJson","json","stringifyObjectValues","deepEqual","a","b","aIsArray","bIsArray","idx","aIsObject","bIsObject","aKeys","bKeys","aLength","bLength","aKey","USER_ACTION_START","USER_ACTION_END","USER_ACTION_CANCEL","USER_ACTION_HALT","initializeEventsAPI","internalLogger","metas","transports","tracesApi","actionBuffer","getMessage","lastPayload","name","domain","skipDedupe","timestampOverwriteMs","customPayloadTransformer","payload","attrs","item","testingPayload","msg","shouldIgnoreEvent","patterns","pattern","defaultExceptionType","defaultErrorArgsSerializer","arg","stacktraceParser","initializeExceptionsAPI","changeStacktraceParser","newStacktraceParser","getStacktraceParser","ignoreErrors","preserveOriginalError","pushError","stackFrames","originalError","isErrorIgnored","parseCause","cause","message","stack","defaultLogArgsSerializer","initializeLogsAPI","logArgsSerializer","initializeMeasurementsAPI","initializeMetaAPI","metaSession","metaUser","metaView","metaPage","setUser","user","setSession","session","options","newOverrides","overrides","getSession","setView","view","previousView","getView","setPage","page","pageMeta","getPage","initializeTracesAPI","_unpatchedConsole","_config","otel","trace","ItemBuffer","cb","createUserActionLifecycleHandler","apiMessageBus","trackUserActionsExcludeItem","id","isExcludeFromUserAction","userActionItem","initializeAPI","unpatchedConsole","props","MESSAGE_TYPE_RESOURCE_ENTRY","MESSAGE_TYPE_HTTP_REQUEST_START","MESSAGE_TYPE_HTTP_REQUEST_END","MESSAGE_TYPE_DOM_MUTATION","userActionDataAttributeParsed","userActionDataAttribute","monitorDomMutations","_mutationsList","_observer","getIgnoreUrls","transport","isUrlIgnored","url","ignoredUrl","getUrlFromResource","apiTypeFetch","apiTypeXhr","monitorHttpRequests","emitStartMessage","requestProps","emitEndMessage","monitorFetch","monitorXhr","onRequestStart","onRequestEnd","originalOpen","isIgnoredUrl","method","requestId","originalFetch","response","unknownString","webStorageType","isWebStorageAvailable","storage","testItem","getItem","webStorageMechanism","isWebStorageTypeAvailable","setItem","removeItem","isLocalStorageAvailable","isSessionStorageAvailable","NAVIGATION_ID_STORAGE_KEY","NAVIGATION_ENTRY","RESOURCE_ENTRY","w3cTraceparentFormat","getSpanContextFromServerTiming","serverTimings","serverEntry","traceId","spanId","performanceObserverSupported","onDocumentReady","handleReady","readyStateCompleteHandler","includePerformanceEntry","performanceEntryJSON","allowProps","allowPropKey","allowPropValue","perfEntryPropVal","createFaroResourceTiming","resourceEntryRaw","connectEnd","connectStart","decodedBodySize","domainLookupEnd","domainLookupStart","duration","encodedBodySize","fetchStart","initiatorType","nextHopProtocol","redirectEnd","redirectStart","rbs","requestStart","responseEnd","responseStart","responseStatus","secureConnectionStart","transferSize","workerStart","toFaroPerformanceTimingString","getCacheType","cacheType","createFaroNavigationTiming","navigationEntryRaw","activationStart","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","loadEventEnd","loadEventStart","parserStart","getDocumentParsingTime","getNavigationTimings","pushEvent","faroNavigationEntryResolve","faroNavigationEntryPromise","resolve","observedEntries","navEntryJson","faroPreviousNavigationId","faroNavigationEntry","DEFAULT_TRACK_RESOURCES","observeResourceTimings","faroNavigationId","trackResources","resourceEntryJson","faroResourceEntry","__awaiter","thisArg","_arguments","P","generator","adopt","reject","fulfilled","step","rejected","performanceEntriesSubscription","PerformanceInstrumentation","monitorPerformanceEntries","convertDataAttributeName","withoutData","withUpperCase","char","maxFollowUpActionTimeRange","getUserEventHandler","faro","api","httpMonitor","domMutationsMonitor","performanceEntriesMonitor","timeoutId","actionRunning","processUserEvent","event","userActionName","isApiEventDetected","isApiEvent","getUserActionName","startTime","endTime","actionId","startTimeout","sendUserActionCancelMessage","runningRequests","isHalted","pendingActionTimeoutId","allMonitorsSub","isRequestEndMessage","isRequestStartMessage","userActionParentEventProps","hasPendingRequests","unsubscribeAllMonitors","endUserAction","eventType","element","dataAttributeName","parsedDataAttributeName","dataset","delay","apiEvent","processUserEventHandler","UserActionInstrumentation","startUserAction","createUserActionApiEvent","primitiveUnhandledValue","primitiveUnhandledType","domErrorType","domExceptionType","objectEventValue","unknownSymbolString","valueTypeRegex","getValueAndTypeFromMessage","groups","newLineString","evalString","atString","webkitLineRegex","webkitEvalRegex","webkitEvalString","webkitAddressAtString","webkitAddressAtStringLength","firefoxLineRegex","firefoxEvalRegex","firefoxEvalString","safariExtensionString","safariWebExtensionString","reactMinifiedRegex","buildStackFrame","filename","func","lineno","colno","stackFrame","getDataFromSafariExtensions","isSafariExtension","isSafariWebExtension","getStackFramesFromError","lines","_line","acc","line","parts","submatch","getErrorDetails","evt","isDomErrorRes","isEventRes","getDetailsFromErrorArgs","source","eventIsString","initialStackFrame","getDetailsFromConsoleErrorArgs","serializer","registerOnerror","oldOnerror","registerOnunhandledrejection","ErrorsInstrumentation","c","u","f","d","l","h","g","T","E","C","S","L","w","A","I","M","F","D","R","B","H","q","O","N","z","G","J","K","Q","U","V","W","Z","X","Y","$","ee","WebVitalsBasic","pushMeasurement","webVitalConfig","indicator","executor","metric","nt","tt","et","rt","it","at","ot","ct","ut","st","ft","dt","lt","mt","gt","vt","pt","ht","Tt","yt","loadStateKey","timeToFirstByteKey","WebVitalsWithAttribution","corePushMeasurement","loadState","largestShiftValue","largestShiftTime","largestShiftTarget","values","firstByteToFCP","timeToFirstByte","eventTime","eventTarget","interactionTime","presentationDelay","inputDelay","processingDuration","nextPaintTime","interactionTarget","interactionType","elementRenderDelay","resourceLoadDelay","resourceLoadDuration","dnsDuration","connectionDuration","requestDuration","waitingDuration","cacheDuration","navigationEntryId","WebVitalsInstrumentation","_c","Conventions","EVENT_CLICK","EVENT_NAVIGATION","EVENT_VIEW_CHANGED","EVENT_SESSION_START","EVENT_SESSION_RESUME","EVENT_SESSION_EXTEND","EVENT_OVERRIDES_SERVICE_NAME","EVENT_ROUTE_CHANGE","createSession","_d","isSampled","sessionTracking","samplingRate","throttle","callback","pause","lastPending","timeoutBehavior","STORAGE_KEY","SESSION_EXPIRATION_TIME","SESSION_INACTIVITY_TIME","STORAGE_UPDATE_DELAY","MAX_SESSION_PERSISTENCE_TIME_BUFFER","defaultSessionTrackingConfig","createUserSessionObject","sessionId","started","lastActivity","now","generateSessionId","isUserSessionValid","getUserSessionUpdater","fetchUserSession","storeUserSession","forceSessionExtend","sessionTrackingConfig","isPersistentSessions","sessionFromStorage","newSession","addSessionMetadataToNextSession","previousSession","_e","_f","_g","sessionWithMeta","previousSessionId","getSessionMetaUpdateHandler","meta","sessionFromSessionStorage","sessionAttributes","sessionOverrides","storedSessionMeta","storedSessionMetaOverrides","hasSessionOverridesChanged","hasAttributesChanged","userSession","sendOverrideEvent","storedSessionOverrides","serviceName","previousServiceName","PersistentSessionsManager","storedSession","VolatileSessionsManager","getSessionManagerByConfig","SessionInstrumentation","SessionManager","sessionsConfig","storedUserSession","lifecycleType","initialSession","storedUserSessionMeta","updateSession","newItem","newAttributes","initialSessionMeta","ViewInstrumentation","CSPInstrumentation","ev","ConsoleInstrumentation","serializeErrors","getWebInstrumentations","instrumentations","BaseTransport","createPromiseBuffer","size","concurrency","buffer","inProgress","work","producer","reason","promiseProducer","mergeResourceSpans","traces","resourceSpans","currentResource","currentSpans","newSpans","getTransportBody","body","currentItem","bk","signals","__rest","DEFAULT_BUFFER_SIZE","DEFAULT_CONCURRENCY","DEFAULT_RATE_LIMIT_BACKOFF_MS","BEACON_BODY_SIZE_LIMIT","TOO_MANY_REQUESTS","ACCEPTED","FetchTransport","items","requestOptions","apiKey","headers","restOfRequestOptions","sessionMeta","retryAfterHeader","date","logDebug","SessionExpiredString","initializeInstrumentations","newInstrumentations","newInstrumentation","existingInstrumentation","instrumentationsToRemove","instrumentationToRemove","existingInstrumentationIndex","existingTransportIndex","registerInitialInstrumentations","createInternalLogger","internalLoggerLevel","initializeInternalLogger","initializeMetas","listeners","getValue","notifyListeners","listener","newItems","itemsToRemove","currentListener","getBundleId","appName","globalObject","registerInitialMetas","initial","DEFAULT_SEND_TIMEOUT_MS","DEFAULT_BATCH_ITEM_LIMIT","BatchExecutor","sendFn","itemMap","metaKey","currentItems","initializeTransports","paused","beforeSendHooks","add","newTransports","newTransport","existingTransport","addBeforeSendHooks","newBeforeSendHooks","beforeSendHook","applyBeforeSendHooks","filteredItems","hook","modified","sanitizeItems","batchedSend","instantSend","filteredItem","batchExecutor","transportsToRemove","transportToRemove","beforeSendHooksToRemove","registerInitialTransports","initializeUnpatchedConsole","initializeFaro","registerFaro","defaultGlobalObjectKey","defaultBatchingConfig","defaultEventDomain","parseStacktrace","browserMeta","parser","version","osName","osVersion","userAgent","language","mobile","brands","getBrands","k6Meta","k6Properties","currentHref","pageId","createPageMeta","generatePageId","initialPageMeta","locationHref","makeCoreConfig","browserConfig","dedupe","eventDomain","globalObjectKey","isolate","createDefaultMetas","preventGlobalExposure","trackUserActionsPreview","trackUserActionsDataAttributeName","browserConfigUrl","restProperties","getFilteredInstrumentations","crateSessionMeta","instr","initialMetas","trackGeolocation","coreConfig","__extends","extendStatics","__","NoopMeter","_options","NOOP_GAUGE_METRIC","NOOP_HISTOGRAM_METRIC","NOOP_COUNTER_METRIC","NOOP_UP_DOWN_COUNTER_METRIC","NOOP_OBSERVABLE_GAUGE_METRIC","NOOP_OBSERVABLE_COUNTER_METRIC","NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC","_callback","_observables","NoopMetric","NoopCounterMetric","_super","NoopUpDownCounterMetric","NoopGaugeMetric","NoopHistogramMetric","NoopObservableMetric","NoopObservableCounterMetric","NoopObservableGaugeMetric","NoopObservableUpDownCounterMetric","NOOP_METER","createNoopMeter","NoopMeterProvider","_version","NOOP_METER_PROVIDER","API_NAME","MetricsAPI","provider","metrics","_globalThis","GLOBAL_LOGS_API_KEY","_global","makeGetter","requiredVersion","instance","fallback","API_BACKWARDS_COMPATIBILITY_VERSION","NoopLogger","_logRecord","NOOP_LOGGER","NoopLoggerProvider","NOOP_LOGGER_PROVIDER","ProxyLogger","_provider","logRecord","logger","ProxyLoggerProvider","delegate","LogsAPI","logs","enableInstrumentations","tracerProvider","meterProvider","loggerProvider","instrumentation","disableInstrumentations","registerInstrumentations","defaultServiceName","isPromiseLike","val","identity","ResourceImpl","res","guardedRawAttributes","resourceFromAttributes","resourceFromDetectedResource","detectedResource","emptyResource","defaultResource","SpanKind","SamplingDecision","ExceptionEventName","SpanImpl","opts","attributeCountLimit","attributesOrStartTime","timeStamp","eventCountLimit","link","links","status","inp","msDuration","exception","time","limit","AlwaysOffSampler","AlwaysOnSampler","ParentBasedSampler","spanName","spanKind","TraceIdRatioBasedSampler","_ratio","ratio","accumulation","pos","part","DEFAULT_RATIO","loadDefaultConfig","buildSamplerFromEnv","sampler","getSamplerProbabilityFromEnv","probability","DEFAULT_ATTRIBUTE_COUNT_LIMIT","DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT","mergeConfig","userConfig","perInstanceDefaults","DEFAULT_CONFIG","target","reconfigureLimits","spanLimits","SPAN_ID_BYTES","TRACE_ID_BYTES","RandomIdGenerator","getIdGenerator","SHARED_CHAR_CODES_ARRAY","bytes","Tracer","instrumentationScope","spanProcessor","localConfig","parentSpan","parentSpanContext","validParentSpanContext","traceState","samplingResult","traceFlags","initAttributes","arg2","arg3","arg4","fn","span","contextWithSpanSet","MultiSpanProcessor","_spanProcessors","promises","ForceFlushState","BasicTracerProvider","mergedConfig","spanProcessors","timeout","timeoutInterval","results","errors","StackContextManager","manager","contextWrapper","previousContext","setupContextManager","contextManager","defaultContextManager","setupPropagator","W3CBaggagePropagator","WebTracerProvider","BatchSpanProcessorBase","_exporter","_span","_parentContext","count","timer","spans","doExport","ExportResult","pendingResources","len","flush","BatchSpanProcessor","createConstMap","lp","TMP_CLOUD_PROVIDER","TMP_CLOUD_ACCOUNT_ID","TMP_CLOUD_REGION","TMP_CLOUD_AVAILABILITY_ZONE","TMP_CLOUD_PLATFORM","TMP_AWS_ECS_CONTAINER_ARN","TMP_AWS_ECS_CLUSTER_ARN","TMP_AWS_ECS_LAUNCHTYPE","TMP_AWS_ECS_TASK_ARN","TMP_AWS_ECS_TASK_FAMILY","TMP_AWS_ECS_TASK_REVISION","TMP_AWS_EKS_CLUSTER_ARN","TMP_AWS_LOG_GROUP_NAMES","TMP_AWS_LOG_GROUP_ARNS","TMP_AWS_LOG_STREAM_NAMES","TMP_AWS_LOG_STREAM_ARNS","TMP_CONTAINER_NAME","TMP_CONTAINER_ID","TMP_CONTAINER_RUNTIME","TMP_CONTAINER_IMAGE_NAME","TMP_CONTAINER_IMAGE_TAG","TMP_DEPLOYMENT_ENVIRONMENT","TMP_DEVICE_ID","TMP_DEVICE_MODEL_IDENTIFIER","TMP_DEVICE_MODEL_NAME","TMP_FAAS_NAME","TMP_FAAS_ID","TMP_FAAS_VERSION","TMP_FAAS_INSTANCE","TMP_FAAS_MAX_MEMORY","TMP_HOST_ID","TMP_HOST_NAME","TMP_HOST_TYPE","TMP_HOST_ARCH","TMP_HOST_IMAGE_NAME","TMP_HOST_IMAGE_ID","TMP_HOST_IMAGE_VERSION","TMP_K8S_CLUSTER_NAME","TMP_K8S_NODE_NAME","TMP_K8S_NODE_UID","TMP_K8S_NAMESPACE_NAME","TMP_K8S_POD_UID","TMP_K8S_POD_NAME","TMP_K8S_CONTAINER_NAME","TMP_K8S_REPLICASET_UID","TMP_K8S_REPLICASET_NAME","TMP_K8S_DEPLOYMENT_UID","TMP_K8S_DEPLOYMENT_NAME","TMP_K8S_STATEFULSET_UID","TMP_K8S_STATEFULSET_NAME","TMP_K8S_DAEMONSET_UID","TMP_K8S_DAEMONSET_NAME","TMP_K8S_JOB_UID","TMP_K8S_JOB_NAME","TMP_K8S_CRONJOB_UID","TMP_K8S_CRONJOB_NAME","TMP_OS_TYPE","TMP_OS_DESCRIPTION","TMP_OS_NAME","TMP_OS_VERSION","TMP_PROCESS_PID","TMP_PROCESS_EXECUTABLE_NAME","TMP_PROCESS_EXECUTABLE_PATH","TMP_PROCESS_COMMAND","TMP_PROCESS_COMMAND_LINE","TMP_PROCESS_COMMAND_ARGS","TMP_PROCESS_OWNER","TMP_PROCESS_RUNTIME_NAME","TMP_PROCESS_RUNTIME_VERSION","TMP_PROCESS_RUNTIME_DESCRIPTION","TMP_SERVICE_NAME","TMP_SERVICE_NAMESPACE","TMP_SERVICE_INSTANCE_ID","TMP_SERVICE_VERSION","TMP_TELEMETRY_SDK_NAME","TMP_TELEMETRY_SDK_LANGUAGE","TMP_TELEMETRY_SDK_VERSION","TMP_TELEMETRY_AUTO_VERSION","TMP_WEBENGINE_NAME","TMP_WEBENGINE_VERSION","TMP_WEBENGINE_DESCRIPTION","SEMRESATTRS_CLOUD_PROVIDER","SEMRESATTRS_CLOUD_ACCOUNT_ID","SEMRESATTRS_CLOUD_REGION","SEMRESATTRS_CLOUD_AVAILABILITY_ZONE","SEMRESATTRS_CLOUD_PLATFORM","SEMRESATTRS_AWS_ECS_CONTAINER_ARN","SEMRESATTRS_AWS_ECS_CLUSTER_ARN","SEMRESATTRS_AWS_ECS_LAUNCHTYPE","SEMRESATTRS_AWS_ECS_TASK_ARN","SEMRESATTRS_AWS_ECS_TASK_FAMILY","SEMRESATTRS_AWS_ECS_TASK_REVISION","SEMRESATTRS_AWS_EKS_CLUSTER_ARN","SEMRESATTRS_AWS_LOG_GROUP_NAMES","SEMRESATTRS_AWS_LOG_GROUP_ARNS","SEMRESATTRS_AWS_LOG_STREAM_NAMES","SEMRESATTRS_AWS_LOG_STREAM_ARNS","SEMRESATTRS_CONTAINER_NAME","SEMRESATTRS_CONTAINER_ID","SEMRESATTRS_CONTAINER_RUNTIME","SEMRESATTRS_CONTAINER_IMAGE_NAME","SEMRESATTRS_CONTAINER_IMAGE_TAG","SEMRESATTRS_DEPLOYMENT_ENVIRONMENT","SEMRESATTRS_DEVICE_ID","SEMRESATTRS_DEVICE_MODEL_IDENTIFIER","SEMRESATTRS_DEVICE_MODEL_NAME","SEMRESATTRS_FAAS_NAME","SEMRESATTRS_FAAS_ID","SEMRESATTRS_FAAS_VERSION","SEMRESATTRS_FAAS_INSTANCE","SEMRESATTRS_FAAS_MAX_MEMORY","SEMRESATTRS_HOST_ID","SEMRESATTRS_HOST_NAME","SEMRESATTRS_HOST_TYPE","SEMRESATTRS_HOST_ARCH","SEMRESATTRS_HOST_IMAGE_NAME","SEMRESATTRS_HOST_IMAGE_ID","SEMRESATTRS_HOST_IMAGE_VERSION","SEMRESATTRS_K8S_CLUSTER_NAME","SEMRESATTRS_K8S_NODE_NAME","SEMRESATTRS_K8S_NODE_UID","SEMRESATTRS_K8S_NAMESPACE_NAME","SEMRESATTRS_K8S_POD_UID","SEMRESATTRS_K8S_POD_NAME","SEMRESATTRS_K8S_CONTAINER_NAME","SEMRESATTRS_K8S_REPLICASET_UID","SEMRESATTRS_K8S_REPLICASET_NAME","SEMRESATTRS_K8S_DEPLOYMENT_UID","SEMRESATTRS_K8S_DEPLOYMENT_NAME","SEMRESATTRS_K8S_STATEFULSET_UID","SEMRESATTRS_K8S_STATEFULSET_NAME","SEMRESATTRS_K8S_DAEMONSET_UID","SEMRESATTRS_K8S_DAEMONSET_NAME","SEMRESATTRS_K8S_JOB_UID","SEMRESATTRS_K8S_JOB_NAME","SEMRESATTRS_K8S_CRONJOB_UID","SEMRESATTRS_K8S_CRONJOB_NAME","SEMRESATTRS_OS_TYPE","SEMRESATTRS_OS_DESCRIPTION","SEMRESATTRS_OS_NAME","SEMRESATTRS_OS_VERSION","SEMRESATTRS_PROCESS_PID","SEMRESATTRS_PROCESS_EXECUTABLE_NAME","SEMRESATTRS_PROCESS_EXECUTABLE_PATH","SEMRESATTRS_PROCESS_COMMAND","SEMRESATTRS_PROCESS_COMMAND_LINE","SEMRESATTRS_PROCESS_COMMAND_ARGS","SEMRESATTRS_PROCESS_OWNER","SEMRESATTRS_PROCESS_RUNTIME_NAME","SEMRESATTRS_PROCESS_RUNTIME_VERSION","SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION","SEMRESATTRS_SERVICE_NAME","SEMRESATTRS_SERVICE_NAMESPACE","SEMRESATTRS_SERVICE_INSTANCE_ID","SEMRESATTRS_SERVICE_VERSION","SEMRESATTRS_TELEMETRY_SDK_NAME","SEMRESATTRS_TELEMETRY_SDK_LANGUAGE","SEMRESATTRS_TELEMETRY_SDK_VERSION","SEMRESATTRS_TELEMETRY_AUTO_VERSION","SEMRESATTRS_WEBENGINE_NAME","SEMRESATTRS_WEBENGINE_VERSION","SEMRESATTRS_WEBENGINE_DESCRIPTION","SemanticResourceAttributes","TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD","TMP_CLOUDPROVIDERVALUES_AWS","TMP_CLOUDPROVIDERVALUES_AZURE","TMP_CLOUDPROVIDERVALUES_GCP","CLOUDPROVIDERVALUES_ALIBABA_CLOUD","CLOUDPROVIDERVALUES_AWS","CLOUDPROVIDERVALUES_AZURE","CLOUDPROVIDERVALUES_GCP","CloudProviderValues","TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS","TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC","TMP_CLOUDPLATFORMVALUES_AWS_EC2","TMP_CLOUDPLATFORMVALUES_AWS_ECS","TMP_CLOUDPLATFORMVALUES_AWS_EKS","TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA","TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK","TMP_CLOUDPLATFORMVALUES_AZURE_VM","TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES","TMP_CLOUDPLATFORMVALUES_AZURE_AKS","TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS","TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE","TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE","TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN","TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE","TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS","TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE","CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS","CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC","CLOUDPLATFORMVALUES_AWS_EC2","CLOUDPLATFORMVALUES_AWS_ECS","CLOUDPLATFORMVALUES_AWS_EKS","CLOUDPLATFORMVALUES_AWS_LAMBDA","CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK","CLOUDPLATFORMVALUES_AZURE_VM","CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES","CLOUDPLATFORMVALUES_AZURE_AKS","CLOUDPLATFORMVALUES_AZURE_FUNCTIONS","CLOUDPLATFORMVALUES_AZURE_APP_SERVICE","CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE","CLOUDPLATFORMVALUES_GCP_CLOUD_RUN","CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE","CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS","CLOUDPLATFORMVALUES_GCP_APP_ENGINE","CloudPlatformValues","TMP_AWSECSLAUNCHTYPEVALUES_EC2","TMP_AWSECSLAUNCHTYPEVALUES_FARGATE","AWSECSLAUNCHTYPEVALUES_EC2","AWSECSLAUNCHTYPEVALUES_FARGATE","AwsEcsLaunchtypeValues","TMP_HOSTARCHVALUES_AMD64","TMP_HOSTARCHVALUES_ARM32","TMP_HOSTARCHVALUES_ARM64","TMP_HOSTARCHVALUES_IA64","TMP_HOSTARCHVALUES_PPC32","TMP_HOSTARCHVALUES_PPC64","TMP_HOSTARCHVALUES_X86","HOSTARCHVALUES_AMD64","HOSTARCHVALUES_ARM32","HOSTARCHVALUES_ARM64","HOSTARCHVALUES_IA64","HOSTARCHVALUES_PPC32","HOSTARCHVALUES_PPC64","HOSTARCHVALUES_X86","HostArchValues","TMP_OSTYPEVALUES_WINDOWS","TMP_OSTYPEVALUES_LINUX","TMP_OSTYPEVALUES_DARWIN","TMP_OSTYPEVALUES_FREEBSD","TMP_OSTYPEVALUES_NETBSD","TMP_OSTYPEVALUES_OPENBSD","TMP_OSTYPEVALUES_DRAGONFLYBSD","TMP_OSTYPEVALUES_HPUX","TMP_OSTYPEVALUES_AIX","TMP_OSTYPEVALUES_SOLARIS","TMP_OSTYPEVALUES_Z_OS","OSTYPEVALUES_WINDOWS","OSTYPEVALUES_LINUX","OSTYPEVALUES_DARWIN","OSTYPEVALUES_FREEBSD","OSTYPEVALUES_NETBSD","OSTYPEVALUES_OPENBSD","OSTYPEVALUES_DRAGONFLYBSD","OSTYPEVALUES_HPUX","OSTYPEVALUES_AIX","OSTYPEVALUES_SOLARIS","OSTYPEVALUES_Z_OS","OsTypeValues","TMP_TELEMETRYSDKLANGUAGEVALUES_CPP","TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET","TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG","TMP_TELEMETRYSDKLANGUAGEVALUES_GO","TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA","TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS","TMP_TELEMETRYSDKLANGUAGEVALUES_PHP","TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON","TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY","TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS","TELEMETRYSDKLANGUAGEVALUES_CPP","TELEMETRYSDKLANGUAGEVALUES_DOTNET","TELEMETRYSDKLANGUAGEVALUES_ERLANG","TELEMETRYSDKLANGUAGEVALUES_GO","TELEMETRYSDKLANGUAGEVALUES_JAVA","TELEMETRYSDKLANGUAGEVALUES_NODEJS","TELEMETRYSDKLANGUAGEVALUES_PHP","TELEMETRYSDKLANGUAGEVALUES_PYTHON","TELEMETRYSDKLANGUAGEVALUES_RUBY","TELEMETRYSDKLANGUAGEVALUES_WEBJS","TelemetrySdkLanguageValues","ATTR_SESSION_ID","ATTR_DEPLOYMENT_ENVIRONMENT_NAME","ATTR_SERVICE_NAMESPACE","ATTR_PROCESS_RUNTIME_VERSION","ATTR_TELEMETRY_DISTRO_NAME","ATTR_TELEMETRY_DISTRO_VERSION","ATTR_BROWSER_BRANDS","ATTR_BROWSER_LANGUAGE","ATTR_BROWSER_MOBILE","ATTR_BROWSER_PLATFORM","FaroMetaAttributesSpanProcessor","processor","role","DURATION_NS_KEY","sendFaroEvents","resourceSpan","scopeSpans","scopeSpan","faroEventAttributes","attribute","index","eventName","FaroTraceExporter","resultCallback","traceEvent","FaroUserActionSpanProcessor","defineProperty","enumerable","wrap","nodule","wrapper","original","wrapped","massWrap","nodules","names","unwrap","massUnwrap","shimmer","InstrumentationAbstract","instrumentationName","instrumentationVersion","initResult","hookHandler","triggerName","InstrumentationBase","SemconvStability","semconvStabilityFromStr","namespace","semconvStability","safeExecuteInTheMiddle","execute","onFinish","preventThrowingError","safeExecuteInTheMiddleAsync","isWrapped","PerformanceTimingNames","ATTR_HTTP_RESPONSE_CONTENT_LENGTH","ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED","urlNormalizingAnchor","getUrlNormalizingAnchor","hasKey","addSpanNetworkEvent","performanceName","ignoreZeros","addSpanNetworkEvents","ignoreNetworkEvents","skipOldSemconvContentLengthAttrs","encodedLength","decodedLength","sortResources","filteredResources","valueA","valueB","getOrigin","getResource","spanUrl","startTimeHR","endTimeHR","resources","ignoredResources","parsedSpanUrl","parseUrl","filterResourcesForSpan","sorted","corsPreFlightRequest","mainRequest","findMainRequest","corsPreFlightRequestEndTime","spanEndTimeHR","spanEndTime","minTime","bestGap","resourceStartTime","resourceEndTime","currentGap","normalizeUrl","getElementXPath","optimised","targetValue","getNodeValue","xpath","getNodeIndex","allowedTypes","elements","localName","nodeType","nodeValue","shouldPropagateTraceHeaders","propagateTraceHeaderCorsUrls","propagateTraceHeaderUrls","propagateTraceHeaderUrl","AttributeNames","DIAG_LOGGER","getFetchBodyLength","requestInit","_getBodyNonDestructively","getXHRBodyLength","getByteLength","resolveLength","lengthPromise","transform","chunk","controller","bytearray","isDocument","getFormDataSize","TEXT_ENCODER","formData","normalizeHttpRequestMethod","knownMethods","getKnownMethods","methUpper","DEFAULT_KNOWN_METHODS","cfgMethods","HTTP_PORT_FROM_PROTOCOL","serverPortFromUrl","serverPort","OBSERVER_WAIT_TIME_MS","isNode","FetchInstrumentation","childSpan","parsedUrl","origMethod","normMethod","resourcesObserver","spanData","performanceEndTime","plugin","createdSpan","bodyLength","endSpanOnError","endSpanOnSuccess","onSuccess","reader","read","done","onError","request","applyCustomAttributesOnSpan","requestHook","observer","list","ATTR_HTTP_HOST","ATTR_HTTP_METHOD","ATTR_HTTP_REQUEST_BODY_SIZE","ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED","ATTR_HTTP_SCHEME","ATTR_HTTP_STATUS_CODE","ATTR_HTTP_URL","ATTR_HTTP_USER_AGENT","EventNames","XMLHttpRequestInstrumentation","xhr","xhrMem","callbackToRemoveEvents","currentSpan","endSpanTimeout","sendStartTime","endSpan","errorType","onAbort","onTimeout","onLoad","unregister","FaroXhrInstrumentation","setSpanStatusOnFetchError","_request","httpStatusCode","setSpanStatus","setSpanStatusOnXMLHttpRequestError","isClientOrServerError","fetchCustomAttributeFunctionWithDefaults","xhrCustomAttributeFunctionWithDefaults","getDefaultOTELInstrumentations","fetchInstrumentationOptions","xhrInstrumentationOptions","sharedOptions","fetchOpts","createFetchInstrumentationOptions","xhrOpts","createXhrInstrumentationOptions","getSamplingDecision","TracingInstrumentation","EchoSrvTransport","bots","botsRegex","beforeSendHandler","botFilterEnabled","isCrossOriginIframe","TRACKING_URLS","GrafanaJavascriptAgentBackend","ignoreUrls","grafanaJavaScriptAgentOptions","__spreadArray","to","from","pack","DiagComponentLogger","logProxy","funcName","createLogLevelDiagLogger","maxLevel","_filterFunc","theLevel","theFunc","DiagAPI","_logProxy","setLogger","optionsOrLogLevel","oldLogger","newLogger","TraceFlags","NoopTextMapPropagator","_context","_carrier","defaultTextMapGetter","defaultTextMapSetter","BAGGAGE_KEY","getBaggage","getActiveBaggage","setBaggage","baggage","deleteBaggage","NOOP_TEXT_MAP_PROPAGATOR","PropagationAPI","propagation","core_1","hex_to_binary_1","hrTimeToNanos","hrTime","NANOSECONDS","toLongBits","low","high","encodeAsLongBits","nanos","encodeAsString","encodeTimestamp","optionalHexToBinary","DEFAULT_ENCODER","getOtlpEncoder","useLongBits","useHex","VALID_KEY_CHAR_RANGE","VALID_KEY","VALID_VENDOR_KEY","VALID_KEY_REGEX","VALID_VALUE_BASE_REGEX","INVALID_VALUE_COMMA_EQUAL_REGEX","validateKey","validateValue","MAX_TRACE_STATE_ITEMS","MAX_TRACE_STATE_LEN","LIST_MEMBERS_SEPARATOR","LIST_MEMBER_KEY_VALUE_SPLITTER","TraceState","rawTraceState","agg","listMember","NANOSECOND_DIGITS","MILLISECONDS_TO_NANOSECONDS","SECOND_TO_NANOSECONDS","millisToHrTime","epochMillis","epochSeconds","seconds","getTimeOrigin","timeOrigin","perf","performanceNow","addHrTimes","timeInputToHrTime","isTimeInputHrTime","hrTimeDuration","hrTimeToTimeStamp","precision","tmp","nanoString","hrTimeToNanoseconds","hrTimeToMilliseconds","hrTimeToMicroseconds","isTimeInput","time1","time2","out","VALID_TRACEID_REGEX","VALID_SPANID_REGEX","isValidTraceId","isValidSpanId","isSpanContextValid","wrapSpanContext","intValue","charCode","hexToBinary","hexStr","buf","offset","hi","lo","SPAN_KEY","getSpan","getActiveSpan","setSpan","deleteSpan","setSpanContext","getSpanContext","contextApi","NoopTracer","root","parentFromContext","isSpanContext","NOOP_TRACER","ProxyTracer","_fn","tracer","NoopTracerProvider","NOOP_TRACER_PROVIDER","ProxyTracerProvider","TraceAPI","success","otperformance","re","_makeCompatibilityCheck","ownVersion","acceptedVersions","rejectedVersions","myVersionMatch","ownVersionParsed","globalVersion","_reject","_accept","globalVersionMatch","globalVersionParsed","isCompatible","major","GLOBAL_OPENTELEMETRY_API_KEY","registerGlobal","diag","allowOverride","getGlobal","unregisterGlobal","keyPairs","pair","headerValue","baggageString","keyPair","baggageEntry","DiagLogLevel","window","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","extend","regexes","extensions","mergedRegexes","enumerize","enums","has","str1","str2","lowerize","majorize","trim","rgxMapper","ua","arrays","matches","regex","strMapper","map","oldSafariMap","windowsVersionMap","UAParser","_ua","_rgxmap","_browser","_cpu","_device","_engine","_os","module","prop","delegateHandler","setGlobalErrorHandler","handler","globalErrorHandler","urlMatches","urlToMatch","ignoredUrls","ignoreUrl","NoopContextManager","NOOP_CONTEXT_MANAGER","ContextAPI","sanitizeAttributes","isAttributeKey","isAttributeValue","isHomogeneousAttributeValueArray","isValidPrimitiveAttributeValue","BAGGAGE_KEY_PAIR_SEPARATOR","BAGGAGE_PROPERTIES_SEPARATOR","BAGGAGE_ITEMS_SEPARATOR","BAGGAGE_HEADER","BAGGAGE_MAX_NAME_VALUE_PAIRS","BAGGAGE_MAX_PER_NAME_VALUE_PAIRS","BAGGAGE_MAX_TOTAL_LENGTH","AnchoredClock","systemClock","monotonicClock","delta","RPC_METADATA_KEY","RPCType","setRPCMetadata","deleteRPCMetadata","getRPCMetadata","TimeoutError","callWithTimeout","promise","timeoutHandle","timeoutPromise","_resolve","logLevelMap","diagLogLevelFromString","resolvedLogLevel","_export","exporter","internal","ExportResultCode","internal_1","utils_1","sdkSpanToOtlpSpan","encoder","parentSpanId","toOtlpSpanEvent","toOtlpLink","timedEvent","createExportTraceServiceRequest","spanRecordsToResourceSpans","createResourceMap","readableSpans","resourceMap","record","ilsMap","instrumentationScopeKey","records","entryIterator","ilmMap","scopeResourceSpans","ilmIterator","ilmEntry","readableSpan","transformedSpans","INVALID_SPANID","INVALID_TRACEID","INVALID_SPAN_CONTEXT","serializeKeyPairs","hValue","getKeyPairs","parsePairKeyValue","valueProps","keyPairPart","separatorIndex","metadata","parseKeyPairsIntoRecord","ESpanKind","EStatusCode","Deferred","BindOnceFuture","_that"],"sourceRoot":""}
.
Edit
..
Edit
1117.145ac642f59357bc40d8.js
Edit
1117.145ac642f59357bc40d8.js.map
Edit
1118.c684d1aadf16a6c70620.js
Edit
1118.c684d1aadf16a6c70620.js.map
Edit
1122.5fbf0d7cd148c610616d.js
Edit
1122.5fbf0d7cd148c610616d.js.map
Edit
1142.a4b35a0e8699cafd901e.js
Edit
1142.a4b35a0e8699cafd901e.js.map
Edit
1162.81868b3ac499fa5ea04b.js
Edit
1162.81868b3ac499fa5ea04b.js.map
Edit
1183.7444f51e5996a7f23c7d.js
Edit
1183.7444f51e5996a7f23c7d.js.map
Edit
1282.ae38cac1b732d8ac1d96.js
Edit
1282.ae38cac1b732d8ac1d96.js.map
Edit
130.a58aaeea748f37ee6482.js
Edit
130.a58aaeea748f37ee6482.js.map
Edit
1419.59f53ae25085b28e1e11.js
Edit
1419.59f53ae25085b28e1e11.js.map
Edit
1420.e63ce495727f83b8887d.js
Edit
1420.e63ce495727f83b8887d.js.map
Edit
1438.ccdd05d7188edf4191ff.js
Edit
1438.ccdd05d7188edf4191ff.js.map
Edit
1446.fe7b1f4563629b80793f.js
Edit
1446.fe7b1f4563629b80793f.js.map
Edit
1484.3da94e44ecdadcd342d4.js
Edit
1484.3da94e44ecdadcd342d4.js.map
Edit
1492.4026c6e7130c3afdae87.js
Edit
1494.ef220afb67ff6c52c7af.js
Edit
1494.ef220afb67ff6c52c7af.js.map
Edit
1560.538cd2395be11ba4e2c9.js
Edit
1560.538cd2395be11ba4e2c9.js.map
Edit
1579.c391ef869d4f7bfc0d1c.js
Edit
1579.c391ef869d4f7bfc0d1c.js.map
Edit
1646.d7d87a40853795910533.js
Edit
1646.d7d87a40853795910533.js.map
Edit
1710.7db3f56c6714c0c340e0.js
Edit
1710.7db3f56c6714c0c340e0.js.map
Edit
1716.f71f518289da5d2229bc.js
Edit
1716.f71f518289da5d2229bc.js.map
Edit
1740.baf38e7ee007e1a6935e.js
Edit
1740.baf38e7ee007e1a6935e.js.map
Edit
1821.c9a2456dc8d78cf6b02f.js
Edit
1821.c9a2456dc8d78cf6b02f.js.map
Edit
1888.d33142738af4fbf8a230.js
Edit
1888.d33142738af4fbf8a230.js.map
Edit
1914.5f33b3c2133b5bb7ea6e.js
Edit
1914.5f33b3c2133b5bb7ea6e.js.map
Edit
198.65a768ff6c601d19ea3f.js
Edit
198.65a768ff6c601d19ea3f.js.map
Edit
1990.9171129a8deabb59bf30.js
Edit
1990.9171129a8deabb59bf30.js.map
Edit
2018.5ff00ee0456301c1cf43.js
Edit
2018.5ff00ee0456301c1cf43.js.map
Edit
205.2eb73847215c8d021cc9.js
Edit
205.2eb73847215c8d021cc9.js.map
Edit
2077.a5848ca4b4b9fdebca17.js
Edit
2077.a5848ca4b4b9fdebca17.js.map
Edit
2094.97e7f0876201e76a77fd.js
Edit
2094.97e7f0876201e76a77fd.js.map
Edit
2150.7576285186c713978b39.js
Edit
2150.7576285186c713978b39.js.map
Edit
2152.b55841e6f422682a3891.js
Edit
2152.b55841e6f422682a3891.js.map
Edit
221.0fc4d14d0a67f3a25d64.js
Edit
221.0fc4d14d0a67f3a25d64.js.map
Edit
2218.623d73bd0985ddf5f8c4.js
Edit
2218.623d73bd0985ddf5f8c4.js.map
Edit
2223.e65417164a45701ed9dc.js
Edit
2223.e65417164a45701ed9dc.js.map
Edit
2244.70c156ada2487a05595c.js
Edit
2244.70c156ada2487a05595c.js.map
Edit
2278.f887de0a65e1b784ea9f.js
Edit
2278.f887de0a65e1b784ea9f.js.map
Edit
2288.6a65ba08c6c0f4f83435.js
Edit
2288.6a65ba08c6c0f4f83435.js.map
Edit
2311.73e1a2b949d289f5d6c9.js
Edit
2311.73e1a2b949d289f5d6c9.js.map
Edit
2398.d142e32be48079fc63c0.js
Edit
2398.d142e32be48079fc63c0.js.map
Edit
2405.c1b37a7cc8182472f6a6.js
Edit
2405.c1b37a7cc8182472f6a6.js.map
Edit
2446.0418c7ea000998178d8b.js
Edit
2446.0418c7ea000998178d8b.js.map
Edit
2450.d73c024ff7273aebf911.js
Edit
2450.d73c024ff7273aebf911.js.map
Edit
2586.668c65b61e9ea31b5bca.js
Edit
2586.668c65b61e9ea31b5bca.js.map
Edit
265.ed6933785cc750cbd9ed.js
Edit
265.ed6933785cc750cbd9ed.js.map
Edit
2658.7f70ebc378803654a814.js
Edit
2658.7f70ebc378803654a814.js.map
Edit
2686.ae267304ddd1380c30c7.js
Edit
2686.ae267304ddd1380c30c7.js.map
Edit
2692.fa24ada7d987a7ee05f1.js
Edit
2692.fa24ada7d987a7ee05f1.js.map
Edit
2699.b79e57051a1a63376320.js
Edit
2699.b79e57051a1a63376320.js.map
Edit
2710.e1ac8e57578a838f5bd8.js
Edit
2710.e1ac8e57578a838f5bd8.js.map
Edit
2744.d6b14bf01022bdb8eab5.js
Edit
2744.d6b14bf01022bdb8eab5.js.map
Edit
2745.8049d948cb362dfc6cb3.js
Edit
2745.8049d948cb362dfc6cb3.js.map
Edit
2835.01beb5b1a252d779aad7.js
Edit
2835.01beb5b1a252d779aad7.js.map
Edit
2961.4b27b21453fdbb115dd4.js
Edit
2961.4b27b21453fdbb115dd4.js.map
Edit
2962.85c9dc0cca68efab5e0c.js
Edit
2962.85c9dc0cca68efab5e0c.js.map
Edit
2975.e64aaea6ff35a7d3b3fd.js
Edit
2975.e64aaea6ff35a7d3b3fd.js.map
Edit
3003.f51365051eb27cf765d8.js
Edit
3003.f51365051eb27cf765d8.js.map
Edit
3042.44bad7d2d0536000b808.js
Edit
3042.44bad7d2d0536000b808.js.map
Edit
3062.ad5844391370fcc7525a.js
Edit
3062.ad5844391370fcc7525a.js.map
Edit
3082.704af6779ad700a5fa42.js
Edit
3082.704af6779ad700a5fa42.js.map
Edit
3096.aed61083f1ba4803ae84.js
Edit
3096.aed61083f1ba4803ae84.js.map
Edit
3126.10c85e1f02105e470a69.js
Edit
3126.10c85e1f02105e470a69.js.map
Edit
3169.0b88a5a2340f70961599.js
Edit
3169.0b88a5a2340f70961599.js.map
Edit
3171.c79c28e2611563e2dbcb.js
Edit
3171.c79c28e2611563e2dbcb.js.map
Edit
3182.831f754ed3b6f10441a0.js
Edit
3182.831f754ed3b6f10441a0.js.map
Edit
3192.2cb90eadf3399270363e.js
Edit
3192.2cb90eadf3399270363e.js.map
Edit
3217.c6faaa4f5637068f90f3.js
Edit
3217.c6faaa4f5637068f90f3.js.map
Edit
3259.c8e4d6ad93201a56e49f.js
Edit
3259.c8e4d6ad93201a56e49f.js.map
Edit
3284.79c2897655286b0c1f6d.js
Edit
3284.79c2897655286b0c1f6d.js.map
Edit
3303.225dae64cff0c2280c3b.js
Edit
3303.225dae64cff0c2280c3b.js.map
Edit
3326.cabc370d66d7ecfbd2c3.js
Edit
3326.cabc370d66d7ecfbd2c3.js.map
Edit
344.85cff3029cbbb5463c7e.js
Edit
344.85cff3029cbbb5463c7e.js.map
Edit
3466.fda7da0cb4150e59da98.js
Edit
3466.fda7da0cb4150e59da98.js.map
Edit
3474.74dfd856a9528c758a57.js
Edit
3474.74dfd856a9528c758a57.js.map
Edit
348.fd20e2547f12dbed76c7.js
Edit
348.fd20e2547f12dbed76c7.js.map
Edit
3495.9c1ae6f61edf7aef207b.js
Edit
3495.9c1ae6f61edf7aef207b.js.map
Edit
3501.a0ee7c2b24136aa91eb5.js
Edit
3501.a0ee7c2b24136aa91eb5.js.map
Edit
3520.a3c2b474e2dcaf9879fc.js
Edit
3520.a3c2b474e2dcaf9879fc.js.map
Edit
3605.41e3c44dfe2ca2966198.js
Edit
3605.41e3c44dfe2ca2966198.js.map
Edit
362.e5ce68af98ee6713a4e7.js
Edit
362.e5ce68af98ee6713a4e7.js.map
Edit
3622.0b196041f825b42c5233.js
Edit
3622.0b196041f825b42c5233.js.map
Edit
3630.1ffe9229d5c27fd0823a.js
Edit
3630.1ffe9229d5c27fd0823a.js.map
Edit
3659.f5dc1bb19d36546aadb8.js
Edit
3659.f5dc1bb19d36546aadb8.js.map
Edit
3688.ec5e74c60569e9498687.js
Edit
3688.ec5e74c60569e9498687.js.map
Edit
3718.b570aa4fa35f8dfc686e.js
Edit
3718.b570aa4fa35f8dfc686e.js.map
Edit
3726.84ef8bb1304f7adbc7f3.js
Edit
3726.84ef8bb1304f7adbc7f3.js.map
Edit
398.ceeafcf522343c717c4b.js
Edit
398.ceeafcf522343c717c4b.js.map
Edit
4064.e52eb763993ad947e4a1.js
Edit
4064.e52eb763993ad947e4a1.js.map
Edit
407.594046bd73cc88c29e80.js
Edit
407.594046bd73cc88c29e80.js.map
Edit
4113.3fa5432815c4662eb03e.js
Edit
4113.3fa5432815c4662eb03e.js.map
Edit
4114.c4741f0a73781d3f87dc.js
Edit
4114.c4741f0a73781d3f87dc.js.map
Edit
4120.968e1408d894f8515330.js
Edit
4120.968e1408d894f8515330.js.map
Edit
4162.8b8a683fa98d677f9137.js
Edit
4162.8b8a683fa98d677f9137.js.map
Edit
4209.de7f2b850ee1292a67e5.js
Edit
4209.de7f2b850ee1292a67e5.js.map
Edit
4224.cc13db0c6e3f7fdb05c9.js
Edit
4224.cc13db0c6e3f7fdb05c9.js.map
Edit
4251.28e90ad13c8fe749062c.js
Edit
4251.28e90ad13c8fe749062c.js.map
Edit
4334.396d65b7ba31733108e9.js
Edit
4334.396d65b7ba31733108e9.js.map
Edit
4350.6db49924324f8061d361.js
Edit
4350.6db49924324f8061d361.js.map
Edit
4463.24a3e34bed64cbbb8b99.js
Edit
4463.24a3e34bed64cbbb8b99.js.map
Edit
4514.03e966fee9064d7305dd.js
Edit
4514.03e966fee9064d7305dd.js.map
Edit
4564.ea4a09ba96ddbf74a0ee.js
Edit
4564.ea4a09ba96ddbf74a0ee.js.map
Edit
46.7809585ddbb4791e248a.js
Edit
46.7809585ddbb4791e248a.js.map
Edit
4630.54d7f3b9d384c6b95bbc.js
Edit
4630.54d7f3b9d384c6b95bbc.js.map
Edit
4656.a07d832134b096826a58.js
Edit
4656.a07d832134b096826a58.js.map
Edit
468.d3a2ba8b0d226ca1475b.js
Edit
468.d3a2ba8b0d226ca1475b.js.map
Edit
4680.abd86af55b75e75326ab.js
Edit
4680.abd86af55b75e75326ab.js.map
Edit
4691.2f69f76af87a66a1513c.js
Edit
4691.2f69f76af87a66a1513c.js.map
Edit
4698.c9a2c562b12da12dc66e.js
Edit
4698.c9a2c562b12da12dc66e.js.map
Edit
4791.fc3ef0337811ab73b164.js
Edit
4791.fc3ef0337811ab73b164.js.map
Edit
4814.2d8cb562606e508512d8.js
Edit
4814.2d8cb562606e508512d8.js.map
Edit
4824.2da8107f19d58bf153e0.js
Edit
4824.2da8107f19d58bf153e0.js.map
Edit
4839.f4d2edd5c2678ef2b624.js
Edit
4839.f4d2edd5c2678ef2b624.js.map
Edit
4857.4971a98037d2ec3b663d.js
Edit
4857.4971a98037d2ec3b663d.js.map
Edit
4865.be02c1283a83523c4414.js
Edit
4865.be02c1283a83523c4414.js.map
Edit
494.5463fc5a297eaedd150f.js
Edit
494.5463fc5a297eaedd150f.js.map
Edit
4958.226af5f19bf47305a407.js
Edit
4958.226af5f19bf47305a407.js.map
Edit
4962.bbff24c5a85e9314600a.js
Edit
4962.bbff24c5a85e9314600a.js.map
Edit
4964.1f2cc5acc0078feb7b08.js
Edit
4964.1f2cc5acc0078feb7b08.js.map
Edit
4965.ccdc00d808390be53820.js
Edit
4965.ccdc00d808390be53820.js.map
Edit
5065.a2c71dab50ccb4174ee2.js
Edit
5065.a2c71dab50ccb4174ee2.js.map
Edit
5074.92e2d1ae98dcd913506e.js
Edit
5074.92e2d1ae98dcd913506e.js.map
Edit
5091.987ffc33b70121541e5d.js
Edit
5091.987ffc33b70121541e5d.js.map
Edit
5106.581eaf66a6592320d97a.js
Edit
5106.581eaf66a6592320d97a.js.map
Edit
5110.96d49ea826be96c65045.js
Edit
5110.96d49ea826be96c65045.js.map
Edit
5130.cbdddcd716a093bdbaac.js
Edit
5130.cbdddcd716a093bdbaac.js.map
Edit
5196.9b7364caf64a8583ad01.js
Edit
5196.9b7364caf64a8583ad01.js.map
Edit
5198.2cd64d4e16a385dd9b91.js
Edit
5198.2cd64d4e16a385dd9b91.js.map
Edit
5280.2c29942977baa2dfbe0e.js
Edit
5280.2c29942977baa2dfbe0e.js.map
Edit
5364.0288d9c98f74f26b73e7.js
Edit
5364.0288d9c98f74f26b73e7.js.map
Edit
5446.ad01d0b233122dd49849.js
Edit
5446.ad01d0b233122dd49849.js.map
Edit
5550.5bf3e7d23d6b104740fd.js
Edit
5550.5bf3e7d23d6b104740fd.js.map
Edit
5618.909592bbe054b70f2377.js
Edit
5618.909592bbe054b70f2377.js.map
Edit
5648.a1fc2b0cbbca9bfa1d94.js
Edit
5648.a1fc2b0cbbca9bfa1d94.js.map
Edit
5664.c55be32f6d459ac3f3d8.js
Edit
5664.c55be32f6d459ac3f3d8.js.map
Edit
5671.e1e396b75d7b95ef461f.js
Edit
5671.e1e396b75d7b95ef461f.js.map
Edit
5742.117597ec799ab75cb2f4.js
Edit
5742.117597ec799ab75cb2f4.js.map
Edit
5747.b9389680058c12ffba68.js
Edit
5747.b9389680058c12ffba68.js.map
Edit
5757.5a4b7f2368dd09da42be.js
Edit
5786.c45dfaf9e1d969472e5e.js
Edit
5786.c45dfaf9e1d969472e5e.js.map
Edit
5790.29b0a5797fd46e9664f5.js
Edit
5790.29b0a5797fd46e9664f5.js.map
Edit
5923.b9c876b4bf528d8511cb.js
Edit
5923.b9c876b4bf528d8511cb.js.map
Edit
5984.1efdc4bb85100bd19ca9.js
Edit
5984.1efdc4bb85100bd19ca9.js.map
Edit
5995.5c7a375f33ea1cd16daa.js
Edit
5995.5c7a375f33ea1cd16daa.js.map
Edit
6018.befdd11bf701ea71f7bf.js
Edit
6018.befdd11bf701ea71f7bf.js.map
Edit
6029.bdcbf27bcdd36812f646.js
Edit
6029.bdcbf27bcdd36812f646.js.map
Edit
6088.7f526abfdb4003574c68.js
Edit
6088.7f526abfdb4003574c68.js.map
Edit
613.084d33252856771cf6e1.js
Edit
613.084d33252856771cf6e1.js.map
Edit
6185.2a7c893c6b3f2f0dadb8.js
Edit
6185.2a7c893c6b3f2f0dadb8.js.map
Edit
6208.571f272269524cfd14e7.js
Edit
6208.571f272269524cfd14e7.js.map
Edit
6236.30d1fa6aee173c946c50.js
Edit
6236.30d1fa6aee173c946c50.js.map
Edit
6244.64f83fc5d05560979c51.js
Edit
6244.64f83fc5d05560979c51.js.map
Edit
6260.b8be95165766a81dade2.js
Edit
6260.b8be95165766a81dade2.js.map
Edit
630.56b78dcdaeeb9d9c2967.js
Edit
630.56b78dcdaeeb9d9c2967.js.map
Edit
6302.a2ffa52069511df9772f.js
Edit
6302.a2ffa52069511df9772f.js.map
Edit
6315.f4d87fc6f8ae3cb40e38.js
Edit
6315.f4d87fc6f8ae3cb40e38.js.map
Edit
6414.7520859a2d9cc0a63d7f.js
Edit
6414.7520859a2d9cc0a63d7f.js.map
Edit
6446.1d75a8140260005fffbd.js
Edit
6446.1d75a8140260005fffbd.js.map
Edit
6743.67a52a99e2fdd1ae1e10.js
Edit
6743.67a52a99e2fdd1ae1e10.js.map
Edit
6759.0454d3c1e41385379bdc.js
Edit
6759.0454d3c1e41385379bdc.js.map
Edit
6772.0d4a074848bc323be8f8.js
Edit
6772.0d4a074848bc323be8f8.js.map
Edit
680.726adca366b4ecb272db.js
Edit
680.726adca366b4ecb272db.js.map
Edit
6830.a4b0ecf3a6d784ca7609.js
Edit
6830.a4b0ecf3a6d784ca7609.js.map
Edit
6834.0c9ef40e2f2b5428983d.js
Edit
6834.0c9ef40e2f2b5428983d.js.map
Edit
6857.252a60422ee275193aa7.js
Edit
6857.252a60422ee275193aa7.js.map
Edit
6940.b6c74df14413f0188f0d.js
Edit
6940.b6c74df14413f0188f0d.js.map
Edit
6990.d663924714fc213b17c6.js
Edit
6990.d663924714fc213b17c6.js.map
Edit
7018.5a037d2577fedc8d10f1.js
Edit
7018.5a037d2577fedc8d10f1.js.map
Edit
7031.047b15171c23b248efa0.js
Edit
7031.047b15171c23b248efa0.js.map
Edit
7033.141597840e42815ef6a4.js
Edit
7033.141597840e42815ef6a4.js.map
Edit
7048.3746fc9a274bf8ff72f1.js
Edit
7048.3746fc9a274bf8ff72f1.js.map
Edit
7051.604a402d305e093c00c2.js
Edit
7051.604a402d305e093c00c2.js.map
Edit
7061.f18464bcd6c6d7455662.js
Edit
7061.f18464bcd6c6d7455662.js.map
Edit
7080.9cdd1b7a0bf62b48e1fe.js
Edit
7080.9cdd1b7a0bf62b48e1fe.js.map
Edit
7200.d4425528f6cee80f9931.js
Edit
7200.d4425528f6cee80f9931.js.map
Edit
7235.46f071d3e4d0bb976223.js
Edit
7235.46f071d3e4d0bb976223.js.map
Edit
7246.03f5a8496e53f64602e2.js
Edit
7246.03f5a8496e53f64602e2.js.map
Edit
7249.3bea4aaf890f89fdad45.js
Edit
7249.3bea4aaf890f89fdad45.js.map
Edit
7299.cdff402b076dfea09ead.js
Edit
7299.cdff402b076dfea09ead.js.map
Edit
7348.6fd722455e8c7e077815.js
Edit
7348.6fd722455e8c7e077815.js.map
Edit
7396.ded473b7a47dc42fbb59.js
Edit
7396.ded473b7a47dc42fbb59.js.map
Edit
7466.b7c17c526c7b734dd5f7.js
Edit
7466.b7c17c526c7b734dd5f7.js.map
Edit
7539.5f405cae3b15e1e2f6fa.js
Edit
7539.5f405cae3b15e1e2f6fa.js.map
Edit
7585.084552e02c66201a55be.js
Edit
7585.084552e02c66201a55be.js.map
Edit
7626.38819cc0696f2d25cf99.js
Edit
7626.38819cc0696f2d25cf99.js.map
Edit
7651.5024ed8dd1beb08d01ab.js
Edit
7651.5024ed8dd1beb08d01ab.js.map
Edit
7681.7ef7b4f86e99abd7b7e1.js
Edit
7681.7ef7b4f86e99abd7b7e1.js.map
Edit
7691.0ad86f0c686b19ce829e.js
Edit
7691.0ad86f0c686b19ce829e.js.map
Edit
7790.4c141092868e7208a087.js
Edit
7790.4c141092868e7208a087.js.map
Edit
7806.dff3509790e494ca5a45.js
Edit
7806.dff3509790e494ca5a45.js.map
Edit
7836.afe37ef4be354f0a3b91.js
Edit
7836.afe37ef4be354f0a3b91.js.map
Edit
7882.e1721e9d6ac2d421bcda.js
Edit
7882.e1721e9d6ac2d421bcda.js.map
Edit
7886.8499ded396232466be7d.js
Edit
7886.8499ded396232466be7d.js.map
Edit
7887.a6dcfd824d57598ba1c3.js
Edit
7887.a6dcfd824d57598ba1c3.js.map
Edit
7969.a048d8060cabf1aede33.js
Edit
7969.a048d8060cabf1aede33.js.map
Edit
7996.bd232896e4559d37a26f.js
Edit
7996.bd232896e4559d37a26f.js.map
Edit
8016.8145cd87abcdd0646db2.js
Edit
8016.8145cd87abcdd0646db2.js.map
Edit
8018.c31846109f2dff21d8c4.js
Edit
8018.c31846109f2dff21d8c4.js.map
Edit
8056.4e8f71ed4d507f89b487.js
Edit
8056.4e8f71ed4d507f89b487.js.map
Edit
8177.52abd0953ac914f69e26.js
Edit
8177.52abd0953ac914f69e26.js.map
Edit
8220.aeea4a8f0893b3447b56.js
Edit
8220.aeea4a8f0893b3447b56.js.map
Edit
8224.75bd73bf51ff7a2fc4a0.js
Edit
8224.75bd73bf51ff7a2fc4a0.js.map
Edit
8230.d65bce2998eec95c6082.js
Edit
8230.d65bce2998eec95c6082.js.map
Edit
8260.c1da67af19b9259d5651.js
Edit
8260.c1da67af19b9259d5651.js.map
Edit
8271.0ee36e030014244adb47.js
Edit
8271.0ee36e030014244adb47.js.map
Edit
8332.a62e8632a336661f2969.js
Edit
8332.a62e8632a336661f2969.js.map
Edit
8334.1196f5ddcef25711fc25.js
Edit
8334.1196f5ddcef25711fc25.js.map
Edit
8347.de402f9280cd7a316c57.js
Edit
8347.de402f9280cd7a316c57.js.map
Edit
8390.9de755da2e214cc845a3.js
Edit
8390.9de755da2e214cc845a3.js.map
Edit
8393.30e95ae45cbe5455dcda.js
Edit
8393.30e95ae45cbe5455dcda.js.map
Edit
8477.4dad0537d13cf9315e86.js
Edit
8477.4dad0537d13cf9315e86.js.map
Edit
8494.659892f00c9d15ae441a.js
Edit
8494.659892f00c9d15ae441a.js.map
Edit
8530.0460c988ee4a40ce7769.js
Edit
8530.0460c988ee4a40ce7769.js.map
Edit
8542.317c15ed57f68fcf0c97.js
Edit
8542.317c15ed57f68fcf0c97.js.map
Edit
8547.390120a5caf7646e0e3e.js
Edit
8547.390120a5caf7646e0e3e.js.map
Edit
8566.5c8f392bb383ab92eed0.js
Edit
8566.5c8f392bb383ab92eed0.js.map
Edit
8622.5acf73c1485a11dfb0ab.js
Edit
8622.5acf73c1485a11dfb0ab.js.map
Edit
8706.f17afa6bcdfd511d5b03.js
Edit
8706.f17afa6bcdfd511d5b03.js.map
Edit
874.d24410518317d605c708.js
Edit
874.d24410518317d605c708.js.map
Edit
8813.e5137844631f6ddedbce.js
Edit
8813.e5137844631f6ddedbce.js.map
Edit
8856.2720526447b3adb5c75f.js
Edit
8856.2720526447b3adb5c75f.js.map
Edit
886.5f3383e84b10a6530b97.js
Edit
886.5f3383e84b10a6530b97.js.map
Edit
8864.2f4ee982114c25634e55.js
Edit
8864.2f4ee982114c25634e55.js.map
Edit
8902.71f14964ec6cea84dc8e.js
Edit
8902.71f14964ec6cea84dc8e.js.map
Edit
8932.e59e50ddb63414e0f2b9.js
Edit
8932.e59e50ddb63414e0f2b9.js.map
Edit
8990.665213a5c89afd6b2f83.js
Edit
8990.665213a5c89afd6b2f83.js.map
Edit
9034.a32e36472481cbe5d72d.js
Edit
9034.a32e36472481cbe5d72d.js.map
Edit
9038.f03b25f160057d4a0bf6.js
Edit
9038.f03b25f160057d4a0bf6.js.map
Edit
904.b68cd2a0cd6d68c5f1ae.js
Edit
904.b68cd2a0cd6d68c5f1ae.js.map
Edit
9044.441f64d6d946cc93be46.js
Edit
9044.441f64d6d946cc93be46.js.map
Edit
9147.8309cadbc384209d62e5.js
Edit
9147.8309cadbc384209d62e5.js.map
Edit
9150.38487365ffd149b730af.js
Edit
9150.38487365ffd149b730af.js.map
Edit
9292.e6befb57f8f116ad95a8.js
Edit
9292.e6befb57f8f116ad95a8.js.map
Edit
9355.95d7e1782f93f339549e.js
Edit
9355.95d7e1782f93f339549e.js.map
Edit
9388.88d95a230e9432e7037b.js
Edit
9388.88d95a230e9432e7037b.js.map
Edit
9390.c72fcd228017f7647b38.js
Edit
9390.c72fcd228017f7647b38.js.map
Edit
9414.642bfe0d5eb16efd0c16.js
Edit
9414.642bfe0d5eb16efd0c16.js.map
Edit
9449.502f2a824d0203e88d4d.js
Edit
9449.502f2a824d0203e88d4d.js.map
Edit
946.48c5e8c688cf29424295.js
Edit
946.48c5e8c688cf29424295.js.map
Edit
9473.e6fc327da88d88712828.js
Edit
9473.e6fc327da88d88712828.js.map
Edit
9510.1e255e96fe40aad2ed6f.js
Edit
9510.1e255e96fe40aad2ed6f.js.map
Edit
9521.e65411d726c29d77c526.js
Edit
9521.e65411d726c29d77c526.js.map
Edit
9538.a2289ff9ad06e24e391f.js
Edit
9538.a2289ff9ad06e24e391f.js.map
Edit
957.3c35d66aa698d8bdfe05.js
Edit
957.3c35d66aa698d8bdfe05.js.map
Edit
9571.41558d40bff9ea8c0726.js
Edit
9571.41558d40bff9ea8c0726.js.map
Edit
9578.9cfae16465bb9bc1f336.js
Edit
9578.9cfae16465bb9bc1f336.js.map
Edit
968.d4b150f9211c478b7b05.js
Edit
968.d4b150f9211c478b7b05.js.map
Edit
970.46f17b76711e4961a575.js
Edit
970.46f17b76711e4961a575.js.map
Edit
9700.02180b7a06c8a1f7606b.js
Edit
9700.02180b7a06c8a1f7606b.js.map
Edit
9744.aa6baaf988a68fa6a9ba.js
Edit
9744.aa6baaf988a68fa6a9ba.js.map
Edit
9820.6b462d83575efd05c883.js
Edit
9820.6b462d83575efd05c883.js.map
Edit
9838.06bd7dfd4290786f80e3.js
Edit
9838.06bd7dfd4290786f80e3.js.map
Edit
9992.fb08517d3ff77e887443.js
Edit
9992.fb08517d3ff77e887443.js.map
Edit
9996.21c451f22ff76b4bb683.js
Edit
9996.21c451f22ff76b4bb683.js.map
Edit
AdminAuthentication.076c98c6380fd1e42f7e.js
Edit
AdminAuthentication.076c98c6380fd1e42f7e.js.map
Edit
AdminEditOrgPage.8df8167ea6ff8f4803bd.js
Edit
AdminEditOrgPage.8df8167ea6ff8f4803bd.js.map
Edit
AdminListOrgsPage.176dac9ed391bda8952b.js
Edit
AdminListOrgsPage.176dac9ed391bda8952b.js.map
Edit
AdminSettings.7373ed8fa9b943bb2098.js
Edit
AdminSettings.7373ed8fa9b943bb2098.js.map
Edit
AlertGroups.81264e6e5009c36eed6e.js
Edit
AlertGroups.81264e6e5009c36eed6e.js.map
Edit
AlertRuleListIndex.98e7328feeaa2ffe67eb.js
Edit
AlertRuleListIndex.98e7328feeaa2ffe67eb.js.map
Edit
AlertingDisabled.b2c834be0ca4666dd793.js
Edit
AlertingDisabled.b2c834be0ca4666dd793.js.map
Edit
AlertingGroupDetails.3a2c6ef8085b505852e4.js
Edit
AlertingGroupDetails.3a2c6ef8085b505852e4.js.map
Edit
AlertingGroupEdit.69cfe9d5f37a1fc65326.js
Edit
AlertingGroupEdit.69cfe9d5f37a1fc65326.js.map
Edit
AlertingHome.06f307ab9a2a5d8b7f93.js
Edit
AlertingHome.06f307ab9a2a5d8b7f93.js.map
Edit
AlertingImportFromDSRules.f1224bcb622d25e2c94f.js
Edit
AlertingImportFromDSRules.f1224bcb622d25e2c94f.js.map
Edit
AlertingRedirectToRule.9ed1d16829d6833d2827.js
Edit
AlertingRedirectToRule.9ed1d16829d6833d2827.js.map
Edit
AlertingRuleForm.2e69d3f00eb6221e7355.js
Edit
AlertingRuleForm.2e69d3f00eb6221e7355.js.map
Edit
AlertingSettings.7a5f782f877cec4790cb.js
Edit
AlertingSettings.7a5f782f877cec4790cb.js.map
Edit
AlertingTriage.1174f36b4937ad0047c1.js
Edit
AlertingTriage.1174f36b4937ad0047c1.js.map
Edit
BenchmarksPage.ef387f4598ba2b2236ad.js
Edit
BenchmarksPage.ef387f4598ba2b2236ad.js.map
Edit
BookmarksPage.8fe93eb7377073f0c985.js
Edit
BookmarksPage.8fe93eb7377073f0c985.js.map
Edit
ChangePasswordPage.f21b0b1dd107ccd33c1a.js
Edit
ChangePasswordPage.f21b0b1dd107ccd33c1a.js.map
Edit
Connections.949b6389e73bcadb2109.js
Edit
Connections.949b6389e73bcadb2109.js.map
Edit
ContactPoints.9ae2d1927d60c6169b87.js
Edit
ContactPoints.9ae2d1927d60c6169b87.js.map
Edit
CorrelationsFeatureToggle.ec2f1aefce6b456e15eb.js
Edit
CorrelationsFeatureToggle.ec2f1aefce6b456e15eb.js.map
Edit
CorrelationsPage.bd7fcd24ed0b5fe8ac3e.js
Edit
CorrelationsPage.bd7fcd24ed0b5fe8ac3e.js.map
Edit
CreateTeam.429acf93986740280312.js
Edit
CreateTeam.429acf93986740280312.js.map
Edit
DashboardImport.3e9b6f980b81d6f1c755.js
Edit
DashboardImport.3e9b6f980b81d6f1c755.js.map
Edit
DashboardListPage.abeb0c29f072f888f9fb.js
Edit
DashboardListPage.abeb0c29f072f888f9fb.js.map
Edit
DashboardPage.72557fe6dd1a022b7d48.js
Edit
DashboardPage.72557fe6dd1a022b7d48.js.map
Edit
DashboardPageProxy.80adfefad8a885d8e2ef.js
Edit
DashboardPageProxy.80adfefad8a885d8e2ef.js.map
Edit
DashboardScenePage.83fe1fa9509b50120d65.js
Edit
DashboardScenePage.83fe1fa9509b50120d65.js.map
Edit
EditContactPoint.0c33428ddc8ba974d946.js
Edit
EditContactPoint.0c33428ddc8ba974d946.js.map
Edit
EditMuteTiming.8760cc9c77560acf0cd6.js
Edit
EditMuteTiming.8760cc9c77560acf0cd6.js.map
Edit
EditRepositoryPage.d71faaab1af2c8d70a22.js
Edit
EditRepositoryPage.d71faaab1af2c8d70a22.js.map
Edit
EmbeddedDashboard.57de550bce819e3d52e6.js
Edit
EmbeddedDashboard.57de550bce819e3d52e6.js.map
Edit
FileHistoryPage.154ab77c19bbe0ebed20.js
Edit
FileHistoryPage.154ab77c19bbe0ebed20.js.map
Edit
FileStatusPage.36f58cd61202ec603d22.js
Edit
FileStatusPage.36f58cd61202ec603d22.js.map
Edit
FolderAlerting.0b9acb6c42276aaee57d.js
Edit
FolderAlerting.0b9acb6c42276aaee57d.js.map
Edit
FolderLibraryPanelsPage.44f8cabf542ec314d176.js
Edit
FolderLibraryPanelsPage.44f8cabf542ec314d176.js.map
Edit
GettingStartedPage.4bea37f1c9bdcfd0f41b.js
Edit
GettingStartedPage.4bea37f1c9bdcfd0f41b.js.map
Edit
GlobalConfig.1377596507974d18caf6.js
Edit
GlobalConfig.1377596507974d18caf6.js.map
Edit
HistoryPage.4da98f4fa313ee3676ca.js
Edit
HistoryPage.4da98f4fa313ee3676ca.js.map
Edit
LdapSettingsPage.0e9f08d5e59150ecf466.js
Edit
LdapSettingsPage.0e9f08d5e59150ecf466.js.map
Edit
LibraryPanelsPage.824580d7751526c658e2.js
Edit
LibraryPanelsPage.824580d7751526c658e2.js.map
Edit
ListPublicDashboardPage.64c26ffd3ebe6c9076f3.js
Edit
ListPublicDashboardPage.64c26ffd3ebe6c9076f3.js.map
Edit
LoginPage.db48423ed1b455431daa.js
Edit
LoginPage.db48423ed1b455431daa.js.map
Edit
MetricsDrilldownRedirect.fcad4bdff346974952f4.js
Edit
MetricsDrilldownRedirect.fcad4bdff346974952f4.js.map
Edit
MigrateToCloud.5b474ad00e8a3d979750.js
Edit
MigrateToCloud.5b474ad00e8a3d979750.js.map
Edit
NewMuteTiming.2f6302420674f1c73aba.js
Edit
NewMuteTiming.2f6302420674f1c73aba.js.map
Edit
NewOrgPage.be31eaee06e2043d609b.js
Edit
NewOrgPage.be31eaee06e2043d609b.js.map
Edit
NewReceiverView.f1d83eb66a39882b8661.js
Edit
NewReceiverView.f1d83eb66a39882b8661.js.map
Edit
NewSilencePage.2643a48031f7e5d8f376.js
Edit
NewSilencePage.2643a48031f7e5d8f376.js.map
Edit
NotificationPoliciesPage.9333d10ecad1452ebf27.js
Edit
NotificationPoliciesPage.9333d10ecad1452ebf27.js.map
Edit
NotificationsPage.57df4ff5ba1433a4345d.js
Edit
NotificationsPage.57df4ff5ba1433a4345d.js.map
Edit
OrgDetailsPage.7b5835c30585aae81343.js
Edit
OrgDetailsPage.7b5835c30585aae81343.js.map
Edit
PlaylistEditPage.8310e384af659e40c313.js
Edit
PlaylistEditPage.8310e384af659e40c313.js.map
Edit
PlaylistNewPage.f45b642a98a747e28c0d.js
Edit
PlaylistNewPage.f45b642a98a747e28c0d.js.map
Edit
PlaylistPage.9af74957a1cdfb125338.js
Edit
PlaylistPage.9af74957a1cdfb125338.js.map
Edit
PlaylistStartPage.8011a98267ac64c7fa05.js
Edit
PlaylistStartPage.8011a98267ac64c7fa05.js.map
Edit
PluginExtensionsLog.54c02047d569b0c05823.js
Edit
PluginExtensionsLog.54c02047d569b0c05823.js.map
Edit
PluginListPage.e50c18fed21c23ca4ee8.js
Edit
PluginListPage.e50c18fed21c23ca4ee8.js.map
Edit
PluginPage.ae424531bce63dd4721e.js
Edit
PluginPage.ae424531bce63dd4721e.js.map
Edit
ProfileFeatureTogglePage.27378dcbb7520611348e.js
Edit
ProfileFeatureTogglePage.27378dcbb7520611348e.js.map
Edit
ProvisioningWizardPage.c4e4a8f431b4719b0e95.js
Edit
ProvisioningWizardPage.c4e4a8f431b4719b0e95.js.map
Edit
PublicDashboardPage.33d6ec8f685f1b70b9a6.js
Edit
PublicDashboardPage.33d6ec8f685f1b70b9a6.js.map
Edit
RecentlyDeleted.5e0ec16474d939fd9683.js
Edit
RecentlyDeleted.5e0ec16474d939fd9683.js.map
Edit
RecentlyDeletedPage.1dbc2b80b28204de8237.js
Edit
RecentlyDeletedPage.1dbc2b80b28204de8237.js.map
Edit
RepositoryListPage.ec3a0af1cbe2740800bf.js
Edit
RepositoryListPage.ec3a0af1cbe2740800bf.js.map
Edit
RepositoryStatusPage.9aee60589e35a4a19ec2.js
Edit
RepositoryStatusPage.9aee60589e35a4a19ec2.js.map
Edit
SelectOrgPage.910a8d842019a6d7fe93.js
Edit
SelectOrgPage.910a8d842019a6d7fe93.js.map
Edit
SendResetMailPage.513361d6980f98ff8139.js
Edit
SendResetMailPage.513361d6980f98ff8139.js.map
Edit
ServerStats.2830ca154f465dbdecea.js
Edit
ServerStats.2830ca154f465dbdecea.js.map
Edit
ServiceAccountCreatePage.80fcbdd2b7f5aa4e2da1.js
Edit
ServiceAccountCreatePage.80fcbdd2b7f5aa4e2da1.js.map
Edit
ServiceAccountPage.48944056459bb412ff33.js
Edit
ServiceAccountPage.48944056459bb412ff33.js.map
Edit
ServiceAccountsPage.d20b1eb9f87661f10b45.js
Edit
ServiceAccountsPage.d20b1eb9f87661f10b45.js.map
Edit
SignupInvited.fe2c29f380e9888c28cf.js
Edit
SignupInvited.fe2c29f380e9888c28cf.js.map
Edit
SilencesTablePage.b998fdbdcc3d60a81739.js
Edit
SilencesTablePage.b998fdbdcc3d60a81739.js.map
Edit
SnapshotListPage.6feaf24adb92e6a302ec.js
Edit
SnapshotListPage.6feaf24adb92e6a302ec.js.map
Edit
SoloPanelPage.7fc6a934aaadf4c1f84d.js
Edit
SoloPanelPage.7fc6a934aaadf4c1f84d.js.map
Edit
SoloPanelPageOld.bde57e000dd0a0108685.js
Edit
SoloPanelPageOld.bde57e000dd0a0108685.js.map
Edit
SupportBundles.1f46603ad3494624d67a.js
Edit
SupportBundles.1f46603ad3494624d67a.js.map
Edit
SupportBundlesCreate.5eaea61a9713f057277b.js
Edit
SupportBundlesCreate.5eaea61a9713f057277b.js.map
Edit
TeamList.6b088f83e6e8cb66b21d.js
Edit
TeamList.6b088f83e6e8cb66b21d.js.map
Edit
TeamPages.9d8b5dceef8be43c6923.js
Edit
TeamPages.9d8b5dceef8be43c6923.js.map
Edit
Templates.7a02a8497ebca052dcfb.js
Edit
Templates.7a02a8497ebca052dcfb.js.map
Edit
TestStuffPage.982c641592b2f7c9db40.js
Edit
TestStuffPage.982c641592b2f7c9db40.js.map
Edit
ThemePlayground.aeeec77fd8e9c1482f55.js
Edit
ThemePlayground.aeeec77fd8e9c1482f55.js.map
Edit
UserAdminPage.fc4d562eef05d9f59aca.js
Edit
UserAdminPage.fc4d562eef05d9f59aca.js.map
Edit
UserCreatePage.b7036214c66612fb31e9.js
Edit
UserCreatePage.b7036214c66612fb31e9.js.map
Edit
UserInvitePage.4a9bcd4084d7ae454c73.js
Edit
UserInvitePage.4a9bcd4084d7ae454c73.js.map
Edit
UserListPage.a452e1153ae820f58ac9.js
Edit
UserListPage.a452e1153ae820f58ac9.js.map
Edit
UserProfileEditPage.82c11690282e669eabb1.js
Edit
UserProfileEditPage.82c11690282e669eabb1.js.map
Edit
alert-rules-drawer-content.c95bb5ddd3fc813cae92.js
Edit
alert-rules-drawer-content.c95bb5ddd3fc813cae92.js.map
Edit
alert-rules-toolbar-button.0d86c1adae7edb55ff76.js
Edit
alert-rules-toolbar-button.0d86c1adae7edb55ff76.js.map
Edit
alertListPanel.0110106a8d1ab70d65d5.js
Edit
alertListPanel.0110106a8d1ab70d65d5.js.map
Edit
alertmanagerPlugin.2b59de5e7b7a556f87f1.js
Edit
alertmanagerPlugin.2b59de5e7b7a556f87f1.js.map
Edit
annoListPanel.0005a0eab0b05e24d970.js
Edit
annoListPanel.0005a0eab0b05e24d970.js.map
Edit
app.8385deda1df49aa75ec2.js
Edit
app.8385deda1df49aa75ec2.js.map
Edit
assets-manifest.json
Edit
barChartPanel.eecdaeab7d146d477721.js
Edit
barChartPanel.eecdaeab7d146d477721.js.map
Edit
barGaugePanel.6d9e94bbb72ba92a0e9b.js
Edit
barGaugePanel.6d9e94bbb72ba92a0e9b.js.map
Edit
candlestickPanel.af0e0decd06e7b7ab286.js
Edit
candlestickPanel.af0e0decd06e7b7ab286.js.map
Edit
canvasPanel.ddab72fab6e58c3419b2.js
Edit
canvasPanel.ddab72fab6e58c3419b2.js.map
Edit
cloudwatchPlugin.06ef34f60000c4f7ea37.js
Edit
cloudwatchPlugin.06ef34f60000c4f7ea37.js.map
Edit
dark.b66fa87185b9a313ec14.js
Edit
dashListPanel.23b954da0c4888602048.js
Edit
dashListPanel.23b954da0c4888602048.js.map
Edit
dataGridPanel.bb5d4b678cba38dd380b.js
Edit
debugPanel.fff63da32084d7a2e236.js
Edit
debugPanel.fff63da32084d7a2e236.js.map
Edit
elasticsearchPlugin.3f2edb012f5162b48903.js
Edit
elasticsearchPlugin.3f2edb012f5162b48903.js.map
Edit
explore-feature-toggle-page.3de03fa91c88d05cea1c.js
Edit
explore-feature-toggle-page.3de03fa91c88d05cea1c.js.map
Edit
explore.dd32637df83326225e0d.js
Edit
explore.dd32637df83326225e0d.js.map
Edit
flamegraphPanel.cc6c5b4bcd69e406fbb7.js
Edit
flamegraphPanel.cc6c5b4bcd69e406fbb7.js.map
Edit
gaugePanel.5da3c4e39a652e281cc4.js
Edit
gaugePanel.5da3c4e39a652e281cc4.js.map
Edit
gazetteer
Edit
geomapPanel.67ebb4567e9b5fa5074b.js
Edit
gettingStartedPanel.833059170dbbf8d5c4bf.js
Edit
gettingStartedPanel.833059170dbbf8d5c4bf.js.map
Edit
grafana.1492.25120d27db88f863e058.css
Edit
grafana.4350.a45e45977094df4a0bc9.css
Edit
grafana.5790.ffb3a9cd952d3cd7471b.css
Edit
grafana.DashboardPage.a66335f88cd003e4a44f.css
Edit
grafana.DashboardPageProxy.a66335f88cd003e4a44f.css
Edit
grafana.app.1f6473bb54b1e1647be8.css
Edit
grafana.dark.1e8d85816912aadbbba5.css
Edit
grafana.dataGridPanel.c1fc5db1829b1b31eb4d.css
Edit
grafana.geomapPanel.0057d964fa972bb207ec.css
Edit
grafana.light.111a5a99fcebc0962ddc.css
Edit
grafana.livePanel.25120d27db88f863e058.css
Edit
grafana.react-monaco-editor.ffb3a9cd952d3cd7471b.css
Edit
grafana.swagger.d0a2da197b9827204ac1.css
Edit
grafana.tablePanel.25120d27db88f863e058.css
Edit
grafanaPlugin.f21cdb4b84a732cc9dd8.js
Edit
grafanaPlugin.f21cdb4b84a732cc9dd8.js.map
Edit
heatmapPanel.7834b997bc573eddba88.js
Edit
heatmapPanel.7834b997bc573eddba88.js.map
Edit
histogramPanel.9953bfeccf8774500c0c.js
Edit
histogramPanel.9953bfeccf8774500c0c.js.map
Edit
img
Edit
influxdbPlugin.7a899e63be0a65d41e13.js
Edit
influxdbPlugin.7a899e63be0a65d41e13.js.map
Edit
light.827d442410485e491818.js
Edit
livePanel.2a43f499bc746d928d45.js
Edit
livePanel.2a43f499bc746d928d45.js.map
Edit
logsPanel.a328022d248508a083c1.js
Edit
logsPanel.a328022d248508a083c1.js.map
Edit
loki-query-field.f9a0b82b636d4821760c.js
Edit
loki-query-field.f9a0b82b636d4821760c.js.map
Edit
maps
Edit
mixedPlugin.3a69de93f366afbb2f85.js
Edit
newsPanel.c17f40f7c88ea14620e7.js
Edit
newsPanel.c17f40f7c88ea14620e7.js.map
Edit
nodeGraphPanel.f717a9075d994a9a8af4.js
Edit
nodeGraphPanel.f717a9075d994a9a8af4.js.map
Edit
opentsdbPlugin.1795eab1c223ea030c2e.js
Edit
opentsdbPlugin.1795eab1c223ea030c2e.js.map
Edit
pieChartPanel.45166aa6d57d163817ea.js
Edit
pieChartPanel.45166aa6d57d163817ea.js.map
Edit
prometheusPlugin.c3a55eb5353085fc3d2b.js
Edit
prometheusPlugin.c3a55eb5353085fc3d2b.js.map
Edit
radialBarPanel.294c52d497d8f5c2bebb.js
Edit
radialBarPanel.294c52d497d8f5c2bebb.js.map
Edit
runtime.a37cc2f12a959f33871a.js
Edit
runtime.a37cc2f12a959f33871a.js.map
Edit
sql-query-editor.e767d4a2aef360034bd9.js
Edit
sql-query-editor.e767d4a2aef360034bd9.js.map
Edit
statPanel.3a7f191bfb27fd320014.js
Edit
statPanel.3a7f191bfb27fd320014.js.map
Edit
stateTimelinePanel.08d857b143ef89dc195f.js
Edit
stateTimelinePanel.08d857b143ef89dc195f.js.map
Edit
static
Edit
statusHistoryPanel.29f7b8dc01039ba795af.js
Edit
statusHistoryPanel.29f7b8dc01039ba795af.js.map
Edit
swagger.06875a6266679f54141d.js
Edit
swagger.06875a6266679f54141d.js.map
Edit
tablePanel.43861ce2a60617dcd19d.js
Edit
tablePanel.43861ce2a60617dcd19d.js.map
Edit
textPanel.867ee60d01b2039aa159.js
Edit
textPanel.867ee60d01b2039aa159.js.map
Edit
timeseriesPanel.b4a947da450030262a31.js
Edit
timeseriesPanel.b4a947da450030262a31.js.map
Edit
tracesPanel.35bfc3e5ff6bea4212a3.js
Edit
tracesPanel.35bfc3e5ff6bea4212a3.js.map
Edit
trendPanel.001aff2bd153e737c464.js
Edit
trendPanel.001aff2bd153e737c464.js.map
Edit
vis-data.b34535ebabc0fcb91557.js
Edit
vis-data.b34535ebabc0fcb91557.js.map
Edit
vis-network.1b41caf21892c9525709.js
Edit
vis-network.1b41caf21892c9525709.js.map
Edit
welcomeBanner.1a693c9dc02006be4f0b.js
Edit
welcomeBanner.1a693c9dc02006be4f0b.js.map
Edit
xychart.cb20af67a6c495ba6ccd.js
Edit
xychart.cb20af67a6c495ba6ccd.js.map
Edit