@sentry/node 8.4.0 → 8.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +14 -9
- package/cjs/index.js.map +1 -1
- package/cjs/init.js +2 -2
- package/cjs/init.js.map +1 -1
- package/cjs/integrations/anr/index.js +2 -2
- package/cjs/integrations/anr/index.js.map +1 -1
- package/cjs/integrations/http.js +121 -97
- package/cjs/integrations/http.js.map +1 -1
- package/cjs/integrations/local-variables/local-variables-async.js +2 -2
- package/cjs/integrations/local-variables/local-variables-async.js.map +1 -1
- package/cjs/integrations/local-variables/local-variables-sync.js +114 -109
- package/cjs/integrations/local-variables/local-variables-sync.js.map +1 -1
- package/cjs/integrations/tracing/connect.js +8 -3
- package/cjs/integrations/tracing/connect.js.map +1 -1
- package/cjs/integrations/tracing/express.js +44 -37
- package/cjs/integrations/tracing/express.js.map +1 -1
- package/cjs/integrations/tracing/fastify.js +16 -9
- package/cjs/integrations/tracing/fastify.js.map +1 -1
- package/cjs/integrations/tracing/graphql.js +24 -16
- package/cjs/integrations/tracing/graphql.js.map +1 -1
- package/cjs/integrations/tracing/hapi/index.js +8 -3
- package/cjs/integrations/tracing/hapi/index.js.map +1 -1
- package/cjs/integrations/tracing/index.js +25 -0
- package/cjs/integrations/tracing/index.js.map +1 -1
- package/cjs/integrations/tracing/koa.js +45 -39
- package/cjs/integrations/tracing/koa.js.map +1 -1
- package/cjs/integrations/tracing/mongo.js +16 -9
- package/cjs/integrations/tracing/mongo.js.map +1 -1
- package/cjs/integrations/tracing/mongoose.js +16 -9
- package/cjs/integrations/tracing/mongoose.js.map +1 -1
- package/cjs/integrations/tracing/mysql.js +8 -3
- package/cjs/integrations/tracing/mysql.js.map +1 -1
- package/cjs/integrations/tracing/mysql2.js +16 -9
- package/cjs/integrations/tracing/mysql2.js.map +1 -1
- package/cjs/integrations/tracing/nest.js +8 -3
- package/cjs/integrations/tracing/nest.js.map +1 -1
- package/cjs/integrations/tracing/postgres.js +17 -10
- package/cjs/integrations/tracing/postgres.js.map +1 -1
- package/cjs/integrations/tracing/prisma.js +16 -7
- package/cjs/integrations/tracing/prisma.js.map +1 -1
- package/cjs/integrations/tracing/redis.js +58 -47
- package/cjs/integrations/tracing/redis.js.map +1 -1
- package/cjs/otel/instrument.js +35 -0
- package/cjs/otel/instrument.js.map +1 -0
- package/cjs/preload.js +20 -0
- package/cjs/preload.js.map +1 -0
- package/cjs/sdk/{init.js → index.js} +8 -29
- package/cjs/sdk/index.js.map +1 -0
- package/cjs/sdk/initOtel.js +88 -9
- package/cjs/sdk/initOtel.js.map +1 -1
- package/esm/index.js +4 -3
- package/esm/index.js.map +1 -1
- package/esm/init.js +1 -1
- package/esm/init.js.map +1 -1
- package/esm/integrations/anr/index.js +2 -2
- package/esm/integrations/anr/index.js.map +1 -1
- package/esm/integrations/anr/worker-script.js +2 -2
- package/esm/integrations/http.js +123 -100
- package/esm/integrations/http.js.map +1 -1
- package/esm/integrations/local-variables/local-variables-async.js +2 -2
- package/esm/integrations/local-variables/local-variables-async.js.map +1 -1
- package/esm/integrations/local-variables/local-variables-sync.js +114 -109
- package/esm/integrations/local-variables/local-variables-sync.js.map +1 -1
- package/esm/integrations/local-variables/worker-script.js +1 -1
- package/esm/integrations/tracing/connect.js +8 -4
- package/esm/integrations/tracing/connect.js.map +1 -1
- package/esm/integrations/tracing/express.js +44 -38
- package/esm/integrations/tracing/express.js.map +1 -1
- package/esm/integrations/tracing/fastify.js +16 -10
- package/esm/integrations/tracing/fastify.js.map +1 -1
- package/esm/integrations/tracing/graphql.js +24 -17
- package/esm/integrations/tracing/graphql.js.map +1 -1
- package/esm/integrations/tracing/hapi/index.js +8 -4
- package/esm/integrations/tracing/hapi/index.js.map +1 -1
- package/esm/integrations/tracing/index.js +37 -13
- package/esm/integrations/tracing/index.js.map +1 -1
- package/esm/integrations/tracing/koa.js +45 -40
- package/esm/integrations/tracing/koa.js.map +1 -1
- package/esm/integrations/tracing/mongo.js +16 -10
- package/esm/integrations/tracing/mongo.js.map +1 -1
- package/esm/integrations/tracing/mongoose.js +16 -10
- package/esm/integrations/tracing/mongoose.js.map +1 -1
- package/esm/integrations/tracing/mysql.js +8 -4
- package/esm/integrations/tracing/mysql.js.map +1 -1
- package/esm/integrations/tracing/mysql2.js +16 -10
- package/esm/integrations/tracing/mysql2.js.map +1 -1
- package/esm/integrations/tracing/nest.js +8 -4
- package/esm/integrations/tracing/nest.js.map +1 -1
- package/esm/integrations/tracing/postgres.js +17 -11
- package/esm/integrations/tracing/postgres.js.map +1 -1
- package/esm/integrations/tracing/prisma.js +16 -8
- package/esm/integrations/tracing/prisma.js.map +1 -1
- package/esm/integrations/tracing/redis.js +57 -47
- package/esm/integrations/tracing/redis.js.map +1 -1
- package/esm/otel/instrument.js +33 -0
- package/esm/otel/instrument.js.map +1 -0
- package/esm/preload.js +20 -0
- package/esm/preload.js.map +1 -0
- package/esm/sdk/{init.js → index.js} +11 -32
- package/esm/sdk/index.js.map +1 -0
- package/esm/sdk/initOtel.js +88 -12
- package/esm/sdk/initOtel.js.map +1 -1
- package/package.json +15 -7
- package/types/index.d.ts +4 -3
- package/types/index.d.ts.map +1 -1
- package/types/integrations/anr/index.d.ts.map +1 -1
- package/types/integrations/http.d.ts +7 -0
- package/types/integrations/http.d.ts.map +1 -1
- package/types/integrations/local-variables/local-variables-sync.d.ts +1 -1
- package/types/integrations/local-variables/local-variables-sync.d.ts.map +1 -1
- package/types/integrations/tracing/connect.d.ts +3 -0
- package/types/integrations/tracing/connect.d.ts.map +1 -1
- package/types/integrations/tracing/express.d.ts +3 -0
- package/types/integrations/tracing/express.d.ts.map +1 -1
- package/types/integrations/tracing/fastify.d.ts +3 -0
- package/types/integrations/tracing/fastify.d.ts.map +1 -1
- package/types/integrations/tracing/graphql.d.ts +4 -1
- package/types/integrations/tracing/graphql.d.ts.map +1 -1
- package/types/integrations/tracing/hapi/index.d.ts +3 -0
- package/types/integrations/tracing/hapi/index.d.ts.map +1 -1
- package/types/integrations/tracing/index.d.ts +6 -0
- package/types/integrations/tracing/index.d.ts.map +1 -1
- package/types/integrations/tracing/koa.d.ts +3 -0
- package/types/integrations/tracing/koa.d.ts.map +1 -1
- package/types/integrations/tracing/mongo.d.ts +3 -0
- package/types/integrations/tracing/mongo.d.ts.map +1 -1
- package/types/integrations/tracing/mongoose.d.ts +3 -0
- package/types/integrations/tracing/mongoose.d.ts.map +1 -1
- package/types/integrations/tracing/mysql.d.ts +3 -0
- package/types/integrations/tracing/mysql.d.ts.map +1 -1
- package/types/integrations/tracing/mysql2.d.ts +3 -0
- package/types/integrations/tracing/mysql2.d.ts.map +1 -1
- package/types/integrations/tracing/nest.d.ts +3 -0
- package/types/integrations/tracing/nest.d.ts.map +1 -1
- package/types/integrations/tracing/postgres.d.ts +3 -0
- package/types/integrations/tracing/postgres.d.ts.map +1 -1
- package/types/integrations/tracing/prisma.d.ts +3 -0
- package/types/integrations/tracing/prisma.d.ts.map +1 -1
- package/types/integrations/tracing/redis.d.ts +3 -0
- package/types/integrations/tracing/redis.d.ts.map +1 -1
- package/types/otel/instrument.d.ts +9 -0
- package/types/otel/instrument.d.ts.map +1 -0
- package/types/preload.d.ts +2 -0
- package/types/preload.d.ts.map +1 -0
- package/types/sdk/{init.d.ts → index.d.ts} +5 -1
- package/types/sdk/index.d.ts.map +1 -0
- package/types/sdk/initOtel.d.ts +13 -0
- package/types/sdk/initOtel.d.ts.map +1 -1
- package/types-ts3.8/index.d.ts +4 -3
- package/types-ts3.8/integrations/http.d.ts +7 -0
- package/types-ts3.8/integrations/local-variables/local-variables-sync.d.ts +1 -1
- package/types-ts3.8/integrations/tracing/connect.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/express.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/fastify.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/graphql.d.ts +4 -1
- package/types-ts3.8/integrations/tracing/hapi/index.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/index.d.ts +6 -0
- package/types-ts3.8/integrations/tracing/koa.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/mongo.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/mongoose.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/mysql.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/mysql2.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/nest.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/postgres.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/prisma.d.ts +3 -0
- package/types-ts3.8/integrations/tracing/redis.d.ts +3 -0
- package/types-ts3.8/otel/instrument.d.ts +9 -0
- package/types-ts3.8/preload.d.ts +2 -0
- package/types-ts3.8/sdk/{init.d.ts → index.d.ts} +5 -1
- package/types-ts3.8/sdk/initOtel.d.ts +13 -0
- package/cjs/sdk/init.js.map +0 -1
- package/esm/sdk/init.js.map +0 -1
- package/types/sdk/init.d.ts.map +0 -1
package/cjs/integrations/http.js
CHANGED
|
@@ -12,106 +12,129 @@ const scope = require('../sdk/scope.js');
|
|
|
12
12
|
const addOriginToSpan = require('../utils/addOriginToSpan.js');
|
|
13
13
|
const getRequestUrl = require('../utils/getRequestUrl.js');
|
|
14
14
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
const INTEGRATION_NAME = 'Http';
|
|
16
|
+
|
|
17
|
+
let _httpOptions = {};
|
|
18
|
+
let _httpInstrumentation;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Instrument the HTTP module.
|
|
22
|
+
* This can only be instrumented once! If this called again later, we just update the options.
|
|
23
|
+
*/
|
|
24
|
+
const instrumentHttp = Object.assign(
|
|
25
|
+
function () {
|
|
26
|
+
if (_httpInstrumentation) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const _InstrumentationClass = _httpOptions._instrumentation || instrumentationHttp.HttpInstrumentation;
|
|
31
|
+
|
|
32
|
+
_httpInstrumentation = new _InstrumentationClass({
|
|
33
|
+
ignoreOutgoingRequestHook: request => {
|
|
34
|
+
const url = getRequestUrl.getRequestUrl(request);
|
|
35
|
+
|
|
36
|
+
if (!url) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (core.isSentryRequestUrl(url, opentelemetry.getClient())) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const _ignoreOutgoingRequests = _httpOptions.ignoreOutgoingRequests;
|
|
45
|
+
if (_ignoreOutgoingRequests && _ignoreOutgoingRequests(url)) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return false;
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
ignoreIncomingRequestHook: request => {
|
|
53
|
+
const url = getRequestUrl.getRequestUrl(request);
|
|
54
|
+
|
|
55
|
+
const method = _optionalChain([request, 'access', _ => _.method, 'optionalAccess', _2 => _2.toUpperCase, 'call', _3 => _3()]);
|
|
56
|
+
// We do not capture OPTIONS/HEAD requests as transactions
|
|
57
|
+
if (method === 'OPTIONS' || method === 'HEAD') {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const _ignoreIncomingRequests = _httpOptions.ignoreIncomingRequests;
|
|
62
|
+
if (_ignoreIncomingRequests && _ignoreIncomingRequests(url)) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
20
65
|
|
|
66
|
+
return false;
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
requireParentforOutgoingSpans: false,
|
|
70
|
+
requireParentforIncomingSpans: false,
|
|
71
|
+
requestHook: (span, req) => {
|
|
72
|
+
addOriginToSpan.addOriginToSpan(span, 'auto.http.otel.http');
|
|
73
|
+
|
|
74
|
+
// both, incoming requests and "client" requests made within the app trigger the requestHook
|
|
75
|
+
// we only want to isolate and further annotate incoming requests (IncomingMessage)
|
|
76
|
+
if (_isClientRequest(req)) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const scopes = core.getCapturedScopesOnSpan(span);
|
|
81
|
+
|
|
82
|
+
const isolationScope = (scopes.isolationScope || core.getIsolationScope()).clone();
|
|
83
|
+
const scope$1 = scopes.scope || core.getCurrentScope();
|
|
84
|
+
|
|
85
|
+
// Update the isolation scope, isolate this request
|
|
86
|
+
isolationScope.setSDKProcessingMetadata({ request: req });
|
|
87
|
+
|
|
88
|
+
const client = opentelemetry.getClient();
|
|
89
|
+
if (client && client.getOptions().autoSessionTracking) {
|
|
90
|
+
isolationScope.setRequestSession({ status: 'ok' });
|
|
91
|
+
}
|
|
92
|
+
scope.setIsolationScope(isolationScope);
|
|
93
|
+
core.setCapturedScopesOnSpan(span, scope$1, isolationScope);
|
|
94
|
+
|
|
95
|
+
// attempt to update the scope's `transactionName` based on the request URL
|
|
96
|
+
// Ideally, framework instrumentations coming after the HttpInstrumentation
|
|
97
|
+
// update the transactionName once we get a parameterized route.
|
|
98
|
+
const httpMethod = (req.method || 'GET').toUpperCase();
|
|
99
|
+
const httpTarget = utils.stripUrlQueryAndFragment(req.url || '/');
|
|
100
|
+
|
|
101
|
+
const bestEffortTransactionName = `${httpMethod} ${httpTarget}`;
|
|
102
|
+
|
|
103
|
+
isolationScope.setTransactionName(bestEffortTransactionName);
|
|
104
|
+
},
|
|
105
|
+
responseHook: () => {
|
|
106
|
+
const client = opentelemetry.getClient();
|
|
107
|
+
if (client && client.getOptions().autoSessionTracking) {
|
|
108
|
+
setImmediate(() => {
|
|
109
|
+
client['_captureRequestSession']();
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
applyCustomAttributesOnSpan: (
|
|
114
|
+
_span,
|
|
115
|
+
request,
|
|
116
|
+
response,
|
|
117
|
+
) => {
|
|
118
|
+
const _breadcrumbs = typeof _httpOptions.breadcrumbs === 'undefined' ? true : _httpOptions.breadcrumbs;
|
|
119
|
+
if (_breadcrumbs) {
|
|
120
|
+
_addRequestBreadcrumb(request, response);
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
opentelemetry.addOpenTelemetryInstrumentation(_httpInstrumentation);
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: INTEGRATION_NAME,
|
|
129
|
+
},
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
const _httpIntegration = ((options = {}) => {
|
|
21
133
|
return {
|
|
22
|
-
name:
|
|
134
|
+
name: INTEGRATION_NAME,
|
|
23
135
|
setupOnce() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
ignoreOutgoingRequestHook: request => {
|
|
27
|
-
const url = getRequestUrl.getRequestUrl(request);
|
|
28
|
-
|
|
29
|
-
if (!url) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (core.isSentryRequestUrl(url, opentelemetry.getClient())) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (_ignoreOutgoingRequests && _ignoreOutgoingRequests(url)) {
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return false;
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
ignoreIncomingRequestHook: request => {
|
|
45
|
-
const url = getRequestUrl.getRequestUrl(request);
|
|
46
|
-
|
|
47
|
-
const method = _optionalChain([request, 'access', _ => _.method, 'optionalAccess', _2 => _2.toUpperCase, 'call', _3 => _3()]);
|
|
48
|
-
// We do not capture OPTIONS/HEAD requests as transactions
|
|
49
|
-
if (method === 'OPTIONS' || method === 'HEAD') {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (_ignoreIncomingRequests && _ignoreIncomingRequests(url)) {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return false;
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
requireParentforOutgoingSpans: false,
|
|
61
|
-
requireParentforIncomingSpans: false,
|
|
62
|
-
requestHook: (span, req) => {
|
|
63
|
-
addOriginToSpan.addOriginToSpan(span, 'auto.http.otel.http');
|
|
64
|
-
|
|
65
|
-
// both, incoming requests and "client" requests made within the app trigger the requestHook
|
|
66
|
-
// we only want to isolate and further annotate incoming requests (IncomingMessage)
|
|
67
|
-
if (_isClientRequest(req)) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const scopes = core.getCapturedScopesOnSpan(span);
|
|
72
|
-
|
|
73
|
-
const isolationScope = (scopes.isolationScope || core.getIsolationScope()).clone();
|
|
74
|
-
const scope$1 = scopes.scope || core.getCurrentScope();
|
|
75
|
-
|
|
76
|
-
// Update the isolation scope, isolate this request
|
|
77
|
-
isolationScope.setSDKProcessingMetadata({ request: req });
|
|
78
|
-
|
|
79
|
-
const client = opentelemetry.getClient();
|
|
80
|
-
if (client && client.getOptions().autoSessionTracking) {
|
|
81
|
-
isolationScope.setRequestSession({ status: 'ok' });
|
|
82
|
-
}
|
|
83
|
-
scope.setIsolationScope(isolationScope);
|
|
84
|
-
core.setCapturedScopesOnSpan(span, scope$1, isolationScope);
|
|
85
|
-
|
|
86
|
-
// attempt to update the scope's `transactionName` based on the request URL
|
|
87
|
-
// Ideally, framework instrumentations coming after the HttpInstrumentation
|
|
88
|
-
// update the transactionName once we get a parameterized route.
|
|
89
|
-
const httpMethod = (req.method || 'GET').toUpperCase();
|
|
90
|
-
const httpTarget = utils.stripUrlQueryAndFragment(req.url || '/');
|
|
91
|
-
|
|
92
|
-
const bestEffortTransactionName = `${httpMethod} ${httpTarget}`;
|
|
93
|
-
|
|
94
|
-
isolationScope.setTransactionName(bestEffortTransactionName);
|
|
95
|
-
},
|
|
96
|
-
responseHook: () => {
|
|
97
|
-
const client = opentelemetry.getClient();
|
|
98
|
-
if (client && client.getOptions().autoSessionTracking) {
|
|
99
|
-
setImmediate(() => {
|
|
100
|
-
client['_captureRequestSession']();
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
applyCustomAttributesOnSpan: (
|
|
105
|
-
_span,
|
|
106
|
-
request,
|
|
107
|
-
response,
|
|
108
|
-
) => {
|
|
109
|
-
if (_breadcrumbs) {
|
|
110
|
-
_addRequestBreadcrumb(request, response);
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
}),
|
|
114
|
-
);
|
|
136
|
+
_httpOptions = options;
|
|
137
|
+
instrumentHttp();
|
|
115
138
|
},
|
|
116
139
|
};
|
|
117
140
|
}) ;
|
|
@@ -185,4 +208,5 @@ function _isClientRequest(req) {
|
|
|
185
208
|
}
|
|
186
209
|
|
|
187
210
|
exports.httpIntegration = httpIntegration;
|
|
211
|
+
exports.instrumentHttp = instrumentHttp;
|
|
188
212
|
//# sourceMappingURL=http.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sources":["../../../src/integrations/http.ts"],"sourcesContent":["import type { ClientRequest, ServerResponse } from 'node:http';\nimport type { Span } from '@opentelemetry/api';\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http';\nimport { addOpenTelemetryInstrumentation } from '@sentry/opentelemetry';\n\nimport {\n addBreadcrumb,\n defineIntegration,\n getCapturedScopesOnSpan,\n getCurrentScope,\n getIsolationScope,\n isSentryRequestUrl,\n setCapturedScopesOnSpan,\n} from '@sentry/core';\nimport { getClient } from '@sentry/opentelemetry';\nimport type { IntegrationFn, SanitizedRequestData } from '@sentry/types';\n\nimport { getSanitizedUrlString, parseUrl, stripUrlQueryAndFragment } from '@sentry/utils';\nimport type { NodeClient } from '../sdk/client';\nimport { setIsolationScope } from '../sdk/scope';\nimport type { HTTPModuleRequestIncomingMessage } from '../transports/http-module';\nimport { addOriginToSpan } from '../utils/addOriginToSpan';\nimport { getRequestUrl } from '../utils/getRequestUrl';\n\ninterface HttpOptions {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n\n /**\n * Do not capture spans or breadcrumbs for incoming HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreIncomingRequests?: (url: string) => boolean;\n\n /** Allows to pass a custom version of HttpInstrumentation. We use this for Next.js. */\n _instrumentation?: typeof HttpInstrumentation;\n}\n\nconst _httpIntegration = ((options: HttpOptions = {}) => {\n const _breadcrumbs = typeof options.breadcrumbs === 'undefined' ? true : options.breadcrumbs;\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n const _ignoreIncomingRequests = options.ignoreIncomingRequests;\n const _InstrumentationClass = options._instrumentation || HttpInstrumentation;\n\n return {\n name: 'Http',\n setupOnce() {\n addOpenTelemetryInstrumentation(\n new _InstrumentationClass({\n ignoreOutgoingRequestHook: request => {\n const url = getRequestUrl(request);\n\n if (!url) {\n return false;\n }\n\n if (isSentryRequestUrl(url, getClient())) {\n return true;\n }\n\n if (_ignoreOutgoingRequests && _ignoreOutgoingRequests(url)) {\n return true;\n }\n\n return false;\n },\n\n ignoreIncomingRequestHook: request => {\n const url = getRequestUrl(request);\n\n const method = request.method?.toUpperCase();\n // We do not capture OPTIONS/HEAD requests as transactions\n if (method === 'OPTIONS' || method === 'HEAD') {\n return true;\n }\n\n if (_ignoreIncomingRequests && _ignoreIncomingRequests(url)) {\n return true;\n }\n\n return false;\n },\n\n requireParentforOutgoingSpans: false,\n requireParentforIncomingSpans: false,\n requestHook: (span, req) => {\n addOriginToSpan(span, 'auto.http.otel.http');\n\n // both, incoming requests and \"client\" requests made within the app trigger the requestHook\n // we only want to isolate and further annotate incoming requests (IncomingMessage)\n if (_isClientRequest(req)) {\n return;\n }\n\n const scopes = getCapturedScopesOnSpan(span);\n\n const isolationScope = (scopes.isolationScope || getIsolationScope()).clone();\n const scope = scopes.scope || getCurrentScope();\n\n // Update the isolation scope, isolate this request\n isolationScope.setSDKProcessingMetadata({ request: req });\n\n const client = getClient<NodeClient>();\n if (client && client.getOptions().autoSessionTracking) {\n isolationScope.setRequestSession({ status: 'ok' });\n }\n setIsolationScope(isolationScope);\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n // attempt to update the scope's `transactionName` based on the request URL\n // Ideally, framework instrumentations coming after the HttpInstrumentation\n // update the transactionName once we get a parameterized route.\n const httpMethod = (req.method || 'GET').toUpperCase();\n const httpTarget = stripUrlQueryAndFragment(req.url || '/');\n\n const bestEffortTransactionName = `${httpMethod} ${httpTarget}`;\n\n isolationScope.setTransactionName(bestEffortTransactionName);\n },\n responseHook: () => {\n const client = getClient<NodeClient>();\n if (client && client.getOptions().autoSessionTracking) {\n setImmediate(() => {\n client['_captureRequestSession']();\n });\n }\n },\n applyCustomAttributesOnSpan: (\n _span: Span,\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n ) => {\n if (_breadcrumbs) {\n _addRequestBreadcrumb(request, response);\n }\n },\n }),\n );\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nexport const httpIntegration = defineIntegration(_httpIntegration);\n\n/** Add a breadcrumb for outgoing requests. */\nfunction _addRequestBreadcrumb(\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n): void {\n // Only generate breadcrumbs for outgoing requests\n if (!_isClientRequest(request)) {\n return;\n }\n\n const data = getBreadcrumbData(request);\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: response.statusCode,\n ...data,\n },\n type: 'http',\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\nfunction getBreadcrumbData(request: ClientRequest): Partial<SanitizedRequestData> {\n try {\n // `request.host` does not contain the port, but the host header does\n const host = request.getHeader('host') || request.host;\n const url = new URL(request.path, `${request.protocol}//${host}`);\n const parsedUrl = parseUrl(url.toString());\n\n const data: Partial<SanitizedRequestData> = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/**\n * Determines if @param req is a ClientRequest, meaning the request was created within the express app\n * and it's an outgoing request.\n * Checking for properties instead of using `instanceOf` to avoid importing the request classes.\n */\nfunction _isClientRequest(req: ClientRequest | HTTPModuleRequestIncomingMessage): req is ClientRequest {\n return 'outputData' in req && 'outputSize' in req && !('client' in req) && !('statusCode' in req);\n}\n"],"names":["HttpInstrumentation","addOpenTelemetryInstrumentation","getRequestUrl","isSentryRequestUrl","getClient","addOriginToSpan","getCapturedScopesOnSpan","getIsolationScope","scope","getCurrentScope","setIsolationScope","setCapturedScopesOnSpan","stripUrlQueryAndFragment","defineIntegration","addBreadcrumb","parseUrl","getSanitizedUrlString"],"mappings":"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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA;;AAEA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AACA,CAAA,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EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACA;;"}
|
|
1
|
+
{"version":3,"file":"http.js","sources":["../../../src/integrations/http.ts"],"sourcesContent":["import type { ClientRequest, ServerResponse } from 'node:http';\nimport type { Span } from '@opentelemetry/api';\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http';\nimport { addOpenTelemetryInstrumentation } from '@sentry/opentelemetry';\n\nimport {\n addBreadcrumb,\n defineIntegration,\n getCapturedScopesOnSpan,\n getCurrentScope,\n getIsolationScope,\n isSentryRequestUrl,\n setCapturedScopesOnSpan,\n} from '@sentry/core';\nimport { getClient } from '@sentry/opentelemetry';\nimport type { IntegrationFn, SanitizedRequestData } from '@sentry/types';\n\nimport { getSanitizedUrlString, parseUrl, stripUrlQueryAndFragment } from '@sentry/utils';\nimport type { NodeClient } from '../sdk/client';\nimport { setIsolationScope } from '../sdk/scope';\nimport type { HTTPModuleRequestIncomingMessage } from '../transports/http-module';\nimport { addOriginToSpan } from '../utils/addOriginToSpan';\nimport { getRequestUrl } from '../utils/getRequestUrl';\n\nconst INTEGRATION_NAME = 'Http';\n\ninterface HttpOptions {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n\n /**\n * Do not capture spans or breadcrumbs for incoming HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreIncomingRequests?: (url: string) => boolean;\n\n /** Allows to pass a custom version of HttpInstrumentation. We use this for Next.js. */\n _instrumentation?: typeof HttpInstrumentation;\n}\n\nlet _httpOptions: HttpOptions = {};\nlet _httpInstrumentation: HttpInstrumentation | undefined;\n\n/**\n * Instrument the HTTP module.\n * This can only be instrumented once! If this called again later, we just update the options.\n */\nexport const instrumentHttp = Object.assign(\n function (): void {\n if (_httpInstrumentation) {\n return;\n }\n\n const _InstrumentationClass = _httpOptions._instrumentation || HttpInstrumentation;\n\n _httpInstrumentation = new _InstrumentationClass({\n ignoreOutgoingRequestHook: request => {\n const url = getRequestUrl(request);\n\n if (!url) {\n return false;\n }\n\n if (isSentryRequestUrl(url, getClient())) {\n return true;\n }\n\n const _ignoreOutgoingRequests = _httpOptions.ignoreOutgoingRequests;\n if (_ignoreOutgoingRequests && _ignoreOutgoingRequests(url)) {\n return true;\n }\n\n return false;\n },\n\n ignoreIncomingRequestHook: request => {\n const url = getRequestUrl(request);\n\n const method = request.method?.toUpperCase();\n // We do not capture OPTIONS/HEAD requests as transactions\n if (method === 'OPTIONS' || method === 'HEAD') {\n return true;\n }\n\n const _ignoreIncomingRequests = _httpOptions.ignoreIncomingRequests;\n if (_ignoreIncomingRequests && _ignoreIncomingRequests(url)) {\n return true;\n }\n\n return false;\n },\n\n requireParentforOutgoingSpans: false,\n requireParentforIncomingSpans: false,\n requestHook: (span, req) => {\n addOriginToSpan(span, 'auto.http.otel.http');\n\n // both, incoming requests and \"client\" requests made within the app trigger the requestHook\n // we only want to isolate and further annotate incoming requests (IncomingMessage)\n if (_isClientRequest(req)) {\n return;\n }\n\n const scopes = getCapturedScopesOnSpan(span);\n\n const isolationScope = (scopes.isolationScope || getIsolationScope()).clone();\n const scope = scopes.scope || getCurrentScope();\n\n // Update the isolation scope, isolate this request\n isolationScope.setSDKProcessingMetadata({ request: req });\n\n const client = getClient<NodeClient>();\n if (client && client.getOptions().autoSessionTracking) {\n isolationScope.setRequestSession({ status: 'ok' });\n }\n setIsolationScope(isolationScope);\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n // attempt to update the scope's `transactionName` based on the request URL\n // Ideally, framework instrumentations coming after the HttpInstrumentation\n // update the transactionName once we get a parameterized route.\n const httpMethod = (req.method || 'GET').toUpperCase();\n const httpTarget = stripUrlQueryAndFragment(req.url || '/');\n\n const bestEffortTransactionName = `${httpMethod} ${httpTarget}`;\n\n isolationScope.setTransactionName(bestEffortTransactionName);\n },\n responseHook: () => {\n const client = getClient<NodeClient>();\n if (client && client.getOptions().autoSessionTracking) {\n setImmediate(() => {\n client['_captureRequestSession']();\n });\n }\n },\n applyCustomAttributesOnSpan: (\n _span: Span,\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n ) => {\n const _breadcrumbs = typeof _httpOptions.breadcrumbs === 'undefined' ? true : _httpOptions.breadcrumbs;\n if (_breadcrumbs) {\n _addRequestBreadcrumb(request, response);\n }\n },\n });\n\n addOpenTelemetryInstrumentation(_httpInstrumentation);\n },\n {\n id: INTEGRATION_NAME,\n },\n);\n\nconst _httpIntegration = ((options: HttpOptions = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n _httpOptions = options;\n instrumentHttp();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nexport const httpIntegration = defineIntegration(_httpIntegration);\n\n/** Add a breadcrumb for outgoing requests. */\nfunction _addRequestBreadcrumb(\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n): void {\n // Only generate breadcrumbs for outgoing requests\n if (!_isClientRequest(request)) {\n return;\n }\n\n const data = getBreadcrumbData(request);\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: response.statusCode,\n ...data,\n },\n type: 'http',\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\nfunction getBreadcrumbData(request: ClientRequest): Partial<SanitizedRequestData> {\n try {\n // `request.host` does not contain the port, but the host header does\n const host = request.getHeader('host') || request.host;\n const url = new URL(request.path, `${request.protocol}//${host}`);\n const parsedUrl = parseUrl(url.toString());\n\n const data: Partial<SanitizedRequestData> = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/**\n * Determines if @param req is a ClientRequest, meaning the request was created within the express app\n * and it's an outgoing request.\n * Checking for properties instead of using `instanceOf` to avoid importing the request classes.\n */\nfunction _isClientRequest(req: ClientRequest | HTTPModuleRequestIncomingMessage): req is ClientRequest {\n return 'outputData' in req && 'outputSize' in req && !('client' in req) && !('statusCode' in req);\n}\n"],"names":["HttpInstrumentation","getRequestUrl","isSentryRequestUrl","getClient","addOriginToSpan","getCapturedScopesOnSpan","getIsolationScope","scope","getCurrentScope","setIsolationScope","setCapturedScopesOnSpan","stripUrlQueryAndFragment","addOpenTelemetryInstrumentation","defineIntegration","addBreadcrumb","parseUrl","getSanitizedUrlString"],"mappings":"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AAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA;;AAEA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,EAAA;EACA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACA;;;"}
|
|
@@ -10,7 +10,7 @@ const utils = require('@sentry/utils');
|
|
|
10
10
|
const common = require('./common.js');
|
|
11
11
|
|
|
12
12
|
// This string is a placeholder that gets overwritten with the worker code.
|
|
13
|
-
const base64WorkerScript = '
|
|
13
|
+
const base64WorkerScript = 'LyohIEBzZW50cnkvbm9kZSA4LjYuMCAoNzQ4MDk5MikgfCBodHRwczovL2dpdGh1Yi5jb20vZ2V0c2VudHJ5L3NlbnRyeS1qYXZhc2NyaXB0ICovCmltcG9ydHtTZXNzaW9uIGFzIGV9ZnJvbSJub2RlOmluc3BlY3Rvci9wcm9taXNlcyI7aW1wb3J0e3dvcmtlckRhdGEgYXMgbixwYXJlbnRQb3J0IGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtpbXBvcnR7cG9zaXggYXMgbyxzZXAgYXMgcn1mcm9tIm5vZGU6cGF0aCI7Y29uc3QgaT01MCxzPSI/IixjPS9cKGVycm9yOiAoLiopXCkvLGE9L2NhcHR1cmVNZXNzYWdlfGNhcHR1cmVFeGNlcHRpb24vO2NvbnN0IHU9L14oXFMrOlxcfFwvPykoW1xzXFNdKj8pKCg/OlwuezEsMn18W14vXFxdKz98KShcLlteLi9cXF0qfCkpKD86Wy9cXF0qKSQvO2Z1bmN0aW9uIGYoZSl7Y29uc3Qgbj1mdW5jdGlvbihlKXtjb25zdCBuPWUubGVuZ3RoPjEwMjQ/YDx0cnVuY2F0ZWQ+JHtlLnNsaWNlKC0xMDI0KX1gOmUsdD11LmV4ZWMobik7cmV0dXJuIHQ/dC5zbGljZSgxKTpbXX0oZSksdD1uWzBdO2xldCBvPW5bMV07cmV0dXJuIHR8fG8/KG8mJihvPW8uc2xpY2UoMCxvLmxlbmd0aC0xKSksdCtvKToiLiJ9ZnVuY3Rpb24gbChlLG49ITEpe3JldHVybiEobnx8ZSYmIWUuc3RhcnRzV2l0aCgiLyIpJiYhZS5tYXRjaCgvXltBLVpdOi8pJiYhZS5zdGFydHNXaXRoKCIuIikmJiFlLm1hdGNoKC9eW2EtekEtWl0oW2EtekEtWjAtOS5cLStdKSo6XC9cLy8pKSYmdm9pZCAwIT09ZSYmIWUuaW5jbHVkZXMoIm5vZGVfbW9kdWxlcy8iKX1mdW5jdGlvbiBkKGUpe2NvbnN0IG49L15ccypbLV17NCx9JC8sdD0vYXQgKD86YXN5bmMgKT8oPzooLis/KVxzK1woKT8oPzooLispOihcZCspOihcZCspP3woW14pXSspKVwpPy87cmV0dXJuIG89Pntjb25zdCByPW8ubWF0Y2godCk7aWYocil7bGV0IG4sdCxvLGksYztpZihyWzFdKXtvPXJbMV07bGV0IGU9by5sYXN0SW5kZXhPZigiLiIpO2lmKCIuIj09PW9bZS0xXSYmZS0tLGU+MCl7bj1vLnNsaWNlKDAsZSksdD1vLnNsaWNlKGUrMSk7Y29uc3Qgcj1uLmluZGV4T2YoIi5Nb2R1bGUiKTtyPjAmJihvPW8uc2xpY2UocisxKSxuPW4uc2xpY2UoMCxyKSl9aT12b2lkIDB9dCYmKGk9bixjPXQpLCI8YW5vbnltb3VzPiI9PT10JiYoYz12b2lkIDAsbz12b2lkIDApLHZvaWQgMD09PW8mJihjPWN8fHMsbz1pP2Ake2l9LiR7Y31gOmMpO2xldCBhPXJbMl0mJnJbMl0uc3RhcnRzV2l0aCgiZmlsZTovLyIpP3JbMl0uc2xpY2UoNyk6clsyXTtjb25zdCB1PSJuYXRpdmUiPT09cls1XTtyZXR1cm4gYSYmYS5tYXRjaCgvXC9bQS1aXTovKSYmKGE9YS5zbGljZSgxKSksYXx8IXJbNV18fHV8fChhPXJbNV0pLHtmaWxlbmFtZTphLG1vZHVsZTplP2UoYSk6dm9pZCAwLGZ1bmN0aW9uOm8sbGluZW5vOnBhcnNlSW50KHJbM10sMTApfHx2b2lkIDAsY29sbm86cGFyc2VJbnQocls0XSwxMCl8fHZvaWQgMCxpbl9hcHA6bChhLHUpfX1pZihvLm1hdGNoKG4pKXJldHVybntmaWxlbmFtZTpvfX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS5yZXBsYWNlKC9eW0EtWl06LywiIikucmVwbGFjZSgvXFwvZywiLyIpfWNvbnN0IGc9bixtPWZ1bmN0aW9uKC4uLmUpe2NvbnN0IG49ZS5zb3J0KCgoZSxuKT0+ZVswXS1uWzBdKSkubWFwKChlPT5lWzFdKSk7cmV0dXJuKGUsdD0wLG89MCk9Pntjb25zdCByPVtdLHU9ZS5zcGxpdCgiXG4iKTtmb3IobGV0IGU9dDtlPHUubGVuZ3RoO2UrKyl7Y29uc3QgdD11W2VdO2lmKHQubGVuZ3RoPjEwMjQpY29udGludWU7Y29uc3Qgcz1jLnRlc3QodCk/dC5yZXBsYWNlKGMsIiQxIik6dDtpZighcy5tYXRjaCgvXFMqRXJyb3I6IC8pKXtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCBuPWUocyk7aWYobil7ci5wdXNoKG4pO2JyZWFrfX1pZihyLmxlbmd0aD49aStvKWJyZWFrfX1yZXR1cm4gZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKXJldHVybltdO2NvbnN0IG49QXJyYXkuZnJvbShlKTsvc2VudHJ5V3JhcHBlZC8udGVzdChuW24ubGVuZ3RoLTFdLmZ1bmN0aW9ufHwiIikmJm4ucG9wKCk7bi5yZXZlcnNlKCksYS50ZXN0KG5bbi5sZW5ndGgtMV0uZnVuY3Rpb258fCIiKSYmKG4ucG9wKCksYS50ZXN0KG5bbi5sZW5ndGgtMV0uZnVuY3Rpb258fCIiKSYmbi5wb3AoKSk7cmV0dXJuIG4uc2xpY2UoMCxpKS5tYXAoKGU9Pih7Li4uZSxmaWxlbmFtZTplLmZpbGVuYW1lfHxuW24ubGVuZ3RoLTFdLmZpbGVuYW1lLGZ1bmN0aW9uOmUuZnVuY3Rpb258fHN9KSkpfShyLnNsaWNlKG8pKX19KFs5MCxkKGZ1bmN0aW9uKGU9KHByb2Nlc3MuYXJndlsxXT9mKHByb2Nlc3MuYXJndlsxXSk6cHJvY2Vzcy5jd2QoKSksbj0iXFwiPT09cil7Y29uc3QgdD1uP3AoZSk6ZTtyZXR1cm4gZT0+e2lmKCFlKXJldHVybjtjb25zdCByPW4/cChlKTplO2xldHtkaXI6aSxiYXNlOnMsZXh0OmN9PW8ucGFyc2Uocik7Ii5qcyIhPT1jJiYiLm1qcyIhPT1jJiYiLmNqcyIhPT1jfHwocz1zLnNsaWNlKDAsLTEqYy5sZW5ndGgpKSxpfHwoaT0iLiIpO2NvbnN0IGE9aS5sYXN0SW5kZXhPZigiL25vZGVfbW9kdWxlcyIpO2lmKGE+LTEpcmV0dXJuYCR7aS5zbGljZShhKzE0KS5yZXBsYWNlKC9cLy9nLCIuIil9OiR7c31gO2lmKGkuc3RhcnRzV2l0aCh0KSl7bGV0IGU9aS5zbGljZSh0Lmxlbmd0aCsxKS5yZXBsYWNlKC9cLy9nLCIuIik7cmV0dXJuIGUmJihlKz0iOiIpLGUrPXMsZX1yZXR1cm4gc319KGcuYmFzZVBhdGgpKV0pO2Z1bmN0aW9uIGIoLi4uZSl7Zy5kZWJ1ZyYmY29uc29sZS5sb2coIltMb2NhbFZhcmlhYmxlcyBXb3JrZXJdIiwuLi5lKX1hc3luYyBmdW5jdGlvbiB2KGUsbix0LG8pe2NvbnN0IHI9YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDpuLG93blByb3BlcnRpZXM6ITB9KTtvW3RdPXIucmVzdWx0LmZpbHRlcigoZT0+Imxlbmd0aCIhPT1lLm5hbWUmJiFpc05hTihwYXJzZUludChlLm5hbWUsMTApKSkpLnNvcnQoKChlLG4pPT5wYXJzZUludChlLm5hbWUsMTApLXBhcnNlSW50KG4ubmFtZSwxMCkpKS5tYXAoKGU9PmUudmFsdWU/LnZhbHVlKSl9YXN5bmMgZnVuY3Rpb24gJChlLG4sdCxvKXtjb25zdCByPWF3YWl0IGUucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIix7b2JqZWN0SWQ6bixvd25Qcm9wZXJ0aWVzOiEwfSk7b1t0XT1yLnJlc3VsdC5tYXAoKGU9PltlLm5hbWUsZS52YWx1ZT8udmFsdWVdKSkucmVkdWNlKCgoZSxbbix0XSk9PihlW25dPXQsZSkpLHt9KX1mdW5jdGlvbiB3KGUsbil7ZS52YWx1ZSYmKCJ2YWx1ZSJpbiBlLnZhbHVlP3ZvaWQgMD09PWUudmFsdWUudmFsdWV8fG51bGw9PT1lLnZhbHVlLnZhbHVlP25bZS5uYW1lXT1gPCR7ZS52YWx1ZS52YWx1ZX0+YDpuW2UubmFtZV09ZS52YWx1ZS52YWx1ZToiZGVzY3JpcHRpb24iaW4gZS52YWx1ZSYmImZ1bmN0aW9uIiE9PWUudmFsdWUudHlwZT9uW2UubmFtZV09YDwke2UudmFsdWUuZGVzY3JpcHRpb259PmA6InVuZGVmaW5lZCI9PT1lLnZhbHVlLnR5cGUmJihuW2UubmFtZV09Ijx1bmRlZmluZWQ+IikpfWFzeW5jIGZ1bmN0aW9uIHkoZSxuKXtjb25zdCB0PWF3YWl0IGUucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIix7b2JqZWN0SWQ6bixvd25Qcm9wZXJ0aWVzOiEwfSksbz17fTtmb3IoY29uc3QgbiBvZiB0LnJlc3VsdClpZihuPy52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT1uPy52YWx1ZS5jbGFzc05hbWUpe2NvbnN0IHQ9bi52YWx1ZS5vYmplY3RJZDthd2FpdCB2KGUsdCxuLm5hbWUsbyl9ZWxzZSBpZihuPy52YWx1ZT8ub2JqZWN0SWQmJiJPYmplY3QiPT09bj8udmFsdWU/LmNsYXNzTmFtZSl7Y29uc3QgdD1uLnZhbHVlLm9iamVjdElkO2F3YWl0ICQoZSx0LG4ubmFtZSxvKX1lbHNlIG4/LnZhbHVlJiZ3KG4sbyk7cmV0dXJuIG99bGV0IGg7KGFzeW5jIGZ1bmN0aW9uKCl7Y29uc3Qgbj1uZXcgZTtuLmNvbm5lY3RUb01haW5UaHJlYWQoKSxiKCJDb25uZWN0ZWQgdG8gbWFpbiB0aHJlYWQiKTtsZXQgbz0hMTtuLm9uKCJEZWJ1Z2dlci5yZXN1bWVkIiwoKCk9PntvPSExfSkpLG4ub24oIkRlYnVnZ2VyLnBhdXNlZCIsKGU9PntvPSEwLGFzeW5jIGZ1bmN0aW9uKGUsbix7cmVhc29uOm8sZGF0YTpyLGNhbGxGcmFtZXM6aX0pe2lmKCJleGNlcHRpb24iIT09byYmInByb21pc2VSZWplY3Rpb24iIT09bylyZXR1cm47aD8uKCk7Y29uc3Qgcz1mdW5jdGlvbihlLG4pe2lmKHZvaWQgMCE9PW4pcmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PWUpcmV0dXJuIGUuc2xpY2UoLTEwKS5yZWR1Y2UoKChlLG4pPT5gJHtlfSwke24uZnVuY3Rpb259LCR7bi5saW5lbm99LCR7bi5jb2xub31gKSwiIil9KGUobiwxKSl9KG4scj8uZGVzY3JpcHRpb24pO2lmKG51bGw9PXMpcmV0dXJuO2NvbnN0IGM9W107Zm9yKGxldCBuPTA7bjxpLmxlbmd0aDtuKyspe2NvbnN0e3Njb3BlQ2hhaW46dCxmdW5jdGlvbk5hbWU6byx0aGlzOnJ9PWlbbl0scz10LmZpbmQoKGU9PiJsb2NhbCI9PT1lLnR5cGUpKSxhPSJnbG9iYWwiIT09ci5jbGFzc05hbWUmJnIuY2xhc3NOYW1lP2Ake3IuY2xhc3NOYW1lfS4ke299YDpvO2lmKHZvaWQgMD09PXM/Lm9iamVjdC5vYmplY3RJZCljW25dPXtmdW5jdGlvbjphfTtlbHNle2NvbnN0IHQ9YXdhaXQgeShlLHMub2JqZWN0Lm9iamVjdElkKTtjW25dPXtmdW5jdGlvbjphLHZhcnM6dH19fXQ/LnBvc3RNZXNzYWdlKHtleGNlcHRpb25IYXNoOnMsZnJhbWVzOmN9KX0obixtLGUucGFyYW1zKS50aGVuKCgoKT0+bz9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOlByb21pc2UucmVzb2x2ZSgpKSwoZT0+e30pKX0pKSxhd2FpdCBuLnBvc3QoIkRlYnVnZ2VyLmVuYWJsZSIpO2NvbnN0IHI9ITEhPT1nLmNhcHR1cmVBbGxFeGNlcHRpb25zO2lmKGF3YWl0IG4ucG9zdCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLHtzdGF0ZTpyPyJhbGwiOiJ1bmNhdWdodCJ9KSxyKXtjb25zdCBlPWcubWF4RXhjZXB0aW9uc1BlclNlY29uZHx8NTA7aD1mdW5jdGlvbihlLG4sdCl7bGV0IG89MCxyPTUsaT0wO3JldHVybiBzZXRJbnRlcnZhbCgoKCk9PnswPT09aT9vPmUmJihyKj0yLHQocikscj44NjQwMCYmKHI9ODY0MDApLGk9cik6KGktPTEsMD09PWkmJm4oKSksbz0wfSksMWUzKS51bnJlZigpLCgpPT57bys9MX19KGUsKGFzeW5jKCk9PntiKCJSYXRlLWxpbWl0IGxpZnRlZC4iKSxhd2FpdCBuLnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6ImFsbCJ9KX0pLChhc3luYyBlPT57YihgUmF0ZS1saW1pdCBleGNlZWRlZC4gRGlzYWJsaW5nIGNhcHR1cmluZyBvZiBjYXVnaHQgZXhjZXB0aW9ucyBmb3IgJHtlfSBzZWNvbmRzLmApLGF3YWl0IG4ucG9zdCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLHtzdGF0ZToidW5jYXVnaHQifSl9KSl9fSkoKS5jYXRjaCgoZT0+e2IoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSksc2V0SW50ZXJ2YWwoKCgpPT57fSksMWU0KTs=';
|
|
14
14
|
|
|
15
15
|
function log(...args) {
|
|
16
16
|
utils.logger.log('[LocalVariables]', ...args);
|
|
@@ -77,7 +77,7 @@ const localVariablesAsyncIntegration = core.defineIntegration(((
|
|
|
77
77
|
|
|
78
78
|
async function startInspector() {
|
|
79
79
|
// We load inspector dynamically because on some platforms Node is built without inspector support
|
|
80
|
-
const inspector = await import('inspector');
|
|
80
|
+
const inspector = await import('node:inspector');
|
|
81
81
|
if (!inspector.url()) {
|
|
82
82
|
inspector.open(0);
|
|
83
83
|
}
|