sentry-uniapp 0.12.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/LICENSE +29 -0
- package/README.md +216 -0
- package/dist/backend.d.ts +40 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +68 -0
- package/dist/backend.js.map +1 -0
- package/dist/client.d.ts +55 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +51 -0
- package/dist/client.js.map +1 -0
- package/dist/crossPlatform.d.ts +21 -0
- package/dist/crossPlatform.d.ts.map +1 -0
- package/dist/crossPlatform.js +79 -0
- package/dist/crossPlatform.js.map +1 -0
- package/dist/eventbuilder.d.ts +11 -0
- package/dist/eventbuilder.d.ts.map +1 -0
- package/dist/eventbuilder.js +79 -0
- package/dist/eventbuilder.js.map +1 -0
- package/dist/flags.d.ts +3 -0
- package/dist/flags.d.ts.map +1 -0
- package/dist/flags.js +18 -0
- package/dist/flags.js.map +1 -0
- package/dist/helpers.d.ts +35 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +236 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/globalhandlers.d.ts +45 -0
- package/dist/integrations/globalhandlers.d.ts.map +1 -0
- package/dist/integrations/globalhandlers.js +136 -0
- package/dist/integrations/globalhandlers.js.map +1 -0
- package/dist/integrations/ignoreMpcrawlerErrors.d.ts +21 -0
- package/dist/integrations/ignoreMpcrawlerErrors.d.ts.map +1 -0
- package/dist/integrations/ignoreMpcrawlerErrors.js +40 -0
- package/dist/integrations/ignoreMpcrawlerErrors.js.map +1 -0
- package/dist/integrations/index.d.ts +7 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +14 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/linkederrors.d.ts +40 -0
- package/dist/integrations/linkederrors.d.ts.map +1 -0
- package/dist/integrations/linkederrors.js +65 -0
- package/dist/integrations/linkederrors.js.map +1 -0
- package/dist/integrations/router.d.ts +28 -0
- package/dist/integrations/router.d.ts.map +1 -0
- package/dist/integrations/router.js +47 -0
- package/dist/integrations/router.js.map +1 -0
- package/dist/integrations/system.d.ts +17 -0
- package/dist/integrations/system.d.ts.map +1 -0
- package/dist/integrations/system.js +62 -0
- package/dist/integrations/system.js.map +1 -0
- package/dist/integrations/trycatch.d.ts +26 -0
- package/dist/integrations/trycatch.d.ts.map +1 -0
- package/dist/integrations/trycatch.js +166 -0
- package/dist/integrations/trycatch.js.map +1 -0
- package/dist/parsers.d.ts +21 -0
- package/dist/parsers.d.ts.map +1 -0
- package/dist/parsers.js +97 -0
- package/dist/parsers.js.map +1 -0
- package/dist/sdk.d.ts +99 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +153 -0
- package/dist/sdk.js.map +1 -0
- package/dist/tracekit.d.ts +38 -0
- package/dist/tracekit.d.ts.map +1 -0
- package/dist/tracekit.js +222 -0
- package/dist/tracekit.js.map +1 -0
- package/dist/transports/base.d.ts +22 -0
- package/dist/transports/base.d.ts.map +1 -0
- package/dist/transports/base.js +28 -0
- package/dist/transports/base.js.map +1 -0
- package/dist/transports/index.d.ts +3 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports/index.js +6 -0
- package/dist/transports/index.js.map +1 -0
- package/dist/transports/xhr.d.ts +10 -0
- package/dist/transports/xhr.d.ts.map +1 -0
- package/dist/transports/xhr.js +42 -0
- package/dist/transports/xhr.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/esm/backend.d.ts +40 -0
- package/esm/backend.d.ts.map +1 -0
- package/esm/backend.js +66 -0
- package/esm/backend.js.map +1 -0
- package/esm/client.d.ts +55 -0
- package/esm/client.d.ts.map +1 -0
- package/esm/client.js +49 -0
- package/esm/client.js.map +1 -0
- package/esm/crossPlatform.d.ts +21 -0
- package/esm/crossPlatform.d.ts.map +1 -0
- package/esm/crossPlatform.js +76 -0
- package/esm/crossPlatform.js.map +1 -0
- package/esm/eventbuilder.d.ts +11 -0
- package/esm/eventbuilder.d.ts.map +1 -0
- package/esm/eventbuilder.js +75 -0
- package/esm/eventbuilder.js.map +1 -0
- package/esm/flags.d.ts +3 -0
- package/esm/flags.d.ts.map +1 -0
- package/esm/flags.js +16 -0
- package/esm/flags.js.map +1 -0
- package/esm/helpers.d.ts +35 -0
- package/esm/helpers.d.ts.map +1 -0
- package/esm/helpers.js +229 -0
- package/esm/helpers.js.map +1 -0
- package/esm/index.d.ts +10 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +9 -0
- package/esm/index.js.map +1 -0
- package/esm/integrations/globalhandlers.d.ts +45 -0
- package/esm/integrations/globalhandlers.d.ts.map +1 -0
- package/esm/integrations/globalhandlers.js +134 -0
- package/esm/integrations/globalhandlers.js.map +1 -0
- package/esm/integrations/ignoreMpcrawlerErrors.d.ts +21 -0
- package/esm/integrations/ignoreMpcrawlerErrors.d.ts.map +1 -0
- package/esm/integrations/ignoreMpcrawlerErrors.js +38 -0
- package/esm/integrations/ignoreMpcrawlerErrors.js.map +1 -0
- package/esm/integrations/index.d.ts +7 -0
- package/esm/integrations/index.d.ts.map +1 -0
- package/esm/integrations/index.js +7 -0
- package/esm/integrations/index.js.map +1 -0
- package/esm/integrations/linkederrors.d.ts +40 -0
- package/esm/integrations/linkederrors.d.ts.map +1 -0
- package/esm/integrations/linkederrors.js +63 -0
- package/esm/integrations/linkederrors.js.map +1 -0
- package/esm/integrations/router.d.ts +28 -0
- package/esm/integrations/router.d.ts.map +1 -0
- package/esm/integrations/router.js +45 -0
- package/esm/integrations/router.js.map +1 -0
- package/esm/integrations/system.d.ts +17 -0
- package/esm/integrations/system.d.ts.map +1 -0
- package/esm/integrations/system.js +60 -0
- package/esm/integrations/system.js.map +1 -0
- package/esm/integrations/trycatch.d.ts +26 -0
- package/esm/integrations/trycatch.d.ts.map +1 -0
- package/esm/integrations/trycatch.js +164 -0
- package/esm/integrations/trycatch.js.map +1 -0
- package/esm/parsers.d.ts +21 -0
- package/esm/parsers.d.ts.map +1 -0
- package/esm/parsers.js +91 -0
- package/esm/parsers.js.map +1 -0
- package/esm/sdk.d.ts +99 -0
- package/esm/sdk.d.ts.map +1 -0
- package/esm/sdk.js +145 -0
- package/esm/sdk.js.map +1 -0
- package/esm/tracekit.d.ts +38 -0
- package/esm/tracekit.d.ts.map +1 -0
- package/esm/tracekit.js +219 -0
- package/esm/tracekit.js.map +1 -0
- package/esm/transports/base.d.ts +22 -0
- package/esm/transports/base.d.ts.map +1 -0
- package/esm/transports/base.js +26 -0
- package/esm/transports/base.js.map +1 -0
- package/esm/transports/index.d.ts +3 -0
- package/esm/transports/index.d.ts.map +1 -0
- package/esm/transports/index.js +3 -0
- package/esm/transports/index.js.map +1 -0
- package/esm/transports/xhr.d.ts +10 -0
- package/esm/transports/xhr.d.ts.map +1 -0
- package/esm/transports/xhr.js +40 -0
- package/esm/transports/xhr.js.map +1 -0
- package/esm/version.d.ts +3 -0
- package/esm/version.d.ts.map +1 -0
- package/esm/version.js +3 -0
- package/esm/version.js.map +1 -0
- package/package.json +68 -0
package/dist/tracekit.js
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
// tslint:disable:object-literal-sort-keys
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeStackTrace = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
// global reference to slice
|
|
6
|
+
var UNKNOWN_FUNCTION = "?";
|
|
7
|
+
// Chromium based browsers: Chrome, Brave, new Opera, new Edge
|
|
8
|
+
var chrome = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[-a-z]+:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
|
9
|
+
// gecko regex: `(?:bundle|\d+\.js)`: `bundle` is for react native, `\d+\.js` also but specifically for ram bundles because it
|
|
10
|
+
// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js
|
|
11
|
+
// We need this specific case for now because we want no other regex to match.
|
|
12
|
+
var gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js))(?::(\d+))?(?::(\d+))?\s*$/i;
|
|
13
|
+
var winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
|
|
14
|
+
var geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
|
|
15
|
+
var chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/;
|
|
16
|
+
var miniapp = /^\s*at (\w.*) \((\w*.js):(\d*):(\d*)/i;
|
|
17
|
+
/** JSDoc */
|
|
18
|
+
function computeStackTrace(ex) {
|
|
19
|
+
// console.log('computeStackTrace', ex)
|
|
20
|
+
// tslint:disable:no-unsafe-any
|
|
21
|
+
var stack = null;
|
|
22
|
+
var popSize = ex && ex.framesToPop;
|
|
23
|
+
try {
|
|
24
|
+
// This must be tried first because Opera 10 *destroys*
|
|
25
|
+
// its stacktrace property if you try to access the stack
|
|
26
|
+
// property first!!
|
|
27
|
+
stack = computeStackTraceFromStacktraceProp(ex);
|
|
28
|
+
if (stack) {
|
|
29
|
+
// console.log('computeStackTraceFromStacktraceProp', stack, popSize, popFrames(stack, popSize))
|
|
30
|
+
return popFrames(stack, popSize);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
// no-empty
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
stack = computeStackTraceFromStackProp(ex);
|
|
38
|
+
if (stack) {
|
|
39
|
+
// console.log('computeStackTraceFromStackProp', stack, popSize, popFrames(stack, popSize))
|
|
40
|
+
return popFrames(stack, popSize);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
// no-empty
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
message: extractMessage(ex),
|
|
48
|
+
name: ex && ex.name,
|
|
49
|
+
stack: [],
|
|
50
|
+
failed: true,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exports.computeStackTrace = computeStackTrace;
|
|
54
|
+
/** JSDoc */
|
|
55
|
+
// tslint:disable-next-line:cyclomatic-complexity
|
|
56
|
+
function computeStackTraceFromStackProp(ex) {
|
|
57
|
+
// tslint:disable:no-conditional-assignment
|
|
58
|
+
if (!ex || !ex.stack) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
var stack = [];
|
|
62
|
+
var lines = ex.stack.split("\n");
|
|
63
|
+
var isEval;
|
|
64
|
+
var submatch;
|
|
65
|
+
var parts;
|
|
66
|
+
var element;
|
|
67
|
+
// console.log('lines', lines)
|
|
68
|
+
for (var i = 0; i < lines.length; ++i) {
|
|
69
|
+
// console.log(lines[i], chrome.exec(lines[i]), winjs.exec(lines[i]), gecko.exec(lines[i]))
|
|
70
|
+
if ((parts = chrome.exec(lines[i]))) {
|
|
71
|
+
var isNative = parts[2] && parts[2].indexOf("native") === 0; // start of line
|
|
72
|
+
isEval = parts[2] && parts[2].indexOf("eval") === 0; // start of line
|
|
73
|
+
if (isEval && (submatch = chromeEval.exec(parts[2]))) {
|
|
74
|
+
// throw out eval line/column and use top-most line/column number
|
|
75
|
+
parts[2] = submatch[1]; // url
|
|
76
|
+
parts[3] = submatch[2]; // line
|
|
77
|
+
parts[4] = submatch[3]; // column
|
|
78
|
+
}
|
|
79
|
+
element = {
|
|
80
|
+
url: parts[2],
|
|
81
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
82
|
+
args: isNative ? [parts[2]] : [],
|
|
83
|
+
line: parts[3] ? +parts[3] : null,
|
|
84
|
+
column: parts[4] ? +parts[4] : null,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
else if ((parts = winjs.exec(lines[i]))) {
|
|
88
|
+
element = {
|
|
89
|
+
url: parts[2],
|
|
90
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
91
|
+
args: [],
|
|
92
|
+
line: +parts[3],
|
|
93
|
+
column: parts[4] ? +parts[4] : null,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
else if ((parts = gecko.exec(lines[i]))) {
|
|
97
|
+
isEval = parts[3] && parts[3].indexOf(" > eval") > -1;
|
|
98
|
+
if (isEval && (submatch = geckoEval.exec(parts[3]))) {
|
|
99
|
+
// throw out eval line/column and use top-most line number
|
|
100
|
+
parts[1] = parts[1] || "eval";
|
|
101
|
+
parts[3] = submatch[1];
|
|
102
|
+
parts[4] = submatch[2];
|
|
103
|
+
parts[5] = ""; // no column when eval
|
|
104
|
+
}
|
|
105
|
+
else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {
|
|
106
|
+
// FireFox uses this awesome columnNumber property for its top frame
|
|
107
|
+
// Also note, Firefox's column number is 0-based and everything else expects 1-based,
|
|
108
|
+
// so adding 1
|
|
109
|
+
// NOTE: this hack doesn't work if top-most frame is eval
|
|
110
|
+
stack[0].column = ex.columnNumber + 1;
|
|
111
|
+
}
|
|
112
|
+
element = {
|
|
113
|
+
url: parts[3],
|
|
114
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
115
|
+
args: parts[2] ? parts[2].split(",") : [],
|
|
116
|
+
line: parts[4] ? +parts[4] : null,
|
|
117
|
+
column: parts[5] ? +parts[5] : null,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
else if ((parts = miniapp.exec(lines[i]))) {
|
|
121
|
+
element = {
|
|
122
|
+
url: parts[2],
|
|
123
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
124
|
+
args: [],
|
|
125
|
+
line: parts[3] ? +parts[3] : null,
|
|
126
|
+
column: parts[4] ? +parts[4] : null,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (!element.func && element.line) {
|
|
133
|
+
element.func = UNKNOWN_FUNCTION;
|
|
134
|
+
}
|
|
135
|
+
stack.push(element);
|
|
136
|
+
}
|
|
137
|
+
if (!stack.length) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
message: extractMessage(ex),
|
|
142
|
+
name: ex.name,
|
|
143
|
+
stack: stack,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/** JSDoc */
|
|
147
|
+
function computeStackTraceFromStacktraceProp(ex) {
|
|
148
|
+
if (!ex || !ex.stacktrace) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
// Access and store the stacktrace property before doing ANYTHING
|
|
152
|
+
// else to it because Opera is not very good at providing it
|
|
153
|
+
// reliably in other circumstances.
|
|
154
|
+
var stacktrace = ex.stacktrace;
|
|
155
|
+
var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
|
|
156
|
+
var opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i;
|
|
157
|
+
var lines = stacktrace.split("\n");
|
|
158
|
+
var stack = [];
|
|
159
|
+
var parts;
|
|
160
|
+
for (var line = 0; line < lines.length; line += 2) {
|
|
161
|
+
// tslint:disable:no-conditional-assignment
|
|
162
|
+
var element = null;
|
|
163
|
+
if ((parts = opera10Regex.exec(lines[line]))) {
|
|
164
|
+
element = {
|
|
165
|
+
url: parts[2],
|
|
166
|
+
func: parts[3],
|
|
167
|
+
args: [],
|
|
168
|
+
line: +parts[1],
|
|
169
|
+
column: null,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
else if ((parts = opera11Regex.exec(lines[line]))) {
|
|
173
|
+
element = {
|
|
174
|
+
url: parts[6],
|
|
175
|
+
func: parts[3] || parts[4],
|
|
176
|
+
args: parts[5] ? parts[5].split(",") : [],
|
|
177
|
+
line: +parts[1],
|
|
178
|
+
column: +parts[2],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
if (element) {
|
|
182
|
+
if (!element.func && element.line) {
|
|
183
|
+
element.func = UNKNOWN_FUNCTION;
|
|
184
|
+
}
|
|
185
|
+
stack.push(element);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (!stack.length) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
message: extractMessage(ex),
|
|
193
|
+
name: ex.name,
|
|
194
|
+
stack: stack,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
/** Remove N number of frames from the stack */
|
|
198
|
+
function popFrames(stacktrace, popSize) {
|
|
199
|
+
try {
|
|
200
|
+
return tslib_1.__assign(tslib_1.__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });
|
|
201
|
+
}
|
|
202
|
+
catch (e) {
|
|
203
|
+
return stacktrace;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* There are cases where stacktrace.message is an Event object
|
|
208
|
+
* https://github.com/getsentry/sentry-javascript/issues/1949
|
|
209
|
+
* In this specific case we try to extract stacktrace.message.error.message
|
|
210
|
+
*/
|
|
211
|
+
function extractMessage(ex) {
|
|
212
|
+
var message = ex && ex.message;
|
|
213
|
+
// console.log('message',message)
|
|
214
|
+
if (!message) {
|
|
215
|
+
return "No error message";
|
|
216
|
+
}
|
|
217
|
+
if (message.error && typeof message.error.message === "string") {
|
|
218
|
+
return message.error.message;
|
|
219
|
+
}
|
|
220
|
+
return message;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=tracekit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracekit.js","sourceRoot":"","sources":["../src/tracekit.ts"],"names":[],"mappings":"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","sourcesContent":["// tslint:disable:object-literal-sort-keys\n\n/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\n\n/**\n * An object representing a single stack frame.\n * {Object} StackFrame\n * {string} url The JavaScript or HTML file URL.\n * {string} func The function name, or empty for anonymous functions (if guessing did not work).\n * {string[]?} args The arguments passed to the function, if known.\n * {number=} line The line number, if known.\n * {number=} column The column number, if known.\n * {string[]} context An array of source code lines; the middle element corresponds to the correct line#.\n */\nexport interface StackFrame {\n url: string;\n func: string;\n args: string[];\n line: number | null;\n column: number | null;\n}\n\n/**\n * An object representing a JavaScript stack trace.\n * {Object} StackTrace\n * {string} name The name of the thrown exception.\n * {string} message The exception error message.\n * {TraceKit.StackFrame[]} stack An array of stack frames.\n */\nexport interface StackTrace {\n name: string;\n message: string;\n mechanism?: string;\n stack: StackFrame[];\n failed?: boolean;\n}\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = \"?\";\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[-a-z]+:|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js))(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nconst geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nconst chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nconst miniapp = /^\\s*at (\\w.*) \\((\\w*.js):(\\d*):(\\d*)/i;\n\n/** JSDoc */\nexport function computeStackTrace(ex: any): StackTrace {\n // console.log('computeStackTrace', ex)\n // tslint:disable:no-unsafe-any\n\n let stack = null;\n const popSize: number = ex && ex.framesToPop;\n\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n // console.log('computeStackTraceFromStacktraceProp', stack, popSize, popFrames(stack, popSize))\n return popFrames(stack, popSize);\n }\n } catch (e) {\n // no-empty\n }\n\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n // console.log('computeStackTraceFromStackProp', stack, popSize, popFrames(stack, popSize))\n return popFrames(stack, popSize);\n }\n } catch (e) {\n // no-empty\n }\n\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n\n/** JSDoc */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction computeStackTraceFromStackProp(ex: any): StackTrace | null {\n // tslint:disable:no-conditional-assignment\n if (!ex || !ex.stack) {\n return null;\n }\n\n const stack = [];\n const lines = ex.stack.split(\"\\n\");\n let isEval;\n let submatch;\n let parts;\n let element;\n // console.log('lines', lines)\n\n for (let i = 0; i < lines.length; ++i) {\n // console.log(lines[i], chrome.exec(lines[i]), winjs.exec(lines[i]), gecko.exec(lines[i]))\n if ((parts = chrome.exec(lines[i]))) {\n const isNative = parts[2] && parts[2].indexOf(\"native\") === 0; // start of line\n isEval = parts[2] && parts[2].indexOf(\"eval\") === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n } else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(\" > eval\") > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || `eval`;\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = \"\"; // no column when eval\n } else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = (ex.columnNumber as number) + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(\",\") : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n } else if ((parts = miniapp.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack,\n };\n}\n\n/** JSDoc */\nfunction computeStackTraceFromStacktraceProp(ex: any): StackTrace | null {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace;\n const opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n const opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i;\n const lines = stacktrace.split(\"\\n\");\n const stack = [];\n let parts;\n\n for (let line = 0; line < lines.length; line += 2) {\n // tslint:disable:no-conditional-assignment\n let element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n } else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(\",\") : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack,\n };\n}\n\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace: StackTrace, popSize: number): StackTrace {\n try {\n return {\n ...stacktrace,\n stack: stacktrace.stack.slice(popSize),\n };\n } catch (e) {\n return stacktrace;\n }\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: any): string {\n const message = ex && ex.message;\n // console.log('message',message)\n if (!message) {\n return \"No error message\";\n }\n if (message.error && typeof message.error.message === \"string\") {\n return message.error.message;\n }\n return message;\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Event, Response, Transport, TransportOptions } from "@sentry/types";
|
|
2
|
+
import { PromiseBuffer } from "@sentry/utils";
|
|
3
|
+
/** Base Transport class implementation */
|
|
4
|
+
export declare abstract class BaseTransport implements Transport {
|
|
5
|
+
options: TransportOptions;
|
|
6
|
+
/**
|
|
7
|
+
* @inheritDoc
|
|
8
|
+
*/
|
|
9
|
+
url: string;
|
|
10
|
+
/** A simple buffer holding all requests. */
|
|
11
|
+
protected readonly _buffer: PromiseBuffer<Response>;
|
|
12
|
+
constructor(options: TransportOptions);
|
|
13
|
+
/**
|
|
14
|
+
* @inheritDoc
|
|
15
|
+
*/
|
|
16
|
+
sendEvent(_: Event): PromiseLike<Response>;
|
|
17
|
+
/**
|
|
18
|
+
* @inheritDoc
|
|
19
|
+
*/
|
|
20
|
+
close(timeout?: number): PromiseLike<boolean>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/transports/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAqB,aAAa,EAAe,MAAM,eAAe,CAAC;AAE9E,0CAA0C;AAC1C,8BAAsB,aAAc,YAAW,SAAS;IAS5B,OAAO,EAAE,gBAAgB;IARnD;;OAEG;IACI,GAAG,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAyB;gBAElD,OAAO,EAAE,gBAAgB;IAInD;;OAEG;IACI,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;IAMjD;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC;CAGrD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.BaseTransport = void 0;
|
|
3
|
+
var core_1 = require("@sentry/core");
|
|
4
|
+
var utils_1 = require("@sentry/utils");
|
|
5
|
+
/** Base Transport class implementation */
|
|
6
|
+
var BaseTransport = /** @class */ (function () {
|
|
7
|
+
function BaseTransport(options) {
|
|
8
|
+
this.options = options;
|
|
9
|
+
/** A simple buffer holding all requests. */
|
|
10
|
+
this._buffer = utils_1.makePromiseBuffer(30);
|
|
11
|
+
this.url = new core_1.API(this.options.dsn).getStoreEndpointWithUrlEncodedAuth();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @inheritDoc
|
|
15
|
+
*/
|
|
16
|
+
BaseTransport.prototype.sendEvent = function (_) {
|
|
17
|
+
throw new utils_1.SentryError("Transport Class has to implement `sendEvent` method");
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @inheritDoc
|
|
21
|
+
*/
|
|
22
|
+
BaseTransport.prototype.close = function (timeout) {
|
|
23
|
+
return this._buffer.drain(timeout);
|
|
24
|
+
};
|
|
25
|
+
return BaseTransport;
|
|
26
|
+
}());
|
|
27
|
+
exports.BaseTransport = BaseTransport;
|
|
28
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/transports/base.ts"],"names":[],"mappings":";;AAAA,qCAAmC;AAEnC,uCAA8E;AAE9E,0CAA0C;AAC1C;IASE,uBAA0B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAHnD,4CAA4C;QACzB,YAAO,GAA4B,yBAAiB,CAAC,EAAE,CAAC,CAAC;QAG1E,IAAI,CAAC,GAAG,GAAG,IAAI,UAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,kCAAkC,EAAE,CAAC;IAC5E,CAAC;IAED;;OAEG;IACI,iCAAS,GAAhB,UAAiB,CAAQ;QACvB,MAAM,IAAI,mBAAW,CACnB,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,6BAAK,GAAZ,UAAa,OAAgB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACH,oBAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BqB,sCAAa","sourcesContent":["import { API } from \"@sentry/core\";\nimport { Event, Response, Transport, TransportOptions } from \"@sentry/types\";\nimport { makePromiseBuffer, PromiseBuffer, SentryError } from \"@sentry/utils\";\n\n/** Base Transport class implementation */\nexport abstract class BaseTransport implements Transport {\n /**\n * @inheritDoc\n */\n public url: string;\n\n /** A simple buffer holding all requests. */\n protected readonly _buffer: PromiseBuffer<Response> = makePromiseBuffer(30);\n\n public constructor(public options: TransportOptions) {\n this.url = new API(this.options.dsn).getStoreEndpointWithUrlEncodedAuth();\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike<Response> {\n throw new SentryError(\n \"Transport Class has to implement `sendEvent` method\"\n );\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike<boolean> {\n return this._buffer.drain(timeout);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
var base_1 = require("./base");
|
|
3
|
+
Object.defineProperty(exports, "BaseTransport", { enumerable: true, get: function () { return base_1.BaseTransport; } });
|
|
4
|
+
var xhr_1 = require("./xhr");
|
|
5
|
+
Object.defineProperty(exports, "XHRTransport", { enumerable: true, get: function () { return xhr_1.XHRTransport; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transports/index.ts"],"names":[],"mappings":";AAAA,+BAAuC;AAA9B,qGAAA,aAAa,OAAA;AACtB,6BAAqC;AAA5B,mGAAA,YAAY,OAAA","sourcesContent":["export { BaseTransport } from \"./base\";\nexport { XHRTransport } from \"./xhr\";\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Event, Response } from "@sentry/types";
|
|
2
|
+
import { BaseTransport } from "./base";
|
|
3
|
+
/** `XHR` based transport */
|
|
4
|
+
export declare class XHRTransport extends BaseTransport {
|
|
5
|
+
/**
|
|
6
|
+
* @inheritDoc
|
|
7
|
+
*/
|
|
8
|
+
sendEvent(event: Event): PromiseLike<Response>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=xhr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhr.d.ts","sourceRoot":"","sources":["../../src/transports/xhr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,4BAA4B;AAC5B,qBAAa,YAAa,SAAQ,aAAa;IAC7C;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;CAyBtD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.XHRTransport = void 0;
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var utils_1 = require("@sentry/utils");
|
|
5
|
+
var crossPlatform_1 = require("../crossPlatform");
|
|
6
|
+
var base_1 = require("./base");
|
|
7
|
+
/** `XHR` based transport */
|
|
8
|
+
var XHRTransport = /** @class */ (function (_super) {
|
|
9
|
+
tslib_1.__extends(XHRTransport, _super);
|
|
10
|
+
function XHRTransport() {
|
|
11
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @inheritDoc
|
|
15
|
+
*/
|
|
16
|
+
XHRTransport.prototype.sendEvent = function (event) {
|
|
17
|
+
var _this = this;
|
|
18
|
+
var request = crossPlatform_1.sdk.request || crossPlatform_1.sdk.httpRequest;
|
|
19
|
+
return this._buffer.add(function () { return new Promise(function (resolve, reject) {
|
|
20
|
+
// tslint:disable-next-line: no-unsafe-any
|
|
21
|
+
request({
|
|
22
|
+
url: _this.url,
|
|
23
|
+
method: "POST",
|
|
24
|
+
data: JSON.stringify(event),
|
|
25
|
+
header: {
|
|
26
|
+
"content-type": "application/json"
|
|
27
|
+
},
|
|
28
|
+
success: function (res) {
|
|
29
|
+
resolve({
|
|
30
|
+
status: utils_1.eventStatusFromHttpCode(res.statusCode)
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
fail: function (error) {
|
|
34
|
+
reject(error);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}); });
|
|
38
|
+
};
|
|
39
|
+
return XHRTransport;
|
|
40
|
+
}(base_1.BaseTransport));
|
|
41
|
+
exports.XHRTransport = XHRTransport;
|
|
42
|
+
//# sourceMappingURL=xhr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../src/transports/xhr.ts"],"names":[],"mappings":";;;AACA,uCAAwD;AAExD,kDAAuC;AAEvC,+BAAuC;AAEvC,4BAA4B;AAC5B;IAAkC,wCAAa;IAA/C;;IA6BA,CAAC;IA5BC;;OAEG;IACI,gCAAS,GAAhB,UAAiB,KAAY;QAA7B,iBAwBC;QAvBC,IAAM,OAAO,GAAG,mBAAG,CAAC,OAAO,IAAI,mBAAG,CAAC,WAAW,CAAC;QAE/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,cAAM,OAAA,IAAI,OAAO,CAAW,UAAC,OAAO,EAAE,MAAM;YAC1C,0CAA0C;YAC1C,OAAO,CAAC;gBACN,GAAG,EAAE,KAAI,CAAC,GAAG;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC3B,MAAM,EAAE;oBACN,cAAc,EAAE,kBAAkB;iBACnC;gBACD,OAAO,EAAP,UAAQ,GAA2B;oBACjC,OAAO,CAAC;wBACN,MAAM,EAAE,+BAAuB,CAAC,GAAG,CAAC,UAAU,CAAC;qBAChD,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,EAAJ,UAAK,KAAa;oBAChB,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,EAlBI,CAkBJ,CACH,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AA7BD,CAAkC,oBAAa,GA6B9C;AA7BY,oCAAY","sourcesContent":["import { Event, Response } from \"@sentry/types\";\nimport { eventStatusFromHttpCode } from '@sentry/utils';\n\nimport { sdk } from \"../crossPlatform\";\n\nimport { BaseTransport } from \"./base\";\n\n/** `XHR` based transport */\nexport class XHRTransport extends BaseTransport {\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike<Response> {\n const request = sdk.request || sdk.httpRequest;\n\n return this._buffer.add(\n () => new Promise<Response>((resolve, reject) => {\n // tslint:disable-next-line: no-unsafe-any\n request({\n url: this.url,\n method: \"POST\",\n data: JSON.stringify(event),\n header: {\n \"content-type\": \"application/json\"\n },\n success(res: { statusCode: number }): void {\n resolve({\n status: eventStatusFromHttpCode(res.statusCode)\n });\n },\n fail(error: object): void {\n reject(error);\n }\n });\n })\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,8BAA8B,CAAC;AACpD,eAAO,MAAM,WAAW,WAAW,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;AAAa,QAAA,QAAQ,GAAG,2BAA2B,CAAC;AACvC,QAAA,WAAW,GAAG,QAAQ,CAAC","sourcesContent":["export const SDK_NAME = \"sentry.javascript.miniapp\";\nexport const SDK_VERSION = \"0.12.0\";\n"]}
|
package/esm/backend.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BaseBackend } from "@sentry/core";
|
|
2
|
+
import { Event, EventHint, Options, Severity, Transport } from "@sentry/types";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for the Sentry Miniapp SDK.
|
|
5
|
+
* Sentry Miniapp SDK 的配置选项。
|
|
6
|
+
* @see MiniappClient for more information.
|
|
7
|
+
*/
|
|
8
|
+
export interface MiniappOptions extends Options {
|
|
9
|
+
/**
|
|
10
|
+
* A pattern for error URLs which should not be sent to Sentry.
|
|
11
|
+
* To whitelist certain errors instead, use {@link Options.whitelistUrls}.
|
|
12
|
+
* By default, all errors will be sent.
|
|
13
|
+
*/
|
|
14
|
+
blacklistUrls?: Array<string | RegExp>;
|
|
15
|
+
/**
|
|
16
|
+
* A pattern for error URLs which should exclusively be sent to Sentry.
|
|
17
|
+
* This is the opposite of {@link Options.blacklistUrls}.
|
|
18
|
+
* By default, all errors will be sent.
|
|
19
|
+
*/
|
|
20
|
+
whitelistUrls?: Array<string | RegExp>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The Sentry Browser SDK Backend.
|
|
24
|
+
* @hidden
|
|
25
|
+
*/
|
|
26
|
+
export declare class MiniappBackend extends BaseBackend<MiniappOptions> {
|
|
27
|
+
/**
|
|
28
|
+
* @inheritDoc
|
|
29
|
+
*/
|
|
30
|
+
protected _setupTransport(): Transport;
|
|
31
|
+
/**
|
|
32
|
+
* @inheritDoc
|
|
33
|
+
*/
|
|
34
|
+
eventFromException(exception: any, hint?: EventHint): PromiseLike<Event>;
|
|
35
|
+
/**
|
|
36
|
+
* @inheritDoc
|
|
37
|
+
*/
|
|
38
|
+
eventFromMessage(message: string, level?: Severity, hint?: EventHint): PromiseLike<Event>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/E;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEvC;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,cAAc,CAAC;IAC7D;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,SAAS;IAkBtC;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;IAe/E;;OAEG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,QAAwB,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;CAWhH"}
|
package/esm/backend.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { __assign, __extends } from "tslib";
|
|
2
|
+
import { BaseBackend } from "@sentry/core";
|
|
3
|
+
import { Severity } from "@sentry/types";
|
|
4
|
+
import { addExceptionMechanism, resolvedSyncPromise } from '@sentry/utils';
|
|
5
|
+
import { eventFromString, eventFromUnknownInput } from './eventbuilder';
|
|
6
|
+
import { XHRTransport } from "./transports/index";
|
|
7
|
+
/**
|
|
8
|
+
* The Sentry Browser SDK Backend.
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
var MiniappBackend = /** @class */ (function (_super) {
|
|
12
|
+
__extends(MiniappBackend, _super);
|
|
13
|
+
function MiniappBackend() {
|
|
14
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @inheritDoc
|
|
18
|
+
*/
|
|
19
|
+
MiniappBackend.prototype._setupTransport = function () {
|
|
20
|
+
if (!this._options.dsn) {
|
|
21
|
+
// We return the noop transport here in case there is no Dsn.
|
|
22
|
+
return _super.prototype._setupTransport.call(this);
|
|
23
|
+
}
|
|
24
|
+
var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn });
|
|
25
|
+
if (this._options.transport) {
|
|
26
|
+
return new this._options.transport(transportOptions);
|
|
27
|
+
}
|
|
28
|
+
return new XHRTransport(transportOptions);
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* @inheritDoc
|
|
32
|
+
*/
|
|
33
|
+
MiniappBackend.prototype.eventFromException = function (exception, hint) {
|
|
34
|
+
var syntheticException = (hint && hint.syntheticException) || undefined;
|
|
35
|
+
var event = eventFromUnknownInput(exception, syntheticException, {
|
|
36
|
+
attachStacktrace: this._options.attachStacktrace,
|
|
37
|
+
});
|
|
38
|
+
addExceptionMechanism(event, {
|
|
39
|
+
handled: true,
|
|
40
|
+
type: 'generic',
|
|
41
|
+
});
|
|
42
|
+
event.level = Severity.Error;
|
|
43
|
+
if (hint && hint.event_id) {
|
|
44
|
+
event.event_id = hint.event_id;
|
|
45
|
+
}
|
|
46
|
+
return resolvedSyncPromise(event);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* @inheritDoc
|
|
50
|
+
*/
|
|
51
|
+
MiniappBackend.prototype.eventFromMessage = function (message, level, hint) {
|
|
52
|
+
if (level === void 0) { level = Severity.Info; }
|
|
53
|
+
var syntheticException = (hint && hint.syntheticException) || undefined;
|
|
54
|
+
var event = eventFromString(message, syntheticException, {
|
|
55
|
+
attachStacktrace: this._options.attachStacktrace,
|
|
56
|
+
});
|
|
57
|
+
event.level = level;
|
|
58
|
+
if (hint && hint.event_id) {
|
|
59
|
+
event.event_id = hint.event_id;
|
|
60
|
+
}
|
|
61
|
+
return resolvedSyncPromise(event);
|
|
62
|
+
};
|
|
63
|
+
return MiniappBackend;
|
|
64
|
+
}(BaseBackend));
|
|
65
|
+
export { MiniappBackend };
|
|
66
|
+
//# sourceMappingURL=backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAA6B,QAAQ,EAAa,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAuBlD;;;GAGG;AACH;IAAoC,kCAA2B;IAA/D;;IAsDA,CAAC;IArDC;;OAEG;IACO,wCAAe,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACtB,6DAA6D;YAC7D,OAAO,iBAAM,eAAe,WAAE,CAAC;SAChC;QAED,IAAM,gBAAgB,yBACjB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KACjC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,GACvB,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;SACtD;QAED,OAAO,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,2CAAkB,GAAzB,UAA0B,SAAc,EAAE,IAAgB;QACxD,IAAM,kBAAkB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;QAC1E,IAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE;YACjE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;SACjD,CAAC,CAAC;QACH,qBAAqB,CAAC,KAAK,EAAE;YAC3B,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAChC;QACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACD;;OAEG;IACI,yCAAgB,GAAvB,UAAwB,OAAe,EAAE,KAA+B,EAAE,IAAgB;QAAjD,sBAAA,EAAA,QAAkB,QAAQ,CAAC,IAAI;QACtE,IAAM,kBAAkB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;QAC1E,IAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE;YACzD,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;SACjD,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAChC;QACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACH,qBAAC;AAAD,CAAC,AAtDD,CAAoC,WAAW,GAsD9C","sourcesContent":["import { BaseBackend } from \"@sentry/core\";\nimport { Event, EventHint, Options, Severity, Transport } from \"@sentry/types\";\nimport { addExceptionMechanism, resolvedSyncPromise } from '@sentry/utils';\n\nimport { eventFromString, eventFromUnknownInput } from './eventbuilder';\nimport { XHRTransport } from \"./transports/index\";\n\n/**\n * Configuration options for the Sentry Miniapp SDK.\n * Sentry Miniapp SDK 的配置选项。\n * @see MiniappClient for more information.\n */\nexport interface MiniappOptions extends Options {\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To whitelist certain errors instead, use {@link Options.whitelistUrls}.\n * By default, all errors will be sent.\n */\n blacklistUrls?: Array<string | RegExp>;\n\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.blacklistUrls}.\n * By default, all errors will be sent.\n */\n whitelistUrls?: Array<string | RegExp>;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class MiniappBackend extends BaseBackend<MiniappOptions> {\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn\n };\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n\n return new XHRTransport(transportOptions);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: any, hint?: EventHint): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n }\n}\n"]}
|
package/esm/client.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { BaseClient, Scope } from "@sentry/core";
|
|
2
|
+
import { DsnLike, Event, EventHint } from "@sentry/types";
|
|
3
|
+
import { MiniappBackend, MiniappOptions } from "./backend";
|
|
4
|
+
/**
|
|
5
|
+
* All properties the report dialog supports
|
|
6
|
+
*/
|
|
7
|
+
export interface ReportDialogOptions {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
eventId?: string;
|
|
10
|
+
dsn?: DsnLike;
|
|
11
|
+
user?: {
|
|
12
|
+
email?: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
};
|
|
15
|
+
lang?: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
subtitle?: string;
|
|
18
|
+
subtitle2?: string;
|
|
19
|
+
labelName?: string;
|
|
20
|
+
labelEmail?: string;
|
|
21
|
+
labelComments?: string;
|
|
22
|
+
labelClose?: string;
|
|
23
|
+
labelSubmit?: string;
|
|
24
|
+
errorGeneric?: string;
|
|
25
|
+
errorFormEntry?: string;
|
|
26
|
+
successMessage?: string;
|
|
27
|
+
/** Callback after reportDialog showed up */
|
|
28
|
+
onLoad?(): void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The Sentry Miniapp SDK Client.
|
|
32
|
+
*
|
|
33
|
+
* @see MiniappOptions for documentation on configuration options.
|
|
34
|
+
* @see SentryClient for usage documentation.
|
|
35
|
+
*/
|
|
36
|
+
export declare class MiniappClient extends BaseClient<MiniappBackend, MiniappOptions> {
|
|
37
|
+
/**
|
|
38
|
+
* Creates a new Miniapp SDK instance.
|
|
39
|
+
*
|
|
40
|
+
* @param options Configuration options for this SDK.
|
|
41
|
+
*/
|
|
42
|
+
constructor(options?: MiniappOptions);
|
|
43
|
+
/**
|
|
44
|
+
* @inheritDoc
|
|
45
|
+
*/
|
|
46
|
+
protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null>;
|
|
47
|
+
/**
|
|
48
|
+
* Show a report dialog to the user to send feedback to a specific event.
|
|
49
|
+
* 向用户显示报告对话框以将反馈发送到特定事件。---> 小程序上暂时用不到&不考虑。
|
|
50
|
+
*
|
|
51
|
+
* @param options Set individual options for the dialog
|
|
52
|
+
*/
|
|
53
|
+
showReportDialog(options?: ReportDialogOptions): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,MAAM,CAAC,IAAI,IAAI,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU,CAAC,cAAc,EAAE,cAAc,CAAC;IAC3E;;;;OAIG;gBACgB,OAAO,GAAE,cAAmB;IAI/C;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IAkBjG;;;;;OAKG;IACI,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,GAAG,IAAI;CAIjE"}
|