@cloudcare/browser-core 3.2.9 → 3.2.11
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/cjs/dataMap.js +8 -6
- package/cjs/dataMap.js.map +1 -1
- package/cjs/helper/sanitize.js +12 -5
- package/cjs/helper/sanitize.js.map +1 -1
- package/cjs/helper/taskQueue.js.map +1 -1
- package/cjs/helper/tools.js +1 -1
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/tracekit/computeStackTrace.js +5 -1
- package/cjs/tracekit/computeStackTrace.js.map +1 -1
- package/esm/dataMap.js +8 -6
- package/esm/dataMap.js.map +1 -1
- package/esm/helper/sanitize.js +12 -5
- package/esm/helper/sanitize.js.map +1 -1
- package/esm/helper/taskQueue.js.map +1 -1
- package/esm/helper/tools.js +1 -1
- package/esm/helper/tools.js.map +1 -1
- package/esm/tracekit/computeStackTrace.js +5 -1
- package/esm/tracekit/computeStackTrace.js.map +1 -1
- package/package.json +2 -2
- package/src/dataMap.js +8 -6
- package/src/helper/sanitize.js +14 -5
- package/src/helper/taskQueue.js +1 -1
- package/src/helper/tools.js +1 -1
- package/src/tracekit/computeStackTrace.js +35 -14
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcare/browser-core",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.11",
|
|
4
4
|
"main": "cjs/index.js",
|
|
5
5
|
"module": "esm/index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"author": "dataflux",
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"description": "DataFlux RUM Web 端数据指标监控",
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "d1439ec0f5e5586dd59466f7aaafabf5afdcb8e3"
|
|
26
26
|
}
|
package/src/dataMap.js
CHANGED
|
@@ -98,12 +98,6 @@ export var dataMap = {
|
|
|
98
98
|
trace_id: '_gc.trace_id',
|
|
99
99
|
span_id: '_gc.span_id',
|
|
100
100
|
resource_id: 'resource.id',
|
|
101
|
-
resource_url: 'resource.url',
|
|
102
|
-
resource_url_host: 'resource.url_host',
|
|
103
|
-
resource_url_path: 'resource.url_path',
|
|
104
|
-
resource_url_path_group: 'resource.url_path_group',
|
|
105
|
-
resource_url_query: 'resource.url_query',
|
|
106
|
-
resource_type: 'resource.type',
|
|
107
101
|
resource_status: 'resource.status',
|
|
108
102
|
resource_status_group: 'resource.status_group',
|
|
109
103
|
resource_method: 'resource.method'
|
|
@@ -111,6 +105,14 @@ export var dataMap = {
|
|
|
111
105
|
fields: {
|
|
112
106
|
duration: 'resource.duration',
|
|
113
107
|
resource_size: 'resource.size',
|
|
108
|
+
resource_url: 'resource.url',
|
|
109
|
+
resource_url_host: 'resource.url_host',
|
|
110
|
+
resource_url_path: 'resource.url_path',
|
|
111
|
+
resource_url_path_group: 'resource.url_path_group',
|
|
112
|
+
resource_url_query: 'resource.url_query',
|
|
113
|
+
resource_delivery_type: 'resource.delivery_type',
|
|
114
|
+
resource_type: 'resource.type',
|
|
115
|
+
resource_protocol: 'resource.protocol',
|
|
114
116
|
resource_encode_size: 'resource.encoded_body_size',
|
|
115
117
|
resource_decode_size: 'resource.decoded_body_size',
|
|
116
118
|
resource_transfer_size: 'resource.transfer_size',
|
package/src/helper/sanitize.js
CHANGED
|
@@ -210,11 +210,11 @@ function sanitizeObjects(value) {
|
|
|
210
210
|
try {
|
|
211
211
|
// Handle events - Keep a simple implementation to avoid breaking changes
|
|
212
212
|
if (value instanceof Event) {
|
|
213
|
-
return
|
|
214
|
-
|
|
215
|
-
|
|
213
|
+
return sanitizeEvent(value)
|
|
214
|
+
}
|
|
215
|
+
if (value instanceof RegExp) {
|
|
216
|
+
return `[RegExp] ${value.toString()}`
|
|
216
217
|
}
|
|
217
|
-
|
|
218
218
|
// Handle all remaining object types in a generic way
|
|
219
219
|
var result = Object.prototype.toString.call(value)
|
|
220
220
|
var match = result.match(/\[object (.*)\]/)
|
|
@@ -227,7 +227,16 @@ function sanitizeObjects(value) {
|
|
|
227
227
|
}
|
|
228
228
|
return '[Unserializable]'
|
|
229
229
|
}
|
|
230
|
-
|
|
230
|
+
function sanitizeEvent(event) {
|
|
231
|
+
return {
|
|
232
|
+
type: event.type,
|
|
233
|
+
isTrusted: event.isTrusted,
|
|
234
|
+
currentTarget: event.currentTarget
|
|
235
|
+
? sanitizeObjects(event.currentTarget)
|
|
236
|
+
: null,
|
|
237
|
+
target: event.target ? sanitizeObjects(event.target) : null
|
|
238
|
+
}
|
|
239
|
+
}
|
|
231
240
|
/**
|
|
232
241
|
* Checks if a toJSON function exists and tries to execute it
|
|
233
242
|
*
|
package/src/helper/taskQueue.js
CHANGED
package/src/helper/tools.js
CHANGED
|
@@ -1383,7 +1383,7 @@ export var stringSplice = function (src, k, e, sp) {
|
|
|
1383
1383
|
return src.substring(ps, pe)
|
|
1384
1384
|
}
|
|
1385
1385
|
export function getStatusGroup(status) {
|
|
1386
|
-
if (!status) return status
|
|
1386
|
+
if (!status) return status === 0 ? undefined : status
|
|
1387
1387
|
return (
|
|
1388
1388
|
String(status).substr(0, 1) + String(status).substr(1).replace(/\d*/g, 'x')
|
|
1389
1389
|
)
|
|
@@ -8,10 +8,17 @@ export function computeStackTrace(ex) {
|
|
|
8
8
|
var stack = []
|
|
9
9
|
|
|
10
10
|
var stackProperty = tryToGetString(ex, 'stack')
|
|
11
|
+
var exString = String(ex)
|
|
12
|
+
if (stackProperty && stackProperty.startsWith(exString)) {
|
|
13
|
+
stackProperty = stackProperty.slice(exString.length)
|
|
14
|
+
}
|
|
11
15
|
if (stackProperty) {
|
|
12
|
-
each(stackProperty.split('\n'), function(line) {
|
|
16
|
+
each(stackProperty.split('\n'), function (line) {
|
|
13
17
|
var stackFrame =
|
|
14
|
-
parseChromeLine(line) ||
|
|
18
|
+
parseChromeLine(line) ||
|
|
19
|
+
parseChromeAnonymousLine(line) ||
|
|
20
|
+
parseWinLine(line) ||
|
|
21
|
+
parseGeckoLine(line)
|
|
15
22
|
if (stackFrame) {
|
|
16
23
|
if (!stackFrame.func && stackFrame.line) {
|
|
17
24
|
stackFrame.func = UNKNOWN_FUNCTION
|
|
@@ -24,15 +31,26 @@ export function computeStackTrace(ex) {
|
|
|
24
31
|
return {
|
|
25
32
|
message: tryToGetString(ex, 'message'),
|
|
26
33
|
name: tryToGetString(ex, 'name'),
|
|
27
|
-
stack: stack
|
|
34
|
+
stack: stack
|
|
28
35
|
}
|
|
29
36
|
}
|
|
30
|
-
var fileUrl =
|
|
37
|
+
var fileUrl =
|
|
38
|
+
'((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|<anonymous>|\\w+\\.|\\/).*?)'
|
|
31
39
|
var filePosition = '(?::(\\d+))'
|
|
32
|
-
var CHROME_LINE_RE = new RegExp(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
var CHROME_LINE_RE = new RegExp(
|
|
41
|
+
'^\\s*at (.*?) ?\\(' +
|
|
42
|
+
fileUrl +
|
|
43
|
+
filePosition +
|
|
44
|
+
'?' +
|
|
45
|
+
filePosition +
|
|
46
|
+
'?\\)?\\s*$',
|
|
47
|
+
'i'
|
|
48
|
+
)
|
|
49
|
+
var CHROME_EVAL_RE = new RegExp(
|
|
50
|
+
'\\((\\S*)' + filePosition + filePosition + '\\)'
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
function parseChromeLine(line) {
|
|
36
54
|
var parts = CHROME_LINE_RE.exec(line)
|
|
37
55
|
|
|
38
56
|
if (!parts) {
|
|
@@ -55,13 +73,16 @@ function parseChromeLine(line){
|
|
|
55
73
|
column: parts[4] ? +parts[4] : undefined,
|
|
56
74
|
func: parts[1] || UNKNOWN_FUNCTION,
|
|
57
75
|
line: parts[3] ? +parts[3] : undefined,
|
|
58
|
-
url: !isNative ? parts[2] : undefined
|
|
76
|
+
url: !isNative ? parts[2] : undefined
|
|
59
77
|
}
|
|
60
78
|
}
|
|
61
79
|
|
|
62
|
-
var CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(
|
|
80
|
+
var CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(
|
|
81
|
+
'^\\s*at ?' + fileUrl + filePosition + '?' + filePosition + '??\\s*$',
|
|
82
|
+
'i'
|
|
83
|
+
)
|
|
63
84
|
|
|
64
|
-
function parseChromeAnonymousLine(line){
|
|
85
|
+
function parseChromeAnonymousLine(line) {
|
|
65
86
|
var parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line)
|
|
66
87
|
|
|
67
88
|
if (!parts) {
|
|
@@ -73,7 +94,7 @@ function parseChromeAnonymousLine(line){
|
|
|
73
94
|
column: parts[3] ? +parts[3] : undefined,
|
|
74
95
|
func: UNKNOWN_FUNCTION,
|
|
75
96
|
line: parts[2] ? +parts[2] : undefined,
|
|
76
|
-
url: parts[1]
|
|
97
|
+
url: parts[1]
|
|
77
98
|
}
|
|
78
99
|
}
|
|
79
100
|
|
|
@@ -91,7 +112,7 @@ function parseWinLine(line) {
|
|
|
91
112
|
column: parts[4] ? +parts[4] : undefined,
|
|
92
113
|
func: parts[1] || UNKNOWN_FUNCTION,
|
|
93
114
|
line: +parts[3],
|
|
94
|
-
url: parts[2]
|
|
115
|
+
url: parts[2]
|
|
95
116
|
}
|
|
96
117
|
}
|
|
97
118
|
|
|
@@ -120,7 +141,7 @@ function parseGeckoLine(line) {
|
|
|
120
141
|
column: parts[5] ? +parts[5] : undefined,
|
|
121
142
|
func: parts[1] || UNKNOWN_FUNCTION,
|
|
122
143
|
line: parts[4] ? +parts[4] : undefined,
|
|
123
|
-
url: parts[3]
|
|
144
|
+
url: parts[3]
|
|
124
145
|
}
|
|
125
146
|
}
|
|
126
147
|
|