@sentry/browser 6.17.4 → 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 +81 -162
- 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 +132 -199
- package/build/bundle.js.map +1 -1
- package/build/bundle.min.js +2 -2
- package/build/bundle.min.js.map +1 -1
- package/dist/exports.d.ts +3 -2
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +1 -0
- package/dist/exports.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 -20
- package/dist/tracekit.d.ts.map +1 -1
- package/dist/tracekit.js +90 -165
- package/dist/tracekit.js.map +1 -1
- package/esm/exports.d.ts +3 -2
- package/esm/exports.d.ts.map +1 -1
- package/esm/exports.js +1 -1
- package/esm/exports.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 -20
- package/esm/tracekit.d.ts.map +1 -1
- package/esm/tracekit.js +91 -166
- package/esm/tracekit.js.map +1 -1
- package/package.json +4 -7
package/build/bundle.js
CHANGED
|
@@ -1,29 +1,31 @@
|
|
|
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
|
-
Copyright (c) Microsoft Corporation.
|
|
5
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
6
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
7
|
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
4
|
+
Copyright (c) Microsoft Corporation.
|
|
8
5
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
12
|
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
6
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
7
|
+
purpose with or without fee is hereby granted.
|
|
13
8
|
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
16
16
|
***************************************************************************** */
|
|
17
17
|
/* global Reflect, Promise */
|
|
18
18
|
|
|
19
19
|
var extendStatics = function(d, b) {
|
|
20
20
|
extendStatics = Object.setPrototypeOf ||
|
|
21
21
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
22
|
-
function (d, b) { for (var p in b) if (
|
|
22
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
23
23
|
return extendStatics(d, b);
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
function __extends(d, b) {
|
|
27
|
+
if (typeof b !== "function" && b !== null)
|
|
28
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
27
29
|
extendStatics(d, b);
|
|
28
30
|
function __() { this.constructor = d; }
|
|
29
31
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -41,14 +43,15 @@ var Sentry = (function (exports) {
|
|
|
41
43
|
};
|
|
42
44
|
|
|
43
45
|
function __values(o) {
|
|
44
|
-
var
|
|
46
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
45
47
|
if (m) return m.call(o);
|
|
46
|
-
return {
|
|
48
|
+
if (o && typeof o.length === "number") return {
|
|
47
49
|
next: function () {
|
|
48
50
|
if (o && i >= o.length) o = void 0;
|
|
49
51
|
return { value: o && o[i++], done: !o };
|
|
50
52
|
}
|
|
51
53
|
};
|
|
54
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
function __read(o, n) {
|
|
@@ -68,6 +71,7 @@ var Sentry = (function (exports) {
|
|
|
68
71
|
return ar;
|
|
69
72
|
}
|
|
70
73
|
|
|
74
|
+
/** @deprecated */
|
|
71
75
|
function __spread() {
|
|
72
76
|
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
73
77
|
ar = ar.concat(__read(arguments[i]));
|
|
@@ -92,8 +96,7 @@ var Sentry = (function (exports) {
|
|
|
92
96
|
Severity["Debug"] = "debug";
|
|
93
97
|
/** JSDoc */
|
|
94
98
|
Severity["Critical"] = "critical";
|
|
95
|
-
})(exports.Severity || (exports.Severity = {}));
|
|
96
|
-
var SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'];
|
|
99
|
+
})(exports.Severity || (exports.Severity = {}));
|
|
97
100
|
|
|
98
101
|
/**
|
|
99
102
|
* Consumes the promise and logs the error when it rejects.
|
|
@@ -557,6 +560,8 @@ var Sentry = (function (exports) {
|
|
|
557
560
|
return components;
|
|
558
561
|
}
|
|
559
562
|
|
|
563
|
+
var SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'];
|
|
564
|
+
|
|
560
565
|
// TODO: Implement different loggers for different environments
|
|
561
566
|
var global$1 = getGlobalObject();
|
|
562
567
|
/** Prefix for logging strings */
|
|
@@ -799,16 +804,18 @@ var Sentry = (function (exports) {
|
|
|
799
804
|
source[name] = wrapped;
|
|
800
805
|
}
|
|
801
806
|
/**
|
|
802
|
-
* Defines a non
|
|
807
|
+
* Defines a non-enumerable property on the given object.
|
|
803
808
|
*
|
|
804
|
-
* @param
|
|
805
|
-
* @param name
|
|
806
|
-
* @param value
|
|
809
|
+
* @param obj The object on which to set the property
|
|
810
|
+
* @param name The name of the property to be set
|
|
811
|
+
* @param value The value to which to set the property
|
|
807
812
|
*/
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
813
|
+
function addNonEnumerableProperty(obj, name, value) {
|
|
814
|
+
Object.defineProperty(obj, name, {
|
|
815
|
+
// enumerable: false, // the default, so we can save on bundle size by not explicitly setting it
|
|
811
816
|
value: value,
|
|
817
|
+
writable: true,
|
|
818
|
+
configurable: true,
|
|
812
819
|
});
|
|
813
820
|
}
|
|
814
821
|
/**
|
|
@@ -1331,7 +1338,7 @@ var Sentry = (function (exports) {
|
|
|
1331
1338
|
if (!(level in global$2.console)) {
|
|
1332
1339
|
return;
|
|
1333
1340
|
}
|
|
1334
|
-
fill(global$2.console, level, function (
|
|
1341
|
+
fill(global$2.console, level, function (originalConsoleMethod) {
|
|
1335
1342
|
return function () {
|
|
1336
1343
|
var args = [];
|
|
1337
1344
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
@@ -1339,8 +1346,8 @@ var Sentry = (function (exports) {
|
|
|
1339
1346
|
}
|
|
1340
1347
|
triggerHandlers('console', { args: args, level: level });
|
|
1341
1348
|
// this fails for some browsers. :(
|
|
1342
|
-
if (
|
|
1343
|
-
|
|
1349
|
+
if (originalConsoleMethod) {
|
|
1350
|
+
originalConsoleMethod.call(global$2.console, args);
|
|
1344
1351
|
}
|
|
1345
1352
|
};
|
|
1346
1353
|
});
|
|
@@ -4464,7 +4471,7 @@ var Sentry = (function (exports) {
|
|
|
4464
4471
|
hub.bindClient(client);
|
|
4465
4472
|
}
|
|
4466
4473
|
|
|
4467
|
-
var SDK_VERSION = '6.17.
|
|
4474
|
+
var SDK_VERSION = '6.17.8-beta.0';
|
|
4468
4475
|
|
|
4469
4476
|
var originalFunctionToString;
|
|
4470
4477
|
/** Patch toString calls to return proper name for wrapped functions */
|
|
@@ -4687,14 +4694,10 @@ var Sentry = (function (exports) {
|
|
|
4687
4694
|
InboundFilters: InboundFilters
|
|
4688
4695
|
});
|
|
4689
4696
|
|
|
4690
|
-
/**
|
|
4691
|
-
* This was originally forked from https://github.com/occ/TraceKit, but has since been
|
|
4692
|
-
* largely modified and is now maintained as part of Sentry JS SDK.
|
|
4693
|
-
*/
|
|
4694
4697
|
// global reference to slice
|
|
4695
4698
|
var UNKNOWN_FUNCTION = '?';
|
|
4696
4699
|
// Chromium based browsers: Chrome, Brave, new Opera, new Edge
|
|
4697
|
-
var chrome = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
|
4700
|
+
var chrome = /^\s*at (?:(.*?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
|
4698
4701
|
// gecko regex: `(?:bundle|\d+\.js)`: `bundle` is for react native, `\d+\.js` also but specifically for ram bundles because it
|
|
4699
4702
|
// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js
|
|
4700
4703
|
// We need this specific case for now because we want no other regex to match.
|
|
@@ -4704,10 +4707,11 @@ var Sentry = (function (exports) {
|
|
|
4704
4707
|
var chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/;
|
|
4705
4708
|
// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108
|
|
4706
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;
|
|
4707
4712
|
/** JSDoc */
|
|
4708
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
|
|
4709
4713
|
function computeStackTrace(ex) {
|
|
4710
|
-
var
|
|
4714
|
+
var frames = [];
|
|
4711
4715
|
var popSize = 0;
|
|
4712
4716
|
if (ex) {
|
|
4713
4717
|
if (typeof ex.framesToPop === 'number') {
|
|
@@ -4718,174 +4722,111 @@ var Sentry = (function (exports) {
|
|
|
4718
4722
|
}
|
|
4719
4723
|
}
|
|
4720
4724
|
try {
|
|
4721
|
-
//
|
|
4722
|
-
//
|
|
4723
|
-
//
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
return popFrames(stack, popSize);
|
|
4727
|
-
}
|
|
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);
|
|
4728
4730
|
}
|
|
4729
4731
|
catch (e) {
|
|
4730
4732
|
// no-empty
|
|
4731
4733
|
}
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
if (stack) {
|
|
4735
|
-
return popFrames(stack, popSize);
|
|
4736
|
-
}
|
|
4737
|
-
}
|
|
4738
|
-
catch (e) {
|
|
4739
|
-
// no-empty
|
|
4734
|
+
if (frames.length && popSize > 0) {
|
|
4735
|
+
frames = frames.slice(popSize);
|
|
4740
4736
|
}
|
|
4741
4737
|
return {
|
|
4742
4738
|
message: extractMessage(ex),
|
|
4743
4739
|
name: ex && ex.name,
|
|
4744
|
-
stack:
|
|
4745
|
-
failed: true,
|
|
4740
|
+
stack: frames,
|
|
4746
4741
|
};
|
|
4747
4742
|
}
|
|
4748
4743
|
/** JSDoc */
|
|
4749
|
-
// eslint-disable-next-line
|
|
4750
|
-
function
|
|
4751
|
-
var _a, _b;
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
}
|
|
4755
|
-
var stack = [];
|
|
4756
|
-
var lines = ex.stack.split('\n');
|
|
4744
|
+
// eslint-disable-next-line complexity
|
|
4745
|
+
function parseFrames(stackString) {
|
|
4746
|
+
var e_1, _a, _b;
|
|
4747
|
+
var frames = [];
|
|
4748
|
+
var lines = stackString.split('\n');
|
|
4757
4749
|
var isEval;
|
|
4758
4750
|
var submatch;
|
|
4759
4751
|
var parts;
|
|
4760
4752
|
var element;
|
|
4761
|
-
|
|
4762
|
-
|
|
4763
|
-
var
|
|
4764
|
-
|
|
4765
|
-
|
|
4766
|
-
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4753
|
+
try {
|
|
4754
|
+
for (var lines_1 = __values(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {
|
|
4755
|
+
var line = lines_1_1.value;
|
|
4756
|
+
if ((parts = opera10Regex.exec(line))) {
|
|
4757
|
+
element = {
|
|
4758
|
+
filename: parts[2],
|
|
4759
|
+
function: parts[3] || UNKNOWN_FUNCTION,
|
|
4760
|
+
lineno: +parts[1],
|
|
4761
|
+
};
|
|
4770
4762
|
}
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
element = {
|
|
4779
|
-
url: url,
|
|
4780
|
-
func: func,
|
|
4781
|
-
args: isNative ? [parts[2]] : [],
|
|
4782
|
-
line: parts[3] ? +parts[3] : null,
|
|
4783
|
-
column: parts[4] ? +parts[4] : null,
|
|
4784
|
-
};
|
|
4785
|
-
}
|
|
4786
|
-
else if ((parts = winjs.exec(lines[i]))) {
|
|
4787
|
-
element = {
|
|
4788
|
-
url: parts[2],
|
|
4789
|
-
func: parts[1] || UNKNOWN_FUNCTION,
|
|
4790
|
-
args: [],
|
|
4791
|
-
line: +parts[3],
|
|
4792
|
-
column: parts[4] ? +parts[4] : null,
|
|
4793
|
-
};
|
|
4794
|
-
}
|
|
4795
|
-
else if ((parts = gecko.exec(lines[i]))) {
|
|
4796
|
-
isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
|
|
4797
|
-
if (isEval && (submatch = geckoEval.exec(parts[3]))) {
|
|
4798
|
-
// throw out eval line/column and use top-most line number
|
|
4799
|
-
parts[1] = parts[1] || "eval";
|
|
4800
|
-
parts[3] = submatch[1];
|
|
4801
|
-
parts[4] = submatch[2];
|
|
4802
|
-
parts[5] = ''; // no column when eval
|
|
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
|
+
};
|
|
4803
4770
|
}
|
|
4804
|
-
else if (
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4771
|
+
else if ((parts = chrome.exec(line))) {
|
|
4772
|
+
isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line
|
|
4773
|
+
if (isEval && (submatch = chromeEval.exec(parts[2]))) {
|
|
4774
|
+
// throw out eval line/column and use top-most line/column number
|
|
4775
|
+
parts[2] = submatch[1]; // url
|
|
4776
|
+
parts[3] = submatch[2]; // line
|
|
4777
|
+
parts[4] = submatch[3]; // column
|
|
4778
|
+
}
|
|
4779
|
+
// Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now
|
|
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], filename = _c[1];
|
|
4782
|
+
element = {
|
|
4783
|
+
filename: filename,
|
|
4784
|
+
function: func,
|
|
4785
|
+
lineno: parts[3] ? +parts[3] : undefined,
|
|
4786
|
+
colno: parts[4] ? +parts[4] : undefined,
|
|
4787
|
+
};
|
|
4810
4788
|
}
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4841
|
-
function computeStackTraceFromStacktraceProp(ex) {
|
|
4842
|
-
if (!ex || !ex.stacktrace) {
|
|
4843
|
-
return null;
|
|
4844
|
-
}
|
|
4845
|
-
// Access and store the stacktrace property before doing ANYTHING
|
|
4846
|
-
// else to it because Opera is not very good at providing it
|
|
4847
|
-
// reliably in other circumstances.
|
|
4848
|
-
var stacktrace = ex.stacktrace;
|
|
4849
|
-
var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
|
|
4850
|
-
var opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\((.*)\))? in (.*):\s*$/i;
|
|
4851
|
-
var lines = stacktrace.split('\n');
|
|
4852
|
-
var stack = [];
|
|
4853
|
-
var parts;
|
|
4854
|
-
for (var line = 0; line < lines.length; line += 2) {
|
|
4855
|
-
var element = null;
|
|
4856
|
-
if ((parts = opera10Regex.exec(lines[line]))) {
|
|
4857
|
-
element = {
|
|
4858
|
-
url: parts[2],
|
|
4859
|
-
func: parts[3],
|
|
4860
|
-
args: [],
|
|
4861
|
-
line: +parts[1],
|
|
4862
|
-
column: null,
|
|
4863
|
-
};
|
|
4864
|
-
}
|
|
4865
|
-
else if ((parts = opera11Regex.exec(lines[line]))) {
|
|
4866
|
-
element = {
|
|
4867
|
-
url: parts[6],
|
|
4868
|
-
func: parts[3] || parts[4],
|
|
4869
|
-
args: parts[5] ? parts[5].split(',') : [],
|
|
4870
|
-
line: +parts[1],
|
|
4871
|
-
column: +parts[2],
|
|
4872
|
-
};
|
|
4873
|
-
}
|
|
4874
|
-
if (element) {
|
|
4875
|
-
if (!element.func && element.line) {
|
|
4876
|
-
element.func = UNKNOWN_FUNCTION;
|
|
4789
|
+
else if ((parts = winjs.exec(line))) {
|
|
4790
|
+
element = {
|
|
4791
|
+
filename: parts[2],
|
|
4792
|
+
function: parts[1] || UNKNOWN_FUNCTION,
|
|
4793
|
+
lineno: +parts[3],
|
|
4794
|
+
colno: parts[4] ? +parts[4] : undefined,
|
|
4795
|
+
};
|
|
4796
|
+
}
|
|
4797
|
+
else if ((parts = gecko.exec(line))) {
|
|
4798
|
+
isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
|
|
4799
|
+
if (isEval && (submatch = geckoEval.exec(parts[3]))) {
|
|
4800
|
+
// throw out eval line/column and use top-most line number
|
|
4801
|
+
parts[1] = parts[1] || "eval";
|
|
4802
|
+
parts[3] = submatch[1];
|
|
4803
|
+
parts[4] = submatch[2];
|
|
4804
|
+
parts[5] = ''; // no column when eval
|
|
4805
|
+
}
|
|
4806
|
+
var filename = parts[3];
|
|
4807
|
+
var func = parts[1] || UNKNOWN_FUNCTION;
|
|
4808
|
+
_b = __read(extractSafariExtensionDetails(func, filename), 2), func = _b[0], filename = _b[1];
|
|
4809
|
+
element = {
|
|
4810
|
+
filename: filename,
|
|
4811
|
+
function: func,
|
|
4812
|
+
lineno: parts[4] ? +parts[4] : undefined,
|
|
4813
|
+
colno: parts[5] ? +parts[5] : undefined,
|
|
4814
|
+
};
|
|
4815
|
+
}
|
|
4816
|
+
else {
|
|
4817
|
+
continue;
|
|
4877
4818
|
}
|
|
4878
|
-
|
|
4819
|
+
frames.push(element);
|
|
4879
4820
|
}
|
|
4880
4821
|
}
|
|
4881
|
-
|
|
4882
|
-
|
|
4822
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
4823
|
+
finally {
|
|
4824
|
+
try {
|
|
4825
|
+
if (lines_1_1 && !lines_1_1.done && (_a = lines_1.return)) _a.call(lines_1);
|
|
4826
|
+
}
|
|
4827
|
+
finally { if (e_1) throw e_1.error; }
|
|
4883
4828
|
}
|
|
4884
|
-
return
|
|
4885
|
-
message: extractMessage(ex),
|
|
4886
|
-
name: ex.name,
|
|
4887
|
-
stack: stack,
|
|
4888
|
-
};
|
|
4829
|
+
return frames;
|
|
4889
4830
|
}
|
|
4890
4831
|
/**
|
|
4891
4832
|
* Safari web extensions, starting version unknown, can produce "frames-only" stacktraces.
|
|
@@ -4907,25 +4848,16 @@ var Sentry = (function (exports) {
|
|
|
4907
4848
|
* Unfortunatelly "just" changing RegExp is too complicated now and making it pass all tests
|
|
4908
4849
|
* and fix this case seems like an impossible, or at least way too time-consuming task.
|
|
4909
4850
|
*/
|
|
4910
|
-
var extractSafariExtensionDetails = function (func,
|
|
4851
|
+
var extractSafariExtensionDetails = function (func, filename) {
|
|
4911
4852
|
var isSafariExtension = func.indexOf('safari-extension') !== -1;
|
|
4912
4853
|
var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;
|
|
4913
4854
|
return isSafariExtension || isSafariWebExtension
|
|
4914
4855
|
? [
|
|
4915
4856
|
func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,
|
|
4916
|
-
isSafariExtension ? "safari-extension:" +
|
|
4857
|
+
isSafariExtension ? "safari-extension:" + filename : "safari-web-extension:" + filename,
|
|
4917
4858
|
]
|
|
4918
|
-
: [func,
|
|
4859
|
+
: [func, filename];
|
|
4919
4860
|
};
|
|
4920
|
-
/** Remove N number of frames from the stack */
|
|
4921
|
-
function popFrames(stacktrace, popSize) {
|
|
4922
|
-
try {
|
|
4923
|
-
return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });
|
|
4924
|
-
}
|
|
4925
|
-
catch (e) {
|
|
4926
|
-
return stacktrace;
|
|
4927
|
-
}
|
|
4928
|
-
}
|
|
4929
4861
|
/**
|
|
4930
4862
|
* There are cases where stacktrace.message is an Event object
|
|
4931
4863
|
* https://github.com/getsentry/sentry-javascript/issues/1949
|
|
@@ -5004,12 +4936,12 @@ var Sentry = (function (exports) {
|
|
|
5004
4936
|
* @hidden
|
|
5005
4937
|
*/
|
|
5006
4938
|
function prepareFramesForEvent(stack) {
|
|
5007
|
-
if (!stack
|
|
4939
|
+
if (!stack.length) {
|
|
5008
4940
|
return [];
|
|
5009
4941
|
}
|
|
5010
4942
|
var localStack = stack;
|
|
5011
|
-
var firstFrameFunction = localStack[0].
|
|
5012
|
-
var lastFrameFunction = localStack[localStack.length - 1].
|
|
4943
|
+
var firstFrameFunction = localStack[0].function || '';
|
|
4944
|
+
var lastFrameFunction = localStack[localStack.length - 1].function || '';
|
|
5013
4945
|
// If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)
|
|
5014
4946
|
if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {
|
|
5015
4947
|
localStack = localStack.slice(1);
|
|
@@ -5022,11 +4954,11 @@ var Sentry = (function (exports) {
|
|
|
5022
4954
|
return localStack
|
|
5023
4955
|
.slice(0, STACKTRACE_LIMIT)
|
|
5024
4956
|
.map(function (frame) { return ({
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
|
|
4957
|
+
filename: frame.filename || localStack[0].filename,
|
|
4958
|
+
function: frame.function || '?',
|
|
4959
|
+
lineno: frame.lineno,
|
|
4960
|
+
colno: frame.colno,
|
|
5028
4961
|
in_app: true,
|
|
5029
|
-
lineno: frame.line === null ? undefined : frame.line,
|
|
5030
4962
|
}); })
|
|
5031
4963
|
.reverse();
|
|
5032
4964
|
}
|
|
@@ -6994,6 +6926,7 @@ var Sentry = (function (exports) {
|
|
|
6994
6926
|
exports.SDK_NAME = SDK_NAME;
|
|
6995
6927
|
exports.SDK_VERSION = SDK_VERSION;
|
|
6996
6928
|
exports.Scope = Scope;
|
|
6929
|
+
exports.Session = Session;
|
|
6997
6930
|
exports.Transports = index;
|
|
6998
6931
|
exports.addBreadcrumb = addBreadcrumb;
|
|
6999
6932
|
exports.addGlobalEventProcessor = addGlobalEventProcessor;
|