1 | Object.defineProperty(exports, "__esModule", { value: true });
|
2 | var tslib_1 = require("tslib");
|
3 |
|
4 | function getSdkMetadataForEnvelopeHeader(api) {
|
5 | if (!api.metadata || !api.metadata.sdk) {
|
6 | return;
|
7 | }
|
8 | var _a = api.metadata.sdk, name = _a.name, version = _a.version;
|
9 | return { name: name, version: version };
|
10 | }
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | function enhanceEventWithSdkInfo(event, sdkInfo) {
|
16 | if (!sdkInfo) {
|
17 | return event;
|
18 | }
|
19 | event.sdk = event.sdk || {};
|
20 | event.sdk.name = event.sdk.name || sdkInfo.name;
|
21 | event.sdk.version = event.sdk.version || sdkInfo.version;
|
22 | event.sdk.integrations = tslib_1.__spread((event.sdk.integrations || []), (sdkInfo.integrations || []));
|
23 | event.sdk.packages = tslib_1.__spread((event.sdk.packages || []), (sdkInfo.packages || []));
|
24 | return event;
|
25 | }
|
26 |
|
27 | function sessionToSentryRequest(session, api) {
|
28 | var sdkInfo = getSdkMetadataForEnvelopeHeader(api);
|
29 | var envelopeHeaders = JSON.stringify(tslib_1.__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })));
|
30 |
|
31 | var type = 'aggregates' in session ? 'sessions' : 'session';
|
32 | var itemHeaders = JSON.stringify({
|
33 | type: type,
|
34 | });
|
35 | return {
|
36 | body: envelopeHeaders + "\n" + itemHeaders + "\n" + JSON.stringify(session),
|
37 | type: type,
|
38 | url: api.getEnvelopeEndpointWithUrlEncodedAuth(),
|
39 | };
|
40 | }
|
41 | exports.sessionToSentryRequest = sessionToSentryRequest;
|
42 |
|
43 | function eventToSentryRequest(event, api) {
|
44 | var sdkInfo = getSdkMetadataForEnvelopeHeader(api);
|
45 | var eventType = event.type || 'event';
|
46 | var useEnvelope = eventType === 'transaction' || api.forceEnvelope();
|
47 | var _a = event.debug_meta || {}, transactionSampling = _a.transactionSampling, metadata = tslib_1.__rest(_a, ["transactionSampling"]);
|
48 | var _b = transactionSampling || {}, samplingMethod = _b.method, sampleRate = _b.rate;
|
49 | if (Object.keys(metadata).length === 0) {
|
50 | delete event.debug_meta;
|
51 | }
|
52 | else {
|
53 | event.debug_meta = metadata;
|
54 | }
|
55 | var req = {
|
56 | body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),
|
57 | type: eventType,
|
58 | url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),
|
59 | };
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 | if (useEnvelope) {
|
66 | var envelopeHeaders = JSON.stringify(tslib_1.__assign(tslib_1.__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));
|
67 | var itemHeaders = JSON.stringify({
|
68 | type: event.type,
|
69 |
|
70 |
|
71 | sample_rates: [{ id: samplingMethod, rate: sampleRate }],
|
72 | });
|
73 |
|
74 |
|
75 |
|
76 |
|
77 | var envelope = envelopeHeaders + "\n" + itemHeaders + "\n" + req.body;
|
78 | req.body = envelope;
|
79 | }
|
80 | return req;
|
81 | }
|
82 | exports.eventToSentryRequest = eventToSentryRequest;
|
83 |
|
\ | No newline at end of file |