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
|
@@ -201,6 +201,9 @@ function isPromise(p) {
|
|
|
201
201
|
function isBrowser() {
|
|
202
202
|
return typeof window !== 'undefined';
|
|
203
203
|
}
|
|
204
|
+
function isRequestObject(input) {
|
|
205
|
+
return typeof Request !== 'undefined' && input instanceof Request;
|
|
206
|
+
}
|
|
204
207
|
function redact() {
|
|
205
208
|
return '********';
|
|
206
209
|
}
|
|
@@ -845,6 +848,70 @@ function merge() {
|
|
|
845
848
|
}
|
|
846
849
|
return result;
|
|
847
850
|
}
|
|
851
|
+
function shouldAddBaggageHeader(options, tracing, url) {
|
|
852
|
+
var _options$tracing;
|
|
853
|
+
if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) {
|
|
854
|
+
return false;
|
|
855
|
+
}
|
|
856
|
+
var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation;
|
|
857
|
+
var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders;
|
|
858
|
+
if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) {
|
|
859
|
+
return false;
|
|
860
|
+
}
|
|
861
|
+
var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls;
|
|
862
|
+
if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) {
|
|
863
|
+
return false;
|
|
864
|
+
}
|
|
865
|
+
return enabledCorsUrls.some(function (pattern) {
|
|
866
|
+
if (isType(pattern, 'string')) {
|
|
867
|
+
return url === pattern;
|
|
868
|
+
}
|
|
869
|
+
if (isType(pattern, 'regexp')) {
|
|
870
|
+
return pattern.test(url);
|
|
871
|
+
}
|
|
872
|
+
return false;
|
|
873
|
+
});
|
|
874
|
+
}
|
|
875
|
+
function addHeadersToFetch(args, newHeaders) {
|
|
876
|
+
var _init;
|
|
877
|
+
// Headers may be in the request object or the init object.
|
|
878
|
+
// If present in both places, the init object must be used.
|
|
879
|
+
//
|
|
880
|
+
var init = args[1];
|
|
881
|
+
var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers;
|
|
882
|
+
var reqHeaders = isRequestObject(args[0]) && args[0].headers;
|
|
883
|
+
var headers = initHeaders || reqHeaders;
|
|
884
|
+
|
|
885
|
+
// If headers are not present in either place, they are added to the init object.
|
|
886
|
+
// If there is no init object, one must be created and added to args.
|
|
887
|
+
if (!headers) {
|
|
888
|
+
if (!init) {
|
|
889
|
+
args[1] = init = {};
|
|
890
|
+
}
|
|
891
|
+
headers = init.headers = {};
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
// `headers` may be a Headers object or a plain object.
|
|
895
|
+
if (headers instanceof Headers) {
|
|
896
|
+
for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) {
|
|
897
|
+
var key = _Object$keys[_i];
|
|
898
|
+
headers.append(key, newHeaders[key]);
|
|
899
|
+
}
|
|
900
|
+
} else if (isObject(headers)) {
|
|
901
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) {
|
|
902
|
+
var _key = _Object$keys2[_i2];
|
|
903
|
+
headers[_key] = newHeaders[_key];
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
function getSessionIdFromAsyncLocalStorage(client) {
|
|
908
|
+
var storage = client.asyncLocalStorage;
|
|
909
|
+
if (!storage || typeof storage.getStore !== 'function') {
|
|
910
|
+
return null;
|
|
911
|
+
}
|
|
912
|
+
var store = storage.getStore();
|
|
913
|
+
return (store === null || store === void 0 ? void 0 : store.sessionId) || null;
|
|
914
|
+
}
|
|
848
915
|
|
|
849
916
|
;// ./src/utility/traverse.js
|
|
850
917
|
|
|
@@ -2994,7 +3061,7 @@ function _getOTLPTransport(options, url) {
|
|
|
2994
3061
|
/**
|
|
2995
3062
|
* Default options shared across platforms
|
|
2996
3063
|
*/
|
|
2997
|
-
var version = '3.
|
|
3064
|
+
var version = '3.1.0';
|
|
2998
3065
|
var endpoint = 'api.rollbar.com/api/1/item/';
|
|
2999
3066
|
var logLevel = 'debug';
|
|
3000
3067
|
var reportLevel = 'debug';
|
|
@@ -4257,9 +4324,11 @@ Rollbar.prototype._log = function (defaultLevel, item) {
|
|
|
4257
4324
|
Rollbar.prototype._addItemAttributes = function (item) {
|
|
4258
4325
|
var _this$tracing, _this$tracing2;
|
|
4259
4326
|
var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan();
|
|
4327
|
+
var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this);
|
|
4328
|
+
var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId);
|
|
4260
4329
|
var attributes = [{
|
|
4261
4330
|
key: 'session_id',
|
|
4262
|
-
value:
|
|
4331
|
+
value: sessionId
|
|
4263
4332
|
}, {
|
|
4264
4333
|
key: 'span_id',
|
|
4265
4334
|
value: span === null || span === void 0 ? void 0 : span.spanId
|
|
@@ -22521,7 +22590,16 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
22521
22590
|
}, this.replacements, 'network');
|
|
22522
22591
|
utility_replace(xhrp, 'send', function (orig) {
|
|
22523
22592
|
return function (data) {
|
|
22593
|
+
var _self$rollbar, _xhr$__rollbar_xhr;
|
|
22524
22594
|
var xhr = this;
|
|
22595
|
+
var tracing = (_self$rollbar = self.rollbar) === null || _self$rollbar === void 0 ? void 0 : _self$rollbar.tracing;
|
|
22596
|
+
if (shouldAddBaggageHeader(self.options, tracing, (_xhr$__rollbar_xhr = xhr.__rollbar_xhr) === null || _xhr$__rollbar_xhr === void 0 ? void 0 : _xhr$__rollbar_xhr.url)) {
|
|
22597
|
+
try {
|
|
22598
|
+
xhr.setRequestHeader('baggage', "rollbar.session.id=".concat(tracing.sessionId));
|
|
22599
|
+
} catch (_e) {
|
|
22600
|
+
/* ignore errors from adding baggage header */
|
|
22601
|
+
}
|
|
22602
|
+
}
|
|
22525
22603
|
function onreadystatechangeHandler() {
|
|
22526
22604
|
if (xhr.__rollbar_xhr) {
|
|
22527
22605
|
if (xhr.__rollbar_xhr.status_code === null) {
|
|
@@ -22642,6 +22720,7 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
22642
22720
|
if ('fetch' in this._window) {
|
|
22643
22721
|
utility_replace(this._window, 'fetch', function (orig) {
|
|
22644
22722
|
return function (_fn, _t) {
|
|
22723
|
+
var _self$rollbar2;
|
|
22645
22724
|
var args = Array.prototype.slice.call(arguments);
|
|
22646
22725
|
var input = args[0];
|
|
22647
22726
|
var method = 'GET';
|
|
@@ -22658,6 +22737,13 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
22658
22737
|
if (args[1] && args[1].method) {
|
|
22659
22738
|
method = args[1].method;
|
|
22660
22739
|
}
|
|
22740
|
+
var tracing = (_self$rollbar2 = self.rollbar) === null || _self$rollbar2 === void 0 ? void 0 : _self$rollbar2.tracing;
|
|
22741
|
+
if (shouldAddBaggageHeader(self.options, tracing, url)) {
|
|
22742
|
+
var _headers2 = {
|
|
22743
|
+
baggage: "rollbar.session.id=".concat(tracing.sessionId)
|
|
22744
|
+
};
|
|
22745
|
+
addHeadersToFetch(args, _headers2);
|
|
22746
|
+
}
|
|
22661
22747
|
var metadata = {
|
|
22662
22748
|
method: method,
|
|
22663
22749
|
url: url,
|