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
|
@@ -191,6 +191,9 @@ function isPromise(p) {
|
|
|
191
191
|
function isBrowser() {
|
|
192
192
|
return typeof window !== 'undefined';
|
|
193
193
|
}
|
|
194
|
+
function isRequestObject(input) {
|
|
195
|
+
return typeof Request !== 'undefined' && input instanceof Request;
|
|
196
|
+
}
|
|
194
197
|
function redact() {
|
|
195
198
|
return '********';
|
|
196
199
|
}
|
|
@@ -835,6 +838,70 @@ function merge() {
|
|
|
835
838
|
}
|
|
836
839
|
return result;
|
|
837
840
|
}
|
|
841
|
+
function shouldAddBaggageHeader(options, tracing, url) {
|
|
842
|
+
var _options$tracing;
|
|
843
|
+
if (!(tracing !== null && tracing !== void 0 && tracing.sessionId) || !url) {
|
|
844
|
+
return false;
|
|
845
|
+
}
|
|
846
|
+
var propagation = options === null || options === void 0 || (_options$tracing = options.tracing) === null || _options$tracing === void 0 ? void 0 : _options$tracing.propagation;
|
|
847
|
+
var enabledHeaders = propagation === null || propagation === void 0 ? void 0 : propagation.enabledHeaders;
|
|
848
|
+
if (!Array.isArray(enabledHeaders) || !enabledHeaders.includes('baggage')) {
|
|
849
|
+
return false;
|
|
850
|
+
}
|
|
851
|
+
var enabledCorsUrls = propagation === null || propagation === void 0 ? void 0 : propagation.enabledCorsUrls;
|
|
852
|
+
if (!Array.isArray(enabledCorsUrls) || enabledCorsUrls.length === 0) {
|
|
853
|
+
return false;
|
|
854
|
+
}
|
|
855
|
+
return enabledCorsUrls.some(function (pattern) {
|
|
856
|
+
if (isType(pattern, 'string')) {
|
|
857
|
+
return url === pattern;
|
|
858
|
+
}
|
|
859
|
+
if (isType(pattern, 'regexp')) {
|
|
860
|
+
return pattern.test(url);
|
|
861
|
+
}
|
|
862
|
+
return false;
|
|
863
|
+
});
|
|
864
|
+
}
|
|
865
|
+
function addHeadersToFetch(args, newHeaders) {
|
|
866
|
+
var _init;
|
|
867
|
+
// Headers may be in the request object or the init object.
|
|
868
|
+
// If present in both places, the init object must be used.
|
|
869
|
+
//
|
|
870
|
+
var init = args[1];
|
|
871
|
+
var initHeaders = (_init = init) === null || _init === void 0 ? void 0 : _init.headers;
|
|
872
|
+
var reqHeaders = isRequestObject(args[0]) && args[0].headers;
|
|
873
|
+
var headers = initHeaders || reqHeaders;
|
|
874
|
+
|
|
875
|
+
// If headers are not present in either place, they are added to the init object.
|
|
876
|
+
// If there is no init object, one must be created and added to args.
|
|
877
|
+
if (!headers) {
|
|
878
|
+
if (!init) {
|
|
879
|
+
args[1] = init = {};
|
|
880
|
+
}
|
|
881
|
+
headers = init.headers = {};
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
// `headers` may be a Headers object or a plain object.
|
|
885
|
+
if (headers instanceof Headers) {
|
|
886
|
+
for (var _i = 0, _Object$keys = Object.keys(newHeaders); _i < _Object$keys.length; _i++) {
|
|
887
|
+
var key = _Object$keys[_i];
|
|
888
|
+
headers.append(key, newHeaders[key]);
|
|
889
|
+
}
|
|
890
|
+
} else if (isObject(headers)) {
|
|
891
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(newHeaders); _i2 < _Object$keys2.length; _i2++) {
|
|
892
|
+
var _key = _Object$keys2[_i2];
|
|
893
|
+
headers[_key] = newHeaders[_key];
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
function getSessionIdFromAsyncLocalStorage(client) {
|
|
898
|
+
var storage = client.asyncLocalStorage;
|
|
899
|
+
if (!storage || typeof storage.getStore !== 'function') {
|
|
900
|
+
return null;
|
|
901
|
+
}
|
|
902
|
+
var store = storage.getStore();
|
|
903
|
+
return (store === null || store === void 0 ? void 0 : store.sessionId) || null;
|
|
904
|
+
}
|
|
838
905
|
|
|
839
906
|
;// ./src/utility/traverse.js
|
|
840
907
|
|
|
@@ -2984,7 +3051,7 @@ function _getOTLPTransport(options, url) {
|
|
|
2984
3051
|
/**
|
|
2985
3052
|
* Default options shared across platforms
|
|
2986
3053
|
*/
|
|
2987
|
-
var version = '3.
|
|
3054
|
+
var version = '3.1.0';
|
|
2988
3055
|
var endpoint = 'api.rollbar.com/api/1/item/';
|
|
2989
3056
|
var logLevel = 'debug';
|
|
2990
3057
|
var reportLevel = 'debug';
|
|
@@ -4247,9 +4314,11 @@ Rollbar.prototype._log = function (defaultLevel, item) {
|
|
|
4247
4314
|
Rollbar.prototype._addItemAttributes = function (item) {
|
|
4248
4315
|
var _this$tracing, _this$tracing2;
|
|
4249
4316
|
var span = (_this$tracing = this.tracing) === null || _this$tracing === void 0 ? void 0 : _this$tracing.getSpan();
|
|
4317
|
+
var asyncLocalSessionId = getSessionIdFromAsyncLocalStorage(this);
|
|
4318
|
+
var sessionId = asyncLocalSessionId || ((_this$tracing2 = this.tracing) === null || _this$tracing2 === void 0 ? void 0 : _this$tracing2.sessionId);
|
|
4250
4319
|
var attributes = [{
|
|
4251
4320
|
key: 'session_id',
|
|
4252
|
-
value:
|
|
4321
|
+
value: sessionId
|
|
4253
4322
|
}, {
|
|
4254
4323
|
key: 'span_id',
|
|
4255
4324
|
value: span === null || span === void 0 ? void 0 : span.spanId
|
|
@@ -6637,7 +6706,16 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
6637
6706
|
}, this.replacements, 'network');
|
|
6638
6707
|
utility_replace(xhrp, 'send', function (orig) {
|
|
6639
6708
|
return function (data) {
|
|
6709
|
+
var _self$rollbar, _xhr$__rollbar_xhr;
|
|
6640
6710
|
var xhr = this;
|
|
6711
|
+
var tracing = (_self$rollbar = self.rollbar) === null || _self$rollbar === void 0 ? void 0 : _self$rollbar.tracing;
|
|
6712
|
+
if (shouldAddBaggageHeader(self.options, tracing, (_xhr$__rollbar_xhr = xhr.__rollbar_xhr) === null || _xhr$__rollbar_xhr === void 0 ? void 0 : _xhr$__rollbar_xhr.url)) {
|
|
6713
|
+
try {
|
|
6714
|
+
xhr.setRequestHeader('baggage', "rollbar.session.id=".concat(tracing.sessionId));
|
|
6715
|
+
} catch (_e) {
|
|
6716
|
+
/* ignore errors from adding baggage header */
|
|
6717
|
+
}
|
|
6718
|
+
}
|
|
6641
6719
|
function onreadystatechangeHandler() {
|
|
6642
6720
|
if (xhr.__rollbar_xhr) {
|
|
6643
6721
|
if (xhr.__rollbar_xhr.status_code === null) {
|
|
@@ -6758,6 +6836,7 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
6758
6836
|
if ('fetch' in this._window) {
|
|
6759
6837
|
utility_replace(this._window, 'fetch', function (orig) {
|
|
6760
6838
|
return function (_fn, _t) {
|
|
6839
|
+
var _self$rollbar2;
|
|
6761
6840
|
var args = Array.prototype.slice.call(arguments);
|
|
6762
6841
|
var input = args[0];
|
|
6763
6842
|
var method = 'GET';
|
|
@@ -6774,6 +6853,13 @@ var Instrumenter = /*#__PURE__*/function () {
|
|
|
6774
6853
|
if (args[1] && args[1].method) {
|
|
6775
6854
|
method = args[1].method;
|
|
6776
6855
|
}
|
|
6856
|
+
var tracing = (_self$rollbar2 = self.rollbar) === null || _self$rollbar2 === void 0 ? void 0 : _self$rollbar2.tracing;
|
|
6857
|
+
if (shouldAddBaggageHeader(self.options, tracing, url)) {
|
|
6858
|
+
var _headers2 = {
|
|
6859
|
+
baggage: "rollbar.session.id=".concat(tracing.sessionId)
|
|
6860
|
+
};
|
|
6861
|
+
addHeadersToFetch(args, _headers2);
|
|
6862
|
+
}
|
|
6777
6863
|
var metadata = {
|
|
6778
6864
|
method: method,
|
|
6779
6865
|
url: url,
|