rollbar 3.0.0 → 3.1.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/dist/rollbar.cjs +260 -3
- package/dist/rollbar.js +88 -2
- package/dist/rollbar.js.map +1 -1
- package/dist/rollbar.min.cjs +1 -1
- package/dist/rollbar.min.js +1 -1
- package/dist/rollbar.min.js.map +1 -1
- package/dist/rollbar.named-amd.js +88 -2
- package/dist/rollbar.named-amd.js.map +1 -1
- package/dist/rollbar.named-amd.min.js +1 -1
- package/dist/rollbar.named-amd.min.js.map +1 -1
- package/dist/rollbar.noconflict.umd.js +88 -2
- package/dist/rollbar.noconflict.umd.js.map +1 -1
- package/dist/rollbar.noconflict.umd.min.js +1 -1
- package/dist/rollbar.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.replay.js +88 -2
- package/dist/rollbar.replay.js.map +1 -1
- package/dist/rollbar.replay.min.js +1 -1
- package/dist/rollbar.replay.min.js.map +1 -1
- package/dist/rollbar.replay.noconflict.umd.js +88 -2
- package/dist/rollbar.replay.noconflict.umd.js.map +1 -1
- package/dist/rollbar.replay.noconflict.umd.min.js +1 -1
- package/dist/rollbar.replay.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.replay.umd.js +88 -2
- package/dist/rollbar.replay.umd.js.map +1 -1
- package/dist/rollbar.replay.umd.min.js +1 -1
- package/dist/rollbar.replay.umd.min.js.map +1 -1
- package/dist/rollbar.snippet.js +1 -1
- package/dist/rollbar.umd.js +88 -2
- package/dist/rollbar.umd.js.map +1 -1
- package/dist/rollbar.umd.min.js +1 -1
- package/dist/rollbar.umd.min.js.map +1 -1
- package/index.d.ts +15 -0
- package/package.json +2 -1
- package/src/browser/telemetry.js +25 -0
- package/src/defaults.js +1 -1
- package/src/rollbar.js +3 -1
- package/src/server/middleware/rollbarExpressMiddleware.js +63 -0
- package/src/server/rollbar.js +13 -0
- package/src/server/telemetry.js +120 -1
- package/src/utility.js +70 -0
package/dist/rollbar.cjs
CHANGED
|
@@ -181,6 +181,9 @@ function isPromise(p) {
|
|
|
181
181
|
function isBrowser() {
|
|
182
182
|
return typeof window !== 'undefined';
|
|
183
183
|
}
|
|
184
|
+
function isRequestObject(input) {
|
|
185
|
+
return typeof Request !== 'undefined' && input instanceof Request;
|
|
186
|
+
}
|
|
184
187
|
function redact() {
|
|
185
188
|
return '********';
|
|
186
189
|
}
|
|
@@ -825,6 +828,70 @@ function merge() {
|
|
|
825
828
|
}
|
|
826
829
|
return result;
|
|
827
830
|
}
|
|
831
|
+
function shouldAddBaggageHeader(options, tracing, url) {
|
|
832
|
+
var _options$tracing;
|
|
833
|
+
if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) {
|
|
834
|
+
return false;
|
|
835
|
+
}
|
|
836
|
+
var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation;
|
|
837
|
+
var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders;
|
|
838
|
+
if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) {
|
|
839
|
+
return false;
|
|
840
|
+
}
|
|
841
|
+
var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls;
|
|
842
|
+
if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) {
|
|
843
|
+
return false;
|
|
844
|
+
}
|
|
845
|
+
return enabledCorsUrls.some(function (pattern) {
|
|
846
|
+
if (isType(pattern, 'string')) {
|
|
847
|
+
return url === pattern;
|
|
848
|
+
}
|
|
849
|
+
if (isType(pattern, 'regexp')) {
|
|
850
|
+
return pattern.test(url);
|
|
851
|
+
}
|
|
852
|
+
return false;
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
function addHeadersToFetch(args, newHeaders) {
|
|
856
|
+
var _init;
|
|
857
|
+
// Headers may be in the request object or the init object.
|
|
858
|
+
// If present in both places, the init object must be used.
|
|
859
|
+
//
|
|
860
|
+
var init = args[1];
|
|
861
|
+
var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers;
|
|
862
|
+
var reqHeaders = isRequestObject(args[0]) && args[0].headers;
|
|
863
|
+
var headers = initHeaders || reqHeaders;
|
|
864
|
+
|
|
865
|
+
// If headers are not present in either place, they are added to the init object.
|
|
866
|
+
// If there is no init object, one must be created and added to args.
|
|
867
|
+
if (!headers) {
|
|
868
|
+
if (!init) {
|
|
869
|
+
args[1] = init = {};
|
|
870
|
+
}
|
|
871
|
+
headers = init.headers = {};
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
// `headers` may be a Headers object or a plain object.
|
|
875
|
+
if (headers instanceof Headers) {
|
|
876
|
+
for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) {
|
|
877
|
+
var key = _Object$keys[_i];
|
|
878
|
+
headers.append(key, newHeaders[key]);
|
|
879
|
+
}
|
|
880
|
+
} else if (isObject(headers)) {
|
|
881
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) {
|
|
882
|
+
var _key = _Object$keys2[_i2];
|
|
883
|
+
headers[_key] = newHeaders[_key];
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
function getSessionIdFromAsyncLocalStorage(client) {
|
|
888
|
+
var storage = client.asyncLocalStorage;
|
|
889
|
+
if (!storage || typeof storage.getStore !== 'function') {
|
|
890
|
+
return null;
|
|
891
|
+
}
|
|
892
|
+
var store = storage.getStore();
|
|
893
|
+
return (store === null || store === void 0 ? void 0 : store.sessionId) || null;
|
|
894
|
+
}
|
|
828
895
|
|
|
829
896
|
;// ./src/apiUtility.js
|
|
830
897
|
|
|
@@ -1130,7 +1197,7 @@ function _getOTLPTransport(options, url) {
|
|
|
1130
1197
|
/**
|
|
1131
1198
|
* Default options shared across platforms
|
|
1132
1199
|
*/
|
|
1133
|
-
var version = '3.
|
|
1200
|
+
var version = '3.1.0';
|
|
1134
1201
|
var endpoint = 'api.rollbar.com/api/1/item/';
|
|
1135
1202
|
var logLevel = 'debug';
|
|
1136
1203
|
var reportLevel = 'debug';
|
|
@@ -2167,9 +2234,11 @@ Rollbar.prototype._log = function (defaultLevel, item) {
|
|
|
2167
2234
|
Rollbar.prototype._addItemAttributes = function (item) {
|
|
2168
2235
|
var _this$tracing, _this$tracing2;
|
|
2169
2236
|
var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan();
|
|
2237
|
+
var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this);
|
|
2238
|
+
var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId);
|
|
2170
2239
|
var attributes = [{
|
|
2171
2240
|
key: 'session_id',
|
|
2172
|
-
value:
|
|
2241
|
+
value: sessionId
|
|
2173
2242
|
}, {
|
|
2174
2243
|
key: 'span_id',
|
|
2175
2244
|
value: span === null || span === void 0 ? void 0 : span.spanId
|
|
@@ -3098,6 +3167,83 @@ function defaults_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r
|
|
|
3098
3167
|
var notifierName = 'node_rollbar';
|
|
3099
3168
|
var scrubHeaders = commonScrubHeaders;
|
|
3100
3169
|
var scrubFields = [].concat(_toConsumableArray(commonScrubFields), _toConsumableArray(apiScrubFields), _toConsumableArray(requestScrubFields));
|
|
3170
|
+
;// external "node:async_hooks"
|
|
3171
|
+
const external_node_async_hooks_namespaceObject = require("node:async_hooks");
|
|
3172
|
+
;// ./src/server/middleware/rollbarExpressMiddleware.js
|
|
3173
|
+
function rollbarExpressMiddleware_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = rollbarExpressMiddleware_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
3174
|
+
function rollbarExpressMiddleware_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return rollbarExpressMiddleware_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? rollbarExpressMiddleware_arrayLikeToArray(r, a) : void 0; } }
|
|
3175
|
+
function rollbarExpressMiddleware_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
3176
|
+
|
|
3177
|
+
function extractSessionId(headerValue) {
|
|
3178
|
+
if (!headerValue) {
|
|
3179
|
+
return null;
|
|
3180
|
+
}
|
|
3181
|
+
var rawValue = Array.isArray(headerValue) ? headerValue.join(',') : headerValue;
|
|
3182
|
+
if (typeof rawValue !== 'string') {
|
|
3183
|
+
return null;
|
|
3184
|
+
}
|
|
3185
|
+
var entries = rawValue.split(',');
|
|
3186
|
+
var _iterator = rollbarExpressMiddleware_createForOfIteratorHelper(entries),
|
|
3187
|
+
_step;
|
|
3188
|
+
try {
|
|
3189
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
3190
|
+
var entry = _step.value;
|
|
3191
|
+
var trimmed = entry.trim();
|
|
3192
|
+
if (!trimmed) {
|
|
3193
|
+
continue;
|
|
3194
|
+
}
|
|
3195
|
+
var equalsIndex = trimmed.indexOf('=');
|
|
3196
|
+
if (equalsIndex === -1) {
|
|
3197
|
+
continue;
|
|
3198
|
+
}
|
|
3199
|
+
var key = trimmed.slice(0, equalsIndex).trim();
|
|
3200
|
+
if (key !== 'rollbar.session.id') {
|
|
3201
|
+
continue;
|
|
3202
|
+
}
|
|
3203
|
+
var value = trimmed.slice(equalsIndex + 1).trim();
|
|
3204
|
+
if (!value) {
|
|
3205
|
+
return null;
|
|
3206
|
+
}
|
|
3207
|
+
try {
|
|
3208
|
+
return decodeURIComponent(value);
|
|
3209
|
+
} catch (_e) {
|
|
3210
|
+
return value;
|
|
3211
|
+
}
|
|
3212
|
+
}
|
|
3213
|
+
} catch (err) {
|
|
3214
|
+
_iterator.e(err);
|
|
3215
|
+
} finally {
|
|
3216
|
+
_iterator.f();
|
|
3217
|
+
}
|
|
3218
|
+
return null;
|
|
3219
|
+
}
|
|
3220
|
+
function getBaggageHeader(req) {
|
|
3221
|
+
var _req$headers;
|
|
3222
|
+
if (!req) {
|
|
3223
|
+
return null;
|
|
3224
|
+
}
|
|
3225
|
+
if (typeof req.get === 'function') {
|
|
3226
|
+
return req.get('baggage');
|
|
3227
|
+
}
|
|
3228
|
+
return ((_req$headers = req.headers) === null || _req$headers === void 0 ? void 0 : _req$headers.baggage) || null;
|
|
3229
|
+
}
|
|
3230
|
+
function rollbarExpressMiddleware(rollbar) {
|
|
3231
|
+
var storage = (rollbar === null || rollbar === void 0 ? void 0 : rollbar.client.asyncLocalStorage) || new external_node_async_hooks_namespaceObject.AsyncLocalStorage();
|
|
3232
|
+
if (rollbar) {
|
|
3233
|
+
rollbar.client.asyncLocalStorage = storage;
|
|
3234
|
+
}
|
|
3235
|
+
return function rollbarExpressMiddlewareHandler(req, _res, next) {
|
|
3236
|
+
var sessionId = extractSessionId(getBaggageHeader(req));
|
|
3237
|
+
if (!sessionId) {
|
|
3238
|
+
return next();
|
|
3239
|
+
}
|
|
3240
|
+
return storage.run({
|
|
3241
|
+
sessionId: sessionId
|
|
3242
|
+
}, function () {
|
|
3243
|
+
return next();
|
|
3244
|
+
});
|
|
3245
|
+
};
|
|
3246
|
+
}
|
|
3101
3247
|
;// external "http"
|
|
3102
3248
|
const external_http_namespaceObject = require("http");
|
|
3103
3249
|
;// external "https"
|
|
@@ -3246,6 +3392,9 @@ Instrumenter.prototype.deinstrumentNetwork = function () {
|
|
|
3246
3392
|
Instrumenter.prototype.instrumentNetwork = function () {
|
|
3247
3393
|
utility_replace(external_http_namespaceObject, 'request', networkRequestWrapper.bind(this), this.replacements, 'network');
|
|
3248
3394
|
utility_replace(external_https_namespaceObject, 'request', networkRequestWrapper.bind(this), this.replacements, 'network');
|
|
3395
|
+
if (typeof globalThis.fetch === 'function') {
|
|
3396
|
+
utility_replace(globalThis, 'fetch', fetchRequestWrapper.bind(this), this.replacements, 'network');
|
|
3397
|
+
}
|
|
3249
3398
|
};
|
|
3250
3399
|
function networkRequestWrapper(orig) {
|
|
3251
3400
|
var _this = this;
|
|
@@ -3258,9 +3407,19 @@ function networkRequestWrapper(orig) {
|
|
|
3258
3407
|
options = args[1],
|
|
3259
3408
|
cb = args[2];
|
|
3260
3409
|
var mergedOptions = mergeOptions(url, options, cb);
|
|
3410
|
+
var requestUrl = constructUrl(mergedOptions.options);
|
|
3411
|
+
var sessionId = getSessionIdFromAsyncLocalStorage(_this.rollbar.client);
|
|
3412
|
+
if (sessionId && shouldAddBaggageHeader(_this.options, {
|
|
3413
|
+
sessionId: sessionId
|
|
3414
|
+
}, requestUrl)) {
|
|
3415
|
+
if (!mergedOptions.options.headers) {
|
|
3416
|
+
mergedOptions.options.headers = {};
|
|
3417
|
+
}
|
|
3418
|
+
mergedOptions.options.headers.baggage = "rollbar.session.id=".concat(sessionId);
|
|
3419
|
+
}
|
|
3261
3420
|
var metadata = {
|
|
3262
3421
|
method: mergedOptions.options.method || 'GET',
|
|
3263
|
-
url:
|
|
3422
|
+
url: requestUrl,
|
|
3264
3423
|
status_code: null,
|
|
3265
3424
|
start_time_ms: now(),
|
|
3266
3425
|
end_time_ms: null
|
|
@@ -3295,6 +3454,93 @@ function responseCallbackWrapper(options, metadata, callback) {
|
|
|
3295
3454
|
}
|
|
3296
3455
|
};
|
|
3297
3456
|
}
|
|
3457
|
+
function fetchRequestWrapper(orig) {
|
|
3458
|
+
var _this2 = this;
|
|
3459
|
+
var telemeter = this.telemeter;
|
|
3460
|
+
return function () {
|
|
3461
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
3462
|
+
args[_key2] = arguments[_key2];
|
|
3463
|
+
}
|
|
3464
|
+
var input = args[0];
|
|
3465
|
+
var init = args[1];
|
|
3466
|
+
var method = 'GET';
|
|
3467
|
+
var url;
|
|
3468
|
+
var sessionId = getSessionIdFromAsyncLocalStorage(_this2.rollbar.client);
|
|
3469
|
+
if (isType(input, 'string') || input instanceof URL) {
|
|
3470
|
+
url = input.toString();
|
|
3471
|
+
} else if (input) {
|
|
3472
|
+
url = input.url;
|
|
3473
|
+
if (input.method) {
|
|
3474
|
+
method = input.method;
|
|
3475
|
+
}
|
|
3476
|
+
}
|
|
3477
|
+
if (init && init.method) {
|
|
3478
|
+
method = init.method;
|
|
3479
|
+
}
|
|
3480
|
+
if (sessionId && shouldAddBaggageHeader(_this2.options, {
|
|
3481
|
+
sessionId: sessionId
|
|
3482
|
+
}, url)) {
|
|
3483
|
+
var headers = {
|
|
3484
|
+
baggage: "rollbar.session.id=".concat(sessionId)
|
|
3485
|
+
};
|
|
3486
|
+
addHeadersToFetch(args, headers);
|
|
3487
|
+
}
|
|
3488
|
+
var metadata = {
|
|
3489
|
+
method: method,
|
|
3490
|
+
url: url,
|
|
3491
|
+
status_code: null,
|
|
3492
|
+
start_time_ms: now(),
|
|
3493
|
+
end_time_ms: null
|
|
3494
|
+
};
|
|
3495
|
+
if (_this2.autoInstrument.networkRequestHeaders) {
|
|
3496
|
+
var requestHeaders = normalizeFetchHeaders(init && init.headers ? init.headers : input && input.headers);
|
|
3497
|
+
if (requestHeaders) {
|
|
3498
|
+
metadata.request_headers = requestHeaders;
|
|
3499
|
+
}
|
|
3500
|
+
}
|
|
3501
|
+
telemeter.captureNetwork(metadata, 'fetch');
|
|
3502
|
+
return orig.apply(globalThis, args).then(function (res) {
|
|
3503
|
+
metadata.end_time_ms = now();
|
|
3504
|
+
metadata.status_code = res.status;
|
|
3505
|
+
if (_this2.autoInstrument.networkResponseHeaders) {
|
|
3506
|
+
var responseHeaders = normalizeFetchHeaders(res.headers);
|
|
3507
|
+
if (responseHeaders) {
|
|
3508
|
+
metadata.response = metadata.response || {};
|
|
3509
|
+
metadata.response.headers = responseHeaders;
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3512
|
+
return res;
|
|
3513
|
+
}, function (err) {
|
|
3514
|
+
metadata.end_time_ms = now();
|
|
3515
|
+
metadata.status_code = 0;
|
|
3516
|
+
metadata.error = [err.name, err.message].join(': ');
|
|
3517
|
+
throw err;
|
|
3518
|
+
});
|
|
3519
|
+
};
|
|
3520
|
+
}
|
|
3521
|
+
function normalizeFetchHeaders(headers) {
|
|
3522
|
+
if (!headers) return null;
|
|
3523
|
+
if (typeof headers.forEach === 'function') {
|
|
3524
|
+
var normalized = {};
|
|
3525
|
+
headers.forEach(function (value, key) {
|
|
3526
|
+
normalized[key] = value;
|
|
3527
|
+
});
|
|
3528
|
+
return normalized;
|
|
3529
|
+
}
|
|
3530
|
+
if (Array.isArray(headers)) {
|
|
3531
|
+
var _normalized = {};
|
|
3532
|
+
headers.forEach(function (pair) {
|
|
3533
|
+
if (pair && pair.length > 1) {
|
|
3534
|
+
_normalized[pair[0]] = pair[1];
|
|
3535
|
+
}
|
|
3536
|
+
});
|
|
3537
|
+
return _normalized;
|
|
3538
|
+
}
|
|
3539
|
+
if (isType(headers, 'object')) {
|
|
3540
|
+
return headers;
|
|
3541
|
+
}
|
|
3542
|
+
return null;
|
|
3543
|
+
}
|
|
3298
3544
|
Instrumenter.prototype.captureNetwork = function (metadata, subtype, rollbarUUID) {
|
|
3299
3545
|
return this.telemeter.captureNetwork(metadata, subtype, rollbarUUID);
|
|
3300
3546
|
};
|
|
@@ -4434,6 +4680,7 @@ function _currentTime() {
|
|
|
4434
4680
|
|
|
4435
4681
|
|
|
4436
4682
|
|
|
4683
|
+
|
|
4437
4684
|
function rollbar_Rollbar(options, client) {
|
|
4438
4685
|
if (isType(options, 'string')) {
|
|
4439
4686
|
var accessToken = options;
|
|
@@ -4839,6 +5086,16 @@ rollbar_Rollbar.wrapCallback = function (f) {
|
|
|
4839
5086
|
handleUninitialized();
|
|
4840
5087
|
}
|
|
4841
5088
|
};
|
|
5089
|
+
rollbar_Rollbar.prototype.expressMiddleware = function () {
|
|
5090
|
+
return rollbarExpressMiddleware(this);
|
|
5091
|
+
};
|
|
5092
|
+
rollbar_Rollbar.expressMiddleware = function () {
|
|
5093
|
+
if (_instance) {
|
|
5094
|
+
return rollbarExpressMiddleware(_instance);
|
|
5095
|
+
}
|
|
5096
|
+
handleUninitialized();
|
|
5097
|
+
return undefined;
|
|
5098
|
+
};
|
|
4842
5099
|
rollbar_Rollbar.prototype.captureEvent = function () {
|
|
4843
5100
|
var event = createTelemetryEvent(arguments);
|
|
4844
5101
|
return this.client.captureEvent(event.type, event.metadata, event.level);
|
package/dist/rollbar.js
CHANGED
|
@@ -187,6 +187,9 @@ function isPromise(p) {
|
|
|
187
187
|
function isBrowser() {
|
|
188
188
|
return typeof window !== 'undefined';
|
|
189
189
|
}
|
|
190
|
+
function isRequestObject(input) {
|
|
191
|
+
return typeof Request !== 'undefined' && input instanceof Request;
|
|
192
|
+
}
|
|
190
193
|
function redact() {
|
|
191
194
|
return '********';
|
|
192
195
|
}
|
|
@@ -831,6 +834,70 @@ function merge() {
|
|
|
831
834
|
}
|
|
832
835
|
return result;
|
|
833
836
|
}
|
|
837
|
+
function shouldAddBaggageHeader(options, tracing, url) {
|
|
838
|
+
var _options$tracing;
|
|
839
|
+
if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) {
|
|
840
|
+
return false;
|
|
841
|
+
}
|
|
842
|
+
var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation;
|
|
843
|
+
var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders;
|
|
844
|
+
if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) {
|
|
845
|
+
return false;
|
|
846
|
+
}
|
|
847
|
+
var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls;
|
|
848
|
+
if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) {
|
|
849
|
+
return false;
|
|
850
|
+
}
|
|
851
|
+
return enabledCorsUrls.some(function (pattern) {
|
|
852
|
+
if (isType(pattern, 'string')) {
|
|
853
|
+
return url === pattern;
|
|
854
|
+
}
|
|
855
|
+
if (isType(pattern, 'regexp')) {
|
|
856
|
+
return pattern.test(url);
|
|
857
|
+
}
|
|
858
|
+
return false;
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
function addHeadersToFetch(args, newHeaders) {
|
|
862
|
+
var _init;
|
|
863
|
+
// Headers may be in the request object or the init object.
|
|
864
|
+
// If present in both places, the init object must be used.
|
|
865
|
+
//
|
|
866
|
+
var init = args[1];
|
|
867
|
+
var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers;
|
|
868
|
+
var reqHeaders = isRequestObject(args[0]) && args[0].headers;
|
|
869
|
+
var headers = initHeaders || reqHeaders;
|
|
870
|
+
|
|
871
|
+
// If headers are not present in either place, they are added to the init object.
|
|
872
|
+
// If there is no init object, one must be created and added to args.
|
|
873
|
+
if (!headers) {
|
|
874
|
+
if (!init) {
|
|
875
|
+
args[1] = init = {};
|
|
876
|
+
}
|
|
877
|
+
headers = init.headers = {};
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
// `headers` may be a Headers object or a plain object.
|
|
881
|
+
if (headers instanceof Headers) {
|
|
882
|
+
for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) {
|
|
883
|
+
var key = _Object$keys[_i];
|
|
884
|
+
headers.append(key, newHeaders[key]);
|
|
885
|
+
}
|
|
886
|
+
} else if (isObject(headers)) {
|
|
887
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) {
|
|
888
|
+
var _key = _Object$keys2[_i2];
|
|
889
|
+
headers[_key] = newHeaders[_key];
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
function getSessionIdFromAsyncLocalStorage(client) {
|
|
894
|
+
var storage = client.asyncLocalStorage;
|
|
895
|
+
if (!storage || typeof storage.getStore !== 'function') {
|
|
896
|
+
return null;
|
|
897
|
+
}
|
|
898
|
+
var store = storage.getStore();
|
|
899
|
+
return (store === null || store === void 0 ? void 0 : store.sessionId) || null;
|
|
900
|
+
}
|
|
834
901
|
|
|
835
902
|
;// ./src/utility/traverse.js
|
|
836
903
|
|
|
@@ -2980,7 +3047,7 @@ function _getOTLPTransport(options, url) {
|
|
|
2980
3047
|
/**
|
|
2981
3048
|
* Default options shared across platforms
|
|
2982
3049
|
*/
|
|
2983
|
-
var version = '3.
|
|
3050
|
+
var version = '3.1.0';
|
|
2984
3051
|
var endpoint = 'api.rollbar.com/api/1/item/';
|
|
2985
3052
|
var logLevel = 'debug';
|
|
2986
3053
|
var reportLevel = 'debug';
|
|
@@ -4243,9 +4310,11 @@ Rollbar.prototype._log = function (defaultLevel, item) {
|
|
|
4243
4310
|
Rollbar.prototype._addItemAttributes = function (item) {
|
|
4244
4311
|
var _this$tracing, _this$tracing2;
|
|
4245
4312
|
var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan();
|
|
4313
|
+
var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this);
|
|
4314
|
+
var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId);
|
|
4246
4315
|
var attributes = [{
|
|
4247
4316
|
key: 'session_id',
|
|
4248
|
-
value:
|
|
4317
|
+
value: sessionId
|
|
4249
4318
|
}, {
|
|
4250
4319
|
key: 'span_id',
|
|
4251
4320
|
value: span === null || span === void 0 ? void 0 : span.spanId
|
|
@@ -6633,7 +6702,16 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
6633
6702
|
}, this.replacements, 'network');
|
|
6634
6703
|
utility_replace(xhrp, 'send', function (orig) {
|
|
6635
6704
|
return function (data) {
|
|
6705
|
+
var _self$rollbar, _xhr$__rollbar_xhr;
|
|
6636
6706
|
var xhr = this;
|
|
6707
|
+
var tracing = (_self$rollbar = self.rollbar) === null || _self$rollbar === void 0 ? void 0 : _self$rollbar.tracing;
|
|
6708
|
+
if (shouldAddBaggageHeader(self.options, tracing, (_xhr$__rollbar_xhr = xhr.__rollbar_xhr) === null || _xhr$__rollbar_xhr === void 0 ? void 0 : _xhr$__rollbar_xhr.url)) {
|
|
6709
|
+
try {
|
|
6710
|
+
xhr.setRequestHeader('baggage', "rollbar.session.id=".concat(tracing.sessionId));
|
|
6711
|
+
} catch (_e) {
|
|
6712
|
+
/* ignore errors from adding baggage header */
|
|
6713
|
+
}
|
|
6714
|
+
}
|
|
6637
6715
|
function onreadystatechangeHandler() {
|
|
6638
6716
|
if (xhr.__rollbar_xhr) {
|
|
6639
6717
|
if (xhr.__rollbar_xhr.status_code === null) {
|
|
@@ -6754,6 +6832,7 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
6754
6832
|
if ('fetch' in this._window) {
|
|
6755
6833
|
utility_replace(this._window, 'fetch', function (orig) {
|
|
6756
6834
|
return function (_fn, _t) {
|
|
6835
|
+
var _self$rollbar2;
|
|
6757
6836
|
var args = Array.prototype.slice.call(arguments);
|
|
6758
6837
|
var input = args[0];
|
|
6759
6838
|
var method = 'GET';
|
|
@@ -6770,6 +6849,13 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
6770
6849
|
if (args[1] && args[1].method) {
|
|
6771
6850
|
method = args[1].method;
|
|
6772
6851
|
}
|
|
6852
|
+
var tracing = (_self$rollbar2 = self.rollbar) === null || _self$rollbar2 === void 0 ? void 0 : _self$rollbar2.tracing;
|
|
6853
|
+
if (shouldAddBaggageHeader(self.options, tracing, url)) {
|
|
6854
|
+
var _headers2 = {
|
|
6855
|
+
baggage: "rollbar.session.id=".concat(tracing.sessionId)
|
|
6856
|
+
};
|
|
6857
|
+
addHeadersToFetch(args, _headers2);
|
|
6858
|
+
}
|
|
6773
6859
|
var metadata = {
|
|
6774
6860
|
method: method,
|
|
6775
6861
|
url: url,
|