@sentry/browser 6.17.7 → 6.17.8-beta.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/build/bundle.es6.js +61 -126
- package/build/bundle.es6.js.map +1 -1
- package/build/bundle.es6.min.js +2 -2
- package/build/bundle.es6.min.js.map +1 -1
- package/build/bundle.js +60 -125
- package/build/bundle.js.map +1 -1
- package/build/bundle.min.js +2 -2
- package/build/bundle.min.js.map +1 -1
- package/dist/parsers.d.ts +2 -2
- package/dist/parsers.d.ts.map +1 -1
- package/dist/parsers.js +7 -7
- package/dist/parsers.js.map +1 -1
- package/dist/tracekit.d.ts +5 -19
- package/dist/tracekit.d.ts.map +1 -1
- package/dist/tracekit.js +51 -116
- package/dist/tracekit.js.map +1 -1
- package/esm/parsers.d.ts +2 -2
- package/esm/parsers.d.ts.map +1 -1
- package/esm/parsers.js +7 -7
- package/esm/parsers.js.map +1 -1
- package/esm/tracekit.d.ts +5 -19
- package/esm/tracekit.d.ts.map +1 -1
- package/esm/tracekit.js +52 -117
- package/esm/tracekit.js.map +1 -1
- package/package.json +4 -4
package/build/bundle.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @sentry/browser 6.17.
|
|
1
|
+
/*! @sentry/browser 6.17.8-beta.0 (07f9257) | https://github.com/getsentry/sentry-javascript */
|
|
2
2
|
var Sentry = (function (exports) {
|
|
3
3
|
/*! *****************************************************************************
|
|
4
4
|
Copyright (c) Microsoft Corporation.
|
|
@@ -4471,7 +4471,7 @@ var Sentry = (function (exports) {
|
|
|
4471
4471
|
hub.bindClient(client);
|
|
4472
4472
|
}
|
|
4473
4473
|
|
|
4474
|
-
var SDK_VERSION = '6.17.
|
|
4474
|
+
var SDK_VERSION = '6.17.8-beta.0';
|
|
4475
4475
|
|
|
4476
4476
|
var originalFunctionToString;
|
|
4477
4477
|
/** Patch toString calls to return proper name for wrapped functions */
|
|
@@ -4694,10 +4694,6 @@ var Sentry = (function (exports) {
|
|
|
4694
4694
|
InboundFilters: InboundFilters
|
|
4695
4695
|
});
|
|
4696
4696
|
|
|
4697
|
-
/**
|
|
4698
|
-
* This was originally forked from https://github.com/occ/TraceKit, but has since been
|
|
4699
|
-
* largely modified and is now maintained as part of Sentry JS SDK.
|
|
4700
|
-
*/
|
|
4701
4697
|
// global reference to slice
|
|
4702
4698
|
var UNKNOWN_FUNCTION = '?';
|
|
4703
4699
|
// Chromium based browsers: Chrome, Brave, new Opera, new Edge
|
|
@@ -4711,10 +4707,11 @@ var Sentry = (function (exports) {
|
|
|
4711
4707
|
var chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/;
|
|
4712
4708
|
// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108
|
|
4713
4709
|
var reactMinifiedRegexp = /Minified React error #\d+;/i;
|
|
4710
|
+
var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
|
|
4711
|
+
var opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
|
|
4714
4712
|
/** JSDoc */
|
|
4715
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
|
|
4716
4713
|
function computeStackTrace(ex) {
|
|
4717
|
-
var
|
|
4714
|
+
var frames = [];
|
|
4718
4715
|
var popSize = 0;
|
|
4719
4716
|
if (ex) {
|
|
4720
4717
|
if (typeof ex.framesToPop === 'number') {
|
|
@@ -4725,42 +4722,30 @@ var Sentry = (function (exports) {
|
|
|
4725
4722
|
}
|
|
4726
4723
|
}
|
|
4727
4724
|
try {
|
|
4728
|
-
//
|
|
4729
|
-
//
|
|
4730
|
-
//
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
return popFrames(stack, popSize);
|
|
4734
|
-
}
|
|
4725
|
+
// Access and store the stacktrace property before doing ANYTHING
|
|
4726
|
+
// else to it because Opera is not very good at providing it
|
|
4727
|
+
// reliably in other circumstances.
|
|
4728
|
+
var stacktrace = ex.stacktrace || ex.stack || '';
|
|
4729
|
+
frames = parseFrames(stacktrace);
|
|
4735
4730
|
}
|
|
4736
4731
|
catch (e) {
|
|
4737
4732
|
// no-empty
|
|
4738
4733
|
}
|
|
4739
|
-
|
|
4740
|
-
|
|
4741
|
-
if (stack) {
|
|
4742
|
-
return popFrames(stack, popSize);
|
|
4743
|
-
}
|
|
4744
|
-
}
|
|
4745
|
-
catch (e) {
|
|
4746
|
-
// no-empty
|
|
4734
|
+
if (frames.length && popSize > 0) {
|
|
4735
|
+
frames = frames.slice(popSize);
|
|
4747
4736
|
}
|
|
4748
4737
|
return {
|
|
4749
4738
|
message: extractMessage(ex),
|
|
4750
4739
|
name: ex && ex.name,
|
|
4751
|
-
stack:
|
|
4752
|
-
failed: true,
|
|
4740
|
+
stack: frames,
|
|
4753
4741
|
};
|
|
4754
4742
|
}
|
|
4755
4743
|
/** JSDoc */
|
|
4756
|
-
// eslint-disable-next-line
|
|
4757
|
-
function
|
|
4744
|
+
// eslint-disable-next-line complexity
|
|
4745
|
+
function parseFrames(stackString) {
|
|
4758
4746
|
var e_1, _a, _b;
|
|
4759
|
-
|
|
4760
|
-
|
|
4761
|
-
}
|
|
4762
|
-
var stack = [];
|
|
4763
|
-
var lines = ex.stack.split('\n');
|
|
4747
|
+
var frames = [];
|
|
4748
|
+
var lines = stackString.split('\n');
|
|
4764
4749
|
var isEval;
|
|
4765
4750
|
var submatch;
|
|
4766
4751
|
var parts;
|
|
@@ -4768,7 +4753,22 @@ var Sentry = (function (exports) {
|
|
|
4768
4753
|
try {
|
|
4769
4754
|
for (var lines_1 = __values(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {
|
|
4770
4755
|
var line = lines_1_1.value;
|
|
4771
|
-
if ((parts =
|
|
4756
|
+
if ((parts = opera10Regex.exec(line))) {
|
|
4757
|
+
element = {
|
|
4758
|
+
filename: parts[2],
|
|
4759
|
+
function: parts[3] || UNKNOWN_FUNCTION,
|
|
4760
|
+
lineno: +parts[1],
|
|
4761
|
+
};
|
|
4762
|
+
}
|
|
4763
|
+
else if ((parts = opera11Regex.exec(line))) {
|
|
4764
|
+
element = {
|
|
4765
|
+
filename: parts[5],
|
|
4766
|
+
function: parts[3] || parts[4] || UNKNOWN_FUNCTION,
|
|
4767
|
+
lineno: +parts[1],
|
|
4768
|
+
colno: +parts[2],
|
|
4769
|
+
};
|
|
4770
|
+
}
|
|
4771
|
+
else if ((parts = chrome.exec(line))) {
|
|
4772
4772
|
isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line
|
|
4773
4773
|
if (isEval && (submatch = chromeEval.exec(parts[2]))) {
|
|
4774
4774
|
// throw out eval line/column and use top-most line/column number
|
|
@@ -4778,20 +4778,20 @@ var Sentry = (function (exports) {
|
|
|
4778
4778
|
}
|
|
4779
4779
|
// Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now
|
|
4780
4780
|
// would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)
|
|
4781
|
-
var _c = __read(extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]), 2), func = _c[0],
|
|
4781
|
+
var _c = __read(extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]), 2), func = _c[0], filename = _c[1];
|
|
4782
4782
|
element = {
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4783
|
+
filename: filename,
|
|
4784
|
+
function: func,
|
|
4785
|
+
lineno: parts[3] ? +parts[3] : undefined,
|
|
4786
|
+
colno: parts[4] ? +parts[4] : undefined,
|
|
4787
4787
|
};
|
|
4788
4788
|
}
|
|
4789
4789
|
else if ((parts = winjs.exec(line))) {
|
|
4790
4790
|
element = {
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4791
|
+
filename: parts[2],
|
|
4792
|
+
function: parts[1] || UNKNOWN_FUNCTION,
|
|
4793
|
+
lineno: +parts[3],
|
|
4794
|
+
colno: parts[4] ? +parts[4] : undefined,
|
|
4795
4795
|
};
|
|
4796
4796
|
}
|
|
4797
4797
|
else if ((parts = gecko.exec(line))) {
|
|
@@ -4803,20 +4803,20 @@ var Sentry = (function (exports) {
|
|
|
4803
4803
|
parts[4] = submatch[2];
|
|
4804
4804
|
parts[5] = ''; // no column when eval
|
|
4805
4805
|
}
|
|
4806
|
-
var
|
|
4806
|
+
var filename = parts[3];
|
|
4807
4807
|
var func = parts[1] || UNKNOWN_FUNCTION;
|
|
4808
|
-
_b = __read(extractSafariExtensionDetails(func,
|
|
4808
|
+
_b = __read(extractSafariExtensionDetails(func, filename), 2), func = _b[0], filename = _b[1];
|
|
4809
4809
|
element = {
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4810
|
+
filename: filename,
|
|
4811
|
+
function: func,
|
|
4812
|
+
lineno: parts[4] ? +parts[4] : undefined,
|
|
4813
|
+
colno: parts[5] ? +parts[5] : undefined,
|
|
4814
4814
|
};
|
|
4815
4815
|
}
|
|
4816
4816
|
else {
|
|
4817
4817
|
continue;
|
|
4818
4818
|
}
|
|
4819
|
-
|
|
4819
|
+
frames.push(element);
|
|
4820
4820
|
}
|
|
4821
4821
|
}
|
|
4822
4822
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -4826,63 +4826,7 @@ var Sentry = (function (exports) {
|
|
|
4826
4826
|
}
|
|
4827
4827
|
finally { if (e_1) throw e_1.error; }
|
|
4828
4828
|
}
|
|
4829
|
-
|
|
4830
|
-
return null;
|
|
4831
|
-
}
|
|
4832
|
-
return {
|
|
4833
|
-
message: extractMessage(ex),
|
|
4834
|
-
name: ex.name,
|
|
4835
|
-
stack: stack,
|
|
4836
|
-
};
|
|
4837
|
-
}
|
|
4838
|
-
/** JSDoc */
|
|
4839
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4840
|
-
function computeStackTraceFromStacktraceProp(ex) {
|
|
4841
|
-
if (!ex || !ex.stacktrace) {
|
|
4842
|
-
return null;
|
|
4843
|
-
}
|
|
4844
|
-
// Access and store the stacktrace property before doing ANYTHING
|
|
4845
|
-
// else to it because Opera is not very good at providing it
|
|
4846
|
-
// reliably in other circumstances.
|
|
4847
|
-
var stacktrace = ex.stacktrace;
|
|
4848
|
-
var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
|
|
4849
|
-
var opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
|
|
4850
|
-
var lines = stacktrace.split('\n');
|
|
4851
|
-
var stack = [];
|
|
4852
|
-
var parts;
|
|
4853
|
-
for (var line = 0; line < lines.length; line += 2) {
|
|
4854
|
-
var element = null;
|
|
4855
|
-
if ((parts = opera10Regex.exec(lines[line]))) {
|
|
4856
|
-
element = {
|
|
4857
|
-
url: parts[2],
|
|
4858
|
-
func: parts[3],
|
|
4859
|
-
line: +parts[1],
|
|
4860
|
-
column: null,
|
|
4861
|
-
};
|
|
4862
|
-
}
|
|
4863
|
-
else if ((parts = opera11Regex.exec(lines[line]))) {
|
|
4864
|
-
element = {
|
|
4865
|
-
url: parts[5],
|
|
4866
|
-
func: parts[3] || parts[4],
|
|
4867
|
-
line: +parts[1],
|
|
4868
|
-
column: +parts[2],
|
|
4869
|
-
};
|
|
4870
|
-
}
|
|
4871
|
-
if (element) {
|
|
4872
|
-
if (!element.func && element.line) {
|
|
4873
|
-
element.func = UNKNOWN_FUNCTION;
|
|
4874
|
-
}
|
|
4875
|
-
stack.push(element);
|
|
4876
|
-
}
|
|
4877
|
-
}
|
|
4878
|
-
if (!stack.length) {
|
|
4879
|
-
return null;
|
|
4880
|
-
}
|
|
4881
|
-
return {
|
|
4882
|
-
message: extractMessage(ex),
|
|
4883
|
-
name: ex.name,
|
|
4884
|
-
stack: stack,
|
|
4885
|
-
};
|
|
4829
|
+
return frames;
|
|
4886
4830
|
}
|
|
4887
4831
|
/**
|
|
4888
4832
|
* Safari web extensions, starting version unknown, can produce "frames-only" stacktraces.
|
|
@@ -4904,25 +4848,16 @@ var Sentry = (function (exports) {
|
|
|
4904
4848
|
* Unfortunatelly "just" changing RegExp is too complicated now and making it pass all tests
|
|
4905
4849
|
* and fix this case seems like an impossible, or at least way too time-consuming task.
|
|
4906
4850
|
*/
|
|
4907
|
-
var extractSafariExtensionDetails = function (func,
|
|
4851
|
+
var extractSafariExtensionDetails = function (func, filename) {
|
|
4908
4852
|
var isSafariExtension = func.indexOf('safari-extension') !== -1;
|
|
4909
4853
|
var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;
|
|
4910
4854
|
return isSafariExtension || isSafariWebExtension
|
|
4911
4855
|
? [
|
|
4912
4856
|
func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,
|
|
4913
|
-
isSafariExtension ? "safari-extension:" +
|
|
4857
|
+
isSafariExtension ? "safari-extension:" + filename : "safari-web-extension:" + filename,
|
|
4914
4858
|
]
|
|
4915
|
-
: [func,
|
|
4859
|
+
: [func, filename];
|
|
4916
4860
|
};
|
|
4917
|
-
/** Remove N number of frames from the stack */
|
|
4918
|
-
function popFrames(stacktrace, popSize) {
|
|
4919
|
-
try {
|
|
4920
|
-
return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });
|
|
4921
|
-
}
|
|
4922
|
-
catch (e) {
|
|
4923
|
-
return stacktrace;
|
|
4924
|
-
}
|
|
4925
|
-
}
|
|
4926
4861
|
/**
|
|
4927
4862
|
* There are cases where stacktrace.message is an Event object
|
|
4928
4863
|
* https://github.com/getsentry/sentry-javascript/issues/1949
|
|
@@ -5001,12 +4936,12 @@ var Sentry = (function (exports) {
|
|
|
5001
4936
|
* @hidden
|
|
5002
4937
|
*/
|
|
5003
4938
|
function prepareFramesForEvent(stack) {
|
|
5004
|
-
if (!stack
|
|
4939
|
+
if (!stack.length) {
|
|
5005
4940
|
return [];
|
|
5006
4941
|
}
|
|
5007
4942
|
var localStack = stack;
|
|
5008
|
-
var firstFrameFunction = localStack[0].
|
|
5009
|
-
var lastFrameFunction = localStack[localStack.length - 1].
|
|
4943
|
+
var firstFrameFunction = localStack[0].function || '';
|
|
4944
|
+
var lastFrameFunction = localStack[localStack.length - 1].function || '';
|
|
5010
4945
|
// If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)
|
|
5011
4946
|
if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {
|
|
5012
4947
|
localStack = localStack.slice(1);
|
|
@@ -5019,11 +4954,11 @@ var Sentry = (function (exports) {
|
|
|
5019
4954
|
return localStack
|
|
5020
4955
|
.slice(0, STACKTRACE_LIMIT)
|
|
5021
4956
|
.map(function (frame) { return ({
|
|
5022
|
-
|
|
5023
|
-
|
|
5024
|
-
|
|
4957
|
+
filename: frame.filename || localStack[0].filename,
|
|
4958
|
+
function: frame.function || '?',
|
|
4959
|
+
lineno: frame.lineno,
|
|
4960
|
+
colno: frame.colno,
|
|
5025
4961
|
in_app: true,
|
|
5026
|
-
lineno: frame.line === null ? undefined : frame.line,
|
|
5027
4962
|
}); })
|
|
5028
4963
|
.reverse();
|
|
5029
4964
|
}
|