1 | Object.defineProperty(exports, "__esModule", { value: true });
|
2 | var tslib_1 = require("tslib");
|
3 |
|
4 | var UNKNOWN_FUNCTION = '?';
|
5 | var OPERA10_PRIORITY = 10;
|
6 | var OPERA11_PRIORITY = 20;
|
7 | var CHROME_PRIORITY = 30;
|
8 | var WINJS_PRIORITY = 40;
|
9 | var GECKO_PRIORITY = 50;
|
10 | function createFrame(filename, func, lineno, colno) {
|
11 | var frame = {
|
12 | filename: filename,
|
13 | function: func,
|
14 | // All browser frames are considered in_app
|
15 | in_app: true,
|
16 | };
|
17 | if (lineno !== undefined) {
|
18 | frame.lineno = lineno;
|
19 | }
|
20 | if (colno !== undefined) {
|
21 | frame.colno = colno;
|
22 | }
|
23 | return frame;
|
24 | }
|
25 |
|
26 | var chromeRegex = /^\s*at (?:(.*?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
27 | var chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
|
28 | var chrome = function (line) {
|
29 | var parts = chromeRegex.exec(line);
|
30 | if (parts) {
|
31 | var isEval = parts[2] && parts[2].indexOf('eval') === 0;
|
32 | if (isEval) {
|
33 | var subMatch = chromeEvalRegex.exec(parts[2]);
|
34 | if (subMatch) {
|
35 |
|
36 | parts[2] = subMatch[1];
|
37 | parts[3] = subMatch[2];
|
38 | parts[4] = subMatch[3];
|
39 | }
|
40 | }
|
41 |
|
42 |
|
43 | var _a = tslib_1.__read(extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]), 2), func = _a[0], filename = _a[1];
|
44 | return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);
|
45 | }
|
46 | return;
|
47 | };
|
48 | exports.chromeStackParser = [CHROME_PRIORITY, chrome];
|
49 |
|
50 |
|
51 |
|
52 | var geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
|
53 | var geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
|
54 | var gecko = function (line) {
|
55 | var _a;
|
56 | var parts = geckoREgex.exec(line);
|
57 | if (parts) {
|
58 | var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
|
59 | if (isEval) {
|
60 | var subMatch = geckoEvalRegex.exec(parts[3]);
|
61 | if (subMatch) {
|
62 |
|
63 | parts[1] = parts[1] || 'eval';
|
64 | parts[3] = subMatch[1];
|
65 | parts[4] = subMatch[2];
|
66 | parts[5] = '';
|
67 | }
|
68 | }
|
69 | var filename = parts[3];
|
70 | var func = parts[1] || UNKNOWN_FUNCTION;
|
71 | _a = tslib_1.__read(extractSafariExtensionDetails(func, filename), 2), func = _a[0], filename = _a[1];
|
72 | return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);
|
73 | }
|
74 | return;
|
75 | };
|
76 | exports.geckoStackParser = [GECKO_PRIORITY, gecko];
|
77 | var winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
|
78 | var winjs = function (line) {
|
79 | var parts = winjsRegex.exec(line);
|
80 | return parts
|
81 | ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)
|
82 | : undefined;
|
83 | };
|
84 | exports.winjsStackParser = [WINJS_PRIORITY, winjs];
|
85 | var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
|
86 | var opera10 = function (line) {
|
87 | var parts = opera10Regex.exec(line);
|
88 | return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;
|
89 | };
|
90 | exports.opera10StackParser = [OPERA10_PRIORITY, opera10];
|
91 | var opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;
|
92 | var opera11 = function (line) {
|
93 | var parts = opera11Regex.exec(line);
|
94 | return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;
|
95 | };
|
96 | exports.opera11StackParser = [OPERA11_PRIORITY, opera11];
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 |
|
108 |
|
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 |
|
116 |
|
117 | var extractSafariExtensionDetails = function (func, filename) {
|
118 | var isSafariExtension = func.indexOf('safari-extension') !== -1;
|
119 | var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;
|
120 | return isSafariExtension || isSafariWebExtension
|
121 | ? [
|
122 | func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,
|
123 | isSafariExtension ? "safari-extension:" + filename : "safari-web-extension:" + filename,
|
124 | ]
|
125 | : [func, filename];
|
126 | };
|
127 |
|
\ | No newline at end of file |