mirror of
https://github.com/MarSeventh/CloudFlare-ImgBed.git
synced 2026-04-27 07:35:07 +00:00
init
This commit is contained in:
135
node_modules/@sentry/utils/cjs/tracing.js
generated
vendored
Normal file
135
node_modules/@sentry/utils/cjs/tracing.js
generated
vendored
Normal file
@@ -0,0 +1,135 @@
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
const baggage = require('./baggage.js');
|
||||
const misc = require('./misc.js');
|
||||
|
||||
// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here
|
||||
const TRACEPARENT_REGEXP = new RegExp(
|
||||
'^[ \\t]*' + // whitespace
|
||||
'([0-9a-f]{32})?' + // trace_id
|
||||
'-?([0-9a-f]{16})?' + // span_id
|
||||
'-?([01])?' + // sampled
|
||||
'[ \\t]*$', // whitespace
|
||||
);
|
||||
|
||||
/**
|
||||
* Extract transaction context data from a `sentry-trace` header.
|
||||
*
|
||||
* @param traceparent Traceparent string
|
||||
*
|
||||
* @returns Object containing data from the header, or undefined if traceparent string is malformed
|
||||
*/
|
||||
function extractTraceparentData(traceparent) {
|
||||
if (!traceparent) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const matches = traceparent.match(TRACEPARENT_REGEXP);
|
||||
if (!matches) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
let parentSampled;
|
||||
if (matches[3] === '1') {
|
||||
parentSampled = true;
|
||||
} else if (matches[3] === '0') {
|
||||
parentSampled = false;
|
||||
}
|
||||
|
||||
return {
|
||||
traceId: matches[1],
|
||||
parentSampled,
|
||||
parentSpanId: matches[2],
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Create tracing context from incoming headers.
|
||||
*
|
||||
* @deprecated Use `propagationContextFromHeaders` instead.
|
||||
*/
|
||||
// TODO(v8): Remove this function
|
||||
function tracingContextFromHeaders(
|
||||
sentryTrace,
|
||||
baggage$1,
|
||||
)
|
||||
|
||||
{
|
||||
const traceparentData = extractTraceparentData(sentryTrace);
|
||||
const dynamicSamplingContext = baggage.baggageHeaderToDynamicSamplingContext(baggage$1);
|
||||
|
||||
const { traceId, parentSpanId, parentSampled } = traceparentData || {};
|
||||
|
||||
if (!traceparentData) {
|
||||
return {
|
||||
traceparentData,
|
||||
dynamicSamplingContext: undefined,
|
||||
propagationContext: {
|
||||
traceId: traceId || misc.uuid4(),
|
||||
spanId: misc.uuid4().substring(16),
|
||||
},
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
traceparentData,
|
||||
dynamicSamplingContext: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it
|
||||
propagationContext: {
|
||||
traceId: traceId || misc.uuid4(),
|
||||
parentSpanId: parentSpanId || misc.uuid4().substring(16),
|
||||
spanId: misc.uuid4().substring(16),
|
||||
sampled: parentSampled,
|
||||
dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a propagation context from incoming headers.
|
||||
*/
|
||||
function propagationContextFromHeaders(
|
||||
sentryTrace,
|
||||
baggage$1,
|
||||
) {
|
||||
const traceparentData = extractTraceparentData(sentryTrace);
|
||||
const dynamicSamplingContext = baggage.baggageHeaderToDynamicSamplingContext(baggage$1);
|
||||
|
||||
const { traceId, parentSpanId, parentSampled } = traceparentData || {};
|
||||
|
||||
if (!traceparentData) {
|
||||
return {
|
||||
traceId: traceId || misc.uuid4(),
|
||||
spanId: misc.uuid4().substring(16),
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
traceId: traceId || misc.uuid4(),
|
||||
parentSpanId: parentSpanId || misc.uuid4().substring(16),
|
||||
spanId: misc.uuid4().substring(16),
|
||||
sampled: parentSampled,
|
||||
dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create sentry-trace header from span context values.
|
||||
*/
|
||||
function generateSentryTraceHeader(
|
||||
traceId = misc.uuid4(),
|
||||
spanId = misc.uuid4().substring(16),
|
||||
sampled,
|
||||
) {
|
||||
let sampledString = '';
|
||||
if (sampled !== undefined) {
|
||||
sampledString = sampled ? '-1' : '-0';
|
||||
}
|
||||
return `${traceId}-${spanId}${sampledString}`;
|
||||
}
|
||||
|
||||
exports.TRACEPARENT_REGEXP = TRACEPARENT_REGEXP;
|
||||
exports.extractTraceparentData = extractTraceparentData;
|
||||
exports.generateSentryTraceHeader = generateSentryTraceHeader;
|
||||
exports.propagationContextFromHeaders = propagationContextFromHeaders;
|
||||
exports.tracingContextFromHeaders = tracingContextFromHeaders;
|
||||
//# sourceMappingURL=tracing.js.map
|
||||
Reference in New Issue
Block a user