478 lines
22 KiB
JavaScript
478 lines
22 KiB
JavaScript
// Module ID: 1068
|
|
// Function ID: 12259
|
|
// Name: startBrowserTracingPageLoadSpan
|
|
// Dependencies: [977, 65, 1089, 978, 977, 794]
|
|
// Exports: browserTracingIntegration
|
|
|
|
// Module 1068 (startBrowserTracingPageLoadSpan)
|
|
import getRNSentryModule from "getRNSentryModule";
|
|
|
|
function startBrowserTracingPageLoadSpan(emit, name) {
|
|
emit.emit("startPageLoadSpan", name, arg2);
|
|
const currentScope = require(dependencyMap[1]).getCurrentScope();
|
|
currentScope.setTransactionName(name.name);
|
|
const tmp3 = getActiveIdleSpan(emit);
|
|
if (tmp3) {
|
|
emit.emit("afterStartPageLoadSpan", tmp3);
|
|
}
|
|
return tmp3;
|
|
}
|
|
function startBrowserTracingNavigationSpan(closure_0, name) {
|
|
let isRedirect;
|
|
let url;
|
|
let obj = arg2;
|
|
if (!arg2) {
|
|
obj = {};
|
|
}
|
|
({ url, isRedirect } = obj);
|
|
closure_0.emit("beforeStartNavigationSpan", name, { isRedirect });
|
|
closure_0.emit("startNavigationSpan", name, { isRedirect });
|
|
const currentScope = require(dependencyMap[1]).getCurrentScope();
|
|
currentScope.setTransactionName(name.name);
|
|
let tmp4 = url;
|
|
if (url) {
|
|
tmp4 = !isRedirect;
|
|
}
|
|
if (tmp4) {
|
|
obj = {};
|
|
const _Object = Object;
|
|
obj = { url };
|
|
obj.normalizedRequest = Object.assign({}, require(dependencyMap[3]).getHttpRequestData(), obj);
|
|
const result = currentScope.setSDKProcessingMetadata(obj);
|
|
const obj5 = require(dependencyMap[3]);
|
|
}
|
|
return getActiveIdleSpan(closure_0);
|
|
}
|
|
function getMetaContent(arg0) {
|
|
const _document = require(dependencyMap[3]).WINDOW.document;
|
|
let element;
|
|
if (null != _document) {
|
|
const _HermesInternal = HermesInternal;
|
|
element = _document.querySelector("meta[name=" + arg0 + "]");
|
|
}
|
|
let attr;
|
|
if (null != element) {
|
|
attr = element.getAttribute("content");
|
|
}
|
|
return attr;
|
|
}
|
|
function getActiveIdleSpan(closure_0) {
|
|
return closure_0[closure_4];
|
|
}
|
|
function setActiveIdleSpan(arg0, arg1) {
|
|
const result = require(dependencyMap[1]).addNonEnumerableProperty(arg0, closure_4, arg1);
|
|
}
|
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
let closure_3 = Object.assign({}, require("_toConsumableArray").TRACING_DEFAULTS, { ignoreResourceSpans: [], ignorePerformanceApiSpans: [], _experiments: {} }, require("module_1089").defaultRequestInstrumentationOptions);
|
|
let closure_4 = "_sentry_idleSpan";
|
|
|
|
export const BROWSER_TRACING_INTEGRATION_ID = "BrowserTracing";
|
|
export const browserTracingIntegration = function browserTracingIntegration(arg0) {
|
|
let _experiments;
|
|
function _createRouteSpan(arg0, op) {
|
|
function emitFinish() {
|
|
let hasItem = readyState;
|
|
if (readyState) {
|
|
const items = [];
|
|
hasItem = items.includes(readyState.readyState);
|
|
}
|
|
if (hasItem) {
|
|
arg0.emit("idleSpanEnableAutoFinish", startIdleSpanResult);
|
|
}
|
|
}
|
|
let obj = emitFinish;
|
|
const tmp = arguments.length > 2 && undefined !== arguments[2];
|
|
let tmp2 = !tmp;
|
|
if (tmp) {
|
|
tmp2 = arguments[2];
|
|
}
|
|
let tmp3 = "pageload" === op.op;
|
|
let tmp4 = op;
|
|
if (callback4) {
|
|
tmp4 = callback4(op);
|
|
}
|
|
const tmp6 = tmp4.attributes || {};
|
|
if (op.name !== tmp4.name) {
|
|
tmp6[arg0(tmp3[1]).SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = "custom";
|
|
tmp4.attributes = tmp6;
|
|
}
|
|
if (tmp2) {
|
|
obj.name = tmp4.name;
|
|
obj.source = tmp6[closure_0(undefined, closure_1[1]).SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];
|
|
obj = {
|
|
idleTimeout: closure_13,
|
|
finalTimeout: closure_14,
|
|
childSpanTimeout: closure_15,
|
|
disableAutoFinish: tmp3,
|
|
beforeSpanEnd(startInactiveSpanResult) {
|
|
if (null != startInactiveSpanResult) {
|
|
startInactiveSpanResult();
|
|
}
|
|
let obj = startInactiveSpanResult(tmp3[4]);
|
|
obj = { recordClsOnPageloadSpan: !closure_10, recordLcpOnPageloadSpan: !closure_11, ignoreResourceSpans: closure_22, ignorePerformanceApiSpans: closure_23 };
|
|
const result = obj.addPerformanceEntries(startInactiveSpanResult, obj);
|
|
callback(startInactiveSpanResult, undefined);
|
|
const currentScope = startInactiveSpanResult(tmp3[1]).getCurrentScope();
|
|
obj = {};
|
|
const propagationContext = currentScope.getPropagationContext();
|
|
obj.traceId = startIdleSpanResult.spanContext().traceId;
|
|
const obj3 = startInactiveSpanResult(tmp3[1]);
|
|
obj.sampled = startInactiveSpanResult(tmp3[1]).spanIsSampled(startIdleSpanResult);
|
|
const obj6 = startInactiveSpanResult(tmp3[1]);
|
|
obj.dsc = startInactiveSpanResult(tmp3[1]).getDynamicSamplingContextFromSpan(startInactiveSpanResult);
|
|
const result1 = currentScope.setPropagationContext(Object.assign({}, propagationContext, obj));
|
|
},
|
|
trimIdleSpanEndTimestamp: !closure_29
|
|
};
|
|
const startIdleSpanResult = arg0(tmp3[1]).startIdleSpan(tmp4, obj);
|
|
let tmp23 = tmp3;
|
|
if (tmp3) {
|
|
tmp23 = closure_29;
|
|
}
|
|
callback3(arg0, startIdleSpanResult);
|
|
if (tmp3) {
|
|
tmp3 = !closure_29;
|
|
}
|
|
if (tmp3) {
|
|
tmp3 = document;
|
|
}
|
|
if (tmp3) {
|
|
const listener = document.addEventListener("readystatechange", () => {
|
|
emitFinish();
|
|
});
|
|
emitFinish();
|
|
}
|
|
const obj5 = arg0(tmp3[1]);
|
|
} else {
|
|
obj = arg0(tmp3[1]);
|
|
const result = obj.dateTimestampInSeconds();
|
|
const _Object = Object;
|
|
obj = { startTime: result };
|
|
const obj2 = arg0(tmp3[1]);
|
|
arg0(tmp3[1]).startInactiveSpan(Object.assign({}, tmp4, obj)).end(result);
|
|
const startInactiveSpanResult = arg0(tmp3[1]).startInactiveSpan(Object.assign({}, tmp4, obj));
|
|
}
|
|
}
|
|
if (arguments.length > 0) {
|
|
if (undefined !== arguments[0]) {
|
|
const first = arguments[0];
|
|
}
|
|
let obj = { name: undefined, source: undefined };
|
|
let closure_3 = obj;
|
|
const _document = require(dependencyMap[3]).WINDOW.document;
|
|
const _Object = Object;
|
|
const merged = Object.assign({}, closure_3, {});
|
|
({ enableInp: closure_5, enableElementTiming: closure_6, enableLongTask: closure_7, enableLongAnimationFrame: closure_8, _experiments } = merged);
|
|
({ enableInteractions: closure_9, enableStandaloneClsSpans: closure_10, enableStandaloneLcpSpans: closure_11 } = _experiments);
|
|
({ beforeStartSpan: closure_12, idleTimeout: closure_13, finalTimeout: closure_14, childSpanTimeout: closure_15, markBackgroundSpan: closure_16, traceFetch: closure_17, traceXHR: closure_18, trackFetchStreamPerformance: closure_19, shouldCreateSpanForRequest: closure_20, enableHTTPTimings: closure_21, ignoreResourceSpans: closure_22, ignorePerformanceApiSpans: closure_23, instrumentPageLoad: closure_24, instrumentNavigation: closure_25, detectRedirects: closure_26, linkPreviousTrace: closure_27, consistentTraceSampling: closure_28, enableReportPageLoaded: closure_29, onRequestSpanStart: closure_30, onRequestSpanEnd: closure_31 } = merged);
|
|
obj = {
|
|
name: "BrowserTracing",
|
|
setup(client) {
|
|
let callback = client;
|
|
function maybeEndActiveSpan() {
|
|
const obj = callback3(callback);
|
|
let tmp = obj;
|
|
if (obj) {
|
|
tmp = !callback(maybeEndActiveSpan[1]).spanToJSON(obj).timestamp;
|
|
const obj2 = callback(maybeEndActiveSpan[1]);
|
|
}
|
|
if (tmp) {
|
|
if (callback(maybeEndActiveSpan[5]).DEBUG_BUILD) {
|
|
const debug = callback(maybeEndActiveSpan[1]).debug;
|
|
const _HermesInternal = HermesInternal;
|
|
debug.log("[Tracing] Finishing current active span with op: " + callback(maybeEndActiveSpan[1]).spanToJSON(obj).op);
|
|
const obj3 = callback(maybeEndActiveSpan[1]);
|
|
}
|
|
const attr = obj.setAttribute(callback(maybeEndActiveSpan[1]).SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, "cancelled");
|
|
obj.end();
|
|
}
|
|
}
|
|
let obj = callback(maybeEndActiveSpan[1]);
|
|
const result = obj.registerSpanErrorInstrumentation();
|
|
obj = {};
|
|
let flag = closure_10;
|
|
if (!closure_10) {
|
|
flag = false;
|
|
}
|
|
obj.recordClsStandaloneSpans = flag;
|
|
let flag2 = closure_11;
|
|
if (!closure_11) {
|
|
flag2 = false;
|
|
}
|
|
obj.recordLcpStandaloneSpans = flag2;
|
|
obj.client = client;
|
|
callback = callback(maybeEndActiveSpan[4]).startTrackingWebVitals(obj);
|
|
if (closure_5) {
|
|
callback(maybeEndActiveSpan[4]).startTrackingINP();
|
|
const obj4 = callback(maybeEndActiveSpan[4]);
|
|
}
|
|
if (closure_6) {
|
|
const result1 = callback(maybeEndActiveSpan[4]).startTrackingElementTiming();
|
|
const obj5 = callback(maybeEndActiveSpan[4]);
|
|
}
|
|
if (closure_8) {
|
|
if (callback(maybeEndActiveSpan[1]).GLOBAL_OBJ.PerformanceObserver) {
|
|
if (globalThis.PerformanceObserver.supportedEntryTypes) {
|
|
const supportedEntryTypes = globalThis.PerformanceObserver.supportedEntryTypes;
|
|
if (supportedEntryTypes.includes("long-animation-frame")) {
|
|
const result2 = callback(maybeEndActiveSpan[4]).startTrackingLongAnimationFrames();
|
|
const obj7 = callback(maybeEndActiveSpan[4]);
|
|
}
|
|
if (closure_9) {
|
|
const result3 = callback(maybeEndActiveSpan[4]).startTrackingInteractions();
|
|
const obj8 = callback(maybeEndActiveSpan[4]);
|
|
}
|
|
if (closure_26) {
|
|
if (document) {
|
|
function interactionHandler() {
|
|
closure_1 = callback(closure_1[1]).timestampInSeconds();
|
|
}
|
|
obj = { capture: true };
|
|
const listener = globalThis.addEventListener("click", interactionHandler, obj);
|
|
const listener1 = globalThis.addEventListener("keydown", interactionHandler, { 1649303889: null, -898315181: null });
|
|
}
|
|
}
|
|
client.on("startNavigationSpan", (arg0, isRedirect) => {
|
|
let obj = callback(maybeEndActiveSpan[1]);
|
|
if (obj.getClient() === callback) {
|
|
if (null != isRedirect) {
|
|
if (isRedirect.isRedirect) {
|
|
if (callback(maybeEndActiveSpan[5]).DEBUG_BUILD) {
|
|
const debug = callback(maybeEndActiveSpan[1]).debug;
|
|
debug.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span.");
|
|
}
|
|
const _Object2 = Object;
|
|
obj = { op: "navigation.redirect" };
|
|
callback4(callback, Object.assign(obj, arg0), false);
|
|
}
|
|
}
|
|
let maybeEndActiveSpan;
|
|
maybeEndActiveSpan();
|
|
let obj1 = callback(maybeEndActiveSpan[1]);
|
|
const isolationScope = obj1.getIsolationScope();
|
|
obj = { traceId: callback(maybeEndActiveSpan[1]).generateTraceId() };
|
|
const _Math = Math;
|
|
obj.sampleRand = Math.random();
|
|
const obj5 = callback(maybeEndActiveSpan[1]);
|
|
let spanId;
|
|
if (!obj6.hasSpansEnabled()) {
|
|
spanId = callback(maybeEndActiveSpan[1]).generateSpanId();
|
|
const obj7 = callback(maybeEndActiveSpan[1]);
|
|
}
|
|
obj.propagationSpanId = spanId;
|
|
const result = isolationScope.setPropagationContext(obj);
|
|
const obj6 = callback(maybeEndActiveSpan[1]);
|
|
const currentScope = callback(maybeEndActiveSpan[1]).getCurrentScope();
|
|
obj1 = {};
|
|
const obj8 = callback(maybeEndActiveSpan[1]);
|
|
obj1.traceId = callback(maybeEndActiveSpan[1]).generateTraceId();
|
|
const _Math2 = Math;
|
|
obj1.sampleRand = Math.random();
|
|
const obj11 = callback(maybeEndActiveSpan[1]);
|
|
let spanId1;
|
|
if (!obj12.hasSpansEnabled()) {
|
|
spanId1 = callback(maybeEndActiveSpan[1]).generateSpanId();
|
|
const obj13 = callback(maybeEndActiveSpan[1]);
|
|
}
|
|
obj1.propagationSpanId = spanId1;
|
|
const result1 = currentScope.setPropagationContext(obj1);
|
|
const obj2 = { normalizedRequest: undefined };
|
|
const result2 = currentScope.setSDKProcessingMetadata(obj2);
|
|
const _Object = Object;
|
|
const obj3 = { op: "navigation" };
|
|
callback4(callback, Object.assign(obj3, arg0, {}));
|
|
const obj12 = callback(maybeEndActiveSpan[1]);
|
|
}
|
|
});
|
|
client.on("startPageLoadSpan", (arg0) => {
|
|
if (arguments.length > 1) {
|
|
if (undefined !== arguments[1]) {
|
|
let obj = arguments[1];
|
|
}
|
|
if (obj2.getClient() === callback) {
|
|
maybeEndActiveSpan();
|
|
let sentryTrace = obj.sentryTrace;
|
|
if (!sentryTrace) {
|
|
sentryTrace = callback2("sentry-trace");
|
|
}
|
|
let baggage = obj.baggage;
|
|
if (!baggage) {
|
|
baggage = callback2("baggage");
|
|
}
|
|
const result = callback(maybeEndActiveSpan[1]).propagationContextFromHeaders(sentryTrace, baggage);
|
|
const obj3 = callback(maybeEndActiveSpan[1]);
|
|
const currentScope = callback(maybeEndActiveSpan[1]).getCurrentScope();
|
|
const result1 = currentScope.setPropagationContext(result);
|
|
const obj4 = callback(maybeEndActiveSpan[1]);
|
|
if (!obj6.hasSpansEnabled()) {
|
|
const propagationContext = currentScope.getPropagationContext();
|
|
propagationContext.propagationSpanId = callback(maybeEndActiveSpan[1]).generateSpanId();
|
|
const obj7 = callback(maybeEndActiveSpan[1]);
|
|
}
|
|
obj = {};
|
|
const obj6 = callback(maybeEndActiveSpan[1]);
|
|
obj.normalizedRequest = callback(maybeEndActiveSpan[3]).getHttpRequestData();
|
|
const result2 = currentScope.setSDKProcessingMetadata(obj);
|
|
const _Object = Object;
|
|
obj = { op: "pageload" };
|
|
callback4(callback, Object.assign(obj, arg0));
|
|
const obj9 = callback(maybeEndActiveSpan[3]);
|
|
}
|
|
}
|
|
obj = {};
|
|
});
|
|
client.on("endPageloadSpan", () => {
|
|
let tmp = closure_29;
|
|
if (closure_29) {
|
|
tmp = closure_2;
|
|
}
|
|
if (tmp) {
|
|
const attr = closure_2.setAttribute(callback(maybeEndActiveSpan[1]).SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, "reportPageLoaded");
|
|
closure_2.end();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
if (closure_7) {
|
|
const result4 = callback(maybeEndActiveSpan[4]).startTrackingLongTasks();
|
|
const obj6 = callback(maybeEndActiveSpan[4]);
|
|
}
|
|
},
|
|
afterAllSetup(getOptions) {
|
|
let obj = getOptions(locationHref[1]);
|
|
const locationHref = obj.getLocationHref();
|
|
if ("off" !== closure_27) {
|
|
let obj1 = getOptions(locationHref[6]);
|
|
obj = { linkPreviousTrace: closure_27, consistentTraceSampling: closure_28 };
|
|
obj1.linkTraces(getOptions, obj);
|
|
}
|
|
if (getOptions(locationHref[3]).WINDOW.location) {
|
|
if (closure_24) {
|
|
const result = getOptions(locationHref[1]).browserPerformanceTimeOrigin();
|
|
obj = { name: getOptions(locationHref[3]).WINDOW.location.pathname };
|
|
let result1;
|
|
if (result) {
|
|
result1 = result / 1000;
|
|
}
|
|
obj.startTime = result1;
|
|
const obj4 = getOptions(locationHref[1]);
|
|
const tmp10 = closure_5;
|
|
obj.attributes = callback2(callback2({}, getOptions(locationHref[1]).SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, "url"), getOptions(locationHref[1]).SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, "auto.pageload.browser");
|
|
tmp10(getOptions, obj);
|
|
const tmp15 = callback2({}, getOptions(locationHref[1]).SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, "url");
|
|
}
|
|
if (closure_25) {
|
|
const result2 = getOptions(locationHref[4]).addHistoryInstrumentationHandler((to) => {
|
|
to = to.to;
|
|
if (undefined === to.from) {
|
|
let index;
|
|
if (null != closure_1) {
|
|
index = closure_1.indexOf(to);
|
|
}
|
|
if (-1 !== index) {
|
|
closure_1 = undefined;
|
|
}
|
|
}
|
|
closure_1 = undefined;
|
|
let obj = to(closure_1[1]);
|
|
const result = obj.parseStringToURLObject(to);
|
|
const tmp4 = callback2(to);
|
|
let tmp5 = tmp4;
|
|
if (tmp4) {
|
|
tmp5 = closure_26;
|
|
}
|
|
if (tmp5) {
|
|
const obj2 = to(closure_1[1]);
|
|
const spanToJSONResult = to(closure_1[1]).spanToJSON(tmp4);
|
|
const result1 = to(closure_1[1]).dateTimestampInSeconds();
|
|
let flag = false;
|
|
if (result1 - spanToJSONResult.start_timestamp <= 1.5) {
|
|
flag = true;
|
|
if (tmp6) {
|
|
flag = true;
|
|
if (result1 - tmp6 <= 1.5) {
|
|
flag = false;
|
|
}
|
|
}
|
|
}
|
|
tmp5 = flag;
|
|
const obj3 = to(closure_1[1]);
|
|
}
|
|
obj = {};
|
|
let pathname;
|
|
if (null != result) {
|
|
pathname = result.pathname;
|
|
}
|
|
if (!pathname) {
|
|
pathname = to(closure_1[3]).WINDOW.location.pathname;
|
|
}
|
|
obj.name = pathname;
|
|
obj.attributes = callback(callback({}, to(closure_1[1]).SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, "url"), to(closure_1[1]).SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, "auto.navigation.browser");
|
|
obj = { url: to, isRedirect: tmp5 };
|
|
closure_6(to, obj, obj);
|
|
});
|
|
const obj6 = getOptions(locationHref[4]);
|
|
}
|
|
}
|
|
if (closure_16) {
|
|
const result3 = getOptions(locationHref[7]).registerBackgroundTabDetection();
|
|
const obj7 = getOptions(locationHref[7]);
|
|
}
|
|
if (closure_9) {
|
|
function registerInteractionListener(getOptions, closure_13, closure_14, closure_15, arg4) {
|
|
let closure_1 = closure_13;
|
|
if (getOptions(closure_1[3]).WINDOW.document) {
|
|
const obj = { capture: true };
|
|
const listener = globalThis.addEventListener("click", function registerInteractionTransaction(arg0, arg1, arg2, arg3, self) {
|
|
const tmp = callback(arg0);
|
|
if (tmp) {
|
|
let obj = arg0(arg1[1]);
|
|
const items = [null, null];
|
|
if (items.includes(obj.spanToJSON(tmp).op)) {
|
|
if (arg0(arg1[5]).DEBUG_BUILD) {
|
|
const debug2 = arg0(arg1[1]).debug;
|
|
const _HermesInternal2 = HermesInternal;
|
|
debug2.warn("[Tracing] Did not create " + "ui.action.click" + " span because a pageload or navigation span is in progress.");
|
|
}
|
|
}
|
|
}
|
|
if (closure_5) {
|
|
const attr = closure_5.setAttribute(arg0(arg1[1]).SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, "interactionInterrupted");
|
|
closure_5.end();
|
|
closure_5 = undefined;
|
|
}
|
|
if (self.name) {
|
|
obj = { name: self.name, op: "ui.action.click" };
|
|
let str6 = self.source;
|
|
if (!str6) {
|
|
str6 = "url";
|
|
}
|
|
obj.attributes = arg2({}, tmp10(tmp11[1]).SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, str6);
|
|
obj = { idleTimeout: arg1, finalTimeout: arg2, childSpanTimeout: arg3 };
|
|
closure_5 = tmp10(tmp11[1]).startIdleSpan(obj, obj);
|
|
const tmp10Result = tmp10(tmp11[1]);
|
|
const tmp17 = arg2;
|
|
} else if (tmp10(tmp11[5]).DEBUG_BUILD) {
|
|
const debug = arg0(arg1[1]).debug;
|
|
const _HermesInternal = HermesInternal;
|
|
debug.warn("[Tracing] Did not create " + "ui.action.click" + " transaction because _latestRouteName is missing.");
|
|
}
|
|
}, obj);
|
|
}
|
|
}(getOptions, closure_13, closure_14, closure_15, obj);
|
|
}
|
|
if (closure_5) {
|
|
const result4 = getOptions(locationHref[4]).registerInpInteractionListener();
|
|
const obj8 = getOptions(locationHref[4]);
|
|
}
|
|
obj1 = { traceFetch: closure_17, traceXHR: closure_18, trackFetchStreamPerformance: closure_19, tracePropagationTargets: getOptions.getOptions().tracePropagationTargets, shouldCreateSpanForRequest: closure_20, enableHTTPTimings: closure_21, onRequestSpanStart: closure_30, onRequestSpanEnd: closure_31 };
|
|
const result5 = getOptions(locationHref[2]).instrumentOutgoingRequests(getOptions, obj1);
|
|
}
|
|
};
|
|
return obj;
|
|
}
|
|
};
|
|
export { getMetaContent };
|
|
export { startBrowserTracingNavigationSpan };
|
|
export { startBrowserTracingPageLoadSpan };
|